Jim Meyering [Sun, 21 Oct 2001 07:59:04 +0000 (07:59 +0000)]
(strerror_r): Do not declare unless !_LIBC.
Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P.
Use strerror_r that is only a macro, even if it is not a function.
(strerror): Check for HAVE_DECL_STRERROR before declaring.
(private_strerror): Use prototypes, not old-style function definition.
(print_errno_message): New function.
Support the POSIX 'int'-flavored strerror_r, as well as the traditional
char*-flavored one.
(error_tail, error, error_at_line): Use it.
Jim Meyering [Sun, 21 Oct 2001 07:49:13 +0000 (07:49 +0000)]
Add copyright notice, as nontrivial m4 files
are supposed to have them these days.
(AC_FUNC_STRERROR_R): Always do char* test, so that it gets cached.
Merge changes from latest Autoconf CVS.
Rename ac_cv_func_strerror_r_works to ac_cv_func_strerror_r_char_p,
and rename HAVE_WORKING_STRERROR_R to STRERROR_R_CHAR_P, since
POSIX decided to standardize on the int flavor of strerror_r.
Jim Meyering [Thu, 18 Oct 2001 07:42:11 +0000 (07:42 +0000)]
(dest_info_free): New function.
(dest_info_init): Make the hash table code use it.
(record_dest): Store each DEST in malloc'd memory. Hence the above.
Use dest_info_free to free the `ent' we couldn't insert.
Jim Meyering [Wed, 17 Oct 2001 10:24:07 +0000 (10:24 +0000)]
(cp invocation): `cp --no-dereference' is
no longer equivalent to `cp -d'.
`cp -d' is equivalent to `--no-dereference --preserve=links'.
cp's -P option means --no-dereference, not --parents.
Describe new optional argument to --preserve.
Describe new option: --no-preserve=ATTRIBUTE_LIST.
Jim Meyering [Sun, 14 Oct 2001 20:54:44 +0000 (20:54 +0000)]
Now, -P is the same as --no-dereference, per POSIX.
Use --parents to get the old meaning.
(enum) [NO_DEREFERENCE_OPTION]: Remove member.
(long_opts): Associate --no-dereference with `-P'.
(usage): Update description of -P.
(main): Remove local, used_P_option, and code to warn
that the meaning of -P would be changing.
Jim Meyering [Sat, 13 Oct 2001 20:53:36 +0000 (20:53 +0000)]
(copy_internal): Tighten up and add comments
describing the test for when to record (via remember_copied)
a <dst_path, source_dev, source_ino> triple.
Relax the test that guards the hard-linked-dir check and
the hard-link-preserving code.
Jim Meyering [Sat, 13 Oct 2001 19:57:08 +0000 (19:57 +0000)]
(enum) [NO_DEREFERENCE_OPTION]: New member.
(enum) [NO_PRESERVE_ATTRIBUTES_OPTION]: New member.
(enum) [PRESERVE_ATTRIBUTES_OPTION]: New member.
(long_opts): Separate -d and --no-dereference options.
Add `no-preserve'.
Separate -p and --preserve options.
The long-named --preserve now accepts optional arguments; -p doesn't.
(usage): Describe additions and changes.
(cp_option_init): Initialize new member, preserve_links, to 0.
(decode_preserve_arg): New function.
(main) [case 'a']: Set preserve_links to 1.
[case 'd']: Set preserve_links to 1.
Add `case' for long-named --no-dereference.
Handle long-named --no-preserve and --preserve.
Include hash.h and same.h.
(htab): Change type of global to `struct hash';
(entry_hash, entry_compare, hash_ins): New functions.
(count_entry): Use hash_ins instead of hash_insert.
Jim Meyering [Sat, 6 Oct 2001 16:43:07 +0000 (16:43 +0000)]
(record_dest): Avoid a small leak.
(copy_internal): Call remember_copied only for if the source file
has 1 < st_nlink, or if it's a directory.
Now that EARLIER_FILE is set conditionally, initialize it to NULL.
Jim Meyering [Sun, 30 Sep 2001 21:39:51 +0000 (21:39 +0000)]
(jm_LIST_MOUNTED_FILESYSTEMS): See if
`struct fsstat' has the `f_fstypename' member.
Use that to define FS_TYPE, which is now used to make
the getfsstat link test tighter.