summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2007-02-22Placate valgrind, wrt ./cp --sparse=alwaysJim Meyering
* src/copy.c (copy_reg): Place the sentinel by setting a full word's worth of bits, not just a single byte's worth. This avoids a harmless (but distracting) case of memory being used-uninitialized.
2007-02-21* src/copy.c (cached_umask): Cast -1 to mode_t to avoid a warningPaul Eggert
about out-of-range initializer with Sun C 5.8.
2007-02-20* src/env.c (main): When invoked with no arguments (i.e. when printingJim Meyering
the environment), use a local variable to iterate through the global "environ" array, rather than "environ" itself. This is solely to avoid changing the environment for an LD_PRELOAD-substituted "puts" or "exit" function. Tiny patch by Harvey Eneman. See <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9735>. * THANKS: Update.
2007-02-19* NEWS: sort now uses a --compress-program option rather thanPaul Eggert
an environment variable. * doc/coreutils.texi (sort invocation): Document this. * src/sort.c (usage): Likewise. (COMPRESS_PROGRAM_OPTION): New const. (long_options, create_temp, main): Support new option. * tests/misc/sort-compress: Test it.
2007-02-18Rely on gnulib-generated stdlib.h, not exit.h.Jim Meyering
* src/system.h: Don't include exit.h, now that it's subsumed by the gnulib-generated stdlib.h. * lib/xfts.c: Include <stdlib.h> rather than exit.h, now that stdlib.h
2007-02-15* bootstrap.conf (gnulib_modules): Add c-strcase. Remove strcase.Paul Eggert
* src/dircolors.c: Include c-strcase.h. (dc_parse_stream): Use c_strcasecmp rather than strcasecmp to avoid unreliable results in locales like Turkish where strcasecmp is incompatible with the C locale.
2007-02-10Remove excess leading spaces that would make help2man misbehave.Jim Meyering
* src/printf.c (usage): Remove excess spaces on 2nd line of %b desc. * src/nl.c (usage): Remove excess spaces on 2nd line of pBRE desc. * src/dd.c (usage): Remove excess spaces on 2nd line of sync desc. * src/date.c (usage): Use two spaces after each optional flag, not one. Reported by Thomas Huriaux in <http://bugs.debian.org/410407>.
2007-02-10* src/csplit.c (usage): Use two spaces (not one) to separateJim Meyering
each option string from its description, so help2man formats the derived man page properly. Reported by Thomas Huriaux in <http://bugs.debian.org/410407>. * src/df.c (usage): Likewise. * src/du.c (usage): Likewise. * src/install.c (usage): Likewise. * src/ls.c (usage): Likewise.
2007-02-03* NEWS: Document fix for cp --preserve=mode.Paul Eggert
* src/copy.c (copy_internal): Omit the group- or other-writeable permissions when creating a directory, to avoid a race condition if the special mode bits aren't right just after the directory is created. * src/cp.c (make_dir_parents_private): Likewise. * tests/cp/parent-perm-race: Test for the "cp --preserve=mode" race fix in copy.c.
2007-02-03* NEWS: Document fix for cp --parents.Paul Eggert
* src/cp.c (make_dir_parents_private): Report the error sooner with "cp --parents DIR/FILE DEST" when DIR is a non-directory, thus not creating the directory, DEST/DIR. * tests/cp/cp-parents: Test for the non-race-condition bug fixed by the above change.
2007-02-02* src/nl.c (proc_text): Use "NULL", not "(struct re_registers *) 0".Jim Meyering
2007-02-02* src/c99-to-c89.diff: Make shred.c Index: and a/b prefixesJim Meyering
consistent, so this can be applied with patch -p0. Reported by Matthew Woehlke. * Makefile.maint (patch-check): Use patch with its -p2 option, since that makes this check slightly more strict.
2007-01-29Plug a leak in ls.Jim Meyering
* src/ls.c (print_dir): Don't leak a "DIR"+fd upon failure to determine dev/inode or upon detecting a symlink loop.
2007-01-29* src/ls.c: Rename three global variables.Jim Meyering
(cwd_file): Rename from 'files'. (cwd_n_alloc): Rename from 'nfiles'. (cwd_n_used): Rename from 'files_index'.
2007-01-29Shave 8 bytes off the size of "struct fileinfo".Jim Meyering
* src/ls.c (fileinfo): Put all members of type "bool" together.
2007-01-29Modify "ls" to sort its data faster, using the new gnulib mpsortPaul Eggert
module rather than qsort. This is particularly a win in environments where strcoll is slow, since mpsort typically calls strcoll less often than qsort does. * bootstrap.conf (gnulib_modules): Add mpsort. * src/ls.c: Include mpsort.h. (sorted_file, sorted_file_alloc): New vars, for a new vector of pointers to the file info, for speed. (clear_files, extract_dirs_from_files, sort_files, print_current_files): (print_many_per_line, print_horizontal, print_with_commas): (calculate_columns): Set and use new vector. (initialize_ordering_vector): New function.
2007-01-26Adjust to today's change to gnulib, which added a module forPaul Eggert
string.h to replace the little include files like strcase.h. * src/dircolors.c: Don't include strcase.h. * src/system.h: Don't include mempcpy.h, memrchr.h, stpcpy.h, strpbrk.h.
2007-01-26* src/dd.c (advance_input_after_read_error): Change diagnostic toJim Meyering
say "invalid file offset" rather than "screwy file offset".
2007-01-25* src/sort.c (create_temp): Remove superfluous access-X_OKDan Hipschman
check. find_in_path does this for us.
2007-01-24Pass "make distcheck" again.Jim Meyering
* src/sort.c (usage): Split a diagnostic that had grown to be longer than the C89 maximum of 509 bytes. * .x-sc_cast_of_argument_to_free: New file. Allow a cast in sort.c. FIXME: this is just temporary, while we wait to remove the offending access-calling code. * Makefile.am (EXTRA_DIST): Add .x-sc_cast_of_argument_to_free. * Makefile.maint (sc_cast_of_argument_to_free): Use the canonical, $$($(CVS_LIST_EXCEPT)). * m4/.gitignore, m4/.cvsignore, lib/.gitignore, lib/.cvsignore: Update.
2007-01-24* NEWS: New option sort -C, proposed by XCU ERN 127, which looksPaul Eggert
like it will be approved. Also add --check=quiet, --check=silent as long aliases, and --check=diagnose-first as an alias for -c. * doc/coreutils.texi (sort invocation): Document this. Also, mention that sort -c can take at most one file. * src/sort.c: Implement this. Include argmatch.h. (usage): Document the change. (CHECK_OPTION): New constant. (long_options): --check now takes an optional argument, and is now treated differently from 'c'. (check_args, check_types): New constant arrays. (check): New arg CHECKONLY, which suppresses diagnostic if -C. (main): Parse the new options. * tests/sort/Test.pm (02d, 02d, incompat5, incompat6): New tests for -C.
2007-01-24* NEWS: sort temp file compression: tweak wording.Jim Meyering
* src/sort.c (struct sortfile) [name]: Declare member to be const.
2007-01-24* src/sort.c (MAX_FORK_RETRIES_COMPRESS, MAX_FORK_RETRIES_DECOMPRESS):Dan Hipschman
In pipe_fork callers, use these named constants, not "2" and "8". (proctab, nprocs): Declare to be "static". (pipe_fork) [lint]: Initialize local, pid, to avoid unwarranted may-be-used-uninitialized warning. (create_temp): Use the active voice. Describe parameters, too. 2007-01-21 James Youngman <jay@gnu.org> Centralize all the uses of sigprocmask(). Don't restore an invalid saved mask. * src/sort.c (enter_cs, leave_cs): New functions for protecting code sequences against signal delivery. * (exit_cleanup): Use enter_cs and leave_cs instead of calling sigprocmask directly. (create_temp_file, pipe_fork, zaptemp): Likewise 2007-01-21 Dan Hipschman <dsh@linux.ucla.edu> Add compression of temp files to sort. * NEWS: Mention this. * bootstrap.conf: Import findprog. * configure.ac: Add AC_FUNC_FORK. * doc/coreutils.texi: Document GNUSORT_COMPRESSOR environment variable. * src/sort.c (compress_program): New global, holds the name of the external compression program. (struct sortfile): New type used by mergepfs and friends instead of filenames to hold PIDs of compressor processes. (proctab): New global, holds compressor PIDs on which to wait. (enum procstate, struct procnode): New types used by proctab. (proctab_hasher, proctab_comparator): New functions for proctab. (nprocs): New global, number of forked but unreaped children. (reap, reap_some): New function, wait for/cleanup forked processes. (register_proc, update_proc, wait_proc): New functions for adding, modifying and removing proctab entries. (create_temp_file): Change parameter type to pointer to file descriptor, and return type to pointer to struct tempnode. (dup2_or_die): New function used in create_temp and open_temp. (pipe_fork): New function, creates a pipe and child process. (create_temp): Creates a temp file and possibly a compression program to which we filter output. (open_temp): Opens a compressed temp file and creates a decompression process through which to filter the input. (mergefps): Change FILES parameter type to struct sortfile array and update access accordingly. Use open_temp and reap_some. (avoid_trashing_input, merge): Change FILES parameter like mergefps and call create_temp instead of create_temp_file. (sort): Call create_temp instead of create_temp_file. Use reap_some. (avoid_trashing_input, merge, sort, main): Adapt to mergefps.
2007-01-20Standardize on list of signals when an app catches signals.Paul Eggert
* src/csplit.c (main): Also catch SIGALRM, SIGPIPE, SIGPOLL, SIGPROF, SIGVTALRM, SIGXCPU, SIGXFSZ. * src/ls.c (main): Likewise (except SIGPIPE was already caught). Note that ls.c is special, as it also catches SIGTSTP. * src/sort.c (main): Likewise. Also catch SIGQUIT. More details in <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9510>.
2007-01-19* src/sort.c (cleanup): Clear temphead at the end.Dan Hipschman
(exit_cleanup): New function. (main): Don't invoke atexit until we're ready. Invoke it with exit_cleanup, not with cleanup and close_stdout, to avoid a race condition with cleanup and signal handling. More details: http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9508
2007-01-18* src/c99-to-c89.diff: Adjust remove.c offsets.Jim Meyering
2007-01-17Make "rm --interactive=never ..." never prompt.Jim Meyering
* NEWS: Mention this. * src/remove.h (enum rm_interactive): New ternary type. (struct rm_options) [interactive]: Use it, here -- rather than bool. * src/remove.c (prompt): Reflect type change. * src/mv.c (rm_option_init): Initialize to RMI_NEVER now. * src/rm.c (main): Add a FIXME comment for '-d' option. Adapt to type change of rm_options.interactive. * tests/rm/i-never: New file. Test for the above fix. * tests/rm/Makefile.am (TESTS): Add i-never.
2007-01-15* src/remove.c (remove_dir): Don't use errno in diagnostic.Jim Meyering
Root-only test failure reported by Alex van Hout and Jon Grosshart in <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9415/focus=9415>.
2007-01-11Avoid a leak in expr's implementation of the ":" (match) operator.Jim Meyering
* src/expr.c (docolon): Free the regexp buffer using regfree, rather than doing it manually, being careful to set fastmap to NULL first. Free any re_regs.start and .end members, if necessary.
2007-01-10Don't use fts_statp uninitialized for "chown -RLh --preserve-root ...".Jim Meyering
* src/chown-core.c (FTSENT_IS_DIRECTORY): New macro. (change_file_owner): Perform the ROOT_DEV_INO_CHECK only for a directory. Non-directory entries lack fts_statp data when using the FTS_NOSTAT option.
2007-01-06* src/fmt.c (copy_rest): Correct prefix handling.G.P. Halkes
Don't elide a line with the prefix followed by only white space. (get_line): Move EOF-check to loop-termination condition. * tests/fmt/basic (pfx-1): Adjust test to expect desired result. (pfx-2): Remove test; its premise was contrary to the documentation.
2007-01-05* src/dircolors.hin: Add a TERM directive for cons25.Mike Frysinger
2007-01-04Use the release year, not the current year.Jim Meyering
* src/groups.sh (version): Use a better name: @RELEASE_YEAR@. * src/Makefile.am (RELEASE_YEAR): Define it. (.sh): Use it. Thanks to a prod from Eric Blake.
2007-01-04Ensure that "group --version" always prints the current year.Jim Meyering
* src/groups.sh (version): Use @CURRENT_YEAR@, rather than 2006. * src/Makefile.am (.sh): Also substitute for @CURRENT_YEAR@. Suggestion from Eric Blake.
2007-01-04[ChangeLog]Jim Meyering
When decoding, always allow newlines in input, with almost no performance impact. * src/base64.c (do_decode): Initialize decode context. Call base64_decode one more time, after all input is processed. (usage): When decoding, newlines are always accepted. * tests/misc/base64: Add a bunch of tests, for the above. * gl/lib/base64.c: Include <string.h>. (base64_decode_ctx_init, get_4, decode_4): New functions. (base64_decode): Efficiently handle interspersed newlines. (base64_decode_alloc): Update signature. * gl/lib/base64.h (struct base64_decode_context): Define. (base64_decode_ctx_init): Add prototype. (base64_decode, base64_decode_alloc): Update prototypes. [doc/ChangeLog] * coreutils.texi (base64 invocation): When decoding, newlines are always accepted.
2007-01-03* src/copy.c (copy_internal): Use mkfifo as a fallback if mknod fails.Bruno Haible
Needed on MacOS X. Signed-off-by: Jim Meyering <jim@meyering.net>
2007-01-02Now, "ls -FRL" always follows symbolic links on Linux.Paul Eggert
* NEWS: Mention this bug fix. * src/ls.c (gobble_file): Fix bug reported by Nobuyuki Tsuchimura in http://lists.gnu.org/archive/html/bug-coreutils/2006-12/msg00152.html where "ls -FRL" didn't follow a symbolic link in some cases on Linux. * tests/ls/follow-slink: Add a test for this case. Signed-off-by: Jim Meyering <jim@meyering.net>
2006-12-30* src/c99-to-c89.diff: Adjust remove.c offsets.Jim Meyering
2006-12-30Clean up after the change of 2006-12-28.Jim Meyering
* src/remove.c (AD_pop_and_chdir): Change **DIRP parameter to *DIRP, now that this function never modifies the pointer. Adjust comments and code accordingly. (remove_dir): Set "dirp" to NULL right after AD_pop_and_chdir call, now that AD_pop_and_chdir no longer does that.
2006-12-30* src/copy.c (copy_reg): Rewrite a comment that was renderedJim Meyering
inaccurate by the 2006-10-18 change.
2006-12-28When moving "up" the hierarchy, be careful to remove a just-emptiedJim Meyering
directory before opening ".", to avoid trouble with file system implementations that cache readdir results at opendir-time. * src/remove.c (AD_pop_and_chdir): Add a file descriptor parameter. Don't update **DIRP. Don't call fdopendir here. (remove_dir): Call fdopendir here instead. Report and patch from Mikulas Patocka: <http://lists.gnu.org/archive/html/bug-coreutils/2006-12/msg00170.html>
2006-12-27* src/tail.c (usage): Mention +N for --bytes and --lines.Jim Meyering
Suggestion from Evan Hunt.
2006-12-22* NEWS: dd bs= operands now silently override later ibs= and obs=,Paul Eggert
as POSIX requires. * src/dd.c (scanargs): Implement it. * tests/dd/misc (outbytes): Test it. * doc/coreutils.texi (dd invocation): Specify that bs=N overrides later ibs and obs, undoing part of the previous change. (The behavior was wrong.)
2006-12-21"rm -rf /etc/motd" (run by non-root) now prints a diagnostic.Jim Meyering
* src/remove.c (remove_entry): Handle EACCES for a non-directory, too. Karl Berry reported that a cross-partition "mv /etc/issue ~" failed with the um,... suboptimal diagnostic, "mv: cannot remove `/etc/issue': Not a directory". * tests/rm/Makefile.am (TESTS): Add fail-eacces. * tests/rm/fail-eacces: New file. * NEWS: Mention that both mv and rm are affected.
2006-12-20"cut -f 2- A B" no longer triggers a double-free bugJim Meyering
* src/cut.c (cut_fields): Set file-scoped global to NULL after freeing it. This avoids a double-free (and core dump on some systems) for this usage: "echo 1>a; echo 2>b; cut -f2- a b". Reported by James Hunt in <http://bugzilla.redhat.com/220312>. * NEWS: List this bug fix. * THANKS: Mention him. * tests/misc/cut: New file. * tests/misc/Makefile.am (TESTS): Add cut.
2006-12-14chgrp, chown: Don't prohibit -RLh, aka -RL with --no-dereference.Jim Meyering
* src/chgrp.c (main): Don't prohibit -RLh, aka -RL with --no-dereference. * src/chown.c (main): Likewise. * src/chown-core.c (change_file_owner): Add to a comment. * tests/chown/preserve-root: Add tests. * doc/coreutils.texi (Treating / specially): With --preserve-root, chgrp and chown will not modify "/", even through a symlink.
2006-12-14* NEWS: --preserve-root now works with chgrp, chmod, and chown.Jim Meyering
* src/chmod.c (process_file): Do honor the --preserve-root option. * src/chown-core.c (change_file_owner): Likewise, but here, also handle the case in which a traversal would go "through" a symlink to root. Reported by Matthew M. Boedicker * tests/chown/preserve-root: Test for the above. * tests/chown/Makefile.am (TESTS): Add preserve-root.
2006-12-13Remove some arbitrary restrictions on size fields,Paul Eggert
so that commands like "sort -k 18446744073709551616" no longer fail merely because 18446744073709551616 doesn't fit in uintmax_t. The trick is that these fields can all be treated as effectively infinity; their exact values don't matter, since no internal buffer can be that long. * src/join.c (string_to_join_field): Verify that SIZE_MAX <= ULONG_MAX if the code assumes this. Silently truncate too-large values to SIZE_MAX, as the remaining code will do the right thing in this case. * src/sort.c (parse_field_count): Likewise. * src/uniq.c (size_opt, main): Likewise. * tests/join/Test.pm (bigfield): New test. * tests/sort/Test.pm (bigfield): New test. * tests/uniq/Test.pm (121): New test. Signed-off-by: Jim Meyering <jim@meyering.net>
2006-12-12* src/system.h (SETVBUF): Remove definition, now that theJim Meyering
autoconf macro, AC_FUNC_SETVBUF_REVERSED, does nothing. * src/tee.c (tee_files): s/SETVBUF/setvbuf/. * src/od.c (open_next_file): Likewise.
2006-12-07cp -p now clears special bits if it fails to preserve owner or groupPaul Eggert
* NEWS: Document the cp -p fix for special bits. * src/copy.c (set_owner): Now returns a three-way result, so that the caller can clear the special bits. All callers changed. (copy_reg): Don't set the special bits if chown failed. (copy_internal): Likewise. * tests/cp/special-bits: Test this fix. Signed-off-by: Jim Meyering <jim@meyering.net>