summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--NEWS5
-rw-r--r--bootstrap.conf2
-rw-r--r--doc/coreutils.texi7
-rw-r--r--src/sort.c16
-rwxr-xr-xtests/misc/sort-compress6
6 files changed, 20 insertions, 26 deletions
diff --git a/ChangeLog b/ChangeLog
index d9163e88a..9a483f876 100644
--- a/ChangeLog
+++ b/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.
diff --git a/NEWS b/NEWS
index a09987701..96ebd8243 100644
--- a/NEWS
+++ b/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
diff --git a/bootstrap.conf b/bootstrap.conf
index e94478a07..c54b03599 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -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
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index 04c1b4e1e..99412e425 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -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
diff --git a/src/sort.c b/src/sort.c
index 6a7de9c52..58ca66a2e 100644
--- a/src/sort.c
+++ b/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);
}
diff --git a/tests/misc/sort-compress b/tests/misc/sort-compress
index b0f4dd703..0cafb2e9f 100755
--- a/tests/misc/sort-compress
+++ b/tests/misc/sort-compress
@@ -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