1999-04-01 Jim Meyering * configure.in (AC_CHECK_FUNCS): Add acl. (AC_CHECK_HEADERS): Add sys/acl.h. * src/ls.c [HAVE_SYS_ACL_H]: Include sys/acl.h. (struct fileinfo): New member `have_acl'. (gobble_file): Initialize it. (print_long_format): Use it. Mostly from Alen Muzinic. * src/touch.c (open_maybe_create): New function. (touch): Rewrite not to use `creat' and to eliminate a race condition that could make touch truncate a nonempty file. Report and suggestions from Andrew Tridgell. 1999-03-31 Jim Meyering * src/du.c: Remove prototypes and tsort function definitions. * src/chown.c (main): Move the declaration of `e' into the scope where it's used and make it `const'. * src/install.c (main): Qualify a char* with the `const' keyword. (install_file_in_dir): Likewise. * src/ln.c (main): Likewise. * src/mkdir.c (main): Likewise. * src/mkfifo.c (main): Likewise. * src/mknod.c (main): Likewise. * src/mv.c (main): Likewise. * src/touch.c (touch): Likewise. 1999-03-30 Jim Meyering * src/*.c: Don't include closeout.h or version-etc.h explicitly. Now, they're included via sys2.h. 1999-03-29 Jim Meyering * configure.in (GNU_PACKAGE): Remove related code -- now it's in the catch-all for shared autoconf code, m4/jm-macros.m4. (jm_CHECK_ALL_TYPES): Remove explicit AC_TYPE_* macros and use this instead. 1999-03-29 Paul Eggert Minor lint removal in code that forks and execs. * lib/mkdir.c (mkdir): Use pid_t instead of int; check status against zero. This is to improve portability. * lib/rename.c (rename): Likewise. * lib/rmdir.c (rmdir): Likewise. * lib/rename.c (rename): (rename): Do not print any error messages, so that the messages are internationalized properly. * src/install.c (strip): Use standard "cannot fork" message. Check for strip nonzero exit status. 1999-03-28 Jim Meyering `chmod =OP' did not properly apply the umask * lib/modechange.c (make_node_op_equals): New function. (mode_append_entry): Likewise. (mode_compile): When none of [ugoa] is specified in an `=OP' change mode request, insert a `=0' entry into the linked list so that all bits are cleared first. Use the new functions. Reported by Andrew Dalke. New test for the above. * configure.in (AC_OUTPUT): Add tests/chmod/Makefile. * tests/Makefile.am (SUBDIRS): Add chmod. * tests/chmod: New directory * tests/chmod/equal-x: New file. 1999-03-27 Jim Meyering * lib/modechange.c (mode_compile): Upon allocation failure, free everything starting with the head, not the tail. * src/install.c (strip): Use pid_t, not int. From John Bley. 1999-03-26 Jim Meyering * src/dd.c (PROGRAM_NAME, AUTHORS): Define (long_options): Remove unused struct. (scanargs): Remove useless loop. (main): Use PROGRAM_NAME and AUTHORS in call to parse_long_options. * src/mvdir.c: Likewise. * src/sync.c (PROGRAM_NAME, AUTHORS): Define and use. 1999-03-25 Jim Meyering * lib/Makefile.am (libfu_a_SOURCES): Add version-etc.c. (noinst_HEADERS): Add version-etc.h. * lib/long-options.c (parse_long_options): Remove version-, copyright-, and author-printing code. Do it via version_etc. * lib/version-etc.c: New file. * lib/version-etc.h: Prototype for same. * src/sys2.h (GETOPT_HELP_CHAR): Define. (GETOPT_VERSION_CHAR): Define. (GETOPT_HELP_OPTION_DECL): Define. (GETOPT_VERSION_OPTION_DECL): Define. (case_GETOPT_HELP_CHAR): Define. (case_GETOPT_VERSION_CHAR): Define. * src/chgrp.c: No longer include long-options.h. Include version-etc.h instead. (PROGRAM_NAME, AUTHORS): Define. [long_options]: Add entries for --help and --version. Remove parse_long_options call. (main) [getopt switch]: Add a case for each of --help and --version. * src/chgrp.c: Likewise. * src/chmod.c: Likewise. * src/cp.c: Likewise. * src/df.c: Likewise. * src/dircolors.c: Likewise. * src/du.c: Likewise. * src/install.c: Likewise. * src/ln.c: Likewise. * src/ls.c: Likewise. * src/mkdir.c: Likewise. * src/mkfifo.c: Likewise. * src/mknod.c: Likewise. * src/mv.c: Likewise. * src/rm.c: Likewise. * src/rmdir.c: Likewise. * src/shred.c: Likewise. * src/touch.c: Likewise. 1999-03-24 Jim Meyering * man/help2man: Import version 1.010. 1999-03-22 Jim Meyering * src/chmod.c (usage): Add one-liner. Suggestion from Karl Berry. 1999-03-19 Jim Meyering * src/automake-wrap: Rewrite the automake-generated rule for clean-binPROGRAMS so that it removes rm even with a losing PATH on a losing system (PATH with `.' before /bin on a system where you can't unlink a running executable). Reported by William Bader. * configure.in: Use jm_WINSIZE_IN_PTEM. * src/ls.c [WINSIZE_IN_PTEM]: Include sys/stream.h and sys/ptem.h. Required by SCO ODT 2.0 systems. Reported by William Bader. 1999-03-18 Jim Meyering * src/remove.c (remove_cwd_entries): Reflect changes in hash_insert. (remove_init): Call hash_initialize with one more argument. 1999-03-15 Jim Meyering Revamp to allow fine-tuning to control when and by how much the table grows and shrinks. * lib/hash.c (next_prime): Don't assert. (hash_reset_tuning): New function. (check_tuning): New function. (hash_initialize): Accept and use new tuning parameter. (hash_rehash): Rewrite, updating for tuning. (hash_insert): Honor tuning semantics. (hash_delete): Likewise. From François Pinard. * lib/hash.h (struct hash_tuning): Define. (struct hash_table) [tuning]: Add member. (hash_initialize): Add `tuning' parameter. * lib/hash.c (hash_insert): Remove last parameter and change semantics. * lib/hash.h (hash_insert): Update prototype. * lib/hash.c (hash_insert): Don't increment n_entries unconditionally -- otherwise, we'd do so even when the insertion failed. From François Pinard. 1999-03-07 Jim Meyering * lib/xmalloc.c (xalloc_fail): Use "%s" format so the message doesn't have to be scanned for % signs. Suggestion from François Pinard. * Makefile.maint: Add two more URLs and the loops to use them. * lib/long-options.c (parse_long_options): Include `Copyright...' line in --version output. Add the `...NO warranty...' message. 1999-03-03 Jim Meyering * lib/long-options.c (_): Define it. (parse_long_options): Accept new parameter, authors, and print it. * lib/long-options.h: Update prototype. * src/chgrp.c: Include long-options.h [long_options]: Remove the "help" and "version" entries. (main): Use parse_long_options, including author name(s). Remove the show_version and show_help blocks. * src/chmod.c: Likewise. * src/chown.c: Likewise. * src/cp.c: Likewise. * src/dd.c: Likewise. * src/df.c: Likewise. * src/dircolors.c: Likewise. * src/du.c: Likewise. * src/install.c: Likewise. * src/ln.c: Likewise. * src/ls.c: Likewise. * src/mkdir.c: Likewise. * src/mkfifo.c: Likewise. * src/mknod.c: Likewise. * src/mv.c: Likewise. * src/mvdir.c: Likewise. * src/rm.c: Likewise. * src/rmdir.c: Likewise. * src/shred.c: Likewise. * src/sync.c: Likewise. * src/touch.c: Likewise. 1999-02-18 Paul Eggert * getdate.y: : Include if HAVE_ALLOCA_H, not FORCE_ALLOCA_H. The FORCE_ALLOCA_H was a relic of the bad old pre-autoconf Emacs days. 1999-02-17 Jim Meyering * src/shred.c (wipename): Fix string thinko. Now, shredding files in subdirectories works (dir/file). From Janos Farkas. 1999-02-13 Jim Meyering * src/dircolors.c (dc_parse_stream): Don't try to dereference NULL if there's an error in our built-in list. Suggestion from François Pinard. 1999-02-13 Andreas Schwab * src/install.c (main): Set x.backup_type only if backups are requested. (cp_option_init): Initialize backup_type. (backup_type): Remove unused variable. * doc/fileutils.texi: Fix use of @item vs @itemx. 1999-02-08 Jim Meyering * src/dircolors.c (slack_codes): Add "DOOR". (ls_codes): Add corresponding "do". Reported by John Gotts. * configure.in (ALL_LINGUAS): Add Italian (it). 1999-02-07 Jim Meyering * Version 4.0d (aka 4.1-b4). * Makefile.maint (my-distcheck): Don't depend on dist, now that this is hooked up to the distcheck rule. * Makefile.am (distcheck-hook): New target and rule -- link to shared rule, my-distcheck, in Makefile.maint. * doc/fileutils.texi (shred invocation): New section. From Colin Plumb. * configure.in (jm_FUNC_GETGROUPS): Move the test into a new file, group-member.m4, and just use this new macro. Use `.$ac_objext', not the literal `.o'. 1999-02-02 Jim Meyering * src/ls.c (S_ISLNK, S_ISFIFO, S_ISSOCK, S_ISCHR, S_ISBLK, S_ISDOOR): Define to zero if not already defined. (HAVE_SYMLINKS): Define. (gobble_file): Remove #ifdef. (get_link_name, make_link_path): Guard these with #if HAVE_SYMLINKS rather than #ifdef S_ISLNK. (print_type_indicator): Remove #ifdefs and reorganize. (print_color_indicator): Remove #ifdefs. (length_of_file_name_and_frills): Likewise. 1999-02-01 Rainer Orth * src/dircolors.hin: Handle DOOR. * src/ls.c (print_type_indicator): Print doors as '>'. (length_of_file_name_and_frills): Account for this. (indicator_no): Define C_DOOR. (indicator_name): Add corresponding name. * lib/filemode.c (ftypelet): Handle doors. * lib/filemode.c, src/system.h (S_ISDOOR): Define if missing. 1999-02-01 Jim Meyering * lib/strcasecmp.c (STRXCASECMP_FUNCTION): Don't increment within macro argument list. From Akim Demaille. 1999-01-31 Jim Meyering * doc/fileutils.texi: Wrap the @top node in @ifnottex instead of @ifinfo so `makeinfo --html ...' works. From Karl Berry. * tests/ln/misc: Add test for this. * src/ln.c (do_link): Allow creation of a hard link to a dangling symlink. Reported by Alexey Solovyov. * src/copy.c (copy_internal): Describe any backup-related renaming operations when in verbose mode. (copy_internal): Likewise. Based on changes from Marty Leisner. * lib/lchown.c: Declare chown. 1999-01-30 Jim Meyering * acconfig.h: Remove uintmax and STAT* #undefs. * configure.in: Require autoconf 2.13. Remove test for AFS. Use 3-argument form of AC_DEFINE*. 1999-01-28 Jim Meyering * po/POTFILES.in: Add src/shred.c. * src/system.h: Use TIME_WITH_SYS_TIME-based #if test rather than TM_IN_SYS_TIME based one (for shred). * acconfig.h: Remove lots of `#undef's, now that we use the 3-argument forms of AC_DEFINE* macros. 1999-01-25 Jim Meyering * configure.in (fdatasync): Use AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. (AC_CHECK_FUNCS): Add clock_gettime. * src/shred.c (isaac_seed): Guard clock_gettime with test of HAVE_CLOCK_GETTIME, not CLOCK_REALTIME. (wipename): Rename local dirfd to dir_fd to avoid shadowing the function declared in Linux's dirent.h. 1999-01-25 Akim Demaille * lib/argmatch.h (ARRAY_CARDINALITY): Define. (ARGMATCH_ASSERT): New macro. * lib/argmatch.c (program_name): Remove dcl. Include error.h. (argmatch_invalid): Use error rather than fprintf. 1999-01-24 Jim Meyering * src/ansi2knr.c: Exit nonzero upon failed write to stdout. New version from L. Peter Deutsch. * lib/quotearg.c (quotearg_n_options): Revert type of parameter `n' (and hence that of the local `n1', too) to `int' at Paul's request. * lib/closeout.c: Add comments. * src/shred.c (fdatasync): Remove function. instead, ... (fdatasync) [! HAVE_FDATASYNC]: Define to fsync. From Colin Plumb. 1999-01-23 Jim Meyering * src/Makefile.am (bin_PROGRAMS): Add shred. * src/shred.c: New file. Portability tweaks. Internationalize. (wipename): Print the `FILE: deleted' and `FILE: deleting' messages only when in verbose mode. (fdatasync) [! HAVE_FDATASYNC]: New function. * man/Makefile.am (man_MANS): Add shred.1. * man/Makefile.summ (shred-summary): Define. * man/shred.x: New file. * src/shred.c: New file. From Colin Plumb. Include config.h, getopt.h, system.h and error.h. Use #else/#if, not #elif. 1998-11-05 Paul Eggert * lib/mktime.c (__mktime_internal): Adopt the traditional (and problematic) notion of what to do when tm_isdst doesn't match. 1999-01-17 Jim Meyering * tests/cp/Makefile.am (TESTS_ENVIRONMENT): Set PATH here, rather than setting RM and CP. * tests/cp/*: Now that PATH is set properly, use rm and cp rather than $RM and $CP. * tests/ln/Makefile.am (TESTS): Add backup-1. (TESTS_ENVIRONMENT): Set PATH here, rather than setting LN. * tests/ln/*: Now that PATH is set properly, use ln rather than $LN. * tests/ln/backup-1: New test for this. * src/ln.c (do_link): Try to remove DEST even after renaming it. This fixes a bug reported by Jamie Lokier. * src/ln.c (same_name): Use SAME_INODE rather than open coding it. 1999-01-16 Jim Meyering * lib/argmatch.c (ARGMATCH_DIE_DECL): Use it. * acconfig.h: Remove @BOTTOM@ section. Instead, add the define and decl via m4/jm-macros.m4. * src/ls.c: Don't declare base_name. Use function-style XARGMATCH once again. * src/touch.c: Likewise. * acconfig.h: Add a @BOTTOM@ section. (ARGMATCH_DIE) [@BOTTOM@]: Define to usage(1). Declare usage. From Akim Demaille. * src/cp.c: Remove declarations of base_name and get_version. (main): Don't call getenv ("VERSION_CONTROL"); xget_version does it. Use xget_version and function-style XARGMATCH. * src/mv.c (main): Likewise. * src/ln.c (main): Likewise. * src/install.c (main): Likewise. * lib/quotearg.c (quotearg_n_options): Declare n1 to be of type unsigned int, not just int. * lib/backupfile.h (get_version): Adjust prototype. (xget_version): Add prototype. (base_name): Remove prototype. * lib/backupfile.c [!HAVE_DECL_GETENV]: Declare getenv. (backup_args): Reorder enum members. (backup_types): Likewise. (get_version): Take an additional parameter, `context'. (xget_version): Like get_version, but if the `version' argument is NULL, use the value of the envvar VERSION_CONTROL. (base_name): Declare. Mostly from Akim Demaille. * lib/addext.c: (base_name): Declare. * src/sys2.h: Add prototype for base_name. * lib/argmatch.c: s/argmatch_exit_failure/argmatch_die/ * lib/argmatch.h: Likewise. * lib/argmatch.h (XARGMATCH): Define to return a value once again. (XARGCASEMATCH): Likewise. * lib/argmatch.c (EXIT_FAILURE): Define. (ARGMATCH_DIE): Provide default. (__xargmatch_internal): New function. s/rogram_name/program_name. From Akim Demaille. 1999-01-14 Akim Demaille * src/touch.c (usage): Don't make it static so that it can be called from libfu.a by xargmatch. * src/chgrp.c (usage): Likewise * src/chmod.c (usage): Likewise * src/chown.c (usage): Likewise * src/cp.c (usage): Likewise * src/dd.c (usage): Likewise * src/df.c (usage): Likewise * src/dircolors.c (usage): Likewise * src/du.c (usage): Likewise * src/install.c (usage): Likewise * src/ln.c (usage): Likewise * src/ls.c (usage): Likewise * src/mkdir.c (usage): Likewise * src/mkfifo.c (usage): Likewise * src/mknod.c (usage): Likewise * src/mv.c (usage): Likewise * src/mvdir.c (usage): Likewise * src/rm.c (usage): Likewise * src/rmdir.c (usage): Likewise * src/sync.c (usage): Likewise 1999-01-12 Akim Demaille * lib/backupfile.c (get_version): added the parameters KIND. (xget_version): like get_version, but if argument is NULL, honor the envvar VERSION_CONTROL. * src/cp.c: Remove declarations of base_name and get_version. (main): Use xget_version. * src/mv.c (main): Likewise. * src/ln.c (main): Likewise. * src/install.c (main): Likewise. 1999-01-12 Jim Meyering * configure.in (ALL_LINGUAS): Add Greek (el). * po/el.po: New file. * install-sh: New version from autoconf. * missing: New version from automake. * src/ansi2knr.c: Likewise. * lib/getopt.c: New version from glibc. * lib/getopt.h: Likewise. * lib/getopt1.c: Likewise. * lib/regex.c: Likewise. * lib/regex.h: Likewise. * lib/ylwrap: Remove unused file. 1999-01-10 Jim Meyering * Version 4.0c (aka 4.1-b3). * Upgrade to autoconf-2.13 and automake-1.3b. * src/copy.c (copy_internal): Handle two more values of errno from failed rename of a directory into a subdirectory of itself. Thanks to Volker Borchert for testing many types and combinations of systems. * lib/argmatch.c (ARGMATCH_QUOTING_STYLE): Change from c_quoting_style to escape_quoting_style. (argmatch_invalid): Now that the quoted quantity is no longer double quoted, remove the code that removed leading and trailing double quotes. * src/ls.c (decode_switches): Now that escape_quoting_style no longer escapes the SPACE character, arrange for SPACEs to be quoted here. * lib/quotearg.c (quotearg_buffer): Change escape_quoting_style so that it no longer escapes ` '. Suggestion from Paul Eggert. 1999-01-05 Jim Meyering * configure.in (space): Add `for' in message of statvfs check. From Ulrich Drepper. 1999-01-04 Jim Meyering * Version 4.1-b2. 1999-01-02 Jim Meyering * lib/argmatch.c (argmatch_invalid): Remove double quotes from the offending quoted argument before using it in explanatory diagnostic. Use a single fprintf stmt. * lib/argmatch.h (XARGMATCH): Don't return a value; instead, modify a parameter. Add a `Die_stmt' parameter. Add parentheses. * lib/argmatch.c (__xargmatch_internal): Remove now-unused function. (argmatch_to_argument): Add `const' attribute to first parameter. * configure.in (AC_REPLACE_FUNCS): Remove strcasecmp (now it's done in m4/jm-macros.m4). * lib/backupfile.c (get_version): Adapt to use new interface to XARGMATCH. * src/cp.c: Likewise. * src/ls.c: Likewise. * src/touch.c: Likewise. 1999-01-01 Jim Meyering * lib/makepath.c (make_dir): New function, factored out of make_path. (make_path): Use make_dir rather than open-coding it twice. This effectively reverses the order of the latter pair of stat/mkdir calls and fixes a race condition bug whereby one of two concurrent `mkdir -p' processes could fail with EEXIST. Include locale.h and libintl.h, and define `_()'. Mark translatable strings. * lib/xmalloc.c: Add comments. (xcalloc, xmalloc, xrealloc): Remove prototypes. (xcalloc): Remove `#ifdef NOT_USED' that used to hide this function. * lib/xalloc.h: Add comments. (PARAMS, XMALLOC, XCALLOC, XREALLOC): Define. (xcalloc, xmalloc, xrealloc): Add prototypes here. Based on changes from Akim Demaille. * lib/quotearg.c (quotearg_buffer): Cast -1 to size_t before comparing. (quotearg_n): Change type of 1st parameter from int to unsigned int. (quotearg_n_options): Likewise. * lib/quotearg.h (quoting_style_vals): New public array. From Akim Demaille. (quotearg_n_options): Declare `options' parameter to be `const'. * lib/human.c (humblock): Use ARGMATCH in place of argmatch. * lib/backupfile.c (get_version): Use XARGMATCH in place of argmatch & co. 1998-12-31 Jim Meyering * src/ls.c (indicator_style_types): New variable. (format_types): Rename from `formats'. (color_args): Remove unnecessary `no' string. (color_types): Remove corresponding `color_never' entry. (main): Use ARGMATCH_TO_ARGUMENT. (decode_switches): Use ARGMATCH instead of argmatch code in each of several cases. From Akim Demaille. * src/cp.c (main): Use XARGMATCH in place of argmatch & co. * src/touch.c (main): Likewise. * lib/backupfile.c (get_version): Likewise. From Akim Demaille. * lib/strncasecmp.c: New file. * lib/strcasecmp.c: Add #ifdefs so it can be used for strncasecmp, too. * lib/argmatch.c (strncasecmp): Move to a separate file. Add curly braces around some one-stmt-but-multiline blocks. * lib/argmatch.c: Improvements from Akim Demaille. * lib/argmatch.h: Likewise. * lib/addext.c (addext): Protoize. Indent cpp directives to match nesting. Fix warnings from gcc -W -Wall * lib/posixtm.c (posix_time_parse): Change type of index `i' from int to unsigned int. * lib/getdate.y (__attribute__): Define. (ATTRIBUTE_UNUSED): Define. (yyerror): Mark parameter as unused with ATTRIBUTE_UNUSED. (MonthDayTable): Add initializers for last entry. (UnitsTable): Likewise. (OtherTable): Likewise. (MilitaryTable): Likewise. 1998-12-22 Jim Meyering * Version 4.1-b1. * configure.in (ALL_LINGUAS): Add chinese (zh). 1998-12-19 Jim Meyering * tests/ln/misc: Use absolute path for final rm. * Makefile.maint (my-distcheck): Run make with CFLAGS='-Wformat -Werror'. 1998-12-18 Jim Meyering * src/copy.c (copy_internal): Remove errnoeous `%s: ' prefix from format string. From Michiel Bacchiani. * src/chgrp.c (MAXGID): Define. Use gid_t (not int) as the type for `group' variables. (parse_group): Use MAXGID, not INT_MAX. * src/install.c (UID_T_MAX, GID_T_MAX): Remove definitions. * src/sys2.h (UID_T_MAX, GID_T_MAX): Define them here instead. 1998-12-13 Jim Meyering * lib/Makefile.am (EXTRA_DIST): Add xstat.in. 1998-12-12 Jim Meyering 1998-10-15 Akim Demaille * src/ls.c: Group DIRED's code together. (full_time, inhibit_group, col_ext_type): Declare static. (dired_dump_obstack): Apply sizeof to variable, instead of its type. (parse_ls_color): Rename ext2 as e2. Move into the block where it is used. 1998-10-15 Akim Demaille * src/ls.c: In order to distinguish col(umn|or): (init_column_info): Renamed from init_col_info. (struct column_info): Renamed from struct col_info. (struct color_ext_type): Renamed from struct col_ext_type. 1998-12-11 Jim Meyering * lib/Makefile.am (lstat.c): Add rule to generate this from xstat.in. (stat.c): Likewise. * lib/stat.c: Remove file. * lib/lstat.c: Remove file. * lib/xstat.in (xstat@): New file. * lib/quotearg.c (quotearg_buffer): Use `7' as the mask, not `3'. From Bruno Haible. * tests/ls-2/tests: Add a test for this. * man/help2man: import version 1.006. 1998-12-07 Jim Meyering * src/copy.c: Use dir_name, not dirname. Include dirname.h. * src/cp.c: Likewise. * src/df.c: Likewise. * src/install.c: Likewise. * src/ln.c: Likewise. * src/mvdir.c: Likewise. * lib/dirname.c (dir_name): Rename from dirname. Make argument `const'. Include "dirname.h" * lib/dirname.h: New file. * lib/Makefile.am (noinst_HEADERS): Add dirname.h. 1998-12-06 Jim Meyering * lib/rpmatch.c (rpmatch) [!ENABLE_NLS]: Hard-code tests to use `^[yY]' and `^[nN]' (avoiding regex). From Karl Heuer. * lib/*.c: Ansideclify. Fix `ls -R .' formatting bug that broke mktexlsr. * src/ls.c: Include path-concat.h. (basename_is_dot_or_dotdot): New function, derived from is_not_dot_or_dotdot. (is_not_dot_or_dotdot): Remove function. (extract_dirs_from_files): Use `!basename_is_dot_or_dotdot' instead of is_not_dot_or_dotdot and use path_concat instead of attach. * tests/ls-2/tests: New file (renamed from quoting), with new test for the `ls -R .' fix. * tests/ls-2/quoting: Remove file. * tests/ls-2/Makefile.am (TESTS): s/quoting/tests/. 1998-11-29 Jim Meyering * src/remove.c (DOT_OR_DOTDOT): Move definition from this file... * src/sys2.h (DOT_OR_DOTDOT): ...to this one. * src/dd.c (dd_copy): Rename function from `copy'. * src/cp.c (do_copy): Rename local: s/unused/copy_into_self/. Per Kristian Hove reported that a certain move-directory-into-self wasn't properly diagnosed. * tests/mv/into-self-3: New file. * tests/mv/Makefile.am (TESTS): Add into-self-3. * src/copy.c (copy_internal): Remove earlier (but less effective) test for move/copy-into-self. Instead, deduce the move-into-self condition from errno==EINVAL after a failed rename. * src/mv.c (do_move): Don't arrange to remove DEST in the copied-into-self case. 1998-11-15 Jim Meyering Bob McCracken reported that mv couldn't handle certain combinations of hard linked source files. * tests/mv/hard-link-1: New file. * tests/mv/Makefile.am (TESTS): Add hard-link-1. * src/mv.c (movefile): Don't free new_dest. * lib/error.c (error): Don't use strerror_r's return value. From Johan Danielsson. 1998-11-14 Jim Meyering * Version 4.0. * Makefile.maint (cvs-dist): Search for `$tag:' rather than just $tag to avoid matching a prefix of another tag. 1998-11-10 Jim Meyering * configure.in (ALL_LINGUAS): Add Greek (el). * po/el.po: New file. 1998-11-07 Jim Meyering * Version 4.0-b7. Accommodate the Hurd (defining lstat to rpl_lstat via config.h didn't work on Hurd systems because of an inline definition of lstat in a system header file). This also makes it so that you may run `ls '' ' on systems that let l?stat operate on the empty string. * src/remove.c [HAVE_LSTAT_EMPTY_STRING_BUG]: Define lstat to rpl_lstat and declare the latter. * lib/stat.c [stat]: Remove #undef. (rpl_stat): Protoize. * lib/lstat.c [lstat]: Remove #undef. (rpl_lstat): Protoize. Use ENOENT, not EINVAL, to be consistent with lib/stat.c. * acconfig.h: Remove #undef's for lstat and stat. 1998-10-31 Jim Meyering * tests/rm/Makefile.am (TESTS): Add new test `empty-name', but comment it out. * tests/rm/empty-name: New file. * acconfig.h (stat): New #undef. This omission was uncovered when Mark Kettenis reported that `rm -r ''' got a failed assertion on the Hurd. This change doesn't fix *that* problem -- see above. 1998-10-25 Jim Meyering * Version 4.0-b6. * README: Man pages will now be supported to the extent that people send patches. * tests/rm/unreadable: Two new tests. * tests/rm/Makefile.am (TESTS): Add new test `unreadable'. But comment it out since we're so close to release and since the test compares the text of diagnostics that are likely to vary between systems. (TEST_ENVIRONMENT): Add required framework. * src/remove.c (remove_cwd_entries): Don't apply CLOSEDIR to a NULL pointer. (provoke with `mkdir -m 0100 x; rm -rf x') Upon CLOSEDIR failure, set `status' to RM_ERROR, not RM_OK. (remove_dir): Return `status', rather than always RM_OK. 1998-10-18 Jim Meyering * Version 4.0-b5. * lib/mktime.c: Update from libc with this additional change from Paul. * lib/strftime.c: Likewise. 1998-10-17 Paul Eggert Don't invoke localtime_r or gmtime_r unless it's the GNU C library's localtime_r and gmtime_r; there are too many buggy implementations of localtime_r and gmtime_r out there, and it's not worth keeping track of all the different bugs. * mktime.c (__EXTENSIONS__, HAVE_LOCALTIME_R): Remove. (my_mktime_localtime_r): Renamed from localtime_r; all uses changed. Base it on localtime unless _LIBC. * strftime.c (__EXTENSIONS__): Remove. (my_strftime_gmtime_r): Renamed from gmtime_r; all uses changed. (my_strftime_localtime_r): Renamed from localtime_r; all uses changed. Base them on localtime/gmtime if not _LIBC. 1998-10-17 Jim Meyering * Version 4.0-b4. * lib/mktime.c: Declare localtime_r if necessary. * lib/strftime.c: Likewise. * tests/Fetish.pm (run_tests): Run $prog with --version only if $verbose. 1998-10-11 Jim Meyering * Version 4.0-b3. 1998-10-08 Paul Eggert * mktime.c (__mktime_internal): When the requested time falls in a spring-forward gap of size DT, return a time that is DT away from the requested time, preferring a time whose tm_isdst differs from the requested value. Bump the max number of probes from 4 to 6 to account for the extra probes needed to discover a spring-forward gap in the worst case. 1998-10-08 Paul Eggert * mktime.c (my_mktime_localtime_r): Renamed from localtime_r. Define also if HAVE_LOCALTIME_R && defined (localtime_r), with a body that merely expands localtime_r; this works around a bug in Digital Unix 4.0A and 4.0D. 1998-10-05 Jim Meyering * po/Makefile.in.in (uninstall): Remove (historical?) command that removed po-Makefile.in.in. From Akim Demaille. * src/install.c (long_options): Add entry for --suffix=SUFFIX option. From aldomel. 1998-10-04 Jim Meyering * tests/mv/Makefile.am (TESTS_ENVIRONMENT): Define PERL. From Kaveh Ghazi. 1998-10-03 Jim Meyering * Version 4.0-b2. * tests/mv/Makefile.am (TESTS_ENVIRONMENT): Add PATH. * man/Makefile.maint ($(man_MANS)): Don't depend on actual executables. Instead, depend on corresponding source file and on configure.in. Based on suggestion and code from Akim Demaille. Factor out irregular men into Makefile.summ. * man/Makefile.am (EXTRA_DIST): Add Makefile.summ. * man/Makefile.summ: New file. * man/Makefile.maint: Include it. * tests/Fetish.pm: Make `DEBUG' be a little more verbose. * tests/mv/Makefile.am (TESTS): Add i-1. * tests/mv/i-1: New test. 1998-10-02 Jim Meyering * tests/ls-2/Makefile.am (EXTRA_DIST): Remove run-test. * tests/ls-2/run-test: Remove file. * tests/ls-2/quoting: Include /bin/sh driver framework. * tests/dircolors/simple: Remove file. * tests/dircolors/run-test: Embed it here instead. * tests/dircolors/simple: Rename from run-test. 1998-10-01 Jim Meyering * tests/Makefile.am (EXTRA_DIST): Remove README. From Akim Demaille. 1998-09-28 Jim Meyering * Version 4.0-pre1. * Use automake-1.3b. See notes in README. * src/copy.c (copy_internal): Do honor `n' reply in move-mode. Otherwise, `touch a b; echo n|mv -i a b' would remove b. From Bernd Leibing. 1998-09-27 Jim Meyering * Version 3.16z. * Makefile.maint (alpha): New target. (my-distcheck): Tweak. * lib/backupfile.h: Protect against multiple inclusion. From Akim Demaille. * configure.in: Remove use of AC_FUNC_FNMATCH and associated code. Now, it is invoked through jm_MACROS. * lib/strftime.c (my_strftime): Update from FSF. 1998-09-26 Jim Meyering * src/copy.c (copy_internal): Don't preserve hard-linked directories to avoid damaging the destination filesystem when copying from a Netapp snapshot directory. With code from Kjetil Torgrim Hollstein and Paul Eggert. 1998-09-24 Jim Meyering * man/Makefile.maint ($(man_MANS)): Correct typo: s/-tmp/-t/. From Akim Demaille. 1998-09-21 Jim Meyering * man/Makefile.maint ($(man_MANS)): Remove `echo'. 1998-09-20 Jim Meyering * Version 3.16y. * src/install.c (install_file_to_path) [-D]: Create any leading directories with permissions of 0755. 1998-09-19 Jim Meyering * src/install.c (install_file_to_path): Copy the file after creating any leading directories. (main) [case 'v']: Set `x.verbose' to 1, not 0. Reported by Marty Leisner. * man/Makefile.am (transform): Define. (man_MANS): Include ginstall.1, not install.1, to match the name of the executable in ../src. * man/ginstall.x: New file. * man/install.x: Remove file. * man/Makefile.maint (ginstall-summary): Renamed from install-summary. * man/Makefile.am (EXTRA_DIST): Add Makefile.maint and GNUmakefile. Reported by Akim Demaille. * lib/modechange.c: Fix post-protoization typo. * lib/posixtm.h (PARAMS): Define and use. From Kaveh Ghazi. 1998-09-12 Jim Meyering * Version 3.16x. * src/remove.c (remove_cwd_entries): Declare to be static. Automatically generate man pages from combination of --help output and the contents of new, man/*.x files. * man/Makefile.am (HELP2MAN): Define. (man_aux): Define. (EXTRA_DIST): Add $(HELP2MAN) and $(man_aux). (MAINTAINERCLEANFILES): Add $(man_MANS). * man/*.x: New files. * man/GNUmakefile: New file. * man/Makefile.maint: New file. * man/help2man: New file. 1998-09-09 Jim Meyering * lib/modechange.c: Protoize. 1998-09-07 Jim Meyering * Version 3.16w. * src/df.c (show_dev) [!posix_format]: When using --print-type, let the device path and the file system type share a single (wider) field if their combined lengths allow it. From Andries Brouwer. * tests/touch/empty-file: Upon failure, suggest how to rerun the test with longer delay, in case NFS clock skew was the cause of the failure. Reported by Kaveh Ghazi. * tests/ls-2/quoting: Add tests. * tests/Fetish.pm (run_tests): Add simple PRE/POST hooks. (_create_file): Don't include $$ in temp file name. (run_tests): Use shorter suffixes for temp file names. 1998-09-06 Jim Meyering * src/touch.c: Include posixtm.h. (usage): Correct the description of the format of the date string argument to -t option. (main): Update to use rewritten posixtime function. Reported by Andries Brouwer. * lib/Makefile.am (libfu_a_SOURCES): Change posixtm.y to posixtm.c. (noinst_HEADERS): Add posixtm.h. * lib/posixtm.h: New file. * lib/posixtm.c: New file. Rewritten based on posixtm.y. * lib/posixtm.y: Remove file. 1998-09-05 Andreas Schwab * src/ls.c (print_dir_name): Put back. (print_dir): Also print directory name header if print_dir_name is true. 1998-08-29 Jim Meyering * Version 3.16v. * src/du.c (long_options): Use corresponding short-option character in place of `1', and `NULL' in place of pointer in initialization. * src/cp.c (long_opts): Likewise. * src/ln.c (long_options): Likewise. * src/mkdir.c (longopts): Likewise. * src/rmdir.c (longopts): Likewise. * src/chown.c: Replace 12 and 13 with CHAR_MAX + 1 and CHAR_MAX + 2 respectively. * src/chmod.c (long_options): Replace 12 with CHAR_MAX + 1. * src/chgrp.c (long_options): Replace 12 with CHAR_MAX + 1. * tests/Fetish.pm: New file -- moved from ls-2/. * configure.in (AC_OUTPUT): Add tests/dircolors/Makefile. * tests/Makefile.am (SUBDIRS): Add dircolors. (EXTRA_DIST): Add Fetish.pm. * tests/dircolors: New directory * src/ls.c (print_dir_name): Remove global variable. (print_dir): When trace_dirs is set, always print the directory name header. 1998-08-26 Jim Meyering * src/dircolors.c (dc_parse_stream): Don't segfault when a line contains only one token. Reported by Olav Morkrid. 1998-08-24 Paul Eggert * src/system.h (CHAR_MIN, CHAR_MAX): Renamed from SCHAR_MIN, SCHAR_MAX, since these macros apply to char, not signed char. * src/df.c, src/du.c, src/touch.c (long_options, main): Don't assume ASCII. 1998-08-18 Paul Eggert Port nanosecond-resolution times to UnixWare 2.1.2 and pedantic Solaris 2.6. * configure.in (AC_STRUCT_ST_MTIM_NSEC): Renamed from AC_STRUCT_ST_MTIM. * acconfig.h (ST_MTIM_NSEC): New #undef. * src/system.h: (ST_TIME_CMP_NS, ATIME_CMP, CTIME_CMP, MTIME_CMP): Use new ST_MTIM_NSEC macro. 1998-08-16 Jim Meyering * lib/filemode.h (PARAMS): Define and use. From Kaveh Ghazi. 1998-08-15 Jim Meyering * Version 3.16u. * Makefile.maint (announcement): New target. * tests/mv/into-self: Update to reflect changed behavior of mv. * src/mv.c (do_move): Fail upon attempt to move a directory into itself. With prodding from François Pinard :-) * tests/ls-2/Fetish.pm: New file * tests/ls-2/run-test: New file * src/copy.c (copy_internal) [one-file-system]: Do copy mount point directories (but none of their entries). This makes `cp --archive --one-file-system' use the same policy `tar --one-file-system' does. From Marty Leisner. * src/ls.c (qmark_funny_chars): Add comment from Paul eggert. 1998-08-14 Jim Meyering * tests/mv/setup: Work around another bug in Ultrix4.3a's /bin/sh. Reported by Christian von Roques. * configure.in (AC_OUTPUT): Add tests/ls-2/Makefile. * tests/Makefile.am (SUBDIRS): Add ls-2. * tests/ls-2: New directory 1998-08-14 Christian von Roques * lib/mountlist.c (read_filesystem_list) [MOUNTED_GETMNT]: Don't infloop on getmnt(2) returning 0. * tests/cp/backup-is-src: Avoid bug in Ultrix4.3a /bin/sh, not initializing output redirection of : command. * tests/mv/backup-is-src: Likewise. * tests/rm/i-1: Likewise. 1998-08-12 Jim Meyering * po/Makefile.in.in: Provide automake-style DESTDIR support. From Johan Danielsson. (DISTFILES): Remove ChangeLog. po/ChangeLog: Remove empty file. * configure.in (AC_STRUCT_ST_DM_MODE): Use it. * src/ls.c: Include filemode.h. * src/chmod.c: Likewise. * lib/filemode.c (ftypelet): Add comments for Cray DMF support. From Johan Danielsson. Protoize. Tsort function definitions and remove prototypes of static functions. (mode_string): Remove prototype. * lib/filemode.h (mode_string): New file. * lib/Makefile.am (noinst_HEADERS): Add filemode.h. 1998-08-09 Jim Meyering * Version 3.16t. 1998-07-31 Paul Eggert Add support for filesystems whose timestamps have better resolution than 1 second (e.g. Solaris 2.6, recent Linux kernels). * configure.in (AC_STRUCT_ST_MTIM): Add. * src/copy.c (copy_internal): Compare time stamps with subsecond resolution if available. * src/ls.c (compare_ctime, rev_cmp_ctime, compare_mtime, rev_cmp_mtime, compare_atime, rev_cmp_atime): Compare time stamps with subsecond resolution if available. * src/system.h: (ST_TIME_CMP_NS, ST_TIME_CMP, ATIME_CMP, CTIME_CMP, MTIME_CMP): New macros. 1998-08-01 Jim Meyering * configure.in (ALL_LINGUAS): Add slovak (sk) and norwegian (no). 1998-07-28 Paul Eggert * lib/mountlist.c (read_filesystem_list): Remove all_fs argument, but put the necessary information into the result so that the caller can ignore filesystems that he's not interested in. * lib/mountlist.h (struct mount_entry): New members me_dummy, me_remote. (read_filesystem_list): Remove all_fs argument. (REMOTE_FS_TYPE): Remove. (ME_DUMMY, ME_REMOTE): New macros. * lib/xstrtol.c: Remove duplicate include of . * src/df.c (show_all_fs): Revert to boolean value; the old negative value is now in show_local_fs. (show_local_fs): New variable. (show_dev): New args me_dummy and me_class. Use show_local_fs and boolean show_all_fs in combination with these new args to decide whether to show a device. (show_disk): Pass flags to show_dev. (show_point): Use a non-dummy mount entry if possible. (show_all_entries): Pass flags to show_dev. (main): --local sets show_local_fs now. Ask for file system types if show_local_fs is nonzero, since ME_REMOTE might need them. 1998-07-27 Jim Meyering * tests/install/Makefile.am (TESTS_ENVIRONMENT): Set LS, MKDIR, and RM. * tests/install/basic-1: Add a test for this. * src/install.c: Make copy create each destination file initially with mode 0600 so strip will work, then apply specified mode. Arne Henrik Juul reported that `./ginstall -s -c -m 555 dd /tmp' failed. 1998-07-25 Jim Meyering * src/mv.c (chown): Remove unused definition. Reported by Kaveh Ghazi. * src/rmdir.c (main): rmdir fails with EEXIST on some systems. Handle that, so --ignore-fail-on-non-empty works. (EEXIST): Define to zero if not defined. (ENOTEMPTY): Likewise. * tests/cp/same-file: Remove `diff' I'd put in for debugging. Exit with the status from cmp. * Version 3.16s. * tests/cp/same-file: Skip three more unportable tests. These failed on SunOS4.1.4. * src/copy.c (SAME_INODE): Remove definition. * src/sys2.h (SAME_INODE): Define it here instead. * src/remove.c (same_file): New function. (remove_dir): Use it to give a better diagnostic when rmdir fails because it can't remove the current directory. * src/df.c (long_options): Changes table entries not to use this form: {"all", no_argument, &show_all_fs, 1}, but rather this form: {"all", no_argument, NULL, 'a'}, Using the latter, all the option handling in one place: the getopt loop. * lib/mountlist.c (read_filesystem_list) [MOUNTED_GETMNTINFO]: Use fsp_to_string. (fsp_to_string): Don't xmalloc return value (yet). (xatoi): Ansideclify. (fstype_to_string): Ansideclify. * lib/mountlist.h: Define and use PARAMS macro. * lib/utime.c: New file. * src/touch.c (utime_now): Moved into m4/utimes.m4. (touch) [!HAVE_UTIME_NULL]: Remove #ifdef and the use of utime_now in the if-block. * configure.in (jm_FUNC_UTIME): Use this, not AC_FUNC_UTIME. 1998-07-22 Paul Eggert * lib/human.c (human_readable): amt -> damt, to fix typo when computing which power to use after overflow occurs during multiplication. * lib/xstrtol.c: Include if NDEBUG is not defined; needed on SunOS 4. 1998-07-21 Paul Eggert Add df -l or --local option. * doc/fileutils.texi: Document it. * lib/mountlist.h (REMOTE_FS_TYPE): New macro. * lib/mountlist.c (read_filesystem_list): If all_fs is negative, omit non-local filesytems. * src/df.c (show_dev): Omit local devices if show_all_fs is negative. (show_all_fs): If negative, omit non-local filesystems. All uses of (all_fs != 0) changed to (all_fs > 0). (long_options, usage, main): Add -l or --local option. (main): When asking for df of an explicit file name, get all the mount points, so that we're more likely to find it when we look it up. 1998-07-18 Jim Meyering * src/copy.c (copy_internal): Add another exclusion from the sameness test: when --force has been specified, the destination is unlinked before any copy. (copy_internal): Add yet another: when both src and dest are symlinks. * tests/touch: New subdir. * tests/Makefile.am (SUBDIRS): Add touch. * configure.in (AC_OUTPUT): Add tests/touch/Makefile. * tests/mv/into-self-2: New test. * tests/mv/Makefile.am (TESTS): Add into-self-2. 1998-07-06 Andreas Schwab * lib/mountlist.c (read_filesystem_list): Fix more memory leaks on failure. 1998-07-16 Jim Meyering Work around failure of chown calls on m68k-motorola-sysv systems. * src/chown.c: Include lchown.h. * lib/Makefile.am (noinst_HEADERS): Add lchown.h. * lib/lchown.h: New file, just to define ENOSYS on systems that lack it. * lib/lchown.c: Include lchown.h. Reported by and with suggestions from Manfred Hollstein. 1998-07-12 Paul Eggert * src/df.c (print_header): Print "1k-blocks", not "1.0k-blocks". 1998-07-07 Jim Meyering * src/sys2.h [HAVE_FCLOSE_UNLOCKED]: Remove unnecessary block. Suggestion from Ulrich Drepper. 1998-07-04 Jim Meyering * lib/safe-read.c (safe_read): Change type of pointer parameter to `void' to avoid Irix4 cc errors. Reported by Kaveh Ghazi. * lib/safe-read.h: Update prototype. * src/dircolors.c (parse_line): Add casts to avoid errors from Irix4's `cc' C compiler. From Kaveh Ghazi. * lib/xstrtol.c: Include stdio.h. Required on some systems when using assert. From Kaveh Ghazi. * tests/mv/backup-is-src: Use cmp, not diff. Reported by Kaveh Ghazi. 1998-07-03 Jim Meyering * Version 3.16r. * src/remove.c (remove_dir): Use fprintf (not error) to avoid newline in prompt. 1998-06-30 Paul Eggert * lib/mountlist.c: (read_filesystem_list): Don't leak memory on failure. Don't create a dummy struct mount_entry entry; use the address-of-the-tail-address method instead. Preserve errno if possible on failure, setting it to 0 if inapplicable. Close file descriptor leak if the F_SETLKW failed. Report an error if SVR4 lock file cannot be opened for some reason other than a nonexistent lock file. 1998-07-03 Jim Meyering * configure.in (AM_WITH_REGEX): Remove. Now the replacement macro, jm_WITH_REGEX, is bundled with the rest in jm_MACROS. * acconfig.h (WITH_REGEX): Remove undef. * lib/Makefile.am (noinst_HEADERS): Add regex.h. * lib/rpmatch.c: Remove #ifdef around inclusion. * lib/rx.c: Remove file. * lib/rx.h: Remove file. * src/df.c (df_readable): Rename local so as not to shadow global. * src/copy.c (SAME_INODE): New macro. Use it to replace open-coded equivalents. (copy_internal): Rename variable and reverse sense of tests to make the code a little clearer. 1998-07-02 Andreas Schwab * src/copy.c (copy_internal): Try harder identifying a relative symbolic link in the current directory. * src/copy.c (copy_internal): Don't skip test for same file if creating a hardlink from symlink over a non-symlink while making backups. * tests/cp/same-file: Skip tests that depend on link(2) not following symlinks. 1998-07-02 Andreas Schwab * src/copy.c (copy_internal): Don't call chown on a symlink. 1998-07-01 Jim Meyering * lib/xstrtol.c: Don't define NDEBUG here, now that it's done via configure's --disable-assert option. 1998-06-29 Paul Eggert * lib/mountlist.c (read_filesystem_list): Plug file descriptor leak on failure. Report failure if lock file can't be opened for some reason other than nonexistence. 1998-06-29 Jim Meyering * Version 3.16q. * lib/mountlist.c (read_filesystem_list) [MOUNTED_GETMNTENT2]: Always close stream and file descriptor before returning. * src/df.c (main): Move the test of the result of the read_filesystem_list call up out of if-block -- code in the else-block depends on it too. 1998-06-29 Paul Eggert * lib/mountlist.c: (read_filesystem_list): If SVR4, lock /etc/.mnttab.lock if available, to avoid race conditions (e.g. with the automounter on Solaris 2.6). Include , , . 1998-06-29 Jim Meyering * lib/mountlist.c (fstype_to_string): Guard with #if ! HAVE_F_FSTYPENAME_IN_STATFS. 1998-06-28 Paul Eggert Add support for new --block-size option and BLOCK_SIZE. DF_BLOCK_SIZE, etc. variables to `df', `du', and `ls'. Adjust df output slightly to accommodate larger filesystems. * lib/human.c, lib/human.h (human_readable): Coalesce last two args into one, for convenience. All callers changed. (human_block_size): New function. * lib/human.c: Include only if HAVE_CONFIG_H. Include if HAVE_STDLIB_H; declare getenv unless HAVE_DECL_GETENV. (_): New macro. Include , , . (DEFAULT_BLOCK_SIZE): New macro. (block_size_args, block_size_types): New constants. (humblock): New function. * lib/xstrtol.h (__ZLONG_MAX): Remove. * lib/xstrtol.c (bkm_scale): Don't assume that you can convert unsigned long to double without losing information. (bkm_scale_by_power): New function. * lib/xstrtol.c (__xstrtol), src/dd.c (parse_integer): Add support for SI-like suffixes like "GB" and "TD". * src/dd.c (usage): Describe it. * src/df.c, src/du.c, src/ls.c (human_readable_base, output_units): Remove; replace with new variable output_block_size. All uses changed. (long_options, usage, main): Add --block-size. (main, decode_switches): Use new human_block_size function to initialize output block size consistently with other programs. * src/df.c (print_header, show_dev): Shrink some columns and expand others, to squeeze in support for today's larger filesystems. (print_header): Print output block size using power-of-1024 SI format. (df_readable): Coalesce last two args into one, for convenience. All callers changed. (main): Remove check for portable output format and larger or human-readable block sizes. * NEWS, doc/fileutils.texi: Describe above changes. 1998-06-28 Jim Meyering * src/ls.c (usage): Make --kilobytes description consistent with that in du and df. From Göran Uddeborg. * lib/mountlist.c (fsp_to_string): Clean out some crufty #ifdefs now that we're using the jm_FSTYPENAME autoconf macro. James Tanis reported the old version didn't compile on BSDI3. * configure.in: Move big block of list_mounted_fs checks into new jm_LIST_MOUNTED_FILESYSTEMS macro. Use new jm_FSTYPENAME macro. * src/sys2.h: Add macro definitions for GNU libc *_unlocked wrappers. * src/ls.c: Add DIRED_ prefix to the macros: PUTCHAR, FPUTS, and FPUTS_LITERAL 1998-06-27 Jim Meyering * src/copy.c (copy_reg): Detect identical source and dest here. (copy_internal): Make the test symmetric. * tests/cp/same-file: New file. * tests/cp/Makefile.am (TESTS): Add it. 1998-06-26 Jim Meyering * src/remove.c (remove_file): Remove `non-directory' part of `removing non-directory FILE' verbose message. 1998-06-23 Jim Meyering * src/df.c (show_dev): Increase field width for blocks, used, and available columns from 7 to 8. 1998-06-21 Jim Meyering * aclocal.m4: Regenerate with fixed gettext.m4 installed. See README-alpha for details. 1998-06-02 Andreas Schwab * src/automake-wrap: Quote `&' in sed replacement text. 1998-05-31 Jim Meyering * Version 3.16p. * src/install.c (main): Fix argv-handling bug in my 1998-05-09 change. Reported by Don Parsons. 1998-05-30 Jim Meyering * tests/ls/time-1: Clean up ctime test. Note that it fails also on Solaris5.5.1 tmpfs file systems. Solve the `rm -f rm' problem more cleanly. * src/.rm-warning: Remove file. * src/automake-wrap: New file. * src/Makefile.am (AUTOMAKE): Define to use automake-wrap. (Makefile.in): Depend on automake-wrap. (EXTRA_DIST): Add automake-wrap. (DISTCLEANFILES): Remove definition. (rm_DEPENDENCIES): Likewise. (.rm-warn-stamp): Remove rule. 1998-05-27 Jim Meyering * tests/ls/Makefile.am (TESTS): s/cr-1/rt-1/ * tests/ls/rt-1: New file, renamed from cr-1. 1998-05-26 Andreas Schwab * src/Makefile.am (.rm-warn-stamp): Cope with $(srcdir) != ".". * tests/ls/cr-1: Don't use the ctime for testing, it is impossible to set it reliably. 1998-05-25 Jim Meyering * configure.in (_GNU_SOURCE): AC_DEFINE it here. * acconfig.h (_GNU_SOURCE): Remove definition from @TOP@ section. [!_GNU_SOURCE]: Add #undef instead. 1998-05-24 Jim Meyering * Version 3.16o. * src/ansi2knr.c: Use new version from automake-1.3. * src/chown.c: Accept new option, --dereference. --no-dereference is now the default. (enum Change_status) [CH_NOT_APPLIED]: New member. (change_symlinks): Enable this by default, now. (describe_change): Handle new case. (change_file_owner): Add new parameter: cmdline_arg. Update callers. Reorganize to reflect changed semantics. (LCHOWN): Remove definitions. * lib/lchown.c: New file. 1998-05-21 Jim Meyering * configure.in (ALL_LINGUAS): Add russian (ru). 1998-05-16 Jim Meyering * src/remove.c (hash_compare_strings): Return true or false, not 1/0. (remove_cwd_entries): Use RM_OK, not equivalent literal `1'. * lib/hash.c (is_prime): Ansideclify. (next_prime): Ansideclify. Add an assertion. * lib/Makefile.am (EXTRA_DIST): Remove. Automake groks the `LIBOBJS=' lines from the m4/*.m4 macros, so the hack of including some custom-replaced C source file names here is no longer needed. * configure.in (jm_MACROS): New wrapper macro. Remove uses of most jm_* macros. * acconfig.h (HAVE_STRUCT_UTIMBUF): Remove #undef. Now it's handled as part of utimbuf.m4. (memcmp): Add #undef. 1998-05-12 Jim Meyering * configure.in: Use my replacement AC_ISC_POSIX rather than open-coding it. * src/copy.c (copy_internal): Plug a small leak. 1998-05-10 Jim Meyering * src/mv.c (do_move): Remove lots of code that was duplicated in copy.c (copy), now that copy() has better support for mv. This fixes a bug with cross-filesystem `mv -i' whereby you could get two prompts for the same destination file and eventually remove the destination file even though one of the responses was negative. Reported by Dirk Lattermann. * src/copy.h: Better support for mv: [struct cp_options] (move_mode): New member. * src/copy.c (copy_internal): Use new move_mode member. Add parameter. (copy): Add parameter. * tests/cp/Makefile.am (TESTS): Add backup-is-src. * tests/mv/Makefile.am (TESTS): Likewise. * lib/userspec.c: Don't declare strdup if it's defined as a macro. Reported by Lorne Baker. * src/Makefile.am (ginstall_SOURCES): Add copy.c and cp-hash.c. * src/mv.c (cp_option_init): Initialize new members. * src/cp.c (cp_option_init): Likewise. (main): Set new preserve_* options. 1998-05-09 Jim Meyering * src/copy.h: Support for install: [struct cp_options] (failed_unlink_is_fatal): New member. (preserve_owner_and_group): New member. (preserve_chmod_bits): New member. (preserve_timestamps): New member. (preserve): Remove member. (set_mode): New member. (mode): New member. * src/copy.c (new_nondir_mode): New function. Use where appropriate. Use more-specific preserve_* members in place of removed `preserve'. (copy_internal): Honor failed_unlink_is_fatal. * src/install.c (main): Rewrite argv-handling to be clearer. (copy_file): Rewrite to use copy.c (copy). (change_attributes): Get rid of now-(with chown wrapper)-unnecessary `no_need_to_chown' parameter. Fix caller. (install_file_in_file): Remove now-unnecessary `to_created' parameter. (cp_option_init): New function. Update several functions to take new parameter specifying copy options. * tests/install: New subdir, with one basic test. * tests/Makefile.am (SUBDIRS): Add install. * configure.in (AC_OUTPUT): Add tests/install/Makefile. * src/dd.c: Include safe-read.h. Don't declare safe_read. * src/touch.c: Likewise. * configure.in (jm_TYPE_SSIZE_T): Use it. * acconfig.h (ssize_t): Add undef. 1998-05-03 Jim Meyering * po/: Update from gettext-0.10.35. * intl/: Likewise. * configure.in: Remove use of AC_LINK_FILES. (AC_OUTPUT): Remove po/Makefile-generating sed command. 1998-04-28 Jim Meyering * src/dircolors.c (parse_line): Use ISSPACE, not isspace. Use unsigned char * pointers, not potentially signed ones, to avoid sign extension. 1998-04-26 Jim Meyering * configure.in: Use jm_ASSERT. * acconfig.h: Add NDEBUG. * src/mv.c: Don't define NDEBUG. * src/cp.c: Likewise. 1998-04-14 Jim Meyering * src/.rm-warning: New file. * src/Makefile.am (EXTRA_DIST): Add .rm-warning (DISTCLEANFILES): Add .rm-warn-stamp. (rm_DEPENDENCIES): Depend on .rm-warn-stamp. (.rm-warn-stamp): New rule. (rm_prep): Comment out rule. * src/df.c (main): Use STREQ in string equality tests, not strcmp. * src/dircolors.c (dc_parse_stream): Likewise. (dc_parse_file): Likewise. * src/du.c (main): Likewise. * src/ls.c (decode_switches): Likewise. * src/remove.c (hash_compare_strings): Likewise. * src/touch.c (main): Likewise. 1998-04-13 Jim Meyering * lib/Makefile.am (noinst_HEADERS): Add safe-read.h. 1998-04-11 Jim Meyering * lib/hash.c: Add curly braces around statements in if/else/while/do/etc. that span more than a line -- even around multiline simple statements or single-line simple statements preceded by a comment line. 1998-04-09 Jim Meyering * configure.in: Don't use AC_PATH_PROG to check for perl, now that we use jm_PERL. 1998-04-06 Jim Meyering * src/cp-hash.c (cph_hash_insert): Rename from now-conflicting hash_insert. Also declare to be static. * src/cp-hash.h (hash_insert): Remove declaration. * lib/hash.c: Lots of minor spec and name changes, and new comments. (hash_rehash): Rewrite to be easier on the allocator. From François Pinard. * lib/hash.h: More comments. * src/remove.c: Change names/usage of hash-related functions to work with the above. 1998-04-05 Jim Meyering * lib/regex.c (WIDE_CHAR_SUPPORT): Define. This now depends on HAVE_BTOWC so systems that lack btowc (like solaris-2.5.1) don't lose. 1998-04-04 Jim Meyering * GNUmakefile: Add conditionals so that running `make' in an unconfigured source directory will get a reasonable diagnostic. * Makefile.am (ACLOCAL_AMFLAGS): Define this, so automake/aclocal know about the m4/ subdirectory. * Makefile.maint (aclocal-files): Remove now-unnecessary (with automake-1.2h and the above change) aclocal-related rules and includes. 1998-04-01 Jim Meyering * tests/ls/cr-1: New file. * tests/ls/Makefile.am (TESTS): Add cr-1. 1998-03-31 Jim Meyering * src/system.h (TYPE_MAXIMUM): Cast result to `(t)' so this macro works with `unsigned char'. From Greg Wooledge. (SCHAR_MIN, SCHAR_MAX, SHRT_MIN, SHRT_MAX, LONG_MAX, ULONG_MAX): Define. * lib/xstrtol.c: Merge with the version from textutils. * lib/memcmp.c (rpl_memcmp): Rename from memcmp. 1998-03-30 Andreas Schwab * src/ls.c (compare_ctime, rev_cmp_ctime, compare_mtime, rev_cmp_mtime, compare_atime, rev_cmp_atime, compare_size, rev_cmp_size): Use file name as secondary sort key to get consistent sorting. 1998-03-28 Jim Meyering * src/copy.c: Add copyright. * src/remove.c: Add copyright. [_AIX]: Add #pragma alloca. 1998-03-27 Jim Meyering * Makefile.maint ($(ACLOCAL_M4)): Replace old rule with this dependency and the := assignment of ACLOCAL to make the default rule use the `-I m4' option. * Makefile.am (AUTOMAKE_OPTIONS): Require 1.2h. 1998-03-23 Jim Meyering * acconfig.h: Remove HAVE_INTTYPES_H, now that m4/inttypes_h.m4 automatically handles it. 1998-03-21 Jim Meyering * lib/quotearg.h: Update from patch-2.5.3. * lib/quotearg.c: Likewise. * src/ls.c (decode_switches): Pass a null pointer instead of address of quotearg_quoting_options. 1998-03-19 Paul Eggert * lib/fsusage.h (struct fs_usage): New member fsu_bavail_top_bit_set. * lib/fsusage.c: Include . (CHAR_BIT, EXTRACT_TOP_BIT, PROPAGATE_TOP_BIT): New macros. (get_fs_usage): If top bit of system variable corresponding to fsu_bavail is set, then set fsu_bavail_top_bit_set, and sign-extend the value when storing it into fsu_bavail. * src/df.c (show_dev): If fsu_bavail_top_bit_set is nonzero, assume the original value corresponding to fsu_bavail was negative. Reported by Arne Juul. 1998-03-18 Jim Meyering * src/Makefile.am (rm-prep): Add dependency and rule to save users with `.' too early in their PATH from the `rm: cannot unlink `rm': Text file busy' error. Suggestion from Philippe De Muyter. 1998-03-15 Jim Meyering * Version 3.16n. * lib/chown.c: Use #if, not #ifdef with HAVE_ macros. * lib/closeout.c: Likewise. * lib/dirname.c: Likewise. * lib/euidaccess.c: Likewise. * lib/fileblocks.c: Likewise. * lib/filemode.c: Likewise. * lib/ftruncate.c: Likewise. * lib/group-member.c: Likewise. * lib/isdir.c: Likewise. * lib/long-options.c: Likewise. * lib/mountlist.c: Likewise. * lib/path-concat.c: Likewise. * lib/save-cwd.c: Likewise. * lib/savedir.c: Likewise. * lib/strcasecmp.c: Likewise. * lib/strdup.c: Likewise. * lib/userspec.c: Likewise. * lib/yesno.c:: Likewise. * src/chgrp.c: Use #if, not #ifdef with HAVE_ macros. Use #if !, not #ifndef with HAVE_ macros. * src/chown.c: Likewise. * src/copy.c: Likewise. * src/dd.c: Likewise. * src/dircolors.c: Likewise. * src/install.c: Likewise. * src/ls.c: Likewise. * src/mv.c: Likewise. * src/touch.c: Likewise. * configure.in: Use jm_PREREQ. 1998-03-14 Jim Meyering Revert most `getdate.h -> get-date.h' changes of 1998-02-20. With automake-1.2f, that hack is no longer needed. * src/remove.c: Use `virtual memory exhausted' message, not `Memory exhausted' to be consistent with the majority of other such messages. Say `removing all...', not `removing any...'. * src/rmdir.c (remove_parents): Be consistent with documentation of --verbose option and with remove.c in saying `removing...' before the operation is attempted. (main): Likewise. Suggestions from Santiago Vila. * src/copy.c (copy_dir): Add new parameter, copy_into_self, and set it. (copy_internal): Likewise. (copy): Likewise. Update all callers. * src/copy.h (copy): Update prototype. * src/cp.c (do_copy): Add unused arg in calls to copy. * src/mv.c (do_move): Add ©_into_self arg in call to copy. Don't remove source directory when copy_into_self is nonzero. Reported by Arne Henrik Juul. * tests/mv/into-self: Test for the above. * tests/mv/Makefile.am (TESTS): Add into-self. 1998-02-28 Eli Zaretskii * userspec.c (parse_user_spec) [__DJGPP__]: Make function know about any arbitrary user and group by pretending to be the user and to belong to the group specified in `spec_arg' argument. * idcache.c (getuidbyname) [__DJGPP__]: Make function know about any arbitrary user name. (getgidbyname) [__DJGPP__]: Make function know about any arbitrary group name. 1998-02-24 Jim Meyering * lib/xstrtol.c (TYPE_SIGNED): Define. (TYPE_MAXIMUM): Define. (ULONG_MAX): Use TYPE_MAXIMUM. (LONG_MAX): Use TYPE_MAXIMUM. * lib/fnmatch.c: Update from libit. * lib/idcache.c: Update from libit. 1998-02-23 Paul Eggert * lib/quotearg.h, lib/quotearg.c: New files. * lib/Makefile.am (libfu_a_SOURCES): Add quotearg.c. (noinst_HEADERS): Add quotearg.h. * src/ls.c: Include new file quotearg.h. (enum indicator_style): Rename all to classify, and not_programs to file_type, to match option spellings. All users changed. (indicator_style_args): New constant. (quote_funny_chars, quote_as_string, quote_shell): Remove; (filename_quoting_options, dirname_quoting_options): Use these variables instead. (long_options): Add --indicator-style, --quoting-style, --show-control-chars. Remove --quote-shell. (dired_dump_obstack): Remove style parameter and don't output style. (main): Go back to previous method of outputting //DIRED// and //SUBDIRED// lines, without style. But add a new //DIRED-OPTIONS// line that does output style. (decode_switches, usage): Add --indicator-style, --quoting-style, --show-control-chars. Remove --quote-shell. (decode_switches): Default from QUOTING_STYLE environment variable. Set new quoting vars. (quote_name): Renamed from quote_filename. Take new arg specifying quoting options. Always print; do not have a special case for null FILE * argument. All callers changed. Move the guts of this function to new file quotearg.c. (length_of_file_name_and_frills): Use quotearg_buffer instead of (old) quote_filename to find length of file name. (decode_switches, parse_ls_color, print_dir, gobble_file, get_link_name): Quote output in diagnostics. * NEWS, doc/fileutils.texi: Describe above changes. * doc/fileutils.texi: Mention that control characters are output as question marks if output is a terminal. 1998-02-22 Jim Meyering * Version 3.16m. * ChangeLog-1997: New file. * Makefile.am (EXTRA_DIST): Add ChangeLog-1997. 1998-02-21 Jim Meyering * configure.in (AC_OUTPUT): Add tests/mv/Makefile. * tests/Makefile.am (SUBDIRS): Add mv. * tests/mv: New directory * tests/mv/mv-special-1: New test. 1998-02-20 Jim Meyering * src/touch.c: Include get-date.h. Remove get_date decl. * lib/getdate.h: Removed. Could cause confusion with an automake-generated `.y.h' rule. * lib/get-date.h: Renamed from getdate.h. * lib/getdate.y: s/getdate.h/get-date.h/ * lib/Makefile.am (noinst_HEADERS): s/getdate.h/get-date.h/ 1998-02-19 Jim Meyering 1997-10-17 Eli Zaretskii * lib/fileblocks.c [__DJGPP__]: Add missing typedef for daddr_t. 1998-02-13 Jim Meyering * src/mv.c (cp_option_init): Set copy_as_regular to 0, not 1. Otherwise, mv tries to open special files. Reported by Kjetil Torgrim Homme. 1998-02-08 Jim Meyering * Makefile.maint (cvs-dist): Update po/ to clear modified status of *.po files before running cvs tag -c. * src/ln.c (usage): Reword to use `TARGET' and `LINK_NAME' in description. 1998-02-07 Jim Meyering * GNUmakefile: New file. * Makefile.am (EXTRA_DIST): Add GNUmakefile. Don't include Makefile.maint from here. It's included from GNUmakefile. * configure.in: Don't use AM_MAINTAINER_MODE. (jm_PERL): Use this. * src/Makefile.am (EXTRA_DIST): Remove dcgen.pl. Add dcgen. (CLEANFILES): Remove dcgen. (dircolors.h): Use $(PERL). (.pl): Remove rule. 1998-02-01 Jim Meyering * POTFILES.in: Add remove.c. Reported by Santiago Vila. 1998-01-28 Jim Meyering * src/df.c (print_header): Tweak format to align heading over last column of `df -i' output. From Andreas Schwab. 1998-01-27 Andreas Schwab * Makefile.am: Include Makefile.maint from $(srcdir). 1998-01-25 Jim Meyering * Version 3.16l. * Makefile.maint: New file. * Makefile.am: Move rules common to textutils, fileutils, sh-utils into Makefile.maint. Include Makefile.maint. (EXTRA_DIST): Add Makefile.maint. * src/cp.c (re_protect): Don't fail for non-root when chown fails due not only to lack of permission (EPERM), but also to lack of support (EINVAL). Reported by Bengt Martensson. * src/copy.c (DO_CHOWN): Likewise. 1998-01-24 Jim Meyering * tests/ls/time-1 (test_failure): Rename does not update ctime; link does -- so use ln, not mv. Note that the SunOS4.1.4 failure of the ctime test is expected. * src/system.h (TYPE_MINIMUM): Add extra outer cast to work around bug in Cray C 5.0.3.0 when T == time_t. * tests/rm/r-1: Adjust expected output for changed format of `rm --verbose'. * tests/rm/r-2: Likewise. 1998-01-23 Jim Meyering * lib/mktime.c (__mktime_internal): Work around bug in Irix4.0.5's C compiler. From Kaveh Ghazi. (TYPE_MINIMUM): Define. (TYPE_MAXIMUM): Define. (TIME_T_MIN): Use TYPE_MINIMUM. (TIME_T_MAX): Use TYPE_MAXIMUM. 1998-01-22 Jim Meyering * src/dd.c: Reorder functions to obviate forward dcls. (quit): Declare to be inline to stifle compile warning. * src/cp.c (do_copy): Add unreachable `return 0' to stifle warning. * tests/rm/sunos-1: Don't use -f. Do adjust $RM if it's a relative path. * tests/ls/time-1: Use GNU touch to work around problems with NFS caching and/or clock skew. Reported by Kaveh Ghazi. * tests/ls/Makefile.am (TESTS_ENVIRONMENT): Add TOUCH. * src/Makefile.am (noinst_HEADERS): Add remove.h. (mv_SOURCES): Define. (rm_SOURCES): Define. 1998-01-21 Jim Meyering * src/install.c: Declare new global, backup_type. (main): Initialize backup_type unconditionally. (copy_file): Call find_backup_file_name with new argument, backup_type. * src/ln.c: Declare new global, backup_type. (main): Initialize backup_type unconditionally. (do_link): Call find_backup_file_name with new argument, backup_type. * src/copy.c (copy_internal): Use x->backup_type, not the global. (valid_options): Use VALID_BACKUP_TYPE and VALID_SPARSE_MODE. * src/copy.h: (VALID_SPARSE_MODE): Define. [struct cp_options] (backup_type): New member. * src/cp.c [NDEBUG]: Comment out definition. (do_copy): Use x->backup_type, not the global. * src/remove.c: New file. Contains guts of old rm.c. (remove_init): New function. (remove_fini): New function. (rm): Take third argument, specifying options. * src/remove.h: New file. Associated dcls. * src/rm.c: Remove and minimally librarify guts for use in mv.c. (main): Pass options (`&x') to rm. Call remove_init and remove_fini instead of open-coding them. * src/mv.c (rm_option_init): New function. (cp_option_init): New function. (copy_reg): Remove now-unused function. (do_move): Set up for and use `copy.c (copy)' in place of copy_reg. Set up for and use `remove.c (rm)' in place of unlink. 1998-01-20 Jim Meyering * lib/backupfile.c: Use ANSI function definitions. Remove global declaration of backup_type. (simple_backup_suffix): Default to `~', not `.orig'. Use PARAMS, not __BACKUPFILE_P. (find_backup_file_name): Add parameter, backup_type. * lib/backupfile.h: Remove extern declaration of backup_type. Use PARAMS, not __BACKUPFILE_P. (VALID_BACKUP_TYPE): Define. (find_backup_file_name): Adjust prototype. 1998-01-13 Andreas Schwab * src/df.c (print_header): Fix inode format header to line it up with the rest of the output. 1998-01-13 Jim Meyering * lib/stat.c: Set errno to ENOENT, not EINVAL. This is consistent with most other implementations. 1998-01-12 Jim Meyering * lib/fileblocks.c: Include sys/param.h only #if HAVE_SYS_PARAM_H. Move function-spanning `#if ...BSIZE' directive to follow inclusion of sys/param.h since BSIZE is sometimes defined in sys/param.h. Reported by Philippe De Muyter. 1998-01-10 Jim Meyering * Version 3.16k. * src/install.c (install_file_to_path): New function. FIXME: update fileutils.texi. (main): Handle new option, -D. Based on a patch from Marty Leisner. (usage): Describe -D. * src/ls.c (decode_switches) [-u]: Fix bug whereby -u worked only with -l or -t. Now, -u (like -c) implies --sort=time. (usage): Correct descriptions of --sort, --time, and -t. Suggestions from Andreas Schwab. Add test for the above fix. * configure.in (AC_OUTPUT): Add tests/ls/Makefile. * tests/Makefile.am (SUBDIRS): Add ls. * tests/ls: New directory. * tests/ls/Makefile.am: New file. * tests/ls/time-1: New file. * lib/makepath.c (make_path): Reformat 3 if-stmts to test `if (newly_created_dir)' only once. Suggestion from Andreas Schwab. 1998-01-06 Jim Meyering * lib/getdate.y: Move inclusion of getdate.h and dependent extern declarations down so getdate.h's prototype follows the sometimes- enabled definition of `const' to nothing. Otherwise, the prototype wouldn't match the definition because of the defined-away `const'. From Kaveh Ghazi. (get_date): ANSI-fy definition. Add %expect directive. 1998-01-05 Andreas Schwab * lib/makepath.c (make_path): Put only newly created directories on the LEADING_DIRS list. 1998-01-05 Paul Eggert * lib/fsusage.c (PROPAGATE_ALL_ONES): New macro. (get_fs_usage): If a value consists entirely of 1 bits, propagate this info to the output by setting it to (uintmax_t) -1. * src/df.c (df_readable): New function. (show_dev): If a value consists entirely of 1 bits, or is derived from some other value that consists entirely of 1 bits, report "-". Check inode and block counts more carefully for plausibility, to avoid arithmetic overflow when computing percentages. 1998-01-04 Jim Meyering * Version 3.16j. * lib/Makefile.in: Regenerated with patched automake-1.2d. See README-alpha. * src/chgrp.c: Use a single enumerated type, Verbosity, instead of the two booleans, verbose and changes_only. This fixes a bug whereby --change had the same effect as --verbose. * src/chmod.c: Likewise. * src/chown.c: Likewise. Reported by Paul Eggert. 1998-01-04 Paul Eggert Check for write errors more carefully. * lib/Makefile.am (libfu_a_SOURCES): Add closeout.c. (noinst_HEADERS): Add closeout.h. * lib/closeout.c, lib/closeout.h: New files. * lib/long-options.c (parse_long_options), src/chgrp.c, src/chmod.c, src/chown.c, src/cp.c, src/dd.c, src/df.c, src/dircolors.c, src/du.c, src/install.c, src/ln.c, src/ls.c, src/mkdir.c, src/mkfifo.c, src/mknod.c, src/mv.c, src/mvdir.c, src/rm.c, src/rmdir.c, src/sync.c, src/touch.c (main, usage): Check for write error to stdout before exiting. Include "closeout.h". 1998-01-03 Jim Meyering * src/df.c (show_dev): Treat `fsu.fsu_bavail == (unsigned long) -1' just like `fsu.fsu_blocks == 0' as an indicator that usage information is invalid. This happens with Solaris-5.5.1 CD-ROM mount points. * lib/save-cwd.h: Guard PARAMS-enabling definition with `defined PROTOTYPES || (defined __STDC__ && __STDC__)' to avoid problems with Irix4's cc. From Kaveh Ghazi. * lib/getdate.h: Likewise, but just to be consistent. * configure.in: Convert the .o suffix on files in LIBOBJS to $U.o so those files will be built via the ANSI2KNR-filtering rules if necessary. Reported by Kaveh Ghazi. 1998-01-02 Jim Meyering * Version 3.16i. Fix problem with `install -d'. Reported by Marty Leisner. * src/install.c (get_ids): When otherwise unspecified, set uid and gid to -1. * lib/makepath.c (make_path): Try to change ownership only if we've just created the directory. Fix latent bug (s/&&/||/ in two places -- also, note that it could not be exercised via install or mkdir) whereby chown would not be invoked when only one of owner/group is not -1. 1998-01-01 Jim Meyering * src/rm.c (remove_cwd_entries): Initialize the entry-name obstack only once and never free it. Local Variables: version-control: never End: