diff options
author | Bram Moolenaar <Bram@vim.org> | 2004-12-27 21:59:20 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2004-12-27 21:59:20 +0000 |
commit | 86b68359978c933419279e599d0a8cf536095d77 (patch) | |
tree | 4291920506f596f1c934c9cf3af5641bdc63b900 /src/misc2.c | |
parent | b5bf5b8fae9ff5e2f7704686efae2814be1e18f7 (diff) | |
download | vim-git-86b68359978c933419279e599d0a8cf536095d77.tar.gz |
updated for version 7.0025v7.0025
Diffstat (limited to 'src/misc2.c')
-rw-r--r-- | src/misc2.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/misc2.c b/src/misc2.c index 7a8502603..30e1a1f01 100644 --- a/src/misc2.c +++ b/src/misc2.c @@ -1525,7 +1525,7 @@ ga_init(gap) garray_T *gap; { gap->ga_data = NULL; - gap->ga_room = 0; + gap->ga_maxlen = 0; gap->ga_len = 0; } @@ -1552,7 +1552,7 @@ ga_grow(gap, n) size_t len; char_u *pp; - if (gap->ga_room < n) + if (gap->ga_maxlen - gap->ga_len < n) { if (n < gap->ga_growsize) n = gap->ga_growsize; @@ -1560,7 +1560,7 @@ ga_grow(gap, n) pp = alloc_clear((unsigned)len); if (pp == NULL) return FAIL; - gap->ga_room = n; + gap->ga_maxlen = gap->ga_len + n; if (gap->ga_data != NULL) { mch_memmove(pp, gap->ga_data, @@ -1587,7 +1587,6 @@ ga_concat(gap, s) { mch_memmove((char *)gap->ga_data + gap->ga_len, s, (size_t)len); gap->ga_len += len; - gap->ga_room -= len; } } @@ -1603,7 +1602,6 @@ ga_append(gap, c) { *((char *)gap->ga_data + gap->ga_len) = c; ++gap->ga_len; - --gap->ga_room; } } @@ -5224,7 +5222,7 @@ pathcmp(p, q, maxlen) int maxlen; { int i; - const char *s; + const char *s = NULL; for (i = 0; maxlen < 0 || i < maxlen; ++i) { @@ -5264,18 +5262,19 @@ pathcmp(p, q, maxlen) return ((char_u *)p)[i] - ((char_u *)q)[i]; /* no match */ } } + if (s == NULL) /* "i" ran into "maxlen" */ + return 0; /* ignore a trailing slash, but not "//" or ":/" */ - if (i >= maxlen - || (s[i + 1] == NUL - && i > 0 - && !after_pathsep((char_u *)s, (char_u *)s + i) + if (s[i + 1] == NUL + && i > 0 + && !after_pathsep((char_u *)s, (char_u *)s + i) #ifdef BACKSLASH_IN_FILENAME - && (s[i] == '/' || s[i] == '\\') + && (s[i] == '/' || s[i] == '\\') #else - && s[i] == '/' + && s[i] == '/' #endif - )) + ) return 0; /* match with trailing slash */ if (s == q) return -1; /* no match */ |