Commit Graph

3556 Commits

Author SHA1 Message Date
Jim Meyering 4bee27ae43 (main): Upon processing a bad --exclude-from or --max-depth
option argument, don't exit right away, in case there are others.
Rather record the failure and exit after processing other options.
2003-01-31 13:35:25 +00:00
Jim Meyering de49951491 Rewrite to perform directory traversal using nftw.
Include "dirname.h", "ftw.h", and "quotearg.h".
(AUTHORS): Add self.
(opt_one_file_system): Move global into `main'.
(path, xstat, exit_status): Remove declarations.
(arg_length, suffix_length): New globals.
(G_fail): New global, sort of like the old `exit_status'.
(IS_FTW_DIR_TYPE): Define.
(print_only_size): New function.
(process_file): New function.
(str_init, ensure_space, str_copyc, str_concatc): Remove functions.
(str_trunc, pop_dir, count_entry): Likewise.
(du_files): Rewrite to use nftw.
2003-01-31 10:39:33 +00:00
Jim Meyering 336827087f (quote_name): Add fourth parameter, width, into which to
store the screen columns, and return the number of bytes instead.
(print_dir): Pass NULL as fourth parameter of quote_name.
(print_name_with_quoting): Likewise.
(length_of_file_name_and_frills): Get the width from the fourth
parameter of quote_name instead of return value.
2003-01-27 13:42:26 +00:00
Jim Meyering d28d7b1814 (check-misc): Check for st_blocks, too. 2003-01-27 13:40:43 +00:00
Jim Meyering 88a5f079b4 (print_stat): Use ST_NBLOCKS rather than `->st_blocks'. 2003-01-27 13:32:44 +00:00
Jim Meyering 7f93a5421a (decode_switches): If `dired' is set without
`format == long_format', then silently reset dired.  This doesn't
change the behavior of ls (all prior uses of dired were protected
by `&& format == long_format'), and lets us...
(DIRED_INDENT): ... remove `format == long_format' conjunct.
(PUSH_CURRENT_DIRED_POS): Likewise.
(main): Likewise.
2003-01-27 10:45:48 +00:00
Jim Meyering c59a8e2d32 (remove_entry) [ROOT_CAN_UNLINK_DIRS && HAVE_STRUCT_DIRENT_D_TYPE]: If a file
has d_type == DT_UNKNOWN it may still be a directory -- or not (e.g., with
FreeBSD on an NFS-mounted file system), so resort to calling lstat to find out.
2003-01-21 18:49:49 +00:00
Jim Meyering 8df5caa414 Rename type: DS -> Dirstack_state. 2003-01-20 15:43:03 +00:00
Jim Meyering 3c7f4321a0 Remove some unnecessary parentheses. 2003-01-20 15:40:25 +00:00
Jim Meyering 17c68905a0 Include "canonicalize.h". 2003-01-19 16:14:41 +00:00
Jim Meyering cdb4bba0e6 (Dereference_symlink) [DEREF_COMMAND_LINE_SYMLINK_TO_DIR]: New member.
(enum) [DEREFERENCE_COMMAND_LINE_SYMLINK_TO_DIR_OPTION]: New member.
(long_options): Add option --dereference-command-line-symlink-to-dir.
(main): Make DEREF_COMMAND_LINE_SYMLINK_TO_DIR be the default,
rather than DEREF_COMMAND_LINE_ARGUMENTS, when none of the
-d, -F, -l options is specified.
(decode_switches): Handle --dereference-command-line-symlink-to-dir.
(gobble_file): Honor DEREF_COMMAND_LINE_SYMLINK_TO_DIR.
Change --dereference-command-line (-H) to dereference *all*
command line arguments, including broken symlinks.
2003-01-18 18:36:13 +00:00
Jim Meyering ba2b351bbf Change ls -H back to the way it was yesterday, since this is
compatible with FreeBSD and the POSIX spec is confusing
and somewhat contradictory.

(DEREF_COMMAND_LINE_ARGUMENTS): Change name back
from DEREF_COMMAND_LINE_SYMLINK_TO_DIR, updating all uses.
(long_options): Change the long option name back.
(usage): Change the usage back.
(gobble_file): When -H is specified, dereference a top-level
arg even if it points to a non-directory.
2003-01-18 18:01:51 +00:00
Jim Meyering 308e04e326 . 2003-01-16 22:28:13 +00:00
Jim Meyering 800f3a1e77 (gobble_file): Fall back on using lstat when required:
when --dereference (-L) is not specified, and
- when operating on a dangling symlink
- when operating on command-line-symlink-to-directories
This fixes numerous problems.  Here are examples:
- `ls dangling-symlink' would fail with `no such file...'
Now it prints `dangling-symlink'.
- `ls -i symlink' would mistakenly print the inode of the referent.
Now it prints the inode of the symlink.  Likewise for --size (-s).
Based on a patch from Michael Stone.
Reported by Deepak Goel as Debian bug #173793.
2003-01-15 11:59:07 +00:00
Jim Meyering 5c68fbd9a3 Rename ls's --dereference-command-line (-H)
option to   --dereference-command-line-symlink-to-dir.

[enum Dereference_symlink]
(DEREF_COMMAND_LINE_SYMLINK_TO_DIR): Rename from
DEREF_COMMAND_LINE_ARGUMENTS.  Update all uses.
(long_options): Rename the option.
(usage): Say that --dereference-... changes how ls treats
only symlinks to directories specified on the command line.
2003-01-15 11:32:47 +00:00
Jim Meyering 642bc1acfb (gobble_file): Fix a bug introduced in 4.5.4 that made it
so that ls --color would no longer highlight the names of files with
the execute bit set when not specified on the command line.
Patch by Michael Stone.  Reported by Stephen Depooter as
Debian bug 175135.
2003-01-14 16:22:55 +00:00
Jim Meyering 8355da5492 (long_opts): --zero does not require an argument.
Patch by Michael Stone.
2003-01-13 13:35:17 +00:00
Jim Meyering 42594a0e4a (usage): Document --first-only and mention that --tabs=N (-t) enables --all (-a). 2003-01-12 08:59:00 +00:00
Jim Meyering 35d5499fca Include "canonicalize.h".
Use canonicalize_file_name unconditionally.
2003-01-11 09:39:40 +00:00
Jim Meyering 85bcabcba2 *** empty log message *** 2003-01-10 23:17:23 +00:00
Jim Meyering b6c0821009 Don't include xalloc.h.
It's already included via system.h.
2003-01-10 23:07:04 +00:00
Jim Meyering 44b0813e1e Include "xgetcwd.h". 2003-01-10 22:55:33 +00:00
Jim Meyering 3617805acb Remove declaration of xstrdup.
Instead, include "xalloc.h".
2003-01-10 08:41:28 +00:00
Jim Meyering acd9f2ab3b copyright 2003-01-09 20:45:06 +00:00
Jim Meyering 229031ed3f (bin_PROGRAMS): Add readlink. 2003-01-09 20:36:37 +00:00
Jim Meyering 2ae02ab5b9 New program, by Dmitry V. Levin. 2003-01-09 20:35:13 +00:00
Jim Meyering 322ee6e302 When selecting ranges of byte offsets (as opposed to ranges of fields)
and when --output-delimiter=STRING is specified, output STRING between
ranges of selected bytes.

(RANGE_START_SENTINEL): Define.
(output_delimiter_specified): New global.
(print_kth): Add parameter.  Adjust all callers.
(set_fields): Mark each range-start index with RANGE_START_SENTINEL.
(cut_bytes): When requested, output STRING between ranges of
selected bytes.
(main): Make a diagnostic a little clearer.
Based on a patch from Jan Nieuwenhuizen.
2003-01-09 20:16:58 +00:00
Jim Meyering e66ab953ef (set_fields): Make code agree with comment:
Don't merge abutting ranges like 4- and 2-3.  This makes no
difference currently, but is required to support an upcoming change.
2003-01-09 19:30:22 +00:00
Jim Meyering 7d1c764098 (set_fields): Fix typo in comment. 2003-01-07 17:12:11 +00:00
Jim Meyering d31fd7a77e tweak comment 2003-01-07 16:36:45 +00:00
Jim Meyering 1ef6e79882 add a comment 2003-01-07 16:06:56 +00:00
Jim Meyering a2b9cb05b7 Remove use of PARAMS. 2003-01-04 10:34:59 +00:00
Jim Meyering a6b5021004 Remove use of PARAMS. 2003-01-04 10:33:01 +00:00
Jim Meyering 6df04c9288 Remove use of PARAMS. 2003-01-04 10:32:21 +00:00
Jim Meyering 8b6b22bcef rm could be tricked into mistakenly reporting a cycle.
* src/remove.c: [cycle_check_state]: New global.
(remove_cwd_entries): Adapt to new semantics of cycle_check.
(rm): Call cycle_check_init and cycle_check_free for each file.

When rm detects a cycle, don't abort the entire command,
but rather just the affected command line argument.
* src/remove.c: Include <setjmp.h>
(struct dirstack_state) [current_arg_jumpbuf]: New member.
(remove_cwd_entries): Call longjmp if we detect a cycle.
(rm): Call setjmp here.

* src/remove.c (cycle_check, is_power_of_two): Remove functions.
Instead, include cycle-check.h and use it.
2003-01-04 10:07:44 +00:00
Jim Meyering e2b894c771 (struct dev_ino): Remove declaration. 2003-01-04 09:53:20 +00:00
Jim Meyering a3e6d3aa63 Don't include trailing /. in diagnostics about directories.
(full_filename_): When FILENAME is just `.'
and there is a nonempty directory-name part, don't append `/.'.
2003-01-04 09:45:54 +00:00
Jim Meyering b09da5c9d0 (remove_cwd_entries): Fix typos in comment. 2003-01-04 09:42:53 +00:00
Jim Meyering 818c25f686 (struct dirstack_state): Define.
To be used in place of these file-scoped globals ...
(dir_stack, len_stack, Active_dir): Remove globals.
(ds_init, ds_free): New functions.
(full_filename): Define.
(full_filename_): Rename from full_filename.



Begin to make AD_* functions more generic.

(AD_push_initial): Don't set status to RM_OK here.
(AD_push): Likewise.
(AD_INIT_OTHER_MEMBERS): Define.
(remove_dir): Define the `status' member manually after each
call to AD_push or AD_push_initial.
2003-01-04 09:41:24 +00:00
Jim Meyering 10a0b7c14d (check-misc): New rule, to ensure that no more
S_IS* macro definitions sneak into the code.
(check): Depend on check-misc.
2003-01-04 08:59:15 +00:00
Jim Meyering 33ca4e1f5a [S_ISLNK, S_ISFIFO, S_ISSOCK]: Don't define.
They're already defined in sys2.h.
2003-01-04 08:58:12 +00:00
Jim Meyering fd5d4e6d54 remove blank line 2003-01-04 08:55:30 +00:00
Jim Meyering 1cf764991f (count_entry) [S_ISLNK]: Don't define.
It's already defined in sys2.h.
2003-01-04 08:55:19 +00:00
Jim Meyering a4efa35cd7 [S_ISLNK]: Don't define. It's already defined in sys2.h. 2003-01-04 08:44:11 +00:00
Jim Meyering 08cf9aee8b Add copyright.
(AUTHORS): I suppose I've written it.
2003-01-03 21:38:27 +00:00
Jim Meyering d45f740edc (false.c): Make the generated file be read-only. 2003-01-03 21:34:06 +00:00
Jim Meyering d517c8fa79 (do_copy): Tweak diagnostic to be consistent with the one
from mv: s/missing file arguments/missing file argument/.
With --target-directory=DIR, cp and mv work with a single file argument.
Reported by Karl Berry.
2003-01-03 19:34:22 +00:00
Jim Meyering 1b6b9abd55 Include "dev-ino.h".
[struct dev_ino]: Remove declaration.
2003-01-03 19:33:52 +00:00
Jim Meyering 317fa67e1e . 2002-12-21 14:50:45 +00:00
Jim Meyering f331e1389c (touch): Change the wording of a diagnostic so
that it makes sense both when the file exists and when it doesn't.
2002-12-20 20:10:48 +00:00