- Fix "sort -n" (bug #176468).

This commit is contained in:
Tim Waugh 2005-12-23 10:48:15 +00:00
parent 08c23faa58
commit d98e6ad0aa
2 changed files with 355 additions and 170 deletions

View File

@ -1,5 +1,5 @@
--- coreutils-5.92/lib/linebuffer.h.i18n 2005-05-14 08:58:06.000000000 +0100 --- coreutils-5.93/lib/linebuffer.h.i18n 2005-05-14 08:58:06.000000000 +0100
+++ coreutils-5.92/lib/linebuffer.h 2005-10-26 22:17:04.000000000 +0100 +++ coreutils-5.93/lib/linebuffer.h 2005-12-23 08:53:01.000000000 +0000
@@ -22,6 +22,11 @@ @@ -22,6 +22,11 @@
# include <stdio.h> # include <stdio.h>
@ -22,8 +22,8 @@
}; };
/* Initialize linebuffer LINEBUFFER for use. */ /* Initialize linebuffer LINEBUFFER for use. */
--- coreutils-5.92/src/cut.c.i18n 2005-08-12 09:28:48.000000000 +0100 --- coreutils-5.93/src/cut.c.i18n 2005-08-12 08:16:25.000000000 +0100
+++ coreutils-5.92/src/cut.c 2005-10-26 22:17:04.000000000 +0100 +++ coreutils-5.93/src/cut.c 2005-12-23 08:53:01.000000000 +0000
@@ -29,6 +29,11 @@ @@ -29,6 +29,11 @@
#include <assert.h> #include <assert.h>
#include <getopt.h> #include <getopt.h>
@ -615,8 +615,8 @@
} }
if (optind == argc) if (optind == argc)
--- coreutils-5.92/src/pr.c.i18n 2005-09-16 08:51:01.000000000 +0100 --- coreutils-5.93/src/pr.c.i18n 2005-09-16 08:50:33.000000000 +0100
+++ coreutils-5.92/src/pr.c 2005-10-26 22:17:04.000000000 +0100 +++ coreutils-5.93/src/pr.c 2005-12-23 08:53:01.000000000 +0000
@@ -313,6 +313,32 @@ @@ -313,6 +313,32 @@
#include <getopt.h> #include <getopt.h>
@ -1339,8 +1339,8 @@
/* We've just printed some files and need to clean up things before /* We've just printed some files and need to clean up things before
looking for more options and printing the next batch of files. looking for more options and printing the next batch of files.
--- coreutils-5.92/src/uniq.c.i18n 2005-07-05 08:38:37.000000000 +0100 --- coreutils-5.93/src/uniq.c.i18n 2005-07-05 07:32:54.000000000 +0100
+++ coreutils-5.92/src/uniq.c 2005-10-26 22:17:04.000000000 +0100 +++ coreutils-5.93/src/uniq.c 2005-12-23 08:53:01.000000000 +0000
@@ -23,6 +23,16 @@ @@ -23,6 +23,16 @@
#include <getopt.h> #include <getopt.h>
#include <sys/types.h> #include <sys/types.h>
@ -1707,8 +1707,8 @@
skip_chars = 0; skip_chars = 0;
skip_fields = 0; skip_fields = 0;
check_chars = SIZE_MAX; check_chars = SIZE_MAX;
--- coreutils-5.92/src/expand.c.i18n 2005-08-12 09:28:48.000000000 +0100 --- coreutils-5.93/src/expand.c.i18n 2005-08-12 08:16:25.000000000 +0100
+++ coreutils-5.92/src/expand.c 2005-10-26 22:17:04.000000000 +0100 +++ coreutils-5.93/src/expand.c 2005-12-23 08:53:01.000000000 +0000
@@ -38,11 +38,28 @@ @@ -38,11 +38,28 @@
#include <stdio.h> #include <stdio.h>
#include <getopt.h> #include <getopt.h>
@ -1903,8 +1903,8 @@
if (have_read_stdin && fclose (stdin) != 0) if (have_read_stdin && fclose (stdin) != 0)
error (EXIT_FAILURE, errno, "-"); error (EXIT_FAILURE, errno, "-");
--- coreutils-5.92/src/fold.c.i18n 2005-08-12 09:28:48.000000000 +0100 --- coreutils-5.93/src/fold.c.i18n 2005-08-12 08:29:38.000000000 +0100
+++ coreutils-5.92/src/fold.c 2005-10-26 22:17:04.000000000 +0100 +++ coreutils-5.93/src/fold.c 2005-12-23 08:53:01.000000000 +0000
@@ -23,11 +23,33 @@ @@ -23,11 +23,33 @@
#include <getopt.h> #include <getopt.h>
#include <sys/types.h> #include <sys/types.h>
@ -2313,8 +2313,8 @@
break; break;
case 's': /* Break at word boundaries. */ case 's': /* Break at word boundaries. */
--- coreutils-5.92/src/join.c.i18n 2005-08-12 09:28:48.000000000 +0100 --- coreutils-5.93/src/join.c.i18n 2005-08-12 08:16:25.000000000 +0100
+++ coreutils-5.92/src/join.c 2005-10-26 22:17:04.000000000 +0100 +++ coreutils-5.93/src/join.c 2005-12-23 08:53:01.000000000 +0000
@@ -23,16 +23,30 @@ @@ -23,16 +23,30 @@
#include <sys/types.h> #include <sys/types.h>
#include <getopt.h> #include <getopt.h>
@ -2810,8 +2810,8 @@
} }
break; break;
--- coreutils-5.92/src/unexpand.c.i18n 2005-08-12 09:28:48.000000000 +0100 --- coreutils-5.93/src/unexpand.c.i18n 2005-08-12 08:16:25.000000000 +0100
+++ coreutils-5.92/src/unexpand.c 2005-10-26 22:18:37.000000000 +0100 +++ coreutils-5.93/src/unexpand.c 2005-12-23 08:53:01.000000000 +0000
@@ -39,11 +39,28 @@ @@ -39,11 +39,28 @@
#include <stdio.h> #include <stdio.h>
#include <getopt.h> #include <getopt.h>
@ -3064,140 +3064,8 @@
if (have_read_stdin && fclose (stdin) != 0) if (have_read_stdin && fclose (stdin) != 0)
error (EXIT_FAILURE, errno, "-"); error (EXIT_FAILURE, errno, "-");
--- /dev/null 2005-10-10 09:36:06.437701000 +0100 --- coreutils-5.93/src/sort.c.i18n 2005-10-07 19:48:28.000000000 +0100
+++ coreutils-5.92/tests/sort/sort-mb-tests 2005-10-26 22:17:04.000000000 +0100 +++ coreutils-5.93/src/sort.c 2005-12-23 10:38:44.000000000 +0000
@@ -0,0 +1,58 @@
+#! /bin/sh
+case $# in
+ 0) xx='../../src/sort';;
+ *) xx="$1";;
+esac
+test "$VERBOSE" && echo=echo || echo=:
+$echo testing program: $xx
+errors=0
+test "$srcdir" || srcdir=.
+test "$VERBOSE" && $xx --version 2> /dev/null
+
+export LC_ALL=en_US.UTF-8
+locale -k LC_CTYPE 2>&1 | grep -q charmap.*UTF-8 || exit 77
+errors=0
+
+$xx -t -k2 -n mb1.I > mb1.O
+code=$?
+if test $code != 0; then
+ $echo "Test mb1 failed: $xx return code $code differs from expected value 0" 1>&2
+ errors=`expr $errors + 1`
+else
+ cmp mb1.O $srcdir/mb1.X > /dev/null 2>&1
+ case $? in
+ 0) if test "$VERBOSE"; then $echo "passed mb1"; fi;;
+ 1) $echo "Test mb1 failed: files mb1.O and $srcdir/mb1.X differ" 1>&2
+ (diff -c mb1.O $srcdir/mb1.X) 2> /dev/null
+ errors=`expr $errors + 1`;;
+ 2) $echo "Test mb1 may have failed." 1>&2
+ $echo The command "cmp mb1.O $srcdir/mb1.X" failed. 1>&2
+ errors=`expr $errors + 1`;;
+ esac
+fi
+
+$xx -t -k4 -n mb2.I > mb2.O
+code=$?
+if test $code != 0; then
+ $echo "Test mb2 failed: $xx return code $code differs from expected value 0" 1>&2
+ errors=`expr $errors + 1`
+else
+ cmp mb2.O $srcdir/mb2.X > /dev/null 2>&1
+ case $? in
+ 0) if test "$VERBOSE"; then $echo "passed mb2"; fi;;
+ 1) $echo "Test mb2 failed: files mb2.O and $srcdir/mb2.X differ" 1>&2
+ (diff -c mb2.O $srcdir/mb2.X) 2> /dev/null
+ errors=`expr $errors + 1`;;
+ 2) $echo "Test mb2 may have failed." 1>&2
+ $echo The command "cmp mb2.O $srcdir/mb2.X" failed. 1>&2
+ errors=`expr $errors + 1`;;
+ esac
+fi
+
+if test $errors = 0; then
+ $echo Passed all 113 tests. 1>&2
+else
+ $echo Failed $errors tests. 1>&2
+fi
+test $errors = 0 || errors=1
+exit $errors
--- /dev/null 2005-10-10 09:36:06.437701000 +0100
+++ coreutils-5.92/tests/sort/mb1.I 2005-10-26 22:17:04.000000000 +0100
@@ -0,0 +1,4 @@
+Apple10
+Banana5
+Citrus20
+Cherry30
--- /dev/null 2005-10-10 09:36:06.437701000 +0100
+++ coreutils-5.92/tests/sort/mb2.I 2005-10-26 22:17:04.000000000 +0100
@@ -0,0 +1,4 @@
+Apple1020
+Banana530
+Citrus205
+Cherry3010
--- /dev/null 2005-10-10 09:36:06.437701000 +0100
+++ coreutils-5.92/tests/sort/mb1.X 2005-10-26 22:17:04.000000000 +0100
@@ -0,0 +1,4 @@
+Banana5
+Apple10
+Citrus20
+Cherry30
--- /dev/null 2005-10-10 09:36:06.437701000 +0100
+++ coreutils-5.92/tests/sort/mb2.X 2005-10-26 22:17:04.000000000 +0100
@@ -0,0 +1,4 @@
+Citrus205
+Cherry3010
+Apple1020
+Banana530
--- coreutils-5.92/tests/sort/Makefile.am.i18n 2005-06-23 17:32:54.000000000 +0100
+++ coreutils-5.92/tests/sort/Makefile.am 2005-10-26 22:17:04.000000000 +0100
@@ -43,14 +43,16 @@
nul-nls.E use-nl.O use-nl.E o2.O o2.E nul-tab.O nul-tab.E
##test-files-end
-EXTRA_DIST = Test.pm $x-tests $(explicit) $(maint_gen)
-noinst_SCRIPTS = $x-tests
+run_gen += mb1.O mb2.O
+
+EXTRA_DIST = Test.pm $x-tests $(explicit) $(maint_gen) mb1.I mb1.X mb2.I mb2.X
+noinst_SCRIPTS = $x-tests # $x-mb-tests
TESTS_ENVIRONMENT = \
PATH="`pwd`/../../src$(PATH_SEPARATOR)$$PATH"
editpl = sed -e 's,@''PERL''@,$(PERL),g' -e 's,@''srcdir''@,$(srcdir),g'
-TESTS = $x-tests
+TESTS = $x-tests $x-mb-tests
mk_script = $(srcdir)/../mk-script
$(srcdir)/$x-tests: $(mk_script) Test.pm Makefile.am
--- coreutils-5.92/tests/sort/Makefile.in.i18n 2005-10-22 19:13:23.000000000 +0100
+++ coreutils-5.92/tests/sort/Makefile.in 2005-10-26 22:17:04.000000000 +0100
@@ -338,13 +338,15 @@
o-no-file1.E create-empty.O create-empty.E neg-nls.O neg-nls.E nul-nls.O \
nul-nls.E use-nl.O use-nl.E o2.O o2.E nul-tab.O nul-tab.E
-EXTRA_DIST = Test.pm $x-tests $(explicit) $(maint_gen)
-noinst_SCRIPTS = $x-tests
+run_gen += mb1.O mb2.O
+
+EXTRA_DIST = Test.pm $x-tests $(explicit) $(maint_gen) mb1.I mb1.X mb2.I mb2.X
+noinst_SCRIPTS = $x-tests # $x-mb-tests
TESTS_ENVIRONMENT = \
PATH="`pwd`/../../src$(PATH_SEPARATOR)$$PATH"
editpl = sed -e 's,@''PERL''@,$(PERL),g' -e 's,@''srcdir''@,$(srcdir),g'
-TESTS = $x-tests
+TESTS = $x-tests $x-mb-tests
mk_script = $(srcdir)/../mk-script
MAINTAINERCLEANFILES = $x-tests $(maint_gen)
CLEANFILES = $(run_gen)
--- coreutils-5.92/src/sort.c.i18n-sort 2005-10-07 20:16:56.000000000 +0100
+++ coreutils-5.92/src/sort.c 2005-10-28 15:24:37.000000000 +0100
@@ -23,9 +23,18 @@ @@ -23,9 +23,18 @@
#include <config.h> #include <config.h>
@ -3274,7 +3142,7 @@
/* Flag to remove consecutive duplicate lines from the output. /* Flag to remove consecutive duplicate lines from the output.
Only the last of a sequence of equal lines will be output. */ Only the last of a sequence of equal lines will be output. */
@@ -392,6 +423,42 @@ @@ -392,6 +423,44 @@
static struct tempnode *volatile temphead; static struct tempnode *volatile temphead;
static struct tempnode *volatile *temptail = &temphead; static struct tempnode *volatile *temptail = &temphead;
@ -3289,6 +3157,8 @@
+(*getmonth) (char const *, size_t); +(*getmonth) (char const *, size_t);
+static int +static int
+(*keycompare) (const struct line *, const struct line *); +(*keycompare) (const struct line *, const struct line *);
+static int
+(*numcompare) (const char *, const char *);
+ +
+/* Test for white space multibyte character. +/* Test for white space multibyte character.
+ Set LENGTH the byte length of investigated multibyte character. */ + Set LENGTH the byte length of investigated multibyte character. */
@ -3317,7 +3187,7 @@
/* Clean up any remaining temporary files. */ /* Clean up any remaining temporary files. */
static void static void
@@ -545,7 +612,7 @@ @@ -545,7 +614,7 @@
free (node); free (node);
} }
@ -3326,7 +3196,7 @@
static int static int
struct_month_cmp (const void *m1, const void *m2) struct_month_cmp (const void *m1, const void *m2)
@@ -560,7 +627,7 @@ @@ -560,7 +629,7 @@
/* Initialize the character class tables. */ /* Initialize the character class tables. */
static void static void
@ -3335,7 +3205,7 @@
{ {
size_t i; size_t i;
@@ -572,7 +639,7 @@ @@ -572,7 +641,7 @@
fold_toupper[i] = (ISLOWER (i) ? toupper (i) : i); fold_toupper[i] = (ISLOWER (i) ? toupper (i) : i);
} }
@ -3344,7 +3214,7 @@
/* If we're not in the "C" locale, read different names for months. */ /* If we're not in the "C" locale, read different names for months. */
if (hard_LC_TIME) if (hard_LC_TIME)
{ {
@@ -598,6 +665,64 @@ @@ -598,6 +667,64 @@
#endif #endif
} }
@ -3409,7 +3279,7 @@
/* Specify the amount of main memory to use when sorting. */ /* Specify the amount of main memory to use when sorting. */
static void static void
specify_sort_size (char const *s) specify_sort_size (char const *s)
@@ -808,7 +933,7 @@ @@ -808,7 +935,7 @@
by KEY in LINE. */ by KEY in LINE. */
static char * static char *
@ -3418,7 +3288,7 @@
{ {
char *ptr = line->text, *lim = ptr + line->length - 1; char *ptr = line->text, *lim = ptr + line->length - 1;
size_t sword = key->sword; size_t sword = key->sword;
@@ -818,10 +943,10 @@ @@ -818,10 +945,10 @@
/* The leading field separator itself is included in a field when -t /* The leading field separator itself is included in a field when -t
is absent. */ is absent. */
@ -3431,7 +3301,7 @@
++ptr; ++ptr;
if (ptr < lim) if (ptr < lim)
++ptr; ++ptr;
@@ -849,11 +974,70 @@ @@ -849,11 +976,70 @@
return ptr; return ptr;
} }
@ -3503,7 +3373,7 @@
{ {
char *ptr = line->text, *lim = ptr + line->length - 1; char *ptr = line->text, *lim = ptr + line->length - 1;
size_t eword = key->eword, echar = key->echar; size_t eword = key->eword, echar = key->echar;
@@ -866,10 +1050,10 @@ @@ -866,10 +1052,10 @@
`beginning' is the first character following the delimiting TAB. `beginning' is the first character following the delimiting TAB.
Otherwise, leave PTR pointing at the first `blank' character after Otherwise, leave PTR pointing at the first `blank' character after
the preceding field. */ the preceding field. */
@ -3516,7 +3386,7 @@
++ptr; ++ptr;
if (ptr < lim && (eword | echar)) if (ptr < lim && (eword | echar))
++ptr; ++ptr;
@@ -915,10 +1099,10 @@ @@ -915,10 +1101,10 @@
*/ */
/* Make LIM point to the end of (one byte past) the current field. */ /* Make LIM point to the end of (one byte past) the current field. */
@ -3529,7 +3399,7 @@
if (newlim) if (newlim)
lim = newlim; lim = newlim;
} }
@@ -951,6 +1135,107 @@ @@ -951,6 +1137,107 @@
return ptr; return ptr;
} }
@ -3637,7 +3507,42 @@
/* Fill BUF reading from FP, moving buf->left bytes from the end /* Fill BUF reading from FP, moving buf->left bytes from the end
of buf->buf to the beginning first. If EOF is reached and the of buf->buf to the beginning first. If EOF is reached and the
file wasn't terminated by a newline, supply one. Set up BUF's line file wasn't terminated by a newline, supply one. Set up BUF's line
@@ -1110,7 +1395,7 @@ @@ -1067,7 +1354,7 @@
hideously fast. */
static int
-numcompare (const char *a, const char *b)
+numcompare_uni (const char *a, const char *b)
{
while (blanks[to_uchar (*a)])
a++;
@@ -1077,6 +1364,25 @@
return strnumcmp (a, b, decimal_point, thousands_sep);
}
+#if HAVE_MBRTOWC
+static int
+numcompare_mb (const char *a, const char *b)
+{
+ size_t mblength, len;
+ len = strlen (a); /* okay for UTF-8 */
+ while (*a && ismbblank (a, len > MB_CUR_MAX ? MB_CUR_MAX : len, &mblength))
+ {
+ a += mblength;
+ len -= mblength;
+ }
+ len = strlen (b); /* okay for UTF-8 */
+ while (*b && ismbblank (b, len > MB_CUR_MAX ? MB_CUR_MAX : len, &mblength))
+ b += mblength;
+
+ return strnumcmp (a, b, decimal_point, thousands_sep);
+}
+#endif /* HAV_EMBRTOWC */
+
static int
general_numcompare (const char *sa, const char *sb)
{
@@ -1110,7 +1416,7 @@
Return 0 if the name in S is not recognized. */ Return 0 if the name in S is not recognized. */
static int static int
@ -3646,7 +3551,7 @@
{ {
size_t lo = 0; size_t lo = 0;
size_t hi = MONTHS_PER_YEAR; size_t hi = MONTHS_PER_YEAR;
@@ -1152,11 +1437,79 @@ @@ -1152,11 +1458,79 @@
return 0; return 0;
} }
@ -3727,7 +3632,7 @@
{ {
struct keyfield const *key = keylist; struct keyfield const *key = keylist;
@@ -1326,6 +1679,177 @@ @@ -1326,6 +1700,177 @@
return key->reverse ? -diff : diff; return key->reverse ? -diff : diff;
} }
@ -3905,7 +3810,7 @@
/* Compare two lines A and B, returning negative, zero, or positive /* Compare two lines A and B, returning negative, zero, or positive
depending on whether A compares less than, equal to, or greater than B. */ depending on whether A compares less than, equal to, or greater than B. */
@@ -2127,7 +2651,7 @@ @@ -2127,7 +2672,7 @@
atexit (close_stdout); atexit (close_stdout);
hard_LC_COLLATE = hard_locale (LC_COLLATE); hard_LC_COLLATE = hard_locale (LC_COLLATE);
@ -3914,7 +3819,7 @@
hard_LC_TIME = hard_locale (LC_TIME); hard_LC_TIME = hard_locale (LC_TIME);
#endif #endif
@@ -2148,6 +2672,25 @@ @@ -2148,6 +2693,27 @@
thousands_sep = -1; thousands_sep = -1;
} }
@ -3926,6 +3831,7 @@
+ limfield = limfield_mb; + limfield = limfield_mb;
+ getmonth = getmonth_mb; + getmonth = getmonth_mb;
+ keycompare = keycompare_mb; + keycompare = keycompare_mb;
+ numcompare = numcompare_mb;
+ } + }
+ else + else
+#endif +#endif
@ -3933,14 +3839,15 @@
+ inittables = inittables_uni; + inittables = inittables_uni;
+ begfield = begfield_uni; + begfield = begfield_uni;
+ limfield = limfield_uni; + limfield = limfield_uni;
+ keycompare = keycompare_uni;
+ getmonth = getmonth_uni; + getmonth = getmonth_uni;
+ keycompare = keycompare_uni;
+ numcompare = numcompare_uni;
+ } + }
+ +
have_read_stdin = false; have_read_stdin = false;
inittables (); inittables ();
@@ -2349,13 +2892,35 @@ @@ -2349,13 +2915,35 @@
case 't': case 't':
{ {
@ -3980,7 +3887,7 @@
else else
{ {
/* Provoke with `sort -txx'. Complain about /* Provoke with `sort -txx'. Complain about
@@ -2366,9 +2931,12 @@ @@ -2366,9 +2954,12 @@
quote (optarg)); quote (optarg));
} }
} }
@ -3995,3 +3902,278 @@
} }
break; break;
--- /dev/null 2005-10-10 09:36:06.437701000 +0100
+++ coreutils-5.93/tests/sort/sort-mb-tests 2005-12-23 08:53:01.000000000 +0000
@@ -0,0 +1,58 @@
+#! /bin/sh
+case $# in
+ 0) xx='../../src/sort';;
+ *) xx="$1";;
+esac
+test "$VERBOSE" && echo=echo || echo=:
+$echo testing program: $xx
+errors=0
+test "$srcdir" || srcdir=.
+test "$VERBOSE" && $xx --version 2> /dev/null
+
+export LC_ALL=en_US.UTF-8
+locale -k LC_CTYPE 2>&1 | grep -q charmap.*UTF-8 || exit 77
+errors=0
+
+$xx -t -k2 -n mb1.I > mb1.O
+code=$?
+if test $code != 0; then
+ $echo "Test mb1 failed: $xx return code $code differs from expected value 0" 1>&2
+ errors=`expr $errors + 1`
+else
+ cmp mb1.O $srcdir/mb1.X > /dev/null 2>&1
+ case $? in
+ 0) if test "$VERBOSE"; then $echo "passed mb1"; fi;;
+ 1) $echo "Test mb1 failed: files mb1.O and $srcdir/mb1.X differ" 1>&2
+ (diff -c mb1.O $srcdir/mb1.X) 2> /dev/null
+ errors=`expr $errors + 1`;;
+ 2) $echo "Test mb1 may have failed." 1>&2
+ $echo The command "cmp mb1.O $srcdir/mb1.X" failed. 1>&2
+ errors=`expr $errors + 1`;;
+ esac
+fi
+
+$xx -t -k4 -n mb2.I > mb2.O
+code=$?
+if test $code != 0; then
+ $echo "Test mb2 failed: $xx return code $code differs from expected value 0" 1>&2
+ errors=`expr $errors + 1`
+else
+ cmp mb2.O $srcdir/mb2.X > /dev/null 2>&1
+ case $? in
+ 0) if test "$VERBOSE"; then $echo "passed mb2"; fi;;
+ 1) $echo "Test mb2 failed: files mb2.O and $srcdir/mb2.X differ" 1>&2
+ (diff -c mb2.O $srcdir/mb2.X) 2> /dev/null
+ errors=`expr $errors + 1`;;
+ 2) $echo "Test mb2 may have failed." 1>&2
+ $echo The command "cmp mb2.O $srcdir/mb2.X" failed. 1>&2
+ errors=`expr $errors + 1`;;
+ esac
+fi
+
+if test $errors = 0; then
+ $echo Passed all 113 tests. 1>&2
+else
+ $echo Failed $errors tests. 1>&2
+fi
+test $errors = 0 || errors=1
+exit $errors
--- /dev/null 2005-10-10 09:36:06.437701000 +0100
+++ coreutils-5.93/tests/sort/mb1.I 2005-12-23 08:53:01.000000000 +0000
@@ -0,0 +1,4 @@
+Apple10
+Banana5
+Citrus20
+Cherry30
--- /dev/null 2005-10-10 09:36:06.437701000 +0100
+++ coreutils-5.93/tests/sort/mb2.I 2005-12-23 08:53:01.000000000 +0000
@@ -0,0 +1,4 @@
+Apple1020
+Banana530
+Citrus205
+Cherry3010
--- /dev/null 2005-10-10 09:36:06.437701000 +0100
+++ coreutils-5.93/tests/sort/mb1.X 2005-12-23 08:53:01.000000000 +0000
@@ -0,0 +1,4 @@
+Banana5
+Apple10
+Citrus20
+Cherry30
--- /dev/null 2005-10-10 09:36:06.437701000 +0100
+++ coreutils-5.93/tests/sort/mb2.X 2005-12-23 08:53:01.000000000 +0000
@@ -0,0 +1,4 @@
+Citrus205
+Cherry3010
+Apple1020
+Banana530
--- coreutils-5.93/tests/sort/Makefile.am.i18n 2005-10-24 22:02:25.000000000 +0100
+++ coreutils-5.93/tests/sort/Makefile.am 2005-12-23 08:53:01.000000000 +0000
@@ -43,14 +43,16 @@
nul-nls.E use-nl.O use-nl.E o2.O o2.E nul-tab.O nul-tab.E
##test-files-end
-EXTRA_DIST = Test.pm $x-tests $(explicit) $(maint_gen)
-noinst_SCRIPTS = $x-tests
+run_gen += mb1.O mb2.O
+
+EXTRA_DIST = Test.pm $x-tests $(explicit) $(maint_gen) mb1.I mb1.X mb2.I mb2.X
+noinst_SCRIPTS = $x-tests # $x-mb-tests
TESTS_ENVIRONMENT = \
PATH="`pwd`/../../src$(PATH_SEPARATOR)$$PATH"
editpl = sed -e 's,@''PERL''@,$(PERL),g' -e 's,@''srcdir''@,$(srcdir),g'
-TESTS = $x-tests
+TESTS = $x-tests $x-mb-tests
mk_script = $(srcdir)/../mk-script
$(srcdir)/$x-tests: $(mk_script) Test.pm Makefile.am
--- coreutils-5.93/tests/sort/Makefile.in.i18n 2005-11-05 22:12:25.000000000 +0000
+++ coreutils-5.93/tests/sort/Makefile.in 2005-12-23 09:00:37.000000000 +0000
@@ -107,25 +107,25 @@
$(top_srcdir)/m4/onceonly_2_57.m4 $(top_srcdir)/m4/openat.m4 \
$(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perl.m4 \
$(top_srcdir)/m4/physmem.m4 $(top_srcdir)/m4/po.m4 \
- $(top_srcdir)/m4/posixtm.m4 $(top_srcdir)/m4/posixver.m4 \
- $(top_srcdir)/m4/prereq.m4 $(top_srcdir)/m4/progtest.m4 \
- $(top_srcdir)/m4/putenv.m4 $(top_srcdir)/m4/quote.m4 \
- $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/readlink.m4 \
- $(top_srcdir)/m4/readtokens.m4 $(top_srcdir)/m4/readutmp.m4 \
- $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rename.m4 \
- $(top_srcdir)/m4/restrict.m4 $(top_srcdir)/m4/rmdir-errno.m4 \
- $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/root-dev-ino.m4 \
- $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/safe-read.m4 \
- $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/same.m4 \
- $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
- $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/settime.m4 \
- $(top_srcdir)/m4/sha1.m4 $(top_srcdir)/m4/sig2str.m4 \
- $(top_srcdir)/m4/signed.m4 $(top_srcdir)/m4/socklen.m4 \
- $(top_srcdir)/m4/sockpfaf.m4 $(top_srcdir)/m4/ssize_t.m4 \
- $(top_srcdir)/m4/st_dm_mode.m4 $(top_srcdir)/m4/stat-macros.m4 \
- $(top_srcdir)/m4/stat-prog.m4 $(top_srcdir)/m4/stat-time.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint_h.m4 \
- $(top_srcdir)/m4/stdio-safer.m4 \
+ $(top_srcdir)/m4/posix_acl.m4 $(top_srcdir)/m4/posixtm.m4 \
+ $(top_srcdir)/m4/posixver.m4 $(top_srcdir)/m4/prereq.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/putenv.m4 \
+ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
+ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readtokens.m4 \
+ $(top_srcdir)/m4/readutmp.m4 $(top_srcdir)/m4/regex.m4 \
+ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/restrict.m4 \
+ $(top_srcdir)/m4/rmdir-errno.m4 $(top_srcdir)/m4/rmdir.m4 \
+ $(top_srcdir)/m4/root-dev-ino.m4 $(top_srcdir)/m4/rpmatch.m4 \
+ $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+ $(top_srcdir)/m4/same.m4 $(top_srcdir)/m4/save-cwd.m4 \
+ $(top_srcdir)/m4/savedir.m4 $(top_srcdir)/m4/setenv.m4 \
+ $(top_srcdir)/m4/settime.m4 $(top_srcdir)/m4/sha1.m4 \
+ $(top_srcdir)/m4/sig2str.m4 $(top_srcdir)/m4/signed.m4 \
+ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \
+ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/st_dm_mode.m4 \
+ $(top_srcdir)/m4/stat-macros.m4 $(top_srcdir)/m4/stat-prog.m4 \
+ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stdbool.m4 \
+ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio-safer.m4 \
$(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stpcpy.m4 \
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strcspn.m4 \
$(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strftime.m4 \
@@ -196,7 +196,6 @@
GLIBC21 = @GLIBC21@
GMSGFMT = @GMSGFMT@
GNU_PACKAGE = @GNU_PACKAGE@
-GREP = @GREP@
HAVE__BOOL = @HAVE__BOOL@
HELP2MAN = @HELP2MAN@
INSTALL_DATA = @INSTALL_DATA@
@@ -207,6 +206,7 @@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
KMEM_GROUP = @KMEM_GROUP@
LDFLAGS = @LDFLAGS@
+LIBACL = @LIBACL@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
LIBOBJS = @LIBOBJS@
@@ -217,6 +217,8 @@
LIB_FDATASYNC = @LIB_FDATASYNC@
LIB_GETHRXTIME = @LIB_GETHRXTIME@
LIB_NANOSLEEP = @LIB_NANOSLEEP@
+LIB_PAM = @LIB_PAM@
+LIB_SELINUX = @LIB_SELINUX@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
@@ -268,30 +270,23 @@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
-htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
-localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
-psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
@@ -318,33 +313,37 @@
neg-nls.I neg-nls.X nul-nls.I nul-nls.X use-nl.I use-nl.X o2.I o2.X nul-tab.I \
nul-tab.X
-run_gen = n1.O n1.E n2.O n2.E n3.O n3.E n4.O n4.E n5.O n5.E n6.O n6.E n7.O \
-n7.E n8a.O n8a.E n8b.O n8b.E n9a.O n9a.E n9b.O n9b.E n10a.O n10a.E n10b.O \
-n10b.E n11a.O n11a.E n11b.O n11b.E 01a.O 01a.E 02a.O 02a.E 02b.O 02b.E 02c.O \
-02c.E 02m.O 02m.E 02n.O 02n.E 02o.O 02o.E 02p.O 02p.E 03a.O 03a.E 03b.O 03b.E \
-03c.O 03c.E 03d.O 03d.E 03e.O 03e.E 03f.O 03f.E 03g.O 03g.E 03h.O 03h.E 03i.O \
-03i.E 04a.O 04a.E 04b.O 04b.E 04c.O 04c.E 04d.O 04d.E 04e.O 04e.E 05a.O 05a.E \
-05b.O 05b.E 05c.O 05c.E 05d.O 05d.E 05e.O 05e.E 05f.O 05f.E 06a.O 06a.E 06b.O \
-06b.E 06c.O 06c.E 06d.O 06d.E 06e.O 06e.E 06f.O 06f.E 07a.O 07a.E 07b.O 07b.E \
-07c.O 07c.E 07d.O 07d.E 08a.O 08a.E 08b.O 08b.E 09a.O 09a.E 09b.O 09b.E 09c.O \
-09c.E 09d.O 09d.E 10a.O 10a.E 10b.O 10b.E 10c.O 10c.E 10d.O 10d.E 10a0.O \
-10a0.E 10a1.O 10a1.E 10a2.O 10a2.E 10e.O 10e.E 10f.O 10f.E 10g.O 10g.E 11a.O \
-11a.E 11b.O 11b.E 11c.O 11c.E 11d.O 11d.E 12a.O 12a.E 12b.O 12b.E 12c.O 12c.E \
-12d.O 12d.E 13a.O 13a.E 13b.O 13b.E 14a.O 14a.E 14b.O 14b.E 15a.O 15a.E 15b.O \
-15b.E 15c.O 15c.E 15d.O 15d.E 15e.O 15e.E 16a.O 16a.E 17.O 17.E 18a.O 18a.E \
-18b.O 18b.E 18c.O 18c.E 18d.O 18d.E 18e.O 18e.E 19a.O 19a.E 19b.O 19b.E 20a.O \
-20a.E 21a.O 21a.E 21b.O 21b.E 21c.O 21c.E 21d.O 21d.E 21e.O 21e.E 21f.O 21f.E \
-21g.O 21g.E 22a.O 22a.E 22b.O 22b.E no-file1.O no-file1.E o-no-file1.O \
-o-no-file1.E create-empty.O create-empty.E neg-nls.O neg-nls.E nul-nls.O \
-nul-nls.E use-nl.O use-nl.E o2.O o2.E nul-tab.O nul-tab.E
-
-EXTRA_DIST = Test.pm $x-tests $(explicit) $(maint_gen)
-noinst_SCRIPTS = $x-tests
+run_gen = n1.O n1.E n2.O n2.E n3.O n3.E n4.O n4.E n5.O n5.E n6.O n6.E \
+ n7.O n7.E n8a.O n8a.E n8b.O n8b.E n9a.O n9a.E n9b.O n9b.E \
+ n10a.O n10a.E n10b.O n10b.E n11a.O n11a.E n11b.O n11b.E 01a.O \
+ 01a.E 02a.O 02a.E 02b.O 02b.E 02c.O 02c.E 02m.O 02m.E 02n.O \
+ 02n.E 02o.O 02o.E 02p.O 02p.E 03a.O 03a.E 03b.O 03b.E 03c.O \
+ 03c.E 03d.O 03d.E 03e.O 03e.E 03f.O 03f.E 03g.O 03g.E 03h.O \
+ 03h.E 03i.O 03i.E 04a.O 04a.E 04b.O 04b.E 04c.O 04c.E 04d.O \
+ 04d.E 04e.O 04e.E 05a.O 05a.E 05b.O 05b.E 05c.O 05c.E 05d.O \
+ 05d.E 05e.O 05e.E 05f.O 05f.E 06a.O 06a.E 06b.O 06b.E 06c.O \
+ 06c.E 06d.O 06d.E 06e.O 06e.E 06f.O 06f.E 07a.O 07a.E 07b.O \
+ 07b.E 07c.O 07c.E 07d.O 07d.E 08a.O 08a.E 08b.O 08b.E 09a.O \
+ 09a.E 09b.O 09b.E 09c.O 09c.E 09d.O 09d.E 10a.O 10a.E 10b.O \
+ 10b.E 10c.O 10c.E 10d.O 10d.E 10a0.O 10a0.E 10a1.O 10a1.E \
+ 10a2.O 10a2.E 10e.O 10e.E 10f.O 10f.E 10g.O 10g.E 11a.O 11a.E \
+ 11b.O 11b.E 11c.O 11c.E 11d.O 11d.E 12a.O 12a.E 12b.O 12b.E \
+ 12c.O 12c.E 12d.O 12d.E 13a.O 13a.E 13b.O 13b.E 14a.O 14a.E \
+ 14b.O 14b.E 15a.O 15a.E 15b.O 15b.E 15c.O 15c.E 15d.O 15d.E \
+ 15e.O 15e.E 16a.O 16a.E 17.O 17.E 18a.O 18a.E 18b.O 18b.E \
+ 18c.O 18c.E 18d.O 18d.E 18e.O 18e.E 19a.O 19a.E 19b.O 19b.E \
+ 20a.O 20a.E 21a.O 21a.E 21b.O 21b.E 21c.O 21c.E 21d.O 21d.E \
+ 21e.O 21e.E 21f.O 21f.E 21g.O 21g.E 22a.O 22a.E 22b.O 22b.E \
+ no-file1.O no-file1.E o-no-file1.O o-no-file1.E create-empty.O \
+ create-empty.E neg-nls.O neg-nls.E nul-nls.O nul-nls.E \
+ use-nl.O use-nl.E o2.O o2.E nul-tab.O nul-tab.E mb1.O mb2.O
+EXTRA_DIST = Test.pm $x-tests $(explicit) $(maint_gen) mb1.I mb1.X mb2.I mb2.X
+noinst_SCRIPTS = $x-tests # $x-mb-tests
TESTS_ENVIRONMENT = \
PATH="`pwd`/../../src$(PATH_SEPARATOR)$$PATH"
editpl = sed -e 's,@''PERL''@,$(PERL),g' -e 's,@''srcdir''@,$(srcdir),g'
-TESTS = $x-tests
+TESTS = $x-tests $x-mb-tests
mk_script = $(srcdir)/../mk-script
MAINTAINERCLEANFILES = $x-tests $(maint_gen)
CLEANFILES = $(run_gen)

View File

@ -5,7 +5,7 @@
Summary: The GNU core utilities: a set of tools commonly used in shell scripts Summary: The GNU core utilities: a set of tools commonly used in shell scripts
Name: coreutils Name: coreutils
Version: 5.93 Version: 5.93
Release: 4.1 Release: 5
License: GPL License: GPL
Group: System Environment/Base Group: System Environment/Base
Url: http://www.gnu.org/software/coreutils/ Url: http://www.gnu.org/software/coreutils/
@ -267,6 +267,9 @@ fi
/sbin/runuser /sbin/runuser
%changelog %changelog
* Fri Dec 23 2005 Tim Waugh <twaugh@redhat.com> 5.93-5
- Fix "sort -n" (bug #176468).
* Fri Dec 16 2005 Tim Waugh <twaugh@redhat.com> * Fri Dec 16 2005 Tim Waugh <twaugh@redhat.com>
- Explicitly set default POSIX2 version during configure stage. - Explicitly set default POSIX2 version during configure stage.