summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-18 03:01:03 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-18 03:01:03 +0000
commit0550f4cdfaef6d59aa1cb995fd744e5620a08a8e (patch)
treee366efad782c5118cc9136468048598d2201511d
parent3a6cf6d41e523165660719236fb1f3ce0824816c (diff)
* file.c (file_expand_path): suppress a warning. named magic
numbers. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@22391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--file.c14
2 files changed, 15 insertions, 4 deletions
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 <nobu@ruby-lang.org>
+
+ * file.c (file_expand_path): suppress a warning. named magic
+ numbers.
+
Wed Feb 18 01:58:11 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* 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);