aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-12-30 12:20:43 -0800
committerJunio C Hamano <junkio@cox.net>2006-12-30 15:58:43 -0800
commit677cfed56ac530878b746ee4cca3ada8af384a81 (patch)
tree19b8162432db50d0940067236af6ec8791a9ac03
parent7cbcf4d5579bdc5d9f8a4bf3f37d3390fc6e2572 (diff)
downloadgit-677cfed56ac530878b746ee4cca3ada8af384a81.tar.gz
git-677cfed56ac530878b746ee4cca3ada8af384a81.tar.xz
commit-tree: cope with different ways "utf-8" can be spelled.
People can spell config.commitencoding differently from what we internally have ("utf-8") to mean UTF-8. Try to accept them and treat them equally. Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--builtin-commit-tree.c3
-rw-r--r--utf8.c9
-rw-r--r--utf8.h2
3 files changed, 12 insertions, 2 deletions
diff --git a/builtin-commit-tree.c b/builtin-commit-tree.c
index 146aaffd2..0651e5927 100644
--- a/builtin-commit-tree.c
+++ b/builtin-commit-tree.c
@@ -119,8 +119,7 @@ int cmd_commit_tree(int argc, const char **argv, const char *prefix)
}
/* Not having i18n.commitencoding is the same as having utf-8 */
- encoding_is_utf8 = (!git_commit_encoding ||
- !strcmp(git_commit_encoding, "utf-8"));
+ encoding_is_utf8 = is_encoding_utf8(git_commit_encoding);
init_buffer(&buffer, &size);
add_buffer(&buffer, &size, "tree %s\n", sha1_to_hex(tree_sha1));
diff --git a/utf8.c b/utf8.c
index 1eedd8b61..7c80eeccb 100644
--- a/utf8.c
+++ b/utf8.c
@@ -277,6 +277,15 @@ void print_wrapped_text(const char *text, int indent, int indent2, int width)
}
}
+int is_encoding_utf8(const char *name)
+{
+ if (!name)
+ return 1;
+ if (!strcasecmp(name, "utf-8") || !strcasecmp(name, "utf8"))
+ return 1;
+ return 0;
+}
+
/*
* Given a buffer and its encoding, return it re-encoded
* with iconv. If the conversion fails, returns NULL.
diff --git a/utf8.h b/utf8.h
index cae2a8e66..a07c5a88a 100644
--- a/utf8.h
+++ b/utf8.h
@@ -3,6 +3,8 @@
int utf8_width(const char **start);
int is_utf8(const char *text);
+int is_encoding_utf8(const char *name);
+
void print_wrapped_text(const char *text, int indent, int indent2, int len);
#ifndef NO_ICONV