-diff -urNp coreutils-8.9-orig/lib/linebuffer.h coreutils-8.9/lib/linebuffer.h
---- coreutils-8.9-orig/lib/linebuffer.h 2011-01-01 22:19:27.000000000 +0100
-+++ coreutils-8.9/lib/linebuffer.h 2011-01-04 17:41:55.358888521 +0100
+diff -urNp coreutils-8.10-orig/lib/linebuffer.h coreutils-8.10/lib/linebuffer.h
+--- coreutils-8.10-orig/lib/linebuffer.h 2011-01-06 09:47:56.000000000 +0100
++++ coreutils-8.10/lib/linebuffer.h 2011-02-04 20:13:23.985464731 +0100
@@ -21,6 +21,11 @@
# include <stdio.h>
};
/* Initialize linebuffer LINEBUFFER for use. */
-diff -urNp coreutils-8.9-orig/src/cut.c coreutils-8.9/src/cut.c
---- coreutils-8.9-orig/src/cut.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/cut.c 2011-01-04 17:41:55.361888730 +0100
+diff -urNp coreutils-8.10-orig/src/cut.c coreutils-8.10/src/cut.c
+--- coreutils-8.10-orig/src/cut.c 2011-01-31 13:40:38.000000000 +0100
++++ coreutils-8.10/src/cut.c 2011-02-04 20:13:23.988464025 +0100
@@ -28,6 +28,11 @@
#include <assert.h>
#include <getopt.h>
+ size_t mblength; /* The byte size of a multibyte character which shows
+ as same character as WC. */
+ mbstate_t state; /* State of the stream. */
-+ int convfail; /* 1, when conversion is failed. Otherwise 0. */
++ int convfail = 0; /* 1, when conversion is failed. Otherwise 0. */
+
+ idx = 0;
+ buflen = 0;
}
if (optind == argc)
-diff -urNp coreutils-8.9-orig/src/expand.c coreutils-8.9/src/expand.c
---- coreutils-8.9-orig/src/expand.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/expand.c 2011-01-04 17:41:55.363905562 +0100
+diff -urNp coreutils-8.10-orig/src/expand.c coreutils-8.10/src/expand.c
+--- coreutils-8.10-orig/src/expand.c 2011-01-31 13:40:38.000000000 +0100
++++ coreutils-8.10/src/expand.c 2011-02-04 20:13:23.990463571 +0100
@@ -38,12 +38,29 @@
#include <stdio.h>
#include <getopt.h>
+ mbstate_t i_state_bak; /* Back up the I_STATE. */
+ mbstate_t o_state; /* Current shift state of the output stream. */
+ char buf[MB_LEN_MAX + BUFSIZ]; /* For spooling a read byte sequence. */
-+ char *bufpos; /* Next read position of BUF. */
++ char *bufpos = buf; /* Next read position of BUF. */
+ size_t buflen = 0; /* The length of the byte sequence in buf. */
+ wchar_t wc; /* A gotten wide character. */
+ size_t mblength; /* The byte size of a multibyte character
if (have_read_stdin && fclose (stdin) != 0)
error (EXIT_FAILURE, errno, "-");
-diff -urNp coreutils-8.9-orig/src/fold.c coreutils-8.9/src/fold.c
---- coreutils-8.9-orig/src/fold.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/fold.c 2011-01-04 17:41:55.366888520 +0100
+diff -urNp coreutils-8.10-orig/src/fold.c coreutils-8.10/src/fold.c
+--- coreutils-8.10-orig/src/fold.c 2011-01-31 13:40:38.000000000 +0100
++++ coreutils-8.10/src/fold.c 2011-02-04 20:13:23.992463115 +0100
@@ -22,12 +22,34 @@
#include <getopt.h>
#include <sys/types.h>
/* Look for the last blank. */
while (logical_end)
{
-@@ -217,11 +254,222 @@ fold_file (char const *filename, size_t
+@@ -217,11 +254,221 @@ fold_file (char const *filename, size_t
line_out[offset_out++] = c;
}
+{
+ char buf[MB_LEN_MAX + BUFSIZ]; /* For spooling a read byte sequence. */
+ size_t buflen = 0; /* The length of the byte sequence in buf. */
-+ char *bufpos = NULL; /* Next read position of BUF. */
++ char *bufpos = buf; /* Next read position of BUF. */
+ wint_t wc; /* A gotten wide character. */
+ size_t mblength; /* The byte size of a multibyte character which shows
+ as same character as WC. */
+ mbstate_t state, state_bak; /* State of the stream. */
-+ int convfail; /* 1, when conversion is failed. Otherwise 0. */
++ int convfail = 0; /* 1, when conversion is failed. Otherwise 0. */
+
+ static char *line_out = NULL;
+ size_t offset_out = 0; /* Index in `line_out' for next char. */
+ break;
+
+ /* Get a wide character. */
-+ convfail = 0;
+ state_bak = state;
+ mblength = mbrtowc ((wchar_t *)&wc, bufpos, buflen, &state);
+
break;
case 's': /* Break at word boundaries. */
-diff -urNp coreutils-8.9-orig/src/join.c coreutils-8.9/src/join.c
---- coreutils-8.9-orig/src/join.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/join.c 2011-01-04 17:41:55.369888660 +0100
+diff -urNp coreutils-8.10-orig/src/join.c coreutils-8.10/src/join.c
+--- coreutils-8.10-orig/src/join.c 2011-01-31 13:40:38.000000000 +0100
++++ coreutils-8.10/src/join.c 2011-02-04 20:20:15.985114387 +0100
@@ -22,18 +22,32 @@
#include <sys/types.h>
#include <getopt.h>
/* The official name of this program (e.g., no `g' prefix). */
#define PROGRAM_NAME "join"
-@@ -122,10 +136,12 @@ static struct outlist outlist_head;
+@@ -129,10 +143,12 @@ static struct outlist outlist_head;
/* Last element in `outlist', where a new element can be added. */
static struct outlist *outlist_end = &outlist_head;
/* If nonzero, check that the input is correctly ordered. */
static enum
-@@ -249,13 +265,14 @@ xfields (struct line *line)
+@@ -257,13 +273,14 @@ xfields (struct line *line)
if (ptr == lim)
return;
{
/* Skip leading blanks before the first field. */
while (isblank (to_uchar (*ptr)))
-@@ -279,6 +296,148 @@ xfields (struct line *line)
+@@ -287,6 +304,148 @@ xfields (struct line *line)
extract_field (line, ptr, lim - ptr);
}
static void
freeline (struct line *line)
{
-@@ -300,56 +459,115 @@ keycmp (struct line const *line1, struct
+@@ -308,56 +467,115 @@ keycmp (struct line const *line1, struct
size_t jf_1, size_t jf_2)
{
/* Start of field to compare in each file. */
}
/* Check that successive input lines PREV and CURRENT from input file
-@@ -430,6 +648,11 @@ get_line (FILE *fp, struct line **linep,
+@@ -438,6 +656,11 @@ get_line (FILE *fp, struct line **linep,
return false;
}
xfields (line);
if (prevline[which - 1])
-@@ -529,11 +752,18 @@ prfield (size_t n, struct line const *li
+@@ -537,21 +760,28 @@ prfield (size_t n, struct line const *li
- /* Print the join of LINE1 and LINE2. */
+ /* Output all the fields in line, other than the join field. */
+#define PUT_TAB_CHAR \
+ do \
+ (tab != NULL) ? \
+ fwrite(tab, sizeof(char), tablen, stdout) : putchar (' '); \
+ } \
-+ while (0)
++ while (0)
+
static void
+ prfields (struct line const *line, size_t join_field, size_t autocount)
+ {
+ size_t i;
+ size_t nfields = autoformat ? autocount : line->nfields;
+- char output_separator = tab < 0 ? ' ' : tab;
+
+ for (i = 0; i < join_field && i < nfields; ++i)
+ {
+- putchar (output_separator);
++ PUT_TAB_CHAR;
+ prfield (i, line);
+ }
+ for (i = join_field + 1; i < nfields; ++i)
+ {
+- putchar (output_separator);
++ PUT_TAB_CHAR;
+ prfield (i, line);
+ }
+ }
+@@ -562,7 +792,6 @@ static void
prjoin (struct line const *line1, struct line const *line2)
{
const struct outlist *outlist;
- char output_separator = tab < 0 ? ' ' : tab;
+ size_t field;
+ struct line const *line;
- outlist = outlist_head.next;
- if (outlist)
-@@ -568,7 +798,7 @@ prjoin (struct line const *line1, struct
+@@ -596,7 +825,7 @@ prjoin (struct line const *line1, struct
o = o->next;
if (o == NULL)
break;
}
putchar ('\n');
}
-@@ -586,23 +816,23 @@ prjoin (struct line const *line1, struct
- prfield (join_field_1, line1);
- for (i = 0; i < join_field_1 && i < line1->nfields; ++i)
- {
-- putchar (output_separator);
-+ PUT_TAB_CHAR;
- prfield (i, line1);
- }
- for (i = join_field_1 + 1; i < line1->nfields; ++i)
- {
-- putchar (output_separator);
-+ PUT_TAB_CHAR;
- prfield (i, line1);
- }
-
- for (i = 0; i < join_field_2 && i < line2->nfields; ++i)
- {
-- putchar (output_separator);
-+ PUT_TAB_CHAR;
- prfield (i, line2);
- }
- for (i = join_field_2 + 1; i < line2->nfields; ++i)
- {
-- putchar (output_separator);
-+ PUT_TAB_CHAR;
- prfield (i, line2);
- }
- putchar ('\n');
-@@ -1043,21 +1273,46 @@ main (int argc, char **argv)
+@@ -1075,21 +1304,46 @@ main (int argc, char **argv)
case 't':
{
break;
case NOCHECK_ORDER_OPTION:
-diff -urNp coreutils-8.9-orig/src/pr.c coreutils-8.9/src/pr.c
---- coreutils-8.9-orig/src/pr.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/pr.c 2011-01-04 17:41:55.377138275 +0100
+diff -urNp coreutils-8.10-orig/src/pr.c coreutils-8.10/src/pr.c
+--- coreutils-8.10-orig/src/pr.c 2011-01-31 13:40:38.000000000 +0100
++++ coreutils-8.10/src/pr.c 2011-02-04 20:13:24.002460897 +0100
@@ -312,6 +312,32 @@
#include <getopt.h>
/* 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 -urNp coreutils-8.9-orig/src/sort.c coreutils-8.9/src/sort.c
---- coreutils-8.9-orig/src/sort.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/sort.c 2011-01-04 17:41:55.384888730 +0100
+diff -urNp coreutils-8.10-orig/src/sort.c coreutils-8.10/src/sort.c
+--- coreutils-8.10-orig/src/sort.c 2011-02-03 11:24:35.000000000 +0100
++++ coreutils-8.10/src/sort.c 2011-02-04 20:15:44.160384535 +0100
@@ -22,11 +22,20 @@
#include <config.h>
{
size_t lo = 0;
size_t hi = MONTHS_PER_YEAR;
-@@ -2209,13 +2572,12 @@ debug_key (struct line const *line, stru
+@@ -2209,15 +2572,14 @@ debug_key (struct line const *line, stru
char saved = *lim;
*lim = '\0';
char *tighter_lim = beg;
- if (key->month)
+ if (lim < beg)
+ tighter_lim = lim;
+ else if (key->month)
- getmonth (beg, &tighter_lim);
+ getmonth (beg, lim-beg, &tighter_lim);
else if (key->general_numeric)
ignore_value (strtold (beg, &tighter_lim));
else if (key->numeric || key->human_numeric)
-@@ -2359,7 +2721,7 @@ key_warnings (struct keyfield const *gke
+@@ -2361,7 +2723,7 @@ key_warnings (struct keyfield const *gke
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 */
&& ((!key->skipsblanks && !(implicit_skip || maybe_space_aligned))
|| (!key->skipsblanks && key->schar)
|| (!key->skipeblanks && key->echar)))
-@@ -2417,11 +2779,83 @@ key_warnings (struct keyfield const *gke
+@@ -2419,11 +2781,83 @@ key_warnings (struct keyfield const *gke
error (0, 0, _("option `-r' only applies to last-resort comparison"));
}
{
struct keyfield *key = keylist;
-@@ -2506,7 +2940,7 @@ keycompare (struct line const *a, struct
+@@ -2508,7 +2942,7 @@ keycompare (struct line const *a, struct
else if (key->human_numeric)
diff = human_numcompare (ta, tb);
else if (key->month)
else if (key->random)
diff = compare_random (ta, tlena, tb, tlenb);
else if (key->version)
-@@ -2622,6 +3056,179 @@ keycompare (struct line const *a, struct
+@@ -2624,6 +3058,179 @@ keycompare (struct line const *a, struct
return key->reverse ? -diff : diff;
}
/* Compare two lines A and B, returning negative, zero, or positive
depending on whether A compares less than, equal to, or greater than B. */
-@@ -4084,7 +4691,7 @@ main (int argc, char **argv)
+@@ -4087,7 +4694,7 @@ main (int argc, char **argv)
initialize_exit_failure (SORT_FAILURE);
hard_LC_COLLATE = hard_locale (LC_COLLATE);
hard_LC_TIME = hard_locale (LC_TIME);
#endif
-@@ -4105,6 +4712,29 @@ main (int argc, char **argv)
+@@ -4108,6 +4715,29 @@ main (int argc, char **argv)
thousands_sep = -1;
}
have_read_stdin = false;
inittables ();
-@@ -4375,13 +5005,34 @@ main (int argc, char **argv)
+@@ -4378,13 +5008,34 @@ main (int argc, char **argv)
case 't':
{
else
{
/* Provoke with `sort -txx'. Complain about
-@@ -4392,9 +5043,12 @@ main (int argc, char **argv)
+@@ -4395,9 +5046,12 @@ main (int argc, char **argv)
quote (optarg));
}
}
}
break;
-diff -urNp coreutils-8.9-orig/src/unexpand.c coreutils-8.9/src/unexpand.c
---- coreutils-8.9-orig/src/unexpand.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/unexpand.c 2011-01-04 17:41:55.387888171 +0100
+diff -urNp coreutils-8.10-orig/src/unexpand.c coreutils-8.10/src/unexpand.c
+--- coreutils-8.10-orig/src/unexpand.c 2011-01-31 13:40:38.000000000 +0100
++++ coreutils-8.10/src/unexpand.c 2011-02-04 20:13:24.015458014 +0100
@@ -39,12 +39,29 @@
#include <stdio.h>
#include <getopt.h>
+ mbstate_t i_state_bak; /* Back up the I_STATE. */
+ mbstate_t o_state; /* Current shift state of the output stream. */
+ char buf[MB_LEN_MAX + BUFSIZ]; /* For spooling a read byte sequence. */
-+ char *bufpos; /* Next read position of BUF. */
++ char *bufpos = buf; /* Next read position of BUF. */
+ size_t buflen = 0; /* The length of the byte sequence in buf. */
+ wint_t wc; /* A gotten wide character. */
+ size_t mblength; /* The byte size of a multibyte character
if (have_read_stdin && fclose (stdin) != 0)
error (EXIT_FAILURE, errno, "-");
-diff -urNp coreutils-8.9-orig/src/uniq.c coreutils-8.9/src/uniq.c
---- coreutils-8.9-orig/src/uniq.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/uniq.c 2011-01-04 17:41:55.391888381 +0100
+diff -urNp coreutils-8.10-orig/src/uniq.c coreutils-8.10/src/uniq.c
+--- coreutils-8.10-orig/src/uniq.c 2011-01-31 13:40:38.000000000 +0100
++++ coreutils-8.10/src/uniq.c 2011-02-04 20:13:24.018457349 +0100
@@ -21,6 +21,16 @@
#include <getopt.h>
#include <sys/types.h>
{
size_t count;
char const *lp = line->buffer;
-@@ -228,6 +254,83 @@ find_field (struct linebuffer const *lin
+@@ -227,6 +253,83 @@ find_field (struct linebuffer const *lin
return line->buffer + i;
}
+ size_t mblength;
+ wchar_t wc;
+ mbstate_t *statep;
-+ int convfail;
++ int convfail = 0;
+
+ pos = 0;
+ statep = &(line->state);
/* Return false if two strings OLD and NEW match, true if not.
OLD and NEW point not to the beginnings of the lines
but rather to the beginnings of the fields to compare.
-@@ -236,6 +339,8 @@ find_field (struct linebuffer const *lin
+@@ -235,6 +338,8 @@ find_field (struct linebuffer const *lin
static bool
different (char *old, char *new, size_t oldlen, size_t newlen)
{
if (check_chars < oldlen)
oldlen = check_chars;
if (check_chars < newlen)
-@@ -243,14 +348,92 @@ different (char *old, char *new, size_t
+@@ -242,14 +347,92 @@ different (char *old, char *new, size_t
if (ignore_case)
{
/* Output the line in linebuffer LINE to standard output
provided that the switches say it should be output.
-@@ -306,15 +489,43 @@ check_file (const char *infile, const ch
+@@ -305,15 +488,43 @@ check_file (const char *infile, const ch
{
char *prevfield IF_LINT ( = NULL);
size_t prevlen IF_LINT ( = 0);
if (prevline->length == 0
|| different (thisfield, prevfield, thislen, prevlen))
{
-@@ -333,17 +544,26 @@ check_file (const char *infile, const ch
+@@ -332,17 +543,26 @@ check_file (const char *infile, const ch
size_t prevlen;
uintmax_t match_count = 0;
bool first_delimiter = true;
char *thisfield;
size_t thislen;
+#if HAVE_MBRTOWC
-+ mbstate_t thisstate;
++ mbstate_t thisstate = thisline->state;
+#endif
if (readlinebuffer_delim (thisline, stdin, delimiter) == 0)
{
if (ferror (stdin))
-@@ -352,6 +572,15 @@ check_file (const char *infile, const ch
+@@ -351,6 +571,14 @@ check_file (const char *infile, const ch
}
thisfield = find_field (thisline);
thislen = thisline->length - 1 - (thisfield - thisline->buffer);
+#if HAVE_MBRTOWC
+ if (MB_CUR_MAX > 1)
+ {
-+ thisstate = thisline->state;
+ match = !different_multi (thisfield, prevfield,
+ thislen, prevlen, thisstate, prevstate);
+ }
match = !different (thisfield, prevfield, thislen, prevlen);
match_count += match;
-@@ -384,6 +613,9 @@ check_file (const char *infile, const ch
+@@ -383,6 +612,9 @@ check_file (const char *infile, const ch
SWAP_LINES (prevline, thisline);
prevfield = thisfield;
prevlen = thislen;
if (!match)
match_count = 0;
}
-@@ -429,6 +661,19 @@ main (int argc, char **argv)
+@@ -428,6 +660,19 @@ main (int argc, char **argv)
atexit (close_stdout);
skip_chars = 0;
skip_fields = 0;
check_chars = SIZE_MAX;
-diff -urNp coreutils-8.9-orig/tests/Makefile.am coreutils-8.9/tests/Makefile.am
---- coreutils-8.9-orig/tests/Makefile.am 2011-01-04 17:41:12.682173268 +0100
-+++ coreutils-8.9/tests/Makefile.am 2011-01-04 17:41:55.392900534 +0100
-@@ -233,6 +233,7 @@ TESTS = \
+diff -urNp coreutils-8.10-orig/tests/Makefile.am coreutils-8.10/tests/Makefile.am
+--- coreutils-8.10-orig/tests/Makefile.am 2011-02-04 20:12:58.236173903 +0100
++++ coreutils-8.10/tests/Makefile.am 2011-02-04 20:13:24.020456905 +0100
+@@ -235,6 +235,7 @@ TESTS = \
misc/sort-debug-keys \
misc/sort-debug-warn \
misc/sort-files0-from \
misc/sort-float \
misc/sort-merge \
misc/sort-merge-fdlimit \
-@@ -498,6 +499,10 @@ TESTS = \
+@@ -505,6 +506,10 @@ TESTS = \
$(root_tests)
pr_data = \
pr/0F \
pr/0FF \
pr/0FFnt \
-diff -urNp coreutils-8.9-orig/tests/misc/cut coreutils-8.9/tests/misc/cut
---- coreutils-8.9-orig/tests/misc/cut 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/tests/misc/cut 2011-01-04 17:41:55.393887822 +0100
+diff -urNp coreutils-8.10-orig/tests/misc/cut coreutils-8.10/tests/misc/cut
+--- coreutils-8.10-orig/tests/misc/cut 2011-01-31 13:40:38.000000000 +0100
++++ coreutils-8.10/tests/misc/cut 2011-02-04 20:13:24.021456684 +0100
@@ -26,7 +26,7 @@ use strict;
my $prog = 'cut';
my $try = "Try \`$prog --help' for more information.\n";
['inval2', qw(-f -), {IN=>''}, {OUT=>''}, {EXIT=>1}, {ERR=>$no_endpoint}],
['inval3', '-f', '4,-', {IN=>''}, {OUT=>''}, {EXIT=>1}, {ERR=>$no_endpoint}],
['inval4', '-f', '1-2,-', {IN=>''}, {OUT=>''}, {EXIT=>1},
-diff -urNp coreutils-8.9-orig/tests/misc/mb1.I coreutils-8.9/tests/misc/mb1.I
---- coreutils-8.9-orig/tests/misc/mb1.I 1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.9/tests/misc/mb1.I 2011-01-04 17:41:55.394899835 +0100
+diff -urNp coreutils-8.10-orig/tests/misc/mb1.I coreutils-8.10/tests/misc/mb1.I
+--- coreutils-8.10-orig/tests/misc/mb1.I 1970-01-01 01:00:00.000000000 +0100
++++ coreutils-8.10/tests/misc/mb1.I 2011-02-04 20:13:24.022456462 +0100
@@ -0,0 +1,4 @@
+Apple@10
+Banana@5
+Citrus@20
+Cherry@30
-diff -urNp coreutils-8.9-orig/tests/misc/mb1.X coreutils-8.9/tests/misc/mb1.X
---- coreutils-8.9-orig/tests/misc/mb1.X 1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.9/tests/misc/mb1.X 2011-01-04 17:41:55.395888102 +0100
+diff -urNp coreutils-8.10-orig/tests/misc/mb1.X coreutils-8.10/tests/misc/mb1.X
+--- coreutils-8.10-orig/tests/misc/mb1.X 1970-01-01 01:00:00.000000000 +0100
++++ coreutils-8.10/tests/misc/mb1.X 2011-02-04 20:13:24.023456240 +0100
@@ -0,0 +1,4 @@
+Banana@5
+Apple@10
+Citrus@20
+Cherry@30
-diff -urNp coreutils-8.9-orig/tests/misc/mb2.I coreutils-8.9/tests/misc/mb2.I
---- coreutils-8.9-orig/tests/misc/mb2.I 1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.9/tests/misc/mb2.I 2011-01-04 17:41:55.395888102 +0100
+diff -urNp coreutils-8.10-orig/tests/misc/mb2.I coreutils-8.10/tests/misc/mb2.I
+--- coreutils-8.10-orig/tests/misc/mb2.I 1970-01-01 01:00:00.000000000 +0100
++++ coreutils-8.10/tests/misc/mb2.I 2011-02-04 20:13:24.024456019 +0100
@@ -0,0 +1,4 @@
+Apple@AA10@@20
+Banana@AA5@@30
+Citrus@AA20@@5
+Cherry@AA30@@10
-diff -urNp coreutils-8.9-orig/tests/misc/mb2.X coreutils-8.9/tests/misc/mb2.X
---- coreutils-8.9-orig/tests/misc/mb2.X 1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.9/tests/misc/mb2.X 2011-01-04 17:41:55.396892432 +0100
+diff -urNp coreutils-8.10-orig/tests/misc/mb2.X coreutils-8.10/tests/misc/mb2.X
+--- coreutils-8.10-orig/tests/misc/mb2.X 1970-01-01 01:00:00.000000000 +0100
++++ coreutils-8.10/tests/misc/mb2.X 2011-02-04 20:13:24.024456019 +0100
@@ -0,0 +1,4 @@
+Citrus@AA20@@5
+Cherry@AA30@@10
+Apple@AA10@@20
+Banana@AA5@@30
-diff -urNp coreutils-8.9-orig/tests/misc/sort-mb-tests coreutils-8.9/tests/misc/sort-mb-tests
---- coreutils-8.9-orig/tests/misc/sort-mb-tests 1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.9/tests/misc/sort-mb-tests 2011-01-04 17:41:55.396892432 +0100
+diff -urNp coreutils-8.10-orig/tests/misc/sort-mb-tests coreutils-8.10/tests/misc/sort-mb-tests
+--- coreutils-8.10-orig/tests/misc/sort-mb-tests 1970-01-01 01:00:00.000000000 +0100
++++ coreutils-8.10/tests/misc/sort-mb-tests 2011-02-04 20:13:24.025455797 +0100
@@ -0,0 +1,58 @@
+#! /bin/sh
+case $# in
-diff -urNp coreutils-8.9-orig/configure.ac coreutils-8.9/configure.ac
---- coreutils-8.9-orig/configure.ac 2011-01-04 17:43:03.876887473 +0100
-+++ coreutils-8.9/configure.ac 2011-01-04 17:43:36.194889010 +0100
+diff -urNp coreutils-8.11-orig/configure.ac coreutils-8.11/configure.ac
+--- coreutils-8.11-orig/configure.ac 2011-04-14 11:05:27.511308852 +0200
++++ coreutils-8.11/configure.ac 2011-04-14 11:06:05.481433832 +0200
@@ -132,6 +132,13 @@ if test "$gl_gcc_warnings" = yes; then
AC_SUBST([GNULIB_TEST_WARN_CFLAGS])
fi
AC_FUNC_FORK
AC_ARG_ENABLE(pam, AS_HELP_STRING([--disable-pam],
-diff -urNp coreutils-8.9-orig/man/chcon.x coreutils-8.9/man/chcon.x
---- coreutils-8.9-orig/man/chcon.x 2009-09-01 13:01:16.000000000 +0200
-+++ coreutils-8.9/man/chcon.x 2011-01-04 17:43:36.195889150 +0100
+diff -urNp coreutils-8.11-orig/man/chcon.x coreutils-8.11/man/chcon.x
+--- coreutils-8.11-orig/man/chcon.x 2009-09-01 13:01:16.000000000 +0200
++++ coreutils-8.11/man/chcon.x 2011-04-14 11:06:05.482433878 +0200
@@ -1,4 +1,4 @@
[NAME]
-chcon \- change file security context
+chcon \- change file SELinux security context
[DESCRIPTION]
.\" Add any additional description here
-diff -urNp coreutils-8.9-orig/man/runcon.x coreutils-8.9/man/runcon.x
---- coreutils-8.9-orig/man/runcon.x 2009-09-01 13:01:16.000000000 +0200
-+++ coreutils-8.9/man/runcon.x 2011-01-04 17:43:36.195889150 +0100
+diff -urNp coreutils-8.11-orig/man/runcon.x coreutils-8.11/man/runcon.x
+--- coreutils-8.11-orig/man/runcon.x 2009-09-01 13:01:16.000000000 +0200
++++ coreutils-8.11/man/runcon.x 2011-04-14 11:06:05.483445779 +0200
@@ -1,5 +1,5 @@
[NAME]
-runcon \- run command with specified security context
[DESCRIPTION]
Run COMMAND with completely-specified CONTEXT, or with current or
transitioned security context modified by one or more of LEVEL,
-diff -urNp coreutils-8.9-orig/src/copy.c coreutils-8.9/src/copy.c
---- coreutils-8.9-orig/src/copy.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/copy.c 2011-01-04 17:43:36.199888591 +0100
-@@ -1931,6 +1931,8 @@ copy_internal (char const *src_name, cha
+diff -urNp coreutils-8.11-orig/src/chcon.c coreutils-8.11/src/chcon.c
+--- coreutils-8.11-orig/src/chcon.c 2011-02-19 18:17:03.000000000 +0100
++++ coreutils-8.11/src/chcon.c 2011-04-14 11:06:05.489434075 +0200
+@@ -356,7 +356,7 @@ Usage: %s [OPTION]... CONTEXT FILE...\n\
+ "),
+ program_name, program_name, program_name);
+ fputs (_("\
+-Change the security context of each FILE to CONTEXT.\n\
++Change the SELinux security context of each FILE to CONTEXT.\n\
+ With --reference, change the security context of each FILE to that of RFILE.\n\
+ \n\
+ -h, --no-dereference affect symbolic links instead of any referenced file\n\
+diff -urNp coreutils-8.11-orig/src/copy.c coreutils-8.11/src/copy.c
+--- coreutils-8.11-orig/src/copy.c 2011-04-12 12:07:43.000000000 +0200
++++ coreutils-8.11/src/copy.c 2011-04-14 11:06:05.485433752 +0200
+@@ -2179,6 +2179,8 @@ copy_internal (char const *src_name, cha
{
/* Here, we are crossing a file system boundary and cp's -x option
is in effect: so don't copy the contents of this directory. */
}
else
{
-diff -urNp coreutils-8.9-orig/src/copy.h coreutils-8.9/src/copy.h
---- coreutils-8.9-orig/src/copy.h 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/copy.h 2011-01-04 17:43:36.201889220 +0100
+diff -urNp coreutils-8.11-orig/src/copy.h coreutils-8.11/src/copy.h
+--- coreutils-8.11-orig/src/copy.h 2011-02-19 18:17:03.000000000 +0100
++++ coreutils-8.11/src/copy.h 2011-04-14 11:06:05.487340225 +0200
@@ -158,6 +158,9 @@ struct cp_options
bool preserve_mode;
bool preserve_timestamps;
/* Enabled for mv, and for cp by the --preserve=links option.
If true, attempt to preserve in the destination files any
logical hard links between the source files. If used with cp's
-diff -urNp coreutils-8.9-orig/src/cp.c coreutils-8.9/src/cp.c
---- coreutils-8.9-orig/src/cp.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/cp.c 2011-01-04 17:43:36.202898439 +0100
+diff -urNp coreutils-8.11-orig/src/cp.c coreutils-8.11/src/cp.c
+--- coreutils-8.11-orig/src/cp.c 2011-02-19 18:17:03.000000000 +0100
++++ coreutils-8.11/src/cp.c 2011-04-14 11:06:05.488433894 +0200
@@ -141,6 +141,7 @@ static struct option const long_opts[] =
{"target-directory", required_argument, NULL, 't'},
{"update", no_argument, NULL, 'u'},
case 'S':
make_backups = true;
backup_suffix_string = optarg;
-diff -urNp coreutils-8.9-orig/src/chcon.c coreutils-8.9/src/chcon.c
---- coreutils-8.9-orig/src/chcon.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/chcon.c 2011-01-04 17:43:36.205888452 +0100
-@@ -356,7 +356,7 @@ Usage: %s [OPTION]... CONTEXT FILE...\n\
- "),
- program_name, program_name, program_name);
- fputs (_("\
--Change the security context of each FILE to CONTEXT.\n\
-+Change the SELinux security context of each FILE to CONTEXT.\n\
- With --reference, change the security context of each FILE to that of RFILE.\n\
- \n\
- -h, --no-dereference affect symbolic links instead of any referenced file\n\
-diff -urNp coreutils-8.9-orig/src/id.c coreutils-8.9/src/id.c
---- coreutils-8.9-orig/src/id.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/id.c 2011-01-04 17:43:36.206888661 +0100
+diff -urNp coreutils-8.11-orig/src/id.c coreutils-8.11/src/id.c
+--- coreutils-8.11-orig/src/id.c 2011-02-19 18:17:03.000000000 +0100
++++ coreutils-8.11/src/id.c 2011-04-14 11:06:05.490435340 +0200
@@ -107,7 +107,7 @@ int
main (int argc, char **argv)
{
/* If true, output the list of all group IDs. -G */
bool just_group_list = false;
-diff -urNp coreutils-8.9-orig/src/install.c coreutils-8.9/src/install.c
---- coreutils-8.9-orig/src/install.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/install.c 2011-01-04 17:47:30.255887962 +0100
-@@ -283,6 +283,7 @@ cp_option_init (struct cp_options *x)
+diff -urNp coreutils-8.11-orig/src/install.c coreutils-8.11/src/install.c
+--- coreutils-8.11-orig/src/install.c 2011-04-12 12:07:43.000000000 +0200
++++ coreutils-8.11/src/install.c 2011-04-14 11:07:58.333433706 +0200
+@@ -261,6 +261,7 @@ cp_option_init (struct cp_options *x)
x->data_copy_required = true;
x->require_preserve = false;
x->require_preserve_context = false;
x->require_preserve_xattr = false;
x->recursive = false;
x->sparse_mode = SPARSE_AUTO;
-@@ -460,7 +461,7 @@ main (int argc, char **argv)
+@@ -622,7 +623,7 @@ Mandatory arguments to long options are
+ -v, --verbose print the name of each directory as it is created\n\
+ "), stdout);
+ fputs (_("\
+- --preserve-context preserve SELinux security context\n\
++ -P, --preserve-context preserve SELinux security context\n\
+ -Z, --context=CONTEXT set SELinux security context of files and directories\
+ \n\
+ "), stdout);
+@@ -765,7 +766,7 @@ main (int argc, char **argv)
we'll actually use backup_suffix_string. */
backup_suffix_string = getenv ("SIMPLE_BACKUP_SUFFIX");
NULL)) != -1)
{
switch (optc)
-@@ -534,6 +535,7 @@ main (int argc, char **argv)
- error (0, 0, _("WARNING: --preserve_context is deprecated; "
- "use --preserve-context instead"));
- /* fall through */
+@@ -835,6 +836,7 @@ main (int argc, char **argv)
+ no_target_directory = true;
+ break;
+
+ case 'P':
case PRESERVE_CONTEXT_OPTION:
if ( ! selinux_enabled)
{
-@@ -541,6 +543,10 @@ main (int argc, char **argv)
+@@ -842,6 +844,10 @@ main (int argc, char **argv)
"this kernel is not SELinux-enabled"));
break;
}
x.preserve_security_context = true;
use_default_selinux_context = false;
break;
-@@ -552,6 +558,7 @@ main (int argc, char **argv)
+@@ -853,6 +859,7 @@ main (int argc, char **argv)
break;
}
scontext = optarg;
use_default_selinux_context = false;
break;
case_GETOPT_HELP_CHAR;
-@@ -985,7 +992,7 @@ Mandatory arguments to long options are
- -v, --verbose print the name of each directory as it is created\n\
- "), stdout);
- fputs (_("\
-- --preserve-context preserve SELinux security context\n\
-+ -P, --preserve-context preserve SELinux security context\n\
- -Z, --context=CONTEXT set SELinux security context of files and directories\
- \n\
- "), stdout);
-diff -urNp coreutils-8.9-orig/src/ls.c coreutils-8.9/src/ls.c
---- coreutils-8.9-orig/src/ls.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/ls.c 2011-01-04 17:43:36.211887474 +0100
+diff -urNp coreutils-8.11-orig/src/ls.c coreutils-8.11/src/ls.c
+--- coreutils-8.11-orig/src/ls.c 2011-04-12 12:07:43.000000000 +0200
++++ coreutils-8.11/src/ls.c 2011-04-14 11:06:05.498436329 +0200
@@ -159,7 +159,8 @@ enum filetype
symbolic_link,
sock,
fputs (HELP_OPTION_DESCRIPTION, stdout);
fputs (VERSION_OPTION_DESCRIPTION, stdout);
emit_size_note ();
-diff -urNp coreutils-8.9-orig/src/mkdir.c coreutils-8.9/src/mkdir.c
---- coreutils-8.9-orig/src/mkdir.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/mkdir.c 2011-01-04 17:43:36.213899906 +0100
+diff -urNp coreutils-8.11-orig/src/mkdir.c coreutils-8.11/src/mkdir.c
+--- coreutils-8.11-orig/src/mkdir.c 2011-02-19 18:17:03.000000000 +0100
++++ coreutils-8.11/src/mkdir.c 2011-04-14 11:06:05.499460276 +0200
@@ -38,6 +38,7 @@
static struct option const longopts[] =
{
{"mode", required_argument, NULL, 'm'},
{"parents", no_argument, NULL, 'p'},
{"verbose", no_argument, NULL, 'v'},
-diff -urNp coreutils-8.9-orig/src/mknod.c coreutils-8.9/src/mknod.c
---- coreutils-8.9-orig/src/mknod.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/mknod.c 2011-01-04 17:43:36.215887404 +0100
+diff -urNp coreutils-8.11-orig/src/mknod.c coreutils-8.11/src/mknod.c
+--- coreutils-8.11-orig/src/mknod.c 2011-02-19 18:17:03.000000000 +0100
++++ coreutils-8.11/src/mknod.c 2011-04-14 11:06:05.500309648 +0200
@@ -35,7 +35,7 @@
static struct option const longopts[] =
{"mode", required_argument, NULL, 'm'},
{GETOPT_HELP_OPTION_DECL},
{GETOPT_VERSION_OPTION_DECL},
-diff -urNp coreutils-8.9-orig/src/mv.c coreutils-8.9/src/mv.c
---- coreutils-8.9-orig/src/mv.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/mv.c 2011-01-04 17:43:36.216896344 +0100
+diff -urNp coreutils-8.11-orig/src/mv.c coreutils-8.11/src/mv.c
+--- coreutils-8.11-orig/src/mv.c 2011-02-19 18:17:03.000000000 +0100
++++ coreutils-8.11/src/mv.c 2011-04-14 11:06:05.501309664 +0200
@@ -118,6 +118,7 @@ cp_option_init (struct cp_options *x)
x->preserve_mode = true;
x->preserve_timestamps = true;
x->reduce_diagnostics = false;
x->data_copy_required = true;
x->require_preserve = false; /* FIXME: maybe make this an option */
-diff -urNp coreutils-8.9-orig/src/runcon.c coreutils-8.9/src/runcon.c
---- coreutils-8.9-orig/src/runcon.c 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/src/runcon.c 2011-01-04 17:43:36.216896344 +0100
+diff -urNp coreutils-8.11-orig/src/runcon.c coreutils-8.11/src/runcon.c
+--- coreutils-8.11-orig/src/runcon.c 2011-02-19 18:17:03.000000000 +0100
++++ coreutils-8.11/src/runcon.c 2011-04-14 11:06:05.502310854 +0200
@@ -86,7 +86,7 @@ Usage: %s CONTEXT COMMAND [args]\n\
or: %s [ -c ] [-u USER] [-r ROLE] [-t TYPE] [-l RANGE] COMMAND [args]\n\
"), program_name, program_name);
With neither CONTEXT nor COMMAND, print the current security context.\n\
\n\
CONTEXT Complete security context\n\
-diff -urNp coreutils-8.9-orig/tests/init.cfg coreutils-8.9/tests/init.cfg
---- coreutils-8.9-orig/tests/init.cfg 2010-12-22 12:29:13.000000000 +0100
-+++ coreutils-8.9/tests/init.cfg 2011-01-04 17:43:36.218137788 +0100
-@@ -216,8 +216,8 @@ skip_if_()
+diff -urNp coreutils-8.11-orig/tests/init.cfg coreutils-8.11/tests/init.cfg
+--- coreutils-8.11-orig/tests/init.cfg 2011-04-12 12:07:43.000000000 +0200
++++ coreutils-8.11/tests/init.cfg 2011-04-14 11:06:05.503308646 +0200
+@@ -231,8 +231,8 @@ require_selinux_()
- require_selinux_()
- {
+ # Independent of whether SELinux is enabled system-wide,
+ # the current file system may lack SELinux support.
- case `ls -Zd .` in
- '? .'|'unlabeled .')
+ case `ls -Zd . | cut -f4 -d" "` in
skip_test_ "this system (or maybe just" \
"the current file system) lacks SELinux support"
;;
-diff -urNp coreutils-8.9-orig/tests/misc/selinux coreutils-8.9/tests/misc/selinux
---- coreutils-8.9-orig/tests/misc/selinux 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/tests/misc/selinux 2011-01-04 17:43:36.219137718 +0100
+diff -urNp coreutils-8.11-orig/tests/misc/selinux coreutils-8.11/tests/misc/selinux
+--- coreutils-8.11-orig/tests/misc/selinux 2011-01-31 13:40:38.000000000 +0100
++++ coreutils-8.11/tests/misc/selinux 2011-04-14 11:06:05.504353757 +0200
@@ -37,7 +37,7 @@ chcon $ctx f d p ||
# inspect that context with both ls -Z and stat.