1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-06-01 04:46:08 +02:00

23278: fix NUMERICGLOBSORT, broken by multibyte fixes

This commit is contained in:
Peter Stephenson 2007-04-15 21:42:42 +00:00
parent f368975eff
commit 7bb711a3d6
3 changed files with 25 additions and 3 deletions

View File

@ -1,5 +1,8 @@
2007-04-15 Peter Stephenson <p.w.stephenson@ntlworld.com>
* 23278: Src/sort.c, Test/D07multibyte.ztst: Fix
NUMERICGLOBSORT, broken by 23118.
* users/11398: Src/zle_move.c: vi-goto-mark was broken
by multibyte characters.

View File

@ -42,8 +42,8 @@ eltpcmp(const void *a, const void *b)
{
const SortElt ae = *(const SortElt *)a;
const SortElt be = *(const SortElt *)b;
const char *as = ae->cmp;
const char *bs = be->cmp;
const char *as = ae->cmp, *bs = be->cmp;
const char *ao = as;
int cmp;
if (ae->len != -1 || be->len != -1) {
@ -122,7 +122,7 @@ eltpcmp(const void *a, const void *b)
cmp = (int)STOUC(*as) - (int)STOUC(*bs);
#endif
if (idigit(*as) || idigit(*bs)) {
for (; as > *(char **)a && idigit(as[-1]); as--, bs--);
for (; as > ao && idigit(as[-1]); as--, bs--);
if (idigit(*as) && idigit(*bs)) {
while (*as == '0')
as++;

View File

@ -358,3 +358,22 @@
>1 148
>1 149
>1 150
touch ngs1.txt ngs2.txt ngs10.txt ngs20.txt ngs100.txt ngs200.txt
setopt numericglobsort
print -l ngs*
unsetopt numericglobsort
print -l ngs*
0:NUMERIC_GLOB_SORT option in UTF-8 locale
>ngs1.txt
>ngs2.txt
>ngs10.txt
>ngs20.txt
>ngs100.txt
>ngs200.txt
>ngs100.txt
>ngs10.txt
>ngs1.txt
>ngs200.txt
>ngs20.txt
>ngs2.txt