Jim Meyering [Sat, 15 May 1999 04:50:26 +0000 (04:50 +0000)]
(getugroups): Don't dereference a null pointer when
running `id USER' for some USER that is listed on the RHS in /etc/group.
From Sander van Malssen.
Add some curly braces, use STREQ, reverse the sense of a test
and use `continue' to save a level of nesting.
Jim Meyering [Fri, 14 May 1999 17:11:03 +0000 (17:11 +0000)]
(version_etc): Put version info and author names
on the first two lines respectively rather than putting the three
lines of copyright info between them.
Jim Meyering [Thu, 6 May 1999 02:10:34 +0000 (02:10 +0000)]
(make_dir): When reporting a mkdir failure and the
target cannot be `stat'ed, use the errno from the failed mkdir call,
not the one from the stat call. Before this change, running
`mkdir -p /no-dir/no-dir' as an unprivileged user would wrongly
elicit `No such file or directory' instead of `Permission denied'.
Jim Meyering [Wed, 5 May 1999 13:34:02 +0000 (13:34 +0000)]
Add definitions to help read utmpx on systems with utmpname.
(UTMP_NAME_FUNCTION): Define.
(SET_UTMP_ENT): Likewise.
(GET_UTMP_ENT): Likewise.
(END_UTMP_ENT): Likewise.
Jim Meyering [Wed, 5 May 1999 13:21:29 +0000 (13:21 +0000)]
(TYPE_SIGNED, TYPE_MAXIMUM, TYPE_MINIMUM): Define.
(ULONG_LONG_MAX, LONG_LONG_MAX, LONG_LONG_MIN): Define if not defined.
Based on a patch from Kaveh Ghazi.
Jim Meyering [Wed, 5 May 1999 03:05:11 +0000 (03:05 +0000)]
Include makepath.h libintl.h, not after it.
Otherwise, we'd get the wrong definition of PARAMS from libintl.h.
(The method of defining PARAMS in libintl.h doesn't check PROTOTYPES,
which is necessary on Irix4 since cc doesn't define __STDC__.)
From Kaveh Ghazi.
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 [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 [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.
Jim Meyering [Sun, 18 Apr 1999 23:16:23 +0000 (23:16 +0000)]
(__xstrtol, __strtol, __unsigned): Remove macro decls.
<inttypes.h>: Include if HAVE_INTTYPES_H.
(_DECLARE_XSTRTOL): New macro.
(xstrtol, xstrtoul, xstrtoumax): Declare all three functions, so that
we need only one include file, not three.
(_STRTOL_ERROR): Do not undef, as this is no longer needed.
Reword overflow message so that it's independent of type.
Jim Meyering [Sun, 18 Apr 1999 23:15:34 +0000 (23:15 +0000)]
(__strtol, __strtol_t, __xstrtol):
New macros to specify the
underlying function, its returned type, and our function. Default to
values suitable for xstrtol.
Include <ctype.h>, since we use its macros.
(ULONG_MAX, LONG_MAX, ISBLANK): Remove: no longer needed.
(ISSPACE): New macro.
(bkm_scale, bkm_scale_by_power, __xstrtol, main): __unsigned long int
-> __strtol_t.
(__xstrtol): Depend on whether __strtol_t is an unsigned type, not on
whether STRING_TO_UNSIGNED is defined. Skip isspace chars, not
isblank chars, to match strtol. When returning
LONGINT_INVALID_SUFFIX_CHAR, store the value that we computed into
*val.
Jim Meyering [Tue, 30 Mar 1999 04:51:08 +0000 (04:51 +0000)]
(make_node_op_equals): New function.
(mode_append_entry): Likewise.
(mode_compile): When none of [ugoa] is specified in an `=OP' change
mode request, insert a `=0' entry into the linked list so that all
bits are cleared first. Use the new functions.