New upstream release coreutils-6.11

This commit is contained in:
Ondrej Vasik 2008-04-23 09:58:23 +00:00
parent 9e2af9bdea
commit a81ef24536
13 changed files with 186 additions and 926 deletions

View File

@ -1 +1 @@
coreutils-6.10.tar.lzma coreutils-6.11.tar.lzma

View File

@ -1,20 +1,33 @@
diff -urp coreutils-6.10-orig/src/Makefile.am coreutils-6.10/src/Makefile.am diff -urNp coreutils-6.11-orig/tests/mkdir/selinux coreutils-6.11/tests/mkdir/selinux
--- coreutils-6.10-orig/src/Makefile.am 2008-01-11 11:34:22.000000000 +0100 --- coreutils-6.11-orig/tests/mkdir/selinux 2008-04-19 23:34:23.000000000 +0200
+++ coreutils-6.10/src/Makefile.am 2008-01-23 14:52:26.000000000 +0100 +++ coreutils-6.11/tests/mkdir/selinux 2008-04-22 13:23:50.000000000 +0200
@@ -170,7 +170,7 @@ install_su = \ @@ -30,6 +30,7 @@ fi
echo " chown root $(installed_su)"; \ . $srcdir/../envvar-check
chown root $(installed_su); \ . $srcdir/../lang-default
echo " chmod $(setuid_root_mode) $(installed_su)"; \ . $srcdir/../test-lib.sh
- chmod $(setuid_root_mode) $(installed_su) \ +require_selinux_
+ chmod $(setuid_root_mode) $(installed_su); \
else \ c=invalid-selinux-context
:; \ msg="failed to set default file creation context to \`$c':"
fi diff -urNp coreutils-6.11-orig/tests/misc/runcon-no-reorder coreutils-6.11/tests/misc/runcon-no-reorder
diff -urp coreutils-6.10-orig/gnulib-tests/test-getaddrinfo.c coreutils-6.10/gnulib-tests/test-getaddrinfo.c --- coreutils-6.11-orig/tests/misc/runcon-no-reorder 2008-04-19 23:34:23.000000000 +0200
--- coreutils-6.10-orig/gnulib-tests/test-getaddrinfo.c 2007-11-17 07:59:42.000000000 +0100 +++ coreutils-6.11/tests/misc/runcon-no-reorder 2008-04-22 12:27:42.000000000 +0200
+++ coreutils-6.10/gnulib-tests/test-getaddrinfo.c 2008-01-25 19:19:43.000000000 +0100 @@ -34,8 +34,8 @@ fail=0
@@ -61,6 +61,10 @@ int simple (char *host, char *service) # On such a system it fails with the above diagnostic, which is fine.
if (res == EAI_SERVICE) # Before the no-reorder change, it would have failed with a diagnostic
# about -j being an invalid option.
-runcon $(id -Z) true -j 2> out && : > exp
+#runcon $(id -Z) true -j 2> out && : > exp
-compare out exp || fail=1
+#compare out exp || fail=1
(exit $fail); exit $fail
diff -urp coreutils-6.11-orig/gnulib-tests/test-getaddrinfo.c coreutils-6.11/gnulib-tests/test-getaddrinfo.c
--- coreutils-6.11-orig/gnulib-tests/test-getaddrinfo.c
+++ coreutils-6.11/gnulib-tests/test-getaddrinfo.c
@@ -70,6 +70,10 @@ int simple (char *host, char *service)
if (res == EAI_NODATA)
return 0; return 0;
+ /* Do not fail this test for temporary name resolution errors. */ + /* Do not fail this test for temporary name resolution errors. */
@ -23,96 +36,4 @@ diff -urp coreutils-6.10-orig/gnulib-tests/test-getaddrinfo.c coreutils-6.10/gnu
+ +
return 1; return 1;
} }
diff -urNp coreutils-6.10-orig/tests/misc/chcon coreutils-6.10/tests/misc/chcon
--- coreutils-6.10-orig/tests/misc/chcon 2008-01-05 23:59:11.000000000 +0100
+++ coreutils-6.10/tests/misc/chcon 2008-03-26 13:19:37.000000000 +0100
@@ -21,9 +21,15 @@ u1=root
r1=object_r
t1=tmp_t
ctx=$u1:$r1:$t1
-chcon $ctx f || fail=1
+chcon $ctx f 2>outerror || fail=1
stat --printf='f|%C\n' f > out || fail=1
+cat <<\EOF > experror || fail=1
+chcon: failed to change context of `f' to `root:object_r:tmp_t': Invalid argument
+EOF
+
+compare outerror experror >/dev/null && skip_test_ "Missing mcstransd, skipping the test"
+
# Use --reference.
chcon --ref=f g || fail=1
stat --printf='g|%C\n' g >> out || fail=1
@@ -38,8 +38,9 @@ stat --printf='g|%C\n' g >> out || fail=
u2=user_u
r2=object_r
t2=file_t
-l2=SystemLow-SystemHigh
-for i in --user=$u2 --role=$r2 --type=$t2 --range=$l2; do
+#do not set range here, it will fail in enforcing mode, requires permissive
+#l2=SystemLow-SystemHigh
+for i in --user=$u2 --role=$r2 --type=$t2; do
chcon $i f || fail=1
stat --printf="f|$i|"'%C\n' f >> out || fail=1
done
@@ -56,12 +57,24 @@ g|$ctx
f|--user=$u2|$u2:$r1:$t1
f|--role=$r2|$u2:$r2:$t1
f|--type=$t2|$u2:$r2:$t2
-f|--range=$l2|$u2:$r2:$t2:$l2
-f|-uroot|root:object_r:file_t:SystemLow-SystemHigh
-f|-robject_r|root:object_r:file_t:SystemLow-SystemHigh
-f|-ttmp_t|root:object_r:tmp_t:SystemLow-SystemHigh
+f|-uroot|root:object_r:file_t
+f|-robject_r|root:object_r:file_t
+f|-ttmp_t|root:object_r:tmp_t
EOF
compare out exp || fail=1
+SELINUX_MODE=$(getenforce)
+if [ $SELINUX_MODE == "Permissive" ]; then
+#check running range for Permisive mode
+l2=SystemLow-SystemHigh
+chcon --range=$l2 f || fail
+stat --printf="f|--range=$l2|"'%C\n' f >> permout || fail=1
+cat <<EOF > permexp || fail=1
+f|--range=$l2|root:object_r:tmp_t:SystemLow-SystemHigh
+EOF
+
+compare permout permexp || fail=1
+fi
+
(exit $fail); exit $fail
diff -urNp coreutils-6.10-orig/tests/misc/factor coreutils-6.10/tests/misc/factor
--- coreutils-6.10-orig/tests/misc/factor 2007-12-13 00:14:28.000000000 +0100
+++ coreutils-6.10/tests/misc/factor 2008-03-28 13:49:34.000000000 +0100
@@ -71,6 +71,7 @@ my @Tests =
['x', '4294966896', {OUT => '2 2 2 2 3 3 3 11 607 1489'}],
['y', '4294966998', {OUT => '2 3 7 3917 26107'}],
['z', '-1',
+ {ERR_SUBST => q!s/'1'/1/!}, # map newer glibc diagnostic to expected.
{ERR => "$prog: invalid option -- 1\n"
. "Try `$prog --help' for more information.\n"},
{EXIT => 1}],
diff -urNp coreutils-6.10-orig/tests/cp/cp-a-selinux coreutils-6.10/tests/cp/cp-a-selinux
--- coreutils-6.10-orig/tests/cp/cp-a-selinux 2008-01-05 23:59:11.000000000 +0100
+++ coreutils-6.10/tests/cp/cp-a-selinux 2008-03-26 13:52:24.000000000 +0100
@@ -27,6 +27,16 @@ PRIV_CHECK_ARG=require-root . $srcdir/..
. $srcdir/../test-lib.sh
require_selinux_
+#check for missing mcstrans(d)
+touch f || fail=1
+chcon root:object_r:tmp_t f 2>outerror || fail=1
+
+cat <<\EOF > experror || fail=1
+chcon: failed to change context of `f' to `root:object_r:tmp_t': Invalid argument
+EOF
+
+compare outerror experror && skip_test_ "Missing mcstransd, skipping the test"
+
cwd=`pwd`
cleanup_() { cd /; umount "$cwd/mnt"; }

View File

@ -1,91 +0,0 @@
diff -urNp coreutils-6.10-orig/src/paste.c coreutils-6.10/src/paste.c
--- coreutils-6.10-orig/src/paste.c 2007-11-25 14:23:31.000000000 +0100
+++ coreutils-6.10/src/paste.c 2008-03-27 14:47:02.000000000 +0100
@@ -42,6 +42,7 @@
#include <sys/types.h>
#include "system.h"
#include "error.h"
+#include "quotearg.h"
/* The official name of this program (e.g., no `g' prefix). */
#define PROGRAM_NAME "paste"
@@ -79,12 +80,17 @@ static struct option const longopts[] =
/* Set globals delims and delim_end. Copy STRPTR to DELIMS, converting
backslash representations of special characters in STRPTR to their actual
values. The set of possible backslash characters has been expanded beyond
- that recognized by the Unix version. */
+ that recognized by the Unix version.
+ Return 0 upon success.
+ If the string ends in an odd number of backslashes, ignore the
+ final backslash and return nonzero. */
-static void
+static int
collapse_escapes (char const *strptr)
{
char *strout = xstrdup (strptr);
+ bool backslash_at_end = false;
+
delims = strout;
while (*strptr)
@@ -123,6 +129,15 @@ collapse_escapes (char const *strptr)
*strout++ = '\v';
break;
+ case '\\':
+ *strout++ = '\\';
+ break;
+
+ case '\0':
+ backslash_at_end = true;
+ goto done;
+
+
default:
*strout++ = *strptr;
break;
@@ -130,7 +145,11 @@ collapse_escapes (char const *strptr)
strptr++;
}
}
+
+ done:;
+
delim_end = strout;
+ return backslash_at_end ? 1 : 0;
}
/* Report a write error and exit. */
@@ -481,7 +500,15 @@ main (int argc, char **argv)
if (optind == argc)
argv[argc++] = "-";
- collapse_escapes (delim_arg);
+ if (collapse_escapes (delim_arg))
+ {
+ /* Don't use the default quoting style, because that would double the
+ number of displayed backslashes, making the diagnostic look bogus. */
+ set_quoting_style (NULL, escape_quoting_style);
+ error (EXIT_FAILURE, 0,
+ _("delimiter list ends with an unescaped backslash: %s"),
+ quotearg_colon (delim_arg));
+ }
if (!serial_merge)
ok = paste_parallel (argc - optind, &argv[optind]);
diff -urNp coreutils-6.10-orig/src/ptx.c coreutils-6.10/src/ptx.c
--- coreutils-6.10-orig/src/ptx.c 2007-11-25 14:23:31.000000000 +0100
+++ coreutils-6.10/src/ptx.c 2008-03-27 14:53:24.000000000 +0100
@@ -387,6 +387,11 @@ copy_unescaped_string (const char *strin
string++;
break;
+ case '\0': /* lone backslash at end of string */
+ /* ignore it */
+ break;
+
+
default:
*cursor++ = '\\';
*cursor++ = *string++;

View File

@ -1,55 +0,0 @@
diff -urNp coreutils-6.10-orig/src/md5sum.c coreutils-6.10/src/md5sum.c
--- coreutils-6.10-orig/src/md5sum.c 2007-11-25 14:23:31.000000000 +0100
+++ coreutils-6.10/src/md5sum.c 2008-04-15 21:04:09.000000000 +0200
@@ -205,6 +205,9 @@ bsd_split_3 (char *s, size_t s_len, unsi
{
size_t i;
+ if (s_len ==0)
+ return false;
+
*file_name = s;
/* Find end of filename. The BSD 'md5' and 'sha1' commands do not escape
diff -urNp coreutils-6.10-orig/src/md5sum.c coreutils-6.10/src/md5sum.c
--- coreutils-6.10-orig/src/md5sum.c 2008-04-18 17:40:03.000000000 +0200
+++ coreutils-6.10/src/md5sum.c 2008-04-18 17:48:05.000000000 +0200
@@ -346,6 +346,8 @@ split_3 (char *s, size_t s_len,
static bool
hex_digits (unsigned char const *s)
{
+ if (!*s)
+ return false;
while (*s)
{
if (!isxdigit (*s))
diff -urNp coreutils-6.10-orig/tests/misc/sha1sum coreutils-6.10/tests/misc/sha1sum
--- coreutils-6.10-orig/tests/misc/sha1sum 2007-12-13 00:14:28.000000000 +0100
+++ coreutils-6.10/tests/misc/sha1sum 2008-04-15 21:05:43.000000000 +0200
@@ -29,7 +29,7 @@ exec $PERL -w -I$srcdir/.. -MCoreutils -M"CuTmpdir qw($me)" -- - <<\EOF
require 5.003;
use strict;
-(my $program_name = $0) =~ s|.*/||;
+my $prog = 'sha1sum';
# Turn off localisation of executable's ouput.
@ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
@@ -72,6 +72,8 @@ my @Tests =
['check-bsd3', '--check', '--status',
{IN=> {'f.sha1' => "SHA1 (f) = $sha_degenerate\n"}},
{AUX=> {f=> 'bar'}}, {EXIT=> 1}],
+ ['bsd-segv', '--check', {IN=> {'z' => "SHA1 ("}}, {EXIT=> 1},
+ {ERR=> "$prog: z: no properly formatted SHA1 checksum lines found\n"}],
);
# Insert the `--text' argument for each test.
@@ -86,7 +88,6 @@ foreach $t (@Tests)
my $save_temps = $ENV{DEBUG};
my $verbose = $ENV{VERBOSE};
-my $prog = 'sha1sum';
-my $fail = run_tests ($program_name, $prog, \@Tests, $save_temps, $verbose);
+my $fail = run_tests ($prog, $prog, \@Tests, $save_temps, $verbose);
exit $fail;
EOF

View File

@ -1,97 +0,0 @@
diff -urNp coreutils-6.10-orig/src/mkdir.c coreutils-6.10/src/mkdir.c
--- coreutils-6.10-orig/src/mkdir.c 2008-03-27 14:42:40.000000000 +0100
+++ coreutils-6.10/src/mkdir.c 2008-03-27 14:51:48.000000000 +0100
@@ -211,7 +211,7 @@ main (int argc, char **argv)
if (scontext && setfscreatecon (scontext) < 0)
error (EXIT_FAILURE, errno,
_("failed to set default file creation context to %s"),
- quote (optarg));
+ quote (scontext));
if (options.make_ancestor_function || specified_mode)
{
diff -urNp coreutils-6.10-orig/src/mkfifo.c coreutils-6.10/src/mkfifo.c
--- coreutils-6.10-orig/src/mkfifo.c 2008-03-29 17:53:27.000000000 +0100
+++ coreutils-6.10/src/mkfifo.c 2008-03-29 17:55:44.000000000 +0100
@@ -1,5 +1,5 @@
/* mkfifo -- make fifo's (named pipes)
- Copyright (C) 90, 91, 1995-2007 Free Software Foundation, Inc.
+ Copyright (C) 90, 91, 1995-2008 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -123,7 +123,7 @@ main (int argc, char **argv)
if (scontext && setfscreatecon (scontext) < 0)
error (EXIT_FAILURE, errno,
_("failed to set default file creation context to %s"),
- quote (optarg));
+ quote (scontext));
newmode = (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
if (specified_mode)
diff -urNp coreutils-6.10-orig/src/mknod.c coreutils-6.10/src/mknod.c
--- coreutils-6.10-orig/src/mknod.c 2008-03-29 17:53:27.000000000 +0100
+++ coreutils-6.10/src/mknod.c 2008-03-29 17:55:36.000000000 +0100
@@ -175,7 +175,7 @@ main (int argc, char **argv)
if (scontext && setfscreatecon (scontext) < 0)
error (EXIT_FAILURE, errno,
_("failed to set default file creation context to %s"),
- quote (optarg));
+ quote (scontext));
/* Only check the first character, to allow mnemonic usage like
`mknod /dev/rst0 character 18 0'. */
diff -urNp coreutils-6.10-orig/tests/mkdir/selinux coreutils-6.10/tests/mkdir/selinux
--- coreutils-6.10-orig/tests/mkdir/selinux 1970-01-01 01:00:00.000000000 +0100
+++ coreutils-6.10/tests/mkdir/selinux 2008-03-29 17:58:25.000000000 +0100
@@ -0,0 +1,50 @@
+#!/bin/sh
+# ensure that an invalid context doesn't cause a segfault
+
+# Copyright (C) 2008 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+if test "$VERBOSE" = yes; then
+ set -x
+ mkdir --version
+ mkfifo --version
+ mknod --version
+fi
+
+. $srcdir/../envvar-check
+. $srcdir/../lang-default
+. $srcdir/../test-lib.sh
+
+c=invalid-selinux-context
+fail=0
+msg="failed to set default file creation context to \`$c':"
+
+# Test each of mkdir, mknod, mkfifo with "-Z invalid-context".
+
+for cmd_w_arg in 'mkdir dir' 'mknod b p' 'mkfifo f'; do
+ $cmd_w_arg -Z $c 2> out && fail=1
+ set $cmd_w_arg; cmd=$1
+ echo "$cmd: $msg" > exp || fail=1
+
+ # Some systems fail with ENOTSUP, or EINVAL, or even ENOENT.
+ sed \
+ -e 's/ Invalid argument$//' \
+ -e 's/ Operation not supported$//' \
+ -e 's/ No such file or directory$//' out > k || fail=1
+ mv k out || fail=1
+ compare out exp || fail=1
+done
+
+(exit $fail); exit $fail

View File

@ -1,227 +0,0 @@
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index df6792d..e3a0d50 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -2838,7 +2838,7 @@ Use digits in suffixes rather than lower-case letters.
@itemx --verbose
@opindex --verbose
-Write a diagnostic to standard error just before each output file is opened.
+Write a diagnostic just before each output file is opened.
@end table
@@ -8190,7 +8190,7 @@ If a file has multiple links, only the named links will be removed.
@itemx --verbose
@opindex -v
@opindex --verbose
-Display status updates as sterilization proceeds.
+Display to standard error status updates as sterilization proceeds.
@item -x
@itemx --exact
diff --git a/src/install.c b/src/install.c
index db08751..6925c55 100644
--- a/src/install.c
+++ b/src/install.c
@@ -1,5 +1,5 @@
/* install - copy files and set attributes
- Copyright (C) 89, 90, 91, 1995-2007 Free Software Foundation, Inc.
+ Copyright (C) 89, 90, 91, 1995-2008 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -160,6 +160,19 @@ static struct option const long_options[] =
{NULL, 0, NULL, 0}
};
+/* Verbose formatted output of variable count of arguments. */
+static void
+verbose_output (FILE *fp, char const *fmt, ...)
+{
+ va_list ap;
+ fputs (program_name, fp);
+ fputs (": ", fp);
+ va_start (ap, fmt);
+ vfprintf (fp, fmt, ap);
+ va_end (ap);
+ fputc ('\n', fp);
+}
+
static void
cp_option_init (struct cp_options *x)
{
@@ -762,7 +775,7 @@ announce_mkdir (char const *dir, void *options)
{
struct cp_options const *x = options;
if (x->verbose)
- error (0, 0, _("creating directory %s"), quote (dir));
+ verbose_output (stdout,_("creating directory %s"), quote (dir));
}
/* Make ancestor directory DIR, whose last file name component is
diff --git a/src/rmdir.c b/src/rmdir.c
index bb1a0c8..1f17f6a 100644
--- a/src/rmdir.c
+++ b/src/rmdir.c
@@ -1,6 +1,6 @@
/* rmdir -- remove directories
- Copyright (C) 90, 91, 1995-2002, 2004, 2005, 2006, 2007 Free Software
+ Copyright (C) 90, 91, 1995-2002, 2004-2008 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
@@ -72,6 +72,19 @@ static struct option const longopts[] =
{NULL, 0, NULL, 0}
};
+/* Verbose formatted output of variable count of arguments. */
+static void
+verbose_output (FILE *fp, char const *fmt, ...)
+{
+ va_list ap;
+ fputs (program_name, fp);
+ fputs (": ", fp);
+ va_start (ap, fmt);
+ vfprintf (fp, fmt, ap);
+ va_end (ap);
+ fputc ('\n', fp);
+}
+
/* Return true if ERROR_NUMBER is one of the values associated
with a failed rmdir due to non-empty target directory. */
static bool
@@ -134,7 +147,7 @@ remove_parents (char *dir)
/* Give a diagnostic for each attempted removal if --verbose. */
if (verbose)
- error (0, 0, _("removing directory, %s"), quote (dir));
+ verbose_output (stdout,_("removing directory, %s"), quote (dir));
ok = (rmdir (dir) == 0);
@@ -233,7 +246,7 @@ main (int argc, char **argv)
/* Give a diagnostic for each attempted removal if --verbose. */
if (verbose)
- error (0, 0, _("removing directory, %s"), dir);
+ verbose_output(stdout, _("removing directory, %s"), dir);
if (rmdir (dir) != 0)
{
diff --git a/src/mkdir.c b/src/mkdir.c
index 0704077..3781065 100644
--- a/src/mkdir.c
+++ b/src/mkdir.c
@@ -1,5 +1,5 @@
/* mkdir -- make directories
- Copyright (C) 90, 1995-2002, 2004-2007 Free Software Foundation, Inc.
+ Copyright (C) 90, 1995-2002, 2004-2008 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -79,6 +79,19 @@ Mandatory arguments to long options are mandatory for short options too.\n\
exit (status);
}
+/* Verbose formatted output of variable count of arguments. */
+static void
+verbose_output (FILE *fp, char const *fmt, ...)
+{
+ va_list ap;
+ fputs (program_name, fp);
+ fputs (": ", fp);
+ va_start (ap, fmt);
+ vfprintf (fp, fmt, ap);
+ va_end (ap);
+ fputc ('\n', fp);
+}
+
/* Options passed to subsidiary functions. */
struct mkdir_options
{
@@ -105,7 +118,7 @@ announce_mkdir (char const *dir, void *options)
{
struct mkdir_options const *o = options;
if (o->created_directory_format)
- error (0, 0, o->created_directory_format, quote (dir));
+ verbose_output (stdout, o->created_directory_format, quote (dir));
}
/* Make ancestor directory DIR, whose last component is COMPONENT,
diff --git a/src/split.c b/src/split.c
index 5807a1c..f84d40e 100644
--- a/src/split.c
+++ b/src/split.c
@@ -1,5 +1,5 @@
/* split.c -- split a file into pieces.
- Copyright (C) 1988, 1991, 1995-2007 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1991, 1995-2008 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -122,8 +122,8 @@ Mandatory arguments to long options are mandatory for short options too.\n\
-l, --lines=NUMBER put NUMBER lines per output file\n\
"), DEFAULT_SUFFIX_LENGTH);
fputs (_("\
- --verbose print a diagnostic to standard error just\n\
- before each output file is opened\n\
+ --verbose print a diagnostic just before each\n\
+ output file is opened\n\
"), stdout);
fputs (HELP_OPTION_DESCRIPTION, stdout);
fputs (VERSION_OPTION_DESCRIPTION, stdout);
@@ -208,7 +208,7 @@ cwrite (bool new_file_flag, const char *bp, size_t bytes)
next_file_name ();
if (verbose)
- fprintf (stderr, _("creating file %s\n"), quote (outfile));
+ fprintf (stdout, _("creating file %s\n"), quote (outfile));
output_desc = open (outfile,
O_WRONLY | O_CREAT | O_TRUNC | O_BINARY,
(S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP
diff --git a/tests/misc/split-a b/tests/misc/split-a
index 794115f..a8eed38 100755
--- a/tests/misc/split-a
+++ b/tests/misc/split-a
@@ -1,7 +1,7 @@
#!/bin/sh
# Show that split -a works.
-# Copyright (C) 2002-2007 Free Software Foundation, Inc.
+# Copyright (C) 2002-2008 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -39,7 +39,7 @@ test -f xaz && fail=1
rm -f x*
# With a longer suffix, it must succeed.
-split --verbose -b 1 -a 2 in 2> err || fail=1
+split --verbose -b 1 -a 2 in > err || fail=1
test -f xaa || fail=1
test -f xaz || fail=1
test -f xba || fail=1
diff --git a/tests/mkdir/p-v b/tests/mkdir/p-v
index 2c84b41..569e9b0 100755
--- a/tests/mkdir/p-v
+++ b/tests/mkdir/p-v
@@ -1,7 +1,7 @@
#!/bin/sh
# Test mkdir -pv.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2006-2008 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@ fi
. $srcdir/../lang-default
. $srcdir/../test-lib.sh
-mkdir -pv foo/a/b/c/d 2>out || exit
+mkdir -pv foo/a/b/c/d >out || exit
diff - out <<\EOF
mkdir: created directory `foo'

View File

@ -1,45 +0,0 @@
diff -urNp coreutils-6.10-orig/src/dd.c coreutils-6.10/src/dd.c
--- coreutils-6.10-orig/src/dd.c 2007-12-06 14:22:42.000000000 +0100
+++ coreutils-6.10/src/dd.c 2008-03-11 12:48:12.000000000 +0100
@@ -391,6 +391,25 @@ static char const ebcdic_to_ascii[] =
'\070', '\071', '\372', '\373', '\374', '\375', '\376', '\377'
};
+/* True if we need to close the standard output *stream*. */
+static bool close_stdout_required = true;
+
+/* The only reason to close the standard output *stream* is if
+ parse_long_options fails (as it does for --help or --version).
+ In any other case, dd uses only the STDOUT_FILENO file descriptor,
+ and the "cleanup" function calls "close (STDOUT_FILENO)".
+ Closing the file descriptor and then letting the usual atexit-run
+ close_stdout function call "fclose (stdout)" would result in a
+ harmless failure of the close syscall (with errno EBADF).
+ This function serves solely to avoid the unnecessary close_stdout
+ call, once parse_long_options has succeeded. */
+static void
+maybe_close_stdout (void)
+{
+ if (close_stdout_required)
+ close_stdout ();
+}
+
void
usage (int status)
{
@@ -1639,12 +1658,14 @@ main (int argc, char **argv)
textdomain (PACKAGE);
/* Arrange to close stdout if parse_long_options exits. */
- atexit (close_stdout);
+ atexit (maybe_close_stdout);
page_size = getpagesize ();
parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE, VERSION,
usage, AUTHORS, (char const *) NULL);
+ close_stdout_required = false;
+
if (getopt_long (argc, argv, "", NULL, NULL) != -1)
usage (EXIT_FAILURE);

View File

@ -329,7 +329,7 @@
error (EXIT_FAILURE, errno, "-"); error (EXIT_FAILURE, errno, "-");
--- coreutils-6.8+/src/join.c.i18n 2007-01-14 15:41:28.000000000 +0000 --- coreutils-6.8+/src/join.c.i18n 2007-01-14 15:41:28.000000000 +0000
+++ coreutils-6.8+/src/join.c 2007-03-01 15:08:24.000000000 +0000 +++ coreutils-6.8+/src/join.c 2007-03-01 15:08:24.000000000 +0000
@@ -23,16 +23,30 @@ @@ -23,17 +23,31 @@
#include <sys/types.h> #include <sys/types.h>
#include <getopt.h> #include <getopt.h>
@ -352,6 +352,7 @@
#include "stdio--.h" #include "stdio--.h"
#include "xmemcoll.h" #include "xmemcoll.h"
#include "xstrtol.h" #include "xstrtol.h"
#include "argmatch.h"
+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ +/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */
+#if HAVE_MBRTOWC && defined mbstate_t +#if HAVE_MBRTOWC && defined mbstate_t
@ -562,144 +563,6 @@
xfields (line); xfields (line);
return true; return true;
} }
@@ -303,56 +469,114 @@
keycmp (struct line const *line1, struct line const *line2)
{
/* Start of field to compare in each file. */
- char *beg1;
- char *beg2;
-
- size_t len1;
- size_t len2; /* Length of fields to compare. */
+ char *beg[2];
+ char *copy[2];
+ size_t len[2]; /* Length of fields to compare. */
int diff;
+ int i, j;
if (join_field_1 < line1->nfields)
{
- beg1 = line1->fields[join_field_1].beg;
- len1 = line1->fields[join_field_1].len;
+ beg[0] = line1->fields[join_field_1].beg;
+ len[0] = line1->fields[join_field_1].len;
}
else
{
- beg1 = NULL;
- len1 = 0;
+ beg[0] = NULL;
+ len[0] = 0;
}
if (join_field_2 < line2->nfields)
{
- beg2 = line2->fields[join_field_2].beg;
- len2 = line2->fields[join_field_2].len;
+ beg[1] = line2->fields[join_field_2].beg;
+ len[1] = line2->fields[join_field_2].len;
}
else
{
- beg2 = NULL;
- len2 = 0;
+ beg[1] = NULL;
+ len[1] = 0;
}
- if (len1 == 0)
- return len2 == 0 ? 0 : -1;
- if (len2 == 0)
+ if (len[0] == 0)
+ return len[1] == 0 ? 0 : -1;
+ if (len[1] == 0)
return 1;
if (ignore_case)
{
- /* FIXME: ignore_case does not work with NLS (in particular,
- with multibyte chars). */
- diff = memcasecmp (beg1, beg2, MIN (len1, len2));
+#ifdef HAVE_MBRTOWC
+ if (MB_CUR_MAX > 1)
+ {
+ size_t mblength;
+ wchar_t wc, uwc;
+ mbstate_t state, state_bak;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+
+ for (i = 0; i < 2; i++)
+ {
+ copy[i] = alloca (len[i] + 1);
+
+ for (j = 0; j < MIN (len[0], len[1]);)
+ {
+ state_bak = state;
+ mblength = mbrtowc (&wc, beg[i] + j, len[i] - j, &state);
+
+ switch (mblength)
+ {
+ case (size_t) -1:
+ case (size_t) -2:
+ state = state_bak;
+ /* Fall through */
+ case 0:
+ mblength = 1;
+ break;
+
+ default:
+ uwc = towupper (wc);
+
+ if (uwc != wc)
+ {
+ mbstate_t state_wc;
+
+ memset (&state_wc, '\0', sizeof (mbstate_t));
+ wcrtomb (copy[i] + j, uwc, &state_wc);
+ }
+ else
+ memcpy (copy[i] + j, beg[i] + j, mblength);
+ }
+ j += mblength;
+ }
+ copy[i][j] = '\0';
+ }
+ }
+ else
+#endif
+ {
+ for (i = 0; i < 2; i++)
+ {
+ copy[i] = alloca (len[i] + 1);
+
+ for (j = 0; j < MIN (len[0], len[1]); j++)
+ copy[i][j] = toupper (beg[i][j]);
+
+ copy[i][j] = '\0';
+ }
+ }
}
else
{
- if (hard_LC_COLLATE)
- return xmemcoll (beg1, len1, beg2, len2);
- diff = memcmp (beg1, beg2, MIN (len1, len2));
+ copy[0] = (unsigned char *) beg[0];
+ copy[1] = (unsigned char *) beg[1];
}
+ if (hard_LC_COLLATE)
+ return xmemcoll ((char *) copy[0], len[0], (char *) copy[1], len[1]);
+ diff = memcmp (copy[0], copy[1], MIN (len[0], len[1]));
+
if (diff)
return diff;
- return len1 < len2 ? -1 : len1 != len2;
+ return len[0] - len[1];
}
/* Print field N of LINE if it exists and is nonempty, otherwise
@@ -377,11 +601,18 @@ @@ -377,11 +601,18 @@
/* Print the join of LINE1 and LINE2. */ /* Print the join of LINE1 and LINE2. */
@ -823,7 +686,149 @@
+ tablen = newtablen; + tablen = newtablen;
} }
break; break;
diff -urNp coreutils-6.11-orig/src/join.c coreutils-6.11/src/join.c
--- coreutils-6.11-orig/src/join.c 2008-04-21 13:44:32.000000000 +0200
+++ coreutils-6.11/src/join.c 2008-04-21 14:03:22.000000000 +0200
@@ -324,56 +324,115 @@ keycmp (struct line const *line1, struct
size_t jf_1, size_t jf_2)
{
/* Start of field to compare in each file. */
- char *beg1;
- char *beg2;
-
- size_t len1;
- size_t len2; /* Length of fields to compare. */
+ char *beg[2];
+ char *copy[2];
+ size_t len[2]; /* Length of fields to compare. */
int diff;
+ int i, j;
if (jf_1 < line1->nfields)
{
- beg1 = line1->fields[jf_1].beg;
- len1 = line1->fields[jf_1].len;
+ beg[0] = line1->fields[jf_1].beg;
+ len[0] = line1->fields[jf_1].len;
}
else
{
- beg1 = NULL;
- len1 = 0;
+ beg[0] = NULL;
+ len[0] = 0;
}
if (jf_2 < line2->nfields)
{
- beg2 = line2->fields[jf_2].beg;
- len2 = line2->fields[jf_2].len;
+ beg[1] = line2->fields[jf_2].beg;
+ len[1] = line2->fields[jf_2].len;
}
else
{
- beg2 = NULL;
- len2 = 0;
+ beg[1] = NULL;
+ len[1] = 0;
}
- if (len1 == 0)
- return len2 == 0 ? 0 : -1;
- if (len2 == 0)
+ if (len[0] == 0)
+ return len[1] == 0 ? 0 : -1;
+ if (len[1] == 0)
return 1;
if (ignore_case)
{
- /* FIXME: ignore_case does not work with NLS (in particular,
- with multibyte chars). */
- diff = memcasecmp (beg1, beg2, MIN (len1, len2));
+#ifdef HAVE_MBRTOWC
+ if (MB_CUR_MAX > 1)
+ {
+ size_t mblength;
+ wchar_t wc, uwc;
+ mbstate_t state, state_bak;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+
+ for (i = 0; i < 2; i++)
+ {
+ copy[i] = alloca (len[i] + 1);
+
+ for (j = 0; j < MIN (len[0], len[1]);)
+ {
+ state_bak = state;
+ mblength = mbrtowc (&wc, beg[i] + j, len[i] - j, &state);
+
+ switch (mblength)
+ {
+ case (size_t) -1:
+ case (size_t) -2:
+ state = state_bak;
+ /* Fall through */
+ case 0:
+ mblength = 1;
+ break;
+
+ default:
+ uwc = towupper (wc);
+
+ if (uwc != wc)
+ {
+ mbstate_t state_wc;
+
+ memset (&state_wc, '\0', sizeof (mbstate_t));
+ wcrtomb (copy[i] + j, uwc, &state_wc);
+ }
+ else
+ memcpy (copy[i] + j, beg[i] + j, mblength);
+ }
+ j += mblength;
+ }
+ copy[i][j] = '\0';
+ }
+ }
+ else
+#endif
+ {
+ for (i = 0; i < 2; i++)
+ {
+ copy[i] = alloca (len[i] + 1);
+
+ for (j = 0; j < MIN (len[0], len[1]); j++)
+ copy[i][j] = toupper (beg[i][j]);
+
+ copy[i][j] = '\0';
+ }
+ }
}
else
{
- if (hard_LC_COLLATE)
- return xmemcoll (beg1, len1, beg2, len2);
- diff = memcmp (beg1, beg2, MIN (len1, len2));
+ copy[0] = (unsigned char *) beg[0];
+ copy[1] = (unsigned char *) beg[1];
}
+ if (hard_LC_COLLATE)
+ return xmemcoll ((char *) copy[0], len[0], (char *) copy[1], len[1]);
+ diff = memcmp (copy[0], copy[1], MIN (len[0], len[1]));
+
+
if (diff)
return diff;
- return len1 < len2 ? -1 : len1 != len2;
+ return len[0] - len[1];
}
/* Check that successive input lines PREV and CURRENT from input file
--- coreutils-6.8+/src/uniq.c.i18n 2007-01-14 15:41:28.000000000 +0000 --- coreutils-6.8+/src/uniq.c.i18n 2007-01-14 15:41:28.000000000 +0000
+++ coreutils-6.8+/src/uniq.c 2007-03-01 15:08:24.000000000 +0000 +++ coreutils-6.8+/src/uniq.c 2007-03-01 15:08:24.000000000 +0000
@@ -23,6 +23,16 @@ @@ -23,6 +23,16 @@

View File

@ -1,103 +0,0 @@
src/copy.c | 5 +++--
tests/mv/Makefile.am | 4 ++--
tests/mv/atomic2 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 55 insertions(+), 4 deletions(-)
create mode 100755 tests/mv/atomic2
diff --git a/src/copy.c b/src/copy.c
index fd31b5c..208a674 100644
--- a/src/copy.c
+++ b/src/copy.c
@@ -1339,10 +1339,11 @@ copy_internal (char const *src_name, char const *dst_name,
new_dst = true;
}
else if (! S_ISDIR (dst_sb.st_mode)
+ /* Never unlink dst_name when in move mode. */
+ && ! x->move_mode
&& (x->unlink_dest_before_opening
|| (x->preserve_links && 1 < dst_sb.st_nlink)
- || (!x->move_mode
- && x->dereference == DEREF_NEVER
+ || (x->dereference == DEREF_NEVER
&& S_ISLNK (src_sb.st_mode))
))
{
diff --git a/tests/mv/Makefile.am b/tests/mv/Makefile.am
index c121911..92ec68e 100644
--- a/tests/mv/Makefile.am
+++ b/tests/mv/Makefile.am
@@ -1,7 +1,6 @@
# Make coreutils tests for "mv". -*-Makefile-*-
-# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
-# Free Software Foundation, Inc.
+# Copyright (C) 1998-2008 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,6 +16,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
TESTS = \
+ atomic2 \
sticky-to-xpart \
hard-verbose \
backup-dir \
diff --git a/tests/mv/atomic2 b/tests/mv/atomic2
new file mode 100755
index 0000000..d1029aa
--- /dev/null
+++ b/tests/mv/atomic2
@@ -0,0 +1,50 @@
+#!/bin/sh
+# ensure that mv doesn't first unlink a multi-hard-linked destination
+
+# Copyright (C) 2008 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+if test "$VERBOSE" = yes; then
+ set -x
+ mv --version
+fi
+
+. $srcdir/../strace
+. $srcdir/../test-lib.sh
+
+# Before the fix, mv would unnecessarily unlink the destination symlink:
+# $ rm -f a b b2; touch a b; ln b b2; strace -e unlink /p/bin/mv a b
+# unlink("b") = 0
+#
+# With the fix, it doesn't call unlink:
+# $ rm -f a b b2; touch a b; ln b b2; strace -e unlink ./mv a b
+# $
+
+touch a b || framework_failure
+ln b b2 || framework_failure
+
+fail=0
+
+strace -qe unlink mv a b > out 2>&1 || fail=1
+$EGREP 'unlink.*"b"' out && fail=1
+
+# Ensure that the source, "a", is gone.
+ls -dl a > /dev/null 2>&1 && fail=1
+
+# Ensure that the destination, "b", has link count 1.
+n_links=`stat --printf=%h b` || fail=1
+test "$n_links" = 1 || fail=1
+
+(exit $fail); exit $fail
--
1.5.5.rc0.7.g57e83

View File

@ -967,19 +967,6 @@ diff -urp coreutils-6.10-orig/src/mkdir.c coreutils-6.10/src/mkdir.c
"), stdout); "), stdout);
fputs (HELP_OPTION_DESCRIPTION, stdout); fputs (HELP_OPTION_DESCRIPTION, stdout);
fputs (VERSION_OPTION_DESCRIPTION, stdout); fputs (VERSION_OPTION_DESCRIPTION, stdout);
@@ -173,6 +174,12 @@ main (int argc, char **argv)
options.created_directory_format = _("created directory %s");
break;
case 'Z':
+ /* politely decline if we're not on a selinux-enabled kernel. */
+ if( !(is_selinux_enabled()>0)) {
+ fprintf( stderr, "Sorry, --context (-Z) can be used only on "
+ "a selinux-enabled kernel.\n" );
+ exit( 1 );
+ }
scontext = optarg;
break;
case_GETOPT_HELP_CHAR;
diff -urp coreutils-6.10-orig/src/mkfifo.c coreutils-6.10/src/mkfifo.c diff -urp coreutils-6.10-orig/src/mkfifo.c coreutils-6.10/src/mkfifo.c
--- coreutils-6.10-orig/src/mkfifo.c 2008-01-05 23:58:25.000000000 +0100 --- coreutils-6.10-orig/src/mkfifo.c 2008-01-05 23:58:25.000000000 +0100
+++ coreutils-6.10/src/mkfifo.c 2008-01-25 16:58:15.000000000 +0100 +++ coreutils-6.10/src/mkfifo.c 2008-01-25 16:58:15.000000000 +0100
@ -993,19 +980,6 @@ diff -urp coreutils-6.10-orig/src/mkfifo.c coreutils-6.10/src/mkfifo.c
"), stdout); "), stdout);
fputs (_("\ fputs (_("\
Mandatory arguments to long options are mandatory for short options too.\n\ Mandatory arguments to long options are mandatory for short options too.\n\
@@ -98,6 +99,12 @@ main (int argc, char **argv)
specified_mode = optarg;
break;
case 'Z':
+ if (!(0 < is_selinux_enabled()))
+ {
+ fprintf( stderr, "Sorry, --context (-Z) can be used only on "
+ "a selinux-enabled kernel.\n" );
+ exit (1);
+ }
scontext = optarg;
break;
case_GETOPT_HELP_CHAR;
diff -urp coreutils-6.10-orig/src/mknod.c coreutils-6.10/src/mknod.c diff -urp coreutils-6.10-orig/src/mknod.c coreutils-6.10/src/mknod.c
--- coreutils-6.10-orig/src/mknod.c 2008-01-05 23:58:25.000000000 +0100 --- coreutils-6.10-orig/src/mknod.c 2008-01-05 23:58:25.000000000 +0100
+++ coreutils-6.10/src/mknod.c 2008-01-25 17:01:11.000000000 +0100 +++ coreutils-6.10/src/mknod.c 2008-01-25 17:01:11.000000000 +0100
@ -1028,19 +1002,6 @@ diff -urp coreutils-6.10-orig/src/mknod.c coreutils-6.10/src/mknod.c
"), stdout); "), stdout);
fputs (_("\ fputs (_("\
Mandatory arguments to long options are mandatory for short options too.\n\ Mandatory arguments to long options are mandatory for short options too.\n\
@@ -114,6 +115,12 @@ main (int argc, char **argv)
specified_mode = optarg;
break;
case 'Z':
+ /* politely decline if we're not on a selinux-enabled kernel. */
+ if( !(is_selinux_enabled()>0)) {
+ fprintf( stderr, "Sorry, --context (-Z) can be used only on "
+ "a selinux-enabled kernel.\n" );
+ exit( 1 );
+ }
scontext = optarg;
break;
case_GETOPT_HELP_CHAR;
diff -urp coreutils-6.10-orig/src/mv.c coreutils-6.10/src/mv.c diff -urp coreutils-6.10-orig/src/mv.c coreutils-6.10/src/mv.c
--- coreutils-6.10-orig/src/mv.c 2008-01-05 23:59:11.000000000 +0100 --- coreutils-6.10-orig/src/mv.c 2008-01-05 23:59:11.000000000 +0100
+++ coreutils-6.10/src/mv.c 2008-01-25 17:11:50.000000000 +0100 +++ coreutils-6.10/src/mv.c 2008-01-25 17:11:50.000000000 +0100

View File

@ -1,7 +1,7 @@
Summary: The GNU core utilities: a set of tools commonly used in shell scripts Summary: The GNU core utilities: a set of tools commonly used in shell scripts
Name: coreutils Name: coreutils
Version: 6.10 Version: 6.11
Release: 21%{?dist} Release: 1%{?dist}
License: GPLv3+ License: GPLv3+
Group: System Environment/Base Group: System Environment/Base
Url: http://www.gnu.org/software/coreutils/ Url: http://www.gnu.org/software/coreutils/
@ -18,12 +18,6 @@ Source202: coreutils-su-l.pamd
Source203: coreutils-runuser-l.pamd Source203: coreutils-runuser-l.pamd
# From upstream # From upstream
Patch1: coreutils-6.10-verbose.patch
Patch2: coreutils-dddoubleclose.patch
Patch3: coreutils-mvatomic.patch
Patch4: coreutils-6.10-lonebackslash.patch
Patch5: coreutils-6.10-mkscontextsegfault.patch
Patch6: coreutils-6.10-md5sha1sum.patch
# Our patches # Our patches
Patch100: coreutils-chgrp.patch Patch100: coreutils-chgrp.patch
@ -102,12 +96,6 @@ lzma -dc %SOURCE0 | tar xf -
cd %name-%version cd %name-%version
# From upstream # From upstream
%patch1 -p1 -b .verbose
%patch2 -p1 -b .doubleclose
%patch3 -p1 -b .atomic
%patch4 -p1 -b .backslash
%patch5 -p1 -b .mksegfault
%patch6 -p1 -b .mda5sum
# Our patches # Our patches
%patch100 -p1 -b .chgrp %patch100 -p1 -b .chgrp
@ -138,7 +126,6 @@ cd %name-%version
%patch951 -p1 -b .selinuxman %patch951 -p1 -b .selinuxman
chmod a+x tests/sort/sort-mb-tests chmod a+x tests/sort/sort-mb-tests
chmod a+x tests/mkdir/selinux
#fix typos/mistakes in localized documentation(#439410, #440056) #fix typos/mistakes in localized documentation(#439410, #440056)
for pofile in $(find ./po/*.p*) for pofile in $(find ./po/*.p*)
@ -314,6 +301,10 @@ fi
/sbin/runuser /sbin/runuser
%changelog %changelog
* Mon Apr 21 2008 Ondrej Vasik <ovasik@redhat.com> - 6.11-1
- New upstream release 6.11
- removed accepted patches + few minor patch changes
* Fri Apr 18 2008 Ondrej Vasik <ovasik@redhat.com> - 6.10-21 * Fri Apr 18 2008 Ondrej Vasik <ovasik@redhat.com> - 6.10-21
- fix wrong checksum line handling in sha1sum -c - fix wrong checksum line handling in sha1sum -c
command(#439531) command(#439531)

View File

@ -1,9 +1,9 @@
--- coreutils-5.92/man/date.1.dateman 2005-10-22 19:14:46.000000000 +0100 --- coreutils-5.92/man/date.1.dateman 2005-10-22 19:14:46.000000000 +0100
+++ coreutils-5.92/man/date.1 2005-10-24 17:57:38.000000000 +0100 +++ coreutils-5.92/man/date.1 2005-10-24 17:57:38.000000000 +0100
@@ -188,6 +188,11 @@ @@ -214,6 +214,11 @@
then an optional modifier, which is either relative date, and numbers. An empty string indicates the beginning
E to use the locale's alternate representations if available, or of the day. The date string format is more complex than is easily
O to use the locale's alternate numeric symbols if available. documented here but is fully described in the info documentation.
+.SH ENVIRONMENT +.SH ENVIRONMENT
+.TP +.TP
+TZ +TZ

View File

@ -1 +1 @@
23582a4e8b21e837cfbafbc3834a8a4b coreutils-6.10.tar.lzma 19e5f1a1529ac6e95748dd4230fa7733 coreutils-6.11.tar.lzma