diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-10-18 22:41:56 -0700 |
---|---|---|
committer | Jeff King <peff@peff.net> | 2012-11-04 08:10:33 -0500 |
commit | 0e18bcd5e937b9e5857892e7f5c80c3c5b1da5d4 (patch) | |
tree | 65ec6c8c507979ede028373a036d21c6c11ce49c /utf8.c | |
parent | 7e2010537e96d0a1144520222f20ba1dc3d61441 (diff) | |
download | git-0e18bcd5e937b9e5857892e7f5c80c3c5b1da5d4.tar.gz |
reencode_string(): introduce and use same_encoding()
Callers of reencode_string() that re-encodes a string from one
encoding to another all used ad-hoc way to bypass the case where the
input and the output encodings are the same. Some did strcmp(),
some did strcasecmp(), yet some others when converting to UTF-8 used
is_encoding_utf8().
Introduce same_encoding() helper function to make these callers use
the same logic. Notably, is_encoding_utf8() has a work-around for
common misconfiguration to use "utf8" to name UTF-8 encoding, which
does not match "UTF-8" hence strcasecmp() would not consider the
same. Make use of it in this helper function.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'utf8.c')
-rw-r--r-- | utf8.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -423,6 +423,13 @@ int is_encoding_utf8(const char *name) return 0; } +int same_encoding(const char *src, const char *dst) +{ + if (is_encoding_utf8(src) && is_encoding_utf8(dst)) + return 1; + return !strcasecmp(src, dst); +} + /* * Given a buffer and its encoding, return it re-encoded * with iconv. If the conversion fails, returns NULL. |