-diff -urNp coreutils-8.7-orig/lib/linebuffer.h coreutils-8.7/lib/linebuffer.h
---- coreutils-8.7-orig/lib/linebuffer.h 2010-06-10 18:45:26.000000000 +0200
-+++ coreutils-8.7/lib/linebuffer.h 2010-11-15 09:59:36.974172148 +0100
+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
@@ -21,6 +21,11 @@
# include <stdio.h>
};
/* Initialize linebuffer LINEBUFFER for use. */
-diff -urNp coreutils-8.7-orig/src/cut.c coreutils-8.7/src/cut.c
---- coreutils-8.7-orig/src/cut.c 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/src/cut.c 2010-11-15 09:59:36.976171659 +0100
+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
@@ -28,6 +28,11 @@
#include <assert.h>
#include <getopt.h>
}
if (optind == argc)
-diff -urNp coreutils-8.7-orig/src/expand.c coreutils-8.7/src/expand.c
---- coreutils-8.7-orig/src/expand.c 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/src/expand.c 2010-11-15 09:59:36.977172637 +0100
+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
@@ -38,12 +38,29 @@
#include <stdio.h>
#include <getopt.h>
if (have_read_stdin && fclose (stdin) != 0)
error (EXIT_FAILURE, errno, "-");
-diff -urNp coreutils-8.7-orig/src/fold.c coreutils-8.7/src/fold.c
---- coreutils-8.7-orig/src/fold.c 2010-10-16 13:28:01.000000000 +0200
-+++ coreutils-8.7/src/fold.c 2010-11-15 09:59:36.979181926 +0100
+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
@@ -22,12 +22,34 @@
#include <getopt.h>
#include <sys/types.h>
break;
case 's': /* Break at word boundaries. */
-diff -urNp coreutils-8.7-orig/src/join.c coreutils-8.7/src/join.c
---- coreutils-8.7-orig/src/join.c 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/src/join.c 2010-11-15 09:59:36.980181716 +0100
+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
@@ -22,18 +22,32 @@
#include <sys/types.h>
#include <getopt.h>
break;
case NOCHECK_ORDER_OPTION:
-diff -urNp coreutils-8.7-orig/src/pr.c coreutils-8.7/src/pr.c
---- coreutils-8.7-orig/src/pr.c 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/src/pr.c 2010-11-15 09:59:36.983181856 +0100
+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
@@ -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.7-orig/src/sort.c coreutils-8.7/src/sort.c
---- coreutils-8.7-orig/src/sort.c 2010-10-25 12:07:57.000000000 +0200
-+++ coreutils-8.7/src/sort.c 2010-11-15 09:59:36.987932380 +0100
+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
@@ -22,11 +22,20 @@
#include <config.h>
#include "system.h"
#include "argmatch.h"
#include "error.h"
-@@ -159,12 +168,34 @@ static int thousands_sep;
+@@ -163,12 +172,34 @@ static int thousands_sep;
/* Nonzero if the corresponding locales are hard. */
static bool hard_LC_COLLATE;
/* The kind of blanks for '-b' to skip in various options. */
enum blanktype { bl_start, bl_end, bl_both };
-@@ -328,13 +359,11 @@ static bool reverse;
+@@ -335,13 +366,11 @@ static bool reverse;
they were read if all keys compare equal. */
static bool stable;
/* Flag to remove consecutive duplicate lines from the output.
Only the last of a sequence of equal lines will be output. */
-@@ -782,6 +811,46 @@ reap_some (void)
- update_proc (pid);
+@@ -775,6 +804,46 @@ reap_all (void)
+ reap (-1);
}
+/* Function pointers. */
/* Clean up any remaining temporary files. */
static void
-@@ -1205,7 +1274,7 @@ zaptemp (char const *name)
+@@ -1207,7 +1276,7 @@ zaptemp (char const *name)
free (node);
}
static int
struct_month_cmp (void const *m1, void const *m2)
-@@ -1220,7 +1289,7 @@ struct_month_cmp (void const *m1, void c
+@@ -1222,7 +1291,7 @@ struct_month_cmp (void const *m1, void c
/* Initialize the character class tables. */
static void
{
size_t i;
-@@ -1232,7 +1301,7 @@ inittables (void)
+@@ -1234,7 +1303,7 @@ inittables (void)
fold_toupper[i] = toupper (i);
}
/* If we're not in the "C" locale, read different names for months. */
if (hard_LC_TIME)
{
-@@ -1314,6 +1383,84 @@ specify_nmerge (int oi, char c, char con
+@@ -1316,6 +1385,84 @@ specify_nmerge (int oi, char c, char con
xstrtol_fatal (e, oi, c, long_options, s);
}
/* Specify the amount of main memory to use when sorting. */
static void
specify_sort_size (int oi, char c, char const *s)
-@@ -1540,7 +1687,7 @@ buffer_linelim (struct buffer const *buf
+@@ -1544,7 +1691,7 @@ buffer_linelim (struct buffer const *buf
by KEY in LINE. */
static char *
{
char *ptr = line->text, *lim = ptr + line->length - 1;
size_t sword = key->sword;
-@@ -1549,10 +1696,10 @@ begfield (struct line const *line, struc
+@@ -1553,10 +1700,10 @@ begfield (struct line const *line, struc
/* The leading field separator itself is included in a field when -t
is absent. */
++ptr;
if (ptr < lim)
++ptr;
-@@ -1578,11 +1725,70 @@ begfield (struct line const *line, struc
+@@ -1582,11 +1729,70 @@ begfield (struct line const *line, struc
return ptr;
}
{
char *ptr = line->text, *lim = ptr + line->length - 1;
size_t eword = key->eword, echar = key->echar;
-@@ -1597,10 +1803,10 @@ limfield (struct line const *line, struc
+@@ -1601,10 +1807,10 @@ limfield (struct line const *line, struc
`beginning' is the first character following the delimiting TAB.
Otherwise, leave PTR pointing at the first `blank' character after
the preceding field. */
++ptr;
if (ptr < lim && (eword || echar))
++ptr;
-@@ -1646,10 +1852,10 @@ limfield (struct line const *line, struc
+@@ -1650,10 +1856,10 @@ limfield (struct line const *line, struc
*/
/* Make LIM point to the end of (one byte past) the current field. */
if (newlim)
lim = newlim;
}
-@@ -1680,6 +1886,130 @@ limfield (struct line const *line, struc
+@@ -1684,6 +1890,130 @@ limfield (struct line const *line, struc
return ptr;
}
/* 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
-@@ -1766,8 +2096,22 @@ fillbuf (struct buffer *buf, FILE *fp, c
+@@ -1770,8 +2100,22 @@ fillbuf (struct buffer *buf, FILE *fp, c
else
{
if (key->skipsblanks)
line->keybeg = line_start;
}
}
-@@ -1888,7 +2232,7 @@ human_numcompare (char const *a, char co
+@@ -1892,7 +2236,7 @@ human_numcompare (char const *a, char co
hideously fast. */
static int
{
while (blanks[to_uchar (*a)])
a++;
-@@ -1898,6 +2242,25 @@ numcompare (char const *a, char const *b
+@@ -1902,6 +2246,25 @@ numcompare (char const *a, char const *b
return strnumcmp (a, b, decimal_point, thousands_sep);
}
static int
general_numcompare (char const *sa, char const *sb)
{
-@@ -1930,7 +2293,7 @@ general_numcompare (char const *sa, char
+@@ -1934,7 +2297,7 @@ general_numcompare (char const *sa, char
Return 0 if the name in S is not recognized. */
static int
{
size_t lo = 0;
size_t hi = MONTHS_PER_YEAR;
-@@ -2204,13 +2567,12 @@ debug_key (struct line const *line, stru
- {
- char saved = *lim; *lim = '\0';
+@@ -2209,13 +2572,12 @@ debug_key (struct line const *line, stru
+ char saved = *lim;
+ *lim = '\0';
- while (blanks[to_uchar (*beg)])
- beg++;
else if (key->general_numeric)
ignore_value (strtold (beg, &tighter_lim));
else if (key->numeric || key->human_numeric)
-@@ -2354,7 +2716,7 @@ key_warnings (struct keyfield const *gke
+@@ -2359,7 +2721,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)))
-@@ -2412,11 +2774,83 @@ key_warnings (struct keyfield const *gke
+@@ -2417,11 +2779,83 @@ key_warnings (struct keyfield const *gke
error (0, 0, _("option `-r' only applies to last-resort comparison"));
}
{
struct keyfield *key = keylist;
-@@ -2501,7 +2935,7 @@ keycompare (struct line const *a, struct
+@@ -2506,7 +2940,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)
-@@ -2617,6 +3051,179 @@ keycompare (struct line const *a, struct
+@@ -2622,6 +3056,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. */
-@@ -4006,7 +4613,7 @@ main (int argc, char **argv)
+@@ -4084,7 +4691,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
-@@ -4027,6 +4634,29 @@ main (int argc, char **argv)
+@@ -4105,6 +4712,29 @@ main (int argc, char **argv)
thousands_sep = -1;
}
have_read_stdin = false;
inittables ();
-@@ -4297,13 +4927,34 @@ main (int argc, char **argv)
+@@ -4375,13 +5005,34 @@ main (int argc, char **argv)
case 't':
{
else
{
/* Provoke with `sort -txx'. Complain about
-@@ -4314,9 +4965,12 @@ main (int argc, char **argv)
+@@ -4392,9 +5043,12 @@ main (int argc, char **argv)
quote (optarg));
}
}
}
break;
-diff -urNp coreutils-8.7-orig/src/unexpand.c coreutils-8.7/src/unexpand.c
---- coreutils-8.7-orig/src/unexpand.c 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/src/unexpand.c 2010-11-15 09:59:36.989931891 +0100
+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
@@ -39,12 +39,29 @@
#include <stdio.h>
#include <getopt.h>
if (have_read_stdin && fclose (stdin) != 0)
error (EXIT_FAILURE, errno, "-");
-diff -urNp coreutils-8.7-orig/src/uniq.c coreutils-8.7/src/uniq.c
---- coreutils-8.7-orig/src/uniq.c 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/src/uniq.c 2010-11-15 09:59:36.992922043 +0100
+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
@@ -21,6 +21,16 @@
#include <getopt.h>
#include <sys/types.h>
skip_chars = 0;
skip_fields = 0;
check_chars = SIZE_MAX;
-diff -urNp coreutils-8.7-orig/tests/Makefile.am coreutils-8.7/tests/Makefile.am
---- coreutils-8.7-orig/tests/Makefile.am 2010-11-15 09:58:44.197937898 +0100
-+++ coreutils-8.7/tests/Makefile.am 2010-11-15 09:59:36.993932170 +0100
-@@ -231,6 +231,7 @@ TESTS = \
+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 = \
misc/sort-debug-keys \
misc/sort-debug-warn \
misc/sort-files0-from \
misc/sort-float \
misc/sort-merge \
misc/sort-merge-fdlimit \
-@@ -490,6 +491,10 @@ TESTS = \
+@@ -498,6 +499,10 @@ TESTS = \
$(root_tests)
pr_data = \
pr/0F \
pr/0FF \
pr/0FFnt \
-diff -urNp coreutils-8.7-orig/tests/misc/cut coreutils-8.7/tests/misc/cut
---- coreutils-8.7-orig/tests/misc/cut 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/tests/misc/cut 2010-11-15 09:59:36.994932100 +0100
+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
@@ -26,7 +26,7 @@ use strict;
my $prog = 'cut';
my $try = "Try \`$prog --help' for more information.\n";
my $no_endpoint = "$prog: invalid range with no endpoint: -\n$try";
my @Tests =
-@@ -141,7 +141,7 @@ my @Tests =
+@@ -143,7 +143,7 @@ my @Tests =
# None of the following invalid ranges provoked an error up to coreutils-6.9.
['inval1', qw(-f 2-0), {IN=>''}, {OUT=>''}, {EXIT=>1},
+ {ERR=>"$prog: invalid byte, character or field list\n$try"}],
['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}, {ERR=>$no_endpoint}],
-diff -urNp coreutils-8.7-orig/tests/misc/mb1.I coreutils-8.7/tests/misc/mb1.I
---- coreutils-8.7-orig/tests/misc/mb1.I 1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.7/tests/misc/mb1.I 2010-11-15 09:59:36.995931961 +0100
+ ['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
@@ -0,0 +1,4 @@
+Appleï¼ 10
+Bananaï¼ 5
+Citrusï¼ 20
+Cherryï¼ 30
-diff -urNp coreutils-8.7-orig/tests/misc/mb1.X coreutils-8.7/tests/misc/mb1.X
---- coreutils-8.7-orig/tests/misc/mb1.X 1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.7/tests/misc/mb1.X 2010-11-15 09:59:36.995931961 +0100
+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
@@ -0,0 +1,4 @@
+Bananaï¼ 5
+Appleï¼ 10
+Citrusï¼ 20
+Cherryï¼ 30
-diff -urNp coreutils-8.7-orig/tests/misc/mb2.I coreutils-8.7/tests/misc/mb2.I
---- coreutils-8.7-orig/tests/misc/mb2.I 1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.7/tests/misc/mb2.I 2010-11-15 09:59:36.996933777 +0100
+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
@@ -0,0 +1,4 @@
+Appleï¼ ï¼¡ï¼¡10ï¼ ï¼ 20
+Bananaï¼ ï¼¡ï¼¡5ï¼ ï¼ 30
+Citrusï¼ ï¼¡ï¼¡20ï¼ ï¼ 5
+Cherryï¼ ï¼¡ï¼¡30ï¼ ï¼ 10
-diff -urNp coreutils-8.7-orig/tests/misc/mb2.X coreutils-8.7/tests/misc/mb2.X
---- coreutils-8.7-orig/tests/misc/mb2.X 1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.7/tests/misc/mb2.X 2010-11-15 09:59:36.997922462 +0100
+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
@@ -0,0 +1,4 @@
+Citrusï¼ ï¼¡ï¼¡20ï¼ ï¼ 5
+Cherryï¼ ï¼¡ï¼¡30ï¼ ï¼ 10
+Appleï¼ ï¼¡ï¼¡10ï¼ ï¼ 20
+Bananaï¼ ï¼¡ï¼¡5ï¼ ï¼ 30
-diff -urNp coreutils-8.7-orig/tests/misc/sort-mb-tests coreutils-8.7/tests/misc/sort-mb-tests
---- coreutils-8.7-orig/tests/misc/sort-mb-tests 1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.7/tests/misc/sort-mb-tests 2010-11-15 09:59:36.997922462 +0100
+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
@@ -0,0 +1,58 @@
+#! /bin/sh
+case $# in
-diff -urNp coreutils-8.7-orig/configure.ac coreutils-8.7/configure.ac
---- coreutils-8.7-orig/configure.ac 2010-11-15 10:03:39.636171519 +0100
-+++ coreutils-8.7/configure.ac 2010-11-15 10:04:08.161930423 +0100
-@@ -133,6 +133,13 @@ if test "$gl_gcc_warnings" = yes; then
+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
+@@ -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.7-orig/man/chcon.x coreutils-8.7/man/chcon.x
---- coreutils-8.7-orig/man/chcon.x 2009-09-01 13:01:16.000000000 +0200
-+++ coreutils-8.7/man/chcon.x 2010-11-15 10:04:08.161930423 +0100
+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
@@ -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.7-orig/man/runcon.x coreutils-8.7/man/runcon.x
---- coreutils-8.7-orig/man/runcon.x 2009-09-01 13:01:16.000000000 +0200
-+++ coreutils-8.7/man/runcon.x 2010-11-15 10:04:08.162922322 +0100
+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
@@ -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.7-orig/src/copy.c coreutils-8.7/src/copy.c
---- coreutils-8.7-orig/src/copy.c 2010-10-28 12:31:17.000000000 +0200
-+++ coreutils-8.7/src/copy.c 2010-11-15 10:04:08.165921553 +0100
-@@ -1924,6 +1924,8 @@ copy_internal (char const *src_name, cha
+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
{
/* 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.7-orig/src/copy.h coreutils-8.7/src/copy.h
---- coreutils-8.7-orig/src/copy.h 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/src/copy.h 2010-11-15 10:04:08.166925814 +0100
+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
@@ -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.7-orig/src/cp.c coreutils-8.7/src/cp.c
---- coreutils-8.7-orig/src/cp.c 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/src/cp.c 2010-11-15 10:04:08.168931890 +0100
+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
@@ -141,6 +141,7 @@ static struct option const long_opts[] =
{"target-directory", required_argument, NULL, 't'},
{"update", no_argument, NULL, 'u'},
{GETOPT_HELP_OPTION_DECL},
{GETOPT_VERSION_OPTION_DECL},
{NULL, 0, NULL, 0}
-@@ -200,6 +201,9 @@ Mandatory arguments to long options are
+@@ -204,6 +205,9 @@ Mandatory arguments to long options are
all\n\
"), stdout);
fputs (_("\
--no-preserve=ATTR_LIST don't preserve the specified attributes\n\
--parents use full source file name under DIRECTORY\n\
"), stdout);
-@@ -226,6 +230,7 @@ Mandatory arguments to long options are
+@@ -230,6 +234,7 @@ Mandatory arguments to long options are
destination file is missing\n\
-v, --verbose explain what is being done\n\
-x, --one-file-system stay on this file system\n\
"), stdout);
fputs (HELP_OPTION_DESCRIPTION, stdout);
fputs (VERSION_OPTION_DESCRIPTION, stdout);
-@@ -780,6 +785,7 @@ cp_option_init (struct cp_options *x)
+@@ -786,6 +791,7 @@ cp_option_init (struct cp_options *x)
x->preserve_timestamps = false;
x->preserve_security_context = false;
x->require_preserve_context = false;
x->preserve_xattr = false;
x->reduce_diagnostics = false;
x->require_preserve_xattr = false;
-@@ -927,7 +933,7 @@ main (int argc, char **argv)
+@@ -933,7 +939,7 @@ main (int argc, char **argv)
we'll actually use backup_suffix_string. */
backup_suffix_string = getenv ("SIMPLE_BACKUP_SUFFIX");
long_opts, NULL))
!= -1)
{
-@@ -974,6 +980,16 @@ main (int argc, char **argv)
+@@ -981,6 +987,16 @@ main (int argc, char **argv)
copy_contents = true;
break;
case 'd':
x.preserve_links = true;
x.dereference = DEREF_NEVER;
-@@ -1083,6 +1099,27 @@ main (int argc, char **argv)
+@@ -1090,6 +1106,27 @@ main (int argc, char **argv)
x.one_file_system = true;
break;
case 'S':
make_backups = true;
backup_suffix_string = optarg;
-diff -urNp coreutils-8.7-orig/src/chcon.c coreutils-8.7/src/chcon.c
---- coreutils-8.7-orig/src/chcon.c 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/src/chcon.c 2010-11-15 10:04:08.169922391 +0100
+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);
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.7-orig/src/id.c coreutils-8.7/src/id.c
---- coreutils-8.7-orig/src/id.c 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/src/id.c 2010-11-15 10:04:08.170933217 +0100
+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
@@ -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.7-orig/src/install.c coreutils-8.7/src/install.c
---- coreutils-8.7-orig/src/install.c 2010-10-15 21:56:29.000000000 +0200
-+++ coreutils-8.7/src/install.c 2010-11-15 10:04:08.171921693 +0100
+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)
x->data_copy_required = true;
x->require_preserve = false;
use_default_selinux_context = false;
break;
case_GETOPT_HELP_CHAR;
-@@ -985,8 +992,8 @@ Mandatory arguments to long options are
+@@ -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\
-- -Z, --context=CONTEXT set SELinux security context of files and directories\n\
-+ -P, --preserve-context (SELinux) preserve security context\n\
-+ -Z, --context=CONTEXT (SELinux) set security context of files and directories\n\
++ -P, --preserve-context preserve SELinux security context\n\
+ -Z, --context=CONTEXT set SELinux security context of files and directories\
+ \n\
"), stdout);
-
- fputs (HELP_OPTION_DESCRIPTION, stdout);
-diff -urNp coreutils-8.7-orig/src/ls.c coreutils-8.7/src/ls.c
---- coreutils-8.7-orig/src/ls.c 2010-10-25 12:07:57.000000000 +0200
-+++ coreutils-8.7/src/ls.c 2010-11-15 10:04:08.175921763 +0100
+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
@@ -159,7 +159,8 @@ enum filetype
symbolic_link,
sock,
default:
usage (LS_FAILURE);
}
-@@ -2690,8 +2714,10 @@ clear_files (void)
+@@ -2691,8 +2715,10 @@ clear_files (void)
struct fileinfo *f = sorted_file[i];
free (f->name);
free (f->linkname);
}
cwd_n_used = 0;
-@@ -2733,6 +2759,7 @@ gobble_file (char const *name, enum file
+@@ -2734,6 +2760,7 @@ gobble_file (char const *name, enum file
memset (f, '\0', sizeof *f);
f->stat.st_ino = inode;
f->filetype = type;
if (command_line_arg
|| format_needs_stat
-@@ -2842,7 +2869,7 @@ gobble_file (char const *name, enum file
+@@ -2843,7 +2870,7 @@ gobble_file (char const *name, enum file
&& print_with_color && is_colored (C_CAP))
f->has_capability = has_capability (absolute_name);
{
bool have_selinux = false;
bool have_acl = false;
-@@ -2865,7 +2892,7 @@ gobble_file (char const *name, enum file
+@@ -2866,7 +2893,7 @@ gobble_file (char const *name, enum file
err = 0;
}
{
int n = file_has_acl (absolute_name, &f->stat);
err = (n < 0);
-@@ -2884,7 +2911,8 @@ gobble_file (char const *name, enum file
+@@ -2885,7 +2912,8 @@ gobble_file (char const *name, enum file
}
if (S_ISLNK (f->stat.st_mode)
{
char *linkname;
struct stat linkstats;
-@@ -2904,6 +2932,7 @@ gobble_file (char const *name, enum file
+@@ -2905,6 +2933,7 @@ gobble_file (char const *name, enum file
command line are automatically traced if not being
listed as files. */
if (!command_line_arg || format == long_format
|| !S_ISDIR (linkstats.st_mode))
{
/* Get the linked-to file's mode for the filetype indicator
-@@ -2943,7 +2972,7 @@ gobble_file (char const *name, enum file
+@@ -2944,7 +2973,7 @@ gobble_file (char const *name, enum file
block_size_width = len;
}
{
if (print_owner)
{
-@@ -3444,6 +3473,13 @@ print_current_files (void)
+@@ -3445,6 +3474,13 @@ print_current_files (void)
print_long_format (sorted_file[i]);
DIRED_PUTCHAR ('\n');
}
break;
}
}
-@@ -3606,6 +3642,67 @@ format_inode (char *buf, size_t buflen,
+@@ -3607,6 +3643,67 @@ format_inode (char *buf, size_t buflen,
: (char *) "?");
}
/* Print information about F in long format. */
static void
print_long_format (const struct fileinfo *f)
-@@ -3697,9 +3794,15 @@ print_long_format (const struct fileinfo
+@@ -3698,9 +3795,15 @@ print_long_format (const struct fileinfo
The latter is wrong when nlink_width is zero. */
p += strlen (p);
{
DIRED_FPUTS (buf, stdout, p - buf);
-@@ -3712,9 +3815,6 @@ print_long_format (const struct fileinfo
+@@ -3713,9 +3816,6 @@ print_long_format (const struct fileinfo
if (print_author)
format_user (f->stat.st_author, author_width, f->stat_ok);
p = buf;
}
-@@ -4059,9 +4159,6 @@ print_file_name_and_frills (const struct
+@@ -4060,9 +4160,6 @@ print_file_name_and_frills (const struct
: human_readable (ST_NBLOCKS (f->stat), buf, human_output_opts,
ST_NBLOCKSIZE, output_block_size));
size_t width = print_name_with_quoting (f, false, NULL, start_col);
if (indicator_style != none)
-@@ -4265,9 +4362,6 @@ length_of_file_name_and_frills (const st
+@@ -4266,9 +4363,6 @@ length_of_file_name_and_frills (const st
output_block_size))
: block_size_width);
quote_name (NULL, f->name, filename_quoting_options, &name_width);
len += name_width;
-@@ -4700,9 +4794,16 @@ Mandatory arguments to long options are
+@@ -4707,9 +4801,16 @@ Mandatory arguments to long options are
-w, --width=COLS assume screen width instead of current value\n\
-x list entries by lines instead of by columns\n\
-X sort alphabetically by entry extension\n\
fputs (HELP_OPTION_DESCRIPTION, stdout);
fputs (VERSION_OPTION_DESCRIPTION, stdout);
emit_size_note ();
-diff -urNp coreutils-8.7-orig/src/mkdir.c coreutils-8.7/src/mkdir.c
---- coreutils-8.7-orig/src/mkdir.c 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/src/mkdir.c 2010-11-15 10:04:08.177942716 +0100
+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
@@ -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.7-orig/src/mknod.c coreutils-8.7/src/mknod.c
---- coreutils-8.7-orig/src/mknod.c 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/src/mknod.c 2010-11-15 10:04:08.177942716 +0100
+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
@@ -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.7-orig/src/mv.c coreutils-8.7/src/mv.c
---- coreutils-8.7-orig/src/mv.c 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/src/mv.c 2010-11-15 10:04:08.179924138 +0100
+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
@@ -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.7-orig/src/runcon.c coreutils-8.7/src/runcon.c
---- coreutils-8.7-orig/src/runcon.c 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/src/runcon.c 2010-11-15 10:04:08.180922252 +0100
+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
@@ -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.7-orig/tests/init.cfg coreutils-8.7/tests/init.cfg
---- coreutils-8.7-orig/tests/init.cfg 2010-11-08 14:10:20.000000000 +0100
-+++ coreutils-8.7/tests/init.cfg 2010-11-15 10:04:08.181922042 +0100
+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_()
require_selinux_()
skip_test_ "this system (or maybe just" \
"the current file system) lacks SELinux support"
;;
-diff -urNp coreutils-8.7-orig/tests/misc/selinux coreutils-8.7/tests/misc/selinux
---- coreutils-8.7-orig/tests/misc/selinux 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/tests/misc/selinux 2010-11-15 10:04:08.181922042 +0100
-@@ -44,7 +44,7 @@ chcon $ctx f d p ||
+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
+@@ -37,7 +37,7 @@ chcon $ctx f d p ||
# inspect that context with both ls -Z and stat.
for i in d f p; do