Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
precompose-utf8: do not call checks for non-ascii "utf8"
author
Junio C Hamano
<gitster@pobox.com>
Mon, 20 Aug 2012 18:12:58 +0000
(11:12 -0700)
committer
Junio C Hamano
<gitster@pobox.com>
Mon, 20 Aug 2012 18:12:58 +0000
(11:12 -0700)
As suggested by Linus, this function is not checking UTF-8-ness of the
string; it only is seeing if it is pure US-ASCII.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
compat/precompose_utf8.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
5f8580a
)
diff --git
a/compat/precompose_utf8.c
b/compat/precompose_utf8.c
index 3190d502bb553d425bfb2b0d8a1b5df6bde98b20..8cf59558e1c6fcc6782b8eaf94534ea041599191 100644
(file)
--- a/
compat/precompose_utf8.c
+++ b/
compat/precompose_utf8.c
@@
-13,20
+13,20
@@
typedef char *iconv_ibp;
static const char *repo_encoding = "UTF-8";
static const char *path_encoding = "UTF-8-MAC";
static const char *repo_encoding = "UTF-8";
static const char *path_encoding = "UTF-8-MAC";
-static size_t has_
utf8
(const char *s, size_t maxlen, size_t *strlen_c)
+static size_t has_
non_ascii
(const char *s, size_t maxlen, size_t *strlen_c)
{
{
- const uint8_t *
utf8p
= (const uint8_t *)s;
+ const uint8_t *
ptr
= (const uint8_t *)s;
size_t strlen_chars = 0;
size_t ret = 0;
size_t strlen_chars = 0;
size_t ret = 0;
- if (!
utf8p || !*utf8p
)
+ if (!
ptr || !*ptr
)
return 0;
return 0;
- while (*
utf8p
&& maxlen) {
- if (*
utf8p
& 0x80)
+ while (*
ptr
&& maxlen) {
+ if (*
ptr
& 0x80)
ret++;
strlen_chars++;
ret++;
strlen_chars++;
-
utf8p
++;
+
ptr
++;
maxlen--;
}
if (strlen_c)
maxlen--;
}
if (strlen_c)
@@
-77,7
+77,7
@@
void precompose_argv(int argc, const char **argv)
while (i < argc) {
size_t namelen;
oldarg = argv[i];
while (i < argc) {
size_t namelen;
oldarg = argv[i];
- if (has_
utf8
(oldarg, (size_t)-1, &namelen)) {
+ if (has_
non_ascii
(oldarg, (size_t)-1, &namelen)) {
newarg = reencode_string_iconv(oldarg, namelen, ic_precompose);
if (newarg)
argv[i] = newarg;
newarg = reencode_string_iconv(oldarg, namelen, ic_precompose);
if (newarg)
argv[i] = newarg;
@@
-130,7
+130,7
@@
struct dirent_prec_psx *precompose_utf8_readdir(PREC_DIR *prec_dir)
prec_dir->dirent_nfc->d_ino = res->d_ino;
prec_dir->dirent_nfc->d_type = res->d_type;
prec_dir->dirent_nfc->d_ino = res->d_ino;
prec_dir->dirent_nfc->d_type = res->d_type;
- if ((precomposed_unicode == 1) && has_
utf8
(res->d_name, (size_t)-1, NULL)) {
+ if ((precomposed_unicode == 1) && has_
non_ascii
(res->d_name, (size_t)-1, NULL)) {
if (prec_dir->ic_precompose == (iconv_t)-1) {
die("iconv_open(%s,%s) failed, but needed:\n"
" precomposed unicode is not supported.\n"
if (prec_dir->ic_precompose == (iconv_t)-1) {
die("iconv_open(%s,%s) failed, but needed:\n"
" precomposed unicode is not supported.\n"