2012/2/21 Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx>: > @@ -482,3 +482,18 @@ char *reencode_string(const char *in, const char *out_encoding, const char *in_e > return out; > } > #endif > + > +int ascii_superset_encoding(const char *encoding) > +{ > + const char *sample = " !\"#$%&'()*+,-./0123456789:;<=>?@" > + "ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`" > + "abcdefghijklmnopqrstuvwxyz{|}~\n"; > + char *output; > + int ret; > + if (!encoding) > + return 1; > + output = reencode_string(sample, encoding, "US-ASCII"); > + ret = !output || !strcmp(sample, output); > + free(output); > + return ret; > +} Side note about this function, which was written to ban all ascii-incompatible charsets from entering commit objects. The idea of mixing charsets in the same buffer without clear boundary does not sound healthy. Plus, ident.c will silently drop '\n', '<' and '>' in author/committer. If a hypothetical charset happens to place a letter in those, um.. code points?, the letter will be dropped. But meh.. -- Duy -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html