summaryrefslogtreecommitdiff
path: root/utf8.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2015-04-16 17:45:29 (GMT)
committerJunio C Hamano <gitster@pobox.com>2015-04-16 18:35:06 (GMT)
commitdde843e7378f65004415bd108038659de9ce2abd (patch)
treedd977fbe55195fc53032b60705905b317a1e2b5b /utf8.c
parentcb0abea87017559e1db3721a7e6d89a336d845e9 (diff)
downloadgit-dde843e7378f65004415bd108038659de9ce2abd.zip
git-dde843e7378f65004415bd108038659de9ce2abd.tar.gz
git-dde843e7378f65004415bd108038659de9ce2abd.tar.bz2
utf8-bom: introduce skip_utf8_bom() helper
With the recent change to ignore the UTF8 BOM at the beginning of .gitignore files, we now have two codepaths that do such a skipping (the other one is for reading the configuration files). Introduce utf8_bom[] constant string and skip_utf8_bom() helper and teach .gitignore code how to use it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'utf8.c')
-rw-r--r--utf8.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/utf8.c b/utf8.c
index 520fbb4..28e6d76 100644
--- a/utf8.c
+++ b/utf8.c
@@ -633,3 +633,14 @@ int is_hfs_dotgit(const char *path)
return 1;
}
+
+const char utf8_bom[] = "\357\273\277";
+
+int skip_utf8_bom(char **text, size_t len)
+{
+ if (len < strlen(utf8_bom) ||
+ memcmp(*text, utf8_bom, strlen(utf8_bom)))
+ return 0;
+ *text += strlen(utf8_bom);
+ return 1;
+}