diff --git a/ChangeLog b/ChangeLog index 6f319703cd..0fa3823047 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Feb 18 12:00:58 2009 Nobuyoshi Nakada + + * file.c (file_expand_path): suppress a warning. named magic + numbers. + Wed Feb 18 01:58:11 2009 Nobuyoshi Nakada * ext/etc/etc.c (sGroup): getgrent may not be available. diff --git a/file.c b/file.c index ce7e273eb2..bf0c0b4b53 100644 --- a/file.c +++ b/file.c @@ -2661,7 +2661,7 @@ file_expand_path(fname, dname, result) } #if USE_NTFS else { - do *++s; while (istrailinggabage(*s)); + do ++s; while (istrailinggabage(*s)); } #endif break; @@ -2712,12 +2712,18 @@ file_expand_path(fname, dname, result) if (s > b) { #if USE_NTFS + static const char prime[] = ":$DATA"; + enum {prime_len = sizeof(prime) -1}; endpath: - if (s > b + 6 && strncasecmp(s - 6, ":$DATA", 6) == 0) { + if (s > b + prime_len && strncasecmp(s - prime_len, prime, prime_len) == 0) { /* alias of stream */ /* get rid of a bug of x64 VC++ */ - if (*(s-7) == ':') s -= 7; /* prime */ - else if (memchr(b, ':', s - 6 - b)) s -= 6; /* alternative */ + if (*(s - (prime_len+1)) == ':') { + s -= prime_len + 1; /* prime */ + } + else if (memchr(b, ':', s - prime_len - b)) { + s -= prime_len; /* alternative */ + } } #endif BUFCHECK(bdiff + (s-b) >= buflen);