mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-19 10:15:48 +02:00
* NEWS: sort no longer compresses temporaries by default.
* bootstrap.conf: Remove findprog. * doc/coreutils.texi (sort invocation): The default is to not compress. Don't treat "" specially. * src/sort.c: Don't include findprog.h. (create_temp): Compress only if the user specified --compress-program. * tests/misc/sort-compress: Adjusts tests to match new behavior.
This commit is contained in:
committed by
Jim Meyering
parent
75460e090c
commit
3ea177e3fa
10
ChangeLog
10
ChangeLog
@@ -1,3 +1,13 @@
|
||||
2007-02-24 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* NEWS: sort no longer compresses temporaries by default.
|
||||
* bootstrap.conf: Remove findprog.
|
||||
* doc/coreutils.texi (sort invocation): The default is to not
|
||||
compress. Don't treat "" specially.
|
||||
* src/sort.c: Don't include findprog.h.
|
||||
(create_temp): Compress only if the user specified --compress-program.
|
||||
* tests/misc/sort-compress: Adjusts tests to match new behavior.
|
||||
|
||||
2007-02-24 Jim Meyering <jim@meyering.net>
|
||||
|
||||
Avoid a shell syntax error, when building with an inadequate Perl.
|
||||
|
||||
5
NEWS
5
NEWS
@@ -44,10 +44,9 @@ GNU coreutils NEWS -*- outline -*-
|
||||
|
||||
** New features
|
||||
|
||||
By default, sort usually compresses each temporary file it writes.
|
||||
sort's new --compress-program=PROG option specifies a compression
|
||||
program to use when writing and reading temporary files.
|
||||
This can help save both time and disk space when sorting large inputs.
|
||||
The default compression program is gzip, but this can be overridden
|
||||
with sort's new --compress-program=PROG option.
|
||||
|
||||
** New features
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ gnulib_modules="
|
||||
config-h configmake
|
||||
closeout cycle-check d-ino d-type diacrit dirfd dirname dup2
|
||||
error euidaccess exclude exitfail fchdir fcntl fcntl-safer fdl
|
||||
file-type fileblocks filemode filenamecat findprog fnmatch-gnu
|
||||
file-type fileblocks filemode filenamecat fnmatch-gnu
|
||||
fopen-safer
|
||||
fprintftime fsusage ftruncate fts getdate getgroups gethrxtime
|
||||
getline getloadavg getndelim2 getopt getpagesize getpass-gnu
|
||||
|
||||
@@ -3634,9 +3634,7 @@ Other options are:
|
||||
@table @samp
|
||||
|
||||
@item --compress-program=@var{prog}
|
||||
If @var{prog} is not the empty string, compress any temporary files
|
||||
with the program @var{prog} rather than with the default compression
|
||||
method. The default is currently @command{gzip} but this may change.
|
||||
Compress any temporary files with the program @var{prog}.
|
||||
|
||||
With no arguments, @var{prog} must compress standard input to standard
|
||||
output, and when given the @option{-d} option it must decompress
|
||||
@@ -3647,9 +3645,6 @@ Terminate with an error if @var{prog} exits with nonzero status.
|
||||
Whitespace and the backslash character should not appear in
|
||||
@var{prog}; they are reserved for future use.
|
||||
|
||||
If @var{prog} is the empty string, do not compress temporary
|
||||
files.
|
||||
|
||||
@item -k @var{pos1}[,@var{pos2}]
|
||||
@itemx --key=@var{pos1}[,@var{pos2}]
|
||||
@opindex -k
|
||||
|
||||
16
src/sort.c
16
src/sort.c
@@ -30,7 +30,6 @@
|
||||
#include "system.h"
|
||||
#include "argmatch.h"
|
||||
#include "error.h"
|
||||
#include "findprog.h"
|
||||
#include "hard-locale.h"
|
||||
#include "hash.h"
|
||||
#include "inttostr.h"
|
||||
@@ -847,14 +846,7 @@ create_temp (FILE **pfp, pid_t *ppid)
|
||||
struct tempnode *node = create_temp_file (&tempfd);
|
||||
char *name = node->name;
|
||||
|
||||
if (! compress_program)
|
||||
{
|
||||
static char const default_compress_program[] = "gzip";
|
||||
char const *prog = find_in_path (default_compress_program);
|
||||
compress_program = (prog == default_compress_program ? "" : prog);
|
||||
}
|
||||
|
||||
if (*compress_program)
|
||||
if (compress_program)
|
||||
{
|
||||
int pipefds[2];
|
||||
|
||||
@@ -875,8 +867,7 @@ create_temp (FILE **pfp, pid_t *ppid)
|
||||
dup2_or_die (pipefds[0], STDIN_FILENO);
|
||||
close (pipefds[0]);
|
||||
|
||||
if (execlp (compress_program, compress_program,
|
||||
(char *) NULL) < 0)
|
||||
if (execlp (compress_program, compress_program, (char *) NULL) < 0)
|
||||
error (SORT_FAILURE, errno, _("couldn't execute %s"),
|
||||
compress_program);
|
||||
}
|
||||
@@ -925,8 +916,7 @@ open_temp (const char *name, pid_t pid)
|
||||
dup2_or_die (pipefds[1], STDOUT_FILENO);
|
||||
close (pipefds[1]);
|
||||
|
||||
if (execlp (compress_program, compress_program,
|
||||
"-d", (char *) NULL) < 0)
|
||||
if (execlp (compress_program, compress_program, "-d", (char *) NULL) < 0)
|
||||
error (SORT_FAILURE, errno, _("couldn't execute %s -d"),
|
||||
compress_program);
|
||||
}
|
||||
|
||||
@@ -57,14 +57,14 @@ EOF
|
||||
chmod +x gzip
|
||||
|
||||
# This will find our new gzip in PATH
|
||||
PATH=.:$PATH sort -S 1k in > out || fail=1
|
||||
PATH=.:$PATH sort -S 1k --compress-program=gzip in > out || fail=1
|
||||
cmp exp out || fail=1
|
||||
test $fail = 1 && diff out exp 2> /dev/null
|
||||
test -f ok || fail=1
|
||||
rm -f ok
|
||||
|
||||
# This is to make sure we can disable compression
|
||||
PATH=.:$PATH sort --compress-program= -S 1k in > out || fail=1
|
||||
# This is to make sure it works with no compression.
|
||||
PATH=.:$PATH sort -S 1k in > out || fail=1
|
||||
cmp exp out || fail=1
|
||||
test $fail = 1 && diff out exp 2> /dev/null
|
||||
test -f ok && fail=1
|
||||
|
||||
Reference in New Issue
Block a user