diff options
author | Barton E. Schaefer <schaefer@zsh.org> | 2017-06-17 10:25:43 -0700 |
---|---|---|
committer | Barton E. Schaefer <schaefer@zsh.org> | 2017-06-17 10:25:43 -0700 |
commit | efae75f64868361e5e25d0094a127c4b0c52d62d (patch) | |
tree | d5cf94801a41678cd3a66c00da4e32100745b423 /Src | |
parent | cf72c2d288b3d8763055d6553c91277048be0fcc (diff) | |
download | zsh-efae75f64868361e5e25d0094a127c4b0c52d62d.tar.gz zsh-efae75f64868361e5e25d0094a127c4b0c52d62d.tar.xz zsh-efae75f64868361e5e25d0094a127c4b0c52d62d.zip |
41242: zstrbcmp(...) removed in favor of zstrcmp(..., SORTIT_IGNORING_BACKSLASHES)
This should make sorting consistent in completion listings vs. elsewhere.
Diffstat (limited to 'Src')
-rw-r--r-- | Src/Zle/compcore.c | 4 | ||||
-rw-r--r-- | Src/Zle/zle_tricky.c | 47 |
2 files changed, 3 insertions, 48 deletions
diff --git a/Src/Zle/compcore.c b/Src/Zle/compcore.c index d1cf7a08a..52b0c173f 100644 --- a/Src/Zle/compcore.c +++ b/Src/Zle/compcore.c @@ -3135,7 +3135,9 @@ matchcmp(Cmatch *a, Cmatch *b) if ((*b)->disp && !((*b)->flags & CMF_MORDER)) return 1; - return zstrbcmp((*a)->str, (*b)->str); + return zstrcmp((*a)->str, (*b)->str, (SORTIT_IGNORING_BACKSLASHES| + (isset(NUMERICGLOBSORT) ? + SORTIT_NUMERICALLY : 0))); } /* This tests whether two matches are equal (would produce the same diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c index 3d8679119..5a9cccb6f 100644 --- a/Src/Zle/zle_tricky.c +++ b/Src/Zle/zle_tricky.c @@ -2407,53 +2407,6 @@ sfxlen(char *s, char *t) } #endif -/* This is zstrcmp with ignoring backslashes. */ - -/**/ -mod_export int -zstrbcmp(const char *a, const char *b) -{ - const char *astart = a; - - while (*a && *b) { - if (*a == '\\') - a++; - if (*b == '\\') - b++; - if (*a != *b || !*a) - break; - a++; - b++; - } - if (isset(NUMERICGLOBSORT) && (idigit(*a) || idigit(*b))) { - for (; a > astart && idigit(a[-1]); a--, b--); - if (idigit(*a) && idigit(*b)) { - while (*a == '0') - a++; - while (*b == '0') - b++; - for (; idigit(*a) && *a == *b; a++, b++); - if (idigit(*a) || idigit(*b)) { - int cmp = (int) STOUC(*a) - (int) STOUC(*b); - - while (idigit(*a) && idigit(*b)) - a++, b++; - if (idigit(*a) && !idigit(*b)) - return 1; - if (idigit(*b) && !idigit(*a)) - return -1; - - return cmp; - } - } - } -#ifndef HAVE_STRCOLL - return (int)(*a - *b); -#else - return strcoll(a,b); -#endif -} - /* This is used to print the strings (e.g. explanations). * * It returns the number of lines printed. */ |