Commit Graph

3259 Commits

Author SHA1 Message Date
Jim Meyering ed05aed044 Rewrite from scratch. Support everything
required by POSIX 1003.1-2001; when this conflicts with Bash,
stick with POSIX.  The conflicts are kill -l output format,
and lower case signal names preceded by `-' (e.g., "kill -hup"
is no longer supported).  Remove -L or --long-list option.
Add -t or --table option.  Rename --sigspec to --signal;
remove --signum and do not advertise obsolescent option -n.
Use str2sig and str2sig to convert between signal names and
numbers.
2002-04-28 21:32:36 +00:00
Jim Meyering e464e1da1c Avoid new warnings from gcc.
[struct COLUMN] <name>: Declare member to be const.
(init_fps): Declare local variable `firstname' to be const.
2002-04-28 21:07:01 +00:00
Jim Meyering a1319f687c (integer_expected_error): Add `const' to paramater
declarations to avoid new warning from gcc.
2002-04-28 17:12:53 +00:00
Jim Meyering 059c9672ff (test_syntax_error): Add `const' to paramater
declarations to avoid new warning from gcc.
2002-04-28 17:09:12 +00:00
Jim Meyering 8a2075ba7d (cycle_check): Add a comment. 2002-04-27 06:46:18 +00:00
Jim Meyering a6050a7291 (cycle_check): New function containing code factored
out of remove_dir.  The sole difference is that upon detecting a
cycle, rm now dies unconditionally.  Before, in interactive mode,
it would ask the user whether to continue.
(remove_dir): Call cycle_check.
2002-04-27 06:33:08 +00:00
Jim Meyering 6cc8245afb (usage): Adjust ordering to match that of default output. 2002-04-25 20:38:16 +00:00
Jim Meyering de9a50b611 Avoid warnings from gcc.
Declare input_file and output_file to be `const'.
(skip): Declare `file' parameter to be `const', too.
2002-04-25 18:02:52 +00:00
Jim Meyering 0199003cf9 Remove hash table, active_dir_map, used to detect directory cycles.
Instead, detect them lazily with just O(1) memory.
Suggestion from Andi Kleen.

(is_power_of_two): New function.
(print_nth_dir, make_active_dir_ent): Remove functions.
(hash_active_dir_ent, hash_compare_active_dir_ents): Likewise.
(remove_dir): Check for cycles here, ...
(rm): ... and don't check for cycles here.

(rm): Call fspec_get_full_mode here, rather than
fspec_get_filetype_mode.  We want to get the dev/ino earlier, and
at the same time as when we get the file type, to avoid the risk
that an attacker would change e.g. a directory to a symlink before
we record its dev/ino.
2002-04-25 16:40:04 +00:00
Jim Meyering bbd396f52f Revert last change. 2002-04-25 16:32:32 +00:00
Jim Meyering 2a15b5cbc4 Revert last change. 2002-04-25 16:31:41 +00:00
Jim Meyering 1bb22e3075 Remove ENABLE_NLS-related code.
(_, N_) Remove definitions.
Include "gettext.h" instead.
2002-04-25 15:38:17 +00:00
Jim Meyering d3de1d0186 (rm): Call exit with EXIT_FAILURE, not `1'. 2002-04-22 09:42:00 +00:00
Jim Meyering c32c344dd6 (main): Adjust caller of remove_init. 2002-04-22 07:35:54 +00:00
Jim Meyering e305ef0fa8 (do_move): Adjust caller of remove_init. 2002-04-22 07:35:41 +00:00
Jim Meyering f1014ac7cc (remove_init): Adjust prototype. 2002-04-22 07:35:32 +00:00
Jim Meyering 8fd6feded9 (rm, remove_init, remove_fini): Don't use or even
initialize the active_dir_map unless --recursive (-r) is specified.
2002-04-22 07:35:20 +00:00
Jim Meyering ccf99a6d4c (touch): Don't report errors for nonexistent files
when --no-create is in effect.  Based on a patch from TAKAI Kousuke.
2002-04-17 08:49:27 +00:00
Jim Meyering 6f0db0ac6e (UT_TYPE_UNDEF, UT_TYPE, IS_USER_PROCESS): Define.
(print_line): Use "%-8.8s" for the format: the user name is not
always NUL terminated.
(scan_entries) [need_users]: Use IS_USER_PROCESS, so that this works
even on systems without ut_type.
2002-04-16 10:39:29 +00:00
Jim Meyering aef17cff0f (BOOT_TIME): Define.
(NEW_TIME): Define to 0, not INT_MAX.
(UT_PID, UT_ID, UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT): Define.
Replace literal uses of ut_pid, ut_id, and ut_exit members with
uses through macros.
(make_id_equals_comment): New function, factored out of three others.
2002-04-16 09:49:28 +00:00
Jim Meyering 5bd81eab0f (human_fstype): Rename from print_human_fstype, and rework accordingly.
(print_statfs): Use human_fstype to honor format width on %T.
2002-04-16 06:50:54 +00:00
Jim Meyering 598064934e Add copyright comment. 2002-04-16 06:27:39 +00:00
Jim Meyering 2262fbb298 add FIXME comments 2002-04-15 10:46:45 +00:00
Jim Meyering 57d75ea4d8 Include xalloc.h.
Use xmalloc everywhere, not malloc.
2002-04-15 10:37:35 +00:00
Jim Meyering b214c8214c Handle "lld" vs "ld" printf formats the same way Bash does.
Include inttypes.h.
(PRIdMAX, PRIuMAX): Define, if not already defined.
(print_statfs): Use those macros, not the literal strings.
(print_stat): Likewise.
2002-04-15 08:50:57 +00:00
Jim Meyering d9feb76a02 (usage): Give a verbose description of --squeeze-repeats,
including the mention of SET1.
2002-04-15 08:41:23 +00:00
Jim Meyering d133be1fc3 (print_human_fstype): Add missing break;' for case S_MAGIC_MINIX:'. 2002-04-15 07:21:42 +00:00
Jim Meyering ad02a0f47d remove parens in #if directives 2002-04-15 07:20:15 +00:00
Jim Meyering 6d89182e28 (statfs_secure): Define.
(print_stat): Remove another #ifdef.
(do_statfs): Likewise.
(print_statfs): Prefer/use fputs over printf.
(print_stat): Likewise.
2002-04-14 12:52:48 +00:00
Jim Meyering 30215a98cc filter through GNU indent 2002-04-14 08:20:15 +00:00
Jim Meyering c8088a6184 Split some long lines.
(verbose_usage): Remove function.
2002-04-14 08:18:49 +00:00
Jim Meyering 5120cb1bc9 remove parens in #if directives 2002-04-14 08:14:37 +00:00
Jim Meyering e407204f28 fix TABs 2002-04-14 08:14:15 +00:00
Jim Meyering af3fa53348 *** empty log message *** 2002-04-14 08:13:50 +00:00
Jim Meyering 7c3982f666 (verbose_usage): Remove function. Move contents into usage.
Remove lots of #if directives involving FLASK_LINUX
[!FLASK_LINUX] (is_flask_enabled): Define.
(stat_secure, lstat_secure): Define.
(print_statfs): Remove lots of nested #if directives.
Instead, rely on support fo %llu and %lld printf formats --
but that is only temporary, since it's not porable enough.
(main): Hoist is_flask_enabled test to be done here, rather
than in each of do_stat and do_statfs for every argument.
2002-04-14 07:47:44 +00:00
Jim Meyering b6e520d478 [HAVE_SYS_VFS_H]: Guard incluion of sys/vfs.h.
Constify many parameters.
(print_statfs): Fix typo: Use %u (to match %lu) for namelen, not %d.
2002-04-14 06:55:13 +00:00
Jim Meyering d849f68245 add a couple `const' 2002-04-13 14:35:46 +00:00
Jim Meyering 91990a324b (print_human_fstype): Revamp in a similar fashion. Don't use strdup. 2002-04-13 14:34:58 +00:00
Jim Meyering ac829d6935 (print_human_type): Call fputs once rather than calling printf many times.
Declare most functions to be `static'.
2002-04-13 14:23:00 +00:00
Jim Meyering d1a60cddfe Include system.h, error.h, and many other headers.
[HAVE_SYS_SYSMACROS_H]: Guard inclusion of sys/sysmacros.h.
(PROGRAM_NAME, AUTHORS): Define.
(long_options): Declare/define.
(print_human_access): Rewrite to use mode_string.
(usage): Rewrite.
(main): Use getopt_long.
2002-04-13 14:11:44 +00:00
Jim Meyering 8d8acf4b3c Direct from Debian's stat_3.3-1, modulo trailing blanks (removed)
and cpp directive (indented via cppi).
2002-04-13 13:47:14 +00:00
Jim Meyering f52a204a4e Include long-options.h.
[long_opts]: Remove.
(usage): Tweak --help output; use *_OPTION_DESCRIPTION macros.
(main): Don't use getopt directly.  Use parse_long_options instead.
Tweak a diagnostic.
Use EXIT_FAILURE rather than a literal `1'.
(main): If POSIXLY_CORRECT is set, don't recognize --help or --version,
so the program can operate on a file with one of those names.
2002-04-12 10:41:54 +00:00
Jim Meyering 21126e288b Include long-options.h.
[long_opts]: Remove.
(usage): Tweak --help output; use *_OPTION_DESCRIPTION macros.
(main): Don't use getopt directly.  Use parse_long_options instead.
Tweak a diagnostic.
Use EXIT_FAILURE rather than a literal `1'.
2002-04-12 10:41:22 +00:00
Jim Meyering b46ec3cd33 from Debian's fileutils_4.1-10 2002-04-12 10:07:17 +00:00
Jim Meyering 302c89b285 (do_move): Correct a comment. 2002-03-30 07:12:23 +00:00
Jim Meyering baa4aff633 (forget_created): Prototype. 2002-03-30 07:11:24 +00:00
Jim Meyering aa3694f1ff (forget_created): New function. 2002-03-30 07:11:13 +00:00
Jim Meyering 9211474a6e (copy_internal): Move the block that sets `earlier_file'
down to just before the first use of that variable.  Otherwise, it was
possible to make mv (and probably cp, too) malfunction when copying
hard-linked files into a directory containing at least one of the
source file names.  Call forget_created everywhere thereafter where
this function returns without creating a destination file that might
subsequently be linked.  Reported by Iida Yosiaki.
2002-03-30 07:10:57 +00:00
Jim Meyering 563ff6778d update copyright 2002-03-25 09:53:18 +00:00
Jim Meyering eae700da7d (age_of): Return -1 and 0 rather than 0 and 1.
Might as well keep it simple, and like bash.
(binary_operator): Fix bug with -nt and -ot, when one of the
files did not exist.  We want to be compatible with the ksh93
documentation, and with Bash.
2002-03-25 09:53:07 +00:00