diff --git a/coreutils-8.23-i18n-1.patch b/coreutils-8.24-i18n-1.patch similarity index 93% rename from coreutils-8.23-i18n-1.patch rename to coreutils-8.24-i18n-1.patch index eda68eb..6f3c8e4 100644 --- a/coreutils-8.23-i18n-1.patch +++ b/coreutils-8.24-i18n-1.patch @@ -1,26 +1,14 @@ Submitted by: Matt Burgess (matthew_at_linuxfromscratch_dot_org) Date: 2013-12-16 -Initial Package Version: 8.22 (Rebased for version 8.23 by bdubbs@linuxfromscratch.org)) +Initial Package Version: 8.22 (Rebased for version 8.24 by bdubbs@linuxfromscratch.org 2015-704) Upstream Status: Rejected Origin: Based on Fedora's i18n patch at http://pkgs.fedoraproject.org/cgit/coreutils.git/plain/coreutils-i18n.patch Description: Fixes several i18n issues with various Coreutils programs - -diff -Naur coreutils-8.23.orig/Makefile.in coreutils-8.23/Makefile.in ---- coreutils-8.23.orig/Makefile.in 2014-07-18 17:22:24.000000000 -0500 -+++ coreutils-8.23/Makefile.in 2014-07-18 22:36:17.404066931 -0500 -@@ -5057,6 +5057,7 @@ - tests/misc/chcon.sh \ - tests/misc/chroot-credentials.sh \ - tests/misc/selinux.sh \ -+ tests/misc/sort-mb-tests.sh \ - tests/misc/truncate-owned-by-other.sh \ - tests/mkdir/writable-under-readonly.sh \ - tests/mkdir/smack-root.sh \ -diff -Naur coreutils-8.23.orig/lib/linebuffer.h coreutils-8.23/lib/linebuffer.h ---- coreutils-8.23.orig/lib/linebuffer.h 2014-05-29 07:05:50.000000000 -0500 -+++ coreutils-8.23/lib/linebuffer.h 2014-07-18 22:36:17.392067256 -0500 +diff -Naur coreutils-8.24/lib/linebuffer.h coreutils-8.24-mod/lib/linebuffer.h +--- coreutils-8.24/lib/linebuffer.h 2015-06-16 00:00:37.000000000 -0500 ++++ coreutils-8.24-mod/lib/linebuffer.h 2015-07-04 15:08:33.513055809 -0500 @@ -21,6 +21,11 @@ # include @@ -43,9 +31,9 @@ diff -Naur coreutils-8.23.orig/lib/linebuffer.h coreutils-8.23/lib/linebuffer.h }; /* Initialize linebuffer LINEBUFFER for use. */ -diff -Naur coreutils-8.23.orig/src/cut.c coreutils-8.23/src/cut.c ---- coreutils-8.23.orig/src/cut.c 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/src/cut.c 2014-07-18 22:44:56.489482312 -0500 +diff -Naur coreutils-8.24/src/cut.c coreutils-8.24-mod/src/cut.c +--- coreutils-8.24/src/cut.c 2015-06-26 12:05:22.000000000 -0500 ++++ coreutils-8.24-mod/src/cut.c 2015-07-04 15:08:33.514055775 -0500 @@ -28,6 +28,11 @@ #include #include @@ -176,7 +164,7 @@ diff -Naur coreutils-8.23.orig/src/cut.c coreutils-8.23/src/cut.c /* True if the --output-delimiter=STRING option was specified. */ static bool output_delimiter_specified; -@@ -188,7 +266,7 @@ +@@ -189,7 +267,7 @@ -f, --fields=LIST select only these fields; also print any line\n\ that contains no delimiter character, unless\n\ the -s option is specified\n\ @@ -185,7 +173,7 @@ diff -Naur coreutils-8.23.orig/src/cut.c coreutils-8.23/src/cut.c "), stdout); fputs (_("\ --complement complement the set of selected bytes, characters\n\ -@@ -381,6 +459,9 @@ +@@ -380,6 +458,9 @@ if (operating_mode == byte_mode) error (0, 0, _("byte offset %s is too large"), quote (bad_num)); @@ -195,7 +183,7 @@ diff -Naur coreutils-8.23.orig/src/cut.c coreutils-8.23/src/cut.c else error (0, 0, _("field number %s is too large"), quote (bad_num)); -@@ -505,6 +586,82 @@ +@@ -504,6 +585,82 @@ } } @@ -278,7 +266,7 @@ diff -Naur coreutils-8.23.orig/src/cut.c coreutils-8.23/src/cut.c /* Read from stream STREAM, printing to standard output any selected fields. */ static void -@@ -649,13 +806,211 @@ +@@ -648,13 +805,211 @@ } } @@ -493,7 +481,7 @@ diff -Naur coreutils-8.23.orig/src/cut.c coreutils-8.23/src/cut.c } /* Process file FILE to standard output. -@@ -707,6 +1062,7 @@ +@@ -706,6 +1061,7 @@ bool ok; bool delim_specified = false; char *spec_list_string IF_LINT ( = NULL); @@ -501,7 +489,7 @@ diff -Naur coreutils-8.23.orig/src/cut.c coreutils-8.23/src/cut.c initialize_main (&argc, &argv); set_program_name (argv[0]); -@@ -729,7 +1085,6 @@ +@@ -728,7 +1084,6 @@ switch (optc) { case 'b': @@ -509,7 +497,7 @@ diff -Naur coreutils-8.23.orig/src/cut.c coreutils-8.23/src/cut.c /* Build the byte list. */ if (operating_mode != undefined_mode) FATAL_ERROR (_("only one type of list may be specified")); -@@ -737,6 +1092,14 @@ +@@ -736,6 +1091,14 @@ spec_list_string = optarg; break; @@ -524,7 +512,7 @@ diff -Naur coreutils-8.23.orig/src/cut.c coreutils-8.23/src/cut.c case 'f': /* Build the field list. */ if (operating_mode != undefined_mode) -@@ -748,10 +1111,38 @@ +@@ -747,10 +1110,38 @@ case 'd': /* New delimiter. */ /* Interpret -d '' to mean 'use the NUL byte as the delimiter.' */ @@ -567,7 +555,7 @@ diff -Naur coreutils-8.23.orig/src/cut.c coreutils-8.23/src/cut.c break; case OUTPUT_DELIMITER_OPTION: -@@ -764,6 +1155,7 @@ +@@ -763,6 +1154,7 @@ break; case 'n': @@ -575,7 +563,7 @@ diff -Naur coreutils-8.23.orig/src/cut.c coreutils-8.23/src/cut.c break; case 's': -@@ -803,15 +1195,34 @@ +@@ -802,15 +1194,34 @@ } if (!delim_specified) @@ -616,9 +604,9 @@ diff -Naur coreutils-8.23.orig/src/cut.c coreutils-8.23/src/cut.c } if (optind == argc) -diff -Naur coreutils-8.23.orig/src/expand.c coreutils-8.23/src/expand.c ---- coreutils-8.23.orig/src/expand.c 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/src/expand.c 2014-07-18 22:36:17.394067191 -0500 +diff -Naur coreutils-8.24/src/expand.c coreutils-8.24-mod/src/expand.c +--- coreutils-8.24/src/expand.c 2015-06-26 12:05:22.000000000 -0500 ++++ coreutils-8.24-mod/src/expand.c 2015-07-04 15:08:33.514055775 -0500 @@ -37,12 +37,34 @@ #include #include @@ -811,14 +799,13 @@ diff -Naur coreutils-8.23.orig/src/expand.c coreutils-8.23/src/expand.c if (have_read_stdin && fclose (stdin) != 0) error (EXIT_FAILURE, errno, "-"); -diff -Naur coreutils-8.23.orig/src/fold.c coreutils-8.23/src/fold.c ---- coreutils-8.23.orig/src/fold.c 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/src/fold.c 2014-07-18 22:36:17.394067191 -0500 -@@ -22,12 +22,34 @@ +diff -Naur coreutils-8.24/src/fold.c coreutils-8.24-mod/src/fold.c +--- coreutils-8.24/src/fold.c 2015-06-26 12:05:22.000000000 -0500 ++++ coreutils-8.24-mod/src/fold.c 2015-07-04 15:15:06.645650864 -0500 +@@ -22,11 +22,32 @@ #include #include -+/* Get mbstate_t, mbrtowc(), wcwidth(). */ +#if HAVE_WCHAR_H +# include +#endif @@ -831,8 +818,7 @@ diff -Naur coreutils-8.23.orig/src/fold.c coreutils-8.23/src/fold.c #include "system.h" #include "error.h" #include "fadvise.h" - #include "quote.h" - #include "xstrtol.h" + #include "xdectoint.h" +/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC + installation; work around this configuration error. */ @@ -849,7 +835,7 @@ diff -Naur coreutils-8.23.orig/src/fold.c coreutils-8.23/src/fold.c #define TAB_WIDTH 8 /* The official name of this program (e.g., no 'g' prefix). */ -@@ -35,20 +57,41 @@ +@@ -34,20 +55,41 @@ #define AUTHORS proper_name ("David MacKenzie") @@ -895,7 +881,7 @@ diff -Naur coreutils-8.23.orig/src/fold.c coreutils-8.23/src/fold.c {"spaces", no_argument, NULL, 's'}, {"width", required_argument, NULL, 'w'}, {GETOPT_HELP_OPTION_DECL}, -@@ -76,6 +119,7 @@ +@@ -75,6 +117,7 @@ fputs (_("\ -b, --bytes count bytes rather than columns\n\ @@ -903,7 +889,7 @@ diff -Naur coreutils-8.23.orig/src/fold.c coreutils-8.23/src/fold.c -s, --spaces break at spaces\n\ -w, --width=WIDTH use WIDTH columns instead of 80\n\ "), stdout); -@@ -93,7 +137,7 @@ +@@ -92,7 +135,7 @@ static size_t adjust_column (size_t column, char c) { @@ -912,7 +898,7 @@ diff -Naur coreutils-8.23.orig/src/fold.c coreutils-8.23/src/fold.c { if (c == '\b') { -@@ -116,30 +160,14 @@ +@@ -115,30 +158,14 @@ to stdout, with maximum line length WIDTH. Return true if successful. */ @@ -945,7 +931,7 @@ diff -Naur coreutils-8.23.orig/src/fold.c coreutils-8.23/src/fold.c fadvise (istream, FADVISE_SEQUENTIAL); -@@ -169,6 +197,15 @@ +@@ -168,6 +195,15 @@ bool found_blank = false; size_t logical_end = offset_out; @@ -961,7 +947,7 @@ diff -Naur coreutils-8.23.orig/src/fold.c coreutils-8.23/src/fold.c /* Look for the last blank. */ while (logical_end) { -@@ -215,11 +252,221 @@ +@@ -214,11 +250,221 @@ line_out[offset_out++] = c; } @@ -1184,7 +1170,7 @@ diff -Naur coreutils-8.23.orig/src/fold.c coreutils-8.23/src/fold.c if (ferror (istream)) { error (0, saved_errno, "%s", filename); -@@ -252,7 +499,8 @@ +@@ -251,7 +497,8 @@ atexit (close_stdout); @@ -1194,7 +1180,7 @@ diff -Naur coreutils-8.23.orig/src/fold.c coreutils-8.23/src/fold.c while ((optc = getopt_long (argc, argv, shortopts, longopts, NULL)) != -1) { -@@ -261,7 +509,15 @@ +@@ -260,7 +507,15 @@ switch (optc) { case 'b': /* Count bytes rather than columns. */ @@ -1211,9 +1197,9 @@ diff -Naur coreutils-8.23.orig/src/fold.c coreutils-8.23/src/fold.c break; case 's': /* Break at word boundaries. */ -diff -Naur coreutils-8.23.orig/src/join.c coreutils-8.23/src/join.c ---- coreutils-8.23.orig/src/join.c 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/src/join.c 2014-07-18 22:36:17.394067191 -0500 +diff -Naur coreutils-8.24/src/join.c coreutils-8.24-mod/src/join.c +--- coreutils-8.24/src/join.c 2015-06-26 12:05:22.000000000 -0500 ++++ coreutils-8.24-mod/src/join.c 2015-07-04 15:08:33.515055741 -0500 @@ -22,18 +22,32 @@ #include #include @@ -1265,7 +1251,7 @@ diff -Naur coreutils-8.23.orig/src/join.c coreutils-8.23/src/join.c /* If nonzero, check that the input is correctly ordered. */ static enum -@@ -269,13 +285,14 @@ +@@ -275,13 +291,14 @@ if (ptr == lim) return; @@ -1283,7 +1269,7 @@ diff -Naur coreutils-8.23.orig/src/join.c coreutils-8.23/src/join.c { /* Skip leading blanks before the first field. */ while (isblank (to_uchar (*ptr))) -@@ -299,6 +316,147 @@ +@@ -305,6 +322,147 @@ extract_field (line, ptr, lim - ptr); } @@ -1431,7 +1417,7 @@ diff -Naur coreutils-8.23.orig/src/join.c coreutils-8.23/src/join.c static void freeline (struct line *line) { -@@ -320,56 +478,133 @@ +@@ -326,56 +484,133 @@ size_t jf_1, size_t jf_2) { /* Start of field to compare in each file. */ @@ -1588,7 +1574,7 @@ diff -Naur coreutils-8.23.orig/src/join.c coreutils-8.23/src/join.c } /* Check that successive input lines PREV and CURRENT from input file -@@ -461,6 +696,11 @@ +@@ -467,6 +702,11 @@ } ++line_no[which - 1]; @@ -1600,7 +1586,7 @@ diff -Naur coreutils-8.23.orig/src/join.c coreutils-8.23/src/join.c xfields (line); if (prevline[which - 1]) -@@ -560,21 +800,28 @@ +@@ -566,21 +806,28 @@ /* Output all the fields in line, other than the join field. */ @@ -1632,7 +1618,7 @@ diff -Naur coreutils-8.23.orig/src/join.c coreutils-8.23/src/join.c prfield (i, line); } } -@@ -585,7 +832,6 @@ +@@ -591,7 +838,6 @@ prjoin (struct line const *line1, struct line const *line2) { const struct outlist *outlist; @@ -1640,7 +1626,7 @@ diff -Naur coreutils-8.23.orig/src/join.c coreutils-8.23/src/join.c size_t field; struct line const *line; -@@ -619,7 +865,7 @@ +@@ -625,7 +871,7 @@ o = o->next; if (o == NULL) break; @@ -1649,7 +1635,7 @@ diff -Naur coreutils-8.23.orig/src/join.c coreutils-8.23/src/join.c } putchar (eolchar); } -@@ -1097,21 +1343,46 @@ +@@ -1103,21 +1349,46 @@ case 't': { @@ -1706,9 +1692,9 @@ diff -Naur coreutils-8.23.orig/src/join.c coreutils-8.23/src/join.c break; case 'z': -diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c ---- coreutils-8.23.orig/src/pr.c 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/src/pr.c 2014-07-18 22:36:17.395067159 -0500 +diff -Naur coreutils-8.24/src/pr.c coreutils-8.24-mod/src/pr.c +--- coreutils-8.24/src/pr.c 2015-06-26 12:05:22.000000000 -0500 ++++ coreutils-8.24-mod/src/pr.c 2015-07-04 15:08:33.516055707 -0500 @@ -312,6 +312,24 @@ #include @@ -1734,9 +1720,9 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c #include "system.h" #include "error.h" #include "fadvise.h" -@@ -323,6 +341,18 @@ - #include "strftime.h" +@@ -324,6 +342,18 @@ #include "xstrtol.h" + #include "xdectoint.h" +/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ +#if HAVE_MBRTOWC && defined mbstate_t @@ -1753,7 +1739,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c /* The official name of this program (e.g., no 'g' prefix). */ #define PROGRAM_NAME "pr" -@@ -415,7 +445,20 @@ +@@ -416,7 +446,20 @@ typedef struct COLUMN COLUMN; @@ -1775,23 +1761,23 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c static bool read_line (COLUMN *p); static bool print_page (void); static bool print_stored (COLUMN *p); -@@ -425,6 +468,7 @@ - static void pad_across_to (int position); - static void add_line_number (COLUMN *p); +@@ -428,6 +471,7 @@ + static void getoptnum (const char *n_str, int min, int *num, + const char *errfmt); static void getoptarg (char *arg, char switch_char, char *character, + int *character_length, int *character_width, int *number); static void print_files (int number_of_files, char **av); static void init_parameters (int number_of_files); -@@ -438,7 +482,6 @@ - static void pad_down (int lines); +@@ -441,7 +485,6 @@ + static void pad_down (unsigned int lines); static void read_rest_of_line (COLUMN *p); static void skip_read (COLUMN *p, int column_number); -static void print_char (char c); static void cleanup (void); static void print_sep_string (void); static void separator_string (const char *optarg_S); -@@ -450,7 +493,7 @@ +@@ -453,7 +496,7 @@ we store the leftmost columns contiguously in buff. To print a line from buff, get the index of the first character from line_vector[i], and print up to line_vector[i + 1]. */ @@ -1800,7 +1786,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c /* Index of the position in buff where the next character will be stored. */ -@@ -554,7 +597,7 @@ +@@ -557,7 +600,7 @@ static bool untabify_input = false; /* (-e) The input tab character. */ @@ -1809,7 +1795,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c /* (-e) Tabstops are at chars_per_tab, 2*chars_per_tab, 3*chars_per_tab, ... where the leftmost column is 1. */ -@@ -564,7 +607,10 @@ +@@ -567,7 +610,10 @@ static bool tabify_output = false; /* (-i) The output tab character. */ @@ -1821,7 +1807,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c /* (-i) The width of the output tab. */ static int chars_per_output_tab = 8; -@@ -634,7 +680,13 @@ +@@ -637,7 +683,13 @@ static bool numbered_lines = false; /* (-n) Character which follows each line number. */ @@ -1836,7 +1822,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c /* (-n) line counting starts with 1st line of input file (not with 1st line of 1st page printed). */ -@@ -687,6 +739,7 @@ +@@ -690,6 +742,7 @@ -a|COLUMN|-m is a 'space' and with the -J option a 'tab'. */ static char *col_sep_string = (char *) ""; static int col_sep_length = 0; @@ -1844,7 +1830,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c static char *column_separator = (char *) " "; static char *line_separator = (char *) "\t"; -@@ -843,6 +896,13 @@ +@@ -840,6 +893,13 @@ col_sep_length = (int) strlen (optarg_S); col_sep_string = xmalloc (col_sep_length + 1); strcpy (col_sep_string, optarg_S); @@ -1858,7 +1844,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c } int -@@ -867,6 +927,21 @@ +@@ -864,6 +924,21 @@ atexit (close_stdout); @@ -1880,7 +1866,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c n_files = 0; file_names = (argc > 1 ? xmalloc ((argc - 1) * sizeof (char *)) -@@ -943,8 +1018,12 @@ +@@ -940,8 +1015,12 @@ break; case 'e': if (optarg) @@ -1895,7 +1881,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c /* Could check tab width > 0. */ untabify_input = true; break; -@@ -957,8 +1036,12 @@ +@@ -954,8 +1033,12 @@ break; case 'i': if (optarg) @@ -1910,7 +1896,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c /* Could check tab width > 0. */ tabify_output = true; break; -@@ -985,8 +1068,8 @@ +@@ -973,8 +1056,8 @@ case 'n': numbered_lines = true; if (optarg) @@ -1921,7 +1907,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c break; case 'N': skip_count = false; -@@ -1025,7 +1108,7 @@ +@@ -998,7 +1081,7 @@ old_s = false; /* Reset an additional input of -s, -S dominates -s */ col_sep_string = bad_cast (""); @@ -1930,7 +1916,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c use_col_separator = true; if (optarg) separator_string (optarg); -@@ -1182,10 +1265,45 @@ +@@ -1152,10 +1235,45 @@ a number. */ static void @@ -1978,7 +1964,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c if (*arg) { long int tmp_long; -@@ -1207,6 +1325,11 @@ +@@ -1177,6 +1295,11 @@ init_parameters (int number_of_files) { int chars_used_by_number = 0; @@ -1990,7 +1976,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c lines_per_body = lines_per_page - lines_per_header - lines_per_footer; if (lines_per_body <= 0) -@@ -1244,7 +1367,7 @@ +@@ -1214,7 +1337,7 @@ else col_sep_string = column_separator; @@ -1999,7 +1985,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c use_col_separator = true; } /* It's rather pointless to define a TAB separator with column -@@ -1274,11 +1397,11 @@ +@@ -1244,11 +1367,11 @@ + TAB_WIDTH (chars_per_input_tab, chars_per_number); */ /* Estimate chars_per_text without any margin and keep it constant. */ @@ -2013,7 +1999,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c /* The number is part of the column width unless we are printing files in parallel. */ -@@ -1287,7 +1410,7 @@ +@@ -1257,7 +1380,7 @@ } chars_per_column = (chars_per_line - chars_used_by_number @@ -2022,7 +2008,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c if (chars_per_column < 1) error (EXIT_FAILURE, 0, _("page width too narrow")); -@@ -1305,7 +1428,7 @@ +@@ -1275,7 +1398,7 @@ We've to use 8 as the lower limit, if we use chars_per_default_tab = 8 to expand a tab which is not an input_tab-char. */ free (clump_buff); @@ -2031,7 +2017,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c } /* Open the necessary files, -@@ -1413,7 +1536,7 @@ +@@ -1383,7 +1506,7 @@ /* Enlarge p->start_position of first column to use the same form of padding_not_printed with all columns. */ @@ -2040,7 +2026,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c /* This loop takes care of all but the rightmost column. */ -@@ -1447,7 +1570,7 @@ +@@ -1417,7 +1540,7 @@ } else { @@ -2049,7 +2035,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c h_next = h + chars_per_column; } } -@@ -1738,9 +1861,9 @@ +@@ -1708,9 +1831,9 @@ align_column (COLUMN *p) { padding_not_printed = p->start_position; @@ -2061,7 +2047,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c padding_not_printed = ANYWHERE; } -@@ -2011,13 +2134,13 @@ +@@ -1981,13 +2104,13 @@ /* May be too generous. */ buff = X2REALLOC (buff, &buff_allocated); } @@ -2077,7 +2063,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c char *s; int num_width; -@@ -2034,22 +2157,24 @@ +@@ -2004,22 +2127,24 @@ /* Tabification is assumed for multiple columns, also for n-separators, but 'default n-separator = TAB' hasn't been given priority over equal column_width also specified by POSIX. */ @@ -2106,7 +2092,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c output_position = POS_AFTER_TAB (chars_per_output_tab, output_position); } -@@ -2210,7 +2335,7 @@ +@@ -2180,7 +2305,7 @@ while (goal - h_old > 1 && (h_new = POS_AFTER_TAB (chars_per_output_tab, h_old)) <= goal) { @@ -2115,7 +2101,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c h_old = h_new; } while (++h_old <= goal) -@@ -2230,6 +2355,7 @@ +@@ -2200,6 +2325,7 @@ { char *s; int l = col_sep_length; @@ -2123,7 +2109,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c s = col_sep_string; -@@ -2243,6 +2369,7 @@ +@@ -2213,6 +2339,7 @@ { for (; separators_not_printed > 0; --separators_not_printed) { @@ -2131,7 +2117,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c while (l-- > 0) { /* 3 types of sep_strings: spaces only, spaces and chars, -@@ -2256,12 +2383,15 @@ +@@ -2226,12 +2353,15 @@ } else { @@ -2148,7 +2134,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c /* sep_string ends with some spaces */ if (spaces_not_printed > 0) print_white_space (); -@@ -2289,7 +2419,7 @@ +@@ -2259,7 +2389,7 @@ required number of tabs and spaces. */ static void @@ -2157,7 +2143,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c { if (tabify_output) { -@@ -2313,6 +2443,74 @@ +@@ -2283,6 +2413,74 @@ putchar (c); } @@ -2232,7 +2218,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c /* Skip to page PAGE before printing. PAGE may be larger than total number of pages. */ -@@ -2492,9 +2690,9 @@ +@@ -2462,9 +2660,9 @@ align_empty_cols = false; } @@ -2244,7 +2230,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c padding_not_printed = ANYWHERE; } -@@ -2564,7 +2762,7 @@ +@@ -2534,7 +2732,7 @@ int i; int line = p->current_line++; @@ -2253,7 +2239,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c /* FIXME UMR: Uninitialized memory read: * This is occurring while in: -@@ -2576,7 +2774,7 @@ +@@ -2546,7 +2744,7 @@ xmalloc [xmalloc.c:94] init_store_cols [pr.c:1648] */ @@ -2262,7 +2248,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c pad_vertically = true; -@@ -2595,9 +2793,9 @@ +@@ -2565,9 +2763,9 @@ } } @@ -2274,7 +2260,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c padding_not_printed = ANYWHERE; } -@@ -2610,8 +2808,8 @@ +@@ -2580,8 +2778,8 @@ if (spaces_not_printed == 0) { output_position = p->start_position + end_vector[line]; @@ -2285,7 +2271,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c } return true; -@@ -2630,7 +2828,7 @@ +@@ -2600,7 +2798,7 @@ number of characters is 1.) */ static int @@ -2294,7 +2280,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c { unsigned char uc = c; char *s = clump_buff; -@@ -2640,10 +2838,10 @@ +@@ -2610,10 +2808,10 @@ int chars; int chars_per_c = 8; @@ -2307,7 +2293,7 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c { width = TAB_WIDTH (chars_per_c, input_position); -@@ -2724,6 +2922,164 @@ +@@ -2694,6 +2892,164 @@ return chars; } @@ -2472,9 +2458,9 @@ diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c /* We've just printed some files and need to clean up things before looking for more options and printing the next batch of files. -diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c ---- coreutils-8.23.orig/src/sort.c 2014-07-13 17:09:52.000000000 -0500 -+++ coreutils-8.23/src/sort.c 2014-07-18 22:36:17.397067101 -0500 +diff -Naur coreutils-8.24/src/sort.c coreutils-8.24-mod/src/sort.c +--- coreutils-8.24/src/sort.c 2015-06-26 12:05:22.000000000 -0500 ++++ coreutils-8.24-mod/src/sort.c 2015-07-04 15:08:33.517055673 -0500 @@ -29,6 +29,14 @@ #include #include @@ -2548,7 +2534,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c /* Flag to remove consecutive duplicate lines from the output. Only the last of a sequence of equal lines will be output. */ -@@ -811,6 +842,46 @@ +@@ -810,6 +841,46 @@ reap (-1); } @@ -2595,7 +2581,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c /* Clean up any remaining temporary files. */ static void -@@ -1255,7 +1326,7 @@ +@@ -1254,7 +1325,7 @@ free (node); } @@ -2604,7 +2590,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c static int struct_month_cmp (void const *m1, void const *m2) -@@ -1270,7 +1341,7 @@ +@@ -1269,7 +1340,7 @@ /* Initialize the character class tables. */ static void @@ -2613,7 +2599,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c { size_t i; -@@ -1282,7 +1353,7 @@ +@@ -1281,7 +1352,7 @@ fold_toupper[i] = toupper (i); } @@ -2622,7 +2608,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c /* If we're not in the "C" locale, read different names for months. */ if (hard_LC_TIME) { -@@ -1364,6 +1435,84 @@ +@@ -1363,6 +1434,84 @@ xstrtol_fatal (e, oi, c, long_options, s); } @@ -2707,7 +2693,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c /* Specify the amount of main memory to use when sorting. */ static void specify_sort_size (int oi, char c, char const *s) -@@ -1597,7 +1746,7 @@ +@@ -1596,7 +1745,7 @@ by KEY in LINE. */ static char * @@ -2716,7 +2702,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c { char *ptr = line->text, *lim = ptr + line->length - 1; size_t sword = key->sword; -@@ -1606,10 +1755,10 @@ +@@ -1605,10 +1754,10 @@ /* The leading field separator itself is included in a field when -t is absent. */ @@ -2729,7 +2715,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c ++ptr; if (ptr < lim) ++ptr; -@@ -1635,11 +1784,70 @@ +@@ -1634,11 +1783,70 @@ return ptr; } @@ -2801,7 +2787,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c { char *ptr = line->text, *lim = ptr + line->length - 1; size_t eword = key->eword, echar = key->echar; -@@ -1654,10 +1862,10 @@ +@@ -1653,10 +1861,10 @@ 'beginning' is the first character following the delimiting TAB. Otherwise, leave PTR pointing at the first 'blank' character after the preceding field. */ @@ -2814,7 +2800,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c ++ptr; if (ptr < lim && (eword || echar)) ++ptr; -@@ -1703,10 +1911,10 @@ +@@ -1702,10 +1910,10 @@ */ /* Make LIM point to the end of (one byte past) the current field. */ @@ -2827,7 +2813,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c if (newlim) lim = newlim; } -@@ -1737,6 +1945,130 @@ +@@ -1736,6 +1944,130 @@ return ptr; } @@ -2958,7 +2944,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c /* 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 file wasn't terminated by a newline, supply one. Set up BUF's line -@@ -1823,8 +2155,22 @@ +@@ -1822,8 +2154,22 @@ else { if (key->skipsblanks) @@ -2983,7 +2969,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c line->keybeg = line_start; } } -@@ -1945,7 +2291,7 @@ +@@ -1944,7 +2290,7 @@ hideously fast. */ static int @@ -2992,7 +2978,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c { while (blanks[to_uchar (*a)]) a++; -@@ -1955,6 +2301,25 @@ +@@ -1954,6 +2300,25 @@ return strnumcmp (a, b, decimal_point, thousands_sep); } @@ -3018,7 +3004,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c /* Work around a problem whereby the long double value returned by glibc's strtold ("NaN", ...) contains uninitialized bits: clear all bytes of A and B before calling strtold. FIXME: remove this function once -@@ -2005,7 +2370,7 @@ +@@ -2004,7 +2369,7 @@ Return 0 if the name in S is not recognized. */ static int @@ -3027,7 +3013,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c { size_t lo = 0; size_t hi = MONTHS_PER_YEAR; -@@ -2280,15 +2645,14 @@ +@@ -2279,15 +2644,14 @@ char saved = *lim; *lim = '\0'; @@ -3045,7 +3031,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c else if (key->general_numeric) ignore_value (strtold (beg, &tighter_lim)); else if (key->numeric || key->human_numeric) -@@ -2432,7 +2796,7 @@ +@@ -2431,7 +2795,7 @@ bool maybe_space_aligned = !hard_LC_COLLATE && default_key_compare (key) && !(key->schar || key->echar); bool line_offset = key->eword == 0 && key->echar != 0; /* -k1.x,1.y */ @@ -3054,7 +3040,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c && ((!key->skipsblanks && !(implicit_skip || maybe_space_aligned)) || (!key->skipsblanks && key->schar) || (!key->skipeblanks && key->echar))) -@@ -2490,11 +2854,87 @@ +@@ -2489,11 +2853,87 @@ error (0, 0, _("option '-r' only applies to last-resort comparison")); } @@ -3143,7 +3129,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c { struct keyfield *key = keylist; -@@ -2579,7 +3019,7 @@ +@@ -2578,7 +3018,7 @@ else if (key->human_numeric) diff = human_numcompare (ta, tb); else if (key->month) @@ -3152,7 +3138,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c else if (key->random) diff = compare_random (ta, tlena, tb, tlenb); else if (key->version) -@@ -2695,6 +3135,191 @@ +@@ -2694,6 +3134,209 @@ return key->reverse ? -diff : diff; } @@ -3257,13 +3243,16 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c + size_t lena = lima <= texta ? 0 : lima - texta; + size_t lenb = limb <= textb ? 0 : limb - textb; + ++ char enda IF_LINT (= 0); ++ char endb IF_LINT (= 0); ++ + char const *translate = key->translate; + bool const *ignore = key->ignore; + + if (ignore || translate) + { -+ char *copy_a = (char *) xmalloc (lena + 1 + lenb + 1); -+ char *copy_b = copy_a + lena + 1; ++ char *copy_a = (char *) xmalloc ((lena + lenb) * MB_CUR_MAX + 2); ++ char *copy_b = copy_a + lena * MB_CUR_MAX + 1; + size_t new_len_a, new_len_b; + size_t i, j; + @@ -3274,6 +3263,12 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c + texta = copy_a; textb = copy_b; + lena = new_len_a; lenb = new_len_b; + } ++ else ++ { ++ /* Use the keys in-place, temporarily null-terminated. */ ++ enda = texta[lena]; texta[lena] = '\0'; ++ endb = textb[lenb]; textb[lenb] = '\0'; ++ } + + if (key->random) + diff = compare_random (texta, lena, textb, lenb); @@ -3297,13 +3292,22 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c + diff = 1; + else if (hard_LC_COLLATE && !folding) + { -+ diff = xmemcoll0 (texta, lena, textb, lenb); ++ diff = xmemcoll0 (texta, lena + 1, textb, lenb + 1); + } + else -+ diff = memcmp (texta, textb, MIN (lena + 1,lenb + 1)); ++ { ++ diff = memcmp (texta, textb, MIN (lena, lenb)); ++ if (diff == 0) ++ diff = lena < lenb ? -1 : lena != lenb; ++ } + + if (ignore || translate) + free (texta); ++ else ++ { ++ texta[lena] = enda; ++ textb[lenb] = endb; ++ } + + if (diff) + goto not_equal; @@ -3344,7 +3348,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c /* Compare two lines A and B, returning negative, zero, or positive depending on whether A compares less than, equal to, or greater than B. */ -@@ -2722,7 +3347,7 @@ +@@ -2721,7 +3364,7 @@ diff = - NONZERO (blen); else if (blen == 0) diff = 1; @@ -3353,7 +3357,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c { /* Note xmemcoll0 is a performance enhancement as it will not unconditionally write '\0' after the -@@ -4121,6 +4746,7 @@ +@@ -4120,6 +4763,7 @@ break; case 'f': key->translate = fold_toupper; @@ -3361,7 +3365,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c break; case 'g': key->general_numeric = true; -@@ -4198,7 +4824,7 @@ +@@ -4197,7 +4841,7 @@ initialize_exit_failure (SORT_FAILURE); hard_LC_COLLATE = hard_locale (LC_COLLATE); @@ -3370,7 +3374,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c hard_LC_TIME = hard_locale (LC_TIME); #endif -@@ -4219,6 +4845,29 @@ +@@ -4218,6 +4862,29 @@ thousands_sep = -1; } @@ -3400,7 +3404,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c have_read_stdin = false; inittables (); -@@ -4493,13 +5142,34 @@ +@@ -4492,13 +5159,34 @@ case 't': { @@ -3439,7 +3443,7 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c else { /* Provoke with 'sort -txx'. Complain about -@@ -4510,9 +5180,12 @@ +@@ -4509,9 +5197,12 @@ quote (optarg)); } } @@ -3454,9 +3458,9 @@ diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c } break; -diff -Naur coreutils-8.23.orig/src/unexpand.c coreutils-8.23/src/unexpand.c ---- coreutils-8.23.orig/src/unexpand.c 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/src/unexpand.c 2014-07-18 22:36:17.397067101 -0500 +diff -Naur coreutils-8.24/src/unexpand.c coreutils-8.24-mod/src/unexpand.c +--- coreutils-8.24/src/unexpand.c 2015-06-26 12:05:22.000000000 -0500 ++++ coreutils-8.24-mod/src/unexpand.c 2015-07-04 15:08:33.517055673 -0500 @@ -38,12 +38,29 @@ #include #include @@ -3712,9 +3716,9 @@ diff -Naur coreutils-8.23.orig/src/unexpand.c coreutils-8.23/src/unexpand.c if (have_read_stdin && fclose (stdin) != 0) error (EXIT_FAILURE, errno, "-"); -diff -Naur coreutils-8.23.orig/src/uniq.c coreutils-8.23/src/uniq.c ---- coreutils-8.23.orig/src/uniq.c 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/src/uniq.c 2014-07-18 22:36:17.398067074 -0500 +diff -Naur coreutils-8.24/src/uniq.c coreutils-8.24-mod/src/uniq.c +--- coreutils-8.24/src/uniq.c 2015-06-26 12:04:19.000000000 -0500 ++++ coreutils-8.24-mod/src/uniq.c 2015-07-04 15:08:33.517055673 -0500 @@ -21,6 +21,17 @@ #include #include @@ -4099,20 +4103,54 @@ diff -Naur coreutils-8.23.orig/src/uniq.c coreutils-8.23/src/uniq.c skip_chars = 0; skip_fields = 0; check_chars = SIZE_MAX; -diff -Naur coreutils-8.23.orig/tests/local.mk coreutils-8.23/tests/local.mk ---- coreutils-8.23.orig/tests/local.mk 2014-07-13 17:09:52.000000000 -0500 -+++ coreutils-8.23/tests/local.mk 2014-07-18 22:36:17.398067074 -0500 -@@ -331,6 +331,7 @@ +diff -Naur coreutils-8.24/tests/i18n/sort.sh coreutils-8.24-mod/tests/i18n/sort.sh +--- coreutils-8.24/tests/i18n/sort.sh 1969-12-31 18:00:00.000000000 -0600 ++++ coreutils-8.24-mod/tests/i18n/sort.sh 2015-07-04 15:08:33.517055673 -0500 +@@ -0,0 +1,29 @@ ++#!/bin/sh ++# Verify sort's multi-byte support. ++ ++. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src ++print_ver_ sort ++ ++export LC_ALL=en_US.UTF-8 ++locale -k LC_CTYPE | grep -q "charmap.*UTF-8" \ ++ || skip_ "No UTF-8 locale available" ++ ++# Enable heap consistency checkng on older systems ++export MALLOC_CHECK_=2 ++ ++ ++# check buffer overflow issue due to ++# expanding multi-byte representation due to case conversion ++# https://bugzilla.suse.com/show_bug.cgi?id=928749 ++cat < exp ++. ++ɑ ++EOF ++cat < out || fail=1 ++. ++ɑ ++EOF ++compare exp out || { fail=1; cat out; } ++ ++ ++Exit $fail +diff -Naur coreutils-8.24/tests/local.mk coreutils-8.24-mod/tests/local.mk +--- coreutils-8.24/tests/local.mk 2015-07-03 07:03:55.000000000 -0500 ++++ coreutils-8.24-mod/tests/local.mk 2015-07-04 15:08:33.518055639 -0500 +@@ -341,6 +341,8 @@ tests/misc/sort-discrim.sh \ tests/misc/sort-files0-from.pl \ tests/misc/sort-float.sh \ + tests/misc/sort-mb-tests.sh \ ++ tests/i18n/sort.sh \ tests/misc/sort-merge.pl \ tests/misc/sort-merge-fdlimit.sh \ tests/misc/sort-month.sh \ -diff -Naur coreutils-8.23.orig/tests/misc/cut.pl coreutils-8.23/tests/misc/cut.pl ---- coreutils-8.23.orig/tests/misc/cut.pl 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/tests/misc/cut.pl 2014-07-18 22:36:17.398067074 -0500 +diff -Naur coreutils-8.24/tests/misc/cut.pl coreutils-8.24-mod/tests/misc/cut.pl +--- coreutils-8.24/tests/misc/cut.pl 2015-06-26 12:04:19.000000000 -0500 ++++ coreutils-8.24-mod/tests/misc/cut.pl 2015-07-04 15:08:33.518055639 -0500 @@ -23,9 +23,11 @@ # Turn off localization of executable's output. @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3; @@ -4135,9 +4173,9 @@ diff -Naur coreutils-8.23.orig/tests/misc/cut.pl coreutils-8.23/tests/misc/cut.p push @new, ["$test_name-mb", @new_t, {ENV => "LC_ALL=$mb_locale"}]; } push @Tests, @new; -diff -Naur coreutils-8.23.orig/tests/misc/expand.pl coreutils-8.23/tests/misc/expand.pl ---- coreutils-8.23.orig/tests/misc/expand.pl 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/tests/misc/expand.pl 2014-07-18 22:36:17.399067050 -0500 +diff -Naur coreutils-8.24/tests/misc/expand.pl coreutils-8.24-mod/tests/misc/expand.pl +--- coreutils-8.24/tests/misc/expand.pl 2015-06-26 12:04:19.000000000 -0500 ++++ coreutils-8.24-mod/tests/misc/expand.pl 2015-07-04 15:08:33.518055639 -0500 @@ -23,6 +23,15 @@ # Turn off localization of executable's output. @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3; @@ -4192,9 +4230,9 @@ diff -Naur coreutils-8.23.orig/tests/misc/expand.pl coreutils-8.23/tests/misc/ex my $save_temps = $ENV{DEBUG}; my $verbose = $ENV{VERBOSE}; -diff -Naur coreutils-8.23.orig/tests/misc/fold.pl coreutils-8.23/tests/misc/fold.pl ---- coreutils-8.23.orig/tests/misc/fold.pl 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/tests/misc/fold.pl 2014-07-18 22:36:17.399067050 -0500 +diff -Naur coreutils-8.24/tests/misc/fold.pl coreutils-8.24-mod/tests/misc/fold.pl +--- coreutils-8.24/tests/misc/fold.pl 2015-06-26 12:04:19.000000000 -0500 ++++ coreutils-8.24-mod/tests/misc/fold.pl 2015-07-04 15:08:33.518055639 -0500 @@ -20,9 +20,18 @@ (my $program_name = $0) =~ s|.*/||; @@ -4264,9 +4302,9 @@ diff -Naur coreutils-8.23.orig/tests/misc/fold.pl coreutils-8.23/tests/misc/fold -my $prog = 'fold'; my $fail = run_tests ($program_name, $prog, \@Tests, $save_temps, $verbose); exit $fail; -diff -Naur coreutils-8.23.orig/tests/misc/join.pl coreutils-8.23/tests/misc/join.pl ---- coreutils-8.23.orig/tests/misc/join.pl 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/tests/misc/join.pl 2014-07-18 22:36:17.399067050 -0500 +diff -Naur coreutils-8.24/tests/misc/join.pl coreutils-8.24-mod/tests/misc/join.pl +--- coreutils-8.24/tests/misc/join.pl 2015-06-26 12:04:19.000000000 -0500 ++++ coreutils-8.24-mod/tests/misc/join.pl 2015-07-04 15:08:33.518055639 -0500 @@ -25,6 +25,15 @@ my $prog = 'join'; @@ -4333,9 +4371,9 @@ diff -Naur coreutils-8.23.orig/tests/misc/join.pl coreutils-8.23/tests/misc/join my $save_temps = $ENV{DEBUG}; my $verbose = $ENV{VERBOSE}; -diff -Naur coreutils-8.23.orig/tests/misc/sort-mb-tests.sh coreutils-8.23/tests/misc/sort-mb-tests.sh ---- coreutils-8.23.orig/tests/misc/sort-mb-tests.sh 1969-12-31 18:00:00.000000000 -0600 -+++ coreutils-8.23/tests/misc/sort-mb-tests.sh 2014-07-18 22:36:17.399067050 -0500 +diff -Naur coreutils-8.24/tests/misc/sort-mb-tests.sh coreutils-8.24-mod/tests/misc/sort-mb-tests.sh +--- coreutils-8.24/tests/misc/sort-mb-tests.sh 1969-12-31 18:00:00.000000000 -0600 ++++ coreutils-8.24-mod/tests/misc/sort-mb-tests.sh 2015-07-04 15:08:33.518055639 -0500 @@ -0,0 +1,45 @@ +#!/bin/sh +# Verify sort's multi-byte support. @@ -4382,9 +4420,9 @@ diff -Naur coreutils-8.23.orig/tests/misc/sort-mb-tests.sh coreutils-8.23/tests/ +compare exp out || { fail=1; cat out; } + +Exit $fail -diff -Naur coreutils-8.23.orig/tests/misc/sort-merge.pl coreutils-8.23/tests/misc/sort-merge.pl ---- coreutils-8.23.orig/tests/misc/sort-merge.pl 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/tests/misc/sort-merge.pl 2014-07-18 22:36:17.399067050 -0500 +diff -Naur coreutils-8.24/tests/misc/sort-merge.pl coreutils-8.24-mod/tests/misc/sort-merge.pl +--- coreutils-8.24/tests/misc/sort-merge.pl 2015-06-26 12:04:19.000000000 -0500 ++++ coreutils-8.24-mod/tests/misc/sort-merge.pl 2015-07-04 15:08:33.518055639 -0500 @@ -26,6 +26,15 @@ # Turn off localization of executable's output. @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3; @@ -4441,9 +4479,9 @@ diff -Naur coreutils-8.23.orig/tests/misc/sort-merge.pl coreutils-8.23/tests/mis my $save_temps = $ENV{DEBUG}; my $verbose = $ENV{VERBOSE}; -diff -Naur coreutils-8.23.orig/tests/misc/sort.pl coreutils-8.23/tests/misc/sort.pl ---- coreutils-8.23.orig/tests/misc/sort.pl 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/tests/misc/sort.pl 2014-07-18 22:36:17.400067026 -0500 +diff -Naur coreutils-8.24/tests/misc/sort.pl coreutils-8.24-mod/tests/misc/sort.pl +--- coreutils-8.24/tests/misc/sort.pl 2015-06-26 12:04:19.000000000 -0500 ++++ coreutils-8.24-mod/tests/misc/sort.pl 2015-07-04 15:08:33.519055605 -0500 @@ -24,10 +24,15 @@ # Turn off localization of executable's output. @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3; @@ -4461,7 +4499,18 @@ diff -Naur coreutils-8.23.orig/tests/misc/sort.pl coreutils-8.23/tests/misc/sort # Since each test is run with a file name and with redirected stdin, # the name in the diagnostic is either the file name or "-". # Normalize each diagnostic to use '-'. -@@ -415,6 +420,37 @@ +@@ -321,6 +326,10 @@ + ["23", '-s -k1,1 -t/', {IN=>"a b/x\na-b-c/x\n"}, {OUT=>"a b/x\na-b-c/x\n"}, + {ENV => "LC_ALL=$mb_locale"}], + ++# This fails in Fedora 20, per Göran Uddeborg in: http://bugs.gnu.org/18540 ++["23", '-s -k1,1 -t/', {IN=>"a b/x\na-b-c/x\n"}, {OUT=>"a b/x\na-b-c/x\n"}, ++ {ENV => "LC_ALL=$mb_locale"}], ++ + ["no-file1", 'no-file', {EXIT=>2}, {ERR=>$no_file}], + # This test failed until 1.22f. Sort didn't give an error. + # From Will Edgington. +@@ -419,6 +428,38 @@ } } @@ -4491,6 +4540,7 @@ diff -Naur coreutils-8.23.orig/tests/misc/sort.pl coreutils-8.23/tests/misc/sort + #disable several failing tests until investigation, disable all tests with envvars set + next if (grep {ref $_ eq 'HASH' && exists $_->{ENV}} (@new_t)); + next if ($test_name =~ "18g" or $test_name =~ "sort-numeric" or $test_name =~ "08[ab]" or $test_name =~ "03[def]" or $test_name =~ "h4" or $test_name =~ "n1" or $test_name =~ "2[01]a"); ++ next if ($test_name =~ "11[ab]"); # avoid FP: expected result differs to MB result due to collation rules. + push @new, ["$test_name-mb", @new_t, {ENV => "LC_ALL=$mb_locale"}]; + } + push @Tests, @new; @@ -4499,7 +4549,7 @@ diff -Naur coreutils-8.23.orig/tests/misc/sort.pl coreutils-8.23/tests/misc/sort @Tests = triple_test \@Tests; # Remember that triple_test creates from each test with exactly one "IN" -@@ -424,6 +460,7 @@ +@@ -428,6 +469,7 @@ # Remove the IN_PIPE version of the "output-is-input" test above. # The others aren't susceptible because they have three inputs each. @Tests = grep {$_->[0] ne 'output-is-input.p'} @Tests; @@ -4507,9 +4557,9 @@ diff -Naur coreutils-8.23.orig/tests/misc/sort.pl coreutils-8.23/tests/misc/sort my $save_temps = $ENV{DEBUG}; my $verbose = $ENV{VERBOSE}; -diff -Naur coreutils-8.23.orig/tests/misc/unexpand.pl coreutils-8.23/tests/misc/unexpand.pl ---- coreutils-8.23.orig/tests/misc/unexpand.pl 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/tests/misc/unexpand.pl 2014-07-18 22:36:17.400067026 -0500 +diff -Naur coreutils-8.24/tests/misc/unexpand.pl coreutils-8.24-mod/tests/misc/unexpand.pl +--- coreutils-8.24/tests/misc/unexpand.pl 2015-06-26 12:04:19.000000000 -0500 ++++ coreutils-8.24-mod/tests/misc/unexpand.pl 2015-07-04 15:08:33.519055605 -0500 @@ -27,6 +27,14 @@ my $prog = 'unexpand'; @@ -4563,9 +4613,9 @@ diff -Naur coreutils-8.23.orig/tests/misc/unexpand.pl coreutils-8.23/tests/misc/ my $save_temps = $ENV{DEBUG}; my $verbose = $ENV{VERBOSE}; -diff -Naur coreutils-8.23.orig/tests/misc/uniq.pl coreutils-8.23/tests/misc/uniq.pl ---- coreutils-8.23.orig/tests/misc/uniq.pl 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/tests/misc/uniq.pl 2014-07-18 22:36:17.400067026 -0500 +diff -Naur coreutils-8.24/tests/misc/uniq.pl coreutils-8.24-mod/tests/misc/uniq.pl +--- coreutils-8.24/tests/misc/uniq.pl 2015-06-26 12:04:19.000000000 -0500 ++++ coreutils-8.24-mod/tests/misc/uniq.pl 2015-07-04 15:08:33.519055605 -0500 @@ -23,9 +23,17 @@ my $prog = 'uniq'; my $try = "Try '$prog --help' for more information.\n"; @@ -4638,12 +4688,12 @@ diff -Naur coreutils-8.23.orig/tests/misc/uniq.pl coreutils-8.23/tests/misc/uniq @Tests = add_z_variants \@Tests; @Tests = triple_test \@Tests; -diff -Naur coreutils-8.23.orig/tests/pr/pr-tests.pl coreutils-8.23/tests/pr/pr-tests.pl ---- coreutils-8.23.orig/tests/pr/pr-tests.pl 2014-07-11 06:00:07.000000000 -0500 -+++ coreutils-8.23/tests/pr/pr-tests.pl 2014-07-18 22:36:17.401067000 -0500 -@@ -23,6 +23,15 @@ - +diff -Naur coreutils-8.24/tests/pr/pr-tests.pl coreutils-8.24-mod/tests/pr/pr-tests.pl +--- coreutils-8.24/tests/pr/pr-tests.pl 2015-06-26 12:04:19.000000000 -0500 ++++ coreutils-8.24-mod/tests/pr/pr-tests.pl 2015-07-04 15:08:33.519055605 -0500 +@@ -24,6 +24,15 @@ my $prog = 'pr'; + my $normalize_strerror = "s/': .*/'/"; +my $mb_locale; +#Uncomment the following line to enable multibyte tests @@ -4657,7 +4707,7 @@ diff -Naur coreutils-8.23.orig/tests/pr/pr-tests.pl coreutils-8.23/tests/pr/pr-t my @tv = ( # -b option is no longer an official option. But it's still working to -@@ -466,8 +475,48 @@ +@@ -467,8 +476,48 @@ {IN=>{3=>"x\ty\tz\n"}}, {OUT=>join("\t", qw(a b c m n o x y z)) . "\n"} ]; diff --git a/coreutils.spec b/coreutils.spec index e60512f..c8113ec 100644 --- a/coreutils.spec +++ b/coreutils.spec @@ -1,6 +1,6 @@ %define i18npatch_version %version Name: coreutils -Version: 8.23 +Version: 8.24 Release: 1mamba Summary: A GNU set of tools commonly used in shell scripts Group: System/Tools @@ -188,6 +188,9 @@ exit 0 #%doc THANKS THANKS-to-translators THANKStt.in %changelog +* Sun Jul 05 2015 Automatic Build System 8.24-1mamba +- automatic version update by autodist + * Tue Jul 22 2014 Automatic Build System 8.23-1mamba - automatic version update by autodist