Jim Meyering [Sat, 1 May 1999 02:05:56 +0000 (02:05 +0000)]
Always use STDIN_FILENO for input and STDOUT_FILENO
for output, to avoid confusion with closed input and output fds.
(input_fd, output_fd): Remove; all uses changed to STDIN_FILENO
and STDOUT_FILENO.
(open_fd): New function.
(main): Use it, instead of open, to ensure that file descriptors
don't get confused.
(skip): Don't fstat the input file; the result is no longer used.
Jim Meyering [Fri, 30 Apr 1999 16:03:46 +0000 (16:03 +0000)]
Update to reflect this change by reversing
the order of arguments so the symlink is the source, not the
destination (otherwise, the mv command would now succeed).
Jim Meyering [Fri, 30 Apr 1999 15:40:34 +0000 (15:40 +0000)]
(copy_internal): Move the one-file-system test so that
it follows the `if (new_dst || !S_ISDIR (dst_sb.st_mode))' block.
Prior to this change, `cp --one-file-system' would traverse a file-
system boundary if the destination directory existed.
From thospel@mail.dma.be.
Jim Meyering [Fri, 30 Apr 1999 15:15:02 +0000 (15:15 +0000)]
(copy_internal): Don't make `mv foo symlink-to-foo' fail.
That is, even though source and destination are `the same,' don't fail
if the destination is a symlink. From Peter Samuelson.
Jim Meyering [Mon, 26 Apr 1999 13:19:37 +0000 (13:19 +0000)]
(make_node_op_equals, mode_compile, mode_create_from_ref, mode_adjust):
Use proper mode_t types and macros.
Don't assume the traditional Unix values for mode bits.
modechange.h now includes sys/types.h.
Include xstrtol.h.
(isodigit, oatoi): Remove.
(S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP,
S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH, S_IRWXU, S_IRWXG,
S_IRWXO): Define if not defined.
(CHMOD_MODE_BITS): New macro.
(mode_compile): Convert from octal with xstrtoul, not our own routine.
Jim Meyering [Mon, 26 Apr 1999 13:13:00 +0000 (13:13 +0000)]
(make_path): Use proper mode_t types and macros.
Don't assume the traditional Unix values for mode bits.
(S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IRWXU): Define if not defined.
Jim Meyering [Mon, 26 Apr 1999 13:10:11 +0000 (13:10 +0000)]
(setst, ftypelet, mode_string): Use proper mode_t types and macros.
Don't assume the traditional Unix values for mode bits.
(S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH): Define if not defined.
<config.h>, <sys/types.h>: Include for mode_t.
(mode_string): Now takes mode_t.
Jim Meyering [Mon, 26 Apr 1999 12:49:16 +0000 (12:49 +0000)]
(isodigit): Remove unused macro.
(mode, cp_option_init, DIR_MODE): Use proper mode_t types and macros.
Don't assume the traditional Unix values for mode bits.
Jim Meyering [Sat, 24 Apr 1999 12:42:53 +0000 (12:42 +0000)]
Include new "xstrtol.h", not "xstrtoul.h".
(struct control) [repeat]: Declare as uintmax_t, not int.
(struct control) [lines_required]: Likewise.
(handle_line_error): Use human_readable to print lines_required.
(parse_repeat_count): Parse a uintmax_t.
(parse_patterns): Parse a uintmax_t.
Jim Meyering [Sat, 24 Apr 1999 12:33:25 +0000 (12:33 +0000)]
Include new "xstrtol.h", not "xstrtoul.h".
Change all U_LONG_LONG to uintmax_t.
(head_lines): Move a couple dcls into an inner scope.
(string_to_integer): Rename from string_to_ull.
Jim Meyering [Wed, 21 Apr 1999 04:28:36 +0000 (04:28 +0000)]
Remove the temporary strtoumax replacement;
we now have a true replacement in strtoumax.c.
(__strtol): Always define to strtoumax.
(<stdlib.h>): No need to include.
(PARAMS): Remove.
(my_strtoumax): Move this to strtoumax.c,
rename it to strtoumax, and simplify.
Jim Meyering [Wed, 21 Apr 1999 03:18:23 +0000 (03:18 +0000)]
<xstrtol.h>: Include this, not xstrtoul.h.
<human.h>: Include.
Use uintmax_t in place of unsigned long.
Use human_readable to convert to strings for printing.
Jim Meyering [Tue, 20 Apr 1999 13:24:14 +0000 (13:24 +0000)]
(my_strtoumax): Fix typo in computing
whether overflow occurred. Improve overflow-detection to use
only one conditional branch total, rather than 2N+1
conditional branches for an N-digit number.