diff options
| author | Jim Meyering <meyering@redhat.com> | 2009-07-12 18:15:23 +0200 |
|---|---|---|
| committer | Jim Meyering <meyering@redhat.com> | 2009-09-11 14:08:51 +0200 |
| commit | 4f73ecaf7def2a7bdc381eee2036f6539df01e7d (patch) | |
| tree | d1affca9ff5c75e467b4c2b85ded6f329748d49d /src/mv.c | |
| parent | maint: doc: adjust README-release (diff) | |
| download | coreutils-4f73ecaf7def2a7bdc381eee2036f6539df01e7d.tar.gz coreutils-4f73ecaf7def2a7bdc381eee2036f6539df01e7d.zip | |
rm: rewrite to use fts
* remove.c: Don't include "unlinkdir.h"; no longer used.
Do not include <setjmp.h> or "cycle-check.h". Likewise.
Include "xfts.h".
(dir_name, dir_len): Remove definitions.
(CONSECUTIVE_READDIR_UNLINK_THRESHOLD): Likewise.
(INODE_SORT_DIR_ENTRIES_THRESHOLD, NEED_REWIND, D_TYPE): Likewise.
(struct dirstack_state, Dirstack_state): Likewise.
(g_buf, g_n_allocated): Remove declarations.
(hash_freer, hash_compare_strings, rm_malloc): Remove functions.
(rm_free, push_dir, top_dir, pop_dir, right_justify): Likewise.
(full_filename0, xfull_filename, full_filename_): Likewise.
(AD_stack_height, AD_stack_top, AD_stack_pop, AD_stack_clear): Likewise.
(obstack_init_minimal, ds_init, ds_clear, ds_free): Likewise.
(AD_pop_and_chdir, AD_ensure_initialized, AD_mark_helper): Likewise.
(AD_mark_as_unremovable, AD_mark_current_as_unremovable): Likewise.
(AD_push_initial, AD_push, AD_push, AD_is_removable): Likewise.
(write_protected_non_symlink): Change 3rd parameter from
dirstack_state "ds" to full_name.
(prompt): Adjust parameters. Now, state comes from FTS/FTSENT pair.
Those replace fd_cwd and "ds". Remove "filename". Remove pdirent_type
in favor of new "is_dir" parameter. Rename is_empty to is_empty_p.
(DO_RMDIR, DO_UNLINK): Remove definitions.
(remove_entry, fd_to_subdirp, compare_ino): Remove functions.
(dirent_count, dirent_inode_sort_may_be_useful): Likewise.
(preprocess_dir): Likewise.
(fts_skip_tree, mark_ancestor_dirs, excise, rm_fts): New functions.
(remove_cwd_entries, remove_dir, rm_1): Remove functions.
(rm): Rewrite as a simple loop calling fts_read and dispatching
each entry via rm_fts.
* src/rm.c (main): Adapt to new signature of rm().
* bootstrap.conf (gnulib_modules): Remove unlinkdir, no longer used.
* src/Makefile.am (sc_tight_scope): Also recognize an extern "enum"
declaration.
* tests/rm/empty-name: Adjust expected output to match new diagnostic.
* NEWS (Improvements): Mention it.
Diffstat (limited to 'src/mv.c')
| -rw-r--r-- | src/mv.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -219,11 +219,14 @@ do_move (const char *source, const char *dest, const struct cp_options *x) { struct rm_options rm_options; enum RM_status status; + char const *dir[2]; rm_option_init (&rm_options); rm_options.verbose = x->verbose; + dir[0] = dir_to_remove; + dir[1] = NULL; - status = rm (1, &dir_to_remove, &rm_options); + status = rm ((void*) dir, &rm_options); assert (VALID_STATUS (status)); if (status == RM_ERROR) ok = false; |
