Jim Meyering [Fri, 21 May 1999 20:24:19 +0000 (20:24 +0000)]
Treat the trailing newline as part of the line, as required by POSIX.2.
(struct line, findlines, compare, checkfp, mergefps, sort):
A line now includes its trailing newline.
(findlines): Do not replace newline with NUL.
(memcoll, keycompare): Work even if the data to be compared are
adjacent strings; this is possible now that lines contain the
trailing newline.
(fillbuf): Always have an unused byte at the end of the buffer,
since memcoll and keycompare want to modify a byte after the last line.
(sortalloc, mergealloc): Increase by 1, for trailing byte.
Jim Meyering [Thu, 20 May 1999 16:09:12 +0000 (16:09 +0000)]
(memcoll, keycompare, compare): Handle NUL
characters properly when comparing with LC_COLLATE semantics.
(NLS_MEMCMP): Remove.
(memcoll): Renamed from strncoll.
Take separate lengths for each string.
This function is now invoked only when need_locale.
(keycompare): Don't copy strings when ignore and translate
are both NULL.
(struct nls_keyfield): Remove types no longer used.
(strncoll_s2_readonly, nls_set_fraction, look_for_fraction,
nls_month_is_either_locale, nls_numeric_format): Remove functions no
longer used.
(monthtab): Now has the role that us_monthtab had, but it's const only
if ENABLE_NLS is not defined.
(C_DECIMAL_POINT): Renamed from FLOATING_POINT. All uses changed.
(MONTHS_PER_YEAR): Renamed from NLS_NUM_MONTHS. All uses changed.
(struct_month_cmp): Renamed from nls_sort_month_comp. All uses changed.
Use strcmp, not strcoll, since the user doesn't care about collating
here.
(inittables): Read locale data into monthtab, rather than modifying a
separate month table and futzing with indirection. Do not worry about
colliding months, since we no longer autodetect month locale.
(fraccompare): Don't set no-longer-used variable nls_fraction_found.
(getmonth): Use strncmp to compare months, since user doesn't care
about collating here. Fix bug where code incorrectly assumed that
strlen (monthtab[lo].name) == strlen (monthtab[ix].name).
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 [Wed, 12 May 1999 02:13:45 +0000 (02:13 +0000)]
(usage): Split --help message into two pieces so that
Split the --help message into two pieces so that neither is longer
than 2048. For Irix4's cc. Reported by Kaveh Ghazi.
Jim Meyering [Mon, 10 May 1999 14:17:09 +0000 (14:17 +0000)]
Expand each `&' character in the gecos field.
(count_ampersands): New function.
(create_fullname): New function.
(print_entry): Use create_fullname here.
(print_long_entry): Use it here, too.
From Kaveh Ghazi.
Jim Meyering [Sun, 9 May 1999 03:27:24 +0000 (03:27 +0000)]
(fraccompare, numcompare): Merge the NLS and
non-NLS versions into a single function.
(decimal_point): Now char, since we no longer convert to unsigned char.
(th_sep): Now int, since we use a value out of char range to denote
the absence of a thousands separator.
(IS_THOUSANDS_SEP): New macro.
(USE_NEW_FRAC_COMPARE): Remove.
(nls_set_fraction): Arg is now char, not unsigned char.
Set th_sep to CHAR_MAX + 1 if there is no thousands separator.
(numcompare): Don't convert to unsigned char unless necessary.
(main): Turn off decimal points and thousand separators if they
are multibyte characters, as we don't support that yet.
Jim Meyering [Sat, 8 May 1999 23:29:47 +0000 (23:29 +0000)]
* src/system.h (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM,
and all the *_MIN and *_MAX symbols): Remove definitions.
* src/sys2.h: Put the definitions here instead (this file is shared
between all three *utils packages, while system.h is not).
Jim Meyering [Sat, 8 May 1999 23:28:42 +0000 (23:28 +0000)]
* src/system.h (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM,
and all the *_MIN and *_MAX symbols): Remove definitions.
* src/sys2.h: Put the definitions here instead (this file is shared
between all three *utils packages, while system.h is not).
Jim Meyering [Fri, 7 May 1999 18:40:11 +0000 (18:40 +0000)]
(main): Use better wording in diagnostic: `cannot
create directory' rather than `cannot make directory'. The former
also matches the one in makepath.c.
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'.