Compare commits

...

6894 Commits

Author SHA1 Message Date
Jim Meyering
488aef7301 *** empty log message *** 2000-01-30 22:24:11 +00:00
Jim Meyering
be1784cf31 (correct_password): Guard with `HAVE_GETSPNAM && HAVE_STRUCT_PASSWD_SP_PWDP',
rather than just `#ifdef HAVE_SHADOW_H'.
2000-01-30 22:23:58 +00:00
Jim Meyering
c453666c3a use double parens on AC_CHECK_MEMBERS 2000-01-30 21:19:00 +00:00
Jim Meyering
cbe550de62 (writable-files): Check $(xd-delta), too. 2000-01-30 21:10:24 +00:00
Jim Meyering
333d061276 *** empty log message *** 2000-01-30 20:56:57 +00:00
Jim Meyering
b0be1bfab9 do it right 2000-01-30 18:33:17 +00:00
Jim Meyering
c58c8f5fcf (writable-files): New target.
(my-distcheck): Depend on it.
(alpha): Likewise.
2000-01-30 18:27:51 +00:00
Jim Meyering
9733e004ef *** empty log message *** 2000-01-30 16:48:25 +00:00
Jim Meyering
fd3817b9dc Clean up some kludgy old shadow password tests. 2000-01-30 16:48:19 +00:00
Jim Meyering
744efcce69 (utmp_includes): Define.
Check for ut_user and ut_name members in both struct utmpx
and struct utmp.
2000-01-30 16:47:31 +00:00
Jim Meyering
3d64706c7e redo it on per-header basis 2000-01-30 16:45:17 +00:00
Jim Meyering
774786b0cd *** empty log message *** 2000-01-30 16:41:30 +00:00
Jim Meyering
22cb099f3c (extract_trimmed_name): Use UT_USER instead of hard-coding
uses of ->ut_name.  The latter doesn't work with new Linux header files
where only utmpx.ut_user is declared.
2000-01-30 16:41:25 +00:00
Jim Meyering
b737ed325a (UT_USER): Define. Accessor macro for the member named ut_user or ut_name. 2000-01-30 16:39:08 +00:00
Jim Meyering
fedbe363a9 *** empty log message *** 2000-01-30 15:02:56 +00:00
Jim Meyering
5df431d118 *** empty log message *** 2000-01-30 15:01:02 +00:00
Jim Meyering
b43184c5e5 (my-distcheck): Depend on po-check, so I'll be warned
about any required changes at `make distcheck' time rather than at
`make alpha' time.
2000-01-30 15:00:57 +00:00
Jim Meyering
ab365a8297 *** empty log message *** 2000-01-30 12:21:37 +00:00
Jim Meyering
f573721b82 *** empty log message *** 2000-01-30 12:17:37 +00:00
Jim Meyering
1c1efebc1d *** empty log message *** 2000-01-30 12:17:07 +00:00
Jim Meyering
be27aed1ec . 2000-01-30 12:13:26 +00:00
Jim Meyering
cf16d34a4d . 2000-01-30 12:12:36 +00:00
Jim Meyering
8d6ec015de *** empty log message *** 2000-01-30 12:12:00 +00:00
Jim Meyering
5c4b305870 *** empty log message *** 2000-01-30 12:09:42 +00:00
Jim Meyering
62ec3fd688 (ST_NBLOCKS): Use st_size only for regular files and
for directories.  From H. J. Lu.
2000-01-30 12:09:30 +00:00
Jim Meyering
eda468af14 *** empty log message *** 2000-01-30 12:08:36 +00:00
Jim Meyering
8775803a9d (main): Exit with nonzero status if ftruncate fails. 2000-01-30 12:01:39 +00:00
Jim Meyering
8c6fe7ba06 *** empty log message *** 2000-01-30 12:00:14 +00:00
Jim Meyering
2e962bb26f *** empty log message *** 2000-01-30 11:59:50 +00:00
Jim Meyering
3f8032ddc9 *** empty log message *** 2000-01-30 11:57:08 +00:00
Jim Meyering
7a4fca9d77 whoops: s/jm_MACROS/jm_LIB_CHECK/ 2000-01-29 17:05:03 +00:00
Jim Meyering
c1aaa6492f *** empty log message *** 2000-01-29 17:00:03 +00:00
Jim Meyering
f8f48d0023 . 2000-01-29 16:59:09 +00:00
Jim Meyering
e446ebf6c3 New file containing library-related checks from
fileutils and sh-utils (textutils had none).
2000-01-29 14:11:35 +00:00
Jim Meyering
273d5d4925 *** empty log message *** 2000-01-29 14:10:51 +00:00
Jim Meyering
bd8333c63d *** empty log message *** 2000-01-29 11:07:24 +00:00
Jim Meyering
d176b68faa add lots of seq examples 2000-01-29 11:06:42 +00:00
Jim Meyering
f6b673d543 patch from Bruno demonstrating how to use seq to produce integer
output or output in non-decimal
2000-01-29 10:09:40 +00:00
Jim Meyering
bb84498a89 back out bruno's %d, %u, etc. changes 2000-01-29 10:06:12 +00:00
Jim Meyering
90eddc5478 *** empty log message *** 2000-01-29 10:05:42 +00:00
Jim Meyering
e3fa0cb53b Back out most of the 2000-01-21 and 01-22 changes.
[Instead, merely give examples showing how to accomplish the same
task with fewer limitations using existing tools. ]
Suggestion from Bruno Haible.
(valid_format): Rename from check_format.
2000-01-29 10:05:35 +00:00
Jim Meyering
62205d8c7e Back out the 2000-01-21 change.
Remove associated tests and add two equal-width ones.
2000-01-29 09:57:31 +00:00
Jim Meyering
6cac32ec7f *** empty log message *** 2000-01-29 09:56:32 +00:00
Jim Meyering
4db6224838 Set COLUMNS envvar, just to be safe. 2000-01-29 09:50:49 +00:00
Jim Meyering
ba088349be (screen_columns): Change #if-0 (test code, mistakenly committed in last delta)
back to #ifdef TIOCGWINSZ.
2000-01-29 09:50:14 +00:00
Jim Meyering
bbcd510bc5 *** empty log message *** 2000-01-28 22:04:47 +00:00
Jim Meyering
489f1925be Change format of warning message to look more like that
from the missing script.  Suggestion from Franois Pinard.
2000-01-28 22:04:41 +00:00
Jim Meyering
d813adbf1f *** empty log message *** 2000-01-28 08:32:14 +00:00
Jim Meyering
13707ac76a (wrapf): Emit a newline only if 0 < current_col.
(screen_columns): Use xstrtol, not atoi.
If get_win_size fails and $COLUMNS == 0, then return 80, not `0'.
2000-01-28 08:32:01 +00:00
Jim Meyering
b631b5c3ac (detect_loop): Update incomplete comment.
From Mark Kettenis.
2000-01-26 21:47:06 +00:00
Jim Meyering
06b0be15bb *** empty log message *** 2000-01-25 12:07:14 +00:00
Jim Meyering
1f18465289 Change expected output for cycle-1 and cycle-2 tests. 2000-01-25 12:07:02 +00:00
Jim Meyering
a8b0898ba5 tsort now works more like the traditional UNIX tsort. Before it would
exit when it found a loop.  Now it continues and outputs all items.

(exit_status): New variable.
(loop): New varibale.
(count_items, scan_zeroes): Change return type to int.
(detect_loop): Complete rewrite to correctly implement detection
of loops.  Also change return type to int.
(recurse_tree): Stop if ACTION returns non-zero.  This involves
changing the return type of this function and ACTION to int.
(walk_tree): Change return type of ACTION to int.
(tsort): Continue sort after a loop has been detected (and
broken).  Set exit_status to 1 if a loop was detected.
(main): Use exit_status to determine exit code.
2000-01-25 12:03:15 +00:00
Jim Meyering
9a2ff5e31c *** empty log message *** 2000-01-25 12:02:16 +00:00
Jim Meyering
03caa431a0 *** empty log message *** 2000-01-25 07:26:20 +00:00
Jim Meyering
231f8fc887 Require AC_HEADER_TIME, and include sys/time.h as well
as time.h in the compile check.
2000-01-25 07:26:14 +00:00
Jim Meyering
15ee939c3c bump serial 2000-01-25 07:25:49 +00:00
Jim Meyering
893fdf84e8 Fix typo in cross-compiling case: s/yes/no/. 2000-01-25 07:25:38 +00:00
Jim Meyering
f57f26e36a Require AC_HEADER_TIME rather than simply using it. 2000-01-25 07:21:57 +00:00
Jim Meyering
7d31261496 . 2000-01-25 07:20:58 +00:00
Jim Meyering
b67de020d9 *** empty log message *** 2000-01-24 13:58:45 +00:00
Jim Meyering
06eee4e253 (usage): Describe behavior when LINK_NAME is omitted.
From Michael Stone.
2000-01-24 13:58:38 +00:00
Jim Meyering
efa9563f3d (main): Don't expect array index `n_files - 1' to evaluate
to `-1' for unsigned int n_files == 0.  Doing so lead to a segfault on
alpha.  From Michael Stone.
2000-01-24 13:48:12 +00:00
Jim Meyering
ae5c430364 *** empty log message *** 2000-01-23 16:25:35 +00:00
Jim Meyering
fe3a834b9f Move df-related tests here from fileutils/configure.in 2000-01-23 16:23:50 +00:00
Jim Meyering
d32cf4d872 . 2000-01-23 16:20:48 +00:00
Jim Meyering
9e30aaca79 *** empty log message *** 2000-01-23 16:20:34 +00:00
Jim Meyering
26c96331b2 s/list_mounted_fs/ac_list_mounted_fs/
(jm_LIST_MOUNTED_FILESYSTEMS): Take two parameters.
2000-01-23 16:20:21 +00:00
Jim Meyering
81df043fdd (jm_FILE_SYSTEM_USAGE): Take two parameters. 2000-01-23 14:49:09 +00:00
Jim Meyering
d495aaf3e7 s/space/ac_fsusage_space/. 2000-01-23 14:12:45 +00:00
Jim Meyering
3705d57846 Extracted from fileutils/configure.in. 2000-01-23 14:08:35 +00:00
Jim Meyering
d5eb5821c6 . 2000-01-23 14:01:32 +00:00
Jim Meyering
48efd1644d (jm_CHECK_ALL_TYPES): Require AC_HEADER_MAJOR and AC_HEADER_DIRENT. 2000-01-23 10:55:10 +00:00
Jim Meyering
a9d4aadb5e *** empty log message *** 2000-01-23 10:55:00 +00:00
Jim Meyering
ce0262560b *** empty log message *** 2000-01-23 10:35:49 +00:00
Jim Meyering
505805856e (jm_FUNC_FTRUNCATE): AC_REQUIRE it. 2000-01-23 10:34:42 +00:00
Jim Meyering
aef5ff97f7 *** empty log message *** 2000-01-23 10:34:04 +00:00
Jim Meyering
7d7c104722 *** empty log message *** 2000-01-23 10:23:26 +00:00
Jim Meyering
d0a520d367 (AC_SUBST(DF_PROG)): Moved from fileutils/configure.in. 2000-01-23 10:23:23 +00:00
Jim Meyering
4d5960cf1f *** empty log message *** 2000-01-23 10:19:30 +00:00
Jim Meyering
5adc8fd591 (AM_FUNC_STRTOD): Added (from textutils', sh-utils' configure.in).
(AC_SUBST(POW_LIBM)): Likewise.
2000-01-23 10:19:26 +00:00
Jim Meyering
47b4e7f1aa *** empty log message *** 2000-01-23 10:18:15 +00:00
Jim Meyering
46980c56e0 (AC_CHECK_FUNCS): Merge all checks from fileutils, textutils, sh-utils. 2000-01-23 10:13:25 +00:00
Jim Meyering
86f00ce878 *** empty log message *** 2000-01-23 10:09:22 +00:00
Jim Meyering
2c702c93fe *** empty log message *** 2000-01-23 09:53:53 +00:00
Jim Meyering
c91b47d64f (libfetish_a_SOURCES): Remove explicit mention of obstack.c. 2000-01-23 09:53:48 +00:00
Jim Meyering
9e4428a605 (AM_FUNC_OBSTACK): Add (from fileutils/configure.in). 2000-01-23 09:52:35 +00:00
Jim Meyering
b76b69c8a2 *** empty log message *** 2000-01-23 09:52:02 +00:00
Jim Meyering
4f0cb8adcb *** empty log message *** 2000-01-23 09:31:09 +00:00
Jim Meyering
cbe1109277 (OPTIONAL_BIN_PROGS, OPTIONAL_BIN_ZCRIPTS, MAN):
AC_SUBST these here, rather than just in sh-util/configure.in, so
that the now-shared-by-fileutils-and-textutils lib/Makefile.am are
all the same.
2000-01-23 09:31:06 +00:00
Jim Meyering
08e09e9ab4 version-control: never 2000-01-23 09:19:33 +00:00
Jim Meyering
f3f4a60164 . 2000-01-23 09:08:39 +00:00
Jim Meyering
dce8ba11dd . 2000-01-22 22:55:11 +00:00
Jim Meyering
45d534215a (keycompare): Use global, hard_LC_COLLATE in place of
local that is sometimes undeclared.
2000-01-22 22:54:51 +00:00
Jim Meyering
1a50efcd03 *** empty log message *** 2000-01-22 22:43:37 +00:00
Jim Meyering
86a839108c [! HAVE_DECL_STRTOUL]: Declare strtoul.
[! HAVE_DECL_STRTOULL]: Declare strtoull.
Required for some AIX systems.  Reported by Christian Krackowizer.
[TESTING] (main): New function.
2000-01-22 22:43:31 +00:00
Jim Meyering
aebba9cd1d [! HAVE_DECL_STRTOUL]: Declare strtoul.
[! HAVE_DECL_STRTOULL]: Declare strtoull.
Required for some AIX systems.  Reported by Christian Krackowizer.
2000-01-22 22:41:02 +00:00
Jim Meyering
42e962a284 *** empty log message *** 2000-01-22 22:26:17 +00:00
Jim Meyering
0de00b9e6a Call AC_PROG_CC_STDC just before AC_C_CONST. 2000-01-22 22:25:25 +00:00
Jim Meyering
f23d5119d8 *** empty log message *** 2000-01-22 22:21:32 +00:00
Jim Meyering
0d9735fbb4 *** empty log message *** 2000-01-22 22:20:08 +00:00
Jim Meyering
0b7e06d203 [HAVE_WCTYPE_H]: Include <wctype.h>. 2000-01-22 22:19:48 +00:00
Jim Meyering
968d5b2bbf (jm_PREREQ_QUOTEARG): Add wctype.h. 2000-01-22 22:19:12 +00:00
Jim Meyering
abab15deb9 *** empty log message *** 2000-01-22 22:08:50 +00:00
Jim Meyering
570080ef25 Merge the three lists of headers. 2000-01-22 22:08:08 +00:00
Jim Meyering
595bfc8a83 *** empty log message *** 2000-01-22 22:05:13 +00:00
Jim Meyering
dfb0540bb1 (AC_CHECK_HEADERS): Add checks from textutils' configure.in 2000-01-22 22:04:33 +00:00
Jim Meyering
c099a14fac *** empty log message *** 2000-01-22 22:03:12 +00:00
Jim Meyering
c219eb2daf (AC_CHECK_HEADERS): Add checks from sh-utils' configure.in 2000-01-22 22:03:01 +00:00
Jim Meyering
c9c2cdda8b *** empty log message *** 2000-01-22 22:00:31 +00:00
Jim Meyering
58da7aa5b3 (AC_CHECK_HEADERS): Add checks from fileutils' configure.in 2000-01-22 22:00:17 +00:00
Jim Meyering
7bce838dab *** empty log message *** 2000-01-22 21:52:02 +00:00
Jim Meyering
24c45a756e (jm_PREREQ_ADDEXT): New macro. Parts moved here from fileutils' configure.in. 2000-01-22 21:51:57 +00:00
Jim Meyering
d4db66a0fb *** empty log message *** 2000-01-22 21:29:10 +00:00
Jim Meyering
09f1b5f940 (dir_name): Support for DOS-style file names with drive letters. 2000-01-22 21:29:02 +00:00
Jim Meyering
a2e435c395 tack on the one from fileutils/lib 2000-01-22 18:03:21 +00:00
Jim Meyering
e1cc8122af . 2000-01-22 14:27:13 +00:00
Jim Meyering
8ce9f19835 Remove kludgy `test -z $ac_...AC_CHECK_HEADERS(...)' code.
Moved tests into their own function (_jm_DECL_HEADERS) in check-decl.m4.
2000-01-22 14:24:50 +00:00
Jim Meyering
f5ff12fcbc (_jm_DECL_HEADERS): Define new function.
(jm_CHECK_DECLARATIONS): Require it.
2000-01-22 14:22:42 +00:00
Jim Meyering
c7bd32731e Revert to using #if HAVE_STDLIB_H
to guard inclusion of <stdlib.h>.
2000-01-22 14:07:23 +00:00
Jim Meyering
0f9105c7be Guard inclusion of <stdlib.h> with `#if STDC_HEADERS',
not `#if HAVE_STDLIB_H'.  The former wasn't defined.
Use #if rather than #ifdef.

Add HAVE_DECL_STRTOUL and HAVE_DECL_STRTOULL.
(jm_CHECK_DECLARATIONS): Add strtoul strtoull.
2000-01-22 13:53:10 +00:00
Jim Meyering
c4a0e46616 *** empty log message *** 2000-01-22 13:15:39 +00:00
Jim Meyering
a33ca24833 *** empty log message *** 2000-01-22 13:14:17 +00:00
Jim Meyering
465e3422e8 (seq --format): Mention that integer formats are accepted, too. 2000-01-22 13:13:45 +00:00
Jim Meyering
1a8bedfeb7 *** empty log message *** 2000-01-22 13:07:25 +00:00
Jim Meyering
88e049caf5 *** empty log message *** 2000-01-22 13:06:59 +00:00
Jim Meyering
8ecfdb48a9 *** empty log message *** 2000-01-22 12:37:01 +00:00
Jim Meyering
c88a1e4466 Topologically sort the functions and remove fwd declarations. 2000-01-22 12:36:35 +00:00
Jim Meyering
4186d5762f (enum Format_type): Declare.
(format_type): New global to take place of intconv.
(DO_printf): New macro.
(main): Use it.
2000-01-22 11:14:22 +00:00
Jim Meyering
c951e3f2c9 Add new tests for the new functionality. 2000-01-22 11:10:40 +00:00
Jim Meyering
e48c320244 Add support for octal and hexadecimal output.
(intconv): New variable.
(usage): Update.
(main): Call scan_arg instead of scan_double_arg. Call check_format
before scan_arg.
(scan_int_arg, scan_arg): New functions.
(check_format): Add intconv argument. Accept %d, %u, %o, %x, %X.
(print_numbers): If intconv is true, pass an int argument to printf.
2000-01-22 10:09:29 +00:00
Jim Meyering
625a560403 . 2000-01-22 09:44:23 +00:00
Jim Meyering
f3a2399998 *** empty log message *** 2000-01-22 09:43:37 +00:00
Jim Meyering
fc32116042 (ISDIGIT): Define.
(strverscmp): Use ISDIGIT, not isdigit.
2000-01-22 09:43:23 +00:00
Jim Meyering
1a779705e8 . 2000-01-22 09:42:33 +00:00
Jim Meyering
6df5aa20d7 (o-rep-1, o-rep-2): New tests. 2000-01-22 09:42:14 +00:00
Jim Meyering
d29115d80f ("xstrtol.h"): Include.
(Filter): Rename from PFL.
(non_neg_strtol): Remove function.
(find_bracketed_repeat): Use xstrtoul instead of non_neg_strtol.
(squeeze_filter, set_initialize, main): Use size_t and ssize_t in
place of long and int in several decls.
(read_and_delete, read_and_xlate): Likewise, and remove assertion.
2000-01-22 09:31:19 +00:00
Jim Meyering
89d8c4e859 *** empty log message *** 2000-01-21 15:08:14 +00:00
Jim Meyering
4ba6864c31 Correct copying notice to use GPL, per author's request.
(AUTHORS): Add djm.
2000-01-21 15:08:08 +00:00
Jim Meyering
dc6a5317bc Correct copying notice to use GPL, per author's request. 2000-01-21 15:07:53 +00:00
Jim Meyering
98379bfc4f *** empty log message *** 2000-01-21 14:39:07 +00:00
Jim Meyering
cfa079e41d *** empty log message *** 2000-01-21 07:33:33 +00:00
Jim Meyering
553fe00983 (PFI): Return long', not int'.
(PFL): Rename from PFI now that it returns long.
(squeeze_filter): Declare as `long': i, nr, out_len.
2000-01-21 07:33:25 +00:00
Jim Meyering
c4acbcc996 Tweak sort performance.
(hard_LC_CTYPE): Remove.
(keylist): Renamed from keyhead.  Now a pointer, not a
mostly-unused struct.  All uses changed.
(findlines, keycompare, CMP_WITH_IGNORE, compare, checkfp, mergefps,
sort): Tune and use a more consistent style for reallocation.
(keycompare, main): Don't worry about LC_CTYPE;
it's buggy with multibyte chars anyway.
(compare): Invoke alloca (0) after each call to keycompare,
not just the ones that return nonzero.  This avoids a memory
leak on architectures without builtin alloca that occurs
sometimes when a file contains all duplicate lines.
2000-01-19 22:43:33 +00:00
Jim Meyering
e8611c5714 *** empty log message *** 2000-01-19 20:41:06 +00:00
Jim Meyering
9393315a06 (jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Use AC_HEADER_TIME.  Volker Borchert reported that OpenBSD-2.3/sparc
defines `struct timespec' in <sys/time.h>
2000-01-19 20:40:51 +00:00
Jim Meyering
7990f92f15 *** empty log message *** 2000-01-19 14:01:03 +00:00
Jim Meyering
2435963a1f *** empty log message *** 2000-01-19 13:57:51 +00:00
Jim Meyering
469d21a9d3 Remove uses of changequote altogether. 2000-01-19 13:57:42 +00:00
Jim Meyering
ddcb373abc . 2000-01-19 08:17:47 +00:00
Jim Meyering
e0a66a6600 . 2000-01-19 08:17:16 +00:00
Jim Meyering
d448da43d6 . 2000-01-19 07:56:52 +00:00
Jim Meyering
870858ccad (interrupt_handler, main):
Don't use SA_INTERRUPT to decide whether to call sigaction, as
POSIX.1 doesn't require SA_INTERRUPT and some systems
(e.g. Solaris 7) don't define it.  Use SA_NOCLDSTOP instead;
it's been part of POSIX.1 since day 1 (in 1988).
2000-01-18 07:37:57 +00:00
Jim Meyering
fa25e451f9 *** empty log message *** 2000-01-18 07:37:17 +00:00
Jim Meyering
3e115cf2b5 (sighandler, main):
Don't use SA_INTERRUPT to decide whether to call sigaction, as
POSIX.1 doesn't require SA_INTERRUPT and some systems
(e.g. Solaris 7) don't define it.  Use SA_NOCLDSTOP instead;
it's been part of POSIX.1 since day 1 (in 1988).
2000-01-18 07:36:53 +00:00
Jim Meyering
41a7e7c193 *** empty log message *** 2000-01-18 07:28:59 +00:00
Jim Meyering
8024f33e45 (interrupt_handler):
Don't use SA_INTERRUPT to decide whether to call sigaction, as
POSIX.1 doesn't require SA_INTERRUPT and some systems
(e.g. Solaris 7) don't define it.  Use SA_NOCLDSTOP instead;
it's been part of POSIX.1 since day 1 (in 1988).
(install_handler): Use SA_NOCLDSTOP, not _POSIX_VERSION,
to decide whether to call sigaction; this fixes an old typo.
2000-01-18 07:28:47 +00:00
Jim Meyering
1fe0bff2f4 *** empty log message *** 2000-01-18 07:26:07 +00:00
Jim Meyering
c829e00d78 (nanosleep):
Don't use SA_INTERRUPT to decide whether to call sigaction, as
POSIX.1 doesn't require SA_INTERRUPT and some systems
(e.g. Solaris 7) don't define it.  Use SA_NOCLDSTOP instead;
it's been part of POSIX.1 since day 1 (in 1988).
2000-01-18 07:25:53 +00:00
Jim Meyering
95b4ba5e0d *** empty log message *** 2000-01-17 22:37:32 +00:00
Jim Meyering
f106184dd2 . 2000-01-17 22:36:01 +00:00
Jim Meyering
93a834533b *** empty log message *** 2000-01-17 10:00:37 +00:00
Jim Meyering
2c3cad16b2 fix typo 2000-01-17 10:00:30 +00:00
Jim Meyering
7f54d0b6b7 Revert this change (they're not the same):
Use new AC_C_PROTOTYPES instead of AM_C_PROTOTYPES.
2000-01-17 10:00:19 +00:00
Jim Meyering
751d1a1888 *** empty log message *** 2000-01-17 08:03:25 +00:00
Jim Meyering
47be9d6b2f revert last change, now that quotearg.c is fixed 2000-01-17 08:03:12 +00:00
Jim Meyering
4d034357da (quotearg_buffer_restyled): Do not quote
alert, backslash, formfeed, and vertical tab unnecessarily in
shell quoting style.
2000-01-17 08:01:40 +00:00
Jim Meyering
ea51a6cbaa *** empty log message *** 2000-01-17 08:01:30 +00:00
Jim Meyering
065c2a2cda *** empty log message *** 2000-01-16 22:15:50 +00:00
Jim Meyering
e9296ad49f Sync with sh-utils/lib/Makefile.am. 2000-01-16 22:15:32 +00:00
Jim Meyering
588bb7b9e2 *** empty log message *** 2000-01-16 20:42:46 +00:00
Jim Meyering
53000596a9 (usage): Correct error in %V description.
From Wolfram Kleff.
2000-01-16 20:41:29 +00:00
Jim Meyering
ccd763bee2 alphabetize a little 2000-01-16 20:15:58 +00:00
Jim Meyering
0c4d4d0081 *** empty log message *** 2000-01-16 17:01:26 +00:00
Jim Meyering
ac9b999873 . 2000-01-16 17:00:22 +00:00
Jim Meyering
7a8e14b287 Remove these for now (they're with related code in sh-utils' configure.in)
AM_SYS_POSIX_TERMIOS
  jm_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
2000-01-16 16:48:57 +00:00
Jim Meyering
38b49a265f Require AM_FUNC_GETLOADAVG, jm_SYS_PROC_UPTIME, AM_SYS_POSIX_TERMIOS, and
jm_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL.
2000-01-16 16:42:24 +00:00
Jim Meyering
fb6ad846b4 Require jm_FUNC_GROUP_MEMBER, jm_FUNC_PUTENV,
AM_FUNC_ERROR_AT_LINE, jm_FUNC_GNU_STRFTIME, jm_FUNC_MKTIME,
jm_FUNC_GETGROUPS AC_FUNC_VPRINTF, and AC_FUNC_ALLOCA.
2000-01-16 16:39:20 +00:00
Jim Meyering
67cf2e1e2e *** empty log message *** 2000-01-16 16:36:58 +00:00
Jim Meyering
2b47bcaca6 . 2000-01-16 13:09:25 +00:00
Jim Meyering
11d24c8713 . 2000-01-16 13:08:07 +00:00
Jim Meyering
7c99efe376 *** empty log message *** 2000-01-16 12:59:09 +00:00
Jim Meyering
6bcc673201 Use changequote(<<,>>)', rather than changequote(, )'
because the latter didn't work.
2000-01-16 12:59:00 +00:00
Jim Meyering
337515e1ed *** empty log message *** 2000-01-16 12:47:42 +00:00
Jim Meyering
fda148fb1b Adapt to work with recently updated quotearg.c. 2000-01-16 12:47:34 +00:00
Jim Meyering
e7d71e0725 . 2000-01-16 12:40:26 +00:00
Jim Meyering
110b79479d Use new AC_C_PROTOTYPES instead of AM_C_PROTOTYPES. 2000-01-16 12:39:31 +00:00
Jim Meyering
e64e8130b1 *** empty log message *** 2000-01-16 12:36:53 +00:00
Jim Meyering
5fae922bab Sync with the version from emacs-20.5.
(<string.h>): Include if HAVE_STRING_H.
(<stdlib.h>): Include if HAVE_STDLIB_H.
(alloca): Abort if malloc fails.
2000-01-16 12:35:49 +00:00
Jim Meyering
840aee01de . 2000-01-15 16:09:56 +00:00
Jim Meyering
dfc6a234b0 . 2000-01-15 15:58:54 +00:00
Jim Meyering
b07aaa6cd0 sheesh: fix it right this time: gethostname getusershell 2000-01-15 13:57:04 +00:00
Jim Meyering
9e8497dd61 Fix typo
s/stpbrk/strpbrk
2000-01-15 12:13:13 +00:00
Jim Meyering
6a483c24a8 (AC_REPLACE_FUNCS):
Add these: euidaccess memcmp mkdir rmdir rpmatch strndup strverscmp.
2000-01-15 12:07:53 +00:00
Jim Meyering
590f2decc5 *** empty log message *** 2000-01-15 12:06:03 +00:00
Jim Meyering
489dafa7bc (AC_REPLACE_FUNCS): Add strpbrk. 2000-01-15 12:02:58 +00:00
Jim Meyering
8ee46f4bf8 *** empty log message *** 2000-01-15 12:00:16 +00:00
Jim Meyering
b6040be40a (AC_REPLACE_FUNCS):
Add these, too: stime strcspn stpcpy strstr strtol strtoul.
2000-01-15 11:59:15 +00:00
Jim Meyering
116bfa584d *** empty log message *** 2000-01-15 11:57:46 +00:00
Jim Meyering
c3f357adf5 Quote multibyte characters correctly.
(ISGRAPH): Remove.
(ISPRINT): New macro.
(<wchar.h>): Include if HAVE_MBRTOWC && HAVE_WCHAR_H.
(isprint, mbrtowc, mbsinit, mbstate_t): New macros,
defined if ! (HAVE_MBRTOWC && HAVE_WCHAR_H).
(quotearg_buffer_restyled): New function, with most of the old
quotearg_buffer's contents.
Major rewrite to support multibyte characters.
(quotearg_buffer): Now just calls quotearg_buffer_restyled.
2000-01-15 11:57:11 +00:00
Jim Meyering
78992ab94f fix typo in last change 2000-01-15 11:48:10 +00:00
Jim Meyering
48bbfe2e71 (AC_REPLACE_FUNCS): Add memcpy and memset. 2000-01-15 11:47:12 +00:00
Jim Meyering
f02fa3aa3e *** empty log message *** 2000-01-15 11:45:52 +00:00
Jim Meyering
616361c4f6 *** empty log message *** 2000-01-15 11:44:11 +00:00
Jim Meyering
48e3ed52ee (AC_REPLACE_FUNCS): Add gethostname and getusershell 2000-01-15 11:41:08 +00:00
Jim Meyering
46d6db5426 *** empty log message *** 2000-01-15 11:14:42 +00:00
Jim Meyering
4841119c1a (TAB_STOP_SENTINEL): Define.
(unexpand): Use it instead of INT_MAX.
Declare column and pending to be `unsigned'.
Increment pending and column counters only if column is smaller
than TAB_STOP_SENTINEL.
2000-01-15 11:13:44 +00:00
Jim Meyering
8c0c6b0468 *** empty log message *** 2000-01-15 10:24:53 +00:00
Jim Meyering
5159046f88 *** empty log message *** 2000-01-15 10:24:10 +00:00
Jim Meyering
0d5f220029 *** empty log message *** 2000-01-15 09:51:23 +00:00
Jim Meyering
afd24c5869 *** empty log message *** 2000-01-15 09:08:07 +00:00
Jim Meyering
9bb0428a59 tweak comment 2000-01-15 07:07:41 +00:00
Jim Meyering
cf0a18b69d *** empty log message *** 2000-01-14 10:32:13 +00:00
Jim Meyering
6c7d8fd5b5 *** empty log message *** 2000-01-14 10:31:48 +00:00
Jim Meyering
3eb8c1fea4 *** empty log message *** 2000-01-14 07:05:58 +00:00
Jim Meyering
3ee8530a1e *** empty log message *** 2000-01-13 23:04:41 +00:00
Jim Meyering
66cbf09569 remove md5sum residue 2000-01-13 23:03:08 +00:00
Jim Meyering
3152cf6f82 *** empty log message *** 2000-01-13 23:02:32 +00:00
Jim Meyering
0567a5d9c8 *** empty log message *** 2000-01-13 23:01:14 +00:00
Jim Meyering
a69a2d6856 (fillbuf): Avoid quadratic behavior with long lines.
Also, stop worrying about ancient memchr bug (misbehavior when
size is zero), since other code doesn't worry either.
2000-01-13 07:34:44 +00:00
Jim Meyering
35ed98cc06 *** empty log message *** 2000-01-12 14:00:50 +00:00
Jim Meyering
ff626bd3c0 Make the warning that this shred test may not
be run as root more prominent.  Suggestion from Volker Borchert.
2000-01-12 14:00:22 +00:00
Jim Meyering
b52f383a7f *** empty log message *** 2000-01-12 08:17:41 +00:00
Jim Meyering
b14089f76b (jm_PREREQ_READUTMP): New macro.
(jm_PREREQ): Use it.
2000-01-12 08:17:30 +00:00
Jim Meyering
3df9479ab4 *** empty log message *** 2000-01-12 08:07:29 +00:00
Jim Meyering
bbe32e1637 (jm_PREREQ_CANON_HOST): Move code from su/configure.in. 2000-01-12 08:06:27 +00:00
Jim Meyering
79732f800d (jm_PREREQ_CANON_HOST): New macro.
(jm_PREREQ): Use it.
2000-01-12 07:58:22 +00:00
Jim Meyering
c186123316 *** empty log message *** 2000-01-12 07:27:34 +00:00
Jim Meyering
e50dab4ad9 *** empty log message *** 2000-01-12 06:58:30 +00:00
Jim Meyering
5d0f90dff7 *** empty log message *** 2000-01-12 06:56:54 +00:00
Jim Meyering
f3b0ab5eba (jm_PREREQ_QUOTEARG): New macro.
(jm_PREREQ): Use it.
2000-01-12 06:53:32 +00:00
Jim Meyering
551ab8474b (mode_compile): Use uintmax_t, not unsigned
long, to parse numeric modes.  Check for any unknown bits, not
just unknown bits left of the leftmost known bit.
2000-01-12 06:49:59 +00:00
Jim Meyering
12d6e4b1cd Update copyright notice. 2000-01-12 06:46:46 +00:00
Jim Meyering
a5ab3d9aac Sync with latest FSF version (fixing a minor Y2k problem). 2000-01-12 06:41:36 +00:00
Jim Meyering
fbe7dca27f Port to autoconf 2.13. 2000-01-12 06:40:10 +00:00
Jim Meyering
0d47b4be52 Sync to the slightly more general version of GNU tar. 2000-01-12 06:37:30 +00:00
Jim Meyering
59457bee16 (count_entry): Adjust to new calling convention for excluded_filename.
(main): Likewise, for add_exclude_file.
2000-01-12 06:36:56 +00:00
Jim Meyering
a3b2c5389c *** empty log message *** 2000-01-11 14:06:07 +00:00
Jim Meyering
1c4c285999 (memcpy): Protoize. 2000-01-11 14:05:28 +00:00
Jim Meyering
1b84791bc8 s/fu/fetish/ 2000-01-11 08:43:16 +00:00
Jim Meyering
126e14b161 (hash_initialize): Fix typo in comment. 2000-01-11 07:48:23 +00:00
Jim Meyering
80fd95a91d . 2000-01-11 07:28:22 +00:00
Jim Meyering
ca974b3755 *** empty log message *** 2000-01-10 12:52:18 +00:00
Jim Meyering
9f5307f1d3 *** empty log message *** 2000-01-10 11:53:22 +00:00
Jim Meyering
97085c8df7 *** empty log message *** 2000-01-10 11:53:16 +00:00
Jim Meyering
de1cb33196 *** empty log message *** 2000-01-10 11:36:05 +00:00
Jim Meyering
741c7303a5 (alpha): Use scp, not ncftp. 2000-01-10 11:35:44 +00:00
Jim Meyering
f23b3eb47a *** empty log message *** 2000-01-10 09:37:50 +00:00
Jim Meyering
f488edddf7 . 2000-01-10 09:21:14 +00:00
Jim Meyering
60dabf5cd1 . 2000-01-10 09:20:49 +00:00
Jim Meyering
44381ed288 *** empty log message *** 2000-01-10 08:11:56 +00:00
Jim Meyering
4717bb93f2 (announcement): Include URLs for xdelta files. 2000-01-10 08:11:41 +00:00
Jim Meyering
9442b6050b *** empty log message *** 2000-01-10 07:31:52 +00:00
Jim Meyering
6adb0e4d56 *** empty log message *** 2000-01-10 07:31:31 +00:00
Jim Meyering
6f06aad852 (noinst_HEADERS): Add nanosleep.h. 2000-01-10 07:31:14 +00:00
Jim Meyering
baf8720297 *** empty log message *** 2000-01-10 07:27:52 +00:00
Jim Meyering
94966b9515 *** empty log message *** 2000-01-09 16:21:39 +00:00
Jim Meyering
55d80ad41a *** empty log message *** 2000-01-09 16:20:44 +00:00
Jim Meyering
7b9c964fde *** empty log message *** 2000-01-09 16:17:52 +00:00
Jim Meyering
c4b800d7b6 *** empty log message *** 2000-01-09 16:17:26 +00:00
Jim Meyering
913e134b2d *** empty log message *** 2000-01-09 08:26:42 +00:00
Jim Meyering
5f2d0e3d6c *** empty log message *** 2000-01-09 08:26:15 +00:00
Jim Meyering
58cba22668 (do_link): Produce the same sort of one-line output for
`--backup --verbose' as cp, mv, install.  Before this, the backup
file name wasn't printed at all.
2000-01-09 08:23:51 +00:00
Jim Meyering
efe3229edb This affects cp, install, and mv.
(copy_internal): When making backup files in verbose
mode, print the backup file name on the same line as the rest of the
information, e.g., `a -> b (backup: b.~13~)' rather than on a line
by itself.
2000-01-09 08:20:45 +00:00
Jim Meyering
1279be6f8a *** empty log message *** 2000-01-08 18:03:08 +00:00
Jim Meyering
c852bc40d3 *** empty log message *** 2000-01-08 18:02:47 +00:00
Jim Meyering
e02fd60260 (PAGES_OPTION, COLUMNS_OPTION): Define these and use them instead of
`CHAR_MAX + n'.
2000-01-08 18:02:42 +00:00
Jim Meyering
299882b8a4 (OUTPUT_DELIMITER_OPTION): Define this and use it instead of `CHAR_MAX + n'. 2000-01-08 18:02:09 +00:00
Jim Meyering
fee7991cbc remove stray define before _LIBC 2000-01-08 17:53:35 +00:00
Jim Meyering
d486a2e744 *** empty log message *** 2000-01-08 17:53:21 +00:00
Jim Meyering
6752f5570a *** empty log message *** 2000-01-08 17:23:22 +00:00
Jim Meyering
00c9ad3937 . 2000-01-08 16:48:29 +00:00
Jim Meyering
9a0a8e29b0 *** empty log message *** 2000-01-08 16:46:20 +00:00
Jim Meyering
e5f283604b (TESTS_ENVIRONMENT): Add pwd/ prefix
to exported PATH value (though not strictly necessary, here).
2000-01-08 16:46:11 +00:00
Jim Meyering
1650a9459a *** empty log message *** 2000-01-08 16:44:27 +00:00
Jim Meyering
58edea6508 (error): Use __strerror_r's return value only if HAVE_WORKING_STRERROR_R.
(error_at_line): Likewise.
2000-01-08 16:44:19 +00:00
Jim Meyering
d15ab2c1be (null_AM_MAKEFLAGS): Define.
(my-distcheck): Use it to avoid distributing out of date files
whose derivation would require a maintainer tool.
2000-01-08 16:38:13 +00:00
Jim Meyering
cabbdf7bbf . 2000-01-08 16:35:26 +00:00
Jim Meyering
92999d559c . 2000-01-08 16:34:24 +00:00
Jim Meyering
625ce6a036 . 2000-01-08 16:32:02 +00:00
Jim Meyering
dfbeb59dc0 *** empty log message *** 2000-01-08 16:31:29 +00:00
Jim Meyering
b8342a9a20 (jm_FUNC_STRERROR_R): New file/macro. 2000-01-08 16:30:49 +00:00
Jim Meyering
2170503967 (jm_FUNC_STRERROR_R): Require it. 2000-01-08 16:25:57 +00:00
Jim Meyering
5693e5c586 Sync with the GNU C library. 2000-01-07 14:29:26 +00:00
Jim Meyering
b830d441bb . 2000-01-07 12:27:31 +00:00
Jim Meyering
923a32a0a8 tweak comment 2000-01-07 09:18:15 +00:00
Jim Meyering
a86b522044 *** empty log message *** 2000-01-07 08:56:48 +00:00
Jim Meyering
11eebed20f (TESTS_ENVIRONMENT): Add pwd/ prefix to exported PATH value (though not strictly necessary, here). 2000-01-07 08:56:38 +00:00
Jim Meyering
9bcff27f18 *** empty log message *** 2000-01-07 08:26:13 +00:00
Jim Meyering
858254d559 (TESTS_ENVIRONMENT): Add pwd/ prefix
to exported PATH value (though not strictly necessary, here).
2000-01-07 08:25:47 +00:00
Jim Meyering
f90f8cea87 (TESTS_ENVIRONMENT): Add pwd/ prefix
to exported PATH value (though not strictly necessary, here).
2000-01-07 08:25:26 +00:00
Jim Meyering
30a1c917c7 (TESTS_ENVIRONMENT): Add pwd/ prefix
to exported PATH value (though not strictly necessary, here).
2000-01-07 08:24:38 +00:00
Jim Meyering
36a3a59284 (TESTS_ENVIRONMENT): Add pwd/ prefix
to exported PATH value (though not strictly necessary, here).
2000-01-07 08:24:16 +00:00
Jim Meyering
aac32d403c add copyright/no-warranty comment 2000-01-07 07:33:19 +00:00
Jim Meyering
8606b093e4 *** empty log message *** 2000-01-07 07:31:03 +00:00
Jim Meyering
4e4c0e24d5 tweak copyright line 2000-01-07 07:03:01 +00:00
Jim Meyering
76bc7db5e2 (strpbrk): Ansideclify.
Use `#if' instead of `#ifdef' for `HAVE_CONFIG_H'.
2000-01-07 07:01:45 +00:00
Jim Meyering
fd3e041f5b Use #if' instead of #ifdef' for `HAVE_CONFIG_H'.
Capitalize all macro parameters.
(memcasecmp): Ansideclify.
Don't cast away `const'ness of parameters.
Suggestions from Franois Pinard.
2000-01-07 06:59:36 +00:00
Jim Meyering
ce2bd26821 . 2000-01-06 23:13:49 +00:00
Jim Meyering
1b470586fd . 2000-01-06 23:11:55 +00:00
Jim Meyering
198bd22923 . 2000-01-06 23:10:51 +00:00
Jim Meyering
8c5a80b069 . 2000-01-06 23:10:22 +00:00
Jim Meyering
a2e08f3047 *** empty log message *** 2000-01-06 22:58:02 +00:00
Jim Meyering
eff6393e39 Import version 1.020. 2000-01-06 22:49:01 +00:00
Jim Meyering
bbe0894eb2 . 2000-01-06 22:40:59 +00:00
Jim Meyering
c2d329d6c8 *** empty log message *** 2000-01-06 21:39:58 +00:00
Jim Meyering
136a8efd10 Use jm_CHECK_TYPE_STRUCT_UTIMBUF, renamed from jm_STRUCT_UTIMBUF. 2000-01-06 21:39:28 +00:00
Jim Meyering
567dae8b9c *** empty log message *** 2000-01-06 21:32:03 +00:00
Jim Meyering
f8c6ea241d Sync with the GNU C Library. 2000-01-06 21:31:48 +00:00
Jim Meyering
6784d83a62 Add #pragma STDC FENV_ACCESS ON if C99. 2000-01-06 21:01:06 +00:00
Jim Meyering
2f8c0d5542 Sync tm_diff with the GNU C Library.
(TM_YEAR_BASE): Renamed from TM_YEAR_ORIGIN.  All uses changed.
(tm_diff): Renamed from difftm.  All uses changed.
Replace body with that taken from GNU C Library 2.1.3pre1.
(get_date): Prefer tm_gmtoff to tm_diff if available.
2000-01-06 18:25:03 +00:00
Jim Meyering
1150e89832 *** empty log message *** 2000-01-06 18:24:51 +00:00
Jim Meyering
dd282c588b . 2000-01-06 17:13:39 +00:00
Jim Meyering
8301c1310b *** empty log message *** 2000-01-06 16:01:57 +00:00
Jim Meyering
8c0752d9be Tell the user just before sleeping for 7 seconds. 2000-01-06 16:01:43 +00:00
Jim Meyering
d9b2187a8c *** empty log message *** 2000-01-06 15:59:06 +00:00
Jim Meyering
d50599ae1a *** empty log message *** 2000-01-06 15:58:55 +00:00
Jim Meyering
6cb491d9df (TESTS): Remove fflush. It didn't
test the losing behavior, and left a stray tail process to boot.
2000-01-06 15:58:47 +00:00
Jim Meyering
21b43e0fe9 add blank line 2000-01-06 08:35:45 +00:00
Jim Meyering
2315cbdeaa (apply_suffix): Comment. 2000-01-06 08:35:21 +00:00
Jim Meyering
eee26242bb fix typo in comment 2000-01-06 08:29:10 +00:00
Jim Meyering
757861331e Minor code cleanup.
(clock_get_realtime): Return argument, for convenience.
(main): Use this to simplify main sleep loop.
2000-01-06 08:28:39 +00:00
Jim Meyering
e1cc2ace3c *** empty log message *** 2000-01-05 14:08:05 +00:00
Jim Meyering
f8d2a3f723 *** empty log message *** 2000-01-05 12:19:48 +00:00
Jim Meyering
3a673ed728 . 2000-01-05 12:19:04 +00:00
Jim Meyering
fd0797a4e4 Include nanosleep.h.
(AUTHORS): Add Paul Eggert.
2000-01-05 12:17:59 +00:00
Jim Meyering
3b979cf095 Add #pragma STDC FENV_ACCESS ON if C99.
(<fenv.h>): Include if available.
(main): Always round floating-point interval calculations upwards,
as we must sleep for at least the specified time.
Do the right thing with NaNs.
2000-01-05 12:17:19 +00:00
Jim Meyering
7f1c659ce3 whoops. fix typos 2000-01-05 12:06:39 +00:00
Jim Meyering
ec266f43d5 Include nanosleep.h.
Don't include time.h or sys/time.h here.
2000-01-05 12:03:53 +00:00
Jim Meyering
1885aeaaa4 *** empty log message *** 2000-01-05 12:03:06 +00:00
Jim Meyering
a2bee2bc6f (savedir): Don't store past the end of an array if
name_size is zero and the directory is empty.
2000-01-04 22:54:54 +00:00
Jim Meyering
1e01103713 *** empty log message *** 2000-01-04 17:18:15 +00:00
Jim Meyering
ce17dc2e94 Reflect s/jm_STRUCT_/jm_CHECK_TYPE_STRUCT_/ renamings. 2000-01-04 17:18:05 +00:00
Jim Meyering
6ed0893953 bump serial # 2000-01-04 17:16:48 +00:00
Jim Meyering
483ed4cbfd *** empty log message *** 2000-01-04 17:16:34 +00:00
Jim Meyering
b75698cf72 (jm_CHECK_TYPE_STRUCT_DIRENT_D_TYPE): Rename from jm_STRUCT_DIRENT_D_TYPE. 2000-01-04 17:16:26 +00:00
Jim Meyering
c26299c3d2 (jm_CHECK_TYPE_STRUCT_DIRENT_D_INO): Rename from jm_STRUCT_DIRENT_D_INO. 2000-01-04 17:15:32 +00:00
Jim Meyering
82ca413ae4 (jm_CHECK_TYPE_STRUCT_UTIMBUF): Rename from jm_STRUCT_UTIMBUF. 2000-01-04 17:13:58 +00:00
Jim Meyering
0d30a49178 (jm_CHECK_TYPE_STRUCT_TIMESPEC): Require it. 2000-01-04 17:12:45 +00:00
Jim Meyering
cdff473cd3 *** empty log message *** 2000-01-04 17:12:12 +00:00
Jim Meyering
9a74f64d12 . 2000-01-04 15:11:03 +00:00
Jim Meyering
8714cce36a (PREV_VERSION): Tweak so it handles e.g., 2.0a -> 2.0.
(alpha): Create xdelta diffs.
2000-01-04 13:20:15 +00:00
Jim Meyering
1a7010a87f (PREV_VERSION): Tweak so it handles e.g., 2.0a -> 2.0. 2000-01-04 12:24:49 +00:00
Jim Meyering
556a7ac657 *** empty log message *** 2000-01-03 19:59:04 +00:00
Jim Meyering
eed8a2f5e1 tweak comment 2000-01-03 19:58:56 +00:00
Jim Meyering
2ff3485a8d (jm_FUNC_NANOSLEEP): Search for nanosleep in -lrt
(for Solaris 7) and in -lposix4 (for Solaris 2.5.1).
2000-01-03 19:58:09 +00:00
Jim Meyering
3206a63225 *** empty log message *** 2000-01-02 16:00:44 +00:00
Jim Meyering
ef4c445a55 . 2000-01-02 15:59:32 +00:00
Jim Meyering
20ca1d8601 *** empty log message *** 2000-01-02 15:57:02 +00:00
Jim Meyering
60ff88e110 *** empty log message *** 2000-01-02 09:59:01 +00:00
Jim Meyering
6e5a32d58f Escape `$' in $3 of dnl comment. I no longer remember if this is necessary. 2000-01-02 09:58:53 +00:00
Jim Meyering
5f55b410a6 *** empty log message *** 2000-01-02 09:53:03 +00:00
Jim Meyering
27f7343bf6 *** empty log message *** 2000-01-02 09:52:32 +00:00
Jim Meyering
141036e2ea sleep accepts arbitrary floating point numbers. 2000-01-02 09:50:15 +00:00
Jim Meyering
34c324d786 update usage 2000-01-02 09:31:15 +00:00
Jim Meyering
9df5f7720b *** empty log message *** 2000-01-02 09:13:17 +00:00
Jim Meyering
f2de5d5212 *** empty log message *** 2000-01-02 09:12:55 +00:00
Jim Meyering
c5ed5e05ea . 2000-01-02 09:11:55 +00:00
Jim Meyering
7092835d3b *** empty log message *** 2000-01-02 08:57:49 +00:00
Jim Meyering
af6d4ad6ca Remove non-POSIX warning about trailing-slashed symlink-to-directory. 2000-01-02 08:53:30 +00:00
Jim Meyering
70cc369588 New option: --strip-trailing-slashes. 2000-01-02 08:51:39 +00:00
Jim Meyering
b3faf79a75 *** empty log message *** 2000-01-02 08:45:43 +00:00
Jim Meyering
50de4d0751 *** empty log message *** 2000-01-02 07:41:02 +00:00
Jim Meyering
60f3f576c7 (#pragma alloca): Add if _AIX is defined.
(path-concat.h): Include.
(show_point): If HAVE_REALPATH or HAVE_RESOLVEPATH is defined,
find the real absolute path for PATH, and use that to find the
mount point.

(show_point): Prefer non-dummy entries in shortcuts, too.
Disable bogus mount dirs instead of restatting them each time.
2000-01-02 07:40:24 +00:00
Jim Meyering
05fcf7df27 (my_strftime): Some old compilers object to
'\a', so don't bother optimizing for it.
2000-01-02 07:09:54 +00:00
Jim Meyering
d5d6d965ed *** empty log message *** 2000-01-01 20:00:28 +00:00
Jim Meyering
d9fd3ba617 . 2000-01-01 19:56:56 +00:00
Jim Meyering
8c3df2e678 *** empty log message *** 2000-01-01 09:43:40 +00:00
Jim Meyering
847d050688 *** empty log message *** 1999-12-30 09:09:38 +00:00
Jim Meyering
18f381afea *** empty log message *** 1999-12-30 09:09:03 +00:00
Jim Meyering
1128d1dffb *** empty log message *** 1999-12-30 09:07:31 +00:00
Jim Meyering
1d54f66fd0 (remove_parents, main): Don't pass errno to error
when printing "removing directory" message.  Failure of rmdir is
handled elsewhere.
1999-12-30 09:07:13 +00:00
Jim Meyering
84226463b1 . 1999-12-27 16:31:56 +00:00
Jim Meyering
b32cecce88 . 1999-12-27 16:30:45 +00:00
Jim Meyering
99c51ad97e minor var. renamings 1999-12-27 16:30:20 +00:00
Jim Meyering
4c746d7a4c tweak --help 1999-12-27 15:57:26 +00:00
Jim Meyering
dc33452012 *** empty log message *** 1999-12-27 14:17:39 +00:00
Jim Meyering
f71e656070 *** empty log message *** 1999-12-26 10:19:40 +00:00
Jim Meyering
34c6851c4a *** empty log message *** 1999-12-26 10:16:18 +00:00
Jim Meyering
b1dee02eb1 *** empty log message *** 1999-12-26 10:03:46 +00:00
Jim Meyering
0335111c76 (jm_FUNC_NANOSLEEP): New file/macro. 1999-12-26 10:02:31 +00:00
Jim Meyering
2dc33d421e *** empty log message *** 1999-12-26 09:40:16 +00:00
Jim Meyering
0ac76a646b *** empty log message *** 1999-12-25 22:15:23 +00:00
Jim Meyering
64003d937b Use < rather than >.
(main): Normalize ts_stop.
1999-12-25 20:00:21 +00:00
Jim Meyering
936a26728a . 1999-12-23 15:28:02 +00:00
Jim Meyering
5f22e8234b *** empty log message *** 1999-12-23 15:09:17 +00:00
Jim Meyering
0ecbb73025 (USE_CLOCK_GETTIME): Define.
[USE_CLOCK_GETTIME]: Include sys/time.h.
(timespec_subtract): New function.
(clock_get_realtime): New function.
(sighandler): Remove function.
(main): Reimplement again, using nanosleep and clock_gettime.
1999-12-23 14:34:38 +00:00
Jim Meyering
fc7ceba21b *** empty log message *** 1999-12-23 14:25:17 +00:00
Jim Meyering
c5494ca49a *** empty log message *** 1999-12-23 11:56:32 +00:00
Jim Meyering
c94e214238 Check for clock_gettime (moved from fileutils/configure.in)
Check for gettimeofday.
1999-12-23 11:55:58 +00:00
Jim Meyering
5db04594ae *** empty log message *** 1999-12-23 11:54:36 +00:00
Jim Meyering
eb19369c84 *** empty log message *** 1999-12-23 09:56:01 +00:00
Jim Meyering
1c49904e91 *** empty log message *** 1999-12-23 09:51:50 +00:00
Jim Meyering
d134d00bb4 . 1999-12-23 09:50:31 +00:00
Jim Meyering
9cd6962a4a . 1999-12-23 09:49:59 +00:00
Jim Meyering
21039f0b39 *** empty log message *** 1999-12-23 09:34:57 +00:00
Jim Meyering
ff9eed5ff5 (usage): Correct typos.
List new --target-directory=... usage.
Reported by Gran Uddeborg
1999-12-23 09:34:48 +00:00
Jim Meyering
176efa5092 (usage): List new --target-directory=... usage. 1999-12-23 09:34:25 +00:00
Jim Meyering
1206a834dd rewrite expression (equivalently) at request of Paul Eggert 1999-12-22 20:49:19 +00:00
Jim Meyering
bda1bae801 *** empty log message *** 1999-12-22 16:51:48 +00:00
Jim Meyering
67e3d46292 *** empty log message *** 1999-12-22 16:32:24 +00:00
Jim Meyering
3551f63a62 (ceil_percent): Remove.
(show_dev): Avoid overflow problems when calculating percent.
Do not display negative percents.
1999-12-22 16:32:07 +00:00
Jim Meyering
38d48aa7e9 *** empty log message *** 1999-12-22 14:30:45 +00:00
Jim Meyering
94aebe4774 Use $file, not $tmp/file. Exit 77 if run as root. 1999-12-22 14:30:23 +00:00
Jim Meyering
759da836f6 *** empty log message *** 1999-12-22 11:18:06 +00:00
Jim Meyering
222389a6d0 *** empty log message *** 1999-12-22 11:15:26 +00:00
Jim Meyering
621a5a5d61 (regress-1): New test for the above. 1999-12-22 11:15:15 +00:00
Jim Meyering
1796cbe0c6 *** empty log message *** 1999-12-22 11:14:30 +00:00
Jim Meyering
aa07786952 (get_date): Fix typo in time_t overflow test.
From Michael Stone.
1999-12-22 11:14:05 +00:00
Jim Meyering
771ec09cd4 . 1999-12-20 10:42:32 +00:00
Jim Meyering
f9dd65cfc8 Remove kludge, now that I'm using the fixed autoconf-2.14a-1999-12-20. 1999-12-20 10:37:27 +00:00
Jim Meyering
372ce8d3ce *** empty log message *** 1999-12-20 10:11:28 +00:00
Jim Meyering
7769c416ef tweak comment 1999-12-19 15:51:32 +00:00
Jim Meyering
c077ecf83c tweak comment 1999-12-19 15:21:19 +00:00
Jim Meyering
50075bf532 *** empty log message *** 1999-12-19 10:49:15 +00:00
Jim Meyering
b04f00f3d4 (lstat.c): Adapt rule to handle new parts of xstat.in.
(lstat.c): Likewise.
1999-12-19 10:46:19 +00:00
Jim Meyering
036b3bdae7 (slash_aware_lstat): New function.
(rpl_@xstat@): Use it.
1999-12-19 10:45:50 +00:00
Jim Meyering
f802f28675 *** empty log message *** 1999-12-19 10:43:18 +00:00
Jim Meyering
4a1f449cbe *** empty log message *** 1999-12-19 10:42:51 +00:00
Jim Meyering
0d9e008da2 . 1999-12-19 10:25:06 +00:00
Jim Meyering
7902c47089 *** empty log message *** 1999-12-19 10:23:58 +00:00
Jim Meyering
566fb840b3 *** empty log message *** 1999-12-19 10:23:47 +00:00
Jim Meyering
3d58863d57 [! LSTAT_FOLLOWS_SLASHED_SYMLINK]: Use lstat wrapper.
[Notice the new test in m4/lstat-slash.m4. ]
(main): Back out change from 1999-02-19 that made ls remove
trailing slashes from command line arguments to accommodate early
versions of Linux.  Now, `ls symlink-to-dir/' acts like
`ls symlink-to-dir/.' thus following the symbolic link, as POSIX says
it should.  Suggestion from Bruno Haible and Andreas Schwab.
1999-12-19 10:23:26 +00:00
Jim Meyering
a595998975 . 1999-12-19 10:22:47 +00:00
Jim Meyering
c8707dcc2f . 1999-12-19 10:21:51 +00:00
Jim Meyering
4d8a95eff3 (TESTS): Add symlink-slash. 1999-12-19 10:21:34 +00:00
Jim Meyering
fa468393ae remove unused test= stmt 1999-12-19 09:41:08 +00:00
Jim Meyering
dd1a7723a6 *** empty log message *** 1999-12-19 09:37:22 +00:00
Jim Meyering
0c578407e0 bump serial number 1999-12-19 09:37:06 +00:00
Jim Meyering
bce84b024a Use the new macro: jm_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK. 1999-12-19 09:36:55 +00:00
Jim Meyering
a260bc04c8 *** empty log message *** 1999-12-19 09:34:29 +00:00
Jim Meyering
68a35b96ce *** empty log message *** 1999-12-19 09:33:18 +00:00
Jim Meyering
a9afc5a7d0 *** empty log message *** 1999-12-18 23:00:58 +00:00
Jim Meyering
96c183f34f *** empty log message *** 1999-12-18 22:41:36 +00:00
Jim Meyering
b9aa56bec4 *** empty log message *** 1999-12-18 16:04:47 +00:00
Jim Meyering
04aa739146 (wipename): When repeatedly renaming a file, making the name shorter
and shorter, skip to the next shorter length length if a rename fails (e.g. due to
permission denied).  Otherwise, this loop would iterate for so long that shred would
appear to be stuck in an infinite loop for any but the shortest file names.
1999-12-18 16:00:49 +00:00
Jim Meyering
ac31ad442b *** empty log message *** 1999-12-18 11:48:43 +00:00
Jim Meyering
a47deedda7 (print_entry): Correct do_lookup test so that who
prints whatever host information it has, even without --lookup.
1999-12-18 11:48:37 +00:00
Jim Meyering
a9c3d9197f *** empty log message *** 1999-12-15 10:15:36 +00:00
Jim Meyering
4d90b0efc9 (decode_switches): If -c or -u is specified and not -l (or any other
option that implies -l), and no sort-type was specified,
then sort by the ctime (-c) or atime (-u).  Part of this change reverts
the 1998-01-10 delta.
(usage): Update to reflect this change.
Reported by Paul Slootman via Michael Stone.
1999-12-15 08:38:54 +00:00
Jim Meyering
c8ad493e6b . 1999-12-14 09:00:08 +00:00
Jim Meyering
99aa95f945 *** empty log message *** 1999-12-13 22:37:15 +00:00
Jim Meyering
927b1d42fb *** empty log message *** 1999-12-13 15:08:21 +00:00
Jim Meyering
b5123778b7 *** empty log message *** 1999-12-13 15:04:27 +00:00
Jim Meyering
5c2322aacc *** empty log message *** 1999-12-13 15:03:51 +00:00
Jim Meyering
0c7c8c2992 *** empty log message *** 1999-12-13 07:33:13 +00:00
Jim Meyering
c8d452098b (make_path): Consistently use error to output
the verbose, `created directory ...' messages.
Reported by Bernhard Rosenkraenzer.
1999-12-13 07:30:57 +00:00
Jim Meyering
3182653495 *** empty log message *** 1999-12-13 07:29:13 +00:00
Jim Meyering
7efcffd2e6 *** empty log message *** 1999-12-13 06:45:13 +00:00
Jim Meyering
63324e5e7e Move 120+ lines of stat.h-related macros from system.h (not shared)
to sys2.h, which is shared between fileutils, sh-utils, textutils.
* src/system.h: Move them from here...
* src/sys2.h: ... to here.
1999-12-12 21:49:25 +00:00
Jim Meyering
488028199d (S_IRUSR, S_IRGRP, S_IWGRP, S_IROTH, S_IWOTH): Define
if not defined.  This was necessary on a NeXT Turbostation running
Mach 3.3.  Reported by Nelson H. F. Beebe.
1999-12-12 21:45:34 +00:00
Jim Meyering
c71815ac7b *** empty log message *** 1999-12-12 20:26:48 +00:00
Jim Meyering
6ff905699a . 1999-12-10 16:30:28 +00:00
Jim Meyering
d3d701080b . 1999-12-10 16:29:54 +00:00
Jim Meyering
c6025b9d1e . 1999-12-10 15:22:55 +00:00
Jim Meyering
b026aa85d0 (_jm_STRFTIME_PREREQS): Use 3-arg form of AC_DEFINE for HAVE_TM_GMTOFF. 1999-12-10 14:35:38 +00:00
Jim Meyering
4c0b11a8e7 *** empty log message *** 1999-12-09 16:53:41 +00:00
Jim Meyering
5ac2b8e39b . 1999-12-09 16:42:00 +00:00
Jim Meyering
5214179c29 . 1999-12-09 16:38:32 +00:00
Jim Meyering
e8ff25dd70 *** empty log message *** 1999-12-09 15:55:11 +00:00
Jim Meyering
fc8e7363d2 Require that File::Compare be available, too.
Too many systems seem to lack it.
1999-12-09 15:54:59 +00:00
Jim Meyering
022194de49 Add checks for most of the cpp macros tested in GNU's strftime.c.
Prompted by a patch from Paul Eggert.
1999-12-09 15:54:20 +00:00
Jim Meyering
eb06f705a1 Use 1>&2 rather than `1<&-'.
Suggestion from Volker Borchert.
1999-12-09 15:52:49 +00:00
Jim Meyering
aeabe74421 (IGNORE_FAIL_ON_NON_EMPTY_OPTION): Likewise. 1999-12-09 15:52:09 +00:00
Jim Meyering
46b6c26e4f (BLOCK_SIZE_OPTION, EXCLUDE_OPTION, MAX_DEPTH_OPTION):
Define these and use them instead of `CHAR_MAX + n'.
1999-12-09 15:46:39 +00:00
Jim Meyering
919f2ce3da (BLOCK_SIZE_OPTION, SYNC_OPTION, NO_SYNC_OPTION): Define
these and use them instead of `CHAR_MAX + n'.
1999-12-09 15:43:41 +00:00
Jim Meyering
6cbabe63d4 (anonymous enum): Define TIME_OPTION, and ...
(longopts): ...use it here instead of `CHAR_MAX + 1'.
(main): Likewise.
1999-12-09 15:39:38 +00:00
Jim Meyering
1aa50fd72e (enum): Remove useless CHAR_MAX + 2 1999-12-09 15:35:41 +00:00
Jim Meyering
6845fc7c96 Test more of the framework (touch's -a and -m
options) before running the actual ls test.
1999-12-08 17:05:59 +00:00
Jim Meyering
84339c827f s/test_failure/framework_failure/g 1999-12-08 16:50:22 +00:00
Jim Meyering
be3748ddad (TESTS): Add fflush. 1999-12-05 23:31:34 +00:00
Jim Meyering
392a965229 Remove ftp.enst.fr. 1999-12-05 22:59:30 +00:00
Jim Meyering
5cb18377bc *** empty log message *** 1999-12-05 22:36:11 +00:00
Jim Meyering
93c2c18a80 (main): Flush stdout before switching to unbuffered mode
and calling tail_forever.  Required only on Solaris2.7 -- on other
systems, using setvbuf to switch to unbufferd mode does the flush.
1999-12-05 22:36:02 +00:00
Jim Meyering
dd002c22fd *** empty log message *** 1999-12-05 16:45:27 +00:00
Jim Meyering
f447e97462 . 1999-12-05 16:39:39 +00:00
Jim Meyering
3abc240e82 *** empty log message *** 1999-12-05 15:14:18 +00:00
Jim Meyering
ff8f4dde22 *** empty log message *** 1999-12-05 15:13:40 +00:00
Jim Meyering
f880990daf Revert the previous change.
(copy_internal): In move mode, if the rename attempt
fails, then unlink any existing destination file.  This makes a
cross-device `mv' more consistent with the intra-device behavior.
This change is required by POSIX to make a cross-device move act with
semantics similar to those of the rename syscall.  For example now
`mv' can move a file onto a symlink to itself when that symlink
is on a separate partition.  With fileutils-4.0j, it would fail with
a diagnostic saying they were the same file.
Reported by Bruno Haible.
1999-12-05 15:13:21 +00:00
Jim Meyering
7306126ef0 *** empty log message *** 1999-12-04 17:46:39 +00:00
Jim Meyering
305e2306be . 1999-12-04 17:46:06 +00:00
Jim Meyering
2b10e67d59 (TESTS): Add to-symlink. 1999-12-04 17:45:45 +00:00
Jim Meyering
dc74b3a1e7 Make sure that the copying code used in an inter-partition
move unlinks a destination symlink before opening it.
1999-12-04 17:44:59 +00:00
Jim Meyering
2f21a269fe *** empty log message *** 1999-12-04 17:34:39 +00:00
Jim Meyering
69408d229e *** empty log message *** 1999-12-04 17:34:05 +00:00
Jim Meyering
f05badd230 (trap): Be careful to close $actual before
removing the containing directory.  Otherwise, on some systems rmdir
fails to remove the containing directory.
1999-12-04 17:33:49 +00:00
Jim Meyering
6763fa97d2 *** empty log message *** 1999-12-04 17:31:29 +00:00
Jim Meyering
b1b10e1e40 List --full-time dates upon failure. 1999-12-04 17:31:23 +00:00
Jim Meyering
5810f4bee5 . 1999-12-04 17:30:24 +00:00
Jim Meyering
91b5e686d5 Adapt to reflect this change in behavior.
Make sure the VERSION_CONTROL envvar is not set.
Run diff if comparison fails.
1999-12-04 17:30:16 +00:00
Jim Meyering
8c096b86ef Use mv, ls, rm, not $MV, $LS, $RM. 1999-12-04 17:24:19 +00:00
Jim Meyering
698fd02798 (copy_internal): Be consistent with intra-device behavior
and *do* allow `mv' to move a file onto a symlink to itself when that
symlink is on a separate partition.  With fileutils-4.0j, it would
fail with a diagnostic saying they were the same file.
Reported by Bruno Haible.
1999-12-04 17:21:47 +00:00
Jim Meyering
28bac510d9 *** empty log message *** 1999-12-04 17:21:06 +00:00
Jim Meyering
2413369d22 *** empty log message *** 1999-12-04 17:05:27 +00:00
Jim Meyering
091109470c Give the right diagnostic when failing to create a file in an
unwritable directory.

(touch): Record errno upon failed errno and use that
saved value if a subsequent fstat, stat or utime call fails.
Reported by Wichert Akkerman via Michael Stone.
1999-12-04 17:03:43 +00:00
Jim Meyering
9481a7bd36 *** empty log message *** 1999-12-04 16:56:07 +00:00
Jim Meyering
2be3dc067a (check_symlink_color): New variable.
(main): Set it if we need to check for dangling symlinks when
displaying colors.
(gobble_file): Check check_symlink_color instead of print_with_color.
1999-12-04 16:55:27 +00:00
Jim Meyering
c4542a7e8c (usage): Shorten help for --show-control-chars. 1999-11-30 21:09:35 +00:00
Jim Meyering
6c9e0d702a *** empty log message *** 1999-11-30 16:09:58 +00:00
Jim Meyering
062906c83a Don't include math.h or float.h.
Don't use DBL_MAX.
Use TIME_T_MAX instead.
1999-11-28 19:59:18 +00:00
Jim Meyering
2c3fa56cef *** empty log message *** 1999-11-28 19:57:54 +00:00
Jim Meyering
346edb7361 *** empty log message *** 1999-11-28 19:56:38 +00:00
Jim Meyering
b9c91d0570 don't include assert.h 1999-11-28 14:04:12 +00:00
Jim Meyering
e20a9b89d2 Round more carefully so we never call nanosleep with more than 999,999,999
nanoseconds.
Comment out assertion because it uses on EINTR.
1999-11-28 14:03:43 +00:00
Jim Meyering
0baa523154 Rewrite to use nanosleep (hence, timer stops when sleep is suspended)
and to remove gettimeofday/signal cruft.
Improve overflow checking.
1999-11-28 13:35:00 +00:00
Jim Meyering
d5f7b2a2db *** empty log message *** 1999-11-28 08:08:51 +00:00
Jim Meyering
4c05896b20 better error checking
add FIXME comments for non-portable constructs
1999-11-28 08:00:58 +00:00
Jim Meyering
ec974f5c39 remove another printf stmt 1999-11-27 20:03:05 +00:00
Jim Meyering
15d2e7a86b remove printf stmts 1999-11-27 20:02:38 +00:00
Jim Meyering
069610a0f0 fix typos 1999-11-27 20:01:22 +00:00
Jim Meyering
5617251659 Rewrite to allow fractional seconds and to handle SIGCONT.
(main): Rewrite.
(sighandler): New function.
(apply_suffix): New function.
(timeval_subtract): New function.
1999-11-27 20:00:54 +00:00
Jim Meyering
398516f242 (usage): Add elipses to show that sleep allows more than one argument. 1999-11-27 17:10:15 +00:00
Jim Meyering
8e1452ffea remove brackets around required sleep argument 1999-11-27 17:04:29 +00:00
Jim Meyering
6b36a017db (argdecode): Move definition to precede use.
Remove prototype.
1999-11-27 15:02:27 +00:00
Jim Meyering
30d2b031ab *** empty log message *** 1999-11-27 10:15:46 +00:00
Jim Meyering
f72f631fa0 Don't set/use MV, etc. 1999-11-27 10:14:53 +00:00
Jim Meyering
d10b18f2b9 *** empty log message *** 1999-11-27 10:14:24 +00:00
Jim Meyering
511cd5b6ae Don't set/use MV, etc. 1999-11-27 10:14:04 +00:00
Jim Meyering
09282a24f6 Don't set/use RM and MV. 1999-11-27 10:11:25 +00:00
Jim Meyering
f36a801a9a Don't set/use LS MV MKDIR MKNOD RM TOUCH 1999-11-27 10:10:02 +00:00
Jim Meyering
1e219d6b71 Don't set/use DF or MKDIR. 1999-11-27 10:08:55 +00:00
Jim Meyering
2e0f5a2bac *** empty log message *** 1999-11-27 10:05:25 +00:00
Jim Meyering
9234f12d32 (TESTS): Add partition-perm. 1999-11-27 10:05:11 +00:00
Jim Meyering
bd2102efa4 *** empty log message *** 1999-11-27 09:01:22 +00:00
Jim Meyering
6550d040a5 *** empty log message *** 1999-11-27 09:01:05 +00:00
Jim Meyering
afdd1c5ca2 *** empty log message *** 1999-11-26 16:50:33 +00:00
Jim Meyering
7af339b126 (df_readable): Now returns char const *, not char *.
New arg NEGATIVE.
(ceil_percent): Now returns double, not int.
Be more careful about adding 1 to a wild value.
(show_dev): Don't filter out wild sizes from the underlying operating
system; instead, show them to the user as faithfully as possible.
1999-11-26 16:50:24 +00:00
Jim Meyering
0d6c850979 . 1999-11-26 07:31:42 +00:00
Jim Meyering
a6db3e776e *** empty log message *** 1999-11-23 12:57:38 +00:00
Jim Meyering
f5c9c07779 (Calendar date item): Correction regarding 0..68/
69-99 split for 1900 vs 2000.  From Peter Moulder.
1999-11-23 12:57:10 +00:00
Jim Meyering
05de2104b9 *** empty log message *** 1999-11-23 12:56:30 +00:00
Jim Meyering
22c0d963f1 . 1999-11-22 15:05:52 +00:00
Jim Meyering
6cfbe9468a . 1999-11-22 14:10:07 +00:00
Jim Meyering
630d0d3f8d (DISTCLEANFILES): Add lstat.c and stat.c. 1999-11-22 14:09:58 +00:00
Jim Meyering
d3af459dac *** empty log message *** 1999-11-22 13:21:48 +00:00
Jim Meyering
b9cbaa7073 . 1999-11-22 13:14:19 +00:00
Jim Meyering
6c95094270 *** empty log message *** 1999-11-22 11:35:12 +00:00
Jim Meyering
65c46d231a *** empty log message *** 1999-11-22 11:23:35 +00:00
Jim Meyering
c401c7f12c *** empty log message *** 1999-11-22 11:23:08 +00:00
Jim Meyering
5a7847d20f . 1999-11-22 09:16:27 +00:00
Jim Meyering
94129d72a5 *** empty log message *** 1999-11-22 09:15:42 +00:00
Jim Meyering
e0e3f4ba72 . 1999-11-22 09:13:32 +00:00
Jim Meyering
61511d8bcb *** empty log message *** 1999-11-22 09:13:15 +00:00
Jim Meyering
7eba3be340 (recheck): Handle a race condition (including <dev,inode>
reuse) that would lead to a failed assertion.
Reported by Ken Pizzini.
(tail_forever): Record errno before using it in call to `error'
which might change it.
(tail_file): Likewise.
1999-11-22 09:07:58 +00:00
Jim Meyering
971da27132 comment out echo stmts 1999-11-22 09:03:57 +00:00
Jim Meyering
eff0f7cd2e (TESTS): remove infloop-1 1999-11-22 09:03:12 +00:00
Jim Meyering
b609a36366 *** empty log message *** 1999-11-22 08:56:52 +00:00
Jim Meyering
e4dbcfc604 *** empty log message *** 1999-11-22 08:56:39 +00:00
Jim Meyering
8a34174fb2 *** empty log message *** 1999-11-22 08:55:00 +00:00
Jim Meyering
f22a30f1e5 *** empty log message *** 1999-11-22 08:54:09 +00:00
Jim Meyering
4917680b1a (TESTS): Add `assert'. 1999-11-22 08:40:50 +00:00
Jim Meyering
3bd2800a3c *** empty log message *** 1999-11-20 12:16:11 +00:00
Jim Meyering
783c48e864 (errno_rmdir_non_empty): New function to encapsulate errno comparison.
(remove_parents): Use it.
(main): Use it.
1999-11-20 12:15:46 +00:00
Jim Meyering
07632c3ed9 *** empty log message *** 1999-11-20 11:18:54 +00:00
Jim Meyering
808aa68e9c *** empty log message *** 1999-11-20 10:46:39 +00:00
Jim Meyering
8c4882550e Run `diff -u' if the test fails. 1999-11-20 10:46:06 +00:00
Jim Meyering
4a602cec80 *** empty log message *** 1999-11-20 10:39:29 +00:00
Jim Meyering
6fdf590d36 Use ls' and touch', not $LS and $TOUCH. 1999-11-20 10:39:19 +00:00
Jim Meyering
5cbce55a86 (TESTS_ENVIRONMENT): Specify PATH, etc. 1999-11-20 10:38:38 +00:00
Jim Meyering
9eda37263f *** empty log message *** 1999-11-20 09:51:31 +00:00
Jim Meyering
57bb960867 Declare lstat; needed on e.g. SunOS4.
Reported by Tom Tromey.
1999-11-20 09:50:58 +00:00
Jim Meyering
320be1758d *** empty log message *** 1999-11-19 17:02:38 +00:00
Jim Meyering
115758e03b *** empty log message *** 1999-11-19 17:02:31 +00:00
Jim Meyering
24e8e8409d (strstr): Include config.h.
Add a `;' between shloop label and `}'.
1999-11-19 17:02:01 +00:00
Jim Meyering
102caacbef *** empty log message *** 1999-11-19 11:49:53 +00:00
Jim Meyering
cfe7b86608 (AC_SYS_LARGEFILE_FLAGS): Work around a
problem with the QNX 4.25 shell, which doesn't propagate exit
status of failed commands inside shell assignments.
1999-11-19 11:49:44 +00:00
Jim Meyering
7ec33cd342 *** empty log message *** 1999-11-19 11:12:07 +00:00
Jim Meyering
2e05e2b7fa *** empty log message *** 1999-11-17 22:05:01 +00:00
Jim Meyering
cc9b514f5d *** empty log message *** 1999-11-17 14:04:44 +00:00
Jim Meyering
c49e7f4f22 Use new AC_CONFIG_LINKS in place of AC_LINK_FILES. 1999-11-17 14:04:32 +00:00
Jim Meyering
f98d307bbb *** empty log message *** 1999-11-17 08:22:49 +00:00
Jim Meyering
06c06bd6f7 (S_IRWXUGO): Define if necessary.
(main): Use chmod to set the permissions if bits other than those
of S_IRWXUGO were requested.  Reported by Sami Farin.
1999-11-17 08:18:38 +00:00
Jim Meyering
8c63b56030 *** empty log message *** 1999-11-17 08:18:22 +00:00
Jim Meyering
29e829a66a *** empty log message *** 1999-11-15 22:26:57 +00:00
Jim Meyering
2f50c6930d (touch): Simplify code a tad, using fd == -1 instead
of separate valid_fd variable.
1999-11-14 20:44:56 +00:00
Jim Meyering
a3fc960f32 . 1999-11-13 23:21:01 +00:00
Jim Meyering
91ac2fec34 # Also test the combination of --no-create and -a. 1999-11-13 23:20:14 +00:00
Jim Meyering
55fa0c6a12 . 1999-11-13 23:19:08 +00:00
Jim Meyering
6bffd08ba5 *** empty log message *** 1999-11-13 14:55:01 +00:00
Jim Meyering
0e09235c9f (touch): Don't fail just because we couldn't open
an existing file.  This makes it so that touching a read-only
file now works.  Also clean up and simplify.
Based on a patch from Chip Salzenberg.
1999-11-13 14:47:21 +00:00
Jim Meyering
6b85baa502 *** empty log message *** 1999-11-13 14:46:21 +00:00
Jim Meyering
d46a35bbff *** empty log message *** 1999-11-13 13:28:39 +00:00
Jim Meyering
97523193b7 (TESTS): Add no-rights. 1999-11-13 13:27:25 +00:00
Jim Meyering
4f06def5c0 new test for touch -c fix 1999-11-13 13:24:54 +00:00
Jim Meyering
0ce2109a88 import latest 1999-11-13 10:13:16 +00:00
Jim Meyering
557af8f47e *** empty log message *** 1999-11-12 10:56:23 +00:00
Jim Meyering
987955f7c5 *** empty log message *** 1999-11-12 10:54:21 +00:00
Jim Meyering
c5187c959c (print_nth_dir): Write one fewer byte so we don't print a trailing slash.
(rm): Fix bugs in (and test, this time) the very-rarely-used code
to warn about directory cycles.
1999-11-12 10:50:01 +00:00
Jim Meyering
7872d7c932 Adjust comments to reflect that lots of code has moved to remove.c. 1999-11-12 10:42:13 +00:00
Jim Meyering
f1c24743b8 *** empty log message *** 1999-11-12 08:10:02 +00:00
Jim Meyering
7cff7275f8 *** empty log message *** 1999-11-12 08:05:20 +00:00
Jim Meyering
286e9d9766 *** empty log message *** 1999-11-11 15:08:34 +00:00
Jim Meyering
acf8442f02 *** empty log message *** 1999-11-11 13:46:40 +00:00
Jim Meyering
b6a764d8c6 Add a test for this fix. 1999-11-11 13:46:19 +00:00
Jim Meyering
07d20c7e44 . 1999-11-11 13:20:24 +00:00
Jim Meyering
1b6c640f46 (copy_internal): Treat src and dest as the `same' in
`mv src symlink-to-src' when src and dest are on different partitions.
Otherwise, that `mv' command would silently remove `src'.
Reported by Michael Stone.
1999-11-11 13:19:36 +00:00
Jim Meyering
101ae141c6 *** empty log message *** 1999-11-11 12:12:23 +00:00
Jim Meyering
375c13c679 re-comment debugging diff stmt 1999-11-11 11:41:18 +00:00
Jim Meyering
cbdf71ab00 (make_path): Fix long-latent bug (note others
just like it were fixed in 1998-01-02).
A user (FIXME, who?) reported that using `install -d -g foo 1/2`
only sets the group on the intermediate directory, not the final
component.  From Michael Stone.
1999-11-11 11:00:50 +00:00
Jim Meyering
05e6e5583e remove unnecessary trailing semicolons 1999-11-11 07:50:59 +00:00
Jim Meyering
c4d7026cf9 import 1.019 1999-11-10 06:14:12 +00:00
Jim Meyering
baee6fd135 *** empty log message *** 1999-11-09 20:41:33 +00:00
Jim Meyering
59339ab7e5 (NEW): Undefine to avoid warning about redefinition.
(NEW): Redefine in terms of XMALLOC.
1999-11-09 20:41:18 +00:00
Jim Meyering
f5225442f8 (XMALLOC): Correct misnamed macro parameter name: s/N_bytes/N_items/.
(XCALLOC): Likewise.
(XREALLOC): Likewise.
1999-11-09 20:34:17 +00:00
Jim Meyering
1b5e676e38 add `' around link(2) 1999-11-08 09:25:08 +00:00
Jim Meyering
cf6ad5dcca Fix harmless-for-now typo: s/,/dnl/.
From Akim.
1999-11-08 09:23:43 +00:00
Jim Meyering
bb928b7ac4 effectively require AC_CHECK_HEADERS(unistd.h) 1999-11-08 09:18:27 +00:00
Jim Meyering
8851d83616 *** empty log message *** 1999-11-07 21:06:17 +00:00
Jim Meyering
41c5f76c2f (default_block_size): New function.
(humblock): Use it if no block size is specified.
(human_block_size): If the specified block size is zero, report an
error if report_errors is nonzero; otherwise use the default.
1999-11-07 21:06:02 +00:00
Jim Meyering
0b23ffc1bf *** empty log message *** 1999-11-07 20:34:11 +00:00
Jim Meyering
e2e5b7324e Add several more TERM types.
Add .bz2 suffix.
Add .png for real this time.
Change the image types colors to be visible in a black-on-white xterm.
1999-11-07 20:34:03 +00:00
Jim Meyering
f706863aa6 *** empty log message *** 1999-11-07 20:25:21 +00:00
Jim Meyering
c1e927ff6d *** empty log message *** 1999-11-07 20:23:48 +00:00
Jim Meyering
717d76cf4b (xstat): New global.
(main): Define it.
(change_file_group): Use it.  Before this change, when running chgrp
on a symlink without --dereference (-h) and when the requested group
is the same as the group for the *symlink*, chgrp would do nothing.
Now it changes the group of the file referenced through the symlink.
Reported by Martin Mitchell.
1999-11-07 20:18:11 +00:00
Jim Meyering
8bc2ecda80 *** empty log message *** 1999-11-07 20:17:18 +00:00
Jim Meyering
5907ad7277 Define and use REFERENCE_FILE_OPTION and
DEREFERENCE_OPTION in place of bare `CHAR_MAX + N'.
1999-11-07 20:02:19 +00:00
Jim Meyering
1645ace5e7 Use REFERENCE_FILE_OPTION instead of bare `CHAR_MAX + 1'. 1999-11-07 20:00:54 +00:00
Jim Meyering
0af22e4bb2 *** empty log message *** 1999-11-07 15:41:37 +00:00
Jim Meyering
7b165ea504 Add `, 1, [FIXME]' to each use of AC_DEFINE. 1999-11-07 15:40:29 +00:00
Jim Meyering
a21ac71b0a . 1999-11-07 11:52:07 +00:00
Jim Meyering
66964546be *** empty log message *** 1999-11-07 11:46:24 +00:00
Jim Meyering
51ca1e585c Fix a typo: s/||/&&/. 1999-11-07 11:46:20 +00:00
Jim Meyering
bf43e9b11e Add hard-link-to-symlink test. 1999-11-07 11:44:22 +00:00
Jim Meyering
b2e1221012 variable name change
move framework_failure to bottom
1999-11-07 11:13:04 +00:00
Jim Meyering
224fff6a3a (do_link): Warn that making a hard link to a symbolic link is not portable. 1999-11-07 11:07:53 +00:00
Jim Meyering
7876eafaa1 Remove entire #if LINK_FOLLOWS_SYMLINKS block. 1999-11-07 11:04:00 +00:00
Jim Meyering
8040d4c680 Add comment prior to removing #if LINK_FOLLOWS_SYMLINKS block 1999-11-07 11:03:20 +00:00
Jim Meyering
6e8ec1114f Allow hard links to symlinks on systems that support it.
(STAT_LIKE_LINK): Define.
(do_link): Use STAT_LIKE_LINK, rather than bare `stat', and perform
the extra lstat only on systems where LINK_FOLLOWS_SYMLINKS.
1999-11-07 10:50:11 +00:00
Jim Meyering
6cdbe93585 *** empty log message *** 1999-11-07 10:49:07 +00:00
Jim Meyering
36daa470f4 Use --b=simple, not the now-deprecated `-V simple'. 1999-11-07 10:47:52 +00:00
Jim Meyering
5f9feb9aae define LINK_FOLLOWS_SYMLINKS 1999-11-07 10:35:53 +00:00
Jim Meyering
6702048c64 . 1999-11-07 10:33:47 +00:00
Jim Meyering
9f5b324ec5 . 1999-11-07 10:33:22 +00:00
Jim Meyering
c13a28cc35 *** empty log message *** 1999-11-07 10:33:11 +00:00
Jim Meyering
de9a877716 add missing \n\ 1999-11-07 09:23:06 +00:00
Jim Meyering
1df7091e3b *** empty log message *** 1999-11-07 09:22:18 +00:00
Jim Meyering
30fc70c376 *** empty log message *** 1999-11-07 09:20:04 +00:00
Jim Meyering
65851e8c38 *** empty log message *** 1999-11-07 08:46:34 +00:00
Jim Meyering
3db1aef04e (remove_parents): Use the correct test
(same as in main) in handling --ignore-fail-on-non-empty.
From Michael Stone.
1999-11-07 08:38:50 +00:00
Jim Meyering
691513e7f3 . 1999-11-07 08:15:37 +00:00
Jim Meyering
a8871677d1 whoops, add quotes in last change 1999-11-06 21:58:42 +00:00
Jim Meyering
44dbec6a60 remove backticks from comments 1999-11-06 21:58:19 +00:00
Jim Meyering
0d3ddaa85c *** empty log message *** 1999-11-06 21:31:09 +00:00
Jim Meyering
637aa0759b (jm_MACROS): Use jm_AC_FUNC_LINK_FOLLOWS_SYMLINK here. 1999-11-06 21:30:47 +00:00
Jim Meyering
e2c0a043f7 (jm_AC_FUNC_LINK_FOLLOWS_SYMLINK): New file/macro. 1999-11-06 21:30:16 +00:00
Jim Meyering
81718d1a58 (do_link): Fix typo (in which the function name `symlink'
was tested instead of the variable `symbolic_link') that could make
ln perform an unneeded `stat' call.
1999-11-06 16:21:18 +00:00
Jim Meyering
9dc239aca7 *** empty log message *** 1999-11-06 09:55:32 +00:00
Jim Meyering
ea525f532f (long_options): Correct typo (s/'F'/'p'/) so that `-p'
works as the short form of --file-type, per the documentation.
From Michael Stone.
1999-11-06 09:55:13 +00:00
Jim Meyering
476de46ee5 *** empty log message *** 1999-11-06 09:54:46 +00:00
Jim Meyering
571d42e74b . 1999-11-06 09:04:58 +00:00
Jim Meyering
68e5120531 . 1999-11-06 09:04:22 +00:00
Jim Meyering
6b32b53027 Use HAVE_STRUCT_STAT_ST_BLOCKS, not deprecated HAVE_ST_BLOCKS. 1999-11-05 09:55:24 +00:00
Jim Meyering
8a25562446 Use `AC_CHECK_MEMBERS((struct stat.st_blksize))' instead of deprecated
AC_STRUCT_ST_BLKSIZE.
1999-11-05 09:48:53 +00:00
Jim Meyering
764e739e01 remove stray `x's 1999-11-05 09:34:41 +00:00
Jim Meyering
a5bfc49347 *** empty log message *** 1999-11-05 09:27:20 +00:00
Jim Meyering
386d762885 (jm_CHECK_ALL_TYPES): Move some tests from configure.in
of textutils, fileutils, and sh-utils into this one (shared between
those packages) file.
1999-11-05 09:27:14 +00:00
Jim Meyering
9df0229009 *** empty log message *** 1999-11-05 07:59:48 +00:00
Jim Meyering
2d81adfab6 (SORTALLOC): New macro.
(sortalloc, mergealloc, LINEALLOC): Use it.
(sortalloc, mergealloc, linelength): Now const.
(sortalloc): Increase from 0.5 to 8 MB.
(mergealloc): Increase from 16 to 256 kB.
(LINEALLOC): Increase from 0.25 to 4 MB.
1999-11-05 07:59:40 +00:00
Jim Meyering
ac0c37fd78 . 1999-11-04 23:14:45 +00:00
Jim Meyering
65b35a9e36 Do not consider newline to be part of a line when comparing lines
in `sort' and `comm'.  POSIX.2 requires that we consider newline,
but this is a bug in the spec and the bug will likely be fixed.
1999-11-04 23:13:40 +00:00
Jim Meyering
67ec190a99 (memcoll): The two arguments cannot be
adjacent any more, so remove the alloca/copy workaround for
that case.
1999-11-04 23:13:12 +00:00
Jim Meyering
4b47f20e6a (readline): Do not leave room for an extra
byte after the newline; it's no longer needed.
1999-11-04 23:12:42 +00:00
Jim Meyering
53d2086432 Do not consider newline to be part of a line when comparing lines
in `sort' and `comm'.  POSIX.2 requires that we consider newline,
but this is a bug in the spec and the bug will likely be fixed.

Update tests `use-nl' and `11d' to reflect this change.
1999-11-04 23:12:13 +00:00
Jim Meyering
cec217ed93 (begfield, limfield, findlines, keycompare, compare):
Do not consider newline to be part of a line when comparing lines
in `sort' and `comm'.  POSIX.2 requires that we consider newline,
but this is a bug in the spec and the bug will likely be fixed.
1999-11-04 23:11:34 +00:00
Jim Meyering
0b7aeab254 (compare_files):
Do not consider newline to be part of a line when comparing lines
in `sort' and `comm'.  POSIX.2 requires that we consider newline,
but this is a bug in the spec and the bug will likely be fixed.
1999-11-04 23:11:03 +00:00
Jim Meyering
b4e46d54f9 *** empty log message *** 1999-11-03 17:24:39 +00:00
Jim Meyering
62dac2622f Remove file. No longer needed since the new version of
AC_CHECK_TYPE checks includes unistd.h.
1999-11-03 17:24:33 +00:00
Jim Meyering
76f864a015 Use straight `AC_CHECK_TYPE(ssize_t, int)'.
Suggestion from Akim Demaille.
1999-11-03 17:24:03 +00:00
Jim Meyering
dcc7e653c9 *** empty log message *** 1999-11-03 13:07:04 +00:00
Jim Meyering
1c04247f53 Fix so that `tail -fn 2 file' works again.
(anonymous enum) [LONG_FOLLOW_OPTION]: Define.
(long_options): Use LONG_FOLLOW_OPTION here, instead of 'f'.
(main): Remove the `::' after the `f' in getopt_long string.
Add `case LONG_FOLLOW_OPTION' after `case 'f':'.
Based on a patch from Tim Waugh.
1999-11-03 13:06:50 +00:00
Jim Meyering
fcbef3a982 *** empty log message *** 1999-11-03 13:05:43 +00:00
Jim Meyering
23d439f22b (anonymous enum) [RETRY_OPTION]: Define.
[MAX_UNCHANGED_STATS_OPTION]: Likewise.
[MAX_CONSECUTIVE_SIZE_CHANGES_OPTION]: Likewise.
[PID_OPTION]: Likewise.
(long_options): Use *_OPTION instead of CHAR_MAX + N.
(main): Likewise.
1999-11-03 12:26:24 +00:00
Jim Meyering
ff220fd012 add comma 1999-11-03 12:20:11 +00:00
Jim Meyering
670f9b2f8a (recheck): Don't refuse to tail a non-regular, non-pipe.
(tail_file): Likewise.
1999-11-03 12:13:39 +00:00
Jim Meyering
789f74708c include summary in [NAME] section 1999-11-02 14:07:36 +00:00
Jim Meyering
da60713a1d include summary in [NAME] section 1999-11-02 13:58:56 +00:00
Jim Meyering
57808ffdb5 include summary in [NAME] section 1999-11-02 13:51:42 +00:00
Jim Meyering
8c3db8987e remove copyright 1999-11-02 13:49:10 +00:00
Jim Meyering
373ced3924 version 1.018 1999-11-02 13:08:05 +00:00
Jim Meyering
f726258818 *** empty log message *** 1999-11-02 07:20:28 +00:00
Jim Meyering
84e957d300 (usage): Warn about mixing use of `-r' with FIFOs and
other special files like /dev/zero.
1999-11-01 16:00:40 +00:00
Jim Meyering
80871da192 (MAINTAINERCLEANFILES): Set to $(BUILT_SOURCES). 1999-11-01 09:53:41 +00:00
Jim Meyering
dd1e7763d3 *** empty log message *** 1999-11-01 09:53:13 +00:00
Jim Meyering
dab2c2f26f update a comment from alpha.gnu.org:/home/gd/gnu/lib/getdate.y 1999-10-31 15:49:05 +00:00
Jim Meyering
4aa83de94e . 1999-10-31 11:43:22 +00:00
Jim Meyering
67a257993d (my-distcheck): Remove $(DEPDIR) to work around automake bug. 1999-10-31 11:43:05 +00:00
Jim Meyering
d45f587081 . 1999-10-31 11:40:06 +00:00
Jim Meyering
8d3deedb8d . 1999-10-31 11:38:40 +00:00
Jim Meyering
85f411e680 *** empty log message *** 1999-10-31 10:42:31 +00:00
Jim Meyering
362c45be17 Convert --backup to take an optional argument.
Deprecate --version-control (-V) in comments.
(usage): Remove mention of --version-control.
(main): Make -V warn then fall through into --backup case.
[--backup case]: Handle optional arg.
1999-10-31 10:42:12 +00:00
Jim Meyering
60b24ab5af tweak usage 1999-10-31 10:36:54 +00:00
Jim Meyering
95c67325f7 . 1999-10-31 10:35:47 +00:00
Jim Meyering
e16e6e2362 *** empty log message *** 1999-10-31 07:43:07 +00:00
Jim Meyering
7179f4a0af *** empty log message *** 1999-10-31 07:32:05 +00:00
Jim Meyering
7570ff1a15 *** empty log message *** 1999-10-30 16:27:10 +00:00
Jim Meyering
ca1b49d35f Remove file, since the fix made it into the experimental version of autoconf. 1999-10-30 16:27:04 +00:00
Jim Meyering
61ef65be66 indent more prettily 1999-10-30 16:20:29 +00:00
Jim Meyering
5398f98139 remove stray comma 1999-10-30 16:20:05 +00:00
Jim Meyering
143c0051a7 *** empty log message *** 1999-10-30 11:28:41 +00:00
Jim Meyering
c81b144d58 . 1999-10-30 11:24:34 +00:00
Jim Meyering
b9912b209f . 1999-10-30 11:24:14 +00:00
Jim Meyering
5f234e2759 *** empty log message *** 1999-10-30 08:11:41 +00:00
Jim Meyering
70dbbd4077 Require 2.14a. Remove backslash before backtick in m4-quoted string. 1999-10-30 08:11:32 +00:00
Jim Meyering
cd2e512366 *** empty log message *** 1999-10-30 08:10:40 +00:00
Jim Meyering
b8dc0dccca Require 2.14a. Remove backslash before backtick in m4-quoted string. 1999-10-30 08:09:10 +00:00
Jim Meyering
979fe5dc9a Use new AC_TYPE_SSIZE_T instead of my hacked AC_CHECK_TYPE.
Require 2.14a.  Remove backslash before backtick in m4-quoted string.
1999-10-30 08:08:57 +00:00
Jim Meyering
ec5d352d55 Remove file, since the fix made it into the experimental
version of autoconf.
1999-10-30 07:58:08 +00:00
Jim Meyering
d34f5765a8 New file, requires experimental version of autoconf. 1999-10-30 07:53:04 +00:00
Jim Meyering
3c4c9446a6 Remove file, now that latest version of AC_CHECK_TYPE
takes a third arg to specify additional #includes.
1999-10-30 07:52:40 +00:00
Jim Meyering
063d10ae6c (usage): Tweak --backup description 1999-10-30 07:04:01 +00:00
Jim Meyering
ac1e8485b3 . 1999-10-30 07:03:18 +00:00
Jim Meyering
f62bbb9cb9 *** empty log message *** 1999-10-30 06:32:42 +00:00
Jim Meyering
d437084b93 Convert --backup to take an optional argument.
Deprecate --version-control (-V) in comments.
(usage): Remove mention of --version-control.
(main): Make -V warn then fall through into --backup case.
[--backup case]: Handle optional arg.
1999-10-30 06:30:56 +00:00
Jim Meyering
9ddb95e93c (do_copy): Constify `dest', and cast-away the new
const in assignment to new_dest.
1999-10-24 21:28:37 +00:00
Jim Meyering
e3bd3c1c39 add missing program_name arg to match new usage %s 1999-10-24 21:26:51 +00:00
Jim Meyering
ff4e97cf78 . 1999-10-24 17:00:35 +00:00
Jim Meyering
6d1aa48746 label use of -V/--versin-control as a warning 1999-10-23 15:32:01 +00:00
Jim Meyering
02ba1920dd . 1999-10-23 13:31:09 +00:00
Jim Meyering
fb829c2cd1 import version 1.015 1999-10-23 13:30:28 +00:00
Jim Meyering
0a4ef2236d *** empty log message *** 1999-10-23 13:25:05 +00:00
Jim Meyering
40c66374f4 *** empty log message *** 1999-10-23 13:18:34 +00:00
Jim Meyering
0ec36fda44 *** empty log message *** 1999-10-23 13:18:10 +00:00
Jim Meyering
84142eaa26 (TESTS): Add dangling-symlink. 1999-10-23 13:16:50 +00:00
Jim Meyering
9d8529baea *** empty log message *** 1999-10-23 11:46:48 +00:00
Jim Meyering
a579a9f85b (full_write): Remove unused decl.
(open_maybe_create): Remove.
(touch): Don't record whether the file was created; this isn't
possible to do reliably and portably without race conditions.
If the file was created and if amtime_now is nonzero, this
change means we'll have to do another utime system call, but
that's no more harmful than the previous version of this code.
1999-10-23 11:46:03 +00:00
Jim Meyering
767a68f512 *** empty log message *** 1999-10-17 21:33:49 +00:00
Jim Meyering
f8c3b33277 Remove use of mv's now-deprecated
-V option.  Use --b=simple instead of -b -V simple.
1999-10-17 21:33:38 +00:00
Jim Meyering
77def80003 Convert --backup to take an optional argument.
Deprecate --version-control (-V) in comments.
(usage): Remove mention of --version-control.
(main): Make -V warn then fall through into --backup case.
[--backup case]: Handle optional arg.
1999-10-17 21:31:45 +00:00
Jim Meyering
96018007df *** empty log message *** 1999-10-17 21:31:04 +00:00
Jim Meyering
23d74f24e4 use x, y, not a, b. 1999-10-17 21:29:15 +00:00
Jim Meyering
23d5af772e adapt to work for mv, too 1999-10-17 21:24:26 +00:00
Jim Meyering
8bbc2e2937 change a message and add usage(1) to another. 1999-10-17 16:26:30 +00:00
Jim Meyering
5d694e4cc3 *** empty log message *** 1999-10-17 10:04:10 +00:00
Jim Meyering
f893b3807d Accept new option: --target-directory=DIR
(TARGET_DIRECTORY_OPTION): Define.
(SPARSE_OPTION): Define.
(usage): Describe it.
(do_copy): Change meanings/names of first two parameters: use `n_files'
in place of `argc - optind', and `file' instead of `argv + optind'.
Add parameter, target_directory.
(main): Pass new arg, target_directory.
1999-10-17 10:01:30 +00:00
Jim Meyering
a374a307c5 don't compute isdir() of -- or an option string 1999-10-17 07:39:20 +00:00
Jim Meyering
b221905959 remove last `,' in enum 1999-10-17 07:25:34 +00:00
Jim Meyering
ff2333c835 (TESTS): Add cp-mv-backup. 1999-10-16 14:52:40 +00:00
Jim Meyering
bd4945f89c *** empty log message *** 1999-10-16 14:51:45 +00:00
Jim Meyering
bda7fb978e Remove use of cp's now-deprecated --version-control option. 1999-10-16 14:50:26 +00:00
Jim Meyering
535a5f905f *** empty log message *** 1999-10-16 14:48:25 +00:00
Jim Meyering
34306581ac Convert --backup to take an optional argument.
Deprecate --version-control (-V) in comments.
(usage): Remove mention of --version-control.
(main): Make -V warn then fall through into --backup case.
[--backup case]: Handle optional arg.
1999-10-16 14:48:16 +00:00
Jim Meyering
d25861b4da Remove use of cp's now-deprecated -V option.
Use --b=simple instead of -b -V simple.
1999-10-16 14:44:17 +00:00
Jim Meyering
c9e90c55fa *** empty log message *** 1999-10-16 13:49:28 +00:00
Jim Meyering
07feb846a6 *** empty log message *** 1999-10-16 13:39:50 +00:00
Jim Meyering
0470b5dce9 *** empty log message *** 1999-10-16 13:13:39 +00:00
Jim Meyering
449c9c39cc *** empty log message *** 1999-10-11 14:04:32 +00:00
Jim Meyering
17c213ed3f update from GNU lib C 1999-10-11 12:39:14 +00:00
Jim Meyering
42da57def9 *** empty log message *** 1999-10-11 12:39:09 +00:00
Jim Meyering
eef13be7f9 *** empty log message *** 1999-10-11 12:38:55 +00:00
Jim Meyering
3bea9c2f51 *** empty log message *** 1999-10-09 13:22:57 +00:00
Jim Meyering
2de1a014ef Accept new option: --target-directory=DIR
(TARGET_DIRECTORY_OPTION): Define.
(usage): Describe it.
(main): Implement it.
Make code clearer:  use new variable `n_files' in place of
`argc - optind'.  Use `file' instead of `argv + optind'.
1999-10-09 13:22:08 +00:00
Jim Meyering
764768f318 *** empty log message *** 1999-10-07 12:46:15 +00:00
Jim Meyering
290848dd2b Don't require autoconf-2.14.1. 1999-10-04 07:51:44 +00:00
Jim Meyering
1ac0c21d89 *** empty log message *** 1999-10-04 07:51:26 +00:00
Jim Meyering
17754acc90 (__attribute__): Wrap with #ifndef __attribute__. 1999-10-04 06:04:19 +00:00
Jim Meyering
0226382b34 (__attribute__): Define to empty if GCC claims to
be before 2.8; this is needed for OPENStep 4.2 cc.  Also,
define to empty if strict ANSI.
1999-10-04 06:02:41 +00:00
Jim Meyering
1ca4f162fa (__attribute__): Define to empty if GCC claims to
be before 2.8; this is needed for OPENStep 4.2 cc.  Also,
define to empty if strict ANSI.
1999-10-04 05:59:37 +00:00
Jim Meyering
84928ec02d (TARGET_DIRECTORY_OPTION): Define.
(usage): Describe it.
(main): Implement it.
Remove unused variable, stdin_tty.
Make code clearer:  use new variable `n_files' in place of
`argc - optind'.  Use `file' instead of `argv + optind'.
1999-10-03 16:59:07 +00:00
Jim Meyering
46f2e4efeb another example for tr -- illustrating problems with `-' in ranges.. 1999-10-02 11:46:53 +00:00
Jim Meyering
6c4caf0dbf *** empty log message *** 1999-10-02 11:42:26 +00:00
Jim Meyering
1003235282 . 1999-10-02 11:12:34 +00:00
Jim Meyering
fb4889bcd9 . 1999-10-02 11:12:06 +00:00
Jim Meyering
155695ed60 *** empty log message *** 1999-09-29 14:44:36 +00:00
Jim Meyering
d5c47e9163 (AC_SYS_LARGEFILE_FLAGS): Work around GCC 2.95.1 bug with HP-UX 10.20. 1999-09-29 14:44:31 +00:00
Jim Meyering
ea0df9b67d Do s/#ifdef HAVE_/#if HAVE_/ -- solely for aesthetics.
Do the same for other config.h macros like CLOSEDIR_VOID and MAJOR_*.
1999-09-28 16:22:54 +00:00
Jim Meyering
98ba27811d Do s/#ifdef HAVE_/#if HAVE_/ -- solely for aesthetics. 1999-09-28 16:22:38 +00:00
Jim Meyering
a66e71a1d2 *** empty log message *** 1999-09-28 15:27:13 +00:00
Jim Meyering
4a03ccc044 (__attribute__): Protect against redefinition. 1999-09-28 15:26:45 +00:00
Jim Meyering
57d52e5170 *** empty log message *** 1999-09-28 14:48:53 +00:00
Jim Meyering
a7047bf647 (error_at_line): Use strerror portably here, too,
just as was done in error.
1999-09-28 14:48:43 +00:00
Jim Meyering
6f3516dc97 . 1999-09-26 22:36:11 +00:00
Jim Meyering
057f710a76 (xalloc_die): Rename from xalloc_fail and update callers.
Use explicit exit to help avoid warnings.
1999-09-26 19:05:39 +00:00
Jim Meyering
168676d418 small correction from Akim 1999-09-26 19:01:12 +00:00
Jim Meyering
825a182517 *** empty log message *** 1999-09-26 18:53:01 +00:00
Jim Meyering
34cc9acdd9 (DIRECTORY_SEPARATOR): Define.
(ISSLASH): Define.
(path_concat): Allow parameter DIR to be NULL.
(xpath_concat): New function.
From Akim Demaille.
1999-09-26 18:52:51 +00:00
Jim Meyering
0f97cac340 (__attribute__): Define.
(ATTRIBUTE_NORETURN): Define.
(xalloc_fail_func): Add noreturn attribute.
(xalloc_die): Declare.
(NEW): Define as yet unused macro.
(XFREE): Likewise
(CCLONE): Likewise.
(CLONE): Likewise.
From Akim Demaille.
1999-09-26 18:42:56 +00:00
Jim Meyering
6710abd4ae (base_name): Add prototype. From Akim Demaille. 1999-09-26 18:37:02 +00:00
Jim Meyering
566b0c41e3 . 1999-09-24 07:42:42 +00:00
Jim Meyering
72a5a4b5af . 1999-09-24 07:35:42 +00:00
Jim Meyering
e105d08552 *** empty log message *** 1999-09-19 16:48:43 +00:00
Jim Meyering
2e5a37a44e *** empty log message *** 1999-09-19 16:47:58 +00:00
Jim Meyering
8e0c33f8ea [STAT_MACROS_BROKEN] (S_ISLNK): Undefine.
(S_ISLNK): Define if necessary.
This is necessary on a NEC SX-4 with SUPER-UX 9.1.
1999-09-19 16:46:50 +00:00
Jim Meyering
16155b0807 *** empty log message *** 1999-09-19 16:45:24 +00:00
Jim Meyering
1648386aa0 (siginfo_handler): Mark parameter with ATTRIBUTE_UNUSED.
Change lots of count and index variables to be of unsigned type.
(dd_copy): Add new unsigned variable, n_bytes_read, in place of
many uses of `nread'.
1999-09-19 16:23:17 +00:00
Jim Meyering
7447e09e2a *** empty log message *** 1999-09-19 16:22:23 +00:00
Jim Meyering
96949ef7f5 (__attribute__): Define.
(ATTRIBUTE_NORETURN): Remove #else clause.
(ATTRIBUTE_UNUSED): Define.
1999-09-19 16:21:26 +00:00
Jim Meyering
44b1bde148 Remove useless parens in #if directive 1999-09-19 08:09:50 +00:00
Jim Meyering
1e5c8f23ce . 1999-09-18 21:18:37 +00:00
Jim Meyering
f1029324fe . 1999-09-18 21:17:29 +00:00
Jim Meyering
c1eb26af14 *** empty log message *** 1999-09-17 21:45:53 +00:00
Jim Meyering
93eaa3c661 (AC_REPLACE_FUNCS): Add strdup.
Paul Nevai reported a link failure on a NeXT CUBE with NeXTSTEP 3.3
due to missing strdup (against sh-utils-2.0).
1999-09-17 21:45:48 +00:00
Jim Meyering
67aaf0afa6 (usage): Remove misleading sentence in --help output.
From Karl Heuer.
1999-09-09 19:56:10 +00:00
Jim Meyering
fc02691130 Remove declaration of xstrdup. 1999-09-08 08:39:49 +00:00
Jim Meyering
29f710b0e5 *** empty log message *** 1999-09-05 06:56:59 +00:00
Jim Meyering
6c26ef5e0d (ENOSYS): Don't use ENOMSG; it's not in NeXTStep3.3.
Use EINVAL instead.
1999-09-05 06:56:50 +00:00
Jim Meyering
a8d1ef1616 tweak comment 1999-09-04 20:27:03 +00:00
Jim Meyering
8bde83a334 *** empty log message *** 1999-09-02 21:34:33 +00:00
Jim Meyering
85e0053136 Remove xstrdup declaration. 1999-09-02 21:34:04 +00:00
Jim Meyering
b10b8369dd Remove xstrdup declaration. 1999-09-02 21:33:23 +00:00
Jim Meyering
1aab3474a1 Remove xstrdup declaration. 1999-09-02 21:33:00 +00:00
Jim Meyering
42a837c531 *** empty log message *** 1999-09-02 21:31:37 +00:00
Jim Meyering
d1b4719534 Remove xstrdup declaration. 1999-09-02 21:31:19 +00:00
Jim Meyering
81fde1922f (xalloc_fail_func): Use `PARAMS'.
(xstrdup): Add protoype.
1999-09-02 21:23:01 +00:00
Jim Meyering
7d2b2cc3f9 import version 1.013 1999-09-02 10:40:44 +00:00
Jim Meyering
967bd9f5f0 Remove declaration of xstrdup. 1999-09-01 13:28:21 +00:00
Jim Meyering
f2a32f6e5b (version_etc_copyright): Declare it. 1999-09-01 13:16:46 +00:00
Jim Meyering
8e064c4377 (version_etc_copyright): Default copyright string.
(version_etc): Use it.
1999-09-01 13:15:11 +00:00
Jim Meyering
5790705b19 (xalloc_fail_func): Use `PARAMS'. 1999-09-01 13:09:19 +00:00
Jim Meyering
fa36ee7ea2 *** empty log message *** 1999-08-31 20:46:40 +00:00
Jim Meyering
8a29209450 Add .rpm, .png, and .fli.
From Andres Soolo.
1999-08-31 20:46:18 +00:00
Jim Meyering
82669abc1a *** empty log message *** 1999-08-30 15:05:34 +00:00
Jim Meyering
794af09007 . 1999-08-30 14:59:37 +00:00
Jim Meyering
128307fa88 . 1999-08-30 14:59:08 +00:00
Jim Meyering
84f4450da4 *** empty log message *** 1999-08-30 14:44:10 +00:00
Jim Meyering
038e5f009e (longopts): Restore accidentally-removed entry for `--portability' long option. 1999-08-30 14:43:52 +00:00
Jim Meyering
4ab0a2a4c6 (usage): Correct --help message. 1999-08-30 14:41:05 +00:00
Jim Meyering
4b20f454fe split a long line. 1999-08-30 14:39:05 +00:00
Jim Meyering
33bebae5ae (usage): Correct --help message. 1999-08-30 14:38:00 +00:00
Jim Meyering
ccff4ede2b (usage): Correct --help message. 1999-08-30 14:37:40 +00:00
Jim Meyering
6f48cb1924 (usage): Correct --help message. 1999-08-30 14:36:26 +00:00
Jim Meyering
98ecd5b300 (usage): Correct --help message. 1999-08-30 14:36:06 +00:00
Jim Meyering
57e5f5a5b5 (usage): Correct --help message. 1999-08-30 14:35:45 +00:00
Jim Meyering
2a0b67dc3b (usage): Correct --help message. 1999-08-30 14:35:20 +00:00
Jim Meyering
805034d054 . 1999-08-30 14:34:09 +00:00
Jim Meyering
c180c51c79 . 1999-08-30 14:33:39 +00:00
Jim Meyering
e044763e67 . 1999-08-30 14:31:16 +00:00
Jim Meyering
b8da6c90b6 . 1999-08-30 14:30:28 +00:00
Jim Meyering
269630005b . 1999-08-29 21:13:46 +00:00
Jim Meyering
902d5e299d *** empty log message *** 1999-08-29 21:10:22 +00:00
Jim Meyering
75789c4643 (main): Call exit explicitly to avoid warning from gcc.
Include "xstrtol.h".
(isinteger): Remove function and prototype.
(main): Use xstrtol in place of atoi.  Remove associated FIXME comments.
1999-08-29 21:09:34 +00:00
Jim Meyering
678cbc835e (isinteger): Move definition to precede use. Remove prototype. 1999-08-29 20:49:07 +00:00
Jim Meyering
de8d09d22d (main): Call exit explicitly to avoid warning from gcc. 1999-08-29 20:47:17 +00:00
Jim Meyering
b266f1a207 (main): Call exit explicitly to avoid warning from gcc. 1999-08-29 20:45:50 +00:00
Jim Meyering
a61888be78 *** empty log message *** 1999-08-29 20:42:42 +00:00
Jim Meyering
a3bafb3263 *** empty log message *** 1999-08-29 20:40:15 +00:00
Jim Meyering
937c7d8bab Require jm_BISON. 1999-08-29 20:40:00 +00:00
Jim Meyering
b7af6cd62a *** empty log message *** 1999-08-29 20:37:25 +00:00
Jim Meyering
09b7fb4252 *** empty log message *** 1999-08-29 20:35:16 +00:00
Jim Meyering
f9ab8e8b03 *** empty log message *** 1999-08-29 20:05:07 +00:00
Jim Meyering
fb9a0d3dff *** empty log message *** 1999-08-29 19:54:09 +00:00
Jim Meyering
d45400c9a9 (relative_time_table): Change type' of THIS' from
tMINUTE_UNIT to tUNUMBER.  From Urs Thuermann.
1999-08-29 14:55:24 +00:00
Jim Meyering
81eda26beb *** empty log message *** 1999-08-29 14:49:06 +00:00
Jim Meyering
1a9b70d7a8 *** empty log message *** 1999-08-29 14:46:35 +00:00
Jim Meyering
70c01e7963 (test_vector): Add a test for the Risks-reported problem with `Nov 11 1996'. 1999-08-29 14:46:25 +00:00
Jim Meyering
bd4a3f044d *** empty log message *** 1999-08-29 14:37:40 +00:00
Jim Meyering
13bc9dcc35 (test_vector): Add tests for use of `this'. 1999-08-29 14:36:48 +00:00
Jim Meyering
6b840273e0 (get_date): Rename latter local `tm' to probe_tm. 1999-08-29 12:55:35 +00:00
Jim Meyering
9f92dfbf90 (get_date): Rename outermost local probe' to quarter'. 1999-08-29 12:28:56 +00:00
Jim Meyering
26656272e8 Add copyright notice.
(number): Handle `Nov 11 1996' example; see Risks Digest 20.55
http://catless.ncl.ac.uk/Risks/20.55.html#subj18
(1999-08-27)

(<stdio.h>): Include only if testing.
(ISUPPER): Remove.
(ISLOWER, PC): New macros.
(<string.h>): Include if HAVE_STRING_H, not USG.
(bcopy): Remove.
(yymaxdepth, ..., yycheck): Don't bother to redefine, since we assume
bison.
(EPOCH_YEAR): Renamed from EPOCH.
(table): Renamed from TABLE.
(meridian): Now an anonymous enum.
(struct parser_control): New type.
(YYLEX_PARAM, YYPARSE_PARAM, YYSTYPE): New macros.
(yyInput, ..., yyRelYear): Migrated into struct parser_control.
(%pure_parser): Added, so that the parser is pure.
(%union): Removed; the type is now just plain int.
All %type directives removed.
(tLOCAL_ZONE): New %token.
(month_day_table): Renamed from MonthDayTable.
(gmtime, localtime, mktime, time): Declare only if not defined.
(meridian_table): New table.
(dst_table): New table.
(units_table): renamed from UnitsTable.
(relative_time_table): Renamed from OtherTable.
(time_zone_table): Renamed from TimezoneTable.  Modernized data.
(military_table): Renamed from MilitaryTable.
(to_hour): Renamed from ToHour.
(to_year): Renamed from ToYear.
(lookup_zone): New function.
(LookupWord): Renamed from lookup_word.
Use lookup_zone for time zones.
(yylex): Now reentrant.  All callers changed.
(get_date): Add support for local time zone abbreviations.
Make it reentrant.
1999-08-29 07:29:51 +00:00
Jim Meyering
948cf23537 *** empty log message *** 1999-08-25 15:41:52 +00:00
Jim Meyering
2395e90973 *** empty log message *** 1999-08-22 16:28:45 +00:00
Jim Meyering
bb6f5c5913 *** empty log message *** 1999-08-22 16:28:26 +00:00
Jim Meyering
d1b7514e91 *** empty log message *** 1999-08-22 16:23:28 +00:00
Jim Meyering
53e173cca6 (detect_loop): There's no loop if k->top is NULL. 1999-08-22 16:10:24 +00:00
Jim Meyering
5157fd957e Add a few more tests. 1999-08-22 16:09:29 +00:00
Jim Meyering
d39e2c5127 *** empty log message *** 1999-08-22 15:58:28 +00:00
Jim Meyering
80e8a30f39 *** empty log message *** 1999-08-22 15:58:06 +00:00
Jim Meyering
83d003e558 Rewrite to use Fetish.pm-based framework. 1999-08-22 15:55:41 +00:00
Jim Meyering
9715e45a87 *** empty log message *** 1999-08-22 15:54:35 +00:00
Jim Meyering
5d3b030798 . 1999-08-22 15:53:59 +00:00
Jim Meyering
19a165cc9c tweak comment 1999-08-22 11:34:56 +00:00
Jim Meyering
7a7ef5ff5b (check_file): Explain why we have separate if' and else'
blocks when the code in the else block could handle both cases.
1999-08-22 11:31:08 +00:00
Jim Meyering
2638bf642c *** empty log message *** 1999-08-22 11:17:47 +00:00
Jim Meyering
9503681d86 (check_file): Generate each line of output earlier,
when possible.  It is possible when using none of these options:
--count, -repeated, --all-repeated, --unique.
Based on a patch from Ian Turner.

(check_file): Move declarations of local variables into the scopes where used.
(min): Remove macro definition.
(different): Use MIN, not min.
(SWAP_LINES): New macro.
(check_file): Use it here.
1999-08-22 11:17:42 +00:00
Jim Meyering
7d8102bec2 . 1999-08-22 11:04:23 +00:00
Jim Meyering
b980775bb6 *** empty log message *** 1999-08-22 11:03:57 +00:00
Jim Meyering
b96c6c60eb *** empty log message *** 1999-08-22 11:03:32 +00:00
Jim Meyering
7de78927ed Escape backslashes so tr's manual comes out right.
Reported by Andreas Schwab.
1999-08-22 11:02:39 +00:00
Jim Meyering
7a44e716a4 *** empty log message *** 1999-08-22 10:58:31 +00:00
Jim Meyering
95b8288176 (ATTRIBUTE_NORETURN): Define. 1999-08-22 10:57:51 +00:00
Jim Meyering
5a2d528081 Use ATTRIBUTE_NORETURN instead of NO_RETURN_ATTRIBUTE. 1999-08-22 10:57:40 +00:00
Jim Meyering
8ab42dc273 *** empty log message *** 1999-08-22 10:53:37 +00:00
Jim Meyering
705cf20084 (run_shell): Declare with noreturn attribute.
Use an explicit exit(1) rather than doing that through error.
1999-08-22 10:53:13 +00:00
Jim Meyering
fc08f1058a *** empty log message *** 1999-08-22 10:22:06 +00:00
Jim Meyering
a343e68e00 (main): Rename locals i and j.
Use IF_LINT macro instead of #ifdef lint...
1999-08-22 10:21:36 +00:00
Jim Meyering
e8e722d58e *** empty log message *** 1999-08-22 10:19:56 +00:00
Jim Meyering
8313e867b2 (validate_path): Use IF_LINT macro instead of #ifdef lint. 1999-08-22 10:19:35 +00:00
Jim Meyering
4dac9be014 (batch_convert): Use IF_LINT macro instead of #ifdef lint. 1999-08-22 10:19:15 +00:00
Jim Meyering
46554e300b (dump): Use IF_LINT macro instead of #ifdef lint...
(main): Likewise.
1999-08-22 09:51:20 +00:00
Jim Meyering
8b5ed0399d (paste_parallel): Use IF_LINT macro instead of #ifdef lint... 1999-08-22 09:50:56 +00:00
Jim Meyering
e11d70c362 (read_line): Use IF_LINT macro instead of #ifdef lint... 1999-08-22 09:50:31 +00:00
Jim Meyering
005c36b178 (checkfp): Use IF_LINT macro instead of #ifdef lint...
(mergefps): Likewise.
1999-08-22 09:50:05 +00:00
Jim Meyering
0e3b9af25b (usage): Correct bug-reporting email address.
(tsort): Remove trailing `\n' in error format.
1999-08-22 09:45:52 +00:00
Jim Meyering
1ec1017a23 (IF_LINT): Define new macro. 1999-08-22 09:43:48 +00:00
Jim Meyering
bab0581788 (md5_check): Remove trailing `\n' in error format. 1999-08-22 09:43:25 +00:00
Jim Meyering
e23b334713 (SWAP_LINES): New macro.
(check_file): Use it here.

[really remove min macro, this time]
1999-08-22 08:57:37 +00:00
Jim Meyering
475a58337a (writeline): Constify a char*. 1999-08-22 08:48:45 +00:00
Jim Meyering
1195909f5d (cksum): Constify a char*. 1999-08-22 08:48:06 +00:00
Jim Meyering
0c44307f3b *** empty log message *** 1999-08-22 08:47:00 +00:00
Jim Meyering
138cf56fdb (parse_integer): Add `const' to char* parameter and
add a separate `suffix' variable.
1999-08-22 08:46:33 +00:00
Jim Meyering
a711e8e132 (check_file): Move declarations of local variables
into the scopes where they're used.
(min): Remove macro definition.
(different): Use MIN, not min.
1999-08-22 08:16:34 +00:00
Jim Meyering
e32013660e *** empty log message *** 1999-08-21 20:26:25 +00:00
Jim Meyering
b4e8324ac2 (usage): Remove the ` [-v]' from the Usage: line. 1999-08-21 20:26:18 +00:00
Jim Meyering
03455da71a import latest 1999-08-20 10:05:46 +00:00
Jim Meyering
c82037714e *** empty log message *** 1999-08-20 09:02:39 +00:00
Jim Meyering
6faeb61968 *** empty log message *** 1999-08-20 08:58:40 +00:00
Jim Meyering
82288821f0 (usage): Tweak --help output to make it more consistent with that of chgrp. 1999-08-20 08:58:34 +00:00
Jim Meyering
28c95e39c1 (usage): Tweak --help output to make it more consistent with that of chown. 1999-08-20 08:58:21 +00:00
Jim Meyering
47ac7c933a paste --delimiters: add missing `=' 1999-08-18 16:21:16 +00:00
Jim Meyering
4ba5bee1a0 stty --file: add missing `=' 1999-08-18 16:20:03 +00:00
Jim Meyering
f063d2f7a2 *** empty log message *** 1999-08-18 07:41:39 +00:00
Jim Meyering
ee81e2f472 (AC_SYS_LARGEFILE): Fix typo: missing comma
in value for _FILE_OFFSET_BITS, which broke ports to HP-UX 10.20.
1999-08-18 07:41:27 +00:00
Jim Meyering
c1e29b69ba *** empty log message *** 1999-08-17 10:17:42 +00:00
Jim Meyering
13955cb7c1 source input-tty instead of open-coding it 1999-08-17 10:15:50 +00:00
Jim Meyering
e95aecb85e (EXTRA_DIST): Add input-tty. 1999-08-17 10:14:23 +00:00
Jim Meyering
b66c78c236 *** empty log message *** 1999-08-17 10:13:27 +00:00
Jim Meyering
b1d6d67405 *** empty log message *** 1999-08-17 08:03:49 +00:00
Jim Meyering
086c4578e3 . 1999-08-17 08:00:19 +00:00
Jim Meyering
99d5294ab1 *** empty log message *** 1999-08-17 07:59:12 +00:00
Jim Meyering
f99e33733b . 1999-08-17 07:46:10 +00:00
Jim Meyering
4d22e13282 This change is nearly identical to the chown.c change of 1998-05-24
Accept new option, --dereference.
--no-dereference is now the default. Include lchown.h.
(enum Change_status) [CH_NOT_APPLIED]: New member.
(change_symlinks): Enable this by default, now.
(describe_change): Handle new case.
(change_file_group): Add new parameter: cmdline_arg.  Update callers.
Reorganize to reflect changed semantics.
(LCHOWN): Remove definitions.
From Bruno Haible.
1999-08-16 21:21:39 +00:00
Jim Meyering
18607df151 (groupname): Declare to be `const'.
(change_dir_owner): Declare statp parameter to be `const'.
(usage): Make the output be more consistent with that from chgrp.
1999-08-16 21:20:44 +00:00
Jim Meyering
1b4fc0d733 factor examples 1999-08-15 18:43:54 +00:00
Jim Meyering
1cea2b41a4 *** empty log message *** 1999-08-15 12:57:21 +00:00
Jim Meyering
a2267a42f8 --pid vs djgpp 1999-08-15 12:56:33 +00:00
Jim Meyering
7228350401 (ENOSYS): Define to a bogus value if not already defined.
(parse_options): Warn if --pid=PID is used and kill()
returns ENOSYS (e.g. when compiled with DJGPP).
1999-08-15 12:56:00 +00:00
Jim Meyering
22cdfc8955 . 1999-08-14 15:37:41 +00:00
Jim Meyering
cb47f7bef7 *** empty log message *** 1999-08-14 12:42:56 +00:00
Jim Meyering
7fda0e1065 Fail-77 if stdin is not a tty. 1999-08-14 12:42:03 +00:00
Jim Meyering
b91360e484 *** empty log message *** 1999-08-14 12:41:34 +00:00
Jim Meyering
4b797e9d5c *** empty log message *** 1999-08-13 08:51:42 +00:00
Jim Meyering
9b5e17f134 *** empty log message *** 1999-08-13 08:02:03 +00:00
Jim Meyering
bee39b77d9 . 1999-08-13 07:57:15 +00:00
Jim Meyering
18eb7260a1 *** empty log message *** 1999-08-12 15:16:12 +00:00
Jim Meyering
531ced1819 Document how to ignore newline during sort 1999-08-12 15:16:04 +00:00
Jim Meyering
b6ee833da0 *** empty log message *** 1999-08-12 15:15:49 +00:00
Jim Meyering
cfd67ae18c *** empty log message *** 1999-08-10 11:02:10 +00:00
Jim Meyering
a26a44baba (usage): Add ls --quoting-style=locale. 1999-08-10 11:00:58 +00:00
Jim Meyering
843d60096e (ARGMATCH_QUOTING_STYLE):
Change from escape_quoting_style to locale_quoting_style.
(argmatch_invalid): Use new quotearg_style primitive for simplicity.
Also, use ARGMATCH_QUOTING_STYLE to quote, instead of quoting ourselves.
1999-08-10 11:00:12 +00:00
Jim Meyering
bcfbd6fab1 (locale_quoting_style): New enum value.
(quotearg_n_style, quotearg_style): New decls.
1999-08-10 10:58:01 +00:00
Jim Meyering
84dc18f1db Include <libintl.h> if ENABLE_NLS.
(_): New macro.
(quoting_style_args, quoting_style_v, quotearg_buffer): Add support
for locale_quoting_style, using _("`") and _("'") for open and close
quote symbols.
Do not quote spaces in escape_quoting_style.
(quotearg_n_style, quotearg_style): New functions.
1999-08-10 10:50:18 +00:00
Jim Meyering
10c7ee785a *** empty log message *** 1999-08-08 20:01:58 +00:00
Jim Meyering
6591e754b2 (usage): Clarify description of --time=WORD. 1999-08-08 20:01:50 +00:00
Jim Meyering
05c804e18f . 1999-08-08 10:18:36 +00:00
Jim Meyering
89e470b8e2 fix typo 1999-08-08 10:16:53 +00:00
Jim Meyering
e26558d720 *** empty log message *** 1999-08-08 10:15:15 +00:00
Jim Meyering
8fd9cfdd3c (count_entry): Remove cast of savedir arg. 1999-08-08 10:15:06 +00:00
Jim Meyering
ca2cd27d3c (copy_dir): Remove cast of savedir arg. 1999-08-08 10:14:45 +00:00
Jim Meyering
8b2c09a944 (change_dir_owner): Remove cast of savedir arg. 1999-08-08 10:14:26 +00:00
Jim Meyering
41a7bbf8e0 (change_dir_mode): Remove cast of savedir arg. 1999-08-08 10:14:01 +00:00
Jim Meyering
08ae72e3a4 (change_dir_group): Remove cast of savedir arg. 1999-08-08 10:13:44 +00:00
Jim Meyering
c127e62803 update prototype 1999-08-08 10:12:55 +00:00
Jim Meyering
0bb442899e (savedir): Change type of name_size parameter to off_t. 1999-08-08 10:12:43 +00:00
Jim Meyering
412590b094 *** empty log message *** 1999-08-08 10:10:20 +00:00
Jim Meyering
6fcaba3a1e *** empty log message *** 1999-08-07 12:16:35 +00:00
Jim Meyering
f5f7082712 *** empty log message *** 1999-08-07 10:46:11 +00:00
Jim Meyering
20c6afc39f *** empty log message *** 1999-08-07 10:45:36 +00:00
Jim Meyering
16fa90f7d0 (po-check): New rule.
(alpha): Make it.
1999-08-07 10:41:00 +00:00
Jim Meyering
aeb6ea6c01 . 1999-08-07 09:59:51 +00:00
Jim Meyering
e1eebd3966 *** empty log message *** 1999-08-07 09:54:55 +00:00
Jim Meyering
e03ffca770 *** empty log message *** 1999-08-07 09:53:59 +00:00
Jim Meyering
2f19e00c90 *** empty log message *** 1999-08-07 09:50:41 +00:00
Jim Meyering
12fbee444c (OtherTable[]): Use tDAY_UNIT for `tomorrow,'
`yesterday,' `today,' and `now' rather than tMINUTE_UNIT.  Of course
with correspondingly smaller numbers for tomorrow and yesterday.
This change does not change the way the code works, since the
grammar rules for the two symbols are analogous.
1999-08-07 09:50:34 +00:00
Jim Meyering
0abcbb7b3d *** empty log message *** 1999-08-07 09:49:50 +00:00
Jim Meyering
b5f2d23a1c *** empty log message *** 1999-08-07 08:25:34 +00:00
Jim Meyering
2d4a921699 *** empty log message *** 1999-08-06 19:24:05 +00:00
Jim Meyering
66f0de09e8 . 1999-08-06 19:23:33 +00:00
Jim Meyering
fed1e6eceb *** empty log message *** 1999-08-06 19:22:43 +00:00
Jim Meyering
505ee4c31c (Follow_mode): Remove comma at end of enumerator list.
Reported by Kaveh Ghazi.
1999-08-06 19:21:05 +00:00
Jim Meyering
dda679e516 *** empty log message *** 1999-08-06 10:22:22 +00:00
Jim Meyering
7cdcf3b47a Honor --help and --version once again, though now
only if POSIXLY_CORRECT is set.
1999-08-06 10:14:52 +00:00
Jim Meyering
e4024a94f8 Include file name in `write error' diagnostics.
(write_bytes): Add output_file parameter and use it.  Update callers.
(mergefps): Likewise.
(merge): Likewise.
(sort): Likewise.
Reported by John Summerfield.
1999-08-06 00:07:59 +00:00
Jim Meyering
a07027bbda *** empty log message *** 1999-08-05 14:45:13 +00:00
Jim Meyering
cf8234804d *** empty log message *** 1999-08-05 14:40:59 +00:00
Jim Meyering
fad7082c96 *** empty log message *** 1999-08-05 12:58:13 +00:00
Jim Meyering
59b21e3f05 *** empty log message *** 1999-08-05 11:19:54 +00:00
Jim Meyering
c0c398ba95 Rename test file from conftestdata to conftest.data
to avoid conflicts with `conftest' on 8+3 filesystems.
Suggestion from Eli Zaretskii.
1999-08-05 11:18:39 +00:00
Jim Meyering
f8b8ef6242 . 1999-08-04 11:37:54 +00:00
Jim Meyering
707f9870ba *** empty log message *** 1999-08-04 11:14:55 +00:00
Jim Meyering
26fe14166f *** empty log message *** 1999-08-04 08:16:05 +00:00
Jim Meyering
1259760b63 *** empty log message *** 1999-08-04 08:14:37 +00:00
Jim Meyering
9f315fd6f8 *** empty log message *** 1999-08-04 08:14:25 +00:00
Jim Meyering
c6c4932d6c *** empty log message *** 1999-08-04 08:13:33 +00:00
Jim Meyering
7a3247e23b (AM_FUNC_GETLINE): Run this test.
(AC_CHECK_FUNCS): Check for getdelim.
1999-08-04 08:10:17 +00:00
Jim Meyering
a6fcc4893f *** empty log message *** 1999-08-04 08:05:17 +00:00
Jim Meyering
4ff62130e9 *** empty log message *** 1999-08-04 08:04:34 +00:00
Jim Meyering
c8d4c53bff *** empty log message *** 1999-08-04 08:03:56 +00:00
Jim Meyering
4606c57a5c *** empty log message *** 1999-08-03 07:47:06 +00:00
Jim Meyering
231c74cf2b *** empty log message *** 1999-08-03 07:46:46 +00:00
Jim Meyering
3cc8a10875 (tail_forever): When following by name and calling recheck
because of exceeding max_n_consecutive_size_changes_between_opens,
`continue' so we don't fall through and (assuming the file finally grew)
get the erroneous `file truncated' message.
1999-08-03 07:43:42 +00:00
Jim Meyering
dd7bb02a99 *** empty log message *** 1999-08-02 08:34:49 +00:00
Jim Meyering
0856c30182 Add a comment. 1999-08-02 08:34:39 +00:00
Jim Meyering
ef315fa054 *** empty log message *** 1999-08-01 11:02:38 +00:00
Jim Meyering
1a1a070926 (usage): Correct description of %S; (00..60, not 00..61).
From Ken Pizzini.
1999-08-01 11:02:28 +00:00
Jim Meyering
113874c5f5 *** empty log message *** 1999-08-01 10:17:31 +00:00
Jim Meyering
58954a525e . 1999-08-01 10:13:13 +00:00
Jim Meyering
f0f1719546 . 1999-08-01 10:09:46 +00:00
Jim Meyering
47aa3de9f4 *** empty log message *** 1999-08-01 10:09:24 +00:00
Jim Meyering
be9c42975f . 1999-08-01 10:01:27 +00:00
Jim Meyering
20b936fbd2 *** empty log message *** 1999-08-01 09:59:51 +00:00
Jim Meyering
75e8fc40f8 (AC_FUNC_MKTIME): Undefine to avoid syntax errors from m4. 1999-08-01 09:59:45 +00:00
Jim Meyering
9624b35110 *** empty log message *** 1999-08-01 09:54:45 +00:00
Jim Meyering
10a0ecfe61 *** empty log message *** 1999-08-01 09:44:42 +00:00
Jim Meyering
b1d0c95b4b *** empty log message *** 1999-08-01 09:33:53 +00:00
Jim Meyering
961afa7d2f *** empty log message *** 1999-08-01 09:33:49 +00:00
Jim Meyering
2ce235df9c *** empty log message *** 1999-08-01 09:32:29 +00:00
Jim Meyering
07432a0f9d New file, which is a preview of what should appear
in the next public autoconf release.
1999-08-01 09:22:38 +00:00
Jim Meyering
8dc0dbec88 *** empty log message *** 1999-08-01 09:05:29 +00:00
Jim Meyering
270f765604 (jm_AC_PREREQ_XSTRTOUMAX): Check whether
<inttypes.h> defines strtoumax as a macro (and not as a
function).
1999-08-01 09:05:17 +00:00
Jim Meyering
d1ea838331 New file. It contains the old contents of
lfs.m4, except that all names with prefix AC_LFS have been
changed to use the prefix AC_SYS_LARGEFILE instead, to be
compatible with future autoconf versions.  Also, some minor m4
quoting problems have been fixed.
1999-08-01 08:59:46 +00:00
Jim Meyering
d3172d80ef (jm_AC_TYPE_UNSIGNED_LONG_LONG): Make sure
that we can shift, multiply and divide unsigned long long
values; Ultrix cc can't do it.
1999-08-01 08:47:11 +00:00
Jim Meyering
c36cde4138 *** empty log message *** 1999-08-01 07:59:08 +00:00
Jim Meyering
71f2c2f9ec (AM_WITH_NLS): Remove unnecessary lines.
Fix typo: $nls_cv_header_intl was misspelled as $nsl_cv_header_intl.
(AM_GNU_GETTEXT): Fix problem with brackets and m4 quoting,
and simplify the shell code.
1999-08-01 07:58:44 +00:00
Jim Meyering
ed0c88b7f7 (quotearg_buffer):
Don't quote spaces if C quoting style.
1999-08-01 07:44:39 +00:00
Jim Meyering
fabd45e6c6 *** empty log message *** 1999-07-31 17:47:36 +00:00
Jim Meyering
08aa2e4bde fix up true/false docs to include a couple sentences from Christy's truefalse package 1999-07-31 17:45:35 +00:00
Jim Meyering
5d4eefe8d8 . 1999-07-31 17:44:02 +00:00
Jim Meyering
fc6aa385f9 *** empty log message *** 1999-07-31 16:11:31 +00:00
Jim Meyering
13cfe05e30 *** empty log message *** 1999-07-31 16:10:52 +00:00
Jim Meyering
e7a73d59e6 *** empty log message *** 1999-07-31 16:09:35 +00:00
Jim Meyering
20e7435ae7 *** empty log message *** 1999-07-31 16:04:23 +00:00
Jim Meyering
555250c779 *** empty log message *** 1999-07-31 09:21:38 +00:00
Jim Meyering
ca47081c5b (tail_forever): Don't call kill if pid is 0.
Detect when `writer_is_dead' also when the writer is some other user.
From Karl Heuer.

(parse_options): Warn if --pid=PID is used without -f.
1999-07-31 09:21:32 +00:00
Jim Meyering
5e8ad5a577 *** empty log message *** 1999-07-31 09:03:43 +00:00
Jim Meyering
b19705597b . 1999-07-30 21:18:37 +00:00
Jim Meyering
e46de77883 . 1999-07-30 21:15:01 +00:00
Jim Meyering
a65fa10c4b *** empty log message *** 1999-07-30 21:13:19 +00:00
Jim Meyering
6e38ee2da0 Include signal.h for kill prototype. 1999-07-30 21:13:05 +00:00
Jim Meyering
b1476fec95 *** empty log message *** 1999-07-30 21:10:59 +00:00
Jim Meyering
48cb109a87 *** empty log message *** 1999-07-30 21:04:18 +00:00
Jim Meyering
f18a0a4331 *** empty log message *** 1999-07-30 21:03:35 +00:00
Jim Meyering
9200ad37c9 document tail's new option: --pid=PID 1999-07-30 21:02:54 +00:00
Jim Meyering
6b51b6027d *** empty log message *** 1999-07-30 20:43:10 +00:00
Jim Meyering
4d70e59a85 New option: --pid=PID.
(pid): New global.
(long_options): Add `pid'.
(usage): Describe it.
(tail_forever): Implement it.
(parse_options): Handle the new option and required arg.
Suggestion and pseudo-code from Karl Heuer.
1999-07-30 20:42:39 +00:00
Jim Meyering
d883ecee8a *** empty log message *** 1999-07-30 19:33:57 +00:00
Jim Meyering
3be49c9564 *** empty log message *** 1999-07-30 19:31:03 +00:00
Jim Meyering
898a08f344 (PID_T_MAX): Define. 1999-07-30 19:29:53 +00:00
Jim Meyering
a765a451e6 Include <sys/types.h> now that linebuffer.h uses
size_t.  This is required on at least SunOS4.  From Kaveh Ghazi.
1999-07-30 19:29:27 +00:00
Jim Meyering
e246ae8765 (usage): Explain about default wrt --hide-control-chars and
--show-control-chars.  Reported by Germano Leichsenring.
1999-07-30 16:01:44 +00:00
Jim Meyering
57f1b329c9 *** empty log message *** 1999-07-30 16:01:26 +00:00
Jim Meyering
998eae92d1 *** empty log message *** 1999-07-28 05:48:55 +00:00
Jim Meyering
eb8c7c7924 (dd_copy): Free the right obuf. 1999-07-27 14:36:36 +00:00
Jim Meyering
bf94a704bc more comments 1999-07-26 09:17:56 +00:00
Jim Meyering
e3a15bed3c add comment 1999-07-26 09:03:15 +00:00
Jim Meyering
4dd5a9b806 (struct File_spec) [n_stat_calls]: Remove unused member. 1999-07-26 09:01:27 +00:00
Jim Meyering
8ddf290477 (tee): Convert from open/fds to using fopen/streams for
output, in preparation for addition of new compression option.
1999-07-26 07:11:27 +00:00
Jim Meyering
a197ef9f3c *** empty log message *** 1999-07-26 06:52:28 +00:00
Jim Meyering
a2d3645e9c (usage): Remove `NEWS'-style paragraph (sorry to have let that in, translators). 1999-07-25 09:30:35 +00:00
Jim Meyering
edc46711dd *** empty log message *** 1999-07-25 08:47:36 +00:00
Jim Meyering
06db9a8db3 *** empty log message *** 1999-07-25 08:27:24 +00:00
Jim Meyering
096564b06c . 1999-07-25 08:10:14 +00:00
Jim Meyering
0476aba87e . 1999-07-24 21:16:37 +00:00
Jim Meyering
8082ce8f53 add to comment 1999-07-24 09:40:23 +00:00
Jim Meyering
7b5a5af07f (PTR_ALIGN, ROUND_UP_OFFSET): New macros.
(dd_copy): Use those to page-align both the input and output buffers.
1999-07-24 09:36:29 +00:00
Jim Meyering
c4731cc3f0 (options): Avoid Solaris' broken /usr/ucb/tr by
removing offending use of tr altogether and removing hyphens with sed.
Reported by Kaveh Ghazi.
1999-07-21 15:56:15 +00:00
Jim Meyering
a19cffba7e *** empty log message *** 1999-07-21 15:08:41 +00:00
Jim Meyering
f9fce0782d *** empty log message *** 1999-07-21 15:07:58 +00:00
Jim Meyering
1aa01e7b7b *** empty log message *** 1999-07-21 14:55:19 +00:00
Jim Meyering
8478414c5d update comments 1999-07-20 18:52:05 +00:00
Jim Meyering
bca7546dcd (translate_040_to_space) [MOUNTED_GETMNTENT1]: New function.
(read_filesystem_list) [MOUNTED_GETMNTENT1]: Use it.
1999-07-20 18:41:58 +00:00
Jim Meyering
c7582bc4ab *** empty log message *** 1999-07-20 17:08:37 +00:00
Jim Meyering
0cae6713e7 *** empty log message *** 1999-07-20 17:06:53 +00:00
Jim Meyering
9c2d071799 (AC_REPLACE_FUNCS): Add memmove. 1999-07-20 17:06:50 +00:00
Jim Meyering
35c14d81cf wc vs. POSIXLY_CORRECT 1999-07-20 08:03:49 +00:00
Jim Meyering
7387f60b85 (posixly_correct): Declare global.
(write_counts): Use it to select printf formats.
(main): Set posixly_correct from the POSIXLY_CORRECT envvar.
From Peter Moulder.
1999-07-20 07:56:59 +00:00
Jim Meyering
8e369dfcaa remove @key uses, rewrite --sep-string, small cleanups 1999-07-18 13:58:57 +00:00
Jim Meyering
196c0a27f0 . 1999-07-18 13:33:04 +00:00
Jim Meyering
bc1d502816 . 1999-07-18 11:21:58 +00:00
Jim Meyering
9ea7513f11 (noinst_HEADERS): Add getpagesize.h. 1999-07-15 16:16:24 +00:00
Jim Meyering
e7328f4f56 . 1999-07-15 16:15:17 +00:00
Jim Meyering
2a0577baa1 *** empty log message *** 1999-07-15 16:14:56 +00:00
Jim Meyering
6dc48e999d Revert the 1999-02-15 change. 1999-07-15 16:14:13 +00:00
Jim Meyering
f382570992 Revert the 1999-02-15 change and
add --text for individual tests.  Reported by Eli Zaretskii.
1999-07-15 16:13:47 +00:00
Jim Meyering
1e99421584 *** empty log message *** 1999-07-15 16:07:34 +00:00
Jim Meyering
a06c23be9b Document new tail options. 1999-07-15 16:07:15 +00:00
Jim Meyering
d3defdfba8 *** empty log message *** 1999-07-15 12:10:44 +00:00
Jim Meyering
5db7818497 Include getpagesize.h.
(ROUND_UP_TO_MODULUS): Define.
(dd_copy): Page-align the input buffer.
Based on a patch from Scott Lurndal.
1999-07-15 12:06:18 +00:00
Jim Meyering
1950561a91 . 1999-07-15 09:31:44 +00:00
Jim Meyering
13b5f7bc46 *** empty log message *** 1999-07-15 09:31:34 +00:00
Jim Meyering
5c5d74ef09 *** empty log message *** 1999-07-15 09:28:43 +00:00
Jim Meyering
dd408ec740 *** empty log message *** 1999-07-15 09:11:24 +00:00
Jim Meyering
474e7801ff (AC_CHECK_FUNCS): Check for getpagesize. 1999-07-15 09:11:13 +00:00
Jim Meyering
6970bbc17b (get_fs_usage) [STATFS_TRUNCATES_BLOCK_COUNTS]:
Work around SunOS botch also when block size is different from 1k.
1999-07-15 07:50:06 +00:00
Jim Meyering
db26cba77c *** empty log message *** 1999-07-15 07:49:28 +00:00
Jim Meyering
f1052fb45f *** empty log message *** 1999-07-12 20:07:37 +00:00
Jim Meyering
fae10f70e0 (mempcpy): Define only if not already defined.
Reported by Collin Rogowski.
1999-07-12 08:37:31 +00:00
Jim Meyering
f484303d9e *** empty log message *** 1999-07-12 08:37:21 +00:00
Jim Meyering
3f622f08e5 (recheck): Use assert instead of unnecessary close_fd.
Remove a couple unnecessary FIXME comments.
1999-07-11 09:05:31 +00:00
Jim Meyering
8287d3c4c4 *** empty log message *** 1999-07-10 16:40:33 +00:00
Jim Meyering
8b86e4459b cpp indent and split a long line 1999-07-10 16:40:16 +00:00
Jim Meyering
c44e7a8352 use a space, not TAB after #define 1999-07-10 16:36:56 +00:00
Jim Meyering
d11ec4a80f cpp indent 1999-07-10 16:36:11 +00:00
Jim Meyering
54651dc73c (struct File_spec) [tailable]: Rename from `missing' and
document.  Change all uses and locals like was_missing to was_tailable.
Invert expressions as appropriate.
(reopen_inaccessible_files): Rename from allow_missing.
(sleep_interval): Describe.
(--allow-missing): Deprecate.
(--retry): New option, equivalent to --allow-missing.
(usage): Document name vs. descriptor differences.
Refer to manual for descriptions of --max-unchanged-stats=N
and --max-consecutive-size-changes=N.
(valid_file_spec): New function.
(recheck): Assert valid_file_spec.
Remove dead else-if block (suggestion from Eli Zaretskii).
Adjust stmts that set f->tailable -- unlike for `missing', tailable
doesn't depend on errno == ENOENT.
(parse_options): Give a warning if --retry is used when not following
by name.
1999-07-10 12:24:10 +00:00
Jim Meyering
ae1e1e5e19 (struct File_spec): New member, errnum.
(recheck): Record the new value of errno in f->errnum.  Don't
output an error message unless the new value of errno differs from
the old one.  Output a message if previously-inaccessible file
becomes accessible.
(tail_forever): Always recheck files whose fd is negative.  If the
file cannot be fstat'ed, record the errno value in f[i].errnum.
(tail_file): If the file cannot be open, record the errno value in
f->errnum.  If it can be opened, initialize f->errnum to zero.  If
it's a non-regular non-fifo file, initialize f->errnum to -1.
1999-07-10 09:56:37 +00:00
Jim Meyering
647e6ab644 *** empty log message *** 1999-07-10 08:44:58 +00:00
Jim Meyering
41e1351fca Import version 1.012. 1999-07-10 08:44:49 +00:00
Jim Meyering
1b5283ca7a *** empty log message *** 1999-07-10 07:37:39 +00:00
Jim Meyering
dd7e9b194e *** empty log message *** 1999-07-10 07:34:52 +00:00
Jim Meyering
40c0f14648 Import version 1.011. 1999-07-10 07:28:05 +00:00
Jim Meyering
7f44579325 . 1999-07-10 07:17:02 +00:00
Jim Meyering
171778bed3 *** empty log message *** 1999-07-09 12:51:18 +00:00
Jim Meyering
e7f7f3da11 reinclude memcoll.h (mistakenly removed by me) 1999-07-04 10:41:26 +00:00
Jim Meyering
1ccaa26ea4 *** empty log message *** 1999-07-04 10:40:15 +00:00
Jim Meyering
376c3fe740 [!defined strtoumax]: Declare strtoumax. 1999-07-04 10:40:04 +00:00
Jim Meyering
08da7047d0 . 1999-07-04 10:38:37 +00:00
Jim Meyering
0aa86039dd *** empty log message *** 1999-07-04 10:33:50 +00:00
Jim Meyering
bfd09e35cc (readline): Leave room for an extra byte
after the newline; comm needs this for memcoll.
1999-07-04 10:31:01 +00:00
Jim Meyering
115372366e Add support for LC_COLLATE locale.
Include hard-locale.h, linebuffer.h, memcoll.h.
(struct line): New member `buf', replacing `beg' and `lim'.
All uses changed.
(hard_LC_COLLATE): New var.
(main): Initialize it.
(get_line): Use readline to read the line,
instead of doing it by hand.
That way, we get a buffer that we can pass to memcoll.
(keycmp): Use memcoll to compare lines if hard_LC_COLLATE is nonzero.
1999-07-04 10:28:08 +00:00
Jim Meyering
d67adf2b8c Include hard-locale.h, memcoll.h.
(hard_LC_COLLATE, hard_LC_CTYPE, hard_LC_TIME): New variables,
replacing `need_locale'.
(memcoll): Move to lib/memcoll.c.
(keycompare): No need to alloc (0), since our caller now does it.
(compare): alloca (0) before returning.
(my_setlocale): Remove; hard_locale now dows this.
(main): Invoke setlocale, bindtextdomain, and textdomain before
invoking anything that might print an error.
Use hard_locale to determine which locales are hard.
1999-07-04 10:23:19 +00:00
Jim Meyering
3ad83e6ad0 Include hard-locale.h, memcoll.h.
(hard_LC_COLLATE): New variable.
(compare_files): Use memcoll to compare if hard_LC_COLLATE.
(main): Initialize hard_LC_COLLATE from locale.
1999-07-04 10:22:25 +00:00
Jim Meyering
ad72fa61c8 Document locale-specific mode for comm. 1999-07-04 10:21:39 +00:00
Jim Meyering
c3ee42e3b0 *** empty log message *** 1999-07-04 10:16:28 +00:00
Jim Meyering
ca3b34f491 (proc_text, check_section, main):
Use size_t, not int, for lengths.
Lines now contain trailing newline.
Adapt for readline changes.
1999-07-04 10:15:45 +00:00
Jim Meyering
cdcf38b40f (find_field, different): Use size_t, not int, for lengths.
(writeline): Lines now contain trailing newline.
(check_file): Use size_t, not int, for lengths.
1999-07-04 10:14:03 +00:00
Jim Meyering
3423927cfa (writeline): Lines now contain trailing newline. 1999-07-04 10:09:44 +00:00
Jim Meyering
fac400a428 [struct linebuffer] (size): Declare to be of type size_t, not long.
[struct linebuffer] (length): Likewise.
1999-07-04 10:08:56 +00:00
Jim Meyering
894e9948f4 (readline): Append trailing newline to line. 1999-07-04 10:06:42 +00:00
Jim Meyering
ed1684742a (memrchr): Ifdef out this unused function. 1999-07-04 10:03:05 +00:00
Jim Meyering
468dd2822c *** empty log message *** 1999-07-04 09:51:09 +00:00
Jim Meyering
90f1e86e58 *** empty log message *** 1999-07-04 09:46:14 +00:00
Jim Meyering
bfbd79ca59 New test case for Paul's 1999-06-03 fix. 1999-07-04 09:46:07 +00:00
Jim Meyering
fb71ae4c86 (xfields): Only <blank>s separate fields, not <space>s. 1999-07-04 09:40:46 +00:00
Jim Meyering
5b09432a60 . 1999-07-04 09:37:57 +00:00
Jim Meyering
3ba3797506 Use lower case characters in sc{} context.
Reported by Eli Zaretskii.
1999-07-04 09:05:08 +00:00
Jim Meyering
a64b525ff4 *** empty log message *** 1999-07-04 08:48:02 +00:00
Jim Meyering
56533a5671 (enum human_inexact_style): New enum.
(human_readable_inexact): New decl.
1999-07-04 08:47:49 +00:00
Jim Meyering
8999870c56 (human_readable): New function.
(human_readable_inexact): Renamed from human_readable, with new arg
INEXACT_STYLE.  Add support for ceiling and floor.
1999-07-04 08:47:28 +00:00
Jim Meyering
40540367af (print_header): Conform to POSIX if posix_format).
(df_readable): Take ceiling if posix_format.
(ceil_percent): New function.
(show_dev): Take ceiling of percent if posix_format.
Align with POSIX-conforming header if posix_format.
1999-07-04 08:47:08 +00:00
Jim Meyering
0806bbf608 *** empty log message *** 1999-07-04 08:35:05 +00:00
Jim Meyering
589cf443b9 (__strtol): Remove decl; it doesn't work if __strtol
expands to a macro, which occurs in HP-UX 10.20 with strtoumax.
(strtol, strtoul): New decls (for pre-ANSI hosts), to replace
the above decl.
1999-07-04 08:34:31 +00:00
Jim Meyering
0430c3c938 . 1999-05-27 13:08:29 +00:00
Jim Meyering
db358e3feb *** empty log message *** 1999-05-27 13:08:19 +00:00
Jim Meyering
032571f565 Fix non-portable use of `tr' that caused this test
to fail when run with a SysV-style tr.  Based on a patch from Kaveh Ghazi.
1999-05-25 16:43:57 +00:00
Jim Meyering
b38198f365 (Squeezing): Remove misleading square brackets
from SET1 in the one-word-per-line example.
1999-05-25 16:38:19 +00:00
Jim Meyering
0e39b529b6 (copy_internal): Don't apply the umask in move_mode.
Otherwise, `mv' would not preserve the permissions when copying
between partitions.  Reported by David Godfrey
1999-05-23 23:23:55 +00:00
Jim Meyering
3957028d28 *** empty log message *** 1999-05-23 23:07:26 +00:00
Jim Meyering
97c9216e92 . 1999-05-23 21:06:36 +00:00
Jim Meyering
f914ebb255 *** empty log message *** 1999-05-23 20:46:23 +00:00
Jim Meyering
3fed986eee *** empty log message *** 1999-05-23 20:45:34 +00:00
Jim Meyering
5cd334b32e . 1999-05-23 20:44:48 +00:00
Jim Meyering
a54b71f493 *** empty log message *** 1999-05-23 20:43:11 +00:00
Jim Meyering
08f55c4b7c Correct erroneous expected output from the `cp -f foo foo' tests. 1999-05-23 20:42:25 +00:00
Jim Meyering
994746ffe9 (libfu_a_SOURCES): Add same.c.
(noinst_HEADERS): Add same.h.
1999-05-23 20:40:59 +00:00
Jim Meyering
645015312e Remove today's earlier misguided attempts.
Add a single condition to the existing sameness test.
1999-05-23 20:37:16 +00:00
Jim Meyering
642d250781 Include same.h.
(copy_internal): Qualify SAME_INODE test with (link-count == 1
|| same_name(...)).
1999-05-23 19:45:33 +00:00
Jim Meyering
00fbb65ec1 *** empty log message *** 1999-05-23 19:43:10 +00:00
Jim Meyering
0e96b5d2e7 New file (function extracted from ln.c). 1999-05-23 19:42:59 +00:00
Jim Meyering
2a8c9424f0 (same_name): Remove function.
<same.h>: Include this instead.
<dirname.h>: No longer include this.
1999-05-23 19:41:19 +00:00
Jim Meyering
96074cef79 *** empty log message *** 1999-05-23 19:38:53 +00:00
Jim Meyering
27893412b2 white-space tweak 1999-05-23 19:27:36 +00:00
Jim Meyering
ff08632036 white-space tweak 1999-05-23 19:27:07 +00:00
Jim Meyering
0868b5794a (copy_internal): Make it so `mv -f FILE FILE' does not remove FILE.
Based on a patch from Chris Yeo.
1999-05-23 14:52:32 +00:00
Jim Meyering
46945ad760 *** empty log message *** 1999-05-23 14:49:14 +00:00
Jim Meyering
78d7d7b746 *** empty log message *** 1999-05-23 13:36:37 +00:00
Jim Meyering
77cf4d48dd (TESTS): Add force.
(TESTS_ENVIRONMENT): Change PATH to be absolute.
1999-05-23 13:36:14 +00:00
Jim Meyering
e7eeacebbc *** empty log message *** 1999-05-23 04:19:10 +00:00
Jim Meyering
dee24e9fac *** empty log message *** 1999-05-23 04:01:55 +00:00
Jim Meyering
65ffd691ee *** empty log message *** 1999-05-23 03:59:08 +00:00
Jim Meyering
80ef68e006 *** empty log message *** 1999-05-22 22:10:34 +00:00
Jim Meyering
b5b54d2fed *** empty log message *** 1999-05-22 22:02:54 +00:00
Jim Meyering
1f2dc06993 *** empty log message *** 1999-05-22 22:02:00 +00:00
Jim Meyering
2b477f5dc4 (AC_REPLACE_FUNCS): Add memchr. 1999-05-22 22:00:42 +00:00
Jim Meyering
39d0a166c5 *** empty log message *** 1999-05-22 16:56:40 +00:00
Jim Meyering
dae50ead45 *** empty log message *** 1999-05-22 12:53:07 +00:00
Jim Meyering
be6aea6fb9 Document locale-specific changes to `sort',
as well as the new, POSIX-compliant definition of line comparison,
and -g's more careful treatment of NaNs, infinities and zeros.
1999-05-22 12:52:41 +00:00
Jim Meyering
9e48e223db (general_numcompare): Put exceptional cases
first, not last, to be consistent with -M.
1999-05-22 12:52:14 +00:00
Jim Meyering
59b22bd058 *** empty log message *** 1999-05-22 04:30:36 +00:00
Jim Meyering
77d5a18a9b *** empty log message *** 1999-05-22 04:29:30 +00:00
Jim Meyering
4539e57b3c . 1999-05-22 04:24:10 +00:00
Jim Meyering
668807df85 . 1999-05-22 02:53:08 +00:00
Jim Meyering
b66bd5f56c *** empty log message *** 1999-05-22 02:48:22 +00:00
Jim Meyering
7bac5533d7 (strtod): Declare if STDC_HEADERS is not defined.
(general_numcompare): Use strtod, not xstrtod.
Do not consider partial conversions to be errors.
Put -infinity at the start, and +infinity at the end;
follow +infinity with NaNs (sorted by bit pattern),
and finally by conversion errors.
1999-05-22 02:47:45 +00:00
Jim Meyering
28c635adb2 (use-nl): New test from Paul Eggert. 1999-05-22 02:41:39 +00:00
Jim Meyering
125ce0f85c tweak comment 1999-05-22 02:37:47 +00:00
Jim Meyering
157c31573e (11d): Reverse lines in expected output to reflect latest change. 1999-05-22 02:37:10 +00:00
Jim Meyering
67fbe7e2a0 remove trailing newline 1999-05-21 20:47:18 +00:00
Jim Meyering
c734236a6f *** empty log message *** 1999-05-21 20:24:39 +00:00
Jim Meyering
d6261d35c9 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.
1999-05-21 20:24:19 +00:00
Jim Meyering
db0d476b12 *** empty log message *** 1999-05-21 19:53:05 +00:00
Jim Meyering
07add9a796 . 1999-05-20 20:12:17 +00:00
Jim Meyering
46e594f9bc [AC_SEARCH_LIBS]: Quote name in undefine.
Add a colon after each `then' in case $4 is empty.
1999-05-20 20:12:12 +00:00
Jim Meyering
6501594508 . 1999-05-20 20:10:17 +00:00
Jim Meyering
d60127857c . 1999-05-20 16:51:40 +00:00
Jim Meyering
0a4ebdb1d3 *** empty log message *** 1999-05-20 16:51:29 +00:00
Jim Meyering
559f32b40d Add test case from Paul Eggert. 1999-05-20 16:48:56 +00:00
Jim Meyering
bffbff4ff2 *** empty log message *** 1999-05-20 16:29:51 +00:00
Jim Meyering
d30365509d (keycompare): Ignore any length difference if the
localized comparison says the strings are equal.
1999-05-20 16:29:38 +00:00
Jim Meyering
9a27ea2eb2 (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.
1999-05-20 16:09:12 +00:00
Jim Meyering
61b2bceab7 (MONTHTAB_CONST): Renamed from NLS_CONST; the use
is also changed.  Define to const also if !HAVE_NL_LANGINFO.

(usage): `,' -> `;' (English typo).
1999-05-20 03:52:15 +00:00
Jim Meyering
0f5bb7dd4e add the comment to go with last change 1999-05-20 03:49:25 +00:00
Jim Meyering
a0766fb80f (get_date): Let mktime deduce tm_isdst if we
have an absolute timestamp, or if the relative timestamp
mentions days, months, or years.
1999-05-20 03:47:24 +00:00
Jim Meyering
867c8b0e85 . 1999-05-19 14:31:53 +00:00
Jim Meyering
98270d63fb (main): When stdout is in binary mode, make sure all
input files are also read in binary mode.
1999-05-18 14:13:33 +00:00
Jim Meyering
d9076a130e *** empty log message *** 1999-05-17 13:10:53 +00:00
Jim Meyering
8d5798a538 *** empty log message *** 1999-05-17 13:10:31 +00:00
Jim Meyering
1ee4fffc88 (human_readable): Allow from_block_size to be zero. 1999-05-17 13:03:46 +00:00
Jim Meyering
4fd5e02337 . 1999-05-16 19:13:59 +00:00
Jim Meyering
92462cca2a . 1999-05-16 19:11:16 +00:00
Jim Meyering
a162f70539 *** empty log message *** 1999-05-16 19:09:25 +00:00
Jim Meyering
cbdd9172f9 . 1999-05-16 16:54:01 +00:00
Jim Meyering
bc48b59612 *** empty log message *** 1999-05-16 16:53:02 +00:00
Jim Meyering
901dc5cba9 *** empty log message *** 1999-05-16 16:43:22 +00:00
Jim Meyering
108ff5810f Don't autodetect the locale of numbers and
months, as this conflicts with POSIX.2 and is tricky to boot.

(FLOATING_COMMA, NLS_STRNCMP, NLS_MAX_GROUPS,
NLS_ONE_CHARACTER_STRING): Remove macros no longer used.

(nls_grouping, nls_fraction_found, nls_month_found, nos_monthtab,
nls_months_collide, nls_keyhead, us_monthtab): Remove variables no
longer used.

(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).

(keycompare, main): Don't autodetect month locale.

(compare): Don't use NLS_MEMCP in code that can't be executed if
need_locale is false, as NLS_MEMCP is equivalent to memcmp in that
case.

(sort, insertkey, main): Don't autodetect numeric locale.
1999-05-16 16:18:46 +00:00
Jim Meyering
4b11c1f734 *** empty log message *** 1999-05-16 15:50:56 +00:00
Jim Meyering
3cf365bf7e *** empty log message *** 1999-05-16 15:50:04 +00:00
Jim Meyering
f2a1097c92 . 1999-05-16 15:48:43 +00:00
Jim Meyering
3d2009b52d New file to override autoconf's AC_SEARCH_LIBS. 1999-05-16 15:48:11 +00:00
Jim Meyering
73a206d970 . 1999-05-15 06:13:00 +00:00
Jim Meyering
dad89f8b93 . 1999-05-15 05:46:45 +00:00
Jim Meyering
23d3bb9416 (usage): Whoops. 1999-05-15 05:46:12 +00:00
Jim Meyering
cd0c914437 *** empty log message *** 1999-05-15 05:42:55 +00:00
Jim Meyering
dace9c7477 . 1999-05-15 05:30:51 +00:00
Jim Meyering
1acf1ddd65 (trailing-sp): New test for this fix. 1999-05-15 05:28:51 +00:00
Jim Meyering
771bc6ea9d (xfields): Don't interpret a trailing blank as a
delimiter when e.g. -t: was specified.  From Tim Smithers.
1999-05-15 05:28:16 +00:00
Jim Meyering
634a39aad5 (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.
1999-05-15 04:50:26 +00:00
Jim Meyering
7af9c3c085 *** empty log message *** 1999-05-15 04:11:13 +00:00
Jim Meyering
d8c0345769 *** empty log message *** 1999-05-15 04:08:29 +00:00
Jim Meyering
0a25564c1c (open_maybe_create): Handle Solaris' failure mode when
FILE is a directory.  Reported by Vin Shelton.
1999-05-15 04:06:51 +00:00
Jim Meyering
7565800a11 (main): When asking for info on an explicit file name,
just warn rather than failing if the table of mounted filesystems
cannot be read.
1999-05-15 01:53:21 +00:00
Jim Meyering
2d97b1c61b (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.
1999-05-14 17:11:03 +00:00
Jim Meyering
1fdc84d5a2 *** empty log message *** 1999-05-14 16:59:46 +00:00
Jim Meyering
c93ac403ed Include <string.h> or <strings.h> for strlen prototype. 1999-05-13 20:48:44 +00:00
Jim Meyering
4c9f46a4a1 [__GLIBC__ >= 2]: #if-out prototypes. 1999-05-13 20:44:45 +00:00
Jim Meyering
59d16049d8 (pop_dir): Cast length to `int' to avoid a warning on
64-bit systems.  From Ulrich Drepper.
1999-05-13 20:42:45 +00:00
Jim Meyering
5a83986f79 (main): Put `u' for -u in getopt_long's string argument.
Remove the `R'.
1999-05-12 16:50:54 +00:00
Jim Meyering
150ca569b5 *** empty log message *** 1999-05-12 16:01:29 +00:00
Jim Meyering
048a38dc54 Use `%%' place-holder that Makefile.am rule expects. 1999-05-12 15:54:52 +00:00
Jim Meyering
ece1dc4e51 (usage): Split the --help message into two pieces so that
neither is longer than 2048.  For Irix4's cc.  Reported by Kaveh Ghazi.
1999-05-12 14:58:30 +00:00
Jim Meyering
c1a461273d (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.
1999-05-12 02:13:45 +00:00
Jim Meyering
da36bbf417 *** empty log message *** 1999-05-12 02:10:38 +00:00
Jim Meyering
74e5374045 *** empty log message *** 1999-05-11 16:30:03 +00:00
Jim Meyering
f039432d03 Fix typos in config.h comments. 1999-05-11 16:29:56 +00:00
Jim Meyering
5af7e261fa Fix typos in config.h comments. 1999-05-11 16:29:33 +00:00
Jim Meyering
ce1d9075d7 *** empty log message *** 1999-05-10 17:25:27 +00:00
Jim Meyering
c23f5758dc (AUTHORS): Reflect reality: add Kaveh. 1999-05-10 15:12:24 +00:00
Jim Meyering
af735060cb 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.
1999-05-10 14:17:09 +00:00
Jim Meyering
0ff57399ed *** empty log message *** 1999-05-10 05:24:38 +00:00
Jim Meyering
447527eeb5 Reflect renaming: AM_FUNC_MKTIME -> AC_FUNC_MKTIME. 1999-05-10 05:18:30 +00:00
Jim Meyering
d845b9a5a3 Require 2.14.1, since we use newly-renamed AC_FUNC_MKTIME. 1999-05-10 05:17:38 +00:00
Jim Meyering
f1b3fb4f3b Update from libc. 1999-05-10 04:24:49 +00:00
Jim Meyering
94323ee2a7 uncomment final rm 1999-05-09 15:59:27 +00:00
Jim Meyering
c250ac3ddc *** empty log message *** 1999-05-09 15:56:27 +00:00
Jim Meyering
badacafb98 *** empty log message *** 1999-05-09 15:13:41 +00:00
Jim Meyering
d0672fcf74 *** empty log message *** 1999-05-09 15:13:09 +00:00
Jim Meyering
91e23a4607 *** empty log message *** 1999-05-09 15:11:52 +00:00
Jim Meyering
60d62033fb *** empty log message *** 1999-05-09 15:10:33 +00:00
Jim Meyering
d02a83cba4 *** empty log message *** 1999-05-09 15:10:10 +00:00
Jim Meyering
359c6f7e38 (alpha): Put the announcement in /tmp/announce-$(distdir) 1999-05-09 15:10:02 +00:00
Jim Meyering
1554d14ce1 . 1999-05-09 15:04:17 +00:00
Jim Meyering
11f093839f *** empty log message *** 1999-05-09 15:03:58 +00:00
Jim Meyering
d1520cea68 whoops -- revert last change 1999-05-09 15:03:52 +00:00
Jim Meyering
9cc8d1f6a9 (Makefile.in): Depend on Makefile.maint. 1999-05-09 15:02:44 +00:00
Jim Meyering
48d1df6825 . 1999-05-09 15:02:16 +00:00
Jim Meyering
3a7457ae6c . 1999-05-09 15:01:52 +00:00
Jim Meyering
fe76db396c (neg-nls): New test. 1999-05-09 15:01:40 +00:00
Jim Meyering
dd992130c6 (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.
1999-05-09 03:27:24 +00:00
Jim Meyering
02d760e232 * 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).
1999-05-08 23:29:47 +00:00
Jim Meyering
4905751e2f * 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).
1999-05-08 23:28:42 +00:00
Jim Meyering
d103085de3 (handle_line_error): Use %s, not %d, now that human_readable
converts it to a string.
1999-05-07 19:15:37 +00:00
Jim Meyering
9bc1a80b4e *** empty log message *** 1999-05-07 19:00:44 +00:00
Jim Meyering
99ed77dea6 import latest 1999-05-07 18:54:34 +00:00
Jim Meyering
bda57be904 *** empty log message *** 1999-05-07 18:53:01 +00:00
Jim Meyering
07053344dc . 1999-05-07 18:52:35 +00:00
Jim Meyering
f31052628d *** empty log message *** 1999-05-07 18:49:09 +00:00
Jim Meyering
8e03e30c05 clean up 1999-05-07 18:48:45 +00:00
Jim Meyering
0ef3c5d7fc (TESTS_ENVIRONMENT): Remove individual
upper-case program names.  Add a definition of PATH.
(TESTS): Add dir-1.
1999-05-07 18:47:50 +00:00
Jim Meyering
a06a563ea4 (touch): Only do the fstat if we need to.
Resort to calling stat for directories, but only when necessary.
(usage): Mention --no-create.
1999-05-07 18:44:20 +00:00
Jim Meyering
9250d1a34f (main): Use better wording in diagnostic: `cannot
create directory' rather than `cannot make directory'.  The former
also matches the one in makepath.c.
1999-05-07 18:40:11 +00:00
Jim Meyering
a8d7df994f (apply_translations): Use TOUPPER, not toupper. 1999-05-07 18:36:54 +00:00
Jim Meyering
b10e58db1b (numcompare): Handle comparison of two negative
numbers correctly in the ENABLE_NLS case.
1999-05-06 21:51:06 +00:00
Jim Meyering
a440742330 (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'.
1999-05-06 02:10:34 +00:00
Jim Meyering
f466b6448a *** empty log message *** 1999-05-05 13:34:29 +00:00
Jim Meyering
9f8bc128f0 (read_utmp): Use the new definitions. 1999-05-05 13:34:18 +00:00
Jim Meyering
b0cc976ab9 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.
1999-05-05 13:34:02 +00:00
Jim Meyering
632b63d59c *** empty log message *** 1999-05-05 13:26:22 +00:00
Jim Meyering
1db78f41bf (show_date): Change an automatic aggregate initializer
to be a static one.  For SunOS4's cc.
1999-05-05 13:26:06 +00:00
Jim Meyering
7c48860ed8 *** empty log message *** 1999-05-05 13:21:55 +00:00
Jim Meyering
1b0901bb9e (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.
1999-05-05 13:21:29 +00:00
Jim Meyering
76a9b4dc10 *** empty log message *** 1999-05-05 13:16:42 +00:00
Jim Meyering
19d33cea2b (USE_ACL): Define this only #if
(HAVE_SYS_ACL_H && HAVE_ACL && defined GETACLCNT).
Use `USE_ACL' in place of `HAVE_ACL' everywhere else.  From Kaveh Ghazi.
1999-05-05 13:12:28 +00:00
Jim Meyering
c4ddb7f83a 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.
1999-05-05 03:05:11 +00:00
Jim Meyering
431db6c847 add missing backslash-before-newline in usage message 1999-05-05 01:56:45 +00:00
Jim Meyering
207d6b3cda add missing backslash-before-newline in usage message 1999-05-05 01:55:39 +00:00
Jim Meyering
bbefeb160b *** empty log message *** 1999-05-04 21:13:54 +00:00
Jim Meyering
89d0895332 (AC_LFS): -n32, -o32, and -n64 should be in CFLAGS,
not CPPFLAGS, so that linking works correctly in IRIX.
1999-05-04 21:13:47 +00:00
Jim Meyering
cb5153fefa (usage): Break the usage message into 3 pieces instead of
only 2.  The strings had grown to be longer than 2048, which evokes
errors when compiling with Irix4's cc.
1999-05-04 18:46:06 +00:00
Jim Meyering
b08eca15fd (search_item): Use 1' instead of +1'. The latter
elicits a syntax error from SunOS4's cc.  From Kaveh Ghazi.
1999-05-04 14:31:27 +00:00
Jim Meyering
6f922edf2d <ctype.h>: Don't include.
[!STDC_HEADERS]: Remove definitions of ctype macros.
Convert e.g., isspace to ISSPACE to use definitions from sys2.h.
Reported by Kaveh Ghazi.
1999-05-03 18:01:49 +00:00
Jim Meyering
85514c7e0b (TOLOWER): Define.
(TOUPPER): Define.
1999-05-03 17:59:43 +00:00
Jim Meyering
e060631c35 (TOLOWER): Remove definition. 1999-05-03 17:55:53 +00:00
Jim Meyering
cac31ff114 *** empty log message *** 1999-05-03 03:58:40 +00:00
Jim Meyering
f0e23dcff9 *** empty log message *** 1999-05-03 03:56:46 +00:00
Jim Meyering
b3faad27ed . 1999-05-03 02:46:54 +00:00
Jim Meyering
38121144b2 . 1999-05-03 02:45:51 +00:00
Jim Meyering
73bc7f0777 (main): Give a better diagnostic when we fail to set the hostname. 1999-05-03 02:45:37 +00:00
Jim Meyering
99571c629e (main): Manually handle `--', since we no longer call getopt. 1999-05-03 02:42:49 +00:00
Jim Meyering
4f40ac7422 (read_utmp): Ignore the return value from utmpname. 1999-05-03 02:38:50 +00:00
Jim Meyering
1610efe2fd Define several tag-related make variables.
(cvs-dist): Use the make variables instead of shell ones.
(announcement): Automatically generate diffs for all ChangeLog files,
not just the top level one.
1999-05-01 04:33:45 +00:00
Jim Meyering
1c70e83474 *** empty log message *** 1999-05-01 04:15:43 +00:00
Jim Meyering
9a06759937 *** empty log message *** 1999-05-01 04:15:09 +00:00
Jim Meyering
6161d60dde *** empty log message *** 1999-05-01 04:13:56 +00:00
Jim Meyering
e3cd439763 (AC_REPLACE_FUNCS): Add dup2. 1999-05-01 04:13:45 +00:00
Jim Meyering
5e1ffee4d6 (main): Manually handle `--', since we no longer
call getopt.  Reported by Joseph S. Myers.
1999-05-01 02:29:17 +00:00
Jim Meyering
910287474f (main): Manually handle `--', since we no longer
call getopt.  Reported by Joseph S. Myers.
1999-05-01 02:28:54 +00:00
Jim Meyering
6faa50c135 (decode_switches): Use STDIN_FILENO, STDOUT_FILENO instead of 0, 1. 1999-05-01 02:08:30 +00:00
Jim Meyering
9fca49f67c 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.
1999-05-01 02:05:56 +00:00
Jim Meyering
8a3c0671e0 *** empty log message *** 1999-05-01 00:13:13 +00:00
Jim Meyering
2f7eb5cdf5 (usage): Document the differences between the
obsolescent, +POS1[-POS2] form, and the POSIX -k option.
1999-05-01 00:12:26 +00:00
Jim Meyering
8fb3745a09 add emphasis that sort's -k M,N is inclusive 1999-04-30 22:35:54 +00:00
Jim Meyering
aaba44e639 *** empty log message *** 1999-04-30 20:59:49 +00:00
Jim Meyering
1cd88b2b5e *** empty log message *** 1999-04-30 16:48:09 +00:00
Jim Meyering
60695039c0 *** empty log message *** 1999-04-30 16:03:53 +00:00
Jim Meyering
806520fdc0 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).
1999-04-30 16:03:46 +00:00
Jim Meyering
25a8d1f1e9 (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.
1999-04-30 15:40:34 +00:00
Jim Meyering
f0e50d53d5 *** empty log message *** 1999-04-30 15:24:47 +00:00
Jim Meyering
40d99818ef (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.
1999-04-30 15:15:02 +00:00
Jim Meyering
0d6a1583c6 *** empty log message *** 1999-04-26 15:07:44 +00:00
Jim Meyering
6f48de44ae *** empty log message *** 1999-04-26 13:31:57 +00:00
Jim Meyering
9622d45140 (main): If you can't open an output file (with seek=...) read-write,
then open it for write and report an error if we can't seek.
1999-04-26 13:31:49 +00:00
Jim Meyering
890a087101 . 1999-04-26 13:25:28 +00:00
Jim Meyering
bc2e8cb6ce (utime_null): Don't pass 0666 to open; it's not needed and isn't
guaranteed to be portable.
1999-04-26 13:25:08 +00:00
Jim Meyering
22cce6dadc (S_IRWXU, S_IRWXG, S_IRWXO): Define if not defined.
Use proper mode_t types and macros.
Don't assume the traditional Unix values for mode bits.
1999-04-26 13:22:23 +00:00
Jim Meyering
82893aff55 (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.
1999-04-26 13:19:37 +00:00
Jim Meyering
c262673191 Don't assume traditional Unix mode numbering. 1999-04-26 13:14:36 +00:00
Jim Meyering
d8071546b1 Include <config.h>, <sys/types.h> for mode_t.
(struct mode_change): Members affected and value are now mode_t instead
of unsigned short.
1999-04-26 13:13:59 +00:00
Jim Meyering
d1e59e17e7 <config.h>, <sys/types.h>: Include for mode_t.
(mode_string): Now takes mode_t.
1999-04-26 13:13:36 +00:00
Jim Meyering
9afd1dd692 (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.
1999-04-26 13:13:00 +00:00
Jim Meyering
c1e3742914 (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.
1999-04-26 13:10:11 +00:00
Jim Meyering
157b3ef61f (main): Use proper mode_t types and macros.
Don't assume the traditional Unix values for mode bits.
1999-04-26 13:03:49 +00:00
Jim Meyering
73e540ea1b (do_copy, cp_option_init, main): Use proper mode_t types and macros.
Don't assume the traditional Unix values for mode bits.
1999-04-26 13:03:11 +00:00
Jim Meyering
12dd796d8a (struct cp_options.umask_kill): Use mode_t, not unsigned int. 1999-04-26 12:55:36 +00:00
Jim Meyering
d1c7f62ba8 (copy_reg, copy_internal): Use proper mode_t types and macros.
Don't assume the traditional Unix values for mode bits.
1999-04-26 12:54:51 +00:00
Jim Meyering
5d76644c3e (describe_change, change_file_mode): Use proper mode_t types and macros.
Don't assume the traditional Unix values for mode bits.
1999-04-26 12:51:43 +00:00
Jim Meyering
750e5969ff (main): Use proper mode_t types and macros.
Don't assume the traditional Unix values for mode bits.
1999-04-26 12:49:59 +00:00
Jim Meyering
6fc1cc1b6a (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.
1999-04-26 12:49:16 +00:00
Jim Meyering
9e37b40aa1 (S_ISUID, S_ISGID, S_ISVTX, S_IRWXU, S_IRWXG, S_IRWXO):
Define if not defined.
(CHMOD_MODE_BITS): New macro.
1999-04-26 12:48:12 +00:00
Jim Meyering
ebb207dc5a (open_maybe_create): Don't pass 0666 to open; it's not needed and isn't
guaranteed to be portable.
1999-04-26 12:47:33 +00:00
Jim Meyering
d0eeabbc32 Use proper mode_t types and macros.
Don't assume the traditional Unix values for mode bits.
1999-04-26 12:20:54 +00:00
Jim Meyering
259838277b Use proper mode_t types and macros.
Don't assume the traditional Unix values for mode bits.
1999-04-26 12:20:26 +00:00
Jim Meyering
0b6ee7158e Use proper mode_t types and macros.
Don't assume the traditional Unix values for mode bits.
1999-04-26 12:19:37 +00:00
Jim Meyering
3baa7fa854 (main): Revert last change.
Instead, loop on `optind < argc' to protect use of argv[optind].
1999-04-26 02:19:51 +00:00
Jim Meyering
0d13ededce revert last change 1999-04-26 02:18:09 +00:00
Jim Meyering
a3a4a31c22 . 1999-04-26 00:40:42 +00:00
Jim Meyering
bf73dd5297 (main): Handle the case in which seq is given no args. 1999-04-26 00:39:47 +00:00
Jim Meyering
6002b5a2ed *** empty log message *** 1999-04-25 19:20:40 +00:00
Jim Meyering
1c9a7ba541 <inttypes.h>: Include it here instead.
<config.h>: Include it here too.
1999-04-25 19:20:18 +00:00
Jim Meyering
e3a368948e Don't include inttypes.h here. 1999-04-25 19:18:55 +00:00
Jim Meyering
12bf2f8f8b [NDEBUG]: Remove definition. 1999-04-25 19:18:20 +00:00
Jim Meyering
d12ba36443 *** empty log message *** 1999-04-25 12:11:52 +00:00
Jim Meyering
007f495c2f *** empty log message *** 1999-04-25 04:38:15 +00:00
Jim Meyering
0de4165e66 *** empty log message *** 1999-04-24 21:38:27 +00:00
Jim Meyering
f90a5e94b8 (print_entry): Use #if', not #ifdef HAVE_UT_HOST'. 1999-04-24 21:29:22 +00:00
Jim Meyering
88fc9ef946 *** empty log message *** 1999-04-24 13:14:25 +00:00
Jim Meyering
fc6db4f55a *** empty log message *** 1999-04-24 13:14:11 +00:00
Jim Meyering
a279b3a84b . 1999-04-24 13:00:16 +00:00
Jim Meyering
a56886d93d *** empty log message *** 1999-04-24 12:59:26 +00:00
Jim Meyering
82105f5876 *** empty log message *** 1999-04-24 12:58:07 +00:00
Jim Meyering
ea07044f83 . 1999-04-24 12:57:43 +00:00
Jim Meyering
b67ee7857a *** empty log message *** 1999-04-24 12:53:50 +00:00
Jim Meyering
6796615496 *** empty log message *** 1999-04-24 12:53:19 +00:00
Jim Meyering
88c9f81346 Include new "xstrtol.h", not "xstrtoul.h". 1999-04-24 12:43:39 +00:00
Jim Meyering
55865fda6c 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.
1999-04-24 12:42:53 +00:00
Jim Meyering
bdb9cd3f2c Include new "xstrtol.h", not "xstrtoul.h". 1999-04-24 12:33:56 +00:00
Jim Meyering
cef6937705 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.
1999-04-24 12:33:25 +00:00
Jim Meyering
34942b9da8 import latest 1999-04-23 04:20:42 +00:00
Jim Meyering
4cbb965035 *** empty log message *** 1999-04-22 15:19:11 +00:00
Jim Meyering
62edaf0b55 (word32): Don't use `#error'; it runs afoul of SunOS 4.1.4 cc. 1999-04-22 14:38:50 +00:00
Jim Meyering
c274f255c3 *** empty log message *** 1999-04-22 14:37:17 +00:00
Jim Meyering
e7fa925898 Guard strong_alias and weak_alias with #ifdef _LIBC. 1999-04-22 14:35:59 +00:00
Jim Meyering
b003c8fdfa Don't bother with pot-mail anymore -- Francois needs merely the URL. 1999-04-22 01:24:34 +00:00
Jim Meyering
2279aec4a3 . 1999-04-21 23:17:13 +00:00
Jim Meyering
1f74a371e0 . 1999-04-21 23:16:48 +00:00
Jim Meyering
ae295f9bab . 1999-04-21 04:34:29 +00:00
Jim Meyering
28a81b47c1 . 1999-04-21 04:30:22 +00:00
Jim Meyering
9b56140087 *** empty log message *** 1999-04-21 04:29:00 +00:00
Jim Meyering
8907976270 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.
1999-04-21 04:28:36 +00:00
Jim Meyering
3354e7502c Update to glibc 2.1.1 version. 1999-04-21 04:27:24 +00:00
Jim Meyering
64bae48df6 . 1999-04-21 04:24:39 +00:00
Jim Meyering
9d3c3cb2c7 *** empty log message *** 1999-04-21 04:22:15 +00:00
Jim Meyering
9a16aa9fde *** empty log message *** 1999-04-21 04:21:50 +00:00
Jim Meyering
a6f5dd6269 (jm_CHECK_ALL_TYPES): Require jm_AC_TYPE_UNSIGNED_LONG_LONG. 1999-04-21 04:21:44 +00:00
Jim Meyering
9174cee25d (AC_CHECK_FUNCS): Remove strtoull, strtoumax, strtouq. 1999-04-21 04:14:59 +00:00
Jim Meyering
7d98d28569 *** empty log message *** 1999-04-21 04:04:20 +00:00
Jim Meyering
e441de9acc (jm_AC_TYPE_UINTMAX_T): Move unsigned long
long check into new jm_AC_TYPE_UNSIGNED_LONG_LONG macro.
1999-04-21 04:04:04 +00:00
Jim Meyering
36ca174d81 *** empty log message *** 1999-04-21 04:00:48 +00:00
Jim Meyering
76659f726f Require jm_AC_TYPE_UNSIGNED_LONG_LONG.
Replace xstroull if necessary.
1999-04-21 04:00:38 +00:00
Jim Meyering
42a64ac80e *** empty log message *** 1999-04-21 03:58:57 +00:00
Jim Meyering
6783ad7832 *** empty log message *** 1999-04-21 03:24:54 +00:00
Jim Meyering
e8b570e45a update comment 1999-04-21 03:19:26 +00:00
Jim Meyering
cf6eaeb03b <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.
1999-04-21 03:18:23 +00:00
Jim Meyering
42ccae28c6 . 1999-04-21 02:30:43 +00:00
Jim Meyering
c850864a19 . 1999-04-21 02:29:50 +00:00
Jim Meyering
c93a59ac4f . 1999-04-21 02:28:20 +00:00
Jim Meyering
abc54153b1 *** empty log message *** 1999-04-21 02:21:57 +00:00
Jim Meyering
c4a52014f7 Port to AIX and HP-UX. Support cross-compilation. 1999-04-21 02:21:47 +00:00
Jim Meyering
c7a0b8f429 <config.h>: Include first, since it can do
things like #define const, and this must be done before
including any system headers.
1999-04-20 13:26:06 +00:00
Jim Meyering
154588d722 (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.
1999-04-20 13:24:14 +00:00
Jim Meyering
f9270b650f *** empty log message *** 1999-04-19 14:09:07 +00:00
Jim Meyering
5f724e01b9 *** empty log message *** 1999-04-19 14:06:07 +00:00
Jim Meyering
c37f2f6355 (main): Restore `+' in getopt_long string. Otherwise,
commands like `seq 10 -2 0' wouldn't work.  From Andreas Schwab.
1999-04-19 14:05:34 +00:00
Jim Meyering
dcf32e94d2 *** empty log message *** 1999-04-19 14:03:17 +00:00
Jim Meyering
3e47e246f8 *** empty log message *** 1999-04-19 05:25:52 +00:00
Jim Meyering
d5c056d478 (b_host): Remove /pub suffix. 1999-04-19 05:22:54 +00:00
Jim Meyering
da96ede53c *** empty log message *** 1999-04-19 04:50:25 +00:00
Jim Meyering
6a9f42807f (my-distcheck): Use AMTAR, not TAR. 1999-04-19 04:50:03 +00:00
Jim Meyering
36564cbefd . 1999-04-19 04:45:09 +00:00
Jim Meyering
95836befb3 *** empty log message *** 1999-04-19 04:24:35 +00:00
Jim Meyering
0b8e81aab9 . 1999-04-19 04:20:57 +00:00
Jim Meyering
a0119464b8 *** empty log message *** 1999-04-19 02:56:54 +00:00
Jim Meyering
00811477e8 *** empty log message *** 1999-04-19 02:54:53 +00:00
Jim Meyering
e144c80776 Require jm_AC_PREREQ_XSTRTOUMAX. 1999-04-19 02:54:48 +00:00
Jim Meyering
ac4f985ac9 *** empty log message *** 1999-04-19 02:53:36 +00:00
Jim Meyering
560d7d9dac . 1999-04-19 02:42:58 +00:00
Jim Meyering
e7a7a48ee6 . 1999-04-19 02:39:52 +00:00
Jim Meyering
95e8d410ff (tempname): Wrap after 99999 only for length-impaired file systems. 1999-04-19 02:39:09 +00:00
Jim Meyering
d3b1ca9174 (main, longopts):
Use -u instead of -R for --remove, so that we can preserve
future compatibility with rm.
1999-04-19 02:15:09 +00:00
Jim Meyering
d70fb569fb [!HAVE_CONFIG_H] (ST_BLKSIZE): Define to 65536.
(do_wipefd): Use ST_BLKSIZE instead of referring to the st_blksize
member directly.
1999-04-19 02:13:01 +00:00
Jim Meyering
e5e1c6d4fd *** empty log message *** 1999-04-19 00:20:36 +00:00
Jim Meyering
d17b6bc300 *** empty log message *** 1999-04-18 23:20:24 +00:00
Jim Meyering
114946fdb0 Include xstrtol.h.
(parse_integer): Migrate most of the work into the new xstrtoumax fn.
1999-04-18 23:18:48 +00:00
Jim Meyering
30edff7a36 Include xstrtol.h, not xstrtoul.h, since xstrtol.h now defines all the
xstrto... functions.
1999-04-18 23:18:32 +00:00
Jim Meyering
d3ffbea816 Include xstrtol.h, not obsolete file xstrtoul.h. 1999-04-18 23:18:09 +00:00
Jim Meyering
cc7d631369 <stdlib.h>: Include if HAVE_STDLIB_H, since bison 1.27 invokes "free".
(LookupWord, yylex): Don't pass negative char to ctype macros.
1999-04-18 23:17:30 +00:00
Jim Meyering
4e8d80cad7 (xalloc_fail): Pass xalloc_msg_memory_exhausted through gettext. 1999-04-18 23:17:05 +00:00
Jim Meyering
a1d8c38553 (libfu_a_SOURCES): Add xstrtoumax.c.
(noinst_HEADERS): Remove xstrtoul.h.
1999-04-18 23:16:49 +00:00
Jim Meyering
0501984933 (__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.
1999-04-18 23:16:23 +00:00
Jim Meyering
f8474e2421 (__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.
1999-04-18 23:15:34 +00:00
Jim Meyering
ddd5fa0ce5 (STRING_TO_UNSIGNED): Remove.
(__strtol, __strtol_t, __xstrtol): New macros.
1999-04-18 23:15:02 +00:00
Jim Meyering
a7a7424b8b Include xstrtol.h, not obsolete file xstrtoul.h.
"human.h", "xalloc.h": Include.
(attribute): Remove; no longer needed.
(xstrdup): New decl.
(STDOUT_FILENO): New macro.
(O_NOCTTY): Make sure it's always defined, even if HAVE_CONFIG_H.

The following changes have effect only if !HAVE_CONFIG_H.
<ctype.h>: New include.
(RETSIGTYPE): Remove bogus semicolon at end.
(STDOUT_FILENO, uintmax_t, human_readable, LONGEST_HUMAN_READABLE):
New macros.
(xstrtoumax): Renamed from xstrtoul, with corresponding type changes.
Handle suffixes like the real routine does.
(error): Remove bogus assignment of errno to errnum.
(xmalloc, xstrdup): New functions.

(O_NOCTTY): Define even if !HAVE_CONFIG_H.
(S_ISFIFO, S_ISSOCK): New macros, if not already defined.
(OUTPUT_BLOCK_SIZE): New macro.
(struct Options.verbose): Now a boolean, since we no longer have two
levels of verbosity.
(long_opts, usage, main): Remove -D or --device option.  Invert -p or
--preserve option, and rename it to -R or --remove.
(usage): Describe G suffix.
(usage): "-" no longer conflicts with -v.
(UCHAR_MAX): Indent `#error' so that SunOS 4.1.4 cc doesn't reject it.
(ind): Portability fixes: return word32, not unsigned; multiply by
sizeof (word32) instead of shifting left by 2.
(isaac_refill, isaac_mix): Comment out size of array parameter, as
ansi2knr mishandles this.
(status_visible, status_pos, pfstatus, flushstatus): Remove, since
pfstatus isn't portable to users with varying width fonts, or
internationalized messages, and vfprintf is problematic.  All callers
of pfstatus changed to use error instead; this removes incompatibility
of -v with -.  All calls to flushstatus removed.
(dopass, do_wipefd): Do not translate non-English msgs with gettext.

(dopass): Cast lseek constant arguments to (off_t) for benefit
of pre-ANSI compilers; fix one lseek call whose args were interchanged.
Remove unnecessary casts to (off_t).  Do not check for EIO
when determining file size; this was just my earlier wild guess.
Use human_readable to print off_t, instead of casting to unsigned long
(which doesn't work in Solaris 2.6, where off_t is longer than long).
Output human-readable sizes, instead of always using "K".
Check for offset overflow (it happened to me in SunOS 4.1.4).
(do_wipefd): Do not insist on regular files, but do check for special
files that cannot possibly be shredded.
Use xmalloc instead of malloc + check.
Do not inspect st_size for non-regular files.
Try to find the size of a non-regular file by seeking to its end.
Do not assume that a regular file of size-0 has unknown size.
Check for regular files with negative sizes,
and for overflow after rounding to next block.
Always try to truncate, even for special files, but do not report an
error if truncation fails on a special file.

(dopass, wipefile): Do not return 1 for special files; the caller
doesn't care any more.

(wipefd): Remove unnecessary (and nonportable) check for
whether the file descriptor is read-only.  Remove
no-longer-needed check for `-v -'.

(incname): Return 1 for carry bit, like the documentation says.

(wipename, wipefile): Accept new argument, specifying the
quoted file name.  All callers changed.

(wipename): Use xstrdup instead of strdup+error check.

(wipefile): Check for ENOTDIR when opening /dev/fd/NNN. Check for
errors in NNN more carefully. Restore errno after the check.
Check for errors when closing the file descriptor.
Use more consistent wording when unable to remove a file.

(main): Do not remove files by default.
Use xstrtoumax instead of xstrtoul uniformly, since xstrtoul won't
exist if !HAVE_CONFIG_H.
In diagnostics, quote invalid operands to -n and -s options.
Allow T, P, E, Z, and Y suffixes in -s operand.
flags.verbose is now a boolean, not a counter.
Use STDOUT_FILENO instead of 1, for clarity.
1999-04-18 23:13:57 +00:00
Jim Meyering
69b1c4026c (tempname): Add a FIXME comment. 1999-04-18 15:57:19 +00:00
Jim Meyering
0fe4e6b443 (NAME_MAX_IN_DIR): Rename from PATH_MAX_IN_DIR. Use _POSIX_NAME_MAX,
not _POSIX_PATH_MAX.  Guard with #if HAVE_PATHCONF rather than
#if HAVE_UNISTD_H.
1999-04-18 15:44:03 +00:00
Jim Meyering
8cee2c6772 Rename global: s/temp_file_prefix/temp_dir/. 1999-04-18 14:40:20 +00:00
Jim Meyering
eb4109b66e (usage): s/DIRECT/DIRECTORY/g 1999-04-18 14:38:24 +00:00
Jim Meyering
e0cbae44cd *** empty log message *** 1999-04-18 13:32:44 +00:00
Jim Meyering
8f913cc64f (main): Open the output file with *read* access
only if we might need to read to satisfy a `seek=' request.
From Matthias Urlichs.
1999-04-18 13:32:35 +00:00
Jim Meyering
64dec9fafb *** empty log message *** 1999-04-18 13:31:34 +00:00
Jim Meyering
a625377e8c *** empty log message *** 1999-04-18 03:25:23 +00:00
Jim Meyering
c5027d831c . 1999-04-18 02:16:56 +00:00
Jim Meyering
f4143898b2 *** empty log message *** 1999-04-17 14:41:38 +00:00
Jim Meyering
5101382ec6 *** empty log message *** 1999-04-17 11:56:21 +00:00
Jim Meyering
dd886e9690 (file_lines): Fix serious bug introduced with last changes.
From Andreas Schwab.
1999-04-17 11:50:03 +00:00
Jim Meyering
6a821331eb . 1999-04-15 14:09:04 +00:00
Jim Meyering
d679966505 *** empty log message *** 1999-04-15 14:03:06 +00:00
Jim Meyering
f01319465c rename .posix-warn to .env-warn 1999-04-15 13:59:14 +00:00
Jim Meyering
1dbd1aff6f . 1999-04-15 13:49:45 +00:00
Jim Meyering
69e1d626bd Add comments.
(init_header): Tweak white space in Date/Time header.
1999-04-15 13:49:13 +00:00
Jim Meyering
609582a161 new tests from Roland 1999-04-15 13:26:50 +00:00
Jim Meyering
bc95e393d8 Updated tests.
From Roland Huebner.
1999-04-15 13:26:44 +00:00
Jim Meyering
379dcf4c48 . 1999-04-15 12:45:57 +00:00
Jim Meyering
ffd4e9684a *** empty log message *** 1999-04-14 03:12:27 +00:00
Jim Meyering
809b33b2ff new version via automake 1999-04-13 14:44:33 +00:00
Jim Meyering
2a8c4e283e *** empty log message *** 1999-04-13 02:57:40 +00:00
Jim Meyering
e6bc0dccbc (main): Declare out_dev to be of type dev_t, not `int'.
Declare out_ino to be of type ino_t, not `int'.
1999-04-13 01:11:46 +00:00
Jim Meyering
b6d265e347 * src/od.c (MIN, MAX): Remove definitions.
* src/sys2.h (MIN, MAX): Define here instead.
1999-04-13 01:09:15 +00:00
Jim Meyering
4de61e5f98 . 1999-04-12 04:28:05 +00:00
Jim Meyering
1f6f06f7de (test_vector): Disable all tests while I wait for an updated suite. 1999-04-12 04:27:46 +00:00
Jim Meyering
69d1c5772e *** empty log message *** 1999-04-12 04:00:10 +00:00
Jim Meyering
d577eef9e4 *** empty log message *** 1999-04-12 03:54:57 +00:00
Jim Meyering
a36f86a13e . 1999-04-12 03:47:40 +00:00
Jim Meyering
924b7e2291 . 1999-04-12 03:47:17 +00:00
Jim Meyering
2e2161c97a (COPY_TO_EOF): Define.
(dump_remainder): Add parameter, n_bytes, and rewrite to use it.
Update callers.
(file_lines): Rename parameter.
(tail_bytes): Remove obsolete comment.
1999-04-12 03:22:24 +00:00
Jim Meyering
f3df8336ae Fix the problem whereby `yes > k & tail -1 k' would infloop.
(dump_remainder): Move this function to precede the new use in file_lines.
(tail_lines): Don't call dump_remainder here.
(file_lines): Call dump_remainder here instead.
1999-04-11 17:59:28 +00:00
Jim Meyering
a66cc3009b *** empty log message *** 1999-04-11 13:26:42 +00:00
Jim Meyering
cf3d3f1e6e (readtoken, readtokens): Protoize. 1999-04-11 13:25:52 +00:00
Jim Meyering
832dfa7e1f (xwrite): Use STDOUT_FILENO instead of literal `1'. 1999-04-11 03:42:21 +00:00
Jim Meyering
35af2e8613 *** empty log message *** 1999-04-11 03:24:12 +00:00
Jim Meyering
de9d4e9f91 (alpha): Add trailing slash for ncftp. 1999-04-11 03:24:04 +00:00
Jim Meyering
fb059dc67c *** empty log message *** 1999-04-11 02:19:51 +00:00
Jim Meyering
12562e897d . 1999-04-11 02:17:48 +00:00
Jim Meyering
cc40ff77a8 . 1999-04-11 02:17:20 +00:00
Jim Meyering
294b139566 *** empty log message *** 1999-04-11 02:15:26 +00:00
Jim Meyering
54047adacd *** empty log message *** 1999-04-11 01:45:44 +00:00
Jim Meyering
4d062fbe6d *** empty log message *** 1999-04-11 01:44:26 +00:00
Jim Meyering
23dfcdb368 `ls --color' would segfault
Include assert.h.
(color_indicator[]): Add an entry for the type, `door.'
(main): Assert that the lengths of the color_indicator and
indicator_name arrays are appropriately related.
1999-04-11 01:43:34 +00:00
Jim Meyering
e6a9ce41b6 *** empty log message *** 1999-04-11 01:35:01 +00:00
Jim Meyering
03e24361ee (scanargs): Fix bug introduced with last change: now that
the loop is gone, manually decrement argc and increment argv.
1999-04-11 01:32:28 +00:00
Jim Meyering
24c8bc7107 *** empty log message *** 1999-04-08 13:44:31 +00:00
Jim Meyering
4ab8ea3cb7 (Options for date): Document --iso-8601 1999-04-08 13:44:19 +00:00
Jim Meyering
75e403b3b3 Accept new option: --iso-8601. 1999-04-08 13:44:00 +00:00
Jim Meyering
367c2367a6 *** empty log message *** 1999-04-07 17:43:47 +00:00
Jim Meyering
1ff7d4be9b (difftm): Protoize. 1999-04-07 17:43:36 +00:00
Jim Meyering
43dcc7ef21 . 1999-04-07 17:43:12 +00:00
Jim Meyering
b655fc9cf7 . 1999-04-07 17:41:57 +00:00
Jim Meyering
b6dfae5d0e *** empty log message *** 1999-04-07 12:53:22 +00:00
Jim Meyering
1f8c95df83 split long line 1999-04-06 17:26:07 +00:00
Jim Meyering
2af4373a90 Update from master source in libc, removing %f. 1999-04-06 14:22:06 +00:00
Jim Meyering
20203a77e1 *** empty log message *** 1999-04-06 14:15:04 +00:00
Jim Meyering
d712631a71 Remove test for %f. 1999-04-06 14:14:58 +00:00
Jim Meyering
2d9a947471 *** empty log message *** 1999-04-05 03:51:33 +00:00
Jim Meyering
47a4b79f74 Comment out the test added on 1999-01-31. 1999-04-05 03:51:17 +00:00
Jim Meyering
b967ecb86b (url_dir_list): Define properly.
(real_dir_list): Likewise.
1999-04-05 02:00:03 +00:00
Jim Meyering
4fa4d097bd *** empty log message *** 1999-04-04 23:15:20 +00:00
Jim Meyering
5050912be0 Don't include string.h.
[!HAVE_CONFIG_H]: Include string.h here.
[!HAVE_CONFIG_H]: Hard-code RETSIGTYPE to `int'.
(sigill_handler): Change return type and type of local `oldhandler' to
RETSIGTYPE.
(isaac_seed_machdep): Change and type of local `oldhandler' to
RETSIGTYPE.
1999-04-04 23:15:07 +00:00
Jim Meyering
a147c61141 use dquotes, not squotes 1999-04-04 21:07:25 +00:00
Jim Meyering
4afd87dd11 *** empty log message *** 1999-04-04 20:54:30 +00:00
Jim Meyering
339497e1f4 *** empty log message *** 1999-04-04 16:02:28 +00:00
Jim Meyering
62528b9cf8 Change the sed command used to extract the
filename from ls -l output, to accommodate the change in format.
1999-04-04 16:00:50 +00:00
Jim Meyering
50c573d457 Add case_GETOPT_* cases. 1999-04-04 15:46:31 +00:00
Jim Meyering
96309d1da7 *** empty log message *** 1999-04-04 15:44:58 +00:00
Jim Meyering
d815c152df Standardize --help and --version processing. 1999-04-04 15:44:26 +00:00
Jim Meyering
25abb410d4 define/use AUTHORS 1999-04-04 14:44:45 +00:00
Jim Meyering
baa8cd4493 *** empty log message *** 1999-04-04 14:43:27 +00:00
Jim Meyering
d008b48e3b (print_long_format): Add a space between %s and %3u. This
assures that even when modebuf has the trailing `+' and there are more
than 99 hard links to a file, the permissions string and the link count
will be separated.
1999-04-04 14:41:43 +00:00
Jim Meyering
5b86bf7cde import latest 1999-04-04 14:33:18 +00:00
Jim Meyering
54ec5153c5 (S_IWUSR): Define if not already defined. 1999-04-04 14:32:58 +00:00
Jim Meyering
6369a887ba . 1999-04-04 14:30:44 +00:00
Jim Meyering
42edc330ed fix comments
add FIXME
1999-04-04 14:30:30 +00:00
Jim Meyering
e0e1dc0bf8 (dopass): add curly braces to avoid warning about ambiguous `else'.
(wipefd): Add parentheses suggested by gcc.
(do_wipefd): Remove declaration of unused local.
1999-04-04 04:54:34 +00:00
Jim Meyering
f381610dd5 [!HAVE_CONFIG_H] (xstrtoul, error, close_stdout): Added stubs
to allow standalone compilation.

(wipefile): Added support for emulating /dev/fd/# files even if
the OS doesn't support them.  From Paul Eggert.

(main, usage): Changed --device short option to -D.

(wipefd, do_wipefd): Renamed function to do_wipefd and added
separate wipefd that performs sanity checks on externally-opened file
descriptors, such as not append-only.  From Paul Eggert.

(do_wipefd, isaac_seedfd): Do not read file for any reason.
if the file is low-entropy, it's a security hole.
(wipefile) Changed to open O_WRONLY and chmod to write-only when
forcing.
(isaac_seedfd) Function deleted as unnecessary.
From Paul Eggert.

(dopass): Dynamically fall back to fsync() if fdatasync() fails,
since POSIX, in their infinitesimal wisdom, encourage implementations
that return constant -1, making compile-time testing useless.
From Paul Eggert.

(dopass): Changed to support a size of -1 to mean "unknown".
This entailed changing to a counting-up offset rather than couting-down
cursize for the central state variable.  Also changed size argument to
be call-by-reference so that it can be passed back once known.
(sizer) Function deleted as unnecessary.
(wipefd): Changed to match.  From Paul Eggert

(dopass): Try to skip over bad blocks in destination files.
Also added ftruncate() for more complete destruction of metadata.

(main, usage): Changed "-" to stand for standard output.
(wipefd): Added error message to detect conflict with -v.

(dopass): Added periodic fsync() calls to keep the pass progress
display in sync with reality.  Hopefully they're sufficiently far spaced
that throughput isn't affected.  It might be a good thing to do even in
non-verbose mode, to avoid filling up the kernel caches with dirty data.
Also added ftruncate() for more complete destruction of metadata.

(quotearg_colon): New function to print
pathological filenames properly.
[!HAVE_CONFIG_H] (quotearg_colon_buf) New internal helper function
that does most of the work.
(wipefd, do_wipefd, dopass) Now take a qname (pre-quoted name) argument.
(wipename, wipefile, main) Changed diagnostics to use quotearg_colon.
Error messages are also in a more uniform format.
From Paul Eggert.

(struct Options, main, do_wipefd): Added -s/--size=N flag.
(xstrtoul): Added support for valid_suffixes to help this.
(usage) Documented it.

(error): Changed some arguments from N_() to _(), since error()
does not translate its argument.  I think this is a bug.

(struct Options do_wipefd, wipefd, wipefile, main): moved passes
argument into the Options structure as n_iterations, which is now a
size_t.  From Paul Eggert.

(isaac_seed_start, isaac_seed_data, isaac_seed_finish): New functions
to manage seeding of RNG with arbitrary-sized data.
(isaac_init): commented out as dead code.
(isaac_seed): changed to use new functions to prevent any possibility of
a buffer overflow.

(isaac_seed): Added support for Solaris' gethrtime()
configure.in: Corresponding feature test.  From Paul Eggert.

(wipename): Change remove() to unlink() for speed & portability.
Use lstat() instead of access() to see if a filename is taken.  This
works even on dangling symlinks and avoids the suid problems of
access(2).  From Paul Eggert.

(isaac_seed_machdep): New function for reading cycle counters
1999-04-04 04:37:39 +00:00
Jim Meyering
034df8db20 *** empty log message *** 1999-04-04 04:34:16 +00:00
Jim Meyering
8fe009ed7c back out Paul's changes 1999-04-04 02:34:49 +00:00
Jim Meyering
c21cecaea8 Use AUTHORS in place of string in parse_long_options call. 1999-04-03 05:26:48 +00:00
Jim Meyering
1d47220ab2 Insert AUTHORS definition. 1999-04-03 05:22:05 +00:00
Jim Meyering
cf691ec714 Use PROGRAM_NAME in place of string in parse_long_options call. 1999-04-03 05:20:06 +00:00
Jim Meyering
7c2d5de6c7 define PROGRAM_NAME 1999-04-03 05:01:48 +00:00
Jim Meyering
db6ce0481b *** empty log message *** 1999-04-03 03:29:41 +00:00
Jim Meyering
98327bba60 (S_IWUSR): Define if not already defined. 1999-04-03 03:29:17 +00:00
Jim Meyering
a29afcb470 (isaac_seed): Don't overrun the s->mm buffer.
Use gethrtime if available.  Don't assume that clock_gettime succeeds.
Put most random sources first.
1999-04-03 03:27:57 +00:00
Jim Meyering
bf504d2a46 Add new options -bcCklL and fix some porting problems.
Remove options -dp.  Do not read output files.

(long_opts, usage, main, wipefile): Adjust to new options.
("human.h", "quotearg.h"): New includes.
(struct Options): New members contents, links, n_iterations.
Remove allow_devices, remove_file.  Change n_iterations to size_t.
All uses changed.
(output_block_size): New var.
(usage): Declare __noreturn__ attribute.
(fdatasync): Define to -1 if not present, since we need to invoke both
fdatasync and fsync if both are present.  All invokers of fdatasync
now try fdatasync, then fsync.
(MIXIN): New macro.
(isaac_seed): Use it to mix in values.  Add uid, gid to mix.
Don't use gettimeofday, as it has too many porting problems.
(isaac_seedfd): Remove, since we no longer read the output files.
(sizefd): Remove; we now determine size by writing sequentially.
(dopass, wipename, wipefile, main): Clean up error messages.
(dopass): Keep track of offset relative to start of file, not
end, since we may not know how large the file is.  If size is
negative, write until we fall off the end of the file.
(wipefd): Do not read output file.
Return 0 if successful, -1 if not; do not make a special case for
non-regular files, since our callers have that info now.
(wipename): Now static.  Return errno if error.
(main): "-" now stands for standard output.
Do not shred append-only standard output.
(wipefile): Do not grant read permission to file when wiping it.
Use symbolic permission (S_IWUSR), not octal.
From Paul Eggert.
1999-04-03 03:27:27 +00:00
Jim Meyering
ce9c687d5a [HAVE_SYS_ACL_H]: Include sys/acl.h.
(struct fileinfo): New member `have_acl'.
(gobble_file): Initialize it.
(print_long_format): Use it.
Mostly from Alen Muzinic.
1999-04-02 05:38:15 +00:00
Jim Meyering
eaaff3246a *** empty log message *** 1999-04-02 04:24:48 +00:00
Jim Meyering
7ba3c38741 *** empty log message *** 1999-04-02 04:20:17 +00:00
Jim Meyering
c69d22ae26 *** empty log message *** 1999-04-02 04:15:14 +00:00
Jim Meyering
35aee6bf13 (open_maybe_create): New function.
(touch): Rewrite not to use `creat' and to eliminate a race
condition that could make touch truncate a nonempty file.
Report and suggestions from Andrew Tridgell.
1999-04-02 02:55:10 +00:00
Jim Meyering
ac03113efe *** empty log message *** 1999-04-02 02:47:58 +00:00
Jim Meyering
bbea0501a9 *** empty log message *** 1999-04-01 05:16:46 +00:00
Jim Meyering
a7b641acd5 (main): Qualify a char* with the `const' keyword. 1999-04-01 05:15:37 +00:00
Jim Meyering
c4cf0531ff (main): Qualify a char* with the `const' keyword. 1999-04-01 05:10:41 +00:00
Jim Meyering
a7d0351c20 (install_file_in_dir): Qualify a char* with the `const' keyword. 1999-04-01 05:09:59 +00:00
Jim Meyering
beb464c0ea (main): Qualify a char* with the `const' keyword. 1999-04-01 05:08:22 +00:00
Jim Meyering
d8a18c33e8 (main): Qualify a char* with the `const' keyword. 1999-04-01 05:07:51 +00:00
Jim Meyering
abdc079cd5 Remove prototypes and tsort function definitions. 1999-04-01 05:05:17 +00:00
Jim Meyering
d0b9ad729c (main): Qualify a char* with the `const' keyword. 1999-04-01 04:58:29 +00:00
Jim Meyering
24df6275fb (main): Move the declaration of `e' into the scope
where it's used and make it `const'.
1999-04-01 04:56:28 +00:00
Jim Meyering
2500fe4079 (main): Qualify a char* with the `const' keyword. 1999-04-01 04:53:13 +00:00
Jim Meyering
3a3189e6c3 (touch): Qualify a char* with the `const' keyword. 1999-04-01 04:47:55 +00:00
Jim Meyering
db3c0ffb44 . 1999-03-31 15:21:00 +00:00
Jim Meyering
8935f38d4e *** empty log message *** 1999-03-31 06:02:07 +00:00
Jim Meyering
667799f7e2 Don't include closeout.h or version-etc.h explicitly. Now, they're included via sys2.h. 1999-03-31 05:59:13 +00:00
Jim Meyering
d30f9691c1 *** empty log message *** 1999-03-31 05:54:11 +00:00
Jim Meyering
fdd07e3d2b No longer include long-options.h.
[long_options]: Add entries for --help and --version.
Remove parse_long_options call.
(main) [getopt switch]: Add a case for each of --help and --version.
1999-03-31 05:52:46 +00:00
Jim Meyering
419aa42181 Include "closeout.h" and "version-etc.h" 1999-03-31 05:52:46 +00:00
Jim Meyering
516b48e7a2 (AUTHORS): Actually define and use. 1999-03-31 05:06:42 +00:00
Jim Meyering
03c1b8518c (PROGRAM_NAME, AUTHORS): Define and use. 1999-03-31 04:16:08 +00:00
Jim Meyering
39090114f0 (PROGRAM_NAME, AUTHORS): Define and use. 1999-03-31 04:11:35 +00:00
Jim Meyering
b2513fc340 import latest 1999-03-30 15:11:20 +00:00
Jim Meyering
b989ccb248 . 1999-03-30 05:40:40 +00:00
Jim Meyering
2067a9fe97 . 1999-03-30 04:52:57 +00:00
Jim Meyering
a717cdf2d6 (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.
1999-03-30 04:51:08 +00:00
Jim Meyering
bb0631e825 *** empty log message *** 1999-03-30 04:48:57 +00:00
Jim Meyering
9dab31b501 (rmdir): Use pid_t instead of int; check status
against zero.  This is to improve portability.
1999-03-30 04:48:41 +00:00
Jim Meyering
2080baecff (rename): Use pid_t instead of int; check status
against zero.  This is to improve portability.
1999-03-30 04:48:17 +00:00
Jim Meyering
69952761e1 (mkdir): Use pid_t instead of int; check status
against zero.  This is to improve portability.
1999-03-30 04:47:52 +00:00
Jim Meyering
319976a665 (strip): Use standard "cannot fork" message.
Check for strip nonzero exit status.
1999-03-30 04:43:53 +00:00
Jim Meyering
8137487dd7 *** empty log message *** 1999-03-30 04:36:00 +00:00
Jim Meyering
0b1a5f6fe9 *** empty log message *** 1999-03-30 04:34:46 +00:00
Jim Meyering
236d3671e2 *** empty log message *** 1999-03-30 04:33:22 +00:00
Jim Meyering
ab33da4b55 (jm_CHECK_ALL_TYPES): New macro. 1999-03-30 04:29:19 +00:00
Jim Meyering
34f0f5c2c9 *** empty log message *** 1999-03-29 04:39:56 +00:00
Jim Meyering
bad53b08e6 Define GNU_PACKAGE here.
Be sure to AC_SUBST it, once again, so that @GNU_PACKAGE@ is
replaced e.g., in the *.sh files of the sh-utils.
1999-03-29 04:39:50 +00:00
Jim Meyering
1682163674 PROGRAM_NAME: rename from COMMAND_NAME 1999-03-29 02:56:52 +00:00
Jim Meyering
8ca2ea6a0e *** empty log message *** 1999-03-28 21:01:09 +00:00
Jim Meyering
7549c10f35 (get_date): Reuse tm_isdst of first localtime
call; this is an improvement on a bug fix suggested by
martin@dresden.nacamar.de.  Do not assume that localtime and
gmtime return non-null.
From Paul Eggert.
1999-03-28 20:58:51 +00:00
Jim Meyering
45eb651902 *** empty log message *** 1999-03-28 19:06:17 +00:00
Jim Meyering
6c9f8b17d0 *** empty log message *** 1999-03-28 14:59:09 +00:00
Jim Meyering
771cd1f617 *** empty log message *** 1999-03-28 14:40:37 +00:00
Jim Meyering
75cedb69be . 1999-03-28 14:40:21 +00:00
Jim Meyering
dc475b06bd *** empty log message *** 1999-03-28 14:39:34 +00:00
Jim Meyering
581baf7d99 (mode_compile): Upon allocation failure, free
everything starting with the head, not the tail.
1999-03-28 05:44:33 +00:00
Jim Meyering
7ca462d865 . 1999-03-27 23:07:53 +00:00
Jim Meyering
81e166e0ce *** empty log message *** 1999-03-27 14:33:30 +00:00
Jim Meyering
190ab69c07 *** empty log message *** 1999-03-27 14:32:36 +00:00
Jim Meyering
9d044f6b96 (strip): Use pid_t, not int. 1999-03-27 14:32:06 +00:00
Jim Meyering
713d9932c3 (print_user): Use uid_t instead of int.
(print_group): Use gid_t instead of int.
1999-03-27 14:29:51 +00:00
Jim Meyering
83bd8b5ff1 . 1999-03-26 14:27:18 +00:00
Jim Meyering
f92141140b *** empty log message *** 1999-03-26 14:26:38 +00:00
Jim Meyering
695cdd6f6a No longer include long-options.h.
Include version-etc.h instead.
(PROGRAM_NAME, AUTHORS): Define.
[long_options]: Add entries for --help and --version.
Remove parse_long_options call.
(main) [getopt switch]: Add a case for each of --help and --version.
1999-03-26 14:26:18 +00:00
Jim Meyering
e7f2703c47 No longer include long-options.h.
Include version-etc.h instead.
(PROGRAM_NAME, AUTHORS): Define.
[long_options]: Add entries for --help and --version.
Remove parse_long_options call.
(main) [getopt switch]: Add a case for each of --help and --version.
1999-03-26 14:25:30 +00:00
Jim Meyering
3d308f9549 No longer include long-options.h.
Include version-etc.h instead.
(PROGRAM_NAME, AUTHORS): Define.
[long_options]: Add entries for --help and --version.
Remove parse_long_options call.
(main) [getopt switch]: Add a case for each of --help and --version.
1999-03-26 14:23:59 +00:00
Jim Meyering
f42367c3e7 No longer include long-options.h.
Include version-etc.h instead.
(PROGRAM_NAME, AUTHORS): Define.
[long_options]: Add entries for --help and --version.
Remove parse_long_options call.
(main) [getopt switch]: Add a case for each of --help and --version.
1999-03-26 14:22:51 +00:00
Jim Meyering
0aa9923d96 No longer include long-options.h.
Include version-etc.h instead.
(PROGRAM_NAME, AUTHORS): Define.
[long_options]: Add entries for --help and --version.
Remove parse_long_options call.
(main) [getopt switch]: Add a case for each of --help and --version.
1999-03-26 14:19:02 +00:00
Jim Meyering
85b4cd220b No longer include long-options.h.
Include version-etc.h instead.
(PROGRAM_NAME, AUTHORS): Define.
[long_options]: Add entries for --help and --version.
Remove parse_long_options call.
(main) [getopt switch]: Add a case for each of --help and --version.
1999-03-26 14:18:29 +00:00
Jim Meyering
f0a21a933a reorder includes 1999-03-26 14:12:32 +00:00
Jim Meyering
42884ec0c7 (PROGRAM_NAME, AUTHORS): Define and use. 1999-03-26 14:07:12 +00:00
Jim Meyering
c227e4a167 (PROGRAM_NAME, AUTHORS): Define
(long_options): Remove unused struct.
(scanargs): Remove useless loop.
(main): Use PROGRAM_NAME and AUTHORS in call to parse_long_options.
1999-03-26 14:05:40 +00:00
Jim Meyering
c92de17d2f define and use AUTHORS 1999-03-26 05:17:17 +00:00
Jim Meyering
c060f16ed7 No longer include long-options.h.
Include version-etc.h instead.
(PROGRAM_NAME): Define.
[long_options]: Add entries for --help and --version.
Remove parse_long_options call.
(main) [getopt switch]: Add a case for each of --help and --version.
1999-03-26 04:23:55 +00:00
Jim Meyering
f19d194943 . 1999-03-26 04:23:01 +00:00
Jim Meyering
a721b1ac67 (libfu_a_SOURCES): Add version-etc.c.
(noinst_HEADERS): Add version-etc.h.
1999-03-26 04:20:23 +00:00
Jim Meyering
2a147b2b43 (parse_long_options): Remove version-, copyright-,
and author-printing code.  Do it via version_etc.
1999-03-26 04:19:07 +00:00
Jim Meyering
c004c87b6c *** empty log message *** 1999-03-26 04:17:33 +00:00
Jim Meyering
eff1cee6e1 (GETOPT_HELP_CHAR): Define.
(GETOPT_VERSION_CHAR): Define.
(GETOPT_HELP_OPTION_DECL): Define.
(GETOPT_VERSION_OPTION_DECL): Define.
(case_GETOPT_HELP_CHAR): Define.
(case_GETOPT_VERSION_CHAR): Define.
1999-03-26 04:12:41 +00:00
Jim Meyering
06303195c0 No longer include long-options.h.
Include version-etc.h instead.
(PROGRAM_NAME): Define.
[long_options]: Add entries for --help and --version.
Remove parse_long_options call.
(main) [getopt switch]: Add a case for each of --help and --version.
1999-03-26 04:11:15 +00:00
Jim Meyering
dd007634ac No longer include long-options.h.
Include version-etc.h instead.
(PROGRAM_NAME): Define.
[long_options]: Add entries for --help and --version.
Remove parse_long_options call.
(main) [getopt switch]: Add a case for each of --help and --version.
1999-03-26 04:10:55 +00:00
Jim Meyering
562f29a2a2 (recheck): Factor out a block of duplicated code.
Set f->size to 0 upon encountering a new file so we read it from
the beginning rather than from then end of the first line or
block.  Otherwise, after a log rotation, tail would omit the first
line or block of the new file.  Reported by Ed Avis.
1999-03-25 14:29:13 +00:00
Jim Meyering
11212212b0 *** empty log message *** 1999-03-25 14:23:40 +00:00
Jim Meyering
1271e5321c *** empty log message *** 1999-03-24 13:48:48 +00:00
Jim Meyering
0b80d92d60 import 1.010 1999-03-24 13:48:22 +00:00
Jim Meyering
542d10fd71 *** empty log message *** 1999-03-22 22:36:39 +00:00
Jim Meyering
cec649b346 tweak usage message -- from Karl 1999-03-22 22:36:12 +00:00
Jim Meyering
04d1d85350 *** empty log message *** 1999-03-22 22:35:53 +00:00
Jim Meyering
cdbee41fbf *** empty log message *** 1999-03-21 13:38:51 +00:00
Jim Meyering
153de419bc import latest 1999-03-21 01:56:57 +00:00
Jim Meyering
bc3d22ae9b . 1999-03-20 23:25:35 +00:00
Jim Meyering
dafd051712 . 1999-03-20 23:24:55 +00:00
Jim Meyering
fde28088f4 *** empty log message *** 1999-03-20 23:24:23 +00:00
Jim Meyering
c2db2a08d9 s/jm_WITH_REGEX/jm_INCLUDED_REGEX/ 1999-03-20 23:24:15 +00:00
Jim Meyering
1424b8fd50 *** empty log message *** 1999-03-20 23:23:20 +00:00
Jim Meyering
df3d9f6812 (jm_INCLUDED_REGEX): Rename from jm_WITH_REGEX.
Don't depend on AM_GLIBC.  Suggestions from Alain Magloire.
1999-03-20 23:23:14 +00:00
Jim Meyering
df570c09ee *** empty log message *** 1999-03-20 23:16:34 +00:00
Jim Meyering
e2ff4b6e90 Don't modify PATH just to get GNU nice. Instead, try
to find an absolute path for GNU nice.  From Bruno Haible.
1999-03-20 23:10:02 +00:00
Jim Meyering
e16c2033b4 *** empty log message *** 1999-03-20 15:01:34 +00:00
Jim Meyering
4159e9e2f6 *** empty log message *** 1999-03-20 04:36:50 +00:00
Jim Meyering
a6ea4bd455 [WINSIZE_IN_PTEM]: Include sys/stream.h and sys/ptem.h.
Required by SCO ODT 2.0 systems.  Reported by William Bader.
1999-03-20 04:07:01 +00:00
Jim Meyering
f9ce2cffec *** empty log message *** 1999-03-20 04:06:02 +00:00
Jim Meyering
2bf19e8467 *** empty log message *** 1999-03-20 04:02:37 +00:00
Jim Meyering
5a16e75a56 (jm_WINSIZE_IN_PTEM): New macro. 1999-03-20 04:02:23 +00:00
Jim Meyering
fd6c9bbcef . 1999-03-18 15:34:12 +00:00
Jim Meyering
ab589a9ada (remove_cwd_entries): Reflect changes in hash_insert.
(remove_init): Call hash_initialize with one more argument.
1999-03-18 15:33:56 +00:00
Jim Meyering
3a7f42f1a8 . 1999-03-17 21:15:46 +00:00
Jim Meyering
278e9999a9 *** empty log message *** 1999-03-17 14:18:09 +00:00
Jim Meyering
8ee5e50927 (is_prime): Return bool rather than int. 1999-03-17 14:07:34 +00:00
Jim Meyering
3ae2c2ecf0 import latest 1999-03-16 15:34:33 +00:00
Jim Meyering
5cfbca30a9 tweak comments
add curlies
use assert(0) in place of abort
1999-03-15 16:52:22 +00:00
Jim Meyering
6d97ed71b7 *** empty log message *** 1999-03-15 15:50:55 +00:00
Jim Meyering
0a1a14a095 Revamp to allow fine-tuning to control when and by how
much the table grows and shrinks.
(next_prime): Don't assert.
(hash_reset_tuning): New function.
(check_tuning): New function.
(hash_initialize): Accept and use new tuning parameter.
(hash_rehash): Rewrite, updating for tuning.
(hash_insert): Honor tuning semantics.
(hash_delete): Likewise.
From Franois Pinard.
1999-03-15 15:50:31 +00:00
Jim Meyering
674d2ec393 (struct hash_tuning): Define.
(struct hash_table) [tuning]: Add member.
(hash_initialize): Add `tuning' parameter.
1999-03-15 15:41:59 +00:00
Jim Meyering
96359cf648 (hash_insert): Update prototype. 1999-03-15 15:33:21 +00:00
Jim Meyering
855b12df1d (hash_insert): Remove last parameter and change semantics.
(hash_insert): Don't increment n_entries unconditionally --
otherwise, we'd do so even when the insertion failed.
From Franois Pinard.
1999-03-15 15:33:01 +00:00
Jim Meyering
6e8f572094 . 1999-03-14 21:39:42 +00:00
Jim Meyering
e4fd405431 (tac_mem): `#if-0'-out this unused function.
(tac_stdin_to_mem): Likewise.
1999-03-13 20:30:33 +00:00
Jim Meyering
e9e5d9bf3f . 1999-03-13 20:29:14 +00:00
Jim Meyering
9e1ddcbf89 . 1999-03-13 20:28:51 +00:00
Jim Meyering
2003f808c7 (cut invocation): Describe --output-delimiter. 1999-03-13 17:26:44 +00:00
Jim Meyering
5c591b0e36 *** empty log message *** 1999-03-13 16:24:16 +00:00
Jim Meyering
dac5c72090 *** empty log message *** 1999-03-13 16:22:59 +00:00
Jim Meyering
5c8eb257ea *** empty log message *** 1999-03-13 16:21:19 +00:00
Jim Meyering
703336d148 *** empty log message *** 1999-03-13 16:19:18 +00:00
Jim Meyering
2bc2cc2f54 (base_name): If NAME is all slashes, return `/' (in
conformance with the single unix spec).  Reported by Peter Moulder.
1999-03-13 16:09:00 +00:00
Jim Meyering
1905d5266b *** empty log message *** 1999-03-12 15:24:25 +00:00
Jim Meyering
58bb02e74d *** empty log message *** 1999-03-12 15:19:29 +00:00
Jim Meyering
dc82d52a02 *** empty log message *** 1999-03-12 15:15:23 +00:00
Jim Meyering
158b19d487 *** empty log message *** 1999-03-12 15:14:05 +00:00
Jim Meyering
e0aa18bb33 (dump_remainder): Don't fflush stdout here.
(main) [if forever]: Make stdout unbuffered, instead.
1999-03-12 15:12:55 +00:00
Jim Meyering
ac6d2b033e (SETVBUF): Define new macro. 1999-03-12 15:11:57 +00:00
Jim Meyering
a3631a8114 *** empty log message *** 1999-03-12 15:11:29 +00:00
Jim Meyering
5478a521d6 Use AC_FUNC_SETVBUF_REVERSED. 1999-03-12 15:11:06 +00:00
Jim Meyering
ff12f6ff27 Declare getloadavg so I can build with -Werror. 1999-03-11 04:05:25 +00:00
Jim Meyering
ae79d1fceb *** empty log message *** 1999-03-11 03:57:23 +00:00
Jim Meyering
45eb5dac3c Skip failing tests: parenb, -parenb, -cread. 1999-03-11 03:49:07 +00:00
Jim Meyering
95d1aad02d *** empty log message *** 1999-03-10 15:39:29 +00:00
Jim Meyering
b910e6ea14 (canon_host): Don't use he->h_addr directly.
Based on a patch from Savochkin Andrey Vladimirovich.
1999-03-10 15:39:02 +00:00
Jim Meyering
4ba4999328 (getugroups): Take new parameter, gid.
Add gid to the list of groups.
From Ulrich Drepper.
1999-03-10 15:35:47 +00:00
Jim Meyering
d7176770d4 *** empty log message *** 1999-03-10 15:34:45 +00:00
Jim Meyering
fe27c7d14e fix typo in comment. 1999-03-09 18:53:54 +00:00
Jim Meyering
0c23f18574 *** empty log message *** 1999-03-09 16:11:03 +00:00
Jim Meyering
fbaac7ba29 fix small thinko 1999-03-09 16:10:30 +00:00
Jim Meyering
959eb64fb4 (xgetgroups): Take new parameter, gid, and pass it to getugroups.
(print_group_list): Call getpwuid and adjust calls to xgetgroups
to include new parameter.
1999-03-09 16:08:19 +00:00
Jim Meyering
290a9e03f2 (getugroups): Take new parameter, gid.
Add gid to the list of groups.
From Ulrich Drepper.
1999-03-09 16:07:49 +00:00
Jim Meyering
c057543e47 protoize 1999-03-09 16:07:16 +00:00
Jim Meyering
7456d2a652 . 1999-03-08 14:42:45 +00:00
Jim Meyering
965a1e5a94 *** empty log message *** 1999-03-08 14:41:57 +00:00
Jim Meyering
bee00278e6 *** empty log message *** 1999-03-08 14:40:54 +00:00
Jim Meyering
59aae8f311 *** empty log message *** 1999-03-08 14:37:40 +00:00
Jim Meyering
097ca8427d *** empty log message *** 1999-03-08 02:44:05 +00:00
Jim Meyering
546f3f81da (xalloc_fail): Use "%s" format so the message doesn't
have to be scanned for % signs.  Suggestion from Franois Pinard.
1999-03-08 02:43:14 +00:00
Jim Meyering
e879a5a73e *** empty log message *** 1999-03-07 21:00:44 +00:00
Jim Meyering
8eaa894f84 Add two more URLs and the loops to use them. 1999-03-07 20:19:08 +00:00
Jim Meyering
be65d0ad03 restore blank lines in --version output 1999-03-07 17:48:10 +00:00
Jim Meyering
3a69319e76 *** empty log message *** 1999-03-07 17:03:18 +00:00
Jim Meyering
0d24fd9224 *** empty log message *** 1999-03-07 16:59:29 +00:00
Jim Meyering
9bf8b6b4c7 Use only those *_unlocked macros that are declared. 1999-03-07 16:59:21 +00:00
Jim Meyering
4677710c39 *** empty log message *** 1999-03-07 16:44:06 +00:00
Jim Meyering
7fbb24fe4e (parse_long_options): Include `Copyright...' line in --version output. 1999-03-07 16:43:15 +00:00
Jim Meyering
c537a72db4 *** empty log message *** 1999-03-07 16:06:45 +00:00
Jim Meyering
23b14f50e3 Test for the actual feature.
With help from Eli Zaretskii.
1999-03-07 16:06:33 +00:00
Jim Meyering
b9842e7300 *** empty log message *** 1999-03-07 15:53:48 +00:00
Jim Meyering
2cd167fba1 (parse_long_options): Add the `...NO warranty...' message. 1999-03-07 15:53:20 +00:00
Jim Meyering
133e0a63c5 *** empty log message *** 1999-03-07 15:52:29 +00:00
Jim Meyering
95fe06e1ba (usage): Add missing \n\. 1999-03-07 15:52:14 +00:00
Jim Meyering
0c3c9353ab *** empty log message *** 1999-03-07 14:41:04 +00:00
Jim Meyering
cffac32634 *** empty log message *** 1999-03-07 14:38:08 +00:00
Jim Meyering
b035c9078c *** empty log message *** 1999-03-07 14:37:27 +00:00
Jim Meyering
b79cd299cb (TESTS): Add newline-1. 1999-03-07 14:35:18 +00:00
Jim Meyering
1e8f1e0863 Remove newline test. 1999-03-07 14:34:03 +00:00
Jim Meyering
0f8e5e93c1 remove trailing blanks 1999-03-07 13:57:27 +00:00
Jim Meyering
4433aaa043 Big pr update from Roland Huebner. 1999-03-07 13:56:47 +00:00
Jim Meyering
68bb940729 1999-02-13 Roland Huebner <rh@pelikan.cologne.de>
* src/pr.c
(main): Redefine options -s, -w to be POSIX compliant; introduce
new options -J, -S, -W to disentangle -s and -w when used together
with the three column options;
(add_line_number): Make POSIX compliant; use default number
separator TAB with single column output.
(add_line_number): Make POSIX compliant; with multicolumn output
now prefer `text columns of equal width' rather than a consequent
use of `default n-separator TAB'.
(add_line_number): Change line number cut-off from lower-oder to
higher-oder digit to avoid loss of information; no consequent
handling exists in different utilities and other UNIXes.
(char_to_clump): Expand input text tabs to 8 spaces, if
input_tab_char doesn't equal TAB (adapted to other UNIXes).
(usage): Update POSIX compliant options -s, -w; add new options -J,
-S, -W.
(main): Update the source internal documentation.
Some smaller BUGFIXES (print_sep_string, init_header, skip_to_page,
reset_status, print_header).
1999-03-07 13:46:22 +00:00
Jim Meyering
96e08503da (backslash): Use .\foo instead of \.foo so we
don't tramp on root directory in MSDOS/Windows.
Suggestion from Eli Zaretskii.
1999-03-07 13:34:30 +00:00
Jim Meyering
21e69c4002 (TESTS_ENVIRONMENT): Run md5sum with the --text option (for MSDOS). 1999-03-07 13:14:21 +00:00
Jim Meyering
bcaa45d181 *** empty log message *** 1999-03-07 05:14:30 +00:00
Jim Meyering
96e8d93844 *** empty log message *** 1999-03-07 05:11:05 +00:00
Jim Meyering
104866a990 New test: 8bit-delim. 1999-03-07 05:10:32 +00:00
Jim Meyering
3a01605b6b (getstr): Change type of `delim' parameter from char to int.
(cut_fields): Cast to `unsigned char' before comparing.
(main): Cast to `unsigned char' before assigning.
1999-03-07 05:09:23 +00:00
Jim Meyering
13106e125b *** empty log message *** 1999-03-07 04:54:43 +00:00
Jim Meyering
8a8a4eeab0 (batch_convert): Use a `%s' format in error call,
in case the argument string contains a `%'.
1999-03-07 04:54:36 +00:00
Jim Meyering
075ce6b479 *** empty log message *** 1999-03-07 04:53:14 +00:00
Jim Meyering
c771f143db (main): Use a `%s' format in error call,
in case the argument string contains a `%'.
1999-03-07 04:52:49 +00:00
Jim Meyering
76b9399091 (FATAL_ERROR): s/s/Message 1999-03-07 04:50:48 +00:00
Jim Meyering
81706baebd (swallow_file_in_memory): Use a `%s' format in error call,
in case the argument string contains a `%'.
1999-03-07 04:35:33 +00:00
Jim Meyering
59277d9406 (swallow_file_in_memory): Slurp up the whole file at
once on MSDOS as well, but we have to relax the test for whether
reading it succeeded.
1999-03-07 04:32:25 +00:00
Jim Meyering
73444fc778 [__DJGPP__]: Include <io.h> and <sys/exceptn.h>. 1999-03-07 04:10:17 +00:00
Jim Meyering
f62a91b03e . 1999-03-06 22:01:29 +00:00
Jim Meyering
a820bf8457 *** empty log message *** 1999-03-06 22:00:52 +00:00
Jim Meyering
1120f4c00c . 1999-03-06 22:00:09 +00:00
Jim Meyering
e2fcc9923d . 1999-03-06 21:59:25 +00:00
Jim Meyering
a7c6ba5e86 *** empty log message *** 1999-03-06 15:31:38 +00:00
Jim Meyering
5b2aa1846b Include long-options.h.
[long_options]: Remove the "help" and "version" entries.
Remove declarations of show_help and show_version.
(main): Use parse_long_options, including author name(s).
Remove the show_version and show_help blocks.
1999-03-06 15:28:54 +00:00
Jim Meyering
782b270314 *** empty log message *** 1999-03-04 14:02:25 +00:00
Jim Meyering
ff743d5451 (main): Include author name argument in call to parse_long_options. 1999-03-04 14:02:14 +00:00
Jim Meyering
0f67dfcaa3 *** empty log message *** 1999-03-04 05:36:19 +00:00
Jim Meyering
88cbad9817 Include long-options.h
[long_options]: Remove the "help" and "version" entries.
Remove declarations of show_help and show_version.
(main): Use parse_long_options, including author name(s).
Remove the show_version and show_help blocks.
1999-03-04 05:36:10 +00:00
Jim Meyering
0ae96f2361 (main): Include author name argument in call to parse_long_options. 1999-03-04 05:33:22 +00:00
Jim Meyering
32deb2026b (main): Include author name argument in call to parse_long_options. 1999-03-04 05:32:11 +00:00
Jim Meyering
8a61d8e336 Include long-options.h
[long_options]: Remove the "help" and "version" entries.
Remove declarations of show_help and show_version.
(main): Remove `const' attribute from dcl of argv parameter.
Call bindtextdomain and textdomain.
Use parse_long_options, including author name(s).
Remove the show_version and show_help blocks.
1999-03-04 05:31:17 +00:00
Jim Meyering
6e7be7b1c6 (main): Include author name argument. 1999-03-04 05:26:47 +00:00
Jim Meyering
51f63eeac9 *** empty log message *** 1999-03-04 05:09:13 +00:00
Jim Meyering
61fa70ac19 Include long-options.h
[long_options]: Remove the "help" and "version" entries.
(main): Use parse_long_options, including author name(s).
Remove the show_version and show_help blocks.
1999-03-04 05:09:05 +00:00
Jim Meyering
d0bdbe00ba Update prototype. 1999-03-04 05:08:21 +00:00
Jim Meyering
e35e21e280 (_): Define it.
(parse_long_options): Accept new parameter, authors, and print it.
1999-03-04 05:08:01 +00:00
Jim Meyering
8f443fb9c1 *** empty log message *** 1999-03-03 03:46:58 +00:00
Jim Meyering
d48f86fb02 *** empty log message *** 1999-03-02 13:53:48 +00:00
Jim Meyering
a877f41093 (read_utmp) [HAVE_UTMPNAME]: Rewrite. 1999-03-02 13:53:33 +00:00
Jim Meyering
88ab6854e5 import latest 1999-03-02 02:44:56 +00:00
Jim Meyering
09483e6dc6 *** empty log message *** 1999-02-19 07:33:55 +00:00
Jim Meyering
fce748fe1f <alloca.h>: Include if HAVE_ALLOCA_H, not FORCE_ALLOCA_H.
The FORCE_ALLOCA_H was a relic of the bad old pre-autoconf Emacs days.
1999-02-19 07:31:48 +00:00
Jim Meyering
878b334351 *** empty log message *** 1999-02-17 20:12:20 +00:00
Jim Meyering
0800a11f65 (AM_GNU_GETTEXT): Do `changequote' around use of brackets
in macro definition.  From Eli Zaretskii and Alain Magloire.
1999-02-17 20:12:10 +00:00
Jim Meyering
37f353eb26 tweak comment 1999-02-17 14:58:41 +00:00
Jim Meyering
68cab6ea0d (wipename): Fix string thinko. Now, shredding files
in subdirectories works (dir/file).  From Janos Farkas.
1999-02-17 14:41:39 +00:00
Jim Meyering
2e250112ee *** empty log message *** 1999-02-17 14:41:22 +00:00
Jim Meyering
a4758241e7 new version from Uli 1999-02-16 21:35:48 +00:00
Jim Meyering
4762e42042 . 1999-02-16 14:52:40 +00:00
Jim Meyering
8e42ae2cc4 . 1999-02-16 04:23:49 +00:00
Jim Meyering
824529d0aa (usage): add \n\ 1999-02-16 04:22:00 +00:00
Jim Meyering
7568de8654 update copyright dates 1999-02-16 04:20:43 +00:00
Jim Meyering
16f3644da7 *** empty log message *** 1999-02-16 04:19:44 +00:00
Jim Meyering
e2bf10d90e (main): #ifdef-out unreachable code. 1999-02-16 04:18:43 +00:00
Jim Meyering
df7b9c808b update copyright dates 1999-02-16 04:17:15 +00:00
Jim Meyering
4eb7ae21e8 (usage): Add a one-line description. 1999-02-16 04:15:46 +00:00
Jim Meyering
07c6f5e387 update copyright dates 1999-02-16 04:14:17 +00:00
Jim Meyering
e02df462ba *** empty log message *** 1999-02-15 15:42:39 +00:00
Jim Meyering
b874c17169 *** empty log message *** 1999-02-15 15:25:29 +00:00
Jim Meyering
e63a340c46 *** empty log message *** 1999-02-15 13:43:27 +00:00
Jim Meyering
aa1c4f58f1 . 1999-02-14 16:49:44 +00:00
Jim Meyering
089aa98fb8 *** empty log message *** 1999-02-14 03:29:33 +00:00
Jim Meyering
69272c2e85 (dc_parse_stream): Don't try to dereference NULL
if there's an error is in our built-in list.
1999-02-14 03:28:41 +00:00
Jim Meyering
421265ba29 *** empty log message *** 1999-02-14 02:36:41 +00:00
Jim Meyering
0fbe67a146 (main): Set x.backup_type only if backups are requested.
(cp_option_init): Initialize backup_type.
(backup_type): Remove unused variable.
1999-02-14 02:36:16 +00:00
Jim Meyering
a0a658c1f6 import latest 1999-02-09 20:49:55 +00:00
Jim Meyering
232eb53f42 *** empty log message *** 1999-02-09 05:04:50 +00:00
Jim Meyering
147d933a4f (slack_codes): Add "DOOR".
(ls_codes): Add corresponding "do".
1999-02-09 05:04:18 +00:00
Jim Meyering
6dde919c8a *** empty log message *** 1999-02-08 04:02:16 +00:00
Jim Meyering
0bf08d23cd Run all tests even if some fails.
Don't use trap.
1999-02-08 04:01:34 +00:00
Jim Meyering
ed2d3ddb6b Use `stty', not $STTY.
Fix typo in VERBOSE code: s/\$RM/stty/.
1999-02-08 03:42:02 +00:00
Jim Meyering
3dea3dfe03 (TESTS_ENVIRONMENT): Set PATH, not STTY. 1999-02-08 03:40:51 +00:00
Jim Meyering
70a87bf7ca *** empty log message *** 1999-02-08 03:35:15 +00:00
Jim Meyering
1a4f074c9e Don't include stdio.h. 1999-02-08 03:32:38 +00:00
Jim Meyering
9b1973fbd7 Include stdio.h. 1999-02-08 03:32:06 +00:00
Jim Meyering
03b1afaa8d *** empty log message *** 1999-02-08 03:31:41 +00:00
Jim Meyering
60979fecbb copyright date 1999-02-08 03:31:26 +00:00
Jim Meyering
e9144d8d30 copyright date 1999-02-08 03:30:52 +00:00
Jim Meyering
0c87b3168c Include stdio.h. 1999-02-08 03:30:33 +00:00
Jim Meyering
3946ca7fc1 Include stdio.h. 1999-02-08 03:30:06 +00:00
Jim Meyering
2dc3a543b1 Include stdio.h. 1999-02-08 03:29:36 +00:00
Jim Meyering
f7bb13ecd8 Include stdio.h. 1999-02-08 03:29:02 +00:00
Jim Meyering
68737ed84b s/@code etc./@env/ for envvars 1999-02-08 03:26:59 +00:00
Jim Meyering
e91bb3d2e9 typos, s/@code/@env/ for envvars 1999-02-08 00:03:16 +00:00
Jim Meyering
5fd73cbdf3 *** empty log message *** 1999-02-08 00:00:44 +00:00
Jim Meyering
07a5b9fe8e *** empty log message *** 1999-02-07 23:34:24 +00:00
Jim Meyering
cb954e6a87 *** empty log message *** 1999-02-07 23:31:49 +00:00
Jim Meyering
2d463bbcb5 *** empty log message *** 1999-02-07 23:07:43 +00:00
Jim Meyering
7d957fac2e *** empty log message *** 1999-02-07 23:06:38 +00:00
Jim Meyering
238e6f6a40 . 1999-02-07 23:06:14 +00:00
Jim Meyering
9625a6cdaf *** empty log message *** 1999-02-07 23:06:10 +00:00
Jim Meyering
05b9afe56b (my-distcheck): Don't depend on dist, now that this
is hooked up to the distcheck rule.
1999-02-07 23:02:34 +00:00
Jim Meyering
84f044b998 . 1999-02-07 23:00:01 +00:00
Jim Meyering
bc885b89c1 . 1999-02-07 16:38:18 +00:00
Jim Meyering
24c3de8eb7 *** empty log message *** 1999-02-07 16:37:08 +00:00
Jim Meyering
a2c6534e1d *** empty log message *** 1999-02-07 16:36:58 +00:00
Jim Meyering
38c9d6d2b6 . 1999-02-07 16:35:56 +00:00
Jim Meyering
a8f75cc5c9 . 1999-02-07 16:35:30 +00:00
Jim Meyering
467a9bfd4b New file -- extracted from sh-utils' configure.in. 1999-02-07 14:24:08 +00:00
Jim Meyering
c0dfa7f21b *** empty log message *** 1999-02-07 13:49:07 +00:00
Jim Meyering
9e0faa6d18 Support DOS-style d:/foo/bar absolute file names.
From Eli Zaretskii.
1999-02-07 13:41:27 +00:00
Jim Meyering
7e74cfab42 Use AC_SUBST(LIBOBJS) since we set LIBOBJS. 1999-02-07 05:37:39 +00:00
Jim Meyering
c77b696d1e *** empty log message *** 1999-02-07 05:32:49 +00:00
Jim Meyering
2c13a275ca Use .$ac_objext, not .o 1999-02-07 05:27:24 +00:00
Jim Meyering
48a0c3d403 . 1999-02-07 05:24:19 +00:00
Jim Meyering
a59624613d *** empty log message *** 1999-02-07 05:24:15 +00:00
Jim Meyering
88869ee024 Actually invoke jm_WITH_REGEX now that it requires an argument. 1999-02-07 05:23:27 +00:00
Jim Meyering
505f12e2e4 Add a run-time Test for proper operation of re_compile_pattern. 1999-02-07 05:20:23 +00:00
Jim Meyering
4473f3cb6e import latest 1999-02-06 18:37:55 +00:00
Jim Meyering
4ae35f8a89 cpp indent 1999-02-03 15:23:21 +00:00
Jim Meyering
cd9a08e476 (S_ISDOOR): Define if missing. 1999-02-03 13:56:43 +00:00
Jim Meyering
6025f81e94 . 1999-02-03 13:53:26 +00:00
Jim Meyering
e7dc64cdaf *** empty log message *** 1999-02-03 06:40:30 +00:00
Jim Meyering
ee34311b45 *** empty log message *** 1999-02-03 06:39:02 +00:00
Jim Meyering
ec20f35608 *** empty log message *** 1999-02-03 05:42:15 +00:00
Jim Meyering
0d148ec872 Handle DOOR. 1999-02-03 05:41:42 +00:00
Jim Meyering
751a3dc73b (S_ISLNK, S_ISFIFO, S_ISSOCK, S_ISCHR, S_ISBLK, S_ISDOOR):
Define to zero if not already defined.
(HAVE_SYMLINKS): Define.
(gobble_file): Remove #ifdef.
(get_link_name, make_link_path): Guard these with #if HAVE_SYMLINKS
rather than #ifdef S_ISLNK.
(print_type_indicator): Remove #ifdefs and reorganize.
(print_color_indicator): Remove #ifdefs.
(length_of_file_name_and_frills): Likewise.
1999-02-03 05:41:18 +00:00
Jim Meyering
43aa4122fc (print_type_indicator): Print doors as '>'.
(length_of_file_name_and_frills): Account for this.
1999-02-03 05:16:22 +00:00
Jim Meyering
a6d3060450 (ftypelet): Handle doors.
(S_ISDOOR): Define if missing.
1999-02-03 05:15:07 +00:00
Jim Meyering
015e2e77ed New version from L. Peter Deutsch. 1999-02-03 02:01:06 +00:00
Jim Meyering
b10a3f942e *** empty log message *** 1999-02-01 13:50:32 +00:00
Jim Meyering
ca787f30f6 (STRXCASECMP_FUNCTION): Don't increment within macro argument list.
From Akim Demaille.
1999-02-01 13:50:12 +00:00
Jim Meyering
ac68c4f0c9 *** empty log message *** 1999-01-31 23:16:49 +00:00
Jim Meyering
45d503f7f9 Wrap the @top node in @ifnottex instead of
@ifinfo so `makeinfo --html ...' works.  From Karl Berry.
1999-01-31 23:16:31 +00:00
Jim Meyering
3aaa173ce2 *** empty log message *** 1999-01-31 23:15:38 +00:00
Jim Meyering
7f7cdc86f9 Wrap the @top node in @ifnottex instead of
@ifinfo so `makeinfo --html ...' works.  From Karl Berry.
1999-01-31 23:15:30 +00:00
Jim Meyering
c54cb6e13b *** empty log message *** 1999-01-31 23:04:21 +00:00
Jim Meyering
c900767da2 *** empty log message *** 1999-01-31 18:51:14 +00:00
Jim Meyering
9f0e21b7ca new test: Create a hard link to a dangling symlink. 1999-01-31 18:51:08 +00:00
Jim Meyering
7442141536 *** empty log message *** 1999-01-31 18:44:48 +00:00
Jim Meyering
2aa0dbcc2e *** empty log message *** 1999-01-31 18:44:34 +00:00
Jim Meyering
94fa239afa *** empty log message *** 1999-01-31 18:44:14 +00:00
Jim Meyering
4872440d7a (do_link): Allow creation of a hard link to a dangling
symlink.  Reported by Alexey Solovyov:
1999-01-31 18:41:36 +00:00
Jim Meyering
821fddfdc5 *** empty log message *** 1999-01-31 18:41:18 +00:00
Jim Meyering
9a5044f0ea *** empty log message *** 1999-01-31 18:18:16 +00:00
Jim Meyering
2f07328f17 (main): Call chdir ("/") after chroot.
Suggestion from James Youngman.
1999-01-31 17:50:53 +00:00
Jim Meyering
09619556e6 . 1999-01-31 17:13:53 +00:00
Jim Meyering
5b070b2329 *** empty log message *** 1999-01-31 16:55:51 +00:00
Jim Meyering
a12101a224 Include locale.h.
[!HAVE_SETLOCALE]: Define-away setlocale.
(getloadavg): Ensure the sscanf of /proc/getloadavg data uses the
`C' numeric locale.  Restore afterwards.
1999-01-31 16:54:00 +00:00
Jim Meyering
62b3fd4e81 (print_uptime): Use the C numeric locale for sscanf
of /proc/uptime data, then restore.
1999-01-31 16:53:28 +00:00
Jim Meyering
c4ece6d8cb *** empty log message *** 1999-01-31 16:23:10 +00:00
Jim Meyering
69649d98b1 Check for locale.h and the function, setlocale. 1999-01-31 16:22:58 +00:00
Jim Meyering
99ce6d77e0 *** empty log message *** 1999-01-31 15:28:53 +00:00
Jim Meyering
3f9c40bdcb Protoize. 1999-01-31 15:28:48 +00:00
Jim Meyering
3b1dbb8f30 *** empty log message *** 1999-01-31 15:18:25 +00:00
Jim Meyering
6de09f9d18 *** empty log message *** 1999-01-31 15:13:00 +00:00
Jim Meyering
eaec7699ac (copy_internal): Describe any backup-related renaming
operations when in verbose mode.
(copy_internal): Likewise.
Based on changes from Marty Leisner.
1999-01-31 15:12:43 +00:00
Jim Meyering
e960794409 *** empty log message *** 1999-01-31 14:47:18 +00:00
Jim Meyering
82eb2dcf9e Declare chown manually. 1999-01-31 14:46:08 +00:00
Jim Meyering
c1fb8566f6 . 1999-01-31 14:16:28 +00:00
Jim Meyering
ef68c26a22 . 1999-01-31 05:41:02 +00:00
Jim Meyering
8ec1a397be . 1999-01-31 05:40:21 +00:00
Jim Meyering
9b531d8675 . 1999-01-31 05:39:01 +00:00
Jim Meyering
fc965709f9 *** empty log message *** 1999-01-31 05:29:41 +00:00
Jim Meyering
44a61d78bb Use 3-arg form of AC_DEFINE. 1999-01-31 05:29:34 +00:00
Jim Meyering
9195b6970b *** empty log message *** 1999-01-31 05:10:23 +00:00
Jim Meyering
eaacf48c40 . 1999-01-31 05:07:11 +00:00
Jim Meyering
263bc0f77b Make this a wrapper around the official AM_FUNC_MKTIME
rather than my private copy, now that the official one is up to date.
1999-01-31 05:06:51 +00:00
Jim Meyering
29d4ea7270 *** empty log message *** 1999-01-30 16:35:04 +00:00
Jim Meyering
9196dbf945 *** empty log message *** 1999-01-30 15:55:43 +00:00
Jim Meyering
98edf21e5e . 1999-01-30 15:53:25 +00:00
Jim Meyering
7dfa1c9eaa use AC_DEFINE_UNQUOTED, now 1999-01-30 14:20:15 +00:00
Jim Meyering
c1ea7960a5 *** empty log message *** 1999-01-30 13:51:20 +00:00
Jim Meyering
076e82b82b Use 3-arg form of AC_DEFINE. 1999-01-30 13:50:58 +00:00
Jim Meyering
779b181b61 Use 3-arg form of AC_DEFINE. 1999-01-30 13:38:57 +00:00
Jim Meyering
97f8518205 *** empty log message *** 1999-01-30 05:35:42 +00:00
Jim Meyering
d713f56660 use 3-arg form of AC_DEFINE_UNQUOTED 1999-01-30 05:35:10 +00:00
Jim Meyering
fed619866d *** empty log message *** 1999-01-30 05:34:00 +00:00
Jim Meyering
5d8751167c require 2.13 1999-01-30 04:51:49 +00:00
Jim Meyering
77f5cd6359 . 1999-01-29 13:45:11 +00:00
Jim Meyering
523442d018 *** empty log message *** 1999-01-29 05:15:49 +00:00
Jim Meyering
b04492c62b *** empty log message *** 1999-01-29 05:07:30 +00:00
Jim Meyering
87110cd9f2 . 1999-01-29 05:06:23 +00:00
Jim Meyering
7744b342e1 *** empty log message *** 1999-01-29 05:06:03 +00:00
Jim Meyering
56fee444e2 Use the 3-argument forms of AC_DEFINE* macros. 1999-01-29 05:05:56 +00:00
Jim Meyering
cef9c0a44a Use jm_AFS. 1999-01-29 05:03:30 +00:00
Jim Meyering
af1ef50ae1 *** empty log message *** 1999-01-29 05:00:35 +00:00
Jim Meyering
a2f2ba51bc Use TIME_WITH_SYS_TIME-based #if test rather than
TM_IN_SYS_TIME based one (for shred).
1999-01-29 04:58:32 +00:00
Jim Meyering
8bf7657cd4 . 1999-01-27 21:32:59 +00:00
Jim Meyering
4d319867cf . 1999-01-27 05:25:37 +00:00
Jim Meyering
9fe649e01a *** empty log message *** 1999-01-25 15:23:44 +00:00
Jim Meyering
922d1292c3 *** empty log message *** 1999-01-25 15:19:36 +00:00
Jim Meyering
f525fd81ca (isaac_seed): Guard clock_gettime with test of
HAVE_CLOCK_GETTIME, not CLOCK_REALTIME.
(wipename): Rename local dirfd to dir_fd to avoid shadowing the
function declared in Linux's dirent.h.
1999-01-25 15:13:10 +00:00
Jim Meyering
89826ef420 (ARRAY_CARDINALITY): Define.
(ARGMATCH_ASSERT): New macro.
1999-01-25 14:52:13 +00:00
Jim Meyering
a2e1454d4b *** empty log message *** 1999-01-25 14:33:44 +00:00
Jim Meyering
276d118b10 (usage): Remove static attribute. 1999-01-25 14:33:38 +00:00
Jim Meyering
fe9d964a78 (usage): Remove static attribute.
Move function be the first in the file.
1999-01-25 14:31:12 +00:00
Jim Meyering
54f4eb2224 (usage): Remove static attribute.
Move function be the first in the file.
1999-01-25 14:30:08 +00:00
Jim Meyering
86fb9cb9ec (usage): Remove static attribute.
Move function be the first in the file.
1999-01-25 14:29:22 +00:00
Jim Meyering
7082d762aa (usage): Remove static attribute.
Move function be the first in the file.
1999-01-25 14:28:31 +00:00
Jim Meyering
22099863b4 (usage): Remove static attribute.
Move function be the first in the file.
1999-01-25 14:27:48 +00:00
Jim Meyering
a4c1c9627e (usage): Remove static attribute.
Move function be the first in the file.
1999-01-25 14:26:38 +00:00
Jim Meyering
53ab150d29 (usage): Remove static attribute.
Move function be the first in the file.
1999-01-25 14:24:35 +00:00
Jim Meyering
1a3dfa550d . 1999-01-25 14:09:45 +00:00
Jim Meyering
2b9e4c6914 (program_name): Remove dcl.
Include error.h.
(argmatch_invalid): Use error rather than fprintf.
1999-01-25 14:08:04 +00:00
Jim Meyering
8908c87cb0 tweak comment 1999-01-25 13:59:34 +00:00
Jim Meyering
7049562dce tweak comment 1999-01-25 13:58:34 +00:00
Jim Meyering
e7ae216189 tweak comment 1999-01-25 13:54:30 +00:00
Jim Meyering
70ede084c0 *** empty log message *** 1999-01-25 05:51:07 +00:00
Jim Meyering
becdfba8b9 New version from L. Peter Deutsch. 1999-01-25 05:50:56 +00:00
Jim Meyering
cb6a8b722b *** empty log message *** 1999-01-25 00:34:39 +00:00
Jim Meyering
2ecbb0307d Exit nonzero upon failed write to stdout. 1999-01-25 00:34:26 +00:00
Jim Meyering
95ec5d7e78 *** empty log message *** 1999-01-25 00:18:55 +00:00
Jim Meyering
11a5174aa6 (DONT_UNLINK_WHILE_OPEN) [__MSDOS__ || _WIN32]: Define. 1999-01-25 00:18:47 +00:00
Jim Meyering
a9ec82981b *** empty log message *** 1999-01-25 00:17:40 +00:00
Jim Meyering
cbf82d876b (quotearg_n_options): Revert type of parameter `n'
(and hence that of the local `n1', too) to `int' at Paul's request.
1999-01-25 00:17:22 +00:00
Jim Meyering
8c5f91e5ad Add comments. 1999-01-25 00:13:36 +00:00
Jim Meyering
da9211c1c1 *** empty log message *** 1999-01-24 15:11:00 +00:00
Jim Meyering
26756c6f82 (fdatasync): Remove function. instead, ...
[! HAVE_FDATASYNC]: Define to fsync.
From Colin Plumb.
1999-01-24 15:10:22 +00:00
Jim Meyering
604691004d *** empty log message *** 1999-01-23 23:25:16 +00:00
Jim Meyering
70db3065cb (fdatasync) [! HAVE_FDATASYNC]: New function. 1999-01-23 23:07:53 +00:00
Jim Meyering
d91597a2e8 *** empty log message *** 1999-01-23 23:01:07 +00:00
Jim Meyering
1b0f03e1da (wipename): Print the `FILE: deleting' message only when in verbose mode. 1999-01-23 18:55:34 +00:00
Jim Meyering
e21cf52e03 (wipename): Print the `FILE: deleted' message only when in verbose mode. 1999-01-23 18:33:11 +00:00
Jim Meyering
4ab3a8a345 always close stdout 1999-01-23 18:15:41 +00:00
Jim Meyering
35c2b35dbd fix typos in comments 1999-01-23 17:36:33 +00:00
Jim Meyering
9550ca6b71 (pfstatus): Use __format__ and __printf__.
Remove `if __GNUC__ >= 2' guard.
1999-01-23 16:48:36 +00:00
Jim Meyering
5b181c3bd6 *** empty log message *** 1999-01-23 16:41:20 +00:00
Jim Meyering
b02f28bab4 Bracket pfstatus messages with _(). 1999-01-23 16:26:16 +00:00
Jim Meyering
68e327564d add parens around STREQ 1999-01-23 15:34:18 +00:00
Jim Meyering
e363353a48 restore mistakenly removed stdio.h
use error in place of pferror
(pferror): Remove.
(wipefd): Use error in place of fprintf(stderr,... call
s/alllocate/allocate
1999-01-23 15:32:48 +00:00
Jim Meyering
954d1b451f use `%s' rather than \"%s\" everywhere 1999-01-23 15:22:16 +00:00
Jim Meyering
8b036d56ef s/sterilize/shred/g
Don't include headers already included (and guarded by HAVE_FOO_H tests)
in system.h.
1999-01-23 15:17:54 +00:00
Jim Meyering
758bbda788 use getopt_long
(struct Options): Declare.
(usage): New function.
(program_name): Rename from argv0
(FLAG_* macros): Remove.
1999-01-23 05:32:58 +00:00
Jim Meyering
ae7d45cdc9 Include config.h, getopt.h, system.h and error.h.
Use #else/#if, not #elif.
1999-01-22 02:19:24 +00:00
Jim Meyering
6cb040753f import latest 1999-01-21 13:40:27 +00:00
Jim Meyering
42d3b0be50 *** empty log message *** 1999-01-19 04:47:33 +00:00
Jim Meyering
cdc04ccc0e (__mktime_internal): Adopt the traditional (and
problematic) notion of what to do when tm_isdst doesn't match.
From Paul Eggert.
1999-01-19 04:47:24 +00:00
Jim Meyering
509abea3f1 put back mistakenly removed pwd= assignment 1999-01-19 03:04:12 +00:00
Jim Meyering
67a1a846c4 remove temporary files 1999-01-18 18:33:58 +00:00
Jim Meyering
d3b6e5f4fb . 1999-01-18 17:14:57 +00:00
Jim Meyering
b83bf32695 . 1999-01-18 17:14:35 +00:00
Jim Meyering
65c540d59c Tweak grammar in description of ptx's --break-file=FILE option. 1999-01-18 16:30:20 +00:00
Jim Meyering
ab8dea5328 *** empty log message *** 1999-01-18 16:23:59 +00:00
Jim Meyering
a90a97ba1d Harmonization of @samp use for options. 1999-01-18 16:23:48 +00:00
Jim Meyering
21cf7cf8c2 indent -- sorry Colin. 1999-01-18 05:49:43 +00:00
Jim Meyering
9f4ddf5976 *** empty log message *** 1999-01-18 03:49:16 +00:00
Jim Meyering
25668ab60b *** empty log message *** 1999-01-18 03:47:16 +00:00
Jim Meyering
d12341e78a . 1999-01-18 03:46:48 +00:00
Jim Meyering
34ad3d2d3b Now that PATH is set properly, use ln rather than $LN. 1999-01-18 02:57:24 +00:00
Jim Meyering
bece904517 (TESTS): Add backup-1.
(TESTS_ENVIRONMENT): Set PATH here, rather than setting LN.
1999-01-18 02:56:27 +00:00
Jim Meyering
d869e3fdc0 . 1999-01-18 02:55:50 +00:00
Jim Meyering
33a1515274 . 1999-01-18 02:54:56 +00:00
Jim Meyering
890d74d50b Now that PATH is set properly, use rm and cp rather than $RM and $CP. 1999-01-18 02:54:36 +00:00
Jim Meyering
f0f15679fb . 1999-01-18 02:54:19 +00:00
Jim Meyering
b4b06d9c39 (TESTS_ENVIRONMENT): Set PATH here, rather than setting RM and CP. 1999-01-18 02:53:19 +00:00
Jim Meyering
e11c197cc2 (do_link): Try to remove DEST even after renaming it.
This fixes a bug reported by Jamie Lokier.
1999-01-18 02:41:13 +00:00
Jim Meyering
5967a93b4f *** empty log message *** 1999-01-18 02:40:30 +00:00
Jim Meyering
1f4c0ed890 cpp-indent #error line 1999-01-18 00:44:57 +00:00
Jim Meyering
9a6aae1ed7 . 1999-01-18 00:44:18 +00:00
Jim Meyering
3f05e0467f *** empty log message *** 1999-01-17 18:14:28 +00:00
Jim Meyering
ea020acdd2 (same_name): Use SAME_INODE rather than open coding it. 1999-01-17 18:12:19 +00:00
Jim Meyering
3b713062cd *** empty log message *** 1999-01-17 15:07:44 +00:00
Jim Meyering
f5f0c17fe9 Add SHELL = /bin/sh. 1999-01-17 13:53:32 +00:00
Jim Meyering
d34ec08816 compress copyright 1999-01-17 04:15:12 +00:00
Jim Meyering
7316f85aaa (ARGMATCH_DIE_DECL): Use it. 1999-01-16 17:18:01 +00:00
Jim Meyering
3c2295f52c *** empty log message *** 1999-01-16 17:15:32 +00:00
Jim Meyering
d3e2cd9eca (ARGMATCH_DIE_DECL): Define. 1999-01-16 17:15:24 +00:00
Jim Meyering
bf527b6094 *** empty log message *** 1999-01-16 17:01:20 +00:00
Jim Meyering
eb3b7c64d0 Define ARGMATCH_DIE. 1999-01-16 17:01:11 +00:00
Jim Meyering
0695444a89 . 1999-01-16 16:25:26 +00:00
Jim Meyering
cf00554f8f Don't declare base_name. 1999-01-16 16:22:00 +00:00
Jim Meyering
1b9f58551d Don't declare base_name.
Use function-style XARGMATCH once again.
1999-01-16 16:21:46 +00:00
Jim Meyering
4e83f9789c (usage): Remove `static'.
Use function-style XARGMATCH.
1999-01-16 16:20:02 +00:00
Jim Meyering
29064b5f4f Remove declarations of base_name and get_version.
(main): Don't call getenv ("VERSION_CONTROL"); xget_version does it.
Use xget_version and function-style XARGMATCH.
1999-01-16 16:18:26 +00:00
Jim Meyering
fadedac410 Remove declarations of base_name and get_version.
(main): Don't call getenv ("VERSION_CONTROL"); xget_version does it.
Use xget_version and function-style XARGMATCH.
1999-01-16 16:14:56 +00:00
Jim Meyering
06f14ae760 Remove declarations of base_name and get_version.
(main): Don't call getenv ("VERSION_CONTROL"); xget_version does it.
Use xget_version and function-style XARGMATCH.
1999-01-16 16:14:31 +00:00
Jim Meyering
1592f752f6 Don't declare base_name.
(usage): Don't make it static so that it can be
called from libfu.a by xargmatch.
1999-01-16 16:13:31 +00:00
Jim Meyering
84b4618b26 Remove declarations of base_name and get_version.
(main): Don't call getenv ("VERSION_CONTROL"); xget_version does it.
Use xget_version and function-style XARGMATCH.
1999-01-16 16:12:05 +00:00
Jim Meyering
414cf1b428 (base_name): Declare. 1999-01-16 16:04:43 +00:00
Jim Meyering
b76f341922 (quotearg_n_options): Declare n1 to be of type
unsigned int, not just int.
1999-01-16 15:55:20 +00:00
Jim Meyering
10f96d621c (get_version): Adjust prototype.
(xget_version): Add prototype.
(base_name): Remove prototype.
1999-01-16 15:54:22 +00:00
Jim Meyering
306ea2b028 [!HAVE_DECL_GETENV]: Declare getenv.
(backup_args): Reorder enum members.
(backup_types): Likewise.
(get_version): Take an additional parameter, `context'.
(xget_version): Like get_version, but if the `version' argument is NULL,
use the value of the envvar VERSION_CONTROL.
(base_name): Declare.
1999-01-16 15:51:21 +00:00
Jim Meyering
ff5b4df30b Add prototype for base_name. 1999-01-16 15:37:25 +00:00
Jim Meyering
20bc02752b (usage): Don't make it static so that it can be called from libfu.a by xargmatch. 1999-01-16 15:34:59 +00:00
Jim Meyering
410a3c94e8 (usage): Don't make it static so that it can be called from libfu.a by xargmatch. 1999-01-16 15:33:16 +00:00
Jim Meyering
c94e186b91 s/argmatch_exit_failure/argmatch_die/ 1999-01-16 15:21:52 +00:00
Jim Meyering
e42efa6866 (EXIT_FAILURE): Define.
(ARGMATCH_DIE): Use it.
1999-01-16 15:17:48 +00:00
Jim Meyering
115a5d0e61 *** empty log message *** 1999-01-16 15:12:19 +00:00
Jim Meyering
f28d5ba125 (XARGMATCH): Define to return a value once again.
(XARGCASEMATCH): Likewise.
1999-01-16 15:12:04 +00:00
Jim Meyering
f22e54a579 (ARGMATCH_DIE): Provide default.
(__xargmatch_internal): New function.
s/rogram_name/program_name.
From Akim Demaille.
1999-01-16 15:06:41 +00:00
Jim Meyering
888b0fe143 import latest 1999-01-15 13:26:46 +00:00
Jim Meyering
e0c1e743cc *** empty log message *** 1999-01-14 18:44:38 +00:00
Jim Meyering
3e60c9744d Use f', not x' as temp. file name to avoid warnings from perl5.004. 1999-01-14 18:43:54 +00:00
Jim Meyering
3cce240e0a . 1999-01-14 18:27:33 +00:00
Jim Meyering
17a4ddab33 *** empty log message *** 1999-01-14 18:27:01 +00:00
Jim Meyering
d2e1175756 (parse_long_options): Rename `usage' parameter
to avoid shadowing globally scoped function.
1999-01-14 18:26:51 +00:00
Jim Meyering
9fec9172be Don't prototype usage as static. 1999-01-14 18:25:16 +00:00
Jim Meyering
da25811932 Include closeout.h. (main): Use close_stdout. 1999-01-14 15:37:04 +00:00
Jim Meyering
dc4fd4c43b Include closeout.h. (main): Use close_stdout_status. 1999-01-14 15:36:50 +00:00
Jim Meyering
26ba9ca9df . 1999-01-13 05:50:34 +00:00
Jim Meyering
f749a71868 . 1999-01-13 05:50:05 +00:00
Jim Meyering
43ca488eae *** empty log message *** 1999-01-13 05:42:38 +00:00
Jim Meyering
b0c149e78f new version from automake 1999-01-13 05:40:42 +00:00
Jim Meyering
97bc6652e7 . 1999-01-13 05:38:11 +00:00
Jim Meyering
e0ad1ee4d1 . 1999-01-13 05:38:08 +00:00
Jim Meyering
af821763c5 new version from glibc 1999-01-13 05:37:17 +00:00
Jim Meyering
4a90a25973 new version from glibc 1999-01-13 05:36:45 +00:00
Jim Meyering
570fa71fb3 add parens, s/|/;/ 1999-01-12 17:40:08 +00:00
Jim Meyering
8d891cbf63 *** empty log message *** 1999-01-12 17:35:22 +00:00
Jim Meyering
58d4fd72fe Rewrite to avoid using fmt. 1999-01-12 17:35:13 +00:00
Jim Meyering
b517135765 . 1999-01-11 05:49:42 +00:00
Jim Meyering
f4e4297031 *** empty log message *** 1999-01-11 05:01:31 +00:00
Jim Meyering
22d584b475 . 1999-01-11 04:58:28 +00:00
Jim Meyering
f6aaba2b34 *** empty log message *** 1999-01-11 04:53:02 +00:00
Jim Meyering
c970990a0a All of the following new code is protected by `#if DONT_UNLINK_WHILE_OPEN'
(file_to_remove): New global.
(fp_to_close): New global.
(unlink_tempfile): New function.
(record_tempfile): New function.
(save_stdin): Call record_tempfile.
Use SET_BINARY.
(main): Use SET_BINARY and SET_BINARY2.
From Eli Zaretskii.
1999-01-11 04:52:44 +00:00
Jim Meyering
500f608a4d *** empty log message *** 1999-01-11 04:15:09 +00:00
Jim Meyering
e5eed12981 *** empty log message *** 1999-01-11 04:14:29 +00:00
Jim Meyering
8be71eeb83 . 1999-01-11 04:12:15 +00:00
Jim Meyering
06683af3c4 *** empty log message *** 1999-01-11 03:36:44 +00:00
Jim Meyering
38d09e7907 *** empty log message *** 1999-01-11 03:23:14 +00:00
Jim Meyering
0e777744cb (copy_internal): Handle two more values of errno from
failed rename of a directory into a subdirectory of itself.
1999-01-11 03:22:50 +00:00
Jim Meyering
9a887e5ca4 *** empty log message *** 1999-01-11 03:19:45 +00:00
Jim Meyering
495729b1dc (quotearg_buffer): Change escape_quoting_style so that it no longer escapes ` '.
Suggestion from Paul Eggert.
1999-01-11 03:11:15 +00:00
Jim Meyering
75e5479220 (decode_switches): Now that escape_quoting_style no longer
escapes the SPACE character, arrange for SPACEs to be quoted here.
1999-01-11 03:10:59 +00:00
Jim Meyering
db0dadb263 (ARGMATCH_QUOTING_STYLE): Change from c_quoting_style to escape_quoting_style.
(argmatch_invalid): Now that the quoted quantity is no longer double
quoted, remove the code that removed leading and trailing double quotes.
1999-01-11 03:10:19 +00:00
Jim Meyering
3c21ae616f *** empty log message *** 1999-01-11 02:49:20 +00:00
Jim Meyering
ac25bd69bf (main) [TEST_CANON_HOST]: Add a simple test driver. 1999-01-11 02:46:33 +00:00
Jim Meyering
87364848e2 import new version 1999-01-11 02:40:27 +00:00
Jim Meyering
015d9b3c3f . 1999-01-10 23:47:16 +00:00
Jim Meyering
8a3a8c7126 . 1999-01-10 23:44:44 +00:00
Jim Meyering
003cf75202 *** empty log message *** 1999-01-10 22:51:50 +00:00
Jim Meyering
51f90506ba Use the new 3-arg form of AC_DEFINE instead of my gross kludge. 1999-01-10 22:51:01 +00:00
Jim Meyering
4a0813fecb Use the new 3-arg form of AC_DEFINE instead of my gross kludge. 1999-01-10 22:50:14 +00:00
Jim Meyering
ee991227ee Use the new 3-arg form of AC_DEFINE instead of my gross kludge. 1999-01-10 22:49:24 +00:00
Jim Meyering
4d57863e63 Use the new 3-arg form of AC_DEFINE instead of my gross kludge. 1999-01-10 22:48:12 +00:00
Jim Meyering
d6c548c783 Use the new 3-arg form of AC_DEFINE instead of my gross kludge. 1999-01-10 22:47:37 +00:00
Jim Meyering
357c999a88 Use the new 3-arg form of AC_DEFINE instead of my gross kludge. 1999-01-10 22:47:01 +00:00
Jim Meyering
6222e67d7f Use 3-arg form of AC_DEFINE instead of the
AC_CHECK_FUNCS hack.  Now, it's still a hack, but at least the
comments in config.h.in are meaningful.
1999-01-10 22:45:03 +00:00
Jim Meyering
110bd4aa65 bump serial# 1999-01-10 22:43:13 +00:00
Jim Meyering
97d75acb2c Require autoconf-2.13 here. 1999-01-10 22:42:57 +00:00
Jim Meyering
8d598fb33d *** empty log message *** 1999-01-10 22:06:15 +00:00
Jim Meyering
ceb02a40aa *** empty log message *** 1999-01-10 14:57:07 +00:00
Jim Meyering
ea9ec4ab46 By default, don't use the included regex.c on systems
with glibc 2.  Suggestion from Uli Drepper.
1999-01-10 14:57:00 +00:00
Jim Meyering
37f6675617 *** empty log message *** 1999-01-09 21:20:02 +00:00
Jim Meyering
a9583f3841 *** empty log message *** 1999-01-09 16:25:02 +00:00
Jim Meyering
fd008ba80b declare `match' 1999-01-09 16:21:40 +00:00
Jim Meyering
1eb017af63 New option: --all-repeated (-D).
(output_all_repeated) [output_mode]: New enum value.
(usage): Describe it.
(writeline): Test for new mode.
(check_file): Likewise.
Based on patches from Jochen Hein and Florin Iucha.
(main): Diagnose `too many arguments'.
1999-01-09 16:16:18 +00:00
Jim Meyering
7a545dda54 Add tests from Jochen Hein. 1999-01-09 16:15:32 +00:00
Jim Meyering
27aafa985a (null-1): Add test from Jochen Hein. 1999-01-09 15:44:27 +00:00
Jim Meyering
df9cb5d5c0 s/max_n_consecutive_size_changes/max_n_consecutive_size_changes_between_opens/ 1999-01-09 14:21:32 +00:00
Jim Meyering
375b687738 (parse_obsolescent_option): Interpret `number' as decimal.
(parse_options): Likewise.
Reported by Kamal Paul Nigam.

New option: --max-unchanged-stats=N.
New option: --max-n-consecutive-size-changes=N.
1999-01-09 14:19:40 +00:00
Jim Meyering
955e21bb83 protoize 1999-01-07 03:43:01 +00:00
Jim Meyering
29547b55e4 import latest 1999-01-06 16:09:14 +00:00
Jim Meyering
15633a30c4 *** empty log message *** 1999-01-05 17:51:51 +00:00
Jim Meyering
6522d1a579 *** empty log message *** 1999-01-05 05:10:14 +00:00
Jim Meyering
dbe0ba8119 *** empty log message *** 1999-01-05 05:09:52 +00:00
Jim Meyering
ec29f8c718 *** empty log message *** 1999-01-05 04:38:35 +00:00
Jim Meyering
d7d06726a7 . 1999-01-05 04:29:34 +00:00
Jim Meyering
2b8ef64969 *** empty log message *** 1999-01-05 04:29:16 +00:00
Jim Meyering
5118d57563 (main): remove unused `i' 1999-01-04 20:16:31 +00:00
Jim Meyering
6bff151edc remove strcasecmp.cin 1999-01-04 20:14:26 +00:00
Jim Meyering
f8453c637e *** empty log message *** 1999-01-04 20:09:28 +00:00
Jim Meyering
551f17ed6f *** empty log message *** 1999-01-03 15:47:46 +00:00
Jim Meyering
944dc00d0c (usage): Remove third program_name argument -- there
were only two `%s' in the format string.
1999-01-03 15:47:38 +00:00
Jim Meyering
e38501be52 *** empty log message *** 1999-01-02 20:38:45 +00:00
Jim Meyering
7b36cfca74 (argmatch_invalid): Remove double quotes from the
offending quoted argument before using it in explanatory diagnostic.
Use a single fprintf stmt.
1999-01-02 20:35:06 +00:00
Jim Meyering
75b8fb688f . 1999-01-02 20:07:41 +00:00
Jim Meyering
5667ae159f *** empty log message *** 1999-01-02 20:07:04 +00:00
Jim Meyering
88d0241214 Replace strcasecmp and strncasecmp. 1999-01-02 20:06:59 +00:00
Jim Meyering
c3f528b978 . 1999-01-02 19:38:36 +00:00
Jim Meyering
fb888f11ab *** empty log message *** 1999-01-02 19:38:05 +00:00
Jim Meyering
731688ecd5 (tsort): Use a single call to error instead of two to fprintf.
(main): Remove `%s: ' prefix on format string.
1999-01-02 19:37:56 +00:00
Jim Meyering
7004c53ab4 (parse_options): Use XARGMATCH in place of argmatch. 1999-01-02 19:35:46 +00:00
Jim Meyering
501ee2ebd6 (format_vals): New array.
(main): Use XARGMATCH in place of argmatch.
1999-01-02 19:35:18 +00:00
Jim Meyering
e159d72704 *** empty log message *** 1999-01-02 19:33:33 +00:00
Jim Meyering
a31aa355b3 tsort docs 1999-01-02 19:32:14 +00:00
Jim Meyering
69834c7c98 (strcasecmp.c strncasecmp.c): Remove rules. 1999-01-02 19:31:19 +00:00
Jim Meyering
bfea519d18 . 1999-01-02 19:30:32 +00:00
Jim Meyering
51282eaf75 *** empty log message *** 1999-01-02 19:30:05 +00:00
Jim Meyering
1e25b6e3d3 Adapt to use new interface to XARGMATCH. 1999-01-02 19:29:47 +00:00
Jim Meyering
38acb920eb . 1999-01-02 19:28:42 +00:00
Jim Meyering
8b3cbe63d8 (get_version): Adapt to use new interface to XARGMATCH. 1999-01-02 19:28:31 +00:00
Jim Meyering
c7c2516a4d (XARGMATCH): Don't return a value; instead, modify a parameter.
Add a `Die_stmt' parameter.
Add parentheses.
1999-01-02 18:33:08 +00:00
Jim Meyering
fa7427c2ea (__xargmatch_internal): Remove now-unused function.
(argmatch_to_argument): Add `const' attribute to first parameter.
1999-01-02 18:32:50 +00:00
Jim Meyering
c39158b8ec *** empty log message *** 1999-01-02 16:36:25 +00:00
Jim Meyering
041b69340d use XARGMATCH, not XARGCASEMATCH 1999-01-02 16:35:55 +00:00
Jim Meyering
f4db32ef36 Add #ifdefs so it can be used for strncasecmp, too. 1999-01-02 15:55:52 +00:00
Jim Meyering
b966f347ee *** empty log message *** 1999-01-02 15:55:44 +00:00
Jim Meyering
49f27cd70e *** empty log message *** 1999-01-02 12:45:50 +00:00
Jim Meyering
2bb9d3c528 Move inclusion of assert.h to follow that of stdio.h.
Some losing systems require this.
Use STREQ macro instead of strcmp in a few places.
1999-01-02 05:54:07 +00:00
Jim Meyering
b311b41561 Remove definition of setlocale.
Remove definitions of bindtextdomain and textdomain.
1999-01-02 05:30:07 +00:00
Jim Meyering
0cb6dcf585 Include locale.h and libintl.h, and define `_()'.
Mark translatable strings.
1999-01-02 05:27:32 +00:00
Jim Meyering
e213c687aa *** empty log message *** 1999-01-02 05:17:17 +00:00
Jim Meyering
cb1d4eb4f2 (make_dir): New function, factored out of make_path.
(make_path): Use make_dir rather than open-coding it twice.
This effectively reverses the order of the latter pair of stat/mkdir
calls and fixes a race condition bug whereby one of two concurrent
`mkdir -p' processes could fail with EEXIST.
1999-01-02 05:16:57 +00:00
Jim Meyering
45ed22a319 *** empty log message *** 1999-01-02 02:34:47 +00:00
Jim Meyering
977e79ed76 Include readtokens.h.
(zeros): Rename global from `rr'.
(getstr): Remove function.
(tsort) Use readtoken instead of getstr.
1999-01-02 02:34:11 +00:00
Jim Meyering
a842553181 *** empty log message *** 1999-01-01 23:48:23 +00:00
Jim Meyering
1f6728404c *** empty log message *** 1999-01-01 23:46:52 +00:00
Jim Meyering
1b4f931bf4 . 1999-01-01 23:31:36 +00:00
Jim Meyering
2da1b2088f fix typo in comment 1999-01-01 22:55:53 +00:00
Jim Meyering
b99ab6e97d (PATH_MAX_IN_DIR) [HAVE_UNISTD_H]: New macro, for max
file name characters in a given directory.
(tempname): Make sure the temp file name is unique even if long
file names aren't supported.
1999-01-01 22:51:58 +00:00
Jim Meyering
13e5d17494 (cwrite) [O_BINARY]: Write output in binary mode.
(main) [O_BINARY]: Read input in binary mode.
1999-01-01 22:49:44 +00:00
Jim Meyering
f92719d4dc (bsd_sum_file, sysv_sum_file) [O_BINARY]: Read input in binary mode. 1999-01-01 22:48:51 +00:00
Jim Meyering
e60b747ade (tail_lines, tail_bytes) [O_BINARY]: Use binary I/O when appropriate. 1999-01-01 22:48:03 +00:00
Jim Meyering
7cb251e782 Add comments about peculiarities of Textutils operation on MS-DOS/MS-Windows. 1999-01-01 22:44:21 +00:00
Jim Meyering
f3ade72018 (wc): Use binary mode for input. 1999-01-01 22:42:36 +00:00
Jim Meyering
59998135d0 (unexpand): Use binary I/O where appropriate. 1999-01-01 22:41:58 +00:00
Jim Meyering
87f9e231c3 (main) [O_BINARY]: Use binary I/O when appropriate. 1999-01-01 22:40:48 +00:00
Jim Meyering
8e7da4a47c (skip, read_char, read_block) [O_BINARY]: Switch input
stream to binary mode.
1999-01-01 22:33:15 +00:00
Jim Meyering
f54c8f6d80 (OPENOPTS) [O_BINARY]: Use binary I/O when non-zero argument.
(md5_file) [O_BINARY]: Switch redirected stdin to binary mode.
(main) [O_BINARY]: Use binary reads by default on those systems
which care about the difference.
1999-01-01 22:29:32 +00:00
Jim Meyering
9eedfd2482 (head_bytes, head_lines) [O_BINARY]: Use binary I/O. 1999-01-01 22:28:40 +00:00
Jim Meyering
a498f54f37 (expand): Use binary I/O where appropriate. 1999-01-01 22:27:36 +00:00
Jim Meyering
4394c38352 (cksum) [O_BINARY]: Read redirected stdin in binary mode. 1999-01-01 22:22:02 +00:00
Jim Meyering
7914fb4069 (usage) [O_BINARY]: Describe -B,--binary option.
(main) [O_BINARY]: binary_files, binary_output, file_open_mode:
new variables. 	Add --binary to long_options[].  Switch stdin and
stdout to binary mode unless file contents are not important
anyway.  Open files in binary mode when required.
1999-01-01 22:20:23 +00:00
Jim Meyering
e6e8ae14c9 . 1999-01-01 22:11:50 +00:00
Jim Meyering
c704267b26 *** empty log message *** 1999-01-01 21:56:21 +00:00
Jim Meyering
3972420f3b (parse_options): Use XARGCASEMATCH in place of argmatch. 1999-01-01 21:47:08 +00:00
Jim Meyering
94c2a11f47 *** empty log message *** 1999-01-01 19:31:43 +00:00
Jim Meyering
d15c8cbe43 *** empty log message *** 1999-01-01 19:30:08 +00:00
Jim Meyering
b5c28b7097 Rename globals N and R so they don't shadow locals.
(tsort): Rename from `sort'.
1999-01-01 19:29:31 +00:00
Jim Meyering
06adce5358 remove trailing blanks 1999-01-01 19:05:47 +00:00
Jim Meyering
d9ce52992c from Mark Kettenis 1999-01-01 19:05:05 +00:00
Jim Meyering
83db4858d0 *** empty log message *** 1999-01-01 17:43:50 +00:00
Jim Meyering
21b87a6ab7 (quoting_style_vals): New public array. 1999-01-01 17:43:10 +00:00
Jim Meyering
975daefaad Add comments.
(xcalloc, xmalloc, xrealloc): Remove prototypes.
(calloc): Remove `#ifdef NOT_USED' that used to hide this function.
1999-01-01 17:40:08 +00:00
Jim Meyering
3b3e52352c Add comments.
(PARAMS, XMALLOC, XCALLOC, XREALLOC): Define.
Based on changes from Akim Demaille.
1999-01-01 17:36:43 +00:00
Jim Meyering
aa014b906c remove leading _ from _ARGMATCH_H_ 1999-01-01 17:34:18 +00:00
Jim Meyering
2a5e98c9a4 *** empty log message *** 1999-01-01 07:10:00 +00:00
Jim Meyering
dcaa4b656e . 1999-01-01 07:09:08 +00:00
Jim Meyering
5c6d6248e9 . 1999-01-01 07:08:54 +00:00
Jim Meyering
f8be5ac8df *** empty log message *** 1999-01-01 07:06:23 +00:00
Jim Meyering
32acfd66d0 (quotearg_n_options): Make options' parameter be const'. 1999-01-01 07:03:16 +00:00
Jim Meyering
dd16dfb3e3 (quotearg_buffer): Cast -1 to size_t before comparing.
(quotearg_n): Change type of 1st parameter from int to unsigned int.
(quotearg_n_options): Likewise.
From Akim Demaille.
1999-01-01 07:02:16 +00:00
Jim Meyering
2d4f0fea3a (humblock): Use ARGMATCH in place of argmatch. 1999-01-01 06:47:04 +00:00
Jim Meyering
46166ad9b7 (get_version): Use XARGCASEMATCH in place of argmatch & co. 1999-01-01 06:43:04 +00:00
Jim Meyering
bf97e5a0b8 . 1998-12-31 23:24:08 +00:00
Jim Meyering
422a7fdc78 (libfu_a_SOURCES): Remove strcasecmp.c.
(BUILT_SOURCES): Add strcasecmp.c and strncasecmp.c.
(EXTRA_DIST): Add strcasecmp.cin.
(strcasecmp.c): New rule.
(strncasecmp.c): New rule.
1998-12-31 22:03:13 +00:00
Jim Meyering
19270e99bc *** empty log message *** 1998-12-31 21:59:58 +00:00
Jim Meyering
91dc8874b0 (main): Use XARGCASEMATCH in place of argmatch & co. 1998-12-31 21:59:42 +00:00
Jim Meyering
58d6acdfd3 (indicator_style_types): New variable.
(format_types): Rename from `formats'.
(color_args): Remove unnecessary `no' string.
(color_types): Remove corresponding `color_never' entry.
(main): Use ARGMATCH_TO_ARGUMENT.
(decode_switches): Use ARGCASEMATCH instead of argmatch code
in each of several cases.
From Akim Demaille.
1998-12-31 21:49:36 +00:00
Jim Meyering
431652a886 (main): Use XARGCASEMATCH in place of argmatch & co. 1998-12-31 21:41:04 +00:00
Jim Meyering
2e487bb6da fix typo 1998-12-31 18:12:40 +00:00
Jim Meyering
c92163b6e9 white space changes 1998-12-31 18:10:53 +00:00
Jim Meyering
8782f7a817 (strncasecmp): Move to a separate file.
Add curly braces around some one-stmt-but-multiline blocks.
1998-12-31 18:07:23 +00:00
Jim Meyering
a58c222775 *** empty log message *** 1998-12-31 17:53:59 +00:00
Jim Meyering
44538bbbd8 remove trailing blanks 1998-12-31 16:19:31 +00:00
Jim Meyering
65df533705 lots of changes from Akim Demaille. 1998-12-31 16:18:46 +00:00
Jim Meyering
392902344a lots of changes from Akim Demaille. 1998-12-31 16:18:13 +00:00
Jim Meyering
bf588140c5 (addext): Protoize.
Indent cpp directives to match nesting.
1998-12-31 14:56:20 +00:00
Jim Meyering
0f2fbadbea (posix_time_parse): Change type of index `i' from int to unsigned int. 1998-12-31 14:53:16 +00:00
Jim Meyering
50225cad77 Fix warnings from gcc -W -Wall
(__attribute__): Define.
(ATTRIBUTE_UNUSED): Define.
(yyerror): Mark parameter as unused with ATTRIBUTE_UNUSED.
(MonthDayTable): Add initializers for last entry.
(UnitsTable): Likewise.
(OtherTable): Likewise.
(MilitaryTable): Likewise.
1998-12-31 14:37:21 +00:00
Jim Meyering
b15af47b49 . 1998-12-22 22:46:53 +00:00
Jim Meyering
9199178402 *** empty log message *** 1998-12-22 21:57:52 +00:00
Jim Meyering
f82c03de2d . 1998-12-20 13:50:13 +00:00
Jim Meyering
1a162983f4 *** empty log message *** 1998-12-20 02:31:54 +00:00
Jim Meyering
63ceb4f304 Use absolute path for final rm. 1998-12-20 02:31:47 +00:00
Jim Meyering
12838cec9b remove .saved-state 1998-12-19 21:07:32 +00:00
Jim Meyering
b5bfb1d399 *** empty log message *** 1998-12-19 17:21:00 +00:00
Jim Meyering
9497429d9b break long line 1998-12-19 17:20:03 +00:00
Jim Meyering
b80e127286 break long line 1998-12-19 17:19:13 +00:00
Jim Meyering
e53076d42c split long line 1998-12-19 17:18:23 +00:00
Jim Meyering
01fe7e76f4 . 1998-12-19 13:54:04 +00:00
Jim Meyering
bcf9971e84 *** empty log message *** 1998-12-19 13:53:37 +00:00
Jim Meyering
e107deb940 (my-distcheck): Run make with CFLAGS='-Wformat -Werror'. 1998-12-19 13:53:21 +00:00
Jim Meyering
7bf1f374e0 . 1998-12-18 22:11:39 +00:00
Jim Meyering
ede498bfb0 remove semicolon -- from Lars 1998-12-18 15:32:54 +00:00
Jim Meyering
2b00f4f4b6 *** empty log message *** 1998-12-18 15:32:29 +00:00
Jim Meyering
e93093d5e1 *** empty log message *** 1998-12-18 14:49:38 +00:00
Jim Meyering
f2606a6ba0 *** empty log message *** 1998-12-18 14:49:30 +00:00
Jim Meyering
58a77bf4f6 (Makefile.am): Simplify rule.
Based on suggestion from Lars Hecking.
1998-12-18 14:49:01 +00:00
Jim Meyering
344f43313d *** empty log message *** 1998-12-18 14:48:32 +00:00
Jim Meyering
e68c81a48f (copy_internal): Remove errnoeous `%s: ' prefix
from format string.  From Michiel Bacchiani.
1998-12-18 14:22:50 +00:00
Jim Meyering
0e49de1acb *** empty log message *** 1998-12-18 14:22:30 +00:00
Jim Meyering
a3e473c522 (UID_T_MAX, GID_T_MAX): Define them here instead. 1998-12-18 14:09:29 +00:00
Jim Meyering
6408b52640 (UID_T_MAX, GID_T_MAX): Remove definitions. 1998-12-18 14:09:19 +00:00
Jim Meyering
e28821d5f8 (MAXGID): Define.
Use gid_t (not int) as the type for `group' variables.
(parse_group): Use MAXGID, not INT_MAX.
1998-12-18 14:07:58 +00:00
Jim Meyering
621691b296 New options for tail: --follow=name, --follow=descriptor, --allow-missing
(Follow_mode): New enum.
(n_live_files): New function.
(tail_forever): Avoid starvation with --follow=name and a
continually-growing unlinked or renamed file.
1998-12-17 13:56:25 +00:00
Jim Meyering
72c9472cc0 import latest 1998-12-16 13:41:13 +00:00
Jim Meyering
7dfd5ca1cd add comment about opening exclusively 1998-12-13 19:26:35 +00:00
Jim Meyering
c5195207db . 1998-12-13 19:19:07 +00:00
Jim Meyering
8a644a90ef . 1998-12-13 19:01:59 +00:00
Jim Meyering
29ab746b79 Don't include stdlib.h and declare malloc and free.
This works around Solaris 2.7's conflicting prototype.
Reported by Karl Berry.
1998-12-13 18:04:11 +00:00
Jim Meyering
7cf7f3706f (EXTRA_DIST): Add xstat.in. 1998-12-13 17:19:51 +00:00
Jim Meyering
297e2cb744 . 1998-12-12 06:22:56 +00:00
Jim Meyering
9507d3559a In order to distinguish col(umn|or):
(init_column_info): Renamed from init_col_info.
(struct column_info): Renamed from struct col_info.
(struct color_ext_type): Renamed from struct col_ext_type.
From Akim Demaille.
1998-12-12 06:20:42 +00:00
Jim Meyering
876d24a3ed * src/ls.c: Group DIRED's code together.
(full_time, inhibit_group, col_ext_type): Declare static.
(dired_dump_obstack): Apply sizeof to variable, instead of its type.
(parse_ls_color): Rename ext2 as e2.  Move into the block where it is used.
From Akim Demaille.
1998-12-12 06:11:24 +00:00
Jim Meyering
1384f07f77 . 1998-12-12 05:48:25 +00:00
Jim Meyering
8ff77278a2 *** empty log message *** 1998-12-12 05:46:44 +00:00
Jim Meyering
8c97b5c46e (lstat.c): Add rule to generate this from xstat.in.
(stat.c): Likewise.
1998-12-12 05:46:02 +00:00
Jim Meyering
4ff6b43025 *** empty log message *** 1998-12-12 05:45:39 +00:00
Jim Meyering
af36c75750 . 1998-12-12 05:45:29 +00:00
Jim Meyering
fd65b86607 (quotearg_buffer): Use 7' as the mask, not 3'.
From Bruno Haible.
1998-12-11 14:14:16 +00:00
Jim Meyering
bc0c0e635c *** empty log message *** 1998-12-11 14:13:40 +00:00
Jim Meyering
0e65b3e861 Add a test for the quotearg_buffer bug. 1998-12-11 14:13:29 +00:00
Jim Meyering
458aad90ab *** empty log message *** 1998-12-11 13:47:28 +00:00
Jim Meyering
74235b07fa *** empty log message *** 1998-12-11 13:39:42 +00:00
Jim Meyering
a17cdb1173 (main): Arrange to exit unsuccessfully when stime fails.
From Andreas Schwab.
1998-12-11 13:37:52 +00:00
Jim Meyering
b2747b91a8 import version 1.006 1998-12-11 13:34:23 +00:00
Jim Meyering
0963c4ba11 . 1998-12-07 06:26:12 +00:00
Jim Meyering
b4640ed990 (dir_name): Rename from dirname.
Make argument `const'.  Include "dirname.h"
1998-12-07 06:25:54 +00:00
Jim Meyering
1698d53f72 (noinst_HEADERS): Add dirname.h. 1998-12-07 06:25:29 +00:00
Jim Meyering
5ae5d486a9 . 1998-12-07 06:24:28 +00:00
Jim Meyering
ef234641de *** empty log message *** 1998-12-07 06:21:12 +00:00
Jim Meyering
52dedbfebb Use dir_name, not dirname. Include dirname.h. 1998-12-07 06:20:50 +00:00
Jim Meyering
f5e9896c18 . 1998-12-07 05:54:49 +00:00
Jim Meyering
572632b8eb *** empty log message *** 1998-12-07 05:54:29 +00:00
Jim Meyering
a467be8ae8 *** empty log message *** 1998-12-07 05:18:06 +00:00
Jim Meyering
5551e54672 *** empty log message *** 1998-12-07 05:14:42 +00:00
Jim Meyering
b7e610bfdb (rpmatch) [!ENABLE_NLS]: Hard-code tests to use ^[yY]' and ^[nN]'.
From Karl Heuer.
1998-12-07 05:14:07 +00:00
Jim Meyering
7e6c89fc63 *** empty log message *** 1998-12-07 05:12:48 +00:00
Jim Meyering
7273e22923 declare base_name 1998-12-07 04:35:20 +00:00
Jim Meyering
6f5e749ea6 *** empty log message *** 1998-12-07 04:33:20 +00:00
Jim Meyering
376d67374f *** empty log message *** 1998-12-07 03:12:21 +00:00
Jim Meyering
7d60769bea ansideclify 1998-12-07 03:12:10 +00:00
Jim Meyering
604b3b397d *** empty log message *** 1998-12-06 23:09:39 +00:00
Jim Meyering
a68f3dee80 add ls -R . test 1998-12-06 23:09:29 +00:00
Jim Meyering
dd3bad9b7c . 1998-12-06 23:09:14 +00:00
Jim Meyering
6207f6f804 Fix `ls -R .' formatting bug that broke mktexlsr.
Include path-concat.h.
(basename_is_dot_or_dotdot): New function, derived from
is_not_dot_or_dotdot.
(is_not_dot_or_dotdot): Remove function.
(extract_dirs_from_files): Use `!basename_is_dot_or_dotdot'
instead of is_not_dot_or_dotdot and use path_concat instead of attach.
1998-12-06 23:08:55 +00:00
Jim Meyering
16c8a66a54 (TESTS): s/quoting/tests/. 1998-12-06 23:03:32 +00:00
Jim Meyering
9069b306dc renamed from quote 1998-12-06 23:01:12 +00:00
Jim Meyering
76223aedef *** empty log message *** 1998-12-06 22:18:38 +00:00
Jim Meyering
2ec7385fb0 Redefine putenv before including stdlib.h to work
around Solaris 2.7's conflicting prototype.  Reported by Karl Berry.
1998-12-06 22:18:17 +00:00
Jim Meyering
46dd5092ee . 1998-12-06 21:06:22 +00:00
Jim Meyering
e5f51be9f1 . 1998-12-06 21:06:02 +00:00
Jim Meyering
1e422ea7ec (DOT_OR_DOTDOT): New definition (moved here from remove.c.). 1998-11-30 03:01:24 +00:00
Jim Meyering
9d7c18290e (DOT_OR_DOTDOT): Move definition from this file... 1998-11-30 03:00:51 +00:00
Jim Meyering
90dbea92c4 (dd_copy): Rename function from `copy'. 1998-11-30 02:58:21 +00:00
Jim Meyering
d9878753d1 (do_copy): Rename local: s/unused/copy_into_self/ 1998-11-30 02:57:43 +00:00
Jim Meyering
4dbf57ed78 (do_move): Don't arrange to remove DEST in the copied-into-self case. 1998-11-30 02:56:05 +00:00
Jim Meyering
438a33770b *** empty log message *** 1998-11-30 02:54:28 +00:00
Jim Meyering
f7cd44c64c (TESTS): Add hard-link-1. 1998-11-30 02:53:57 +00:00
Jim Meyering
32df3704e4 (copy_internal): Remove earlier (but less effective)
test for move/copy-into-self.
Instead, deduce the move-into-self condition from errno==EINVAL
after a failed rename.
1998-11-30 02:10:13 +00:00
Jim Meyering
955d2c6ae5 *** empty log message *** 1998-11-30 02:03:01 +00:00
Jim Meyering
75d5ed8b58 (movefile): Don't free new_dest.
Bob McCracken reported that mv couldn't handle certain combinations
of hard linked source files.
1998-11-30 02:01:18 +00:00
Jim Meyering
b9c6c84a8c handle VERBOSE 1998-11-30 00:46:14 +00:00
Jim Meyering
3c6a1e9f08 (TESTS): Add into-self-3. 1998-11-30 00:45:44 +00:00
Jim Meyering
bb6a835cc1 *** empty log message *** 1998-11-30 00:44:59 +00:00
Jim Meyering
78f7236408 don't mention package name in comments 1998-11-21 17:43:41 +00:00
Jim Meyering
976ca67266 tweak comment 1998-11-21 17:33:45 +00:00
Jim Meyering
aba712c3bc *** empty log message *** 1998-11-17 02:14:16 +00:00
Jim Meyering
3ec7a99af6 Double-quote the uname... expression. 1998-11-17 02:14:12 +00:00
Jim Meyering
d60ac7e850 (AC_LFS): Add support for HP-UX 10.20 and HP-UX 11. 1998-11-17 02:09:52 +00:00
Jim Meyering
4c15e09a2c *** empty log message *** 1998-11-16 05:51:31 +00:00
Jim Meyering
a1d63c6f15 *** empty log message *** 1998-11-15 17:43:26 +00:00
Jim Meyering
e781ee9e60 *** empty log message *** 1998-11-15 17:36:02 +00:00
Jim Meyering
9764f6e3e1 *** empty log message *** 1998-11-15 17:35:45 +00:00
Jim Meyering
e77961586a (error): Don't use strerror_r's return value. 1998-11-15 17:35:34 +00:00
Jim Meyering
11135e1307 *** empty log message *** 1998-11-14 15:33:42 +00:00
Jim Meyering
d8a0eef528 (cvs-dist): Search for `$tag:' rather than just $tag
to avoid matching a prefix of another tag.
1998-11-14 15:33:34 +00:00
Jim Meyering
b7657496c3 update from master copy 1998-11-14 15:00:39 +00:00
Jim Meyering
01c7f17f33 Correct comment. POSIX does not permit it to succeed. 1998-11-14 13:23:22 +00:00
Jim Meyering
a211252152 *** empty log message *** 1998-11-14 13:23:08 +00:00
Jim Meyering
24c0a0a99d Correct comment. POSIX does not permit it to succeed. 1998-11-14 13:22:58 +00:00
Jim Meyering
df521a1b29 revert-to-4.0-b7 1998-11-14 13:17:34 +00:00
Jim Meyering
686a7e9ff3 *** empty log message *** 1998-11-14 13:15:22 +00:00
Jim Meyering
1d738b51d1 revert backupfile change 1998-11-14 13:13:50 +00:00
Jim Meyering
84c2d0e52e revert-last-change 1998-11-14 13:13:10 +00:00
Jim Meyering
6c0c08eb29 back out last change: there is a better way 1998-11-11 05:16:09 +00:00
Jim Meyering
7de9edecfc (BACKUPFILE_EXIT_FAILURE): Define.
(get_version): Use it in place of EXIT_FAILURE.
1998-11-11 05:01:26 +00:00
Jim Meyering
9e3f43b368 [EXIT_FAILURE]: Define.
(get_version): Use EXIT_FAILURE as exit status rather than
hard-coding `2'.  From Franois Pinard.
1998-11-10 05:57:56 +00:00
Jim Meyering
d7b702d0d0 avoid new warnings from texinfo-1.12b 1998-11-08 16:20:00 +00:00
Jim Meyering
ed5b1cad23 . 1998-11-08 16:13:13 +00:00
Jim Meyering
532074e1c7 . 1998-11-08 03:49:22 +00:00
Jim Meyering
deef42170f *** empty log message *** 1998-11-08 03:44:44 +00:00
Jim Meyering
b808de586b *** empty log message *** 1998-11-08 03:42:44 +00:00
Jim Meyering
ac7f057d98 Rewrite to set HAVE_LSTAT_EMPTY_STRING_BUG. 1998-11-08 03:42:35 +00:00
Jim Meyering
2daa912c53 Rewrite to set HAVE_STAT_EMPTY_STRING_BUG. 1998-11-08 03:42:20 +00:00
Jim Meyering
7bf8c634eb . 1998-11-08 03:42:04 +00:00
Jim Meyering
c091e6fe83 [lstat]: Remove #undef.
(rpl_lstat): Protoize.  Use ENOENT, not EINVAL, to be consistent
with lib/stat.c.
1998-11-08 03:40:04 +00:00
Jim Meyering
dc61111cc6 (rpl_stat): Protoize.
(stat): Remove #undef.
1998-11-08 03:39:42 +00:00
Jim Meyering
920680fe4f [HAVE_LSTAT_EMPTY_STRING_BUG]: Define lstat to rpl_lstat and declare the latter. 1998-11-08 03:38:06 +00:00
Jim Meyering
c9f0e3d343 *** empty log message *** 1998-11-02 17:08:44 +00:00
Jim Meyering
b4c9bd2b7e . 1998-11-01 17:17:52 +00:00
Jim Meyering
453be366da latest from ftp.gnu.org 1998-11-01 16:41:46 +00:00
Jim Meyering
f51e80f564 *** empty log message *** 1998-11-01 05:26:06 +00:00
Jim Meyering
993a56e8e0 . 1998-11-01 01:04:11 +00:00
Jim Meyering
d8e4dccdca . 1998-11-01 01:02:24 +00:00
Jim Meyering
427e67b196 Rewrite to use new testing framework. 1998-11-01 00:52:32 +00:00
Jim Meyering
90ffddc87e . 1998-11-01 00:52:16 +00:00
Jim Meyering
8458f55338 *** empty log message *** 1998-11-01 00:52:06 +00:00
Jim Meyering
bf5ef10371 . 1998-11-01 00:51:26 +00:00
Jim Meyering
d087967041 . 1998-11-01 00:50:23 +00:00
Jim Meyering
cfb54dec88 *** empty log message *** 1998-11-01 00:49:44 +00:00
Jim Meyering
e1958a7253 *** empty log message *** 1998-11-01 00:12:41 +00:00
Jim Meyering
cf50a06294 (TESTS): Add new test `empty-name', but comment it out. 1998-11-01 00:12:07 +00:00
Jim Meyering
c96d9a880f *** empty log message *** 1998-11-01 00:09:44 +00:00
Jim Meyering
25bf05e45e update from master copy 1998-10-31 15:19:09 +00:00
Jim Meyering
99b35637c4 . 1998-10-25 14:30:46 +00:00
Jim Meyering
09b8756e33 . 1998-10-25 14:30:15 +00:00
Jim Meyering
9c5d11d5c5 . 1998-10-25 14:28:04 +00:00
Jim Meyering
bf6c2a07af *** empty log message *** 1998-10-25 14:12:47 +00:00
Jim Meyering
c729fe037e (TESTS): Add new test `unreadable'. But comment
it out since we're so close to release and since the test compares the
text of diagnostics that are likely to vary between systems.
(TEST_ENVIRONMENT): Add required framework.
1998-10-25 14:08:38 +00:00
Jim Meyering
02cde32c0a *** empty log message *** 1998-10-25 14:03:09 +00:00
Jim Meyering
7741f87086 *** empty log message *** 1998-10-25 13:58:56 +00:00
Jim Meyering
9e630b86cb (remove_cwd_entries): Don't apply CLOSEDIR to a NULL
pointer. (provoke with `mkdir -m 0100 x; rm -rf x')
Upon CLOSEDIR failure, set `status' to RM_ERROR, not RM_OK.
(remove_dir): Return `status', rather than always RM_OK.
1998-10-25 13:58:50 +00:00
Jim Meyering
2e19f14a91 *** empty log message *** 1998-10-23 02:08:48 +00:00
Jim Meyering
65b1a6ec82 (usage): Add mention of --version and --help. 1998-10-23 02:08:35 +00:00
Jim Meyering
06d1a87e3b *** empty log message *** 1998-10-18 14:18:22 +00:00
Jim Meyering
f417e8b9d4 . 1998-10-18 14:14:09 +00:00
Jim Meyering
4fb556ee0e Don't invoke localtime_r or gmtime_r unless it's the GNU C
library's localtime_r and gmtime_r; there are too many buggy
	implementations of localtime_r and gmtime_r out there, and
	it's not worth keeping track of all the different bugs.

	* strftime.c (__EXTENSIONS__): Remove.
	(my_strftime_gmtime_r): Renamed from gmtime_r; all uses changed.
	(my_strftime_localtime_r): Renamed from localtime_r; all uses changed.
	Base them on localtime/gmtime if not _LIBC.
1998-10-18 14:09:48 +00:00
Jim Meyering
c850393032 Don't invoke localtime_r or gmtime_r unless it's the GNU C
library's localtime_r and gmtime_r; there are too many buggy
	implementations of localtime_r and gmtime_r out there, and
	it's not worth keeping track of all the different bugs.

	* mktime.c (__EXTENSIONS__, HAVE_LOCALTIME_R): Remove.
	(my_mktime_localtime_r): Renamed from localtime_r; all uses changed.
	Base it on localtime unless _LIBC.
1998-10-18 14:08:35 +00:00
Jim Meyering
61ece919c6 (jm_CHECK_DECL_LOCALTIME_R): Remove macro. 1998-10-18 14:08:09 +00:00
Jim Meyering
843b44b3f7 *** empty log message *** 1998-10-18 01:50:53 +00:00
Jim Meyering
5edb65b5c4 . 1998-10-18 01:49:44 +00:00
Jim Meyering
a71cb7cad1 Declare localtime_r if necessary. 1998-10-18 01:11:35 +00:00
Jim Meyering
e2d1b297e7 Declare localtime_r if necessary. 1998-10-18 01:10:21 +00:00
Jim Meyering
70bea7fd3e *** empty log message *** 1998-10-18 01:08:54 +00:00
Jim Meyering
ec936db8d7 (jm_CHECK_DECLS): Reflect interface change.
(jm_CHECK_DECL_LOCALTIME_R): New macro.
1998-10-18 01:08:22 +00:00
Jim Meyering
2b69ce2d89 (jm_CHECK_DECLARATION): Don't hard-code which headers to
include, though we still hard-code the `require'-like AC_CHECK_HEADERS
calls for those previously hard-coded headers.  Instead, take a new parameter.
(jm_CHECK_DECLARATIONS): Reflect interface change.
1998-10-18 01:07:17 +00:00
Jim Meyering
0a25bc498d Test for spring-forward gap before long-running test. 1998-10-18 00:58:07 +00:00
Jim Meyering
6cc7e13732 (run_tests): Run $prog with --version only if $verbose. 1998-10-17 12:47:21 +00:00
Jim Meyering
0e1c643956 *** empty log message *** 1998-10-17 12:39:57 +00:00
Jim Meyering
2e29b32116 Some systems require <unistd.h> to be included before <time.h> for
localtime_r to be declared properly.
1998-10-17 12:39:30 +00:00
Jim Meyering
082787996c Use the more portable "TZ=PST8PDT,M4.1.0,M10.5.0"
instead of "TZ=America/Vancouver".  From Paul Eggert.
1998-10-14 21:27:52 +00:00
Jim Meyering
edef42bf40 *** empty log message *** 1998-10-12 03:51:35 +00:00
Jim Meyering
efce5c3bdf . 1998-10-12 03:50:44 +00:00
Jim Meyering
18ac22d2fc . 1998-10-12 03:50:24 +00:00
Jim Meyering
c20eae80c7 add jm_ prefix to cache variable 1998-10-12 03:20:21 +00:00
Jim Meyering
6f43239736 *** empty log message *** 1998-10-12 02:56:35 +00:00
Jim Meyering
c6b7de061f *** empty log message *** 1998-10-12 02:55:35 +00:00
Jim Meyering
10d64e02c4 Require jm_AM_FUNC_MKTIME, not AM_FUNC_MKTIME. 1998-10-12 02:55:28 +00:00
Jim Meyering
852a30165b (jm_AM_FUNC_MKTIME): New file and macro. 1998-10-12 02:55:17 +00:00
Jim Meyering
e4d0cf679c . 1998-10-12 02:51:10 +00:00
Jim Meyering
57c0968203 *** empty log message *** 1998-10-12 02:51:01 +00:00
Jim Meyering
761ed79f4d (_REENTRANT): Define again -- linux-2.0.33 needs it. 1998-10-12 02:00:59 +00:00
Jim Meyering
f49ea966c3 *** empty log message *** 1998-10-12 01:18:08 +00:00
Jim Meyering
8c6d49c84d *** empty log message *** 1998-10-11 23:04:04 +00:00
Jim Meyering
061a10d1ff (__mktime_internal): When the requested time falls
in a spring-forward gap of size DT, return a time that is DT
away from the requested time, preferring a time whose tm_isdst
differs from the requested value.  Bump the max number of
probes from 4 to 6 to account for the extra probes needed to
discover a spring-forward gap in the worst case.
1998-10-11 23:03:41 +00:00
Jim Meyering
787dfe9c83 . 1998-10-10 18:38:05 +00:00
Jim Meyering
9e3949fa6f . 1998-10-10 18:37:44 +00:00
Jim Meyering
62b64a0e92 *** empty log message *** 1998-10-08 12:24:40 +00:00
Jim Meyering
37c289ea31 (my_mktime_localtime_r): Renamed from localtime_r.
Define also if HAVE_LOCALTIME_R && defined (localtime_r), with
a body that merely expands localtime_r; this works around a
bug in Digital Unix 4.0A and 4.0D.
1998-10-08 12:19:48 +00:00
Jim Meyering
297a13a5a3 import 1.5b 1998-10-06 04:07:25 +00:00
Jim Meyering
2aae4df6ef *** empty log message *** 1998-10-05 12:27:03 +00:00
Jim Meyering
8670ecb6cb (long_options): Add entry for --suffix=SUFFIX option. 1998-10-05 12:23:21 +00:00
Jim Meyering
1b1bcc5e29 *** empty log message *** 1998-10-05 04:30:40 +00:00
Jim Meyering
03d1ff2dea *** empty log message *** 1998-10-05 04:24:42 +00:00
Jim Meyering
1381664a56 . 1998-10-05 04:21:39 +00:00
Jim Meyering
3ed45d5062 back out last change 1998-10-05 04:20:33 +00:00
Jim Meyering
dfd3465715 half-hearted attempt to support file name quoting 1998-10-05 04:20:12 +00:00
Jim Meyering
86488adef8 *** empty log message *** 1998-10-05 04:05:41 +00:00
Jim Meyering
3564013e18 add double quotes 1998-10-05 03:34:17 +00:00
Jim Meyering
a019f34623 (TESTS_ENVIRONMENT): Define PERL. 1998-10-05 03:30:41 +00:00
Jim Meyering
0e2247a55b *** empty log message *** 1998-10-04 13:53:18 +00:00
Jim Meyering
253d68786d *** empty log message *** 1998-10-04 13:50:52 +00:00
Jim Meyering
f6a19e2c78 . 1998-10-04 13:15:15 +00:00
Jim Meyering
f7880af3db . 1998-10-04 03:23:24 +00:00
Jim Meyering
ce55ab29b1 . 1998-10-04 03:11:32 +00:00
Jim Meyering
6bbbdce4d8 *** empty log message *** 1998-10-04 03:08:54 +00:00
Jim Meyering
5027e9d281 *** empty log message *** 1998-10-04 03:06:22 +00:00
Jim Meyering
701e23d1e4 (split_3): Rename local variable, to `escaped_filename'.
(main): Output the leading backslash not just when there's a newline
in the file name, but also when there's a backslash.
1998-10-04 03:05:37 +00:00
Jim Meyering
516e60ed10 Add tests with filenames containing newline and backslash characters. 1998-10-04 03:01:12 +00:00
Jim Meyering
61c04cdaed use debug, not verbose 1998-10-04 02:54:15 +00:00
Jim Meyering
3d58b592ed rewrite for Fetish.pm 1998-10-04 02:51:30 +00:00
Jim Meyering
71aa0114bb . 1998-10-04 02:45:26 +00:00
Jim Meyering
cbd698b247 . 1998-10-04 01:08:18 +00:00
Jim Meyering
bf887b6800 . 1998-10-04 01:04:55 +00:00
Jim Meyering
d8827d033a *** empty log message *** 1998-10-04 01:03:51 +00:00
Jim Meyering
434df90510 (TESTS_ENVIRONMENT): Add PATH. 1998-10-04 01:03:26 +00:00
Jim Meyering
483b1367bc *** empty log message *** 1998-10-03 19:51:36 +00:00
Jim Meyering
df694b9339 . 1998-10-03 19:50:10 +00:00
Jim Meyering
dcd55a5277 . 1998-10-03 19:47:20 +00:00
Jim Meyering
742600e30d Invoke program with --manhelp option only if
--name=STRING not specified.  Otherwise, this would fail with `yes'.
1998-10-03 19:15:41 +00:00
Jim Meyering
62db78c613 *** empty log message *** 1998-10-03 17:39:49 +00:00
Jim Meyering
f439fa811c . 1998-10-03 17:27:28 +00:00
Jim Meyering
169bead160 . 1998-10-03 17:21:02 +00:00
Jim Meyering
2ebff08169 (main): Update to use new version of posixtime. 1998-10-03 17:18:52 +00:00
Jim Meyering
5b1af11410 . 1998-10-03 16:49:01 +00:00
Jim Meyering
62ff4ae63c Make `VERBOSE' be a little more verbose. 1998-10-03 16:47:44 +00:00
Jim Meyering
9ef5ce0581 (TESTS): Add i-1. 1998-10-03 16:46:27 +00:00
Jim Meyering
d21a17dbb4 . 1998-10-03 16:45:10 +00:00
Jim Meyering
cfd0d53368 . 1998-10-03 05:00:26 +00:00
Jim Meyering
432e6df3e4 Include /bin/sh driver framework. 1998-10-03 04:59:26 +00:00
Jim Meyering
95fd28c290 *** empty log message *** 1998-10-03 04:58:28 +00:00
Jim Meyering
2239a0ff2c . 1998-10-03 04:58:21 +00:00
Jim Meyering
0345ac460a . 1998-10-03 04:54:54 +00:00
Jim Meyering
8b0f15401b . 1998-10-03 04:52:09 +00:00
Jim Meyering
af988b5428 . 1998-10-03 04:43:55 +00:00
Jim Meyering
2e4ebbf522 *** empty log message *** 1998-10-02 14:31:24 +00:00
Jim Meyering
84fd56fe2a *** empty log message *** 1998-10-02 14:31:11 +00:00
Jim Meyering
a23ce11f2a latest from ftp.gnu.org 1998-10-02 03:21:04 +00:00
Jim Meyering
a7dea23c83 . 1998-09-29 03:54:30 +00:00
Jim Meyering
453a3cbd73 . 1998-09-29 03:41:16 +00:00
Jim Meyering
3da2cfc475 *** empty log message *** 1998-09-29 03:41:05 +00:00
Jim Meyering
22c794bf9b *** empty log message *** 1998-09-29 03:34:42 +00:00
Jim Meyering
0c47bc711f *** empty log message *** 1998-09-29 03:21:10 +00:00
Jim Meyering
cdd0e0a757 *** empty log message *** 1998-09-29 03:13:25 +00:00
Jim Meyering
0bb1cba1bc . 1998-09-29 03:12:27 +00:00
Jim Meyering
662777cad5 *** empty log message *** 1998-09-29 02:48:10 +00:00
Jim Meyering
b7e1eadbf8 (copy_internal): Do honor `n' reply in move-mode.
Otherwise, `touch a b; echo n|mv -i a b' would remove b.
From Bernd Leibing.
1998-09-28 16:15:00 +00:00
Jim Meyering
685d842096 *** empty log message *** 1998-09-28 16:14:33 +00:00
Jim Meyering
a3e6379a2c *** empty log message *** 1998-09-28 03:36:44 +00:00
Jim Meyering
3e99e73234 (main): Decrement optind when we find an `option' that
looks like -N.  Reported by Clark Morgan.
1998-09-28 03:35:51 +00:00
Jim Meyering
efcde72ce7 (my-distcheck): Tweak. 1998-09-27 19:37:57 +00:00
Jim Meyering
7155f1e45a *** empty log message *** 1998-09-27 19:37:51 +00:00
Jim Meyering
59463cd869 (alpha): New target. 1998-09-27 18:44:59 +00:00
Jim Meyering
998842665b (alpha): New target. 1998-09-27 18:44:34 +00:00
Jim Meyering
63a8243257 *** empty log message *** 1998-09-27 17:54:50 +00:00
Jim Meyering
9d806a54bf *** empty log message *** 1998-09-27 17:45:22 +00:00
Jim Meyering
855f6816d6 *** empty log message *** 1998-09-27 17:45:00 +00:00
Jim Meyering
2b53ea5791 Protect against multiple inclusion.
From Akim Demaille.
1998-09-27 17:44:49 +00:00
Jim Meyering
80768df1f5 *** empty log message *** 1998-09-27 17:36:17 +00:00
Jim Meyering
61f48952f2 add missing close paren 1998-09-27 17:31:29 +00:00
Jim Meyering
095d748e53 . 1998-09-27 17:30:06 +00:00
Jim Meyering
f5df8ad7f0 . 1998-09-27 17:27:38 +00:00
Jim Meyering
aaa4b67c31 (jm_MACROS): Require jm_FUNC_FNMATCH. 1998-09-27 17:26:55 +00:00
Jim Meyering
4a5b97a91e . 1998-09-27 16:45:42 +00:00
Jim Meyering
8589763111 Makefile.am 1998-09-27 16:45:21 +00:00
Jim Meyering
1ff7800b19 *** empty log message *** 1998-09-27 16:41:04 +00:00
Jim Meyering
fbe115a9e4 indent 1998-09-27 16:40:09 +00:00
Jim Meyering
3f17755a74 . 1998-09-27 16:39:53 +00:00
Jim Meyering
fbb1fb519f (my_strftime): Update from FSF. 1998-09-27 12:45:33 +00:00
Jim Meyering
dc68d2454e *** empty log message *** 1998-09-27 02:57:44 +00:00
Jim Meyering
80499598c1 (copy_internal): Don't preserve hard-linked directories
to avoid damaging the destination filesystem when copying from a
Netapp snapshot directory.  With code from Kjetil Torgrim Hollstein
and Paul Eggert.
1998-09-27 02:57:29 +00:00
Jim Meyering
b6dcafff11 . 1998-09-26 19:13:40 +00:00
Jim Meyering
219c7a280d . 1998-09-26 19:13:28 +00:00
Jim Meyering
3f9e8072e8 factor.c 1998-09-26 19:12:16 +00:00
Jim Meyering
72f8c0a17c (__xstrtol) [STRING_TO_UNSIGNED]: Return
LONGINT_INVALID for strings that begin with `-'.
1998-09-26 19:11:23 +00:00
Jim Meyering
d679ddd839 Add a test for negative argument.
Tweak postprocessing framework.
1998-09-26 15:32:31 +00:00
Jim Meyering
cded303e29 Declare locals: before, after. From Andries Brouwer. 1998-09-21 12:05:49 +00:00
Jim Meyering
050e7dcf7c *** empty log message *** 1998-09-20 14:35:17 +00:00
Jim Meyering
ad37e45e20 . 1998-09-20 13:44:20 +00:00
Jim Meyering
2b8279f893 (install_file_to_path) [-D]: Create any leading
directories with permissions of 0755.
1998-09-20 13:44:12 +00:00
Jim Meyering
ef679d9871 (install_file_to_path): Copy the file after creating any leading directories.
(main) [case 'v']: Set `x.verbose' to 1, not 0.
1998-09-20 02:17:26 +00:00
Jim Meyering
3ba504d409 (cvs-dist): Don't use tar --diff.
(announcement): Tweak.
1998-09-19 21:51:33 +00:00
Jim Meyering
c11fa3240a *** empty log message *** 1998-09-19 20:40:33 +00:00
Jim Meyering
ca22f0d886 . 1998-09-19 20:40:20 +00:00
Jim Meyering
23b298e107 *** empty log message *** 1998-09-19 18:43:12 +00:00
Jim Meyering
6aaf307bc4 *** empty log message *** 1998-09-19 17:39:38 +00:00
Jim Meyering
efcc24f9d4 *** empty log message *** 1998-09-19 17:33:27 +00:00
Jim Meyering
24a8bf2d3e update bug-reporting address 1998-09-19 17:32:35 +00:00
Jim Meyering
ef67832eae (main): Revamp option processing, again.
stty couldn't parse some of its options.
1998-09-19 17:30:17 +00:00
Jim Meyering
6eb0392a41 (TESTS): Add basic-1. 1998-09-19 17:28:45 +00:00
Jim Meyering
6880f434c0 update bug-reporting address 1998-09-19 17:24:05 +00:00
Jim Meyering
6606de8b81 (program_name): Declare *not* to be const. 1998-09-19 17:19:06 +00:00
Jim Meyering
08cfef16a2 update bug-reporting address 1998-09-19 17:17:58 +00:00
Jim Meyering
2f235c5843 *** empty log message *** 1998-09-19 13:33:49 +00:00
Jim Meyering
fde72176e8 *** empty log message *** 1998-09-19 13:11:58 +00:00
Jim Meyering
7c43d59107 Fix post-protoization typo. 1998-09-19 13:11:23 +00:00
Jim Meyering
dfb1f6a5b0 . 1998-09-19 13:09:51 +00:00
Jim Meyering
19ff66c384 (PARAMS): Define and use.
From Kaveh Ghazi.
1998-09-17 13:48:20 +00:00
Jim Meyering
d7a781ab5a *** empty log message *** 1998-09-13 15:19:44 +00:00
Jim Meyering
48c8542657 *** empty log message *** 1998-09-13 15:13:59 +00:00
Jim Meyering
b73a1b844f *** empty log message *** 1998-09-13 14:34:07 +00:00
Jim Meyering
59f3e7dfea . 1998-09-13 00:06:18 +00:00
Jim Meyering
78df00cae0 (remove_cwd_entries): Declare to be static. 1998-09-12 20:27:45 +00:00
Jim Meyering
745cee714a . 1998-09-12 20:20:30 +00:00
Jim Meyering
6d16699fff . 1998-09-12 20:12:55 +00:00
Jim Meyering
ea44cc33ca (oatoi): declare arg to be const 1998-09-09 15:39:13 +00:00
Jim Meyering
4db847ce3c Protoize. 1998-09-09 14:21:16 +00:00
Jim Meyering
231813e179 *** empty log message *** 1998-09-09 13:47:43 +00:00
Jim Meyering
1c3a5c6ff8 *** empty log message *** 1998-09-09 13:44:52 +00:00
Jim Meyering
72e1d14aec . 1998-09-07 18:08:31 +00:00
Jim Meyering
584f4d85cf (show_dev) [!posix_format]: When using --print-type,
let the device path and the file system type share a single (wider)
field if their combined lengths allow it.  From Andries Brouwer.
1998-09-07 18:08:09 +00:00
Jim Meyering
9096ee8e42 . 1998-09-07 17:03:50 +00:00
Jim Meyering
f7c0efdba2 *** empty log message *** 1998-09-07 15:13:59 +00:00
Jim Meyering
a3c0837bc3 Upon failure, suggest how to rerun the test
with longer delay, in case NFS clock skew was the cause of the failure.
Reported by Kaveh Ghazi.
1998-09-07 15:13:48 +00:00
Jim Meyering
834b042b93 *** empty log message *** 1998-09-07 14:13:26 +00:00
Jim Meyering
f0e77e8722 . 1998-09-07 14:11:00 +00:00
Jim Meyering
5c094d2ab2 *** empty log message *** 1998-09-07 14:10:53 +00:00
Jim Meyering
1eb146483f (_create_file): Don't include $$ in temp file name.
(run_tests): Use shorter suffixes for temp file names.
1998-09-07 14:07:23 +00:00
Jim Meyering
1b3c2bbb06 *** empty log message *** 1998-09-07 14:03:09 +00:00
Jim Meyering
edbbc8335c (run_tests): Add simple PRE/POST hooks. 1998-09-07 13:59:43 +00:00
Jim Meyering
48405e4b9c *** empty log message *** 1998-09-07 13:58:26 +00:00
Jim Meyering
f9ae8064f2 (print_dir_name): Put back.
(print_dir): Also print directory name header if print_dir_name is true.
1998-09-07 13:02:46 +00:00
Jim Meyering
9ce9d75ddb add test harness 1998-09-07 03:23:30 +00:00
Jim Meyering
d59ce5651c *** empty log message *** 1998-09-07 02:38:28 +00:00
Jim Meyering
981c203fab *** empty log message *** 1998-09-07 02:36:36 +00:00
Jim Meyering
c0385fb129 Include posixtm.h.
(usage): Correct the description of the format of the
date string argument to -t option.
(main): Update to use rewritten posixtime function.
Reported by Andries Brouwer.
1998-09-07 02:35:31 +00:00
Jim Meyering
ac88b78ef3 *** empty log message *** 1998-09-07 02:24:39 +00:00
Jim Meyering
e01fce9e16 (libfu_a_SOURCES): Change posixtm.y to posixtm.c.
(noinst_HEADERS): Add posixtm.h.
1998-09-07 02:21:19 +00:00
Jim Meyering
164bff8dc0 *** empty log message *** 1998-09-07 02:18:43 +00:00
Jim Meyering
7b7b9007db . 1998-09-07 02:17:55 +00:00
Jim Meyering
c0ad97a781 rewrite from yacc-based version 1998-09-06 22:57:00 +00:00
Jim Meyering
c5a9a5f563 . 1998-09-06 22:55:47 +00:00
Jim Meyering
b363124be4 *** empty log message *** 1998-09-06 22:53:59 +00:00
Jim Meyering
d06d2de67c remove --help-style comment near top 1998-09-06 04:54:39 +00:00
Jim Meyering
82f324a6fd *** empty log message *** 1998-08-30 03:22:07 +00:00
Jim Meyering
84f0e8fc80 . 1998-08-30 03:21:13 +00:00
Jim Meyering
9a27c21fbf (ST_TIME_CMP_NS, ATIME_CMP, CTIME_CMP, MTIME_CMP): Use new ST_MTIM_NSEC macro. 1998-08-30 03:21:02 +00:00
Jim Meyering
1fff978392 . 1998-08-30 03:20:13 +00:00
Jim Meyering
4d87b9a10e (AC_STRUCT_ST_MTIM_NSEC): Renamed from AC_STRUCT_ST_MTIM.
(AC_STRUCT_ST_MTIM_NSEC): Generate name of ns member, instead of just 1 or undef.
Allow for UnixWare 2.1.2 and Solaris 2.6 if in pedantic mode.
1998-08-30 03:16:57 +00:00
Jim Meyering
8fd24dfea9 . 1998-08-30 03:13:01 +00:00
Jim Meyering
9355314687 *** empty log message *** 1998-08-30 03:12:48 +00:00
Jim Meyering
5c6991f93d (longopts): Use corresponding short-option character
in place of `1', and `NULL' in place of pointer in initialization.
1998-08-30 03:12:22 +00:00
Jim Meyering
9e9d7be706 Don't assume ASCII. 1998-08-30 03:08:21 +00:00
Jim Meyering
49b81671fd (longopts): Don't assume ASCII. 1998-08-30 03:07:52 +00:00
Jim Meyering
38429fe661 (long_options): Replace 12 with CHAR_MAX + 1. 1998-08-30 03:02:53 +00:00
Jim Meyering
ce0ba9e9d9 (long_options): Replace 12 with CHAR_MAX + 1. 1998-08-30 03:02:21 +00:00
Jim Meyering
5b3b5af5b8 (longopts): Use corresponding short-option character
in place of `1', and `NULL' in place of pointer in initialization.
1998-08-30 03:00:13 +00:00
Jim Meyering
6a2cf8a297 (longopts): Use corresponding short-option character
in place of `1', and `NULL' in place of pointer in initialization.
1998-08-30 02:58:50 +00:00
Jim Meyering
22fd1ff303 Replace 12 and 13 with CHAR_MAX + 1 and CHAR_MAX + 2 respectively. 1998-08-30 02:57:17 +00:00
Jim Meyering
cb1386ec32 (long_options): Use corresponding short-option character
in place of `1', and `NULL' in place of pointer in initialization.
1998-08-30 02:55:12 +00:00
Jim Meyering
da2761cc1a (long_options): Use corresponding short-option character
in place of `1', and `NULL' in place of pointer in initialization.
1998-08-30 02:52:45 +00:00
Jim Meyering
1fc1a65968 (long_options): Use corresponding short-option character
in place of `1', and `NULL' in place of opt_* pointer in initialization.
1998-08-30 02:50:28 +00:00
Jim Meyering
b6f403c606 Don't assume ASCII in getopt arg handling. 1998-08-30 02:33:45 +00:00
Jim Meyering
fa59cde3fe Don't assume ASCII. 1998-08-30 02:33:25 +00:00
Jim Meyering
6f7507be50 (CHAR_MIN, CHAR_MAX):
Renamed from SCHAR_MIN, SCHAR_MAX, since these
macros apply to char, not signed char.
1998-08-30 02:29:35 +00:00
Jim Meyering
33df2fe237 (EXTRA_DIST): Remove Fetish.pm.
TESTS_ENVIRONMENT: Set PROG, not LS.
1998-08-29 18:08:33 +00:00
Jim Meyering
87c3c9c7c6 . 1998-08-29 18:07:01 +00:00
Jim Meyering
e622324cbe *** empty log message *** 1998-08-29 18:06:27 +00:00
Jim Meyering
99114dd25a . 1998-08-29 18:06:10 +00:00
Jim Meyering
e29225aa01 use ENV{PROG}, not ENV{LS} 1998-08-29 18:05:53 +00:00
Jim Meyering
8bfd3a7d70 *** empty log message *** 1998-08-29 18:00:11 +00:00
Jim Meyering
f9abdd4a47 (print_dir_name): Remove global variable.
(print_dir): When trace_dirs is set, always print the directory
name header.
1998-08-29 17:57:34 +00:00
Jim Meyering
c7f7a81276 . 1998-08-26 15:21:00 +00:00
Jim Meyering
f721219e91 *** empty log message *** 1998-08-26 15:18:51 +00:00
Jim Meyering
ded46c159b . 1998-08-26 15:17:59 +00:00
Jim Meyering
9cc2f64ff3 . 1998-08-26 15:17:37 +00:00
Jim Meyering
ae3a2c75ff *** empty log message *** 1998-08-26 15:17:21 +00:00
Jim Meyering
24fa66e128 . 1998-08-26 15:16:47 +00:00
Jim Meyering
b6a0fe5ab0 *** empty log message *** 1998-08-26 15:15:34 +00:00
Jim Meyering
da190d7c06 . 1998-08-26 15:13:56 +00:00
Jim Meyering
ddd448d549 *** empty log message *** 1998-08-26 14:49:41 +00:00
Jim Meyering
71bd321379 . 1998-08-26 14:49:16 +00:00
Jim Meyering
93449adfa4 (dc_parse_stream): Don't segfault when a line
contains only one token.  Reported by Olav Morkrid.
1998-08-26 14:45:16 +00:00
Jim Meyering
21041064bd *** empty log message *** 1998-08-26 14:44:52 +00:00
Jim Meyering
f5443ca875 ptx documentation from Francois 1998-08-25 18:27:58 +00:00
Jim Meyering
eb771bb870 *** empty log message *** 1998-08-16 22:04:19 +00:00
Jim Meyering
43589db615 *** empty log message *** 1998-08-16 15:26:45 +00:00
Jim Meyering
04a86ff23a (PARAMS): Define and use. 1998-08-16 15:26:20 +00:00
Jim Meyering
b32c1f0696 *** empty log message *** 1998-08-16 04:24:38 +00:00
Jim Meyering
94d7c5b58c *** empty log message *** 1998-08-16 04:23:22 +00:00
Jim Meyering
0cb7d9a409 . 1998-08-16 04:22:49 +00:00
Jim Meyering
81bb7f1df3 . 1998-08-16 03:56:27 +00:00
Jim Meyering
7fc3b4cf7d *** empty log message *** 1998-08-16 03:56:15 +00:00
Jim Meyering
cef050f076 Use the new AC_CHECK_TYPE(ssize_t, int) instead of jm_TYPE_SSIZE_T. 1998-08-16 03:55:49 +00:00
Jim Meyering
919b805380 . 1998-08-16 03:55:36 +00:00
Jim Meyering
0e48a577b5 . 1998-08-16 03:53:30 +00:00
Jim Meyering
b0ead8f2d6 *** empty log message *** 1998-08-16 03:20:13 +00:00
Jim Meyering
5614a7d282 (do_move): Fail upon attempt to move a directory into itself.
With prodding from Franois Pinard :-)
1998-08-16 03:09:56 +00:00
Jim Meyering
9c5fb99864 Update for changed behavior of mv. 1998-08-16 03:05:01 +00:00
Jim Meyering
1145211d6b fix typos 1998-08-16 01:44:40 +00:00
Jim Meyering
0c35411a4f *** empty log message *** 1998-08-16 01:38:38 +00:00
Jim Meyering
8bd9ea509e *** empty log message *** 1998-08-16 01:37:02 +00:00
Jim Meyering
bddb246b90 *** empty log message *** 1998-08-16 01:28:55 +00:00
Jim Meyering
e646635206 *** empty log message *** 1998-08-16 00:03:06 +00:00
Jim Meyering
ea9e600f58 *** empty log message *** 1998-08-15 23:59:12 +00:00
Jim Meyering
78c34dee50 *** empty log message *** 1998-08-15 23:58:05 +00:00
Jim Meyering
56949aaebd . 1998-08-15 23:55:00 +00:00
Jim Meyering
18d7d6b082 . 1998-08-15 23:53:59 +00:00
Jim Meyering
0cb75a1a07 *** empty log message *** 1998-08-15 23:53:07 +00:00
Jim Meyering
cc271ce8f3 *** empty log message *** 1998-08-15 23:52:39 +00:00
Jim Meyering
bf73df9811 *** empty log message *** 1998-08-15 23:51:58 +00:00
Jim Meyering
b07a5a108e *** empty log message *** 1998-08-15 23:43:37 +00:00
Jim Meyering
2db8ef7c55 . 1998-08-15 23:29:09 +00:00
Jim Meyering
634ff11428 *** empty log message *** 1998-08-15 22:00:47 +00:00
Jim Meyering
c3b1ab8af1 *** empty log message *** 1998-08-15 21:57:55 +00:00
Jim Meyering
327a21114a *** empty log message *** 1998-08-15 21:57:17 +00:00
Jim Meyering
df91781926 *** empty log message *** 1998-08-15 21:54:10 +00:00
Jim Meyering
4431579378 *** empty log message *** 1998-08-15 21:52:09 +00:00
Jim Meyering
19afd110b3 *** empty log message *** 1998-08-15 21:51:44 +00:00
Jim Meyering
5b02046b20 *** empty log message *** 1998-08-15 21:41:49 +00:00
Jim Meyering
97a44fbdf0 *** empty log message *** 1998-08-15 21:40:06 +00:00
Jim Meyering
49d59ad66b *** empty log message *** 1998-08-15 21:39:17 +00:00
Jim Meyering
c2bbdeab6d *** empty log message *** 1998-08-15 21:38:08 +00:00
Jim Meyering
0d33861999 (copy_internal) [one-file-system]: Do copy mount point
directories (but none of their entries).  This makes
`cp --one-file-system' work the same way tar does.
From Marty Leisner.
1998-08-15 21:16:34 +00:00
Jim Meyering
9c38d004ec *** empty log message *** 1998-08-15 21:09:20 +00:00
Jim Meyering
a302182ac8 *** empty log message *** 1998-08-15 20:33:18 +00:00
Jim Meyering
6b0411ab47 *** empty log message *** 1998-08-15 20:23:33 +00:00
Jim Meyering
65ce4687f5 *** empty log message *** 1998-08-15 20:05:59 +00:00
Jim Meyering
363847ca74 *** empty log message *** 1998-08-15 19:55:35 +00:00
Jim Meyering
d223f01b43 *** empty log message *** 1998-08-15 19:50:54 +00:00
Jim Meyering
3a2b528573 *** empty log message *** 1998-08-15 19:30:32 +00:00
Jim Meyering
14717b8618 *** empty log message *** 1998-08-15 19:23:40 +00:00
Jim Meyering
dc8cd6e39a . 1998-08-15 18:40:41 +00:00
Jim Meyering
6db0107e71 *** empty log message *** 1998-08-15 18:39:45 +00:00
Jim Meyering
a6f74451d3 . 1998-08-15 18:39:38 +00:00
Jim Meyering
8d2302724c . 1998-08-15 18:38:04 +00:00
Jim Meyering
8fa35e89ca . 1998-08-15 18:37:55 +00:00
Jim Meyering
baad4b697c . 1998-08-15 18:37:36 +00:00
Jim Meyering
79d411ceba (qmark_funny_chars): Add comment from Paul eggert. 1998-08-15 16:43:13 +00:00
Jim Meyering
52070d3e4a *** empty log message *** 1998-08-15 14:48:36 +00:00
Jim Meyering
85cc6dedf8 *** empty log message *** 1998-08-15 14:47:50 +00:00
Jim Meyering
e3869f58ad (usage): Reformat a little. 1998-08-15 14:45:19 +00:00
Jim Meyering
c34fd6b4a7 (long_options): Add long names for all options.
(usage): Update help string.
(main): Handle the special options --pages and --columns.
1998-08-15 14:22:01 +00:00
Jim Meyering
63d64851b1 Add braces to suppress warning about ambiguous `else'. 1998-08-15 14:21:00 +00:00
Jim Meyering
d68269bb55 Add braces to suppress warning about ambiguous `else'. 1998-08-15 14:20:16 +00:00
Jim Meyering
2aa62088a3 Work around another bug in Ultrix4.3a's /bin/sh.
Reported by Christian von Roques.
1998-08-15 03:24:56 +00:00
Jim Meyering
f2d4fc8016 Avoid bug in Ultrix4.3a /bin/sh,
not initializing output redirection of : command.
1998-08-15 03:04:06 +00:00
Jim Meyering
bf57f4af46 Avoid bug in Ultrix4.3a /bin/sh,
not initializing output redirection of : command.
1998-08-15 03:03:44 +00:00
Jim Meyering
dc43a7bb60 *** empty log message *** 1998-08-15 03:01:44 +00:00
Jim Meyering
9d7c2d4f7d (read_filesystem_list) [MOUNTED_GETMNT]: Don't infloop on getmnt(2) returning 0.
Christian von Roques
1998-08-15 03:01:13 +00:00
Jim Meyering
888da5c359 *** empty log message *** 1998-08-14 14:14:07 +00:00
Jim Meyering
7b0caffd31 . 1998-08-14 14:09:05 +00:00
Jim Meyering
ed2a7b4e53 . 1998-08-13 18:08:14 +00:00
Jim Meyering
2a6a20ae20 . 1998-08-13 15:25:02 +00:00
Jim Meyering
1dce9a3295 . 1998-08-13 04:54:41 +00:00
Jim Meyering
f6da9983e4 *** empty log message *** 1998-08-13 04:12:33 +00:00
Jim Meyering
e6bc93f49a (DISTFILES): Remove ChangeLog. 1998-08-13 04:06:52 +00:00
Jim Meyering
88c0b8d630 Provide automake-style DESTDIR support.
From Johan Danielsson.
1998-08-13 04:01:46 +00:00
Jim Meyering
669ff7331b . 1998-08-13 02:11:10 +00:00
Jim Meyering
54667de765 . 1998-08-13 02:09:24 +00:00
Jim Meyering
736ea546d9 (noinst_HEADERS): Add filemode.h. 1998-08-13 02:07:54 +00:00
Jim Meyering
461aea548a Include filemode.h. 1998-08-13 02:06:41 +00:00
Jim Meyering
e31691fc1d Protoize. Tsort function definitions and remove prototypes of
static functions.
(mode_string): Remove prototype.
1998-08-13 02:05:56 +00:00
Jim Meyering
8e576e0036 . 1998-08-13 02:05:29 +00:00
Jim Meyering
b9fa91a205 (ftypelet): Add comments for Cray DMF support.
From Johan Danielsson.
1998-08-13 01:52:01 +00:00
Jim Meyering
ff438ee87f *** empty log message *** 1998-08-13 01:48:05 +00:00
Jim Meyering
34cd17408c . 1998-08-13 01:41:38 +00:00
Jim Meyering
138bad1512 add commented `diff -u' command 1998-08-12 17:14:34 +00:00
Jim Meyering
f0604f17d6 *** empty log message *** 1998-08-11 19:10:43 +00:00
Jim Meyering
3fce6c3270 . 1998-08-11 18:53:19 +00:00
Jim Meyering
ba36aa0602 *** empty log message *** 1998-08-11 18:40:21 +00:00
Jim Meyering
58a54666a7 *** empty log message *** 1998-08-11 18:17:01 +00:00
Jim Meyering
40178d3a77 *** empty log message *** 1998-08-11 17:35:57 +00:00
Jim Meyering
b9ca4fe720 . 1998-08-11 17:30:46 +00:00
Jim Meyering
c6afbb198c (rel-check): New rule. 1998-08-11 15:53:55 +00:00
Jim Meyering
c267424d7b automatically generate template for test release announcement 1998-08-11 15:23:01 +00:00
Jim Meyering
053a0e3a8e *** empty log message *** 1998-08-11 13:21:31 +00:00
Jim Meyering
39b1c602aa (usage): Correct description. Reported by John Murphy. 1998-08-11 13:16:24 +00:00
Jim Meyering
2df9108f70 *** empty log message *** 1998-08-11 13:16:11 +00:00
Jim Meyering
a2d2353f0d add comment from glibc version 1998-08-11 01:52:38 +00:00
Jim Meyering
6af7fe7bf9 *** empty log message *** 1998-08-09 20:08:27 +00:00
Jim Meyering
26abcd14d2 update from glibc 1998-08-07 12:54:51 +00:00
Jim Meyering
2fe9a639e5 *** empty log message *** 1998-08-03 03:03:29 +00:00
Jim Meyering
f1db42afed Ansideclify. 1998-08-03 03:03:11 +00:00
Jim Meyering
2d329c22c0 *** empty log message *** 1998-08-03 03:02:20 +00:00
Jim Meyering
c3db9f982a (readline): Return zero upon error as well as upon
end of file.  From James Youngman.
1998-08-03 03:02:04 +00:00
Jim Meyering
c01e767ceb . 1998-08-02 20:52:34 +00:00
Jim Meyering
0d16e71b07 . 1998-08-02 19:45:45 +00:00
Jim Meyering
2fcce776e8 . 1998-08-02 16:33:53 +00:00
Jim Meyering
bad1e4b2e1 *** empty log message *** 1998-08-02 16:33:45 +00:00
Jim Meyering
f5a228ae42 *** empty log message *** 1998-08-02 16:32:42 +00:00
Jim Meyering
a40eb86598 . 1998-08-02 16:25:14 +00:00
Jim Meyering
0136b885fe (re_protect): Add comment. 1998-08-02 16:24:41 +00:00
Jim Meyering
0f7ac75854 (ST_TIME_CMP_NS, ST_TIME_CMP, ATIME_CMP, CTIME_CMP, MTIME_CMP): New macros. 1998-08-02 16:24:13 +00:00
Jim Meyering
9fc5987250 (copy_internal): Compare time stamps with subsecond resolution if available. 1998-08-02 16:23:28 +00:00
Jim Meyering
e71d9696d7 (compare_ctime, rev_cmp_ctime, compare_mtime,
rev_cmp_mtime, compare_atime, rev_cmp_atime): Compare time
stamps with subsecond resolution if available.
1998-08-02 16:23:06 +00:00
Jim Meyering
6e1306ba8b (touch): Add comment. 1998-08-02 16:22:43 +00:00
Jim Meyering
a607901e48 (change_timestamps): Add comment. 1998-08-02 16:22:24 +00:00
Jim Meyering
01053400d0 *** empty log message *** 1998-08-02 16:20:50 +00:00
Jim Meyering
419b2d26fe Use hack to avoid having to put #undef HAVE_ST_MTIM in acconfig.h manually. 1998-08-02 16:20:39 +00:00
Jim Meyering
4ed33b3073 tweak indentation 1998-08-02 16:18:21 +00:00
Jim Meyering
ef9ee27d89 from Paul Eggert 1998-08-02 16:15:17 +00:00
Jim Meyering
277da1b998 *** empty log message *** 1998-08-02 04:16:01 +00:00
Jim Meyering
983b8c433c . 1998-08-01 15:48:56 +00:00
Jim Meyering
d5c69ef797 (my_setlocale): Guard definition within #ifdef ENABLE_NLS. 1998-08-01 15:47:26 +00:00
Jim Meyering
eb8ea6eac5 Avoid broken pipe message for tests that fail with usage errors. 1998-07-30 12:26:24 +00:00
Jim Meyering
da68f39411 * src/sort.c (usage): Add angle brackets to make `Report bugs...'
message consistent with all the rest.
1998-07-30 12:13:39 +00:00
Jim Meyering
2fcc1267b5 *** empty log message *** 1998-07-29 13:29:23 +00:00
Jim Meyering
4ead0cb8df (NEGATION_SIGN): Renamed from NEGATIVE_SIGN to avoid
clash with <langinfo.h>.  All uses changed.
From Andreas Schwab.
1998-07-29 13:29:10 +00:00
Jim Meyering
f96dc5e195 Avoid broken pipe for 'y' and 'z' tests.
From Andreas.
1998-07-29 13:27:28 +00:00
Jim Meyering
82e166ebbb *** empty log message *** 1998-07-29 04:01:45 +00:00
Jim Meyering
6a9aa3cf98 (show_all_fs):
Revert to boolean value; the old negative value is
now in show_local_fs.
(show_local_fs): New variable.
(show_dev): New args me_dummy and me_class.  Use show_local_fs
and boolean show_all_fs in combination with these new args
to decide whether to show a device.
(show_disk): Pass flags to show_dev.
(show_point): Use a non-dummy mount entry if possible.
(show_all_entries): Pass flags to show_dev.
(main): --local sets show_local_fs now.  Ask for file system types if
show_local_fs is nonzero, since ME_REMOTE might need them.

From Paul.
1998-07-29 04:01:29 +00:00
Jim Meyering
3cf7eece6f Remove duplicate include of <stdio.h>. 1998-07-29 04:00:36 +00:00
Jim Meyering
7dfff499c3 (struct mount_entry):
New members me_dummy, me_remote.
(read_filesystem_list): Remove all_fs argument.
(REMOTE_FS_TYPE): Remove.
(ME_DUMMY, ME_REMOTE): New macros.

From Paul.
1998-07-29 03:58:55 +00:00
Jim Meyering
52e2de5780 (read_filesystem_list): Remove all_fs
argument, but put the necessary information into the result so
that the caller can ignore filesystems that he's not
interested in.

From Paul.
1998-07-29 03:58:02 +00:00
Jim Meyering
c0d6757201 *** empty log message *** 1998-07-28 13:29:22 +00:00
Jim Meyering
3942f87ee3 *** empty log message *** 1998-07-28 13:20:20 +00:00
Jim Meyering
9d07c1872f Undef stat. 1998-07-28 13:15:58 +00:00
Jim Meyering
be388d139c *** empty log message *** 1998-07-27 14:25:10 +00:00
Jim Meyering
6e132bee5e Make copy create each destination file initially
with mode 0600 so strip will work, then apply specified mode.
Arne Henrik Juul reported that `./ginstall -s -c -m 555 dd /tmp' failed.
1998-07-27 13:39:36 +00:00
Jim Meyering
7d63d3c635 . 1998-07-27 13:38:42 +00:00
Jim Meyering
08d53c4c6a (TESTS_ENVIRONMENT): Set LS, MKDIR, and RM. 1998-07-27 13:27:45 +00:00
Jim Meyering
94edd792f7 use ls to check the permissions 1998-07-27 13:26:58 +00:00
Jim Meyering
5ab6986171 Test stripping an executable that eventually will be made unwritable. 1998-07-27 13:18:31 +00:00
Jim Meyering
25176dbdef *** empty log message *** 1998-07-26 21:48:37 +00:00
Jim Meyering
b49807bfb2 Convert some char* dcls to `unsigned char*' and remove a cast --
to placate irix4's cc.
1998-07-26 20:43:50 +00:00
Jim Meyering
d71367f33e (check_punctuation): Add cast to placate irix4's cc. Reported by Kaveh Ghazi. 1998-07-26 20:42:02 +00:00
Jim Meyering
bd85887daf (split_3): Add cast to placate irix4's cc. From Kaveh Ghazi. 1998-07-26 20:09:25 +00:00
Jim Meyering
82988e97cf (chown): Remove unused definition.
Reported by Kaveh Ghazi.
1998-07-26 04:13:57 +00:00
Jim Meyering
2b374ec2d9 . 1998-07-26 04:10:01 +00:00
Jim Meyering
3e3b8558d6 . 1998-07-26 04:06:55 +00:00
Jim Meyering
5c4cb177ef Add tests for new --output-delimiter option,
as well as for NUL input delimiter (--delimiter='').
1998-07-26 04:06:37 +00:00
Jim Meyering
71a3fc7989 . 1998-07-26 04:06:07 +00:00
Jim Meyering
5c9345dbd1 (cut_fields): Honor new --output-delimiter option.
(main): Fix handling of --delimiter='' (-d '').  Until now, it has
never worked as advertised.  I guess no one tried it.
1998-07-26 04:05:07 +00:00
Jim Meyering
287ddc8d05 *** empty log message *** 1998-07-26 03:59:27 +00:00
Jim Meyering
36ac5f1519 . 1998-07-26 02:59:37 +00:00
Jim Meyering
bde54af30f *** empty log message *** 1998-07-26 02:56:36 +00:00
Jim Meyering
cafbd3477a Add two tests. `sort -o no-file no-file' didn't fail. 1998-07-26 02:55:53 +00:00
Jim Meyering
165718775f (main): Stat all non-`-' input file files (and fail if a
stat fails) when an output file is specified by `-o' but doesn't exist.
1998-07-26 02:54:01 +00:00
Jim Meyering
f90d1551cb *** empty log message *** 1998-07-26 00:29:45 +00:00
Jim Meyering
613f0e187f (main): rmdir fails with EEXIST on some systems.
Handle that, so --ignore-fail-on-non-empty works.
(EEXIST): Define to zero if not defined.
(ENOTEMPTY): Likewise.
1998-07-26 00:29:30 +00:00
Jim Meyering
ca6da4ffce *** empty log message *** 1998-07-25 21:50:53 +00:00
Jim Meyering
ac517dbe89 Remove `diff' I'd put in for debugging.
Exit with the status from cmp.
1998-07-25 21:50:35 +00:00
Jim Meyering
3ae3622d9e *** empty log message *** 1998-07-25 17:52:54 +00:00
Jim Meyering
27682ba5ce Skip three more unportable tests. These failed on SunOS4.1.4. 1998-07-25 17:52:37 +00:00
Jim Meyering
8dd3e53122 *** empty log message *** 1998-07-25 16:49:13 +00:00
Jim Meyering
d1187d36da *** empty log message *** 1998-07-25 16:45:45 +00:00
Jim Meyering
0f85045bb3 . 1998-07-25 15:32:12 +00:00
Jim Meyering
69835e9fb6 (SAME_INODE): Define it here instead. 1998-07-25 15:31:23 +00:00
Jim Meyering
3ba948db7e (SAME_INODE): Remove definition. 1998-07-25 15:30:08 +00:00
Jim Meyering
d1f9e2315b . 1998-07-25 15:28:24 +00:00
Jim Meyering
d04604664a (same_file): New function
(remove_dir): Use it to give a better diagnostic when rmdir fails
because it can't remove the current directory.
1998-07-25 15:27:55 +00:00
Jim Meyering
4e9a99dd9a (long_options): Changes table entries not to use this form:
{"all", no_argument, &show_all_fs, 1},
but rather this form:
{"all", no_argument, NULL, 'a'},
Using the latter, all the option handling in one place: the getopt loop.
1998-07-25 15:14:16 +00:00
Jim Meyering
3f3df4e600 Use PARAMS macro. 1998-07-25 15:01:32 +00:00
Jim Meyering
27e780fe97 (xatoi): Ansideclify.
(fstype_to_string): Ansideclify.
1998-07-25 15:00:37 +00:00
Jim Meyering
122d3f15ae (REMOTE_FS_TYPE): New macro. 1998-07-25 14:55:10 +00:00
Jim Meyering
bb3fca40db (read_filesystem_list) [MOUNTED_GETMNTINFO]: Use fsp_to_string.
(fsp_to_string): Don't xmalloc return value (yet).
1998-07-25 14:54:42 +00:00
Jim Meyering
91c40bd499 (read_filesystem_list): If all_fs is negative, omit non-local filesytems.
From Paul Eggert.
1998-07-25 14:41:04 +00:00
Jim Meyering
0f4fcb1fbd (show_dev): Omit local devices if show_all_fs is negative.
(show_all_fs): If negative, omit non-local filesystems.
All uses of (all_fs != 0) changed to (all_fs > 0).
(long_options, usage, main): Add -l or --local option.
(main): When asking for df of an explicit file name, get all
the mount points, so that we're more likely to find it when
we look it up.
1998-07-25 14:36:07 +00:00
Jim Meyering
3fbc98bb54 . 1998-07-25 13:49:47 +00:00
Jim Meyering
240b9c0f89 . 1998-07-25 13:48:45 +00:00
Jim Meyering
fc13bb65df (utime_now): Moved into m4/utimes.m4.
(touch) [!HAVE_UTIME_NULL]: Remove #ifdef and use of utime_now in if-block.
1998-07-25 13:20:49 +00:00
Jim Meyering
27f3ca3d5a . 1998-07-25 13:16:38 +00:00
Jim Meyering
f1a7e03bbe *** empty log message *** 1998-07-25 13:10:11 +00:00
Jim Meyering
8d58cbb99e . 1998-07-22 18:32:36 +00:00
Jim Meyering
3b87431a69 (human_readable): amt -> damt, to fix typo when
computing which power to use after overflow occurs during
multiplication.

From Paul Eggert.
1998-07-22 18:30:16 +00:00
Jim Meyering
d09816b054 *** empty log message *** 1998-07-22 16:57:26 +00:00
Jim Meyering
19c23eefb7 Include <stdio.h> if NDEBUG is not defined; needed on SunOS 4.
From Paul Eggert.
1998-07-22 16:57:15 +00:00
Jim Meyering
ef8d2acace . 1998-07-20 03:59:51 +00:00
Jim Meyering
f7d6ece6e4 . 1998-07-20 03:58:24 +00:00
Jim Meyering
90a63a16ec . 1998-07-20 03:58:04 +00:00
Jim Meyering
ec7ec3773f *** empty log message *** 1998-07-20 03:57:59 +00:00
Jim Meyering
a97f821233 (copy_internal): Add another exclusion from the
sameness test: when --force has been specified, the destination
is unlinked before any copy.
(copy_internal): Add yet another: when both src and dest are symlinks.
1998-07-19 04:14:52 +00:00
Jim Meyering
b15e832f4d *** empty log message *** 1998-07-18 14:06:38 +00:00
Jim Meyering
e77a16efec *** empty log message *** 1998-07-18 13:54:40 +00:00
Jim Meyering
7fd7c6465e *** empty log message *** 1998-07-18 13:53:32 +00:00
Jim Meyering
7fc23ef625 . 1998-07-18 13:51:11 +00:00
Jim Meyering
1bd7deb235 (TESTS): Add into-self-2. 1998-07-18 13:16:43 +00:00
Jim Meyering
f2dd2f10c1 . 1998-07-18 13:15:33 +00:00
Jim Meyering
1af4f2f11d (read_filesystem_list): Fix more memory leaks on failure.
From Andreas Schwab.
1998-07-18 12:28:31 +00:00
Jim Meyering
1703d0d59c *** empty log message *** 1998-07-16 23:41:43 +00:00
Jim Meyering
7ac1d190bc Include lchown.h. 1998-07-16 23:41:03 +00:00
Jim Meyering
0c3c6b1b0b *** empty log message *** 1998-07-16 23:40:18 +00:00
Jim Meyering
01c3ff5a1e (noinst_HEADERS): Add lchown.h. 1998-07-16 23:26:50 +00:00
Jim Meyering
1b03d98f62 include lchown.h 1998-07-16 23:25:29 +00:00
Jim Meyering
b294d530d4 . 1998-07-16 23:23:05 +00:00
Jim Meyering
75b6b90fe1 [!ENOSYS] (ENOSYS): Define to ENOTSUP or ENOMSG. 1998-07-16 23:20:03 +00:00
Jim Meyering
7613946ac6 *** empty log message *** 1998-07-16 23:14:30 +00:00
Jim Meyering
5b16f997e8 [!ENOSYS] (ENOSYS): Define to ENOTSUP or ENOMSG. 1998-07-16 23:12:25 +00:00
Jim Meyering
ee041d6d4f Update prototype. 1998-07-16 23:02:19 +00:00
Jim Meyering
f89f495c0d (safe_read): Change type of pointer parameter to
`void' to avoid Irix4 cc errors.  Reported by Kaveh Ghazi.
1998-07-16 23:02:03 +00:00
Jim Meyering
5e3e9e7a15 . 1998-07-16 22:58:12 +00:00
Jim Meyering
8d4d2c4cf4 (check_format): Add `5' to the list of digits.
Reported by Donni Erpel.
1998-07-15 12:39:58 +00:00
Jim Meyering
36de2ed1e2 . 1998-07-13 00:33:36 +00:00
Jim Meyering
f42b337a0b check: depend on maint_gen 1998-07-13 00:31:49 +00:00
Jim Meyering
6cdd12a9f2 (print_header): Print "1k-blocks", not "1.0k-blocks". 1998-07-13 00:17:57 +00:00
Jim Meyering
a0ec87fbf9 *** empty log message *** 1998-07-09 14:29:22 +00:00
Jim Meyering
5c71306463 (jm_FUNC_CHOWN): Add a check to verify that the
uid and gid actually remain unchanged.
1998-07-09 14:29:11 +00:00
Jim Meyering
da69105424 *** empty log message *** 1998-07-08 01:10:45 +00:00
Jim Meyering
1ea1c0864c *** empty log message *** 1998-07-08 01:08:37 +00:00
Jim Meyering
a4e98775a4 Remove FCLOSE_UNLOCKED block. 1998-07-08 01:07:39 +00:00
Jim Meyering
5017930f13 Remove fclose_unlocked. 1998-07-08 01:03:34 +00:00
Jim Meyering
73b7370917 (parse_line): Add casts to avoid errors from Irix4's `cc' C compiler.
From Kaveh Ghazi.
1998-07-05 00:25:10 +00:00
Jim Meyering
bca292d9e6 Include stdio.h. Required on some systems when using assert.
From Kaveh Ghazi.
1998-07-04 17:15:08 +00:00
Jim Meyering
6e3b675ea8 Use cmp, not diff.
Reported by Kaveh Ghazi.
1998-07-04 17:08:26 +00:00
Jim Meyering
95efa0587b *** empty log message *** 1998-07-04 16:46:04 +00:00
Jim Meyering
e49ef588db bump serial number 1998-07-04 16:45:52 +00:00
Jim Meyering
5823a999fe Use syscmd, ifelse, and sysval. Mainly as an exercise
to prove that this macro can be used in packages without regex.c.
1998-07-04 16:45:18 +00:00
Jim Meyering
218c464b91 tweak comment 1998-07-04 15:46:38 +00:00
Jim Meyering
3cc80de466 . 1998-07-04 15:14:46 +00:00
Jim Meyering
52fa9ac235 Remove #ifdef around <regex.h> inclusion. 1998-07-04 14:45:29 +00:00
Jim Meyering
9b809393be Remove #ifdef around <regex.h> inclusion.
(extract_regexp): Remove #if !WITH_REGEX...#endif block.
1998-07-04 14:45:12 +00:00
Jim Meyering
610567e17f *** empty log message *** 1998-07-04 04:10:28 +00:00
Jim Meyering
ad4e506e0f add warning 1998-07-04 04:07:55 +00:00
Jim Meyering
4475ffda48 (remove_dir): Use fprintf, not error to avoid newline in prompt. 1998-07-04 03:59:34 +00:00
Jim Meyering
1b23f5094d *** empty log message *** 1998-07-04 03:43:50 +00:00
Jim Meyering
02f917c543 . 1998-07-04 03:42:40 +00:00
Jim Meyering
60a6e7be26 *** empty log message *** 1998-07-04 03:17:08 +00:00
Jim Meyering
8133377948 . 1998-07-04 01:46:33 +00:00
Jim Meyering
1df5503ccf *** empty log message *** 1998-07-04 01:46:23 +00:00
Jim Meyering
e9a5c7551c use $jm_with_regex, now $WITH_REGEX 1998-07-04 01:46:01 +00:00
Jim Meyering
adfde62439 remove ifdef around inclusion of regex.h altogether!! 1998-07-04 01:44:01 +00:00
Jim Meyering
4b05962106 add 100 to serial number 1998-07-04 01:38:14 +00:00
Jim Meyering
df142feab8 . 1998-07-04 01:33:27 +00:00
Jim Meyering
b2aff777b1 (noinst_HEADERS): Add regex.h. 1998-07-04 01:33:19 +00:00
Jim Meyering
b793f241f4 . 1998-07-04 00:53:46 +00:00
Jim Meyering
ad22b83e45 *** empty log message *** 1998-07-04 00:53:38 +00:00
Jim Meyering
c71fc5f18e . 1998-07-04 00:48:49 +00:00
Jim Meyering
3e13b5e49d . 1998-07-04 00:48:15 +00:00
Jim Meyering
8f55e63084 (read_filesystem_list):
Don't leak memory on failure.
Don't create a dummy struct mount_entry entry;
use the address-of-the-tail-address method instead.
Preserve errno if possible on failure, setting it to 0 if inapplicable.
Close file descriptor leak if the F_SETLKW failed.
Report an error if SVR4 lock file cannot be opened for some reason
other than a nonexistent lock file.
1998-07-04 00:48:11 +00:00
Jim Meyering
2eb479a682 . 1998-07-04 00:41:16 +00:00
Jim Meyering
ec65e39e6f *** empty log message *** 1998-07-04 00:40:52 +00:00
Jim Meyering
bedf44ba83 (AM_WITH_NLS): Remove intl/libintl.h if <libintl.h> is to be used. 1998-07-04 00:39:41 +00:00
Jim Meyering
0cb0cc4e2f . 1998-07-04 00:35:27 +00:00
Jim Meyering
aee16a6664 . 1998-07-04 00:23:40 +00:00
Jim Meyering
93d47b3db9 . 1998-07-04 00:22:39 +00:00
Jim Meyering
18c222c5b5 . 1998-07-04 00:20:47 +00:00
Jim Meyering
bb01a24be5 Require jm_WITH_REGEX. 1998-07-04 00:20:36 +00:00
Jim Meyering
1ccc979847 . 1998-07-04 00:19:23 +00:00
Jim Meyering
ad1d74e973 *** empty log message *** 1998-07-04 00:19:08 +00:00
Jim Meyering
0142ca7d96 *** empty log message *** 1998-07-04 00:17:52 +00:00
Jim Meyering
bcfa9cbbd7 Change guard on <regex.h> inclusion to use new
symbol `! HAVE_LIBC_REGEX' defined in m4/regex.m4.
1998-07-04 00:15:37 +00:00
Jim Meyering
6c93489171 . 1998-07-04 00:05:23 +00:00
Jim Meyering
345c323ffd (copy_internal): Rename variable and reverse sense of tests
to make the code a little clearer.
1998-07-03 23:56:44 +00:00
Jim Meyering
1f682431ae (df_readable): Rename local so as not to shadow global. 1998-07-03 21:05:06 +00:00
Jim Meyering
698a43f363 (SAME_INODE): New macro.
Use it to replace open-coded equivalents.
1998-07-03 20:57:31 +00:00
Jim Meyering
def9c2bf0b (copy_internal): Try harder identifying a relative
symbolic link in the current directory.
From Andreas Schwab.
1998-07-03 20:32:37 +00:00
Jim Meyering
6191d1839a Skip tests that depend on link(2) not following symlinks.
From Andreas Schwab.
1998-07-03 20:09:03 +00:00
Jim Meyering
184870f9bb (copy_internal): Don't skip test for same file if creating a hardlink
from symlink over a non-symlink while making backups.
1998-07-03 20:06:50 +00:00
Jim Meyering
6ccae5e2d8 (copy_internal): Don't call chown on a symlink. 1998-07-03 19:57:42 +00:00
Jim Meyering
31f6e2b228 *** empty log message *** 1998-07-01 12:46:39 +00:00
Jim Meyering
d05618c5c2 Don't define NDEBUG, now that it's done via configure's --disable-assert option. 1998-07-01 12:44:22 +00:00
Jim Meyering
7a314199db (read_filesystem_list):
Plug file descriptor leak on failure.
Report failure if lock file can't be opened for some reason
other than nonexistence.
1998-06-30 14:32:53 +00:00
Jim Meyering
837a447ba4 *** empty log message *** 1998-06-30 14:32:33 +00:00
Jim Meyering
5d2bbddf97 . 1998-06-30 03:57:55 +00:00
Jim Meyering
6dda2aaa52 (read_filesystem_list) [MOUNTED_GETMNTENT2]:
Always close stream and file descriptor before returning.
1998-06-30 03:56:57 +00:00
Jim Meyering
3fa1d4bb24 (main): Move the test of the result of the read_filesystem_list call
up out of if-block -- code in the else-block depends on it too.
1998-06-30 02:27:51 +00:00
Jim Meyering
1c84606b56 (read_filesystem_list): If SVR4, lock /etc/.mnttab.lock if available,
to avoid race conditions (e.g. with the automounter on Solaris 2.6).

Include <errno.h>, <fcntl.h>, <unistd.h>.
1998-06-30 02:15:43 +00:00
Jim Meyering
b1b273f24f *** empty log message *** 1998-06-29 20:34:02 +00:00
Jim Meyering
e211d3960f . 1998-06-29 20:33:24 +00:00
Jim Meyering
9282f5f8a6 . 1998-06-29 20:32:36 +00:00
Jim Meyering
1d2074e02a protoize 1998-06-29 20:29:28 +00:00
Jim Meyering
8dce8df49a . 1998-06-29 17:35:28 +00:00
Jim Meyering
4d4b2c8e5e *** empty log message *** 1998-06-29 17:31:11 +00:00
Jim Meyering
a72bab1a32 *** empty log message *** 1998-06-29 17:19:30 +00:00
Jim Meyering
affbb977af . 1998-06-29 17:03:13 +00:00
Jim Meyering
aa1c5467ec (fstype_to_string): Guard with #if ! HAVE_F_FSTYPENAME_IN_STATFS. 1998-06-29 17:01:48 +00:00
Jim Meyering
435fa5a7dd Include sys/param.h. NetBSD 1.3.1 requires this
for the definition of NGROUPS (used in a system header included
by sys/mount.h).
1998-06-29 16:57:09 +00:00
Jim Meyering
b7441176e3 *** empty log message *** 1998-06-29 16:24:37 +00:00
Jim Meyering
f3c14cb59f revert back to using lower case _unlocked wrapper names 1998-06-29 16:24:01 +00:00
Jim Meyering
8ba97d963e Include system.h only after error.h and readutmp.h
so we don't get redefinition warnings about getc, etc.
Revert back to using lower case _unlocked wrapper names.
1998-06-29 16:23:15 +00:00
Jim Meyering
223e88f957 *** empty log message *** 1998-06-29 16:16:58 +00:00
Jim Meyering
83d4b736d2 revert back to using lower case _unlocked wrapper names 1998-06-29 15:59:39 +00:00
Jim Meyering
257c5c4737 revert back to using lower case _unlocked wrapper names 1998-06-29 15:57:45 +00:00
Jim Meyering
391c960cba Update call to human_readable -- now there's one fewer arg. 1998-06-29 15:56:23 +00:00
Jim Meyering
62f208d493 . 1998-06-29 15:38:09 +00:00
Jim Meyering
60ae0b81a5 (__xstrtol), src/dd.c (parse_integer):
Add support for SI-like suffixes like "GB" and "TD".
(usage): Describe it.
1998-06-29 15:36:28 +00:00
Jim Meyering
09d344df5b (human_readable_base, output_units): Remove;
replace with new variable output_block_size.  All uses changed.
(long_options, usage, main): Add --block-size.
(main, decode_switches): Use new human_block_size function to
initialize output block size consistently with other programs.

From Paul Eggert.
1998-06-29 15:34:54 +00:00
Jim Meyering
43f4099c95 (human_readable_base, output_units): Remove;
replace with new variable output_block_size.  All uses changed.
(long_options, usage, main): Add --block-size.
(main, decode_switches): Use new human_block_size function to
initialize output block size consistently with other programs.

(print_header, show_dev): Shrink some columns and expand
others, to squeeze in support for today's larger filesystems.
(print_header): Print output block size using power-of-1024 SI format.
(df_readable): Coalesce last two args into one, for convenience.
All callers changed.
(main): Remove check for portable output format and larger
or human-readable block sizes.

From Paul Eggert.
1998-06-29 15:33:38 +00:00
Jim Meyering
476cb02516 * lib/xstrtol.c (bkm_scale): Don't assume that you can convert
unsigned long to double without losing information.
	(bkm_scale_by_power): New function.

	* lib/xstrtol.c (__xstrtol), src/dd.c (parse_integer):
	Add support for SI-like suffixes like "GB" and "TD".
	* src/dd.c (usage): Describe it.
1998-06-29 15:24:43 +00:00
Jim Meyering
159788fcca (__ZLONG_MAX): Remove. 1998-06-29 15:24:15 +00:00
Jim Meyering
f32dc5a2b0 (human_readable): Coalesce last two args into one, for convenience. 1998-06-29 15:23:45 +00:00
Jim Meyering
ea7102f120 * lib/human.c, lib/human.h (human_readable): Coalesce last two args
into one, for convenience.  All callers changed.
	(human_block_size): New function.
	* lib/human.c: Include <config.h> only if HAVE_CONFIG_H.
	Include <stdlib.h> if HAVE_STDLIB_H;
	declare getenv unless HAVE_DECL_GETENV.
	(_): New macro.
	Include <argmatch.h>, <error.h>, <xstrtoul.h>.
	(DEFAULT_BLOCK_SIZE): New macro.
	(block_size_args, block_size_types): New constants.
	(humblock): New function.
1998-06-29 15:23:04 +00:00
Jim Meyering
41ef62c472 *** empty log message *** 1998-06-29 14:27:03 +00:00
Jim Meyering
26d5ce2f26 . 1998-06-29 03:42:55 +00:00
Jim Meyering
868ed3b0af (usage): Make --kilobytes description consistent with
that in du and df.  From Gran Uddeborg.
1998-06-29 03:42:50 +00:00
Jim Meyering
6552bb980b *** empty log message *** 1998-06-29 03:42:18 +00:00
Jim Meyering
79a6760fe4 . 1998-06-29 02:27:55 +00:00
Jim Meyering
531453d901 . 1998-06-29 02:16:17 +00:00
Jim Meyering
1d94869663 . 1998-06-29 02:15:29 +00:00
Jim Meyering
ce195c7a07 . 1998-06-29 02:14:27 +00:00
Jim Meyering
09a2261919 . 1998-06-29 02:13:56 +00:00
Jim Meyering
c5eb9edf26 Change all uses of unlocked-wrapped functions to their upper case wrapper names. 1998-06-29 02:13:21 +00:00
Jim Meyering
dd9470cb58 Change all uses of unlocked-wrapped functions to their upper case wrapper names. 1998-06-29 02:11:07 +00:00
Jim Meyering
02fc5fa0d0 Change all uses of unlocked-wrapped functions to their upper case wrapper names. 1998-06-29 02:10:24 +00:00
Jim Meyering
b62793b100 . 1998-06-29 01:11:00 +00:00
Jim Meyering
c7af539321 (fsp_to_string): Clean out some crufty #ifdefs
now that we're using the jm_FSTYPENAME autoconf macro.
1998-06-29 01:10:24 +00:00
Jim Meyering
e989012b57 add #undefs, alphabetize 1998-06-29 01:00:51 +00:00
Jim Meyering
7aeda9a4d3 . 1998-06-28 23:51:58 +00:00
Jim Meyering
d51682ef43 *** empty log message *** 1998-06-28 23:51:47 +00:00
Jim Meyering
ab869ed00e . 1998-06-28 23:12:10 +00:00
Jim Meyering
73ab48d4e7 experimental support for -t [optional fd] -- probably soon to be backed out 1998-06-28 21:53:05 +00:00
Jim Meyering
73e6d60538 . 1998-06-28 21:42:37 +00:00
Jim Meyering
032aecf5e7 Require the new macro: jm_FUNC_GLIBC_UNLOCKED_IO. 1998-06-28 21:41:08 +00:00
Jim Meyering
8f3524de4a . 1998-06-28 21:40:12 +00:00
Jim Meyering
439fdff851 Add macro definitions for GNU libc unlocked wrappers. 1998-06-28 21:38:14 +00:00
Jim Meyering
933b990ab9 add a FIXME for output delimiter 1998-06-28 21:32:51 +00:00
Jim Meyering
ae965a958a remove `non-directory' 1998-06-28 21:13:04 +00:00
Jim Meyering
214ee5aecd *** empty log message *** 1998-06-28 21:11:31 +00:00
Jim Meyering
4dc12acc27 *** empty log message *** 1998-06-28 21:11:20 +00:00
Jim Meyering
a92dd43b7c Add DIRED_ prefix to the macros: FPUTS and FPUTS_LITERAL. 1998-06-28 20:34:29 +00:00
Jim Meyering
d2698caef3 s/PUTCHAR/DIRED_PUTCHAR/g. 1998-06-28 20:31:16 +00:00
Jim Meyering
db8fe3cf1f *** empty log message *** 1998-06-28 02:35:08 +00:00
Jim Meyering
664ba0841c *** empty log message *** 1998-06-27 23:54:10 +00:00
Jim Meyering
26d84b6c70 *** empty log message *** 1998-06-27 23:45:46 +00:00
Jim Meyering
70c8aaf873 Add two tests for double spacing. 1998-06-27 23:45:03 +00:00
Jim Meyering
182a1780ac (print_page): Break out of loop before double space test
if cols_ready_to_print is zero.
1998-06-27 23:43:40 +00:00
Jim Meyering
cf430d3590 *** empty log message *** 1998-06-27 22:10:02 +00:00
Jim Meyering
6ae99a4290 (copy_internal): Fix it so hard-link test is no longer hidden inside
big if-(backup_type == none) block.
1998-06-27 22:09:45 +00:00
Jim Meyering
c76172fbb0 *** empty log message *** 1998-06-27 21:36:28 +00:00
Jim Meyering
dd040b917a *** empty log message *** 1998-06-27 21:14:40 +00:00
Jim Meyering
4ec1fad4e7 *** empty log message *** 1998-06-27 21:03:16 +00:00
Jim Meyering
9d9fef5595 (copy_reg): Detect identical source and dest here.
(copy_internal): Make the test symmetric.
1998-06-27 20:44:23 +00:00
Jim Meyering
6fd3c331ba . 1998-06-27 20:37:17 +00:00
Jim Meyering
9b989298f4 *** empty log message *** 1998-06-27 20:35:26 +00:00
Jim Meyering
07507c07da (TESTS): Add same-file. 1998-06-27 20:35:16 +00:00
Jim Meyering
c96968a2a3 *** empty log message *** 1998-06-27 20:33:58 +00:00
Jim Meyering
a3e1200b4a *** empty log message *** 1998-06-27 20:33:22 +00:00
Jim Meyering
2b2424aab8 *** empty log message *** 1998-06-27 20:22:36 +00:00
Jim Meyering
994c3c82ef . 1998-06-27 20:20:25 +00:00
Jim Meyering
dfc86db1cc *** empty log message *** 1998-06-27 20:14:15 +00:00
Jim Meyering
162f6824cf *** empty log message *** 1998-06-27 20:10:29 +00:00
Jim Meyering
feccdc6c58 *** empty log message *** 1998-06-27 13:45:23 +00:00
Jim Meyering
2f617e52d6 changed --verbose message 1998-06-27 04:40:13 +00:00
Jim Meyering
d200f4974b (remove_file): Remove `non-directory' part of
`removing non-directory FILE' verbose message.
1998-06-27 04:39:25 +00:00
Jim Meyering
de45950430 (show_dev): Increase field width for blocks, used,
and available columns from 7 to 8.
1998-06-24 03:02:06 +00:00
Jim Meyering
4d95aa356f *** empty log message *** 1998-06-21 18:53:07 +00:00
Jim Meyering
d82af243b1 *** empty log message *** 1998-06-21 18:51:18 +00:00
Jim Meyering
2781ec69b7 . 1998-06-18 15:22:51 +00:00
Jim Meyering
4a9222e0c2 (check): Depend on $(maint_gen) so
`make maintainer-clean; ./configure; make check' works.
1998-06-18 15:20:03 +00:00
Jim Meyering
84c104b6da . 1998-06-07 14:45:55 +00:00
Jim Meyering
500594433a *** empty log message *** 1998-06-07 14:40:04 +00:00
Jim Meyering
ed1fdb8841 *** empty log message *** 1998-06-07 14:27:15 +00:00
Jim Meyering
5d59e18618 *** empty log message *** 1998-06-07 14:08:40 +00:00
Jim Meyering
94ff35fc2d . 1998-06-07 13:56:20 +00:00
Jim Meyering
dc6658157d . 1998-06-06 04:42:12 +00:00
Jim Meyering
36fc028151 *** empty log message *** 1998-06-05 13:00:17 +00:00
Jim Meyering
6db9dc96d3 *** empty log message *** 1998-06-01 03:31:42 +00:00
Jim Meyering
7af859841f . 1998-06-01 03:29:54 +00:00
Jim Meyering
dcfb3e037a (main): Fix argv-handling bug in my 1998-05-09 change.
Reported by Don Parsons.
1998-06-01 03:28:16 +00:00
Jim Meyering
bc63f10b59 *** empty log message *** 1998-06-01 03:27:57 +00:00
Jim Meyering
ce42a622b2 *** empty log message *** 1998-05-30 21:34:32 +00:00
Jim Meyering
5cd15e8abb Clean up ctime test. Note that it fails also
on Solaris5.5.1 tmpfs file systems.
1998-05-30 21:34:21 +00:00
Jim Meyering
c685d1c4cb . 1998-05-30 20:49:07 +00:00
Jim Meyering
cc13b3d81f *** empty log message *** 1998-05-30 20:48:26 +00:00
Jim Meyering
f23d890626 *** empty log message *** 1998-05-27 12:54:34 +00:00
Jim Meyering
e7976515e2 . 1998-05-27 12:41:08 +00:00
Jim Meyering
25485fa497 . 1998-05-27 12:39:37 +00:00
Jim Meyering
ab4ea710f1 (TESTS): s/cr-1/rt-1/ 1998-05-27 12:38:10 +00:00
Jim Meyering
39f78131e2 . 1998-05-27 12:36:38 +00:00
Jim Meyering
75637a7ef4 Don't use the ctime for testing, it is impossible to set it reliably. 1998-05-27 12:35:56 +00:00
Jim Meyering
9e1c89c38e (two_arguments): Don't test argv[pos][2] if it's past end of string. 1998-05-26 13:36:49 +00:00
Jim Meyering
c726bc5709 it's --disable-nls, not --disable-gettext 1998-05-25 04:10:33 +00:00
Jim Meyering
585b65b676 . 1998-05-25 03:41:02 +00:00
Jim Meyering
b815641481 *** empty log message *** 1998-05-24 17:45:14 +00:00
Jim Meyering
84d222f735 new version from automake-1.3 1998-05-24 17:43:17 +00:00
Jim Meyering
001e1b4302 . 1998-05-24 14:20:58 +00:00
Jim Meyering
dd2934197b tweak --changed diagnostic 1998-05-24 14:17:33 +00:00
Jim Meyering
ad174925d9 . 1998-05-24 14:02:44 +00:00
Jim Meyering
2aacc55e9b Fix braino: check S_ISLNK only if lstat succeeds. 1998-05-24 14:00:03 +00:00
Jim Meyering
6f050de759 fix typo: s/chat/char/ 1998-05-24 13:41:57 +00:00
Jim Meyering
45d32cef80 tweak comment 1998-05-24 13:36:54 +00:00
Jim Meyering
3f51edcdec Accept new option, --dereference. --no-dereference is now the default.
(Change_status) [CH_NOT_APPLIED]: New member.
(change_symlinks): Enable this by default, now.
(describe_change): Handle new case.
(change_file_owner): Add new parameter: cmdline_arg.  Update callers.
Reorganize to reflect changed semantics.
(LCHOWN): Remove definitions.
1998-05-24 12:51:37 +00:00
Jim Meyering
59c9c4036b *** empty log message *** 1998-05-24 12:49:44 +00:00
Jim Meyering
ef2860263b *** empty log message *** 1998-05-20 01:30:57 +00:00
Jim Meyering
d6b76c3f75 . 1998-05-20 01:09:12 +00:00
Jim Meyering
efa242bee1 *** empty log message *** 1998-05-20 01:08:28 +00:00
Jim Meyering
8ea818e214 *** empty log message *** 1998-05-19 16:22:58 +00:00
Jim Meyering
9bd57c9f22 . 1998-05-19 16:05:54 +00:00
Jim Meyering
0d457a6aee . 1998-05-19 16:05:30 +00:00
Jim Meyering
2722883a87 Add jm_FUNC_LCHOWN. 1998-05-19 16:05:23 +00:00
Jim Meyering
8105878c15 *** empty log message *** 1998-05-19 16:04:24 +00:00
Jim Meyering
231c5aec0f . 1998-05-19 16:02:40 +00:00
Jim Meyering
e4e242e839 . 1998-05-19 16:01:48 +00:00
Jim Meyering
da8b83f81a *** empty log message *** 1998-05-19 16:01:31 +00:00
Jim Meyering
df610e05ba *** empty log message *** 1998-05-19 15:53:03 +00:00
Jim Meyering
9dab634c13 *** empty log message *** 1998-05-19 15:51:10 +00:00
Jim Meyering
e5154f74b1 . 1998-05-19 15:49:18 +00:00
Jim Meyering
67786e0fb6 *** empty log message *** 1998-05-19 15:15:09 +00:00
Jim Meyering
c84011e059 . 1998-05-19 15:06:49 +00:00
Jim Meyering
e36f49348b Remove $other_partition_tmpdir 1998-05-18 13:53:40 +00:00
Jim Meyering
e786c1a0eb *** empty log message *** 1998-05-17 04:57:10 +00:00
Jim Meyering
c057d35836 . 1998-05-16 23:46:05 +00:00
Jim Meyering
d9b628359a *** empty log message *** 1998-05-16 20:37:24 +00:00
Jim Meyering
29b1eab1af . 1998-05-16 20:35:46 +00:00
Jim Meyering
9abd463ffb . 1998-05-16 20:35:23 +00:00
Jim Meyering
b54c86e8bc add 2 more tsts 1998-05-16 20:35:19 +00:00
Jim Meyering
b885f7cbca . 1998-05-16 20:33:44 +00:00
Jim Meyering
7006d5fed6 *** empty log message *** 1998-05-16 20:27:26 +00:00
Jim Meyering
976664803c (read_utmp): Add variant for systems that have the utmpname function.
Ansideclify.
1998-05-16 20:26:54 +00:00
Jim Meyering
3fdd4e6cd2 add copyright 1998-05-16 20:21:39 +00:00
Jim Meyering
42755ceb62 cast for losing Solaris 1998-05-16 20:21:06 +00:00
Jim Meyering
8f03befb52 . 1998-05-16 20:11:01 +00:00
Jim Meyering
78af2f9732 . 1998-05-16 20:08:30 +00:00
Jim Meyering
88b4a9a940 *** empty log message *** 1998-05-16 20:07:59 +00:00
Jim Meyering
045ebed00c (opt-b, opt-s, opt_sb, opt_r): New test.
(opt_br): New test -- exercises above-fixed bug.
1998-05-16 20:07:40 +00:00
Jim Meyering
24a7456cc0 (tac_seekable): Fix error in handling regex separators. 1998-05-16 20:06:56 +00:00
Jim Meyering
b17e1af41c . 1998-05-16 05:18:07 +00:00
Jim Meyering
349b13e33a remove jm_FUNC_GNU_STRFTIME 1998-05-16 04:44:48 +00:00
Jim Meyering
7b1d31a9b1 . 1998-05-16 04:40:58 +00:00
Jim Meyering
085866c1a3 (hash_compare_strings): Return true or false, not 1/0.
(remove_cwd_entries): Use RM_OK, not equivalent literal `1'.
1998-05-16 04:40:38 +00:00
Jim Meyering
4f75855c2e (is_prime): Ansideclify.
(next_prime): Ansideclify.  Add an assertion.
1998-05-16 04:39:24 +00:00
Jim Meyering
d649910685 (EXTRA_DIST): Remove. Automake groks the `LIBOBJS='
lines in the m4/*.m4 macros, so the hack of including some
custom-replaced C source file names here is no longer needed.
1998-05-16 04:37:45 +00:00
Jim Meyering
e3e1698c6b . 1998-05-16 04:30:42 +00:00
Jim Meyering
b49e060cda . 1998-05-14 16:03:15 +00:00
Jim Meyering
e769659852 . 1998-05-13 04:15:47 +00:00
Jim Meyering
33d7cba8a7 *** empty log message *** 1998-05-13 04:03:21 +00:00
Jim Meyering
65b2d6c97e *** empty log message *** 1998-05-13 03:51:10 +00:00
Jim Meyering
2f3c1a3561 . 1998-05-13 03:50:46 +00:00
Jim Meyering
d8b68fc0c5 (EXTRA_DIST): Add isc-posix.m4. 1998-05-13 03:50:35 +00:00
Jim Meyering
06ffb13ff0 clean up diagnostic 1998-05-13 03:49:36 +00:00
Jim Meyering
3e62291a3c . 1998-05-13 03:48:43 +00:00
Jim Meyering
10972f68e8 *** empty log message *** 1998-05-13 03:48:05 +00:00
Jim Meyering
15aac9a45d (copy_internal): Plug a small leak. 1998-05-13 03:47:02 +00:00
Jim Meyering
43fd950ef9 undefine before redefining 1998-05-11 15:16:40 +00:00
Jim Meyering
6c4002b2b5 . 1998-05-11 12:39:16 +00:00
Jim Meyering
816ee7dc0d . 1998-05-11 12:33:07 +00:00
Jim Meyering
916c762152 . 1998-05-11 11:54:48 +00:00
Jim Meyering
0d7fe8a4de (do_move): Remove lots of code that was duplicated in
copy.c (copy), now that copy() has better support for mv.  This fixes
a bug with cross-filesystem `mv -i' whereby you could get two prompts
for the same destination file and eventually remove the destination
file even though one of the responses was negative.
Reported by Dirk Lattermann.
1998-05-11 04:12:51 +00:00
Jim Meyering
841c6fbfe0 *** empty log message *** 1998-05-11 04:12:26 +00:00
Jim Meyering
859bfc78b1 reflect additional parameter to copy
initialize new member: move_mode.
1998-05-11 04:07:16 +00:00
Jim Meyering
21ae3d911c (copy_internal): Use new move_mode member.
Add parameter.
(copy): Add parameter.
1998-05-11 04:06:22 +00:00
Jim Meyering
4520ff31e2 Better support for mv:
[struct cp_options] (move_mode): New member.
1998-05-11 04:04:16 +00:00
Jim Meyering
92ce634177 (TESTS): Likewise. 1998-05-11 04:01:42 +00:00
Jim Meyering
6d89cf5f12 *** empty log message *** 1998-05-11 04:00:54 +00:00
Jim Meyering
83a4462018 . 1998-05-11 03:55:18 +00:00
Jim Meyering
2b416bd83e *** empty log message *** 1998-05-11 03:48:31 +00:00
Jim Meyering
96ab6a541a (TESTS): Add backup-is-src. 1998-05-11 03:47:24 +00:00
Jim Meyering
571a29d870 *** empty log message *** 1998-05-11 03:46:59 +00:00
Jim Meyering
20f1f8b063 . 1998-05-11 03:46:48 +00:00
Jim Meyering
4e1e8c600d add --verbose and compare against expected output 1998-05-11 03:35:01 +00:00
Jim Meyering
d816bb4f14 *** empty log message *** 1998-05-11 03:26:40 +00:00
Jim Meyering
ce60ef7400 *** empty log message *** 1998-05-11 03:19:35 +00:00
Jim Meyering
6e98d78fd4 add "'s 1998-05-11 03:13:51 +00:00
Jim Meyering
2c5862c808 *** empty log message *** 1998-05-11 03:13:36 +00:00
Jim Meyering
268db2760a *** empty log message *** 1998-05-11 03:13:00 +00:00
Jim Meyering
0062e8f915 *** empty log message *** 1998-05-11 03:09:18 +00:00
Jim Meyering
057743741f Use am_cv_func_working_getline, not `jm_'-prefixed version. 1998-05-10 20:58:09 +00:00
Jim Meyering
3f2774c8b4 *** empty log message *** 1998-05-10 16:11:13 +00:00
Jim Meyering
3e0c559579 Use AM_FUNC_MKTIME, now that it's up to date. 1998-05-10 16:10:40 +00:00
Jim Meyering
e7d6615b76 Don't declare strdup if it's defined as a macro.
Reported by Lorne Baker.
1998-05-10 16:04:39 +00:00
Jim Meyering
91df5bbc48 *** empty log message *** 1998-05-10 16:03:56 +00:00
Jim Meyering
4cc5661b42 (cp_option_init): s/use_mode/set_mode/ 1998-05-10 12:22:58 +00:00
Jim Meyering
19a98e3edc (cp_option_init): Likewise.
(main): Set new preserve_* options.
1998-05-10 12:22:23 +00:00
Jim Meyering
50e17793c8 (cp_option_init): Initialize new members. 1998-05-10 12:19:30 +00:00
Jim Meyering
8a0a50e6b0 (new_nondir_mode): New function. Use where appropriate.
Use more-specific preserve_* members in place of removed `preserve'.
(copy_internal): Honor failed_unlink_is_fatal.
1998-05-10 12:18:21 +00:00
Jim Meyering
a42054dd57 Support for install:
[struct cp_options] (failed_unlink_is_fatal): New member.
(preserve_owner_and_group): New member.
(preserve_chmod_bits): New member.
(preserve_timestamps): New member.
(preserve): Remove member.
(set_mode): New member.
(mode): New member.
1998-05-10 12:17:46 +00:00
Jim Meyering
24da56f990 (main): Rewrite argv-handling to be clearer.
(copy_file): Rewrite to use copy.c (copy).
(change_attributes): Get rid of now-(with chown wrapper)-unnecessary
`no_need_to_chown' parameter.  Fix caller.
(install_file_in_file): Remove now-unnecessary `to_created' parameter.
(cp_option_init): New function.
Update several functions to take new parameter specifying copy options.
1998-05-10 03:05:44 +00:00
Jim Meyering
d8e6937773 . 1998-05-09 20:25:09 +00:00
Jim Meyering
e1b2b2337d . 1998-05-09 20:23:38 +00:00
Jim Meyering
60c77b6c28 . 1998-05-09 19:56:35 +00:00
Jim Meyering
c7b3d3e91b . 1998-05-09 19:56:14 +00:00
Jim Meyering
60c1207b74 . 1998-05-09 19:07:40 +00:00
Jim Meyering
d344aaa129 *** empty log message *** 1998-05-09 17:42:59 +00:00
Jim Meyering
83c2cfa04d Include safe-read.h.
Don't declare safe_read.
1998-05-09 17:42:50 +00:00
Jim Meyering
53c7a54a58 Include safe-read.h.
Don't declare safe_read.
1998-05-09 17:41:37 +00:00
Jim Meyering
e81bcd87cb . 1998-05-09 17:38:05 +00:00
Jim Meyering
10d98345b4 . 1998-05-09 17:37:10 +00:00
Jim Meyering
e17b601d5e (EXTRA_DIST): Remove mktime.m4, now that the new version is included
with automake.
1998-05-09 17:18:55 +00:00
Jim Meyering
f5d8ee465e (EXTRA_DIST): Add ssize_t.m4. 1998-05-09 17:00:48 +00:00
Jim Meyering
51c06c49cf . 1998-05-09 17:00:38 +00:00
Jim Meyering
bbf4d37373 (tac_seekable): Rename from tac_stream.
Change `FILE *in' parameter to `int input_fd'. Adjust callers.
Revert to using safe_read -- can't mix lseek and fread.
And can't use fseek because it can't handle files larger than 2^32.
1998-05-09 14:42:31 +00:00
Jim Meyering
9bb85624cf fix up compile warnings 1998-05-07 17:45:10 +00:00
Jim Meyering
9b5402ec48 Don't use safe_read. Use fread instead.
Fix open and fdopen to agree that file is read/write: O_RDWR and "w+".
This is required on at least solaris5.5.1.
1998-05-07 17:43:13 +00:00
Jim Meyering
77728e4f4b add curlies 1998-05-07 16:01:02 +00:00
Jim Meyering
9db889c372 add some curly braces 1998-05-07 15:55:56 +00:00
Jim Meyering
caace05438 rename variable 1998-05-07 15:54:44 +00:00
Jim Meyering
cd7f8d6e9b (tac_stdin): Use STDIN_FILENO rather than literal `0' in fstat call. 1998-05-07 15:50:54 +00:00
Jim Meyering
bf598c02ba add tr `double' script example 1998-05-07 14:32:59 +00:00
Jim Meyering
3954a4f441 remove dcl of unused safe_read 1998-05-04 00:44:37 +00:00
Jim Meyering
506343b223 . 1998-05-04 00:28:35 +00:00
Jim Meyering
2f8dc98340 . 1998-05-04 00:27:15 +00:00
Jim Meyering
d015aad1f2 . 1998-05-03 23:21:42 +00:00
Jim Meyering
a99c3df843 *** empty log message *** 1998-05-03 23:21:39 +00:00
Jim Meyering
e78bc7655d . 1998-05-03 22:18:22 +00:00
Jim Meyering
a519a07f25 . 1998-05-03 22:15:39 +00:00
Jim Meyering
02efcd60ed . 1998-05-03 22:14:55 +00:00
Jim Meyering
39e2377300 . 1998-05-03 22:14:06 +00:00
Jim Meyering
cda5bf9db9 . 1998-05-03 21:56:10 +00:00
Jim Meyering
27c8d53a3a . 1998-05-03 21:46:06 +00:00
Jim Meyering
3e7e7d0792 Use `-I.' with each invocation of $(PERL).
perl-5.004_xx comes with a Test.pm module that'd be used otherwise.
1998-05-03 21:41:51 +00:00
Jim Meyering
a5b0ca6f24 . 1998-05-03 21:05:51 +00:00
Jim Meyering
1f62fd20a3 update from gettext-0.10.35 1998-05-03 20:46:29 +00:00
Jim Meyering
254fc64f64 update from gettext-0.10.35 1998-05-03 20:37:39 +00:00
Jim Meyering
9dc7d5d2ae . 1998-05-02 15:37:18 +00:00
Jim Meyering
45af919ce6 (check_format): Use ISDIGIT, not isdigit. 1998-05-02 15:36:43 +00:00
Jim Meyering
89c9e683a3 . 1998-05-02 15:33:01 +00:00
Jim Meyering
d20d0fc27d . 1998-05-02 15:31:13 +00:00
Jim Meyering
5b7e895b65 . 1998-05-02 15:25:56 +00:00
Jim Meyering
2e97d27586 (parse_line): Use ISSPACE, not isspace.
Use unsigned char * pointers, not potentially signed ones, to avoid
sign extension.
1998-04-28 13:09:47 +00:00
Jim Meyering
a155c3d684 tweak from FSF 1998-04-28 12:19:53 +00:00
Jim Meyering
3489f267a4 *** empty log message *** 1998-04-27 16:09:46 +00:00
Jim Meyering
3fc7024e49 . 1998-04-27 05:05:47 +00:00
Jim Meyering
30b522371a . 1998-04-27 05:04:54 +00:00
Jim Meyering
88013e3cb4 . 1998-04-27 05:04:05 +00:00
Jim Meyering
7c8a2cdacf . 1998-04-27 05:03:43 +00:00
Jim Meyering
876f399d50 . 1998-04-27 05:03:09 +00:00
Jim Meyering
05ffec210e Disable test f-1, now that it fails. 1998-04-27 05:02:56 +00:00
Jim Meyering
163f7f9c20 . 1998-04-27 05:01:43 +00:00
Jim Meyering
8fbf79b4e0 *** empty log message *** 1998-04-27 05:01:19 +00:00
Jim Meyering
08b5c3046c *** empty log message *** 1998-04-27 05:00:00 +00:00
Jim Meyering
551b879bf1 *** empty log message *** 1998-04-27 04:57:59 +00:00
Jim Meyering
bd1eee0315 add 22b 1998-04-27 04:53:31 +00:00
Jim Meyering
72f7eb4e63 . 1998-04-27 04:41:41 +00:00
Jim Meyering
fef313b2b0 Remove definition of _GNU_SOURCE 1998-04-27 04:31:45 +00:00
Jim Meyering
464e2ce05d (22a): Add test. 1998-04-27 04:30:30 +00:00
Jim Meyering
a48999494d *** empty log message *** 1998-04-27 04:29:36 +00:00
Jim Meyering
d5d061ee9b (keycompare): Don't return 0 from inside the keyspec-iterating loop.
With this change, test 22a passes.  Reported by Zvi Har'El.
1998-04-27 04:29:05 +00:00
Jim Meyering
b44e91e99d (strncoll): Remove bogus assertion. 1998-04-27 03:50:17 +00:00
Jim Meyering
ce3668f3c1 (EXTRA_DIST): Add assert.m4. 1998-04-26 20:48:58 +00:00
Jim Meyering
44fa09dc5e . 1998-04-26 20:48:00 +00:00
Jim Meyering
808b938840 Don't define NDEBUG. 1998-04-26 20:42:16 +00:00
Jim Meyering
83d4d74a88 Don't define NDEBUG. 1998-04-26 20:41:42 +00:00
Jim Meyering
0d38a270a4 Do not define _GNU_SOURCE and/or NDEBUG 1998-04-26 20:38:28 +00:00
Jim Meyering
3f017c26ca [struct File_spec] (pretty_name): Remove member.
(pretty_name): New function.
1998-04-26 20:09:26 +00:00
Jim Meyering
4c946943ea *** empty log message *** 1998-04-26 19:58:57 +00:00
Jim Meyering
7dd872d963 Remove usage-like comments near beginning of file. 1998-04-26 19:58:43 +00:00
Jim Meyering
b7d50ca523 (xwrite): New function -- converted from macro. 1998-04-26 19:53:54 +00:00
Jim Meyering
fe18d63a65 (close_fd): New function -- converted from macro.
[struct File_spec] (n_stat_calls): New member.
[struct File_spec] (n_unchanged_stats): New member.
(max_n_unchanged_stats): New global.
Initialize new members.
1998-04-26 19:50:21 +00:00
Jim Meyering
6668e39160 *** empty log message *** 1998-04-26 15:28:20 +00:00
Jim Meyering
d738449858 (md5_check): Declare local, `md5num' as _unsigned_ char*.
(hex_digits): Declare parameter `s' as _unsigned_ char*.
(split_3): Declare parameter `u' as _unsigned_ char**.
1998-04-26 15:28:06 +00:00
Jim Meyering
7254d243f2 (print_nth_dir): Remove first (and always-true) part of conjunct in assertion. 1998-04-26 05:14:50 +00:00
Jim Meyering
91da5cedc7 . 1998-04-17 15:37:52 +00:00
Jim Meyering
1187f5eb7f (xfields): Used unsigned char* pointers to avoid 1998-04-17 15:37:29 +00:00
Jim Meyering
5bcc1fd7fd (check_punctuation): Used unsigned char* pointers to avoid 1998-04-17 15:37:03 +00:00
Jim Meyering
e4c9ae3c6b . 1998-04-17 15:30:37 +00:00
Jim Meyering
d1121fa4c0 *** empty log message *** 1998-04-14 15:17:45 +00:00
Jim Meyering
713c315978 Use STREQ in string equality tests, not strcmp. 1998-04-14 15:17:32 +00:00
Jim Meyering
8cc46c2a18 (noinst_HEADERS): Add safe-read.h. 1998-04-13 16:29:58 +00:00
Jim Meyering
518f85fc40 . 1998-04-13 13:51:27 +00:00
Jim Meyering
48990a9078 Include safe-read.h instead of merely declaring safe_read. 1998-04-12 19:56:25 +00:00
Jim Meyering
69a3ee0b49 . 1998-04-12 15:16:37 +00:00
Jim Meyering
8ed3137f52 (TYPE_MAXIMUM): Update from system.h. 1998-04-12 09:39:30 +00:00
Jim Meyering
d4257e63c7 Use STREQ rather than strcmp 1998-04-12 09:27:45 +00:00
Jim Meyering
7154d646cb (wc): Declare per-file counters and `linepos' to be of type uintmax_t.
Declare bytes_read to be ssize_t.
1998-04-12 09:12:21 +00:00
Jim Meyering
b388203a65 Include safe-read.h instead of merely declaring safe_read. 1998-04-11 18:24:09 +00:00
Jim Meyering
66c7b3c41d Include safe-read.h instead of merely declaring safe_read. 1998-04-11 18:23:13 +00:00
Jim Meyering
ac7b3c4fa9 [HAVE_INTTYPES_H]: Include inttypes.h.
Declare counters to be of type uintmax_t.
(write_counts): Use human_readable to format potentially-long-long
numbers.  Suggestion from Rogier Wolff.
1998-04-11 18:21:24 +00:00
Jim Meyering
b402870080 (noinst_HEADERS): Add safe-read.h. 1998-04-11 17:53:09 +00:00
Jim Meyering
1cbe202b0a . 1998-04-11 17:52:28 +00:00
Jim Meyering
d618576e0e split a couple long lines 1998-04-11 15:37:35 +00:00
Jim Meyering
51fe35760e Add curly braces around statements in if/else/while/do/etc. that
span more than a line -- even around multiline simple statements or
single-line simple statements preceded by a comment line.
1998-04-11 15:35:06 +00:00
Jim Meyering
8bbe8ab5d4 . 1998-04-11 15:05:20 +00:00
Jim Meyering
ba51843a2c . 1998-04-11 15:04:39 +00:00
Jim Meyering
397d9be228 import version 2.231 1998-04-11 15:03:51 +00:00
Jim Meyering
dddfcab3b3 *** empty log message *** 1998-04-11 09:24:28 +00:00
Jim Meyering
00ea94587f indent cpp directives 1998-04-09 07:28:10 +00:00
Jim Meyering
49875c1593 make there be two spaces after `.' in comments 1998-04-09 07:22:52 +00:00
Jim Meyering
7b9c4d3d03 (cph_hash_insert): Rename from now-conflicting hash_insert.
Also declare to be static.
1998-04-06 08:15:29 +00:00
Jim Meyering
3783d6be57 (hash_insert): Remove declaration. 1998-04-06 08:14:58 +00:00
Jim Meyering
632ebfa209 Change names/usage of hash-related functions to work with the above. 1998-04-06 08:11:35 +00:00
Jim Meyering
29cc8bf4f3 Lots of minor spec and name changes, and new comments.
From Franois Pinard.
1998-04-06 08:09:36 +00:00
Jim Meyering
50892edd61 Lots of minor spec and name changes, and new comments.
(hash_rehash): Rewritten to be easier on the allocator.
From Franois Pinard.
1998-04-06 08:09:11 +00:00
Jim Meyering
72193ba149 *** empty log message *** 1998-04-06 00:26:54 +00:00
Jim Meyering
854b5197ad *** empty log message *** 1998-04-05 23:44:12 +00:00
Jim Meyering
d90641d9d8 . 1998-04-05 23:43:58 +00:00
Jim Meyering
300be5a250 *** empty log message *** 1998-04-05 21:35:33 +00:00
Jim Meyering
3911fadcf9 add braces to disambiguate ambiguous else 1998-04-05 21:32:26 +00:00
Jim Meyering
382ca69cec . 1998-04-05 18:24:45 +00:00
Jim Meyering
9fc10dc6c3 (WIDE_CHAR_SUPPORT): Define.
This now depends on HAVE_BTOWC so systems that lack btowc (like
solaris-2.5.1) don't lose.
1998-04-05 18:24:18 +00:00
Jim Meyering
f0a8ebf596 *** empty log message *** 1998-04-05 18:22:30 +00:00
Jim Meyering
53c085b7e5 (jm_PREREQ_REGEX): New macro.
(jm_PREREQ): Use it here.
1998-04-05 18:22:11 +00:00
Jim Meyering
faa759b349 *** empty log message *** 1998-04-04 21:37:50 +00:00
Jim Meyering
398e92a2ec *** empty log message *** 1998-04-04 18:17:10 +00:00
Jim Meyering
3483943ebc (PARAMS): Define. 1998-04-04 18:16:51 +00:00
Jim Meyering
108b074aea . 1998-04-04 16:47:29 +00:00
Jim Meyering
19fcb4356c Use "%s", not device_name, as the format string, in case the
latter contains `%'.
1998-04-04 16:47:19 +00:00
Jim Meyering
c4b7f217a5 stty: document new --file/-F option 1998-04-04 16:36:30 +00:00
Jim Meyering
cb04f85936 . 1998-04-04 16:28:11 +00:00
Jim Meyering
902bbe7707 *** empty log message *** 1998-04-04 16:27:12 +00:00
Jim Meyering
c9a9ec9b53 . 1998-04-04 16:20:15 +00:00
Jim Meyering
840a08ccde . 1998-04-04 16:19:34 +00:00
Jim Meyering
5fbcd963df clean up comments 1998-04-04 10:36:32 +00:00
Jim Meyering
953c42bd52 (valid_options): Parenthesize assignment in while expr.
(main): Remove dcl of unused `cp'.
1998-04-04 09:38:47 +00:00
Jim Meyering
765122f558 Use STREQ in place of strcmp everywhere.
(valid_options): Indent
(main): s/case 'f':/case 'F':/
Tweak error messages to make them consistent.
Remove #if-0'd block.
Move dcl of fdflags into scope where it's used.
1998-04-04 09:30:39 +00:00
Jim Meyering
e46a424ce9 [1998-03-31 Theodore Ts'o <tytso@rsts-11.mit.edu>]
(main): Fix broken options parsing that worked only
by serendipity (getopt_long_only already parsed short options; no
need to parse them again manually!).  Add support for the --file
option, which allows the user to specify the device whose line
settings are to be set.  This is necessary because POSIX ttys will
block waiting for carrier detect to go high if CLOCAL is not set,
unless the device is opened with the O_NONBLOCK flag.
Unfortunately, the shell doesn't use this flag, so users lose.
Opening the device in stty is the easist way to fix this.
(speeds): Add support for 230400 and 460800 line speeds, which are
supported by Linux.
1998-04-04 09:08:04 +00:00
Jim Meyering
095c92bc46 . 1998-04-04 08:24:11 +00:00
Jim Meyering
7957dcc00a . 1998-04-04 08:11:22 +00:00
Jim Meyering
108f8f2d04 . 1998-04-04 08:07:26 +00:00
Jim Meyering
39463d50ed update comment 1998-04-04 08:06:24 +00:00
Jim Meyering
4a46351e06 Add conditionals so that running `make' in an
unconfigured source directory will get a reasonable diagnostic.
1998-04-04 08:05:18 +00:00
Jim Meyering
8aca15bac0 . 1998-04-04 08:03:48 +00:00
Jim Meyering
1ddffff8c0 *** empty log message *** 1998-04-04 08:02:23 +00:00
Jim Meyering
e7683a577a (aclocal-files): Remove now-unnecessary (with
automake-1.2h and the above change) aclocal-related rules and includes.
1998-04-04 07:50:13 +00:00
Jim Meyering
3063e56f2e *** empty log message *** 1998-04-01 06:47:32 +00:00
Jim Meyering
eb3a4daa24 . 1998-04-01 06:47:25 +00:00
Jim Meyering
b6844f1931 (TESTS): Add cr-1. 1998-04-01 06:46:52 +00:00
Jim Meyering
a636450727 (compare_ctime, rev_cmp_ctime, compare_mtime,
rev_cmp_mtime, compare_atime, rev_cmp_atime, compare_size,
rev_cmp_size): Use file name as secondary sort key to get
consistent sorting.
1998-04-01 06:35:01 +00:00
Jim Meyering
6456a7d8ac . 1998-03-31 23:11:50 +00:00
Jim Meyering
a57d5061ff (TYPE_MAXIMUM): Cast result to (t)' so this macro works with unsigned char'.
From Greg Wooledge.
(SCHAR_MIN, SCHAR_MAX, SHRT_MIN, SHRT_MAX, LONG_MAX, ULONG_MAX): Define.
1998-03-31 23:11:37 +00:00
Jim Meyering
45e8e5c550 Merge with the version from textutils. 1998-03-31 13:14:22 +00:00
Jim Meyering
69412999dc (EXTRA_DIST): Remove mk-script.pl.
(mk_script): Set to ../mk-script.
(x-tests): Use `$(PERL) -w -- $(mk_script)', not ./mk-script.
Remove @MAINT@ cruft.
(Makefile.am): Likewise.
Remove @MAINT@ cruft.  Now `missing' will explain the failure
when people don't have Perl yet modify a file whose rebuilding
would lead to the use of Perl.
1998-03-31 12:49:00 +00:00
Jim Meyering
85b39cb589 add descriptive first-line comment 1998-03-31 12:09:55 +00:00
Jim Meyering
9f358e6830 (rpl_memcmp): Rename from memcmp. 1998-03-31 12:05:17 +00:00
Jim Meyering
defb2bdef8 . 1998-03-31 07:50:22 +00:00
Jim Meyering
6e577f0b56 *** empty log message *** 1998-03-28 14:57:25 +00:00
Jim Meyering
c157e5fbef Add copyright. 1998-03-28 14:56:49 +00:00
Jim Meyering
ca6cf35a5e Add copyright.
[_AIX]: Add #pragma alloca.
1998-03-28 14:56:11 +00:00
Jim Meyering
ede420f14a ($(ACLOCAL_M4)): Replace old rule with this
dependency and the := assignment of ACLOCAL to make the default
rule use the `-I m4' option.
1998-03-27 22:37:56 +00:00
Jim Meyering
52a2ff839c . 1998-03-27 22:34:23 +00:00
Jim Meyering
821a0823b1 *** empty log message *** 1998-03-27 22:33:37 +00:00
Jim Meyering
e52d8736b1 remove dcl of unused local, num_regs 1998-03-27 22:29:05 +00:00
Jim Meyering
5c0ee776d4 cpp-directive aesthetics 1998-03-27 12:40:03 +00:00
Jim Meyering
465ebf7c37 new version from Uli 1998-03-27 11:23:07 +00:00
Jim Meyering
18ad404d02 . 1998-03-26 16:27:28 +00:00
Jim Meyering
28cb02fc78 (batch_convert): Remove spurious space in error message.
Reported by Karl Berry.
1998-03-26 15:41:14 +00:00
Jim Meyering
cbf0181378 s/@samp/@email/ for e-mail addresses 1998-03-25 07:38:24 +00:00
Jim Meyering
bca2db9877 . 1998-03-23 23:52:30 +00:00
Jim Meyering
aa71be25c0 . 1998-03-23 23:49:18 +00:00
Jim Meyering
cd053a291e update from automake-2.1h 1998-03-23 23:19:01 +00:00
Jim Meyering
fa4148be50 *** empty log message *** 1998-03-23 23:13:24 +00:00
Jim Meyering
5695f8ea2d . 1998-03-23 23:13:08 +00:00
Jim Meyering
18d159d47e *** empty log message *** 1998-03-23 23:12:45 +00:00
Jim Meyering
0bb2acd9da Kludges so I don't have to add HAVE_INTTYPES_H in acconfig.h. 1998-03-23 23:10:30 +00:00
Jim Meyering
7a8b4afa3e . 1998-03-23 22:47:45 +00:00
Jim Meyering
3a0352ad9a . 1998-03-23 22:47:05 +00:00
Jim Meyering
55569d4f9f update from libc/copies 1998-03-23 07:24:54 +00:00
Jim Meyering
eeef5c523d merge variables: forever_multiple and forever
(recheck): New function.
Begin to support --allow-missing option.
1998-03-22 20:55:34 +00:00
Jim Meyering
e8ab1c28f8 *** empty log message *** 1998-03-22 20:38:44 +00:00
Jim Meyering
df4ba7d9ca (tail_forever): plug gross fd leaks
Don't close stdin
Don't print header unnecessarily if the first file to grow
is the last one for which a header was printed.
1998-03-21 16:33:53 +00:00
Jim Meyering
e832812173 *** empty log message *** 1998-03-21 08:54:58 +00:00
Jim Meyering
ac648dbc8a Update from patch-2.5.3. 1998-03-21 08:51:48 +00:00
Jim Meyering
c75ccba2d3 Update from patch-2.5.3. 1998-03-21 08:49:00 +00:00
Jim Meyering
a33adfebb2 (decode_switches): Pass a null pointer instead of address
of quotearg_quoting_options.
1998-03-21 08:47:54 +00:00
Jim Meyering
b50b941826 . 1998-03-19 22:27:17 +00:00
Jim Meyering
6ec5bace8a (show_dev): If fsu_bavail_top_bit_set is nonzero,
assume the original value corresponding to fsu_bavail was negative.
1998-03-19 22:18:29 +00:00
Jim Meyering
b48e78e3b7 Include <limits.h>.
(CHAR_BIT, EXTRACT_TOP_BIT, PROPAGATE_TOP_BIT): New macros.
(get_fs_usage): If top bit of system variable corresponding to
fsu_bavail is set, then set fsu_bavail_top_bit_set, and
sign-extend the value when storing it into fsu_bavail.
1998-03-19 22:18:04 +00:00
Jim Meyering
33179975d7 (struct fs_usage): New member
fsu_bavail_top_bit_set.
1998-03-19 22:17:43 +00:00
Jim Meyering
d4a8891aef *** empty log message *** 1998-03-18 21:53:35 +00:00
Jim Meyering
fcbfefa513 *** empty log message *** 1998-03-17 23:31:18 +00:00
Jim Meyering
fcf6405f2d (tail_file): Merge largely-duplicated blocks of code. 1998-03-15 23:04:56 +00:00
Jim Meyering
0ecb6ace02 . 1998-03-15 20:36:02 +00:00
Jim Meyering
6d42c7e9d7 *** empty log message *** 1998-03-15 18:05:05 +00:00
Jim Meyering
6684ffa826 Use #if, not #ifdef with HAVE_ macros.
Use #if !, not #ifndef with HAVE_ macros.
1998-03-15 17:54:50 +00:00
Jim Meyering
bfbc3ce20c Use #if, not #ifdef with HAVE_ macros 1998-03-15 11:09:10 +00:00
Jim Meyering
0f5f23cb9e . 1998-03-15 09:52:09 +00:00
Jim Meyering
93494dde07 *** empty log message *** 1998-03-15 09:48:52 +00:00
Jim Meyering
be3b9520ad (EXTRA_DIST): Add prereq.m4. 1998-03-15 09:47:28 +00:00
Jim Meyering
c2c6f081c5 *** empty log message *** 1998-03-15 09:47:03 +00:00
Jim Meyering
36b10d9f21 . 1998-03-15 09:45:00 +00:00
Jim Meyering
72c0980585 *** empty log message *** 1998-03-15 09:43:27 +00:00
Jim Meyering
58647fd63d *** empty log message *** 1998-03-15 09:11:44 +00:00
Jim Meyering
6eb5e899e1 *** empty log message *** 1998-03-15 09:10:21 +00:00
Jim Meyering
a01c762a81 *** empty log message *** 1998-03-15 09:08:51 +00:00
Jim Meyering
c29025e6ed (EXTRA_DIST): Add error.m4. 1998-03-15 09:08:39 +00:00
Jim Meyering
b3582e7533 . 1998-03-15 09:07:39 +00:00
Jim Meyering
12f49aa1ae update from fsf 1998-03-15 08:11:02 +00:00
Jim Meyering
f31f7e1c75 *** empty log message *** 1998-03-14 19:53:21 +00:00
Jim Meyering
d34d42ca05 . 1998-03-14 16:39:09 +00:00
Jim Meyering
6974d67aa2 *** empty log message *** 1998-03-14 16:38:41 +00:00
Jim Meyering
85d9447441 . 1998-03-14 16:38:35 +00:00
Jim Meyering
45c381f4ba s/get-date.h/getdate.h/ 1998-03-14 16:35:24 +00:00
Jim Meyering
184c0062a4 s/get-date.h/getdate.h/ 1998-03-14 16:32:35 +00:00
Jim Meyering
7024c7d55c s/get-date.h/getdate.h/ 1998-03-14 16:31:51 +00:00
Jim Meyering
d84a21ea2d . 1998-03-14 16:30:52 +00:00
Jim Meyering
2f6fa9d160 . 1998-03-14 16:26:41 +00:00
Jim Meyering
4ac374c8e5 *** empty log message *** 1998-03-14 16:26:14 +00:00
Jim Meyering
17070ae7bf . 1998-03-14 16:25:42 +00:00
Jim Meyering
a1cc8f5961 *** empty log message *** 1998-03-14 15:56:46 +00:00
Jim Meyering
27caa20d7b *** empty log message *** 1998-03-14 15:32:55 +00:00
Jim Meyering
757555a4dc . 1998-03-14 15:31:41 +00:00
Jim Meyering
ada5e63612 . 1998-03-14 10:42:01 +00:00
Jim Meyering
a8d20df6b2 (TESTS): Add into-self. 1998-03-14 10:41:39 +00:00
Jim Meyering
4a28ea9bd6 *** empty log message *** 1998-03-14 10:41:26 +00:00
Jim Meyering
e4a1ead494 *** empty log message *** 1998-03-14 10:41:02 +00:00
Jim Meyering
ad1a2f76ce *** empty log message *** 1998-03-14 10:40:30 +00:00
Jim Meyering
a7a6111f81 . 1998-03-14 10:37:29 +00:00
Jim Meyering
7c579a0231 . 1998-03-13 23:39:48 +00:00
Jim Meyering
6630a24b7a (copy): Update prototype. 1998-03-13 23:39:39 +00:00
Jim Meyering
6429ffabbb *** empty log message *** 1998-03-13 23:39:10 +00:00
Jim Meyering
e558629ce1 (do_move): Add &copy_into_self arg in call to copy.
Don't remove source directory when copy_into_self is nonzero.
Reported by Arne Henrik Juul.
1998-03-13 23:38:50 +00:00
Jim Meyering
fefa8511b8 (do_copy): Add unused arg in calls to copy. 1998-03-13 23:38:27 +00:00
Jim Meyering
347db9ce77 (copy_dir): Add new parameter, copy_into_self, and set it.
(copy_internal): Likewise.
(copy): Likewise.
Update all callers.
1998-03-13 23:37:42 +00:00
Jim Meyering
92da57a7be Use `virtual memory exhausted' message, not
`Memory exhausted' to be consistent with the majority of other
such messages.
Say `removing all...', not `removing any...'.
1998-03-13 23:35:43 +00:00
Jim Meyering
4078ae8de8 (remove_parents): Be consistent with documentation of
--verbose option and with remove.c in saying `removing...' before
the operation is attempted.
(main): Likewise.
Suggestions from Santiago Vila.
1998-03-13 23:35:25 +00:00
Jim Meyering
3086193091 (usage): Tweak spacing 1998-03-13 15:32:28 +00:00
Jim Meyering
823425b310 *** empty log message *** 1998-03-13 15:27:10 +00:00
Jim Meyering
e03fc9bc82 protoize 1998-03-13 15:25:49 +00:00
Jim Meyering
64379c5cd8 (getugroups): Don't add a group number if it would be a duplicate.
From Ulrich Drepper.
1998-03-13 15:24:43 +00:00
Jim Meyering
d4825df6cf *** empty log message *** 1998-03-11 11:55:31 +00:00
Jim Meyering
cb3b5ed486 (save_stdin): Open temporary file exclusively, to
foil a common denial-of-service attack.
From Paul Eggert.
1998-03-11 11:54:11 +00:00
Jim Meyering
7ee8ed7e37 (xtmpfopen): Open temporary file exclusively, to
foil a common denial-of-service attack.
From Paul Eggert.
1998-03-11 11:53:29 +00:00
Jim Meyering
a991132f3e (getuidbyname) [__DJGPP__]: Make function know about
any arbitrary user name.
(getgidbyname) [__DJGPP__]: Make function know about any arbitrary
group name.
From Eli.
1998-03-10 22:55:20 +00:00
Jim Meyering
7f0867df00 (parse_user_spec) [__DJGPP__]: Make function know
about any arbitrary user and group by pretending to be the user
and to belong to the group specified in `spec_arg' argument.
1998-03-10 22:49:04 +00:00
Jim Meyering
6354d07ea0 . 1998-02-25 23:47:36 +00:00
Jim Meyering
3216105fbb . 1998-02-25 23:46:59 +00:00
Jim Meyering
8d5c4784b8 . 1998-02-25 23:46:13 +00:00
Jim Meyering
ec47f73107 . 1998-02-25 23:36:33 +00:00
Jim Meyering
94cd0c09f6 . 1998-02-25 23:35:53 +00:00
Jim Meyering
db3440d444 . 1998-02-25 22:40:24 +00:00
Jim Meyering
e8bec0725e *** empty log message *** 1998-02-25 22:39:46 +00:00
Jim Meyering
8598c54bb1 Use -include, not `include' for aclocal-files. 1998-02-25 22:39:29 +00:00
Jim Meyering
e457645eac Include new file quotearg.h.
(enum indicator_style): Rename all to classify, and not_programs
to file_type, to match option spellings.  All users changed.
(indicator_style_args): New constant.
(quote_funny_chars, quote_as_string, quote_shell): Remove;
(filename_quoting_options, dirname_quoting_options): Use these
variables instead.
(long_options): Add --indicator-style, --quoting-style,
--show-control-chars.  Remove --quote-shell.
(dired_dump_obstack): Remove style parameter and don't output style.
(main): Go back to previous method of outputting //DIRED//
and //SUBDIRED// lines, without style.  But add a new
//DIRED-OPTIONS// line that does output style.
(decode_switches, usage): Add --indicator-style, --quoting-style,
--show-control-chars.  Remove --quote-shell.
(decode_switches): Default from QUOTING_STYLE environment variable.
Set new quoting vars.
(quote_name): Renamed from quote_filename.
Take new arg specifying quoting options.
Always print; do not have a special case for null FILE * argument.
All callers changed.
Move the guts of this function to new file quotearg.c.
(length_of_file_name_and_frills): Use quotearg_buffer instead
of (old) quote_filename to find length of file name.
(decode_switches, parse_ls_color, print_dir, gobble_file,
get_link_name):	Quote output in diagnostics.
1998-02-25 22:38:12 +00:00
Jim Meyering
a14303dbc9 *** empty log message *** 1998-02-25 08:20:55 +00:00
Jim Meyering
84ad5c47c8 (TYPE_SIGNED): Define.
(TYPE_MAXIMUM): Define.
(ULONG_MAX): Use TYPE_MAXIMUM.
(LONG_MAX): Use TYPE_MAXIMUM.
1998-02-24 23:33:41 +00:00
Jim Meyering
998b3a148c (libfu_a_SOURCES): Add quotearg.c.
(noinst_HEADERS): Add quotearg.h.
1998-02-24 23:31:40 +00:00
Jim Meyering
71ee764f1e . 1998-02-24 23:31:11 +00:00
Jim Meyering
07a6f7a9e2 protoize 1998-02-24 23:19:33 +00:00
Jim Meyering
0f5ca22215 add comment 1998-02-24 23:19:13 +00:00
Jim Meyering
fc50286759 update from libit 1998-02-24 23:18:23 +00:00
Jim Meyering
0a1fd1d2ad protoize 1998-02-24 23:17:38 +00:00
Jim Meyering
7a04e95c62 capitalize macro params and protoize 1998-02-24 22:59:34 +00:00
Jim Meyering
938e7fe7ef add copyright 1998-02-24 22:58:26 +00:00
Jim Meyering
d8ab75cedc Update from libit. 1998-02-24 22:54:10 +00:00
Jim Meyering
650b182278 . 1998-02-23 10:16:53 +00:00
Jim Meyering
f31f7889fb *** empty log message *** 1998-02-22 12:36:32 +00:00
Jim Meyering
b1f2e5a7fd *** empty log message *** 1998-02-22 12:31:06 +00:00
Jim Meyering
34141257cf . 1998-02-22 12:30:47 +00:00
Jim Meyering
c96ef37ba9 *** empty log message *** 1998-02-22 09:20:33 +00:00
Jim Meyering
ccc65c4a81 *** empty log message *** 1998-02-22 09:20:17 +00:00
Jim Meyering
be5250f0ec *** empty log message *** 1998-02-22 09:19:36 +00:00
Jim Meyering
d1c1677873 . 1998-02-22 09:18:33 +00:00
Jim Meyering
6eae430477 Truncate to 1998 entries only. 1998-02-22 09:17:58 +00:00
Jim Meyering
82d361dc53 *** empty log message *** 1998-02-22 09:10:57 +00:00
Jim Meyering
6e05a13259 revert most of last delta, but leave cppi/copyright changes 1998-02-22 08:21:07 +00:00
Jim Meyering
a1413ad1cd *** empty log message *** 1998-02-22 08:19:19 +00:00
Jim Meyering
c9dd33ec3f *** empty log message *** 1998-02-22 08:18:51 +00:00
Jim Meyering
b9a394eec5 *** empty log message *** 1998-02-21 16:15:23 +00:00
Jim Meyering
f315b52ca9 . 1998-02-21 16:14:42 +00:00
Jim Meyering
26c02dd946 . 1998-02-21 16:14:15 +00:00
Jim Meyering
a03a97d7d8 *** empty log message *** 1998-02-21 16:14:05 +00:00
Jim Meyering
ead1152ef8 *** empty log message *** 1998-02-21 11:55:30 +00:00
Jim Meyering
2326be84d5 *** empty log message *** 1998-02-21 11:54:09 +00:00
Jim Meyering
7980fa3b78 *** empty log message *** 1998-02-21 11:53:27 +00:00
Jim Meyering
70a8ff09ed *** empty log message *** 1998-02-21 11:52:45 +00:00
Jim Meyering
38a63c863e . 1998-02-21 11:44:39 +00:00
Jim Meyering
a4fb33a110 . 1998-02-21 11:44:13 +00:00
Jim Meyering
bd9a38183c *** empty log message *** 1998-02-21 11:39:06 +00:00
Jim Meyering
45d85e3ba2 . 1998-02-21 11:38:47 +00:00
Jim Meyering
afa328c54e . 1998-02-21 11:33:09 +00:00
Jim Meyering
c66e967d70 . 1998-02-21 11:29:12 +00:00
Jim Meyering
ccaf565665 *** empty log message *** 1998-02-21 11:28:46 +00:00
Jim Meyering
b1a82ad6f2 . 1998-02-21 11:17:06 +00:00
Jim Meyering
c9a2ec01e5 *** empty log message *** 1998-02-21 11:15:43 +00:00
Jim Meyering
f7acc2f589 *** empty log message *** 1998-02-21 11:09:33 +00:00
Jim Meyering
5bf77e1015 . 1998-02-21 11:04:07 +00:00
Jim Meyering
3aa15eac61 *** empty log message *** 1998-02-20 21:51:48 +00:00
Jim Meyering
5799c6474d . 1998-02-20 21:50:49 +00:00
Jim Meyering
f8998dae41 Include get-date.h.
Remove get_date decl.
1998-02-20 21:50:30 +00:00
Jim Meyering
a7ba2688ca s/getdate.h/get-date.h/ 1998-02-20 21:47:10 +00:00
Jim Meyering
6810b30f39 (noinst_HEADERS): s/getdate.h/get-date.h/ 1998-02-20 21:42:29 +00:00
Jim Meyering
f8d66bde6a s/getdate.h/get-date.h/ 1998-02-20 21:42:11 +00:00
Jim Meyering
4675b67c10 . 1998-02-20 12:22:50 +00:00
Jim Meyering
ae3c7c2fb1 *** empty log message *** 1998-02-19 21:38:16 +00:00
Jim Meyering
a3ff199f12 *** empty log message *** 1998-02-19 21:37:45 +00:00
Jim Meyering
61ef81a837 (dirname): Include ctype.h.
[IN_CTYPE_DOMAIN]: Define.
[ISALPHA]: Define.
[MSDOS]: Add support for DOS-style file names with drive letters.
Based on a patch from Eli Zaretskii.
1998-02-19 21:31:06 +00:00
Jim Meyering
dcb8db3c82 [__DJGPP__]: Add missing typedef for daddr_t. 1998-02-19 21:28:38 +00:00
Jim Meyering
92b49f0da1 *** empty log message *** 1998-02-16 23:28:09 +00:00
Jim Meyering
f322649c58 (cp_option_init): Set copy_as_regular to 0, not 1.
Otherwise, mv tries to open special files.
Reported by Kjetil Torgrim Homme.
1998-02-16 23:27:50 +00:00
Jim Meyering
f49fee3e5f *** empty log message *** 1998-02-13 08:49:34 +00:00
Jim Meyering
6dbc8ff80b *** empty log message *** 1998-02-13 08:48:54 +00:00
Jim Meyering
65978b6328 Add my comment from ChangeLog entry for gkm's change. 1998-02-11 22:17:38 +00:00
Jim Meyering
5f8949c46c *** empty log message *** 1998-02-09 07:02:15 +00:00
Jim Meyering
b302e2becc *** empty log message *** 1998-02-09 07:01:02 +00:00
Jim Meyering
5921d6bc50 (cvs-dist): Update po/. 1998-02-09 07:00:34 +00:00
Jim Meyering
ec76108bb7 . 1998-02-08 22:17:10 +00:00
Jim Meyering
519365bb08 (usage): Reword to use TARGET' and LINK_NAME' in description. 1998-02-08 21:27:18 +00:00
Jim Meyering
c1fc9dbe64 . 1998-02-07 15:17:56 +00:00
Jim Meyering
06b4686f8a . 1998-02-07 15:17:31 +00:00
Jim Meyering
5a244d2598 *** empty log message *** 1998-02-07 10:19:22 +00:00
Jim Meyering
497a1e0c04 *** empty log message *** 1998-02-07 10:17:43 +00:00
Jim Meyering
32ee7fb170 *** empty log message *** 1998-02-07 10:14:29 +00:00
Jim Meyering
db7449461c . 1998-02-07 09:59:05 +00:00
Jim Meyering
9ed89c9d9c *** empty log message *** 1998-02-07 09:58:59 +00:00
Jim Meyering
6110857115 *** empty log message *** 1998-02-07 09:57:39 +00:00
Jim Meyering
36afcc383a *** empty log message *** 1998-02-07 09:54:05 +00:00
Jim Meyering
9e7ca26738 Don't set am_cv_func_working_getline before the
cache-check for the same variable -- that defeated the purpose of
the test; the test program was never run.  This was a problem only
on systems with losing getline functions -- HP-UX 10.20 is one.
Reported by Bjorn Helgaas.
1998-02-07 09:50:58 +00:00
Jim Meyering
de38f9c61f . 1998-02-07 08:13:44 +00:00
Jim Meyering
aa14b2d994 . 1998-02-07 08:13:08 +00:00
Jim Meyering
a6a3dee962 *** empty log message *** 1998-02-06 20:48:10 +00:00
Jim Meyering
0324f8d422 . 1998-02-06 20:47:23 +00:00
Jim Meyering
5a9c4223f6 . 1998-02-06 20:45:51 +00:00
Jim Meyering
eeeb6c7b23 . 1998-02-06 12:37:16 +00:00
Jim Meyering
206e3f08de *** empty log message *** 1998-02-06 12:37:07 +00:00
Jim Meyering
61a80b3a12 (EXTRA_DIST): Add perl.m4. 1998-02-06 12:36:59 +00:00
Jim Meyering
4da3feb0e9 . 1998-02-06 12:36:04 +00:00
Jim Meyering
a3d39ceb13 *** empty log message *** 1998-02-06 10:42:55 +00:00
Jim Meyering
b252cc8d6d . 1998-02-06 10:32:31 +00:00
Jim Meyering
afac7f3a78 . 1998-02-04 20:28:08 +00:00
Jim Meyering
fae6846955 *** empty log message *** 1998-02-04 20:19:14 +00:00
Jim Meyering
f79e8bdcaf . 1998-02-04 20:18:09 +00:00
Jim Meyering
ebfdc834f2 . 1998-02-04 18:15:05 +00:00
Jim Meyering
6e5ac55673 . 1998-02-04 18:06:31 +00:00
Jim Meyering
43d2406f55 . 1998-02-04 18:04:39 +00:00
Jim Meyering
29772527c8 . 1998-02-04 18:01:23 +00:00
Jim Meyering
4e72061130 . 1998-02-04 18:00:57 +00:00
Jim Meyering
470cfd9491 . 1998-02-04 12:41:35 +00:00
Jim Meyering
ff9a9a2bdf . 1998-02-03 08:56:02 +00:00
Jim Meyering
a3db75c4b3 add comments on #endif's 1998-02-03 08:28:43 +00:00
Jim Meyering
46fb234f5f (xgetgroups): Guard function defn with #if HAVE_GETGROUPS. 1998-02-03 08:27:48 +00:00
Jim Meyering
1e985af9d7 . 1998-02-03 07:38:23 +00:00
Jim Meyering
8ef38f80ec (sys/types.h): Include to get size_t on some systems.
(NULL): Define if needed.
1998-02-03 07:23:13 +00:00
Jim Meyering
047f0c2125 *** empty log message *** 1998-02-01 09:58:33 +00:00
Jim Meyering
a10c7fcd7c *** empty log message *** 1998-02-01 09:56:46 +00:00
Jim Meyering
54a0879129 *** empty log message *** 1998-01-31 07:28:56 +00:00
Jim Meyering
494d8173bd *** empty log message *** 1998-01-28 08:14:56 +00:00
Jim Meyering
e8b739e317 (print_header): Change format to align heading over
last column of `df -i' output.  From Andreas Schwab.
1998-01-28 08:09:56 +00:00
Jim Meyering
ef4765e11b . 1998-01-25 21:21:47 +00:00
Jim Meyering
ca9451a39d . 1998-01-25 21:20:53 +00:00
Jim Meyering
1349c30df2 Use $(VERSION) etc. Not @VERSION@. 1998-01-25 21:07:30 +00:00
Jim Meyering
8659ec88d4 . 1998-01-25 20:50:57 +00:00
Jim Meyering
e27d21668c (parse_obsolescent_option): -l is an obsolescent option. 1998-01-25 14:07:46 +00:00
Jim Meyering
902598d05d . 1998-01-25 12:20:58 +00:00
Jim Meyering
fc026cd548 . 1998-01-25 12:19:05 +00:00
Jim Meyering
7d4a70eaff *** empty log message *** 1998-01-25 10:51:55 +00:00
Jim Meyering
186958482f *** empty log message *** 1998-01-25 10:51:21 +00:00
Jim Meyering
da80ee04d2 . 1998-01-25 09:49:00 +00:00
Jim Meyering
dd3a865a8e . 1998-01-25 09:47:51 +00:00
Jim Meyering
aaf66a2413 *** empty log message *** 1998-01-25 09:29:46 +00:00
Jim Meyering
0eba2a8dd7 (DO_CHOWN): Don't fail for non-root when chown fails due
not only to lack of permission (EPERM), but also to lack of support
(EINVAL).  Reported by Bengt Martensson.
1998-01-25 09:28:48 +00:00
Jim Meyering
7c04ce1f09 (re_protect): Don't fail for non-root when chown fails due
not only to lack of permission (EPERM), but also to lack of support
(EINVAL).  Reported by Bengt Martensson.
1998-01-25 09:27:57 +00:00
Jim Meyering
7b4833b03c *** empty log message *** 1998-01-25 09:23:26 +00:00
Jim Meyering
3a62f8785f (cat): Convert comma-expressions to pairs of
semicolon-terminated stmts.
Add braces around compound if/else stmts.
1998-01-25 08:25:05 +00:00
Jim Meyering
85923cb2bc add missing `)' 1998-01-24 23:34:46 +00:00
Jim Meyering
bc05ba3d5a *** empty log message *** 1998-01-24 23:33:18 +00:00
Jim Meyering
ea2969da49 (parse_obsolescent_option): Do not interpret `-f -n 1 ...'
as obsolescent options.
Accept new option: --sleep-interval=SECONDS (-s).
(parse_options): Recognize it.
(usage): Describe it.
(tail_forever): Use it.
(dump_remainder): Use it.
1998-01-24 23:33:02 +00:00
Jim Meyering
0966b97bd1 (f-1): Add test for option-processing of `-f -n 1'. 1998-01-24 23:32:43 +00:00
Jim Meyering
8c3fb79a89 . 1998-01-24 16:48:52 +00:00
Jim Meyering
fc68d2786b *** empty log message *** 1998-01-24 16:27:26 +00:00
Jim Meyering
0d26afa6e0 *** empty log message *** 1998-01-24 16:22:11 +00:00
Jim Meyering
bb964b3eec (test_failure): Note that the SunOS4.1.4 failure
of the ctime test is expected.
Rename does not update ctime; link does -- so use ln, not mv.
1998-01-24 16:21:48 +00:00
Jim Meyering
638776e577 *** empty log message *** 1998-01-24 15:13:58 +00:00
Jim Meyering
0881032a16 *** empty log message *** 1998-01-24 14:50:28 +00:00
Jim Meyering
c58c644f8f *** empty log message *** 1998-01-24 14:50:16 +00:00
Jim Meyering
6e602a0232 *** empty log message *** 1998-01-24 14:49:30 +00:00
Jim Meyering
097d40b3d3 *** empty log message *** 1998-01-24 09:55:10 +00:00
Jim Meyering
57258b3446 . 1998-01-24 08:46:29 +00:00
Jim Meyering
39508b8db3 *** empty log message *** 1998-01-24 08:46:21 +00:00
Jim Meyering
cd4c2d0fdc (TYPE_MINIMUM): Add extra outer cast to work around
bug in Cray C 5.0.3.0 when T == time_t.
1998-01-24 08:45:55 +00:00
Jim Meyering
8a0550a816 Adjust expected output for changed format of `rm --verbose'. 1998-01-24 08:43:46 +00:00
Jim Meyering
663d8b143c *** empty log message *** 1998-01-23 22:09:18 +00:00
Jim Meyering
2a1a1843b7 (__mktime_internal): Work around bug in Irix4.0.5's
C compiler.  From Kaveh Ghazi.
(TYPE_MINIMUM): Define.
(TYPE_MAXIMUM): Define.
(TIME_T_MIN): Use TYPE_MINIMUM.
(TIME_T_MAX): Use TYPE_MAXIMUM.
1998-01-23 22:02:54 +00:00
Jim Meyering
9c70563ee7 add curlies 1998-01-23 18:34:12 +00:00
Jim Meyering
37ce5a5497 . 1998-01-22 23:29:35 +00:00
Jim Meyering
37a3052a36 *** empty log message *** 1998-01-22 09:03:08 +00:00
Jim Meyering
2a4842f7f3 (quit): Declare to be inline to stifle compile warning. 1998-01-22 08:58:12 +00:00
Jim Meyering
d82fadf365 Reorder functions to obviate forward dcls. 1998-01-22 08:55:13 +00:00
Jim Meyering
ef63ce007d (do_copy): Add unreachable `return 0' to stifle warning. 1998-01-22 08:36:27 +00:00
Jim Meyering
6a8e657775 . 1998-01-22 08:33:34 +00:00
Jim Meyering
309819620b (TESTS_ENVIRONMENT): Add TOUCH. 1998-01-22 08:33:26 +00:00
Jim Meyering
f7bb262cc8 minor tweaks 1998-01-22 08:33:02 +00:00
Jim Meyering
d5494d57f5 Don't use -f. Do adjust $RM if it's a relative path. 1998-01-22 08:32:22 +00:00
Jim Meyering
14a2593daf Use GNU touch to work around problems with NFS caching and/or clock skew. 1998-01-22 08:27:16 +00:00
Jim Meyering
9cdd2e05e6 (copy_internal): Use x->backup_type, not the global.
(valid_options): Use VALID_BACKUP_TYPE and VALID_SPARSE_MODE.
1998-01-22 08:22:00 +00:00
Jim Meyering
6cce6a1b7f [NDEBUG]: Comment out definition.
(do_copy): Use x->backup_type, not the global.
1998-01-22 08:19:17 +00:00
Jim Meyering
d9f0ca41bd (rm_option_init): New function.
(cp_option_init): New function.
(copy_reg): Remove now-unused function.
(do_move): Set up for and use `copy.c (copy)' in place of copy_reg.
Set up for and use `remove.c (rm)' in place of unlink.
1998-01-22 08:16:09 +00:00
Jim Meyering
df7cef21c7 Remove and minimally librarify guts for use in mv.c.
(main): Pass options (`&x') to rm.
Call remove_init and remove_fini instead of open-coding them.
1998-01-22 08:14:52 +00:00
Jim Meyering
9f2d1beded *** empty log message *** 1998-01-22 08:14:17 +00:00
Jim Meyering
ff59218d54 New file. Contains guts of old rm.c.
(remove_init): New function.
(remove_fini): New function.
1998-01-22 08:13:57 +00:00
Jim Meyering
1a18272561 Declare new global, backup_type.
(main): Initialize backup_type unconditionally.
(do_link): Call find_backup_file_name with new argument, backup_type.
1998-01-22 08:13:12 +00:00
Jim Meyering
2bdf8621d6 Declare new global, backup_type.
(main): Initialize backup_type unconditionally.
(copy_file): Call find_backup_file_name with new backup_type, argument.
1998-01-22 08:12:24 +00:00
Jim Meyering
758ab7a013 *** empty log message *** 1998-01-21 16:37:09 +00:00
Jim Meyering
734d1cccc3 (VALID_SPARSE_MODE): Define.
[struct cp_options] (backup_type): New member.
1998-01-21 16:16:00 +00:00
Jim Meyering
13de1036ac . 1998-01-21 15:59:28 +00:00
Jim Meyering
2167febcb1 Fix copyright 1998-01-21 15:57:48 +00:00
Jim Meyering
2c11b736aa Use ANSI function definitions.
Remove global declaration of backup_type.
(simple_backup_suffix): Default to `~', not `.orig'.
Use PARAMS, not __BACKUPFILE_P.
(find_backup_file_name): Add parameter, backup_type.
1998-01-21 15:57:18 +00:00
Jim Meyering
a52e0efbe2 Remove extern declaration of backup_type.
Use PARAMS, not __BACKUPFILE_P.
(VALID_BACKUP_TYPE): Define.
(find_backup_file_name): Adjust prototype.
1998-01-21 15:55:12 +00:00
Jim Meyering
4935348b67 Use ANSI function definitions. 1998-01-20 11:34:38 +00:00
Jim Meyering
e6a0306b1b [enum backup_type]: Set `none' to 1. 1998-01-20 11:34:04 +00:00
Jim Meyering
2bec121abb add `,' in comment 1998-01-19 09:29:27 +00:00
Jim Meyering
412043f1d8 . 1998-01-18 11:52:44 +00:00
Jim Meyering
4ffa362cc4 *** empty log message *** 1998-01-18 11:52:38 +00:00
Jim Meyering
35592ba64c (strncoll, strncoll_s2_readonly, look_for_fraction, numcompare):
Remove the `unsigned' from some `unsigned char*' parameter types.
Add casts via UCHAR where necessary to avoid problems with unwanted
sign extension.  Based on a patch from Kaveh Ghazi to appease Irix4's
cc compiler.
e.g.,
 > cc -DLOCALEDIR=\"/caip/u3/ghazi/foobar/share/locale\" -DHAVE_CONFIG_H
 >      -I.. -I../../src -I../../lib -I../intl -c ../../src/sort.c
 > accom: Error: ../../src/sort.c, line 500: prototype parameter 1 type
 >      must have all of the actual arguments qualifiers (except the
 >      outermost) and pointed-to types must be compatible (ANSI
 >      3.3.2.2,3.3.16.1)
 >              diff = strcoll (s1, s2);
 >        ----------------------------^
 > accom: Error: ../../src/sort.c, line 500: Argument 1 Type Doesn't
 >      Match prototype description; prototype: pointer to const char is
 >      different from actual: pointer to unsigned char
 >              diff = strcoll (s1, s2);
 >        ----------------------------^
 > accom: Error: ../../src/sort.c, line 500: prototype parameter 2 type
 >      must have all of the actual arguments qualifiers (except the
 >      outermost) and pointed-to types must be compatible (ANSI
 >      3.3.2.2,3.3.16.1)
 >              diff = strcoll (s1, s2);
 >        ----------------------------^
 > accom: Error: ../../src/sort.c, line 500: Argument 2 Type Doesn't
 >      Match prototype description; prototype: pointer to const char is
 >      different from actual: pointer to unsigned char
 >              diff = strcoll (s1, s2);
 >        ----------------------------^
1998-01-18 11:51:08 +00:00
Jim Meyering
c1618a8c4c (next_file_name): Rewrite. This removes an artificial limit (albeit
already high, at INT_MAX :-) on the number of files split could create.
Reported by Ralf W. Stephan.
1998-01-18 11:18:08 +00:00
Jim Meyering
96be8bca99 Guard inclusion of langinfo.h also with HAVE_LANGINFO_H,
for Irix-4.0.5.  From Kaveh Ghazi.
1998-01-16 23:29:24 +00:00
Jim Meyering
b8a16a3f2a (mergefps): Add braces to avoid ambiguous `else' statement.
(nls_set_fraction): Likewise.
1998-01-16 23:23:04 +00:00
Jim Meyering
f1217e4976 . 1998-01-16 11:18:05 +00:00
Jim Meyering
62279c6e2d . 1998-01-16 11:17:02 +00:00
Jim Meyering
71545a6276 Make PARAMS-defining conditionals consistent. 1998-01-16 08:52:30 +00:00
Jim Meyering
53cfcbd19c Make PARAMS-defining conditionals consistent. 1998-01-16 08:51:39 +00:00
Jim Meyering
5618133eed (fail-0): Disable test. It depends on
sizeof(long) being 32 bits.  Reported by Kaveh Ghazi.
1998-01-16 08:04:19 +00:00
Jim Meyering
ade1f58e11 (print_header): Fix inode format header to line it up
with the rest of the output.
1998-01-14 08:52:56 +00:00
Jim Meyering
74cf3e8bab Set errno to ENOENT, not EINVAL. This is consistent
with most other implementations.
1998-01-13 10:08:11 +00:00
Jim Meyering
ca50e875af *** empty log message *** 1998-01-13 09:53:15 +00:00
Jim Meyering
a75ea1014e *** empty log message *** 1998-01-12 09:00:10 +00:00
Jim Meyering
98af2e9636 *** empty log message *** 1998-01-12 08:55:42 +00:00
Jim Meyering
68e5877403 *** empty log message *** 1998-01-12 08:55:01 +00:00
Jim Meyering
2b906615c2 *** empty log message *** 1998-01-12 08:53:18 +00:00
Jim Meyering
443f852f61 Include sys/param.h only #if HAVE_SYS_PARAM_H.
Move function-spanning `#if ...BSIZE' stmt to follow inclusion of
sys/param.h since BSIZE is sometimes defined in sys/param.h.
Based on a patch from Philippe De Muyter.
1998-01-12 08:13:39 +00:00
Jim Meyering
d1f4e617b5 *** empty log message *** 1998-01-11 09:24:17 +00:00
Jim Meyering
1aa070dd2e . 1998-01-11 09:14:29 +00:00
Jim Meyering
007e81132a . 1998-01-11 09:14:02 +00:00
Jim Meyering
6bcfff640e *** empty log message *** 1998-01-11 09:12:30 +00:00
Jim Meyering
aa2880362c . 1998-01-11 08:02:39 +00:00
Jim Meyering
88bd90109b *** empty log message *** 1998-01-10 22:13:49 +00:00
Jim Meyering
dba300a0d0 CHAR_BIT SCHAR_MAX UCHAR_MAX SHRT_MAX INT_MAX UINT_MAX LONG_MAX ULONG_MAX
Remove definitions of those symbols.
* src/csplit.c: Move inclusion of regex.h/rx.h to follow system.h
since it now includes limit.h which defines RE_DUP_MAX.
* src/nl.c: Likewise.
* src/tac.c: Likewise.
1998-01-10 22:12:03 +00:00
Jim Meyering
b9ed71e46e . 1998-01-10 20:53:56 +00:00
Jim Meyering
7bba3e945f initialize fail to 0 1998-01-10 16:25:46 +00:00
Jim Meyering
1bdfcabd2c . 1998-01-10 16:24:46 +00:00
Jim Meyering
c88a4c91da (EXTRA_DIST): Add const.m4. 1998-01-10 16:24:26 +00:00
Jim Meyering
136f2fd28c . 1998-01-10 15:57:57 +00:00
Jim Meyering
82739833a1 *** empty log message *** 1998-01-10 15:09:46 +00:00
Jim Meyering
1c5c2597b5 *** empty log message *** 1998-01-10 15:08:00 +00:00
Jim Meyering
eacbf12ea4 *** empty log message *** 1998-01-10 15:04:32 +00:00
Jim Meyering
0ccdf3419d (usage): Describe -D. 1998-01-10 15:03:58 +00:00
Jim Meyering
cec85a4b3a . 1998-01-10 14:25:27 +00:00
Jim Meyering
a077a7833c *** empty log message *** 1998-01-10 14:23:08 +00:00
Jim Meyering
a3094b0529 (batch_convert): Use memcpy when we don't need return value. 1998-01-10 14:21:35 +00:00
Jim Meyering
d73dd15544 . 1998-01-10 13:36:47 +00:00
Jim Meyering
27c1ad9576 *** empty log message *** 1998-01-10 13:36:09 +00:00
Jim Meyering
2eefbf7647 (usage): Correct descriptions of --sort, --time, and -t.
Suggestions from Andreas Schwab.
1998-01-10 12:53:09 +00:00
Jim Meyering
79d39ab7bf (decode_switches) [-u]: Fix bug whereby -u had no effect
without -l or -t.  Now, -u (like -c) implies --sort=time.
Suggestion from Andreas Schwab.
1998-01-10 12:07:50 +00:00
Jim Meyering
12782f54b0 *** empty log message *** 1998-01-10 11:56:26 +00:00
Jim Meyering
fff6de7b04 *** empty log message *** 1998-01-10 11:54:39 +00:00
Jim Meyering
cc76db2016 use sh-script test, not Test.pm framework 1998-01-10 11:27:24 +00:00
Jim Meyering
77c94909cf *** empty log message *** 1998-01-10 11:24:51 +00:00
Jim Meyering
3b8d19272d . 1998-01-10 11:00:46 +00:00
Jim Meyering
6099914170 *** empty log message *** 1998-01-10 10:36:41 +00:00
Jim Meyering
09d96ac539 (make_path): Reformat 3 if-stmts to test `if (newly_created_dir)' only once.
Suggestion from Andreas Schwab.
1998-01-10 10:28:37 +00:00
Jim Meyering
3edbca0e04 (make_path): Put only newly created directories on the LEADING_DIRS list. 1998-01-10 10:22:30 +00:00
Jim Meyering
c062a35803 *** empty log message *** 1998-01-08 23:17:20 +00:00
Jim Meyering
3da029a5d9 *** empty log message *** 1998-01-08 23:16:14 +00:00
Jim Meyering
de1dabf7d7 *** empty log message *** 1998-01-08 22:58:18 +00:00
Jim Meyering
03283b5000 (tac_stream): Don't perform arithmetic on now-void pointer
result of xrealloc (until recently it was char*).
1998-01-08 22:58:03 +00:00
Jim Meyering
9f5dc7e7d0 (inittables): Add && HAVE_NL_LANGINFO to the #if-test
guarding the nls month-checking code.
(nls_numeric_format): Remove unnecessary (and error-evoking w/SunOS' cc)
`unsigned' from dcls of text and lim.
(main): Cast lconvp->grouping to `unsigned char*' to appease SunOS's cc.
1998-01-08 22:56:45 +00:00
Jim Meyering
ab9cd27938 *** empty log message *** 1998-01-07 07:45:46 +00:00
Jim Meyering
c767a49741 *** empty log message *** 1998-01-06 23:53:50 +00:00
Jim Meyering
0fdd1b9130 Add %expect directive.
Move inclusion of getdate.h and dependent extern declarations down
so getdate.h's prototype follows the sometimes-enabled definition
of `const' to nothing.  Otherwise, the prototype wouldn't match
the definition because of the defined-away `const'.
(get_date): ANSI-fy definition.
From Kaveh Ghazi.
1998-01-06 23:53:33 +00:00
Jim Meyering
f19ca6fe29 *** empty log message *** 1998-01-05 17:43:31 +00:00
Jim Meyering
6cc3cf776c (df_readable): New function.
(show_dev): If a value consists entirely of 1 bits, or is derived
from some other value that consists entirely of 1 bits, report "-".
Check inode and block counts more carefully for plausibility,
to avoid arithmetic overflow when computing percentages.
1998-01-05 17:43:00 +00:00
Jim Meyering
e162abfc5b (get_fs_usage): Add parens. 1998-01-05 17:38:38 +00:00
Jim Meyering
866773c72a (PROPAGATE_ALL_ONES): New macro.
(get_fs_usage): If a value consists entirely of 1 bits,
propagate this info to the output by setting it to (uintmax_t) -1.
1998-01-05 17:33:54 +00:00
Jim Meyering
06bab849fc reindent a little 1998-01-05 10:11:08 +00:00
Jim Meyering
ed0becde29 reformat comment, dcl fail, dirname 1998-01-05 10:09:24 +00:00
Jim Meyering
8d64a37a77 remove SPECIAL_BITS #ifdefs 1998-01-05 10:06:41 +00:00
Jim Meyering
0520188821 Add support for marty's -D option 1998-01-05 10:06:07 +00:00
Jim Meyering
05d9a7233b *** empty log message *** 1998-01-04 23:28:28 +00:00
Jim Meyering
f664e44a2f *** empty log message *** 1998-01-04 23:27:12 +00:00
Jim Meyering
5705eaaee2 . 1998-01-04 22:54:19 +00:00
Jim Meyering
0e69432852 . 1998-01-04 22:46:40 +00:00
Jim Meyering
2d69426882 copyright 1998-01-04 22:46:23 +00:00
Jim Meyering
5d4f8ebdfd (main, usage): Check for write error to stdout before exiting.
Include "closeout.h".
1998-01-04 22:45:28 +00:00
Jim Meyering
b246280c27 (parse_long_options): Check for write error to stdout before exiting. 1998-01-04 22:43:44 +00:00
Jim Meyering
60e021ee4e (libfu_a_SOURCES): Add closeout.c.
(noinst_HEADERS): Add closeout.h.
1998-01-04 22:42:38 +00:00
Jim Meyering
63c0f480ad Use a single enumerated type, Verbosity, instead of
the two booleans, verbose and changes_only.  This fixes a bug whereby
--change had the same effect as --verbose.
Plus Paul's close_stdout changes.
1998-01-04 22:41:02 +00:00
Jim Meyering
e375f4e9c8 Use a single enumerated type, Verbosity, instead of
the two booleans, verbose and changes_only.  This fixes a bug whereby
--change had the same effect as --verbose.
1998-01-04 22:40:27 +00:00
Jim Meyering
109b9c5f94 . 1998-01-04 21:48:30 +00:00
Jim Meyering
126c1a40e5 . 1998-01-04 21:47:31 +00:00
Jim Meyering
2440fd8bac . 1998-01-03 22:53:52 +00:00
Jim Meyering
98b9c4bed7 . 1998-01-03 22:16:23 +00:00
Jim Meyering
40f708f534 . 1998-01-03 22:14:58 +00:00
Jim Meyering
ebc5dc0b0c *** empty log message *** 1998-01-03 22:13:53 +00:00
Jim Meyering
e0ed4e6a77 *** empty log message *** 1998-01-03 18:10:47 +00:00
Jim Meyering
c24393e0fd *** empty log message *** 1998-01-03 18:09:23 +00:00
Jim Meyering
e15db4ca81 *** empty log message *** 1998-01-03 16:47:35 +00:00
Jim Meyering
1059e96721 (show_dev): Treat `fsu.fsu_bavail == (unsigned long) -1'
just like `fsu.fsu_blocks == 0' as an indicator that usage information
is invalid.  This happens with Solaris-5.5.1 CD-ROM partitions.
1998-01-03 16:47:21 +00:00
Jim Meyering
234ea05171 *** empty log message *** 1998-01-03 14:40:33 +00:00
Jim Meyering
0fa007e352 *** empty log message *** 1998-01-03 12:03:01 +00:00
Jim Meyering
9e6b379dbf *** empty log message *** 1998-01-03 11:58:49 +00:00
Jim Meyering
d46bab3a59 Guard PARAMS-enabling definition with
`defined PROTOTYPES || (defined __STDC__ && __STDC__)' to be consistent.
1998-01-03 11:56:58 +00:00
Jim Meyering
541699c01c Guard PARAMS-enabling definition with
`defined PROTOTYPES || (defined __STDC__ && __STDC__)' to avoid
problems with Irix4's cc.  From Kaveh Ghazi.
1998-01-03 11:56:09 +00:00
Jim Meyering
23a8ea7992 *** empty log message *** 1998-01-02 23:18:08 +00:00
Jim Meyering
6b4321fd1b *** empty log message *** 1998-01-02 23:16:53 +00:00
Jim Meyering
2fb86e2eb8 (get_ids): When otherwise unspecified, set uid and gid to -1. 1998-01-02 23:16:38 +00:00
Jim Meyering
53bc7b04cb (make_path): Try to change ownership only if we've just created the
directory.  Fix latent bug (s/&&/||/ in two places -- also, note that
it could not be exercised via install or mkdir) whereby chown would
not be invoked when only one of owner/group is not -1.
1998-01-02 23:15:39 +00:00
Jim Meyering
43c2a5f62b *** empty log message *** 1998-01-01 21:33:29 +00:00
Jim Meyering
b3d19ee824 (remove_cwd_entries): Initialize the entry-name obstack
only once and never free it.
1998-01-01 21:32:46 +00:00
Jim Meyering
2c2fa642c4 (show_dev): Move check for 0-block device (and return if
not e.g., -a) back up to precede first print stmt.
1998-01-01 21:30:00 +00:00
Jim Meyering
cb5e8a14c2 *** empty log message *** 1998-01-01 19:45:43 +00:00
Jim Meyering
48221eb8bd *** empty log message *** 1998-01-01 19:44:02 +00:00
Jim Meyering
3e6934d53e *** empty log message *** 1998-01-01 19:41:47 +00:00
Jim Meyering
741e2bd94b *** empty log message *** 1998-01-01 19:36:19 +00:00
Jim Meyering
0327bae400 *** empty log message *** 1997-12-31 21:36:14 +00:00
Jim Meyering
e3d35f6789 (show_dev): Print inode counts human readably. 1997-12-31 21:34:07 +00:00
Jim Meyering
b76a453304 (decode_switches): -h and -H override output units.
(print_dir, gobble_file, print_long_format,
print_file_name_and_frills): Print disk allocations human readably.
1997-12-31 21:33:51 +00:00
Jim Meyering
069e564d89 . 1997-12-31 14:28:44 +00:00
Jim Meyering
cadfe29978 *** empty log message *** 1997-12-31 14:04:54 +00:00
Jim Meyering
da111683d5 (show_dev): Move computation of
blocks_used etc. and blocks_percent_used,
inodes_used etc. and inodes_percent_used into respective branches
of the `if (inode_format)' statement where they're actually used.
1997-12-31 14:04:20 +00:00
Jim Meyering
57da248b85 *** empty log message *** 1997-12-31 11:01:48 +00:00
Jim Meyering
b66148ba39 Define and use PARAMS, not __EXCLUDE_P. 1997-12-31 11:01:35 +00:00
Jim Meyering
86d2f9eaa8 Use PARAMS, not __EXCLUDE_P. 1997-12-31 11:01:18 +00:00
Jim Meyering
25e06fece0 (usage): s/TAB/ /g 1997-12-29 22:09:28 +00:00
Jim Meyering
d1de57abbc *** empty log message *** 1997-12-29 21:29:51 +00:00
Jim Meyering
5cc8090de2 (remove_cwd_entries): Plug a gross leak -- don't call
obstack_init inside the loop.
1997-12-29 21:04:26 +00:00
Jim Meyering
e2ed51f99e *** empty log message *** 1997-12-29 12:06:02 +00:00
Jim Meyering
134ed86e33 (usage): Replace TABs with spaces in --help message. 1997-12-29 12:05:36 +00:00
Jim Meyering
f7d4fc0e38 (invalid_arg): Use a single fprintf and whole
format statements to ease translation.
Convert from K&R to ANSI function dcls.
1997-12-29 12:02:43 +00:00
Jim Meyering
3531b69552 . 1997-12-28 21:49:54 +00:00
Jim Meyering
ce9923ab87 Use ANSI syntax, not K&R. 1997-12-28 10:41:01 +00:00
Jim Meyering
6d02c37081 *** empty log message *** 1997-12-28 10:38:30 +00:00
Jim Meyering
b2e7f8b0af (make_path) [!__STDC__]: Remove K&R-style definition. 1997-12-28 10:38:15 +00:00
Jim Meyering
08c3f260a1 define PARAMS 1997-12-28 09:48:26 +00:00
Jim Meyering
cde7e42dde Add PARAMS. 1997-12-28 08:04:08 +00:00
Jim Meyering
4656a7e55b Remove incorrect declaration of group_member.
Include group-member.h instead.
Based on suggestion from Ulrich Drepper.
1997-12-28 08:03:54 +00:00
Jim Meyering
3513f31730 *** empty log message *** 1997-12-27 23:55:40 +00:00
Jim Meyering
1bcedd2345 *** empty log message *** 1997-12-27 23:55:18 +00:00
Jim Meyering
456d579624 . 1997-12-25 23:06:12 +00:00
Jim Meyering
c02b9b75c6 new version from kb 1997-12-25 18:00:21 +00:00
Jim Meyering
012a6455ea . 1997-12-25 17:51:15 +00:00
Jim Meyering
bb48c492c6 (_GNU_SOURCE): Define only if not already defined. 1997-12-25 17:44:08 +00:00
Jim Meyering
1a952f8145 . 1997-12-25 17:43:21 +00:00
Jim Meyering
2bb1686d0c . 1997-12-25 17:05:45 +00:00
Jim Meyering
1f1ea6519b (get_ids): Don't cast GID_T_MAX to long, it might overflow. 1997-12-25 17:05:23 +00:00
Jim Meyering
f10648f6c7 (skip): Compare lseek return value with -1 to allow it
to be negative as signed value.
1997-12-25 17:04:15 +00:00
Jim Meyering
d9f1fd86d9 Declare stpcpy only if not defined as macro. 1997-12-25 17:02:25 +00:00
Jim Meyering
ea0f644cdd (S_ISLNK): Define this instead of S_ISDIR. 1997-12-25 17:01:35 +00:00
Jim Meyering
4f71c21910 Declare stpcpy only if not defined as macro. 1997-12-25 17:01:13 +00:00
Jim Meyering
9897ca0150 Declare stpcpy only if not defined as macro. 1997-12-25 16:49:08 +00:00
Jim Meyering
1a8e1f7bfd Include <string.h> if available. 1997-12-25 16:48:51 +00:00
Jim Meyering
c9f538deb9 (copy_internal): Use S_ISLNK only if defined. 1997-12-25 16:48:29 +00:00
Jim Meyering
88df9ef6f6 . 1997-12-24 13:16:54 +00:00
Jim Meyering
46e9b477a9 *** empty log message *** 1997-12-21 22:48:24 +00:00
Jim Meyering
82e77237a6 . 1997-12-21 22:48:08 +00:00
Jim Meyering
f54368ec1b s/__P/PARAMS/ 1997-12-21 22:39:53 +00:00
Jim Meyering
44dddb31c0 *** empty log message *** 1997-12-21 22:32:44 +00:00
Jim Meyering
2e308957d4 s/__P/PARAMS/ 1997-12-21 22:30:30 +00:00
Jim Meyering
2391251527 Don't include limits.h. 1997-12-21 22:22:04 +00:00
Jim Meyering
3858d01133 Don't include limits.h. 1997-12-21 22:21:26 +00:00
Jim Meyering
62fed0f3a2 Don't include limits.h or sys/param.h. 1997-12-21 22:21:10 +00:00
Jim Meyering
37998fc5bd Don't include limits.h.
These are all done in system.h now.
1997-12-21 22:20:17 +00:00
Jim Meyering
6123a88852 Don't include limits.h.
(UINT_MAX): Don't define.
(INT_MAX): Don't define.
These are all done in system.h now.
1997-12-21 22:20:01 +00:00
Jim Meyering
3d0e13a00d . 1997-12-21 12:29:32 +00:00
Jim Meyering
2f606bcf56 *** empty log message *** 1997-12-21 12:18:05 +00:00
Jim Meyering
1ed365fb82 Use PARAMS, not __P. 1997-12-21 12:17:26 +00:00
Jim Meyering
2b2fb0cf91 *** empty log message *** 1997-12-21 12:11:32 +00:00
Jim Meyering
76d9ec0ad0 increment serial number 1997-12-21 12:11:17 +00:00
Jim Meyering
32068e5812 increment serial number 1997-12-21 12:10:55 +00:00
Jim Meyering
90d217b19a increment serial number 1997-12-21 12:10:26 +00:00
Jim Meyering
726c48d02f Fix reversed types on -1 args to chown.
From Kaveh Ghazi.
1997-12-21 12:10:07 +00:00
Jim Meyering
1af374e6a4 . 1997-12-21 12:06:03 +00:00
Jim Meyering
9ef99e168b *** empty log message *** 1997-12-21 12:05:56 +00:00
Jim Meyering
bdcaa361bc Include exclude.h.
(exclude): New static var.
(long_options, usage, main): Add --exclude and --exclude-from or -X.
(count_entry): Skip excluded entries.
1997-12-21 12:05:42 +00:00
Jim Meyering
a1003f154f remove FIXME-describe comments 1997-12-21 11:57:17 +00:00
Jim Meyering
3ba71d6de1 add FIXME-describe comments 1997-12-21 11:56:34 +00:00
Jim Meyering
ac5fc8ea73 Include exclude.h.
(exclude): New static var.
(long_options, usage, main): Add --exclude and --exclude-from or -X.
(count_entry): Skip excluded entries.
1997-12-21 11:47:27 +00:00
Jim Meyering
a3e0b4392c (libfu_a_SOURCES): Add exclude.c.
(noinst_HEADERS): Add exclude.h.
1997-12-21 11:46:49 +00:00
Jim Meyering
cbd71d8eea . 1997-12-21 11:43:34 +00:00
Jim Meyering
a2c7ebd49c . 1997-12-21 11:24:53 +00:00
Jim Meyering
727298f3f5 Use PARAMS, not __P. 1997-12-21 11:22:51 +00:00
Jim Meyering
27d24b46ad (rpl_chown): Rename from chown.
Undefine chown just after including config.h.
Include sys/stat.h.
Use correct ordering of uid and gid parameters both in function
definition and in call to chown.
With patches from Kaveh Ghazi.
1997-12-21 11:17:20 +00:00
Jim Meyering
a2f0f9ac89 s/__P/PARAMS/g 1997-12-16 15:44:00 +00:00
Jim Meyering
ece81e9e4a *** empty log message *** 1997-12-16 15:43:01 +00:00
Jim Meyering
70618de21b s/__P/PARAMS/g. 1997-12-16 15:42:48 +00:00
Jim Meyering
589a3c2872 *** empty log message *** 1997-12-16 15:33:33 +00:00
Jim Meyering
03f9f3dbec s/__P/PARAMS/g 1997-12-16 15:32:32 +00:00
Jim Meyering
fc22546441 . 1997-12-16 15:16:20 +00:00
Jim Meyering
08b3d2975e *** empty log message *** 1997-12-16 15:13:06 +00:00
Jim Meyering
5d764734f7 tweak indentation 1997-12-16 15:11:23 +00:00
Jim Meyering
36665a7464 (struct bin_str): Make len int, not unsigned, to avoid
bogus comparison < 0.
(quote_filename): Add forward decl.
(decode_switches): -b, -e, -N, -Q are now mutually exclusive.
(print_dir): Quote directory name as per quoting options.
(print_long_format): Don't count color changes as part of file name.
(quote_filename): Revamp interface: now accepts stream to output to
and filename, and returns length of quoted filename.
This removes duplicated code and should make errors less likely.
Also, no longer mallocs storage.  All callers changed.
Don't quote ' ' if -Q.
(OUTCHAR): New macro.
(SAVECHAR, SAVE_2_CHARS): Remove.
(print_name_with_quoting): New stack arg.  All callers changed.
(print_color_indicator): Cast ext len to size_t to avoid warning
with GCC 2.8.
(length_of_file_name_and_frills): Rewrite to use quote_filename.
This fixes bug when computing file name length with -e.
1997-12-14  Paul Eggert  <eggert@twinsun.com>
Add shell style quoting, and make it the default.
* NEWS, doc/fileutils.texi: Describe -e, which is now the default.
Describe change to --dired output.
* src/ls.c (quote_shell): New var.
(long_options, decode_switches, usage): New option -e or --quote-shell.
(dired_dump_obstack): New arg STYLE.
(main): Pass quoting style to dired_dump_obstack.
(decode_switches): -N now clears quote_as_string.
(quote_filename): Add shell style quoting.
1997-12-16 15:09:19 +00:00
Jim Meyering
1ca40285b2 (deep): Remove `find > k' debugging remnant. 1997-12-15 11:35:22 +00:00
Jim Meyering
ce939d6f44 Make sure we get diagnostics in English. 1997-12-14 21:51:44 +00:00
Jim Meyering
f126c8d3a1 Remove lseek and memchr dcls. 1997-12-14 16:28:18 +00:00
Jim Meyering
970ffd8520 *** empty log message *** 1997-12-14 16:28:06 +00:00
Jim Meyering
7dcb361c82 *** empty log message *** 1997-12-14 16:25:06 +00:00
Jim Meyering
5867abf11e *** empty log message *** 1997-12-14 15:38:18 +00:00
Jim Meyering
9afbb6eec6 (ASSIGN_STRDUPA): Cast alloca return value to char*. 1997-12-14 15:38:04 +00:00
Jim Meyering
ef938e62d0 s/HAVE_DECLARATION_/HAVE_DECL_/. 1997-12-14 15:15:07 +00:00
Jim Meyering
e68f7b2e4b cast memcpy to char* 1997-12-14 15:12:29 +00:00
Jim Meyering
b1bd801e94 Add #serial 1. 1997-12-14 15:03:38 +00:00
Jim Meyering
56b3459d40 add memchr dcl 1997-12-14 14:00:15 +00:00
Jim Meyering
f684c873f7 s/HAVE_DECLARATION/HAVE_DECL_/g 1997-12-14 12:40:33 +00:00
Jim Meyering
7c474bb76f add lseek 1997-12-14 12:03:55 +00:00
Jim Meyering
31c36865e5 *** empty log message *** 1997-12-14 12:03:38 +00:00
Jim Meyering
a6c30b90a3 *** empty log message *** 1997-12-14 08:03:18 +00:00
Jim Meyering
386843fd25 s/DECLARATION_/DECL_/g.
Add memchr.
1997-12-14 08:03:07 +00:00
Jim Meyering
457d8d9aef *** empty log message *** 1997-12-14 07:44:38 +00:00
Jim Meyering
15f5e27eaf s/HAVE_DECLARATION_/HAVE_DECL_/g 1997-12-14 07:40:32 +00:00
Jim Meyering
1ac1f811f6 *** empty log message *** 1997-12-13 23:42:54 +00:00
Jim Meyering
b86f6c2308 (main): Add some braces.
Check return code from fclose of each input file.
Close stdout and check for errors.
1997-12-13 23:39:09 +00:00
Jim Meyering
444c6da144 (close_output_file): Check ferror before calling fclose.
(main): Close stdout and check for errors.
1997-12-13 23:38:53 +00:00
Jim Meyering
84a050b56f . 1997-12-13 22:56:50 +00:00
Jim Meyering
b5697888a0 . 1997-12-13 22:55:52 +00:00
Jim Meyering
8f38e99480 . 1997-12-13 22:54:01 +00:00
Jim Meyering
f977e4b5cf Change --help output to tell the truth: that for of=FILE,
FILE *is* truncated.  Reported by Miles Bader.
Remove incomplete, usage-like comment at top of file.
1997-12-13 22:49:33 +00:00
Jim Meyering
d75ca19d76 (usage): Mention that `notrunc' is a conv= option.
Reported by Miles Bader.
1997-12-13 17:01:54 +00:00
Jim Meyering
587a9df786 . 1997-12-13 16:23:06 +00:00
Jim Meyering
295372322d (do_move): If rename fails for any reason (not just when
errno == EXDEV), then revert to trying copy-then-unlink.  This is
necessary to allow moving files within certain types of Linux NFS
mounted filesystems.  Reported by Marty Leisner.
1997-12-13 16:22:58 +00:00
Jim Meyering
b2959537e6 *** empty log message *** 1997-12-13 16:13:34 +00:00
Jim Meyering
39546ad7d7 *** empty log message *** 1997-12-11 18:18:22 +00:00
Jim Meyering
322f7b0971 . 1997-12-11 08:40:21 +00:00
Jim Meyering
a320eee158 (do_link): Don't require --force when target exists and
using --backup.  This changes makes ln consistent with cp and mv in
this respect.  Suggestion from Eli Zaretskii.
1997-12-11 08:40:10 +00:00
Jim Meyering
603137e2ab *** empty log message *** 1997-12-10 11:17:16 +00:00
Jim Meyering
4f242b4d51 use NULL, '\0' instead of zeroes 1997-12-10 10:31:25 +00:00
Jim Meyering
3cd84da3a6 (main): Make sure pw->pw_shell is non-NULL before trying to strdup it.
Patch from Dick Streefland.
1997-12-10 10:25:46 +00:00
Jim Meyering
92f0098844 . 1997-12-06 21:18:14 +00:00
Jim Meyering
45ef6ccef8 . 1997-12-06 21:16:57 +00:00
Jim Meyering
20e1875a32 revert last change 1997-12-06 21:09:58 +00:00
Jim Meyering
b73786146f use SORT_INITIAL_LINE_LENGTH envvar for testing 1997-12-06 21:09:30 +00:00
Jim Meyering
a587b015d0 *** empty log message *** 1997-12-06 21:08:41 +00:00
Jim Meyering
a353313b22 *** empty log message *** 1997-12-06 18:23:51 +00:00
Jim Meyering
7209272d72 . 1997-12-06 13:42:21 +00:00
Jim Meyering
6ee3c1a91a (fillbuf): split longer-than-80-char line 1997-12-06 12:13:52 +00:00
Jim Meyering
9f50126a03 . 1997-12-06 09:20:26 +00:00
Jim Meyering
5d1987b3da . 1997-12-06 09:18:32 +00:00
Jim Meyering
04c29cd1db Separate struct dcl and typedef.
(String *): Rename from parameter-shadowed `string'.
(stringstruct): Remove typedef.
1997-12-06 08:57:14 +00:00
Jim Meyering
d91c95fda0 (re_compile_fastmap): Remove dcl of unused num_regs. 1997-12-06 08:27:25 +00:00
Jim Meyering
8f1aea2bc0 *** empty log message *** 1997-11-30 15:17:48 +00:00
Jim Meyering
ad7eabb3b3 . 1997-11-30 15:14:10 +00:00
Jim Meyering
468e83a183 *** empty log message *** 1997-11-30 14:22:56 +00:00
Jim Meyering
66fbc2c8f6 (savedir): Revert last change. malloc always
works when called with zero, because we use the wrapper if the
system version is lacking.
1997-11-30 14:20:17 +00:00
Jim Meyering
2807179898 *** empty log message *** 1997-11-30 13:44:02 +00:00
Jim Meyering
216037574d *** empty log message *** 1997-11-30 13:43:36 +00:00
Jim Meyering
4f670edacc *** empty log message *** 1997-11-30 13:37:44 +00:00
Jim Meyering
5c3d73a99b (EXTRA_DIST): Add inttypes_h.m4 and uintmax_t.m4. 1997-11-30 13:35:45 +00:00
Jim Meyering
d29ca45595 . 1997-11-30 13:35:35 +00:00
Jim Meyering
9e2eec1ca9 *** empty log message *** 1997-11-30 13:35:25 +00:00
Jim Meyering
e0da3d8d39 filter through cppi 1997-11-30 11:17:28 +00:00
Jim Meyering
3f7e011ab0 remove trailing blank 1997-11-30 11:16:14 +00:00
Jim Meyering
bca6f1740d remove trailing blank 1997-11-30 11:15:27 +00:00
Jim Meyering
d7d6efb0d7 remove trailing blank 1997-11-30 11:15:02 +00:00
Jim Meyering
3203b1d69c *** empty log message *** 1997-11-30 11:13:34 +00:00
Jim Meyering
fbe1ba7079 . 1997-11-30 11:13:18 +00:00
Jim Meyering
00c42a8936 (human_readable): Convert to ANSI-style definition.
[lint]: Define `power'.
1997-11-30 11:10:24 +00:00
Jim Meyering
5320bf5037 filter through cppi 1997-11-30 11:08:39 +00:00
Jim Meyering
79111711fe . 1997-11-30 11:08:23 +00:00
Jim Meyering
f7acc655f4 (print_long_format): Rename inner-scoped buf' arrays to hbuf'
to avoid shadowing local.
1997-11-30 11:07:49 +00:00
Jim Meyering
e5781fe090 (change_dir_owner): Cast st_size arg to unsigned int in savedir call. 1997-11-30 11:05:34 +00:00
Jim Meyering
a10fdc591f (change_dir_mode): Cast st_size arg to unsigned int in savedir call. 1997-11-30 11:05:10 +00:00
Jim Meyering
f7ecccf234 (full_filename): Use memcpy, not mempcpy when not using the return value. 1997-11-30 11:02:47 +00:00
Jim Meyering
5112b2973f filter through cppi 1997-11-30 11:01:54 +00:00
Jim Meyering
10aa5f6fd7 (<limits.h>): Include if HAVE_LIMITS_H.
(CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, INT_MAX, UINT_MAX):
New macros.
(ST_NBLOCKS): Now counts actual blocks, not 512-byte blocks.
(ST_NBLOCKSIZE): New macro.
1997-11-30 10:25:21 +00:00
Jim Meyering
9c59f1dcc4 (<inttypes.h>): Include if HAVE_INTTYPES_H.
("human.h"): Include.
(<limits.h>): Don't include; system.h does it now.
(INT_MAX): Remove.
(longdiff): Remove bogus definition that uses subtraction;
it gives the wrong answer when overflows occur.
(convert_blocks): Remove.
(output_units): New variable;
replaces booleans kilobyte_blocks and megabyte_blocks.
(human_readable_base): New variable.
(long_options, usage): Add -h or --human-readable and -H or --si.
(decode_switches): Adjust to renamed option variables.
Use -H if BLOCKSIZE is SI.  Add -h, -H.
(print_dir): Count blocks using uintmax_t, not int.
(gobble_file): Now returns uintmax_t, not int.
Don't convert blocks to 512 byte units, as this might overflow;
let caller handle the problem.  Deduce what caller will print
by invoking human_readable.
(print_long_format, print_file_name_and_frills): Don't assume
inode number, block count, file size fit in unsigned long.
Use human_readable to do block count conversion and to print
file sizes.
(prep_non_filename_text): Print decimal string for time if
localtime fails due to enormous time_t.
1997-11-30 10:25:16 +00:00
Jim Meyering
d08a2b63dc (BITSPERBYTE): Remove.
(UID_T_MAX, GID_T_MAX): Define in terms of TYPE_MAXIMUM.
1997-11-30 10:25:11 +00:00
Jim Meyering
6ed8115087 (<inttypes.h>): Include if HAVE_INTTYPES_H.
("human.h"): Include.
(LONGEST_HUMAN_READABLE, enum Output_units): Remove.
(count_entry): Now returns uintmax_t, not long.
(human_readable_base): Renamed from opt_human_readable; value is now
zero or positive integer, not just zero or nonzero.
(output_units): Now an integer giving output size.
(tot_size): Now uintmax_t, not long.
(long_options, usage): Add --si or -H.
(main): Adjust to renamed option variables.
Use -H if BLOCKSIZE is SI.  Add -H.
(human_readable): Remove; rewritten and now in lib/human.c.
(print_size): Rewrite in terms of human_readable.
Accept extra arg to be printed after size; all callers changed.
1997-11-30 10:25:07 +00:00
Jim Meyering
76916942ca (<inttypes.h>): Include if HAVE_INTTYPES_H.
("human.h"): Include.
(LONGEST_HUMAN_READABLE_1K_BYTE_BLOCKS): Remove.
(human_readable_base): Renamed from human_blocks; value is now
zero or positive integer, not just zero or nonzero.
(output_units): New variable;
replaces booleans kilobyte_blocks and megabyte_blocks.
(long_options): Add --si or -H.
(print_header): Adjust to renamed option variables.
(human_readable_1k_blocks): Remove.
(show_dev): Count blocks using uintmax_t, not long.
Calculate percentages using double, not long; this still isn't
perfect as it suffers double rounding, but it's more likely to
round correctly in practice than using long did.
Adjust to renamed option variables.
Use new human_readable library function to format uintmax_t values.
(usage): Add -H, --si.
(main): Adjust to renamed option variables.
Use -H if BLOCKSIZE is SI.  Add -H.
1997-11-30 10:25:02 +00:00
Jim Meyering
72bc3b818f (<inttypes.h>): Include if HAVE_INTTYPES_H.
("human.h"): Include.
(input_blocksize, output_blocksize, conversion_blocksize):
Now size_t instead of long.  0 means unset.
(skip_records, seek_record, max_records): Now uintmax_t, not long.
(w_partial, w_full, r_partial, r_full, r_truncate):
Now uintmax_t instead of unsigned.
(print_stats): Print counts as uintmax_t, not unsigned.
(main, skip): Check for overflow when computing file offsets.
(skip): Records count arg is uintmax_t, not long; blocksize arg is
size_t, not long.  Try lseek even on non regular files, as per comment.
(oc, col): Now size_t, not int.
(copy): No need to check max_records >= 0 any more, as the
default value is now effectively infinity.
Cast lseek arg to off_t.
(copy, copy_with_block): conversion_blocksize - col can never
be negative now, since it's unsigned, so rewrite loops to
avoid problems with unsigned.
(scanargs): Parse numeric args using uintmax_t, not int.
Check for overflow when converting block size args to size_t.
Blocksize options are now unsigned, and are now 0 when not set yet.
(parse_integer): Return uintmax_t, not int; accept new int * arg
to store error indicator, since all returned values are now valid.
Check for overflow when scanning integer.
1997-11-30 10:24:58 +00:00
Jim Meyering
a5fe3a240b (<inttypes.h>): Include if HAVE_INTTYPES_H.
(hash_insert2): Cast inode number to uintmax_t; this prevents
negative remainders if the inode number is negative and ino_t
is longer than unsigned.
1997-11-30 10:24:54 +00:00
Jim Meyering
b8c474191a (copy_reg): Store file size as off_t, not long.
Do not assume st_size has been normalized to 512 byte blocks,
or that it fits in size_t after dividing by the blocksize.
1997-11-30 10:24:50 +00:00
Jim Meyering
0f411474da (<limits.h>, UINT_MAX, UINT_MAX): Remove; now
done by system.h.
1997-11-30 10:24:45 +00:00
Jim Meyering
dcd4c05dfa (savedir): Check for size zero before invoking
malloc; this can occur if st_size arg overflows on conversion to
unsigned int.  All callers now cast st_size arg to unsigned int.
1997-11-30 10:24:41 +00:00
Jim Meyering
07783bcdf0 (getuidbyname, getgidbyname): Names can now
be NULL in cache.  This change merely fixes ifdeffed-out code.
1997-11-30 10:24:38 +00:00
Jim Meyering
240cb49efe New file. The interface is inspired
by the human_readable function that was in du.c, but it's pretty
much rewritten from scratch.
1997-11-30 10:24:32 +00:00
Jim Meyering
412d0aba50 (struct fs_usage): New member fsu_blocksize.
Other members are now uintmax_t, not long.
1997-11-30 10:24:28 +00:00
Jim Meyering
25fabf3d2d Do all calculations using uintmax_t.
Include <inttypes.h> if available.
(adjust_blocks, CONVERT_BLOCKS): Remove.
(get_fs_usage): Set new member fsu_blocksize, and do not convert
numbers to 512-byte block units; this avoids overflow here.
Cast lseek arg to off_t, not long.
1997-11-30 10:24:24 +00:00
Jim Meyering
f633782aa1 (st_blocks): long -> off_t.
Avoid arithmetic overflow when size is near max.
Depend on _POSIX_SOURCE and BSIZE, not _POSIX_VERSION, for
compatibility with system.h.
(BSIZE): Remove definition, since if BSIZE is not defined
we're never invoked.
1997-11-30 10:24:20 +00:00
Jim Meyering
ce43e130bb (libfu_a_SOURCES): Add new file human.c.
(noinst_HEADERS): Add new file human.h.
1997-11-30 10:24:16 +00:00
Jim Meyering
8754a488e0 . 1997-11-30 08:32:44 +00:00
Jim Meyering
75a5b970b3 (mempcpy): remove static inline function 1997-11-30 07:34:12 +00:00
Jim Meyering
e08f95ef54 . 1997-11-29 18:05:14 +00:00
Jim Meyering
4eac40b0e5 *** empty log message *** 1997-11-24 14:25:52 +00:00
Jim Meyering
04712f52ad also test for stdlib.h
don't use STDC_HEADERS in ifdef for stdlib.h
1997-11-24 14:21:16 +00:00
Jim Meyering
c781b840f2 move big chunk of defs to sys2 1997-11-24 14:19:32 +00:00
Jim Meyering
d8415fe94f *** empty log message *** 1997-11-24 12:57:50 +00:00
Jim Meyering
9928e82eac *** empty log message *** 1997-11-24 12:53:29 +00:00
Jim Meyering
49803907f5 . 1997-11-19 18:59:48 +00:00
Jim Meyering
4c3aa5cba3 (hash_pjw): Don't use ANSI `U' suffix. Cast instead. 1997-11-19 18:59:02 +00:00
Jim Meyering
c04cb4522a add PARAMS around prototype lists 1997-11-19 18:57:40 +00:00
Jim Meyering
f62113bea3 . 1997-11-19 18:55:53 +00:00
Jim Meyering
d92a618daf revert a mempcpy to memcpy 1997-11-19 18:55:31 +00:00
Jim Meyering
1110f5f335 (AUTOMAKE_OPTIONS): Use ansi2knr so *I* don't
have to convert my hash package to use k&r C.
1997-11-19 15:04:15 +00:00
Jim Meyering
68c59ca300 *** empty log message *** 1997-11-18 03:47:06 +00:00
Jim Meyering
65eb6ca593 *** empty log message *** 1997-11-18 03:32:19 +00:00
Jim Meyering
9ed80c0140 (_REENTRANT): #define, as some hosts need this to declare localtime_r properly.
From Paul Eggert.
1997-11-18 03:32:00 +00:00
Jim Meyering
6106d5a733 . 1997-11-18 03:29:24 +00:00
Jim Meyering
59b9b24bad undef putenv 1997-11-17 15:45:19 +00:00
Jim Meyering
f1b490166e add jm_ prefix to use of am_cv_func_working_mktime
increment serial #
1997-11-17 15:13:41 +00:00
Jim Meyering
3c94a67faa . 1997-11-16 15:28:23 +00:00
Jim Meyering
434a17cc05 . 1997-11-16 15:27:52 +00:00
Jim Meyering
aa96253ae1 . 1997-11-15 19:58:19 +00:00
Jim Meyering
87cff95abc . 1997-11-15 19:54:47 +00:00
Jim Meyering
4da60d3e2c *** empty log message *** 1997-11-15 19:51:16 +00:00
Jim Meyering
fec9572013 include unistd.h 1997-11-15 19:43:06 +00:00
Jim Meyering
1076c92f8d . 1997-11-15 17:19:48 +00:00
Jim Meyering
8def3e3ec1 remove fixup_null_alloc prototype 1997-11-15 17:18:01 +00:00
Jim Meyering
83ef9b531a (EXTRA_DIST): Add mktime.m4. 1997-11-15 17:14:10 +00:00
Jim Meyering
f9d9d1cbb4 . 1997-11-15 17:13:23 +00:00
Jim Meyering
31c1d2ed3d *** empty log message *** 1997-11-15 17:13:20 +00:00
Jim Meyering
e66833e32e Require jm_AM_FUNC_MKTIME, not the one from automake. 1997-11-15 17:13:02 +00:00
Jim Meyering
e6186db39f (mempcpy): Remove definition. 1997-11-15 17:09:34 +00:00
Jim Meyering
ae2984e8ca . 1997-11-15 17:08:32 +00:00
Jim Meyering
ed5048e229 Check for %F format.
Add comments.
1997-11-15 13:17:15 +00:00
Jim Meyering
e84c69c6cf (bigtime_test): New function from Paul Eggert to detect SunOS4.1.4's
infinite looping mktime.
Portability tweaks from Paul Eggert.
1997-11-15 05:41:02 +00:00
Jim Meyering
7ee6b0046f Temporarily add a copy of this file from the automake
distribution.  Update names to have jm_ prefix.
(irix_6_4_bug): New function based on code from Ariel Faigon.
1997-11-15 05:28:04 +00:00
Jim Meyering
708a265b39 . 1997-11-15 05:24:30 +00:00
Jim Meyering
df29ef2431 . 1997-11-13 14:29:18 +00:00
Jim Meyering
3022e9b806 . 1997-11-13 14:25:41 +00:00
Jim Meyering
db984f4c6d update from GNU libc 1997-11-13 14:24:03 +00:00
Jim Meyering
e0d703658c update from GNU libc 1997-11-13 14:22:56 +00:00
Jim Meyering
f52ec0e772 partial update from FSF -- use int, not size_t; 0, not NULL 1997-11-13 14:21:02 +00:00
Jim Meyering
d29c650718 . 1997-11-13 14:16:21 +00:00
Jim Meyering
690342eae7 Update from FSF. 1997-11-13 13:23:16 +00:00
Jim Meyering
2e21152e49 Update from FSF. 1997-11-13 13:22:54 +00:00
Jim Meyering
7afa02b918 Check for POSIX.2's %f format spec. 1997-11-13 13:19:15 +00:00
Jim Meyering
7ba5fcb251 add -*-Makefile-*- 1997-11-12 17:28:34 +00:00
Jim Meyering
f1af5f9504 . 1997-11-12 17:27:41 +00:00
Jim Meyering
5b399f4fe0 [!HAVE_MEMPCPY] (mempcpy): Define here instead. 1997-11-12 17:21:54 +00:00
Jim Meyering
c0cc0c26ed [!HAVE_MEMPCPY] (mempcpy): Define. 1997-11-12 17:19:21 +00:00
Jim Meyering
b74c9a14fd (copy_dir): Use path_concat rather than open-coding it. 1997-11-12 17:18:55 +00:00
Jim Meyering
b3828d9190 *** empty log message *** 1997-11-12 16:28:53 +00:00
Jim Meyering
4842565b62 [!HAVE_MEMPCPY] (mempcpy): Define.
(batch_convert): Use mempcpy rather than stpcpy.
1997-11-12 16:28:06 +00:00
Jim Meyering
4d1e1b28f8 (path_concat): Use mempcpy, not stpcpy. 1997-11-12 16:18:23 +00:00
Jim Meyering
992fc3869f return memcpy result directly 1997-11-12 16:11:17 +00:00
Jim Meyering
e96a4f0ed1 . 1997-11-10 14:40:40 +00:00
Jim Meyering
65dd91dfc3 . 1997-11-10 14:39:14 +00:00
Jim Meyering
99910b9591 . 1997-11-10 04:11:57 +00:00
Jim Meyering
dbac29a533 *** empty log message *** 1997-11-10 03:53:45 +00:00
Jim Meyering
5e28f75496 (jm_STRFTIME_PREREQS): Check for localtime_r.
(jm_FUNC_GNU_STRFTIME): Use new macro.
(jm_FUNC_STRFTIME): New macro.  Likewise.
1997-11-10 03:52:47 +00:00
Jim Meyering
bc445a1f16 (jm_FUNC_MKTIME): Check for localtime_r. 1997-11-10 03:52:33 +00:00
Jim Meyering
572930e171 *** empty log message *** 1997-11-10 03:31:27 +00:00
Jim Meyering
9694cb0f15 add -*-Makefile-*- to first line 1997-11-09 19:06:53 +00:00
Jim Meyering
03fbbc6ee0 add -*-Makefile-*- to first line 1997-11-09 19:06:31 +00:00
Jim Meyering
ab08d64445 . 1997-11-08 21:10:39 +00:00
Jim Meyering
d9173c1c81 . 1997-11-08 21:04:13 +00:00
Jim Meyering
6d3a217c16 (EXTRA_DIST): Add lfs.m4. 1997-11-08 21:02:34 +00:00
Jim Meyering
979f238fb3 (fseeko): Define a stub if ! HAVE_FSEEKO.
(skip): Use fseeko if available.  Don't use lseek; it causes
the stdio stream to become out of sync with respect to the
underyling file descriptor.
From Paul Eggert.
1997-11-08 21:02:01 +00:00
Jim Meyering
6af4f825de . 1997-11-08 20:42:52 +00:00
Jim Meyering
9ef77c1298 *** empty log message *** 1997-11-08 20:38:23 +00:00
Jim Meyering
7417f884af (keycompare): call alloca(0) after each iteration 1997-11-08 04:47:17 +00:00
Jim Meyering
b391c8ba91 . 1997-11-08 04:46:30 +00:00
Jim Meyering
cc2fcaa6ab *** empty log message *** 1997-11-08 03:00:52 +00:00
Jim Meyering
214ed98dd8 Fix typo in comment.
Add header check for string.h.
1997-11-08 03:00:20 +00:00
Jim Meyering
36ce9a1c1c use 2 mempcpy instead of two memcpy calls 1997-11-08 02:59:16 +00:00
Jim Meyering
d87c244809 cleanup
use abort for framework errors
1997-11-08 02:56:10 +00:00
Jim Meyering
19058180fa . 1997-11-07 18:19:50 +00:00
Jim Meyering
55405358b3 *** empty log message *** 1997-11-07 17:19:00 +00:00
Jim Meyering
aaf22602f2 . 1997-11-07 17:18:15 +00:00
Jim Meyering
a313a7d147 (getmonth): Remove HAVE_ALLOCA #ifdefs.
We always have alloca.
(keycompare): Don't use variable size arrays (it's a gcc-extension).
Rewrite code that increments new lengths when not `ignoring'.
1997-11-06 14:37:34 +00:00
Jim Meyering
a8da87911c make sure autoconf tests have been run 1997-11-03 15:19:20 +00:00
Jim Meyering
cbd4a8af0f Add insurance: tell xmalloc.c we've done the test. 1997-11-03 15:18:09 +00:00
Jim Meyering
752325fc8e *** empty log message *** 1997-11-03 05:46:09 +00:00
Jim Meyering
d17ebff653 *** empty log message *** 1997-11-03 05:43:56 +00:00
Jim Meyering
0ad181ef01 *** empty log message *** 1997-11-03 05:39:43 +00:00
Jim Meyering
c9848717d6 *** empty log message *** 1997-11-03 05:38:28 +00:00
Jim Meyering
aafe49ef49 (xalloc_fail): Renamed from fixup_null_alloc.
(xcalloc): #ifdef-out unused function.
(xrealloc): Remove code to work around deficient versions of realloc.
Now we have an autoconf-enabled replacement version.
(xmalloc): Remove code to work around deficient versions of malloc.
Now we have an autoconf-enabled replacement version.
1997-11-03 05:25:44 +00:00
Jim Meyering
c417b4e790 be stricter: check for both P == 0 and N == 0. 1997-11-03 05:20:41 +00:00
Jim Meyering
1919353d75 *** empty log message *** 1997-11-03 05:20:09 +00:00
Jim Meyering
65673815ac *** empty log message *** 1997-11-03 05:19:56 +00:00
Jim Meyering
ab5ff1597f (main): New option, --max-line-length (-L).
(wc, write_counts): Implement it.
From Bruno Haible.
1997-11-03 05:08:36 +00:00
Jim Meyering
d6174d58f9 . 1997-11-03 04:52:50 +00:00
Jim Meyering
ea3c071c2d *** empty log message *** 1997-11-03 04:51:54 +00:00
Jim Meyering
3f3c12d723 don't use touch 1997-11-03 04:50:11 +00:00
Jim Meyering
f2ddecd375 revert last change 1997-11-03 04:40:37 +00:00
Jim Meyering
07e8ae7cb1 create 100 at a time 1997-11-03 04:40:07 +00:00
Jim Meyering
1b3376c9da Put cycle-detecting code inside an
#ifdef ENABLE_CYCLE_CHECK, for systems lacking d_ino.
[D_INO_IN_DIRENT]: Define ENABLE_CYCLE_CHECK.

(ASSIGN_STRDUPA): Clean up.
(right_justify): Use memcpy return value directly.
Suggestions from Ulrich Drepper.

(remove_cwd_entries) [! defined HAVE_WORKING_READDIR]: Impose overhead
of working around non-POSIX readdir implementation only on systems
that need it.
(remove_cwd_entries): Temporarily save a copy of each entry name in
an obstack rather than on the stack via alloca, then free it in the
likely event that we don't save the entry in the hash table.
1997-11-03 04:22:57 +00:00
Jim Meyering
6327a7ad45 *** empty log message *** 1997-11-02 14:38:49 +00:00
Jim Meyering
ae21be058f . 1997-11-02 14:28:13 +00:00
Jim Meyering
53424a8278 *** empty log message *** 1997-11-02 14:28:10 +00:00
Jim Meyering
267987dd44 *** empty log message *** 1997-11-02 14:25:46 +00:00
Jim Meyering
1b4242d631 . 1997-11-02 14:24:16 +00:00
Jim Meyering
c70a6df8c7 *** empty log message *** 1997-11-02 14:21:59 +00:00
Jim Meyering
0b5e948104 Guard cycle-detecting code inside #ifdef ENABLE_CYCLE_CHECK.
[D_INO_IN_DIRENT]: Define ENABLE_CYCLE_CHECK.
1997-10-28 00:55:11 +00:00
Jim Meyering
41431bbd91 *** empty log message *** 1997-10-27 05:00:47 +00:00
Jim Meyering
7da7de8f59 *** empty log message *** 1997-10-27 04:59:35 +00:00
Jim Meyering
3426a19c60 add comment 1997-10-27 04:59:25 +00:00
Jim Meyering
f831d9c32d Convert to upper case before comparing.
This makes join -i work with sort -f.
1997-10-27 04:58:22 +00:00
Jim Meyering
94c4bdd4c8 fix typo in comment 1997-10-27 03:22:01 +00:00
Jim Meyering
b67ad81f67 . 1997-10-26 15:07:47 +00:00
Jim Meyering
d9eac1e2c0 Add A, _, a tests using -f. 1997-10-26 15:07:01 +00:00
Jim Meyering
fb9673ea4a . 1997-10-26 04:51:38 +00:00
Jim Meyering
83dd3a893b . 1997-10-26 04:50:59 +00:00
Jim Meyering
ce7a44e806 . 1997-10-26 04:50:23 +00:00
Jim Meyering
91a4b3d1ed *** empty log message *** 1997-10-26 04:50:05 +00:00
Jim Meyering
910c82eff8 (NLS_STRNCMP) [!ENABLE_NLS]: s/strcmp/strncmp/ 1997-10-26 04:42:02 +00:00
Jim Meyering
eb5fa8bdd2 (xalloc_fail_func): Initialize to 0, not NULL. 1997-10-26 04:39:53 +00:00
Jim Meyering
6f82682a64 . 1997-10-26 04:26:09 +00:00
Jim Meyering
0ef0b74972 (EXTRA_DIST): Add malloc.c. 1997-10-26 03:58:27 +00:00
Jim Meyering
a091e5e93d . 1997-10-26 03:57:43 +00:00
Jim Meyering
956fa0cc78 (EXTRA_DIST): Add malloc.m4. 1997-10-26 03:53:07 +00:00
Jim Meyering
504453762c . 1997-10-26 03:52:27 +00:00
Jim Meyering
71a0d20bf5 (EXTRA_DIST): Add realloc.c. 1997-10-26 03:15:47 +00:00
Jim Meyering
9386131a43 . 1997-10-26 02:48:44 +00:00
Jim Meyering
0819395283 . 1997-10-26 02:48:15 +00:00
Jim Meyering
c5c9c39bb9 . 1997-10-26 02:47:19 +00:00
Jim Meyering
139d0623b8 . 1997-10-26 02:46:35 +00:00
Jim Meyering
bf3f82daa0 (noinst_HEADERS): Add xalloc.h. 1997-10-26 02:20:32 +00:00
Jim Meyering
f399320c40 . 1997-10-25 22:04:11 +00:00
Jim Meyering
df445b0891 Remove old-style xmalloc and xrealloc decls. 1997-10-25 22:03:55 +00:00
Jim Meyering
b3ab88e970 Remove old-style xmalloc and xrealloc decls. 1997-10-25 22:03:20 +00:00
Jim Meyering
e2609be248 Include xalloc.h.
Remove dcls of xmalloc, xcalloc and xrealloc.
1997-10-25 22:01:13 +00:00
Jim Meyering
226e5a6478 . 1997-10-25 21:52:24 +00:00
Jim Meyering
123a921fc2 s/xmalloc_exit_failure/xalloc_exit_failure 1997-10-25 21:52:09 +00:00
Jim Meyering
e6503ed629 Include xalloc.h.
Change VOID to void.
(xalloc_exit_failure): Renamed extern.
(xalloc_msg_memory_exhausted): New extern.
(xalloc_fail_func): New extern.
(fixup_null_alloc): Use new variables.
1997-10-25 21:51:21 +00:00
Jim Meyering
01b84d9480 . 1997-10-25 21:49:45 +00:00
Jim Meyering
c740c3f8ae . 1997-10-25 04:45:58 +00:00
Jim Meyering
e211bb2aff Remove old-style xmalloc and xrealloc decls. 1997-10-25 04:45:43 +00:00
Jim Meyering
cfcb7f0117 Remove old-style xmalloc and xrealloc decls.
(add_tabstop): Cast first arg of xrealloc to char*.
1997-10-25 04:44:00 +00:00
Jim Meyering
0927513b16 Include xalloc.h.
(xmalloc): Remove function.
(xrealloc): Remove function.
(main): Set xalloc_fail_func to cleanup.
Set xmalloc_exit_failure SORT_FAILURE.
1997-10-25 04:43:10 +00:00
Jim Meyering
0873056df7 Remove old-style xmalloc and xrealloc decls.
(paste_parallel): Cast first arg of xrealloc to char*.
1997-10-25 04:42:15 +00:00
Jim Meyering
b480949713 Remove old-style xmalloc and xrealloc decls.
(decode_format_string): Cast first arg of xrealloc to char*.
1997-10-25 04:41:18 +00:00
Jim Meyering
f4ae4ca4ef Remove old-style xmalloc and xrealloc decls.
(add_tabstop): Cast first arg of xrealloc to char*.
1997-10-25 04:40:28 +00:00
Jim Meyering
a0b56b516a Include xalloc.h.
(xmalloc): Remove function.
(xrealloc): Remove function.
(main): Set xalloc_fail_func to cleanup.
1997-10-25 04:38:58 +00:00
Jim Meyering
7dcae67d92 (ADD_RANGE_PAIR): Cast first arg of xrealloc to char*.
(getstr): Cast xmalloc return value to char*.
(xmalloc): Remove decl.
(xrealloc): Remove decl.
1997-10-25 04:37:57 +00:00
Jim Meyering
866a9c5e2d Use unsigned int, not just unsigned. 1997-10-24 13:17:16 +00:00
Jim Meyering
4c29214245 *** empty log message *** 1997-10-24 13:06:56 +00:00
Jim Meyering
d6b68f0fff . 1997-10-24 04:29:41 +00:00
Jim Meyering
fe4e67e1a0 *** empty log message *** 1997-10-24 02:13:01 +00:00
Jim Meyering
cd4c834ded quote AC_HEADER_STDC in AC_REQUIRE. 1997-10-24 02:06:52 +00:00
Jim Meyering
1c97532caf don't use lower and upper temporaries 1997-10-24 01:45:56 +00:00
Jim Meyering
220323bbbf . 1997-10-24 01:44:35 +00:00
Jim Meyering
5aa2bbe173 *** empty log message *** 1997-10-24 01:44:29 +00:00
Jim Meyering
ba1b5f6db1 . 1997-10-24 01:43:24 +00:00
Jim Meyering
c25ff2f7c9 *** empty log message *** 1997-10-24 01:43:12 +00:00
Jim Meyering
23fa5c1d3f . 1997-10-24 01:42:27 +00:00
Jim Meyering
bd38753847 *** empty log message *** 1997-10-24 01:42:02 +00:00
Jim Meyering
d1ea3d6f17 . 1997-10-23 16:15:31 +00:00
Jim Meyering
339afbb210 [!HAVE_DECLARATION_FREE]: Declare free.
[!HAVE_DECLARATION_MALLOC]: Declare malloc.
[!HAVE_DECLARATION_REALLOC]: Declare realloc.
[!HAVE_DECLARATION_STPCPY]: Declare stpcpy.
[!HAVE_DECLARATION_STRSTR]: Declare strstr.
1997-10-23 16:07:31 +00:00
Jim Meyering
f4d8e10147 Remove stpcpy decl.
Remove free, malloc, and realloc decls.
1997-10-23 16:06:59 +00:00
Jim Meyering
9fec99f4a6 Remove free and malloc decls. 1997-10-23 16:06:19 +00:00
Jim Meyering
3faf14fe5c Remove stpcpy decl.
Remove free and malloc decls.
1997-10-23 16:05:59 +00:00
Jim Meyering
eae64f3a4f Remove stpcpy decl. 1997-10-23 16:04:47 +00:00
Jim Meyering
2190ae8456 . 1997-10-23 16:04:22 +00:00
Jim Meyering
5d95b57e31 *** empty log message *** 1997-10-23 16:04:09 +00:00
Jim Meyering
ddac742eb8 . 1997-10-23 15:59:42 +00:00
Jim Meyering
9e51e01450 . 1997-10-23 15:58:39 +00:00
Jim Meyering
096b53e6c6 [STREQ]: Undef then redefine. 1997-10-23 15:57:54 +00:00
Jim Meyering
1f98316792 Remove strstr decl. 1997-10-23 15:57:36 +00:00
Jim Meyering
58e904c6fd Remove stpcpy decl. 1997-10-23 15:57:21 +00:00
Jim Meyering
308d4d7b56 . 1997-10-23 15:34:12 +00:00
Jim Meyering
fd9508f73e . 1997-10-23 15:32:42 +00:00
Jim Meyering
92f84dde01 . 1997-10-23 15:32:08 +00:00
Jim Meyering
c7ba7d37a5 *** empty log message *** 1997-10-23 14:30:37 +00:00
Jim Meyering
e3d7071595 Remove stpcpy dcl. 1997-10-23 14:30:27 +00:00
Jim Meyering
00bc2c29ca Remove malloc, and realloc dcls. 1997-10-23 14:30:14 +00:00
Jim Meyering
f11893c764 Remove free, malloc, and realloc dcls. 1997-10-23 14:30:03 +00:00
Jim Meyering
1aad2e1c4a Remove malloc and realloc dcls. 1997-10-23 14:29:46 +00:00
Jim Meyering
d4899bad7e Remove stpcpy dcl. 1997-10-23 14:28:31 +00:00
Jim Meyering
1323b4bc13 *** empty log message *** 1997-10-23 13:28:01 +00:00
Jim Meyering
9f1ddc8d01 (EXTRA_DIST): Add decl.m4 and do-decl.m4. 1997-10-23 13:26:45 +00:00
Jim Meyering
d0a698d984 *** empty log message *** 1997-10-23 04:53:18 +00:00
Jim Meyering
1bf2efdbf0 . 1997-10-23 04:53:06 +00:00
Jim Meyering
394f851071 update from FSF 1997-10-22 14:06:16 +00:00
Jim Meyering
b36a76ab70 *** empty log message *** 1997-10-20 18:31:29 +00:00
Jim Meyering
916300ba27 *** empty log message *** 1997-10-19 03:20:04 +00:00
Jim Meyering
22b1971cbc *** empty log message *** 1997-10-19 03:12:10 +00:00
Jim Meyering
a7e650ac12 (remove_cwd_entries): Entries in table of processed dir
entries are not malloc'd, so don't have hash cleanup free them.
Rewind dirp upon NULL readdir, required for at least SunOS.
1997-10-19 03:09:40 +00:00
Jim Meyering
53e807719a *** empty log message *** 1997-10-19 02:38:31 +00:00
Jim Meyering
b51e8b8ec4 *** empty log message *** 1997-10-19 02:37:12 +00:00
Jim Meyering
6f976ee5d4 . 1997-10-18 20:14:50 +00:00
Jim Meyering
3fa5a54f68 (LONG_MAX): Define if not defined. 1997-10-18 19:49:50 +00:00
Jim Meyering
72ab8e314c *** empty log message *** 1997-10-17 19:05:07 +00:00
Jim Meyering
d255fdbe9c *** empty log message *** 1997-10-17 18:58:04 +00:00
Jim Meyering
71c4a4524f . 1997-10-17 18:57:46 +00:00
Jim Meyering
c555721842 (remove_cwd_entries): Change the while(dp...) to a while(1) loop,
and move dcl and assignment of dp into the loop.
1997-10-17 18:06:34 +00:00
Jim Meyering
0dcc4a0d58 *** empty log message *** 1997-10-17 15:21:27 +00:00
Jim Meyering
d6cdc3e8f5 . 1997-10-17 15:20:17 +00:00
Jim Meyering
df400162fc *** empty log message *** 1997-10-17 15:20:08 +00:00
Jim Meyering
695b9df0ec indent 1997-10-16 15:34:26 +00:00
Jim Meyering
1a68cff356 Add comments. From Orn. 1997-10-16 15:29:15 +00:00
Jim Meyering
acf88c6fa8 add assertions 1997-10-16 15:03:54 +00:00
Jim Meyering
1bcc596ada . 1997-10-16 15:01:58 +00:00
Jim Meyering
f015b15dc9 (look_for_fraction): Patch from Orn Hansen.
(getmonth): Compare the two month names only to the length of the
string in the month table.  Patch from Orn Hansen.
(NLS_STRNCMP): New macro.
(strncoll_s2_readonly): New function.
(inittables): Don't use temporary `comp' to hide type of comparator function.
(nls_sort_month_comp): Declare parameters to be void* to match
comparator function type required for qsort.
(getmonth): Use NLS_STRNCMP rather than #ifdef.
Use do-while, rather than while-loop.
1997-10-16 14:54:58 +00:00
Jim Meyering
e803da432b begin merging Orn's changes 1997-10-16 13:12:13 +00:00
Jim Meyering
8f8e6f63d8 *** empty log message *** 1997-10-15 21:38:08 +00:00
Jim Meyering
bbc161b496 . 1997-10-15 05:12:00 +00:00
Jim Meyering
e3fe6a0efd *** empty log message *** 1997-10-15 05:00:41 +00:00
Jim Meyering
1ab25ef4a1 (_NL_ITEM) [!defined]: Define.
From from rn E. Hansen.
1997-10-15 05:00:33 +00:00
Jim Meyering
0fab8dca59 . 1997-10-14 22:34:00 +00:00
Jim Meyering
55707840f3 Remove ChangeLog entry from Orn. 1997-10-14 22:33:20 +00:00
Jim Meyering
8d3d73c573 Use STREQ in place of most uses of strcmp.
(zaptemp): Make parameter `const'.
1997-10-14 22:32:44 +00:00
Jim Meyering
2bb1be5ca0 (NLS_STRCMP): Define.
(getmonth): Remove ifdef and use NLS_STRCMP instead.
Use HAVE_ALLOCA, not _HAVE_ALLOCA.
1997-10-14 22:25:02 +00:00
Jim Meyering
cb3a4594b9 . 1997-10-14 22:15:31 +00:00
Jim Meyering
a1796c88cb . 1997-10-14 22:15:06 +00:00
Jim Meyering
ed63af49a2 Add tests to exercise fraccompare. 1997-10-14 22:14:48 +00:00
Jim Meyering
e1927c2248 . 1997-10-14 22:09:59 +00:00
Jim Meyering
0fa42caea6 (CHARS_IN_ABM): Remove definition
(inittables): Remove assumption that all abbreviated month names have
length 3.
(getmonth): Likewise.
(main): Add #if's for more efficient code when using the GNU C library.
From Ulrich Drepper.
1997-10-14 21:36:33 +00:00
Jim Meyering
69c54c088c tweak Orn's fraccompare. Always use it. 1997-10-14 20:41:28 +00:00
Jim Meyering
bf5606ff49 (fraccompare): Indent.
Move dcls of S and N into if block.
1997-10-14 14:12:48 +00:00
Jim Meyering
3f7506491b fix spelling errors in comments 1997-10-14 13:47:22 +00:00
Jim Meyering
8c96da80b0 (keycompare): Move assignment out of if-expression. 1997-10-14 13:40:51 +00:00
Jim Meyering
df3a123e85 (strncoll): Rename parameter to LEN.
Clean up formatting.
Add a FIXME.
1997-10-14 13:37:35 +00:00
Jim Meyering
8b924d2318 *** empty log message *** 1997-10-14 13:08:06 +00:00
Jim Meyering
7fff797d97 Declare xstrdup.
(my_setlocale): New function.
(main): Guard against failure of strdup (use xstrdup) and setlocale.
1997-10-14 13:07:12 +00:00
Jim Meyering
42a2bc2846 (STREQ): Remove definition. 1997-10-14 12:50:28 +00:00
Jim Meyering
b2ff7dd7c5 [patch from Orn]
(look_for_fraction): Eliminate arbitrary limit on
number of `groups'.  Declare as void, not int.
Patch from rn E. Hansen.
(main): When determining whether we're in the C or POSIX locale,
don't rely on the form of the string returned by setlocale.
Suggestion from Ulrich Drepper.
1997-10-14 12:19:09 +00:00
Jim Meyering
27c0b63dfc apply one more piece from KBs patch 1997-10-13 23:09:15 +00:00
Jim Meyering
588d5520d6 expr reorg from KB 1997-10-13 21:59:27 +00:00
Jim Meyering
1f96e81489 *** empty log message *** 1997-10-13 14:08:51 +00:00
Jim Meyering
a41c38cb7d Bracket inclusion of termios.h with #ifdef HAVE_TERMIOS_H.
Masami Takikawa reported that this is necessary on NeXTStep 3.0 systems.
1997-10-13 14:08:38 +00:00
Jim Meyering
c4aa5c4df7 *** empty log message *** 1997-10-13 14:07:31 +00:00
Jim Meyering
2c32c6a11a eliminate a comma expr,
fix one func return type
eliminate `* 1'
1997-10-13 04:02:42 +00:00
Jim Meyering
b01df13c39 (NLS_MAP): Remove unused definitions.
Replace with uses of UCHAR.
(nls_locale_map): Remove dcl of unused file-scope array.
1997-10-13 03:52:35 +00:00
Jim Meyering
3616231d94 (NLS_MEMCMP): Define.
(keycompare): Use it instead of open-coded #ifdefs.
(compare): Likewise.
1997-10-13 03:48:58 +00:00
Jim Meyering
b7e7317be0 indent and clean up some more 1997-10-13 03:37:16 +00:00
Jim Meyering
045d8da585 Indent some more.
#ifdef ENABLE_NLS th NLS part of insertkey.
1997-10-13 03:26:39 +00:00
Jim Meyering
0ac3a6acde indent and add FIXME comments 1997-10-13 03:12:17 +00:00
Jim Meyering
9ee502b57d filter through cppi 1997-10-13 02:08:30 +00:00
Jim Meyering
79bfec7ced Apply big patch from rn E. Hansen. 1997-10-13 02:08:01 +00:00
Jim Meyering
168acf8b9c . 1997-10-10 21:22:33 +00:00
Jim Meyering
eed785a714 . 1997-10-10 21:22:01 +00:00
Jim Meyering
a9e92e39a3 . 1997-10-10 21:21:04 +00:00
Jim Meyering
ee9b6aa2e5 *** empty log message *** 1997-10-10 21:20:45 +00:00
Jim Meyering
d7f5a724ca Add a test.
From William Lewis.
1997-10-10 21:20:27 +00:00
Jim Meyering
b9b4d6b169 *** empty log message *** 1997-10-08 14:24:32 +00:00
Jim Meyering
3d6090e6f7 *** empty log message *** 1997-10-07 23:59:21 +00:00
Jim Meyering
3ea2606e41 indent cpp directives to reflect nesting 1997-10-07 23:58:29 +00:00
Jim Meyering
3f3f566627 update bug-reporting address 1997-10-07 23:55:52 +00:00
Jim Meyering
05bbdbd786 update bug-reporting address 1997-10-07 23:53:36 +00:00
Jim Meyering
54abd85010 update bug-reporting address 1997-10-07 23:53:10 +00:00
Jim Meyering
5db3c9bdb4 update bug-reporting address 1997-10-07 23:51:39 +00:00
Jim Meyering
45e8ddd2c9 . 1997-10-07 22:08:55 +00:00
Jim Meyering
e5549867e2 change verbose messages 1997-10-06 13:30:14 +00:00
Jim Meyering
2e1d300fe5 (usage): Add a line describing --verbose. 1997-10-06 13:09:28 +00:00
Jim Meyering
4e3811ecb7 *** empty log message *** 1997-10-06 13:07:47 +00:00
Jim Meyering
40fa6cc699 (make_path): Print verbose message using fprintf, not error. 1997-10-06 13:07:14 +00:00
Jim Meyering
7a4cc2dff1 (make_path): Print message IFF the directory was
just created and the format string is non-NULL.
1997-10-06 13:03:29 +00:00
Jim Meyering
b6bc4c265e *** empty log message *** 1997-10-06 05:32:54 +00:00
Jim Meyering
f8265dd3d8 *** empty log message *** 1997-10-06 05:25:59 +00:00
Jim Meyering
48f0a08332 fix braino 1997-10-06 05:23:49 +00:00
Jim Meyering
c8eb28c84b . 1997-10-06 05:04:16 +00:00
Jim Meyering
e13ae8ea54 (noinst_HEADERS): Add savedir.h. 1997-10-06 05:04:11 +00:00
Jim Meyering
947713c68b . 1997-10-06 04:58:33 +00:00
Jim Meyering
7bff8c9b50 (struct cp_options): New field: require_preserve. 1997-10-06 04:58:26 +00:00
Jim Meyering
eb2947bbbd (cp_option_init): Initialize it.
(main): Set to 1 for -a and for -p.
1997-10-06 04:58:05 +00:00
Jim Meyering
fe12b67113 (copy_internal): Use require_preserve. 1997-10-06 04:57:40 +00:00
Jim Meyering
22a4f828db . 1997-10-04 01:57:39 +00:00
Jim Meyering
03ae2c6b97 Remove old-style savedir dcl.
Include savedir.h for prototype.
1997-10-04 01:57:12 +00:00
Jim Meyering
3445d47a10 Remove old-style savedir dcl.
Include savedir.h for prototype.
1997-10-04 01:56:23 +00:00
Jim Meyering
a3ce4b756d *** empty log message *** 1997-10-04 01:55:11 +00:00
Jim Meyering
5873623fd5 (savedir): Declare DIR parameter to be const.
Include savedir.h.
1997-10-04 01:43:58 +00:00
Jim Meyering
a1faaa73d3 . 1997-10-04 01:43:13 +00:00
Jim Meyering
792a091d75 . 1997-10-03 03:28:05 +00:00
Jim Meyering
f76c31d4cd *** empty log message *** 1997-10-03 03:26:20 +00:00
Jim Meyering
e762d8ee73 (test_vector): Remove _%Z from test `9'.
The timezone string was too system dependent.
1997-10-03 03:26:01 +00:00
Jim Meyering
a8cf858306 (fspec_init_dp): Use DTTOIF. Fix syntax error in code
that gets compiled on BSDI3.0 systems.
1997-10-03 02:44:33 +00:00
Jim Meyering
20694b3960 *** empty log message *** 1997-09-30 04:33:59 +00:00
Jim Meyering
0b26f06ded . 1997-09-30 04:32:56 +00:00
Jim Meyering
5bdecc6cc7 . 1997-09-30 04:29:50 +00:00
Jim Meyering
d24d45b2b4 . 1997-09-30 04:29:22 +00:00
Jim Meyering
65ad25c5dc . 1997-09-30 04:19:40 +00:00
Jim Meyering
a84d00ebd3 . 1997-09-30 04:19:04 +00:00
Jim Meyering
40dfaeed5c *** empty log message *** 1997-09-28 16:33:22 +00:00
Jim Meyering
de2517a1f4 (remove_dir): Update old comment. 1997-09-28 03:51:00 +00:00
Jim Meyering
4a32d010ef [enum RM_status]: Remove `= 2'. Add comment.
(dir_stack): Describe.
(remove_file): Revert s/fprintf/error/ change.  We don't want newlines at
end of prompt strings.
(remove_dir): Likewise.
1997-09-28 03:47:53 +00:00
Jim Meyering
3fca18930e . 1997-09-28 02:40:17 +00:00
Jim Meyering
02ade899f9 Integrate test to detect bug in memcmp from the
Next x86 OpenStep C library.  Test program from William Lewis.
1997-09-28 02:32:26 +00:00
Jim Meyering
3e90df41a9 tweak comment 1997-09-27 23:45:54 +00:00
Jim Meyering
a25003439a . 1997-09-27 23:24:39 +00:00
Jim Meyering
7899ec4a2b *** empty log message *** 1997-09-27 23:24:27 +00:00
Jim Meyering
dd3edcb414 . 1997-09-25 12:59:56 +00:00
Jim Meyering
b7bfc2d2a2 Make echo conform to POSIX. By default, don't
interpret backslash escape sequences.
[V9_DEFAULT]: Don't #define.
(usage): Document -e option.
(main): Recognize options iff POSIXLY_CORRECT is not set.
From Bruno Haible.
1997-09-25 12:58:50 +00:00
Jim Meyering
9177f974da *** empty log message *** 1997-09-22 12:00:10 +00:00
Jim Meyering
77e927d501 od's new z format 1997-09-22 05:00:50 +00:00
Jim Meyering
aa298d7bbe [struct tspec] (hexl_mode_trailer): Rename from `trailer.'
(dump_hexl_mode_trailer): Rename from dump_string_trailer.
Use fputs and putchar instead of trivial or %-less printfs.
(decode_one_format): Parenthesize each field_width assignment in an
argument list to make the side effect a little more apparent.
(write_block): Use fputs and putchar instead of trivial or %-less printfs.
(dump_strings): Cast string_min to off_t to avoid long-standing warning.
1997-09-22 04:59:57 +00:00
Jim Meyering
f1e4f5cf82 Patch from John Kodis. 1997-09-21 20:23:58 +00:00
Jim Meyering
3f11fc8041 . 1997-09-21 13:24:12 +00:00
Jim Meyering
535135e826 *** empty log message *** 1997-09-21 13:22:37 +00:00
Jim Meyering
89d48552da (IN_CTYPE_DOMAIN): Define.
(ISSPACE): Guard with IN_CTYPE_DOMAIN.
(ISDIGIT): Guard with IN_CTYPE_DOMAIN.
(TOUPPER): Guard with IN_CTYPE_DOMAIN.
From Bruno Haible.
1997-09-21 13:22:20 +00:00
Jim Meyering
29becc72ac (IN_CTYPE_DOMAIN): Define.
(ISSPACE): Define.
(ISDIGIT): Define.
(TOLOWER): Define.
1997-09-21 13:19:19 +00:00
Jim Meyering
99e8d1ac51 (IN_CTYPE_DOMAIN): Define.
(ISSPACE): Define.
(readname): Use ISSPACE, not isspace.
1997-09-21 13:15:48 +00:00
Jim Meyering
0ea3fb3c07 *** empty log message *** 1997-09-21 04:55:06 +00:00
Jim Meyering
7449936903 (libfu_a_SOURCES): Use hash.c, not oa-hash.c.
(noinst_HEADERS): Use hash.h, not oa-hash.h.
1997-09-21 04:54:52 +00:00
Jim Meyering
004c583882 *** empty log message *** 1997-09-21 04:53:29 +00:00
Jim Meyering
fc802521f3 Use hash.c (chaining) functions, not those of oa-hash.c
(open addressing).  The latter implementation is wonderful when
deletions are rare, but doen't support the frequent deletions
required to implement the active directory set.
1997-09-21 04:53:14 +00:00
Jim Meyering
2e1922942c (hash_free_0): Remove prototype.
Move function to precede first use.
1997-09-21 04:41:19 +00:00
Jim Meyering
2dd7796da0 (ZALLOC): Take Ht parameter instead of relying on one being in scope. 1997-09-20 19:38:29 +00:00
Jim Meyering
20539121db *** empty log message *** 1997-09-20 19:33:46 +00:00
Jim Meyering
daeaff8c14 *** empty log message *** 1997-09-20 19:33:05 +00:00
Jim Meyering
e760bf3708 *** empty log message *** 1997-09-20 18:32:40 +00:00
Jim Meyering
5f20a181aa . 1997-09-17 17:06:52 +00:00
Jim Meyering
2fef57672b use malloc, not xmalloc in obstack #define
use Uli's prime code, not near-prime
(hash_initialize): don't require prime table size as input
(hash_insert_if_absent): When rehashing, choose new size that is 2N+1, not 2N.
1997-09-17 17:06:26 +00:00
Jim Meyering
bba93bb711 use HASH_H, not _hash_h_ in #ifndef
fix comment: hash_rehash does *not* use hash_key_freer
(HASH_INSERT_NEW_ITEM): Take new arg: Failp.
1997-09-17 17:04:21 +00:00
Jim Meyering
fa1ece2973 from ti/hdlsv 1997-09-17 16:03:32 +00:00
Jim Meyering
4d09de4e63 (main): Call parse_long_options only if POSIXLY_CORRECT
is *not* set.  Reported by Frank T Lofaro.
1997-09-17 13:04:31 +00:00
Jim Meyering
95343e720d *** empty log message *** 1997-09-17 13:04:19 +00:00
Jim Meyering
96c7801048 *** empty log message *** 1997-09-17 13:03:53 +00:00
Jim Meyering
85f74e093b *** empty log message *** 1997-09-17 12:58:45 +00:00
Jim Meyering
ddc44210a4 update from FSF .../copies 1997-09-17 12:46:45 +00:00
Jim Meyering
e52535af00 *** empty log message *** 1997-09-16 20:03:02 +00:00
Jim Meyering
3a0056aa09 . 1997-09-16 19:59:02 +00:00
Jim Meyering
3e9c67e385 tweak message strings 1997-09-15 18:46:42 +00:00
Jim Meyering
821279c98b tweak message strings 1997-09-15 18:45:47 +00:00
Jim Meyering
312d78eca6 (install_handler): Rename from sig_handler. 1997-09-15 14:18:15 +00:00
Jim Meyering
6a4773b2d9 *** empty log message *** 1997-09-15 14:17:42 +00:00
Jim Meyering
c9b7235ea0 *** empty log message *** 1997-09-15 14:13:37 +00:00
Jim Meyering
942ecc6d94 *** empty log message *** 1997-09-15 14:11:35 +00:00
Jim Meyering
2c53930cbb *** empty log message *** 1997-09-15 14:11:02 +00:00
Jim Meyering
dc0e1d4cb5 . 1997-09-15 14:03:35 +00:00
Jim Meyering
5b421e3103 *** empty log message *** 1997-09-15 14:03:23 +00:00
Jim Meyering
c2bbb8e875 (do_link): Perform S_ISLNK test only if lstat succeeded. 1997-09-15 14:02:47 +00:00
Jim Meyering
1822e3bd68 declare malloc 1997-09-15 13:26:09 +00:00
Jim Meyering
b4204ff74c (remove_cwd_entries): Don't free entries -- they're alloca'd, now. 1997-09-15 13:24:43 +00:00
Jim Meyering
45853bf653 Use memcpy, not stpncpy. This fixes a UMR. 1997-09-15 12:34:25 +00:00
Jim Meyering
ee62735854 . 1997-09-15 04:11:30 +00:00
Jim Meyering
370d12c241 . 1997-09-15 03:59:24 +00:00
Jim Meyering
a3576f081b *** empty log message *** 1997-09-15 03:58:06 +00:00
Jim Meyering
425f0215f8 *** empty log message *** 1997-09-15 03:57:04 +00:00
Jim Meyering
eaa1924e36 Write implementation overview. 1997-09-15 03:56:19 +00:00
Jim Meyering
e33f73ba8d remove obsolete comment 1997-09-15 03:31:42 +00:00
Jim Meyering
e01071c1d7 tweak comment 1997-09-15 03:24:03 +00:00
Jim Meyering
6d77a9d346 (full_filename): Use realloc, not xrealloc. 1997-09-15 03:23:12 +00:00
Jim Meyering
f5be07c5c7 *** empty log message *** 1997-09-15 03:21:40 +00:00
Jim Meyering
2adf9f295e . 1997-09-15 03:21:35 +00:00
Jim Meyering
bf886f22b7 . 1997-09-15 03:20:53 +00:00
Jim Meyering
cb92ddeb53 (EXTRA_DIST): Add realloc.m4. 1997-09-15 03:20:45 +00:00
Jim Meyering
ddbf490eb4 (EXTRA_DIST): Add realloc.c. 1997-09-15 03:19:52 +00:00
Jim Meyering
8dae34819a . 1997-09-14 17:43:43 +00:00
Jim Meyering
5a74e8ae4e (equal): Use STREQ (form system.h) instead.
(siginfo_handler): New function to handle SIGINFO/SIGUSR1.
(handle_sig): New function.
(main): Use handle_sig instead of open-coding it.
Handle SIGINFO (or SIGUSR1 if that's not defined).
(print_stats): Move definition to precede first reference.
Remove prototype.
1997-09-14 17:42:33 +00:00
Jim Meyering
ac1bb837ca *** empty log message *** 1997-09-14 16:25:33 +00:00
Jim Meyering
686c105caa *** empty log message *** 1997-09-14 16:24:35 +00:00
Jim Meyering
cb628f9be3 Don't include signal.h. 1997-09-14 16:24:17 +00:00
Jim Meyering
cc76a774e3 . 1997-09-14 16:04:48 +00:00
Jim Meyering
9aef26e3d0 (main) [--traditional]: Don't give diagnostic about there
being more than three arguments if there are *no* arguments specified.
Reported by Jochen Hein.
1997-09-14 16:03:58 +00:00
Jim Meyering
c2210482ee *** empty log message *** 1997-09-14 16:03:23 +00:00
Jim Meyering
fe57800e4c . 1997-09-14 04:18:48 +00:00
Jim Meyering
d5f56f9cd7 (struct col_info) [valid_len]: Rename from `valid' which conflicted
with the macro in locale.h of SunOS4.1.4.
1997-09-14 04:16:37 +00:00
Jim Meyering
22c2c69da4 (print_horizontal): Add some non-essential curly braces. 1997-09-14 04:08:52 +00:00
Jim Meyering
d9f0902259 (print_many_per_line): Add some non-essential curly braces. 1997-09-14 04:07:28 +00:00
Jim Meyering
f61c317736 *** empty log message *** 1997-09-14 03:49:47 +00:00
Jim Meyering
aa8336c08f *** empty log message *** 1997-09-14 03:48:17 +00:00
Jim Meyering
548bd7cf11 s/__inline/inline/. 1997-09-14 03:41:26 +00:00
Jim Meyering
b208989a75 (PARAMS): Define.
(rm): Guard prototype in forward dcl with PARAMS.
1997-09-14 03:39:26 +00:00
Jim Meyering
849a724b76 (PARAMS): Define.
Guard prototype with PARAMS.
1997-09-14 03:36:38 +00:00
Jim Meyering
12c9be75c3 *** empty log message *** 1997-09-14 03:36:21 +00:00
Jim Meyering
322a087077 *** empty log message *** 1997-09-14 03:32:59 +00:00
Jim Meyering
230bf922dd [HAVE_CONFIG_H]: Include config.h. 1997-09-14 03:32:09 +00:00
Jim Meyering
1778193988 Use 1' not +1' -- some compilers (sunos' cc) can't parse it. 1997-09-14 03:22:39 +00:00
Jim Meyering
85bb9aba83 [HAVE_CONFIG_H]: Include config.h. 1997-09-14 03:20:38 +00:00
Jim Meyering
3e8068282b Include config.h. 1997-09-14 03:12:35 +00:00
Jim Meyering
f8356568bd . 1997-09-14 02:27:14 +00:00
Jim Meyering
fced145a6f . 1997-09-14 02:21:09 +00:00
Jim Meyering
75b17ba951 Add tests 19a and 19b. 1997-09-14 02:20:55 +00:00
Jim Meyering
76bf15f3f5 . 1997-09-14 02:19:38 +00:00
Jim Meyering
9610d3daa9 . 1997-09-14 02:19:15 +00:00
Jim Meyering
1b868e164e *** empty log message *** 1997-09-14 02:02:14 +00:00
Jim Meyering
561028f4ac merge from rm-fix branch 1997-09-14 02:00:48 +00:00
Jim Meyering
ea05c547f4 *** empty log message *** 1997-09-11 15:47:49 +00:00
Jim Meyering
16f5d0a11b Add new option: --verbose (-v).
From Andreas Schwab.
1997-09-11 15:45:20 +00:00
Jim Meyering
85925f6fe8 *** empty log message *** 1997-09-05 02:14:21 +00:00
Jim Meyering
a72c09608f . 1997-09-02 05:00:43 +00:00
Jim Meyering
163218e095 *** empty log message *** 1997-09-02 04:58:33 +00:00
Jim Meyering
7f519808bb (EXTRA_DIST): Remove mvdir.c and rmdir.c.
Add lstat.c and stat.c.
1997-09-02 04:58:17 +00:00
Jim Meyering
eb5eb4b184 . 1997-09-02 04:57:10 +00:00
Jim Meyering
30e5bc03f5 *** empty log message *** 1997-09-02 04:29:38 +00:00
Jim Meyering
08774a1668 *** empty log message *** 1997-09-02 02:16:28 +00:00
Jim Meyering
c08bc8f748 update from libc 1997-09-02 02:15:10 +00:00
Jim Meyering
90df7a344e *** empty log message *** 1997-09-02 02:09:01 +00:00
Jim Meyering
156f60ff68 (EXTRA_DIST): Add stat.m4. 1997-09-02 02:08:52 +00:00
Jim Meyering
b3dd93b242 . 1997-09-02 02:07:40 +00:00
Jim Meyering
2d93d34275 [!STDC_HEADERS]: Declare malloc. 1997-09-02 01:51:39 +00:00
Jim Meyering
262b5c6bb6 . 1997-09-02 01:46:30 +00:00
Jim Meyering
dbc71f8be4 *** empty log message *** 1997-09-01 20:44:46 +00:00
Jim Meyering
84de13d6fe *** empty log message *** 1997-09-01 20:43:47 +00:00
Jim Meyering
f59116179b *** empty log message *** 1997-09-01 20:32:07 +00:00
Jim Meyering
ba1852e6f1 (do_link): Form destination file name (when DEST is a directory) before
checking whether SOURCE and DEST are the same file.
1997-09-01 20:31:00 +00:00
Jim Meyering
3f27c2b654 update gettext-0.31 1997-09-01 20:27:07 +00:00
Jim Meyering
fbd9c922b4 . 1997-09-01 20:25:23 +00:00
Jim Meyering
2d87c8508a *** empty log message *** 1997-09-01 20:23:34 +00:00
Jim Meyering
9d07e1de5c . 1997-09-01 20:08:08 +00:00
Jim Meyering
8188297c46 . 1997-09-01 16:30:41 +00:00
Jim Meyering
7515c4a994 *** empty log message *** 1997-09-01 02:36:48 +00:00
Jim Meyering
da4376bb23 . 1997-09-01 02:15:13 +00:00
Jim Meyering
173606dfc6 Describe who's --lookup option. 1997-09-01 02:12:18 +00:00
Jim Meyering
3d061807bb *** empty log message *** 1997-09-01 02:09:17 +00:00
Jim Meyering
bb22f10c37 (main): New option --lookup (-l).
(print_entry): Only call canon_host if user explicitly asks for it.
(usage): Describe --lookup.
From Galen Hazelwood.
1997-09-01 02:08:58 +00:00
Jim Meyering
4aa3cfc3db *** empty log message *** 1997-08-31 22:19:30 +00:00
Jim Meyering
fe531f25e6 *** empty log message *** 1997-08-31 22:17:25 +00:00
Jim Meyering
8a788f502e . 1997-08-31 22:15:57 +00:00
Jim Meyering
a98be62643 tweak comment 1997-08-31 22:10:46 +00:00
Jim Meyering
c0270058fe *** empty log message *** 1997-08-31 22:09:54 +00:00
Jim Meyering
f5d34cdce9 (change_file_group): Call describe_change with a 3-state argument.
(describe_change): Report whether the operation was successful,
a failure, or that the request was a no-op.
Before, running `chown --verb bin /' as non-root reported
  group of / changed to bin
  chgrp: you are not a member of group `bin': Not owner
1997-08-31 22:07:53 +00:00
Jim Meyering
72bf7437cb (change_file_owner): Call describe_change with a 3-state argument.
(describe_change): Report whether the operation was successful,
a failure, or that the request was a no-op.
Before, running `chown --verb bin /' as non-root reported
  owner of / changed to bin
  chown: /: Not owner
1997-08-31 22:06:10 +00:00
Jim Meyering
7d6f2ec75d . 1997-08-31 21:25:29 +00:00
Jim Meyering
2e828fa1eb . 1997-08-31 21:24:49 +00:00
Jim Meyering
13bbc7d111 *** empty log message *** 1997-08-31 21:22:28 +00:00
Jim Meyering
0180caa0c5 . 1997-08-31 21:22:13 +00:00
Jim Meyering
5ca242d9a0 *** empty log message *** 1997-08-31 21:20:56 +00:00
Jim Meyering
e340982761 *** empty log message *** 1997-08-31 21:02:35 +00:00
Jim Meyering
c98bd4b9f3 *** empty log message *** 1997-08-31 21:02:10 +00:00
Jim Meyering
031bd9ac31 (EXTRA_DIST): Add lstat.m4. 1997-08-31 21:00:36 +00:00
Jim Meyering
7435d83352 . 1997-08-31 21:00:05 +00:00
Jim Meyering
ea4e209b2b . 1997-08-31 20:52:51 +00:00
Jim Meyering
a0ccfc52c8 *** empty log message *** 1997-08-31 20:42:52 +00:00
Jim Meyering
42c0f57881 add description 1997-08-31 20:08:26 +00:00
Jim Meyering
a14eed3cb2 Ifdef out dcl of now-unused nogroup_alist. 1997-08-31 18:13:56 +00:00
Jim Meyering
59e5cb3ea3 *** empty log message *** 1997-08-31 16:18:10 +00:00
Jim Meyering
377f2fbc55 . 1997-08-31 16:17:56 +00:00
Jim Meyering
e81e47663f . 1997-08-31 15:28:07 +00:00
Jim Meyering
e7d45e86d1 *** empty log message *** 1997-08-31 15:27:53 +00:00
Jim Meyering
9ecc0c5517 . 1997-08-31 15:21:13 +00:00
Jim Meyering
83e5d2b29b (libfu_a_SOURCES): Add oa-hash.c.
(noinst_HEADERS): Add oa-hash.h.
1997-08-31 15:20:57 +00:00
Jim Meyering
fffe6020aa *** empty log message *** 1997-08-31 13:10:35 +00:00
Jim Meyering
e7eb4ca699 . 1997-08-31 13:09:27 +00:00
Jim Meyering
e5c36df55c (EXTRA_DIST): Add d-ino.m4 and d-type.m4. 1997-08-31 13:09:01 +00:00
Jim Meyering
0f3d7f59a9 [!STDC_HEADERS]: Declare malloc. 1997-08-31 13:00:00 +00:00
Jim Meyering
c3cdbb8d3f (change_file_mode): Call describe_change with a 3-state argument.
(describe_change): Report whether the operation was successful,
a failure, or that the request was a no-op.
Before, running `chmod --verb u-r /' as non-root reported
  mode of / changed to 0355 (-wxr-xr-x)
  chmod: /: Not owner
Reported by Philippe Schnoebelen <phs@hobbes.fing.edu.uy>
1997-08-31 12:57:15 +00:00
Jim Meyering
2a1bb90a7e *** empty log message *** 1997-08-31 12:54:14 +00:00
Jim Meyering
2f1095be00 *** empty log message *** 1997-08-31 12:36:07 +00:00
Jim Meyering
72a9275f65 *** empty log message *** 1997-08-24 21:06:00 +00:00
Jim Meyering
92715a3867 . 1997-08-24 20:56:13 +00:00
Jim Meyering
4a3c8c53e3 *** empty log message *** 1997-08-24 20:55:56 +00:00
Jim Meyering
1f3b5a3dd8 *** empty log message *** 1997-08-24 20:51:07 +00:00
Jim Meyering
a1d61ec70e *** empty log message *** 1997-08-24 20:50:16 +00:00
Jim Meyering
c83761c759 . 1997-08-24 20:42:54 +00:00
Jim Meyering
88eb1da1da . 1997-08-24 20:30:06 +00:00
Jim Meyering
6b099582bd . 1997-08-24 19:18:03 +00:00
Jim Meyering
fada8884a3 update from glibc 1997-08-22 14:55:01 +00:00
Jim Meyering
2fc81ec762 . 1997-08-18 20:03:36 +00:00
Jim Meyering
b5ef7a4be7 (show_date): Don't hang if strftime produces an empty string. 1997-08-18 19:50:35 +00:00
Jim Meyering
41347fc40e *** empty log message *** 1997-08-16 17:41:45 +00:00
Jim Meyering
2bd0aa26c2 *** empty log message *** 1997-08-16 17:40:57 +00:00
Jim Meyering
962cb92146 *** empty log message *** 1997-08-16 17:39:59 +00:00
Jim Meyering
db00e4acb1 *** empty log message *** 1997-08-16 16:41:15 +00:00
Jim Meyering
754478c6f5 . 1997-08-16 16:40:55 +00:00
Jim Meyering
caa34fb806 . 1997-08-16 12:25:56 +00:00
Jim Meyering
aad3038b71 (mode_create_from_ref): Remove dcl of unused local, I. 1997-08-03 20:28:45 +00:00
Jim Meyering
a4def0664d . 1997-08-03 17:53:25 +00:00
Jim Meyering
8075bc7e8a s/\<_ (/_(/g 1997-08-03 02:49:43 +00:00
Jim Meyering
c710dafd38 . 1997-08-03 02:07:58 +00:00
Jim Meyering
dc16b600a5 *** empty log message *** 1997-08-03 02:07:26 +00:00
Jim Meyering
c091f9835b indent 1997-08-03 02:04:28 +00:00
Jim Meyering
6993b5780b . 1997-08-03 01:54:34 +00:00
Jim Meyering
6e08ff4f71 *** empty log message *** 1997-08-02 17:36:07 +00:00
Jim Meyering
6df8557d33 . 1997-08-02 17:32:04 +00:00
Jim Meyering
9608d12c39 *** empty log message *** 1997-08-02 17:31:01 +00:00
Jim Meyering
dd9b964694 *** empty log message *** 1997-08-02 17:21:18 +00:00
Jim Meyering
b8f7d0087d *** empty log message *** 1997-08-02 17:20:39 +00:00
Jim Meyering
70611589b3 . 1997-08-02 17:10:12 +00:00
Jim Meyering
94c7a45d8e *** empty log message *** 1997-08-02 16:51:37 +00:00
Jim Meyering
9a012ca907 . 1997-08-02 15:29:55 +00:00
Jim Meyering
9bb6fc54aa . 1997-08-02 15:25:25 +00:00
Jim Meyering
eb1e691d00 . 1997-08-02 15:23:59 +00:00
Jim Meyering
45764b9af2 Remove @code{} from node names. 1997-07-30 16:31:56 +00:00
Jim Meyering
fb1e26800f . 1997-07-29 03:08:13 +00:00
Jim Meyering
910502b044 Add new option: --reference=FILE. 1997-07-29 03:05:45 +00:00
Jim Meyering
2ff9982e42 Add new option: --reference=FILE. 1997-07-29 03:04:58 +00:00
Jim Meyering
f6e8b41a5f (mode_create_from_ref): Don't use umask.
Don't use MODE_X_IF_ANY_X.
1997-07-29 03:03:49 +00:00
Jim Meyering
42e5deb36c (usage): tweak -p descr 1997-07-29 02:55:45 +00:00
Jim Meyering
8bff24291a *** empty log message *** 1997-07-29 02:30:55 +00:00
Jim Meyering
16340bfef0 . 1997-07-29 02:30:34 +00:00
Jim Meyering
fa5f24c4c6 *** empty log message *** 1997-07-29 02:06:33 +00:00
Jim Meyering
b78d012e9d Declare pointer parameters const as appropriate. 1997-07-29 02:06:25 +00:00
Jim Meyering
43e8e1245e (main): New option --preserve-timestamps (-p).
(install_file_in_file): Change timestamps if requested.
(change_timestamps): New function.
(usage): Describe --preserve-timestamps.
Correct --mode description.
From Galen Hazelwood.
1997-07-29 01:57:24 +00:00
Jim Meyering
8569f8ffa9 replace with new version from libc 1997-07-26 02:55:14 +00:00
Jim Meyering
821c3f6fda use Cambridge, Mass example, not Azores one 1997-07-25 12:47:34 +00:00
Jim Meyering
e36d0b9d89 big patch from Paul Eggert 1997-07-25 12:43:58 +00:00
Jim Meyering
720e3dc89a *** empty log message *** 1997-07-22 01:37:42 +00:00
Jim Meyering
4fcb103952 *** empty log message *** 1997-07-22 01:36:06 +00:00
Jim Meyering
a267b98f43 *** empty log message *** 1997-07-22 01:27:45 +00:00
Jim Meyering
afc73d862b (parse_obsolescent_option): #ifdef-out portability warning. 1997-07-22 01:26:35 +00:00
Jim Meyering
9a1113585f *** empty log message *** 1997-07-22 01:16:55 +00:00
Jim Meyering
f1ee29eac3 (checkfp): tweak comment 1997-07-19 15:08:53 +00:00
Jim Meyering
1bc1e233ca *** empty log message *** 1997-07-19 15:05:08 +00:00
Jim Meyering
dddf0d13df (checkfp): Print the `disorder' message. Include both
the number and the contents of the first out-of-order line, in addition
to the file name.  Change meaning of return value.
(check): Don't print disorder message here.
Adjust test of checkfp's return value.
Feature suggestion from Karl Heuer.
1997-07-19 15:04:59 +00:00
Jim Meyering
b9551de86a *** empty log message *** 1997-07-19 15:02:19 +00:00
Jim Meyering
5bd6c2209a *** empty log message *** 1997-07-19 13:38:57 +00:00
Jim Meyering
08bc7404bc This means that if multiple users are given on the command line, the
error return code is that of the last, so earlier failures can't be
detected.
1997-07-16 13:46:53 +00:00
Jim Meyering
78b6253dea *** empty log message *** 1997-07-16 12:55:40 +00:00
Jim Meyering
10055f8398 *** empty log message *** 1997-07-16 12:55:05 +00:00
Jim Meyering
1a91d3ecc2 *** empty log message *** 1997-07-16 12:52:00 +00:00
Jim Meyering
74ed7c9f94 Exit with status from `id' command.
Don't print `$name : $groups' if id fails.
Reported by Austin Donnelly.
1997-07-16 12:49:36 +00:00
Jim Meyering
f46c35a744 *** empty log message *** 1997-07-15 14:12:45 +00:00
Jim Meyering
f574936f77 correct cpp-indentation 1997-07-15 14:05:07 +00:00
Jim Meyering
8abf2733e0 Merge with FSF. 1997-07-15 14:03:22 +00:00
Jim Meyering
8c6a8c7743 tweak again 1997-07-14 18:32:12 +00:00
Jim Meyering
197d78d428 new version from kb, with patch 1997-07-14 18:15:50 +00:00
Jim Meyering
64c3a36a0e . 1997-07-14 15:43:25 +00:00
Jim Meyering
bf72a762d8 . 1997-07-14 15:42:30 +00:00
Jim Meyering
78364faa8b . 1997-07-14 15:42:10 +00:00
Jim Meyering
92435ee51b . 1997-07-14 15:37:48 +00:00
Jim Meyering
589e18a1f7 Tweak new examples based on Karl B.s suggestions. 1997-07-14 14:41:16 +00:00
Jim Meyering
566451e5be remove fixme 1997-07-13 23:37:57 +00:00
Jim Meyering
8ea7459457 (EXTRA_DIST): Remove explicit mention of texinfo.texi.
Now, automake includes it automatically.
1997-07-13 23:20:39 +00:00
Jim Meyering
3a58489962 . 1997-07-13 23:03:49 +00:00
Jim Meyering
3ef794ff5f turn off losing tests 1997-07-13 23:03:31 +00:00
Jim Meyering
e30da6776c *** empty log message *** 1997-07-13 22:50:19 +00:00
Jim Meyering
a33a897f29 *** empty log message *** 1997-07-13 22:49:39 +00:00
Jim Meyering
f43d9ab8a6 *** empty log message *** 1997-07-13 22:06:36 +00:00
Jim Meyering
8acf7844dc *** empty log message *** 1997-07-13 22:04:17 +00:00
Jim Meyering
a3adba60c8 . 1997-07-13 21:59:43 +00:00
Jim Meyering
25ec733e8d Include xstrtoul.h.
Remove global variable, unit_size.
(atou): Remove now-unused function.
(parse_unit): Likewise.
(string_to_ull): New function.
(head): Take new parameter, count_lines.  Use it instead of unit_size.
Update callers.
(head_file): Likewise.
(main): Use string_to_ull, not atou/parse_unit.
1997-07-13 21:59:34 +00:00
Jim Meyering
08e6bd4da0 *** empty log message *** 1997-07-13 20:38:15 +00:00
Jim Meyering
7c97f17f9b *** empty log message *** 1997-07-13 20:27:15 +00:00
Jim Meyering
5b0298d2b5 . 1997-07-13 19:47:00 +00:00
Jim Meyering
7e73237bac . 1997-07-13 19:45:14 +00:00
Jim Meyering
8568fe543b . 1997-07-13 16:36:10 +00:00
Jim Meyering
1c9c4d7230 More tests -- add TZ-free equivalents. 1997-07-13 16:36:04 +00:00
Jim Meyering
3e129adac4 add ``First, a quote:'' 1997-07-13 15:08:31 +00:00
Jim Meyering
8f6f2a4cc1 don't include error.h. 1997-07-13 13:31:30 +00:00
Jim Meyering
4f110142bb *** empty log message *** 1997-07-13 04:28:05 +00:00
Jim Meyering
23497d87b7 (DISTFILES): Remove ChangeLog. 1997-07-13 04:27:57 +00:00
Jim Meyering
73f3647fe2 . 1997-07-13 04:25:15 +00:00
Jim Meyering
a305c4a189 . 1997-07-13 04:13:53 +00:00
Jim Meyering
b05ff2249b Rename lots of `this' locals.
Make some parameters `const'.
(who): Update read_utmp caller.
(search_entries): Take additional param: utmp_buf.
Update read_utmp caller.
(who_am_i): Update read_utmp caller.
1997-07-13 04:13:40 +00:00
Jim Meyering
7fe4db1451 (users): Update read_utmp caller. 1997-07-13 03:57:00 +00:00
Jim Meyering
393e4a8c36 (uptime): Update read_utmp caller. 1997-07-13 03:56:29 +00:00
Jim Meyering
aba02b5978 (PARAMS): Update prototype.
(utmp_contents): Remove dcl.
1997-07-13 03:55:38 +00:00
Jim Meyering
708d4a74de (read_utmp): Take new params: count and buffer.
Return boolean indicating failure.
Now, caller must give diagnostic upon.
1997-07-13 03:54:00 +00:00
Jim Meyering
6e1340462e Add FIXME.
indent
1997-07-13 03:13:09 +00:00
Jim Meyering
aeea923e99 indent 1997-07-13 03:10:15 +00:00
Jim Meyering
d461077920 indent 1997-07-13 03:08:45 +00:00
Jim Meyering
d0c515b45c indent 1997-07-13 03:07:36 +00:00
Jim Meyering
4b84ea8745 indent 1997-07-13 02:58:35 +00:00
Jim Meyering
51a0fa60c8 . 1997-07-13 02:54:48 +00:00
Jim Meyering
2d8c67c7d5 *** empty log message *** 1997-07-13 02:54:28 +00:00
Jim Meyering
ad0f8c9b71 (uptime): rename users to n_users 1997-07-13 02:52:58 +00:00
Jim Meyering
67fe78f11c declare xmalloc
(users): rename users to n_users
1997-07-13 02:52:24 +00:00
Jim Meyering
b18c5abf1c (who): rename users to n_users 1997-07-13 02:51:34 +00:00
Jim Meyering
59f66af0f4 . 1997-07-13 02:49:39 +00:00
Jim Meyering
4cf5b77561 . 1997-07-13 02:19:46 +00:00
Jim Meyering
65738c9162 . 1997-07-13 02:18:14 +00:00
Jim Meyering
6341f011d7 . 1997-07-13 02:17:51 +00:00
Jim Meyering
558f0fa3ea revert to previous version 1997-07-12 23:16:59 +00:00
Jim Meyering
7673378e0a *** empty log message *** 1997-07-12 23:01:17 +00:00
Jim Meyering
97fca9a840 *** empty log message *** 1997-07-12 22:56:55 +00:00
Jim Meyering
f124c131af *** empty log message *** 1997-07-12 22:55:13 +00:00
Jim Meyering
ee81a6190f *** empty log message *** 1997-07-12 22:53:07 +00:00
Jim Meyering
d1a07e1ad2 (MAYBE_SET_TZ_UTC0): New macro.
(set_tz): New function.
(batch_convert): If necessary, save the initial value of TZ and
for each date in the file, restore it before each call to get_date,
then set it to UTC0 before each show_date call.
(main): Don't set TZ before calling get_date.
Set TZ after get_date call and before show_date call.
Reported by Matthew Braun.
1997-07-12 22:52:57 +00:00
Jim Meyering
3dcfda7bda . 1997-07-12 22:32:21 +00:00
Jim Meyering
3f275a59a5 add a --file test 1997-07-12 22:32:12 +00:00
Jim Meyering
67132b480f Add a few more date examples. Prompted by question from Galen H. 1997-07-12 22:10:03 +00:00
Jim Meyering
d9921abba7 . 1997-07-12 21:59:08 +00:00
Jim Meyering
626e48dcca . 1997-07-12 21:57:51 +00:00
Jim Meyering
f1994a3f6e *** empty log message *** 1997-07-12 21:57:38 +00:00
Jim Meyering
b6a57ff354 add date2sec and sec2date from the manual 1997-07-12 21:56:35 +00:00
Jim Meyering
0e6b6d4c5c add utc-1 1997-07-12 21:07:26 +00:00
Jim Meyering
309b8c57fb *** empty log message *** 1997-07-12 20:34:34 +00:00
Jim Meyering
a3294a01b0 *** empty log message *** 1997-07-11 16:07:52 +00:00
Jim Meyering
204f6064e5 remove `minimally' 1997-07-11 16:07:29 +00:00
Jim Meyering
17ca5d8c74 remove `minimally' 1997-07-11 16:07:06 +00:00
Jim Meyering
4a2df8ccf5 new one from Karl 1997-07-11 15:27:19 +00:00
Jim Meyering
2d1baaeb31 *** empty log message *** 1997-07-10 18:30:08 +00:00
Jim Meyering
1a2964b988 *** empty log message *** 1997-07-10 18:29:27 +00:00
Jim Meyering
4170f6416d . 1997-07-10 18:25:12 +00:00
Jim Meyering
735847657b *** empty log message *** 1997-07-10 18:25:05 +00:00
Jim Meyering
8d6318c532 . 1997-07-10 17:32:31 +00:00
Jim Meyering
36df273199 . 1997-07-10 17:31:40 +00:00
Jim Meyering
1db47deedb . 1997-07-10 17:31:29 +00:00
Jim Meyering
d6bdaed4c0 . 1997-07-10 17:30:50 +00:00
Jim Meyering
1481657ca1 . 1997-07-10 17:29:09 +00:00
Jim Meyering
99f8939150 *** empty log message *** 1997-07-10 16:19:13 +00:00
Jim Meyering
45eb103e4c convert obsolescent tests to posix-style ones 1997-07-10 16:16:17 +00:00
Jim Meyering
990c0d0fad Include $0 in `wrong number of elements...' message. 1997-07-10 15:56:33 +00:00
Jim Meyering
9295c4fdca Remove $. from duplicate test name message 1997-07-10 15:56:09 +00:00
Jim Meyering
41c1791ddd *** empty log message *** 1997-07-10 15:38:43 +00:00
Jim Meyering
c8fbd48706 *** empty log message *** 1997-07-10 15:35:01 +00:00
Jim Meyering
ccd911b026 . 1997-07-10 15:34:31 +00:00
Jim Meyering
deb5b314a5 . 1997-07-10 15:26:51 +00:00
Jim Meyering
c23aa46af6 *** empty log message *** 1997-07-09 21:14:40 +00:00
Jim Meyering
8dfdbd327c . 1997-07-09 18:11:59 +00:00
Jim Meyering
49ec273bd5 . 1997-07-09 18:03:56 +00:00
Jim Meyering
b09226e1b4 *** empty log message *** 1997-07-09 18:03:12 +00:00
Jim Meyering
d68871bdec (make_path): Chdir to `/' before starting if necessary.
Call save_cwd before while loop rather than from first iteration inside it.
1997-07-09 18:02:07 +00:00
Jim Meyering
6b544d3d8a . 1997-07-09 17:57:48 +00:00
Jim Meyering
2624654a78 (strverscmp): Add `parenentheses around arithmetic in operand of |'
as suggested by gcc -Wall.
1997-07-09 15:55:41 +00:00
Jim Meyering
2d3d80a3f2 indent 1997-07-09 15:42:54 +00:00
Jim Meyering
f6ffa56bc6 fix typo in comment 1997-07-09 15:33:27 +00:00
Jim Meyering
8d71f2bb2d . 1997-07-09 15:32:31 +00:00
Jim Meyering
a9309ad872 . 1997-07-09 15:31:29 +00:00
Jim Meyering
bc1634bc1a *** empty log message *** 1997-07-09 15:30:22 +00:00
Jim Meyering
6da5f51d3a . 1997-07-09 15:28:14 +00:00
Jim Meyering
a8068a365d *** empty log message *** 1997-07-09 15:28:01 +00:00
Jim Meyering
29e0df8652 . 1997-07-09 15:21:03 +00:00
Jim Meyering
f9f695018a *** empty log message *** 1997-07-09 14:21:30 +00:00
Jim Meyering
64320d0470 . 1997-07-09 14:20:14 +00:00
Jim Meyering
5e0ce74b1d . 1997-07-09 14:18:57 +00:00
Jim Meyering
47489a5b27 *** empty log message *** 1997-07-09 14:16:44 +00:00
Jim Meyering
a5d528d3d7 *** empty log message *** 1997-07-09 14:12:13 +00:00
Jim Meyering
3358aeb5d3 . 1997-07-09 14:05:31 +00:00
Jim Meyering
bc16e65a8e *** empty log message *** 1997-07-09 14:05:22 +00:00
Jim Meyering
6bb8c4e904 Add comments. 1997-07-09 14:00:27 +00:00
Jim Meyering
89743fce5c *** empty log message *** 1997-07-08 23:20:50 +00:00
Jim Meyering
8f19e15873 *** empty log message *** 1997-07-08 23:06:36 +00:00
Jim Meyering
c2f3a114a8 *** empty log message *** 1997-07-08 23:05:32 +00:00
Jim Meyering
ba6af15f00 *** empty log message *** 1997-07-08 23:04:58 +00:00
Jim Meyering
0c073269a5 . 1997-07-08 23:00:29 +00:00
Jim Meyering
4e9441a1e7 . 1997-07-08 22:44:58 +00:00
Jim Meyering
c2b8fe4acf . 1997-07-08 22:43:38 +00:00
Jim Meyering
f3a329069e (mode_create_from_ref): New function. 1997-07-06 21:28:04 +00:00
Jim Meyering
244fb561f8 (mode_create_from_ref): Add prototype.
(MODE_MASK_ALL): New define.
(MODE_BAD_REFERENCE): New define.
1997-07-06 21:27:44 +00:00
Jim Meyering
2cd9474cb6 (getuidbyname): Declare parameter to be const.
(getgidbyname): Declare parameter to be const.
1997-07-06 21:27:07 +00:00
Jim Meyering
abd1bad4b6 (noinst_HEADERS): Add strverscmp.h. 1997-07-06 21:25:57 +00:00
Jim Meyering
f066a3acfe . 1997-07-06 21:25:19 +00:00
Jim Meyering
83c3f08048 declare stpcpy 1997-07-06 21:24:10 +00:00
Jim Meyering
d0caad54ae Add new option: --sort=version (-v). 1997-07-06 21:23:42 +00:00
Jim Meyering
f873ad6e6c (libfu_a_SOURCES): Add strverscmp.c.
(noinst_HEADERS): Add strverscmp.h.
1997-07-06 14:47:50 +00:00
Jim Meyering
0c5e6d93cd *** empty log message *** 1997-07-06 13:52:12 +00:00
Jim Meyering
2b0ecc7fa5 (print_long_format): Reflect changes in semantics of getuser, getgroup. 1997-07-06 13:51:16 +00:00
Jim Meyering
afe6283539 (getuser): Return NULL (rather than stringified uid) upon lookup failure.
(getgroup): Likewise.
(getuidbyname) [NOT_USED]: #ifdef-out unused function.
(getgidbyname) [NOT_USED]: #ifdef-out unused function.
1997-07-06 13:50:29 +00:00
Jim Meyering
0735c835a9 Change some #ifdef to #if.
Indent a cpp directive.
1997-07-06 11:57:38 +00:00
Jim Meyering
a1cf1abf4d *** empty log message *** 1997-07-05 22:52:33 +00:00
Jim Meyering
1fca2b262a *** empty log message *** 1997-07-05 22:50:58 +00:00
Jim Meyering
08f38fd930 (parse_obsolescent_option): If POSIXLY_CORRECT is set, give
a diagnostic and fail when there are two or more non-option arguments.
1997-07-05 22:50:32 +00:00
Jim Meyering
573588283f . 1997-07-05 13:24:11 +00:00
Jim Meyering
8e14d7accc *** empty log message *** 1997-07-05 13:23:18 +00:00
Jim Meyering
77ef7e08a7 *** empty log message *** 1997-07-05 08:26:21 +00:00
Jim Meyering
ac0ee614d6 Redefine/undef getusershell around inclusion of <unistd.h>
(via system.h) so Cray's int-returning prototype doesn't conflict
with our char*-returning one.
1997-07-05 08:25:58 +00:00
Jim Meyering
8e04be3e8d . 1997-07-04 23:05:22 +00:00
Jim Meyering
4369606f15 regenerate with updated mk-script 1997-07-04 23:04:21 +00:00
Jim Meyering
f014f4f60f *** empty log message *** 1997-07-04 19:12:34 +00:00
Jim Meyering
581b1540f5 Redirect output of cmp to /dev/null. 1997-07-04 19:12:25 +00:00
Jim Meyering
a7da25a2bb *** empty log message *** 1997-07-04 19:05:12 +00:00
Jim Meyering
14608042dd . 1997-07-04 19:01:55 +00:00
Jim Meyering
f8bedd0047 . 1997-07-04 15:02:30 +00:00
Jim Meyering
4d8f9c4929 regenerate with updated ../Makefile.am.in 1997-07-04 15:02:06 +00:00
Jim Meyering
1e80216861 regenerate with updated mk-script 1997-07-04 15:01:57 +00:00
Jim Meyering
b541bff3de . 1997-07-04 15:01:06 +00:00
Jim Meyering
bea4748f5c regenerate with updated mk-script 1997-07-04 14:43:55 +00:00
Jim Meyering
19d151cbbd regenerate with updated ../Makefile.am.in 1997-07-04 14:43:06 +00:00
Jim Meyering
d61ab3fc24 . 1997-07-04 14:42:16 +00:00
Jim Meyering
70cfca742f *** empty log message *** 1997-07-04 08:20:55 +00:00
Jim Meyering
677ddac432 (validate): Create test files in $(srcdir), not in build dir. 1997-07-04 08:09:15 +00:00
Jim Meyering
93b02c5289 *** empty log message *** 1997-07-04 07:53:28 +00:00
Jim Meyering
22ff29fe3e (apply_attributes): New function.
(copy_reg): Use apply_attributes instead of open-coding the pieces.
Now, failure to preserve file attributes does not cause mv to change
its exit status, and such failures elicit warning diagnostics.  This
behavior is required by POSIX.  Before, failure to preserve ownership
due to insufficient access was diagnosed only for root.
Prompted by a report from Bengt Martensson.
1997-07-03 12:16:41 +00:00
Jim Meyering
ab171ee6b5 *** empty log message *** 1997-07-03 12:13:31 +00:00
Jim Meyering
c86d0a7a45 *** empty log message *** 1997-07-03 10:29:48 +00:00
Jim Meyering
4396edc12e (test_vector): Remove bogus TZ=GMT environment setting. 1997-07-03 10:28:51 +00:00
Jim Meyering
442d670b3a . 1997-07-02 16:09:39 +00:00
Jim Meyering
7a280a0fda (STRTOX): Convert function header in macro definition
to K&R-style.  Otherwise, ansi2knr would fail to convert the function
definitions to K&R for old style compilers.  From Kaveh Ghazi.
1997-07-02 16:07:44 +00:00
Jim Meyering
df05506016 *** empty log message *** 1997-07-01 11:55:55 +00:00
Jim Meyering
b3580d0a75 . 1997-07-01 11:50:44 +00:00
Jim Meyering
2499628bff (make_path): Reorder stat-then-mkdir-if-missing
calls so that mkdir is called first.  Before make_path would first
`stat' a directory, then call mkdir if it didn't exist.  But if
some other process created the directory between the stat & mkdir,
the mkdir would fail with EEXIST.  Diagnosis and suggestion from
Greg McGary.
1997-07-01 11:50:39 +00:00
Jim Meyering
b5e0f033a6 *** empty log message *** 1997-07-01 11:50:08 +00:00
Jim Meyering
059ccb6ac7 [putenv]: Undefine before including system headers.
Otherwise, the declaration of *rpl_putenv* conflicts with the system
prototype on at least Irix5.3.  From Marcus Daniels.
1997-07-01 11:30:08 +00:00
Jim Meyering
5f14bb768e *** empty log message *** 1997-06-30 04:00:48 +00:00
Jim Meyering
7f490dad0e . 1997-06-30 03:53:28 +00:00
Jim Meyering
3e81211212 . 1997-06-30 01:58:23 +00:00
Jim Meyering
3f0b15ac80 *** empty log message *** 1997-06-29 22:26:54 +00:00
Jim Meyering
41faa55aed (base_name_strip_trailing_slashes): Remove. 1997-06-29 22:26:18 +00:00
Jim Meyering
04c0cd59a5 (base_name_strip_trailing_slashes): new function. 1997-06-29 22:25:54 +00:00
Jim Meyering
6ad0d51107 (copy): Add FIXME comment. 1997-06-29 22:24:26 +00:00
Jim Meyering
bc8c5033e3 *** empty log message *** 1997-06-29 22:21:51 +00:00
Jim Meyering
dc404c4107 (copy_reg): New parameter, SOURCE_STATS.
(do_move): Update caller.
(movefile): Take new boolean parameter, DEST_IS_DIR,
to save a stat per moved file when the destination is a directory.
(main): Call movefile with additional argument.
(strip_trailing_slashes_2): New function.
(movefile): Remove trailing slashes from dest.  Otherwise, stat ("b/")
fails with ENOTDIR on systems including Linux w/libc 2.0.30.
Reproduce with `rm -rf a b; mkdir a; touch b; ./mv a b/'.
(do_move): Fix misleading comment.
1997-06-29 22:21:42 +00:00
Jim Meyering
e44678aac2 *** empty log message *** 1997-06-29 21:24:26 +00:00
Jim Meyering
42a63be148 *** empty log message *** 1997-06-29 21:13:33 +00:00
Jim Meyering
1226259896 Remove _sys_putenv cruft and just rename the function itself. 1997-06-29 21:05:05 +00:00
Jim Meyering
cabc10b909 *** empty log message *** 1997-06-29 20:26:38 +00:00
Jim Meyering
90e9fd9c77 . 1997-06-29 20:24:27 +00:00
Jim Meyering
0935e2ce3f *** empty log message *** 1997-06-29 20:21:38 +00:00
Jim Meyering
611cf8e97b *** empty log message *** 1997-06-29 20:19:45 +00:00
Jim Meyering
3d9239c750 fix it right 1997-06-29 20:18:58 +00:00
Jim Meyering
551c02f7b6 Define-away putenv only if it's not already defined. 1997-06-29 20:12:52 +00:00
Jim Meyering
90c131fa21 . 1997-06-29 13:52:16 +00:00
Jim Meyering
a6b6c95b83 *** empty log message *** 1997-06-29 13:50:57 +00:00
Jim Meyering
25c1d1dccd *** empty log message *** 1997-06-29 13:49:53 +00:00
Jim Meyering
d9741142c8 . 1997-06-29 13:34:51 +00:00
Jim Meyering
a84d2bada4 Set and export LANGUAGE, LC_ALL, and LANG
so tests get english strings.  From Ulrich Drepper.
1997-06-29 12:19:43 +00:00
Jim Meyering
9654920c40 . 1997-06-29 03:27:24 +00:00
Jim Meyering
a13135d09e Move the OPENOPTS def from end to beginning of else clause so it's closer
to the one in the then clause.
1997-06-29 01:56:36 +00:00
Jim Meyering
f657d65570 update from automake-1.2 1997-06-25 17:05:56 +00:00
Jim Meyering
9bcfe15afe . 1997-06-25 17:01:22 +00:00
Jim Meyering
4378dcecdf . 1997-06-25 16:08:03 +00:00
Jim Meyering
fa4894b30c . 1997-06-25 15:38:35 +00:00
Jim Meyering
6700c89ac7 Use variable width columns when printing in multi-column mode.
(init_col_info): New function.
(print_current_files): Call init_col_info if format is
`many_per_line' or `horizontal'.
(print_many_per_line): Calculate optimum column widths.
(print_horizontal): Likewise.
From Ulrich Drepper.
1997-06-22 19:52:24 +00:00
Jim Meyering
d18dc59619 *** empty log message *** 1997-06-22 04:04:07 +00:00
Jim Meyering
973f13ccb2 . 1997-06-22 04:01:43 +00:00
Jim Meyering
e148f6d293 . 1997-06-22 03:51:36 +00:00
Jim Meyering
3841b591c1 . 1997-06-22 03:50:14 +00:00
Jim Meyering
e8b0678fed . 1997-06-22 03:49:51 +00:00
Jim Meyering
08f074fb34 *** empty log message *** 1997-06-22 03:38:08 +00:00
Jim Meyering
2f91f08a79 . 1997-06-22 03:32:37 +00:00
Jim Meyering
9bf8c1c229 . 1997-06-16 18:02:08 +00:00
Jim Meyering
504b9fe47a . 1997-06-16 18:01:32 +00:00
Jim Meyering
57f7889059 comment 1997-06-16 17:50:23 +00:00
Jim Meyering
8b4d49fc79 . 1997-06-16 17:42:33 +00:00
Jim Meyering
a6526f2171 (eval6): Accept new unary operator, quote.
From Karl Heuer.
1997-06-16 17:01:24 +00:00
Jim Meyering
bfc9115ee5 *** empty log message *** 1997-06-16 16:58:28 +00:00
Jim Meyering
5e3188fba4 . 1997-06-16 16:57:55 +00:00
Jim Meyering
57c0f5cfff (EXTRA_DIST): Add putenv.m4. 1997-06-16 16:57:02 +00:00
Jim Meyering
19342feca7 . 1997-06-16 16:45:15 +00:00
Jim Meyering
7b097c0e37 add copyright 1997-06-16 16:15:30 +00:00
Jim Meyering
952a76e506 tweak error message 1997-06-16 16:12:04 +00:00
Jim Meyering
0dcca900cc (full_write): Add comment regarding failure due to bug in
Linux Slackware 1.2.13 kernel.
1997-06-15 15:06:52 +00:00
Jim Meyering
ab029fd3e5 . 1997-06-15 13:35:02 +00:00
Jim Meyering
acdc74dbf5 Rewrite using save-cwd.c and chdir to remove quadratic component of complexity.
Before, it processed O(n^2) directory name components via stat and mkdir.
Now it's O(n).  This makes mkdir -p a lot more efficient when creating
directories with very many components.  On a Linux 2.0.30 ext2fs filesystem
this command: mkdir -p `perl -e 'print "a/" x 500'`  now runs in 0.77 seconds
(user+sys).  Contrast that with the 9.5(!) seconds it took before.
1997-06-15 13:34:47 +00:00
Jim Meyering
1830d29be9 Add test that -o 0 works. 1997-06-15 11:47:46 +00:00
Jim Meyering
3b4748d124 *** empty log message *** 1997-06-15 11:42:55 +00:00
Jim Meyering
50e65a424c (init_header) [T_BUF_FMT]: Output the 4-digit year (not the
2-digit abbreviation) in each page header.  Reported by Noah Friedman.
1997-06-15 11:40:47 +00:00
Jim Meyering
aca4091fae *** empty log message *** 1997-06-14 19:33:13 +00:00
Jim Meyering
2add756624 *** empty log message *** 1997-06-14 17:32:00 +00:00
Jim Meyering
2f1768f676 (cut_fields): Detect when the input is empty and handle
that special case.  Before `cut -f1 </dev/null' would improperly
output a single newline.  Reported by Phil Richards.
1997-06-14 17:31:40 +00:00
Jim Meyering
4f0bef5377 . 1997-06-14 16:45:00 +00:00
Jim Meyering
4dc1f7070b . 1997-06-14 16:36:22 +00:00
Jim Meyering
63ca47adfc proof reading from kb 1997-06-13 16:07:12 +00:00
Jim Meyering
c8460daf24 . 1997-06-12 16:40:53 +00:00
Jim Meyering
a6062bfb05 document expr's new quote operator 1997-06-12 16:32:08 +00:00
Jim Meyering
83461932b5 *** empty log message *** 1997-06-12 15:07:26 +00:00
Jim Meyering
23c6ab8674 *** empty log message *** 1997-06-12 15:07:05 +00:00
Jim Meyering
25f6a4a7c0 remove blank line at end and add copyright
tweak cpp indentation
1997-06-12 12:58:47 +00:00
Jim Meyering
8eebff2029 *** empty log message *** 1997-06-12 11:51:11 +00:00
Jim Meyering
6ecad0839e (eval6): Accept new unary operator, quote. From Karl Heuer. 1997-06-12 11:50:58 +00:00
Jim Meyering
9fb965dfd8 Add comment for posixly_correct. 1997-06-12 11:47:34 +00:00
Jim Meyering
bcdaf2c1a5 fix typo in expr/index doc.
from kwzh
1997-06-12 11:27:04 +00:00
Jim Meyering
e737958ebb . 1997-06-11 20:19:30 +00:00
Jim Meyering
44df08ee55 *** empty log message *** 1997-06-11 20:19:23 +00:00
Jim Meyering
8406b91aba (docolon): Test (re_buffer.re_nsub > 0) rather than
searching for `\(' to determine whether to return 0 or the empty
string.  Before it would improperly return '' if the pattern
contained a substring like this: `\\('.  From Karl Heuer.
For example, running expr c : '\\(' should print `0'.
1997-06-11 20:18:15 +00:00
Jim Meyering
2078f2391e . 1997-06-06 14:30:11 +00:00
Jim Meyering
f442eb2941 . 1997-06-03 20:01:55 +00:00
Jim Meyering
f1390de4c3 [HAVE_UNISTD_H]: Include unistd.h.
John Gatewood Ham reported that this is necessary for DJGPP/Win95.
1997-06-03 20:01:47 +00:00
Jim Meyering
93ede2c8e1 *** empty log message *** 1997-06-03 20:01:14 +00:00
Jim Meyering
ae7a2a007a . 1997-06-02 14:29:50 +00:00
Jim Meyering
1f107588fa . 1997-06-01 18:47:56 +00:00
Jim Meyering
a45a7e3819 . 1997-06-01 17:59:08 +00:00
Jim Meyering
5f0bf654a4 (mk-script): Depend on ../../config.status. 1997-06-01 17:58:27 +00:00
Jim Meyering
985bd80461 . 1997-06-01 17:20:42 +00:00
Jim Meyering
8bb2bf5d28 *** empty log message *** 1997-06-01 17:20:31 +00:00
Jim Meyering
cc167bce98 *** empty log message *** 1997-06-01 17:16:30 +00:00
Jim Meyering
f5291be83e Add tests using `next'. 1997-06-01 17:16:23 +00:00
Jim Meyering
2c0e561933 (OtherTable): Interpret `next' as 1 (not 2) units.
Patch from Richard Sharman <rsharman@magmacom.com>.
1997-06-01 17:15:51 +00:00
Jim Meyering
a488983890 fix for abs pathnames 1997-05-30 14:00:47 +00:00
Jim Meyering
94468e0921 indent cpp directives 1997-05-29 13:20:25 +00:00
Jim Meyering
4377246ee3 update from automake-1.1p 1997-05-29 13:19:34 +00:00
Jim Meyering
6edc738156 correct/normalize indentation in cpp directives 1997-05-28 12:19:28 +00:00
Jim Meyering
4f690a51e3 update from FSF 1997-05-28 12:01:33 +00:00
Jim Meyering
7eaf75e3b1 *** empty log message *** 1997-05-28 11:43:25 +00:00
Jim Meyering
4354caa2d4 (read_filesystem_list): Add `|| defined (__OpenBSD__)'
to the NetBSD #if so OpenBSD also uses the f_fstypename member.
(fstype_to_string): Add `&& !defined (__OpenBSD__)' to the NetBSD #if
expression to exclude this function definition.  OpenBSD 2.1 beta
doesn't need it.  Patch from Hugh Daniel <hugh@ecotone.xanadu.com>
1997-05-28 11:42:29 +00:00
Jim Meyering
106775512b *** empty log message *** 1997-05-28 11:40:16 +00:00
Jim Meyering
72559c0e30 *** empty log message *** 1997-05-27 14:17:08 +00:00
Jim Meyering
437b98461e Don't include backupfile.h. 1997-05-27 14:16:49 +00:00
Jim Meyering
074c7edade *** empty log message *** 1997-05-27 13:55:45 +00:00
Jim Meyering
e4f25ca7b1 Use base_name, not basename. 1997-05-27 13:55:23 +00:00
Jim Meyering
dd547a84bf . 1997-05-27 12:50:39 +00:00
Jim Meyering
bc50ceb474 clean up for -Wall 1997-05-27 11:05:40 +00:00
Jim Meyering
4c2adcbd56 Use base_name, not basename. 1997-05-27 11:04:41 +00:00
Jim Meyering
f0c27dac9e Use base_name, not basename.
Use X, not CP_OPTIONS.
1997-05-27 11:00:50 +00:00
Jim Meyering
93e9fef09f (libfu_a_SOURCES): Add addext.c.
Remove getversion.c;  get_version is now in backupfile.c.
Add basename.c since it's no longer replacible.
1997-05-27 10:45:34 +00:00
Jim Meyering
187f712b73 *** empty log message *** 1997-05-27 10:39:22 +00:00
Jim Meyering
aa8b6cf83c Change dcl of program_name so it doesn't conflict with the ubiquitous char* one. 1997-05-27 10:39:10 +00:00
Jim Meyering
46a9863033 . 1997-05-27 10:31:04 +00:00
Jim Meyering
c213bae308 Update from patch-2.2.93. 1997-05-27 10:30:45 +00:00
Jim Meyering
ca55ba3715 Update from FSF via patch-2.2.93. 1997-05-27 09:41:25 +00:00
Jim Meyering
168eb7758e Update from FSF via patch-2.2.93. 1997-05-27 09:39:25 +00:00
Jim Meyering
96c4c01019 Update from glibc via patch-2.2.93. 1997-05-27 09:38:06 +00:00
Jim Meyering
926c6c3301 *** empty log message *** 1997-05-26 04:46:57 +00:00
Jim Meyering
8805ede31b (copy_internal): When preserving symlinks (--no-dereference) and the
destination file is a symlink, use stat (not xstat) to see if it points
back to the source.  Reported by James <james@albion.glarp.com>.
1997-05-26 04:46:47 +00:00
Jim Meyering
cd29ba84ab *** empty log message *** 1997-05-26 04:43:47 +00:00
Jim Meyering
a65a081656 declare strip_trailing_slashes 1997-05-25 21:25:28 +00:00
Jim Meyering
8b36f9cbcd *** empty log message *** 1997-05-25 21:24:44 +00:00
Jim Meyering
0cc1681a5b Remove global variable opt_human_readable.
(enum Output_units): Rename from output_size.
Rename size_* to Unit_*.
Add Unit_variable to correspond to --human-readable.
(convert_blocks): Remove now-unused definition.
(human_readable): Rename paramater n_bytes to n_blocks.
Adjust conversions to reflect fact that input is now number of
512-byte blocks, not bytes.
(print_size): New function.
(du_files): Use print_size instead of open coding it.
(count_entry): Always count in units of 512-byte blocks to delay.
This lets du accumulate totals corresponding to a terabyte before
overflowing 32-bit long int.
Use print_size instead of open coding it.
1997-05-25 21:23:15 +00:00
Jim Meyering
e3e8f658c4 *** empty log message *** 1997-05-25 15:17:31 +00:00
Jim Meyering
07876bcb5d (convert_blocks): Add definition. 1997-05-25 15:10:03 +00:00
Jim Meyering
11080b7544 (convert_blocks): Remove definition.
Indent cpp directives.
1997-05-25 14:22:55 +00:00
Jim Meyering
1b71b3372e (convert_blocks): Remove now-unnecessary #undef.
(du_files): Pass output_size unchanged to convert_blocks.  No need
to test output_size for size_bytes, convert_blocks handles that
correctly.
(count_entry): Likewise.
1997-05-25 14:21:41 +00:00
Jim Meyering
1bfb2c3ec7 *** empty log message *** 1997-05-25 14:11:59 +00:00
Jim Meyering
1ba34180d7 (main): Implement new --max-depth=N option.
Based on the idea and a patch from Torbjorn Lindgren.
(du_files): Likewise.
(count_entry): Likewise.
[AIX]: Remove unused #pragma alloca.
1997-05-25 14:11:50 +00:00
Jim Meyering
54a61c3cf6 Remove FIXME.
Add spurious curlies and an empty line.
1997-05-25 13:00:01 +00:00
Jim Meyering
f735e157e9 . 1997-05-25 03:47:31 +00:00
Jim Meyering
5708e7bba8 *** empty log message *** 1997-05-25 03:47:21 +00:00
Jim Meyering
6919955eb1 New options: --ignore-fail-on-non-empty and --verbose.
(remove_parents): Implement new options.
(main): Likewise.
1997-05-25 03:46:46 +00:00
Jim Meyering
4f99d359c8 . 1997-05-25 03:15:30 +00:00
Jim Meyering
6fd92cf72b *** empty log message *** 1997-05-24 18:27:46 +00:00
Jim Meyering
2ebfd210cd . 1997-05-24 18:26:59 +00:00
Jim Meyering
d5659aa5e1 . 1997-05-24 18:12:59 +00:00
Jim Meyering
9add219c87 . 1997-05-24 18:11:33 +00:00
Jim Meyering
4d347c9e1f *** empty log message *** 1997-05-24 14:43:51 +00:00
Jim Meyering
90721ff4a4 (read_filesystem_list): Show automount-related
duplicate filesystems only when --all specified.  With suggestions
from Stuart Kemp.
1997-05-24 14:43:21 +00:00
Jim Meyering
1024238089 Indent cpp directives. 1997-05-24 14:42:40 +00:00
Jim Meyering
b0f8e63615 . 1997-05-24 14:31:23 +00:00
Jim Meyering
c8062f789d . 1997-05-24 14:13:55 +00:00
Jim Meyering
3dc7a93409 . 1997-05-24 14:11:19 +00:00
Jim Meyering
59ed92cdcf . 1997-05-23 13:23:49 +00:00
Jim Meyering
d0a506b84b . 1997-05-02 04:02:17 +00:00
Jim Meyering
ccb48f46d6 indent cpp-directives 1997-05-01 20:53:59 +00:00
Jim Meyering
9080de09fc indent cpp-directives 1997-05-01 20:51:16 +00:00
Jim Meyering
44848c0887 update from automake-1.1o 1997-04-29 15:48:14 +00:00
Jim Meyering
f6a1207cf9 . 1997-04-29 15:22:05 +00:00
Jim Meyering
6c04dfc1e1 *** empty log message *** 1997-04-27 23:46:02 +00:00
Jim Meyering
795d254715 (STRTOX): Don't fail because of extra character(s) following a
character constant.  Give the *warning* only if !POSIXLY_CORRECT.
1997-04-27 23:45:57 +00:00
Jim Meyering
e5ce0d8b3e *** empty log message *** 1997-04-27 23:33:54 +00:00
Jim Meyering
9778fd673b (cfcc_msg): File-scope constant.
(STRTOX): Use new constant as error message format string in macro.
Suggestion from Andreas Schwab.
1997-04-27 23:33:49 +00:00
Jim Meyering
3a46eb9695 . 1997-04-27 23:12:01 +00:00
Jim Meyering
3a84136d8c . 1997-04-27 20:18:07 +00:00
Jim Meyering
a77bf7510f *** empty log message *** 1997-04-27 20:13:21 +00:00
Jim Meyering
afdfd95be8 *** empty log message *** 1997-04-27 20:12:16 +00:00
Jim Meyering
3f9d8ee21b . 1997-04-27 19:41:52 +00:00
Jim Meyering
480a5db227 . 1997-04-27 19:41:16 +00:00
Jim Meyering
9874f0eedf changes suggested by kb 1997-04-24 13:00:51 +00:00
Jim Meyering
39361c9d6e patch from Andreas S. 1997-04-21 14:55:26 +00:00
Jim Meyering
7f74dcb1a6 s/;/. in comment to placate francois 1997-04-10 03:46:01 +00:00
Jim Meyering
738818ee66 . 1997-04-07 16:59:43 +00:00
Jim Meyering
90e1281e8e *** empty log message *** 1997-04-07 15:24:38 +00:00
Jim Meyering
907f15c7d6 *** empty log message *** 1997-04-07 15:21:33 +00:00
Jim Meyering
258186e1ce . 1997-04-07 15:10:57 +00:00
Jim Meyering
2e1059b400 . 1997-04-07 15:08:56 +00:00
Jim Meyering
58a9554b17 . 1997-04-07 00:44:33 +00:00
Jim Meyering
ca70b66b72 (STRTOX): New macro to eliminate code duplication.
(xstrtod, xstrtol, xstrtoul): Remove functions.
Use the STRTOX instead.
1997-04-06 20:58:16 +00:00
Jim Meyering
b3f0804efd . 1997-04-06 20:42:00 +00:00
Jim Meyering
ebce57b0e6 *** empty log message *** 1997-04-06 20:36:48 +00:00
Jim Meyering
3426e7ca7a Change most char* dcls to const char*. 1997-04-06 19:32:19 +00:00
Jim Meyering
39b444e420 Reorder functions to obviate forward decls. 1997-04-06 19:30:07 +00:00
Jim Meyering
00ea088ccd . 1997-04-04 03:29:25 +00:00
Jim Meyering
cd45cc7335 (EXTRA_DIST): Update file list. 1997-04-04 03:27:35 +00:00
Jim Meyering
7ecf5ed43b . 1997-04-04 03:18:54 +00:00
Jim Meyering
6d648c45ed Add test from Phil Richards. 1997-04-04 03:18:04 +00:00
Jim Meyering
cc093a9945 (main): Implement new --max-depth=N option.
Based on the idea and a patch from Torbjorn Lindgren.
(du_files): Likewise.
(count_entry): Likewise.
1997-03-27 05:47:56 +00:00
Jim Meyering
3416bdb6e1 *** empty log message *** 1997-03-27 05:45:12 +00:00
Jim Meyering
a37da82c38 . 1997-03-23 21:27:46 +00:00
Jim Meyering
f101a9b57f *** empty log message *** 1997-03-23 21:22:14 +00:00
Jim Meyering
c7b5fd2423 . 1997-03-23 02:56:47 +00:00
Jim Meyering
f1c111d469 *** empty log message *** 1997-03-23 02:30:09 +00:00
Jim Meyering
24ffa56fd0 . 1997-03-22 19:54:32 +00:00
Jim Meyering
e269fcdb28 *** empty log message *** 1997-03-22 06:06:02 +00:00
Jim Meyering
61ac269c6e *** empty log message *** 1997-03-22 06:05:16 +00:00
Jim Meyering
e71f8cf087 *** empty log message *** 1997-03-22 06:03:31 +00:00
Jim Meyering
b524db4e87 *** empty log message *** 1997-03-22 05:58:50 +00:00
Jim Meyering
37e05875d5 *** empty log message *** 1997-03-22 05:58:26 +00:00
Jim Meyering
fcc31060fa . 1997-03-21 03:16:03 +00:00
Jim Meyering
e328e25bd1 . 1997-03-21 03:14:53 +00:00
Jim Meyering
bf435650e1 . 1997-03-21 03:11:55 +00:00
Jim Meyering
cd0aba1c14 . 1997-03-21 03:10:21 +00:00
Jim Meyering
a1e46876c6 . 1997-03-19 02:57:20 +00:00
Jim Meyering
66c246fc17 cpp-indent
Change a few #ifdef to #if.
Remove 3 spurious #ifdef that were guarding an #undef each.
1997-03-19 02:56:54 +00:00
Jim Meyering
fbe78f2ef6 . 1997-03-19 02:12:42 +00:00
Jim Meyering
33da7dcdda (check_format): Rename local, FORMAT_STRING, to avoid shadowing global.
(print_numbers): Likewise.
1997-03-19 02:12:36 +00:00
Jim Meyering
3f2ded808d (idle_string): Rename local, IDLE, to avoid shadowing global. 1997-03-18 23:34:23 +00:00
Jim Meyering
bcdeccb6a3 (log_su): Resort to getpwuid if getlogin fails.
If no tty name is found, use `none' in the log message.
Based on a patch from Galen Hazelwood.
1997-03-18 12:49:20 +00:00
Jim Meyering
808a6a2308 . 1997-03-14 04:14:37 +00:00
Jim Meyering
29e56fa096 . 1997-03-14 04:09:13 +00:00
Jim Meyering
f02b837782 (main): Allow use of 0 (zero) as the margin offset
argument to the -o option.  Patch from Gary Anderson.
1997-03-14 04:06:12 +00:00
Jim Meyering
294ea6ffc2 . 1997-03-14 04:00:19 +00:00
Jim Meyering
c127695e96 (main): Make sure c1 is not -1 before using it as an
array index.  Patch from Greg McGary.  Although this is truly a
bug, I believe it would not cause tr to misbehave on most systems.
I could not construct a test case with which this bug causes tr
to generate invalid output.
1997-03-14 03:59:21 +00:00
Jim Meyering
d713508802 Add test that -o 0 works. 1997-03-14 03:52:10 +00:00
Jim Meyering
c42ed1e1fb . 1997-03-14 03:30:22 +00:00
Jim Meyering
e64db863dd . 1997-03-14 03:30:02 +00:00
Jim Meyering
40b667e0e9 . 1997-03-14 03:29:41 +00:00
Jim Meyering
effc683cfc (TIME_T_MIN): Work around a bug in Cray C 5.0.3.0. 1997-03-14 03:28:09 +00:00
Jim Meyering
898fd10ec0 . 1997-03-13 05:21:23 +00:00
Jim Meyering
7017b8f67f (change_file_group): Use uid of -1 to indicate
we don't want to change the file's user ID.
1997-03-13 05:19:54 +00:00
Jim Meyering
c230f7db00 Update from gettext-0.10.27. 1997-03-13 05:17:50 +00:00
Jim Meyering
5ed7bf6069 . 1997-03-13 05:17:16 +00:00
Jim Meyering
a7cbdd04cd . 1997-03-13 05:16:47 +00:00
Jim Meyering
4e81181981 (EXTRA_DIST): Add chown.c. 1997-03-13 05:13:18 +00:00
Jim Meyering
1dc27001d5 Add chown.m4. 1997-03-13 05:12:13 +00:00
Jim Meyering
9034e099da . 1997-03-13 05:10:42 +00:00
Jim Meyering
78f4331cab . 1997-03-13 03:54:05 +00:00
Jim Meyering
a9616d4982 . 1997-03-12 01:26:15 +00:00
Jim Meyering
f1fbec95d5 . 1997-03-11 05:11:09 +00:00
Jim Meyering
dd2f783492 . 1997-03-11 05:02:11 +00:00
Jim Meyering
fac7cfba06 . 1997-03-10 04:47:59 +00:00
Jim Meyering
613357b0ab (decode_switches): Ignore value of COLUMNS envionment
variable when it is the empty string.  Suggestion from Ulrich Drepper.
1997-03-10 04:47:32 +00:00
Jim Meyering
de397548a8 comm's exit status 1997-03-10 03:47:13 +00:00
Jim Meyering
8a3180c8f0 . 1997-03-09 06:33:43 +00:00
Jim Meyering
73e03453df . 1997-03-09 06:18:33 +00:00
Jim Meyering
ea805db369 (usage): Fix typo in --help output. From Andreas Schwab. 1997-03-01 04:33:59 +00:00
Jim Meyering
d358cd813b . 1997-02-28 05:02:41 +00:00
Jim Meyering
571f4f4fde . 1997-02-28 05:01:39 +00:00
Jim Meyering
8c93627ccb (tYEAR_UNIT): Increase yyRelYear by $1, not just by 1.
From Andreas Schwab.
1997-02-27 05:53:15 +00:00
Jim Meyering
80409f292d . 1997-02-27 05:52:59 +00:00
Jim Meyering
8b2b45e172 . 1997-02-27 05:49:51 +00:00
Jim Meyering
94cab36432 (re_protect): When there is any potential for ambiguity in a diagnostic,
give explanatory diagnostic in addition to file name.
1997-02-27 05:49:44 +00:00
Jim Meyering
e1b834211b (copy_internal): When there is any potential for
ambiguity in a diagnostic, give explanatory diagnostic in addition
to file name.
1997-02-27 05:49:01 +00:00
Jim Meyering
a0400ec19b . 1997-02-26 13:01:45 +00:00
Jim Meyering
27237bfb10 . 1997-02-26 04:21:01 +00:00
Jim Meyering
df86f458a2 . 1997-02-26 02:21:34 +00:00
Jim Meyering
88c3a362e9 . 1997-02-23 05:47:16 +00:00
Jim Meyering
a4ccff96f9 . 1997-02-23 02:01:27 +00:00
Jim Meyering
6df1efb30c . 1997-02-22 20:41:21 +00:00
Jim Meyering
75bc50c6fc . 1997-02-22 20:34:30 +00:00
Jim Meyering
5cb0201730 . 1997-02-22 20:19:05 +00:00
Jim Meyering
db78b4797a (tMONTH_UNIT): Increase yyRelMonth by $1, not just by 1.
(tDAY_UNIT): Likewise for yyRelDay.
(tHOUR_UNIT): Likewise for yyRelHour.
(tMINUTE_UNIT): Likewise for yyRelMinutes.
(tSEC_UNIT): Likewise for yyRelSeconds.
1997-02-22 20:13:19 +00:00
Jim Meyering
9de7f6a024 . 1997-02-21 02:19:59 +00:00
Jim Meyering
4b0e6d0a33 update from FSF 1997-02-21 02:19:48 +00:00
Jim Meyering
a6ebe05733 . 1997-02-21 02:17:18 +00:00
Jim Meyering
e16668553e update from FSF 1997-02-21 02:16:54 +00:00
Jim Meyering
3b459d46bc . 1997-02-20 05:11:19 +00:00
Jim Meyering
2e31651a02 (factor): Rewrite inner loop to be more efficient.
Patch from Torbjorn Granlund.
1997-02-20 05:11:12 +00:00
Jim Meyering
9e2c86c67a . 1997-02-20 05:06:29 +00:00
Jim Meyering
4af2c36dfa (main): Remove trailing slashes from command line arguments.
Otherwise, running `mkdir x; chmod 644 x; ls -d x/' (note the trailing
slash) makes ls fail with permission denied on at least Linux 1.2.13
and 2.0.14 systems.
1997-02-20 04:54:56 +00:00
Jim Meyering
5234813a09 . 1997-02-19 03:38:52 +00:00
Jim Meyering
3b8313838c . 1997-02-19 03:27:18 +00:00
Jim Meyering
9b47c04ac1 . 1997-02-19 03:25:30 +00:00
Jim Meyering
11332e0c26 Add tests for %U, %V, and %W and for a bug fixed on 1996-03-05.
Remove misleading `-' from leap-1 test.
1997-02-19 03:23:16 +00:00
Jim Meyering
785168be90 . 1997-02-19 03:20:35 +00:00
Jim Meyering
91eb812c61 . 1997-02-19 02:54:43 +00:00
Jim Meyering
2be08dd6d3 . 1997-02-19 00:56:22 +00:00
Jim Meyering
6d09ea7b0d . 1997-02-18 17:46:56 +00:00
Jim Meyering
7bb258353f . 1997-02-18 17:46:04 +00:00
Jim Meyering
35ec0a08b5 . 1997-02-18 15:13:51 +00:00
Jim Meyering
1b1bca8a63 . 1997-02-18 15:13:12 +00:00
Jim Meyering
11e498679b . 1997-02-18 15:12:41 +00:00
Jim Meyering
30979f06d8 . 1997-02-18 02:47:49 +00:00
Jim Meyering
c321e5b51a . 1997-02-18 02:46:29 +00:00
Jim Meyering
bf8b53e78b . 1997-02-18 02:43:59 +00:00
Jim Meyering
1ee3e32c80 . 1997-02-17 04:18:26 +00:00
Jim Meyering
668010de9e . 1997-02-17 04:18:06 +00:00
Jim Meyering
24f79bb72c . 1997-02-17 04:17:09 +00:00
Jim Meyering
1bdee95e06 . 1997-02-17 04:12:20 +00:00
Jim Meyering
90bdeb65ca . 1997-02-17 04:11:19 +00:00
Jim Meyering
522f1f2f27 . 1997-02-17 01:33:48 +00:00
Jim Meyering
0d457a8063 . 1997-02-17 01:30:05 +00:00
Jim Meyering
5db942f46c . 1997-02-17 01:26:54 +00:00
Jim Meyering
80cccededc . 1997-02-17 01:26:13 +00:00
Jim Meyering
dd77d0602a Add missing paren. 1997-02-16 23:49:11 +00:00
Jim Meyering
4722a74bcf (Tests '7.*'): Reflect file-renaming. 1997-02-16 19:14:32 +00:00
Jim Meyering
16632f72fc . 1997-02-16 19:11:10 +00:00
Jim Meyering
be855de208 renamed from T- versions to avoid name-clashes on case-indep filesystems 1997-02-16 19:08:01 +00:00
Jim Meyering
feb2f918b3 (parse_obsolescent_option): Reverse order of args in diagnostic.
Remove `' quotes in diagnostic.
(parse_options): Remove `' quotes in diagnostic.
1997-02-16 14:31:39 +00:00
Jim Meyering
6bdbdae68c fixed off-by-one error 1997-02-12 16:31:01 +00:00
Jim Meyering
59f891e8b8 FIXME: major revamp to use FILE*; passed a few more tests 1997-02-12 16:25:40 +00:00
Jim Meyering
2be25646bd change wording in message 1997-02-09 16:07:38 +00:00
Jim Meyering
4ee12115f0 update copyright 1997-02-09 04:56:33 +00:00
Jim Meyering
7eb03c4372 update copyrights for 1997 1997-02-09 04:54:16 +00:00
Jim Meyering
b7ffe8cdaf update copyrights for 1997 1997-02-09 04:52:50 +00:00
Jim Meyering
dbc538f92b update copyrights for 1997 1997-02-09 04:46:02 +00:00
Jim Meyering
562488ee9c (parse_obsolescent_option): Give warning diagnostic for
(but now accept) obsolescent usage with more than one file argument.
1997-02-09 04:44:47 +00:00
Jim Meyering
3e9c9be49e . 1997-02-08 03:25:12 +00:00
Jim Meyering
9e2ad11286 . 1997-02-07 04:17:25 +00:00
Jim Meyering
5d159ca17a . 1997-02-07 04:04:24 +00:00
Jim Meyering
b7a12bb110 (quote_filename): Allocate two more bytes (for quotes)
when using --quote-name (-Q).
Feb 2 change wasn't complete.  Patch from Mark Harris.
1997-02-06 03:58:09 +00:00
Jim Meyering
155fa29f27 . 1997-02-05 04:20:20 +00:00
Jim Meyering
8257531353 . 1997-02-05 04:07:17 +00:00
Jim Meyering
49e3c8fee2 Bracket inclusion of termios.h with #if HAVE_TERMIOS_H.
Masami Takikawa reported that NeXTStep 3.0 doesn't have termios.h.
1997-02-05 04:06:53 +00:00
Jim Meyering
7a5980964b Dennis Biringer <biringer@textron.mhpcc.af.mil> writes:
| Please note that Hawaii has no daylight savings time (HDT - Hawaii
| Daylight) as stated on page 147 of the tar manual.  We are always on Hawaii
| Standard Time (HST).
|
| Also, on page 146, the Alaska-Hawaii Standard zone (AHST) is called
| Hawaii-Aleutian Standard Time by section 263 of the United States Code.
| (http://tycho.usno.navy.mil/260.html).
|
| Thanks for the effort on the manual,
| Dennis
|
| --
| Dennis Biringer                            535 Lipoa Parkway #149
| Dennis.Biringer@textron.mhpcc.af.mil       Kihei HI 96753
| biringer@mrtc.org                          VOICE: 808-874-3206
1997-02-05 02:35:46 +00:00
Jim Meyering
c1e4806502 [__GNUC__]: Don't define alloca to __builtin_alloca. 1997-02-04 03:52:16 +00:00
Jim Meyering
84ed9c3db9 . 1997-02-04 03:48:17 +00:00
Jim Meyering
3c97cf0102 libitize 1997-02-04 03:30:49 +00:00
Jim Meyering
9e61c5f51a . 1997-02-04 03:29:06 +00:00
Jim Meyering
a0aa288531 libitize 1997-02-04 03:27:13 +00:00
Jim Meyering
1235c944d2 libitize 1997-02-04 03:26:31 +00:00
Jim Meyering
05ff9c82a6 new obstack from libc 1997-02-04 03:20:29 +00:00
Jim Meyering
e4af7abbde . 1997-02-03 05:09:12 +00:00
Jim Meyering
e8bcfd934a Move alloca-related preprocessor code into system.h. 1997-02-03 05:08:19 +00:00
Jim Meyering
1b5a74d1a7 (parse_long_options): Compare getopt_long return
value against -1, not EOF.  Use NULL, not `(int *) 0' as last parameter
in getopt_long call.
1997-02-03 05:06:27 +00:00
Jim Meyering
a2ffd5db02 [__GNUC__]: Don't define alloca to __builtin_alloca. 1997-02-03 04:20:22 +00:00
Jim Meyering
704a69781e . 1997-02-03 03:22:52 +00:00
Jim Meyering
5f24ab538f . 1997-02-03 03:21:02 +00:00
Jim Meyering
6a203a2347 (quote_filename): Don't backslash-escape double quotes.
This fixes a problem whereby columns weren't aligned when some files
contained double quote characters and ls's --escape (-b) option was
used.  Reported by Mark Harris.
1997-02-03 00:10:40 +00:00
Jim Meyering
16e150496f . 1997-02-02 23:51:20 +00:00
Jim Meyering
44a82a9eb6 . 1997-02-02 22:22:37 +00:00
Jim Meyering
a15366696c * src/cp-hash.c (struct entry): Move dcl to this file from cp.h.
(struct htab): Likewise.
No longer include cp.h.  Instead, include the things it used to include.
1997-02-02 22:21:03 +00:00
Jim Meyering
c64a391bb2 . 1997-02-02 21:23:10 +00:00
Jim Meyering
1d286acd9a (hash_insert2): Rename local HTAB to HT to avoid shadowing global. 1997-02-02 20:44:10 +00:00
Jim Meyering
b63df62ce1 [obstack_chunk_alloc]: Define to malloc, not xmalloc
to work better with new obstack functions.
1997-02-02 20:11:54 +00:00
Jim Meyering
ff323743c5 [obstack_chunk_alloc]: Define to malloc, not xmalloc
to work better with new obstack functions.
1997-02-02 20:10:11 +00:00
Jim Meyering
50d2bb5b7b (main): Rename local I to C to avoid shadowing and to
be more consistent.  Declare I in inner scopes.
1997-02-02 20:09:02 +00:00
Jim Meyering
1a375e421b Gutted code -- pieces are in copy.[ch]. 1997-02-02 18:33:19 +00:00
Jim Meyering
09e2cc2fdf use $@, instead of literal `POTFILES' 1997-02-02 16:05:43 +00:00
Jim Meyering
d262a3cc82 (POTFILES): Redirect to an intermediate file and write-protect POTFILES. 1997-02-02 15:43:54 +00:00
Jim Meyering
badb35bdb7 . 1997-02-02 00:09:46 +00:00
Jim Meyering
3cca84e543 . 1997-02-02 00:09:25 +00:00
Jim Meyering
4ea19e3b31 . 1997-02-01 23:12:18 +00:00
Jim Meyering
118cbe89db . 1997-02-01 16:56:47 +00:00
Jim Meyering
f13f9c1936 Reflect renamings. 1997-02-01 16:56:32 +00:00
Jim Meyering
0bda501d01 rename 1997-02-01 16:55:41 +00:00
Jim Meyering
8e6d4e2d3e . 1997-02-01 16:53:08 +00:00
Jim Meyering
c859133450 . 1997-02-01 16:52:02 +00:00
Jim Meyering
1b4dfdc778 . 1997-02-01 16:51:33 +00:00
Jim Meyering
620317a6bf . 1997-02-01 16:51:11 +00:00
Jim Meyering
c1c6d5fa1f (test 10md): Reflect renaming. 1997-02-01 16:48:08 +00:00
Jim Meyering
576b49f9f0 . 1997-02-01 16:47:56 +00:00
Jim Meyering
f18a2cdcd6 . 1997-02-01 16:47:17 +00:00
Jim Meyering
b6aa3e6c17 . 1997-02-01 16:46:06 +00:00
Jim Meyering
2e2fe82afe (spec_to_list): Warn about all filenames that exceed max-length before dying. 1997-02-01 16:44:15 +00:00
Jim Meyering
67c5175138 . 1997-02-01 16:41:08 +00:00
Jim Meyering
bece4592b4 update for 20.1 patch from roland 1997-02-01 16:39:27 +00:00
Jim Meyering
0081aea9e1 . 1997-02-01 13:23:39 +00:00
Jim Meyering
fec37a7211 (init_parameters): For compatibility: use default
separator `TAB' with full length lines.  From Roland Huebner.
1997-02-01 13:23:27 +00:00
Jim Meyering
5d3c42ac61 . 1997-02-01 13:20:02 +00:00
Jim Meyering
cd0b33c839 (usage): Make parenthetical note on --no-dereference a little more general. 1997-02-01 04:49:51 +00:00
Jim Meyering
a7dbd3f5e4 . 1997-02-01 04:25:59 +00:00
Jim Meyering
e077b7593b bracket bug address with <> and append a period 1997-02-01 04:24:58 +00:00
Jim Meyering
a882d55b52 bracket bug address with <> and append a period 1997-02-01 04:24:08 +00:00
Jim Meyering
899a90bfd9 bracket bug address with <> and append a period 1997-02-01 04:23:31 +00:00
Jim Meyering
09f70cf63b Rename globals buffer and buffer_size to have G_ prefix
to avoid shadowing local variables.
1997-02-01 03:29:21 +00:00
Jim Meyering
d4efcf477e (add_line_number): Rename from `number' to avoid shadowing local variables. 1997-02-01 03:25:14 +00:00
Jim Meyering
0e291b59ed . 1997-02-01 03:13:22 +00:00
Jim Meyering
b8c82a8e39 Compare getopt_long return value against -1, not EOF. Use NULL, not '(int *) 0' as last parameter in getopt_long call. 1997-02-01 03:05:36 +00:00
Jim Meyering
4f51b86bfb Compare getopt_long return value against -1, not EOF. Use NULL, not '(int *) 0' as last parameter in getopt_long call. 1997-02-01 03:03:44 +00:00
Jim Meyering
c2d2dec516 Compare getopt_long return value against -1, not EOF. Use NULL, not '(int *) 0' as last parameter in getopt_long call. 1997-02-01 02:00:04 +00:00
Jim Meyering
1e40423be8 (maintainer-clean): Remove GMOFILES.
From Paul Eggert.
1997-01-30 05:28:37 +00:00
Jim Meyering
0c5ab92b59 . 1997-01-30 04:16:33 +00:00
Jim Meyering
b9278db095 . 1997-01-30 04:11:17 +00:00
Jim Meyering
944b08f293 Do each test twice: get input via REDIR and PIPE. 1997-01-30 03:38:47 +00:00
Jim Meyering
307b54a273 (test_vector): Do each (non-stdin-requiring) test three times. 1997-01-30 03:38:07 +00:00
Jim Meyering
795162649b . 1997-01-30 03:36:40 +00:00
Jim Meyering
3181551ddd . 1997-01-30 03:36:06 +00:00
Jim Meyering
4cbcb32a53 correctly compute number of tests 1997-01-30 03:31:40 +00:00
Jim Meyering
13a5e426f3 Remove common_option_prefix flag.
(test_vector): Prepend the common option here instead.
1997-01-30 03:27:35 +00:00
Jim Meyering
56557d787a Remove input_via_stdin flag.
Do each test twice: get input via REDIR and PIPE.
1997-01-30 03:26:27 +00:00
Jim Meyering
6b1d2c4de1 Do each test three times. 1997-01-30 03:25:16 +00:00
Jim Meyering
bca3705ac5 . 1997-01-30 03:22:44 +00:00
Jim Meyering
9fcda065b6 . 1997-01-30 03:14:43 +00:00
Jim Meyering
188edf1546 . 1997-01-30 03:01:15 +00:00
Jim Meyering
22922b8765 Allow each test to be run any or all of three different ways. Program
input may be specified via a file or files listed on the command line,
via input redirection (if there's only one file), or via a pipe.
1997-01-29 14:19:17 +00:00
Jim Meyering
e16812dea8 . 1997-01-29 13:03:05 +00:00
Jim Meyering
20580c3f25 . 1997-01-29 02:54:21 +00:00
Jim Meyering
a6871ebbce Remove `t' prefix on all generated test file names.
Change suffixes from (.in, .exp, .out, .err) to (.I, .X, .O, .E).
Ensure that no test file (generated or maintainer-supplied) has a
longer than 14 characters.
1997-01-28 21:22:34 +00:00
Jim Meyering
0ce61713d5 (usage): Remove one space in message to make colons line up. 1997-01-28 03:44:27 +00:00
Jim Meyering
d705b6c469 . 1997-01-28 03:43:05 +00:00
Jim Meyering
771ab6e1bf (print_long_format): Fix off-by-one problem in size being passed to strftime. 1997-01-28 03:40:18 +00:00
Jim Meyering
b103723acc . 1997-01-27 03:15:14 +00:00
Jim Meyering
03ebea3ec6 . 1997-01-27 03:10:22 +00:00
Jim Meyering
5f011471a3 really make the messages identical 1997-01-27 02:28:39 +00:00
Jim Meyering
6b3f36f935 . 1997-01-27 02:18:56 +00:00
Jim Meyering
1010c1f580 . 1997-01-26 20:01:11 +00:00
Jim Meyering
7490632078 . 1997-01-26 19:04:03 +00:00
Jim Meyering
537381d409 . 1997-01-26 19:03:30 +00:00
Jim Meyering
3a01be66d4 . 1997-01-26 19:02:52 +00:00
Jim Meyering
8a87c1a169 . 1997-01-26 19:01:54 +00:00
Jim Meyering
07b07ca07c . 1997-01-26 18:57:36 +00:00
Jim Meyering
26a10a8026 (usage): Fix typo (--writeable -> --writable) in help output 1997-01-26 18:51:44 +00:00
Jim Meyering
072c1efe39 (parse_options): Add quotes to make messages identical. 1997-01-26 18:50:33 +00:00
Jim Meyering
c38939be8e . 1997-01-26 07:03:50 +00:00
Jim Meyering
e48314ac1b bracket prototype with PARAMS 1997-01-26 06:23:06 +00:00
Jim Meyering
7c94dda02d . 1997-01-26 05:57:12 +00:00
Jim Meyering
fe6c711f48 Restore dcl of free. with obstacks, you need it. 1997-01-26 05:57:04 +00:00
Jim Meyering
2c7c121c13 Revert last change. With obstack, dcl of free is *required*. 1997-01-26 05:55:02 +00:00
Jim Meyering
7a8b837062 . 1997-01-26 05:13:26 +00:00
Jim Meyering
25eb22e88f . 1997-01-26 05:08:56 +00:00
Jim Meyering
7f798f5f4f (count_entry): Fix blatant bug (typo?) that made
--megabytes report numbers in units of kilobytes.
Reported by Galen Hazelwood.
1997-01-26 05:05:06 +00:00
Jim Meyering
9d502e7240 . 1997-01-26 05:04:35 +00:00
Jim Meyering
c1ecd3afea . 1997-01-26 04:52:42 +00:00
Jim Meyering
a95088a5ea (print_factors): Reflect changes to xstrtoul interface. 1997-01-26 04:52:32 +00:00
Jim Meyering
fb43ebcbae . 1997-01-26 04:48:39 +00:00
Jim Meyering
73ed11f2b7 (parse_options): Remove unnecessary goto and label. 1997-01-26 04:48:29 +00:00
Jim Meyering
6390686aab . 1997-01-26 04:44:03 +00:00
Jim Meyering
3e0c759c3a (parse_obsolescent_option): Comment. 1997-01-26 04:43:42 +00:00
Jim Meyering
10f565971b . 1997-01-26 04:30:49 +00:00
Jim Meyering
e1ea22da05 (is_ancestor): Add it. 1997-01-26 04:30:39 +00:00
Jim Meyering
1e71247ea0 . 1997-01-26 04:14:26 +00:00
Jim Meyering
46f650f6b0 . 1997-01-26 04:13:46 +00:00
Jim Meyering
74bca24efe . 1997-01-26 04:12:46 +00:00
Jim Meyering
e385fd1e4c . 1997-01-26 04:12:20 +00:00
Jim Meyering
239899ae58 Interpret `input arg is a hash
reference' as meaning that the tested program will read no input.
Most of the tests for the date program use this feature.
Also for date, the generated script now reflects specification
(in Test.pm) of default and per-test environment settings.
1997-01-26 03:12:41 +00:00
Jim Meyering
2a3863e2b8 . 1997-01-26 03:01:01 +00:00
Jim Meyering
bd30083472 . 1997-01-26 02:59:50 +00:00
Jim Meyering
01839f9f82 remove trailing blanks 1997-01-25 13:50:24 +00:00
Jim Meyering
6f807a8598 remove now-spurious junk 1997-01-25 13:45:55 +00:00
Jim Meyering
94439345f5 . 1997-01-25 13:38:54 +00:00
Jim Meyering
e9dc554349 (noinst_HEADERS): Add getdate.h. 1997-01-25 13:38:49 +00:00
Jim Meyering
68ed0308cf . 1997-01-25 06:59:56 +00:00
Jim Meyering
fb04070061 . 1997-01-25 06:54:19 +00:00
Jim Meyering
9200311684 . 1997-01-25 06:52:50 +00:00
Jim Meyering
dd374cd779 . 1997-01-25 06:46:53 +00:00
Jim Meyering
71076df2d8 . 1997-01-25 06:46:33 +00:00
Jim Meyering
a1a27df129 . 1997-01-25 06:45:38 +00:00
Jim Meyering
fd685e41d6 Move the code from configure.in into
this macro that resorts to looking for getgroups in -lbsd.
Set new shell variable, GETGROUPS_LIB (that callers should check),
if it is found there.
1997-01-25 06:45:32 +00:00
Jim Meyering
c672fc6df6 . 1997-01-25 06:43:47 +00:00
Jim Meyering
0a735b7b9e . 1997-01-25 06:43:16 +00:00
Jim Meyering
5aaadded9d . 1997-01-25 06:37:40 +00:00
Jim Meyering
a8bcd782c4 update for changed xstrtou?l 1997-01-25 06:21:24 +00:00
Jim Meyering
2be7ff8311 . 1997-01-25 06:17:20 +00:00
Jim Meyering
0894db7b3f (XSTRTOL_H): Undefine it. 1997-01-25 06:17:13 +00:00
Jim Meyering
d58a074dea . 1997-01-25 06:15:49 +00:00
Jim Meyering
d73bc3ca57 [!_STRTOL_ERROR]: Define the type `enum strtol_error'
only if it hasn't already been defined.
1997-01-25 06:15:18 +00:00
Jim Meyering
186d893f27 (__xstrtol): Change interpretation of
VALID_SUFFIXES == NULL vs VALID_SUFFIXES == "".  Use the former
when any suffix is valid, the later when no suffix is allowed.
1997-01-25 06:13:46 +00:00
Jim Meyering
edeada009c fix copyright filling 1997-01-25 06:11:48 +00:00
Jim Meyering
18195dd699 fix copyright filling 1997-01-25 06:11:22 +00:00
Jim Meyering
338b31ba60 . 1997-01-25 05:58:58 +00:00
Jim Meyering
562eb3d16d . 1997-01-25 05:56:52 +00:00
Jim Meyering
175fb661e0 (parse_long_options): Reset optind to zero
before just returning so that getopt internals get initialized from
the probably-new parameters when/if getopt is called later.
1997-01-25 05:37:15 +00:00
Jim Meyering
50c04a9d3e (parse_obsolescent_option): Recognize and fail for
more malformed obsolescent options.  Makes for better diagnostics.
1997-01-24 02:11:52 +00:00
Jim Meyering
8a66d0dd57 . 1997-01-24 01:16:39 +00:00
Jim Meyering
1f678023d5 . 1997-01-23 05:15:14 +00:00
Jim Meyering
b66a30133f . 1997-01-23 04:12:43 +00:00
Jim Meyering
598a7bda46 . 1997-01-23 04:03:50 +00:00
Jim Meyering
0800b55642 . 1997-01-23 04:01:58 +00:00
Jim Meyering
5ac433d292 . 1997-01-23 04:00:19 +00:00
Jim Meyering
b22469537b . 1997-01-23 03:55:50 +00:00
Jim Meyering
591844b387 . 1997-01-23 03:47:20 +00:00
Jim Meyering
2611844743 (parse_options): New function.
(parse_obsolescent_option): New function.
(main): Use the new functions instead of open-coding them.
This better fixes the bug in handling obsolescent `+Nc' options.
General cleanup.
1997-01-23 03:38:23 +00:00
Jim Meyering
c04fc60484 . 1997-01-23 03:22:16 +00:00
Jim Meyering
ffb626613a . 1997-01-23 03:02:56 +00:00
Jim Meyering
3452006a53 . 1997-01-23 03:02:17 +00:00
Jim Meyering
161422b9b2 . 1997-01-23 02:45:08 +00:00
Jim Meyering
2091adbbb1 Update from GNU via Uli 1997-01-23 02:45:02 +00:00
Jim Meyering
ccbf5f37f1 . 1997-01-23 02:25:26 +00:00
Jim Meyering
ef2b6836fd revert last change 1997-01-23 02:23:44 +00:00
Jim Meyering
44386ac6ff . 1997-01-23 02:21:03 +00:00
Jim Meyering
5c7e1b6bee . 1997-01-23 02:18:00 +00:00
Jim Meyering
3266134b2a . 1997-01-23 02:16:55 +00:00
Jim Meyering
63571532a2 (AM_FUNC_MKTIME): Run tests for each of a few values
for the TZ environment variable.  Andre Novaes Cunha provided the
hairy TZ setting that exercized the Solaris tzset bug.
1997-01-23 02:16:20 +00:00
Jim Meyering
82b01ee905 increment serial number 1997-01-23 00:39:19 +00:00
Jim Meyering
48569d6b98 [strftime]: Add parameters to macro definition. From Drepper. 1997-01-22 23:23:04 +00:00
Jim Meyering
211fe36692 (main): Use TZ=GMT0, not TZ=GMT, since only GMT0 is specified by Posix.1. 1997-01-22 22:45:47 +00:00
Jim Meyering
8dd8bb78b1 . 1997-01-22 22:43:41 +00:00
Jim Meyering
d64cc3c1ef (_strftime_copytm): New function, to work around Solaris 2.5 tzset bug.
From Paul Eggert.
1997-01-22 22:43:15 +00:00
Jim Meyering
db7201835d . 1997-01-22 22:39:41 +00:00
Jim Meyering
74cb2ee314 (AM_FUNC_MKTIME): Fix bug in mktime test -- don't
test now, test a couple of thousand times.
1997-01-22 22:38:37 +00:00
Jim Meyering
6d24eee926 . 1997-01-22 04:56:25 +00:00
Jim Meyering
aeb7c0bc47 . 1997-01-22 04:55:59 +00:00
Jim Meyering
940f23f4a4 . 1997-01-22 04:53:59 +00:00
Jim Meyering
f3f1cae097 (main): Properly handle what the POSIX spec calls
the `obsolescent' usage (e.g., tail +2c).  It didn't work.
Reported by Karl Heuer.
1997-01-22 04:53:52 +00:00
Jim Meyering
fbe50426e2 . 1997-01-22 04:48:32 +00:00
Jim Meyering
8011a147de . 1997-01-21 04:21:48 +00:00
Jim Meyering
3cca257a3b . 1997-01-19 15:24:40 +00:00
Jim Meyering
de96d28c57 . 1997-01-19 13:18:30 +00:00
Jim Meyering
783fb6b2a6 . 1997-01-19 13:11:40 +00:00
Jim Meyering
b969dad022 Indent with GNU indent. 1997-01-18 20:17:39 +00:00
Jim Meyering
c1db691c12 Indent 2 more cpp-directives to reflect nesting. 1997-01-18 20:12:10 +00:00
Jim Meyering
5f9c33edfe (get_date): Change prototype to reflect const'ness of parameters.
Indent cpp-directives to reflect nesting.
1997-01-18 20:11:05 +00:00
Jim Meyering
10d7644859 . 1997-01-18 20:08:05 +00:00
Jim Meyering
6cb5a99aa7 Include getdate.h.
(<time.h>, <sys/time.h>): Don't include -- now getdate.h does it.
1997-01-18 20:06:50 +00:00
Jim Meyering
f696bb6737 . 1997-01-18 16:58:30 +00:00
Jim Meyering
8a9acec293 . 1997-01-18 16:57:45 +00:00
Jim Meyering
7eeedf8385 . 1997-01-18 15:46:09 +00:00
Jim Meyering
4c066c3552 . 1997-01-18 15:32:52 +00:00
Jim Meyering
6e5149f0ab 1997-01-06 Paul Eggert <eggert@twinsun.com>
* getdate.y: Rewrite to use mktime.

<sys/timeb.h>: Don't include.
(mktime): Declare.

(struct timeb, timezone, DOOMSDAY, SECSPERDAY, DSTMODE, yyDSTmode,
ToSeconds, Convert, DSTcorrect, RelativeDate, RelativeMonth): Remove.
(ToHour): New function (part of the old ToSeconds fn).
(ToYear): New function (part of the old Convert fn).

(TABLE.value, yyDayOrdinal, yyDayNumber, yyTimezone, yyDay, yyHour,
yyMinutes, yyMonth, yySeconds, yyYear, yyRelMonth, yyRelSeconds,
Number): Now int instead of time_t.
(HOUR): Don't cast to time_t.

(tDAY_UNIT, tHOUR_UNIT, tYEAR_UNIT): New %tokens.
(UnitsTable): Use new units that are closer to the keywords.

(yyRelDay, yyRelHour, yyRelMinutes, yyRelYear): New variables.
(rel, relunit, get_date): Add support for them.

(time): Fix timezone calculations for negative half-hour offsets
when integer division truncates towards minus infinity.

(zone): Incorporiate DST calculation directly.

(get_date): 2nd arg is now time_t *, not struct timeb *.
Use mktime to do most of the work, instead of computing it ourselves.
Guard against falsely reporting errors near the time_t boundaries
when parsing times in other time zones.
1997-01-18 15:32:16 +00:00
Jim Meyering
af12dd6260 Add comment re HAVE_PSTAT_GETDYNAMIC. 1997-01-18 15:07:16 +00:00
Jim Meyering
f8e40348be reindent 1997-01-18 13:44:49 +00:00
Jim Meyering
be8f2b0de2 . 1997-01-17 03:01:15 +00:00
Jim Meyering
279f065a06 (AM_FUNC_GETLOADAVG): Check for pstat_getdynamic. 1997-01-17 03:00:45 +00:00
Jim Meyering
c7837e95d2 Fix up indentation a little. 1997-01-15 04:59:07 +00:00
Jim Meyering
9130f4b9d2 Indent cpp-directives to reflect nesting. 1997-01-15 04:55:39 +00:00
Jim Meyering
5aa14aeef0 [!STDC_HEADERS]: Remove unnecessary declaration of free. 1997-01-15 04:42:05 +00:00
Jim Meyering
61976fe88d [!STDC_HEADERS]: Remove unnecessary declaration of free. 1997-01-15 04:41:12 +00:00
Jim Meyering
0868a7d0bd Add struct dir_list and is_ancestor. 1997-01-15 04:35:01 +00:00
Jim Meyering
48be557ad6 . 1997-01-13 04:23:05 +00:00
Jim Meyering
371f45401c Regenerated to reflect renamed tests. 1997-01-13 04:21:30 +00:00
Jim Meyering
9b9213f122 Rename tests so that the associated files
have names that are distinct even on filesystems on which file
names are case insensitive.
1997-01-13 04:20:54 +00:00
Jim Meyering
4c3d7d6a8b . 1997-01-13 04:17:16 +00:00
Jim Meyering
720d1c1c5e Regenerated to reflect renamed tests. 1997-01-13 04:16:57 +00:00
Jim Meyering
0dac1e107c Rename tests so that the associated files
have names that are distinct even on filesystems on which file
names are case insensitive.
1997-01-13 04:16:16 +00:00
Jim Meyering
31a8ced738 . 1997-01-11 22:35:42 +00:00
Jim Meyering
eb07a88b9e . 1997-01-11 04:23:46 +00:00
Jim Meyering
0503b28076 . 1997-01-11 04:21:29 +00:00
Jim Meyering
f45eaa5782 . 1997-01-09 12:38:53 +00:00
Jim Meyering
2f00343264 Remove AC_ISC_POSIX. 1997-01-09 12:24:51 +00:00
Jim Meyering
323c9cfee7 . 1997-01-09 02:35:52 +00:00
Jim Meyering
676a608318 . 1997-01-09 02:35:30 +00:00
Jim Meyering
39d1a08208 . 1997-01-09 02:34:14 +00:00
Jim Meyering
9ca6f19a2d (print_long_format): Cast alloca return value to char*. 1997-01-09 02:33:44 +00:00
Jim Meyering
0acd885d83 . 1997-01-09 00:09:17 +00:00
Jim Meyering
9110853f39 . 1997-01-08 22:40:47 +00:00
Jim Meyering
4ffe108e39 (_getopt_internal): Use _', rather than the (sometimes-)expansion gettext'. 1997-01-08 22:40:00 +00:00
Jim Meyering
7290a43da9 . 1997-01-08 12:29:57 +00:00
Jim Meyering
9cfc701536 . 1997-01-08 04:59:01 +00:00
Jim Meyering
b0a020d50b . 1997-01-08 04:57:06 +00:00
Jim Meyering
36942690e1 . 1997-01-08 04:56:45 +00:00
Jim Meyering
afda328772 . 1997-01-08 04:52:41 +00:00
Jim Meyering
8a752e8696 [_]: Define to gettext also if ENABLE_NLS is defined. 1997-01-08 04:52:00 +00:00
Jim Meyering
8bd5d9e607 . 1997-01-08 04:50:29 +00:00
Jim Meyering
6885aee87b . 1997-01-08 04:49:33 +00:00
Jim Meyering
e4c57a939b (main): Work around failures induced by new version of
getopt.c by not modifying optind before the first getopt_long call
in main.  With suggestions from Ulrich Drepper.
1997-01-08 04:47:56 +00:00
Jim Meyering
b802aa3f55 New (more POSIX compliant) version from GNU libc. 1997-01-08 04:11:29 +00:00
Jim Meyering
8f915aadf8 . 1997-01-06 04:24:52 +00:00
Jim Meyering
662e8b4a03 . 1997-01-06 04:19:50 +00:00
Jim Meyering
3dd86270c6 . 1997-01-06 03:31:03 +00:00
Jim Meyering
ce7c0d5468 . 1997-01-06 03:23:19 +00:00
Jim Meyering
9ae64058d2 . 1997-01-06 03:21:55 +00:00
Jim Meyering
92de89ed2c . 1997-01-05 20:32:57 +00:00
Jim Meyering
5f0b9f1d99 (print_long_format): Detect and handle strftime failure
due to pathologically long strings in locale tables. Patch from Paul Eggert.
(print_long_format): Change references to BIGBUF in use of FPUT macro
to references to BUF.
Use 11 (not 20) bytes for mode string buffer.
1997-01-05 20:32:49 +00:00
Jim Meyering
8ebfd37293 (print_long_format): NUL-terminate line of output. 1997-01-05 15:39:27 +00:00
Jim Meyering
cb6351aa82 (print_long_format): First patch from Paul Eggert. 1997-01-05 15:33:44 +00:00
Jim Meyering
a518e28429 . 1997-01-05 03:32:28 +00:00
Jim Meyering
7de0d8e233 . 1997-01-05 03:24:32 +00:00
Jim Meyering
839c312d49 . 1997-01-05 03:19:46 +00:00
Jim Meyering
783bace690 (print_long_format): Clean up vestiges of legacy
ctime-oriented code.  With internationalization and strftime,
you can't presume that %a expands to a 3-byte string.
Reported by Ross Ridge.
1997-01-05 03:18:49 +00:00
Jim Meyering
31d836282b . 1997-01-04 03:09:44 +00:00
Jim Meyering
bc73cf3351 Fix typo. 1997-01-03 05:10:19 +00:00
Jim Meyering
731cbc77fb . 1997-01-03 05:05:45 +00:00
Jim Meyering
2bd16e646e . 1997-01-03 03:24:22 +00:00
Jim Meyering
7f2c13e703 . 1997-01-03 03:20:24 +00:00
Jim Meyering
635a7c3186 (init_fps): Initialize lines_stored field in three places.
This avoids uninitialized memory reads in close_file.
1997-01-03 03:20:14 +00:00
Jim Meyering
42d1927306 . 1997-01-03 03:16:59 +00:00
Jim Meyering
ba246b0f36 (EXTRA_DIST): Add getgroups.c. 1997-01-03 03:16:29 +00:00
Jim Meyering
13ff080b78 . 1997-01-02 03:13:49 +00:00
Jim Meyering
06a5782edd . 1997-01-02 02:21:58 +00:00
Jim Meyering
12f377da25 . 1997-01-01 23:35:31 +00:00
Jim Meyering
c423a2d74a . 1996-12-31 16:18:06 +00:00
Jim Meyering
04a1a572f4 . 1996-12-30 05:45:23 +00:00
Jim Meyering
1ba3bd3896 (init_header): Plug a small memory leak by using stack
rather than heap for a 15-byte temporary buffer.
1996-12-30 05:43:58 +00:00
Jim Meyering
fb59a28b16 . 1996-12-30 04:11:13 +00:00
Jim Meyering
ab48b17dca . 1996-12-29 20:34:21 +00:00
Jim Meyering
d2ca2163c6 . 1996-12-29 03:47:51 +00:00
Jim Meyering
5ae342e1a9 Two problems fixed by these changes from Joakim Rosqvist.
Quoting Joakim:
1) The "total" number and the size of the first file as
output from 'ls --color -s' did not get colorized according
to the "no"-argument in LS_COLORS. Fixed by adding a function
prep_non_filename_text which prints the C_LEFT C_NORM C_RIGHT
strings (or C_END). It is called from main before any text is
output, and from print_name_with_quoting after having output a
colorized filename.
2) If the "no"-argument of LS_COLORS is set, the terminal will be
set to print in that color after ls exits. The man-pages suggests
setting "no" and "fi" to the terminals default colors to avoid
the problem, but that would mean I can't use anything but the
default color for regular files and non-filename text. Fixed by
outputting C_LEFT immediately followed by C_RIGHT right before
exit, which restores the default color.
1996-12-29 03:47:34 +00:00
Jim Meyering
6c635d1f27 . 1996-12-29 01:48:20 +00:00
Jim Meyering
42640f71df Correct obsolete comment referring to macro that is now ls_mode. 1996-12-28 20:32:39 +00:00
Jim Meyering
0b83b3090b . 1996-12-28 16:04:01 +00:00
Jim Meyering
4b583d1691 . 1996-12-28 13:30:51 +00:00
Jim Meyering
a182aa4e5a . 1996-12-28 06:27:35 +00:00
Jim Meyering
22ca9b17a5 . 1996-12-28 06:07:39 +00:00
Jim Meyering
04916b80de . 1996-12-28 06:06:51 +00:00
Jim Meyering
d7d7ae76b2 . 1996-12-28 06:05:51 +00:00
Jim Meyering
da7809f65c (TAB_WIDTH): Cleaned up definition and renamed from tab_width.
(POS_AFTER_TAB): Cleaned up definition and renamed from pos_after_tab.
1996-12-28 06:04:36 +00:00
Jim Meyering
b7d3a68ce5 . 1996-12-28 05:34:01 +00:00
Jim Meyering
8794c292e7 Fix a couple of thinkos and typos.
Now it works with pr's tests, too.
1996-12-28 05:30:46 +00:00
Jim Meyering
ece3b1d144 . 1996-12-28 05:27:53 +00:00
Jim Meyering
8087dd5668 Regenerate list of explicit files, this time with duplicates removed. 1996-12-28 05:27:25 +00:00
Jim Meyering
1a622aa2d9 . 1996-12-28 05:15:56 +00:00
Jim Meyering
1ea9952168 . 1996-12-28 05:14:37 +00:00
Jim Meyering
4df74fe308 . 1996-12-28 05:12:09 +00:00
Jim Meyering
68545c98ed . 1996-12-28 04:58:34 +00:00
Jim Meyering
4650315342 Indent cpp directives. 1996-12-28 04:58:26 +00:00
Jim Meyering
fbfde91f6a [!WTMP_FILE]: Provide default path.
(UTMP_FILE) [UTMPX_FILE]: Use UTMPX_FILE in favor of UTMP_FILE.
Patch from Kaveh R. Ghazi.
1996-12-28 04:44:35 +00:00
Jim Meyering
e3f1d80dd9 Rewrite the test so that systems lacking
getgroups don't try to use the supplied replacement function --
that depends on the existence of such a function.
1996-12-28 02:59:25 +00:00
Jim Meyering
5e58599e6e (usage): Break long string literal into two separate
printf statements to accomodate default maximum of 2048 characters
for Irix-4.0.5.  Reported by Kaveh Ghazi.
1996-12-28 02:28:56 +00:00
Jim Meyering
c22036ab86 . 1996-12-28 00:22:01 +00:00
Jim Meyering
34ffd87f30 Make 'em arrays of references, not arrays of arrays. 1996-12-28 00:19:56 +00:00
Jim Meyering
cea704d6da . 1996-12-28 00:11:07 +00:00
Jim Meyering
ddf8459662 . 1996-12-27 23:31:41 +00:00
Jim Meyering
8320e65164 Add comment.
Rename local, ng to n_groups.
1996-12-27 03:36:53 +00:00
Jim Meyering
f42460fb09 . 1996-12-24 19:28:22 +00:00
Jim Meyering
24a118665e . 1996-12-23 23:58:14 +00:00
Jim Meyering
3bcffe04d7 revert last change 1996-12-23 23:57:56 +00:00
Jim Meyering
79523152dd remove support for --string option 1996-12-23 23:57:09 +00:00
Jim Meyering
35aaa568cd . 1996-12-23 05:59:33 +00:00
Jim Meyering
85da146bd2 . 1996-12-23 05:59:12 +00:00
Jim Meyering
ae8ee650ea . 1996-12-23 05:46:00 +00:00
Jim Meyering
4a11d01711 . 1996-12-23 05:41:42 +00:00
Jim Meyering
f76a4b618e . 1996-12-23 05:41:19 +00:00
Jim Meyering
c8c91b5e20 . 1996-12-23 05:33:05 +00:00
Jim Meyering
70155d8013 (EXTRA_DIST): Add README. 1996-12-23 05:31:46 +00:00
Jim Meyering
af14a04c19 . 1996-12-23 05:26:10 +00:00
Jim Meyering
6e62afaaed . 1996-12-23 05:15:44 +00:00
Jim Meyering
9190f77006 . 1996-12-23 05:14:55 +00:00
Jim Meyering
5d845a1678 . 1996-12-22 19:09:49 +00:00
Jim Meyering
f6c32178c7 . 1996-12-22 14:20:27 +00:00
Jim Meyering
ff5cd3f6a3 . 1996-12-22 14:18:09 +00:00
Jim Meyering
b3d8117527 . 1996-12-22 14:17:20 +00:00
Jim Meyering
103713c42b . 1996-12-22 14:15:37 +00:00
Jim Meyering
c84fb64144 . 1996-12-22 14:14:01 +00:00
Jim Meyering
8e02fb10ab Use same framework as other tests. 1996-12-22 14:12:06 +00:00
Jim Meyering
1b47ed2714 Use test_vector, not array @t. 1996-12-22 14:09:10 +00:00
Jim Meyering
dcd02c8008 Use test_vector, not array @t. 1996-12-22 14:04:47 +00:00
Jim Meyering
a80c49322b . 1996-12-22 03:32:51 +00:00
Jim Meyering
3982e9cdf8 . 1996-12-22 03:30:23 +00:00
Jim Meyering
a5b6fae599 . 1996-12-22 03:25:05 +00:00
Jim Meyering
b660d78cf5 . 1996-12-22 03:24:25 +00:00
Jim Meyering
c86883a62a . 1996-12-22 03:03:48 +00:00
Jim Meyering
e36197cd8f . 1996-12-22 02:51:34 +00:00
Jim Meyering
2185c1f3d8 Clone the Makefile.am from join-test.
Replace only the definition of $x and the auto-generated lists of test files.
1996-12-22 02:51:17 +00:00
Jim Meyering
48a76e855c Clone the Makefile.am from join-test.
Replace only the definition of $x and the auto-generated lists of test files.
1996-12-22 02:50:34 +00:00
Jim Meyering
19b5a4f761 Clone the Makefile.am from join-test.
Replace only the definition of $x and the auto-generated lists of
test files.
1996-12-22 02:50:15 +00:00
Jim Meyering
9dbd283b1e use 77 as max line len when wrapping 1996-12-22 02:46:14 +00:00
Jim Meyering
4376f9f2ce . 1996-12-22 02:44:12 +00:00
Jim Meyering
37fea371b7 . 1996-12-22 02:34:14 +00:00
Jim Meyering
bb02f48670 . 1996-12-22 02:33:17 +00:00
Jim Meyering
64cd458e0a Add @MAINT@-protected rule for verifying that Makefile.am is
consistent with Test.pm.
1996-12-22 02:32:56 +00:00
Jim Meyering
bc9aded4b9 . 1996-12-22 02:32:01 +00:00
Jim Meyering
a611c6cbf6 (wrap): New function.
Use it.
1996-12-21 22:16:03 +00:00
Jim Meyering
68c33eea03 . 1996-12-21 18:49:14 +00:00
Jim Meyering
fec6a430da update from GNU libc 1996-12-21 13:51:26 +00:00
Jim Meyering
1266fc26ee . 1996-12-21 04:21:29 +00:00
Jim Meyering
41a41dd48e Replace hard-coded /etc/wtmp with WTMP_FILE. Suggestion from Eivind. 1996-12-21 04:14:45 +00:00
Jim Meyering
e59e2e803c . 1996-12-21 04:14:24 +00:00
Jim Meyering
52c7e3147e . 1996-12-21 04:09:35 +00:00
Jim Meyering
8829551700 . 1996-12-21 04:09:07 +00:00
Jim Meyering
e95fe088e1 (usage): Say that UTMP_FILE is the default FILE
rather than hard-coding /etc/utmp.
1996-12-21 04:08:25 +00:00
Jim Meyering
e13281014a (usage): Tweak --usage text. 1996-12-21 03:59:26 +00:00
Jim Meyering
aac56cabe4 . 1996-12-21 03:43:47 +00:00
Jim Meyering
df5f33a5bf . 1996-12-21 03:32:03 +00:00
Jim Meyering
0799786a33 . 1996-12-21 03:21:34 +00:00
Jim Meyering
6621f0a9a9 . 1996-12-21 03:20:48 +00:00
Jim Meyering
d5b9b29ac6 . 1996-12-21 03:15:44 +00:00
Jim Meyering
022a19b21f . 1996-12-21 02:03:14 +00:00
Jim Meyering
12133d7f01 . 1996-12-21 01:59:01 +00:00
Jim Meyering
58dfd6b442 copied from automake-1.1l 1996-12-21 01:56:50 +00:00
Jim Meyering
5fc47138b1 broken out of ../acinclude.m4 1996-12-21 01:50:50 +00:00
Jim Meyering
4a2b289e7c Update from GNU libc. 1996-12-21 01:40:43 +00:00
Jim Meyering
bab072f3aa . 1996-12-21 01:29:41 +00:00
Jim Meyering
8679e372cd . 1996-12-20 06:13:37 +00:00
Jim Meyering
b0690ba414 . 1996-12-20 06:11:59 +00:00
Jim Meyering
ed354b6490 (MAINTAINERCLEANFILES): Use $(in1) and $(in2), not $(in). 1996-12-20 06:11:50 +00:00
Jim Meyering
81d1fa5cb6 New option: --list. Generate lists of files used/generated. 1996-12-20 06:09:45 +00:00
Jim Meyering
421e75544b . 1996-12-20 05:48:34 +00:00
Jim Meyering
7466f41075 . 1996-12-20 05:46:47 +00:00
Jim Meyering
1e7d4b9c70 Adapted for new mk-script.pl. 1996-12-20 05:46:27 +00:00
Jim Meyering
6a13b75511 . 1996-12-20 05:45:24 +00:00
Jim Meyering
ebefd435aa . 1996-12-20 05:41:43 +00:00
Jim Meyering
b3335ab809 remove $nl. 1996-12-20 05:35:26 +00:00
Jim Meyering
d293e5f03c Adapted for new mk-script.pl. 1996-12-20 05:35:01 +00:00
Jim Meyering
0a470f01de Rewrite to be more general -- so it can be used for join, cut, sort, tr,
and soon, pr test suites.
1996-12-20 05:33:17 +00:00
Jim Meyering
b181d31372 . 1996-12-20 03:40:34 +00:00
Jim Meyering
b3a49ee8d0 . 1996-12-19 13:53:16 +00:00
Jim Meyering
35b886ad7b . 1996-12-19 05:21:47 +00:00
Jim Meyering
cecde31171 (ORPHAN): By default, color orphans red on a black background. 1996-12-19 05:21:40 +00:00
Jim Meyering
ae6c43a3ab (usage): Remove --print-data-base.
Now only --print-database remains.  Although it wasn't documented,
--print-data-base was still accepted.  But it made `--p', `--print',
`--print-data', etc. ambiguous.
1996-12-19 05:20:06 +00:00
Jim Meyering
17432bd066 . 1996-12-19 05:16:03 +00:00
Jim Meyering
c835f92a61 (gobble_file): Stat symlinks also when printing with
color and set linkok to reflect existence of referent.
Patches from Joakim Rosqvist, James Antill, and Jesse Thilo.
1996-12-19 05:15:34 +00:00
Jim Meyering
89b765e32c . 1996-12-19 05:14:59 +00:00
Jim Meyering
3752e13942 . 1996-12-19 04:23:21 +00:00
Jim Meyering
858afc04d2 [HAVE_PATHS_H]: Include <paths.h>.
[_PATH_DEFPATH]: Use this to define DEFAULT_LOGIN_PATH.
[_PATH_DEFPATH_ROOT]: Use this to define DEFAULT_ROOT_LOGIN_PATH.
From Rik Faith.
1996-12-19 04:20:53 +00:00
Jim Meyering
5fecd9e4d5 . 1996-12-19 02:35:10 +00:00
Jim Meyering
ae5ee331f1 run cpp-indent 1996-12-18 16:56:46 +00:00
Jim Meyering
954c7bc4cc another new version ... 1996-12-18 16:54:48 +00:00
Jim Meyering
625dc74361 . 1996-12-18 13:57:32 +00:00
Jim Meyering
b26beb4996 . 1996-12-18 13:53:00 +00:00
Jim Meyering
0b3d661480 in progress... 1996-12-18 05:29:52 +00:00
Jim Meyering
33448d128a . 1996-12-18 03:30:59 +00:00
Jim Meyering
b3ef6f599d . 1996-12-18 03:30:30 +00:00
Jim Meyering
72f95044eb (ISDIGIT): Replace with smaller, faster edition
that yields nonzero only on ASCII digits.
(ISDIGIT_LOCALE): New macro, with same meaning that ISDIGIT
used to have.  From Paul Eggert.
1996-12-18 03:30:20 +00:00
Jim Meyering
859f8587f8 add blank line. 1996-12-18 03:28:09 +00:00
Jim Meyering
24e15328df . 1996-12-18 03:23:08 +00:00
Jim Meyering
357c53621f (ISDIGIT): Replace with smaller, faster edition
that yields nonzero only on ASCII digits.
(ISDIGIT_LOCALE): New macro, with same meaning that ISDIGIT
used to have.  From Paul Eggert.
1996-12-18 03:22:56 +00:00
Jim Meyering
fd688bcc5f . 1996-12-18 03:14:58 +00:00
Jim Meyering
e8c6c8175b . 1996-12-18 03:13:27 +00:00
Jim Meyering
561e4c139e (ROOT_CHOWN_AFFECTS_SYMLINKS): New macro.
(DO_CHOWN): Take an additional parameter.
(LINK_CHOWN): Remove macro.
(copy): When preserving owner and group of a symlink, use
chown only if ROOT_CHOWN_AFFECTS_SYMLINKS and EUID == 0.
Otherwise, the chown would affect the file referenced through the symlink.
1996-12-18 03:13:09 +00:00
Jim Meyering
507288d2c7 . 1996-12-18 01:25:50 +00:00
Jim Meyering
6c47524481 (.pl): Make generated file read-only so
I don't accidentally modify it instead of the one with the .pl suffix.
1996-12-18 01:25:45 +00:00
Jim Meyering
300c151b8b . 1996-12-18 01:22:32 +00:00
Jim Meyering
3c7e9fec08 Update from GNU libc. 1996-12-18 00:21:38 +00:00
Jim Meyering
7235fb47cc . 1996-12-17 23:07:15 +00:00
Jim Meyering
8ef2abf7e9 . 1996-12-17 22:44:57 +00:00
Jim Meyering
5e55e49972 . 1996-12-17 21:54:29 +00:00
Jim Meyering
48a255beb0 . 1996-12-17 05:05:45 +00:00
Jim Meyering
17a2ec94a8 . 1996-12-16 00:40:55 +00:00
Jim Meyering
e7f8503138 . 1996-12-16 00:39:25 +00:00
Jim Meyering
f789ddbdda . 1996-12-15 22:17:29 +00:00
Jim Meyering
1f1bd53b86 . 1996-12-15 20:36:59 +00:00
Jim Meyering
3a2afe3311 apply spec_to_list to expected file, too. 1996-12-15 20:35:32 +00:00
Jim Meyering
20b960db10 . 1996-12-15 20:29:09 +00:00
Jim Meyering
8fd3e8664b (spec_to_list): New function -- factored out... 1996-12-15 20:27:12 +00:00
Jim Meyering
1b25f1c2cd begin generalization -- now it works with two-file input-specs 1996-12-15 20:09:13 +00:00
Jim Meyering
8569e32ec8 . 1996-12-15 20:07:24 +00:00
Jim Meyering
1321f30e73 . 1996-12-14 20:58:17 +00:00
Jim Meyering
290ee99712 . 1996-12-14 05:24:48 +00:00
Jim Meyering
3008ad90f4 twiddle FSF address in comment. 1996-12-14 05:23:41 +00:00
Jim Meyering
8c5b30bc1e (get_format_width, get_format_prec): Avoid
unnecessary comparison of digit to '\0'.
1996-12-14 05:22:46 +00:00
Jim Meyering
f0fa287b4f (digits): Remove; subsumed by new ISDIGIT.
(inittables): Remove initialization of `digits'.
(fraccompare, numcompare, main): Use ISDIGIT (x) instead of digits[x].
(fraccompare, numcompare): Avoid casts to unsigned char that are no
longer needed.
1996-12-14 05:22:17 +00:00
Jim Meyering
4ecb3b28f1 (is_char_class_member): Use ISDIGIT_LOCALE instead of
ISDIGIT to test for characters in CC_DIGIT class.
1996-12-14 05:21:51 +00:00
Jim Meyering
ea93e0b7ad . 1996-12-13 23:41:12 +00:00
Jim Meyering
7603401c86 . 1996-12-13 05:43:35 +00:00
Jim Meyering
90d97b9703 (usage): Clarify description of -u option.
From Karl Berry.
1996-12-13 05:43:26 +00:00
Jim Meyering
4091022393 . 1996-12-13 04:35:00 +00:00
Jim Meyering
338061e307 . 1996-12-13 03:43:44 +00:00
Jim Meyering
6a99b4cc40 . 1996-12-13 03:07:23 +00:00
Jim Meyering
86d6c36d09 (IN_CTYPE_DOMAIN): Rename from ISASCII.
(ISDIGIT): New definition from Paul Eggert.
This one evaluates its argument exactly once.
(yylex): Move increment out of ISALPHA argument.  Use a
comma-expression instead.
1996-12-13 03:05:00 +00:00
Jim Meyering
a7f5043de8 (usage): Update bug-reporting address. 1996-12-13 02:47:33 +00:00
Jim Meyering
5110583f3e . 1996-12-13 02:47:22 +00:00
Jim Meyering
813c8e8bb6 .. 1996-12-12 13:19:43 +00:00
Jim Meyering
7d72c942bb . 1996-12-12 01:34:44 +00:00
Jim Meyering
f17cc2e29c . 1996-12-12 01:34:08 +00:00
Jim Meyering
4f4111709c . 1996-12-12 01:33:13 +00:00
Jim Meyering
beed39a03c . 1996-12-11 06:08:42 +00:00
Jim Meyering
d5f09a0fd1 . 1996-12-11 05:38:45 +00:00
Jim Meyering
3692f57123 . 1996-12-11 04:49:30 +00:00
Jim Meyering
d3d5565035 [_POSIX_VERSION]: Don't declare wait. That declaration
conflicted with the one on i386-pc-isc3.0, now that I've removed the
AC_ISC_POSIX macro and _POSIX_VERSION is no longer defined.
1996-12-11 04:48:51 +00:00
Jim Meyering
3e39947b49 . 1996-12-11 04:38:33 +00:00
Jim Meyering
c8a3fc9bed . 1996-12-11 04:37:22 +00:00
Jim Meyering
d43b4dcaf8 (EXTRA_DIST): Add strftime.c to appease automake.
Although it's not used yet, it'll be used by ls's (to-be-done)
--format=FORMAT option.
1996-12-11 04:34:37 +00:00
Jim Meyering
54f9b87874 . 1996-12-10 22:40:16 +00:00
Jim Meyering
1c28626053 . 1996-12-10 21:37:09 +00:00
Jim Meyering
6c674869b3 . 1996-12-10 21:32:54 +00:00
Jim Meyering
888a5250a5 . 1996-12-10 21:20:41 +00:00
Jim Meyering
d468c227b0 renamed from build-script.pl 1996-12-10 21:16:48 +00:00
Jim Meyering
52314f2cd8 . 1996-12-10 21:16:47 +00:00
Jim Meyering
8d2b4f9786 . 1996-12-10 21:16:08 +00:00
Jim Meyering
b44299cfd7 mk-script.pl: Rename from build-script.pl. 1996-12-10 21:11:55 +00:00
Jim Meyering
5ea5ea9d2c . 1996-12-10 20:59:35 +00:00
Jim Meyering
7d21f2f4d0 . 1996-12-10 20:59:15 +00:00
Jim Meyering
73db5c12b9 . 1996-12-10 20:49:27 +00:00
Jim Meyering
53ac4c028b (EXTRA_DIST): Add mktime.c.
Reported by Thomas Bushnell.
1996-12-10 20:48:12 +00:00
Jim Meyering
916a46a980 . 1996-12-10 13:04:48 +00:00
Jim Meyering
8b59538e69 . 1996-12-10 13:02:55 +00:00
Jim Meyering
eb34cbfc13 . 1996-12-10 13:01:32 +00:00
Jim Meyering
4360d0f52d . 1996-12-10 06:14:52 +00:00
Jim Meyering
e74a22ebb7 . 1996-12-10 06:12:41 +00:00
Jim Meyering
fcc65666b5 . 1996-12-10 06:11:50 +00:00
Jim Meyering
a16b0a142f Include config.h.
[!HAVE_BCOPY && HAVE_MEMCPY && !defined (bcopy)]: Define bcopy
in terms of memcpy.  Reported by Marcus Daniels.
1996-12-10 05:22:12 +00:00
Jim Meyering
5c39a3b65b . 1996-12-10 05:10:56 +00:00
Jim Meyering
4885753994 . 1996-12-10 04:54:02 +00:00
Jim Meyering
156de2ae7a . 1996-12-10 04:46:16 +00:00
Jim Meyering
40f8a7ad2b . 1996-12-10 04:43:44 +00:00
Jim Meyering
8f477a9072 (Convert): Don't reject all dates in 2038.
Some fit in 31 bits.
1996-12-10 04:34:18 +00:00
Jim Meyering
d5ce3b1c3c . 1996-12-10 04:27:12 +00:00
Jim Meyering
54d0c0bb5a . 1996-12-10 04:26:40 +00:00
Jim Meyering
09c73133aa . 1996-12-10 03:17:10 +00:00
Jim Meyering
17fe725ebb add a space 1996-12-10 03:17:01 +00:00
Jim Meyering
c02f8ed500 revert last change. 1996-12-10 03:16:36 +00:00
Jim Meyering
90b901cd1c . 1996-12-10 03:01:43 +00:00
Jim Meyering
73c7efa3ee . 1996-12-10 02:58:00 +00:00
Jim Meyering
e155f4bf01 [HAVE_TZNAME || defined __LIBC]: Declare tzname. 1996-12-10 02:46:42 +00:00
Jim Meyering
1d3c57118b (find_mount_point): Convert from K&R style header to ANSI.
Patch from Kaveh Ghazi.
1996-12-10 00:28:02 +00:00
Jim Meyering
195b5ebbe7 . 1996-12-10 00:25:00 +00:00
Jim Meyering
ba788477a8 Include config.h before testing for TERMIOS_NEEDS_XOPEN_SOURCE.
Patch from Karl Heuer.
1996-12-10 00:20:17 +00:00
Jim Meyering
6846ffa9d9 . 1996-12-09 23:54:45 +00:00
Jim Meyering
4fb3a6f765 [HAVE_TZNAME]: Declare tzname.
Patch from Karl Heuer.
1996-12-09 13:02:21 +00:00
Jim Meyering
5460d4a9c8 . 1996-12-09 04:45:08 +00:00
Jim Meyering
7f5d303c61 . 1996-12-09 03:13:15 +00:00
Jim Meyering
a65bae921e . 1996-12-09 03:12:38 +00:00
Jim Meyering
89cf1fc2cf . 1996-12-08 13:31:12 +00:00
Jim Meyering
a13947a7a3 . 1996-12-08 13:30:49 +00:00
Jim Meyering
ddc2531899 . 1996-12-08 13:29:07 +00:00
Jim Meyering
80729c5841 (noinst_LIBRARIES): Rename to lib?u.a as per
new automake requirement.
Rename ?u_* variables to lib?u_a_*.
1996-12-08 13:28:43 +00:00
Jim Meyering
83ada8596c . 1996-12-08 06:09:29 +00:00
Jim Meyering
2a1d6f9b5f (get_win_size): Rename formal parameter from fileno to FD. 1996-12-08 06:09:21 +00:00
Jim Meyering
f2ac53d4ea . 1996-12-08 05:56:37 +00:00
Jim Meyering
f31b9b9fee . 1996-12-08 05:35:20 +00:00
Jim Meyering
acc8601b65 (main): Call setlocale, bindtextdomain, and textdomain.
From Michel Robitaille.
1996-12-08 04:24:35 +00:00
Jim Meyering
8dd5415e02 . 1996-12-08 04:24:26 +00:00
Jim Meyering
8a4da0e3ff . 1996-12-07 19:54:02 +00:00
Jim Meyering
95f9b268e9 . 1996-12-07 19:45:44 +00:00
Jim Meyering
d2ad9d8cf4 . 1996-12-07 19:25:40 +00:00
Jim Meyering
0ccd71dd94 (init_header): Fix typo: cons tchar' -> const char'. From Roland. 1996-12-07 19:12:44 +00:00
Jim Meyering
1c7be9d1bb . 1996-12-07 19:03:23 +00:00
Jim Meyering
c9893d18e3 [__SVR4]: Define SVR4.
Remove duplicate `|| defined(SVR4)' disjunct guarding the
#define KERNEL_FILE "/unix" definiton.
1996-12-07 19:03:13 +00:00
Jim Meyering
fb1f09c76e . 1996-12-07 18:57:11 +00:00
Jim Meyering
b1cc662215 (strftime): Remove " %Z" part of format for %c. Suggestion from Paul Eggert. 1996-12-07 18:52:54 +00:00
Jim Meyering
f86a3c16d3 patch from Roland Huebner 1996-12-07 05:47:28 +00:00
Jim Meyering
6d244887aa . 1996-12-06 12:39:39 +00:00
Jim Meyering
f86df3250c (init_store_cols): Put parens around ... ? ... : ... expr. 1996-12-05 05:01:30 +00:00
Jim Meyering
65a915647c Use NULL instead of e.g., `(char *) 0'. 1996-12-05 04:59:26 +00:00
Jim Meyering
2882d4477d (init_header): Move dcl of FMT into block where it's used. 1996-12-05 04:55:51 +00:00
Jim Meyering
2793223907 Reindent with -TCOLUMN.
(main): Add two sets of curly braces for readability.
1996-12-05 04:49:12 +00:00
Jim Meyering
a5937bbc71 (usage): Add \n\ at end of first line. 1996-12-05 04:43:19 +00:00
Jim Meyering
d0cac59c72 (separator_string): dcl parameter const.
Add __P in fwd dcl.
1996-12-05 04:35:39 +00:00
Jim Meyering
ed0923a11c Apply big patch (patch-20) from Roland Huebner. 1996-12-05 04:33:33 +00:00
Jim Meyering
42096600e3 . 1996-12-05 03:18:34 +00:00
Jim Meyering
523fb680f6 . 1996-12-05 03:16:24 +00:00
Jim Meyering
3f36b30756 . 1996-12-05 03:13:39 +00:00
Jim Meyering
4a1512e4b2 (main) [!POSIXLY_CORRECT]: Allow the identity mappings:
[:upper:] to [:upper:] and [:lower:] to [:lower:].
(main) [POSIXLY_CORRECT]: Give a more specific diagnostic for the
identity mappings [:upper:] to [:upper:] and [:lower:] to [:lower:].
(class_ok): Update table to reflect that tr now allows these
identity mappings.
1996-12-05 03:13:33 +00:00
Jim Meyering
ad44ac84c8 (print_color_indicator): Initialize EXT to NULL. 1996-12-04 01:21:28 +00:00
Jim Meyering
c7975ba578 . 1996-12-03 03:02:45 +00:00
Jim Meyering
62a92dec57 . 1996-12-03 02:58:59 +00:00
Jim Meyering
a37e7e6b78 . 1996-12-03 02:57:47 +00:00
Jim Meyering
d5718682cc . 1996-12-03 02:46:09 +00:00
Jim Meyering
81e3dc9283 . 1996-12-03 02:45:07 +00:00
Jim Meyering
daa3f22091 . 1996-12-03 02:35:01 +00:00
Jim Meyering
b87899c834 (print_color_indicator): Check the file's suffix only
if it's a regular file.
(print_type_indicator): Use S_IXUGO instead of writing out
(S_IEXEC | S_IXGRP | S_IXOTH).
(length_of_file_name_and_frills): Likewise.
1996-12-03 02:33:09 +00:00
Jim Meyering
4accfeb4e0 [!S_IXUGO] (S_IXUGO): Define it. 1996-12-03 02:32:44 +00:00
Jim Meyering
377b0c7942 . 1996-12-01 19:21:49 +00:00
Jim Meyering
4331f5f978 . 1996-12-01 19:18:08 +00:00
Jim Meyering
fb19eec511 . 1996-12-01 19:17:36 +00:00
Jim Meyering
b712dcba25 . 1996-12-01 19:17:07 +00:00
Jim Meyering
caad57f5d0 . 1996-12-01 19:15:10 +00:00
Jim Meyering
807b8b05c2 (date): Interpret the date, L/M/N, as YYYY/MM/DD
if L >= 1000, otherwise as MM/DD/YY.  With this change,
date --date=DATE accepts dates like those in an RCS log listing.
1996-12-01 19:15:03 +00:00
Jim Meyering
5f3fa7a284 . 1996-12-01 19:14:43 +00:00
Jim Meyering
c1032f08e5 . 1996-12-01 04:12:08 +00:00
Jim Meyering
0aa0b007b0 Update from GNU libc. 1996-12-01 04:08:17 +00:00
Jim Meyering
c6973beeec Change `:' in text of menu to <colon> to avoid problems
with M-x info follow-node.
1996-11-30 14:21:01 +00:00
Jim Meyering
d99d106c55 . 1996-11-30 05:37:43 +00:00
Jim Meyering
61f8fa059c . 1996-11-30 04:34:58 +00:00
Jim Meyering
9279ffdf29 . 1996-11-30 04:33:36 +00:00
Jim Meyering
0682a5efe9 (copy_file): Allow installation from non-directory (rather than only regular)
files.  Suggestion from Charles Karney.
1996-11-30 04:33:30 +00:00
Jim Meyering
dc68073b21 . 1996-11-30 04:20:37 +00:00
Jim Meyering
78c6df8fb8 (uname): Document --processor (-p). 1996-11-30 04:20:01 +00:00
Jim Meyering
f03282e857 (main) [HAVE_SYSINFO && SI_ARCHITECTURE]: Support -p (print processor type).
(usage): Document it.
1996-11-30 04:18:19 +00:00
Jim Meyering
7e9e29f392 (main): Accept -F as a synonym for -t for compatibility
with Solaris.  From Peter Eriksson.
1996-11-30 04:08:02 +00:00
Jim Meyering
28f8f53bb6 . 1996-11-30 04:07:32 +00:00
Jim Meyering
ab8182fa71 . 1996-11-30 03:21:11 +00:00
Jim Meyering
d740a98d4a (main): Close stdout and check result, in case any deferred writes fail.
Use EXIT_SUCCESS and EXIT_FAILURE in exit and usage calls.
1996-11-30 03:20:48 +00:00
Jim Meyering
40e0727bed . 1996-11-30 03:08:46 +00:00
Jim Meyering
a387531246 . 1996-11-28 23:50:17 +00:00
Jim Meyering
be44044a29 (find_mount_point): Use strip_trailing_slashes and dirname
instead of open-coding them.  When given FILE containing no slashes,
chdir to the directory containing it (the current directory) rather
than to `..'.
1996-11-28 23:50:13 +00:00
Jim Meyering
ae9d905134 . 1996-11-28 23:18:45 +00:00
Jim Meyering
bcb8610977 (get_fs_usage): If DISK is 0 and we needed to use
it, return -1 with 0 in ERRNO.

From Miles.
1996-11-28 19:37:01 +00:00
Jim Meyering
ac66871c65 (find_mount_point): Use save_cwd/restore_cwd.
"save-cwd.h": New include.

(show_dev): Deal with null values for DISK and FSTYPE,
including interpreting special 0 errno return from get_fs_usage.
(show_point): Don't fail if we can't find a mount entry for POINT,
just call show_dev with 0 values and let it fail if necessary.
(main): Require a non-zero MOUNT_LIST only if showing all filesystems.
(find_mount_point): New function.
(xgetcwd): New declaration.

All from Miles.
1996-11-28 19:35:33 +00:00
Jim Meyering
3fa102417e . 1996-11-28 06:32:39 +00:00
Jim Meyering
59b58a58f6 . 1996-11-28 06:30:36 +00:00
Jim Meyering
f46bcc918b . 1996-11-27 05:24:41 +00:00
Jim Meyering
784928401d merge with 0.10.25 1996-11-27 05:13:21 +00:00
Jim Meyering
1a62ae1a5c . 1996-11-27 05:06:09 +00:00
Jim Meyering
952a4436eb (fraccompare): Add explicit int' in register' dcl, to
avoid new warning from gcc.
1996-11-27 05:05:52 +00:00
Jim Meyering
a098f5b9b6 . 1996-11-27 05:04:48 +00:00
Jim Meyering
5d691b7b74 . 1996-11-27 05:00:15 +00:00
Jim Meyering
84ee79c745 Fix Franc,ois' name. From Karl B. 1996-11-25 14:36:18 +00:00
Jim Meyering
4b091b8a14 Fix Franc,ois' name. From Karl B. 1996-11-25 14:35:45 +00:00
Jim Meyering
c51d0a5a9b . 1996-11-25 04:45:59 +00:00
Jim Meyering
29ea1d5db9 . 1996-11-25 04:42:37 +00:00
Jim Meyering
b910477e63 . 1996-11-25 04:42:15 +00:00
Jim Meyering
2f74178b8b . 1996-11-25 03:15:46 +00:00
Jim Meyering
fe171f7d8f . 1996-11-25 03:12:57 +00:00
Jim Meyering
b0244698f9 . 1996-11-25 03:10:03 +00:00
Jim Meyering
7c0ec3e569 . 1996-11-25 03:09:33 +00:00
Jim Meyering
4677a7e42f (t): Add names of those 5 tests. 1996-11-25 03:09:22 +00:00
Jim Meyering
520f4efee9 Add 5 tests to exercize just-fixed code. 1996-11-25 03:08:52 +00:00
Jim Meyering
0d43bad18e (set_ordering): Revert 1994-05-04 change to this function
so that blanks are not unconditionally ignored when computing start
and end positions for numeric keys.  Reported by Markus Demleitner.
1996-11-25 03:07:52 +00:00
Jim Meyering
0dd914edd1 . 1996-11-24 18:11:22 +00:00
Jim Meyering
161db26bd1 (get_win_size): Take a FILENO parameter rather than
trying to get a size from both stdin and stdout.
Update callers.
Use STDIN_FILENO and STDOUT_FILENO instead of literal 0, 1.
1996-11-24 18:06:35 +00:00
Jim Meyering
a992c841ae Big patch from Karl Heuer. FIXME: fill in details 1996-11-24 17:03:24 +00:00
Jim Meyering
9299cf1e78 (EXTRA_DIST): Add getline.c now that getline
isn't mentioned in AC_REPLACE_FUNCS.
1996-11-24 05:38:29 +00:00
Jim Meyering
970083559f . 1996-11-24 05:27:21 +00:00
Jim Meyering
459453639e . 1996-11-24 05:21:39 +00:00
Jim Meyering
0e0ae2b348 remove trailing blanks 1996-11-24 03:05:11 +00:00
Jim Meyering
cb7fcc32ff remove trailing blanks 1996-11-24 03:04:12 +00:00
Jim Meyering
d7e8ccb6f3 (usage): Remove trailing pair of blanks. 1996-11-24 03:00:37 +00:00
Jim Meyering
a811674834 . 1996-11-23 22:16:31 +00:00
Jim Meyering
fa9f16326a (usage): Alphabetize option descriptions the way sort -f would. 1996-11-23 22:16:19 +00:00
Jim Meyering
c13ff9b8bc . 1996-11-23 22:13:55 +00:00
Jim Meyering
bded355394 (usage): Alphabetize option descriptions the way sort -f would. 1996-11-23 22:13:00 +00:00
Jim Meyering
f43bd3fafc . 1996-11-23 22:10:08 +00:00
Jim Meyering
e298f1f300 (usage): Alphabetize options like sort -f would. 1996-11-23 22:06:55 +00:00
Jim Meyering
8102404465 . 1996-11-23 05:04:56 +00:00
Jim Meyering
bef51e36a4 . 1996-11-23 04:22:46 +00:00
Jim Meyering
5425625fb3 . 1996-11-23 04:16:43 +00:00
Jim Meyering
94d1ea4fa9 (copy): With -i and not -f, prompt for any type of
(non-directory) source file before overwriting an existing target.
Reported by Mark A. Thomas.
1996-11-23 04:15:35 +00:00
Jim Meyering
9645d076db . 1996-11-23 02:36:54 +00:00
Jim Meyering
b683d9194f . 1996-11-23 02:36:09 +00:00
Jim Meyering
38da840313 (main): Warn if excess arguments are ignored.
E.g., printf foo bar now ignores the single non-format argument, bar.
1996-11-23 02:34:31 +00:00
Jim Meyering
b36e061e8a . 1996-11-23 02:32:19 +00:00
Jim Meyering
0d3f6a6665 (process_regexp): Update CURRENT_LINE only if
the new value would be larger.  This avoids the infinite loop
otherwise provoked by situations like this:
printf "\na\n" | csplit - '/a/-1' '{*}'
From Jens Schmidt.
1996-11-23 02:32:10 +00:00
Jim Meyering
aa00ea2e88 remove my @comco address 1996-11-21 02:42:52 +00:00
Jim Meyering
aad274a82b . 1996-11-21 02:39:37 +00:00
Jim Meyering
fc949b713e (xgethostname): Work around bug in SunOS5.5's gethostname. 1996-11-21 02:38:40 +00:00
Jim Meyering
fbc246ca8f . 1996-11-20 06:36:09 +00:00
Jim Meyering
789a8aa03a . 1996-11-20 06:34:41 +00:00
Jim Meyering
179a2c3034 . 1996-11-20 05:18:13 +00:00
Jim Meyering
a27d168615 . 1996-11-20 05:17:50 +00:00
Jim Meyering
29fa517ae4 . 1996-11-20 05:13:57 +00:00
Jim Meyering
4b7c7e9d33 Remove unused declaration of mktime. From Tony Leneis. 1996-11-18 02:54:14 +00:00
Jim Meyering
daf9bddd16 . 1996-11-18 02:51:09 +00:00
Jim Meyering
9b3733bd9a . 1996-11-18 02:50:30 +00:00
Jim Meyering
a4f0dde547 (main): Ignore -a, for compatibility with SVR4. 1996-11-18 02:50:21 +00:00
Jim Meyering
e604ed756f . 1996-11-05 05:24:53 +00:00
Jim Meyering
1cf3018183 . 1996-11-05 05:20:03 +00:00
Jim Meyering
138d155fb8 . 1996-11-05 04:47:40 +00:00
Jim Meyering
4d091498a4 Thu Oct 31 19:32:32 1996 Miles Bader <miles@gnu.ai.mit.edu>
[ENAMETOOLONG] (xgethostname): If gethostname
returns an error other than buffer overflow, exit with an error
message instead of allocating infinite amounts of space.
[!EXIT_FAILURE] (EXIT_FAILURE): New macro.
<errno.h>: New include.
[!errno] (errno): New declaration.
1996-11-05 04:38:41 +00:00
Jim Meyering
1e3de0b6d9 . 1996-11-05 04:26:34 +00:00
Jim Meyering
25a9b70b2e Fix copyright. 1996-11-05 04:23:22 +00:00
Jim Meyering
45bf8ec9d0 Fix copyright. 1996-11-05 04:22:40 +00:00
Jim Meyering
4a253e5be0 . 1996-11-05 04:11:31 +00:00
Jim Meyering
71a04268b5 libitize 1996-11-05 03:38:23 +00:00
Jim Meyering
6c6ea1a14d . 1996-11-05 02:31:02 +00:00
Jim Meyering
9691c2050b from franc,ois 1996-11-04 18:15:56 +00:00
Jim Meyering
2876587b55 libitize 1996-11-04 18:11:58 +00:00
Jim Meyering
1eb3a8c9ba libitize 1996-11-04 18:07:38 +00:00
Jim Meyering
39fd156a8e New version from Franois Pinard. 1996-11-04 18:05:10 +00:00
Jim Meyering
f137758903 libitize 1996-11-04 18:01:20 +00:00
Jim Meyering
895c2213db libitize 1996-11-04 17:59:28 +00:00
Jim Meyering
50720fb367 libitize 1996-11-04 17:58:21 +00:00
Jim Meyering
f6516b6dd3 libitize 1996-11-04 17:57:34 +00:00
Jim Meyering
564001a9e7 . 1996-11-04 17:56:16 +00:00
Jim Meyering
25abc2a9b4 (recover_mode): Fail also if there are too many fields. From Karl Heuer. 1996-11-04 00:22:26 +00:00
Jim Meyering
70196747af cpp-indent + change some #ifdef to #if 1996-11-03 23:53:51 +00:00
Jim Meyering
04e102f64f . 1996-11-03 23:44:15 +00:00
Jim Meyering
432ebf7912 . 1996-11-03 23:43:36 +00:00
Jim Meyering
84b3a78396 Include sys/types.h for the definitions
(otherwise missing on some systems) of caddr_t (used by
sys/socket.h) and ushort (used by netinet/in.h).  From Karl Heuer.
1996-11-03 20:59:43 +00:00
Jim Meyering
9eb9f31c3a . 1996-11-03 14:44:30 +00:00
Jim Meyering
7f82c56f15 . 1996-11-03 14:42:03 +00:00
Jim Meyering
5582e6dad3 change bug-reporting address 1996-11-03 03:16:27 +00:00
Jim Meyering
2e55854100 change bug-reporting address 1996-11-03 03:16:23 +00:00
Jim Meyering
8114f3fcdb change bug-reporting address 1996-11-02 23:40:19 +00:00
Jim Meyering
45c541daa1 . 1996-11-02 20:51:40 +00:00
Jim Meyering
17c0c658f1 change bug-reporting address 1996-11-02 20:44:52 +00:00
Jim Meyering
b8e689dc67 change bug-reporting address 1996-11-02 20:44:15 +00:00
Jim Meyering
87b19e8a11 . 1996-11-02 19:24:35 +00:00
Jim Meyering
a1c6ed64c0 . 1996-11-02 16:05:47 +00:00
Jim Meyering
f2c14100c3 . 1996-11-02 15:28:22 +00:00
Jim Meyering
1a58046071 (gobble_file): Set linkok for non-orphaned symlinks.
From Bauke Jan Douma.
(gobble_file): Initialize linkok.
With these two changes, ls --color should display orphaned symlinks
as blinking text on terminals that support it.
1996-11-02 15:28:08 +00:00
Jim Meyering
b3b3cf98c6 . 1996-11-02 15:06:36 +00:00
Jim Meyering
30bf49ce02 . 1996-11-02 15:05:57 +00:00
Jim Meyering
a5ecd84c1f . 1996-11-02 15:02:25 +00:00
Jim Meyering
9b29731f08 . 1996-11-02 14:53:43 +00:00
Jim Meyering
a140942848 . 1996-11-02 14:50:31 +00:00
Jim Meyering
1291b1652a (MAKEINFO): Set to makeinfo --no-split.
Otherwise, the generated info files have 15-byte names and that
loses on systems with 14-byte max.
1996-11-02 14:47:46 +00:00
Jim Meyering
1b5b75d13e . 1996-11-02 06:16:56 +00:00
Jim Meyering
f1af346ad5 (main): Give better diagnostic.
Suggestion from Karl Berry.
1996-11-02 06:16:44 +00:00
Jim Meyering
431bbb9c57 update copyright 1996-11-02 06:00:18 +00:00
Jim Meyering
7d62b5ce1c update copyright 1996-11-02 05:59:20 +00:00
Jim Meyering
a345a56001 . 1996-11-02 05:53:00 +00:00
Jim Meyering
b5f8cdecfb Update from GNU libc. 1996-11-02 05:51:53 +00:00
Jim Meyering
fa53b43c97 . 1996-11-02 05:28:36 +00:00
Jim Meyering
23bce5b115 . 1996-11-02 05:28:21 +00:00
Jim Meyering
da952f6227 . 1996-11-02 05:24:50 +00:00
Jim Meyering
31926f3a37 . 1996-11-02 05:24:25 +00:00
Jim Meyering
a71e22991b Add a test to exercize this fix. 1996-11-02 05:19:40 +00:00
Jim Meyering
d74d789bea Add test 17. 1996-11-02 05:19:02 +00:00
Jim Meyering
950325ee23 . 1996-11-02 05:14:21 +00:00
Jim Meyering
c941e1742d . 1996-11-02 05:09:54 +00:00
Jim Meyering
0bd1289ad1 . 1996-11-02 03:51:47 +00:00
Jim Meyering
febf70b73f [!ENABLE_ASSERTIONS]: Guard NDEBUG definition.
(checkfp): Fix off-by-one error that resulted in writing one byte
beyond the end of a malloc'd buffer.  It caused `sort -c' to segfault
on Linux systems having a relatively recent libc.  Before, running
the command, perl -e "print 'x' x 30, \"\n\";"|sort -c
would provoke the memory overrun (though not necessarily the failure).
Add an assertion.
1996-11-02 03:47:04 +00:00
Jim Meyering
b5a71af82a Remap yacc globals to have gd_ prefix.
Suggestion to do as in gdb/c-exp.y from Tom Tromey.
1996-11-01 00:32:12 +00:00
Jim Meyering
876c63c92f Remap yacc globals to have pt_ prefix.
Suggestion to do as in gdb/c-exp.y from Tom Tromey.
1996-11-01 00:31:57 +00:00
Jim Meyering
b3ca6696cd . 1996-11-01 00:09:34 +00:00
Jim Meyering
24e88142ba (key_init): New function.
(main): Use key_init in the two places where it was open-coded.
1996-11-01 00:08:58 +00:00
Jim Meyering
f9cd2cf6e2 (decode_field_spec): Always give FIELD_INDEX a value.
This avoids spurious UMR from purify.
(prjoin): Add an assertion.
(add_field): Update assertion.
1996-10-31 23:55:04 +00:00
Jim Meyering
0a1ac00ad6 (es_free): New function.
(parse_str): Use it to plug small memory leak.
1996-10-31 23:49:42 +00:00
Jim Meyering
e5947e883e . 1996-10-31 02:10:18 +00:00
Jim Meyering
679918ec84 . 1996-10-29 18:06:05 +00:00
Jim Meyering
a9b6fe5c83 . 1996-10-29 18:05:50 +00:00
Jim Meyering
8619a0d598 . 1996-10-29 17:56:06 +00:00
Jim Meyering
d34e6897d8 . 1996-10-29 17:55:38 +00:00
Jim Meyering
55681891e5 . 1996-10-29 17:47:50 +00:00
Jim Meyering
3772a9e885 . 1996-10-29 17:44:03 +00:00
Jim Meyering
1220685f78 libitize 1996-10-29 14:45:55 +00:00
Jim Meyering
f3129d9b19 . 1996-10-29 14:25:25 +00:00
Jim Meyering
b0fd7c9185 . 1996-10-29 14:25:15 +00:00
Jim Meyering
7d70c26629 . 1996-10-29 14:24:52 +00:00
Jim Meyering
ac96de6db4 . 1996-10-29 14:21:15 +00:00
Jim Meyering
1f49981a1f cpp-indent 1996-10-29 14:17:29 +00:00
Jim Meyering
d09ffcb711 libitize 1996-10-29 14:14:08 +00:00
Jim Meyering
33b2a8a1ae . 1996-10-29 13:57:43 +00:00
Jim Meyering
32969f8571 . 1996-10-29 13:56:39 +00:00
Jim Meyering
4abe75d3b1 . 1996-10-29 13:50:37 +00:00
Jim Meyering
e623bf9a03 . 1996-10-29 13:47:56 +00:00
Jim Meyering
0815914f28 . 1996-10-29 13:42:56 +00:00
Jim Meyering
70cf07775b . 1996-10-29 13:41:43 +00:00
Jim Meyering
06382a007d . 1996-10-29 13:40:56 +00:00
Jim Meyering
d7749da3e9 (decode_switches): Make -A set really_all_files to zero
as well as setting all_files to 1.  With this change, ls -f -A prints
everything but . and .., unsorted.  Before, the -A was effectively
ignored.  From Karl Berry.
1996-10-29 12:51:37 +00:00
Jim Meyering
84b8cf9fcf (main): Ignore SIGPIPE. 1996-10-29 04:16:59 +00:00
Jim Meyering
c673119b0b . 1996-10-28 23:52:51 +00:00
Jim Meyering
45d223328e . 1996-10-28 23:49:53 +00:00
Jim Meyering
b8ad9be908 Guard inclusion of stdarg.h and definition of VA_START
with #if PROTOTYPES rather than with #ifdef __STDC__.  The latter
loses with Dynix/PTX.
(wrapf) [PROTOTYPES]: Similarly, guard ANSI-style ... definition.
Suggestion from Marcus Daniels.
1996-10-24 04:46:33 +00:00
Jim Meyering
2be918d5cd . 1996-10-24 03:03:08 +00:00
Jim Meyering
db69dbe9ab Update from GNU libc. 1996-10-24 03:02:57 +00:00
Jim Meyering
4215f6b53a . 1996-10-23 01:39:16 +00:00
Jim Meyering
e1298617bf . 1996-10-23 01:24:26 +00:00
Jim Meyering
720341312b . 1996-10-23 01:24:03 +00:00
Jim Meyering
ed44302c4a . 1996-10-22 23:02:22 +00:00
Jim Meyering
c3b3d48cd4 . 1996-10-22 22:51:22 +00:00
Jim Meyering
a73047bde4 . 1996-10-22 05:07:12 +00:00
Jim Meyering
20862d675d . 1996-10-22 05:05:36 +00:00
Jim Meyering
17e8314c79 . 1996-10-22 05:01:37 +00:00
Jim Meyering
ee791d8ca1 [__linux__]: Don't bother with a.out/nlist/kernel
defines or includes -- Linux systems simply read /proc/loadavg.
1996-10-22 05:01:13 +00:00
Jim Meyering
0c410767ab . 1996-10-22 04:56:22 +00:00
Jim Meyering
3896da90cc (EXTRA_DIST): Remove group-member.c.
Add (temporary hack to work around bug in automake-1.1f) mvdir.c and rmdir.c.
1996-10-22 04:51:44 +00:00
Jim Meyering
0ed25421c6 . 1996-10-22 04:07:14 +00:00
Jim Meyering
194f3d7f5a . 1996-10-22 03:28:44 +00:00
Jim Meyering
e028e025df . 1996-10-22 03:19:35 +00:00
Jim Meyering
8978c64869 . 1996-10-22 03:15:22 +00:00
Jim Meyering
0fd3107ec7 . 1996-10-22 03:09:55 +00:00
Jim Meyering
0416bd8ed0 . 1996-10-21 22:27:48 +00:00
Jim Meyering
d63a1efe26 . 1996-10-21 22:05:28 +00:00
Jim Meyering
43294523f4 . 1996-10-21 21:58:44 +00:00
Jim Meyering
625354dd9e . 1996-10-21 21:54:03 +00:00
Jim Meyering
dc14f81457 Comment out DOS-style suffixes. 1996-10-21 21:52:53 +00:00
Jim Meyering
32f42e0a34 . 1996-10-21 21:50:51 +00:00
Jim Meyering
263773a385 (validate): Remove TAB from diagnostic, for consistency. 1996-10-21 21:50:32 +00:00
Jim Meyering
6afff604a4 . 1996-10-21 21:49:54 +00:00
Jim Meyering
7b4f54f83f (main): Remove TAB from diagnostic, for consistency. 1996-10-21 21:49:41 +00:00
Jim Meyering
24b532175e . 1996-10-21 15:42:14 +00:00
Jim Meyering
543f479cc8 . 1996-10-21 13:46:50 +00:00
Jim Meyering
4b1e41570b . 1996-10-21 03:33:37 +00:00
Jim Meyering
d0fa9d9689 (INCLUDES): Add -I../intl. Reported by Eric Backus. 1996-10-21 03:33:19 +00:00
Jim Meyering
4516e9ec55 . 1996-10-21 00:38:50 +00:00
Jim Meyering
d15f56325a . 1996-10-20 19:16:49 +00:00
Jim Meyering
1dde8333c1 . 1996-10-20 19:14:50 +00:00
Jim Meyering
ac22b4589d (print_entry): Don't take address of UT_TIME_MEMBER directly.
From Ulrich Drepper.
1996-10-20 19:14:37 +00:00
Jim Meyering
2f03e544e1 . 1996-10-20 18:50:41 +00:00
Jim Meyering
412cc2f3fc (md5_process_bytes): Cast void* pointer to char* before
doing arithmetic with it.
1996-10-20 18:44:39 +00:00
Jim Meyering
3cbc95de84 . 1996-10-20 18:43:54 +00:00
Jim Meyering
b3d2d7745e . 1996-10-20 18:06:50 +00:00
Jim Meyering
66d52e0b28 . 1996-10-20 14:07:17 +00:00
Jim Meyering
5ba02801bd Update from GNU libc. 1996-10-20 04:14:25 +00:00
Jim Meyering
03c0cd6569 . 1996-10-19 02:33:20 +00:00
Jim Meyering
c12be5c1d8 . 1996-10-18 05:10:42 +00:00
Jim Meyering
d565995d9b . 1996-10-18 05:09:27 +00:00
Jim Meyering
9fd1b85231 . 1996-10-18 05:09:03 +00:00
Jim Meyering
350690112e . 1996-10-18 05:08:13 +00:00
Jim Meyering
d0acd7bfa5 . 1996-10-18 05:00:15 +00:00
Jim Meyering
4ba06c4102 . 1996-10-18 04:59:01 +00:00
Jim Meyering
cb84de4217 . 1996-10-18 04:56:53 +00:00
Jim Meyering
7111d93669 . 1996-10-18 04:56:19 +00:00
Jim Meyering
97f0f916a2 . 1996-10-18 04:55:16 +00:00
Jim Meyering
42e52b5017 . 1996-10-18 03:05:32 +00:00
Jim Meyering
8ce9769e2f . 1996-10-18 03:02:52 +00:00
Jim Meyering
7d969dab50 libitize 1996-10-17 03:05:09 +00:00
Jim Meyering
d7074bc0e4 . 1996-10-17 03:01:19 +00:00
Jim Meyering
e24c0713be Define and use macro, PARAMS, not __P. 1996-10-17 02:59:09 +00:00
Jim Meyering
9b3498acb2 . 1996-10-17 02:46:33 +00:00
Jim Meyering
ffc5c802c4 libitize 1996-10-17 02:45:32 +00:00
Jim Meyering
12b4578595 libitize 1996-10-17 01:58:19 +00:00
Jim Meyering
e98991ee51 libitize 1996-10-17 01:49:07 +00:00
Jim Meyering
10076ae36a . 1996-10-17 01:44:24 +00:00
Jim Meyering
c96ca77338 . 1996-10-16 04:31:32 +00:00
Jim Meyering
e82e83086c . 1996-10-16 04:29:10 +00:00
Jim Meyering
70ef71caf5 (get_next): Rewrite to treat lower/upper mapping as a special case.
(main): Write separate loops to initialize mapping for lower->upper
and upper->lower conversion.
1996-10-16 04:29:02 +00:00
Jim Meyering
56d2307664 . 1996-10-16 04:25:18 +00:00
Jim Meyering
e98dee7cdd . 1996-10-15 23:22:41 +00:00
Jim Meyering
f3701815f7 . 1996-10-14 20:47:42 +00:00
Jim Meyering
cf3c9c6a11 . 1996-10-13 19:08:39 +00:00
Jim Meyering
beb67dc954 (print_long_format): Use strftime of localtime
(not ctime) to produce the date/time in long listings.
From Rafal Maszkowski.
1996-10-13 19:04:51 +00:00
Jim Meyering
242f2fa2e1 . 1996-10-13 18:27:17 +00:00
Jim Meyering
3d91b69385 . 1996-10-13 17:58:55 +00:00
Jim Meyering
41dfaf296a (__xstrtol): Return an error for invalid suffix.
Before, e.g., `split -b 1M' would be silently accepted and treated
like `split -b 1'.  Reported by Franc,ois.
1996-10-13 17:58:50 +00:00
Jim Meyering
bc2d814543 (usage): Remove parameter, REASON.
(main): Update callers to use combination of error (0, 0, ... and
usage (EXIT_FAILURE).
1996-10-13 17:53:47 +00:00
Jim Meyering
8cb23387cb . 1996-10-13 13:00:34 +00:00
Jim Meyering
82fa812558 . 1996-10-13 12:34:56 +00:00
Jim Meyering
1487a7da95 . 1996-10-12 23:21:40 +00:00
Jim Meyering
1751c454c2 (fstype_to_string): Handle fstypes of freebsd.
From Arne Henrik Juul.
1996-10-12 23:21:32 +00:00
Jim Meyering
da59dde0bb . 1996-10-12 23:19:30 +00:00
Jim Meyering
6099958eda . 1996-10-12 14:02:48 +00:00
Jim Meyering
ffd5a79535 (EXTRA_DIST): Remove. 1996-10-12 05:09:28 +00:00
Jim Meyering
320268ae6d . 1996-10-12 05:04:44 +00:00
Jim Meyering
e45d62703e . 1996-10-12 05:04:04 +00:00
Jim Meyering
6ed9fd4b58 . 1996-10-12 04:17:28 +00:00
Jim Meyering
d0909b6911 (print_uptime): Change #ifdef guard on getloadavg
call from just HAVE_GETLOADAVG to HAVE_GETLOADAVG || C_GETLOADAVG.
From Kaveh R. Ghazi.
1996-10-12 04:17:25 +00:00
Jim Meyering
a64289005d . 1996-10-12 04:06:15 +00:00
Jim Meyering
e42dca4684 . 1996-10-12 04:04:16 +00:00
Jim Meyering
51293cdf6f . 1996-10-11 04:50:54 +00:00
Jim Meyering
4d0af9ead4 (EXTRA_DIST): Remove posixtm.y and getdate.y.
(fu_SOURCES): Put them here instead.
Remove rules for building getdate.c and posixtm.c;  now automake
generates those rules.
1996-10-11 04:49:50 +00:00
Jim Meyering
eed23c25dc (md5_stream): Apply fix from Ralph Loader
<loader@maths.ox.ac.uk> via Ulrich Drepper.
1996-10-11 04:43:40 +00:00
Jim Meyering
8204d34b97 . 1996-10-11 03:42:11 +00:00
Jim Meyering
d80da392e0 . 1996-10-10 14:08:46 +00:00
Jim Meyering
4c53aee40c . 1996-10-10 14:07:29 +00:00
Jim Meyering
3d35ef8670 . 1996-10-10 04:18:05 +00:00
Jim Meyering
5921df05c5 . 1996-10-10 04:15:54 +00:00
Jim Meyering
1a7260cada . 1996-10-10 04:14:40 +00:00
Jim Meyering
969950e526 . 1996-10-10 04:11:07 +00:00
Jim Meyering
fb9ee923ba [__sun]: Define sun. Reported by Kaveh Ghazi. 1996-10-10 03:14:48 +00:00
Jim Meyering
8af03634e6 . 1996-10-10 03:10:41 +00:00
Jim Meyering
e5e9f3ee5d (strftime): Accommodate the broken C compiler
that comes with SunOS -- don't initialize aggregates in decls of
automatic variables.  Reported by Kaveh Ghazi.
1996-10-10 02:56:10 +00:00
Jim Meyering
62ae6ccc22 . 1996-10-10 02:53:58 +00:00
Jim Meyering
c3830e800f indent copyright comment. 1996-10-10 02:51:16 +00:00
Jim Meyering
7200c7fd2e Use #if, not #ifdef in test for HAVE_CONFIG_H. 1996-10-10 02:50:37 +00:00
Jim Meyering
d16bea8f84 . 1996-10-10 02:48:37 +00:00
Jim Meyering
ae0dc43e79 . 1996-10-09 16:14:39 +00:00
Jim Meyering
c6500ed364 . 1996-10-09 12:27:16 +00:00
Jim Meyering
2a5b5534ab . 1996-10-09 12:25:28 +00:00
Jim Meyering
2dc3ad1a76 (usage): Improve brief descriptions of --sort and --time.
From Franois Pinard.
1996-10-09 12:24:26 +00:00
Jim Meyering
1e2d02ace5 . 1996-10-09 12:18:48 +00:00
Jim Meyering
fde482ef0e . 1996-10-09 12:00:05 +00:00
Jim Meyering
9de1f7a589 [!WITH_REGEX]: Include rx.h.
From Andreas Schwab.
1996-10-09 11:55:22 +00:00
Jim Meyering
983e0032e0 . 1996-10-09 05:27:46 +00:00
Jim Meyering
60cb394696 . 1996-10-09 03:47:10 +00:00
Jim Meyering
c5c0528abe update from texinfo-3.9 1996-10-09 03:20:31 +00:00
Jim Meyering
fecbdd9ab1 . 1996-10-09 02:42:17 +00:00
Jim Meyering
5b2210ce71 . 1996-10-09 02:37:53 +00:00
Jim Meyering
3df36d5e2f . 1996-10-09 02:36:55 +00:00
Jim Meyering
a49fa29fed . 1996-10-09 02:35:23 +00:00
Jim Meyering
bb3ecf85bc Include error.h to align with libit -- under protest, Franois :-). 1996-10-09 02:33:18 +00:00
Jim Meyering
b5a2377dc2 . 1996-10-09 02:29:10 +00:00
Jim Meyering
46b5894b8f , 1996-10-09 02:27:56 +00:00
Jim Meyering
1a68844645 . 1996-10-09 02:25:44 +00:00
Jim Meyering
dc522f984c . 1996-10-09 02:19:09 +00:00
Jim Meyering
8573fc6ac9 (usage): Improve diagnostic 1996-10-08 04:37:19 +00:00
Jim Meyering
d4cf394f30 (usage): Improve usage messages 1996-10-08 04:35:19 +00:00
Jim Meyering
79f3064bfa . 1996-10-08 04:34:11 +00:00
Jim Meyering
900e16e5d5 (EXTRA_DIST): Remove names of several files
that automake adds automatically.
(fu_SOURCES): Likewise.
(fu_DEPENDENCIES): Depend on fu_LIBADD.
1996-10-08 04:33:47 +00:00
Jim Meyering
dfc9fc2202 . 1996-10-08 04:31:57 +00:00
Jim Meyering
1b5b3bf6e2 . 1996-10-08 04:26:01 +00:00
Jim Meyering
cb806c0218 . 1996-10-08 02:23:35 +00:00
Jim Meyering
0e6d3d87e4 [__hpux]: Define hpux. From Eric Backus. 1996-10-08 02:06:34 +00:00
Jim Meyering
4b08923fe8 . 1996-10-08 00:58:23 +00:00
Jim Meyering
2edcf647de . 1996-10-08 00:54:50 +00:00
Jim Meyering
0a713ad019 . 1996-10-08 00:54:12 +00:00
Jim Meyering
7026c59810 . 1996-10-08 00:51:25 +00:00
Jim Meyering
4c4eb1ab6c . 1996-10-06 13:03:02 +00:00
Jim Meyering
638d6e19f0 . 1996-10-06 13:02:12 +00:00
Jim Meyering
27d2263af1 . 1996-10-06 03:19:07 +00:00
Jim Meyering
320b9cc697 . 1996-10-06 03:07:35 +00:00
Jim Meyering
28e0bda43b . 1996-10-06 02:54:21 +00:00
Jim Meyering
04af619ed2 . 1996-10-06 02:53:18 +00:00
Jim Meyering
255931762f . 1996-10-05 20:18:41 +00:00
Jim Meyering
f98969cf69 . 1996-10-05 20:17:53 +00:00
Jim Meyering
7c17502e74 (print_long_format): Add support for Cray's migrated dmf files.
From Johan Danielsson.
1996-10-05 20:17:09 +00:00
Jim Meyering
4a2eda04aa (ftypelet): Add support for Cray's migrated dmf files.
From Johan Danielsson.
1996-10-05 20:15:06 +00:00
Jim Meyering
ed43629995 . 1996-10-05 19:14:01 +00:00
Jim Meyering
c177b96b17 . 1996-10-05 18:06:07 +00:00
Jim Meyering
c5de1e3532 (main): update --version output to conform to coding standard 1996-10-05 18:04:52 +00:00
Jim Meyering
148ec1ad9c [HAVE_CONFIG_H]: Include config.h.
From Karl Berry.
1996-10-05 17:40:50 +00:00
Jim Meyering
a13e04ed9d fix --version output 1996-10-05 17:12:55 +00:00
Jim Meyering
98564790bd . 1996-10-05 16:47:37 +00:00
Jim Meyering
f04044ed86 (main): update --version output to conform to coding standard 1996-10-05 16:37:57 +00:00
Jim Meyering
09711894fe . 1996-10-05 13:15:07 +00:00
Jim Meyering
4f28f318d8 (main): update --version output to conform to coding standard 1996-10-05 13:14:11 +00:00
Jim Meyering
e22c80dcf0 . 1996-10-05 03:58:37 +00:00
Jim Meyering
b350b74916 Remove assertions. 1996-10-04 13:42:43 +00:00
Jim Meyering
3400ffe3f2 Add assertions. 1996-10-04 13:42:20 +00:00
Jim Meyering
fdd16fdb62 Update prototype. 1996-10-04 12:22:17 +00:00
Jim Meyering
6f67177fae (parse_long_options): Separate package name
and version number to accomodate new --version output requirement.
1996-10-04 12:21:39 +00:00
Jim Meyering
2c035a7cfd (main): update --version output again 1996-10-04 04:28:35 +00:00
Jim Meyering
be4153d2a8 (main): Remove dead code that used to print --version output. 1996-10-04 04:28:28 +00:00
Jim Meyering
630b771f1b (main): update --version output again 1996-10-04 04:25:46 +00:00
Jim Meyering
de05a873ec (main): update --version output to conform to coding standard 1996-10-04 04:16:01 +00:00
Jim Meyering
3361bd2bca (main): update --version output to conform to coding standard 1996-10-04 04:15:08 +00:00
Jim Meyering
1c6698b17d . 1996-10-03 02:46:05 +00:00
Jim Meyering
a3edb3f940 (usage): Deprecate --print-data-base even though
that's the way GNU make writes it.  `database' is one word.
Add description of FILE argument.
1996-10-03 02:45:59 +00:00
Jim Meyering
9b34a4a7c6 . 1996-10-02 02:57:29 +00:00
Jim Meyering
56c8b44ec6 . 1996-10-02 00:45:15 +00:00
Jim Meyering
50c823be8a . 1996-10-01 17:59:05 +00:00
Jim Meyering
4909374105 . 1996-10-01 17:57:29 +00:00
Jim Meyering
2a91869144 (fu_SOURCES): Remove getline.c
(EXTRA_DIST): Add getline.c
1996-10-01 17:57:04 +00:00
Jim Meyering
41bf50ecb3 . 1996-10-01 17:52:42 +00:00
Jim Meyering
349c3796be Oops! Use ../../src 1996-10-01 17:37:35 +00:00
Jim Meyering
717429e4bc . 1996-10-01 11:55:14 +00:00
Jim Meyering
6c81b98e46 (md5sum): Use ../src/md5sum. 1996-10-01 11:55:01 +00:00
Jim Meyering
cf64a504d8 (md5sum): Set to $srcdir/md5sum. 1996-10-01 04:47:55 +00:00
Jim Meyering
ec693397f0 . 1996-10-01 04:47:21 +00:00
Jim Meyering
04838c31ce . 1996-10-01 04:43:44 +00:00
Jim Meyering
fa3bbe8eb2 . 1996-10-01 04:38:28 +00:00
Jim Meyering
39c406f18a . 1996-10-01 01:10:54 +00:00
Jim Meyering
d7f77ef1cf . 1996-10-01 01:10:10 +00:00
Jim Meyering
31053908a0 (path_concat): Use K&R style function definition. 1996-10-01 01:09:07 +00:00
Jim Meyering
0c7040607d . 1996-09-30 03:49:53 +00:00
Jim Meyering
d81cbf71b4 . 1996-09-30 03:49:26 +00:00
Jim Meyering
b339cb8d84 . 1996-09-30 03:41:36 +00:00
Jim Meyering
d8880083a6 . 1996-09-30 03:05:41 +00:00
Jim Meyering
96cdeb978e (do_copy): Give better error message when copying multiple
files and the last one is not a directory.  From Karl Berry.
Call error (0, 0, ... then usage (1) -- instead of calling usage
with two arguments.
1996-09-30 03:04:54 +00:00
Jim Meyering
b2cc136736 . 1996-09-30 02:57:55 +00:00
Jim Meyering
b394529747 use exp_name in msg when open EXP fails. 1996-09-30 02:57:28 +00:00
Jim Meyering
edfafcd7b7 Reversed order of flags and input. 1996-09-30 02:56:34 +00:00
Jim Meyering
1c75eb6a98 . 1996-09-30 02:43:42 +00:00
Jim Meyering
814dc35407 Die if close fails. 1996-09-30 02:43:22 +00:00
Jim Meyering
99fe905035 . 1996-09-30 02:41:50 +00:00
Jim Meyering
ccf556a616 Die if close fails. 1996-09-30 02:39:46 +00:00
Jim Meyering
d96a2d9e14 . 1996-09-30 01:06:47 +00:00
Jim Meyering
8e11d5dfae . 1996-09-30 00:28:08 +00:00
Jim Meyering
f64f586fdc . 1996-09-30 00:27:48 +00:00
Jim Meyering
6f8e1b2134 . 1996-09-30 00:27:38 +00:00
Jim Meyering
8888bceb65 . 1996-09-30 00:27:11 +00:00
Jim Meyering
78315499ba . 1996-09-30 00:24:30 +00:00
Jim Meyering
e666e3459e . 1996-09-28 18:51:37 +00:00
Jim Meyering
6a9d144a66 . 1996-09-28 18:31:00 +00:00
Jim Meyering
f34578f297 . 1996-09-28 18:25:55 +00:00
Jim Meyering
1dc643390a . 1996-09-28 18:17:08 +00:00
Jim Meyering
ea3702aa6d (backup_types): Declare const.
(backup_args): Likewise.
1996-09-28 18:17:00 +00:00
Jim Meyering
59b9296742 . 1996-09-28 18:09:13 +00:00
Jim Meyering
bf3b759a61 . 1996-09-28 18:08:03 +00:00
Jim Meyering
bc24ebbed0 . 1996-09-28 03:25:27 +00:00
Jim Meyering
10ac9ed1ba Remove references to the now-deprecated --string option. 1996-09-27 02:10:37 +00:00
Jim Meyering
f28de0cbe3 . 1996-09-27 02:10:11 +00:00
Jim Meyering
d7477dbf0c (usage): Remove references in --help output to
the now-deprecated --string option.  Support for it will be
removed soon.
1996-09-27 02:09:57 +00:00
Jim Meyering
b4062862f6 Rewrite to avoid use of --string option. 1996-09-27 02:03:32 +00:00
Jim Meyering
4ddff14202 . 1996-09-26 03:10:04 +00:00
Jim Meyering
c98881bb59 . 1996-09-26 02:59:45 +00:00
Jim Meyering
9016aac157 (t): Factor out .in suffix.
Include new test: t16a.
1996-09-26 02:59:36 +00:00
Jim Meyering
8c5a8ba959 . 1996-09-23 21:16:06 +00:00
Jim Meyering
62a6b18a77 (sort invocation): from Andreas Schwab. 1996-09-23 15:40:34 +00:00
Jim Meyering
0f39512ec6 . 1996-09-23 15:26:37 +00:00
Jim Meyering
77becb06e1 . 1996-09-23 15:01:31 +00:00
Jim Meyering
2ff0c1870c (EXTRA_DIST): Distribute $(TESTS). 1996-09-23 15:01:23 +00:00
Jim Meyering
9438eff8ec . 1996-09-23 03:43:21 +00:00
Jim Meyering
4097b92a07 . 1996-09-23 03:03:36 +00:00
Jim Meyering
7c695a0e5a Add test from sign ext bug from Erick Branderhorst. 1996-09-23 03:03:27 +00:00
Jim Meyering
85cddd3119 (keycompare): Declare translate to be unsigned char *.
Otherwise, sign extension caused misordering when using e.g. -f.
1996-09-23 03:02:04 +00:00
Jim Meyering
3661c96081 . 1996-09-23 02:49:03 +00:00
Jim Meyering
d4368d4802 . 1996-09-23 02:48:35 +00:00
Jim Meyering
34c992c065 merge with 0.10.24 1996-09-22 14:30:37 +00:00
Jim Meyering
e904744174 . 1996-09-22 14:26:29 +00:00
Jim Meyering
47e8713900 . 1996-09-22 14:25:49 +00:00
Jim Meyering
5637dfa191 . 1996-09-21 20:22:14 +00:00
Jim Meyering
ce5730d5c2 . 1996-09-21 18:35:52 +00:00
Jim Meyering
f1a405c1e9 . 1996-09-21 18:34:26 +00:00
Jim Meyering
7f88c2b896 . 1996-09-21 15:24:04 +00:00
Jim Meyering
eaa41b023f (xstrndup): Use message that's the same as the one
you get from e.g., xmalloc.  Reported by Santiago Vila.
1996-09-21 15:23:35 +00:00
Jim Meyering
0867d4efd3 . 1996-09-20 03:48:08 +00:00
Jim Meyering
b12923594b . 1996-09-20 03:47:46 +00:00
Jim Meyering
4f208e731c (fu_SOURCES): Remove regex.c and rx.c.
(EXTRA_DIST): Put them here instead.
1996-09-20 03:47:37 +00:00
Jim Meyering
26b61d5962 . 1996-09-20 03:19:47 +00:00
Jim Meyering
955f5eb1f4 . 1996-09-20 03:17:28 +00:00
Jim Meyering
0e02a64c99 . 1996-09-20 03:16:17 +00:00
Jim Meyering
545c237530 (fu_SOURCES): Move getopt.c and getopt1.c back to here fro EXTRA_DIST. 1996-09-20 03:14:17 +00:00
Jim Meyering
3cc1863ab3 . 1996-09-19 15:39:43 +00:00
Jim Meyering
815261aefc . 1996-09-19 14:12:28 +00:00
Jim Meyering
f599541be9 . 1996-09-19 13:46:49 +00:00
Jim Meyering
c62a6dbaa9 . 1996-09-19 12:55:17 +00:00
Jim Meyering
74388abca3 . 1996-09-19 12:54:24 +00:00
Jim Meyering
e044081627 Replace with FSF version. 1996-09-19 12:54:15 +00:00
Jim Meyering
d1320b7277 . 1996-09-19 12:48:06 +00:00
Jim Meyering
6ac49bdf47 Merge with FSF version. 1996-09-19 12:47:49 +00:00
Jim Meyering
c74ae79fd9 . 1996-09-17 04:14:01 +00:00
Jim Meyering
4b29186f72 (strftime): New version, from GNU libc. 1996-09-17 04:13:22 +00:00
Jim Meyering
94435a6401 . 1996-09-16 04:10:40 +00:00
Jim Meyering
1e26d4455a . 1996-09-16 04:08:38 +00:00
Jim Meyering
3683b0b3ef . 1996-09-10 03:18:30 +00:00
Jim Meyering
2d30458a75 . 1996-09-10 03:10:26 +00:00
Jim Meyering
9cde1990ab (do_copy): Describe in a little *more* detail the code
that makes `cp non-directory file/' (eventually) fail.
1996-09-10 03:09:31 +00:00
Jim Meyering
3fc07d456b (do_copy): Describe in a little more detail the code
that makes `cp non-directory file/' (eventually) fail.
1996-09-10 03:05:15 +00:00
Jim Meyering
73ca459085 . 1996-09-08 22:00:42 +00:00
Jim Meyering
85219ddf0f (usage): Refer to LS_COLORS, not LS_COLOR.
From Santiago Vila Doncel.
1996-09-08 22:00:35 +00:00
Jim Meyering
f471847cac . 1996-09-08 19:10:03 +00:00
Jim Meyering
edbc415595 . 1996-09-08 18:56:57 +00:00
Jim Meyering
e4c1c5efca Prefix $in with \$srcdir/ so make check works with VPATH build.
From Uli Drepper.
1996-09-08 18:56:04 +00:00
Jim Meyering
c830d53afb . 1996-09-08 17:55:31 +00:00
Jim Meyering
4526777121 (do_copy): Set backup_type to `none' only *after*
calling to find_backup_file_name.  Reported by Eli Zaretskii.
1996-09-08 17:55:24 +00:00
Jim Meyering
97df7b0013 . 1996-09-07 18:00:25 +00:00
Jim Meyering
9c28acb705 . 1996-09-07 17:59:35 +00:00
Jim Meyering
7b9e7765ee (INCLUDES): Add -I../intl so compiler will find libintl.h for rpmatch.c. 1996-09-07 17:59:26 +00:00
Jim Meyering
14c6c66b64 . 1996-09-07 17:54:23 +00:00
Jim Meyering
58b136578a . 1996-09-07 17:52:07 +00:00
Jim Meyering
139408f867 Add comments re ctype IS* macros. 1996-09-07 17:50:05 +00:00
Jim Meyering
d2c6e7cba9 Define and use upper case variants of ctype.h IS* macros.
From Bruno Haible.
1996-09-07 17:42:58 +00:00
Jim Meyering
62e0054a8d . 1996-09-07 17:31:09 +00:00
Jim Meyering
a5be9924f2 (check_punctuation): Use ISPUNCT instead of ispunct.
(get_line): Use ISSPACE instead of isspace.
1996-09-07 17:27:25 +00:00
Jim Meyering
f709048a82 revert last change 1996-09-06 03:18:46 +00:00
Jim Meyering
d1f996b486 . 1996-09-06 03:12:38 +00:00
Jim Meyering
d3900b79bc New version from glibc. 1996-09-06 03:12:04 +00:00
Jim Meyering
34d871d67d . 1996-09-06 03:01:01 +00:00
Jim Meyering
71066e34b9 (main): Don't set verbose flag for --changes.
(change_file_mode): If chmod succeeds and --changes was given,
give a diagnostic describing the new permissions.
Reported by Philippe Schnoebelen (phs@fing.edu.uy).
1996-09-06 03:00:56 +00:00
Jim Meyering
4be8ee6d75 . 1996-09-05 23:19:42 +00:00
Jim Meyering
63a48d0278 (do_copy): When concatenating DEST (with a trailing `/') and the basename
part of non-directory SOURCE, don't add a slash between them.
1996-09-05 23:19:33 +00:00
Jim Meyering
b8d66b1704 . 1996-09-05 04:40:15 +00:00
Jim Meyering
d64ae4c1be . 1996-09-05 02:48:48 +00:00
Jim Meyering
1a9771061b Make sure NULL is defined by including stddef.h
(if STDC_HEADERS || _LIBC) or simply defining it (otherwise).
Include sys/types.h for definition of size_t needed by regex.h.
1996-09-05 02:48:41 +00:00
Jim Meyering
5c8eaa8139 . 1996-09-05 02:46:01 +00:00
Jim Meyering
4cfd024d37 (fu_SOURCES): Add regex.c and rx.c.
(noinst_HEADERS): Add regex.h and rx.h.
1996-09-05 02:45:35 +00:00
Jim Meyering
5e053a624b . 1996-09-03 13:15:05 +00:00
Jim Meyering
e3625e3032 this conforms to POSIX.2. From Paul Eggert <eggert@twinsun.com>. 1996-09-03 13:14:57 +00:00
Jim Meyering
4c9586c01b . 1996-09-02 16:31:23 +00:00
Jim Meyering
d9be56f638 . 1996-09-02 16:18:59 +00:00
Jim Meyering
57592bb00e (ENABLE_NLS): Include libintl.h and define _ to gettext. 1996-09-02 16:18:48 +00:00
Jim Meyering
d4fc1b970c . 1996-09-02 15:59:22 +00:00
Jim Meyering
c609fd3e0a . 1996-09-02 15:53:04 +00:00
Jim Meyering
e9d17da073 (usage): Tell where to report bugs. 1996-09-02 15:52:45 +00:00
Jim Meyering
82e99127d2 . 1996-09-02 15:35:05 +00:00
Jim Meyering
c609ba2d13 (usage): Tell where to report bugs. 1996-09-02 15:34:25 +00:00
Jim Meyering
6a52479e0a . 1996-09-02 14:12:33 +00:00
Jim Meyering
1cd5fb882c . 1996-09-01 13:21:48 +00:00
Jim Meyering
27586e4d1b . 1996-09-01 00:02:25 +00:00
Jim Meyering
bfe2a56ac6 (utime_now): Protoize.
Reported by David S. Miller (davem@caip.rutgers.edu).
1996-08-31 23:49:29 +00:00
Jim Meyering
c9fff51897 (usage): remove spurious trailing \n in puts. 1996-08-31 04:44:31 +00:00
Jim Meyering
7e294bac78 (usage): Tell where to report bugs. 1996-08-29 05:05:57 +00:00
Jim Meyering
3d672b27ca quote via kb 1996-08-29 04:23:53 +00:00
Jim Meyering
8726a1e79e . 1996-08-26 04:07:15 +00:00
Jim Meyering
7aea26b817 (EXTRA_DIST): Add $x-tests.
($x-tests): Guard dependencies with @MAINT@.
1996-08-26 04:05:51 +00:00
Jim Meyering
a8676a3282 . 1996-08-26 03:51:49 +00:00
Jim Meyering
e8f7310474 (EXTRA_DIST): Add $x-tests.
($x-tests): Guard dependencies with @MAINT@.
1996-08-26 03:51:33 +00:00
Jim Meyering
3e1ecd65dd . 1996-08-26 03:45:32 +00:00
Jim Meyering
b0ed797534 . 1996-08-25 03:43:03 +00:00
Jim Meyering
3329d17b3e . 1996-08-24 19:30:01 +00:00
Jim Meyering
41e757beb6 (cat): Cast first arg to stpcpy to char*. 1996-08-24 19:28:27 +00:00
Jim Meyering
efe35c166d . 1996-08-24 17:58:08 +00:00
Jim Meyering
2f70dd59c6 . 1996-08-24 17:57:58 +00:00
Jim Meyering
d57a5cc166 Reverse 10f and 10g so sort passes these tests. 1996-08-24 17:57:14 +00:00
Jim Meyering
7216f62cad . 1996-08-22 04:19:34 +00:00
Jim Meyering
f2be7b3cc4 . 1996-08-22 03:29:54 +00:00
Jim Meyering
5c0b9744ab Nit fixes from kb. 1996-08-20 04:44:13 +00:00
Jim Meyering
b0a21fce4c . 1996-08-19 02:30:32 +00:00
Jim Meyering
3649121dff . 1996-08-19 02:30:04 +00:00
Jim Meyering
383690a5f2 . 1996-08-19 02:28:42 +00:00
Jim Meyering
90ce25327c . 1996-08-19 02:24:52 +00:00
Jim Meyering
840c73b381 . 1996-08-19 02:10:31 +00:00
Jim Meyering
7ec03a4414 (noinst_HEADERS): Add path-concat.h.
(fu_SOURCES): Add path-concat.c.
1996-08-19 02:10:25 +00:00
Jim Meyering
0ba429223d Include path-concat.h.
(do_copy): Check path_concat return value.
(path_concat): Remove function.
1996-08-19 02:09:23 +00:00
Jim Meyering
7d234bb98e Include path-concat.h.
(movefile): Use path_concat instead of open-coding its functionality.
Declare pointer parameters const as appropriate.
1996-08-19 02:09:07 +00:00
Jim Meyering
a0d34ce173 . 1996-08-19 01:41:53 +00:00
Jim Meyering
1a6ee7a625 . 1996-08-19 01:28:11 +00:00
Jim Meyering
34ac19cd34 . 1996-08-19 01:27:40 +00:00
Jim Meyering
a79e4f054a Close comment. 1996-08-18 14:56:54 +00:00
Jim Meyering
ad1a0015be . 1996-08-18 14:53:00 +00:00
Jim Meyering
2592c30822 . 1996-08-18 14:40:07 +00:00
Jim Meyering
5e6706b750 . 1996-08-18 14:39:47 +00:00
Jim Meyering
77f32e0b49 In cmp, use $exp_name, not \$srcdir/$exp_name. 1996-08-18 14:39:33 +00:00
Jim Meyering
a0810c6cae . 1996-08-18 14:37:32 +00:00
Jim Meyering
a023f4519e . 1996-08-18 14:32:50 +00:00
Jim Meyering
0055d0a4cc . 1996-08-18 14:32:13 +00:00
Jim Meyering
416715cf93 . 1996-08-18 14:31:42 +00:00
Jim Meyering
730ec4650a Factor out tr as much as possible. 1996-08-18 05:25:08 +00:00
Jim Meyering
98b9e6e30b . 1996-08-18 05:23:53 +00:00
Jim Meyering
9d76e7ffbb . 1996-08-18 05:21:07 +00:00
Jim Meyering
d9f30fc643 . 1996-08-18 05:20:45 +00:00
Jim Meyering
597e0b2a8e . 1996-08-18 05:20:38 +00:00
Jim Meyering
56cd9b9a02 Rename Trtest.pm to Test.pm. 1996-08-18 05:19:55 +00:00
Jim Meyering
12d30b5cd0 . 1996-08-18 05:18:57 +00:00
Jim Meyering
c64c32d89e Converting to perl5 and LoL. 1996-08-18 05:00:28 +00:00
Jim Meyering
7d490ad462 . 1996-08-18 02:51:38 +00:00
Jim Meyering
0347f76632 . 1996-08-18 00:09:15 +00:00
Jim Meyering
b012712ff5 . 1996-08-17 23:59:18 +00:00
Jim Meyering
6f1a0acdbd . 1996-08-17 18:51:16 +00:00
Jim Meyering
b32398d02c (EXTRA_DIST): Distribute tests: inputs and expected outputs. 1996-08-17 18:50:54 +00:00
Jim Meyering
ea15a1e0e5 Prepend srcdir to @INC@. 1996-08-17 18:33:27 +00:00
Jim Meyering
c7066e8caa . 1996-08-17 18:30:48 +00:00
Jim Meyering
fa674d651c . 1996-08-17 18:30:28 +00:00
Jim Meyering
5220e9a46b Remove now-useless Trtest.pm arg to build-script. 1996-08-17 18:30:24 +00:00
Jim Meyering
afddedbd9f . 1996-08-17 17:53:24 +00:00
Jim Meyering
b98971b7a0 Rename test.data.pl to Trtest.pm. 1996-08-17 17:53:21 +00:00
Jim Meyering
9cccef82ce . 1996-08-17 17:50:07 +00:00
Jim Meyering
f6d73bdb80 . 1996-08-17 17:47:49 +00:00
Jim Meyering
91c0d0de6a . 1996-08-17 17:46:54 +00:00
Jim Meyering
283b1a297d . 1996-08-17 17:29:35 +00:00
Jim Meyering
26259134ee . 1996-08-17 17:28:20 +00:00
Jim Meyering
39cf848828 Revamp to use perl5-style list of lists. 1996-08-17 17:27:46 +00:00
Jim Meyering
8dd548d895 . 1996-08-17 17:27:10 +00:00
Jim Meyering
daa3462c64 Don't use main anymore. 1996-08-17 17:27:03 +00:00
Jim Meyering
b7bf84fd73 . 1996-08-17 17:26:29 +00:00
Jim Meyering
a62273dca5 . 1996-08-17 05:15:53 +00:00
Jim Meyering
32f7fc5503 Update from GNU libc -- this adds back %z and %s
formats and reverts to old behavior where unrecognized format like
%E is treated as eqivalent to `E'.
1996-08-17 05:15:44 +00:00
Jim Meyering
99708d72f6 . 1996-08-17 03:39:44 +00:00
Jim Meyering
ec4159d6f6 . 1996-08-17 03:38:17 +00:00
Jim Meyering
3c39169751 . 1996-08-17 03:37:22 +00:00
Jim Meyering
1a68c9ac75 . 1996-08-17 03:22:40 +00:00
Jim Meyering
e7a59c2594 . 1996-08-17 03:13:54 +00:00
Jim Meyering
1ddf714c24 (parse_group): Fail when given an invalid group name.
Reported as Debian Bug#4119 via Erick Branderhorst (branderh@IAEhv.nl).
Declare pointer parameters const as appropriate.
1996-08-17 03:13:46 +00:00
Jim Meyering
69a2d6bce1 . 1996-08-14 02:51:17 +00:00
Jim Meyering
408cfc09b2 . 1996-08-12 03:51:18 +00:00
Jim Meyering
eebe6a6c0c . 1996-08-12 03:48:18 +00:00
Jim Meyering
abd282bf34 . 1996-08-12 03:45:18 +00:00
Jim Meyering
441ebad5cc . 1996-08-12 03:44:11 +00:00
Jim Meyering
26a8544c83 . 1996-08-12 03:42:53 +00:00
Jim Meyering
4fd0132dfc . 1996-08-12 03:42:07 +00:00
Jim Meyering
bd3627904b . 1996-08-12 03:41:47 +00:00
Jim Meyering
a1ab7fb789 . 1996-08-09 04:03:31 +00:00
Jim Meyering
0e4f0390ef . 1996-08-09 03:59:16 +00:00
Jim Meyering
b741c592c5 . 1996-08-05 04:07:42 +00:00
Jim Meyering
81d574033a . 1996-08-05 04:06:11 +00:00
Jim Meyering
aa49f63378 . 1996-08-05 04:04:49 +00:00
Jim Meyering
1a038cb55e . 1996-08-05 03:49:29 +00:00
Jim Meyering
1c892790d9 . 1996-08-05 03:36:01 +00:00
Jim Meyering
bd51f25754 . 1996-08-05 00:14:16 +00:00
Jim Meyering
406c6613bb . 1996-08-04 23:34:33 +00:00
Jim Meyering
c5449cea5a . 1996-08-04 19:44:04 +00:00
Jim Meyering
7cc00778d1 . 1996-08-04 19:43:53 +00:00
Jim Meyering
1dc1d2996a Update for perl5 and use strict. 1996-08-04 16:03:00 +00:00
Jim Meyering
3cf0da722f . 1996-08-04 15:44:42 +00:00
Jim Meyering
7532e57941 (main): Allow `+' in options like -+8 and -+13. 1996-08-04 14:15:25 +00:00
Jim Meyering
5b8cad3534 (main): Set minus_flag to zero in two places.
Otherwise, `nice --1 -3' would mistakenly do the equivalent of `nice --3'.
Thanks to Eric Backus <ericb@lsid.hp.com> for the test cases.
1996-08-03 04:23:43 +00:00
Jim Meyering
e1df5e7167 . 1996-08-03 04:23:08 +00:00
Jim Meyering
1d8ed38329 . 1996-08-03 02:49:46 +00:00
Jim Meyering
c87d06546a (print_uptime) [HAVE_PROC_UPTIME]: Read from /proc/uptime.
From Ulrich Drepper.
1996-08-03 02:49:34 +00:00
Jim Meyering
afe669874a . 1996-08-02 03:45:50 +00:00
Jim Meyering
ee2e84bb6f . 1996-08-02 03:25:54 +00:00
Jim Meyering
d5aa78b540 (ST_NBLOCKS) [_CRAY]: Special case for Cray.
From by Johan Danielsson.
1996-08-02 03:25:39 +00:00
Jim Meyering
2a5f4c45e1 (get_fs_usage) [STAT_STATFS4] [_CRAY]: Define f_bavail to f_bfree.
From by Johan Danielsson.
1996-08-02 03:25:10 +00:00
Jim Meyering
0fa3eb4d22 . 1996-08-01 04:46:51 +00:00
Jim Meyering
b10f778bf5 [LINK_TYPE]: Remove macro. NLS messages aren't
extracted from macros.
(link_type_string): New global variable to be used instead of
LINK_TYPE.
(main): Set it here.
(do_link): Use it (instead of macro) here.
1996-08-01 04:42:08 +00:00
Jim Meyering
e9ed1c0601 tty: Use terminal, not `tty' in description of tty command.
date %W: fix typo in description
Both from Andreas Schwab.
1996-07-31 12:37:58 +00:00
Jim Meyering
729bd79cb8 . 1996-07-31 04:47:04 +00:00
Jim Meyering
402b4612f8 [HAVE_SYS_FS_S5PARAM_H]: Include sys/fs/s5param.h
to work around bug in sys/filsys.h of Fujitsu UXP/V.
Reported by Johan Danielsson.
1996-07-31 04:43:59 +00:00
Jim Meyering
a044608569 . 1996-07-31 04:39:33 +00:00
Jim Meyering
d660831c5a (DO_CHOWN): New macro -- derived from code in copy.
(copy): Use DO_CHOWN to assure that any newly-created symbolic
links have proper owner and group.
1996-07-31 04:39:25 +00:00
Jim Meyering
9ba877cf28 Update from GNU libc master. 1996-07-30 05:33:30 +00:00
Jim Meyering
e22b1e56e6 *** empty log message *** 1996-07-29 05:06:11 +00:00
Jim Meyering
cd2e2180d9 . 1996-07-27 22:30:11 +00:00
Jim Meyering
6932ade12e (bindtextdomain) [!ENABLE_NLS]: Undefine to avoid
redefinition warnings on solaris.
(textdomain) [!ENABLE_NLS]: Likewise.
1996-07-27 22:29:01 +00:00
Jim Meyering
c49c9a04e1 . 1996-07-26 04:32:30 +00:00
Jim Meyering
b294dd43a1 (unexpand): Move EOF check to follow code that
processes and generates output for pending spaces.
Before `printf '  ' |unexpand -t 1,2' generated no output.
1996-07-26 04:31:29 +00:00
Jim Meyering
7ce576ff06 (md5_check): Remove parameter, BINARY.
Rename local TYPE_FLAG to BINARY, so md5_file uses the binary mode
from the input stream rather than the one from the command line.
(main): Fail with a diagnostic if --binary or --text is specified
when verifying checksums.
Reported by Eli Zaretskii <eliz@is.elta.co.il>.
1996-07-26 04:11:21 +00:00
Jim Meyering
733c16465d . 1996-07-26 04:11:11 +00:00
Jim Meyering
981f5ba012 (main): Fix typo in getopt_long string: s/n/h/.
Reported by Ken Pizzini.
1996-07-26 02:11:34 +00:00
Jim Meyering
0e180c8f19 (usage): Remove -h. It is not an option.
Reported by Ulrich Drepper.
1996-07-25 03:25:32 +00:00
Jim Meyering
005ed75540 cv. 1996-07-22 04:50:43 +00:00
Jim Meyering
52211041ad . 1996-07-22 04:42:16 +00:00
Jim Meyering
304295c24c . 1996-07-22 01:57:10 +00:00
Jim Meyering
a56da10982 (rpmatch): Add back [[:alpha:]]. Drepper says it's the standard. 1996-07-22 01:01:10 +00:00
Jim Meyering
1089f9b929 . 1996-07-21 22:48:46 +00:00
Jim Meyering
ccd0e2e27a (yesno) [!HAVE_RPMATCH]: Remove function since we'll
always use the rpmatch-based version.
Declare rpmatch.
1996-07-21 22:48:41 +00:00
Jim Meyering
96a39fa3f6 . 1996-07-21 22:46:46 +00:00
Jim Meyering
08ffff5615 [STDC_HEADERS]: Guard inclusion of stdlib.h.
(_) [!_]: Define it.
(try): Add RESPONSE parameter.
(rpmatch): Update caller.
Change the regular expressions to be ^[yY] and ^[nN].
1996-07-21 22:46:39 +00:00
Jim Meyering
16efa02b77 . 1996-07-21 22:41:26 +00:00
Jim Meyering
7f26c2724a . 1996-07-21 17:25:50 +00:00
Jim Meyering
81b7ecbc14 (EXTRA_DIST): Add rpmatch.c. 1996-07-21 17:25:10 +00:00
Jim Meyering
bd6aa3080a . 1996-07-21 17:16:13 +00:00
Jim Meyering
7f1cf81aba . 1996-07-21 17:13:47 +00:00
Jim Meyering
3af4a12ae3 (yesno) [HAVE_RPMATCH]: New rpmatch-based version of the function. 1996-07-21 17:13:41 +00:00
Jim Meyering
deee2015f3 (EXTRA_DIST): Put error.c and obstack.c here...
(fu_SOURCES): Instead of here.
1996-07-21 17:11:10 +00:00
Jim Meyering
9d06a0075d . 1996-07-21 17:11:01 +00:00
Jim Meyering
1d791a1487 . 1996-07-21 17:01:52 +00:00
Jim Meyering
998e5ad1c0 . 1996-07-21 16:59:36 +00:00
Jim Meyering
67c2366944 . 1996-07-21 16:57:47 +00:00
Jim Meyering
bb952869e7 . 1996-07-21 14:52:33 +00:00
Jim Meyering
35b1d6a948 . 1996-07-21 14:51:46 +00:00
Jim Meyering
63dece38a1 (usage): Correct typo (-iucl -> -iuclc) in usage message.
From Thomas Olsson <d95to@efd.lth.se>.
1996-07-21 14:51:02 +00:00
Jim Meyering
3904fb599e . 1996-07-20 22:14:05 +00:00
Jim Meyering
7b7b289e2d . 1996-07-20 21:01:55 +00:00
Jim Meyering
f8939357a3 . 1996-07-20 05:24:15 +00:00
Jim Meyering
5f79c9e91b (path_concat): Rewrite to return new parameter.
(do_copy): Update uses of path_concat to use new parameter.
Use that new pointer to compute correct offset for make_path_private.
Before, cp --recursive --parents SRC DEST failed when SRC was
an absolute file name.  E.g.,
% cd /tmp; rm -rf d f; mkdir d; touch f; cp -PR /tmp/f d
cp: tmp: No such file or directory
Reported by Horst von Brand vonbrand@sleipnir.valparaiso.cl.
1996-07-20 05:24:09 +00:00
Jim Meyering
16c56c7d73 [_AIX]: Add #pragma alloca.
From Bernd Leibing <bernd.leibing@rz.uni-ulm.de>.
1996-07-19 03:56:23 +00:00
Jim Meyering
8c074a6577 . 1996-07-19 03:15:30 +00:00
Jim Meyering
2feeeb5972 . 1996-07-19 03:00:00 +00:00
Jim Meyering
89495b81dd (main): Initialize for internationalized message support:
call setlocale, bindtextdomain, and textdomain.  Reported by
Michel Robitaille <robitail@IRO.UMontreal.CA>.
1996-07-19 02:59:54 +00:00
Jim Meyering
a5c67e1c05 . 1996-07-18 04:44:54 +00:00
Jim Meyering
b288e0f8f5 . 1996-07-18 04:36:09 +00:00
Jim Meyering
5d3af013b0 . 1996-07-18 04:15:00 +00:00
Jim Meyering
b734adb860 Include <sys/types.h> before system.h. 1996-07-18 04:14:51 +00:00
Jim Meyering
88db35dd77 Include <sys/types.h> before system.h. 1996-07-18 04:14:19 +00:00
Jim Meyering
6efc03fd41 Include <sys/types.h> before system.h. 1996-07-18 04:13:52 +00:00
Jim Meyering
befcaa08e8 . 1996-07-18 03:37:55 +00:00
Jim Meyering
59834c2c06 . 1996-07-17 05:34:40 +00:00
Jim Meyering
ed48dc8cae Use `;' instead of (void)0. 1996-07-17 05:29:47 +00:00
Jim Meyering
f3bcc28b21 . 1996-07-17 03:30:55 +00:00
Jim Meyering
e549af7279 (OFF_T_MAX): Remove definition.
(main): Compare against LONG_MAX rather than OFF_T_MAX.
1996-07-17 03:13:54 +00:00
Jim Meyering
e5c3e23ec4 . 1996-07-17 03:13:45 +00:00
Jim Meyering
03cc8c8ca3 [OFF_T_MAX]: Use (unsigned long)1' rather than (off_t)1'
so the left operand of the << isn't signed.
From Kaveh Ghazi.
1996-07-16 05:14:00 +00:00
Jim Meyering
dc84f5c5c9 . 1996-07-16 05:13:16 +00:00
Jim Meyering
e0ac832842 Use `(void)0' as second arg to add macro.
Omitting that second arg made some HPUX C compiler report an error.
From Kaveh R. Ghazi.
1996-07-16 05:08:29 +00:00
Jim Meyering
ff1fc50954 Update from FSF. 1996-07-16 04:58:04 +00:00
Jim Meyering
9e10989282 (print_uptime): Reverse days' and day' in uptime message.
From Kaveh R. Ghazi.
1996-07-16 04:50:12 +00:00
Jim Meyering
4bca95c431 Update from libit. 1996-07-16 04:47:23 +00:00
Jim Meyering
f60dafdac2 Update FSF address.
Remove trailing blanks.
1996-07-16 04:44:29 +00:00
Jim Meyering
ee9cf50a0f . 1996-07-16 04:43:51 +00:00
Jim Meyering
e023911555 Oops. Always return destination. 1996-07-16 03:06:32 +00:00
Jim Meyering
b19da298ac . 1996-07-15 04:49:34 +00:00
Jim Meyering
7efa2ba5c4 indent cpp-directives 1996-07-15 03:57:44 +00:00
Jim Meyering
19bff1c02d indent cpp-directives 1996-07-15 03:56:06 +00:00
Jim Meyering
fd984b9655 . 1996-07-15 03:44:04 +00:00
Jim Meyering
6014da9e30 update FSF address in copyright 1996-07-15 03:43:36 +00:00
Jim Meyering
e5e6e34ead update FSF address in copyright 1996-07-15 03:38:07 +00:00
Jim Meyering
e8b07e3796 update FSF address in copyright 1996-07-15 03:36:16 +00:00
Jim Meyering
1b5bb5c05a update FSF address in copyright and remove any trailing blanks 1996-07-15 02:44:11 +00:00
Jim Meyering
1df37f767c update FSF address in copyright and remove any trailing blanks 1996-07-15 02:41:49 +00:00
Jim Meyering
77973edc33 cpp-indent 1996-07-15 02:29:59 +00:00
Jim Meyering
48e4b51e96 . 1996-07-15 01:07:26 +00:00
Jim Meyering
9c53920ae6 (print_uptime): Use 0, not undefined errno in
couldn't-get-boot-time diagnostic.  From Ulrich Drepper.
1996-07-15 01:07:16 +00:00
Jim Meyering
993b49a693 update fsf address 1996-07-15 00:04:51 +00:00
Jim Meyering
bf72a5728f update fsf address 1996-07-15 00:02:50 +00:00
Jim Meyering
48209ca1ba update fsf address 1996-07-15 00:00:57 +00:00
Jim Meyering
7cb6a4e2f1 update fsf address
cpp-indent
1996-07-14 23:59:45 +00:00
Jim Meyering
7d026dd508 [HAVE_LIMITS_H]: Include limits.h for INT_MAX.
[!INT_MAX]: Define it.
(main): Append INT_MAX to command-line-specified tab list to
ensure termination in unexpand's inner loop.
Derived from a patch from Keith Owens.
1996-07-14 22:28:52 +00:00
Jim Meyering
178f23fbb7 (unexpand): Fix bug that contributed to endless loop
when invoking `echo '  ' |unexpand -t 1,2': use print_tab_index, not
tab_index in inner flush_pend: while loop.  From Keith Owens
<kaos@audio.apana.org.au>.
1996-07-14 22:24:28 +00:00
Jim Meyering
75b93231ca Remove my address. 1996-07-14 21:47:23 +00:00
Jim Meyering
23684f8383 formatting... 1996-07-14 19:09:41 +00:00
Jim Meyering
4b8b59894b Return a value! 1996-07-14 15:05:40 +00:00
Jim Meyering
ade337e1a8 . 1996-07-14 12:54:20 +00:00
Jim Meyering
d38f60e27c (usage): Sort option descriptions in dictionary order. 1996-07-14 12:54:12 +00:00
Jim Meyering
bf75b72e46 Indent nested CPP-directives. 1996-07-14 12:45:09 +00:00
Jim Meyering
dbd0c33f24 update FSF address in copyright 1996-07-14 12:44:09 +00:00
Jim Meyering
4d7a57cf34 (long_options): Add missing last line of NULL
entries.  From Ralph Loader <loader@maths.ox.ac.uk>.
1996-07-14 12:37:24 +00:00
Jim Meyering
1c2c9330d9 . 1996-07-14 12:36:51 +00:00
Jim Meyering
836935c5e6 Libit tweaks. 1996-07-14 12:35:45 +00:00
Jim Meyering
2e789ea9b2 Tweak for libit. 1996-07-14 12:32:25 +00:00
Jim Meyering
a4a64560c0 Tweak for libit. 1996-07-14 12:32:01 +00:00
Jim Meyering
65f957107e fix comment 1996-07-14 12:19:15 +00:00
Jim Meyering
e9d60dc000 . 1996-07-14 04:11:25 +00:00
Jim Meyering
c58cd08bf9 (usage): Add a \' after \n' in usage message.
Otherwise, SunOS's /bin/cc chokes.
1996-07-14 04:11:17 +00:00
Jim Meyering
900a826cf8 . 1996-07-13 19:31:51 +00:00
Jim Meyering
7fe510422e [GWINSZ_BROKEN]: Remove thus-guarded `#undef TIOCGWINSZ'.
GWINSZ_BROKEN can't be defined anymore.
1996-07-13 19:31:34 +00:00
Jim Meyering
1ba9563160 . 1996-07-13 19:27:59 +00:00
Jim Meyering
4bef2ec5f7 . 1996-07-13 19:26:22 +00:00
Jim Meyering
c98ea50c21 . 1996-07-12 03:25:19 +00:00
Jim Meyering
78697777d7 . 1996-07-12 03:05:04 +00:00
Jim Meyering
83696460f0 . 1996-07-12 02:56:51 +00:00
Jim Meyering
bb8acb3640 . 1996-07-12 02:55:08 +00:00
Jim Meyering
4f29f1aeb2 . 1996-07-11 05:01:47 +00:00
Jim Meyering
36a4ba8ba3 . 1996-07-11 04:27:54 +00:00
Jim Meyering
aaafa60129 . 1996-07-11 04:27:27 +00:00
Jim Meyering
866e778210 . 1996-07-11 03:58:31 +00:00
Jim Meyering
805484b693 use latest from gettext-0.10.23 1996-07-11 03:57:04 +00:00
Jim Meyering
a10e992cbc . 1996-07-10 05:00:21 +00:00
Jim Meyering
44b11d6e67 (usage): Fix parentheses. 1996-07-10 03:56:45 +00:00
Jim Meyering
108f50670d . 1996-07-10 03:45:03 +00:00
Jim Meyering
5885cbf0d2 (UID_T_MAX): Use `(unsigned long)1' rather than
`(uid_t)1' to avoid problems on systems where uid_t is signed.
(GID_T_MAX): Likewise for gid_t.
From Kjetil Torgrim Homme <kjetilho@ifi.uio.no>.
1996-07-10 03:33:01 +00:00
Jim Meyering
640cdd2df4 . 1996-07-10 03:32:41 +00:00
Jim Meyering
a4d13e4b8f (long_options): Add print-data-base and print-database.
(usage): Rearrange option descriptions.
1996-07-10 03:26:18 +00:00
Jim Meyering
12beb90e58 . 1996-07-10 03:18:55 +00:00
Jim Meyering
4623f5dca3 (usage): Add a one-line description to --help message.
From Karl Berry.
1996-07-10 03:18:31 +00:00
Jim Meyering
b124be4eb1 Change C-shell to `C shell'. 1996-07-10 03:16:30 +00:00
Jim Meyering
c8feafc2a5 . 1996-07-10 03:15:51 +00:00
Jim Meyering
84b6d13a3c (dc_parse_stream): Don't give `unrecognized keyword'
message unless we've processed a matching TERM directive.
1996-07-10 03:15:39 +00:00
Jim Meyering
fb604ebdf4 . 1996-07-10 03:09:05 +00:00
Jim Meyering
778dd49f55 . 1996-07-10 03:06:54 +00:00
Jim Meyering
3e0fdc1a0b (MAXCOST): Use (unsigned long)1' rather than (COST)1'
so the left operand of the << isn't signed.
From Kjetil Torgrim Homme.
1996-07-10 03:02:54 +00:00
Jim Meyering
c4610f8bb6 . 1996-07-09 23:23:49 +00:00
Jim Meyering
824081f660 (install-data): Don't install NLS files when they're not requested.
From Ulrich Drepper.  Reported by Kjetil Torgrim Homme <kjetilho@ifi.uio.no>.
1996-07-09 23:23:33 +00:00
Jim Meyering
417bda1b99 . 1996-07-08 04:26:31 +00:00
Jim Meyering
dbb6fa88fd . 1996-07-08 04:26:09 +00:00
Jim Meyering
013f2fe433 Make initial colors for `color_indicator' match those
currently in dircolors.hin.
1996-07-08 04:25:49 +00:00
Jim Meyering
de75384c2b . 1996-07-08 04:23:38 +00:00
Jim Meyering
9d691ba42f Include termios.h.
Guard inclusion of sys/ioctl.h with #ifdef GWINSZ_IN_SYS_IOCTL,
rather than HAVE_SYS_IOCTL_H.  Modelled after sh-utils' stty.c
at suggestion from Chip Bennett <BennettC@j64.stratcom.af.mil>.
1996-07-08 04:19:36 +00:00
Jim Meyering
744ef2d96f Recognize more filename extensions. From Joshua Cowan. 1996-07-08 03:58:36 +00:00
Jim Meyering
0d978396d7 . 1996-07-08 03:55:55 +00:00
Jim Meyering
581db2ffeb . 1996-07-08 03:41:37 +00:00
Jim Meyering
0d1de84756 . 1996-07-07 20:20:44 +00:00
Jim Meyering
c4f9b63aea . 1996-07-06 22:53:29 +00:00
Jim Meyering
0472107417 (usage): Factor out backup-related text into separate string/printf statement. 1996-07-06 22:50:57 +00:00
Jim Meyering
e1de1d3a93 (usage): Factor out backup-related text into separate string/printf statement. 1996-07-06 22:50:36 +00:00
Jim Meyering
46b486ab5b . 1996-07-06 22:29:57 +00:00
Jim Meyering
68bd38e8a0 . 1996-07-06 21:55:23 +00:00
Jim Meyering
b5c86e8130 (su_SOURCES): Remove group-member.c.
(EXTRA_DIST): Add group-member.c here.
1996-07-06 17:50:16 +00:00
Jim Meyering
bd54740062 . 1996-07-06 17:49:27 +00:00
Jim Meyering
8596e37d97 . 1996-07-06 12:04:47 +00:00
Jim Meyering
5eb689ade0 Fix typo: top-srcdir -> top_srcdir. 1996-07-06 04:05:15 +00:00
Jim Meyering
195f8a213e [!STDC_HEADERS]: Declare free. From Marcus Daniels. 1996-07-06 03:17:09 +00:00
Jim Meyering
4d6b56a932 . 1996-07-06 03:02:44 +00:00
Jim Meyering
62a9c01c6d . 1996-07-06 03:00:44 +00:00
Jim Meyering
12dd329a29 Merge from gettext-0.10.23. 1996-07-06 02:59:12 +00:00
Jim Meyering
4a7000742c ($(PACKAGE).pot): Merge from gettext-0.10.23. 1996-07-06 02:58:59 +00:00
Jim Meyering
f41e1ff806 . 1996-07-05 03:58:06 +00:00
Jim Meyering
fa5ef15197 . 1996-07-05 03:40:39 +00:00
Jim Meyering
2b1f600cbd (usage): Remove space before newline in usage message. 1996-07-05 03:40:21 +00:00
Jim Meyering
0396e35b5a . 1996-07-05 03:39:21 +00:00
Jim Meyering
9824efff73 (usage): Remove space before newline in usage message. 1996-07-05 03:39:12 +00:00
Jim Meyering
7fbe57368e (usage): Remove space before newline in usage message. 1996-07-05 02:49:48 +00:00
Jim Meyering
21c0d8f1f0 (usage): Remove space before newline in usage message. 1996-07-05 02:29:10 +00:00
Jim Meyering
316490baea (usage): Remove space before newline in usage message. 1996-07-05 02:28:29 +00:00
Jim Meyering
bd77322580 . 1996-07-04 22:52:25 +00:00
Jim Meyering
09cf102456 . 1996-07-04 22:52:01 +00:00
Jim Meyering
f8514af7a6 (split_3): Add missing semicolon. From Jim Blandy. 1996-07-04 22:51:52 +00:00
Jim Meyering
6b4aadc588 . 1996-07-04 18:18:03 +00:00
Jim Meyering
e2e512d2d6 . 1996-07-04 18:14:46 +00:00
Jim Meyering
a7d29c59fa (main): Fix typo in last change. 1996-07-04 17:41:05 +00:00
Jim Meyering
b2e339dc25 . 1996-07-04 17:35:51 +00:00
Jim Meyering
e7342330e5 Make dir --version' and vdir --version' print their names, not `ls'.
Reported by Ulrich Drepper.
1996-07-04 17:35:47 +00:00
Jim Meyering
3f868304cf . 1996-07-04 14:53:28 +00:00
Jim Meyering
2926167cfa (md5_file): Replace obsolete comment with a description
of the function.
(md5_check): Don't use "s"-adding trick to form the plural of
`checksum.'  That doesn't work well with translation.
Suggestions from Ulrich Drepper.
1996-07-04 14:53:25 +00:00
Jim Meyering
84448306a4 . 1996-07-04 12:41:58 +00:00
Jim Meyering
b97436b18b (MIN_DIGEST_LINE_LENGTH): New macro.
[NEWLINE_REPLACEMENT_STRING*]: Remove macros.
(main): Output a leading backslash for a line describing a file
whose name contains a newline.  Then translate each NEWLINE byte
in the file name to the string, "\\n", and each backslash to "\\\\".
File names that don't contain NEWLINE aren't translated.
(split_3): Rewrite to handle file names with embedded newlines.
Miles Bader and Jim Blandy suggested this new encoding scheme.
1996-07-04 12:41:53 +00:00
Jim Meyering
db07df5448 . 1996-07-04 12:36:18 +00:00
Jim Meyering
4adeb81260 (split_3): Correct test for 35-byte line to accomodate
fact that leading blanks may be stripped.
1996-07-04 04:22:25 +00:00
Jim Meyering
9684207d04 . 1996-07-03 23:00:45 +00:00
Jim Meyering
b467d6d513 Include sys/types.h before system.h.
From Jim Blandy (jimb@cyclic.com).
1996-07-03 22:59:18 +00:00
Jim Meyering
36454232a5 . 1996-07-03 22:42:58 +00:00
Jim Meyering
ce85352146 [!MAXUID]: Define after inclusion of system.h to avoid
warning about redefinition on SunOS4, Solaris2.4 and SGI-irix5.3.
From Kaveh Ghazi.
1996-07-03 22:42:41 +00:00
Jim Meyering
7786c6e2cf . 1996-07-03 04:18:38 +00:00
Jim Meyering
4bd1ffa49a . 1996-07-03 04:05:07 +00:00
Jim Meyering
38762b8f78 (usage): Add omitted \n\ at the end of a line in the usage message. 1996-07-03 04:04:06 +00:00
Jim Meyering
7b2cea5ab2 [!EXIT_SUCCESS]: Define it.
[!EXIT_FAILURE]: Define it.
1996-07-03 04:00:36 +00:00
Jim Meyering
b0d3bfa316 . 1996-07-03 04:00:29 +00:00
Jim Meyering
1672bf6d27 (strndup): Include stdio.h and sys/types.h to
get definition of NULL and size_t on SunOS4.1.3.
1996-07-03 03:59:02 +00:00
Jim Meyering
8736952b0b . 1996-07-03 02:52:20 +00:00
Jim Meyering
bd1fc1c256 . 1996-07-02 04:55:06 +00:00
Jim Meyering
bb4d193ac7 [NEWLINE_REPLACEMENT_STRING]: Define.
(split_3): Translate NL bytes not to NUL, but to
NEWLINE_REPLACEMENT_STRING.
Suggested by Ulrich Drepper.
(main): Translate back to NL-containing filename.
1996-07-02 04:54:51 +00:00
Jim Meyering
7379bd7274 . 1996-07-02 04:48:57 +00:00
Jim Meyering
1372968ab0 (do_link): Update messages to ease translation.
Suggestion from Santiago Vila.
1996-07-02 04:48:32 +00:00
Jim Meyering
d2b4bca42e (main): Remove now-unnecessary diagnostic about filename containing NEWLINE. 1996-07-01 03:48:10 +00:00
Jim Meyering
6dceaa1d9d (split_3): Take an additional parameter, S_LEN.
Adapt caller.
Map translated NEWLINE-containing filename back into the original
NEWLINE-containing name.
(md5_check): Translate NEWLINE bytes to NUL bytes in filename.
1996-07-01 03:47:16 +00:00
Jim Meyering
b288652bbd . 1996-06-30 21:42:53 +00:00
Jim Meyering
2b37242292 (usage): Fix typo, 3nd->3rd, in usage message.
From Santiago Vila <sanvila@unex.es>.
1996-06-30 21:42:49 +00:00
Jim Meyering
afd2d8e4cf . 1996-06-30 14:30:00 +00:00
Jim Meyering
c18996947c . 1996-06-30 14:29:29 +00:00
Jim Meyering
23b80c8e30 . 1996-06-30 04:24:26 +00:00
Jim Meyering
3b92bd0090 . 1996-06-30 00:01:20 +00:00
Jim Meyering
14bc2891a8 . 1996-06-29 23:59:14 +00:00
Jim Meyering
1ebe204c2f . 1996-06-29 23:58:48 +00:00
Jim Meyering
27725d0745 . 1996-06-29 16:45:17 +00:00
Jim Meyering
8977920253 . 1996-06-29 05:33:00 +00:00
Jim Meyering
41b9ee8834 . 1996-06-29 05:29:08 +00:00
Jim Meyering
c4d50b0133 . 1996-06-29 05:28:48 +00:00
Jim Meyering
bb389bead8 Remove u from Colour. 1996-06-29 05:28:32 +00:00
Jim Meyering
326cc336af . 1996-06-29 04:12:05 +00:00
Jim Meyering
cd53ea93c5 (dc_parse_stream): Move enum states dcl into this function.
(dc_parse_stream): Remove parameter RESULT.
Adapt callers.
1996-06-29 04:11:43 +00:00
Jim Meyering
aec69ce220 . 1996-06-29 04:08:10 +00:00
Jim Meyering
b2d08f91db . 1996-06-29 04:07:18 +00:00
Jim Meyering
50cdbb37c8 . 1996-06-29 03:58:52 +00:00
Jim Meyering
e81d02baf1 (do_link): Allow `ln -sf --backup k k' to succeed in creating the
self-referential symlink, doing so doesn't remove the source but merely
renames it.
1996-06-29 03:58:48 +00:00
Jim Meyering
b73817cc6e . 1996-06-28 04:15:56 +00:00
Jim Meyering
0fefdeb526 . 1996-06-28 03:04:11 +00:00
Jim Meyering
8dfac9573a . 1996-06-27 04:27:10 +00:00
Jim Meyering
369361ae70 . 1996-06-27 02:37:51 +00:00
Jim Meyering
1afd3473fb (install-data): Add `else true;' to avoid
letting failing if-condition cause make to fail.
From Fred Fish (fnf@ninemoons.com).
1996-06-27 02:37:40 +00:00
Jim Meyering
117fb47f99 Elaborate on how sort -n works. 1996-06-27 02:34:30 +00:00
Jim Meyering
1bff89846b . 1996-06-26 12:39:19 +00:00
Jim Meyering
ba87d08c0e (do_link): Remove `!symlink &&' conjunct. 1996-06-26 12:31:13 +00:00
Jim Meyering
d9c0413f79 (same_name): Declare parameters to be const. 1996-06-26 12:05:35 +00:00
Jim Meyering
216777ea17 (same_name): New function.
(do_link): Use it to test reliably whether A and B (from
ln --force A B) are hard links to the same file.
From Andreas Schwab.
1996-06-26 12:02:02 +00:00
Jim Meyering
325411e109 . 1996-06-26 02:57:01 +00:00
Jim Meyering
e5aecd47c4 . 1996-06-25 05:16:30 +00:00
Jim Meyering
c84a7a232e . 1996-06-25 05:09:55 +00:00
Jim Meyering
16c5d19ce5 (strndup): Deansify.
[!STDC_HEADERS]: Include string.h and stdlib.h.
1996-06-25 05:06:53 +00:00
Jim Meyering
ac96f15bf3 (EXTRA_DIST): Add strndup.c.
(fu_SOURCES): Add getline.c.
(noinst_HEADERS): Add getline.h.
1996-06-25 05:05:43 +00:00
Jim Meyering
0c0537fdce . 1996-06-25 04:58:18 +00:00
Jim Meyering
f58702e8f9 (decode_switches): Allow 0 as argument to --tabsize (-T) option.
Interpret as a directive to use no TAB characters to separate columns.
(indent): Handle TABSIZE == 0.
1996-06-25 04:56:22 +00:00
Jim Meyering
80c03e37ba . 1996-06-25 04:26:12 +00:00
Jim Meyering
71e65bb036 (dc_parse_stream): Give `unrecognized keyword' for misspelled
`TERM' keyword as well as for others.
1996-06-25 04:26:01 +00:00
Jim Meyering
522141076e . 1996-06-25 03:41:41 +00:00
Jim Meyering
408a47499e (dc_parse_stream): Remove spurious newline in error message.
(dc_parse_file): Remove erroneous test of ERR.
1996-06-25 03:41:29 +00:00
Jim Meyering
30a65b1aa3 Use an obstack to accumulate value of LS_COLORS. 1996-06-24 03:06:52 +00:00
Jim Meyering
0a3fdd250a . 1996-06-24 03:01:46 +00:00
Jim Meyering
b617aa5f3f Add comma after e.g. in comment.
From Karl B.
1996-06-23 19:15:15 +00:00
Jim Meyering
8b0cf1dde4 . 1996-06-23 19:03:56 +00:00
Jim Meyering
d392de74de * (parse_line): Rewrite to avoid modifying LINE.
Put LINE first in parameter list.
Adjust caller.
(dc_parse_stream): Free KEYWD and ARG.
(main): Give diagnostic for unreasonable combinations of
options/arguments.
1996-06-23 19:03:31 +00:00
Jim Meyering
e5b4feb70a copied from id-utils-3.0k 1996-06-23 17:58:15 +00:00
Jim Meyering
af41baeb91 (main): New option --print (-p).
Detect write failure.
Add --bourne-shell and --c-shell aliases for --sh and --csh resp.
1996-06-22 22:27:32 +00:00
Jim Meyering
5540d977f4 . 1996-06-22 22:27:14 +00:00
Jim Meyering
98b663a29b Major overhaul. No longer read from /etc/DIR_COLORS or from ~/.dircolors.
Defaults are now compiled in.  If you specify a file on the command line,
it is used instead of the compiled-in defaults.
1996-06-22 22:02:37 +00:00
Jim Meyering
e3c3d0b385 (parse_ls_color): Use STREQ here instead of strcmp(...) == 0. 1996-06-19 04:22:28 +00:00
Jim Meyering
cfda609a21 (selected_fstype, excluded_fstype, show_disk, main):
Use STREQ here instead of strcmp(...) == 0.
1996-06-19 04:21:49 +00:00
Jim Meyering
229598b807 . 1996-06-19 04:17:36 +00:00
Jim Meyering
4c6221ee37 . 1996-06-19 04:14:29 +00:00
Jim Meyering
d76f7a7ce4 . 1996-06-19 04:11:32 +00:00
Jim Meyering
fc05e28803 (copy_reg): Cast both sides of comparison to size_t to avoid warning
about `comparison between signed and unsigned' from gcc -Wall.
1996-06-19 04:10:17 +00:00
Jim Meyering
0bbec4b26e . 1996-06-19 03:39:00 +00:00
Jim Meyering
93cff2fae1 . 1996-06-19 03:32:08 +00:00
Jim Meyering
ec0f2c34d3 (decode_switches): Correct typo in error message:
enironment -> environment.  From Santiago Vila Doncel
<sanvila@unex.es>.
1996-06-19 03:31:59 +00:00
Jim Meyering
e26d180b8c (decode_switches): Correct typo in error message: enironment -> environment.
From Santiago Vila Doncel <sanvila@unex.es>.
1996-06-19 03:25:44 +00:00
Jim Meyering
cb0cd6afdb . 1996-06-19 03:21:05 +00:00
Jim Meyering
b95e3d2f47 (do_copy): Use STREQ here instead of strcmp(...) == 0.
Declare pointer parameters const as appropriate.
1996-06-19 03:19:51 +00:00
Jim Meyering
b5eadff384 . 1996-06-19 03:15:58 +00:00
Jim Meyering
a0321a68c0 (do_copy): Change message from `missing file argument' to
more precise `missing destination file'.  From Karl Berry.
1996-06-19 02:56:06 +00:00
Jim Meyering
9ed0e96ba7 . 1996-06-19 02:53:14 +00:00
Jim Meyering
087f809fe7 . 1996-06-19 02:52:02 +00:00
Jim Meyering
dd6c617d24 . 1996-06-19 02:51:09 +00:00
Jim Meyering
b4e8fc709e (STREQ): New macro. 1996-06-19 02:00:24 +00:00
Jim Meyering
487366d091 . 1996-06-19 02:00:16 +00:00
Jim Meyering
6099222717 (do_copy): When the force and backup options have been
specified and the source and destination are the same name for an
existing, regular file, convert the user's command, e.g.
`cp --force --backup foo foo' to `cp --force foo fooSUFFIX'
where SUFFIX is determined by any version control options used.
At urging of (most recently) Karl Berry.
1996-06-19 01:59:12 +00:00
Jim Meyering
608e780536 . 1996-06-19 01:48:25 +00:00
Jim Meyering
0f73666749 . 1996-06-19 01:41:35 +00:00
Jim Meyering
e72e877181 . 1996-06-16 18:52:46 +00:00
Jim Meyering
4063f0aea3 . 1996-06-16 18:49:50 +00:00
Jim Meyering
0c8d33de03 . 1996-06-16 18:49:08 +00:00
Jim Meyering
e94070eb22 . 1996-06-16 18:48:30 +00:00
Jim Meyering
8aef0cde12 . 1996-06-16 18:47:38 +00:00
Jim Meyering
d355dcec62 (EXTRA_DIST): Add texinfo.tex. But it will
be removed once automake is fixed to add it automatically.
1996-06-16 18:47:30 +00:00
Jim Meyering
c0a9e11235 . 1996-06-16 18:41:48 +00:00
Jim Meyering
8469bec1cc . 1996-06-16 03:23:53 +00:00
Jim Meyering
28a71c3409 . 1996-06-16 03:23:06 +00:00
Jim Meyering
85c407a740 (EXTRA_DIST): Add basename.c.
(fu_SOURCES): Remove basename.c.
1996-06-16 03:21:47 +00:00
Jim Meyering
2a01f209a6 . 1996-06-16 03:18:07 +00:00
Jim Meyering
1137a26bcf Update from time-1.7. 1996-06-14 04:42:33 +00:00
Jim Meyering
8157b18b8a . 1996-06-14 03:52:05 +00:00
Jim Meyering
c8c25a4610 ($(PACKAGE).pot): Reapply change of May 30.
Depend on POTFILES only when using maintainer mode.
1996-06-14 03:51:57 +00:00
Jim Meyering
031e782bb9 . 1996-06-14 03:33:18 +00:00
Jim Meyering
289ee58ce3 . 1996-06-12 04:32:54 +00:00
Jim Meyering
53af79cfe4 . 1996-06-12 04:30:58 +00:00
Jim Meyering
57beda9b45 . 1996-06-11 17:26:10 +00:00
Jim Meyering
0f3ff1725d . 1996-06-11 00:13:09 +00:00
Jim Meyering
7188179fc0 . 1996-06-11 00:12:53 +00:00
Jim Meyering
6544a589ed . 1996-06-11 00:12:08 +00:00
Jim Meyering
79ae2a4af9 . 1996-06-10 23:23:53 +00:00
Jim Meyering
b952290dc3 . 1996-06-10 23:20:06 +00:00
Jim Meyering
737f1f03a5 . 1996-06-08 04:29:59 +00:00
Jim Meyering
cf83dc5456 . 1996-06-08 03:16:21 +00:00
Jim Meyering
652ad8aaa3 . 1996-06-07 05:14:55 +00:00
Jim Meyering
5e969c1033 . 1996-06-07 03:16:35 +00:00
Jim Meyering
e42cc5be8a Update from gettext-0.10.16. 1996-06-07 02:59:01 +00:00
Jim Meyering
8cb05a6bfa . 1996-06-06 03:54:38 +00:00
Jim Meyering
4fb75ded4c . 1996-06-02 04:49:35 +00:00
Jim Meyering
1c883e2882 Rename MO_ to SHELLTYPE_. 1996-06-02 02:58:05 +00:00
Jim Meyering
d6bf80ccc7 Declare pointer parameters const as appropriate. 1996-06-02 02:52:37 +00:00
Jim Meyering
cd536776a0 . 1996-06-01 23:08:53 +00:00
Jim Meyering
f51eb4a5cc (decode_switches): Set print_with_color in one statement. 1996-06-01 23:08:35 +00:00
Jim Meyering
de40301f0a Rename options and internal variables to reflect change to
--color=WHEN where WHEN is never, always, or auto (for consistency
with e.g. cp --sparse=WHEN.  For at least a while, the original
slackware-supported arguments `none', `force', `yes', etc will be
supported but deprecated by lack of documentation.
(decode_switches): Use STDOUT_FILENO instead of `1' in is_tty test.
(usage): Update/add description of the --color option.
1996-06-01 18:36:19 +00:00
Jim Meyering
aa41cdbb65 . 1996-06-01 03:21:53 +00:00
Jim Meyering
4d02bdd9b0 . 1996-06-01 03:19:25 +00:00
Jim Meyering
41e8b21fb7 . 1996-06-01 03:06:06 +00:00
Jim Meyering
fe9da7ee9b . 1996-05-31 03:45:49 +00:00
Jim Meyering
bd8218fbe9 . 1996-05-31 03:45:31 +00:00
Jim Meyering
d52bc68220 . 1996-05-31 03:45:16 +00:00
Jim Meyering
090cd9f443 . 1996-05-31 03:44:15 +00:00
Jim Meyering
b6c83bbaa0 . 1996-05-31 03:42:11 +00:00
Jim Meyering
5946c46972 . 1996-05-31 03:36:22 +00:00
Jim Meyering
20522f2f5d (main): Interpret the old-style +VALUE and -VALUE
options like -c VALUE and -c +VALUE (resp) when VALUE has one of
the [bkm] suffix multipliers.  This makes the code consistent
with --help output.
1996-05-31 03:35:32 +00:00
Jim Meyering
7b297f76c4 . 1996-05-31 03:08:07 +00:00
Jim Meyering
3c467c0d22 (limfield): #ifdef-out a block of code that makes
GNU sort incompatible with Unix sort when a key-end spec refers
to the N'th character in a field that has fewer than N characters.
The POSIX spec doesn't appear to specify behavior for this case.
From Karl Heuer.
1996-05-31 03:07:45 +00:00
Jim Meyering
b2ae052c6d . 1996-05-31 02:36:34 +00:00
Jim Meyering
8ee7e2c0c8 (.po.mo): Reenable dependency and rule.
It is required when using native NLS, e.g. on Solaris.
From Marcus Daniels.
1996-05-31 02:35:59 +00:00
Jim Meyering
3270b340e8 ($(PACKAGE).pot): Depend on POTFILES only when using maintainer mode.
Reported by Karl Heuer.
1996-05-31 02:26:23 +00:00
Jim Meyering
22978078f7 (stamp-cat-id): Avoid using temp filename longer than 14 characters.
(mostlyclean): Likewise.
From Karl Heuer.
1996-05-31 00:58:51 +00:00
Jim Meyering
53e41464fd (decode_one_format): Use %lu (not %d) printf formats
corresponding to unsigned long, SIZE.
1996-05-31 00:51:48 +00:00
Jim Meyering
86f7daf592 . 1996-05-31 00:51:23 +00:00
Jim Meyering
91e12f541f . 1996-05-30 06:34:25 +00:00
Jim Meyering
176a02c5d9 (installcheck): New target. 1996-05-30 06:34:16 +00:00
Jim Meyering
c6836cfdda . 1996-05-30 05:23:02 +00:00
Jim Meyering
090a56eb9c (decode_one_format): Take another parameter.
Give a specific diagnostic for invalid format spec here rather
than an overly general one from caller's caller.
(decode_format_string): Update caller.
(main): Don't give diagnostic here when decode_format_string fails.
Remove assertions that could fail on some Crays because they don't
have a two-byte type.
Johan Danielsson (joda@pdc.kth.se) reported the failed assertions.
1996-05-30 05:09:56 +00:00
Jim Meyering
8c0d3621b3 . 1996-05-30 05:09:31 +00:00
Jim Meyering
86d6d4c47c . 1996-05-30 02:32:19 +00:00
Jim Meyering
f1d4b41340 (docolon): Give a warning when the first character
of the basic regular expression is `^'.
1996-05-30 02:32:03 +00:00
Jim Meyering
ab8cec12c9 . 1996-05-30 02:31:45 +00:00
Jim Meyering
3bd31fac90 (main): Use STDIN_FILENO instead of less portable fileno (stdin). 1996-05-30 00:59:50 +00:00
Jim Meyering
31f9f9f24c . 1996-05-29 04:46:00 +00:00
Jim Meyering
e7b4a0bced . 1996-05-28 23:42:01 +00:00
Jim Meyering
a3b44d2fd5 . 1996-05-28 23:41:11 +00:00
Jim Meyering
55dcae1c8d (main): Don't mark "%s" as a translatable string.
From Gran Uddeborg.
1996-05-28 23:40:11 +00:00
Jim Meyering
a01eaef0fd (print_stats): Don't mark "%u %s" as a translatable string.
From Gran Uddeborg (gvran@uddeborg.pp.se).
1996-05-28 23:39:12 +00:00
Jim Meyering
9da759a317 (main): Use STDIN_FILENO and STDOUT_FILENO instead of less portable fileno(*). 1996-05-28 01:42:07 +00:00
Jim Meyering
d2d2d043ff Hack out broken WEAK junk. 1996-05-24 03:06:01 +00:00
Jim Meyering
afd4dcf3b2 Define __P. 1996-05-24 02:45:38 +00:00
Jim Meyering
9b7bbe7b0b . 1996-05-23 13:14:11 +00:00
Jim Meyering
d84462d473 FIXME: fill this in 1996-05-23 13:13:35 +00:00
Jim Meyering
e3579cb231 . 1996-05-23 13:05:04 +00:00
Jim Meyering
1a34934e94 (read_filesystem_list) [MOUNTED_LISTMNTENT]: New function.
From Johan Danielsson (joda@pdc.kth.se).
1996-05-23 13:04:41 +00:00
Jim Meyering
c2705c1e62 [_CRAY]: Don't include sys/filsys.h because although
Unicos-9 has it, it's not needed and would cause other problems
because it requires inclusion of other, non-standard headers.
1996-05-23 13:04:03 +00:00
Jim Meyering
63d49273c4 (usage): Make --literal (-N) description clearer. 1996-05-23 12:52:54 +00:00
Jim Meyering
2df44bba5b Add copyright header. 1996-05-22 12:37:29 +00:00
Jim Meyering
4b17c0b9ac Update from GNU libc-copies. 1996-05-22 12:37:11 +00:00
Jim Meyering
71d6f09173 . 1996-05-22 12:07:38 +00:00
Jim Meyering
5faf3cd5fb . 1996-05-22 12:03:18 +00:00
Jim Meyering
b4a30ded4c . 1996-05-21 12:15:50 +00:00
Jim Meyering
e1dc14d3a1 (euidaccess) [!S_IROTH]: Define.
[!S_IWOTH]: Define.
[!S_IXOTH]: Define.
Marcus Daniels <marcus@sysc.pdx.edu> reported that m68k NEXTSTEP 3.2
doesn't define S_IROTH or S_IWOTH unless some posix compile option
is used and associated symbols defined.
1996-05-21 12:15:27 +00:00
Jim Meyering
4c8f853735 (xgetgroups): New function, factored out of
print_group_list and print_full_info.
(print_group_list): Call it.
(print_full_info): Call it.

From Andreas Schwab:
(print_group_list): When USERNAME is specified use
getugroups to get the number of groups.
(print_full_info): Likewise.
1996-05-21 04:19:02 +00:00
Jim Meyering
6225a43223 . 1996-05-21 04:13:19 +00:00
Jim Meyering
abda80a05a . 1996-05-21 04:12:36 +00:00
Jim Meyering
6ab8d020db . 1996-05-21 04:11:45 +00:00
Jim Meyering
5daa998b30 . 1996-05-21 03:58:12 +00:00
Jim Meyering
5840eaec8d . 1996-05-21 03:57:51 +00:00
Jim Meyering
4a6d0824c9 . 1996-05-21 03:57:21 +00:00
Jim Meyering
166523ca2b . 1996-05-21 03:52:57 +00:00
Jim Meyering
04a5f54547 . 1996-05-21 03:40:45 +00:00
Jim Meyering
8f47502291 . 1996-05-21 02:56:29 +00:00
Jim Meyering
fb71b69665 . 1996-05-20 04:31:49 +00:00
Jim Meyering
f8a5744b34 . 1996-05-20 02:46:30 +00:00
Jim Meyering
e3fa3463d6 (usage): Make it a little clearer. 1996-05-20 02:46:22 +00:00
Jim Meyering
a712177a4b Tweak indentation. 1996-05-19 20:25:28 +00:00
Jim Meyering
b9ad7b9a9c . 1996-05-19 19:46:25 +00:00
Jim Meyering
47e20014b0 . 1996-05-19 18:15:59 +00:00
Jim Meyering
2f4e768ff4 . 1996-05-19 18:10:22 +00:00
Jim Meyering
f1aea23023 . 1996-05-19 17:14:19 +00:00
Jim Meyering
4734b96d4e . 1996-05-19 17:13:58 +00:00
Jim Meyering
faf0038376 New option: --no-dereference (-h).
[!MAXUID]: Define to INT_MAX.
(change_file_group): Use lchown if --no-dereference (-h) was given.
(usage): Update.
(main): Fail if user requests --no-dereference on a system that
doesn't have support for it.
1996-05-19 17:13:36 +00:00
Jim Meyering
dd7aea80f7 New option: --no-dereference (-h).
(change_file_owner): Use lchown if --no-dereference (-h) was given.
(usage): Update.
(main): Fail if user requests --no-dereference on a system that
doesn't have support for it.
1996-05-19 14:36:09 +00:00
Jim Meyering
4ff1b892d0 . 1996-05-18 19:35:36 +00:00
Jim Meyering
22125a047d . 1996-05-18 19:29:22 +00:00
Jim Meyering
b2191ea8e1 (main): Don't recognize --help, --h, --he, --version, --v, etc.
if the POSIXLY_CORRECT environment variable is set.
1996-05-18 18:37:11 +00:00
Jim Meyering
971c5b1379 (main): Don't recognize --help, --h, --he, --version, --v, etc.
if the POSIXLY_CORRECT environment variable is set.
1996-05-18 18:36:36 +00:00
Jim Meyering
2d8de9b8ab (main): Don't recognize --help, --h, --he, --version, --v, etc.
if the POSIXLY_CORRECT environment variable is set.
(docolon) [RE_SYNTAX_POSIX_BASIC]: Revert my misguided change of Mar 1.
1996-05-18 18:36:10 +00:00
Jim Meyering
271a7e6bb3 . 1996-05-17 03:19:01 +00:00
Jim Meyering
573c16a666 Update prototype to match. 1996-05-17 03:16:54 +00:00
Jim Meyering
bae16cb45b (get_fs_usage): Declare parameter PATH to be const. 1996-05-17 03:16:34 +00:00
Jim Meyering
b80225264a . 1996-05-17 03:16:21 +00:00
Jim Meyering
dcc145f13a Rearrange function definitions to precede respective uses to obviate
all forward dcls. Remove forward dcls.
Declare parameters const as appropriate.
1996-05-16 05:00:12 +00:00
Jim Meyering
51958e82aa . 1996-05-16 04:59:49 +00:00
Jim Meyering
ca0a087f3d . 1996-05-16 04:44:39 +00:00
Jim Meyering
22dc22c127 . 1996-05-16 04:31:54 +00:00
Jim Meyering
a56783bbb4 (selected_fstype): Move definition to precede use.
Remove prototype.  Declare parameter FSTYPE to be const.
(excluded_fstype): Likewise.
(main): Fail with a diagnostic if both --human-readable and
--portability are used.
Likewise if --megabytes and --portability are used.
1996-05-16 04:31:45 +00:00
Jim Meyering
699808bcad (do_link): Declare pointer parameters to be const. 1996-05-16 04:13:52 +00:00
Jim Meyering
7176037aa2 . 1996-05-16 04:02:10 +00:00
Jim Meyering
55447abbdf (getdate.c): Disable dependencies that can
require rerunning YACC when not in maintainer mode.
(posixtm.c): Likewise.
1996-05-16 04:01:39 +00:00
Jim Meyering
2c226bf49d Update prototypes. 1996-05-16 03:58:44 +00:00
Jim Meyering
8a623ebc61 (mode_compile): Declare parameter MODE_STRING const.
Remove register attribute.
(mode_adjust): Likewise for CHANGES.
1996-05-16 03:57:49 +00:00
Jim Meyering
fce70ef38b (describe_change): Declare pointer parameters to be const.
(change_file_mode): Likewise.
(change_dir_mode): Likewise.
1996-05-16 03:55:44 +00:00
Jim Meyering
9622bd6207 (md5_t_stats): Restructure pluralization of error message so it's easier
to translate.
1996-05-15 04:45:12 +00:00
Jim Meyering
f177941b93 (print_stats): Restructure pluralization of error message so it's easier
to translate.
1996-05-15 04:37:50 +00:00
Jim Meyering
a2c6905133 (main): Restructure pluralization of error message so it's easier to translate. 1996-05-15 04:37:08 +00:00
Jim Meyering
3df9acbfc9 . 1996-05-15 02:03:39 +00:00
Jim Meyering
9f58b3b3d5 . 1996-05-13 05:33:36 +00:00
Jim Meyering
e6b5a4d682 *** empty log message *** 1996-05-13 05:31:33 +00:00
Jim Meyering
1fb27efd70 . 1996-05-12 03:25:59 +00:00
Jim Meyering
d4a3e63ec8 Sat May 11 13:30:53 1996 enami tsugutomo <enami@ba2.so-net.or.jp>
* regex.c (re_match_2_internal): Fix off-by-one error; don't use
       length of exactn as character, and don't use length of bitmap of
       charset as bitmap.
1996-05-12 02:57:30 +00:00
Jim Meyering
f64964aa1d . 1996-05-11 01:59:25 +00:00
Jim Meyering
97775c5655 (all-yes): Always depend on CATALOGS. From Ulrich Drepper.
(.po.mo): Disable dependency and rule when not in maintainer mode.
1996-05-11 01:49:04 +00:00
Jim Meyering
483e2421c9 . 1996-05-10 05:10:34 +00:00
Jim Meyering
ac4a274dcf . 1996-05-10 03:31:07 +00:00
Jim Meyering
8b3d87d197 . 1996-05-10 03:30:32 +00:00
Jim Meyering
bee873f407 . 1996-05-10 03:27:51 +00:00
Jim Meyering
7b33a9910c . 1996-05-10 03:26:38 +00:00
Jim Meyering
d60264342d . 1996-05-10 03:20:30 +00:00
Jim Meyering
3cd2c9e1c8 , 1996-05-10 03:06:48 +00:00
Jim Meyering
c94ffee869 (all-yes): Also dependend on GMOFILES.
Depend on CATALOGS and GMOFILES files only in maintainer mode.
1996-05-10 03:05:51 +00:00
Jim Meyering
7da69e79df . 1996-05-08 05:01:01 +00:00
Jim Meyering
a79461545e . 1996-05-08 03:11:42 +00:00
Jim Meyering
32e36bd888 Update from GNU libc. 1996-05-07 03:41:17 +00:00
Jim Meyering
15e49fdbfb . 1996-05-06 04:20:07 +00:00
Jim Meyering
1b0419e8fd . 1996-05-06 01:28:23 +00:00
Jim Meyering
bd395b3bfc (main): Use fputs, not puts. Avoids spurious newline. 1996-05-06 01:26:25 +00:00
Jim Meyering
b7c1e2526a . 1996-05-06 01:25:32 +00:00
Jim Meyering
9300fb41f8 . 1996-05-05 18:48:42 +00:00
Jim Meyering
c434fa5195 Look for SYSTEM_FILE, not USER_FILE in SHAREDIR. 1996-05-05 02:41:29 +00:00
Jim Meyering
7f504f2317 . 1996-05-05 02:15:53 +00:00
Jim Meyering
cafa5c1c2d Make enumerated constants upper case.
(main): Don't rely on ANSI-style string concatenation.
Add `static' and/or `const' to some file scope variables.
1996-05-05 02:15:23 +00:00
Jim Meyering
73a90d1006 . 1996-05-05 02:04:32 +00:00
Jim Meyering
d4e2205ea9 Remove useless void casts of *printf return values. 1996-05-05 02:04:04 +00:00
Jim Meyering
8e9d1adf75 . 1996-05-05 01:56:17 +00:00
Jim Meyering
2f6c94da4c [IN_CTYPE_DOMAIN]: Rename from ISASCII. 1996-05-05 01:55:52 +00:00
Jim Meyering
68898bb9a7 . 1996-05-05 01:55:26 +00:00
Jim Meyering
812fdadfca [IN_CTYPE_DOMAIN]: Rename from ISASCII. 1996-05-05 01:55:16 +00:00
Jim Meyering
0e307a526c . 1996-05-05 01:55:04 +00:00
Jim Meyering
c1997cb5c3 . 1996-05-05 01:53:15 +00:00
Jim Meyering
74445dae42 [IN_CTYPE_DOMAIN]: Rename from ISASCII. 1996-05-05 01:51:50 +00:00
Jim Meyering
fcf3192814 [IN_CTYPE_DOMAIN]: Rename from ISASCII. 1996-05-05 01:51:26 +00:00
Jim Meyering
916861c0e8 . 1996-05-05 01:40:46 +00:00
Jim Meyering
437e9a0bc4 . 1996-05-02 02:47:10 +00:00
Jim Meyering
389c4049b3 (parse_ls_color, usage): Remove support for alternate spellings:
--colours and LS_COLOURS.
(parse_ls_color): Reverse sense of test for LS_COLORS environment
variable and return -- save a level of indentation on a 100+-line block.
1996-05-02 02:45:43 +00:00
Jim Meyering
a9ec4db8f2 . 1996-05-02 02:37:09 +00:00
Jim Meyering
9cda4e6527 . 1996-05-02 02:35:53 +00:00
Jim Meyering
cf1bd0e401 (EXTRA_DIST): Add strcasecmp.c. 1996-05-01 05:24:54 +00:00
Jim Meyering
419daeb511 . 1996-05-01 05:20:22 +00:00
Jim Meyering
5555b3c9db . 1996-05-01 05:19:38 +00:00
Jim Meyering
482d5be531 (parse_ls_color, usage): Remove support for alternate spellings:
--colours and LS_COLOURS.
1996-05-01 05:19:34 +00:00
Jim Meyering
87afdbeb7d . 1996-04-30 03:51:11 +00:00
Jim Meyering
a84f4f6087 . 1996-04-30 03:49:12 +00:00
Jim Meyering
12da649245 (usage): Change TAB in message to spaces. Doing that seems
to have worked around a problem with something in gettext that was
producing a truncated usage message for date's usage.
Franois Pinard.
1996-04-30 03:30:51 +00:00
Jim Meyering
22aec49d4c (main): Separate messages about too few' and too many'
arguments to ease translation.
From Franc,ois.
1996-04-30 03:29:01 +00:00
Jim Meyering
6580f24783 Mark translatable strings.
(main): Separate messages about `too few' and `too many'
arguments to ease translation.
From Franc,ois.
1996-04-30 03:26:34 +00:00
Jim Meyering
a3c143bd82 Mark translatable strings. 1996-04-30 03:20:38 +00:00
Jim Meyering
07e148c8e7 (print_name_with_quoting): Add braces around inner if-else stmt. 1996-04-29 04:53:53 +00:00
Jim Meyering
8455ea2e13 (LEN_STR_PAIR): New macro.
(color_indicator): Use it in this declaration.
(parse_ls_color): Use error, not fprintf.
(decode_switches): Add a comment.
1996-04-29 04:52:16 +00:00
Jim Meyering
95439d0f33 (parse_ls_color): Use strcpy to initialize 3-character array.
Automatic aggregate initialization isn't portable.
1996-04-29 04:31:24 +00:00
Jim Meyering
aa7d0d8c85 Remove all ^L's.
(get_funky_string): Declare static and move to precede single
caller: parse_ls_color.
1996-04-29 04:29:06 +00:00
Jim Meyering
3ce3cb772d (get_funky_string): Upper-case anon. union `state'. 1996-04-29 04:26:47 +00:00
Jim Meyering
e08a28e045 Apply color ls changes from Drepper. 1996-04-29 04:24:07 +00:00
Jim Meyering
6ea9602009 . 1996-04-29 04:04:59 +00:00
Jim Meyering
ea11fd8868 FIXME 1996-04-29 01:44:33 +00:00
Jim Meyering
346b0368cf . 1996-04-29 01:43:52 +00:00
Jim Meyering
175585876f . 1996-04-29 01:36:49 +00:00
Jim Meyering
1ecd1b9c52 . 1996-04-29 01:35:24 +00:00
Jim Meyering
30f76e827e (main): Give a better diagnostic for `sort -0'. Reported by Karl Berry. 1996-04-29 01:35:18 +00:00
Jim Meyering
8b9e784e1e . 1996-04-29 01:29:16 +00:00
Jim Meyering
5a5938db82 (copy_rest): Don't copy past end of prefix. Output
trailing spaces if the prefix had any.  Before, the command
perl -e 'print "| S";' |fmt -p' |  '|tr '\0' @ output `|@S'.
Reported by Franois Pinard.
1996-04-29 01:28:06 +00:00
Jim Meyering
3c57cea2ce . 1996-04-28 22:12:33 +00:00
Jim Meyering
0143b2901f . 1996-04-28 21:41:28 +00:00
Jim Meyering
527b07a1ad Indent CPP conditionals. 1996-04-28 21:41:20 +00:00
Jim Meyering
347c2d6d30 [HAVE_ST_BLOCKS || _POSIX_VERSION]: Add extern dcl
of unused variable so that after preprocessing, the file will never
be empty.  Otherwise, some compilers in ANSI mode (among them, the
Dec Alpha OSF 2.0 C compiler) reject empty files.  From Kaveh Ghazi.
1996-04-28 21:34:00 +00:00
Jim Meyering
9af8f15624 . 1996-04-27 04:11:35 +00:00
Jim Meyering
c17caa0c0f Fri Apr 26 05:52:03 1996 Karl Eichwalder <ke@ke.Central.DE>
* ls.c (usage): Add newline at end of printf format string.
1996-04-27 04:10:54 +00:00
Jim Meyering
77da45645d . 1996-04-25 04:38:01 +00:00
Jim Meyering
8b2c88998b Add copyright. 1996-04-25 04:33:03 +00:00
Jim Meyering
4cf126f7ce . 1996-04-25 04:32:42 +00:00
Jim Meyering
1c4ecd2a95 Get year as last rather than 6th field in output of date.
Otherwise, people with 2-word TZ (like `MET DST') lost.
1996-04-25 04:28:22 +00:00
Jim Meyering
56d10407e7 (main): Use verbose_fmt_string, not string literal in
call to make_path for --parents.  From Uli.
1996-04-25 03:10:57 +00:00
Jim Meyering
f3194fe603 (do_link): With --force, don't remove DEST when it's
the same as SOURCE.  Before, `ln -f FILE FILE' would remove FILE.
Reported by Bruno Haible.
1996-04-25 02:47:07 +00:00
Jim Meyering
f59d1dac46 (do_link): Remove duplicate `if (lstat' block. 1996-04-25 02:34:36 +00:00
Jim Meyering
359f885aae . 1996-04-24 05:05:39 +00:00
Jim Meyering
272f8d891e (usage): The long-named arg is --human-readable, not --human. 1996-04-24 05:05:34 +00:00
Jim Meyering
25f22cdc5d Be consistent. Accept --human-readable, not --human.
(usage): Reflect the change.
1996-04-24 05:04:44 +00:00
Jim Meyering
af781b708c . 1996-04-24 04:54:04 +00:00
Jim Meyering
0a9eb68f77 . 1996-04-24 04:51:29 +00:00
Jim Meyering
59d334f4d4 update Copyright years for 1996 1996-04-24 04:50:53 +00:00
Jim Meyering
e6eece1575 update Copyright years for 1996 1996-04-24 04:45:54 +00:00
Jim Meyering
8fbeb80792 . 1996-04-24 04:43:27 +00:00
Jim Meyering
dc98736719 update Copyright years for 1996 1996-04-24 04:42:21 +00:00
Jim Meyering
3f4c6398be . 1996-04-24 04:30:07 +00:00
Jim Meyering
7e4384f810 . 1996-04-24 04:29:20 +00:00
Jim Meyering
fdd4dd9b35 (find_backup_file_name): Constify decls of formal parameters. 1996-04-24 04:29:00 +00:00
Jim Meyering
bba8ab25f1 (find_backup_file_name, max_backup_version, make_version_name,
version_number, concat): Constify decls of formal parameters.
1996-04-24 04:28:21 +00:00
Jim Meyering
aa05c43a5f . 1996-04-24 04:08:14 +00:00
Jim Meyering
69e6145e1e [HAVE_LCHOWN]: Define chown to lchown. 1996-04-24 03:44:29 +00:00
Jim Meyering
fb19d01b96 [chown]: Move definition up a little. 1996-04-24 03:41:33 +00:00
Jim Meyering
b380f45a13 [HAVE_LCHOWN]: Define chown to lchown. 1996-04-24 03:41:10 +00:00
Jim Meyering
8e12bada8a [HAVE_LCHOWN]: Define chown to lchown. 1996-04-24 03:40:18 +00:00
Jim Meyering
ade410fae0 [HAVE_LCHOWN]: Define chown to lchown. 1996-04-24 03:35:55 +00:00
Jim Meyering
6d668c6160 . 1996-04-24 03:25:02 +00:00
Jim Meyering
78273e9d23 (main): Declare to return int, not void. 1996-04-24 03:24:54 +00:00
Jim Meyering
2b5207bc59 (main): Declare to return int, not void. 1996-04-24 03:23:54 +00:00
Jim Meyering
deeb3e0c49 (usage): Add missing close paren and open paren. 1996-04-24 03:23:37 +00:00
Jim Meyering
2b00449aa7 . 1996-04-24 03:13:47 +00:00
Jim Meyering
98d8740ccd (su_SOURCES): Remove getopt.c and getopt1.c.
(EXTRA_DIST): Add getopt.c and getopt1.c
1996-04-24 03:13:41 +00:00
Jim Meyering
56bc01ab4a . 1996-04-24 03:09:50 +00:00
Jim Meyering
1d43796211 . 1996-04-24 02:34:42 +00:00
Jim Meyering
e8a641509f . 1996-04-22 03:20:47 +00:00
Jim Meyering
674180c97f (usage): Use FIRST, LAST consistently in description. 1996-04-22 03:20:14 +00:00
Jim Meyering
c264e159a4 (usage): Describe new %V format. 1996-04-22 03:19:14 +00:00
Jim Meyering
a5a67731da . 1996-04-22 03:17:19 +00:00
Jim Meyering
d7bf7dee47 (usage): Reflect that now --no-sync is the default. 1996-04-22 03:17:14 +00:00
Jim Meyering
3032beba73 New version from gettext-0.10.12. 1996-04-22 03:02:55 +00:00
Jim Meyering
50b029f4d9 (md5_check): Remove spurious `\n' at end of error format string. 1996-04-22 03:00:52 +00:00
Jim Meyering
c07d15973c (decode_one_format): Use printf's L modifier for long doubles,
not `l'.  From Eric Backus.
1996-04-21 21:07:13 +00:00
Jim Meyering
5beebbd8da Include <values.h>.
[!BITSPERBYTE]: Define.
[OFF_T_MAX]: Use BITSPERBYTE, not 8, and cast the result to off_t.
1996-04-21 14:17:13 +00:00
Jim Meyering
763d748cf2 . 1996-04-21 13:32:54 +00:00
Jim Meyering
0e442c97a5 . 1996-04-21 05:20:10 +00:00
Jim Meyering
2411847f16 Include xstrtol.h.
[!BITSPERBYTE]: Define.
[!UID_T_MAX]: Define.
[!GID_T_MAX]: Define.
(get_ids): Use xstrtol, not atoi.
(is_number): Remove now-unused function.
1996-04-21 05:18:19 +00:00
Jim Meyering
874f418e03 Remove obsolete FIXME. 1996-04-21 05:15:39 +00:00
Jim Meyering
0126f74936 (decode_switches): Replace two more atoi uses with xstrtol. 1996-04-21 04:45:12 +00:00
Jim Meyering
7d956ece8c (decode_switches): Use getenv (POSIXLY_CORRECT), not undefined posix_pedantic. 1996-04-21 04:11:43 +00:00
Jim Meyering
ee708ff4aa (decode_switches): Clean up last change.
[posix_pedantic]: Don't consider TABSIZE environment variable.
1996-04-21 04:07:41 +00:00
Jim Meyering
c1f1f8ac3a (decode_switches): Use xstrtol, not atoi.
Detect and ignore invalid value for COLUMNS environment variable.
In error about invalid TABSIZE, don't reference optarg!
1996-04-21 03:52:30 +00:00
Jim Meyering
0aa556c39c . 1996-04-21 03:27:32 +00:00
Jim Meyering
b76ab178d1 (usage): Improve help message. From Karl Berry. 1996-04-21 03:26:46 +00:00
Jim Meyering
dfbe6788b4 (usage): Improve help message. From Karl Berry. 1996-04-21 03:25:53 +00:00
Jim Meyering
1d2c0959c9 (usage): Improve help message.
Enclose message strings in _().
From Karl Berry.
1996-04-21 03:24:47 +00:00
Jim Meyering
fc0f5b4539 . 1996-04-20 04:50:26 +00:00
Jim Meyering
49af3f858e . 1996-04-20 04:46:11 +00:00
Jim Meyering
0528939c0a . 1996-04-20 03:51:17 +00:00
Jim Meyering
a2d90c1616 No longer call sync by default. 1996-04-20 03:51:10 +00:00
Jim Meyering
5ac0cdbfce (main): Make separation of case for n_files == 0 more clear. 1996-04-20 03:43:10 +00:00
Jim Meyering
b8654f033b . 1996-04-19 05:07:58 +00:00
Jim Meyering
f60c8ea48b (copy_reg): Rearrange arithmetic in conditional to avoid
integer overflow with large files.
1996-04-19 05:07:52 +00:00
Jim Meyering
dafd2cb4e2 (basename): Rewrite so it doesn't rely on strrchr,
and hence doesn't need to include string.h -- on some alpha-based
OSF systems, there's a conflicting prototype for basename in string.h.
Reported by Kaveh Ghazi.
1996-04-19 04:41:27 +00:00
Jim Meyering
f970591c5a . 1996-04-19 04:34:53 +00:00
Jim Meyering
d729e4cab7 . 1996-04-19 03:17:31 +00:00
Jim Meyering
cccb23f01b (main): Make code clearer: use new variable `n_files' in
place of `argc - optind'.  Use `file' instead of `argv + optind'.
1996-04-19 03:17:23 +00:00
Jim Meyering
199923e3cc Indent cpp-directives. 1996-04-18 23:02:17 +00:00
Jim Meyering
706389d9df . 1996-04-17 05:03:22 +00:00
Jim Meyering
bba21e6815 . 1996-04-17 05:02:34 +00:00
Jim Meyering
0f459ed24c . 1996-04-17 05:01:56 +00:00
Jim Meyering
c1a0ddea63 . 1996-04-17 05:01:10 +00:00
Jim Meyering
337e927dae . 1996-04-17 05:00:17 +00:00
Jim Meyering
d8ab22727f . 1996-04-17 03:41:47 +00:00
Jim Meyering
505b859fe9 Test cpp-defined __sun as well as sun, because
in strict ANSI mode, only __sun is defined.  From Kaveh Ghazi.
1996-04-14 02:12:46 +00:00
Jim Meyering
e6cfa98486 . 1996-04-14 00:34:30 +00:00
Jim Meyering
93bd527109 . 1996-04-13 18:27:27 +00:00
Jim Meyering
d283aef5ca (usage): Add missing `\n\' at the end of newly added lines for %e and %z. 1996-04-13 18:27:24 +00:00
Jim Meyering
be333ac3a5 (print_uptime): Invoke getloadavg only if we have it. 1996-04-13 18:26:39 +00:00
Jim Meyering
62b978f77c . 1996-04-13 18:13:16 +00:00
Jim Meyering
84e64a529a Unprotoize.
[ISASCII]: Define.
[ISUPPER]: Define.
1996-04-13 18:13:09 +00:00
Jim Meyering
b4a20010e6 (decode_field_spec): Rename local variable `valid'
to invalid (and reverse sense) to avoid conflict with the
macro definition in /usr/include/locale.h on SunOS 4.1.3.
1996-04-13 18:11:43 +00:00
Jim Meyering
b8b9306a9a . 1996-04-13 04:42:15 +00:00
Jim Meyering
5ec32b62e5 . 1996-04-13 03:59:26 +00:00
Jim Meyering
c659704b20 (main): Add new option: --verbose.
Remove long-deprecated and nowhere-documented --path, a synonym
for --parents.  It was confusing to get an error about `--p'
being ambiguous.
1996-04-13 03:59:20 +00:00
Jim Meyering
ce339a4a50 . 1996-04-13 03:58:33 +00:00
Jim Meyering
53ff5566ce . 1996-04-13 03:18:47 +00:00
Jim Meyering
c1bf67ee67 Mark translatable strings in new code. 1996-04-13 03:17:44 +00:00
Jim Meyering
5dbe03ea6c . 1996-04-13 03:07:54 +00:00
Jim Meyering
a2b6134e37 . 1996-04-13 03:05:56 +00:00
Jim Meyering
d82c2c9274 (usage): Document %e and %z. Reported by Karl Berry. 1996-04-13 03:04:21 +00:00
Jim Meyering
cc6711057e . 1996-04-13 02:54:59 +00:00
Jim Meyering
c60619245a . 1996-04-13 02:54:13 +00:00
Jim Meyering
a7b3ea4189 . 1996-04-12 04:27:03 +00:00
Jim Meyering
7057c83fd4 Reindent.
(UT_TIME_MEMBER): New macro.
(print_uptime): Use it instead of #ifdef HAVE_UTMPX_H #else.
(print_entry): Likewise.
1996-04-11 02:30:09 +00:00
Jim Meyering
737ea4d4f9 (print_uptime) [UPTIME]: New function. From Kaveh Ghazi. 1996-04-10 04:57:09 +00:00
Jim Meyering
ac22df9290 . 1996-04-10 04:03:47 +00:00
Jim Meyering
a33c222135 . 1996-04-10 03:52:01 +00:00
Jim Meyering
f6d1e06932 . 1996-04-10 03:51:41 +00:00
Jim Meyering
447a13cdd4 Document uniq's new --ignore-case option. 1996-04-10 03:51:07 +00:00
Jim Meyering
727a9ed970 Add new option --ignore-case (-i).
Include memcasecmp.h.
(different): Compare with memcasecmp if ignoring case.
(main): Handle 'i'.
1996-04-10 03:50:31 +00:00
Jim Meyering
5d5979d9a8 (memcasecmp): Remove static definition of function.
Include memcasecmp.h instead.
1996-04-10 03:47:28 +00:00
Jim Meyering
5eb19629b0 . 1996-04-10 03:29:05 +00:00
Jim Meyering
cbfdc4fd51 . 1996-04-08 04:57:19 +00:00
Jim Meyering
24c0303794 . 1996-04-08 04:56:36 +00:00
Jim Meyering
d9422a21e0 . 1996-04-08 04:54:35 +00:00
Jim Meyering
4be30f34c2 . 1996-04-08 04:54:00 +00:00
Jim Meyering
4da76e0c6f (mon_week_ISO): New function to implement new %V format.
(sun_week): Make TM parameter `const'.
(mon_week): Likewise.
(mon_week): Rewrite to correctly implement %W format..
1996-04-08 04:53:54 +00:00
Jim Meyering
39c92b4dc4 (print_numbers): Fix off-by-one error in backwards-counting loop.
Reported by Karl Eichwalder.
1996-04-08 04:37:45 +00:00
Jim Meyering
c74a04a26f . 1996-04-07 17:56:40 +00:00
Jim Meyering
aedf3f9fc5 updage from gettext-0.10.12 1996-04-07 17:53:50 +00:00
Jim Meyering
7e76b8b7da (usage): Give minimal description of the program.
(print_factors): Give a better diagnostic.
(main): Suggest --help upon failure.
Reported by Karl Eichwalder <ke@ke.Central.DE>.
1996-04-07 17:46:03 +00:00
Jim Meyering
d9fe359377 . 1996-04-07 17:27:27 +00:00
Jim Meyering
c32c5775be Fiddle with messages. 1996-04-07 17:27:11 +00:00
Jim Meyering
3220407d48 (print_numbers): Give more precise diagnostic when increment
is inconsistent with FROM and TO.
(usage): Clean up help message.
1996-04-07 17:10:21 +00:00
Jim Meyering
45c51b256a (main): Rearrange loops to get it right.
Reported by Karl Eichwalder <ke@ke.Central.DE>.
1996-04-07 16:59:12 +00:00
Jim Meyering
c1505fc01f (sun_week): Make %U work properly.
Before, `date -d '1 Jan 1995' +%U' output `00'.  Now it prints `01'.
1996-04-05 23:33:09 +00:00
Jim Meyering
cca1377d96 . 1996-04-05 16:08:32 +00:00
Jim Meyering
8024d6459c . 1996-04-05 16:04:56 +00:00
Jim Meyering
78732c5421 Remove diagnostic. 1996-04-05 16:04:15 +00:00
Jim Meyering
0e199278c1 (main): Use `if' stmt, not while loop, around getopt invocation.
Otherwise, `./nice --a=1 -1 ./nice' (in which old-style option
follows a long option) gets an error.
1996-04-05 13:32:39 +00:00
Jim Meyering
9d22ab92f9 Patch from Frank Korz. 1996-04-05 13:14:59 +00:00
Jim Meyering
8a6f26dfd6 . 1996-04-05 04:37:05 +00:00
Jim Meyering
43b84ec02e Remove fixed FIXME. 1996-04-05 04:00:05 +00:00
Jim Meyering
dadd9cf997 . 1996-04-05 03:58:37 +00:00
Jim Meyering
dacd5d7572 . 1996-04-05 03:55:07 +00:00
Jim Meyering
a8b09f0b0a . 1996-04-05 03:28:34 +00:00
Jim Meyering
7670167015 . 1996-04-05 03:27:21 +00:00
Jim Meyering
7f00439ebe . 1996-04-05 03:11:47 +00:00
Jim Meyering
a6263137d7 . 1996-04-05 01:22:42 +00:00
Jim Meyering
efb6a6917b . 1996-04-04 23:16:13 +00:00
Jim Meyering
987f70fee5 . 1996-04-04 23:10:35 +00:00
Jim Meyering
42a0e84308 The following commands all failed unnecessarily.
tr -cs '[:upper:]' '[X*]'
tr -dcs '[:lower:]' n-rs-z
tr -ds '[:xdigit:]' [:alnum:]'
tr -dcs '[:alnum:]' [:digit:]'
tr -dc '[:upper:]'
Reported by Ross Ridge (ross@worf.mks.com).
(validate): Add missing conjunct (translating) in test for
`translating and complementing character classes' error.  Before,
valid uses of tr could fail.  E.g. `tr -dcs '[:cntrl:]' '[:alnum:]''.
(homogeneous_spec_list): New function.
(validate): Use it to relax the old (overly restrictive) restriction
that prohibited use of complemented character classes when translating.
Now, that is allowed as long as the translation maps many to one.
(get_spec_stats): Rename and redefine global has_char_class from
has_upper_or_lower.
1996-04-04 23:08:30 +00:00
Jim Meyering
564707901d . 1996-04-04 20:57:13 +00:00
Jim Meyering
70a316cc3d Add tests from Ross Ridge. 1996-04-04 20:22:10 +00:00
Jim Meyering
7ef62e1fda . 1996-04-04 12:58:29 +00:00
Jim Meyering
118e780f0d . 1996-04-04 12:45:16 +00:00
Jim Meyering
3c5b5b8b03 . 1996-04-03 13:19:59 +00:00
Jim Meyering
0a6412bea9 Include stdio.h before grp.h.
Because <grp.h> on alpha OSF1 V2.0 uses "FILE *".  From Kaveh Ghazi.
1996-04-03 13:19:16 +00:00
Jim Meyering
4a8b8d5f68 . 1996-04-03 12:56:09 +00:00
Jim Meyering
e00bceb7f2 update from gettext-0.10.11 1996-04-03 12:52:22 +00:00
Jim Meyering
58dce30461 . 1996-04-03 12:33:23 +00:00
Jim Meyering
3583bcd14d . 1996-04-03 12:28:18 +00:00
Jim Meyering
3191649a85 (copy_reg): Use ST_NBLOCKS (sb) * 512', not sb.st_blocks *
DEV_BSIZE.'  From H.J. Lu (hjl@lucon.org).
1996-04-03 12:20:24 +00:00
Jim Meyering
4325d27ddd Include assert.h (disabled).
(path_concat): New function.
(do_copy): Use path_concat instead of open-coding part of its
functionality in two places.  This has the additional benefit
of avoiding forming destination names like `D//file' when the
destination directory D includes a trailing slash -- as would
happen when cp is used like this:
mkdir D; touch file D/file; cp -i file D/
Reported by Franois Pinard.
1996-04-03 05:42:14 +00:00
Jim Meyering
834a0cf023 . 1996-04-02 15:57:23 +00:00
Jim Meyering
778abcac1e . 1996-04-02 14:28:26 +00:00
Jim Meyering
741c894274 (unsetenv): unprotoize. 1996-04-01 04:29:28 +00:00
Jim Meyering
651e543fd6 . 1996-04-01 00:16:11 +00:00
Jim Meyering
ae56578d18 . 1996-03-31 23:30:43 +00:00
Jim Meyering
74ca57dfe8 . 1996-03-31 22:31:30 +00:00
Jim Meyering
91aab55475 . 1996-03-31 17:20:34 +00:00
Jim Meyering
fa9c4632bb . 1996-03-31 17:20:02 +00:00
Jim Meyering
3d1c60aba7 . 1996-03-31 17:19:06 +00:00
Jim Meyering
399abab9bc (quote_filename): Use ISGRAPH and ISPRINT in place of
ASCII-centric tests against literals.
(length_of_file_name_and_frills): Likewise.
1996-03-31 17:18:28 +00:00
Jim Meyering
908040f25e Rip out color support. 1996-03-31 14:22:12 +00:00
Jim Meyering
ac906fde2f update from FSF:/home/gd/gnu/lib 1996-03-30 14:26:16 +00:00
Jim Meyering
57dcd53d86 Update from libc. 1996-03-30 12:39:36 +00:00
Jim Meyering
45479ef311 Upgrade from gettext-0.10.10. 1996-03-30 12:19:38 +00:00
Jim Meyering
21fb4595e6 . 1996-03-30 04:18:13 +00:00
Jim Meyering
43c812bc6a . 1996-03-29 16:14:36 +00:00
Jim Meyering
86110845b2 . 1996-03-29 05:47:21 +00:00
Jim Meyering
f9045181fd . 1996-03-29 05:45:25 +00:00
Jim Meyering
850ad58630 . 1996-03-29 05:01:14 +00:00
Jim Meyering
a95c870766 . 1996-03-29 05:00:05 +00:00
Jim Meyering
56d806cf6f . 1996-03-29 04:54:45 +00:00
Jim Meyering
c2efd628df . 1996-03-29 04:53:57 +00:00
Jim Meyering
5eceb4fed1 . 1996-03-28 06:19:37 +00:00
Jim Meyering
38457c3dac . 1996-03-28 06:18:24 +00:00
Jim Meyering
fee163dd57 Move usage to precede main.
Say `too few arguments' if that's why we display usage.
Protoize.
Include error.h.
Update copyright.
1996-03-28 06:17:34 +00:00
Jim Meyering
f954f74302 . 1996-03-28 06:14:59 +00:00
Jim Meyering
0271d97259 from Roland 1996-03-28 05:42:56 +00:00
Jim Meyering
9cb8617078 . 1996-03-28 05:35:48 +00:00
Jim Meyering
7c5f9f7faa (cksum): Use format "%lu %ld" (instead of "%10lu %8ld")
to be POSIX compliant.  From Stephen Gildea <gildea@x.org>.
1996-03-28 05:35:31 +00:00
Jim Meyering
053855b040 . 1996-03-26 05:46:05 +00:00
Jim Meyering
a5b5719d3b Document and example --rfc.
Document %z and %Z.
1996-03-26 05:44:03 +00:00
Jim Meyering
01b69091e2 . 1996-03-24 18:50:47 +00:00
Jim Meyering
d30fa5d58e . 1996-03-24 18:49:38 +00:00
Jim Meyering
b54cd94fe7 . 1996-03-24 18:48:25 +00:00
Jim Meyering
5de0b392f2 Update FSF's address. 1996-03-24 18:47:09 +00:00
Jim Meyering
3613700a38 Update FSF's address. 1996-03-24 18:40:53 +00:00
Jim Meyering
318a497768 Update FSF's address. 1996-03-24 18:33:12 +00:00
Jim Meyering
7b428cdeda . 1996-03-24 18:23:44 +00:00
Jim Meyering
b28595b502 . 1996-03-24 18:20:25 +00:00
Jim Meyering
f9714aa24d Include xstrtod.h.
(scan_double_arg): Use xstrtod rather than strtod directly.
1996-03-24 18:16:10 +00:00
Jim Meyering
a9ff449aa6 . 1996-03-24 18:13:56 +00:00
Jim Meyering
236c02759b Make parameters const where appropriate.
Rename global FROM to START.
(print_numbers): Rewrite loops to avoid incrementing.  Instead,
use `x = first + i * increment' paradigm.  Otherwise, with inexact
increment, you could miss the last value.
1996-03-24 17:50:09 +00:00
Jim Meyering
777948e773 Protoize and reorder functions. 1996-03-24 17:43:41 +00:00
Jim Meyering
6e45576dd6 (main): Reformat if-block a little.
Declare index I to be of type size_t to avoid warning from gcc -Wall.
1996-03-24 17:21:40 +00:00
Jim Meyering
2bc35b0348 . 1996-03-24 16:59:29 +00:00
Jim Meyering
818d29db9b Call error with EXIT_FAILURE (rather than `1') as first actual parameter. 1996-03-24 16:59:11 +00:00
Jim Meyering
47f70113d4 Exit with status EXIT_SUCCESS or EXIT_FAILURE, rather than 0 or 1.
This doesn't change `error (1' calls.
1996-03-24 14:58:01 +00:00
Jim Meyering
2fa0c16e5e . 1996-03-24 05:15:00 +00:00
Jim Meyering
8060afb088 . 1996-03-24 02:31:39 +00:00
Jim Meyering
a1bc39d130 . 1996-03-24 02:26:30 +00:00
Jim Meyering
e6fae6c23f [SORT_FAILURE]: New macro.
Be careful to exit with 1 only when -c is used and the
input is not properly sorted.  In all other cases, use
SORT_FAILURE as required by POSIX.
(main): Change some `error (1, ...' to use SORT_FAILURE.
Upon successful termination, exit with EXIT_SUCCESS instead of `0'.
Replace all uses of `2' (as exit code) with SORT_FAILURE.
1996-03-24 02:26:21 +00:00
Jim Meyering
adb160df0f . 1996-03-24 02:20:06 +00:00
Jim Meyering
74a776f9ae . 1996-03-24 02:19:39 +00:00
Jim Meyering
12ea18c68d . 1996-03-24 02:19:31 +00:00
Jim Meyering
f870ecb4a6 . 1996-03-22 04:57:19 +00:00
Jim Meyering
6d6bfafbdd . 1996-03-22 04:55:00 +00:00
Jim Meyering
7178674807 Include assert.h, but disable assertions.
(process_line_count): Replace if-abort with a slightly relaxed
assertion.  Before, `echo |csplit - 1 1' would abort.
Reported by Samuli.Karkkainen@hut.fi.
(parse_patterns): Disallow uses like `csplit FILE 0' with zero
line number, `csplit FILE 2 1' with decreasing line numbers, and
warn about uses like `csplit FILE 3 3' that have equal line numbers.
1996-03-22 04:54:46 +00:00
Jim Meyering
1954f681c6 (main): Declare to be of type int, not void. 1996-03-21 22:47:02 +00:00
Jim Meyering
bb6a548712 (main): Declare to be of type int, not void. 1996-03-21 22:45:19 +00:00
Jim Meyering
403816eb85 . 1996-03-21 22:43:38 +00:00
Jim Meyering
adb7c216b2 (main): Declare to be of type int, not void. 1996-03-21 22:41:04 +00:00
Jim Meyering
92d78458e0 . 1996-03-21 13:00:25 +00:00
Jim Meyering
dd5db06467 (main): Declare to return int, not void. From Peter Seebach
<seebs@taniemarie.solon.com>.
1996-03-21 13:00:15 +00:00
Jim Meyering
b13e6b03cc . 1996-03-18 05:52:07 +00:00
Jim Meyering
a2b8387b70 . 1996-03-16 22:37:33 +00:00
Jim Meyering
4229a555fc Don't include version.h.
(main): Use PACKAGE_VERSION instead of version_string.
1996-03-16 22:30:54 +00:00
Jim Meyering
688833b80e . 1996-03-16 16:54:48 +00:00
Jim Meyering
ca0246a4c1 Don't include version.h.
(main): Use PACKAGE_VERSION instead of version_string.
1996-03-16 16:49:28 +00:00
Jim Meyering
c1cdafa1b4 Change @VERSION@ to @PKG_VERSION@. 1996-03-16 16:41:36 +00:00
Jim Meyering
ed960988ee . 1996-03-16 16:14:50 +00:00
Jim Meyering
3ee97d4d5b Don't include version.h.
(main): Use PACKAGE_VERSION instead of version_string.
1996-03-16 16:14:26 +00:00
Jim Meyering
b34f300eaf . 1996-03-16 05:44:09 +00:00
Jim Meyering
2e5cc5e04e (read_utmp): Declare n_read to be of type size_t rather than int. 1996-03-16 05:44:02 +00:00
Jim Meyering
182c784a99 (validate_path): Cast path_max to size_t before
comparing with strlen(path).
1996-03-16 05:43:24 +00:00
Jim Meyering
b14b621029 Remove __P-protected prototype for basename.
Reported by Franois Pinard.
(remove_suffix): Move to precede use.  Remove prototype.
Declare formal parameter SUFFIX to be const.
1996-03-16 05:42:53 +00:00
Jim Meyering
8825dba4e7 . 1996-03-14 05:21:43 +00:00
Jim Meyering
9922b56ffb add ## comment on first line 1996-03-14 05:15:16 +00:00
Jim Meyering
6681674e3c (EXTRA_DIST): Renamed form DIST_OTHER. 1996-03-14 05:05:22 +00:00
Jim Meyering
99f35e8204 . 1996-03-14 04:52:29 +00:00
Jim Meyering
c46f149efd . 1996-03-13 05:24:33 +00:00
Jim Meyering
644d185dea . 1996-03-13 05:13:52 +00:00
Jim Meyering
6fc4ae7a28 (main): Initialize for internationalized message support:
call setlocale, bindtextdomain, and textdomain.
1996-03-12 23:49:29 +00:00
Jim Meyering
3f92a4421a . 1996-03-12 04:20:57 +00:00
Jim Meyering
7a4a5dd66c . 1996-03-12 04:14:47 +00:00
Jim Meyering
fe456215a6 [_]: Don't define this away. 1996-03-12 04:02:07 +00:00
Jim Meyering
65957278ab . 1996-03-12 04:01:04 +00:00
Jim Meyering
6f2e1d1ce2 (max_backup_version): Declare file_name_length to be of type size_t. 1996-03-12 03:58:25 +00:00
Jim Meyering
51078dff7f . 1996-03-12 03:35:21 +00:00
Jim Meyering
03824c9e29 . 1996-03-12 03:29:57 +00:00
Jim Meyering
10c96c43ac (main): Initialize for internationalized message support: call setlocale,
bindtextdomain, and textdomain.
1996-03-12 03:08:30 +00:00
Jim Meyering
8e8fd5439a Add definitions and includes for NLS. 1996-03-12 03:06:47 +00:00
Jim Meyering
d3bcbd9968 . 1996-03-11 22:07:30 +00:00
Jim Meyering
6526b37460 (write_bytes): Renamed from xfwrite.
Remove SIZE parameter.  It was always 1.
Update all callers.
Rename NELEM parameter to N_BYTES and change its type to size_t.
1996-03-11 22:07:21 +00:00
Jim Meyering
9379b5aed5 Merge changes from FSF. 1996-03-10 05:00:20 +00:00
Jim Meyering
f2794b3c5d . 1996-03-09 20:26:12 +00:00
Jim Meyering
f090816a3f (star_digits_closebracket): Declare formal param, IDX, and local I to
be of type size_t (rather than int) to avoid warnings from gcc -Wall.
1996-03-09 20:25:29 +00:00
Jim Meyering
d385bbc985 (memcasecmp): Declare local I to be unsigned to avoid warning from gcc -Wall. 1996-03-09 20:24:01 +00:00
Jim Meyering
715765a548 (main): Initialize for internationalized message support: call setlocale,
bindtextdomain, and textdomain.
1996-03-09 20:19:13 +00:00
Jim Meyering
de0fdbb080 . 1996-03-09 20:17:53 +00:00
Jim Meyering
e6800f5073 Use /usr/bin/perl.
Remove unused $test.
1996-03-09 17:53:59 +00:00
Jim Meyering
e1ff4d762b Change some more " to '. 1996-03-09 17:53:18 +00:00
Jim Meyering
ffccedee33 Fix for perl5 (there were % inside double-quoted strings).
Change a lot of "" to ''.
1996-03-09 17:50:59 +00:00
Jim Meyering
8ddd60a387 (copy): Comment change to avoid overwriting source with backup. 1996-03-09 04:59:22 +00:00
Jim Meyering
eaf359df0c . 1996-03-08 02:26:21 +00:00
Jim Meyering
ff6400a018 (main): Tell read_filesystem_list that it should determine file system type
when the user specifies --print-type or -T.  From Michael Rendell
<michael@cs.mun.ca>
1996-03-08 02:25:40 +00:00
Jim Meyering
a74458a36e (print_entry): Use STRUCT_UTMP, not `struct utmp'. 1996-03-07 03:41:22 +00:00
Jim Meyering
e6c847ea05 . 1996-03-07 03:41:11 +00:00
Jim Meyering
c7d28e2bd8 . 1996-03-06 05:13:10 +00:00
Jim Meyering
898f3e5757 . 1996-03-06 05:10:30 +00:00
Jim Meyering
c239e82816 (usage): Reorder --time and --help so --help is the latter (just
before --version) to be consistent with other usage functions.
1996-03-06 05:04:05 +00:00
Jim Meyering
aaa9cb7c22 (RelativeMonth): Add 1900 to the year so that relative date specs
that push the year through the end of the century work.  For example,
`date -d "01/01/1998 3 years" +%Y' now prints 2001.
From Peter Dalgaard (pd@kubism.ku.dk).
1996-03-06 04:57:01 +00:00
Jim Meyering
73d802bead . 1996-03-06 04:50:26 +00:00
Jim Meyering
29b0ceae9f . 1996-03-05 05:47:09 +00:00
Jim Meyering
b21af8a7dd (main): Exit after processing --version. 1996-03-05 05:47:04 +00:00
Jim Meyering
7a888be2e5 . 1996-03-02 05:46:23 +00:00
Jim Meyering
815b5ca1d5 (WINDOWS_SETFILEMODE_BINARY): New macro.
(skip) [_WIN32 && _O_BINARY]: Use it.
(read_char): Likewise.
(read_block): Likewise.
Based on changes by Gary Newman <gnewman@shore.net>.
1996-03-02 05:45:45 +00:00
Jim Meyering
76118226b6 Document sort -z. From eichin@cygnus.com. 1996-03-02 03:42:56 +00:00
Jim Meyering
091c054eed . 1996-03-02 03:00:54 +00:00
Jim Meyering
3d2a9041f9 (docolon): Don't use deceptively-named RE_SYNTAX_POSIX_BASIC -- it recognizes
non-BRE \?, \+, and \|.  Instead, use RE_SYNTAX_POSIX_MINIMAL_BASIC.
1996-03-02 02:45:20 +00:00
Jim Meyering
aeb85812a1 . 1996-02-29 05:19:24 +00:00
Jim Meyering
3a3b589b06 . 1996-02-29 05:10:23 +00:00
Jim Meyering
20c8b4db54 . 1996-02-29 05:09:45 +00:00
Jim Meyering
c44dd6ddad . 1996-02-29 05:09:32 +00:00
Jim Meyering
446976666c General cleanup. Use xstrtoul, not atoi.
Change output format.  Allow inputs as large as ULONG_MAX.
Allow more than one command line argument.
1996-02-29 05:07:34 +00:00
Jim Meyering
c997ad6f05 . 1996-02-29 03:08:29 +00:00
Jim Meyering
27a6efc25b . 1996-02-29 03:06:42 +00:00
Jim Meyering
557514f55c (wrapf) [!__STDC__]: Indent by one space the first line of the pre-ANSI
function definition so ansi2knr doesn't munge it.
1996-02-29 03:06:10 +00:00
Jim Meyering
5ba09e9ace . 1996-02-29 02:55:04 +00:00
Jim Meyering
60ae95f973 . 1996-02-29 02:53:42 +00:00
Jim Meyering
9a181424ac (eval6): Cast strlen to int to avoid warning from gcc -Wall. 1996-02-29 02:53:37 +00:00
Jim Meyering
4e3478c9d6 . 1996-02-29 02:33:57 +00:00
Jim Meyering
3803547285 . 1996-02-29 02:27:43 +00:00
Jim Meyering
cbdd4ce994 Use @sc{} around POSIX and POSIX.2. 1996-02-29 02:14:16 +00:00
Jim Meyering
3749705b11 . 1996-02-28 05:14:04 +00:00
Jim Meyering
c940655b0f . 1996-02-28 05:11:50 +00:00
Jim Meyering
db18c4898e Adapt for automake-0.30.
(noinst_HEADERS): Rename from HEADERS.
1996-02-28 05:10:05 +00:00
Jim Meyering
5d78a2a235 . 1996-02-28 05:05:21 +00:00
Jim Meyering
268ddc7d50 Revert last change. Comment didn't add anything. 1996-02-27 03:57:49 +00:00
Jim Meyering
dee715bb6f Elaborate comment. 1996-02-27 03:33:23 +00:00
Jim Meyering
edac0ff420 (copy): Remove bogus (now that we're using full_write) increment of w_partial.
Change sense of the tests (though they're equivalent) that check
the value returned by full_write. making it clearer where errno
is valid.  full_write always writes the full amount or fails.
1996-02-27 03:24:31 +00:00
Jim Meyering
3f10c64fca . 1996-02-27 03:24:07 +00:00
Jim Meyering
d706ee318c . 1996-02-26 04:20:07 +00:00
Jim Meyering
a4d2c17357 . 1996-02-25 12:55:48 +00:00
Jim Meyering
6f37efd8b2 (batch_convert): Put `' around filename in error in case it's empty. 1996-02-25 05:31:26 +00:00
Jim Meyering
746c5e5528 Unprotoize. 1996-02-24 18:30:46 +00:00
Jim Meyering
6ff9e537fe . 1996-02-24 18:29:11 +00:00
Jim Meyering
b12057e3bd __P-protect forward declarations.
(main): Protoize function definition.
1996-02-24 18:27:11 +00:00
Jim Meyering
34e1cf8304 (cmpf): Indent macro uses so ansi2knr doesn't mistake them
for function dcls and munge them.
(arithf): Likewise.
(arithdivf): Likewise.
1996-02-24 18:25:29 +00:00
Jim Meyering
178d3b59d5 . 1996-02-23 16:29:43 +00:00
Jim Meyering
ce4e2493ee [HAVE_SYS_SOCKET_H]: Include <sys/socket.h> for definition of AF_INET
on at least SunOS 4.
1996-02-23 16:14:27 +00:00
Jim Meyering
85f9983c19 (docolon): Set re_syntax_options to RE_SYNTAX_POSIX_BASIC
so expr's pattern matching uses BASIC (not GNU-extended) REs.
Reported by Jim Kingdon.
1996-02-23 16:13:53 +00:00
Jim Meyering
9cb56e2980 (print_entry): Use strchr, not index. 1996-02-23 16:12:01 +00:00
Jim Meyering
c5134a9b13 (batch_convert): Declare BUFLEN local to be of type size_t, not int. 1996-02-23 16:11:14 +00:00
Jim Meyering
475d6600c1 . 1996-02-23 14:40:13 +00:00
Jim Meyering
3dbdcab168 . 1996-02-23 14:37:47 +00:00
Jim Meyering
756fe67e60 (xfields) [without -t]: Ignore leading blanks.
From David Dyck	(dcd@tc.fluke.COM).
1996-02-22 00:58:12 +00:00
Jim Meyering
23d07a32b2 . 1996-02-22 00:57:24 +00:00
Jim Meyering
9f82a64eb6 . 1996-02-22 00:56:40 +00:00
Jim Meyering
79b86f69e6 . 1996-02-21 19:53:35 +00:00
Jim Meyering
4d81490eb3 . 1996-02-20 02:33:14 +00:00
Jim Meyering
28a24ea3be [TOLOWER]: Define.
(usage): Briefly describe new --ignore-case (-i) option.
(memcasecmp): New function.
(main): Set IGNORE_CASE for -i.
(keycmp): Compare with memcasecmp if IGNORE_CASE is set.
Suggestion and an initial patch from Alberto Accomazzi
<alberto@cfa0.harvard.edu>.
1996-02-18 18:08:01 +00:00
Jim Meyering
6a4e9d5422 . 1996-02-18 18:07:36 +00:00
Jim Meyering
777d5f0ba8 (join): Describe new --ignore-case (-i) option. 1996-02-18 17:58:01 +00:00
Jim Meyering
9e7cf8346d . 1996-02-18 04:11:40 +00:00
Jim Meyering
1f37d82ce4 Add -z option. Change all occurrences of '\n' to `eolchar'.
(usage): Describe it.
(main): Set eolchar to 0 for -z.
From Mark W. Eichin <eichin@cygnus.com>.
1996-02-18 00:55:08 +00:00
Jim Meyering
baf2a7b0fe . 1996-02-17 03:45:17 +00:00
Jim Meyering
73d5e9c5dd Mark a few error strings for translation.
From Franc,ois Pinard.
1996-02-17 03:42:26 +00:00
Jim Meyering
daf7870cb0 . 1996-02-16 05:16:46 +00:00
Jim Meyering
796e41bedf . 1996-02-16 05:15:26 +00:00
Jim Meyering
816194943b (copy): Detect (and fail) when creating backup file would destroy source.
Reported by Martin C. Martin <mcm@cs.cmu.edu>.
1996-02-16 05:08:04 +00:00
Jim Meyering
2eabfeeea8 . 1996-02-16 03:30:58 +00:00
Jim Meyering
5715c04ceb . 1996-02-14 05:49:26 +00:00
Jim Meyering
dd05029135 (main): When failing because there were `too many arguments,' say so. 1996-02-14 05:48:48 +00:00
Jim Meyering
78362fb43a . 1996-02-13 05:37:09 +00:00
Jim Meyering
1723365c85 . 1996-02-13 05:31:19 +00:00
Jim Meyering
7e9524d7b9 . 1996-02-13 05:30:27 +00:00
Jim Meyering
c4b593538b Be careful to always return something. 1996-02-13 05:28:38 +00:00
Jim Meyering
0b2ebf9875 (print_entry): If possible, canonicalize the host hame.
From Miles Bader (miles@gnu.ai.mit.edu).
1996-02-13 05:27:16 +00:00
Jim Meyering
aa35ed104c . 1996-02-13 05:24:05 +00:00
Jim Meyering
737a7a7116 . 1996-02-13 05:23:35 +00:00
Jim Meyering
4634a5c628 . 1996-02-13 05:22:15 +00:00
Jim Meyering
c33725a845 (info_TEXINFOS): Renamed from TEXINFOS. 1996-02-13 05:21:44 +00:00
Jim Meyering
e70623f196 (CONFIG_HEADER): Don't define. Automake now does it. 1996-02-13 05:21:12 +00:00
Jim Meyering
862593b1f7 . 1996-02-13 05:17:50 +00:00
Jim Meyering
215318944a . 1996-02-13 03:24:52 +00:00
Jim Meyering
58e02de834 [.TRUE]: Undefine before defining.
[FALSE]: Undefine before defining.
From Derek Clegg (dclegg@next.com).
1996-02-13 03:12:52 +00:00
Jim Meyering
e02a4a825a . 1996-02-13 03:12:38 +00:00
Jim Meyering
73c74c0303 (canon_host): Cast returned he->h_name to char*. 1996-02-04 13:22:22 +00:00
Jim Meyering
2d882a7200 . 1996-02-04 12:47:33 +00:00
Jim Meyering
d2a3720ad0 . 1996-02-03 22:20:54 +00:00
Jim Meyering
e6777f1523 . 1996-02-03 03:24:22 +00:00
Jim Meyering
41d5fb8189 (main): Decalare local, BS. 1996-02-01 06:16:57 +00:00
Jim Meyering
3480c29030 . 1996-02-01 06:14:18 +00:00
Jim Meyering
a5c268a9f9 __P-protect dcls. 1996-02-01 06:13:54 +00:00
Jim Meyering
4f3121b654 . 1996-02-01 06:11:41 +00:00
Jim Meyering
73b2951ffe . 1996-02-01 06:10:10 +00:00
Jim Meyering
46505987ea (main): Accept new option, --rfc-822 (-R).
(show_date): Use RFC822-mandated strftime format.
From H. Peter Anvin (hpa@storm.net).
(usage): Add a line describing the new option.
1996-02-01 05:44:59 +00:00
Jim Meyering
bf58f8aea9 . 1996-02-01 05:44:38 +00:00
Jim Meyering
6c52fbcdfd (add_num_tz): New function.
(strftime): Handle new %z format.
From H. Peter Anvin (hpa@storm.net).
Don't use local, LENGTH, before it's defined.
1996-02-01 05:40:32 +00:00
Jim Meyering
e76eb59d84 (main): New options --human-readable (-h) and --megabytes (-m).
(human_readable_1k_blocks): New function.
(print_header): Honor new options.
(show_dev): Honor new options.
Add ifdef'd-out code to avoid printing lines for mount points that
match ^/auto/.* and ^/tmp_mnt.*.  Rather than hard-coding those
two prefixes, the code should allow the user to specify a regular
expression.  From Larry McVoy (lm@sgi.com).

(human_readable_1k_blocks): Likewise
(usage): Update usage message to reflect additions.
1996-02-01 05:30:14 +00:00
Jim Meyering
5b093c28e1 . 1996-02-01 05:29:26 +00:00
Jim Meyering
9d3b949aa6 . 1996-02-01 05:26:35 +00:00
Jim Meyering
a468d7579f (dump_remainder): Flush stdout when tailing-forever on multiple files.
From Carlos Canau <Carlos.Canau@relay.puug.pt>.
1996-02-01 05:25:54 +00:00
Jim Meyering
4eb32cb4f2 . 1996-02-01 05:22:08 +00:00
Jim Meyering
8f08533808 . 1996-02-01 04:22:48 +00:00
Jim Meyering
3b69e6514c Remove comma after last item in enum.
(human_readable): Fix off-by-one error that converted
1024*1024 to 1024K rather than 1G.  Describe the function.
1996-02-01 04:13:26 +00:00
Jim Meyering
9018ec3d41 (skip): Change type of parameter #5 from char* to unsigned char* to match
type of argument.
(copy): Cast first arg in memset call to char* to avoid warnings from
SunOS's acc.
(copy_simple): Likewise.
1996-02-01 03:50:06 +00:00
Jim Meyering
5d16193294 (getdate.c, posixtm.c): Add rules for building these. 1996-02-01 03:43:49 +00:00
Jim Meyering
61b305d30d (DIST_OTHER): Add perm.texi and getdate.texi. Remove mdate-sh. 1996-02-01 03:42:56 +00:00
Jim Meyering
efc9004234 . 1996-01-31 17:01:05 +00:00
Jim Meyering
ba733f2d38 . 1996-01-31 14:53:02 +00:00
Jim Meyering
34a122edc8 . 1996-01-30 01:27:32 +00:00
Jim Meyering
a5afd877aa . 1996-01-26 05:25:09 +00:00
Jim Meyering
1289479fce . 1996-01-25 12:00:18 +00:00
Jim Meyering
7bfb13dea7 Tweak usage. 1996-01-20 14:27:56 +00:00
Jim Meyering
744d31d57a (main): New options --human-readable (-h) and --megabytes (-m).
(human_readable): New function.
From Larry McVoy (lm@sgi.com).
1996-01-20 14:26:04 +00:00
Jim Meyering
a58305d61e . 1996-01-20 12:41:13 +00:00
Jim Meyering
3bd2561144 . 1996-01-20 12:37:23 +00:00
Jim Meyering
156a61c86d (usage): Copy backup/suffix stuff from ln.c.
(main): Handle 'S' in getopt switch.
1996-01-20 12:37:12 +00:00
Jim Meyering
5850877aea (BUILT_SOURCES): Set to posixtm.c getdate.c. 1996-01-20 12:35:06 +00:00
Jim Meyering
847dcc878b . 1996-01-20 12:33:59 +00:00
Jim Meyering
84791e75cc . 1996-01-20 12:22:38 +00:00
Jim Meyering
e30230223c Year is 6th field, not 7th. 1996-01-20 12:18:50 +00:00
Jim Meyering
884e63790c . 1996-01-20 12:11:48 +00:00
Jim Meyering
a0b8bf89d3 . 1996-01-19 17:39:42 +00:00
Jim Meyering
c3e64b1b2d (copy_files): Accept backup options just as cp, ln, and
mv do: --backup (-b).  From Marty Leisner <leisner@sdsp.mc.xerox.c>.
1996-01-19 17:39:06 +00:00
Jim Meyering
2131b2e9d5 Protoize. 1996-01-19 16:05:23 +00:00
Jim Meyering
6981af01ee . 1996-01-19 16:00:29 +00:00
Jim Meyering
863c253425 (argdecode): Declare parameter const. 1996-01-17 17:50:08 +00:00
Jim Meyering
08d800d44e (advance): Protoize function. 1996-01-17 17:46:12 +00:00
Jim Meyering
e23e3f656a Break some long lines.
Add const attribute to a few parameters.
1996-01-17 17:44:22 +00:00
Jim Meyering
4ad4b8aaec (integer_arg): Use xstrtol instead of open-coding this. 1996-01-17 17:41:00 +00:00
Jim Meyering
0f32a82524 (.su_SOURCES): Add xstrtol.c.
(HEADERS): Add xstrtol.h.
1996-01-17 17:38:27 +00:00
Jim Meyering
2a0d3143dd (visible): Change parameter type to unsigned int from unsigned char. 1996-01-17 17:20:41 +00:00
Jim Meyering
6e867c19c9 Protoize and __P-protect forward dcls. 1996-01-17 17:19:07 +00:00
Jim Meyering
c78152220a Indent cpp directives. 1996-01-14 04:31:59 +00:00
Jim Meyering
be2519d4dd . 1996-01-14 04:19:34 +00:00
Jim Meyering
9800c1597f Include config.h. 1996-01-14 04:18:48 +00:00
Jim Meyering
2bf12371d8 . 1996-01-08 06:15:59 +00:00
Jim Meyering
7243acff2a . 1996-01-08 06:15:20 +00:00
Jim Meyering
bfa30819b9 . 1996-01-08 04:54:29 +00:00
Jim Meyering
ac5e053d8f . 1996-01-08 04:53:30 +00:00
Jim Meyering
13751495a1 (print_element): Change type of argument from char
to int to avoid potential promotion problem.
1996-01-07 04:08:44 +00:00
Jim Meyering
1d2f218bff (print_esc_char): Change type of argument from char to int to avoid
potential promotion problem.
1996-01-07 04:06:41 +00:00
Jim Meyering
00b953713e Fix typo in __P use. 1996-01-07 04:04:48 +00:00
Jim Meyering
ed4a024430 . 1996-01-06 11:57:17 +00:00
Jim Meyering
53398947a1 Protoize and __P-protect forward dcls. 1996-01-06 11:44:05 +00:00
Jim Meyering
5e14cce7ae Define WHO and include new file, who-users.c. 1996-01-06 11:17:50 +00:00
Jim Meyering
27276e481d . 1996-01-06 11:16:08 +00:00
Jim Meyering
7949927db6 rename from who.c 1996-01-06 11:13:11 +00:00
Jim Meyering
634853cee6 Remove NGROUPS_MAX junk. It wasn't being used. 1996-01-06 06:10:08 +00:00
Jim Meyering
0f100b0d3f (putenv): Declare.
(universal_time): Remove.
(main): If -u is given, set TZ to "UTC0"; this causes date to use
UTC uniformly and fixes bugs in the handling of date -u +'%s %Z'.
(show_date): Just use localtime and a single format, since TZ will
be set properly if -u is given.  From Paul Eggert.
1996-01-06 06:07:23 +00:00
Jim Meyering
83adf65c37 Remove no-longer-used NGROUPS_MAX cpp macros.
(print_group_list) [HAVE_GETGROUPS]: Reorganize to use getgroups (0, NULL)
to compute number of groups at run time rather than relying on NGROUPS_MAX
at compile time.
(print_full_info) [HAVE_GETGROUPS]: Likewise.
Suggestion from Roland McGrath.
1996-01-06 06:04:09 +00:00
Jim Meyering
67b467223a . 1996-01-06 05:28:49 +00:00
Jim Meyering
2e6b75c735 . 1996-01-06 00:30:45 +00:00
Jim Meyering
0ec5eacc92 . 1996-01-05 04:56:53 +00:00
Jim Meyering
b024130dc2 . 1996-01-05 02:46:41 +00:00
Jim Meyering
aff66fa170 Include rx.h after limit.h to avoid warning about
redeclaration of RE_DUP_MAX in limit.h.  rx.h protects its
definition.  From Kaveh Ghazi.
1996-01-05 02:44:42 +00:00
Jim Meyering
92e8245d90 . 1996-01-05 02:37:28 +00:00
Jim Meyering
c300ac7a4d [SYNTAX]: Rename from SYNTAX_TABLE.
[SYNTAX_TABLE]: Remove extern dcl or re_syntax_table.
(RE_SEARCH_2_FN): Cast string1 and string2 to avoid pointer type
mismatch errors from e.g. SunOS's /bin/cc.
Reported by Kaveh Ghazi.
1996-01-05 02:35:39 +00:00
Jim Meyering
67b836ed72 . 1996-01-04 12:48:25 +00:00
Jim Meyering
388569f846 . 1996-01-04 05:35:34 +00:00
Jim Meyering
981d081027 (usage): Tweak wording in --help output. 1996-01-04 05:31:58 +00:00
Jim Meyering
6a7bd50a0b Use $year', not year' as expr arg. 1996-01-04 05:29:09 +00:00
Jim Meyering
f280d719f3 update from gettext 1996-01-04 05:24:48 +00:00
Jim Meyering
1d39399861 . 1996-01-03 18:20:16 +00:00
Jim Meyering
008d74220b . 1996-01-03 06:04:46 +00:00
Jim Meyering
0f0189167b Fix comments. 1996-01-03 05:55:26 +00:00
Jim Meyering
bf6bcd3c16 . 1996-01-03 05:51:15 +00:00
Jim Meyering
b439039b9b . 1996-01-03 05:49:22 +00:00
Jim Meyering
2cada8c970 . 1996-01-02 06:10:49 +00:00
Jim Meyering
360b2870d8 (keycompare): Rewrite cases handling -i and -if to fix bug whereby
non-ascii characters (supposed to be ignored with -i) were treated
as significant.  Reported by Carl Johnson <carlj@cjlinux.home.org>.
1996-01-02 06:10:39 +00:00
Jim Meyering
b669dbd1ad 14b: Just like 14a, but add -f. 1996-01-02 00:15:46 +00:00
Jim Meyering
b81692a8a9 Correct 14a per manual. 1996-01-01 23:55:02 +00:00
Jim Meyering
dfa0cede72 . 1996-01-01 22:33:52 +00:00
Jim Meyering
add1d7c11f . 1995-12-31 06:46:46 +00:00
Jim Meyering
221ef68cc3 . 1995-12-31 04:12:10 +00:00
Jim Meyering
a7190a7381 (extract_regexp) [!WITH_REGEX]: Initialize re_compiled.syntax_parens.
From Andreas Schwab.
1995-12-31 04:10:13 +00:00
Jim Meyering
f721ed2bf4 . 1995-12-26 05:50:19 +00:00
Jim Meyering
6dde9c58fe . 1995-12-23 18:19:26 +00:00
Jim Meyering
f1a5372cbc . 1995-12-23 17:39:21 +00:00
Jim Meyering
c22b040b21 (decode_switches): Make -o a synonym for -lG for compatibility
with most other versions of ls.  Reported by Karl Berry.
(usage): Update.
1995-12-23 17:38:08 +00:00
Jim Meyering
0c5abc43a0 . 1995-12-23 16:39:20 +00:00
Jim Meyering
d5f4d5f22e (usage): Align text in -n line. 1995-12-22 15:30:31 +00:00
Jim Meyering
2a5c6dea54 . 1995-12-22 06:51:26 +00:00
Jim Meyering
05d30f2715 (cleanup): New function -- broken out from quit.
(interrupt_handler): Rewrite to reset default signal handler,
call cleanup, then repost caught signal.
1995-12-22 06:49:10 +00:00
Jim Meyering
c8d085374c . 1995-12-22 06:39:47 +00:00
Jim Meyering
9ceb93e7ff . 1995-12-22 05:31:58 +00:00
Jim Meyering
b808e70940 Include argmatch.h. 1995-12-22 05:31:17 +00:00
Jim Meyering
654ad9e596 (main): Accept new option, --sparse={never,auto,always},
to control creation of sparse files.
(copy_reg): Set local, make_holes, from global flag_sparse.
Include argmatch.h.
1995-12-22 05:30:48 +00:00
Jim Meyering
8cff7ef2b9 (argmatch): Add const attribute to parameters.
(invalid_arg): Add const attribute to parameters.
1995-12-22 05:17:31 +00:00
Jim Meyering
137cf55755 . 1995-12-22 05:16:11 +00:00
Jim Meyering
ddc22e05ab . 1995-12-22 05:15:35 +00:00
Jim Meyering
42fcbf3950 (HEADERS): Add argmatch.h. 1995-12-21 23:06:40 +00:00
Jim Meyering
11f5ed65ba . 1995-12-21 23:05:56 +00:00
Jim Meyering
99cf57df5f . 1995-12-20 05:47:35 +00:00
Jim Meyering
b71a140977 . 1995-12-19 04:31:06 +00:00
Jim Meyering
e49897affc [SYMBOLIC_SPACE_STRING]: New macro.
(do_link): Use it instead of open-coded #ifdef.
For --verbose, say `create link DEST to SRC' instead of ambiguous
(or inconsistent with cp -v and mv -v) `SRC -> DEST.'
1995-12-19 04:30:32 +00:00
Jim Meyering
2ef6cb6073 . 1995-12-19 04:25:24 +00:00
Jim Meyering
4db03fe797 . 1995-12-19 03:46:25 +00:00
Jim Meyering
8506a6bc2a (noinst_LIBRARIES): Define this, not plain LIBRARIES. 1995-12-17 22:28:45 +00:00
Jim Meyering
8303c90f14 . 1995-12-15 15:40:40 +00:00
Jim Meyering
a530d04879 . 1995-12-15 15:38:09 +00:00
Jim Meyering
4a99368c87 new version from FSF 1995-12-15 15:36:02 +00:00
Jim Meyering
46faa9979f new version from FSF 1995-12-15 15:35:15 +00:00
Jim Meyering
c038102c6a Apply the usual REL_ALLOC patch. 1995-12-15 15:34:07 +00:00
Jim Meyering
23cfe44342 new, from FSF 1995-12-15 15:33:36 +00:00
Jim Meyering
b3d7a51157 Remove trailing white space. 1995-12-15 15:31:09 +00:00
Jim Meyering
23f91764bc Include config.h. 1995-12-15 15:18:43 +00:00
Jim Meyering
2ab1921d24 Update from latest. 1995-12-15 15:12:58 +00:00
Jim Meyering
1c2d713cab . 1995-12-15 04:52:36 +00:00
Jim Meyering
395224e372 . 1995-12-15 03:40:06 +00:00
Jim Meyering
43cdd09d2d (main): Use xstrtol instead of atoi. 1995-12-15 03:34:34 +00:00
Jim Meyering
de6c7a9b78 (nl): Change --first-page to --starting-line-number. 1995-12-15 03:25:59 +00:00
Jim Meyering
7d7530446c . 1995-12-15 03:20:50 +00:00
Jim Meyering
208fa17ad0 (main): Use xstrtol instead of atoi. 1995-12-15 03:20:40 +00:00
Jim Meyering
5a1b7d267a (main): Use xstrtol instead of atoi.
Rename misleading --first-page=N option to --starting-line-number=N.
(usage): Update.
1995-12-15 03:20:18 +00:00
Jim Meyering
1bcceb8ba4 (main): Use xstrtol instead of atoi.
(fold_file): Make a couple locals `int', not size_t, and cast
fwrite's arg3 to size_t.
1995-12-15 03:19:51 +00:00
Jim Meyering
e0bcf6c00d . 1995-12-09 04:06:38 +00:00
Jim Meyering
0a5f63aee2 . 1995-12-09 04:00:17 +00:00
Jim Meyering
2008517b36 . 1995-12-09 02:52:17 +00:00
Jim Meyering
517bef6ccd . 1995-12-08 22:44:18 +00:00
Jim Meyering
e2db29a312 . 1995-12-08 22:39:38 +00:00
Jim Meyering
a3fa97f5e3 . 1995-12-08 20:19:49 +00:00
Jim Meyering
7fc45bccbd . 1995-12-08 20:18:40 +00:00
Jim Meyering
7d3a280b7a Add copyright. 1995-12-08 04:50:48 +00:00
Jim Meyering
be60b8e319 . 1995-12-07 23:42:31 +00:00
Jim Meyering
4090d52520 . 1995-12-06 23:40:00 +00:00
Jim Meyering
1f88c647cd [!WITH_REGEX]: Include rx.h. 1995-12-06 23:39:26 +00:00
Jim Meyering
08b596b409 fix typos. From Karl Heuer. 1995-12-06 23:26:20 +00:00
Jim Meyering
e625640bd0 (main): Diagnose improper form of arguments to -k, then fail. 1995-12-05 23:50:43 +00:00
Jim Meyering
a6a2dbc63c (main): Diagnose improper form of arguments to -k, then fail.. 1995-12-05 23:50:18 +00:00
Jim Meyering
5c3c1931dd (rm): Work around SunOS 4 bug whereby lstat doesn't fail
when given a zero-length file name argument.  Reported by
Mark Calabretta <mcalabre@atnf.csiro.au>.
1995-12-05 23:39:06 +00:00
Jim Meyering
d75c1aaea1 . 1995-12-05 23:38:40 +00:00
Jim Meyering
f1a905664b . 1995-12-05 17:54:59 +00:00
Jim Meyering
5cf455d736 (numcompare): Properly handle all cases in which signs differ. From Karl Heuer. 1995-12-05 17:53:39 +00:00
Jim Meyering
8ef322d66f (bsd_sum_file): Remove misleading comment. From Karl Heuer. 1995-12-05 15:53:31 +00:00
Jim Meyering
1d5b09348e . 1995-12-04 16:29:54 +00:00
Jim Meyering
5782ca8976 Update to look like the one from textutils. 1995-12-03 04:36:25 +00:00
Jim Meyering
623ce837c7 make like the one in textutils 1995-12-02 04:29:17 +00:00
Jim Meyering
73f21f7813 . 1995-12-01 07:40:46 +00:00
Jim Meyering
a8377ab773 . 1995-12-01 07:38:16 +00:00
Jim Meyering
5106e930d1 Exercise bug re comparing `-' and integers. 1995-12-01 07:32:12 +00:00
Jim Meyering
74b4707ea6 treat `-' as if it were zero. Reported by Ross Alexander
<r.alexander@auckland.ac.nz>.
1995-12-01 07:03:47 +00:00
Jim Meyering
99b8fcfb0d . 1995-11-30 21:00:06 +00:00
Jim Meyering
5df13c9b0a . 1995-11-30 20:59:37 +00:00
Jim Meyering
5eeef11a3b standardizing... 1995-11-30 20:26:33 +00:00
Jim Meyering
cfbca54a71 . 1995-11-30 20:08:07 +00:00
Jim Meyering
f0f6a9c44e . 1995-11-30 20:06:49 +00:00
Jim Meyering
cc1a9180a7 . 1995-11-30 20:06:11 +00:00
Jim Meyering
155639bf0f Lots of new tests -- related to -k2,2 bug and non-functional -b and `b'. 1995-11-30 20:06:06 +00:00
Jim Meyering
c0f51577fd . 1995-11-30 19:42:58 +00:00
Jim Meyering
efac765819 . 1995-11-30 04:34:22 +00:00
Jim Meyering
1c7a2ac60f . 1995-11-30 04:34:06 +00:00
Jim Meyering
f4b094e098 . 1995-11-30 04:32:31 +00:00
Jim Meyering
e984b74461 . 1995-11-30 04:28:27 +00:00
Jim Meyering
c1e61448b3 . 1995-11-30 03:51:59 +00:00
Jim Meyering
2f077ef41f (limfield): Remove field_start junk.
Don't try to trim trailing blanks here -- it's not possible
because we don't know where the field begins.
Properly distinguish between cases where TAB character is specified
and when the default is used.
(trim_trailing_blanks): New function.
(findlines): Call it.
(keycompare): Likewise.
1995-11-29 22:51:04 +00:00
Jim Meyering
cfc48b6ee9 [_]: Define it. 1995-11-29 19:47:42 +00:00
Jim Meyering
073c4cb543 Mark all translatable strings using po-mode.el. 1995-11-29 19:24:52 +00:00
Jim Meyering
8bacb0720c Mark all translatable strings using po-mode.el. 1995-11-29 19:23:30 +00:00
Jim Meyering
da8c36f53f (begfield): Replace unnecessary loop with if-else.
(limfield): Fix bug that made field specs like -k1.5 return a
pointer into LINE beyond the first field.
Rewrite to properly ignore trailing blanks.
Replace unnecessary loop with if-else.
(main): Don't decrement T2 corresponding to `x' in field specs like -ku.v,w.x.
1995-11-28 20:07:17 +00:00
Jim Meyering
83cf5efca9 Tests for bug reported by Roger Peel" <R.Peel@ee.surrey.ac.uk> 1995-11-28 16:52:49 +00:00
Jim Meyering
4d9669b8d9 . 1995-11-27 14:25:39 +00:00
Jim Meyering
18573f3eb2 (usage): Clarify description of --no-dereferences. 1995-11-27 05:46:24 +00:00
Jim Meyering
57ec0f45c9 s/non-zero/nonzero/g 1995-11-27 05:34:31 +00:00
Jim Meyering
a7830ac93b . 1995-11-27 05:29:44 +00:00
Jim Meyering
488bd9911e . 1995-11-27 03:11:36 +00:00
Jim Meyering
7956c15081 s/non-zero/nonzero/g 1995-11-27 03:09:18 +00:00
Jim Meyering
0402200daf Clarify usage. From Karl Berry. 1995-11-26 22:09:43 +00:00
Jim Meyering
dc0708fa82 . 1995-11-26 21:51:42 +00:00
Jim Meyering
7b9ad5a22f [!UINT_MAX]: Define.
[!INT_MAX]: Define.
Include xstrtoul.h.
(string_to_number): Remove function.
(check_for_offset): Use xstrtoul instead of string_to_number.
(parse_repeat_count): Likewise.
(parse_patterns): Likewise.
(main): Likewise.
1995-11-26 21:49:53 +00:00
Jim Meyering
c4e9f56745 . 1995-11-24 05:29:28 +00:00
Jim Meyering
b69a467146 . 1995-11-23 05:17:50 +00:00
Jim Meyering
75cce0c815 . 1995-11-18 20:19:17 +00:00
Jim Meyering
546754d2e9 . 1995-11-18 18:17:42 +00:00
Jim Meyering
e8f8b7a82d Remove autodep junk. 1995-11-18 06:36:47 +00:00
Jim Meyering
c54a604289 Indent cpp directives. 1995-11-18 06:17:07 +00:00
Jim Meyering
f52e14c576 . 1995-11-17 03:41:20 +00:00
Jim Meyering
a0aef26c06 . 1995-11-17 03:29:26 +00:00
Jim Meyering
4d4a6210f7 Remove obsolete FIXME. 1995-11-16 07:39:44 +00:00
Jim Meyering
a5ad9a2579 . 1995-11-16 07:32:45 +00:00
Jim Meyering
79d6ddd36a Fix up description of md5sum --check. 1995-11-16 06:18:17 +00:00
Jim Meyering
18da62e303 . 1995-11-15 23:41:08 +00:00
Jim Meyering
77469b714b (*format_address): Tweak dcl. 1995-11-15 22:16:30 +00:00
Jim Meyering
1fbac54162 [__P]: Don't define it here. 1995-11-15 22:12:59 +00:00
Jim Meyering
cf14c509f3 Use __P. 1995-11-15 21:59:55 +00:00
Jim Meyering
02bde8d334 . 1995-11-15 21:59:20 +00:00
Jim Meyering
e99f534046 . 1995-11-15 21:58:58 +00:00
Jim Meyering
aeac9910cb . 1995-11-15 21:48:06 +00:00
Jim Meyering
f84513b43e (sort, -g): Document it.
(join, new `0' format): Likewise.
1995-11-15 21:47:44 +00:00
Jim Meyering
34fc818d7e Add support for sorting numbers in scientific notation.
Include xstrtod.h.
(struct keyfield): Add field: general_numeric.
(usage): Describe -g option.
(general_numcompare): New function.
(keycompare): Use new comparison function when general_numeric
flag is set.
(set_ordering): Honor `g' flag.
(main): Initialize and use new field.
From Marcus Daniels <marcus@sysc.pdx.edu>.
1995-11-15 21:42:47 +00:00
Jim Meyering
f1e1eb58be Break long lines. 1995-11-15 15:45:28 +00:00
Jim Meyering
3d6c17e94f Indent. 1995-11-15 15:04:51 +00:00
Jim Meyering
ef3e297950 . 1995-11-15 05:40:11 +00:00
Jim Meyering
5cf3719e7b (cleanup): Don't exit.
(cleanup_fatal): New function.  Call cleanup, then exit.
(sighandler): New function.
(cleanup_fatal): Renamed from cleanup.  Call cleanup, then exit.
Update callers.
(tac_stdin): Set up sighandler as signal handler, not `cleanup'.
1995-11-15 05:39:58 +00:00
Jim Meyering
b36e366ef4 (cleanup): Don't exit.
(cleanup_fatal): New functoin.  Call cleanup, then exit.
(interrupt_handler): Rewrite to reset default signal handler
then repost caught signal.
(xmalloc, xrealloc, read_input, write_to_file, handle_line_error,
process_line_count, process_regexp, create_output_file, close_output_file):
Call cleanup_fatal, not cleanup.
Add const attribute to lots of parameters.
1995-11-15 05:32:28 +00:00
Jim Meyering
c2b86aabe0 . 1995-11-11 22:09:47 +00:00
Jim Meyering
849a1c46cf (skip): Cast fseek's offset argument to `long'.
Erik Bennett <bennett@cvo.oneworld.com> reported that this is
necessary on BSDI systems.  And if offset doesn't fit in a long,
then try using lseek instead.
1995-11-11 22:08:16 +00:00
Jim Meyering
7c863aef95 . 1995-11-11 21:46:41 +00:00
Jim Meyering
cc7705fe6f (xmalloc): Declare static.
(xrealloc): Likewise.
1995-11-11 21:46:32 +00:00
Jim Meyering
e97b60d16a . 1995-11-11 14:36:06 +00:00
Jim Meyering
1b1382a3a9 (cleanup): Add signal number parameter.
Update callers.
1995-11-11 14:35:27 +00:00
Jim Meyering
ff0e048521 . 1995-11-11 14:22:33 +00:00
Jim Meyering
0af7afd19f . 1995-11-11 14:21:24 +00:00
Jim Meyering
24aec7f87f (main): Don't die when dev/ino of input and output are
the same and the file descriptors correspond to stdin and stdout.
This is necessary on at least Digital UNIX (aka OSF1) 3.2C.
Otherwise, running `cat << X > $$' would fail with `cat: -: input
file is output file'.  From Jarkko Hietaniemi <jhi@epsilon.hut.fi>.
1995-11-11 14:21:15 +00:00
Jim Meyering
acb7c4ee48 Add __P in dcl of format_address function. 1995-11-11 03:28:38 +00:00
Jim Meyering
5796c221a1 (usage): Clarify meaning of --spaces. 1995-11-11 03:27:15 +00:00
Jim Meyering
dde28b7ffe Don't include error.h here. 1995-11-10 15:20:00 +00:00
Jim Meyering
dfa21e5966 . 1995-11-10 15:15:38 +00:00
Jim Meyering
8014db4d68 Protect prototyped forward dcls with __P. 1995-11-10 14:56:21 +00:00
Jim Meyering
c6394074a8 (parse_ls_color): Use strcpy to initialize 3-character array.
Automatic aggregate initialization isn't portable.
1995-11-10 14:54:08 +00:00
Jim Meyering
83ce0dcba6 Remove fwd dcls. 1995-11-10 14:48:57 +00:00
Jim Meyering
9a69ea769a Don't protoize dcl of basename. 1995-11-10 14:48:03 +00:00
Jim Meyering
3044600151 Don't protoize dcl of basename. 1995-11-10 14:47:09 +00:00
Jim Meyering
da6d91f64b Don't protoize dcls of getpwnam and getgrnam. 1995-11-10 14:45:31 +00:00
Jim Meyering
c6ca8a1528 Remove bogus __P junk on xstat dcl. 1995-11-10 14:44:37 +00:00
Jim Meyering
8108bc26d6 Don't protoize fwd dcl of dirname. 1995-11-10 14:43:31 +00:00
Jim Meyering
908b4d6cb9 . 1995-11-10 14:42:39 +00:00
Jim Meyering
0683df4bf8 Protoize and add const attribute to parameters. 1995-11-10 14:42:08 +00:00
Jim Meyering
05907fc584 Include error.h. 1995-11-10 14:41:20 +00:00
Jim Meyering
ca56751421 Remove prototypes for stat, lstat. 1995-11-10 14:22:07 +00:00
Jim Meyering
dd084ce340 [__P]: Define it. 1995-11-10 12:56:15 +00:00
Jim Meyering
92278a462b . 1995-11-10 05:28:05 +00:00
Jim Meyering
ca56be1e3e . 1995-11-10 05:27:29 +00:00
Jim Meyering
09f8e7fb03 (main): Move to the end.
Remove fwd dcls.
1995-11-10 03:16:16 +00:00
Jim Meyering
c2e9e7a31b (main): Move to the end.
Remove fwd dcls.
1995-11-10 03:14:41 +00:00
Jim Meyering
49f397e6e7 Rearrange functions to obviate forward dcls.
Remove forward dcls.
1995-11-09 23:52:40 +00:00
Jim Meyering
6161f25abc (main): Move to the end.
Remove fwd dcls.
1995-11-09 23:49:53 +00:00
Jim Meyering
0898b54377 (main): Move to the end.
Remove fwd dcls.
1995-11-09 23:49:02 +00:00
Jim Meyering
6f1c4b7a75 Protect prototypes with __P. 1995-11-09 23:47:52 +00:00
Jim Meyering
b7b00aad08 Protect prototypes with __P. 1995-11-09 23:41:10 +00:00
Jim Meyering
ec2a94a410 (main): Move to the end.
Remove most fwd dcls.
1995-11-09 23:31:16 +00:00
Jim Meyering
4796ddfe36 (main): Move to the end.
Remove most fwd dcls.
1995-11-09 23:27:55 +00:00
Jim Meyering
31856b16c3 indent. 1995-11-09 23:27:32 +00:00
Jim Meyering
6732422b97 (main): Move to the end.
Remove most fwd dcls.
1995-11-09 23:26:17 +00:00
Jim Meyering
2b3ce6fab9 Move main to the end.
Remove fwd dcls.
1995-11-09 23:16:13 +00:00
Jim Meyering
b951477c80 (translate_charset): Make parameter `const'. 1995-11-09 23:02:27 +00:00
Jim Meyering
0bf332a016 (struct pathstack): Move dcl to precede prototypes. 1995-11-09 23:00:32 +00:00
Jim Meyering
3e12088cf0 (enum filetype): Move dcl to precede prototypes.
(struct fileinfo): Likewise.
Add const attribute to some parameters.
1995-11-09 23:00:14 +00:00
Jim Meyering
c0d94c89ec Protoize. 1995-11-09 17:02:23 +00:00
Jim Meyering
dd3a088973 . 1995-11-08 05:55:55 +00:00
Jim Meyering
5c15113c49 . 1995-11-08 05:54:16 +00:00
Jim Meyering
553eb65acd (usage): Clarify descriptions of ignpar and ignbrk.
From Theodore Ts'o and Ulrich Windl.
1995-11-08 05:54:07 +00:00
Jim Meyering
0c43179cf9 Remove trailing white space. 1995-11-08 05:51:11 +00:00
Jim Meyering
b031f89b29 Clarify descriptions of ignpar and ignbrk.
From Theodore Ts'o and Ulrich Windl.
1995-11-08 05:50:51 +00:00
Jim Meyering
b7df779b8b New option: --verbose.
(main): Recognize it.
(usage): Document it.
From Marty Leisner <leisner@sdsp.mc.xerox.com>.
1995-11-07 04:56:08 +00:00
Jim Meyering
96ed803f48 . 1995-11-07 04:55:16 +00:00
Jim Meyering
fd798dd6fe From FSF. 1995-11-06 17:06:24 +00:00
Jim Meyering
dd8b68966f . 1995-11-06 16:24:07 +00:00
Jim Meyering
72ce8c67c5 (usage): Remove last sentence. It is redundant. 1995-11-06 14:01:46 +00:00
Jim Meyering
22132a47aa [__P]: Define. Use it in prototyped forward decls. 1995-11-06 05:06:25 +00:00
Jim Meyering
0705aa7388 (store_columns): Remove spurious 2nd argument in call to read_line. 1995-11-06 05:01:16 +00:00
Jim Meyering
762769cf3b Protoize. 1995-11-06 04:58:56 +00:00
Jim Meyering
82eae6c9b5 (join): Protoize. Somehow, protoize missed this one. 1995-11-05 16:58:15 +00:00
Jim Meyering
86f04e3bb3 . 1995-11-05 13:16:57 +00:00
Jim Meyering
ce5f4177bc Protect prototypes with __P. 1995-11-05 13:16:24 +00:00
Jim Meyering
48f3bca87e Move prototypes after struct declarations.
Remove prototypes for xmalloc, xrealloc.
(new_control_record): Cast arg 1 to realloc.
1995-11-05 13:12:54 +00:00
Jim Meyering
adf0ec7008 Protoize. 1995-11-05 13:02:44 +00:00
Jim Meyering
5b4dde5a7b [__P]: Test PROTOTYPES, not __STDC__.
Protoize.
1995-11-05 12:59:52 +00:00
Jim Meyering
2224409994 (close_output_file): Set output_stream to NULL so we don't recurse
endlessly between this function and cleanup.
1995-11-05 05:51:53 +00:00
Jim Meyering
30d11429a9 (unquote): Add casts to avoid signed char* from/to char* warnings. 1995-11-05 05:48:57 +00:00
Jim Meyering
c4176dd559 . 1995-11-03 20:03:44 +00:00
Jim Meyering
47d5042d1e . 1995-11-03 20:03:18 +00:00
Jim Meyering
6df632b672 New version from glibc. 1995-11-03 20:02:00 +00:00
Jim Meyering
6875b205d6 (remove_file, remove_dir): Use euidaccess instead of euidaccess_stat.Likewise. 1995-11-03 20:01:13 +00:00
Jim Meyering
47306242ec (do_move): Use euidaccess instead of euidaccess_stat.Likewise. 1995-11-03 20:00:24 +00:00
Jim Meyering
83780d95f0 (copy): Use euidaccess instead of euidaccess_stat. 1995-11-03 19:59:44 +00:00
Jim Meyering
5b804afa6a New version from glibc. 1995-11-03 19:56:08 +00:00
Jim Meyering
83b9d5e9ef Add `const' attribute to some parameters. 1995-11-02 17:11:51 +00:00
Jim Meyering
a2b0b9846d . 1995-11-02 17:11:17 +00:00
Jim Meyering
a0ad16498b . 1995-11-02 17:11:04 +00:00
Jim Meyering
aa084c8407 Protoize. 1995-11-02 17:08:24 +00:00
Jim Meyering
ac821ab1ef Reorder functions to obviate forward dcls.
Remove forward dcls.
1995-11-02 17:06:52 +00:00
Jim Meyering
6e146d4216 (isdigits, convint): Remove these.
(main): Use xstrtol instead.
1995-10-31 12:52:29 +00:00
Jim Meyering
e4a96fff58 . 1995-10-31 12:52:14 +00:00
Jim Meyering
aa6cde5ca1 Add `const' attribute to some parameters. 1995-10-31 12:39:18 +00:00
Jim Meyering
05a5e42609 protoize. 1995-10-31 12:36:43 +00:00
Jim Meyering
11a013bf87 Reorder functions to obviate forward dcls.
Remove forward dcls.
1995-10-31 12:34:48 +00:00
Jim Meyering
de4de17bc5 (usage, next_line_num, main): Protoize. 1995-10-31 02:22:23 +00:00
Jim Meyering
b0302bb3a6 Add `const' attribute to some parameters. 1995-10-31 02:21:37 +00:00
Jim Meyering
334f8dcbb7 Add `const' attribute to some parameters. 1995-10-31 02:21:13 +00:00
Jim Meyering
47eaf4a1e8 Protoize. 1995-10-30 21:01:35 +00:00
Jim Meyering
1e30b2f8c4 Reorder functions to obviate forward dcls.
Remove forward dcls.
1995-10-30 21:00:36 +00:00
Jim Meyering
84df8be864 (eaccess_stat): Make static. 1995-10-30 18:00:05 +00:00
Jim Meyering
f05befc26c (copy): Update one of the calls to eaccess_stat to use 3 arguments. Ugh! 1995-10-30 17:53:48 +00:00
Jim Meyering
96e22ecc78 . 1995-10-29 20:44:54 +00:00
Jim Meyering
9eb195d6a5 . 1995-10-29 20:44:14 +00:00
Jim Meyering
40f0f4d2e8 (xwrite): Give output buffer parameter const attribute.
(output): Likewise for both parameters.
(tac): Likewise for file name parameter.
(tac_file): Likewise.
1995-10-29 20:38:01 +00:00
Jim Meyering
4fa07774d6 protoize. 1995-10-29 20:35:11 +00:00
Jim Meyering
7567c84e76 Reorder functions to obviate forward dcls.
Remove forward dcls.
1995-10-29 20:33:04 +00:00
Jim Meyering
a87c771012 (bsd_sum_file): Give file name parameter const attribute.
(sysv_sum_file): Likewise.
1995-10-29 20:24:53 +00:00
Jim Meyering
a2535fc95f Protoize. 1995-10-29 20:20:08 +00:00
Jim Meyering
d2aaf842b4 (main): Move function body to end of file.
Remove forward dcls.
1995-10-29 20:19:26 +00:00
Jim Meyering
13e93efe91 (nl_file): Give parameter const attribute.
Protoize.
1995-10-29 20:15:54 +00:00
Jim Meyering
af1033c63c Reorder functions to obviate forward dcls.
Remove forward dcls.
1995-10-29 20:12:32 +00:00
Jim Meyering
768f92072f (main): Move function body to end of file.
Remove forward dcls and protoize.
1995-10-29 20:05:29 +00:00
Jim Meyering
8b92864e1d Rename --file to --reference.
Leave --file as an alias, for now.  It will be removed later.
(usage): Update, but don't mention --file.
1995-10-29 19:29:19 +00:00
Jim Meyering
d97d668b69 . 1995-10-29 19:28:59 +00:00
Jim Meyering
5d1c0a2af5 . 1995-10-29 19:21:08 +00:00
Jim Meyering
b1c9ce6621 [TEST_STANDALONE]: Define. 1995-10-29 19:20:36 +00:00
Jim Meyering
aec547d764 . 1995-10-29 19:20:12 +00:00
Jim Meyering
185c59d3bd (mostlyclean): Remove *.info. 1995-10-29 14:26:48 +00:00
Jim Meyering
f1c5cfd5f2 (distclean): Remove .deps. 1995-10-29 14:23:11 +00:00
Jim Meyering
c848009e29 . 1995-10-29 14:22:15 +00:00
Jim Meyering
a0d766c204 . 1995-10-29 14:20:13 +00:00
Jim Meyering
c1f248d670 (INCLUDE, COMPILE): New variables.
(.c.o): Rewrite to be more like src/Makefile.in.
Add line that (--with-autodeps) will include mkdep-Makefile.
1995-10-29 12:14:37 +00:00
Jim Meyering
9b1d63b4a3 . 1995-10-28 21:07:18 +00:00
Jim Meyering
c7262bbe86 *** empty log message *** 1995-10-28 21:04:08 +00:00
Jim Meyering
008028896b . 1995-10-28 21:02:57 +00:00
Jim Meyering
c5716550a6 (md5_check): Use the same message format when the single file has a
read error or checksum mismatch as when there are more.
Write diagnostic to stderr, not stdout.
1995-10-28 21:01:01 +00:00
Jim Meyering
b43f5fb25b . 1995-10-28 05:55:34 +00:00
Jim Meyering
013277d331 New option --reference=FILE (-r FILE) analogous to the
like-named touch option.
(main): Recognize it and give diagnostic for misuse.
(usage): Describe briefly.
From Franc,ois Pinard.

(batch_convert): Close input stream also when it's not stdin.
(main): Reorganize to do option-consistency checks before all else.
1995-10-28 05:52:24 +00:00
Jim Meyering
09eedba01f . 1995-10-28 05:51:44 +00:00
Jim Meyering
ca59b76b50 (batch_convert): Close input stream also when it's not stdin. 1995-10-27 15:12:31 +00:00
Jim Meyering
b9485b8d52 (main): Use xfopen, not xtmpopen to open final output file. 1995-10-26 13:20:25 +00:00
Jim Meyering
66b9285a6f (xtmpfopen): New function -- for opening temp files.
Use it instead of xfopen.
1995-10-26 13:19:10 +00:00
Jim Meyering
470e773e76 . 1995-10-26 05:14:53 +00:00
Jim Meyering
039942bfc1 (xfopen): Rewrite using open/fdopen in order to set
proper permissions on temporary files.  Reported by Erik Corry
(erik@kroete2.freinet.de).
1995-10-26 05:14:41 +00:00
Jim Meyering
a94e341d85 . 1995-10-24 04:24:06 +00:00
Jim Meyering
db98ca11cf . 1995-10-24 04:17:33 +00:00
Jim Meyering
22a5274de9 . 1995-10-21 12:52:05 +00:00
Jim Meyering
2ee6cf8ea0 . 1995-10-21 12:50:56 +00:00
Jim Meyering
baf81e4974 . 1995-10-20 04:29:00 +00:00
Jim Meyering
bda4a5e5b7 (BEGIN_STATE): Use INT_MAX - 1 so as not to interfere with large repeat counts.
(struct E_string): New struct.

(find_closing_delim): Take E_string arg rather than char* and length.
(find_bracketed_repeat): Likewise.
(star_digits_closebracket): New function.

(append_char_class): No longer give diagnostic.
(append_equiv_class): No longer give diagnostic.
(build_spec_list): Give them here instead, allowing things like [:*][:upper:]
that got errors before.
Take E_string arg rather than char*.
Convert switch stmts into if-then so as to use ES_MATCH.
1995-10-20 04:26:56 +00:00
Jim Meyering
0598102472 . 1995-10-19 22:40:10 +00:00
Jim Meyering
4aba8a55f2 . 1995-10-19 22:39:16 +00:00
Jim Meyering
6f6a35a9a1 Indent cpp directives. 1995-10-19 22:38:39 +00:00
Jim Meyering
d691ea7ebc (build_spec_list): Propagate interface change.
(parse_str): Likewise.
1995-10-19 15:42:45 +00:00
Jim Meyering
ca63ca90ab (struct E_string): Define.
(unquote): Convert string to E_string instead of overwriting input.
Backslash-escaped non-special characters are marked as quoted in E_string.
(build_spec_list): Convert outer switch stmt to an if-stmt.
(parse_str): Update sole caller of unquote.
1995-10-19 15:33:33 +00:00
Jim Meyering
43dd57eba9 New version from FSF. 1995-10-19 14:21:35 +00:00
Jim Meyering
6dd358e12d Break lines longer than 79-80 chars. 1995-10-19 13:29:34 +00:00
Jim Meyering
c73aa6b629 . 1995-10-19 04:10:45 +00:00
Jim Meyering
63b348b3a9 Use HAVE_SYS_WAIT_H, not _POSIX_VERSION in conditional
inclusion of sys/wait.h.
[endgrent]: Test !HAVE_ENDGRENT rather than _POSIX_SOURCE.
[endpwent]: Test !HAVE_ENDPWENT rather than _POSIX_SOURCE.
1995-10-18 22:05:29 +00:00
Jim Meyering
6181f175e3 Use HAVE_SYS_IOCTL_H, rather than !_POSIX_SOURCE || _AIX. 1995-10-18 22:05:06 +00:00
Jim Meyering
5a52e61271 (duplicate_entry): Always return 0 if !D_INO_IN_DIRENT, rather than
if _POSIX_SOURCE
1995-10-18 17:02:07 +00:00
Jim Meyering
e74c290ac7 . 1995-10-18 16:33:52 +00:00
Jim Meyering
5ea57c875d . 1995-10-18 16:28:14 +00:00
Jim Meyering
492b177ca5 (main): Fail if the same file system type was both selected and excluded. 1995-10-18 16:11:58 +00:00
Jim Meyering
daa976fff6 [endgrent]: Test !HAVE_ENDGRENT rather than _POSIX_SOURCE. 1995-10-18 16:08:13 +00:00
Jim Meyering
871d176f15 [endpwent]: Test !HAVE_ENDPWENT rather than _POSIX_SOURCE.
[endgrent]: Remove unused definition.
1995-10-18 16:07:44 +00:00
Jim Meyering
fc2e23b1ad [HAVE_ENDGRENT]: Define away endgrent.
[HAVE_ENDPWENT]: Define away endpwent.
1995-10-18 15:59:12 +00:00
Jim Meyering
1cde2ceb5c Use _POSIX_VERSION, not _POSIX_SOURCE. 1995-10-18 15:57:50 +00:00
Jim Meyering
539457f1ae Merge latest change from FSF. 1995-10-18 14:31:14 +00:00
Jim Meyering
b6ff24fb7f Get latest from FSF. 1995-10-18 14:29:16 +00:00
Jim Meyering
da20dc044a . 1995-10-18 03:48:29 +00:00
Jim Meyering
a42c7fe2d1 Prootize. 1995-10-18 03:45:44 +00:00
Jim Meyering
b792f7aa0e Add `const' attribute to dcls of lots of formals. 1995-10-17 14:01:00 +00:00
Jim Meyering
9242af95a3 Protoize. 1995-10-17 13:49:32 +00:00
Jim Meyering
9583179c1b Protoize. 1995-10-17 13:47:48 +00:00
Jim Meyering
d9dee002e6 Reorder functions to obviate forward dcls. Remove forward dcls. 1995-10-17 13:43:00 +00:00
Jim Meyering
434b809272 Reorder functions to obviate forward dcls. Remove forward dcls. 1995-10-17 13:39:44 +00:00
Jim Meyering
4feb3b1e06 Protoize. Reorder functions to obviate forward dcls. Remove forward dcls. 1995-10-17 13:35:26 +00:00
Jim Meyering
14390d1fed Protoize. Reorder functions to obviate forward dcls.
Remove forward dcls.
1995-10-17 13:13:19 +00:00
Jim Meyering
8831ffbec4 Protoize.
Reorder functions to obviate forward dcls.
Remove forward dcls.
1995-10-16 21:30:25 +00:00
Jim Meyering
45d4def5e4 Move struct dcls to precede dcls of file-scope variables.
(monthtab, keyhead): Separate variable dcls from type dcls.
1995-10-16 14:45:09 +00:00
Jim Meyering
b9c1393e5f (usage): Move function definition to precede uses and
remove remove forward dcl.
Protoize and add `const' attribute to dcls of lots of formals.
1995-10-16 14:38:11 +00:00
Jim Meyering
c5bf4b6c9c . 1995-10-14 01:39:01 +00:00
Jim Meyering
3ac64eda17 (prjoin): Handle case in which file spec is 0.
(add_field): Update assertions.
(decode_field_spec): For S == "0", set file spec to zero and don't modify
*FIELD_INDEX.  Otherwise, *FIELD_INDEX gets the zero-based index.
1995-10-13 17:22:58 +00:00
Jim Meyering
148f37c34e Add tests to exercize -o 0. 1995-10-13 17:16:48 +00:00
Jim Meyering
9845d179b3 (prjoin): Rewrite loop that iterates over field specs. 1995-10-13 13:16:34 +00:00
Jim Meyering
11b87d29cc (add_field_list): Allow SPACE and TAB as well as `,' as list item separators. 1995-10-12 21:42:52 +00:00
Jim Meyering
bc7210e563 Remove bogus FIXME. 1995-10-12 04:08:35 +00:00
Jim Meyering
e1ab53f969 . 1995-10-09 13:59:55 +00:00
Jim Meyering
790196a645 . 1995-10-09 13:59:25 +00:00
Jim Meyering
b5c8c81d4d Indent cpp directives to reflect nesting. 1995-10-09 03:48:08 +00:00
Jim Meyering
91a709b210 Modified from glibc copy. 1995-10-09 03:46:41 +00:00
Jim Meyering
5e25ee19e4 (SOURCES): Add strpbrk.c..
Remove bcopy.c.
1995-10-09 03:42:21 +00:00
Jim Meyering
70390f60ec . 1995-10-09 03:42:11 +00:00
Jim Meyering
c22889019c . 1995-10-08 04:02:09 +00:00
Jim Meyering
06ea91f2f3 (main): Close input files. 1995-10-08 04:02:00 +00:00
Jim Meyering
3c7699600f Add alloca junk. 1995-10-08 03:38:09 +00:00
Jim Meyering
c8c90bb532 . 1995-10-08 03:30:22 +00:00
Jim Meyering
6f63d53e1b (add_field): No longer return a value.
(decode_field_spec): New function.
(add_field_list): Rewrite to be more strict about what is accepted.
Before, `,1.2' was accepted as valid.
(main): Use xstrtol instead atoi.
Combine nearly identical -a and -v cases.
1995-10-08 03:28:21 +00:00
Jim Meyering
cd1dbbcfc1 . 1995-10-06 19:23:31 +00:00
Jim Meyering
4bbadbb14a . 1995-10-06 02:55:44 +00:00
Jim Meyering
cc61df7131 Include limits.h.
[!INT_MAX]: Define it.
1995-10-06 02:55:14 +00:00
Jim Meyering
965c0bf39d [!HAVE_UTIME_H]: Don't declare struct utimbuf here.
[!HAVE_STRUCT_UTIMBUF]: Declare struct utimbuf here instead.
1995-10-06 02:53:42 +00:00
Jim Meyering
6fc3c211ec . 1995-10-06 02:51:04 +00:00
Jim Meyering
c25dcdd843 (read_filesystem_list): Cast -1 to dev_t before assignment. 1995-10-05 14:14:45 +00:00
Jim Meyering
e387fd1471 (show_point): Cast -2 to dev_t before assignment. 1995-10-05 14:12:29 +00:00
Jim Meyering
1c7bc6028a protoize 1995-10-04 21:21:23 +00:00
Jim Meyering
74f061de82 Remove forward dcl of usage. 1995-10-04 21:20:40 +00:00
Jim Meyering
47b91b8948 (usage): Move to precede all other functions. 1995-10-04 21:19:28 +00:00
Jim Meyering
2d73c959cc (main): Report `too few/many non-option arguments' then print --help
output rather than just the latter.
Properly interpret obsolescent usage like `join -o 2.1 2.1 2.2'.
(usage): Describe POSIX -1, -2 options and deprecate -j* ones
1995-10-04 21:17:43 +00:00
Jim Meyering
9a17340b10 . 1995-10-04 03:46:43 +00:00
Jim Meyering
a9de4d485a Test SA_INTERRUPT, not _POSIX_VERSION,
to determine whether `sigaction' functions are available.
Reported by Paul Nevai <nevai@ops.mps.ohio-state.edu>.
Fix suggested by Karl Berry.
1995-10-04 03:46:35 +00:00
Jim Meyering
111cb717e8 (set_fields): Use memset (not open coded loop) to initialize array. 1995-10-03 20:28:44 +00:00
Jim Meyering
6a45f61547 Convert a lot of int' types to unsigned int' to avoid warnings from
`gcc -Wall' about comparing signed and unsigned types.
1995-10-03 20:21:32 +00:00
Jim Meyering
026d10d369 (main): Declare counter, N_STRINGS, to be an integral type, not `char'. 1995-10-03 20:18:39 +00:00
Jim Meyering
d832bf77eb Correct typos, mostly from Jens Schweikhardt. 1995-10-03 19:05:47 +00:00
Jim Meyering
de97a7099c .c 1995-10-01 22:50:25 +00:00
Jim Meyering
1d15980fb6 Remove trailing whitespace. 1995-10-01 22:49:07 +00:00
Jim Meyering
b3303ba072 Declare stat, xstat. 1995-10-01 22:40:11 +00:00
Jim Meyering
eddb25aa26 Declare stat, xstat. 1995-10-01 20:17:25 +00:00
Jim Meyering
40c6966137 (SOURCES): Add strtoul. 1995-10-01 19:02:29 +00:00
Jim Meyering
4de6eab547 (get_fs_usage) [STATFS_TRUNCATES_BLOCK_COUNTS]: Copy untruncated block
counts from f_spare array into proper members of struct statfs.
From Eirik Fuller (eirik@netapp.com);
1995-10-01 18:23:29 +00:00
Jim Meyering
caa2df2274 . 1995-09-29 04:50:31 +00:00
Jim Meyering
4c8c0b69ba . 1995-09-29 04:49:08 +00:00
Jim Meyering
527d04d44b (dired_dump_obstack): Don't generate any output if the obstack is empty.
(main): Always initialize and dump subdired_obstack, not just if -R.
`ls -lDR dir dir2' was using uninitialized subdired_obstack.
Reported by Samuli K{rkk{inen <hskarkka@snakemail.hut.fi>.
1995-09-29 04:09:22 +00:00
Jim Meyering
9a12d05216 (decode_one_format): Remove spurious semicolon. 1995-09-27 15:58:18 +00:00
Jim Meyering
77c46a6b42 . 1995-09-27 04:06:28 +00:00
Jim Meyering
744393f0f4 (show_point): Ignore mtab entries with either
nonexistent mount points or with inconsistent device number.
From Eirik Fuller <eirik@synopsys.com>.
1995-09-26 04:18:55 +00:00
Jim Meyering
6f200d7982 . 1995-09-25 04:14:36 +00:00
Jim Meyering
12e85d31e2 Protoize. 1995-09-24 13:36:13 +00:00
Jim Meyering
17821cc15e [REL_ALLOC]: #ifdef-out dcls of unused variables. 1995-09-23 20:55:02 +00:00
Jim Meyering
0bcd6e68a9 . 1995-09-23 20:46:22 +00:00
Jim Meyering
528390fa58 (print_kth): Change order of args in compare, and reverse sense of comparison
(Hence, no semantic change).
1995-09-23 20:42:52 +00:00
Jim Meyering
a719a87508 Merge in changes for ConvexOS 11.0. 1995-09-23 20:28:39 +00:00
Jim Meyering
a1fa4eff25 New version from FSF. 1995-09-23 20:28:10 +00:00
Jim Meyering
f344b7fab6 (md5_check): Distinguish between open/read failure and checksum mismatch. 1995-09-23 20:22:05 +00:00
Jim Meyering
eca98f76ac . 1995-09-23 20:21:22 +00:00
Jim Meyering
f30618bac7 . 1995-09-23 20:09:52 +00:00
Jim Meyering
dc4a18b537 . 1995-09-23 19:56:32 +00:00
Jim Meyering
9801e9cde1 Update to reflect changes in md5sum.c.
Add FIXME with Karl's comm suggestion.
1995-09-21 18:17:14 +00:00
Jim Meyering
1b16c152bd (main): Reverse order of check' and compute sums' blocks in if-else
chain to make it a little more readable.
1995-09-20 12:47:37 +00:00
Jim Meyering
3ed71a2fdd . 1995-09-19 14:30:59 +00:00
Jim Meyering
0e15d57a89 Rewrite confusing comment. 1995-09-19 12:59:49 +00:00
Jim Meyering
c253d247ca (checkfp): Rearrange loop to avoid duplicate test.
Move a couple dcls from function scope into inner block.
1995-09-19 12:50:34 +00:00
Jim Meyering
656fac3d80 . 1995-09-19 12:48:46 +00:00
Jim Meyering
dde2c138e9 Protoize. 1995-09-18 12:44:47 +00:00
Jim Meyering
7823351d6b (main, usage): Remove -h, -s, -v short options.
Rename --verbose to --warn, --quiet to --status.
(main): Handle --help and --version using parse_long_options.
(md5_check): Check ferror.
1995-09-18 12:36:12 +00:00
Jim Meyering
b23b6bbcf7 (tempname): Replace `16' with a more readable expansion.
Make sure that SEQ never exceeds 99999.
1995-09-14 13:31:52 +00:00
Jim Meyering
800e219a2d (sort): Rename local: ntemp -> n_temp_files, to avoid confusion
with another local, ntmp.
1995-09-14 13:09:27 +00:00
Jim Meyering
ecf0d31b72 Fix typo in comment. 1995-09-13 13:15:35 +00:00
Jim Meyering
c3f476d467 . 1995-08-11 06:26:39 +00:00
Jim Meyering
7f3e86b27b . 1995-08-11 06:26:12 +00:00
Jim Meyering
b0453a43c0 (main) [handling --string option]: Don't output nonstandard `b' binary flag. 1995-08-10 21:11:24 +00:00
790 changed files with 123481 additions and 29268 deletions

226
ABOUT-NLS Normal file
View File

@@ -0,0 +1,226 @@
Notes on the Free Translation Project
*************************************
Free software is going international! The Free Translation Project
is a way to get maintainers of free software, translators, and users all
together, so that will gradually become able to speak many languages.
A few packages already provide translations for their messages.
If you found this `ABOUT-NLS' file inside a distribution, you may
assume that the distributed package does use GNU `gettext' internally,
itself available at your nearest GNU archive site. But you do *not*
need to install GNU `gettext' prior to configuring, installing or using
this package with messages translated.
Installers will find here some useful hints. These notes also
explain how users should proceed for getting the programs to use the
available translations. They tell how people wanting to contribute and
work at translations should contact the appropriate team.
When reporting bugs in the `intl/' directory or bugs which may be
related to internationalization, you should tell about the version of
`gettext' which is used. The information can be found in the
`intl/VERSION' file, in internationalized packages.
One advise in advance
=====================
If you want to exploit the full power of internationalization, you
should configure it using
./configure --with-included-gettext
to force usage of internationalizing routines provided within this
package, despite the existence of internationalizing capabilities in the
operating system where this package is being installed. So far, only
the `gettext' implementation in the GNU C library version 2 provides as
many features (such as locale alias or message inheritance) as the
implementation here. It is also not possible to offer this additional
functionality on top of a `catgets' implementation. Future versions of
GNU `gettext' will very likely convey even more functionality. So it
might be a good idea to change to GNU `gettext' as soon as possible.
So you need not provide this option if you are using GNU libc 2 or
you have installed a recent copy of the GNU gettext package with the
included `libintl'.
INSTALL Matters
===============
Some packages are "localizable" when properly installed; the
programs they contain can be made to speak your own native language.
Most such packages use GNU `gettext'. Other packages have their own
ways to internationalization, predating GNU `gettext'.
By default, this package will be installed to allow translation of
messages. It will automatically detect whether the system provides
usable `catgets' (if using this is selected by the installer) or
`gettext' functions. If neither is available, the GNU `gettext' own
library will be used. This library is wholly contained within this
package, usually in the `intl/' subdirectory, so prior installation of
the GNU `gettext' package is *not* required. Installers may use
special options at configuration time for changing the default
behaviour. The commands:
./configure --with-included-gettext
./configure --with-catgets
./configure --disable-nls
will respectively bypass any pre-existing `catgets' or `gettext' to use
the internationalizing routines provided within this package, enable
the use of the `catgets' functions (if found on the locale system), or
else, *totally* disable translation of messages.
When you already have GNU `gettext' installed on your system and run
configure without an option for your new package, `configure' will
probably detect the previously built and installed `libintl.a' file and
will decide to use this. This might be not what is desirable. You
should use the more recent version of the GNU `gettext' library. I.e.
if the file `intl/VERSION' shows that the library which comes with this
package is more recent, you should use
./configure --with-included-gettext
to prevent auto-detection.
By default the configuration process will not test for the `catgets'
function and therefore they will not be used. The reasons are already
given above: the emulation on top of `catgets' cannot provide all the
extensions provided by the GNU `gettext' library. If you nevertheless
want to use the `catgets' functions use
./configure --with-catgets
to enable the test for `catgets' (this causes no harm if `catgets' is
not available on your system). If you really select this option we
would like to hear about the reasons because we cannot think of any
good one ourself.
Internationalized packages have usually many `po/LL.po' files, where
LL gives an ISO 639 two-letter code identifying the language. Unless
translations have been forbidden at `configure' time by using the
`--disable-nls' switch, all available translations are installed
together with the package. However, the environment variable `LINGUAS'
may be set, prior to configuration, to limit the installed set.
`LINGUAS' should then contain a space separated list of two-letter
codes, stating which languages are allowed.
Using This Package
==================
As a user, if your language has been installed for this package, you
only have to set the `LANG' environment variable to the appropriate
ISO 639 `LL' two-letter code prior to using the programs in the
package. For example, let's suppose that you speak German. At the
shell prompt, merely execute `setenv LANG de' (in `csh'),
`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash'). This
can be done from your `.login' or `.profile' file, once and for all.
An operating system might already offer message localization for
many of its programs, while other programs have been installed locally
with the full capabilities of GNU `gettext'. Just using `gettext'
extended syntax for `LANG' would break proper localization of already
available operating system programs. In this case, users should set
both `LANGUAGE' and `LANG' variables in their environment, as programs
using GNU `gettext' give preference to `LANGUAGE'. For example, some
Swedish users would rather read translations in German than English for
when Swedish is not available. This is easily accomplished by setting
`LANGUAGE' to `sv:de' while leaving `LANG' to `sv'.
Translating Teams
=================
For the Free Translation Project to be a success, we need interested
people who like their own language and write it well, and who are also
able to synergize with other translators speaking the same language.
Each translation team has its own mailing list, courtesy of Linux
International. You may reach your translation team at the address
`LL@li.org', replacing LL by the two-letter ISO 639 code for your
language. Language codes are *not* the same as the country codes given
in ISO 3166. The following translation teams exist, as of December
1997:
Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en',
Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian
`hu', Irish `ga', Italian `it', Indonesian `id', Japanese `ja',
Korean `ko', Latin `la', Norwegian `no', Persian `fa', Polish
`pl', Portuguese `pt', Russian `ru', Slovenian `sl', Spanish `es',
Swedish `sv', and Turkish `tr'.
For example, you may reach the Chinese translation team by writing to
`zh@li.org'.
If you'd like to volunteer to *work* at translating messages, you
should become a member of the translating team for your own language.
The subscribing address is *not* the same as the list itself, it has
`-request' appended. For example, speakers of Swedish can send a
message to `sv-request@li.org', having this message body:
subscribe
Keep in mind that team members are expected to participate
*actively* in translations, or at solving translational difficulties,
rather than merely lurking around. If your team does not exist yet and
you want to start one, or if you are unsure about what to do or how to
get started, please write to `translation@iro.umontreal.ca' to reach the
coordinator for all translator teams.
The English team is special. It works at improving and uniformizing
the terminology in use. Proven linguistic skill are praised more than
programming skill, here.
Available Packages
==================
Languages are not equally supported in all packages. The following
matrix shows the current state of internationalization, as of December
1997. The matrix shows, in regard of each package, for which languages
PO files have been submitted to translation coordination.
Ready PO files cs da de en es fi fr it ja ko nl no pl pt ru sl sv
.----------------------------------------------------.
bash | [] [] [] | 3
bison | [] [] [] | 3
clisp | [] [] [] [] | 4
cpio | [] [] [] [] [] [] | 6
diffutils | [] [] [] [] [] | 5
enscript | [] [] [] [] [] [] | 6
fileutils | [] [] [] [] [] [] [] [] [] [] | 10
findutils | [] [] [] [] [] [] [] [] [] | 9
flex | [] [] [] [] | 4
gcal | [] [] [] [] [] | 5
gettext | [] [] [] [] [] [] [] [] [] [] [] | 12
grep | [] [] [] [] [] [] [] [] [] [] | 10
hello | [] [] [] [] [] [] [] [] [] [] [] | 11
id-utils | [] [] [] | 3
indent | [] [] [] [] [] | 5
libc | [] [] [] [] [] [] [] | 7
m4 | [] [] [] [] [] [] | 6
make | [] [] [] [] [] [] | 6
music | [] [] | 2
ptx | [] [] [] [] [] [] [] [] | 8
recode | [] [] [] [] [] [] [] [] [] | 9
sh-utils | [] [] [] [] [] [] [] [] | 8
sharutils | [] [] [] [] [] [] | 6
tar | [] [] [] [] [] [] [] [] [] [] [] | 11
texinfo | [] [] [] | 3
textutils | [] [] [] [] [] [] [] [] [] | 9
wdiff | [] [] [] [] [] [] [] [] | 8
`----------------------------------------------------'
17 languages cs da de en es fi fr it ja ko nl no pl pt ru sl sv
27 packages 6 4 25 1 18 1 26 2 1 12 20 9 19 7 4 7 17 179
Some counters in the preceding matrix are higher than the number of
visible blocks let us expect. This is because a few extra PO files are
used for implementing regional variants of languages, or language
dialects.
For a PO file in the matrix above to be effective, the package to
which it applies should also have been internationalized and
distributed as such by its maintainer. There might be an observable
lag between the mere existence a PO file and its wide availability in a
distribution.
If December 1997 seems to be old, you may fetch a more recent copy
of this `ABOUT-NLS' file on most GNU archive sites.

11
COPYING
View File

@@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -279,7 +279,7 @@ POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -305,14 +305,15 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.

27
GNUmakefile Normal file
View File

@@ -0,0 +1,27 @@
# Having a separate GNUmakefile lets me `include' the dynamically
# generated rules created via Makefile.maint as well as Makefile.maint itself.
# This makefile is used only if you run GNU Make.
# It is necessary if you want to build targets usually of interest
# only to the maintainer.
# Systems where /bin/sh is not the default shell need this. The $(shell)
# command below won't work with e.g. stock DOS/Windows shells.
SHELL = /bin/sh
have-Makefile := $(shell test -f Makefile && echo yes)
# If the user runs GNU make but has not yet run ./configure,
# give them a diagnostic.
ifeq ($(have-Makefile),yes)
include Makefile
include $(srcdir)/Makefile.maint
else
all:
@echo There seems to be no Makefile in this directory.
@echo "You must run ./configure before running \`make'."
@exit 1
endif

251
INSTALL
View File

@@ -1,111 +1,182 @@
This is a generic INSTALL file for utilities distributions.
If this package does not come with, e.g., installable documentation or
data files, please ignore the references to them below.
Basic Installation
==================
To compile this package:
These are generic installation instructions.
1. Configure the package for your system. In the directory that this
file is in, type `./configure'. If you're using `csh' on an old
version of System V, you might need to type `sh configure' instead to
prevent `csh' from trying to execute `configure' itself.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, a file
`config.cache' that saves the results of its tests to speed up
reconfiguring, and a file `config.log' containing compiler output
(useful mainly for debugging `configure').
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation, and
creates the Makefile(s) (one in each subdirectory of the source
directory). In some packages it creates a C header file containing
system-dependent definitions. It also creates a file `config.status'
that you can run in the future to recreate the current configuration.
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If at some point `config.cache'
contains results you don't want to keep, you may remove or edit it.
Running `configure' takes a minute or two. While it is running, it
prints some messages that tell what it is doing. If you don't want to
see the messages, run `configure' with its standard output redirected
to `/dev/null'; for example, `./configure >/dev/null'.
The file `configure.in' is used to create `configure' by a program
called `autoconf'. You only need `configure.in' if you want to change
it or regenerate `configure' using a newer version of `autoconf'.
To compile the package in a different directory from the one
containing the source code, you must use a version of make that
supports the VPATH variable, such as GNU make. `cd' to the directory
where you want the object files and executables to go and run
`configure'. `configure' automatically checks for the source code in
the directory that `configure' is in and in `..'. If for some reason
`configure' is not in the source code directory that you are
configuring, then it will report that it can't find the source code.
In that case, run `configure' with the option `--srcdir=DIR', where
DIR is the directory that contains the source code.
The simplest way to compile this package is:
By default, `make install' will install the package's files in
/usr/local/bin, /usr/local/lib, /usr/local/man, etc. You can specify
an installation prefix other than /usr/local by giving `configure' the
option `--prefix=PATH'. Alternately, you can do so by giving a value
for the `prefix' variable when you run `make', e.g.,
make prefix=/usr/gnu
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If
you give `configure' the option `--exec_prefix=PATH' or set the
`make' variable `exec_prefix' to PATH, the package will use PATH as
the prefix for installing programs and libraries. Data files and
documentation will still use the regular prefix. Normally, all files
are installed using the regular prefix.
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
You can tell `configure' to figure out the configuration for your
system, and record it in `config.status', without actually configuring
the package (creating `Makefile's and perhaps a configuration header
file). To do this, give `configure' the `--no-create' option. Later,
you can run `./config.status' to actually configure the package. This
option is useful mainly in `Makefile' rules for updating `config.status'
and `Makefile'. You can also give `config.status' the `--recheck'
option, which makes it re-run `configure' with the same arguments you
used before. This is useful if you change `configure'.
2. Type `make' to compile the package.
`configure' ignores any other arguments that you give it.
3. Optionally, type `make check' to run any self-tests that come with
the package.
If your system requires unusual options for compilation or linking
that `configure' doesn't know about, you can give `configure' initial
values for some variables by setting them in the environment. In
Bourne-compatible shells, you can do that on the command line like
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. You can give `configure'
initial values for variables by setting them in the environment. Using
a Bourne-compatible shell, you can do that on the command line like
this:
CC='gcc -traditional' DEFS=-D_POSIX_SOURCE ./configure
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
The `make' variables that you might want to override with environment
variables when running `configure' are:
Or on systems that have the `env' program, you can do it like this:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
(For these variables, any value given in the environment overrides the
value that `configure' would choose:)
CC C compiler program.
Default is `cc', or `gcc' if `gcc' is in your PATH.
INSTALL Program to use to install files.
Default is `install' if you have it, `cp' otherwise.
Compiling For Multiple Architectures
====================================
(For these variables, any value given in the environment is added to
the value that `configure' chooses:)
DEFS Configuration options, in the form `-Dfoo -Dbar ...'
LIBS Libraries to link with, in the form `-lfoo -lbar ...'
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you need to do unusual things to compile the package, we encourage
you to figure out how `configure' could check whether to do them, and
mail diffs or instructions to the address given in the README so we
can include them in the next release.
If you have to use a `make' that does not supports the `VPATH'
variable, you have to compile the package for one architecture at a time
in the source code directory. After you have installed the package for
one architecture, use `make distclean' before reconfiguring for another
architecture.
2. Type `make' to compile the package. If you want, you can override
the `make' variables CFLAGS and LDFLAGS like this:
Installation Names
==================
make CFLAGS=-O2 LDFLAGS=-s
By default, `make install' will install the package's files in
`/usr/local/bin', `/usr/local/man', etc. You can specify an
installation prefix other than `/usr/local' by giving `configure' the
option `--prefix=PATH'.
3. If the package comes with self-tests and you want to run them,
type `make check'. If you're not sure whether there are any, try it;
if `make' responds with something like
make: *** No way to make target `check'. Stop.
then the package does not come with self-tests.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
give `configure' the option `--exec-prefix=PATH', the package will use
PATH as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
4. Type `make install' to install programs, data files, and
documentation.
In addition, if you use an unusual directory layout you can give
options like `--bindir=PATH' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
5. You can remove the program binaries and object files from the
source directory by typing `make clean'. To also remove the
Makefile(s), the header file containing system-dependent definitions
(if the package uses one), and `config.status' (all the files that
`configure' created), type `make distclean'.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
The file `configure.in' is used as a template to create `configure' by
a program called `autoconf'. You will only need it if you want to
regenerate `configure' using a newer version of `autoconf'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Specifying the System Type
==========================
There may be some features `configure' can not figure out
automatically, but needs to determine by the type of host the package
will run on. Usually `configure' can figure that out, but if it prints
a message saying it can not guess the host type, give it the
`--host=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name with three fields:
CPU-COMPANY-SYSTEM
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the host type.
If you are building compiler tools for cross-compiling, you can also
use the `--target=TYPE' option to select the type of system they will
produce code for and the `--build=TYPE' option to select the type of
system on which you are compiling the package.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Operation Controls
==================
`configure' recognizes the following options to control how it
operates.
`--cache-file=FILE'
Use and save the results of the tests in FILE instead of
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
debugging `configure'.
`--help'
Print a summary of the options to `configure', and exit.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--version'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`configure' also accepts some other, not widely useful, options.

160
Makefile.maint Normal file
View File

@@ -0,0 +1,160 @@
# -*-Makefile-*-
# This Makefile fragment is shared between fileutils, sh-utils, textutils.
maintainer-check:
if head ChangeLog| grep 'Version $(VERSION)' > /dev/null; then \
:; \
else \
echo "$(VERSION) not in ChangeLog; not tagging" 1>&2; \
exit 1; \
fi
$(MAKE) distcheck
$(MAKE) my-distcheck
prev-version := $(shell echo $(VERSION)|tr a-z Xa-y)
tag-package = $(shell echo "$(PACKAGE)" | tr a-z A-Z)
tag-this-version = $(subst .,_,$(VERSION))
tag-prev-version = $(subst .,_,$(prev-version))
this-cvs-tag = $(tag-package)-$(tag-this-version)
prev-cvs-tag = $(tag-package)-$(tag-prev-version)
# Verify that all source files using _() are listed in po/POTFILES.in.
po-check:
grep -E -v '^(#|$$)' po/POTFILES.in | sort > $@-1
grep -E -l '\b_\(' lib/*.c src/*.c | sort > $@-2
diff -u $@-1 $@-2
rm -f $@-1 $@-2
# Tag before making distribution. Also, don't make a distribution if
# checks fail. Also, make sure the NEWS file is up-to-date.
# FIXME: use dist-hook/my-dist like distcheck-hook/my-distcheck.
cvs-dist: maintainer-check
echo $(this-cvs-tag); \
if cvs -n log -h README| grep -e $(this-cvs-tag): > /dev/null; then \
echo "VERSION not new; not tagging" 1>&2; \
exit 1; \
fi; \
cvs update po; \
cvs tag -c $(this-cvs-tag)
$(MAKE) dist
# Use this to make sure we don't run these programs when building
# from a virgin tgz file, below.
null_AM_MAKEFLAGS = \
ACLOCAL=false \
AUTOCONF=false \
AUTOMAKE=false \
AUTOHEADER=false \
MAKEINFO=false
t=./=test
my-distcheck: writable-files po-check
-rm -rf $(t)
mkdir $(t)
GZIP=$(GZIP) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz
# Removing $(DEPDIR) like this is a gross kludge to work around a bug
# in automake. Remove that line once it's fixed.
cd $(t)/$(distdir) \
&& ./configure --disable-nls \
&& $(MAKE) CFLAGS='-Wformat -Werror' \
AM_MAKEFLAGS='$(null_AM_MAKEFLAGS)' \
&& $(MAKE) dvi \
&& $(MAKE) check \
&& rm -rf $(DEPDIR) \
&& $(MAKE) distclean
cd $(t) && mv $(distdir) $(distdir).old \
&& $(AMTAR) -zxf ../$(distdir).tar.gz
diff -ur $(t)/$(distdir).old $(t)/$(distdir)
-rm -rf $(t)
@echo "========================"; \
echo "$(distdir).tar.gz is ready for distribution"; \
echo "========================"
THIS_VERSION_REGEXP = $(subst .,\.,$(VERSION))
# FIXME: this works only for Gnits-style test releases.
PREV_VERSION := $(shell echo $(VERSION)|tr b-z a-y|sed 's/a$$//')
PREV_VERSION_REGEXP := $(shell echo $(PREV_VERSION)|sed 's/\./\\./g')
v = Version
a_host=alpha.gnu.org
b_host=tug.org
a_url_dir=gnu/fetish
b_url_dir=gnu/fetish
a_real_dir=/fs/share/ftp/gnu/fetish
b_real_dir=/home/ftp/pub/gnu/fetish
url_dir_list = $(foreach x,a b,ftp://$($(x)_host)/$($(x)_url_dir))
md5 = $(shell md5sum < $(distdir).tar.gz|sed 's/ -//')
rel-check:
tarz=/tmp/rel-check-tarz-$$$$; \
md5_tmp=/tmp/rel-check-md5-$$$$; \
set -e; \
trap 'status=$$?; rm -f $$tarz $$md5_tmp; exit $$status' 0 1 2 3 15; \
wget -q --output-document=$$tarz $(url); \
echo "$(md5) -" > $$md5_tmp; \
md5sum -c $$md5_tmp < $$tarz
release-archive-dir = ../release
prev-tgz = $(PACKAGE)-$(PREV_VERSION).tar.gz
xd-delta = $(PACKAGE)-$(PREV_VERSION)-$(VERSION).xdelta
announcement: NEWS ChangeLog $(distdir).tar.gz
@( \
echo Subject: $(distdir) released; \
echo; \
echo FIXME: put comments here; \
echo; \
for url in $(url_dir_list); do \
echo " $$url/$(distdir).tar.gz"; \
done; \
echo; \
echo And here are xdelta-style diffs; \
echo; \
for url in $(url_dir_list); do \
echo " $$url/$(xd-delta)"; \
done; \
echo; \
echo "$(md5) $(distdir).tar.gz"; \
echo; \
echo NEWS:; \
sed -n "/$(THIS_VERSION_REGEXP)/,/$(PREV_VERSION_REGEXP)/p" NEWS \
| grep -v '^\['; \
echo; \
echo ChangeLog entries:; \
find . -name ChangeLog \
| xargs cvs diff -up -r$(prev-cvs-tag) -rHEAD \
| sed -n 's/^+//p' \
| perl -ne 'm!^\+\+ (\./)?! or print,next;' \
-e 'print "\n"."*"x70 ."\n"; s///; print; print "*"x70 ."\n"'; \
)
writable-files:
for file in $(distdir).tar.gz $(xd-delta) \
../release/$(distdir).tar.gz ../release/$(xd-delta); do \
test -e $$file || continue; \
test -w $$file \
|| { echo ERROR: $$file is not writable; fail=1; }; \
done; \
test "$$fail" && exit 1 || :
alpha: writable-files po-check
$(MAKE) cvs-dist
$(MAKE) -s announcement > /tmp/announce-$(distdir)
ln $(distdir).tar.gz ../release
chmod a-w $(distdir).tar.gz
cd $(release-archive-dir) \
&& xdelta delta -9 $(prev-tgz) $(distdir).tar.gz $(xd-delta) || :
ln $(release-archive-dir)/$(xd-delta) .
chmod a-w $(release-archive-dir)/$(xd-delta)
@echo =====================================
@echo =====================================
@echo 'scp $(xd-delta) $(distdir).tar.gz \'
@echo ' $(b_host):$(b_real_dir)'
@echo '# send the /tmp/announcement e-mail'
@echo =====================================
@echo =====================================

108
THANKS Normal file
View File

@@ -0,0 +1,108 @@
This is just a start at listing e-mail addresses of contributors.
The rest of the addresses are still in the ChangeLog.
Achim Blumensath: blume@corona.oche.de
aldomel: aldomel@ix.netcom.com
Alen Muzinic: zveki@fly.cc.fer.hr
Akim Demaille: demaille@inf.enst.fr
Alain Magloire: alain@qnx.com
Alexey Solovyov: alekso@math.uu.se
Andreas Jaeger: jaeger@gnu.org
Andreas Schwab: schwab@suse.de
Andres Soolo: andres@soolo.matti.ee
Andrew Dalke: dalke@bioreason.com
Andrew Tridgell: tridge@samba.org
Andries Brouwer: Andries.Brouwer@cwi.nl
Arne Henrik Juul: arnej@imf.unit.no
Bauke Jan Douma: bjdouma@xs4all.nl
Bengt Martensson: bengt@mathematik.uni-Bremen.de
Bernd Leibing: bernd.leibing@rz.uni-ulm.de
Bernhard Rosenkraenzer: bero@redhat.de
Bjorn Helgaas: helgaas@rsn.hp.com
Bob McCracken: kerouac@ravenet.com
Bob Proulx: rwp@fc.hp.com
Brendan O'Dea: bod@compusol.com.au
Charles Karney: karney@pppl.gov
Chip Salzenberg: chip@valinux.com
Chris Yeo: cyeo@biking.org
Christian von Roques: roques@pond.sub.org
Colin Plumb: colin@nyx.net
David Godfrey: dave@delta.demon.co.uk
Dirk Lattermann: dlatt@t-online.de
Don Parsons: dparsons@synapse.kent.edu
Eirik Fuller: eirik@netcom.com
Eli Zaretskii: eliz@is.elta.co.il
Emile LeBlanc: leblanc@math.toronto.edu
François Pinard: pinard@iro.umontreal.ca
Galen Hazelwood: galenh@micron.net
Germano Leichsenring: germano@jedi.cs.kobe-u.ac.jp
Göran Uddeborg: goeran@uddeborg.pp.se
Greg McGary: gkm@eng.ascend.com
Gabor Z. Papp: gzp@gzp.org.hu
H. J. Lu: hjl@valinux.com
Holger Berger: hberger@ess.nec.de
Hugh Daniel: hugh@xanadu.com
James: james@albion.glarp.com
James Antill: jmanti%essex.ac.uk@seralph21.essex.ac.uk
James Sneeringer: jvs@ocslink.com
James Tanis: jtt@soscorp.com
Jamie Lokier: jamie@imbolc.ucc.ie
Janos Farkas: chexum@shadow.banki.hu
Jesse Thilo: jgt2@eecs.lehigh.edu
Joakim Rosqvist: dvljrt@cs.umu.se
Joe Orton: joe@orton.demon.co.uk
Johan Danielsson: joda@pdc.kth.se
John Bley: jbb6@acpub.duke.edu
John Gatewood Ham: zappaman@alphabox.compsci.buu.ac.th
John Gotts: jgotts@umich.edu
Jürgen Fluk: louis@dachau.marco.de
jvogel: jvogel@linkny.com
Kalle Olavi Niemitalo: tosi@stekt.oulu.fi
Karl Heuer: kwzh@gnu.org
Kjetil Torgrim Homme: kjetilho@ifi.uio.no
Larry McVoy: lm@sgi.com
Lars Hecking: lhecking@nmrc.ucc.ie
Lorne Baker: lbaker@nitro.avint.net
Marcus Daniels: marcus@sysc.pdx.edu
Mark A. Thomas: thommark@access.digex.net
Mark Harris: mark@monitor.designacc.com
Mark Kettenis: kettenis@phys.uva.nl
Martin Mitchell: martin@debian.org
Marty Leisner: leisner@sdsp.mc.xerox.com
Masami Takikawa: takikawm@CS.ORST.EDU
Matthew S. Levine: mslevine@theory.lcs.mit.edu
Matthew Swift: swift@alum.mit.edu
Matthias Urlichs: smurf@noris.de
Michiel Bacchiani: bacchian@raven.bu.edu
Michael ???:michael@roka.net
Michael Veksler: mveksler@techunix.technion.ac.il
Michael Stone: mstone@debian.org
Miles Bader: miles@gnu.ai.mit.edu
Nelson H. F. Beebe: beebe@math.utah.edu
Noel Cragg: noel@red-bean.com
Olav Morkrid: olav@funcom.com
Per Kristian Hove: perhov@math.ntnu.no
Peter Eriksson: peter@ifm.liu.se
Peter Moulder: reiter@netspace.net.au
Peter Samuelson: psamuels@sampo.creighton.edu
Paul Eggert: eggert@twinsun.com
Paul Slootman: paul@debian.org
Philippe De Muyter: phdm@macqel.be
Rainer Orth: ro@TechFak.Uni-Bielefeld.DE
Richard Braakman: dark@xs4all.nl
Ross Ridge: rridge@calum.csclub.uwaterloo.ca
Sami Farin: sfarin@ratol.fi
Santiago Vila Doncel: sanvila@unex.es
Scott Lurndal: slurn@griffin.engr.sgi.com
Stuart Kemp: skemp@peter.bmc.com
Thomas Bushnell, n/BSG: thomas@gnu.ai.mit.edu
Ton Hospel: thospel@mail.dma.be
Torbjorn Lindgren: tl@funcom.no
Torsten Landschoff: torsten@pclab.ifg.uni-kiel.de
Tony Leneis: tony@plaza.ds.adp.com
Ulrich Drepper: drepper@cygnus.com
Vin Shelton: acs@alumni.princeton.edu
Volker Borchert: bt@teknon.de
Wayne Stewart: wstewa@atl.com
Wichert Akkerman: wichert@cistron.nl
William Bader: william@nscs.fast.net

View File

@@ -1,17 +1,19 @@
Makefile
fileutils.info
version.texi
fileutils.log
fileutils.dvi
fileutils.aux
fileutils.toc
fileutils.cp
fileutils.fn
fileutils.vr
fileutils.tp
fileutils.ky
fileutils.pg
fileutils.cm
fileutils.fl
fileutils.op
fileutils.cp
fileutils.cps
fileutils.dvi
fileutils.fl
fileutils.fn
fileutils.info
fileutils.info*
fileutils.ky
fileutils.log
fileutils.op
fileutils.pg
fileutils.toc
fileutils.tp
fileutils.vr
stamp-vti
version.texi

14
doc/Makefile.am Normal file
View File

@@ -0,0 +1,14 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
info_TEXINFOS = fileutils.texi
EXTRA_DIST = perm.texi getdate.texi
# The following is necessary if the package name is 8 characters or longer.
# If the info documentation would be split into 10 or more separate files,
# then this is necessary even if the package name is 7 characters long.
#
# Tell makeinfo to put everything in a single info file: <package>.info.
# Otherwise, it would also generate files with names like <package>.info-[123],
# and those names all map to one 14-byte name (<package>.info-) on some crufty
# old systems.
MAKEINFO = makeinfo --no-split

View File

@@ -1,103 +1,379 @@
# Makefile for GNU file utilities documentation.
# Copyright (C) 1994, 1995 Free Software Foundation, Inc.
# Makefile.in generated automatically by automake 1.4a from Makefile.am
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
SHELL = /bin/sh
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
MAKEINFO = makeinfo
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_FLAG =
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMDEP = @AMDEP@
AMTAR = @AMTAR@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CPP = @CPP@
CXX = @CXX@
CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GNU_PACKAGE = @GNU_PACKAGE@
GT_NO = @GT_NO@
GT_YES = @GT_YES@
INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
INSTOBJEXT = @INSTOBJEXT@
INTLDEPS = @INTLDEPS@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
NEED_SETGID = @NEED_SETGID@
OPTIONAL_BIN_PROGS = @OPTIONAL_BIN_PROGS@
OPTIONAL_BIN_ZCRIPTS = @OPTIONAL_BIN_ZCRIPTS@
PACKAGE = @PACKAGE@
PERL = @PERL@
POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
YACC = @YACC@
install_sh = @install_sh@
l = @l@
info_TEXINFOS = fileutils.texi
EXTRA_DIST = perm.texi getdate.texi
# The following is necessary if the package name is 8 characters or longer.
# If the info documentation would be split into 10 or more separate files,
# then this is necessary even if the package name is 7 characters long.
#
# Tell makeinfo to put everything in a single info file: <package>.info.
# Otherwise, it would also generate files with names like <package>.info-[123],
# and those names all map to one 14-byte name (<package>.info-) on some crufty
# old systems.
MAKEINFO = makeinfo --no-split
subdir = doc
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
DIST_SOURCES =
TEXI2DVI = texi2dvi
INFO_DEPS = fileutils.info
DVIS = fileutils.dvi
TEXINFOS = fileutils.texi
DIST_COMMON = Makefile.am Makefile.in mdate-sh stamp-vti texinfo.tex \
version.texi
prefix = @prefix@
infodir = $(prefix)/info
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
.SUFFIXES: .dvi .info .ps .texi .texinfo .txi
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnits doc/Makefile
DISTFILES = Makefile.in texinfo.tex fileutils.texi fileutils.info \
version.texi perm.texi getdate.texi
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
all: fileutils.info
info: fileutils.info
$(srcdir)/version.texi: stamp-vti
@:
version.texi: ../src/version.c
sed -e '/version_string/!d' \
-e 's/[^0-9.]*\([0-9.a-z]*\).*/@set VERSION \1/' \
-e q $(srcdir)/../src/version.c \
> $@-t
echo '@set RELEASEDATE '`date '+%B %Y'` >> $@-t
mv $@-t $@
$(srcdir)/stamp-vti: fileutils.texi $(top_srcdir)/configure.in
@echo "@set UPDATED `$(SHELL) $(srcdir)/mdate-sh $(srcdir)/fileutils.texi`" > vti.tmp
@echo "@set EDITION $(VERSION)" >> vti.tmp
@echo "@set VERSION $(VERSION)" >> vti.tmp
@cmp -s vti.tmp $(srcdir)/version.texi \
|| (echo "Updating $(srcdir)/version.texi"; \
cp vti.tmp $(srcdir)/version.texi)
-@rm -f vti.tmp
@cp $(srcdir)/version.texi $@
mostlyclean-vti:
-rm -f vti.tmp
clean-vti:
distclean-vti:
maintainer-clean-vti:
-rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
fileutils.info: fileutils.texi version.texi
$(MAKEINFO) -I$(srcdir) --no-split fileutils.texi --output=$@
fileutils.dvi: fileutils.texi version.texi
dvi: fileutils.dvi
fileutils.dvi: fileutils.texi version.texi texinfo.tex
$(TEXI2DVI) $(srcdir)/fileutils.texi
DVIPS = dvips
.texi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texi.dvi:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.texi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo.dvi:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.txi.dvi:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.dvi.ps:
$(DVIPS) $< -o $@
install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(infodir)
@list='$(INFO_DEPS)'; \
for file in $$list; do \
d=$(srcdir); \
for ifile in `CDPATH=: && cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
if test -f $$d/$$ifile; then \
echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
$(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
else : ; fi; \
done; \
done
@$(POST_INSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
done; \
else : ; fi
uninstall-info:
$(PRE_UNINSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file"; \
install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file; \
done; \
else :; fi
@$(NORMAL_UNINSTALL)
@list='$(INFO_DEPS)'; \
for file in $$list; do \
(if cd $(DESTDIR)$(infodir); then \
echo " rm -f $$file $$file-[0-9] $$file-[0-9][0-9])"; \
rm -f $$file $$file-[0-9] $$file-[0-9][0-9]; \
else :; fi); \
done
dist-info: $(INFO_DEPS)
list='$(INFO_DEPS)'; \
for base in $$list; do \
d=$(srcdir); \
for file in `CDPATH=: && cd $$d && eval echo $$base*`; do \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done; \
done
mostlyclean-aminfo:
-rm -f fileutils.aux fileutils.cp fileutils.cps fileutils.dvi \
fileutils.fn fileutils.fns fileutils.pgs fileutils.ky \
fileutils.kys fileutils.ps fileutils.log fileutils.pg \
fileutils.toc fileutils.tp fileutils.tps fileutils.vr \
fileutils.vrs fileutils.op fileutils.tr fileutils.cv \
fileutils.cn fileutils.cm fileutils.ov
clean-aminfo:
distclean-aminfo:
maintainer-clean-aminfo:
cd $(srcdir) && for i in $(INFO_DEPS); do \
rm -f $$i; \
if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
rm -f $$i-[0-9]*; \
fi; \
done
tags: TAGS
TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pR $$d/$$file $(distdir); \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
info-am: $(INFO_DEPS)
info: info-am
dvi-am: $(DVIS)
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
install-data-am: install-info-am
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-info
uninstall: uninstall-am
all-am: Makefile $(INFO_DEPS)
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
installdirs:
$(srcdir)/../mkinstalldirs $(infodir)
$(mkinstalldirs) $(DESTDIR)$(infodir)
install: install-exec install-data
install-exec:
install-data: all installdirs
cd $(srcdir) && for file in fileutils.info; do \
$(INSTALL_DATA) $$file $(infodir)/$$file; \
done
uninstall:
rm -f $(infodir)/fileutils.info
mostlyclean-generic:
check:
clean-generic:
texclean:
rm -f *.aux *.cp *.dvi *.fn *.ky *.log *.pg *.toc *.tp *.vr \
*.fl *.cm *.op *.cps
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
mostlyclean: texclean
maintainer-clean-generic:
-rm -f Makefile.in
mostlyclean-am: mostlyclean-vti mostlyclean-aminfo mostlyclean-generic
clean: mostlyclean
mostlyclean: mostlyclean-am
distclean: clean
rm -f Makefile
clean-am: clean-vti clean-aminfo clean-generic mostlyclean-am
maintainer-clean: distclean
@echo "This command is intended for use by maintainers;"
clean: clean-am
distclean-am: distclean-vti distclean-aminfo distclean-generic clean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-vti maintainer-clean-aminfo \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
rm -f fileutils.info version.texi
distdir = ../`cat ../distname`/$(subdir)
dist: $(DISTFILES)
for file in $(DISTFILES); do \
ln $$file $(distdir) \
|| { echo copying $$file instead; cp -p $$file $(distdir);}; \
done
maintainer-clean: maintainer-clean-am
subdir = doc
Makefile: ../config.status Makefile.in
cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status
.PHONY: mostlyclean-vti distclean-vti clean-vti maintainer-clean-vti \
install-info-am uninstall-info mostlyclean-aminfo distclean-aminfo \
clean-aminfo maintainer-clean-aminfo tags distdir info-am info dvi-am \
dvi check check-am installcheck-am installcheck install-exec-am \
install-exec install-data-am install-data install-am install \
uninstall-am uninstall all-redirect all-am all install-strip \
installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
.PHONY: all check clean dist distclean dvi info install install-data \
install-exec installdirs maintainer-clean mostlyclean texclean uninstall
# Tell versions [3.59,3.63) of GNU make not to export all variables.
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@@ -1,16 +1,35 @@
@ifinfo
@set Francois Franc,ois
@end ifinfo
@tex
@set Francois Fran\noexpand\ptexc cois
@end tex
@node Date input formats
@chapter Date input formats
@cindex date input formats
@findex getdate
First, a quote:
@quotation
Our units of temporal measurement, from seconds on up to months, are so
complicated, asymmetrical and disjunctive so as to make coherent mental
reckoning in time all but impossible. Indeed, had some tyrannical god
contrived to enslave our minds to time, to make it all but impossible
for us to escape subjection to sodden routines and unpleasant surprises,
he could hardly have done better than handing down our present system.
It is like a set of trapezoidal building blocks, with no vertical or
horizontal surfaces, like a language in which the simplest thought
demands ornate constructions, useless particles and lengthy
circumlocutions. Unlike the more successful patterns of language and
science, which enable us to face experience boldly or at least
level-headedly, our system of temporal calculation silently and
persistently encourages our terror of time.
@dots{} It is as though architects had to measure length in feet, width
in meters and height in ells; as though basic instruction manuals
demanded a knowledge of five different languages. It is no wonder then
that we often look into our own immediate past or future, last Tuesday
or a week from Sunday, with feelings of helpless confusion. @dots{}
--- Robert Grudin, @cite{Time and the Art of Living}.
@end quotation
This section describes the textual date representations that GNU
programs accept. These are the strings you, as a user, can supply as
arguments to the various programs. The C interface (via the
@@ -27,7 +46,7 @@ midnight, 1 January 1970 UCT.
* General date syntax:: Common rules.
* Calendar date item:: 19 Dec 1994.
* Time of day item:: 9:20pm.
* Timezone item:: EST, DST, BST, UCT, AHST, ...
* Time zone item:: EST, DST, BST, UTC, ...
* Day of week item:: Monday and others.
* Relative item in date strings:: next tuesday, 2 years ago.
* Pure numbers in date strings:: 19931219, 1440.
@@ -53,7 +72,7 @@ many flavors of items:
@item time zone items
@item day of the week items
@item relative items
@item pure numbers.
@item pure numbers.
@end itemize
@noindent We describe each of these item types in turn, below.
@@ -89,13 +108,13 @@ zeros on numbers are ignored.
@cindex calendar date item
A @dfn{calendar date item} specifies a day of the year. It is
A @dfn{calendar date item} specifies a day of the year. It is
specified differently, depending on whether the month is specified
numerically or literally. All these strings specify the same calendar date:
@example
1970-9-17 # ISO 8601.
70-9-17 # This century assumed by default.
1970-09-17 # ISO 8601.
70-9-17 # Assume 19xx for 69 through 99, 20xx for 00 through 68.
70-09-17 # Leading zeros are ignored.
9/17/72 # Common U.S. writing.
24 September 1972
@@ -120,9 +139,11 @@ Here are the rules.
@cindex date format, ISO 8601
For numeric months, the ISO 8601 format
@samp{@var{year}-@var{month}-@var{day}} is allowed, where @var{year} is
any positive number, @var{month} is a number between 1 and 12, and
@var{day} is a number between 1 and 31. If @var{year} is less than 100,
then 1900 is added to it to force a date in this century. The construct
any positive number, @var{month} is a number between 01 and 12, and
@var{day} is a number between 01 and 31. A leading zero must be present
if a number is less than ten. If @var{year} is 68 or smaller, then 2000
is added to it; otherwise, if @var{year} is less than 100,
then 1900 is added to it. The construct
@samp{@var{month}/@var{day}/@var{year}}, popular in the United States,
is accepted. Also @samp{@var{month}/@var{day}}, omitting the year.
@@ -185,161 +206,139 @@ indicates the first half of the day, @samp{pm} indicates the second
half of the day. In this notation, 12 is the predecessor of 1:
midnight is @samp{12am} while noon is @samp{12pm}.
@cindex timezone correction
@cindex minutes, timezone correction by
The time may alternatively be followed by a timezone correction,
@cindex time zone correction
@cindex minutes, time zone correction by
The time may alternatively be followed by a time zone correction,
expressed as @samp{@var{s}@var{hh}@var{mm}}, where @var{s} is @samp{+}
or @samp{-}, @var{hh} is a number of zone hours and @var{mm} is a number
of zone minutes. When a timezone correction is given this way, it
forces interpretation of the time in UTC, overriding any previous
specification for the timezone or the local timezone. The @var{minute}
part of the time of the day may not be elided when a timezone correction
is used. This is the only way to specify a timezone correction by
of zone minutes. When a time zone correction is given this way, it
forces interpretation of the time relative to
Coordinated Universal Time (UTC), overriding any previous
specification for the time zone or the local time zone. The @var{minute}
part of the time of the day may not be elided when a time zone correction
is used. This is the only way to specify a time zone correction by
fractional parts of an hour.
Either @samp{am}/@samp{pm} or a timezone correction may be specified,
Either @samp{am}/@samp{pm} or a time zone correction may be specified,
but not both.
@node Timezone item
@section Timezone item
@node Time zone item
@section Time zone item
@cindex timezone item
@cindex time zone item
A @dfn{timezone item} specifies an international timezone, indicated by
a small set of letters. Any included period is ignored. Military
timezone designations use a single letter. Currently, only integral
zone hours may be represented in a timezone item. See the previous
section for a finer control over the timezone correction.
A @dfn{time zone item} specifies an international time zone, indicated by
a small set of letters. They are supported for backward compatibility reasons,
but they are not recommended because they are ambiguous in practice:
for example, the abbreviation @samp{EST} has different meanings in
Australia and the United States. Any included period is ignored. Military
time zone designations use a single letter. Currently, only integral
zone hours may be represented in a time zone item. See the previous
section for a finer control over the time zone correction.
Here are many non-daylight-savings-time timezones, indexed by the zone
Here are many non-daylight-saving-time time zones, indexed by the zone
hour value.
@table @asis
@item +000
@cindex Greenwich Mean Time
@cindex Universal Coordinated Time
@cindex Western European Time
@samp{GMT} for Greenwich Mean, @samp{UT} or @samp{UTC} for Universal
(Coordinated), @samp{WET} for Western European and @samp{Z} for
militaries.
@item +100
@cindex West African Time
@samp{WAT} for West Africa and
@samp{A} for militaries.
@item +200
@cindex Azores Time
@samp{AT} for Azores and @samp{B} for militaries.
@item +300
@samp{C} for militaries.
@item +400
@cindex Atlantic Standard Time
@samp{AST} for Atlantic Standard and @samp{D} for militaries.
@item +500
@cindex Eastern Standard Time
@samp{E} for militaries and @samp{EST} for Eastern Standard.
@item +600
@cindex Central Standard Time
@samp{CST} for Central Standard and @samp{F} for militaries.
@item +700
@cindex Mountain Standard Time
@samp{G} for militaries and @samp{MST} for Mountain Standard.
@item +800
@cindex Pacific Standard Time
@samp{H} for militaries and @samp{PST} for Pacific Standard.
@item +900
@cindex Yukon Standard Time
@samp{I} for militaries and @samp{YST} for Yukon Standard.
@item +1000
@cindex Alaska-Hawaii Time
@cindex Central Alaska Time
@cindex Hawaii Standard Time
@samp{AHST} for Alaska-Hawaii Standard, @samp{CAT} for Central Alaska,
@samp{HST} for Hawaii Standard and @samp{K} for militaries.
@item +1100
@cindex Nome Standard Time
@samp{L} for militaries and @samp{NT} for Nome.
@item +1200
@cindex International Date Line West
@samp{IDLW} for International Date Line West and @samp{M} for
militaries.
@item -100
@cindex Central European Time
@cindex Middle European Time
@cindex Middle European Winter Time
@cindex French Winter Time
@cindex Swedish Winter Time
@samp{CET} for Central European, @samp{FWT} for French Winter,
@samp{MET} for Middle European, @samp{MEWT} for Middle European
Winter, @samp{N} for militaries and @samp{SWT} for Swedish Winter.
@item -200
@cindex Eastern European Time
@cindex USSR Zone
@samp{EET} for Eastern European, USSR Zone 1 and @samp{O} for militaries.
@item -300
@cindex Baghdad Time
@samp{BT} for Baghdad, USSR Zone 2 and @samp{P} for militaries.
@item -400
@samp{Q} for militaries and @samp{ZP4} for USSR Zone 3.
@item -500
@samp{R} for militaries and @samp{ZP5} for USSR Zone 4.
@item -600
@samp{S} for militaries and @samp{ZP6} for USSR Zone 5.
@item -700
@cindex West Australian Standard Time
@samp{T} for militaries and @samp{WAST} for West Australian Standard.
@item -800
@cindex China Coast Time
@samp{CCT} for China Coast, USSR Zone 7 and @samp{U} for militaries.
@item -900
@cindex Japan Standard Time
@samp{JST} for Japan Standard, USSR Zone 8 and @samp{V} for militaries.
@item -1000
@cindex East Australian Standard Time
@cindex Guam Standard Time
@samp{EAST} for East Australian Standard, @samp{GST} for Guam
Standard, USSR Zone 9 and @samp{W} for militaries.
@item -1200
@samp{Y} for militaries.
@item -1100
@samp{X} for militaries.
@item -1200
@cindex International Date Line East
@cindex New Zealand Standard Time
@samp{IDLE} for International Date Line East, @samp{NZST} for
New Zealand Standard, @samp{NZT} for New Zealand and @samp{Y} for
militaries.
@item -1000
@samp{W} for militaries.
@item -0900
@samp{V} for militaries.
@item -0800
@samp{PST} for Pacific Standard, and
@samp{U} for militaries.
@item -0700
@samp{MST} for Mountain Standard, and
@samp{T} for militaries.
@item -0600
@samp{CST} for Central Standard, and
@samp{S} for militaries.
@item -0500
@samp{EST} for Eastern Standard, and
@samp{R} for militaries.
@item -0400
@samp{AST} for Atlantic Standard, and
@samp{Q} for militaries.
@item -0300
@samp{P} for militaries.
@item -0200
@samp{O} for militaries.
@item -0100
@samp{N} for militaries.
@item +0000
@cindex Greenwich Mean Time
@cindex Coordinated Universal Time
@cindex Universal Coordinated Time
@cindex Universal Time (Coordinated)
@samp{GMT} for Greenwich Mean,
@samp{UT} for Universal,
@samp{UTC} for Coordinated Universal,
@samp{WET} for Western European, and
@samp{Z} for ISO 8601 and militaries.
@item +0100
@samp{A} for militaries,
@samp{CET} for Central European,
@samp{MET} for Midden Europesche Tijd (Dutch), and
@samp{MEZ} for Mittel-Europ@"aische Zeit (German).
@item +0200
@samp{B} for militaries, and
@samp{EET} for Eastern European.
@item +0300
@samp{C} for militaries.
@item +0400
@samp{D} for militaries.
@item +0500
@samp{E} for militaries.
@item +0600
@samp{F} for militaries.
@item +0700
@samp{G} for militaries.
@item +0800
@samp{H} for militaries.
@item +0900
@samp{I} for militaries, and
@samp{JST} for Japan Standard.
@item +1000
@samp{GST} for Guam Standard, and
@samp{K} for militaries.
@item +1100
@samp{L} for militaries.
@item +1200
@samp{M} for militaries, and
@samp{NZST} for New Zealand Standard.
@end table
@cindex daylight savings time
Here are many DST timezones, indexed by the zone hour value. Also, by
following a non-DST timezone by the string @samp{DST} in a separate word
(that is, separated by some whitespace), the corresponding DST timezone
@cindex daylight-saving time
Here are many daylight-saving time (DST) time zones,
indexed by the zone hour value. Also, by
following a non-DST time zone by the string @samp{DST} in a separate word
(that is, separated by some whitespace), the corresponding DST time zone
may be specified.
@table @asis
@item 0
@samp{BST} for British Summer.
@item +400
@samp{ADT} for Atlantic Daylight.
@item +500
@samp{EDT} for Eastern Daylight.
@item +600
@samp{CDT} for Central Daylight.
@item +700
@samp{MDT} for Mountain Daylight.
@item +800
@item -0700
@samp{PDT} for Pacific Daylight.
@item +900
@samp{YDT} for Yukon Daylight.
@item +1000
@samp{HDT} for Hawaii Daylight.
@item -100
@samp{MEST} for Middle European Summer, @samp{MESZ} for Middle European
Summer, @samp{SST} for Swedish Summer and @samp{FST} for French Summer.
@item -700
@samp{WADT} for West Australian Daylight.
@item -1000
@samp{EADT} for Eastern Australian Daylight.
@item -1200
@item -0600
@samp{MDT} for Mountain Daylight.
@item -0500
@samp{CDT} for Central Daylight.
@item -0400
@samp{EDT} for Eastern Daylight.
@item -0300
@samp{ADT} for Atlantic Daylight.
@item +0100
@samp{BST} for British Summer, and
@samp{WEST} for Western European Summer.
@item +0200
@samp{CEST} for Central European Summer,
@samp{MEST} for Midden Europesche S. Tijd (Dutch), and
@samp{MESZ} for Mittel-Europ@"aische Sommerzeit (German).
@item +1300
@samp{NZDT} for New Zealand Daylight.
@end table
@@ -469,15 +468,15 @@ year.
@cindex MacKenzie, David
@cindex Meyering, Jim
@code{getdate} was originally implemented by Steven M. Bellovin
(@samp{smb@@research.att.com}) while at the University of North Carolina
(@email{smb@@research.att.com}) while at the University of North Carolina
at Chapel Hill. The code was later tweaked by a couple of people on
Usenet, then completely overhauled by Rich $alz (@samp{rsalz@@bbn.com})
and Jim Berets (@samp{jberets@@bbn.com}) in August, 1990. Various
Usenet, then completely overhauled by Rich $alz (@email{rsalz@@bbn.com})
and Jim Berets (@email{jberets@@bbn.com}) in August, 1990. Various
revisions for the GNU system were made by David MacKenzie, Jim Meyering,
and others.
@cindex Pinard, F.
@cindex Berry, K.
This chapter was originally produced by @value{Francois} Pinard
(@samp{pinard@@iro.umontreal.ca}) from the @file{getdate.y} source code,
and then edited by K.@: Berry (@samp{kb@@cs.umb.edu}).
This chapter was originally produced by Fran@,{c}ois Pinard
(@email{pinard@@iro.umontreal.ca}) from the @file{getdate.y} source code,
and then edited by K.@: Berry (@email{kb@@cs.umb.edu}).

92
doc/mdate-sh Executable file
View File

@@ -0,0 +1,92 @@
#!/bin/sh
# Get modification time of a file or directory and pretty-print it.
# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Prevent date giving response in another language.
LANG=C
export LANG
LC_ALL=C
export LC_ALL
LC_TIME=C
export LC_TIME
# Get the extended ls output of the file or directory.
# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
if ls -L /dev/null 1>/dev/null 2>&1; then
set - x`ls -L -l -d $1`
else
set - x`ls -l -d $1`
fi
# The month is at least the fourth argument
# (3 shifts here, the next inside the loop).
shift
shift
shift
# Find the month. Next argument is day, followed by the year or time.
month=
until test $month
do
shift
case $1 in
Jan) month=January; nummonth=1;;
Feb) month=February; nummonth=2;;
Mar) month=March; nummonth=3;;
Apr) month=April; nummonth=4;;
May) month=May; nummonth=5;;
Jun) month=June; nummonth=6;;
Jul) month=July; nummonth=7;;
Aug) month=August; nummonth=8;;
Sep) month=September; nummonth=9;;
Oct) month=October; nummonth=10;;
Nov) month=November; nummonth=11;;
Dec) month=December; nummonth=12;;
esac
done
day=$2
# Here we have to deal with the problem that the ls output gives either
# the time of day or the year.
case $3 in
*:*) set `date`; eval year=\$$#
case $2 in
Jan) nummonthtod=1;;
Feb) nummonthtod=2;;
Mar) nummonthtod=3;;
Apr) nummonthtod=4;;
May) nummonthtod=5;;
Jun) nummonthtod=6;;
Jul) nummonthtod=7;;
Aug) nummonthtod=8;;
Sep) nummonthtod=9;;
Oct) nummonthtod=10;;
Nov) nummonthtod=11;;
Dec) nummonthtod=12;;
esac
# For the first six month of the year the time notation can also
# be used for files modified in the last year.
if (expr $nummonth \> $nummonthtod) > /dev/null;
then
year=`expr $year - 1`
fi;;
*) year=$3;;
esac
# The result.
echo $day $month $year

View File

@@ -217,17 +217,14 @@ og-rxw
@cindex copying existing permissions
@cindex permissions, copying existing
You can base part of a file's permissions on part of its existing
permissions. To do this, instead of using @samp{r}, @samp{w}, or
@samp{x} after the operator, you use the letter @samp{u}, @samp{g}, or
@samp{o}. For example, the mode
You can base a file's permissions on its existing permissions. To do
this, instead of using @samp{r}, @samp{w}, or @samp{x} after the
operator, you use the letter @samp{u}, @samp{g}, or @samp{o}. For
example, the mode
@example
o+g
@end example
@noindent
@c FIXME describe the ls -l notation for showing permissions.
adds the permissions for users who are in a file's group to the
permissions that other users have for the file. Thus, if the file
started out as mode 664 (@samp{rw-rw-r--}), the above mode would change
@@ -433,7 +430,7 @@ the file to all users.
@cindex numeric modes
@cindex file permissions, numeric
@cindex octal numbers for file modes
File permissions are stored internally as 16 bit integers. As an
File permissions are stored internally as integers. As an
alternative to giving a symbolic mode, you can give an octal (base 8)
number that corresponds to the internal representation of the new mode.
This number is always interpreted in octal; you do not have to add a
@@ -443,12 +440,13 @@ A numeric mode is usually shorter than the corresponding symbolic
mode, but it is limited in that it can not take into account a file's
previous permissions; it can only set them absolutely.
The permissions granted to the user, to other users in the file's group,
On most systems, the permissions granted to the user,
to other users in the file's group,
and to other users not in the file's group are each stored as three
bits, which are represented as one octal digit. The three special
permissions are also each stored as one bit, and they are as a group
represented as another octal digit. Here is how the bits are arranged
in the 16 bit integer, starting with the lowest valued bit:
represented as another octal digit. Here is how the bits are arranged,
starting with the lowest valued bit:
@example
Value in Corresponding

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

9
lib/.cppi-disable Normal file
View File

@@ -0,0 +1,9 @@
error.h
fnmatch.h
getopt.h
getopt.c
getopt1.c
md5.h
obstack.h
regex.h
getpagesize.h

View File

@@ -1,7 +1,10 @@
.deps
Makefile
getdate.c
posixtm.c
safe-stat.h
safe-stat.c
getdate.tab.c
lstat.c
safe-lstat.c
safe-lstat.h
safe-stat.c
safe-stat.h
stat.c

186
lib/.gdb-history Normal file
View File

@@ -0,0 +1,186 @@
r 206.65.212.10
b main
r
n
s
n
p addr
p addr
p he->h_name
n
q
b canon_host
r 206.65.212.10
n
p he
p *he
n
n
p (he->h_addrtype)
n
q
r a:b
b main
r a:b
n
s
n
p separator
n
l 128
c
q
r meyering:store
p *username
p *username[separator - name]
p separator - name
p username[separator - name]
r ''
l
q
r ''
l
q
r meyering
b main
r meyering
n
r
n
s
n
p u
n
n
q
r ''
r meyering
up
l
q
b main
b a.out 1
r a.out 1
n
s
fin
s
n
p uid
p gid
p euid
p egid
n
p mode
p path
fin
r -v -c 10 -n 20 -x 80 < in-2
up
up
p &dummy
p *ovp
p *(int*)*ovp
p ((struct item*)*ovp)->key
p old_vec@10
r -v -c 10 -n 20 -x 80 < in-3
p *(int*)*ovp
up
dow
p *(int*)*ovp
up
p *(int*)*ovp
i loca
dow
p key
p dummy
p &dummy
up
p old_vec
p *ovp
p ovp
p ovp - old_vec
p *old_vec@10
p *old_vec@13
b hash_insert_item
r
b hash_insert_item_at
r
n
p fail
p *(ht->vec)@13
p *(ht->ht_vec)@13
p ((struct item*)(ht->ht_vec)[10])->key
b hash_delete_item
b hash_delete_item_at
c
n
p slot
p item
n
n
p *(ht->ht_vec)@13
p &dummy
p dummy
n
s
n
n
p *(ht->ht_vec)@13
n
p new_size
n
p *old_vec@13
p old_vec@13
n
p *old_vec@13
n
p *old_vec@13
n
l
n
p ovp - old_vec
n
p ovp - old_vec
n
p ovp - old_vec
p *old_vec@13
p &dummy
q
r 444444444444 44444444444
b human_readable
r
n
q
b main
r 444444444444 44444444444
n
p a
p b
r 34343434 3434343434
c
r
n
n
p a
p b
r 343434343 343434343
c
q
b posixtime
r
n
s
n
p len
n
p pair
p len
n
b year
y
c
c
p n
up
p len
q

50
lib/ChangeLog Normal file
View File

@@ -0,0 +1,50 @@
2000-01-30 Jim Meyering <meyering@lucent.com>
* readutmp.c (extract_trimmed_name): Use UT_USER instead of hard-coding
uses of ->ut_name. The latter doesn't work with new Linux header files
where only utmpx.ut_user is declared.
* readutmp.h (UT_USER): Define.
2000-01-23 Jim Meyering <meyering@lucent.com>
* Makefile.am (libfetish_a_SOURCES): Remove explicit mention of
obstack.c.
2000-01-22 Jim Meyering <meyering@lucent.com>
* strtoumax.c: [! HAVE_DECL_STRTOUL]: Declare strtoul.
[! HAVE_DECL_STRTOULL]: Declare strtoull.
Required for some AIX systems. Reported by Christian Krackowizer.
[TESTING] (main): New function.
1997-10-17 Eli Zaretskii <eliz@is.elta.co.il>
* dirname.c (dir_name): Support for DOS-style file names with drive
letters.
* quotearg.c [HAVE_WCTYPE_H]: Include <wctype.h> for decl of iswprint.
* strverscmp.c (ISDIGIT): Define.
(strverscmp): Use ISDIGIT, not isdigit.
2000-01-17 Paul Eggert <eggert@twinsun.com>
* nanosleep.c (nanosleep):
Don't use SA_INTERRUPT to decide whether to call sigaction, as
POSIX.1 doesn't require SA_INTERRUPT and some systems
(e.g. Solaris 7) don't define it. Use SA_NOCLDSTOP instead;
it's been part of POSIX.1 since day 1 (in 1988).
2000-01-17 Jim Meyering <meyering@lucent.com>
* interlock: Remove unused file. Reported by François Pinard.
2000-01-16 Paul Eggert <eggert@twinsun.com>
* lib/quotearg.c (quotearg_buffer_restyled): Do not quote
alert, backslash, formfeed, and vertical tab unnecessarily in
shell quoting style.
Local Variables:
version-control: never
End:

53
lib/Makefile.am Normal file
View File

@@ -0,0 +1,53 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
AUTOMAKE_OPTIONS = ../src/ansi2knr
noinst_LIBRARIES = libfetish.a
INCLUDES = -I.. -I$(srcdir) -I../intl
libfetish_a_SOURCES = \
getdate.y posixtm.c addext.c argmatch.c backupfile.c basename.c \
canon-host.c closeout.c dirname.c exclude.c filemode.c diacrit.c \
full-write.c getopt.c getopt1.c getugroups.c hard-locale.c hash.c \
human.c idcache.c isdir.c linebuffer.c long-options.c makepath.c \
md5.c memcasecmp.c memcoll.c modechange.c path-concat.c \
quotearg.c readtokens.c readutmp.c safe-read.c same.c save-cwd.c \
savedir.c stripslash.c userspec.c version-etc.c xgetcwd.c xgethostname.c \
xmalloc.c xstrdup.c xstrtod.c xstrtol.c xstrtoul.c xstrtoumax.c yesno.c
libfetish_a_LIBADD = @LIBOBJS@ @ALLOCA@
libfetish_a_DEPENDENCIES = $(libfetish_a_LIBADD)
noinst_HEADERS = \
argmatch.h backupfile.h bumpalloc.h closeout.h diacrit.h dirname.h error.h \
exclude.h filemode.h fnmatch.h fsusage.h getdate.h getline.h getopt.h \
getpagesize.h group-member.h hard-locale.h hash.h human.h lchown.h \
linebuffer.h long-options.h md5.h memcasecmp.h memcoll.h \
makepath.h modechange.h mountlist.h nanosleep.h obstack.h \
path-concat.h pathmax.h posixtm.h quotearg.h readtokens.h \
readutmp.h regex.h safe-read.h same.h save-cwd.h savedir.h \
strverscmp.h version-etc.h xalloc.h xstrtod.h xstrtol.h
BUILT_SOURCES = getdate.c lstat.c stat.c
MAINTAINERCLEANFILES = $(BUILT_SOURCES)
DISTCLEANFILES = lstat.c stat.c
EXTRA_DIST = xstat.in
lstat.c: xstat.in
sed \
-e '/@IGNORE@/d' \
-e 's/@xstat@/lstat/g' \
-e '/_LSTAT_ONLY@/d' \
-e '/@BEGIN_STAT_ONLY@/,/@END_STAT_ONLY@/d' \
$(srcdir)/xstat.in > $@-t
mv $@-t $@
stat.c: xstat.in
sed \
-e '/@IGNORE@/d' \
-e 's/@xstat@/stat/g' \
-e '/_STAT_ONLY@/d' \
-e '/@BEGIN_LSTAT_ONLY@/,/@END_LSTAT_ONLY@/d' \
$(srcdir)/xstat.in > $@-t
mv $@-t $@

View File

@@ -1,142 +1,765 @@
# Makefile for library files used by GNU file utilities.
# Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
# Makefile.in generated automatically by automake 1.4a from Makefile.am
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
SHELL = /bin/sh
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
CC = @CC@
AR = ar
RANLIB = @RANLIB@
DEFS = @DEFS@
CFLAGS = @CFLAGS@
YACC = @YACC@
prefix = @prefix@
exec_prefix = @exec_prefix@
libdir = $(exec_prefix)/lib
SOURCES = getdate.y posixtm.y \
argmatch.c backupfile.c basename.c dirname.c euidaccess.c \
error.c filemode.c fsusage.c full-write.c getopt.c getopt1.c \
getversion.c group-member.c idcache.c isdir.c makepath.c \
modechange.c mountlist.c obstack.c safe-read.c savedir.c \
stripslash.c xgetcwd.c xmalloc.c xstrdup.c userspec.c yesno.c \
fileblocks.c fnmatch.c ftruncate.c mkdir.c mktime.c rename.c rmdir.c \
save-cwd.c stpcpy.c \
strdup.c strstr.c strtol.c alloca.c long-options.c \
memcmp.c memcpy.c memset.c xstrtol.c xstrtoul.c
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
OBJECTS = getdate.o posixtm.o \
argmatch.o backupfile.o basename.o dirname.o \
error.o filemode.o full-write.o getopt.o getopt1.o \
getversion.o group-member.o idcache.o isdir.o long-options.o makepath.o \
modechange.o obstack.o safe-read.o save-cwd.o savedir.o \
stripslash.o xgetcwd.o xmalloc.o xstrdup.o userspec.o yesno.o \
xstrtol.o xstrtoul.o @LIBOBJS@ @ALLOCA@
DESTDIR =
DISTFILES = Makefile.in backupfile.h getopt.h long-options.h modechange.h \
fnmatch.h fsusage.h group-member.h makepath.h mountlist.h obstack.h pathmax.h \
save-cwd.h getdate.c posixtm.c error.h xstrtol.h xstrtoul.h $(SOURCES)
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
all: libfu.a
top_builddir = ..
.SUFFIXES:
.SUFFIXES: .c .o
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
.c.o:
$(CC) -c $(CPPFLAGS) $(DEFS) -I.. -I$(srcdir) $(CFLAGS) $<
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_FLAG =
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMDEP = @AMDEP@
AMTAR = @AMTAR@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CPP = @CPP@
CXX = @CXX@
CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GNU_PACKAGE = @GNU_PACKAGE@
GT_NO = @GT_NO@
GT_YES = @GT_YES@
INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
INSTOBJEXT = @INSTOBJEXT@
INTLDEPS = @INTLDEPS@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
NEED_SETGID = @NEED_SETGID@
OPTIONAL_BIN_PROGS = @OPTIONAL_BIN_PROGS@
OPTIONAL_BIN_ZCRIPTS = @OPTIONAL_BIN_ZCRIPTS@
PACKAGE = @PACKAGE@
PERL = @PERL@
POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
YACC = @YACC@
install_sh = @install_sh@
l = @l@
AUTOMAKE_OPTIONS = ../src/ansi2knr
noinst_LIBRARIES = libfetish.a
INCLUDES = -I.. -I$(srcdir) -I../intl
libfetish_a_SOURCES = \
getdate.y posixtm.c addext.c argmatch.c backupfile.c basename.c \
canon-host.c closeout.c dirname.c exclude.c filemode.c diacrit.c \
full-write.c getopt.c getopt1.c getugroups.c hard-locale.c hash.c \
human.c idcache.c isdir.c linebuffer.c long-options.c makepath.c \
md5.c memcasecmp.c memcoll.c modechange.c path-concat.c \
quotearg.c readtokens.c readutmp.c safe-read.c same.c save-cwd.c \
savedir.c stripslash.c userspec.c version-etc.c xgetcwd.c xgethostname.c \
xmalloc.c xstrdup.c xstrtod.c xstrtol.c xstrtoul.c xstrtoumax.c yesno.c
libfetish_a_LIBADD = @LIBOBJS@ @ALLOCA@
libfetish_a_DEPENDENCIES = $(libfetish_a_LIBADD)
noinst_HEADERS = \
argmatch.h backupfile.h bumpalloc.h closeout.h diacrit.h dirname.h error.h \
exclude.h filemode.h fnmatch.h fsusage.h getdate.h getline.h getopt.h \
getpagesize.h group-member.h hard-locale.h hash.h human.h lchown.h \
linebuffer.h long-options.h md5.h memcasecmp.h memcoll.h \
makepath.h modechange.h mountlist.h nanosleep.h obstack.h \
path-concat.h pathmax.h posixtm.h quotearg.h readtokens.h \
readutmp.h regex.h safe-read.h same.h save-cwd.h savedir.h \
strverscmp.h version-etc.h xalloc.h xstrtod.h xstrtol.h
BUILT_SOURCES = getdate.c lstat.c stat.c
MAINTAINERCLEANFILES = $(BUILT_SOURCES)
DISTCLEANFILES = lstat.c stat.c
EXTRA_DIST = xstat.in
subdir = lib
Makefile: ../config.status Makefile.in
cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
installdirs:
install install-exec install-data: all
DEFS = @DEFS@ -I. -I$(srcdir) -I..
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
ANSI2KNR = ../src/ansi2knr
libfetish_a_AR = $(AR) cru
am_libfetish_a_OBJECTS = getdate$U.o posixtm$U.o addext$U.o \
argmatch$U.o backupfile$U.o basename$U.o canon-host$U.o closeout$U.o \
dirname$U.o exclude$U.o filemode$U.o diacrit$U.o full-write$U.o \
getopt$U.o getopt1$U.o getugroups$U.o hard-locale$U.o hash$U.o \
human$U.o idcache$U.o isdir$U.o linebuffer$U.o long-options$U.o \
makepath$U.o md5$U.o memcasecmp$U.o memcoll$U.o modechange$U.o \
path-concat$U.o quotearg$U.o readtokens$U.o readutmp$U.o safe-read$U.o \
same$U.o save-cwd$U.o savedir$U.o stripslash$U.o userspec$U.o \
version-etc$U.o xgetcwd$U.o xgethostname$U.o xmalloc$U.o xstrdup$U.o \
xstrtod$U.o xstrtol$U.o xstrtoul$U.o xstrtoumax$U.o yesno$U.o
libfetish_a_OBJECTS = $(am_libfetish_a_OBJECTS)
AR = ar
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CFLAGS = @CFLAGS@
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DIST_SOURCES = $(libfetish_a_SOURCES)
HEADERS = $(noinst_HEADERS)
uninstall:
DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in TODO \
alloca.c chown.c dup2.c error.c error.h euidaccess.c fileblocks.c \
fnmatch.c fsusage.c ftruncate.c getdate.c getgroups.c gethostname.c \
getline.c getloadavg.c getusershell.c group-member.c lchown.c malloc.c \
memchr.c memcmp.c memcpy.c memmove.c memset.c mkdir.c mktime.c \
mountlist.c nanosleep.c obstack.c obstack.h putenv.c realloc.c regex.c \
rmdir.c rpmatch.c stime.c stpcpy.c strcasecmp.c strcspn.c strdup.c \
strftime.c strncasecmp.c strndup.c strpbrk.c strstr.c strtod.c strtol.c \
strtoul.c strtoull.c strtoumax.c strverscmp.c utime.c
TAGS: $(SOURCES)
etags $(SOURCES)
check:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
clean:
rm -f *.a *.o
GZIP_ENV = --best
depcomp = $(SHELL) $(top_srcdir)/depcomp
DEP_FILES = @AMDEP@ $(DEPDIR)/addext$U.Po $(DEPDIR)/alloca.Po \
$(DEPDIR)/argmatch$U.Po $(DEPDIR)/backupfile$U.Po \
$(DEPDIR)/basename$U.Po $(DEPDIR)/canon-host$U.Po $(DEPDIR)/chown.Po \
$(DEPDIR)/closeout$U.Po $(DEPDIR)/diacrit$U.Po $(DEPDIR)/dirname$U.Po \
$(DEPDIR)/dup2.Po $(DEPDIR)/error.Po $(DEPDIR)/euidaccess.Po \
$(DEPDIR)/exclude$U.Po $(DEPDIR)/fileblocks.Po $(DEPDIR)/filemode$U.Po \
$(DEPDIR)/fnmatch.Po $(DEPDIR)/fsusage.Po $(DEPDIR)/ftruncate.Po \
$(DEPDIR)/full-write$U.Po $(DEPDIR)/getdate$U.Po $(DEPDIR)/getgroups.Po \
$(DEPDIR)/gethostname.Po $(DEPDIR)/getline.Po $(DEPDIR)/getloadavg.Po \
$(DEPDIR)/getopt$U.Po $(DEPDIR)/getopt1$U.Po $(DEPDIR)/getugroups$U.Po \
$(DEPDIR)/getusershell.Po $(DEPDIR)/group-member.Po \
$(DEPDIR)/hard-locale$U.Po $(DEPDIR)/hash$U.Po $(DEPDIR)/human$U.Po \
$(DEPDIR)/idcache$U.Po $(DEPDIR)/isdir$U.Po $(DEPDIR)/lchown.Po \
$(DEPDIR)/linebuffer$U.Po $(DEPDIR)/long-options$U.Po \
$(DEPDIR)/lstat.Po $(DEPDIR)/makepath$U.Po $(DEPDIR)/malloc.Po \
$(DEPDIR)/md5$U.Po $(DEPDIR)/memcasecmp$U.Po $(DEPDIR)/memchr.Po \
$(DEPDIR)/memcmp.Po $(DEPDIR)/memcoll$U.Po $(DEPDIR)/memcpy.Po \
$(DEPDIR)/memmove.Po $(DEPDIR)/memset.Po $(DEPDIR)/mkdir.Po \
$(DEPDIR)/mktime.Po $(DEPDIR)/modechange$U.Po $(DEPDIR)/mountlist.Po \
$(DEPDIR)/nanosleep.Po $(DEPDIR)/obstack.Po $(DEPDIR)/path-concat$U.Po \
$(DEPDIR)/posixtm$U.Po $(DEPDIR)/putenv.Po $(DEPDIR)/quotearg$U.Po \
$(DEPDIR)/readtokens$U.Po $(DEPDIR)/readutmp$U.Po $(DEPDIR)/realloc.Po \
$(DEPDIR)/regex.Po $(DEPDIR)/rmdir.Po $(DEPDIR)/rpmatch.Po \
$(DEPDIR)/safe-read$U.Po $(DEPDIR)/same$U.Po $(DEPDIR)/save-cwd$U.Po \
$(DEPDIR)/savedir$U.Po $(DEPDIR)/stat.Po $(DEPDIR)/stime.Po \
$(DEPDIR)/stpcpy.Po $(DEPDIR)/strcasecmp.Po $(DEPDIR)/strcspn.Po \
$(DEPDIR)/strdup.Po $(DEPDIR)/strftime.Po $(DEPDIR)/stripslash$U.Po \
$(DEPDIR)/strncasecmp.Po $(DEPDIR)/strndup.Po $(DEPDIR)/strpbrk.Po \
$(DEPDIR)/strstr.Po $(DEPDIR)/strtod.Po $(DEPDIR)/strtol.Po \
$(DEPDIR)/strtoul.Po $(DEPDIR)/strtoull.Po $(DEPDIR)/strtoumax.Po \
$(DEPDIR)/strverscmp.Po $(DEPDIR)/userspec$U.Po $(DEPDIR)/utime.Po \
$(DEPDIR)/version-etc$U.Po $(DEPDIR)/xgetcwd$U.Po \
$(DEPDIR)/xgethostname$U.Po $(DEPDIR)/xmalloc$U.Po \
$(DEPDIR)/xstrdup$U.Po $(DEPDIR)/xstrtod$U.Po $(DEPDIR)/xstrtol$U.Po \
$(DEPDIR)/xstrtoul$U.Po $(DEPDIR)/xstrtoumax$U.Po $(DEPDIR)/yesno$U.Po
SOURCES = $(libfetish_a_SOURCES)
OBJECTS = $(am_libfetish_a_OBJECTS)
mostlyclean: clean
all: all-redirect
.SUFFIXES:
.SUFFIXES: .c .o .y
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/Makefile
distclean: clean
rm -f Makefile *.tab.c tposixtm.c
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
maintainer-clean: distclean
rm -f TAGS getdate.c posixtm.c
distdir = ../`cat ../distname`/$(subdir)
dist: $(DISTFILES)
for file in $(DISTFILES); do \
ln $$file $(distdir) \
|| { echo copying $$file instead; cp -p $$file $(distdir);}; \
mostlyclean-noinstLIBRARIES:
clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
distclean-noinstLIBRARIES:
maintainer-clean-noinstLIBRARIES:
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
../src/ansi2knr: ../src/ansi2knr.o
cd ../src && $(MAKE) $(AM_MAKEFLAGS) ansi2knr
../src/ansi2knr.o:
cd ../src && $(MAKE) $(AM_MAKEFLAGS) ansi2knr.o
mostlyclean-kr:
-rm -f *_.c
clean-kr:
distclean-kr:
maintainer-clean-kr:
libfetish.a: $(libfetish_a_OBJECTS) $(libfetish_a_DEPENDENCIES)
-rm -f libfetish.a
$(libfetish_a_AR) libfetish.a $(libfetish_a_OBJECTS) $(libfetish_a_LIBADD)
$(RANLIB) libfetish.a
addext_.c: addext.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/addext.c; then echo $(srcdir)/addext.c; else echo addext.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > addext_.c
alloca_.c: alloca.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/alloca.c; then echo $(srcdir)/alloca.c; else echo alloca.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > alloca_.c
argmatch_.c: argmatch.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/argmatch.c; then echo $(srcdir)/argmatch.c; else echo argmatch.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > argmatch_.c
backupfile_.c: backupfile.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/backupfile.c; then echo $(srcdir)/backupfile.c; else echo backupfile.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > backupfile_.c
basename_.c: basename.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/basename.c; then echo $(srcdir)/basename.c; else echo basename.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > basename_.c
canon-host_.c: canon-host.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/canon-host.c; then echo $(srcdir)/canon-host.c; else echo canon-host.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > canon-host_.c
chown_.c: chown.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/chown.c; then echo $(srcdir)/chown.c; else echo chown.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > chown_.c
closeout_.c: closeout.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/closeout.c; then echo $(srcdir)/closeout.c; else echo closeout.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > closeout_.c
diacrit_.c: diacrit.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/diacrit.c; then echo $(srcdir)/diacrit.c; else echo diacrit.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > diacrit_.c
dirname_.c: dirname.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/dirname.c; then echo $(srcdir)/dirname.c; else echo dirname.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > dirname_.c
dup2_.c: dup2.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/dup2.c; then echo $(srcdir)/dup2.c; else echo dup2.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > dup2_.c
error_.c: error.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/error.c; then echo $(srcdir)/error.c; else echo error.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > error_.c
euidaccess_.c: euidaccess.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/euidaccess.c; then echo $(srcdir)/euidaccess.c; else echo euidaccess.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > euidaccess_.c
exclude_.c: exclude.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/exclude.c; then echo $(srcdir)/exclude.c; else echo exclude.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > exclude_.c
fileblocks_.c: fileblocks.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/fileblocks.c; then echo $(srcdir)/fileblocks.c; else echo fileblocks.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > fileblocks_.c
filemode_.c: filemode.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/filemode.c; then echo $(srcdir)/filemode.c; else echo filemode.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > filemode_.c
fnmatch_.c: fnmatch.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/fnmatch.c; then echo $(srcdir)/fnmatch.c; else echo fnmatch.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > fnmatch_.c
fsusage_.c: fsusage.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/fsusage.c; then echo $(srcdir)/fsusage.c; else echo fsusage.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > fsusage_.c
ftruncate_.c: ftruncate.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/ftruncate.c; then echo $(srcdir)/ftruncate.c; else echo ftruncate.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > ftruncate_.c
full-write_.c: full-write.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/full-write.c; then echo $(srcdir)/full-write.c; else echo full-write.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > full-write_.c
getdate_.c: getdate.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getdate.c; then echo $(srcdir)/getdate.c; else echo getdate.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getdate_.c
getgroups_.c: getgroups.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getgroups.c; then echo $(srcdir)/getgroups.c; else echo getgroups.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getgroups_.c
gethostname_.c: gethostname.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/gethostname.c; then echo $(srcdir)/gethostname.c; else echo gethostname.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > gethostname_.c
getline_.c: getline.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getline.c; then echo $(srcdir)/getline.c; else echo getline.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getline_.c
getloadavg_.c: getloadavg.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getloadavg.c; then echo $(srcdir)/getloadavg.c; else echo getloadavg.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getloadavg_.c
getopt_.c: getopt.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt.c; then echo $(srcdir)/getopt.c; else echo getopt.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt_.c
getopt1_.c: getopt1.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt1.c; then echo $(srcdir)/getopt1.c; else echo getopt1.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt1_.c
getugroups_.c: getugroups.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getugroups.c; then echo $(srcdir)/getugroups.c; else echo getugroups.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getugroups_.c
getusershell_.c: getusershell.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getusershell.c; then echo $(srcdir)/getusershell.c; else echo getusershell.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getusershell_.c
group-member_.c: group-member.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/group-member.c; then echo $(srcdir)/group-member.c; else echo group-member.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > group-member_.c
hard-locale_.c: hard-locale.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/hard-locale.c; then echo $(srcdir)/hard-locale.c; else echo hard-locale.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > hard-locale_.c
hash_.c: hash.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/hash.c; then echo $(srcdir)/hash.c; else echo hash.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > hash_.c
human_.c: human.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/human.c; then echo $(srcdir)/human.c; else echo human.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > human_.c
idcache_.c: idcache.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/idcache.c; then echo $(srcdir)/idcache.c; else echo idcache.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > idcache_.c
isdir_.c: isdir.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/isdir.c; then echo $(srcdir)/isdir.c; else echo isdir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > isdir_.c
lchown_.c: lchown.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lchown.c; then echo $(srcdir)/lchown.c; else echo lchown.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > lchown_.c
linebuffer_.c: linebuffer.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/linebuffer.c; then echo $(srcdir)/linebuffer.c; else echo linebuffer.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > linebuffer_.c
long-options_.c: long-options.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/long-options.c; then echo $(srcdir)/long-options.c; else echo long-options.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > long-options_.c
lstat_.c: lstat.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lstat.c; then echo $(srcdir)/lstat.c; else echo lstat.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > lstat_.c
makepath_.c: makepath.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/makepath.c; then echo $(srcdir)/makepath.c; else echo makepath.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > makepath_.c
malloc_.c: malloc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/malloc.c; then echo $(srcdir)/malloc.c; else echo malloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > malloc_.c
md5_.c: md5.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/md5.c; then echo $(srcdir)/md5.c; else echo md5.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > md5_.c
memcasecmp_.c: memcasecmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memcasecmp.c; then echo $(srcdir)/memcasecmp.c; else echo memcasecmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memcasecmp_.c
memchr_.c: memchr.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memchr.c; then echo $(srcdir)/memchr.c; else echo memchr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memchr_.c
memcmp_.c: memcmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memcmp.c; then echo $(srcdir)/memcmp.c; else echo memcmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memcmp_.c
memcoll_.c: memcoll.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memcoll.c; then echo $(srcdir)/memcoll.c; else echo memcoll.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memcoll_.c
memcpy_.c: memcpy.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memcpy.c; then echo $(srcdir)/memcpy.c; else echo memcpy.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memcpy_.c
memmove_.c: memmove.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memmove.c; then echo $(srcdir)/memmove.c; else echo memmove.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memmove_.c
memset_.c: memset.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memset.c; then echo $(srcdir)/memset.c; else echo memset.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memset_.c
mkdir_.c: mkdir.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/mkdir.c; then echo $(srcdir)/mkdir.c; else echo mkdir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > mkdir_.c
mktime_.c: mktime.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/mktime.c; then echo $(srcdir)/mktime.c; else echo mktime.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > mktime_.c
modechange_.c: modechange.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/modechange.c; then echo $(srcdir)/modechange.c; else echo modechange.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > modechange_.c
mountlist_.c: mountlist.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/mountlist.c; then echo $(srcdir)/mountlist.c; else echo mountlist.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > mountlist_.c
nanosleep_.c: nanosleep.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/nanosleep.c; then echo $(srcdir)/nanosleep.c; else echo nanosleep.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > nanosleep_.c
obstack_.c: obstack.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/obstack.c; then echo $(srcdir)/obstack.c; else echo obstack.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > obstack_.c
path-concat_.c: path-concat.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/path-concat.c; then echo $(srcdir)/path-concat.c; else echo path-concat.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > path-concat_.c
posixtm_.c: posixtm.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/posixtm.c; then echo $(srcdir)/posixtm.c; else echo posixtm.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > posixtm_.c
putenv_.c: putenv.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/putenv.c; then echo $(srcdir)/putenv.c; else echo putenv.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > putenv_.c
quotearg_.c: quotearg.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/quotearg.c; then echo $(srcdir)/quotearg.c; else echo quotearg.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > quotearg_.c
readtokens_.c: readtokens.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/readtokens.c; then echo $(srcdir)/readtokens.c; else echo readtokens.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > readtokens_.c
readutmp_.c: readutmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/readutmp.c; then echo $(srcdir)/readutmp.c; else echo readutmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > readutmp_.c
realloc_.c: realloc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/realloc.c; then echo $(srcdir)/realloc.c; else echo realloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > realloc_.c
regex_.c: regex.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/regex.c; then echo $(srcdir)/regex.c; else echo regex.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > regex_.c
rmdir_.c: rmdir.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/rmdir.c; then echo $(srcdir)/rmdir.c; else echo rmdir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > rmdir_.c
rpmatch_.c: rpmatch.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/rpmatch.c; then echo $(srcdir)/rpmatch.c; else echo rpmatch.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > rpmatch_.c
safe-read_.c: safe-read.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/safe-read.c; then echo $(srcdir)/safe-read.c; else echo safe-read.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > safe-read_.c
same_.c: same.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/same.c; then echo $(srcdir)/same.c; else echo same.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > same_.c
save-cwd_.c: save-cwd.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/save-cwd.c; then echo $(srcdir)/save-cwd.c; else echo save-cwd.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > save-cwd_.c
savedir_.c: savedir.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/savedir.c; then echo $(srcdir)/savedir.c; else echo savedir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > savedir_.c
stat_.c: stat.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stat.c; then echo $(srcdir)/stat.c; else echo stat.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stat_.c
stime_.c: stime.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stime.c; then echo $(srcdir)/stime.c; else echo stime.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stime_.c
stpcpy_.c: stpcpy.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stpcpy.c; then echo $(srcdir)/stpcpy.c; else echo stpcpy.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stpcpy_.c
strcasecmp_.c: strcasecmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strcasecmp.c; then echo $(srcdir)/strcasecmp.c; else echo strcasecmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strcasecmp_.c
strcspn_.c: strcspn.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strcspn.c; then echo $(srcdir)/strcspn.c; else echo strcspn.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strcspn_.c
strdup_.c: strdup.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strdup.c; then echo $(srcdir)/strdup.c; else echo strdup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strdup_.c
strftime_.c: strftime.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strftime.c; then echo $(srcdir)/strftime.c; else echo strftime.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strftime_.c
stripslash_.c: stripslash.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stripslash.c; then echo $(srcdir)/stripslash.c; else echo stripslash.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stripslash_.c
strncasecmp_.c: strncasecmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strncasecmp.c; then echo $(srcdir)/strncasecmp.c; else echo strncasecmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strncasecmp_.c
strndup_.c: strndup.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strndup.c; then echo $(srcdir)/strndup.c; else echo strndup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strndup_.c
strpbrk_.c: strpbrk.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strpbrk.c; then echo $(srcdir)/strpbrk.c; else echo strpbrk.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strpbrk_.c
strstr_.c: strstr.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strstr.c; then echo $(srcdir)/strstr.c; else echo strstr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strstr_.c
strtod_.c: strtod.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strtod.c; then echo $(srcdir)/strtod.c; else echo strtod.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtod_.c
strtol_.c: strtol.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strtol.c; then echo $(srcdir)/strtol.c; else echo strtol.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtol_.c
strtoul_.c: strtoul.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strtoul.c; then echo $(srcdir)/strtoul.c; else echo strtoul.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtoul_.c
strtoull_.c: strtoull.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strtoull.c; then echo $(srcdir)/strtoull.c; else echo strtoull.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtoull_.c
strtoumax_.c: strtoumax.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strtoumax.c; then echo $(srcdir)/strtoumax.c; else echo strtoumax.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtoumax_.c
strverscmp_.c: strverscmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strverscmp.c; then echo $(srcdir)/strverscmp.c; else echo strverscmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strverscmp_.c
userspec_.c: userspec.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/userspec.c; then echo $(srcdir)/userspec.c; else echo userspec.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > userspec_.c
utime_.c: utime.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/utime.c; then echo $(srcdir)/utime.c; else echo utime.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > utime_.c
version-etc_.c: version-etc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/version-etc.c; then echo $(srcdir)/version-etc.c; else echo version-etc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > version-etc_.c
xgetcwd_.c: xgetcwd.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xgetcwd.c; then echo $(srcdir)/xgetcwd.c; else echo xgetcwd.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xgetcwd_.c
xgethostname_.c: xgethostname.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xgethostname.c; then echo $(srcdir)/xgethostname.c; else echo xgethostname.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xgethostname_.c
xmalloc_.c: xmalloc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xmalloc.c; then echo $(srcdir)/xmalloc.c; else echo xmalloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xmalloc_.c
xstrdup_.c: xstrdup.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrdup.c; then echo $(srcdir)/xstrdup.c; else echo xstrdup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrdup_.c
xstrtod_.c: xstrtod.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrtod.c; then echo $(srcdir)/xstrtod.c; else echo xstrtod.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrtod_.c
xstrtol_.c: xstrtol.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrtol.c; then echo $(srcdir)/xstrtol.c; else echo xstrtol.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrtol_.c
xstrtoul_.c: xstrtoul.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrtoul.c; then echo $(srcdir)/xstrtoul.c; else echo xstrtoul.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrtoul_.c
xstrtoumax_.c: xstrtoumax.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrtoumax.c; then echo $(srcdir)/xstrtoumax.c; else echo xstrtoumax.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrtoumax_.c
yesno_.c: yesno.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/yesno.c; then echo $(srcdir)/yesno.c; else echo yesno.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > yesno_.c
addext_.o alloca_.o argmatch_.o backupfile_.o basename_.o canon-host_.o \
chown_.o closeout_.o diacrit_.o dirname_.o dup2_.o error_.o \
euidaccess_.o exclude_.o fileblocks_.o filemode_.o fnmatch_.o \
fsusage_.o ftruncate_.o full-write_.o getdate_.o getgroups_.o \
gethostname_.o getline_.o getloadavg_.o getopt_.o getopt1_.o \
getugroups_.o getusershell_.o group-member_.o hard-locale_.o hash_.o \
human_.o idcache_.o isdir_.o lchown_.o linebuffer_.o long-options_.o \
lstat_.o makepath_.o malloc_.o md5_.o memcasecmp_.o memchr_.o memcmp_.o \
memcoll_.o memcpy_.o memmove_.o memset_.o mkdir_.o mktime_.o \
modechange_.o mountlist_.o nanosleep_.o obstack_.o path-concat_.o \
posixtm_.o putenv_.o quotearg_.o readtokens_.o readutmp_.o realloc_.o \
regex_.o rmdir_.o rpmatch_.o safe-read_.o same_.o save-cwd_.o \
savedir_.o stat_.o stime_.o stpcpy_.o strcasecmp_.o strcspn_.o \
strdup_.o strftime_.o stripslash_.o strncasecmp_.o strndup_.o \
strpbrk_.o strstr_.o strtod_.o strtol_.o strtoul_.o strtoull_.o \
strtoumax_.o strverscmp_.o userspec_.o utime_.o version-etc_.o \
xgetcwd_.o xgethostname_.o xmalloc_.o xstrdup_.o xstrtod_.o xstrtol_.o \
xstrtoul_.o xstrtoumax_.o yesno_.o : $(ANSI2KNR)
.y.c:
$(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*.c
if test -f y.tab.h; then \
if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \
else :; fi
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
mostlyclean-tags:
clean-tags:
distclean-tags:
-rm -f TAGS ID
maintainer-clean-tags:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pR $$d/$$file $(distdir); \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
libfu.a: $(OBJECTS)
rm -f $@
$(AR) cr $@ $(OBJECTS)
-$(RANLIB) $@
@AMDEP@include $(DEPDIR)/addext$U.Po
@AMDEP@include $(DEPDIR)/alloca.Po
@AMDEP@include $(DEPDIR)/argmatch$U.Po
@AMDEP@include $(DEPDIR)/backupfile$U.Po
@AMDEP@include $(DEPDIR)/basename$U.Po
@AMDEP@include $(DEPDIR)/canon-host$U.Po
@AMDEP@include $(DEPDIR)/chown.Po
@AMDEP@include $(DEPDIR)/closeout$U.Po
@AMDEP@include $(DEPDIR)/diacrit$U.Po
@AMDEP@include $(DEPDIR)/dirname$U.Po
@AMDEP@include $(DEPDIR)/dup2.Po
@AMDEP@include $(DEPDIR)/error.Po
@AMDEP@include $(DEPDIR)/euidaccess.Po
@AMDEP@include $(DEPDIR)/exclude$U.Po
@AMDEP@include $(DEPDIR)/fileblocks.Po
@AMDEP@include $(DEPDIR)/filemode$U.Po
@AMDEP@include $(DEPDIR)/fnmatch.Po
@AMDEP@include $(DEPDIR)/fsusage.Po
@AMDEP@include $(DEPDIR)/ftruncate.Po
@AMDEP@include $(DEPDIR)/full-write$U.Po
@AMDEP@include $(DEPDIR)/getdate$U.Po
@AMDEP@include $(DEPDIR)/getgroups.Po
@AMDEP@include $(DEPDIR)/gethostname.Po
@AMDEP@include $(DEPDIR)/getline.Po
@AMDEP@include $(DEPDIR)/getloadavg.Po
@AMDEP@include $(DEPDIR)/getopt$U.Po
@AMDEP@include $(DEPDIR)/getopt1$U.Po
@AMDEP@include $(DEPDIR)/getugroups$U.Po
@AMDEP@include $(DEPDIR)/getusershell.Po
@AMDEP@include $(DEPDIR)/group-member.Po
@AMDEP@include $(DEPDIR)/hard-locale$U.Po
@AMDEP@include $(DEPDIR)/hash$U.Po
@AMDEP@include $(DEPDIR)/human$U.Po
@AMDEP@include $(DEPDIR)/idcache$U.Po
@AMDEP@include $(DEPDIR)/isdir$U.Po
@AMDEP@include $(DEPDIR)/lchown.Po
@AMDEP@include $(DEPDIR)/linebuffer$U.Po
@AMDEP@include $(DEPDIR)/long-options$U.Po
@AMDEP@include $(DEPDIR)/lstat.Po
@AMDEP@include $(DEPDIR)/makepath$U.Po
@AMDEP@include $(DEPDIR)/malloc.Po
@AMDEP@include $(DEPDIR)/md5$U.Po
@AMDEP@include $(DEPDIR)/memcasecmp$U.Po
@AMDEP@include $(DEPDIR)/memchr.Po
@AMDEP@include $(DEPDIR)/memcmp.Po
@AMDEP@include $(DEPDIR)/memcoll$U.Po
@AMDEP@include $(DEPDIR)/memcpy.Po
@AMDEP@include $(DEPDIR)/memmove.Po
@AMDEP@include $(DEPDIR)/memset.Po
@AMDEP@include $(DEPDIR)/mkdir.Po
@AMDEP@include $(DEPDIR)/mktime.Po
@AMDEP@include $(DEPDIR)/modechange$U.Po
@AMDEP@include $(DEPDIR)/mountlist.Po
@AMDEP@include $(DEPDIR)/nanosleep.Po
@AMDEP@include $(DEPDIR)/obstack.Po
@AMDEP@include $(DEPDIR)/path-concat$U.Po
@AMDEP@include $(DEPDIR)/posixtm$U.Po
@AMDEP@include $(DEPDIR)/putenv.Po
@AMDEP@include $(DEPDIR)/quotearg$U.Po
@AMDEP@include $(DEPDIR)/readtokens$U.Po
@AMDEP@include $(DEPDIR)/readutmp$U.Po
@AMDEP@include $(DEPDIR)/realloc.Po
@AMDEP@include $(DEPDIR)/regex.Po
@AMDEP@include $(DEPDIR)/rmdir.Po
@AMDEP@include $(DEPDIR)/rpmatch.Po
@AMDEP@include $(DEPDIR)/safe-read$U.Po
@AMDEP@include $(DEPDIR)/same$U.Po
@AMDEP@include $(DEPDIR)/save-cwd$U.Po
@AMDEP@include $(DEPDIR)/savedir$U.Po
@AMDEP@include $(DEPDIR)/stat.Po
@AMDEP@include $(DEPDIR)/stime.Po
@AMDEP@include $(DEPDIR)/stpcpy.Po
@AMDEP@include $(DEPDIR)/strcasecmp.Po
@AMDEP@include $(DEPDIR)/strcspn.Po
@AMDEP@include $(DEPDIR)/strdup.Po
@AMDEP@include $(DEPDIR)/strftime.Po
@AMDEP@include $(DEPDIR)/stripslash$U.Po
@AMDEP@include $(DEPDIR)/strncasecmp.Po
@AMDEP@include $(DEPDIR)/strndup.Po
@AMDEP@include $(DEPDIR)/strpbrk.Po
@AMDEP@include $(DEPDIR)/strstr.Po
@AMDEP@include $(DEPDIR)/strtod.Po
@AMDEP@include $(DEPDIR)/strtol.Po
@AMDEP@include $(DEPDIR)/strtoul.Po
@AMDEP@include $(DEPDIR)/strtoull.Po
@AMDEP@include $(DEPDIR)/strtoumax.Po
@AMDEP@include $(DEPDIR)/strverscmp.Po
@AMDEP@include $(DEPDIR)/userspec$U.Po
@AMDEP@include $(DEPDIR)/utime.Po
@AMDEP@include $(DEPDIR)/version-etc$U.Po
@AMDEP@include $(DEPDIR)/xgetcwd$U.Po
@AMDEP@include $(DEPDIR)/xgethostname$U.Po
@AMDEP@include $(DEPDIR)/xmalloc$U.Po
@AMDEP@include $(DEPDIR)/xstrdup$U.Po
@AMDEP@include $(DEPDIR)/xstrtod$U.Po
@AMDEP@include $(DEPDIR)/xstrtol$U.Po
@AMDEP@include $(DEPDIR)/xstrtoul$U.Po
@AMDEP@include $(DEPDIR)/xstrtoumax$U.Po
@AMDEP@include $(DEPDIR)/yesno$U.Po
# Since this directory contains two parsers, we have to be careful to avoid
# running two $(YACC)s during parallel makes. See below.
getdate.c: getdate.y
@echo expect 10 shift/reduce conflicts
$(YACC) $(srcdir)/getdate.y
mv y.tab.c getdate.c
mostlyclean-depend:
# Make the rename atomic, in case sed is interrupted and later rerun.
# The artificial dependency on getdate.c keeps the two parsers from being
# built in parallel. Enforcing this little bit of sequentiality lets
# everyone (even those without bison) still run mostly parallel builds.
posixtm.c: posixtm.y getdate.c
$(YACC) $(srcdir)/posixtm.y
mv y.tab.c posixtm.tab.c
sed -e 's/yy/zz/g' posixtm.tab.c > tposixtm.c
mv tposixtm.c posixtm.c
rm -f posixtm.tab.c
clean-depend:
rename.o: rename.c
$(CC) -c $(CPPFLAGS) -DMVDIR="\"$(libdir)/mvdir\"" $(DEFS) \
-I.. -I$(srcdir) $(CFLAGS) $(srcdir)/rename.c
distclean-depend:
-rm -rf $(DEPDIR)
$(OBJECTS): ../config.h
maintainer-clean-depend:
backupfile.o getversion.o: backupfile.h
fnmatch.o: fnmatch.h
fsusage.o: fsusage.h
getopt1.o: getopt.h
modechange.o: modechange.h
mountlist.o: mountlist.h
xgetcwd.o: pathmax.h
makepath.o: makepath.h
obstack.o: obstack.h
group-member.o: group-member.h
@AMDEP@CCDEPMODE = @CCDEPMODE@
.PHONY: all check clean dist distclean install install-data install-exec \
installdirs maintainer-clean mostlyclean uninstall
.c.o:
@AMDEP@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c -o $@ $<
# Tell versions [3.59,3.63) of GNU make not to export all variables.
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
install-data-am:
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am:
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(HEADERS)
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
installdirs:
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
-rm -f Makefile.in
-test -z "getdate.c$(BUILT_SOURCES)$(MAINTAINERCLEANFILES)" || rm -f getdate.c $(BUILT_SOURCES) $(MAINTAINERCLEANFILES)
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
mostlyclean-kr mostlyclean-tags mostlyclean-depend \
mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-kr clean-tags \
clean-depend clean-generic mostlyclean-am
clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile distclean-kr \
distclean-tags distclean-depend distclean-generic \
clean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
maintainer-clean-compile maintainer-clean-kr \
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-kr distclean-kr clean-kr \
maintainer-clean-kr tags mostlyclean-tags distclean-tags clean-tags \
maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
check-am installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all install-strip installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
lstat.c: xstat.in
sed \
-e '/@IGNORE@/d' \
-e 's/@xstat@/lstat/g' \
-e '/_LSTAT_ONLY@/d' \
-e '/@BEGIN_STAT_ONLY@/,/@END_STAT_ONLY@/d' \
$(srcdir)/xstat.in > $@-t
mv $@-t $@
stat.c: xstat.in
sed \
-e '/@IGNORE@/d' \
-e 's/@xstat@/stat/g' \
-e '/_STAT_ONLY@/d' \
-e '/@BEGIN_LSTAT_ONLY@/,/@END_LSTAT_ONLY@/d' \
$(srcdir)/xstat.in > $@-t
mv $@-t $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

32
lib/TODO Normal file
View File

@@ -0,0 +1,32 @@
Things to do to hash.c:
Always use curly braces around statements in if/else/while/do/etc.
that span more than a line -- even around multiline simple statements
or single-line simple statements preceded by a comment line.
Never have lines longer than 80 chars.
Remove ^L characters. We don't want/need such crutches.
Get a good (smart) pagination filter. I have one (a perl script)
that usually does a decent job for me -- I called it something
like stdc-print and think I sent you an early verison.
I don't like the name `cursor'. I much prefer short names
like `p' for index variables. I doubt I'll change all of them,
but thought you should know why some will probably end up changing.
#define USE_OBSTACK somewhere
Fix this comment. Depending on system and application...
Mention fragmentation.
+#if USE_OBSTACK
+ /* Whenever obstacks are used, it is possible to allocate all overflowed
+ entries into a single stack, so they all can be freed in a single
+ operation. It is not clear if the speedup is worth the trouble. */
+ struct obstack entry_stack;
+#endif
assert (bucket_limit - bucket == n_buckets) ?
remove.c: s/done/successful or ok

105
lib/addext.c Normal file
View File

@@ -0,0 +1,105 @@
/* addext.c -- add an extension to a file name
Copyright (C) 1990, 1997, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by David MacKenzie <djm@gnu.ai.mit.edu> and Paul Eggert */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#ifndef HAVE_DOS_FILE_NAMES
# define HAVE_DOS_FILE_NAMES 0
#endif
#ifndef HAVE_LONG_FILE_NAMES
# define HAVE_LONG_FILE_NAMES 0
#endif
#include <backupfile.h>
#if HAVE_LIMITS_H
# include <limits.h>
#endif
#ifndef _POSIX_NAME_MAX
# define _POSIX_NAME_MAX 14
#endif
#include <sys/types.h>
#if HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
char *base_name PARAMS ((char const *));
/* Append to FILENAME the extension EXT, unless the result would be too long,
in which case just append the character E. */
void
addext (char *filename, char const *ext, int e)
{
char *s = base_name (filename);
size_t slen = strlen (s), extlen = strlen (ext);
long slen_max = -1;
#if HAVE_PATHCONF && defined _PC_NAME_MAX
if (slen + extlen <= _POSIX_NAME_MAX && ! HAVE_DOS_FILE_NAMES)
/* The file name is so short there's no need to call pathconf. */
slen_max = _POSIX_NAME_MAX;
else if (s == filename)
slen_max = pathconf (".", _PC_NAME_MAX);
else
{
char c = *s;
*s = 0;
slen_max = pathconf (filename, _PC_NAME_MAX);
*s = c;
}
#endif
if (slen_max < 0)
slen_max = HAVE_LONG_FILE_NAMES ? 255 : 14;
if (HAVE_DOS_FILE_NAMES && slen_max <= 12)
{
/* Live within DOS's 8.3 limit. */
char *dot = strchr (s, '.');
if (dot)
{
slen -= dot + 1 - s;
s = dot + 1;
slen_max = 3;
}
else
slen_max = 8;
extlen = 9; /* Don't use EXT. */
}
if (slen + extlen <= slen_max)
strcpy (s + slen, ext);
else
{
if (slen_max <= slen)
slen = slen_max - 1;
s[slen] = e;
s[slen + 1] = 0;
}
}

View File

@@ -1,194 +1,503 @@
/*
alloca -- (mostly) portable public-domain implementation -- D A Gwyn
/* alloca.c -- allocate automatically reclaimed memory
(Mostly) portable public-domain implementation -- D A Gwyn
last edit: 86/05/30 rms
include config.h, since on VMS it renames some symbols.
Use xmalloc instead of malloc.
This implementation of the PWB library alloca function,
which is used to allocate space off the run-time stack so
that it is automatically reclaimed upon procedure exit,
was inspired by discussions with J. Q. Johnson of Cornell.
J.Otto Tennant <jot@cray.com> contributed the Cray support.
This implementation of the PWB library alloca() function,
which is used to allocate space off the run-time stack so
that it is automatically reclaimed upon procedure exit,
was inspired by discussions with J. Q. Johnson of Cornell.
There are some preprocessor constants that can
be defined when compiling for your specific system, for
improved efficiency; however, the defaults should be okay.
It should work under any C implementation that uses an
actual procedure stack (as opposed to a linked list of
frames). There are some preprocessor constants that can
be defined when compiling for your specific system, for
improved efficiency; however, the defaults should be okay.
The general concept of this implementation is to keep
track of all alloca-allocated blocks, and reclaim any
that are found to be deeper in the stack than the current
invocation. This heuristic does not reclaim storage as
soon as it becomes invalid, but it will do so eventually.
The general concept of this implementation is to keep
track of all alloca()-allocated blocks, and reclaim any
that are found to be deeper in the stack than the current
invocation. This heuristic does not reclaim storage as
soon as it becomes invalid, but it will do so eventually.
As a special case, alloca(0) reclaims storage without
allocating any. It is a good idea to use alloca(0) in
your main control loop, etc. to force garbage collection. */
As a special case, alloca(0) reclaims storage without
allocating any. It is a good idea to use alloca(0) in
your main control loop, etc. to force garbage collection.
*/
#ifndef lint
static char SCCSid[] = "@(#)alloca.c 1.1"; /* for the "what" utility */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if HAVE_STRING_H
# include <string.h>
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifdef emacs
#include "config.h"
#ifdef static
# include "blockinput.h"
#endif
/* If compiling with GCC 2, this file's not needed. */
#if !defined (__GNUC__) || __GNUC__ < 2
/* If someone has defined alloca as a macro,
there must be some other way alloca is supposed to work. */
# ifndef alloca
# ifdef emacs
# ifdef static
/* actually, only want this if static is defined as ""
-- this is for usg, in which emacs must undefine static
in order to make unexec workable
*/
#ifndef STACK_DIRECTION
# ifndef STACK_DIRECTION
you
lose
-- must know STACK_DIRECTION at compile-time
#endif /* STACK_DIRECTION undefined */
#endif /* static */
#endif /* emacs */
# endif /* STACK_DIRECTION undefined */
# endif /* static */
# endif /* emacs */
#ifndef alloca /* If compiling with GCC, this file's not needed. */
/* If your stack is a linked list of frames, you have to
provide an "address metric" ADDRESS_FUNCTION macro. */
#ifdef __STDC__
typedef void *pointer; /* generic pointer type */
#else
typedef char *pointer; /* generic pointer type */
#endif
# if defined (CRAY) && defined (CRAY_STACKSEG_END)
long i00afunc ();
# define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg))
# else
# define ADDRESS_FUNCTION(arg) &(arg)
# endif
#define NULL 0 /* null pointer constant */
# if __STDC__
typedef void *pointer;
# else
typedef char *pointer;
# endif
extern void free();
extern pointer xmalloc();
# ifndef NULL
# define NULL 0
# endif
/*
Define STACK_DIRECTION if you know the direction of stack
growth for your system; otherwise it will be automatically
deduced at run-time.
/* Different portions of Emacs need to call different versions of
malloc. The Emacs executable needs alloca to call xmalloc, because
ordinary malloc isn't protected from input signals. On the other
hand, the utilities in lib-src need alloca to call malloc; some of
them are very simple, and don't have an xmalloc routine.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown
*/
Non-Emacs programs expect this to call xmalloc.
#ifndef STACK_DIRECTION
#define STACK_DIRECTION 0 /* direction unknown */
#endif
Callers below should use malloc. */
#if STACK_DIRECTION != 0
# ifndef emacs
# define malloc xmalloc
# endif
extern pointer malloc ();
#define STACK_DIR STACK_DIRECTION /* known at compile-time */
/* Define STACK_DIRECTION if you know the direction of stack
growth for your system; otherwise it will be automatically
deduced at run-time.
#else /* STACK_DIRECTION == 0; need run-time code */
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
static int stack_dir; /* 1 or -1 once known */
#define STACK_DIR stack_dir
# ifndef STACK_DIRECTION
# define STACK_DIRECTION 0 /* Direction unknown. */
# endif
# if STACK_DIRECTION != 0
# define STACK_DIR STACK_DIRECTION /* Known at compile-time. */
# else /* STACK_DIRECTION == 0; need run-time code. */
static int stack_dir; /* 1 or -1 once known. */
# define STACK_DIR stack_dir
static void
find_stack_direction (/* void */)
find_stack_direction ()
{
static char *addr = NULL; /* address of first
`dummy', once known */
auto char dummy; /* to get stack address */
static char *addr = NULL; /* Address of first `dummy', once known. */
auto char dummy; /* To get stack address. */
if (addr == NULL)
{ /* initial entry */
addr = &dummy;
{ /* Initial entry. */
addr = ADDRESS_FUNCTION (dummy);
find_stack_direction (); /* recurse once */
find_stack_direction (); /* Recurse once. */
}
else
{
/* Second entry. */
if (ADDRESS_FUNCTION (dummy) > addr)
stack_dir = 1; /* Stack grew upward. */
else
stack_dir = -1; /* Stack grew downward. */
}
else /* second entry */
if (&dummy > addr)
stack_dir = 1; /* stack grew upward */
else
stack_dir = -1; /* stack grew downward */
}
#endif /* STACK_DIRECTION == 0 */
# endif /* STACK_DIRECTION == 0 */
/*
An "alloca header" is used to:
(a) chain together all alloca()ed blocks;
(b) keep track of stack depth.
/* An "alloca header" is used to:
(a) chain together all alloca'ed blocks;
(b) keep track of stack depth.
It is very important that sizeof(header) agree with malloc()
alignment chunk size. The following default should work okay.
*/
It is very important that sizeof(header) agree with malloc
alignment chunk size. The following default should work okay. */
#ifndef ALIGN_SIZE
#define ALIGN_SIZE sizeof(double)
#endif
# ifndef ALIGN_SIZE
# define ALIGN_SIZE sizeof(double)
# endif
typedef union hdr
{
char align[ALIGN_SIZE]; /* to force sizeof(header) */
char align[ALIGN_SIZE]; /* To force sizeof(header). */
struct
{
union hdr *next; /* for chaining headers */
char *deep; /* for stack depth measure */
union hdr *next; /* For chaining headers. */
char *deep; /* For stack depth measure. */
} h;
} header;
/*
alloca( size ) returns a pointer to at least `size' bytes of
storage which will be automatically reclaimed upon exit from
the procedure that called alloca(). Originally, this space
was supposed to be taken from the current stack frame of the
caller, but that method cannot be made to work for some
implementations of C, for example under Gould's UTX/32.
*/
static header *last_alloca_header = NULL; /* -> last alloca header. */
static header *last_alloca_header = NULL; /* -> last alloca header */
/* Return a pointer to at least SIZE bytes of storage,
which will be automatically reclaimed upon exit from
the procedure that called alloca. Originally, this space
was supposed to be taken from the current stack frame of the
caller, but that method cannot be made to work for some
implementations of C, for example under Gould's UTX/32. */
pointer
alloca (size) /* returns pointer to storage */
unsigned size; /* # bytes to allocate */
alloca (unsigned size)
{
auto char probe; /* probes stack depth: */
register char *depth = &probe;
auto char probe; /* Probes stack depth: */
register char *depth = ADDRESS_FUNCTION (probe);
#if STACK_DIRECTION == 0
if (STACK_DIR == 0) /* unknown growth direction */
# if STACK_DIRECTION == 0
if (STACK_DIR == 0) /* Unknown growth direction. */
find_stack_direction ();
#endif
# endif
/* Reclaim garbage, defined as all alloca()ed storage that
was allocated from deeper in the stack than currently. */
/* Reclaim garbage, defined as all alloca'd storage that
was allocated from deeper in the stack than currently. */
{
register header *hp; /* traverses linked list */
register header *hp; /* Traverses linked list. */
# ifdef emacs
BLOCK_INPUT;
# endif
for (hp = last_alloca_header; hp != NULL;)
if ((STACK_DIR > 0 && hp->h.deep > depth)
|| (STACK_DIR < 0 && hp->h.deep < depth))
{
register header *np = hp->h.next;
register header *np = hp->h.next;
free ((pointer) hp); /* collect garbage */
free ((pointer) hp); /* Collect garbage. */
hp = np; /* -> next header */
hp = np; /* -> next header. */
}
else
break; /* rest are not deeper */
break; /* Rest are not deeper. */
last_alloca_header = hp; /* -> last valid storage */
last_alloca_header = hp; /* -> last valid storage. */
# ifdef emacs
UNBLOCK_INPUT;
# endif
}
if (size == 0)
return NULL; /* no allocation required */
return NULL; /* No allocation required. */
/* Allocate combined header + user data storage. */
/* Allocate combined header + user data storage. */
{
register pointer new = xmalloc (sizeof (header) + size);
/* address of header */
register pointer new = malloc (sizeof (header) + size);
/* Address of header. */
((header *)new)->h.next = last_alloca_header;
((header *)new)->h.deep = depth;
if (new == 0)
abort();
last_alloca_header = (header *)new;
((header *) new)->h.next = last_alloca_header;
((header *) new)->h.deep = depth;
/* User storage begins just after header. */
last_alloca_header = (header *) new;
return (pointer)((char *)new + sizeof(header));
/* User storage begins just after header. */
return (pointer) ((char *) new + sizeof (header));
}
}
#endif /* no alloca */
# if defined (CRAY) && defined (CRAY_STACKSEG_END)
# ifdef DEBUG_I00AFUNC
# include <stdio.h>
# endif
# ifndef CRAY_STACK
# define CRAY_STACK
# ifndef CRAY2
/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */
struct stack_control_header
{
long shgrow:32; /* Number of times stack has grown. */
long shaseg:32; /* Size of increments to stack. */
long shhwm:32; /* High water mark of stack. */
long shsize:32; /* Current size of stack (all segments). */
};
/* The stack segment linkage control information occurs at
the high-address end of a stack segment. (The stack
grows from low addresses to high addresses.) The initial
part of the stack segment linkage control information is
0200 (octal) words. This provides for register storage
for the routine which overflows the stack. */
struct stack_segment_linkage
{
long ss[0200]; /* 0200 overflow words. */
long sssize:32; /* Number of words in this segment. */
long ssbase:32; /* Offset to stack base. */
long:32;
long sspseg:32; /* Offset to linkage control of previous
segment of stack. */
long:32;
long sstcpt:32; /* Pointer to task common address block. */
long sscsnm; /* Private control structure number for
microtasking. */
long ssusr1; /* Reserved for user. */
long ssusr2; /* Reserved for user. */
long sstpid; /* Process ID for pid based multi-tasking. */
long ssgvup; /* Pointer to multitasking thread giveup. */
long sscray[7]; /* Reserved for Cray Research. */
long ssa0;
long ssa1;
long ssa2;
long ssa3;
long ssa4;
long ssa5;
long ssa6;
long ssa7;
long sss0;
long sss1;
long sss2;
long sss3;
long sss4;
long sss5;
long sss6;
long sss7;
};
# else /* CRAY2 */
/* The following structure defines the vector of words
returned by the STKSTAT library routine. */
struct stk_stat
{
long now; /* Current total stack size. */
long maxc; /* Amount of contiguous space which would
be required to satisfy the maximum
stack demand to date. */
long high_water; /* Stack high-water mark. */
long overflows; /* Number of stack overflow ($STKOFEN) calls. */
long hits; /* Number of internal buffer hits. */
long extends; /* Number of block extensions. */
long stko_mallocs; /* Block allocations by $STKOFEN. */
long underflows; /* Number of stack underflow calls ($STKRETN). */
long stko_free; /* Number of deallocations by $STKRETN. */
long stkm_free; /* Number of deallocations by $STKMRET. */
long segments; /* Current number of stack segments. */
long maxs; /* Maximum number of stack segments so far. */
long pad_size; /* Stack pad size. */
long current_address; /* Current stack segment address. */
long current_size; /* Current stack segment size. This
number is actually corrupted by STKSTAT to
include the fifteen word trailer area. */
long initial_address; /* Address of initial segment. */
long initial_size; /* Size of initial segment. */
};
/* The following structure describes the data structure which trails
any stack segment. I think that the description in 'asdef' is
out of date. I only describe the parts that I am sure about. */
struct stk_trailer
{
long this_address; /* Address of this block. */
long this_size; /* Size of this block (does not include
this trailer). */
long unknown2;
long unknown3;
long link; /* Address of trailer block of previous
segment. */
long unknown5;
long unknown6;
long unknown7;
long unknown8;
long unknown9;
long unknown10;
long unknown11;
long unknown12;
long unknown13;
long unknown14;
};
# endif /* CRAY2 */
# endif /* not CRAY_STACK */
# ifdef CRAY2
/* Determine a "stack measure" for an arbitrary ADDRESS.
I doubt that "lint" will like this much. */
static long
i00afunc (long *address)
{
struct stk_stat status;
struct stk_trailer *trailer;
long *block, size;
long result = 0;
/* We want to iterate through all of the segments. The first
step is to get the stack status structure. We could do this
more quickly and more directly, perhaps, by referencing the
$LM00 common block, but I know that this works. */
STKSTAT (&status);
/* Set up the iteration. */
trailer = (struct stk_trailer *) (status.current_address
+ status.current_size
- 15);
/* There must be at least one stack segment. Therefore it is
a fatal error if "trailer" is null. */
if (trailer == 0)
abort ();
/* Discard segments that do not contain our argument address. */
while (trailer != 0)
{
block = (long *) trailer->this_address;
size = trailer->this_size;
if (block == 0 || size == 0)
abort ();
trailer = (struct stk_trailer *) trailer->link;
if ((block <= address) && (address < (block + size)))
break;
}
/* Set the result to the offset in this segment and add the sizes
of all predecessor segments. */
result = address - block;
if (trailer == 0)
{
return result;
}
do
{
if (trailer->this_size <= 0)
abort ();
result += trailer->this_size;
trailer = (struct stk_trailer *) trailer->link;
}
while (trailer != 0);
/* We are done. Note that if you present a bogus address (one
not in any segment), you will get a different number back, formed
from subtracting the address of the first block. This is probably
not what you want. */
return (result);
}
# else /* not CRAY2 */
/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP.
Determine the number of the cell within the stack,
given the address of the cell. The purpose of this
routine is to linearize, in some sense, stack addresses
for alloca. */
static long
i00afunc (long address)
{
long stkl = 0;
long size, pseg, this_segment, stack;
long result = 0;
struct stack_segment_linkage *ssptr;
/* Register B67 contains the address of the end of the
current stack segment. If you (as a subprogram) store
your registers on the stack and find that you are past
the contents of B67, you have overflowed the segment.
B67 also points to the stack segment linkage control
area, which is what we are really interested in. */
stkl = CRAY_STACKSEG_END ();
ssptr = (struct stack_segment_linkage *) stkl;
/* If one subtracts 'size' from the end of the segment,
one has the address of the first word of the segment.
If this is not the first segment, 'pseg' will be
nonzero. */
pseg = ssptr->sspseg;
size = ssptr->sssize;
this_segment = stkl - size;
/* It is possible that calling this routine itself caused
a stack overflow. Discard stack segments which do not
contain the target address. */
while (!(this_segment <= address && address <= stkl))
{
# ifdef DEBUG_I00AFUNC
fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl);
# endif
if (pseg == 0)
break;
stkl = stkl - pseg;
ssptr = (struct stack_segment_linkage *) stkl;
size = ssptr->sssize;
pseg = ssptr->sspseg;
this_segment = stkl - size;
}
result = address - this_segment;
/* If you subtract pseg from the current end of the stack,
you get the address of the previous stack segment's end.
This seems a little convoluted to me, but I'll bet you save
a cycle somewhere. */
while (pseg != 0)
{
# ifdef DEBUG_I00AFUNC
fprintf (stderr, "%011o %011o\n", pseg, size);
# endif
stkl = stkl - pseg;
ssptr = (struct stack_segment_linkage *) stkl;
size = ssptr->sssize;
pseg = ssptr->sspseg;
result += size;
}
return (result);
}
# endif /* not CRAY2 */
# endif /* CRAY */
# endif /* no alloca */
#endif /* not GCC version 2 */

View File

@@ -1,5 +1,5 @@
/* argmatch.c -- find a match for a string in an array
Copyright (C) 1990 Free Software Foundation, Inc.
Copyright (C) 1990, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,35 +12,86 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by David MacKenzie <djm@ai.mit.edu> */
/* Written by David MacKenzie <djm@ai.mit.edu>
Modified by Akim Demaille <demaille@inf.enst.fr> */
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <sys/types.h>
#include "argmatch.h"
#include <stdio.h>
#ifdef STDC_HEADERS
#include <string.h>
# include <string.h>
#endif
extern char *program_name;
#if HAVE_LOCALE_H
# include <locale.h>
#endif
/* If ARG is an unambiguous match for an element of the
null-terminated array OPTLIST, return the index in OPTLIST
of the matched element, else -1 if it does not match any element
or -2 if it is ambiguous (is a prefix of more than one element). */
#if ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#endif
int
argmatch (arg, optlist)
char *arg;
char **optlist;
#include "error.h"
#include "quotearg.h"
/* When reporting an invalid argument, show nonprinting characters
by using the quoting style ARGMATCH_QUOTING_STYLE. Do not use
literal_quoting_style. */
#ifndef ARGMATCH_QUOTING_STYLE
# define ARGMATCH_QUOTING_STYLE locale_quoting_style
#endif
/* The following test is to work around the gross typo in
systems like Sony NEWS-OS Release 4.0C, whereby EXIT_FAILURE
is defined to 0, not 1. */
#if !EXIT_FAILURE
# undef EXIT_FAILURE
# define EXIT_FAILURE 1
#endif
/* Non failing version of argmatch call this function after failing. */
#ifndef ARGMATCH_DIE
# define ARGMATCH_DIE exit (EXIT_FAILURE)
#endif
#ifdef ARGMATCH_DIE_DECL
ARGMATCH_DIE_DECL;
#endif
static void
__argmatch_die (void)
{
int i; /* Temporary index in OPTLIST. */
ARGMATCH_DIE;
}
/* Used by XARGMATCH and XARGCASEMATCH. See description in argmatch.h.
Default to __argmatch_die, but allow caller to change this at run-time. */
argmatch_exit_fn argmatch_die = __argmatch_die;
/* If ARG is an unambiguous match for an element of the
null-terminated array ARGLIST, return the index in ARGLIST
of the matched element, else -1 if it does not match any element
or -2 if it is ambiguous (is a prefix of more than one element).
If SENSITIVE, comparison is case sensitive.
If VALLIST is none null, use it to resolve ambiguities limited to
synonyms, i.e., for
"yes", "yop" -> 0
"no", "nope" -> 1
"y" is a valid argument, for `0', and "n" for `1'. */
static int
__argmatch_internal (const char *arg, const char *const *arglist,
const char *vallist, size_t valsize,
int case_sensitive)
{
int i; /* Temporary index in ARGLIST. */
size_t arglen; /* Length of ARG. */
int matchind = -1; /* Index of first nonexact match. */
int ambiguous = 0; /* If nonzero, multiple nonexact match(es). */
@@ -48,19 +99,30 @@ argmatch (arg, optlist)
arglen = strlen (arg);
/* Test all elements for either exact match or abbreviated matches. */
for (i = 0; optlist[i]; i++)
for (i = 0; arglist[i]; i++)
{
if (!strncmp (optlist[i], arg, arglen))
if (case_sensitive
? !strncmp (arglist[i], arg, arglen)
: !strncasecmp (arglist[i], arg, arglen))
{
if (strlen (optlist[i]) == arglen)
if (strlen (arglist[i]) == arglen)
/* Exact match found. */
return i;
else if (matchind == -1)
/* First nonexact match found. */
matchind = i;
else
/* Second nonexact match found. */
ambiguous = 1;
{
/* Second nonexact match found. */
if (vallist == NULL
|| memcmp (vallist + valsize * matchind,
vallist + valsize * i, valsize))
{
/* There is a real ambiguity, or we could not
disambiguate. */
ambiguous = 1;
}
}
}
}
if (ambiguous)
@@ -69,21 +131,176 @@ argmatch (arg, optlist)
return matchind;
}
/* argmatch - case sensitive version */
int
argmatch (const char *arg, const char *const *arglist,
const char *vallist, size_t valsize)
{
return __argmatch_internal (arg, arglist, vallist, valsize, 1);
}
/* argcasematch - case insensitive version */
int
argcasematch (const char *arg, const char *const *arglist,
const char *vallist, size_t valsize)
{
return __argmatch_internal (arg, arglist, vallist, valsize, 0);
}
/* Error reporting for argmatch.
KIND is a description of the type of entity that was being matched.
CONTEXT is a description of the type of entity that was being matched.
VALUE is the invalid value that was given.
PROBLEM is the return value from argmatch. */
void
invalid_arg (kind, value, problem)
char *kind;
char *value;
int problem;
argmatch_invalid (const char *context, const char *value, int problem)
{
fprintf (stderr, "%s: ", program_name);
if (problem == -1)
fprintf (stderr, "invalid");
else /* Assume -2. */
fprintf (stderr, "ambiguous");
fprintf (stderr, " %s `%s'\n", kind, value);
char const *format = (problem == -1
? _("invalid argument %s for `%s'")
: _("ambiguous argument %s for `%s'"));
error (0, 0, format, quotearg_style (ARGMATCH_QUOTING_STYLE, value), context);
}
/* List the valid arguments for argmatch.
ARGLIST is the same as in argmatch.
VALLIST is a pointer to an array of values.
VALSIZE is the size of the elements of VALLIST */
void
argmatch_valid (const char *const *arglist,
const char *vallist, size_t valsize)
{
int i;
const char *last_val = NULL;
/* We try to put synonyms on the same line. The assumption is that
synonyms follow each other */
fprintf (stderr, _("Valid arguments are:"));
for (i = 0; arglist[i]; i++)
if ((i == 0)
|| memcmp (last_val, vallist + valsize * i, valsize))
{
fprintf (stderr, "\n - `%s'", arglist[i]);
last_val = vallist + valsize * i;
}
else
{
fprintf (stderr, ", `%s'", arglist[i]);
}
putc ('\n', stderr);
}
/* Never failing versions of the previous functions.
CONTEXT is the context for which argmatch is called (e.g.,
"--version-control", or "$VERSION_CONTROL" etc.). Upon failure,
calls the (supposed never to return) function EXIT_FN. */
int
__xargmatch_internal (const char *context,
const char *arg, const char *const *arglist,
const char *vallist, size_t valsize,
int case_sensitive,
argmatch_exit_fn exit_fn)
{
int res = __argmatch_internal (arg, arglist,
vallist, valsize,
case_sensitive);
if (res >= 0)
/* Success. */
return res;
/* We failed. Explain why. */
argmatch_invalid (context, arg, res);
argmatch_valid (arglist, vallist, valsize);
(*exit_fn) ();
return -1; /* To please the compilers. */
}
/* Look for VALUE in VALLIST, an array of objects of size VALSIZE and
return the first corresponding argument in ARGLIST */
const char *
argmatch_to_argument (const char *value,
const char *const *arglist,
const char *vallist, size_t valsize)
{
int i;
for (i = 0; arglist[i]; i++)
if (!memcmp (value, vallist + valsize * i, valsize))
return arglist[i];
return NULL;
}
#ifdef TEST
/*
* Based on "getversion.c" by David MacKenzie <djm@gnu.ai.mit.edu>
*/
char *program_name;
extern const char *getenv ();
/* When to make backup files. */
enum backup_type
{
/* Never make backups. */
none,
/* Make simple backups of every file. */
simple,
/* Make numbered backups of files that already have numbered backups,
and simple backups of the others. */
numbered_existing,
/* Make numbered backups of every file. */
numbered
};
/* Two tables describing arguments (keys) and their corresponding
values */
static const char *const backup_args[] =
{
"no", "none", "off",
"simple", "never",
"existing", "nil",
"numbered", "t",
0
};
static const enum backup_type backup_vals[] =
{
none, none, none,
simple, simple,
numbered_existing, numbered_existing,
numbered, numbered
};
int
main (int argc, const char *const *argv)
{
const char *cp;
enum backup_type backup_type = none;
program_name = (char *) argv[0];
if (argc > 2)
{
fprintf (stderr, "Usage: %s [VERSION_CONTROL]\n", program_name);
exit (1);
}
if ((cp = getenv ("VERSION_CONTROL")))
backup_type = XARGCASEMATCH ("$VERSION_CONTROL", cp,
backup_args, backup_vals);
if (argc == 2)
backup_type = XARGCASEMATCH (program_name, argv[1],
backup_args, backup_vals);
printf ("The version control is `%s'\n",
ARGMATCH_TO_ARGUMENT (backup_type, backup_args, backup_vals));
return 0;
}
#endif

129
lib/argmatch.h Normal file
View File

@@ -0,0 +1,129 @@
/* argmatch.h -- definitions and prototypes for argmatch.c
Copyright (C) 1990, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by David MacKenzie <djm@ai.mit.edu>
Modified by Akim Demaille <demaille@inf.enst.fr> */
#ifndef ARGMATCH_H_
# define ARGMATCH_H_ 1
# if HAVE_CONFIG_H
# include <config.h>
# endif
# include <sys/types.h>
# ifndef PARAMS
# if PROTOTYPES || (defined (__STDC__) && __STDC__)
# define PARAMS(args) args
# else
# define PARAMS(args) ()
# endif /* GCC. */
# endif /* Not PARAMS. */
/* Assert there are as many real arguments as there are values
(argument list ends with a NULL guard). There is no execution
cost, since it will be statically evalauted to `assert (0)' or
`assert (1)'. Unfortunately there is no -Wassert-0. */
# undef ARRAY_CARDINALITY
# define ARRAY_CARDINALITY(Array) (sizeof ((Array)) / sizeof (*(Array)))
# define ARGMATCH_ASSERT(Arglist, Vallist) \
assert (ARRAY_CARDINALITY ((Arglist)) == ARRAY_CARDINALITY ((Vallist)) + 1)
/* Return the index of the element of ARGLIST (NULL terminated) that
matches with ARG. If VALLIST is not NULL, then use it to resolve
false ambiguities (i.e., different matches of ARG but corresponding
to the same values in VALLIST). */
int argmatch
PARAMS ((const char *arg, const char *const *arglist,
const char *vallist, size_t valsize));
int argcasematch
PARAMS ((const char *arg, const char *const *arglist,
const char *vallist, size_t valsize));
# define ARGMATCH(Arg, Arglist, Vallist) \
argmatch ((Arg), (Arglist), (const char *) (Vallist), sizeof (*(Vallist)))
# define ARGCASEMATCH(Arg, Arglist, Vallist) \
argcasematch ((Arg), (Arglist), (const char *) (Vallist), sizeof (*(Vallist)))
/* xargmatch calls this function when it fails. This function should not
return. By default, this is a function that calls ARGMATCH_DIE which
in turn defaults to `exit (EXIT_FAILURE)'. */
typedef void (*argmatch_exit_fn) PARAMS ((void));
extern argmatch_exit_fn argmatch_die;
/* Report on stderr why argmatch failed. Report correct values. */
void argmatch_invalid
PARAMS ((const char *context, const char *value, int problem));
/* Left for compatibility with the old name invalid_arg */
# define invalid_arg(Context, Value, Problem) \
argmatch_invalid ((Context), (Value), (Problem))
/* Report on stderr the list of possible arguments. */
void argmatch_valid
PARAMS ((const char *const *arglist,
const char *vallist, size_t valsize));
# define ARGMATCH_VALID(Arglist, Vallist) \
argmatch_valid (Arglist, (const char *) Vallist, sizeof (*(Vallist)))
/* Same as argmatch, but upon failure, reports a explanation on the
failure, and exits using the function EXIT_FN. */
int __xargmatch_internal
PARAMS ((const char *context,
const char *arg, const char *const *arglist,
const char *vallist, size_t valsize,
int case_sensitive, argmatch_exit_fn exit_fn));
/* Programmer friendly interface to __xargmatch_internal. */
# define XARGMATCH(Context, Arg, Arglist, Vallist) \
(Vallist [__xargmatch_internal ((Context), (Arg), (Arglist), \
(const char *) (Vallist), \
sizeof (*(Vallist)), \
1, argmatch_die)])
# define XARGCASEMATCH(Context, Arg, Arglist, Vallist) \
(Vallist [__xargmatch_internal ((Context), (Arg), (Arglist), \
(const char *) (Vallist), \
sizeof (*(Vallist)), \
0, argmatch_die)])
/* Convert a value into a corresponding argument. */
const char *argmatch_to_argument
PARAMS ((char const *value, const char *const *arglist,
const char *vallist, size_t valsize));
# define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist) \
argmatch_to_argument ((char const *) &(Value), (Arglist), \
(const char *) (Vallist), sizeof (*(Vallist)))
#endif /* ARGMATCH_H_ */

View File

@@ -1,5 +1,5 @@
/* backupfile.c -- make Emacs style backup file names
Copyright (C) 1990 Free Software Foundation, Inc.
Copyright (C) 1990-1997, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,91 +12,103 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; see the file COPYING.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* David MacKenzie <djm@gnu.ai.mit.edu>.
/* Written by David MacKenzie <djm@gnu.ai.mit.edu>.
Some algorithms adapted from GNU Emacs. */
#ifdef HAVE_CONFIG_H
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <argmatch.h>
#include <backupfile.h>
#include <stdio.h>
#include <ctype.h>
#include <sys/types.h>
#include "backupfile.h"
#ifdef HAVE_STRING_H
#if HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#ifdef HAVE_DIRENT_H
#if HAVE_DIRENT_H
# include <dirent.h>
# define NLENGTH(direct) (strlen((direct)->d_name))
#else /* not HAVE_DIRENT_H */
# define NLENGTH(direct) strlen ((direct)->d_name)
#else
# define dirent direct
# define NLENGTH(direct) ((direct)->d_namlen)
# ifdef HAVE_SYS_NDIR_H
# define NLENGTH(direct) ((size_t) (direct)->d_namlen)
# if HAVE_SYS_NDIR_H
# include <sys/ndir.h>
# endif /* HAVE_SYS_NDIR_H */
# ifdef HAVE_SYS_DIR_H
# endif
# if HAVE_SYS_DIR_H
# include <sys/dir.h>
# endif /* HAVE_SYS_DIR_H */
# ifdef HAVE_NDIR_H
# endif
# if HAVE_NDIR_H
# include <ndir.h>
# endif /* HAVE_NDIR_H */
#endif /* HAVE_DIRENT_H */
# endif
#endif
#ifdef CLOSEDIR_VOID
#if CLOSEDIR_VOID
/* Fake a return value. */
# define CLOSEDIR(d) (closedir (d), 0)
#else
# define CLOSEDIR(d) closedir (d)
#endif
#ifdef STDC_HEADERS
#if STDC_HEADERS
# include <stdlib.h>
#else
char *malloc ();
#endif
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define ISASCII(c) 1
#else
# define ISASCII(c) isascii(c)
#ifndef HAVE_DECL_GETENV
char *getenv ();
#endif
#define ISDIGIT(c) (ISASCII ((unsigned char) (c)) \
&& isdigit ((unsigned char) (c)))
char *base_name PARAMS ((char const *));
#if defined (HAVE_UNISTD_H)
#include <unistd.h>
#if HAVE_DIRENT_H || HAVE_NDIR_H || HAVE_SYS_DIR_H || HAVE_SYS_NDIR_H
# define HAVE_DIR 1
#else
# define HAVE_DIR 0
#endif
#if defined (_POSIX_VERSION)
/* POSIX does not require that the d_ino field be present, and some
systems do not provide it. */
# define REAL_DIR_ENTRY(dp) 1
#else
#if HAVE_LIMITS_H
# include <limits.h>
#endif
#ifndef CHAR_BIT
# define CHAR_BIT 8
#endif
/* Upper bound on the string length of an integer converted to string.
302 / 1000 is ceil (log10 (2.0)). Subtract 1 for the sign bit;
add 1 for integer division truncation; add 1 more for a minus sign. */
#define INT_STRLEN_BOUND(t) ((sizeof (t) * CHAR_BIT - 1) * 302 / 1000 + 2)
/* ISDIGIT differs from isdigit, as follows:
- Its arg may be any int or unsigned int; it need not be an unsigned char.
- It's guaranteed to evaluate its argument exactly once.
- It's typically faster.
Posix 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that
only '0' through '9' are digits. Prefer ISDIGIT to isdigit unless
it's important to use the locale's definition of `digit' even when the
host does not conform to Posix. */
#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
#if D_INO_IN_DIRENT
# define REAL_DIR_ENTRY(dp) ((dp)->d_ino != 0)
#else
# define REAL_DIR_ENTRY(dp) 1
#endif
/* Which type of backup file names are generated. */
enum backup_type backup_type = none;
/* The extension added to file names to produce a simple (as opposed
to numbered) backup file name. */
char *simple_backup_suffix = "~";
const char *simple_backup_suffix = "~";
char *basename ();
char *dirname ();
static char *concat ();
char *find_backup_file_name ();
static char *make_version_name ();
static int max_backup_version ();
static int version_number ();
static int max_backup_version PARAMS ((const char *, const char *));
static int version_number PARAMS ((const char *, const char *, size_t));
/* Return the name of the new backup file for file FILE,
allocated with malloc. Return 0 if out of memory.
@@ -104,46 +116,62 @@ static int version_number ();
Do not call this function if backup_type == none. */
char *
find_backup_file_name (file)
char *file;
find_backup_file_name (const char *file, enum backup_type backup_type)
{
char *dir;
char *base_versions;
int highest_backup;
size_t backup_suffix_size_max;
size_t file_len = strlen (file);
size_t numbered_suffix_size_max = INT_STRLEN_BOUND (int) + 4;
char *s;
const char *suffix = simple_backup_suffix;
if (backup_type == simple)
return concat (file, simple_backup_suffix);
base_versions = concat (basename (file), ".~");
if (base_versions == 0)
return 0;
dir = dirname (file);
if (dir == 0)
/* Allow room for simple or `.~N~' backups. */
backup_suffix_size_max = strlen (simple_backup_suffix) + 1;
if (HAVE_DIR && backup_suffix_size_max < numbered_suffix_size_max)
backup_suffix_size_max = numbered_suffix_size_max;
s = malloc (file_len + backup_suffix_size_max + numbered_suffix_size_max);
if (s)
{
free (base_versions);
return 0;
strcpy (s, file);
#if HAVE_DIR
if (backup_type != simple)
{
int highest_backup;
size_t dir_len = base_name (s) - s;
strcpy (s + dir_len, ".");
highest_backup = max_backup_version (file + dir_len, s);
if (! (backup_type == numbered_existing && highest_backup == 0))
{
char *numbered_suffix = s + (file_len + backup_suffix_size_max);
sprintf (numbered_suffix, ".~%d~", highest_backup + 1);
suffix = numbered_suffix;
}
strcpy (s, file);
}
#endif /* HAVE_DIR */
addext (s, suffix, '~');
}
highest_backup = max_backup_version (base_versions, dir);
free (base_versions);
free (dir);
if (backup_type == numbered_existing && highest_backup == 0)
return concat (file, simple_backup_suffix);
return make_version_name (file, highest_backup + 1);
return s;
}
#if HAVE_DIR
/* Return the number of the highest-numbered backup file for file
FILE in directory DIR. If there are no numbered backups
of FILE in DIR, or an error occurs reading DIR, return 0.
FILE should already have ".~" appended to it. */
*/
static int
max_backup_version (file, dir)
char *file, *dir;
max_backup_version (const char *file, const char *dir)
{
DIR *dirp;
struct dirent *dp;
int highest_version;
int this_version;
int file_name_length;
size_t file_name_length;
dirp = opendir (dir);
if (!dirp)
@@ -154,7 +182,7 @@ max_backup_version (file, dir)
while ((dp = readdir (dirp)) != 0)
{
if (!REAL_DIR_ENTRY (dp) || NLENGTH (dp) <= file_name_length)
if (!REAL_DIR_ENTRY (dp) || NLENGTH (dp) < file_name_length + 4)
continue;
this_version = version_number (file, dp->d_name, file_name_length);
@@ -166,61 +194,75 @@ max_backup_version (file, dir)
return highest_version;
}
/* Return a string, allocated with malloc, containing
"FILE.~VERSION~". Return 0 if out of memory. */
static char *
make_version_name (file, version)
char *file;
int version;
{
char *backup_name;
backup_name = malloc (strlen (file) + 16);
if (backup_name == 0)
return 0;
sprintf (backup_name, "%s.~%d~", file, version);
return backup_name;
}
/* If BACKUP is a numbered backup of BASE, return its version number;
otherwise return 0. BASE_LENGTH is the length of BASE.
BASE should already have ".~" appended to it. */
*/
static int
version_number (base, backup, base_length)
char *base;
char *backup;
int base_length;
version_number (const char *base, const char *backup, size_t base_length)
{
int version;
char *p;
const char *p;
version = 0;
if (!strncmp (base, backup, base_length) && ISDIGIT (backup[base_length]))
if (strncmp (base, backup, base_length) == 0
&& backup[base_length] == '.'
&& backup[base_length + 1] == '~')
{
for (p = &backup[base_length]; ISDIGIT (*p); ++p)
for (p = &backup[base_length + 2]; ISDIGIT (*p); ++p)
version = version * 10 + *p - '0';
if (p[0] != '~' || p[1])
version = 0;
}
return version;
}
#endif /* HAVE_DIR */
/* Return the newly-allocated concatenation of STR1 and STR2.
If out of memory, return 0. */
static char *
concat (str1, str2)
char *str1, *str2;
static const char * const backup_args[] =
{
char *newstr;
int str1_length = strlen (str1);
/* In a series of synonyms, present the most meaning full first, so
that argmatch_valid be more readable. */
"none", "off",
"simple", "never",
"existing", "nil",
"numbered", "t",
0
};
newstr = malloc (str1_length + strlen (str2) + 1);
if (newstr == 0)
return 0;
strcpy (newstr, str1);
strcpy (newstr + str1_length, str2);
return newstr;
static const enum backup_type backup_types[] =
{
none, none,
simple, simple,
numbered_existing, numbered_existing,
numbered, numbered
};
/* Return the type of backup specified by VERSION.
If VERSION is NULL or the empty string, return numbered_existing.
If VERSION is invalid or ambiguous, fail with a diagnostic appropriate
for the specified CONTEXT. Unambiguous abbreviations are accepted. */
enum backup_type
get_version (const char *context, const char *version)
{
if (version == 0 || *version == 0)
return numbered_existing;
else
return XARGMATCH (context, version, backup_args, backup_types);
}
/* Return the type of backup specified by VERSION.
If VERSION is NULL, use the value of the envvar VERSION_CONTROL.
If the specified string is invalid or ambiguous, fail with a diagnostic
appropriate for the specified CONTEXT.
Unambiguous abbreviations are accepted. */
enum backup_type
xget_version (const char *context, const char *version)
{
if (version && *version)
return get_version (context, version);
else
return get_version ("$VERSION_CONTROL", getenv ("VERSION_CONTROL"));
}

View File

@@ -1,5 +1,5 @@
/* backupfile.h -- declarations for making Emacs style backup file names
Copyright (C) 1990 Free Software Foundation, Inc.
Copyright (C) 1990-1992, 1997-1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,8 +12,12 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; see the file COPYING.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef BACKUPFILE_H_
# define BACKUPFILE_H_
/* When to make backup files. */
enum backup_type
@@ -32,11 +36,25 @@ enum backup_type
numbered
};
extern enum backup_type backup_type;
extern char *simple_backup_suffix;
# define VALID_BACKUP_TYPE(Type) \
((Type) == none \
|| (Type) == simple \
|| (Type) == numbered_existing \
|| (Type) == numbered)
#ifdef __STDC__
char *find_backup_file_name (char *file);
#else
char *find_backup_file_name ();
#endif
extern char const *simple_backup_suffix;
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
char *find_backup_file_name PARAMS ((char const *, enum backup_type));
enum backup_type get_version PARAMS ((char const *context, char const *arg));
enum backup_type xget_version PARAMS ((char const *context, char const *arg));
void addext PARAMS ((char *, char const *, int));
#endif /* ! BACKUPFILE_H_ */

View File

@@ -1,5 +1,5 @@
/* basename.c -- return the last element in a path
Copyright (C) 1990 Free Software Foundation, Inc.
Copyright (C) 1990, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,30 +12,54 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
#include <string.h>
#else
#include <strings.h>
#ifndef strrchr
#define strrchr rindex
#endif
#ifndef FILESYSTEM_PREFIX_LEN
# define FILESYSTEM_PREFIX_LEN(Filename) 0
#endif
/* Return NAME with any leading path stripped off. */
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
#ifndef ISSLASH
# define ISSLASH(C) ((C) == '/')
#endif
char *base_name PARAMS ((char const *name));
/* In general, we can't use the builtin `basename' function if available,
since it has different meanings in different environments.
In some environments the builtin `basename' modifies its argument.
If NAME is all slashes, be sure to return `/'. */
char *
basename (name)
const char *name;
base_name (char const *name)
{
char *base;
char const *base = name += FILESYSTEM_PREFIX_LEN (name);
int all_slashes = 1;
char const *p;
base = strrchr (name, '/');
return base ? base + 1 : (char *) name;
for (p = name; *p; p++)
{
if (ISSLASH (*p))
base = p + 1;
else
all_slashes = 0;
}
/* If NAME is all slashes, arrange to return `/'. */
if (*base == '\0' && ISSLASH (*name) && all_slashes)
--base;
return (char *) base;
}

63
lib/bumpalloc.h Normal file
View File

@@ -0,0 +1,63 @@
/* BUMP_ALLOC macro - increase table allocation by one element.
Copyright (C) 1990, 1991, 1993, 1998 Free Software Foundation, Inc.
François Pinard <pinard@iro.umontreal.ca>, 1990.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*-------------------------------------------------------------------------.
| Bump the allocation of the array pointed to by TABLE whenever required. |
| The table already has already COUNT elements in it, this macro ensure it |
| has enough space to accommodate at least one more element. Space is |
| allocated (2 ^ EXPONENT) elements at a time. Each element of the array |
| is of type TYPE. |
`-------------------------------------------------------------------------*/
/* Routines `xmalloc' and `xrealloc' are called to do the actual memory
management. This implies that the program will abort with an `Memory
exhausted!' error if any problem arise.
To work correctly, at least EXPONENT and TYPE should always be the
same for all uses of this macro for any given TABLE. A secure way to
achieve this is to never use this macro directly, but use it to define
other macros, which would then be TABLE-specific.
The first time through, COUNT is usually zero. Note that COUNT is not
updated by this macro, but it should be update elsewhere, later. This
is convenient, because it allows TABLE[COUNT] to refer to the new
element at the end. Once its construction is completed, COUNT++ will
record it in the table. Calling this macro several times in a row
without updating COUNT is a bad thing to do. */
#define BUMP_ALLOC(Table, Count, Exponent, Type) \
BUMP_ALLOC_WITH_SIZE ((Table), (Count), (Exponent), Type, sizeof (Type))
/* In cases `sizeof TYPE' would not always yield the correct value for
the size of each element entry, this macro accepts a supplementary
SIZE argument. The EXPONENT, TYPE and SIZE parameters should still
have the same value for all macro calls related to a specific TABLE. */
#define BUMP_ALLOC_WITH_SIZE(Table, Count, Exponent, Type, Size) \
do \
{ \
if (((Count) & (~(~0 << (Exponent)))) == 0) \
{ \
if ((Count) == 0) \
(Table) = (Type *) xmalloc ((1 << (Exponent)) * (Size)); \
else \
(Table) = (Type *) \
xrealloc ((Table), ((Count) + (1 << (Exponent))) * (Size)); \
} \
} \
while (0)

110
lib/canon-host.c Normal file
View File

@@ -0,0 +1,110 @@
/* Host name canonicalization
Copyright (C) 1995, 1999 Free Software Foundation, Inc.
Written by Miles Bader <miles@gnu.ai.mit.edu>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2, or (at
your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#ifdef HAVE_STRING_H
# include <string.h>
#endif
#ifdef HAVE_NETDB_H
# include <netdb.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_INET_H
# include <arpa/inet.h>
#endif
void free ();
/* Returns the canonical hostname associated with HOST (allocated in a static
buffer), or 0 if it can't be determined. */
char *
canon_host (const char *host)
{
#ifdef HAVE_GETHOSTBYNAME
struct hostent *he = gethostbyname (host);
if (he)
{
# ifdef HAVE_GETHOSTBYADDR
char *addr = 0;
/* Try and get an ascii version of the numeric host address. */
switch (he->h_addrtype)
{
# ifdef HAVE_INET_NTOA
case AF_INET:
addr = inet_ntoa (*(struct in_addr *) he->h_addr);
break;
# endif /* HAVE_INET_NTOA */
}
if (addr && strcmp (he->h_name, addr) == 0)
{
/* gethostbyname has returned a string representation of the IP
address, for example, "127.0.0.1". So now, look up the host
name via the address. Although it may seem reasonable to look
up the host name via the address, we must not pass `he->h_addr'
directly to gethostbyaddr because on some systems he->h_addr
is located in a static library buffer that is reused in the
gethostbyaddr call. Make a copy and use that instead. */
char *h_addr_copy = strdup (he->h_addr);
if (h_addr_copy == NULL)
he = NULL;
else
{
he = gethostbyaddr (h_addr_copy, he->h_length, he->h_addrtype);
free (h_addr_copy);
}
}
# endif /* HAVE_GETHOSTBYADDR */
if (he)
return (char *) (he->h_name);
}
#endif /* HAVE_GETHOSTBYNAME */
return 0;
}
#ifdef TEST_CANON_HOST
int
main (int argc, char **argv)
{
int i;
for (i = 1; i < argc; i++)
{
char *s = canon_host (argv[i]);
printf ("%s: %s\n", argv[i], (s ? s : "<undef>"));
}
exit (0);
}
#endif /* TEST_CANON_HOST */

55
lib/chown.c Normal file
View File

@@ -0,0 +1,55 @@
/* provide consistent interface to chown for systems that don't interpret
an ID of -1 as meaning `don't change the corresponding ID'.
Copyright (C) 1997 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* written by Jim Meyering */
#include <config.h>
/* Disable the definition of chown to rpl_chown (from config.h) in this
file. Otherwise, we'd get conflicting prototypes for rpl_chown on
most systems. */
#undef chown
#include <sys/types.h>
#include <sys/stat.h>
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
/* FIXME: describe. */
int
rpl_chown (const char *file, uid_t uid, gid_t gid)
{
if (gid == (gid_t) -1 || uid == (uid_t) -1)
{
struct stat file_stats;
/* Stat file to get id(s) that should remain unchanged. */
if (stat (file, &file_stats))
return 1;
if (gid == (gid_t) -1)
gid = file_stats.st_gid;
if (uid == (uid_t) -1)
uid = file_stats.st_uid;
}
return chown (file, uid, gid);
}

81
lib/closeout.c Normal file
View File

@@ -0,0 +1,81 @@
/* closeout.c - close standard output
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifndef EXIT_FAILURE
# define EXIT_FAILURE 1
#endif
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#include <stdio.h>
#include "closeout.h"
#include "error.h"
/* Close standard output, exiting with status STATUS on failure.
If a program writes *anything* to stdout, that program should `fflush'
stdout and make sure that it succeeds before exiting. Otherwise,
suppose that you go to the extreme of checking the return status
of every function that does an explicit write to stdout. The last
printf can succeed in writing to the internal stream buffer, and yet
the fclose(stdout) could still fail (due e.g., to a disk full error)
when it tries to write out that buffered data. Thus, you would be
left with an incomplete output file and the offending program would
exit successfully.
FIXME: note the fflush suggested above is implicit in the fclose
we actually do below. Consider doing only the fflush and/or using
setvbuf to inhibit buffering.
Besides, it's wasteful to check the return value from every call
that writes to stdout -- just let the internal stream state record
the failure. That's what the ferror test is checking below.
It's important to detect such failures and exit nonzero because many
tools (most notably `make' and other build-management systems) depend
on being able to detect failure in other tools via their exit status. */
void
close_stdout_status (int status)
{
if (ferror (stdout))
error (status, 0, _("write error"));
if (fclose (stdout) != 0)
error (status, errno, _("write error"));
}
/* Close standard output, exiting with status EXIT_FAILURE on failure. */
void
close_stdout (void)
{
close_stdout_status (EXIT_FAILURE);
}

10
lib/closeout.h Normal file
View File

@@ -0,0 +1,10 @@
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
void close_stdout PARAMS ((void));
void close_stdout_status PARAMS ((int status));

148
lib/diacrit.c Normal file
View File

@@ -0,0 +1,148 @@
/* Diacritics processing for a few character codes.
Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
François Pinard <pinard@iro.umontreal.ca>, 1988.
All this file is a temporary hack, waiting for locales in GNU.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "diacrit.h"
/* ISO 8859-1 Latin-1 code is used as the underlying character set. If
MSDOS is defined, IBM-PC's character set code is used instead. */
/*--------------------------------------------------------------------.
| For each alphabetic character, returns what it would be without its |
| possible diacritic symbol. |
`--------------------------------------------------------------------*/
const char diacrit_base[256] =
{
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
'X', 'Y', 'Z', 0, 0, 0, 0, 0,
0, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
'x', 'y', 'z', 0, 0, 0, 0, 0,
#ifdef MSDOS
'C', 'u', 'e', 'a', 'a', 'a', 'a', 'c',
'e', 'e', 'e', 'i', 'i', 'i', 'A', 'A',
'E', 'e', 'E', 'o', 'o', 'o', 'u', 'u',
'y', 'O', 'U', 0, 0, 0, 0, 0,
'a', 'i', 'o', 'u', 'n', 'N', 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
#else /* not MSDOS */
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
'A', 'A', 'A', 'A', 'A', 'A', 'A', 'C',
'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I',
0, 'N', 'O', 'O', 'O', 'O', 'O', 0,
'O', 'U', 'U', 'U', 'U', 'Y', 0, 0,
'a', 'a', 'a', 'a', 'a', 'a', 'a', 'c',
'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i',
0, 'n', 'o', 'o', 'o', 'o', 'o', 0,
'o', 'u', 'u', 'u', 'u', 'y', 0, 'y',
#endif /* not MSDOS */
};
/*------------------------------------------------------------------------.
| For each alphabetic character, returns a code of what its diacritic is, |
| according to the following codes: 1 (eE) over aA for latin diphtongs; 2 |
| (') acute accent; 3 (`) grave accent; 4 (^) circumflex accent; 5 (") |
| umlaut or diaraesis; 6 (~) tilda; 7 (,) cedilla; 8 (o) covering degree |
| symbol; 9 (|) slashed character. |
`------------------------------------------------------------------------*/
const char diacrit_diac[256] =
{
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 4, 0,
3, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 6, 0,
#ifdef MSDOS
7, 5, 2, 4, 5, 3, 8, 7,
4, 5, 3, 5, 4, 3, 5, 8,
2, 1, 1, 4, 5, 3, 4, 3,
5, 5, 5, 0, 0, 0, 0, 0,
2, 2, 2, 2, 6, 6, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
#else /* not MSDOS */
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
3, 2, 4, 6, 5, 8, 1, 7,
3, 2, 4, 5, 3, 2, 4, 5,
0, 6, 3, 2, 4, 6, 5, 0,
9, 3, 2, 4, 5, 2, 0, 0,
3, 2, 4, 6, 5, 8, 1, 7,
3, 2, 4, 5, 3, 2, 4, 5,
0, 6, 3, 2, 4, 6, 5, 0,
9, 3, 2, 4, 5, 2, 0, 0,
#endif /* not MSDOS */
};

16
lib/diacrit.h Normal file
View File

@@ -0,0 +1,16 @@
/* Diacritics processing for a few character codes.
Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
François Pinard <pinard@iro.umontreal.ca>, 1988.
All this file is a temporary hack, waiting for locales in GNU.
*/
extern const char diacrit_base[]; /* characters without diacritics */
extern const char diacrit_diac[]; /* diacritic code for each character */
/* Returns CHAR without its diacritic. CHAR is known to be alphabetic. */
#define tobase(Char) (diacrit_base[(unsigned char) (Char)])
/* Returns a diacritic code for CHAR. CHAR is known to be alphabetic. */
#define todiac(Char) (diacrit_diac[(unsigned char) (Char)])

View File

@@ -1,5 +1,5 @@
/* dirname.c -- return all but the last element in a path
Copyright (C) 1990 Free Software Foundation, Inc.
Copyright (C) 1990, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,35 +12,36 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef STDC_HEADERS
#include <stdlib.h>
# include <stdlib.h>
#else
char *malloc ();
#endif
#if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
#include <string.h>
#if defined STDC_HEADERS || defined HAVE_STRING_H
# include <string.h>
#else
#include <strings.h>
#ifndef strrchr
#define strrchr rindex
#endif
# include <strings.h>
# ifndef strrchr
# define strrchr rindex
# endif
#endif
#include "dirname.h"
/* Return the leading directories part of PATH,
allocated with malloc. If out of memory, return 0.
Assumes that trailing slashes have already been
removed. */
char *
dirname (path)
char *path;
dir_name (const char *path)
{
char *newpath;
char *slash;
@@ -56,8 +57,17 @@ dirname (path)
else
{
/* Remove any trailing slashes from the result. */
#ifdef MSDOS
char *lim = (path[0] >= 'A' && path[0] <= 'z' && path[1] == ':')
? path + 2 : path;
/* If canonicalized "d:/path", leave alone the root case "d:/". */
while (slash > lim && *slash == '/')
--slash;
#else
while (slash > path && *slash == '/')
--slash;
#endif
length = slash - path + 1;
}

31
lib/dirname.h Normal file
View File

@@ -0,0 +1,31 @@
/* Copyright (C) 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef DIRNAME_H_
# define DIRNAME_H_ 1
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
char *
dir_name PARAMS ((const char *path));
#endif /* not DIRNAME_H_ */

66
lib/dup2.c Normal file
View File

@@ -0,0 +1,66 @@
/* Duplicate an open file descriptor to a specified file descriptor.
Copyright 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* written by Paul Eggert */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#if HAVE_FCNTL_H
# include <fcntl.h>
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#ifndef F_DUPFD
static int
dupfd (int fd, int desired_fd)
{
int duplicated_fd = dup (fd);
if (duplicated_fd < 0 || duplicated_fd == desired_fd)
return duplicated_fd;
else
{
int r = dupfd (fd, desired_fd);
int e = errno;
close (duplicated_fd);
errno = e;
return r;
}
}
#endif
int
dup2 (int fd, int desired_fd)
{
if (fd == desired_fd)
return fd;
close (desired_fd);
#ifdef F_DUPFD
return fcntl (fd, F_DUPFD, desired_fd);
#else
return dupfd (fd, desired_fd);
#endif
}

View File

@@ -1,29 +1,33 @@
/* error.c -- error handler for noninteractive utilities
Copyright (C) 1990, 91, 92, 93, 94, 95 Free Software Foundation, Inc.
/* Error handler for noninteractive utilities
Copyright (C) 1990-2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in /gd/gnu/lib.
This program is distributed in the hope that it will be useful,
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
#ifdef HAVE_CONFIG_H
#include <config.h>
# include <config.h>
#endif
#include <stdio.h>
#if HAVE_VPRINTF || HAVE_DOPRNT
#if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC
# if __STDC__
# include <stdarg.h>
# define VA_START(args, lastarg) va_start(args, lastarg)
@@ -36,30 +40,56 @@
# define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8;
#endif
#if STDC_HEADERS
#if STDC_HEADERS || _LIBC
# include <stdlib.h>
# include <string.h>
#else
void exit ();
#endif
/* This variable is incremented each time `error' is called. */
unsigned int error_message_count;
#include "error.h"
#ifndef _
# define _(String) String
#endif
/* If NULL, error will flush stdout, then print on stderr the program
name, a colon and a space. Otherwise, error will call this
function without parameters instead. */
void (*error_print_progname) () = NULL;
void (*error_print_progname) (
#if __STDC__ - 0
void
#endif
);
/* This variable is incremented each time `error' is called. */
unsigned int error_message_count;
#ifdef _LIBC
/* In the GNU C library, there is a predefined variable for this. */
# define program_name program_invocation_name
# include <errno.h>
/* In GNU libc we want do not want to use the common name `error' directly.
Instead make it a weak alias. */
# define error __error
# define error_at_line __error_at_line
#else /* not _LIBC */
/* The calling program should define program_name and set it to the
name of the executing program. */
extern char *program_name;
#if HAVE_STRERROR
# ifndef strerror /* On some systems, sterror is a macro */
# ifdef HAVE_STRERROR_R
# define __strerror_r strerror_r
# else
# if HAVE_STRERROR
# ifndef strerror /* On some systems, strerror is a macro */
char *strerror ();
# endif
#else
# endif
# else
static char *
private_strerror (errnum)
int errnum;
@@ -68,11 +98,13 @@ private_strerror (errnum)
extern int sys_nerr;
if (errnum > 0 && errnum <= sys_nerr)
return sys_errlist[errnum];
return "Unknown system error";
return _(sys_errlist[errnum]);
return _("Unknown system error");
}
#define strerror private_strerror
#endif
# define strerror private_strerror
# endif /* HAVE_STRERROR */
# endif /* HAVE_STRERROR_R */
#endif /* not _LIBC */
/* Print the program name and error message MESSAGE, which is a printf-style
format string with optional args.
@@ -81,7 +113,7 @@ private_strerror (errnum)
/* VARARGS */
void
#if defined(VA_START) && __STDC__
#if defined VA_START && __STDC__
error (int status, int errnum, const char *message, ...)
#else
error (status, errnum, message, va_alist)
@@ -105,7 +137,7 @@ error (status, errnum, message, va_alist)
#ifdef VA_START
VA_START (args, message);
# if HAVE_VPRINTF
# if HAVE_VPRINTF || _LIBC
vfprintf (stderr, message, args);
# else
_doprnt (message, args, stderr);
@@ -116,11 +148,114 @@ error (status, errnum, message, va_alist)
#endif
++error_message_count;
if (errnum)
fprintf (stderr, ": %s", strerror (errnum));
{
#if defined HAVE_STRERROR_R || _LIBC
char errbuf[1024];
# if HAVE_WORKING_STRERROR_R || _LIBC
fprintf (stderr, ": %s", __strerror_r (errnum, errbuf, sizeof errbuf));
# else
/* Don't use __strerror_r's return value because on some systems
(at least DEC UNIX 4.0[A-D]) strerror_r returns `int'. */
__strerror_r (errnum, errbuf, sizeof errbuf);
fprintf (stderr, ": %s", errbuf);
# endif
#else
fprintf (stderr, ": %s", strerror (errnum));
#endif
}
putc ('\n', stderr);
fflush (stderr);
if (status)
exit (status);
}
/* Sometimes we want to have at most one error per line. This
variable controls whether this mode is selected or not. */
int error_one_per_line;
void
#if defined VA_START && __STDC__
error_at_line (int status, int errnum, const char *file_name,
unsigned int line_number, const char *message, ...)
#else
error_at_line (status, errnum, file_name, line_number, message, va_alist)
int status;
int errnum;
const char *file_name;
unsigned int line_number;
char *message;
va_dcl
#endif
{
#ifdef VA_START
va_list args;
#endif
if (error_one_per_line)
{
static const char *old_file_name;
static unsigned int old_line_number;
if (old_line_number == line_number &&
(file_name == old_file_name || !strcmp (old_file_name, file_name)))
/* Simply return and print nothing. */
return;
old_file_name = file_name;
old_line_number = line_number;
}
if (error_print_progname)
(*error_print_progname) ();
else
{
fflush (stdout);
fprintf (stderr, "%s:", program_name);
}
if (file_name != NULL)
fprintf (stderr, "%s:%d: ", file_name, line_number);
#ifdef VA_START
VA_START (args, message);
# if HAVE_VPRINTF || _LIBC
vfprintf (stderr, message, args);
# else
_doprnt (message, args, stderr);
# endif
va_end (args);
#else
fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);
#endif
++error_message_count;
if (errnum)
{
#if defined HAVE_STRERROR_R || _LIBC
char errbuf[1024];
# if HAVE_WORKING_STRERROR_R || _LIBC
fprintf (stderr, ": %s", __strerror_r (errnum, errbuf, sizeof errbuf));
# else
/* Don't use __strerror_r's return value because on some systems
(at least DEC UNIX 4.0[A-D]) strerror_r returns `int'. */
__strerror_r (errnum, errbuf, sizeof errbuf);
fprintf (stderr, ": %s", errbuf);
# endif
#else
fprintf (stderr, ": %s", strerror (errnum));
#endif
}
putc ('\n', stderr);
fflush (stderr);
if (status)
exit (status);
}
#ifdef _LIBC
/* Make the weak alias. */
# undef error
# undef error_at_line
weak_alias (__error, error)
weak_alias (__error_at_line, error_at_line)
#endif

View File

@@ -1,10 +1,14 @@
/* error.h -- declaration for error-reporting function
Copyright (C) 1995 Software Foundation, Inc.
/* Declaration for error-reporting function
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,10 +17,11 @@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifndef _error_h_
#define _error_h_
#ifndef _ERROR_H
#define _ERROR_H 1
#ifndef __attribute__
/* This feature is available in gcc versions 2.5 and later. */
@@ -31,14 +36,43 @@
# endif
#endif
#if __STDC__
void error (int, int, const char *, ...) \
__attribute__ ((__format__ (__printf__, 3, 4)));
#ifdef __cplusplus
extern "C" {
#endif
#if defined (__STDC__) && __STDC__
/* Print a message with `fprintf (stderr, FORMAT, ...)';
if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
If STATUS is nonzero, terminate the program with `exit (STATUS)'. */
extern void error (int status, int errnum, const char *format, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));
extern void error_at_line (int status, int errnum, const char *fname,
unsigned int lineno, const char *format, ...)
__attribute__ ((__format__ (__printf__, 5, 6)));
/* If NULL, error will flush stdout, then print on stderr the program
name, a colon and a space. Otherwise, error will call this
function without parameters instead. */
extern void (*error_print_progname) (void);
#else
void error ();
void error_at_line ();
extern void (*error_print_progname) ();
#endif
/* This variable is incremented each time `error' is called. */
extern unsigned int error_message_count;
#endif /* _error_h_ */
/* Sometimes we want to have at most one error per line. This
variable controls whether this mode is selected or not. */
extern int error_one_per_line;
#ifdef __cplusplus
}
#endif
#endif /* error.h */

View File

@@ -1,152 +1,128 @@
/* euidaccess -- check if effective user id can access file
Copyright (C) 1990, 1991 Free Software Foundation, Inc.
Copyright (C) 1990, 1991, 1995, 1998, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This file is part of the GNU C Library.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
/* Written by David MacKenzie and Torbjorn Granlund. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 59 Temple Place -
Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
/* Written by David MacKenzie and Torbjorn Granlund.
Adapted for GNU C library by Roland McGrath. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#ifdef S_IEXEC
#ifndef S_IXUSR
#define S_IXUSR S_IEXEC
#endif
#ifndef S_IXGRP
#define S_IXGRP (S_IEXEC >> 3)
#endif
#ifndef S_IXOTH
#define S_IXOTH (S_IEXEC >> 6)
#endif
# ifndef S_IXUSR
# define S_IXUSR S_IEXEC
# endif
# ifndef S_IXGRP
# define S_IXGRP (S_IEXEC >> 3)
# endif
# ifndef S_IXOTH
# define S_IXOTH (S_IEXEC >> 6)
# endif
#endif /* S_IEXEC */
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#if defined (HAVE_UNISTD_H) || defined (_LIBC)
# include <unistd.h>
#endif
#ifdef _POSIX_VERSION
#include <limits.h>
#if !defined(NGROUPS_MAX) || NGROUPS_MAX < 1
#undef NGROUPS_MAX
#define NGROUPS_MAX sysconf (_SC_NGROUPS_MAX)
#endif /* NGROUPS_MAX */
# include <limits.h>
# if !defined(NGROUPS_MAX) || NGROUPS_MAX < 1
# undef NGROUPS_MAX
# define NGROUPS_MAX sysconf (_SC_NGROUPS_MAX)
# endif /* NGROUPS_MAX */
#else /* not _POSIX_VERSION */
uid_t getuid ();
gid_t getgid ();
uid_t geteuid ();
gid_t getegid ();
#include <sys/param.h>
#if !defined(NGROUPS_MAX) && defined(NGROUPS)
#define NGROUPS_MAX NGROUPS
#endif /* not NGROUPS_MAX and NGROUPS */
# include <sys/param.h>
# if !defined(NGROUPS_MAX) && defined(NGROUPS)
# define NGROUPS_MAX NGROUPS
# endif /* not NGROUPS_MAX and NGROUPS */
#endif /* not POSIX_VERSION */
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#ifndef __set_errno
# define __set_errno(val) errno = (val)
#endif
#if defined(EACCES) && !defined(EACCESS)
#define EACCESS EACCES
# define EACCESS EACCES
#endif
#ifndef F_OK
#define F_OK 0
#define X_OK 1
#define W_OK 2
#define R_OK 4
# define F_OK 0
# define X_OK 1
# define W_OK 2
# define R_OK 4
#endif
#if !defined (S_IROTH) && defined (R_OK)
# define S_IROTH R_OK
#endif
#if !defined (S_IWOTH) && defined (W_OK)
# define S_IWOTH W_OK
#endif
#if !defined (S_IXOTH) && defined (X_OK)
# define S_IXOTH X_OK
#endif
#ifdef _LIBC
# define group_member __group_member
# define euidaccess __euidaccess
#else
/* The user's real user id. */
static uid_t uid;
/* The user's real group id. */
static gid_t gid;
# if HAVE_GETGROUPS
int group_member ();
# else
# define group_member(gid) 0
# endif
#endif
/* The user's effective user id. */
static uid_t euid;
/* The user's effective group id. */
static gid_t egid;
int group_member ();
/* Nonzero if UID, GID, EUID, and EGID have valid values. */
static int have_ids = 0;
static int have_ids;
/* Like euidaccess, except that a pointer to a filled-in stat structure
describing the file is provided instead of a filename.
Because this function is almost guaranteed to fail on systems that
use ACLs, a third argument *PATH may be used. If it is non-NULL,
it is assumed to be the name of the file corresponding to STATP.
Then, if the user is not running set-uid or set-gid, use access
instead of attempting a manual and non-portable comparison. */
int
eaccess_stat (statp, mode, path)
const struct stat *statp;
int mode;
const char *path;
{
int granted;
mode &= (X_OK | W_OK | R_OK); /* Clear any bogus bits. */
if (mode == F_OK)
return 0; /* The file exists. */
if (have_ids == 0)
{
have_ids = 1;
uid = getuid ();
gid = getgid ();
euid = geteuid ();
egid = getegid ();
}
if (path && uid == euid && gid == egid)
{
return access (path, mode);
}
/* The super-user can read and write any file, and execute any file
that anyone can execute. */
if (euid == 0 && ((mode & X_OK) == 0
|| (statp->st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))))
return 0;
if (euid == statp->st_uid)
granted = (unsigned) (statp->st_mode & (mode << 6)) >> 6;
else if (egid == statp->st_gid
#ifdef HAVE_GETGROUPS
|| group_member (statp->st_gid)
#endif
)
granted = (unsigned) (statp->st_mode & (mode << 3)) >> 3;
else
granted = (statp->st_mode & mode);
if (granted == mode)
return 0;
errno = EACCESS;
return -1;
}
/* Return 0 if the user has permission of type MODE on file PATH;
otherwise, return -1 and set `errno' to EACCESS.
@@ -155,12 +131,16 @@ eaccess_stat (statp, mode, path)
filesystem, text busy, etc. */
int
euidaccess (path, mode)
const char *path;
int mode;
euidaccess (const char *path, int mode)
{
struct stat stats;
int granted;
#ifdef _LIBC
if (! __libc_enable_secure)
/* If we are not set-uid or set-gid, access does the same. */
return __access (path, mode);
#else
if (have_ids == 0)
{
have_ids = 1;
@@ -171,21 +151,57 @@ euidaccess (path, mode)
}
if (uid == euid && gid == egid)
{
return access (path, mode);
}
/* If we are not set-uid or set-gid, access does the same. */
return access (path, mode);
#endif
if (stat (path, &stats))
return -1;
return eaccess_stat (&stats, mode, path);
mode &= (X_OK | W_OK | R_OK); /* Clear any bogus bits. */
#if R_OK != S_IROTH || W_OK != S_IWOTH || X_OK != S_IXOTH
?error Oops, portability assumptions incorrect.
#endif
if (mode == F_OK)
return 0; /* The file exists. */
#ifdef _LIBC
/* Now we need the IDs. */
if (have_ids == 0)
{
have_ids = 1;
euid = __geteuid ();
egid = __getegid ();
}
#endif
/* The super-user can read and write any file, and execute any file
that anyone can execute. */
if (euid == 0 && ((mode & X_OK) == 0
|| (stats.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))))
return 0;
if (euid == stats.st_uid)
granted = (unsigned) (stats.st_mode & (mode << 6)) >> 6;
else if (egid == stats.st_gid || group_member (stats.st_gid))
granted = (unsigned) (stats.st_mode & (mode << 3)) >> 3;
else
granted = (stats.st_mode & mode);
if (granted == mode)
return 0;
__set_errno (EACCESS);
return -1;
}
#undef euidaccess
#ifdef weak_alias
weak_alias (__euidaccess, euidaccess)
#endif
#ifdef TEST
#include <stdio.h>
#include <errno.h>
void error ();
# include <stdio.h>
# include <errno.h>
# include "error.h"
char *program_name;

128
lib/exclude.c Normal file
View File

@@ -0,0 +1,128 @@
/* exclude.c -- exclude file names
Copyright 1992, 1993, 1994, 1997, 1999, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Paul Eggert <eggert@twinsun.com> */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#include <exclude.h>
#include <fnmatch.h>
#include <stdio.h>
#include <sys/types.h>
void *xmalloc PARAMS ((size_t));
void *xrealloc PARAMS ((void *, size_t));
/* Keep track of excluded file name patterns. */
struct exclude
{
char const **exclude;
int exclude_alloc;
int exclude_count;
};
struct exclude *
new_exclude (void)
{
struct exclude *ex = (struct exclude *) xmalloc (sizeof (struct exclude));
ex->exclude_count = 0;
ex->exclude_alloc = 64;
ex->exclude = (char const **) xmalloc (ex->exclude_alloc * sizeof (char *));
return ex;
}
int
excluded_filename (struct exclude const *ex, char const *f, int options)
{
char const * const *exclude = ex->exclude;
int exclude_count = ex->exclude_count;
int i;
for (i = 0; i < exclude_count; i++)
if (fnmatch (exclude[i], f, options) == 0)
return 1;
return 0;
}
void
add_exclude (struct exclude *ex, char const *pattern)
{
if (ex->exclude_alloc <= ex->exclude_count)
ex->exclude = (char const **) xrealloc (ex->exclude,
((ex->exclude_alloc *= 2)
* sizeof (char *)));
ex->exclude[ex->exclude_count++] = pattern;
}
int
add_exclude_file (void (*add_func) PARAMS ((struct exclude *, char const *)),
struct exclude *ex, char const *filename, char line_end)
{
int use_stdin = filename[0] == '-' && !filename[1];
FILE *in;
char *buf;
char *p;
char const *pattern;
char const *lim;
size_t buf_alloc = 1024;
size_t buf_count = 0;
int c;
int e = 0;
if (use_stdin)
in = stdin;
else if (! (in = fopen (filename, "r")))
return -1;
buf = xmalloc (buf_alloc);
while ((c = getc (in)) != EOF)
{
buf[buf_count++] = c;
if (buf_count == buf_alloc)
buf = xrealloc (buf, buf_alloc *= 2);
}
buf = xrealloc (buf, buf_count + 1);
if (ferror (in))
e = errno;
if (!use_stdin && fclose (in) != 0)
e = errno;
for (pattern = p = buf, lim = buf + buf_count; p <= lim; p++)
if (p < lim ? *p == line_end : buf < p && p[-1])
{
*p = '\0';
(*add_func) (ex, pattern);
pattern = p + 1;
}
errno = e;
return e ? -1 : 0;
}

35
lib/exclude.h Normal file
View File

@@ -0,0 +1,35 @@
/* exclude.h -- declarations for excluding file names
Copyright 1992, 1993, 1994, 1997, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Paul Eggert <eggert@twinsun.com> */
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
struct exclude;
struct exclude *new_exclude PARAMS ((void));
void add_exclude PARAMS ((struct exclude *, char const *));
int add_exclude_file PARAMS ((void (*) (struct exclude *, char const *),
struct exclude *, char const *, char));
int excluded_filename PARAMS ((struct exclude const *, char const *, int));

View File

@@ -1,5 +1,5 @@
/* Convert file size to number of blocks on System V-like machines.
Copyright (C) 1990 Free Software Foundation, Inc.
Copyright (C) 1990, 1997, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,41 +12,48 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Brian L. Matthews, blm@6sceng.UUCP. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if !defined (HAVE_ST_BLOCKS) && !defined(_POSIX_SOURCE)
#include <sys/types.h>
#include <sys/param.h>
#ifndef NINDIR
/* Some SysV's, like Irix, seem to lack these. Hope they're correct. */
/* Size of a indirect block, in bytes. */
#ifndef BSIZE
#define BSIZE 1024
#if HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#if !HAVE_STRUCT_STAT_ST_BLOCKS && !defined _POSIX_SOURCE && defined BSIZE
# if HAVE_UNISTD_H
# include <unistd.h>
# endif
# ifndef NINDIR
# if defined (__DJGPP__)
typedef long daddr_t; /* for disk address */
# endif
/* Some SysV's, like Irix, seem to lack this. Hope it's correct. */
/* Number of inode pointers per indirect block. */
#define NINDIR (BSIZE/sizeof(daddr_t))
#endif /* !NINDIR */
# define NINDIR (BSIZE / sizeof (daddr_t))
# endif /* !NINDIR */
/* Number of direct block addresses in an inode. */
#define NDIR 10
# define NDIR 10
/* Return the number of 512-byte blocks in a file of SIZE bytes. */
long
st_blocks (size)
long size;
off_t
st_blocks (off_t size)
{
long datablks = (size + 512 - 1) / 512;
long indrblks = 0;
off_t datablks = size / 512 + (size % 512 != 0);
off_t indrblks = 0;
if (datablks > NDIR)
{
@@ -63,4 +70,8 @@ st_blocks (size)
return datablks + indrblks;
}
#else
/* This declaration is solely to ensure that after preprocessing
this file is never empty. */
extern int textutils_fileblocks_unused;
#endif

View File

@@ -1,5 +1,5 @@
/* filemode.c -- make a string describing file modes
Copyright (C) 1985, 1990, 1993 Free Software Foundation, Inc.
Copyright (C) 1985, 1990, 1993, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,16 +12,18 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include "filemode.h"
#if !S_IRUSR
# if S_IREAD
# define S_IRUSR S_IREAD
@@ -46,52 +48,196 @@
# endif
#endif
#if !S_IRGRP
# define S_IRGRP (S_IRUSR >> 3)
#endif
#if !S_IWGRP
# define S_IWGRP (S_IWUSR >> 3)
#endif
#if !S_IXGRP
# define S_IXGRP (S_IXUSR >> 3)
#endif
#if !S_IROTH
# define S_IROTH (S_IRUSR >> 6)
#endif
#if !S_IWOTH
# define S_IWOTH (S_IWUSR >> 6)
#endif
#if !S_IXOTH
# define S_IXOTH (S_IXUSR >> 6)
#endif
#ifdef STAT_MACROS_BROKEN
#undef S_ISBLK
#undef S_ISCHR
#undef S_ISDIR
#undef S_ISFIFO
#undef S_ISLNK
#undef S_ISMPB
#undef S_ISMPC
#undef S_ISNWK
#undef S_ISREG
#undef S_ISSOCK
# undef S_ISBLK
# undef S_ISCHR
# undef S_ISDIR
# undef S_ISFIFO
# undef S_ISLNK
# undef S_ISMPB
# undef S_ISMPC
# undef S_ISNWK
# undef S_ISREG
# undef S_ISSOCK
#endif /* STAT_MACROS_BROKEN. */
#if !defined(S_ISBLK) && defined(S_IFBLK)
#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
# define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
#endif
#if !defined(S_ISCHR) && defined(S_IFCHR)
#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
# define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
#endif
#if !defined(S_ISDIR) && defined(S_IFDIR)
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif
#if !defined(S_ISREG) && defined(S_IFREG)
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
#endif
#if !defined(S_ISFIFO) && defined(S_IFIFO)
#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
#endif
#if !defined(S_ISLNK) && defined(S_IFLNK)
#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
#endif
#if !defined(S_ISSOCK) && defined(S_IFSOCK)
#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
#endif
#if !defined(S_ISMPB) && defined(S_IFMPB) /* V7 */
#define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB)
#define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC)
# define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB)
# define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC)
#endif
#if !defined(S_ISNWK) && defined(S_IFNWK) /* HP/UX */
#define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK)
# define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK)
#endif
#if !defined(S_ISDOOR) && defined(S_IFDOOR) /* Solaris 2.5 and up */
# define S_ISDOOR(m) (((m) & S_IFMT) == S_IFDOOR)
#endif
void mode_string ();
static char ftypelet ();
static void rwx ();
static void setst ();
/* Set the 's' and 't' flags in file attributes string CHARS,
according to the file mode BITS. */
static void
setst (mode_t bits, char *chars)
{
#ifdef S_ISUID
if (bits & S_ISUID)
{
if (chars[3] != 'x')
/* Set-uid, but not executable by owner. */
chars[3] = 'S';
else
chars[3] = 's';
}
#endif
#ifdef S_ISGID
if (bits & S_ISGID)
{
if (chars[6] != 'x')
/* Set-gid, but not executable by group. */
chars[6] = 'S';
else
chars[6] = 's';
}
#endif
#ifdef S_ISVTX
if (bits & S_ISVTX)
{
if (chars[9] != 'x')
/* Sticky, but not executable by others. */
chars[9] = 'T';
else
chars[9] = 't';
}
#endif
}
/* Return a character indicating the type of file described by
file mode BITS:
'd' for directories
'D' for doors
'b' for block special files
'c' for character special files
'm' for multiplexor files
'M' for an off-line (regular) file
'l' for symbolic links
's' for sockets
'p' for fifos
'-' for regular files
'?' for any other file type. */
static char
ftypelet (mode_t bits)
{
#ifdef S_ISBLK
if (S_ISBLK (bits))
return 'b';
#endif
if (S_ISCHR (bits))
return 'c';
if (S_ISDIR (bits))
return 'd';
if (S_ISREG (bits))
return '-';
#ifdef S_ISFIFO
if (S_ISFIFO (bits))
return 'p';
#endif
#ifdef S_ISLNK
if (S_ISLNK (bits))
return 'l';
#endif
#ifdef S_ISSOCK
if (S_ISSOCK (bits))
return 's';
#endif
#ifdef S_ISMPC
if (S_ISMPC (bits))
return 'm';
#endif
#ifdef S_ISNWK
if (S_ISNWK (bits))
return 'n';
#endif
#ifdef S_ISDOOR
if (S_ISDOOR (bits))
return 'D';
#endif
/* The following two tests are for Cray DMF (Data Migration
Facility), which is a HSM file system. A migrated file has a
`st_dm_mode' that is different from the normal `st_mode', so any
tests for migrated files should use the former. */
#ifdef S_ISOFD
if (S_ISOFD (bits))
/* off line, with data */
return 'M';
#endif
#ifdef S_ISOFL
/* off line, with no data */
if (S_ISOFL (bits))
return 'M';
#endif
return '?';
}
/* Like filemodestring, but only the relevant part of the `struct stat'
is given as an argument. */
void
mode_string (mode_t mode, char *str)
{
str[0] = ftypelet (mode);
str[1] = mode & S_IRUSR ? 'r' : '-';
str[2] = mode & S_IWUSR ? 'w' : '-';
str[3] = mode & S_IXUSR ? 'x' : '-';
str[4] = mode & S_IRGRP ? 'r' : '-';
str[5] = mode & S_IWGRP ? 'w' : '-';
str[6] = mode & S_IXGRP ? 'x' : '-';
str[7] = mode & S_IROTH ? 'r' : '-';
str[8] = mode & S_IWOTH ? 'w' : '-';
str[9] = mode & S_IXOTH ? 'x' : '-';
setst (mode, str);
}
/* filemodestring - fill in string STR with an ls-style ASCII
representation of the st_mode field of file stats block STATP.
@@ -130,126 +276,7 @@ static void setst ();
'T' if the file is sticky but not executable. */
void
filemodestring (statp, str)
struct stat *statp;
char *str;
filemodestring (struct stat *statp, char *str)
{
mode_string (statp->st_mode, str);
}
/* Like filemodestring, but only the relevant part of the `struct stat'
is given as an argument. */
void
mode_string (mode, str)
unsigned short mode;
char *str;
{
str[0] = ftypelet ((long) mode);
rwx ((mode & 0700) << 0, &str[1]);
rwx ((mode & 0070) << 3, &str[4]);
rwx ((mode & 0007) << 6, &str[7]);
setst (mode, str);
}
/* Return a character indicating the type of file described by
file mode BITS:
'd' for directories
'b' for block special files
'c' for character special files
'm' for multiplexor files
'l' for symbolic links
's' for sockets
'p' for fifos
'-' for regular files
'?' for any other file type. */
static char
ftypelet (bits)
long bits;
{
#ifdef S_ISBLK
if (S_ISBLK (bits))
return 'b';
#endif
if (S_ISCHR (bits))
return 'c';
if (S_ISDIR (bits))
return 'd';
if (S_ISREG (bits))
return '-';
#ifdef S_ISFIFO
if (S_ISFIFO (bits))
return 'p';
#endif
#ifdef S_ISLNK
if (S_ISLNK (bits))
return 'l';
#endif
#ifdef S_ISSOCK
if (S_ISSOCK (bits))
return 's';
#endif
#ifdef S_ISMPC
if (S_ISMPC (bits))
return 'm';
#endif
#ifdef S_ISNWK
if (S_ISNWK (bits))
return 'n';
#endif
return '?';
}
/* Look at read, write, and execute bits in BITS and set
flags in CHARS accordingly. */
static void
rwx (bits, chars)
unsigned short bits;
char *chars;
{
chars[0] = (bits & S_IRUSR) ? 'r' : '-';
chars[1] = (bits & S_IWUSR) ? 'w' : '-';
chars[2] = (bits & S_IXUSR) ? 'x' : '-';
}
/* Set the 's' and 't' flags in file attributes string CHARS,
according to the file mode BITS. */
static void
setst (bits, chars)
unsigned short bits;
char *chars;
{
#ifdef S_ISUID
if (bits & S_ISUID)
{
if (chars[3] != 'x')
/* Set-uid, but not executable by owner. */
chars[3] = 'S';
else
chars[3] = 's';
}
#endif
#ifdef S_ISGID
if (bits & S_ISGID)
{
if (chars[6] != 'x')
/* Set-gid, but not executable by group. */
chars[6] = 'S';
else
chars[6] = 's';
}
#endif
#ifdef S_ISVTX
if (bits & S_ISVTX)
{
if (chars[9] != 'x')
/* Sticky, but not executable by others. */
chars[9] = 'T';
else
chars[9] = 't';
}
#endif
}

19
lib/filemode.h Normal file
View File

@@ -0,0 +1,19 @@
#ifndef FILEMODE_H_
# if HAVE_CONFIG_H
# include <config.h>
# endif
# include <sys/types.h>
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
void mode_string PARAMS ((mode_t mode, char *str));
#endif

View File

@@ -1,24 +1,26 @@
/* Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1992, 1993, 1996, 1997 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef HAVE_CONFIG_H
#include <config.h>
/* Enable GNU extensions in fnmatch.h. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif
#include <errno.h>
@@ -34,26 +36,32 @@ Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
program understand `configure --with-gnu-libc' and omit the object files,
it is simpler to just do this in the source for each such file. */
#if defined (_LIBC) || !defined (__GNU_LIBRARY__)
#if defined _LIBC || !defined __GNU_LIBRARY__
#ifndef errno
# if defined STDC_HEADERS || !defined isascii
# define ISASCII(c) 1
# else
# define ISASCII(c) isascii(c)
# endif
# define ISUPPER(c) (ISASCII (c) && isupper (c))
# ifndef errno
extern int errno;
#endif
# endif
/* Match STRING against the filename pattern PATTERN, returning zero if
it matches, nonzero if not. */
int
fnmatch (pattern, string, flags)
const char *pattern;
const char *string;
int flags;
fnmatch (const char *pattern, const char *string, int flags)
{
register const char *p = pattern, *n = string;
register char c;
/* Note that this evalutes C many times. */
#define FOLD(c) ((flags & FNM_CASEFOLD) && isupper (c) ? tolower (c) : (c))
/* Note that this evaluates C many times. */
# define FOLD(c) ((flags & FNM_CASEFOLD) && ISUPPER (c) ? tolower (c) : (c))
while ((c = *p++) != '\0')
{
@@ -75,6 +83,9 @@ fnmatch (pattern, string, flags)
if (!(flags & FNM_NOESCAPE))
{
c = *p++;
if (c == '\0')
/* Trailing \ loses. */
return FNM_NOMATCH;
c = FOLD (c);
}
if (FOLD (*n) != c)
@@ -86,10 +97,24 @@ fnmatch (pattern, string, flags)
(n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/')))
return FNM_NOMATCH;
for (c = *p++; c == '?' || c == '*'; c = *p++, ++n)
if (((flags & FNM_FILE_NAME) && *n == '/') ||
(c == '?' && *n == '\0'))
return FNM_NOMATCH;
for (c = *p++; c == '?' || c == '*'; c = *p++)
{
if ((flags & FNM_FILE_NAME) && *n == '/')
/* A slash does not match a wildcard under FNM_FILE_NAME. */
return FNM_NOMATCH;
else if (c == '?')
{
/* A ? needs to match one character. */
if (*n == '\0')
/* There isn't another character; no match. */
return FNM_NOMATCH;
else
/* One character of the string is consumed in matching
this ? wildcard, so *??? won't match if there are
less than three characters. */
++n;
}
}
if (c == '\0')
return 0;
@@ -126,7 +151,11 @@ fnmatch (pattern, string, flags)
register char cstart = c, cend = c;
if (!(flags & FNM_NOESCAPE) && c == '\\')
cstart = cend = *p++;
{
if (*p == '\0')
return FNM_NOMATCH;
cstart = cend = *p++;
}
cstart = cend = FOLD (cstart);
@@ -173,8 +202,12 @@ fnmatch (pattern, string, flags)
c = *p++;
if (!(flags & FNM_NOESCAPE) && c == '\\')
/* XXX 1003.2d11 is unclear if this is right. */
++p;
{
if (*p == '\0')
return FNM_NOMATCH;
/* XXX 1003.2d11 is unclear if this is right. */
++p;
}
}
if (not)
return FNM_NOMATCH;
@@ -197,6 +230,8 @@ fnmatch (pattern, string, flags)
return 0;
return FNM_NOMATCH;
# undef FOLD
}
#endif /* _LIBC or not __GNU_LIBRARY__. */

View File

@@ -1,48 +1,57 @@
/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
This library is distributed in the hope that it will be useful,
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef _FNMATCH_H
#define _FNMATCH_H 1
#ifdef __cplusplus
extern "C"
{
extern "C" {
#endif
#if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
#undef __P
#define __P(args) args
#define __P(protos) protos
#else /* Not C++ or ANSI C. */
#undef __P
#define __P(args) ()
#undef const
#define const
#define __P(protos) ()
/* We can get away without defining `const' here only because in this file
it is used only inside the prototype for `fnmatch', which is elided in
non-ANSI C where `const' is problematical. */
#endif /* C++ or ANSI C. */
/* Bits set in the FLAGS argument to `fnmatch'. */
#define FNM_PATHNAME (1 << 0)/* No wildcard can ever match `/'. */
#define FNM_NOESCAPE (1 << 1)/* Backslashes don't quote special chars. */
#define FNM_PERIOD (1 << 2)/* Leading `.' is matched only explicitly. */
#define FNM_TARPATH (1 << 4)/* Ignore `/...' after a match. */
#define __FNM_FLAGS (FNM_PATHNAME|FNM_NOESCAPE|FNM_PERIOD|FNM_TARPATH)
#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_BSD_SOURCE)
#define FNM_FILE_NAME FNM_PATHNAME
/* We #undef these before defining them because some losing systems
(HP-UX A.08.07 for example) define these in <unistd.h>. */
#undef FNM_PATHNAME
#undef FNM_NOESCAPE
#undef FNM_PERIOD
/* Bits set in the FLAGS argument to `fnmatch'. */
#define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */
#define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */
#define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */
#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_GNU_SOURCE)
#define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */
#define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */
#define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */
#endif
/* Value returned by `fnmatch' if STRING does not match PATTERN. */
@@ -50,12 +59,11 @@ extern "C"
/* Match STRING against the filename pattern PATTERN,
returning zero if it matches, FNM_NOMATCH if not. */
extern int fnmatch __P ((const char *__pattern, const char *__string,
int __flags));
extern int fnmatch __P ((const char *__pattern, const char *__string,
int __flags));
#ifdef __cplusplus
}
#endif
#endif /* fnmatch.h */

View File

@@ -1,5 +1,5 @@
/* fsusage.c -- return space usage of mounted filesystems
Copyright (C) 1991, 1992 Free Software Foundation, Inc.
Copyright (C) 1991, 1992, 1996, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,186 +12,245 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include "fsusage.h"
#if HAVE_LIMITS_H
# include <limits.h>
#endif
#ifndef CHAR_BIT
# define CHAR_BIT 8
#endif
int statfs ();
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#if HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#ifdef HAVE_SYS_MOUNT_H
#include <sys/mount.h>
#if HAVE_SYS_MOUNT_H
# include <sys/mount.h>
#endif
#ifdef HAVE_SYS_VFS_H
#include <sys/vfs.h>
#if HAVE_SYS_VFS_H
# include <sys/vfs.h>
#endif
#ifdef HAVE_SYS_FILSYS_H
#include <sys/filsys.h> /* SVR2. */
#if HAVE_SYS_FS_S5PARAM_H /* Fujitsu UXP/V */
# include <sys/fs/s5param.h>
#endif
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#if defined (HAVE_SYS_FILSYS_H) && !defined (_CRAY)
# include <sys/filsys.h> /* SVR2 */
#endif
#ifdef HAVE_SYS_STATFS_H
#include <sys/statfs.h>
#if HAVE_FCNTL_H
# include <fcntl.h>
#endif
#ifdef HAVE_DUSTAT_H /* AIX PS/2. */
#include <sys/dustat.h>
#if HAVE_SYS_STATFS_H
# include <sys/statfs.h>
#endif
#ifdef HAVE_SYS_STATVFS_H /* SVR4. */
#include <sys/statvfs.h>
#if HAVE_DUSTAT_H /* AIX PS/2 */
# include <sys/dustat.h>
#endif
#if HAVE_SYS_STATVFS_H /* SVR4 */
# include <sys/statvfs.h>
int statvfs ();
#endif
/* Many space usage primitives use all 1 bits to denote a value that is
not applicable or unknown. Propagate this information by returning
a uintmax_t value that is all 1 bits if the argument is all 1 bits,
even if the argument is unsigned and smaller than uintmax_t. */
#define PROPAGATE_ALL_ONES(x) ((x) == -1 ? (uintmax_t) -1 : (uintmax_t) (x))
/* Extract the top bit of X as an uintmax_t value. */
#define EXTRACT_TOP_BIT(x) ((x) \
& ((uintmax_t) 1 << (sizeof (x) * CHAR_BIT - 1)))
/* If a value is negative, many space usage primitives store it into an
integer variable by assignment, even if the variable's type is unsigned.
So, if a space usage variable X's top bit is set, convert X to the
uintmax_t value V such that (- (uintmax_t) V) is the negative of
the original value. If X's top bit is clear, just yield X.
Use PROPAGATE_TOP_BIT if the original value might be negative;
otherwise, use PROPAGATE_ALL_ONES. */
#define PROPAGATE_TOP_BIT(x) ((x) | ~ (EXTRACT_TOP_BIT (x) - 1))
int safe_read ();
/* Return the number of TOSIZE-byte blocks used by
BLOCKS FROMSIZE-byte blocks, rounding away from zero.
TOSIZE must be positive. Return -1 if FROMSIZE is not positive. */
static long
adjust_blocks (blocks, fromsize, tosize)
long blocks;
int fromsize, tosize;
{
if (tosize <= 0)
abort ();
if (fromsize <= 0)
return -1;
if (fromsize == tosize) /* E.g., from 512 to 512. */
return blocks;
else if (fromsize > tosize) /* E.g., from 2048 to 512. */
return blocks * (fromsize / tosize);
else /* E.g., from 256 to 512. */
return (blocks + (blocks < 0 ? -1 : 1)) / (tosize / fromsize);
}
/* Fill in the fields of FSP with information about space usage for
the filesystem on which PATH resides.
DISK is the device on which PATH is mounted, for space-getting
methods that need to know it.
Return 0 if successful, -1 if not. */
Return 0 if successful, -1 if not. When returning -1, ensure that
ERRNO is either a system error value, or zero if DISK is NULL
on a system that requires a non-NULL value. */
int
get_fs_usage (path, disk, fsp)
char *path, *disk;
struct fs_usage *fsp;
get_fs_usage (const char *path, const char *disk, struct fs_usage *fsp)
{
#if defined (STAT_STATFS3_OSF1)
#ifdef STAT_STATFS3_OSF1
struct statfs fsd;
if (statfs (path, &fsd, sizeof (struct statfs)) != 0)
return -1;
#define CONVERT_BLOCKS(b) adjust_blocks ((b), fsd.f_fsize, 512)
fsp->fsu_blocksize = PROPAGATE_ALL_ONES (fsd.f_fsize);
#endif /* STAT_STATFS3_OSF1 */
#ifdef STAT_STATFS2_FS_DATA /* Ultrix. */
#ifdef STAT_STATFS2_FS_DATA /* Ultrix */
struct fs_data fsd;
if (statfs (path, &fsd) != 1)
return -1;
#define CONVERT_BLOCKS(b) adjust_blocks ((b), 1024, 512)
fsp->fsu_blocks = CONVERT_BLOCKS (fsd.fd_req.btot);
fsp->fsu_bfree = CONVERT_BLOCKS (fsd.fd_req.bfree);
fsp->fsu_bavail = CONVERT_BLOCKS (fsd.fd_req.bfreen);
fsp->fsu_files = fsd.fd_req.gtot;
fsp->fsu_ffree = fsd.fd_req.gfree;
#endif
#ifdef STAT_READ_FILSYS /* SVR2. */
#ifndef SUPERBOFF
#define SUPERBOFF (SUPERB * 512)
#endif
fsp->fsu_blocksize = 1024;
fsp->fsu_blocks = PROPAGATE_ALL_ONES (fsd.fd_req.btot);
fsp->fsu_bfree = PROPAGATE_ALL_ONES (fsd.fd_req.bfree);
fsp->fsu_bavail = PROPAGATE_TOP_BIT (fsd.fd_req.bfreen);
fsp->fsu_bavail_top_bit_set = EXTRACT_TOP_BIT (fsd.fd_req.bfreen) != 0;
fsp->fsu_files = PROPAGATE_ALL_ONES (fsd.fd_req.gtot);
fsp->fsu_ffree = PROPAGATE_ALL_ONES (fsd.fd_req.gfree);
#endif /* STAT_STATFS2_FS_DATA */
#ifdef STAT_READ_FILSYS /* SVR2 */
# ifndef SUPERBOFF
# define SUPERBOFF (SUPERB * 512)
# endif
struct filsys fsd;
int fd;
if (! disk)
{
errno = 0;
return -1;
}
fd = open (disk, O_RDONLY);
if (fd < 0)
return -1;
lseek (fd, (long) SUPERBOFF, 0);
lseek (fd, (off_t) SUPERBOFF, 0);
if (safe_read (fd, (char *) &fsd, sizeof fsd) != sizeof fsd)
{
close (fd);
return -1;
}
close (fd);
#define CONVERT_BLOCKS(b) adjust_blocks ((b), (fsd.s_type == Fs2b ? 1024 : 512), 512)
fsp->fsu_blocks = CONVERT_BLOCKS (fsd.s_fsize);
fsp->fsu_bfree = CONVERT_BLOCKS (fsd.s_tfree);
fsp->fsu_bavail = CONVERT_BLOCKS (fsd.s_tfree);
fsp->fsu_files = (fsd.s_isize - 2) * INOPB * (fsd.s_type == Fs2b ? 2 : 1);
fsp->fsu_ffree = fsd.s_tinode;
#endif
#ifdef STAT_STATFS2_BSIZE /* 4.3BSD, SunOS 4, HP-UX, AIX. */
fsp->fsu_blocksize = (fsd.s_type == Fs2b ? 1024 : 512);
fsp->fsu_blocks = PROPAGATE_ALL_ONES (fsd.s_fsize);
fsp->fsu_bfree = PROPAGATE_ALL_ONES (fsd.s_tfree);
fsp->fsu_bavail = PROPAGATE_TOP_BIT (fsd.s_tfree);
fsp->fsu_bavail_top_bit_set = EXTRACT_TOP_BIT (fsd.s_tfree) != 0;
fsp->fsu_files = (fsd.s_isize == -1
? (uintmax_t) -1
: (fsd.s_isize - 2) * INOPB * (fsd.s_type == Fs2b ? 2 : 1));
fsp->fsu_ffree = PROPAGATE_ALL_ONES (fsd.s_tinode);
#endif /* STAT_READ_FILSYS */
#ifdef STAT_STATFS2_BSIZE /* 4.3BSD, SunOS 4, HP-UX, AIX */
struct statfs fsd;
if (statfs (path, &fsd) < 0)
return -1;
#define CONVERT_BLOCKS(b) adjust_blocks ((b), fsd.f_bsize, 512)
#endif
#ifdef STAT_STATFS2_FSIZE /* 4.4BSD. */
fsp->fsu_blocksize = PROPAGATE_ALL_ONES (fsd.f_bsize);
# ifdef STATFS_TRUNCATES_BLOCK_COUNTS
/* In SunOS 4.1.2, 4.1.3, and 4.1.3_U1, the block counts in the
struct statfs are truncated to 2GB. These conditions detect that
truncation, presumably without botching the 4.1.1 case, in which
the values are not truncated. The correct counts are stored in
undocumented spare fields. */
if (fsd.f_blocks == 0x7fffffff / fsd.f_bsize && fsd.f_spare[0] > 0)
{
fsd.f_blocks = fsd.f_spare[0];
fsd.f_bfree = fsd.f_spare[1];
fsd.f_bavail = fsd.f_spare[2];
}
# endif /* STATFS_TRUNCATES_BLOCK_COUNTS */
#endif /* STAT_STATFS2_BSIZE */
#ifdef STAT_STATFS2_FSIZE /* 4.4BSD */
struct statfs fsd;
if (statfs (path, &fsd) < 0)
return -1;
#define CONVERT_BLOCKS(b) adjust_blocks ((b), fsd.f_fsize, 512)
#endif
#ifdef STAT_STATFS4 /* SVR3, Dynix, Irix, AIX. */
fsp->fsu_blocksize = PROPAGATE_ALL_ONES (fsd.f_fsize);
#endif /* STAT_STATFS2_FSIZE */
#ifdef STAT_STATFS4 /* SVR3, Dynix, Irix, AIX */
# if !_AIX && !defined _SEQUENT_ && !defined DOLPHIN
# define f_bavail f_bfree
# endif
struct statfs fsd;
if (statfs (path, &fsd, sizeof fsd, 0) < 0)
return -1;
/* Empirically, the block counts on most SVR3 and SVR3-derived
systems seem to always be in terms of 512-byte blocks,
no matter what value f_bsize has. */
# if _AIX
# define CONVERT_BLOCKS(b) adjust_blocks ((b), fsd.f_bsize, 512)
# if _AIX || defined(_CRAY)
fsp->fsu_blocksize = PROPAGATE_ALL_ONES (fsd.f_bsize);
# else
# define CONVERT_BLOCKS(b) (b)
# ifndef _SEQUENT_ /* _SEQUENT_ is DYNIX/ptx. */
# ifndef DOLPHIN /* DOLPHIN 3.8.alfa/7.18 has f_bavail */
# define f_bavail f_bfree
# endif
# endif
fsp->fsu_blocksize = 512;
# endif
#endif
#ifdef STAT_STATVFS /* SVR4. */
#endif /* STAT_STATFS4 */
#ifdef STAT_STATVFS /* SVR4 */
struct statvfs fsd;
if (statvfs (path, &fsd) < 0)
return -1;
/* f_frsize isn't guaranteed to be supported. */
#define CONVERT_BLOCKS(b) \
adjust_blocks ((b), fsd.f_frsize ? fsd.f_frsize : fsd.f_bsize, 512)
#endif
#if !defined(STAT_STATFS2_FS_DATA) && !defined(STAT_READ_FILSYS) /* !Ultrix && !SVR2. */
fsp->fsu_blocks = CONVERT_BLOCKS (fsd.f_blocks);
fsp->fsu_bfree = CONVERT_BLOCKS (fsd.f_bfree);
fsp->fsu_bavail = CONVERT_BLOCKS (fsd.f_bavail);
fsp->fsu_files = fsd.f_files;
fsp->fsu_ffree = fsd.f_ffree;
#endif
/* f_frsize isn't guaranteed to be supported. */
fsp->fsu_blocksize =
PROPAGATE_ALL_ONES (fsd.f_frsize ? fsd.f_frsize : fsd.f_bsize);
#endif /* STAT_STATVFS */
#if !defined(STAT_STATFS2_FS_DATA) && !defined(STAT_READ_FILSYS)
/* !Ultrix && !SVR2 */
fsp->fsu_blocks = PROPAGATE_ALL_ONES (fsd.f_blocks);
fsp->fsu_bfree = PROPAGATE_ALL_ONES (fsd.f_bfree);
fsp->fsu_bavail = PROPAGATE_TOP_BIT (fsd.f_bavail);
fsp->fsu_bavail_top_bit_set = EXTRACT_TOP_BIT (fsd.f_bavail) != 0;
fsp->fsu_files = PROPAGATE_ALL_ONES (fsd.f_files);
fsp->fsu_ffree = PROPAGATE_ALL_ONES (fsd.f_ffree);
#endif /* not STAT_STATFS2_FS_DATA && not STAT_READ_FILSYS */
return 0;
}
@@ -200,9 +259,7 @@ get_fs_usage (path, disk, fsp)
/* AIX PS/2 does not supply statfs. */
int
statfs (path, fsb)
char *path;
struct statfs *fsb;
statfs (char *path, struct statfs *fsb)
{
struct stat stats;
struct dustat fsd;
@@ -222,4 +279,5 @@ statfs (path, fsb)
fsb->f_fsid.val[1] = fsd.du_pckno;
return 0;
}
#endif /* _AIX && _I386 */

View File

@@ -1,5 +1,5 @@
/* fsusage.h -- declarations for filesystem space usage info
Copyright (C) 1991, 1992 Free Software Foundation, Inc.
Copyright (C) 1991, 1992, 1997 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,21 +12,34 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Space usage statistics for a filesystem. Blocks are 512-byte. */
#if !defined FSUSAGE_H_
# define FSUSAGE_H_
struct fs_usage
{
long fsu_blocks; /* Total blocks. */
long fsu_bfree; /* Free blocks available to superuser. */
long fsu_bavail; /* Free blocks available to non-superuser. */
long fsu_files; /* Total file nodes. */
long fsu_ffree; /* Free file nodes. */
int fsu_blocksize; /* Size of a block. */
uintmax_t fsu_blocks; /* Total blocks. */
uintmax_t fsu_bfree; /* Free blocks available to superuser. */
uintmax_t fsu_bavail; /* Free blocks available to non-superuser. */
int fsu_bavail_top_bit_set; /* 1 if fsu_bavail represents a value < 0. */
uintmax_t fsu_files; /* Total file nodes. */
uintmax_t fsu_ffree; /* Free file nodes. */
};
#if __STDC__
int get_fs_usage (char *path, char *disk, struct fs_usage *fsp);
#else
int get_fs_usage ();
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
int get_fs_usage PARAMS ((const char *path, const char *disk,
struct fs_usage *fsp));
#endif

View File

@@ -1,8 +1,8 @@
/* ftruncate emulations that work on some System V's.
This file is in the public domain. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
@@ -11,28 +11,24 @@
#ifdef F_CHSIZE
int
ftruncate (fd, length)
int fd;
off_t length;
ftruncate (int fd, off_t length)
{
return fcntl (fd, F_CHSIZE, length);
}
#else /* not F_CHSIZE */
#ifdef F_FREESP
# ifdef F_FREESP
/* By William Kucharski <kucharsk@netcom.com>. */
#include <sys/stat.h>
#include <errno.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
# include <sys/stat.h>
# include <errno.h>
# if HAVE_UNISTD_H
# include <unistd.h>
# endif
int
ftruncate (fd, length)
int fd;
off_t length;
ftruncate (int fd, off_t length)
{
struct flock fl;
struct stat filebuf;
@@ -71,33 +67,29 @@ ftruncate (fd, length)
return 0;
}
#else /* not F_CHSIZE nor F_FREESP */
#ifdef HAVE_CHSIZE
# else /* not F_CHSIZE nor F_FREESP */
# if HAVE_CHSIZE
int
ftruncate (fd, length)
int fd;
off_t length;
ftruncate (int fd, off_t length)
{
return chsize (fd, length);
}
#else /* not F_CHSIZE nor F_FREESP nor HAVE_CHSIZE */
# else /* not F_CHSIZE nor F_FREESP nor HAVE_CHSIZE */
#include <errno.h>
#ifndef errno
# include <errno.h>
# ifndef errno
extern int errno;
#endif
# endif
int
ftruncate (fd, length)
int fd;
off_t length;
ftruncate (int fd, off_t length)
{
errno = EIO;
return -1;
}
#endif /* not HAVE_CHSIZE */
#endif /* not F_FREESP */
# endif /* not HAVE_CHSIZE */
# endif /* not F_FREESP */
#endif /* not F_CHSIZE */

View File

@@ -1,5 +1,5 @@
/* full-write.c -- an interface to write that retries after interrupts
Copyright (C) 1993, 1994 Free Software Foundation, Inc.
Copyright (C) 1993, 1994, 1997, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,20 +12,20 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Copied largely from GNU C's cccp.c.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <errno.h>
@@ -37,10 +37,7 @@ extern int errno;
Return LEN upon success, write's (negative) error code otherwise. */
int
full_write (desc, ptr, len)
int desc;
char *ptr;
size_t len;
full_write (int desc, const char *ptr, size_t len)
{
int total_written;
@@ -48,6 +45,10 @@ full_write (desc, ptr, len)
while (len > 0)
{
int written = write (desc, ptr, len);
/* FIXME: write on my slackware Linux 1.2.13 returns zero when
I try to write more data than there is room on a floppy disk.
This puts dd into an infinite loop. Reproduce with
dd if=/dev/zero of=/dev/fd0. */
if (written < 0)
{
#ifdef EINTR

46
lib/getdate.h Normal file
View File

@@ -0,0 +1,46 @@
/* Copyright (C) 1995, 1997, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
#ifdef vms
# include <types.h>
# include <time.h>
#else
# include <sys/types.h>
# if TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
# else
# if HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
# endif
#endif /* defined (vms) */
time_t get_date PARAMS ((const char *p, const time_t *now));

File diff suppressed because it is too large Load Diff

56
lib/getgroups.c Normal file
View File

@@ -0,0 +1,56 @@
/* provide consistent interface to getgroups for systems that don't allow N==0
Copyright (C) 1996, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* written by Jim Meyering */
#include <config.h>
#include <stdio.h>
#include <sys/types.h>
char *xmalloc ();
/* On at least Ultrix 4.3 and NextStep 3.2, getgroups (0, 0) always fails.
On other systems, it returns the number of supplemental groups for the
process. This function handles that special case and lets the system-
provided function handle all others. */
int
getgroups (size_t n, GETGROUPS_T *group)
{
int n_groups;
GETGROUPS_T *gbuf;
#undef getgroups
if (n != 0)
return getgroups (n, group);
n = 20;
gbuf = NULL;
while (1)
{
gbuf = (GETGROUPS_T *) xrealloc (gbuf, n * sizeof (GETGROUPS_T));
n_groups = getgroups (n, gbuf);
if (n_groups < n)
break;
n += 10;
}
free (gbuf);
return n_groups;
}

View File

@@ -12,13 +12,17 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* David MacKenzie <djm@gnu.ai.mit.edu> */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef HAVE_UNAME
#include <sys/utsname.h>
# include <sys/utsname.h>
#endif
/* Put up to LEN chars of the host name into NAME.

143
lib/getline.c Normal file
View File

@@ -0,0 +1,143 @@
/* getline.c -- Replacement for GNU C library function getline
Copyright (C) 1993, 1996, 1997, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Jan Brittenson, bson@gnu.ai.mit.edu. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
/* The `getdelim' function is only declared if the following symbol
is defined. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif
#include <stdio.h>
#include <sys/types.h>
#if defined __GNU_LIBRARY__ && HAVE_GETDELIM
int
getline (char **lineptr, size_t *n, FILE *stream)
{
return getdelim (lineptr, n, '\n', stream);
}
#else /* ! have getdelim */
# define NDEBUG
# include <assert.h>
# if STDC_HEADERS
# include <stdlib.h>
# else
char *malloc (), *realloc ();
# endif
/* Always add at least this many bytes when extending the buffer. */
# define MIN_CHUNK 64
/* Read up to (and including) a TERMINATOR from STREAM into *LINEPTR
+ OFFSET (and null-terminate it). *LINEPTR is a pointer returned from
malloc (or NULL), pointing to *N characters of space. It is realloc'd
as necessary. Return the number of characters read (not including the
null terminator), or -1 on error or EOF. */
int
getstr (char **lineptr, size_t *n, FILE *stream, char terminator, size_t offset)
{
int nchars_avail; /* Allocated but unused chars in *LINEPTR. */
char *read_pos; /* Where we're reading into *LINEPTR. */
int ret;
if (!lineptr || !n || !stream)
return -1;
if (!*lineptr)
{
*n = MIN_CHUNK;
*lineptr = malloc (*n);
if (!*lineptr)
return -1;
}
nchars_avail = *n - offset;
read_pos = *lineptr + offset;
for (;;)
{
register int c = getc (stream);
/* We always want at least one char left in the buffer, since we
always (unless we get an error while reading the first char)
NUL-terminate the line buffer. */
assert(*n - nchars_avail == read_pos - *lineptr);
if (nchars_avail < 2)
{
if (*n > MIN_CHUNK)
*n *= 2;
else
*n += MIN_CHUNK;
nchars_avail = *n + *lineptr - read_pos;
*lineptr = realloc (*lineptr, *n);
if (!*lineptr)
return -1;
read_pos = *n - nchars_avail + *lineptr;
assert(*n - nchars_avail == read_pos - *lineptr);
}
if (c == EOF || ferror (stream))
{
/* Return partial line, if any. */
if (read_pos == *lineptr)
return -1;
else
break;
}
*read_pos++ = c;
nchars_avail--;
if (c == terminator)
/* Return the line. */
break;
}
/* Done - NUL terminate and return the number of chars read. */
*read_pos = '\0';
ret = read_pos - (*lineptr + offset);
return ret;
}
int
getline (char **lineptr, size_t *n, FILE *stream)
{
return getstr (lineptr, n, stream, '\n', 0);
}
int
getdelim (char **lineptr, size_t *n, int delimiter, FILE *stream)
{
return getstr (lineptr, n, stream, delimiter, 0);
}
#endif

38
lib/getline.h Normal file
View File

@@ -0,0 +1,38 @@
/* Copyright (C) 1995, 1997, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef GETLINE_H_
# define GETLINE_H_ 1
# include <stdio.h>
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
# if __GLIBC__ < 2
int
getline PARAMS ((char **_lineptr, size_t *_n, FILE *_stream));
int
getdelim PARAMS ((char **_lineptr, size_t *_n, int _delimiter, FILE *_stream));
# endif
#endif /* not GETLINE_H_ */

1080
lib/getloadavg.c Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,8 @@
/* Getopt for GNU.
NOTE: getopt is now part of the C library, so if you don't know what
"Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
before changing it!
NOTE: The canonical source of this file is maintained with the GNU
C Library. Bugs can be reported to bug-glibc@gnu.org.
Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95
Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
@@ -17,25 +16,25 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
Ditto for AIX 3.2 and <stdlib.h>. */
#ifndef _NO_PROTO
#define _NO_PROTO
# define _NO_PROTO
#endif
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#if !defined (__STDC__) || !__STDC__
# include <config.h>
#else
# if !defined __STDC__ || !__STDC__
/* This is a separate conditional since some stdc systems
reject `defined (const)'. */
#ifndef const
#define const
#endif
# ifndef const
# define const
# endif
# endif
#endif
#include <stdio.h>
@@ -48,7 +47,15 @@
program understand `configure --with-gnu-libc' and omit the object files,
it is simpler to just do this in the source for each such file. */
#if defined (_LIBC) || !defined (__GNU_LIBRARY__)
#define GETOPT_INTERFACE_VERSION 2
#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
# include <gnu-versions.h>
# if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
# define ELIDE_CODE
# endif
#endif
#ifndef ELIDE_CODE
/* This needs to come after some library #include
@@ -56,15 +63,26 @@
#ifdef __GNU_LIBRARY__
/* Don't include stdlib.h for non-GNU C libraries because some of them
contain conflicting prototypes for getopt. */
#include <stdlib.h>
# include <stdlib.h>
# include <unistd.h>
#endif /* GNU C library. */
#ifdef VMS
# include <unixlib.h>
# if HAVE_STRING_H - 0
# include <string.h>
# endif
#endif
#ifndef _
/* This is for other GNU distributions with internationalized messages.
The GNU C Library itself does not yet support such messages. */
#if HAVE_LIBINTL_H
# include <libintl.h>
#else
# define gettext(msgid) (msgid)
When compiling libc, the _ macro is predefined. */
# ifdef HAVE_LIBINTL_H
# include <libintl.h>
# define _(msgid) gettext (msgid)
# else
# define _(msgid) (msgid)
# endif
#endif
/* This version of `getopt' appears to the caller like standard Unix `getopt'
@@ -89,7 +107,7 @@
Also, when `ordering' is RETURN_IN_ORDER,
each non-option ARGV-element is returned here. */
char *optarg = NULL;
char *optarg;
/* Index in ARGV of the next element to be scanned.
This is used for communication to and from the caller
@@ -97,14 +115,20 @@ char *optarg = NULL;
On entry to `getopt', zero means this is the first call; initialize.
When `getopt' returns EOF, this is the index of the first of the
When `getopt' returns -1, this is the index of the first of the
non-option elements that the caller should itself scan.
Otherwise, `optind' communicates from one call to the next
how much of ARGV has been scanned so far. */
/* XXX 1003.2 says this must be 1 before any call. */
int optind = 0;
/* 1003.2 says this must be 1 before any call. */
int optind = 1;
/* Formerly, initialization of getopt depended on optind==0, which
causes problems with re-calling getopt as programs generally don't
know that. */
int __getopt_initialized;
/* The next char to be scanned in the option-element
in which the last option character we returned was found.
@@ -153,7 +177,7 @@ int optopt = '?';
The special argument `--' forces an end of option-scanning regardless
of the value of `ordering'. In the case of RETURN_IN_ORDER, only
`--' can cause `getopt' to return EOF with `optind' != ARGC. */
`--' can cause `getopt' to return -1 with `optind' != ARGC. */
static enum
{
@@ -168,14 +192,22 @@ static char *posixly_correct;
because there are many ways it can cause trouble.
On some systems, it contains special magic macros that don't work
in GCC. */
#include <string.h>
#define my_index strchr
# include <string.h>
# define my_index strchr
#else
# if HAVE_STRING_H
# include <string.h>
# else
# include <strings.h>
# endif
/* Avoid depending on library functions or files
whose names are inconsistent. */
char *getenv ();
#ifndef getenv
extern char *getenv ();
#endif
static char *
my_index (str, chr)
@@ -196,11 +228,11 @@ my_index (str, chr)
#ifdef __GNUC__
/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
That was relevant to code that was here before. */
#if !defined (__STDC__) || !__STDC__
# if (!defined __STDC__ || !__STDC__) && !defined strlen
/* gcc with -traditional declares the built-in strlen to return int,
and has done so at least since version 2.4.5. -- rms. */
extern int strlen (const char *);
#endif /* not __STDC__ */
# endif /* not __STDC__ */
#endif /* __GNUC__ */
#endif /* not __GNU_LIBRARY__ */
@@ -214,6 +246,46 @@ extern int strlen (const char *);
static int first_nonopt;
static int last_nonopt;
#ifdef _LIBC
/* Bash 2.0 gives us an environment variable containing flags
indicating ARGV elements that should not be considered arguments. */
/* Defined in getopt_init.c */
extern char *__getopt_nonoption_flags;
static int nonoption_flags_max_len;
static int nonoption_flags_len;
static int original_argc;
static char *const *original_argv;
/* Make sure the environment variable bash 2.0 puts in the environment
is valid for the getopt call we must make sure that the ARGV passed
to getopt is that one passed to the process. */
static void
__attribute__ ((unused))
store_args_and_env (int argc, char *const *argv)
{
/* XXX This is no good solution. We should rather copy the args so
that we can compare them later. But we must not use malloc(3). */
original_argc = argc;
original_argv = argv;
}
# ifdef text_set_element
text_set_element (__libc_subinit, store_args_and_env);
# endif /* text_set_element */
# define SWAP_FLAGS(ch1, ch2) \
if (nonoption_flags_len > 0) \
{ \
char __tmp = __getopt_nonoption_flags[ch1]; \
__getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \
__getopt_nonoption_flags[ch2] = __tmp; \
}
#else /* !_LIBC */
# define SWAP_FLAGS(ch1, ch2)
#endif /* _LIBC */
/* Exchange two adjacent subsequences of ARGV.
One subsequence is elements [first_nonopt,last_nonopt)
which contains all the non-options that have been skipped so far.
@@ -223,6 +295,10 @@ static int last_nonopt;
`first_nonopt' and `last_nonopt' are relocated so that they describe
the new indices of the non-options in ARGV after they are moved. */
#if defined __STDC__ && __STDC__
static void exchange (char **);
#endif
static void
exchange (argv)
char **argv;
@@ -237,6 +313,28 @@ exchange (argv)
It leaves the longer segment in the right place overall,
but it consists of two parts that need to be swapped next. */
#ifdef _LIBC
/* First make sure the handling of the `__getopt_nonoption_flags'
string can work normally. Our top argument must be in the range
of the string. */
if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len)
{
/* We must extend the array. The user plays games with us and
presents new arguments. */
char *new_str = malloc (top + 1);
if (new_str == NULL)
nonoption_flags_len = nonoption_flags_max_len = 0;
else
{
memset (__mempcpy (new_str, __getopt_nonoption_flags,
nonoption_flags_max_len),
'\0', top + 1 - nonoption_flags_max_len);
nonoption_flags_max_len = top + 1;
__getopt_nonoption_flags = new_str;
}
}
#endif
while (top > middle && middle > bottom)
{
if (top - middle > middle - bottom)
@@ -251,6 +349,7 @@ exchange (argv)
tem = argv[bottom + i];
argv[bottom + i] = argv[top - (middle - bottom) + i];
argv[top - (middle - bottom) + i] = tem;
SWAP_FLAGS (bottom + i, top - (middle - bottom) + i);
}
/* Exclude the moved bottom segment from further swapping. */
top -= len;
@@ -267,6 +366,7 @@ exchange (argv)
tem = argv[bottom + i];
argv[bottom + i] = argv[middle + i];
argv[middle + i] = tem;
SWAP_FLAGS (bottom + i, middle + i);
}
/* Exclude the moved top segment from further swapping. */
bottom += len;
@@ -281,15 +381,20 @@ exchange (argv)
/* Initialize the internal data when the first call is made. */
#if defined __STDC__ && __STDC__
static const char *_getopt_initialize (int, char *const *, const char *);
#endif
static const char *
_getopt_initialize (optstring)
_getopt_initialize (argc, argv, optstring)
int argc;
char *const *argv;
const char *optstring;
{
/* Start processing options with ARGV-element 1 (since ARGV-element 0
is the program name); the sequence of previously skipped
non-option ARGV-elements is empty. */
first_nonopt = last_nonopt = optind = 1;
first_nonopt = last_nonopt = optind;
nextchar = NULL;
@@ -312,6 +417,36 @@ _getopt_initialize (optstring)
else
ordering = PERMUTE;
#ifdef _LIBC
if (posixly_correct == NULL
&& argc == original_argc && argv == original_argv)
{
if (nonoption_flags_max_len == 0)
{
if (__getopt_nonoption_flags == NULL
|| __getopt_nonoption_flags[0] == '\0')
nonoption_flags_max_len = -1;
else
{
const char *orig_str = __getopt_nonoption_flags;
int len = nonoption_flags_max_len = strlen (orig_str);
if (nonoption_flags_max_len < argc)
nonoption_flags_max_len = argc;
__getopt_nonoption_flags =
(char *) malloc (nonoption_flags_max_len);
if (__getopt_nonoption_flags == NULL)
nonoption_flags_max_len = -1;
else
memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
'\0', nonoption_flags_max_len - len);
}
}
nonoption_flags_len = nonoption_flags_max_len;
}
else
nonoption_flags_len = 0;
#endif
return optstring;
}
@@ -328,7 +463,7 @@ _getopt_initialize (optstring)
updating `optind' and `nextchar' so that the next call to `getopt' can
resume the scan with the following option character or ARGV-element.
If there are no more option characters, `getopt' returns `EOF'.
If there are no more option characters, `getopt' returns -1.
Then `optind' is the index in ARGV of the first ARGV-element
that is not an option. (The ARGV-elements have been permuted
so that those that are not options now come last.)
@@ -382,16 +517,37 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
{
optarg = NULL;
if (optind == 0)
if (optind == 0 || !__getopt_initialized)
{
optstring = _getopt_initialize (optstring);
optind = 1; /* Don't scan ARGV[0], the program name. */
if (optind == 0)
optind = 1; /* Don't scan ARGV[0], the program name. */
optstring = _getopt_initialize (argc, argv, optstring);
__getopt_initialized = 1;
}
/* Test whether ARGV[optind] points to a non-option argument.
Either it does not have option syntax, or there is an environment flag
from the shell indicating it is not an option. The later information
is only used when the used in the GNU libc. */
#ifdef _LIBC
# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \
|| (optind < nonoption_flags_len \
&& __getopt_nonoption_flags[optind] == '1'))
#else
# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
#endif
if (nextchar == NULL || *nextchar == '\0')
{
/* Advance to the next ARGV-element. */
/* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been
moved back by the user (who may also have changed the arguments). */
if (last_nonopt > optind)
last_nonopt = optind;
if (first_nonopt > optind)
first_nonopt = optind;
if (ordering == PERMUTE)
{
/* If we have just processed some options following some non-options,
@@ -405,8 +561,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
/* Skip any additional non-options
and extend the range of non-options previously skipped. */
while (optind < argc
&& (argv[optind][0] != '-' || argv[optind][1] == '\0'))
while (optind < argc && NONOPTION_P)
optind++;
last_nonopt = optind;
}
@@ -438,16 +593,16 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
that we previously skipped, so the caller will digest them. */
if (first_nonopt != last_nonopt)
optind = first_nonopt;
return EOF;
return -1;
}
/* If we have come to a non-option and did not permute it,
either stop the scan or describe it to the caller and pass it by. */
if ((argv[optind][0] != '-' || argv[optind][1] == '\0'))
if (NONOPTION_P)
{
if (ordering == REQUIRE_ORDER)
return EOF;
return -1;
optarg = argv[optind++];
return 1;
}
@@ -476,30 +631,26 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (longopts != NULL
&& (argv[optind][1] == '-'
|| (long_only && (argv[optind][2]
|| !my_index (optstring, argv[optind][1])))))
|| (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1])))))
{
char *nameend;
const struct option *p;
const struct option *pfound = NULL;
int exact = 0;
int ambig = 0;
int indfound;
int indfound = -1;
int option_index;
for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
/* Do nothing. */ ;
#ifdef lint
indfound = 0; /* Avoid spurious compiler warning. */
#endif
/* Test all long options for either exact match
or abbreviated matches. */
for (p = longopts, option_index = 0; p->name; p++, option_index++)
if (!strncmp (p->name, nextchar, nameend - nextchar))
{
if (nameend - nextchar == strlen (p->name))
if ((unsigned int) (nameend - nextchar)
== (unsigned int) strlen (p->name))
{
/* Exact match found. */
pfound = p;
@@ -521,10 +672,11 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (ambig && !exact)
{
if (opterr)
fprintf (stderr, gettext ("%s: option `%s' is ambiguous\n"),
fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
argv[0], argv[optind]);
nextchar += strlen (nextchar);
optind++;
optopt = 0;
return '?';
}
@@ -541,18 +693,22 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
else
{
if (opterr)
if (argv[optind - 1][1] == '-')
/* --option */
fprintf (stderr,
gettext ("%s: option `--%s' doesn't allow an argument\n"),
argv[0], pfound->name);
else
/* +option or -option */
fprintf (stderr,
gettext ("%s: option `%c%s' doesn't allow an argument\n"),
argv[0], argv[optind - 1][0], pfound->name);
{
if (argv[optind - 1][1] == '-')
/* --option */
fprintf (stderr,
_("%s: option `--%s' doesn't allow an argument\n"),
argv[0], pfound->name);
else
/* +option or -option */
fprintf (stderr,
_("%s: option `%c%s' doesn't allow an argument\n"),
argv[0], argv[optind - 1][0], pfound->name);
}
nextchar += strlen (nextchar);
optopt = pfound->val;
return '?';
}
}
@@ -564,9 +720,10 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
{
if (opterr)
fprintf (stderr,
gettext ("%s: option `%s' requires an argument\n"),
_("%s: option `%s' requires an argument\n"),
argv[0], argv[optind - 1]);
nextchar += strlen (nextchar);
optopt = pfound->val;
return optstring[0] == ':' ? ':' : '?';
}
}
@@ -592,15 +749,16 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
{
if (argv[optind][1] == '-')
/* --option */
fprintf (stderr, gettext ("%s: unrecognized option `--%s'\n"),
fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
argv[0], nextchar);
else
/* +option or -option */
fprintf (stderr, gettext ("%s: unrecognized option `%c%s'\n"),
fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
argv[0], argv[optind][0], nextchar);
}
nextchar = (char *) "";
optind++;
optopt = 0;
return '?';
}
}
@@ -621,15 +779,139 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
{
if (posixly_correct)
/* 1003.2 specifies the format of this message. */
fprintf (stderr, gettext ("%s: illegal option -- %c\n"),
fprintf (stderr, _("%s: illegal option -- %c\n"),
argv[0], c);
else
fprintf (stderr, gettext ("%s: invalid option -- %c\n"),
fprintf (stderr, _("%s: invalid option -- %c\n"),
argv[0], c);
}
optopt = c;
return '?';
}
/* Convenience. Treat POSIX -W foo same as long option --foo */
if (temp[0] == 'W' && temp[1] == ';')
{
char *nameend;
const struct option *p;
const struct option *pfound = NULL;
int exact = 0;
int ambig = 0;
int indfound = 0;
int option_index;
/* This is an option that requires an argument. */
if (*nextchar != '\0')
{
optarg = nextchar;
/* If we end this ARGV-element by taking the rest as an arg,
we must advance to the next element now. */
optind++;
}
else if (optind == argc)
{
if (opterr)
{
/* 1003.2 specifies the format of this message. */
fprintf (stderr, _("%s: option requires an argument -- %c\n"),
argv[0], c);
}
optopt = c;
if (optstring[0] == ':')
c = ':';
else
c = '?';
return c;
}
else
/* We already incremented `optind' once;
increment it again when taking next ARGV-elt as argument. */
optarg = argv[optind++];
/* optarg is now the argument, see if it's in the
table of longopts. */
for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++)
/* Do nothing. */ ;
/* Test all long options for either exact match
or abbreviated matches. */
for (p = longopts, option_index = 0; p->name; p++, option_index++)
if (!strncmp (p->name, nextchar, nameend - nextchar))
{
if ((unsigned int) (nameend - nextchar) == strlen (p->name))
{
/* Exact match found. */
pfound = p;
indfound = option_index;
exact = 1;
break;
}
else if (pfound == NULL)
{
/* First nonexact match found. */
pfound = p;
indfound = option_index;
}
else
/* Second or later nonexact match found. */
ambig = 1;
}
if (ambig && !exact)
{
if (opterr)
fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
argv[0], argv[optind]);
nextchar += strlen (nextchar);
optind++;
return '?';
}
if (pfound != NULL)
{
option_index = indfound;
if (*nameend)
{
/* Don't test has_arg with >, because some C compilers don't
allow it to be used on enums. */
if (pfound->has_arg)
optarg = nameend + 1;
else
{
if (opterr)
fprintf (stderr, _("\
%s: option `-W %s' doesn't allow an argument\n"),
argv[0], pfound->name);
nextchar += strlen (nextchar);
return '?';
}
}
else if (pfound->has_arg == 1)
{
if (optind < argc)
optarg = argv[optind++];
else
{
if (opterr)
fprintf (stderr,
_("%s: option `%s' requires an argument\n"),
argv[0], argv[optind - 1]);
nextchar += strlen (nextchar);
return optstring[0] == ':' ? ':' : '?';
}
}
nextchar += strlen (nextchar);
if (longind != NULL)
*longind = option_index;
if (pfound->flag)
{
*(pfound->flag) = pfound->val;
return 0;
}
return pfound->val;
}
nextchar = NULL;
return 'W'; /* Let the application handle it. */
}
if (temp[1] == ':')
{
if (temp[2] == ':')
@@ -660,7 +942,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
{
/* 1003.2 specifies the format of this message. */
fprintf (stderr,
gettext ("%s: option requires an argument -- %c\n"),
_("%s: option requires an argument -- %c\n"),
argv[0], c);
}
optopt = c;
@@ -692,7 +974,7 @@ getopt (argc, argv, optstring)
0);
}
#endif /* _LIBC or not __GNU_LIBRARY__. */
#endif /* Not ELIDE_CODE. */
#ifdef TEST
@@ -712,7 +994,7 @@ main (argc, argv)
int this_option_optind = optind ? optind : 1;
c = getopt (argc, argv, "abc:d:0123456789");
if (c == EOF)
if (c == -1)
break;
switch (c)

View File

@@ -1,6 +1,7 @@
/* Declarations for getopt.
Copyright (C) 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc.
Copyright (C) 1989,90,91,92,93,94,96,97,98 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@gnu.org.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
@@ -13,10 +14,14 @@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifndef _GETOPT_H
#define _GETOPT_H 1
#ifndef __need_getopt
# define _GETOPT_H 1
#endif
#ifdef __cplusplus
extern "C" {
@@ -36,7 +41,7 @@ extern char *optarg;
On entry to `getopt', zero means this is the first call; initialize.
When `getopt' returns EOF, this is the index of the first of the
When `getopt' returns -1, this is the index of the first of the
non-option elements that the caller should itself scan.
Otherwise, `optind' communicates from one call to the next
@@ -53,6 +58,7 @@ extern int opterr;
extern int optopt;
#ifndef __need_getopt
/* Describe the long-named options requested by the application.
The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
of `struct option' terminated by an element containing a name which is
@@ -76,11 +82,11 @@ extern int optopt;
struct option
{
#if defined (__STDC__) && __STDC__
# if defined __STDC__ && __STDC__
const char *name;
#else
# else
char *name;
#endif
# endif
/* has_arg can't be an enum because some compilers complain about
type mismatches in all the code that assumes it is an int. */
int has_arg;
@@ -90,40 +96,74 @@ struct option
/* Names for the values of the `has_arg' field of `struct option'. */
#define no_argument 0
#define required_argument 1
#define optional_argument 2
# define no_argument 0
# define required_argument 1
# define optional_argument 2
#endif /* need getopt */
#if defined (__STDC__) && __STDC__
#ifdef __GNU_LIBRARY__
/* Get definitions and prototypes for functions to process the
arguments in ARGV (ARGC of them, minus the program name) for
options given in OPTS.
Return the option character from OPTS just read. Return -1 when
there are no more options. For unrecognized options, or options
missing arguments, `optopt' is set to the option letter, and '?' is
returned.
The OPTS string is a list of characters which are recognized option
letters, optionally followed by colons, specifying that that letter
takes an argument, to be placed in `optarg'.
If a letter in OPTS is followed by two colons, its argument is
optional. This behavior is specific to the GNU `getopt'.
The argument `--' causes premature termination of argument
scanning, explicitly telling `getopt' that there are no more
options.
If OPTS begins with `--', then non-option arguments are treated as
arguments to the option '\0'. This behavior is specific to the GNU
`getopt'. */
#if defined __STDC__ && __STDC__
# ifdef __GNU_LIBRARY__
/* Many other libraries have conflicting prototypes for getopt, with
differences in the consts, in stdlib.h. To avoid compilation
errors, only prototype getopt for the GNU C library. */
extern int getopt (int argc, char *const *argv, const char *shortopts);
#else /* not __GNU_LIBRARY__ */
extern int getopt (int __argc, char *const *__argv, const char *__shortopts);
# else /* not __GNU_LIBRARY__ */
extern int getopt ();
#endif /* __GNU_LIBRARY__ */
extern int getopt_long (int argc, char *const *argv, const char *shortopts,
const struct option *longopts, int *longind);
extern int getopt_long_only (int argc, char *const *argv,
const char *shortopts,
const struct option *longopts, int *longind);
# endif /* __GNU_LIBRARY__ */
# ifndef __need_getopt
extern int getopt_long (int __argc, char *const *__argv, const char *__shortopts,
const struct option *__longopts, int *__longind);
extern int getopt_long_only (int __argc, char *const *__argv,
const char *__shortopts,
const struct option *__longopts, int *__longind);
/* Internal only. Users should not call this directly. */
extern int _getopt_internal (int argc, char *const *argv,
const char *shortopts,
const struct option *longopts, int *longind,
int long_only);
extern int _getopt_internal (int __argc, char *const *__argv,
const char *__shortopts,
const struct option *__longopts, int *__longind,
int __long_only);
# endif
#else /* not __STDC__ */
extern int getopt ();
# ifndef __need_getopt
extern int getopt_long ();
extern int getopt_long_only ();
extern int _getopt_internal ();
# endif
#endif /* __STDC__ */
#ifdef __cplusplus
}
#endif
#endif /* _GETOPT_H */
/* Make sure we later can get all the definitions and declarations. */
#undef __need_getopt
#endif /* getopt.h */

View File

@@ -1,6 +1,8 @@
/* getopt_long and getopt_long_only entry points for GNU getopt.
Copyright (C) 1987, 88, 89, 90, 91, 92, 1993, 1994
Free Software Foundation, Inc.
Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98
Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@gnu.org.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -13,22 +15,22 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "getopt.h"
#if !defined (__STDC__) || !__STDC__
#else
#if !defined __STDC__ || !__STDC__
/* This is a separate conditional since some stdc systems
reject `defined (const)'. */
#ifndef const
#define const
#endif
#endif
#endif
#include "getopt.h"
#include <stdio.h>
@@ -40,15 +42,21 @@
program understand `configure --with-gnu-libc' and omit the object files,
it is simpler to just do this in the source for each such file. */
#if defined (_LIBC) || !defined (__GNU_LIBRARY__)
#define GETOPT_INTERFACE_VERSION 2
#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
#include <gnu-versions.h>
#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
#define ELIDE_CODE
#endif
#endif
#ifndef ELIDE_CODE
/* This needs to come after some library #include
to get __GNU_LIBRARY__ defined. */
#ifdef __GNU_LIBRARY__
#include <stdlib.h>
#else
char *getenv ();
#endif
#ifndef NULL
@@ -83,7 +91,7 @@ getopt_long_only (argc, argv, options, long_options, opt_index)
}
#endif /* _LIBC or not __GNU_LIBRARY__. */
#endif /* Not ELIDE_CODE. */
#ifdef TEST
@@ -114,7 +122,7 @@ main (argc, argv)
c = getopt_long (argc, argv, "abc:d:0123456789",
long_options, &option_index);
if (c == EOF)
if (c == -1)
break;
switch (c)

35
lib/getpagesize.h Normal file
View File

@@ -0,0 +1,35 @@
/* Emulate getpagesize on systems that lack it. */
#ifndef HAVE_GETPAGESIZE
#ifdef VMS
#define getpagesize() 512
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef _SC_PAGESIZE
#define getpagesize() sysconf(_SC_PAGESIZE)
#else
#include <sys/param.h>
#ifdef EXEC_PAGESIZE
#define getpagesize() EXEC_PAGESIZE
#else
#ifdef NBPG
#define getpagesize() NBPG * CLSIZE
#ifndef CLSIZE
#define CLSIZE 1
#endif /* no CLSIZE */
#else /* no NBPG */
#ifdef NBPC
#define getpagesize() NBPC
#endif /* NBPC */
#endif /* no NBPG */
#endif /* no EXEC_PAGESIZE */
#endif /* no _SC_PAGESIZE */
#endif /* not HAVE_GETPAGESIZE */

View File

@@ -1,5 +1,5 @@
/* getugroups.c -- return a list of the groups a user is in
Copyright (C) 1990, 1991 Free Software Foundation.
Copyright (C) 1990, 1991, 1998, 1999 Free Software Foundation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,75 +12,90 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by David MacKenzie. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#include <stdio.h> /* grp.h on alpha OSF1 V2.0 uses "FILE *". */
#include <grp.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
# include <unistd.h>
#endif
/* Even though SunOS 4, Ultrix 4, and 386BSD are mostly POSIX.1 compliant,
their getgroups system call (except in the `System V' environment, which
is troublesome in other ways) fills in an array of int, not gid_t
(which is `short' on those systems). We do the same, for consistency.
Kludge, kludge. */
#ifdef _POSIX_VERSION
#if !defined(sun) && !defined(ultrix) && !defined(__386BSD__)
#define GETGROUPS_T gid_t
#else /* sun or ultrix or 386BSD */
#define GETGROUPS_T int
#endif /* sun or ultrix or 386BSD */
#else /* not _POSIX_VERSION */
#define GETGROUPS_T int
#endif /* not _POSIX_VERSION */
/* setgrent, getgrent, and endgrent are not specified by POSIX.1,
so header files might not declare them.
If you don't have them at all, we can't implement this function.
You lose! */
struct group *getgrent ();
#if defined(USG) || defined(STDC_HEADERS)
#include <string.h>
#if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
# include <string.h>
#else
#include <strings.h>
# include <strings.h>
#endif
/* Like `getgroups', but for user USERNAME instead of for
the current process. */
#define STREQ(s1, s2) ((strcmp (s1, s2) == 0))
/* Like `getgroups', but for user USERNAME instead of for the current
process. Store at most MAXCOUNT group IDs in the GROUPLIST array.
If GID is not -1, store it first (if possible). GID should be the
group ID (pw_gid) obtained from getpwuid, in case USERNAME is not
listed in /etc/groups.
Always return the number of groups of which USERNAME is a member. */
int
getugroups (maxcount, grouplist, username)
int maxcount;
GETGROUPS_T *grouplist;
char *username;
getugroups (int maxcount, GETGROUPS_T *grouplist, char *username, gid_t gid)
{
struct group *grp;
register char **cp;
register int count = 0;
if (gid != -1)
{
if (maxcount != 0)
grouplist[count] = gid;
++count;
}
setgrent ();
while ((grp = getgrent ()) != 0)
for (cp = grp->gr_mem; *cp; ++cp)
if (!strcmp (username, *cp))
{
for (cp = grp->gr_mem; *cp; ++cp)
{
if (maxcount != 0)
int n;
if ( ! STREQ (username, *cp))
continue;
/* See if this group number is already on the list. */
for (n = 0; n < count; ++n)
if (grouplist && grouplist[n] == grp->gr_gid)
break;
/* If it's a new group number, then try to add it to the list. */
if (n == count)
{
if (count >= maxcount)
if (maxcount != 0)
{
endgrent ();
return count;
if (count >= maxcount)
{
endgrent ();
return count;
}
grouplist[count] = grp->gr_gid;
}
grouplist[count] = grp->gr_gid;
count++;
}
count++;
}
}
endgrent ();
return count;
}

View File

@@ -1,5 +1,5 @@
/* getusershell.c -- Return names of valid user shells.
Copyright (C) 1991 Free Software Foundation, Inc.
Copyright (C) 1991, 1997 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,25 +12,33 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by David MacKenzie <djm@gnu.ai.mit.edu> */
#ifdef HAVE_CONFIG_H
#include <config.h>
# include <config.h>
#endif
#ifndef SHELLS_FILE
/* File containing a list of nonrestricted shells, one per line. */
#define SHELLS_FILE "/etc/shells"
# define SHELLS_FILE "/etc/shells"
#endif
#include <stdio.h>
#include <ctype.h>
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define IN_CTYPE_DOMAIN(c) 1
#else
# define IN_CTYPE_DOMAIN(c) isascii(c)
#endif
#define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (c))
#ifdef STDC_HEADERS
#include <stdlib.h>
# include <stdlib.h>
#else
char *malloc ();
char *realloc ();
@@ -175,10 +183,10 @@ readname (name, size, stream)
}
/* Skip blank space. */
while ((c = getc (stream)) != EOF && isspace (c))
while ((c = getc (stream)) != EOF && ISSPACE (c))
/* Do nothing. */ ;
while (c != EOF && !isspace (c))
while (c != EOF && !ISSPACE (c))
{
(*name)[name_index++] = c;
while (name_index >= *size)

View File

@@ -1,5 +1,5 @@
/* getversion.c -- select backup filename type
Copyright (C) 1990 Free Software Foundation, Inc.
Copyright (C) 1990, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,15 +12,19 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by David MacKenzie <djm@gnu.ai.mit.edu> */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include "backupfile.h"
#ifdef STDC_HEADERS
#include <stdlib.h>
#if STDC_HEADERS
# include <stdlib.h>
#endif
int argmatch ();
@@ -28,12 +32,12 @@ void invalid_arg ();
extern char *program_name;
static char *backup_args[] =
static const char *const backup_args[] =
{
"never", "simple", "nil", "existing", "t", "numbered", 0
};
static enum backup_type backup_types[] =
static const enum backup_type backup_types[] =
{
simple, simple, numbered_existing, numbered_existing, numbered, numbered
};
@@ -42,8 +46,7 @@ static enum backup_type backup_types[] =
Unique abbreviations are accepted. */
enum backup_type
get_version (version)
char *version;
get_version (const char *version)
{
int i;

View File

@@ -1,5 +1,5 @@
/* group-member.c -- determine whether group id is in calling user's group list
Copyright (C) 1994 Free Software Foundation, Inc.
Copyright (C) 1994, 1997, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,22 +12,22 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#include <sys/types.h>
#ifdef STDC_HEADERS
#include <stdlib.h>
# include <stdlib.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include "group-member.h"
@@ -41,18 +41,17 @@ struct group_info
GETGROUPS_T *group;
};
#ifdef HAVE_GETGROUPS
#if HAVE_GETGROUPS
static void
free_group_info (g)
struct group_info *g;
free_group_info (struct group_info *g)
{
free (g->group);
free (g);
}
static struct group_info *
get_group_info ()
get_group_info (void)
{
int n_groups;
int n_group_slots;
@@ -96,8 +95,7 @@ get_group_info ()
either of the current or effective group IDs. */
int
group_member (gid)
gid_t gid;
group_member (gid_t gid)
{
#ifndef HAVE_GETGROUPS
return ((gid == getgid ()) || (gid == getegid ()));
@@ -120,7 +118,7 @@ group_member (gid)
break;
}
}
free_group_info (gi);
return found;

View File

@@ -1,7 +1,15 @@
#ifndef _group_member_h_
#define _group_member_h_ 1
#ifndef GROUP_MEMBER_H_
# define GROUP_MEMBER_H_ 1
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
int
group_member ();
group_member PARAMS ((gid_t));
#endif /* _group_member_h_ */
#endif /* GROUP_MEMBER_H_ */

85
lib/hard-locale.c Normal file
View File

@@ -0,0 +1,85 @@
/* hard-locale.c -- Determine whether a locale is hard.
Copyright 1997, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#ifndef __GNUC__
# ifdef HAVE_ALLOCA_H
# include <alloca.h>
# else
# ifdef _AIX
# pragma alloca
# else
# ifdef _WIN32
# include <malloc.h>
# include <io.h>
# else
# ifndef alloca
char *alloca ();
# endif
# endif
# endif
# endif
#endif
#if HAVE_LOCALE_H
# include <locale.h>
#endif
#if HAVE_STRING_H
# include <string.h>
#endif
/* Return nonzero if the current CATEGORY locale is hard, i.e. if you
can't get away with assuming traditional C or POSIX behavior. */
int
hard_locale (int category)
{
#if ! (defined ENABLE_NLS && HAVE_SETLOCALE)
return 0;
#else
int hard = 1;
char const *p = setlocale (category, 0);
if (p)
{
# if defined __GLIBC__ && __GLIBC__ >= 2
if (strcmp (p, "C") == 0 || strcmp (p, "POSIX") == 0)
hard = 0;
# else
char *locale = alloca (strlen (p) + 1);
strcpy (locale, p);
/* Temporarily set the locale to the "C" and "POSIX" locales to
find their names, so that we can determine whether one or the
other is the caller's locale. */
if (((p = setlocale (category, "C")) && strcmp (p, locale) == 0)
|| ((p = setlocale (category, "POSIX")) && strcmp (p, locale) == 0))
hard = 0;
/* Restore the caller's locale. */
setlocale (category, locale);
# endif
}
return hard;
#endif
}

18
lib/hard-locale.h Normal file
View File

@@ -0,0 +1,18 @@
#ifndef HARD_LOCALE_H_
# define HARD_LOCALE_H_ 1
# if HAVE_CONFIG_H
# include <config.h>
# endif
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
int hard_locale PARAMS ((int));
#endif /* HARD_LOCALE_H_ */

999
lib/hash.c Normal file
View File

@@ -0,0 +1,999 @@
/* hash - hashing table processing.
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
Written by Jim Meyering, 1992.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* A generic hash table package. */
/* Define USE_OBSTACK to 1 if you want the allocator to use obstacks instead
of malloc. If you change USE_OBSTACK, you have to recompile! */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#if HAVE_STDBOOL_H
# include <stdbool.h>
#else
typedef enum {false = 0, true = 1} bool;
#endif
#include <stdio.h>
#include <assert.h>
#if !HAVE_DECL_FREE
void free ();
#endif
#if !HAVE_DECL_MALLOC
char *malloc ();
#endif
#if USE_OBSTACK
# include "obstack.h"
# ifndef obstack_chunk_alloc
# define obstack_chunk_alloc malloc
# endif
# ifndef obstack_chunk_free
# define obstack_chunk_free free
# endif
#endif
#include "hash.h"
/* A hash table contains many internal entries, each holding a pointer to
some user provided data (also called a user entry). An entry indistinctly
refers to both the internal entry and its associated user entry. A user
entry contents may be hashed by a randomization function (the hashing
function, or just `hasher' for short) into a number (or `slot') between 0
and the current table size. At each slot position in the hash table,
starts a linked chain of entries for which the user data all hash to this
slot. A bucket is the collection of all entries hashing to the same slot.
A good `hasher' function will distribute entries rather evenly in buckets.
In the ideal case, the length of each bucket is roughly the number of
entries divided by the table size. Finding the slot for a data is usually
done in constant time by the `hasher', and the later finding of a precise
entry is linear in time with the size of the bucket. Consequently, a
larger hash table size (that is, a larger number of buckets) is prone to
yielding shorter chains, *given* the `hasher' function behaves properly.
Long buckets slow down the lookup algorithm. One might use big hash table
sizes in hope to reduce the average length of buckets, but this might
become inordinate, as unused slots in the hash table take some space. The
best bet is to make sure you are using a good `hasher' function (beware
that those are not that easy to write! :-), and to use a table size
larger than the actual number of entries. */
/* If an insertion makes the ratio of nonempty buckets to table size larger
than the growth threshold (a number between 0.0 and 1.0), then increase
the table size by multiplying by the growth factor (a number greater than
1.0). The growth threshold defaults to 0.8, and the growth factor
defaults to 1.414, meaning that the table will have doubled its size
every second time 80% of the buckets get used. */
#define DEFAULT_GROWTH_THRESHOLD 0.8
#define DEFAULT_GROWTH_FACTOR 1.414
/* If a deletion empties a bucket and causes the ratio of used buckets to
table size to become smaller than the shrink threshold (a number between
0.0 and 1.0), then shrink the table by multiplying by the shrink factor (a
number greater than the shrink threshold but smaller than 1.0). The shrink
threshold and factor default to 0.0 and 1.0, meaning that the table never
shrinks. */
#define DEFAULT_SHRINK_THRESHOLD 0.0
#define DEFAULT_SHRINK_FACTOR 1.0
/* Use this to initialize or reset a TUNING structure to
some sensible values. */
static const Hash_tuning default_tuning =
{
DEFAULT_SHRINK_THRESHOLD,
DEFAULT_SHRINK_FACTOR,
DEFAULT_GROWTH_THRESHOLD,
DEFAULT_GROWTH_FACTOR,
false
};
/* Information and lookup. */
/* The following few functions provide information about the overall hash
table organization: the number of entries, number of buckets and maximum
length of buckets. */
/* Return the number of buckets in the hash table. The table size, the total
number of buckets (used plus unused), or the maximum number of slots, are
the same quantity. */
unsigned
hash_get_n_buckets (const Hash_table *table)
{
return table->n_buckets;
}
/* Return the number of slots in use (non-empty buckets). */
unsigned
hash_get_n_buckets_used (const Hash_table *table)
{
return table->n_buckets_used;
}
/* Return the number of active entries. */
unsigned
hash_get_n_entries (const Hash_table *table)
{
return table->n_entries;
}
/* Return the length of the longest chain (bucket). */
unsigned
hash_get_max_bucket_length (const Hash_table *table)
{
struct hash_entry *bucket;
unsigned max_bucket_length = 0;
for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
{
if (bucket->data)
{
struct hash_entry *cursor = bucket;
unsigned bucket_length = 1;
while (cursor = cursor->next, cursor)
bucket_length++;
if (bucket_length > max_bucket_length)
max_bucket_length = bucket_length;
}
}
return max_bucket_length;
}
/* Do a mild validation of a hash table, by traversing it and checking two
statistics. */
bool
hash_table_ok (const Hash_table *table)
{
struct hash_entry *bucket;
unsigned n_buckets_used = 0;
unsigned n_entries = 0;
for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
{
if (bucket->data)
{
struct hash_entry *cursor = bucket;
/* Count bucket head. */
n_buckets_used++;
n_entries++;
/* Count bucket overflow. */
while (cursor = cursor->next, cursor)
n_entries++;
}
}
if (n_buckets_used == table->n_buckets_used && n_entries == table->n_entries)
return true;
return false;
}
void
hash_print_statistics (const Hash_table *table, FILE *stream)
{
unsigned n_entries = hash_get_n_entries (table);
unsigned n_buckets = hash_get_n_buckets (table);
unsigned n_buckets_used = hash_get_n_buckets_used (table);
unsigned max_bucket_length = hash_get_max_bucket_length (table);
fprintf (stream, "# entries: %u\n", n_entries);
fprintf (stream, "# buckets: %u\n", n_buckets);
fprintf (stream, "# buckets used: %u (%.2f%%)\n", n_buckets_used,
(100.0 * n_buckets_used) / n_buckets);
fprintf (stream, "max bucket length: %u\n", max_bucket_length);
}
/* If ENTRY matches an entry already in the hash table, return the
entry from the table. Otherwise, return NULL. */
void *
hash_lookup (const Hash_table *table, const void *entry)
{
struct hash_entry *bucket
= table->bucket + table->hasher (entry, table->n_buckets);
struct hash_entry *cursor;
assert (bucket < table->bucket_limit);
if (bucket->data == NULL)
return NULL;
for (cursor = bucket; cursor; cursor = cursor->next)
if (table->comparator (entry, cursor->data))
return cursor->data;
return NULL;
}
/* Walking. */
/* The functions in this page traverse the hash table and process the
contained entries. For the traversal to work properly, the hash table
should not be resized nor modified while any particular entry is being
processed. In particular, entries should not be added or removed. */
/* Return the first data in the table, or NULL if the table is empty. */
void *
hash_get_first (const Hash_table *table)
{
struct hash_entry *bucket;
if (table->n_entries == 0)
return NULL;
for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
if (bucket->data)
return bucket->data;
assert (0);
}
/* Return the user data for the entry following ENTRY, where ENTRY has been
returned by a previous call to either `hash_get_first' or `hash_get_next'.
Return NULL if there is no more entries. */
void *
hash_get_next (const Hash_table *table, const void *entry)
{
struct hash_entry *bucket
= table->bucket + table->hasher (entry, table->n_buckets);
struct hash_entry *cursor;
assert (bucket < table->bucket_limit);
/* Find next entry in the same bucket. */
for (cursor = bucket; cursor; cursor = cursor->next)
if (cursor->data == entry && cursor->next)
return cursor->next->data;
/* Find first entry in any subsequent bucket. */
for (; bucket < table->bucket_limit; bucket++)
if (bucket->data)
return bucket->data;
/* None found. */
return NULL;
}
/* Fill BUFFER with pointers to active user entries in the hash table, then
return the number of pointers copied. Do not copy more than BUFFER_SIZE
pointers. */
unsigned
hash_get_entries (const Hash_table *table, void **buffer,
unsigned buffer_size)
{
unsigned counter = 0;
struct hash_entry *bucket;
struct hash_entry *cursor;
for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
{
if (bucket->data)
{
for (cursor = bucket; cursor; cursor = cursor->next)
{
if (counter >= buffer_size)
return counter;
buffer[counter++] = cursor->data;
}
}
}
return counter;
}
/* Call a PROCESSOR function for each entry of a hash table, and return the
number of entries for which the processor function returned success. A
pointer to some PROCESSOR_DATA which will be made available to each call to
the processor function. The PROCESSOR accepts two arguments: the first is
the user entry being walked into, the second is the value of PROCESSOR_DATA
as received. The walking continue for as long as the PROCESSOR function
returns nonzero. When it returns zero, the walking is interrupted. */
unsigned
hash_do_for_each (const Hash_table *table, Hash_processor processor,
void *processor_data)
{
unsigned counter = 0;
struct hash_entry *bucket;
struct hash_entry *cursor;
for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
{
if (bucket->data)
{
for (cursor = bucket; cursor; cursor = cursor->next)
{
if (!(*processor) (cursor->data, processor_data))
return counter;
counter++;
}
}
}
return counter;
}
/* Allocation and clean-up. */
/* Return a hash index for a NUL-terminated STRING between 0 and N_BUCKETS-1.
This is a convenience routine for constructing other hashing functions. */
#if USE_DIFF_HASH
/* About hashings, Paul Eggert writes to me (FP), on 1994-01-01: "Please see
B. J. McKenzie, R. Harries & T. Bell, Selecting a hashing algorithm,
Software--practice & experience 20, 2 (Feb 1990), 209-224. Good hash
algorithms tend to be domain-specific, so what's good for [diffutils'] io.c
may not be good for your application." */
unsigned
hash_string (const char *string, unsigned n_buckets)
{
# ifndef CHAR_BIT
# define CHAR_BIT 8
# endif
# define ROTATE_LEFT(Value, Shift) \
((Value) << (Shift) | (Value) >> ((sizeof (unsigned) * CHAR_BIT) - (Shift)))
# define HASH_ONE_CHAR(Value, Byte) \
((Byte) + ROTATE_LEFT (Value, 7))
unsigned value = 0;
for (; *string; string++)
value = HASH_ONE_CHAR (value, *(const unsigned char *) string);
return value % n_buckets;
# undef ROTATE_LEFT
# undef HASH_ONE_CHAR
}
#else /* not USE_DIFF_HASH */
/* This one comes from `recode', and performs a bit better than the above as
per a few experiments. It is inspired from a hashing routine found in the
very old Cyber `snoop', itself written in typical Greg Mansfield style.
(By the way, what happened to this excellent man? Is he still alive?) */
unsigned
hash_string (const char *string, unsigned n_buckets)
{
unsigned value = 0;
while (*string)
value = ((value * 31 + (int) *(const unsigned char *) string++)
% n_buckets);
return value;
}
#endif /* not USE_DIFF_HASH */
/* Return true if CANDIDATE is a prime number. CANDIDATE should be an odd
number at least equal to 11. */
static bool
is_prime (unsigned long candidate)
{
unsigned long divisor = 3;
unsigned long square = divisor * divisor;
while (square < candidate && (candidate % divisor))
{
divisor++;
square += 4 * divisor;
divisor++;
}
return candidate % divisor != 0;
}
/* Round a given CANDIDATE number up to the nearest prime, and return that
prime. Primes lower than 10 are merely skipped. */
static unsigned long
next_prime (unsigned long candidate)
{
/* Skip small primes. */
if (candidate < 10)
candidate = 10;
/* Make it definitely odd. */
candidate |= 1;
while (!is_prime (candidate))
candidate += 2;
return candidate;
}
void
hash_reset_tuning (Hash_tuning *tuning)
{
*tuning = default_tuning;
}
/* For the given hash TABLE, check the user supplied tuning structure for
reasonable values, and return true if there is no gross error with it.
Otherwise, definitively reset the TUNING field to some acceptable default
in the hash table (that is, the user loses the right of further modifying
tuning arguments), and return false. */
static bool
check_tuning (Hash_table *table)
{
const Hash_tuning *tuning = table->tuning;
if (tuning->growth_threshold > 0.0
&& tuning->growth_threshold < 1.0
&& tuning->growth_factor > 1.0
&& tuning->shrink_threshold >= 0.0
&& tuning->shrink_threshold < 1.0
&& tuning->shrink_factor > tuning->shrink_threshold
&& tuning->shrink_factor <= 1.0
&& tuning->shrink_threshold < tuning->growth_threshold)
return true;
table->tuning = &default_tuning;
return false;
}
/* Allocate and return a new hash table, or NULL upon failure. The initial
number of buckets is automatically selected so as to _guarantee_ that you
may insert at least CANDIDATE different user entries before any growth of
the hash table size occurs. So, if have a reasonably tight a-priori upper
bound on the number of entries you intend to insert in the hash table, you
may save some table memory and insertion time, by specifying it here. If
the IS_N_BUCKETS field of the TUNING structure is true, the CANDIDATE
argument has its meaning changed to the wanted number of buckets.
TUNING points to a structure of user-supplied values, in case some fine
tuning is wanted over the default behavior of the hasher. If TUNING is
NULL, the default tuning parameters are used instead.
The user-supplied HASHER function should be provided. It accepts two
arguments ENTRY and TABLE_SIZE. It computes, by hashing ENTRY contents, a
slot number for that entry which should be in the range 0..TABLE_SIZE-1.
This slot number is then returned.
The user-supplied COMPARATOR function should be provided. It accepts two
arguments pointing to user data, it then returns true for a pair of entries
that compare equal, or false otherwise. This function is internally called
on entries which are already known to hash to the same bucket index.
The user-supplied DATA_FREER function, when not NULL, may be later called
with the user data as an argument, just before the entry containing the
data gets freed. This happens from within `hash_free' or `hash_clear'.
You should specify this function only if you want these functions to free
all of your `data' data. This is typically the case when your data is
simply an auxiliary struct that you have malloc'd to aggregate several
values. */
Hash_table *
hash_initialize (unsigned candidate, const Hash_tuning *tuning,
Hash_hasher hasher, Hash_comparator comparator,
Hash_data_freer data_freer)
{
Hash_table *table;
struct hash_entry *bucket;
if (hasher == NULL || comparator == NULL)
return NULL;
table = (Hash_table *) malloc (sizeof (Hash_table));
if (table == NULL)
return NULL;
if (!tuning)
tuning = &default_tuning;
table->tuning = tuning;
if (!check_tuning (table))
{
/* Fail if the tuning options are invalid. This is the only occasion
when the user gets some feedback about it. Once the table is created,
if the user provides invalid tuning options, we silently revert to
using the defaults, and ignore further request to change the tuning
options. */
free (table);
return NULL;
}
table->n_buckets
= next_prime (tuning->is_n_buckets ? candidate
: (unsigned) (candidate / tuning->growth_threshold));
table->bucket = (struct hash_entry *)
malloc (table->n_buckets * sizeof (struct hash_entry));
if (table->bucket == NULL)
{
free (table);
return NULL;
}
table->bucket_limit = table->bucket + table->n_buckets;
for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
{
bucket->data = NULL;
bucket->next = NULL;
}
table->n_buckets_used = 0;
table->n_entries = 0;
table->hasher = hasher;
table->comparator = comparator;
table->data_freer = data_freer;
table->free_entry_list = NULL;
#if USE_OBSTACK
obstack_init (&table->entry_stack);
#endif
return table;
}
/* Make all buckets empty, placing any chained entries on the free list.
Apply the user-specified function data_freer (if any) to the datas of any
affected entries. */
void
hash_clear (Hash_table *table)
{
struct hash_entry *bucket;
struct hash_entry *cursor;
for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
{
if (bucket->data)
{
/* Free the bucket overflow. */
for (cursor = bucket->next; cursor; cursor = cursor->next)
{
if (table->data_freer)
(*table->data_freer) (cursor->data);
cursor->data = NULL;
/* Relinking is done one entry at a time, as it is to be expected
that overflows are either rare or short. */
cursor->next = table->free_entry_list;
table->free_entry_list = cursor;
}
/* Free the bucket head. */
if (table->data_freer)
(*table->data_freer) (bucket->data);
bucket->data = NULL;
bucket->next = NULL;
}
}
table->n_buckets_used = 0;
table->n_entries = 0;
}
/* Reclaim all storage associated with a hash table. If a data_freer
function has been supplied by the user when the hash table was created,
this function applies it to the data of each entry before freeing that
entry. */
void
hash_free (Hash_table *table)
{
struct hash_entry *bucket;
struct hash_entry *cursor;
struct hash_entry *next;
/* Call the user data_freer function. */
if (table->data_freer && table->n_entries)
{
for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
{
if (bucket->data)
{
for (cursor = bucket; cursor; cursor = cursor->next)
{
(*table->data_freer) (cursor->data);
}
}
}
}
#if USE_OBSTACK
obstack_free (&table->entry_stack, NULL);
#else
/* Free all bucket overflowed entries. */
for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
{
for (cursor = bucket->next; cursor; cursor = next)
{
next = cursor->next;
free (cursor);
}
}
/* Also reclaim the internal list of previously freed entries. */
for (cursor = table->free_entry_list; cursor; cursor = next)
{
next = cursor->next;
free (cursor);
}
#endif
/* Free the remainder of the hash table structure. */
free (table->bucket);
free (table);
}
/* Insertion and deletion. */
/* Get a new hash entry for a bucket overflow, possibly by reclying a
previously freed one. If this is not possible, allocate a new one. */
static struct hash_entry *
allocate_entry (Hash_table *table)
{
struct hash_entry *new;
if (table->free_entry_list)
{
new = table->free_entry_list;
table->free_entry_list = new->next;
}
else
{
#if USE_OBSTACK
new = (struct hash_entry *)
obstack_alloc (&table->entry_stack, sizeof (struct hash_entry));
#else
new = (struct hash_entry *) malloc (sizeof (struct hash_entry));
#endif
}
return new;
}
/* Free a hash entry which was part of some bucket overflow,
saving it for later recycling. */
static void
free_entry (Hash_table *table, struct hash_entry *entry)
{
entry->data = NULL;
entry->next = table->free_entry_list;
table->free_entry_list = entry;
}
/* This private function is used to help with insertion and deletion. When
ENTRY matches an entry in the table, return a pointer to the corresponding
user data and set *BUCKET_HEAD to the head of the selected bucket.
Otherwise, return NULL. When DELETE is true and ENTRY matches an entry in
the table, unlink the matching entry. */
static void *
hash_find_entry (Hash_table *table, const void *entry,
struct hash_entry **bucket_head, bool delete)
{
struct hash_entry *bucket
= table->bucket + table->hasher (entry, table->n_buckets);
struct hash_entry *cursor;
assert (bucket < table->bucket_limit);
*bucket_head = bucket;
/* Test for empty bucket. */
if (bucket->data == NULL)
return NULL;
/* Check if then entry is found as the bucket head. */
if ((*table->comparator) (entry, bucket->data))
{
void *data = bucket->data;
if (delete)
{
if (bucket->next)
{
struct hash_entry *next = bucket->next;
/* Bump the first overflow entry into the bucket head, then save
the previous first overflow entry for later recycling. */
*bucket = *next;
free_entry (table, next);
}
else
{
bucket->data = NULL;
}
}
return data;
}
/* Scan the bucket overflow. */
for (cursor = bucket; cursor->next; cursor = cursor->next)
{
if ((*table->comparator) (entry, cursor->next->data))
{
void *data = cursor->next->data;
if (delete)
{
struct hash_entry *next = cursor->next;
/* Unlink the entry to delete, then save the freed entry for later
recycling. */
cursor->next = next->next;
free_entry (table, next);
}
return data;
}
}
/* No entry found. */
return NULL;
}
/* For an already existing hash table, change the number of buckets through
specifying CANDIDATE. The contents of the hash table are preserved. The
new number of buckets is automatically selected so as to _guarantee_ that
the table may receive at least CANDIDATE different user entries, including
those already in the table, before any other growth of the hash table size
occurs. If TUNING->IS_N_BUCKETS is true, then CANDIDATE specifies the
exact number of buckets desired. */
bool
hash_rehash (Hash_table *table, unsigned candidate)
{
Hash_table *new_table;
struct hash_entry *bucket;
struct hash_entry *cursor;
struct hash_entry *next;
new_table = hash_initialize (candidate, table->tuning, table->hasher,
table->comparator, table->data_freer);
if (new_table == NULL)
return false;
/* Merely reuse the extra old space into the new table. */
#if USE_OBSTACK
obstack_free (&new_table->entry_stack, NULL);
new_table->entry_stack = table->entry_stack;
#endif
new_table->free_entry_list = table->free_entry_list;
for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
if (bucket->data)
for (cursor = bucket; cursor; cursor = next)
{
void *data = cursor->data;
struct hash_entry *new_bucket
= (new_table->bucket
+ new_table->hasher (data, new_table->n_buckets));
assert (new_bucket < new_table->bucket_limit);
next = cursor->next;
if (new_bucket->data)
{
if (cursor == bucket)
{
/* Allocate or recycle an entry, when moving from a bucket
header into a bucket overflow. */
struct hash_entry *new_entry = allocate_entry (new_table);
if (new_entry == NULL)
return false;
new_entry->data = data;
new_entry->next = new_bucket->next;
new_bucket->next = new_entry;
}
else
{
/* Merely relink an existing entry, when moving from a
bucket overflow into a bucket overflow. */
cursor->next = new_bucket->next;
new_bucket->next = cursor;
}
}
else
{
/* Free an existing entry, when moving from a bucket
overflow into a bucket header. Also take care of the
simple case of moving from a bucket header into a bucket
header. */
new_bucket->data = data;
new_table->n_buckets_used++;
if (cursor != bucket)
free_entry (new_table, cursor);
}
}
free (table->bucket);
table->bucket = new_table->bucket;
table->bucket_limit = new_table->bucket_limit;
table->n_buckets = new_table->n_buckets;
table->n_buckets_used = new_table->n_buckets_used;
/* table->n_entries already holds its value. */
#if USE_OBSTACK
table->entry_stack = new_table->entry_stack;
#endif
free (new_table);
return true;
}
/* If ENTRY matches an entry already in the hash table, return the pointer
to the entry from the table. Otherwise, insert ENTRY and return ENTRY.
Return NULL if the storage required for insertion cannot be allocated. */
void *
hash_insert (Hash_table *table, const void *entry)
{
void *data;
struct hash_entry *bucket;
assert (entry); /* cannot insert a NULL entry */
/* If there's a matching entry already in the table, return that. */
if ((data = hash_find_entry (table, entry, &bucket, false)) != NULL)
return data;
/* ENTRY is not matched, it should be inserted. */
if (bucket->data)
{
struct hash_entry *new_entry = allocate_entry (table);
if (new_entry == NULL)
return NULL;
/* Add ENTRY in the overflow of the bucket. */
new_entry->data = (void *) entry;
new_entry->next = bucket->next;
bucket->next = new_entry;
table->n_entries++;
return (void *) entry;
}
/* Add ENTRY right in the bucket head. */
bucket->data = (void *) entry;
table->n_entries++;
table->n_buckets_used++;
/* If the growth threshold of the buckets in use has been reached, increase
the table size and rehash. There's no point in checking the number of
entries: if the hashing function is ill-conditioned, rehashing is not
likely to improve it. */
if (table->n_buckets_used
> table->tuning->growth_threshold * table->n_buckets)
{
/* Check more fully, before starting real work. If tuning arguments
became invalid, the second check will rely on proper defaults. */
check_tuning (table);
if (table->n_buckets_used
> table->tuning->growth_threshold * table->n_buckets)
{
const Hash_tuning *tuning = table->tuning;
unsigned candidate
= (unsigned) (tuning->is_n_buckets
? (table->n_buckets * tuning->growth_factor)
: (table->n_buckets * tuning->growth_factor
* tuning->growth_threshold));
/* If the rehash fails, arrange to return NULL. */
if (!hash_rehash (table, candidate))
entry = NULL;
}
}
return (void *) entry;
}
/* If ENTRY is already in the table, remove it and return the just-deleted
data (the user may want to deallocate its storage). If ENTRY is not in the
table, don't modify the table and return NULL. */
void *
hash_delete (Hash_table *table, const void *entry)
{
void *data;
struct hash_entry *bucket;
if (data = hash_find_entry (table, entry, &bucket, true), !data)
return NULL;
table->n_entries--;
if (!bucket->data)
{
table->n_buckets_used--;
/* If the shrink threshold of the buckets in use has been reached,
rehash into a smaller table. */
if (table->n_buckets_used
< table->tuning->shrink_threshold * table->n_buckets)
{
/* Check more fully, before starting real work. If tuning arguments
became invalid, the second check will rely on proper defaults. */
check_tuning (table);
if (table->n_buckets_used
< table->tuning->shrink_threshold * table->n_buckets)
{
const Hash_tuning *tuning = table->tuning;
unsigned candidate
= (unsigned) (tuning->is_n_buckets
? table->n_buckets * tuning->shrink_factor
: (table->n_buckets * tuning->shrink_factor
* tuning->growth_threshold));
hash_rehash (table, candidate);
}
}
}
return data;
}
/* Testing. */
#if TESTING
void
hash_print (const Hash_table *table)
{
struct hash_entry *bucket;
for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
{
struct hash_entry *cursor;
if (bucket)
printf ("%d:\n", slot);
for (cursor = bucket; cursor; cursor = cursor->next)
{
char *s = (char *) cursor->data;
/* FIXME */
printf (" %s\n", s);
}
}
}
#endif /* TESTING */

120
lib/hash.h Normal file
View File

@@ -0,0 +1,120 @@
/* hash - hashing table processing.
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
Written by Jim Meyering <meyering@ascend.com>, 1998.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* A generic hash table package. */
/* Make sure USE_OBSTACK is defined to 1 if you want the allocator to use
obstacks instead of malloc, and recompile `hash.c' with same setting. */
#ifndef PARAMS
# if PROTOTYPES || __STDC__
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
typedef unsigned (*Hash_hasher) PARAMS ((const void *, unsigned));
typedef bool (*Hash_comparator) PARAMS ((const void *, const void *));
typedef void (*Hash_data_freer) PARAMS ((void *));
typedef bool (*Hash_processor) PARAMS ((void *, void *));
struct hash_entry
{
void *data;
struct hash_entry *next;
};
struct hash_tuning
{
/* This structure is mainly used for `hash_initialize', see the block
documentation of `hash_reset_tuning' for more complete comments. */
float shrink_threshold; /* ratio of used buckets to trigger a shrink */
float shrink_factor; /* ratio of new smaller size to original size */
float growth_threshold; /* ratio of used buckets to trigger a growth */
float growth_factor; /* ratio of new bigger size to original size */
bool is_n_buckets; /* if CANDIDATE really means table size */
};
typedef struct hash_tuning Hash_tuning;
struct hash_table
{
/* The array of buckets starts at BUCKET and extends to BUCKET_LIMIT-1,
for a possibility of N_BUCKETS. Among those, N_BUCKETS_USED buckets
are not empty, there are N_ENTRIES active entries in the table. */
struct hash_entry *bucket;
struct hash_entry *bucket_limit;
unsigned n_buckets;
unsigned n_buckets_used;
unsigned n_entries;
/* Tuning arguments, kept in a physicaly separate structure. */
const Hash_tuning *tuning;
/* Three functions are given to `hash_initialize', see the documentation
block for this function. In a word, HASHER randomizes a user entry
into a number up from 0 up to some maximum minus 1; COMPARATOR returns
true if two user entries compare equally; and DATA_FREER is the cleanup
function for a user entry. */
Hash_hasher hasher;
Hash_comparator comparator;
Hash_data_freer data_freer;
/* A linked list of freed struct hash_entry structs. */
struct hash_entry *free_entry_list;
#if USE_OBSTACK
/* Whenever obstacks are used, it is possible to allocate all overflowed
entries into a single stack, so they all can be freed in a single
operation. It is not clear if the speedup is worth the trouble. */
struct obstack entry_stack;
#endif
};
typedef struct hash_table Hash_table;
/* Information and lookup. */
unsigned hash_get_n_buckets PARAMS ((const Hash_table *));
unsigned hash_get_n_buckets_used PARAMS ((const Hash_table *));
unsigned hash_get_n_entries PARAMS ((const Hash_table *));
unsigned hash_get_max_bucket_length PARAMS ((const Hash_table *));
bool hash_table_ok PARAMS ((const Hash_table *));
void hash_print_statistics PARAMS ((const Hash_table *, FILE *));
void *hash_lookup PARAMS ((const Hash_table *, const void *));
/* Walking. */
void *hash_get_first PARAMS ((const Hash_table *));
void *hash_get_next PARAMS ((const Hash_table *, const void *));
unsigned hash_get_entries PARAMS ((const Hash_table *, void **, unsigned));
unsigned hash_do_for_each PARAMS ((const Hash_table *, Hash_processor, void *));
/* Allocation and clean-up. */
unsigned hash_string PARAMS ((const char *, unsigned));
void hash_reset_tuning PARAMS ((Hash_tuning *));
Hash_table *hash_initialize PARAMS ((unsigned, const Hash_tuning *,
Hash_hasher, Hash_comparator,
Hash_data_freer));
void hash_clear PARAMS ((Hash_table *));
void hash_free PARAMS ((Hash_table *));
/* Insertion and deletion. */
bool hash_rehash PARAMS ((Hash_table *, unsigned));
void *hash_insert PARAMS ((Hash_table *, const void *));
void *hash_delete PARAMS ((Hash_table *, const void *));

322
lib/human.c Normal file
View File

@@ -0,0 +1,322 @@
/* human.c -- print human readable file size
Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Originally contributed by lm@sgi.com;
--si, output block size selection, and large file support
added by eggert@twinsun.com. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#include <stdio.h>
#if HAVE_LIMITS_H
# include <limits.h>
#endif
#if HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#ifndef CHAR_BIT
# define CHAR_BIT 8
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifndef HAVE_DECL_GETENV
char *getenv ();
#endif
#if ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#endif
#include <argmatch.h>
#include <error.h>
#include <xstrtol.h>
#include "human.h"
static const char suffixes[] =
{
0, /* not used */
'k', /* kilo */
'M', /* Mega */
'G', /* Giga */
'T', /* Tera */
'P', /* Peta */
'E', /* Exa */
'Z', /* Zetta */
'Y' /* Yotta */
};
/* Like human_readable_inexact, except always round to even. */
char *
human_readable (uintmax_t n, char *buf,
int from_block_size, int output_block_size)
{
return human_readable_inexact (n, buf, from_block_size, output_block_size,
human_round_to_even);
}
/* Convert N to a human readable format in BUF.
N is expressed in units of FROM_BLOCK_SIZE. FROM_BLOCK_SIZE must
be nonnegative.
If OUTPUT_BLOCK_SIZE is positive, use units of OUTPUT_BLOCK_SIZE in
the output number. OUTPUT_BLOCK_SIZE must be a multiple of
FROM_BLOCK_SIZE or vice versa.
Use INEXACT_STYLE to determine whether to take the ceiling or floor
of any result that cannot be expressed exactly.
If OUTPUT_BLOCK_SIZE is negative, use a format like "127k" if
possible, using powers of -OUTPUT_BLOCK_SIZE; otherwise, use
ordinary decimal format. Normally -OUTPUT_BLOCK_SIZE is either
1000 or 1024; it must be at least 2. Most people visually process
strings of 3-4 digits effectively, but longer strings of digits are
more prone to misinterpretation. Hence, converting to an
abbreviated form usually improves readability. Use a suffix
indicating which power is being used. For example, assuming
-OUTPUT_BLOCK_SIZE is 1024, 8500 would be converted to 8.3k,
133456345 to 127M, 56990456345 to 53G, and so on. Numbers smaller
than -OUTPUT_BLOCK_SIZE aren't modified. */
char *
human_readable_inexact (uintmax_t n, char *buf,
int from_block_size, int output_block_size,
enum human_inexact_style inexact_style)
{
uintmax_t amt;
int base;
int to_block_size;
int tenths = 0;
int power;
char *p;
/* 0 means adjusted N == AMT.TENTHS;
1 means AMT.TENTHS < adjusted N < AMT.TENTHS + 0.05;
2 means adjusted N == AMT.TENTHS + 0.05;
3 means AMT.TENTHS + 0.05 < adjusted N < AMT.TENTHS + 0.1. */
int rounding = 0;
if (output_block_size < 0)
{
base = -output_block_size;
to_block_size = 1;
}
else
{
base = 0;
to_block_size = output_block_size;
}
p = buf + LONGEST_HUMAN_READABLE;
*p = '\0';
#ifdef lint
/* Suppress `used before initialized' warning. */
power = 0;
#endif
/* Adjust AMT out of FROM_BLOCK_SIZE units and into TO_BLOCK_SIZE units. */
if (to_block_size <= from_block_size)
{
int multiplier = from_block_size / to_block_size;
amt = n * multiplier;
if (amt / multiplier != n)
{
/* Overflow occurred during multiplication. We should use
multiple precision arithmetic here, but we'll be lazy and
resort to floating point. This can yield answers that
are slightly off. In practice it is quite rare to
overflow uintmax_t, so this is good enough for now. */
double damt = n * (double) multiplier;
if (! base)
sprintf (buf, "%.0f", damt);
else
{
double e = 1;
power = 0;
do
{
e *= base;
power++;
}
while (e * base <= damt && power < sizeof suffixes - 1);
damt /= e;
sprintf (buf, "%.1f%c", damt, suffixes[power]);
if (4 < strlen (buf))
sprintf (buf, "%.0f%c", damt, suffixes[power]);
}
return buf;
}
}
else if (from_block_size == 0)
amt = 0;
else
{
int divisor = to_block_size / from_block_size;
int r10 = (n % divisor) * 10;
int r2 = (r10 % divisor) * 2;
amt = n / divisor;
tenths = r10 / divisor;
rounding = r2 < divisor ? 0 < r2 : 2 + (divisor < r2);
}
/* Use power of BASE notation if adjusted AMT is large enough. */
if (base && base <= amt)
{
power = 0;
do
{
int r10 = (amt % base) * 10 + tenths;
int r2 = (r10 % base) * 2 + (rounding >> 1);
amt /= base;
tenths = r10 / base;
rounding = (r2 < base
? 0 < r2 + rounding
: 2 + (base < r2 + rounding));
power++;
}
while (base <= amt && power < sizeof suffixes - 1);
*--p = suffixes[power];
if (amt < 10)
{
if (2 * (1 - (int) inexact_style)
< rounding + (tenths & (inexact_style == human_round_to_even)))
{
tenths++;
rounding = 0;
if (tenths == 10)
{
amt++;
tenths = 0;
}
}
if (amt < 10)
{
*--p = '0' + tenths;
*--p = '.';
tenths = rounding = 0;
}
}
}
if (inexact_style == human_ceiling
? 0 < tenths + rounding
: inexact_style == human_round_to_even
? 5 < tenths + (2 < rounding + (amt & 1))
: /* inexact_style == human_floor */ 0)
{
amt++;
if (amt == base && power < sizeof suffixes - 1)
{
*p = suffixes[power + 1];
*--p = '0';
*--p = '.';
amt = 1;
}
}
do
*--p = '0' + (int) (amt % 10);
while ((amt /= 10) != 0);
return p;
}
/* The default block size used for output. This number may change in
the future as disks get larger. */
#ifndef DEFAULT_BLOCK_SIZE
# define DEFAULT_BLOCK_SIZE 1024
#endif
static char const *const block_size_args[] = { "human-readable", "si", 0 };
static int const block_size_types[] = { -1024, -1000 };
static int
default_block_size (void)
{
return getenv ("POSIXLY_CORRECT") ? 512 : DEFAULT_BLOCK_SIZE;
}
static strtol_error
humblock (char const *spec, int *block_size)
{
int i;
if (! spec && ! (spec = getenv ("BLOCK_SIZE")))
*block_size = default_block_size ();
else if (0 <= (i = ARGMATCH (spec, block_size_args, block_size_types)))
*block_size = block_size_types[i];
else
{
char *ptr;
unsigned long val;
strtol_error e = xstrtoul (spec, &ptr, 0, &val, "eEgGkKmMpPtTyYzZ0");
if (e != LONGINT_OK)
return e;
if (*ptr)
return LONGINT_INVALID_SUFFIX_CHAR;
if ((int) val < 0 || val != (int) val)
return LONGINT_OVERFLOW;
*block_size = (int) val;
}
return LONGINT_OK;
}
void
human_block_size (char const *spec, int report_errors, int *block_size)
{
strtol_error e = humblock (spec, block_size);
if (*block_size == 0)
{
*block_size = default_block_size ();
e = LONGINT_INVALID;
}
if (e != LONGINT_OK && report_errors)
STRTOL_FATAL_ERROR (spec, _("block size"), e);
}

39
lib/human.h Normal file
View File

@@ -0,0 +1,39 @@
#ifndef HUMAN_H_
# define HUMAN_H_ 1
# if HAVE_CONFIG_H
# include <config.h>
# endif
# if HAVE_INTTYPES_H
# include <inttypes.h>
# endif
/* A conservative bound on the maximum length of a human-readable string.
The output can be the product of the largest uintmax_t and the largest int,
so add their sizes before converting to a bound on digits. */
# define LONGEST_HUMAN_READABLE ((sizeof (uintmax_t) + sizeof (int)) \
* CHAR_BIT / 3)
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
enum human_inexact_style
{
human_floor = -1,
human_round_to_even = 0,
human_ceiling = 1
};
char *human_readable PARAMS ((uintmax_t, char *, int, int));
char *human_readable_inexact PARAMS ((uintmax_t, char *, int, int,
enum human_inexact_style));
void human_block_size PARAMS ((char const *, int, int *));
#endif /* HUMAN_H_ */

View File

@@ -1,5 +1,6 @@
/* idcache.c -- map user and group IDs, cached for speed
Copyright (C) 1985, 1988, 1989, 1990 Free Software Foundation, Inc.
Copyright (C) 1985, 1988, 1989, 1990, 1997, 1998 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,23 +13,28 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#include <sys/types.h>
#include <pwd.h>
#include <grp.h>
#if defined(USG) || defined(STDC_HEADERS)
#include <string.h>
#if STDC_HEADERS || HAVE_STRING_H
# include <string.h>
#else
#include <strings.h>
# include <strings.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#ifndef _POSIX_VERSION
struct passwd *getpwuid ();
struct passwd *getpwnam ();
@@ -39,6 +45,10 @@ struct group *getgrnam ();
char *xmalloc ();
char *xstrdup ();
#ifdef __DJGPP__
static char digits[] = "0123456789";
#endif
struct userid
{
union
@@ -55,16 +65,13 @@ static struct userid *user_alist;
/* The members of this list have names not in the local passwd file. */
static struct userid *nouser_alist;
/* Translate UID to a login name or a stringified number,
with cache. */
/* Translate UID to a login name, with cache, or NULL if unresolved. */
char *
getuser (uid)
uid_t uid;
getuser (uid_t uid)
{
register struct userid *tail;
struct passwd *pwent;
char usernum_string[20];
for (tail = user_alist; tail; tail = tail->next)
if (tail->id.u == uid)
@@ -73,13 +80,7 @@ getuser (uid)
pwent = getpwuid (uid);
tail = (struct userid *) xmalloc (sizeof (struct userid));
tail->id.u = uid;
if (pwent == 0)
{
sprintf (usernum_string, "%u", (unsigned) uid);
tail->name = xstrdup (usernum_string);
}
else
tail->name = xstrdup (pwent->pw_name);
tail->name = pwent ? xstrdup (pwent->pw_name) : NULL;
/* Add to the head of the list, so most recently used is first. */
tail->next = user_alist;
@@ -93,8 +94,7 @@ getuser (uid)
so we don't keep looking them up.) */
uid_t *
getuidbyname (user)
char *user;
getuidbyname (const char *user)
{
register struct userid *tail;
struct passwd *pwent;
@@ -110,6 +110,15 @@ getuidbyname (user)
return 0;
pwent = getpwnam (user);
#ifdef __DJGPP__
/* We need to pretend to be the user USER, to make
pwd functions know about an arbitrary user name. */
if (!pwent && strspn (user, digits) < strlen (user))
{
setenv ("USER", user, 1);
pwent = getpwnam (user); /* now it will succeed */
}
#endif
tail = (struct userid *) xmalloc (sizeof (struct userid));
tail->name = xstrdup (user);
@@ -132,16 +141,13 @@ getuidbyname (user)
static struct userid *group_alist;
static struct userid *nogroup_alist;
/* Translate GID to a group name or a stringified number,
with cache. */
/* Translate GID to a group name, with cache, or NULL if unresolved. */
char *
getgroup (gid)
gid_t gid;
getgroup (gid_t gid)
{
register struct userid *tail;
struct group *grent;
char groupnum_string[20];
for (tail = group_alist; tail; tail = tail->next)
if (tail->id.g == gid)
@@ -150,13 +156,7 @@ getgroup (gid)
grent = getgrgid (gid);
tail = (struct userid *) xmalloc (sizeof (struct userid));
tail->id.g = gid;
if (grent == 0)
{
sprintf (groupnum_string, "%u", (unsigned int) gid);
tail->name = xstrdup (groupnum_string);
}
else
tail->name = xstrdup (grent->gr_name);
tail->name = grent ? xstrdup (grent->gr_name) : NULL;
/* Add to the head of the list, so most recently used is first. */
tail->next = group_alist;
@@ -164,14 +164,13 @@ getgroup (gid)
return tail->name;
}
/* Translate GROUP to a UID, with cache.
/* Translate GROUP to a GID, with cache.
Return NULL if there is no such group.
(We also cache which group names have no group entry,
so we don't keep looking them up.) */
gid_t *
getgidbyname (group)
char *group;
getgidbyname (const char *group)
{
register struct userid *tail;
struct group *grent;
@@ -187,6 +186,15 @@ getgidbyname (group)
return 0;
grent = getgrnam (group);
#ifdef __DJGPP__
/* We need to pretend to belong to group GROUP, to make
grp functions know about any arbitrary group name. */
if (!grent && strspn (group, digits) < strlen (group))
{
setenv ("GROUP", group, 1);
grent = getgrnam (group); /* now it will succeed */
}
#endif
tail = (struct userid *) xmalloc (sizeof (struct userid));
tail->name = xstrdup (group);
@@ -199,7 +207,7 @@ getgidbyname (group)
group_alist = tail;
return &tail->id.g;
}
tail->next = nogroup_alist;
nogroup_alist = tail;
return 0;

View File

@@ -1,5 +1,5 @@
/* isdir.c -- determine whether a directory exists
Copyright (C) 1990 Free Software Foundation, Inc.
Copyright (C) 1990, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,30 +12,29 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#ifdef STAT_MACROS_BROKEN
#undef S_ISDIR
#endif /* STAT_MACROS_BROKEN. */
#if STAT_MACROS_BROKEN
# undef S_ISDIR
#endif
#if !defined(S_ISDIR) && defined(S_IFDIR)
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#if !defined S_ISDIR && defined S_IFDIR
# define S_ISDIR(Mode) (((Mode) & S_IFMT) == S_IFDIR)
#endif
/* If PATH is an existing directory or symbolic link to a directory,
return nonzero, else 0. */
int
isdir (path)
char *path;
isdir (const char *path)
{
struct stat stats;

56
lib/lchown.c Normal file
View File

@@ -0,0 +1,56 @@
/* Provide a stub lchown function for systems that lack it.
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* written by Jim Meyering */
#include <config.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#include "lchown.h"
#ifdef STAT_MACROS_BROKEN
# undef S_ISLNK
#endif
#if !defined(S_ISLNK) && defined(S_IFLNK)
# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
#endif
/* Declare chown to avoid a warning. Don't include unistd.h,
because it may have a conflicting prototype for lchown. */
int chown ();
/* Work just like chown, except when FILE is a symbolic link.
In that case, set errno to ENOSYS and return -1. */
int
lchown (const char *file, uid_t uid, gid_t gid)
{
struct stat stats;
if (lstat (file, &stats) == 0 && S_ISLNK (stats.st_mode))
{
errno = ENOSYS;
return -1;
}
return chown (file, uid, gid);
}

9
lib/lchown.h Normal file
View File

@@ -0,0 +1,9 @@
/* Some systems don't have ENOSYS. */
#ifndef ENOSYS
# ifdef ENOTSUP
# define ENOSYS ENOTSUP
# else
/* Some systems don't have ENOTSUP either. */
# define ENOSYS EINVAL
# endif
#endif

View File

@@ -1,5 +1,5 @@
/* linebuffer.c -- read arbitrarily long lines
Copyright (C) 1986, 1991 Free Software Foundation, Inc.
Copyright (C) 1986, 1991, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,12 +12,17 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Richard Stallman. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#include <sys/types.h>
#include "linebuffer.h"
char *xmalloc ();
@@ -27,8 +32,7 @@ void free ();
/* Initialize linebuffer LINEBUFFER for use. */
void
initbuffer (linebuffer)
struct linebuffer *linebuffer;
initbuffer (struct linebuffer *linebuffer)
{
linebuffer->length = 0;
linebuffer->size = 200;
@@ -36,55 +40,52 @@ initbuffer (linebuffer)
}
/* Read an arbitrarily long line of text from STREAM into LINEBUFFER.
Remove any newline. Does not null terminate.
Keep the newline; append a newline if it's the last line of a file
that ends in a non-newline character. Do not null terminate.
Return LINEBUFFER, except at end of file return 0. */
struct linebuffer *
readline (linebuffer, stream)
struct linebuffer *linebuffer;
FILE *stream;
readline (struct linebuffer *linebuffer, FILE *stream)
{
int c;
char *buffer = linebuffer->buffer;
char *p = linebuffer->buffer;
char *end = buffer + linebuffer->size; /* Sentinel. */
if (feof (stream))
{
linebuffer->length = 0;
return 0;
}
if (feof (stream) || ferror (stream))
return 0;
while (1)
do
{
c = getc (stream);
if (c == EOF)
{
if (p == buffer)
return 0;
if (p[-1] == '\n')
break;
c = '\n';
}
if (p == end)
{
linebuffer->size *= 2;
buffer = (char *) xrealloc (buffer, linebuffer->size);
p += buffer - linebuffer->buffer;
p = p - linebuffer->buffer + buffer;
linebuffer->buffer = buffer;
end = buffer + linebuffer->size;
}
if (c == EOF || c == '\n')
break;
*p++ = c;
}
while (c != '\n');
if (feof (stream) && p == buffer)
{
linebuffer->length = 0;
return 0;
}
linebuffer->length = p - linebuffer->buffer;
linebuffer->length = p - buffer;
return linebuffer;
}
/* Free linebuffer LINEBUFFER and its data, all allocated with malloc. */
void
freebuffer (linebuffer)
struct linebuffer *linebuffer;
freebuffer (struct linebuffer *linebuffer)
{
free (linebuffer->buffer);
free (linebuffer);

View File

@@ -1,5 +1,5 @@
/* linebuffer.h -- declarations for reading arbitrarily long lines
Copyright (C) 1986, 1991 Free Software Foundation, Inc.
Copyright (C) 1986, 1991, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,32 +12,40 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if !defined LINEBUFFER_H
# define LINEBUFFER_H
/* A `struct linebuffer' holds a line of text. */
struct linebuffer
{
long size; /* Allocated. */
long length; /* Used. */
size_t size; /* Allocated. */
size_t length; /* Used. */
char *buffer;
};
#undef __P
#if defined (__STDC__) && __STDC__
#define __P(x) x
#else
#define __P(x) ()
#endif
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
/* Initialize linebuffer LINEBUFFER for use. */
void initbuffer __P ((struct linebuffer *linebuffer));
void initbuffer PARAMS ((struct linebuffer *linebuffer));
/* Read an arbitrarily long line of text from STREAM into LINEBUFFER.
Remove any newline. Does not null terminate.
Keep the newline; append a newline if it's the last line of a file
that ends in a non-newline character. Do not null terminate.
Return LINEBUFFER, except at end of file return 0. */
struct linebuffer *readline __P ((struct linebuffer *linebuffer, FILE *stream));
struct linebuffer *readline PARAMS ((struct linebuffer *linebuffer,
FILE *stream));
/* Free linebuffer LINEBUFFER and its data, all allocated with malloc. */
void freebuffer __P ((struct linebuffer *));
void freebuffer PARAMS ((struct linebuffer *));
#endif /* LINEBUFFER_H */

View File

@@ -1,5 +1,5 @@
/* Utility to accept --help and --version options as unobtrusively as possible.
Copyright (C) 1993, 1994 Free Software Foundation, Inc.
Copyright (C) 1993, 1994, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,18 +12,27 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Jim Meyering (meyering@comco.com) */
/* Written by Jim Meyering. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#include <getopt.h>
#include "closeout.h"
#include "long-options.h"
#include "version-etc.h"
#if ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#endif
static struct option const long_options[] =
{
@@ -36,33 +45,34 @@ static struct option const long_options[] =
Be careful not to gobble up `--'. */
void
parse_long_options (argc, argv, command_name, version_string, usage)
int argc;
char **argv;
const char *command_name;
const char *version_string;
void (*usage)();
parse_long_options (int argc,
char **argv,
const char *command_name,
const char *package,
const char *version,
const char *authors,
void (*usage_func)())
{
int c;
int saved_opterr;
int saved_optind;
saved_opterr = opterr;
saved_optind = optind;
/* Don't print an error message for unrecognized options. */
opterr = 0;
if (argc == 2
&& (c = getopt_long (argc, argv, "+", long_options, (int *) 0)) != EOF)
&& (c = getopt_long (argc, argv, "+", long_options, NULL)) != -1)
{
switch (c)
{
case 'h':
(*usage) (0);
(*usage_func) (0);
case 'v':
printf ("%s - %s\n", command_name, version_string);
version_etc (stdout, command_name, package, version, authors);
close_stdout (); /* FIXME: output failure exit status
should be settable via an arg. */
exit (0);
default:
@@ -74,6 +84,7 @@ parse_long_options (argc, argv, command_name, version_string, usage)
/* Restore previous value. */
opterr = saved_opterr;
/* Restore optind in case it has advanced past a leading `--'. */
optind = saved_optind;
/* Reset this to zero so that getopt internals get initialized from
the probably-new parameters when/if getopt is called later. */
optind = 0;
}

View File

@@ -1,10 +1,35 @@
#undef __P
#if defined (__STDC__) && __STDC__
#define __P(args) args
#else
#define __P(args) ()
/* long-options.h -- declaration for --help- and --version-handling function.
Copyright (C) 1993, 1994, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Jim Meyering. */
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
void
parse_long_options __P ((int _argc, char **_argv, const char *_command_name,
const char *_version_string, void (*_usage) (int)));
parse_long_options PARAMS ((int _argc,
char **_argv,
const char *_command_name,
const char *_package,
const char *_version,
const char *_authors,
void (*_usage) (int)));

View File

@@ -1,5 +1,5 @@
/* makepath.c -- Ensure that a directory path exists.
Copyright (C) 1990 Free Software Foundation, Inc.
Copyright (C) 1990, 1997, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,58 +12,57 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by David MacKenzie <djm@gnu.ai.mit.edu> and
Jim Meyering <meyering@cs.utexas.edu>. */
/* Written by David MacKenzie <djm@gnu.ai.mit.edu> and Jim Meyering. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef __GNUC__
#define alloca __builtin_alloca
#else
#ifdef HAVE_ALLOCA_H
#include <alloca.h>
#else
#ifdef _AIX
#pragma alloca
#if __GNUC__
# define alloca __builtin_alloca
#else
# if HAVE_ALLOCA_H
# include <alloca.h>
# else
# ifdef _AIX
# pragma alloca
# else
char *alloca ();
#endif
#endif
# endif
# endif
#endif
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#ifdef STAT_MACROS_BROKEN
#undef S_ISDIR
#endif /* STAT_MACROS_BROKEN. */
#if STAT_MACROS_BROKEN
# undef S_ISDIR
#endif
#if !defined(S_ISDIR) && defined(S_IFDIR)
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif
#ifdef STDC_HEADERS
#include <stdlib.h>
#if STDC_HEADERS
# include <stdlib.h>
#endif
#ifdef HAVE_ERRNO_H
#include <errno.h>
#if HAVE_ERRNO_H
# include <errno.h>
#endif
#ifndef errno
extern int errno;
#endif
#ifdef HAVE_STRING_H
#if HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
@@ -72,14 +71,128 @@ extern int errno;
# endif
#endif
#ifndef S_ISUID
# define S_ISUID 04000
#endif
#ifndef S_ISGID
# define S_ISGID 02000
#endif
#ifndef S_ISVTX
# define S_ISVTX 01000
#endif
#ifndef S_IRUSR
# define S_IRUSR 0200
#endif
#ifndef S_IWUSR
# define S_IWUSR 0200
#endif
#ifndef S_IXUSR
# define S_IXUSR 0100
#endif
#ifndef S_IRWXU
# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR)
#endif
#define WX_USR (S_IWUSR | S_IXUSR)
/* Include this before libintl.h so we get our definition of PARAMS. */
#include "makepath.h"
#if HAVE_LOCALE_H
# include <locale.h>
#endif
#if ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#endif
#ifdef __MSDOS__
typedef int uid_t;
typedef int gid_t;
#endif
#include "makepath.h"
#include "save-cwd.h"
#include "error.h"
void error ();
void strip_trailing_slashes ();
#define CLEANUP_CWD \
do \
{ \
/* We're done operating on basename_dir. \
Restore working directory. */ \
if (do_chdir) \
{ \
int _fail = restore_cwd (&cwd, NULL, NULL); \
free_cwd (&cwd); \
if (_fail) \
return 1; \
} \
} \
while (0)
#define CLEANUP \
do \
{ \
umask (oldmask); \
CLEANUP_CWD; \
} \
while (0)
/* Attempt to create directory DIR (aka DIRPATH) with the specified MODE.
If CREATED_DIR_P is non-NULL, set *CREATED_DIR_P to non-zero if this
function creates DIR and to zero otherwise. Give a diagnostic and
return non-zero if DIR cannot be created or cannot be determined to
exist already. Use DIRPATH in any diagnostic, not DIR.
Note that if DIR already exists, this function will return zero
(indicating success) and will set *CREATED_DIR_P to zero. */
static int
make_dir (const char *dir, const char *dirpath, mode_t mode, int *created_dir_p)
{
int fail = 0;
int created_dir;
created_dir = (mkdir (dir, mode) == 0);
if (!created_dir)
{
struct stat stats;
int saved_errno = errno;
/* The mkdir and stat calls below may appear to be reversed.
They are not. It is important to call mkdir first and then to
call stat (to distinguish the three cases) only if mkdir fails.
The alternative to this approach is to `stat' each directory,
then to call mkdir if it doesn't exist. But if some other process
were to create the directory between the stat & mkdir, the mkdir
would fail with EEXIST. */
if (stat (dir, &stats))
{
error (0, saved_errno, _("cannot create directory `%s'"), dirpath);
fail = 1;
}
else if (!S_ISDIR (stats.st_mode))
{
error (0, 0, _("`%s' exists but is not a directory"), dirpath);
fail = 1;
}
else
{
/* DIR (aka DIRPATH) already exists and is a directory. */
}
}
if (created_dir_p)
*created_dir_p = created_dir;
return fail;
}
/* Ensure that the directory ARGPATH exists.
Remove any trailing slashes from ARGPATH before calling this function.
@@ -99,7 +212,6 @@ void error ();
Return 0 if ARGPATH exists as a directory with the proper
ownership and permissions when done, otherwise 1. */
#if __STDC__
int
make_path (const char *argpath,
int mode,
@@ -108,30 +220,11 @@ make_path (const char *argpath,
gid_t group,
int preserve_existing,
const char *verbose_fmt_string)
#else
int
make_path (argpath, mode, parent_mode, owner, group, preserve_existing,
verbose_fmt_string)
const char *argpath;
int mode;
int parent_mode;
uid_t owner;
gid_t group;
int preserve_existing;
const char *verbose_fmt_string;
#endif
{
char *dirpath; /* A copy we can scribble NULs on. */
struct stat stats;
int retval = 0;
int oldmask = umask (0);
/* FIXME: move this alloca and strcpy into the if-block.
Set dirpath to argpath in the else-block. */
dirpath = (char *) alloca (strlen (argpath) + 1);
strcpy (dirpath, argpath);
if (stat (dirpath, &stats))
if (stat (argpath, &stats))
{
char *slash;
int tmp_mode; /* Initial perms for leading dirs. */
@@ -142,15 +235,27 @@ make_path (argpath, mode, parent_mode, owner, group, preserve_existing,
struct ptr_list *next;
};
struct ptr_list *p, *leading_dirs = NULL;
int do_chdir; /* Whether to chdir before each mkdir. */
struct saved_cwd cwd;
char *basename_dir;
char *dirpath;
/* Temporarily relax umask in case it's overly restrictive. */
mode_t oldmask = umask (0);
/* Make a copy of ARGPATH that we can scribble NULs on. */
dirpath = (char *) alloca (strlen (argpath) + 1);
strcpy (dirpath, argpath);
strip_trailing_slashes (dirpath);
/* If leading directories shouldn't be writable or executable,
or should have set[ug]id or sticky bits set and we are setting
their owners, we need to fix their permissions after making them. */
if (((parent_mode & 0300) != 0300)
|| (owner != (uid_t) -1 && group != (gid_t) -1
&& (parent_mode & 07000) != 0))
if (((parent_mode & WX_USR) != WX_USR)
|| ((owner != (uid_t) -1 || group != (gid_t) -1)
&& (parent_mode & (S_ISUID | S_ISGID | S_ISVTX)) != 0))
{
tmp_mode = 0700;
tmp_mode = S_IRWXU;
re_protect = 1;
}
else
@@ -159,49 +264,82 @@ make_path (argpath, mode, parent_mode, owner, group, preserve_existing,
re_protect = 0;
}
/* If we can record the current working directory, we may be able
to do the chdir optimization. */
do_chdir = !save_cwd (&cwd);
/* If we've saved the cwd and DIRPATH is an absolute pathname,
we must chdir to `/' in order to enable the chdir optimization.
So if chdir ("/") fails, turn off the optimization. */
if (do_chdir && *dirpath == '/' && chdir ("/") < 0)
do_chdir = 0;
slash = dirpath;
/* Skip over leading slashes. */
while (*slash == '/')
slash++;
while ((slash = strchr (slash, '/')))
while (1)
{
int newly_created_dir;
int fail;
/* slash points to the leftmost unprocessed component of dirpath. */
basename_dir = slash;
slash = strchr (slash, '/');
if (slash == NULL)
break;
/* If we're *not* doing chdir before each mkdir, then we have to refer
to the target using the full (multi-component) directory name. */
if (!do_chdir)
basename_dir = dirpath;
*slash = '\0';
if (stat (dirpath, &stats))
fail = make_dir (basename_dir, dirpath, tmp_mode, &newly_created_dir);
if (fail)
{
if (mkdir (dirpath, tmp_mode))
CLEANUP;
return 1;
}
if (newly_created_dir)
{
if (verbose_fmt_string)
error (0, 0, verbose_fmt_string, dirpath);
if ((owner != (uid_t) -1 || group != (gid_t) -1)
&& chown (basename_dir, owner, group)
#if defined(AFS) && defined (EPERM)
&& errno != EPERM
#endif
)
{
error (0, errno, "cannot create directory `%s'", dirpath);
umask (oldmask);
error (0, errno, "%s", dirpath);
CLEANUP;
return 1;
}
else
{
if (verbose_fmt_string != NULL)
error (0, 0, verbose_fmt_string, dirpath);
if (owner != (uid_t) -1 && group != (gid_t) -1
&& chown (dirpath, owner, group)
#if defined(AFS) && defined (EPERM)
&& errno != EPERM
#endif
)
{
error (0, errno, "%s", dirpath);
retval = 1;
}
if (re_protect)
{
struct ptr_list *new = (struct ptr_list *)
alloca (sizeof (struct ptr_list));
new->dirname_end = slash;
new->next = leading_dirs;
leading_dirs = new;
}
if (re_protect)
{
struct ptr_list *new = (struct ptr_list *)
alloca (sizeof (struct ptr_list));
new->dirname_end = slash;
new->next = leading_dirs;
leading_dirs = new;
}
}
else if (!S_ISDIR (stats.st_mode))
/* If we were able to save the initial working directory,
then we can use chdir to change into each directory before
creating an entry in that directory. This avoids making
stat and mkdir process O(n^2) file name components. */
if (do_chdir && chdir (basename_dir) < 0)
{
error (0, 0, "`%s' exists but is not a directory", dirpath);
umask (oldmask);
error (0, errno, _("cannot chdir to directory, %s"), dirpath);
CLEANUP;
return 1;
}
@@ -213,40 +351,46 @@ make_path (argpath, mode, parent_mode, owner, group, preserve_existing,
slash++;
}
if (!do_chdir)
basename_dir = dirpath;
/* We're done making leading directories.
Create the final component of the path. */
/* The path could end in "/." or contain "/..", so test
if we really have to create the directory. */
if (stat (dirpath, &stats) && mkdir (dirpath, mode))
if (make_dir (basename_dir, dirpath, mode, NULL))
{
error (0, errno, "cannot create directory `%s'", dirpath);
umask (oldmask);
CLEANUP;
return 1;
}
/* Done creating directories. Restore original umask. */
umask (oldmask);
if (verbose_fmt_string != NULL)
error (0, 0, verbose_fmt_string, dirpath);
if (owner != (uid_t) -1 && group != (gid_t) -1)
if (owner != (uid_t) -1 || group != (gid_t) -1)
{
if (chown (dirpath, owner, group)
if (chown (basename_dir, owner, group)
#ifdef AFS
&& errno != EPERM
#endif
)
{
error (0, errno, "%s", dirpath);
error (0, errno, _("cannot chown %s"), dirpath);
retval = 1;
}
/* chown may have turned off some permission bits we wanted. */
if ((mode & 07000) != 0 && chmod (dirpath, mode))
if ((mode & (S_ISUID | S_ISGID | S_ISVTX))
&& chmod (basename_dir, mode))
{
error (0, errno, "%s", dirpath);
error (0, errno, _("cannot chmod %s"), dirpath);
retval = 1;
}
}
CLEANUP_CWD;
/* If the mode for leading directories didn't include owner "wx"
privileges, we have to reset their protections to the correct
value. */
@@ -264,10 +408,11 @@ make_path (argpath, mode, parent_mode, owner, group, preserve_existing,
{
/* We get here if the entire path already exists. */
const char *dirpath = argpath;
if (!S_ISDIR (stats.st_mode))
{
error (0, 0, "`%s' exists but is not a directory", dirpath);
umask (oldmask);
error (0, 0, _("`%s' exists but is not a directory"), dirpath);
return 1;
}
@@ -279,7 +424,7 @@ make_path (argpath, mode, parent_mode, owner, group, preserve_existing,
On System V, users can give away files with chown and then not
be able to chmod them. So don't give files away. */
if (owner != (uid_t) -1 && group != (gid_t) -1
if ((owner != (uid_t) -1 || group != (gid_t) -1)
&& chown (dirpath, owner, group)
#ifdef AFS
&& errno != EPERM
@@ -297,6 +442,5 @@ make_path (argpath, mode, parent_mode, owner, group, preserve_existing,
}
}
umask (oldmask);
return retval;
}

View File

@@ -1,15 +1,16 @@
#if __STDC__
#undef __P
#define __P(args) args
#else
#define __P(args) ()
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
int
make_path __P ((const char *_argpath,
int _mode,
int _parent_mode,
uid_t _owner,
gid_t _group,
int _preserve_existing,
const char *_verbose_fmt_string));
make_path PARAMS ((const char *_argpath,
int _mode,
int _parent_mode,
uid_t _owner,
gid_t _group,
int _preserve_existing,
const char *_verbose_fmt_string));

38
lib/malloc.c Normal file
View File

@@ -0,0 +1,38 @@
/* Work around bug on some systems where malloc (0) fails.
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* written by Jim Meyering */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#undef malloc
#include <sys/types.h>
char *malloc ();
/* Allocate an N-byte block of memory from the heap.
If N is zero, allocate a 1-byte block. */
char *
rpl_malloc (size_t n)
{
if (n == 0)
n = 1;
return malloc (n);
}

187
lib/md5.c
View File

@@ -1,11 +1,13 @@
/* md5.c - Functions to compute MD5 message digest of files or memory blocks
according to the definition of MD5 in RFC 1321 from April 1992.
Copyright (C) 1995 Software Foundation, Inc.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C
Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,10 +15,10 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>. */
/* Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -24,7 +26,7 @@
#include <sys/types.h>
#if STDC_HEADERS
#if STDC_HEADERS || defined _LIBC
# include <stdlib.h>
# include <string.h>
#else
@@ -35,6 +37,13 @@
#include "md5.h"
#ifdef _LIBC
# include <endian.h>
# if __BYTE_ORDER == __BIG_ENDIAN
# define WORDS_BIGENDIAN 1
# endif
#endif
#ifdef WORDS_BIGENDIAN
# define SWAP(n) \
(((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
@@ -58,10 +67,16 @@ md5_init_ctx (ctx)
ctx->B = 0xefcdab89;
ctx->C = 0x98badcfe;
ctx->D = 0x10325476;
ctx->total[0] = ctx->total[1] = 0;
ctx->buflen = 0;
}
/* Put result from CTX in first 16 bytes following RESBUF. The result must
be in little endian byte order. */
/* Put result from CTX in first 16 bytes following RESBUF. The result
must be in little endian byte order.
IMPORTANT: On some systems it is required that RESBUF is correctly
aligned for a 32 bits value. */
void *
md5_read_ctx (ctx, resbuf)
const struct md5_ctx *ctx;
@@ -75,6 +90,39 @@ md5_read_ctx (ctx, resbuf)
return resbuf;
}
/* Process the remaining bytes in the internal buffer and the usual
prolog according to the standard and write the result to RESBUF.
IMPORTANT: On some systems it is required that RESBUF is correctly
aligned for a 32 bits value. */
void *
md5_finish_ctx (ctx, resbuf)
struct md5_ctx *ctx;
void *resbuf;
{
/* Take yet unprocessed bytes into account. */
md5_uint32 bytes = ctx->buflen;
size_t pad;
/* Now count remaining bytes. */
ctx->total[0] += bytes;
if (ctx->total[0] < bytes)
++ctx->total[1];
pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes;
memcpy (&ctx->buffer[bytes], fillbuf, pad);
/* Put the 64-bit file length in *bits* at the end of the buffer. */
*(md5_uint32 *) &ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3);
*(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP ((ctx->total[1] << 3) |
(ctx->total[0] >> 29));
/* Process last bytes. */
md5_process_block (ctx->buffer, bytes + pad + 8, ctx);
return md5_read_ctx (ctx, resbuf);
}
/* Compute MD5 message digest for bytes read from STREAM. The
resulting message digest number will be written into the 16 bytes
beginning at RESBLOCK. */
@@ -86,16 +134,12 @@ md5_stream (stream, resblock)
/* Important: BLOCKSIZE must be a multiple of 64. */
#define BLOCKSIZE 4096
struct md5_ctx ctx;
md5_uint32 len[2];
char buffer[BLOCKSIZE + 72];
size_t pad, sum;
size_t sum;
/* Initialize the computation context. */
md5_init_ctx (&ctx);
len[0] = 0;
len[1] = 0;
/* Iterate over full file contents. */
while (1)
{
@@ -108,7 +152,7 @@ md5_stream (stream, resblock)
/* Read block. Take care for partial reads. */
do
{
n = fread (buffer, 1, BLOCKSIZE - sum, stream);
n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
sum += n;
}
@@ -116,13 +160,6 @@ md5_stream (stream, resblock)
if (n == 0 && ferror (stream))
return 1;
/* RFC 1321 specifies the possible length of the file up to 2^64 bits.
Here we only compute the number of bytes. Do a double word
increment. */
len[0] += sum;
if (len[0] < sum)
++len[1];
/* If end of file is reached, end the loop. */
if (n == 0)
break;
@@ -133,27 +170,12 @@ md5_stream (stream, resblock)
md5_process_block (buffer, BLOCKSIZE, &ctx);
}
/* We can copy 64 byte because the buffer is always big enough. FILLBUF
contains the needed bits. */
memcpy (&buffer[sum], fillbuf, 64);
/* Compute amount of padding bytes needed. Alignment is done to
(N + PAD) % 64 == 56
There is always at least one byte padded. I.e. even the alignment
is correctly aligned 64 padding bytes are added. */
pad = sum & 63;
pad = pad >= 56 ? 64 + 56 - pad : 56 - pad;
/* Put the 64-bit file length in *bits* at the end of the buffer. */
*(md5_uint32 *) &buffer[sum + pad] = SWAP (len[0] << 3);
*(md5_uint32 *) &buffer[sum + pad + 4] = SWAP ((len[1] << 3)
| (len[0] >> 29));
/* Process last bytes. */
md5_process_block (buffer, sum + pad + 8, &ctx);
/* Add the last bytes if necessary. */
if (sum > 0)
md5_process_bytes (buffer, sum, &ctx);
/* Construct result in desired memory. */
md5_read_ctx (&ctx, resblock);
md5_finish_ctx (&ctx, resblock);
return 0;
}
@@ -168,37 +190,61 @@ md5_buffer (buffer, len, resblock)
void *resblock;
{
struct md5_ctx ctx;
char restbuf[64 + 72];
size_t blocks = len & ~63;
size_t pad, rest;
/* Initialize the computation context. */
md5_init_ctx (&ctx);
/* Process whole buffer but last len % 64 bytes. */
md5_process_block (buffer, blocks, &ctx);
/* REST bytes are not processed yet. */
rest = len - blocks;
/* Copy to own buffer. */
memcpy (restbuf, &buffer[blocks], rest);
/* Append needed fill bytes at end of buffer. We can copy 64 byte
because the buffer is always big enough. */
memcpy (&restbuf[rest], fillbuf, 64);
/* PAD bytes are used for padding to correct alignment. Note that
always at least one byte is padded. */
pad = rest >= 56 ? 64 + 56 - rest : 56 - rest;
/* Put length of buffer in *bits* in last eight bytes. */
*(md5_uint32 *) &restbuf[rest + pad] = (md5_uint32) SWAP (len << 3);
*(md5_uint32 *) &restbuf[rest + pad + 4] = (md5_uint32) SWAP (len >> 29);
/* Process last bytes. */
md5_process_block (restbuf, rest + pad + 8, &ctx);
md5_process_bytes (buffer, len, &ctx);
/* Put result in desired memory area. */
return md5_read_ctx (&ctx, resblock);
return md5_finish_ctx (&ctx, resblock);
}
void
md5_process_bytes (buffer, len, ctx)
const void *buffer;
size_t len;
struct md5_ctx *ctx;
{
/* When we already have some bits in our internal buffer concatenate
both inputs first. */
if (ctx->buflen != 0)
{
size_t left_over = ctx->buflen;
size_t add = 128 - left_over > len ? len : 128 - left_over;
memcpy (&ctx->buffer[left_over], buffer, add);
ctx->buflen += add;
if (left_over + add > 64)
{
md5_process_block (ctx->buffer, (left_over + add) & ~63, ctx);
/* The regions in the following copy operation cannot overlap. */
memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
(left_over + add) & 63);
ctx->buflen = (left_over + add) & 63;
}
buffer = (const char *) buffer + add;
len -= add;
}
/* Process available complete blocks. */
if (len > 64)
{
md5_process_block (buffer, len & ~63, ctx);
buffer = (const char *) buffer + (len & ~63);
len &= 63;
}
/* Move remaining bytes in internal buffer. */
if (len > 0)
{
memcpy (ctx->buffer, buffer, len);
ctx->buflen = len;
}
}
@@ -229,6 +275,13 @@ md5_process_block (buffer, len, ctx)
md5_uint32 C = ctx->C;
md5_uint32 D = ctx->D;
/* First increment the byte count. RFC 1321 specifies the possible
length of the file up to 2^64 bits. Here we only compute the
number of bytes. Do a double word increment. */
ctx->total[0] += len;
if (ctx->total[0] < len)
++ctx->total[1];
/* Process all bytes in the buffer with 64 bytes in each round of
the loop. */
while (words < endp)

107
lib/md5.h
View File

@@ -1,23 +1,25 @@
/* md5.h - Declaration of functions and data types used for MD5 sum
computing library functions.
Copyright (C) 1995 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1999 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C
Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef _MD5_H
#define _MD5_H
#define _MD5_H 1
#include <stdio.h>
@@ -32,33 +34,38 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
the resulting executable. Locally running cross-compiled executables
is usually not possible. */
#if defined __STDC__ && __STDC__
# define UINT_MAX_32_BITS 4294967295U
#ifdef _LIBC
# include <sys/types.h>
typedef u_int32_t md5_uint32;
#else
# define UINT_MAX_32_BITS 0xFFFFFFFF
#endif
# if defined __STDC__ && __STDC__
# define UINT_MAX_32_BITS 4294967295U
# else
# define UINT_MAX_32_BITS 0xFFFFFFFF
# endif
/* If UINT_MAX isn't defined, assume it's a 32-bit type.
This should be valid for all systems GNU cares about because
that doesn't include 16-bit systems, and only modern systems
(that certainly have <limits.h>) have 64+-bit integral types. */
#ifndef UINT_MAX
# define UINT_MAX UINT_MAX_32_BITS
#endif
# ifndef UINT_MAX
# define UINT_MAX UINT_MAX_32_BITS
# endif
#if UINT_MAX == UINT_MAX_32_BITS
typedef unsigned int md5_uint32;
#else
# if USHRT_MAX == UINT_MAX_32_BITS
typedef unsigned short md5_uint32;
# if UINT_MAX == UINT_MAX_32_BITS
typedef unsigned int md5_uint32;
# else
# if ULONG_MAX == UINT_MAX_32_BITS
typedef unsigned long md5_uint32;
# if USHRT_MAX == UINT_MAX_32_BITS
typedef unsigned short md5_uint32;
# else
/* The following line is intended to evoke an error.
Using #error is not portable enough. */
"Cannot determine unsigned 32-bit data type."
# if ULONG_MAX == UINT_MAX_32_BITS
typedef unsigned long md5_uint32;
# else
/* The following line is intended to evoke an error.
Using #error is not portable enough. */
"Cannot determine unsigned 32-bit data type."
# endif
# endif
# endif
#endif
@@ -77,6 +84,10 @@ struct md5_ctx
md5_uint32 B;
md5_uint32 C;
md5_uint32 D;
md5_uint32 total[2];
md5_uint32 buflen;
char buffer[128];
};
/*
@@ -86,30 +97,50 @@ struct md5_ctx
/* Initialize structure containing state of computation.
(RFC 1321, 3.3: Step 3) */
void md5_init_ctx __P ((struct md5_ctx *ctx));
extern void md5_init_ctx __P ((struct md5_ctx *ctx));
/* Starting with the result of former calls of this function (or the
initialzation function update the context for the next LEN bytes
initialization function update the context for the next LEN bytes
starting at BUFFER.
It is necessary that LEN is a multiple of 64!!! */
void md5_process_block __P ((const void *buffer, size_t len,
struct md5_ctx *ctx));
extern void md5_process_block __P ((const void *buffer, size_t len,
struct md5_ctx *ctx));
/* Starting with the result of former calls of this function (or the
initialization function update the context for the next LEN bytes
starting at BUFFER.
It is NOT required that LEN is a multiple of 64. */
extern void md5_process_bytes __P ((const void *buffer, size_t len,
struct md5_ctx *ctx));
/* Process the remaining bytes in the buffer and put result from CTX
in first 16 bytes following RESBUF. The result is always in little
endian byte order, so that a byte-wise output yields to the wanted
ASCII representation of the message digest.
IMPORTANT: On some systems it is required that RESBUF be correctly
aligned for a 32 bits value. */
extern void *md5_finish_ctx __P ((struct md5_ctx *ctx, void *resbuf));
/* Put result from CTX in first 16 bytes following RESBUF. The result is
always in little endian byte order, so that a byte-wise output yields
to the wanted ASCII representation of the message digest. */
void *md5_read_ctx __P ((const struct md5_ctx *ctx, void *resbuf));
to the wanted ASCII representation of the message digest.
IMPORTANT: On some systems it is required that RESBUF is correctly
aligned for a 32 bits value. */
extern void *md5_read_ctx __P ((const struct md5_ctx *ctx, void *resbuf));
/* Compute MD5 message digest for bytes read from STREAM. The
resulting message digest number will be written into the 16 bytes
beginning at RESBLOCK. */
int md5_stream __P ((FILE *stream, void *resblock));
extern int md5_stream __P ((FILE *stream, void *resblock));
/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The
result is always in little endian byte order, so that a byte-wise
output yields to the wanted ASCII representation of the message
digest. */
void *md5_buffer __P ((const char *buffer, size_t len, void *resblock));
extern void *md5_buffer __P ((const char *buffer, size_t len, void *resblock));
#endif

60
lib/memcasecmp.c Normal file
View File

@@ -0,0 +1,60 @@
/* Case-insensitive buffer comparator.
Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Jim Meyering. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#include <ctype.h>
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define IN_CTYPE_DOMAIN(Char) 1
#else
# define IN_CTYPE_DOMAIN(Char) isascii(Char)
#endif
#define ISLOWER(Char) (IN_CTYPE_DOMAIN (Char) && islower (Char))
#if _LIBC || STDC_HEADERS
# define TOUPPER(Char) toupper (Char)
#else
# define TOUPPER(Char) (ISLOWER (Char) ? toupper (Char) : (Char))
#endif
#include "memcasecmp.h"
/* Like memcmp, but ignore differences in case.
Convert to upper case (not lower) before comparing so that
join -i works with sort -f. */
int
memcasecmp (const void *vs1, const void *vs2, size_t n)
{
unsigned int i;
unsigned char const *s1 = (unsigned char const *) vs1;
unsigned char const *s2 = (unsigned char const *) vs2;
for (i = 0; i < n; i++)
{
unsigned char u1 = *s1++;
unsigned char u2 = *s2++;
if (TOUPPER (u1) != TOUPPER (u2))
return TOUPPER (u1) - TOUPPER (u2);
}
return 0;
}

10
lib/memcasecmp.h Normal file
View File

@@ -0,0 +1,10 @@
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
int
memcasecmp PARAMS ((const void *vs1, const void *vs2, size_t n));

View File

@@ -1,5 +1,5 @@
/* Copyright (C) 1991, 1993 Free Software Foundation, Inc.
Based on strlen implemention by Torbjorn Granlund (tege@sics.se),
/* Copyright (C) 1991, 1993, 1997, 1999 Free Software Foundation, Inc.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
with help from Dan Sahlin (dan@sics.se) and
commentary by Jim Blandy (jimb@ai.mit.edu);
adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
@@ -20,10 +20,11 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
# include <config.h>
#endif
#undef __ptr_t
@@ -44,7 +45,7 @@ Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define LONG_MAX_32_BITS 2147483647
#ifndef LONG_MAX
#define LONG_MAX LONG_MAX_32_BITS
# define LONG_MAX LONG_MAX_32_BITS
#endif
#include <sys/types.h>

View File

@@ -1,72 +1,83 @@
/* Copyright (C) 1991, 1993 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1993, 1995, 1997, 1998 Free Software Foundation, Inc.
Contributed by Torbjorn Granlund (tege@sics.se).
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
#include "config.h"
# include "config.h"
#endif
#undef __ptr_t
#if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
#define __ptr_t void *
#if defined __cplusplus || (defined __STDC__ && __STDC__)
# define __ptr_t void *
#else /* Not C++ or ANSI C. */
#undef const
#define const
#define __ptr_t char *
# undef const
# define const
# define __ptr_t char *
#endif /* C++ or ANSI C. */
#if defined (HAVE_STRING_H) || defined (_LIBC)
#include <string.h>
#ifndef __P
# if defined __GNUC__ || (defined __STDC__ && __STDC__)
# define __P(args) args
# else
# define __P(args) ()
# endif /* GCC. */
#endif /* Not __P. */
#if defined HAVE_STRING_H || defined _LIBC
# include <string.h>
#endif
#undef memcmp
#ifdef _LIBC
#include <memcopy.h>
# include <memcopy.h>
#else /* Not in the GNU C library. */
#include <sys/types.h>
# include <sys/types.h>
/* Type to use for aligned memory operations.
This should normally be the biggest type supported by a single load
and store. Must be an unsigned type. */
#define op_t unsigned long int
#define OPSIZ (sizeof(op_t))
# define op_t unsigned long int
# define OPSIZ (sizeof(op_t))
/* Threshold value for when to enter the unrolled loops. */
#define OP_T_THRES 16
# define OP_T_THRES 16
/* Type to use for unaligned operations. */
typedef unsigned char byte;
#ifndef WORDS_BIGENDIAN
#define MERGE(w0, sh_1, w1, sh_2) (((w0) >> (sh_1)) | ((w1) << (sh_2)))
#else
#define MERGE(w0, sh_1, w1, sh_2) (((w0) << (sh_1)) | ((w1) >> (sh_2)))
#endif
# ifndef WORDS_BIGENDIAN
# define MERGE(w0, sh_1, w1, sh_2) (((w0) >> (sh_1)) | ((w1) << (sh_2)))
# else
# define MERGE(w0, sh_1, w1, sh_2) (((w0) << (sh_1)) | ((w1) >> (sh_2)))
# endif
#endif /* In the GNU C library. */
#ifdef WORDS_BIGENDIAN
#define CMP_LT_OR_GT(a, b) ((a) > (b) ? 1 : -1)
# define CMP_LT_OR_GT(a, b) ((a) > (b) ? 1 : -1)
#else
#define CMP_LT_OR_GT(a, b) memcmp_bytes ((a), (b))
# define CMP_LT_OR_GT(a, b) memcmp_bytes ((a), (b))
#endif
/* BE VERY CAREFUL IF YOU CHANGE THIS CODE! */
@@ -86,12 +97,14 @@ typedef unsigned char byte;
/* memcmp_bytes -- Compare A and B bytewise in the byte order of the machine.
A and B are known to be different.
This is needed only on little-endian machines. */
#ifdef __GNUC__
static int memcmp_bytes __P((op_t, op_t));
# ifdef __GNUC__
__inline
#endif
# endif
static int
memcmp_bytes (a, b)
op_t a, b;
memcmp_bytes (long unsigned int a, long unsigned int b)
{
long int srcp1 = (long int) &a;
long int srcp2 = (long int) &b;
@@ -109,6 +122,8 @@ memcmp_bytes (a, b)
}
#endif
static int memcmp_common_alignment __P((long, long, size_t));
/* memcmp_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN `op_t'
objects (not LEN bytes!). Both SRCP1 and SRCP2 should be aligned for
memory operations on `op_t's. */
@@ -116,16 +131,14 @@ memcmp_bytes (a, b)
__inline
#endif
static int
memcmp_common_alignment (srcp1, srcp2, len)
long int srcp1;
long int srcp2;
size_t len;
memcmp_common_alignment (long int srcp1, long int srcp2, size_t len)
{
op_t a0, a1;
op_t b0, b1;
switch (len % 4)
{
default: /* Avoid warning about uninitialized local variables. */
case 2:
a0 = ((op_t *) srcp1)[0];
b0 = ((op_t *) srcp2)[0];
@@ -196,6 +209,8 @@ memcmp_common_alignment (srcp1, srcp2, len)
return 0;
}
static int memcmp_not_common_alignment __P((long, long, size_t));
/* memcmp_not_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN
`op_t' objects (not LEN bytes!). SRCP2 should be aligned for memory
operations on `op_t', but SRCP1 *should be unaligned*. */
@@ -203,10 +218,7 @@ memcmp_common_alignment (srcp1, srcp2, len)
__inline
#endif
static int
memcmp_not_common_alignment (srcp1, srcp2, len)
long int srcp1;
long int srcp2;
size_t len;
memcmp_not_common_alignment (long int srcp1, long int srcp2, size_t len)
{
op_t a0, a1, a2, a3;
op_t b0, b1, b2, b3;
@@ -225,6 +237,7 @@ memcmp_not_common_alignment (srcp1, srcp2, len)
switch (len % 4)
{
default: /* Avoid warning about uninitialized local variables. */
case 2:
a1 = ((op_t *) srcp1)[0];
a2 = ((op_t *) srcp1)[1];
@@ -305,10 +318,7 @@ memcmp_not_common_alignment (srcp1, srcp2, len)
}
int
memcmp (s1, s2, len)
const __ptr_t s1;
const __ptr_t s2;
size_t len;
rpl_memcmp (const void *s1, const void *s2, size_t len)
{
op_t a0;
op_t b0;
@@ -364,3 +374,8 @@ memcmp (s1, s2, len)
return 0;
}
#ifdef weak_alias
# undef bcmp
weak_alias (memcmp, bcmp)
#endif

71
lib/memcoll.c Normal file
View File

@@ -0,0 +1,71 @@
/* Locale-specific memory comparison.
Copyright 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Contributed by Paul Eggert <eggert@twinsun.com>. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if HAVE_STRING_H
# include <string.h>
#endif
/* Compare S1 (with length S1LEN) and S2 (with length S2LEN) according
to the LC_COLLATE locale. S1 and S2 do not overlap, and are not
adjacent. Temporarily modify the bytes after S1 and S2, but
restore their original contents before returning. */
int
memcoll (char *s1, size_t s1len, char *s2, size_t s2len)
{
int diff;
char n1 = s1[s1len];
char n2 = s2[s2len];
s1[s1len++] = '\0';
s2[s2len++] = '\0';
while (! (diff = strcoll (s1, s2)))
{
/* strcoll found no difference, but perhaps it was fooled by NUL
characters in the data. Work around this problem by advancing
past the NUL chars. */
size_t size1 = strlen (s1) + 1;
size_t size2 = strlen (s2) + 1;
s1 += size1;
s2 += size2;
s1len -= size1;
s2len -= size2;
if (s1len == 0)
{
if (s2len != 0)
diff = -1;
break;
}
else if (s2len == 0)
{
diff = 1;
break;
}
}
s1[s1len - 1] = n1;
s2[s2len - 1] = n2;
return diff;
}

18
lib/memcoll.h Normal file
View File

@@ -0,0 +1,18 @@
#ifndef MEMCOLL_H_
# define MEMCOLL_H_ 1
# if HAVE_CONFIG_H
# include <config.h>
# endif
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
int memcoll PARAMS ((char *, size_t, char *, size_t));
#endif /* MEMCOLL_H_ */

View File

@@ -1,12 +1,31 @@
/* Copyright (C) 1995, 1997, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Jim Meyering <meyering@na-net.ornl.gov>. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
/* Copy LEN bytes starting at SRCADDR to DESTADDR. Result undefined
if the source overlaps with the destination.
Return DESTADDR. */
char *
memcpy (destaddr, srcaddr, len)
char *destaddr;
const char *srcaddr;
int len;
memcpy (char *destaddr, const char *srcaddr, int len)
{
char *dest = destaddr;

View File

@@ -3,22 +3,26 @@
In the public domain.
By David MacKenzie <djm@gnu.ai.mit.edu>. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
void
void *
memmove (dest, source, length)
char *dest;
const char *source;
unsigned length;
{
char *d0 = dest;
if (source < dest)
/* Moving from low mem to hi mem; start at end. */
for (source += length, dest += length; length; --length)
*--dest = *--source;
else if (source != dest)
/* Moving from hi mem to low mem; start at beginning. */
for (; length; --length)
*dest++ = *source++;
{
/* Moving from hi mem to low mem; start at beginning. */
for (; length; --length)
*dest++ = *source++;
}
return (void *) d0;
}

View File

@@ -12,14 +12,11 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
char *
memset (str, c, len)
char *str;
int c;
unsigned len;
memset (char *str, int c, unsigned int len)
{
register char *st = str;

View File

@@ -1,5 +1,5 @@
/* mkdir.c -- BSD compatible make directory function for System V
Copyright (C) 1988, 1990 Free Software Foundation, Inc.
/* BSD compatible make directory function for System V
Copyright (C) 1988, 1990, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,11 +12,11 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
@@ -26,12 +26,22 @@
extern int errno;
#endif
#ifdef STAT_MACROS_BROKEN
#undef S_ISDIR
#if STAT_MACROS_BROKEN
# undef S_ISDIR
#endif
#if !defined(S_ISDIR) && defined(S_IFDIR)
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif
#ifndef S_IRWXU
# define S_IRWXU 0700
#endif
#ifndef S_IRWXG
# define S_IRWXG 0070
#endif
#ifndef S_IRWXO
# define S_IRWXO 0007
#endif
/* mkdir adapted from GNU tar. */
@@ -48,11 +58,11 @@ extern int errno;
subroutine didn't return EEXIST. It does now. */
int
mkdir (dpath, dmode)
char *dpath;
int dmode;
mkdir (const char *dpath, mode_t dmode)
{
int cpid, status;
pid_t cpid;
mode_t mode;
int status;
struct stat statbuf;
if (stat (dpath, &statbuf) == 0)
@@ -76,8 +86,9 @@ mkdir (dpath, dmode)
process is going away anyway, we zap its umask.
This won't suffice to set SUID, SGID, etc. on this
directory, so the parent process calls chmod afterward. */
status = umask (0); /* Get current umask. */
umask (status | (0777 & ~dmode)); /* Set for mkdir. */
mode = umask (0); /* Get current umask. */
/* Set for mkdir. */
umask (mode | ((S_IRWXU | S_IRWXG | S_IRWXO) & ~dmode));
execl ("/bin/mkdir", "mkdir", dpath, (char *) 0);
_exit (1);
@@ -86,7 +97,7 @@ mkdir (dpath, dmode)
while (wait (&status) != cpid)
/* Do nothing. */ ;
if (status & 0xFFFF)
if (status)
{
/* /bin/mkdir failed. */
errno = EIO;

View File

@@ -1,503 +1,528 @@
/* Copyright (C) 1993, 1994 Free Software Foundation, Inc.
Contributed by Noel Cragg (noel@cs.oberlin.edu), with fixes by
Michael E. Calwas (calwas@ttd.teradyne.com) and
Wade Hampton (tasi029@tmn.com).
/* Convert a `struct tm' to a time_t value.
Copyright (C) 1993, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Eggert (eggert@twinsun.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Define this to have a standalone program to test this implementation of
mktime. */
/* #define DEBUG */
/* #define DEBUG 1 */
#ifdef HAVE_CONFIG_H
#include <config.h>
# include <config.h>
#endif
#ifdef _LIBC
# define HAVE_LIMITS_H 1
# define STDC_HEADERS 1
#endif
/* Assume that leap seconds are possible, unless told otherwise.
If the host has a `zic' command with a `-L leapsecondfilename' option,
then it supports leap seconds; otherwise it probably doesn't. */
#ifndef LEAP_SECONDS_POSSIBLE
# define LEAP_SECONDS_POSSIBLE 1
#endif
#include <sys/types.h> /* Some systems define `time_t' here. */
#include <time.h>
#if HAVE_LIMITS_H
# include <limits.h>
#endif
#if DEBUG
# include <stdio.h>
# if STDC_HEADERS
# include <stdlib.h>
# endif
/* Make it work even if the system's libc has its own mktime routine. */
# define mktime my_mktime
#endif /* DEBUG */
#ifndef __P
# if defined __GNUC__ || (defined __STDC__ && __STDC__)
# define __P(args) args
# else
# define __P(args) ()
# endif /* GCC. */
#endif /* Not __P. */
#ifndef CHAR_BIT
# define CHAR_BIT 8
#endif
/* The extra casts work around common compiler bugs. */
#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
/* The outer cast is needed to work around a bug in Cray C 5.0.3.0.
It is necessary at least when t == time_t. */
#define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \
? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) : (t) 0))
#define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t)))
#ifndef INT_MIN
# define INT_MIN TYPE_MINIMUM (int)
#endif
#ifndef INT_MAX
# define INT_MAX TYPE_MAXIMUM (int)
#endif
#ifndef TIME_T_MIN
# define TIME_T_MIN TYPE_MINIMUM (time_t)
#endif
#ifndef TIME_T_MAX
# define TIME_T_MAX TYPE_MAXIMUM (time_t)
#endif
#define TM_YEAR_BASE 1900
#define EPOCH_YEAR 1970
#ifndef __isleap
/* Nonzero if YEAR is a leap year (every 4 years,
except every 100th isn't, and every 400th is). */
#define __isleap(year) \
# define __isleap(year) \
((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
#endif
#ifndef __P
#if defined (__GNUC__) || (defined (__STDC__) && __STDC__)
#define __P(args) args
#else
#define __P(args) ()
#endif /* GCC. */
#endif /* Not __P. */
/* How many days are in each month. */
const unsigned short int __mon_lengths[2][12] =
/* How many days come before each month (0-12). */
const unsigned short int __mon_yday[2][13] =
{
/* Normal years. */
{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
{ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 },
/* Leap years. */
{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
{ 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 }
};
static int times_through_search; /* This library routine should never
hang -- make sure we always return
when we're searching for a value */
#ifdef DEBUG
#include <stdio.h>
#include <ctype.h>
int debugging_enabled = 0;
/* Print the values in a `struct tm'. */
static void
printtm (it)
struct tm *it;
{
printf ("%02d/%02d/%04d %02d:%02d:%02d (%s) yday:%03d dst:%d gmtoffset:%ld",
it->tm_mon + 1,
it->tm_mday,
it->tm_year + 1900,
it->tm_hour,
it->tm_min,
it->tm_sec,
it->tm_zone,
it->tm_yday,
it->tm_isdst,
it->tm_gmtoff);
}
#endif
static time_t
dist_tm (t1, t2)
struct tm *t1;
struct tm *t2;
{
time_t distance = 0;
unsigned long int v1, v2;
int diff_flag = 0;
v1 = v2 = 0;
#define doit(x, secs) \
v1 += t1->x * secs; \
v2 += t2->x * secs; \
if (!diff_flag) \
{ \
if (t1->x < t2->x) \
diff_flag = -1; \
else if (t1->x > t2->x) \
diff_flag = 1; \
}
doit (tm_year, 31536000); /* Okay, not all years have 365 days. */
doit (tm_mon, 2592000); /* Okay, not all months have 30 days. */
doit (tm_mday, 86400);
doit (tm_hour, 3600);
doit (tm_min, 60);
doit (tm_sec, 1);
#undef doit
/* We should also make sure that the sign of DISTANCE is correct -- if
DIFF_FLAG is positive, the distance should be positive and vice versa. */
distance = (v1 > v2) ? (v1 - v2) : (v2 - v1);
if (diff_flag < 0)
distance = -distance;
if (times_through_search > 20) /* Arbitrary # of calls, but makes sure we
never hang if there's a problem with
this algorithm. */
{
distance = diff_flag;
}
/* We need this DIFF_FLAG business because it is forseeable that the
distance may be zero when, in actuality, the two structures are
different. This is usually the case when the dates are 366 days apart
and one of the years is a leap year. */
if (distance == 0 && diff_flag)
distance = 86400 * diff_flag;
return distance;
}
/* MKTIME converts the values in a struct tm to a time_t. The values
in tm_wday and tm_yday are ignored; other values can be put outside
of legal ranges since they will be normalized. This routine takes
care of that normalization. */
void
do_normalization (tmptr)
struct tm *tmptr;
{
#define normalize(foo,x,y,bar); \
while (tmptr->foo < x) \
{ \
tmptr->bar--; \
tmptr->foo = (y - (x - tmptr->foo) + 1); \
} \
while (tmptr->foo > y) \
{ \
tmptr->foo = (x + (tmptr->foo - y) - 1); \
tmptr->bar++; \
}
normalize (tm_sec, 0, 59, tm_min);
normalize (tm_min, 0, 59, tm_hour);
normalize (tm_hour, 0, 23, tm_mday);
/* Do the month first, so day range can be found. */
normalize (tm_mon, 0, 11, tm_year);
/* Since the day range modifies the month, we should be careful how
we reference the array of month lengths -- it is possible that
the month will go negative, hence the modulo...
Also, tm_year is the year - 1900, so we have to 1900 to have it
work correctly. */
normalize (tm_mday, 1,
__mon_lengths[__isleap (tmptr->tm_year + 1900)]
[((tmptr->tm_mon < 0)
? (12 + (tmptr->tm_mon % 12))
: (tmptr->tm_mon % 12)) ],
tm_mon);
/* Do the month again, because the day may have pushed it out of range. */
normalize (tm_mon, 0, 11, tm_year);
/* Do the day again, because the month may have changed the range. */
normalize (tm_mday, 1,
__mon_lengths[__isleap (tmptr->tm_year + 1900)]
[((tmptr->tm_mon < 0)
? (12 + (tmptr->tm_mon % 12))
: (tmptr->tm_mon % 12)) ],
tm_mon);
#ifdef DEBUG
if (debugging_enabled)
{
printf (" After normalizing:\n ");
printtm (tmptr);
putchar ('\n');
}
#endif
}
/* Here's where the work gets done. */
#define BAD_STRUCT_TM ((time_t) -1)
time_t
_mktime_internal (timeptr, producer)
struct tm *timeptr;
struct tm *(*producer) __P ((const time_t *));
{
struct tm our_tm; /* our working space */
struct tm *me = &our_tm; /* a pointer to the above */
time_t result; /* the value we return */
*me = *timeptr; /* copy the struct tm that was passed
in by the caller */
/***************************/
/* Normalize the structure */
/***************************/
/* This routine assumes that the value of TM_ISDST is -1, 0, or 1.
If the user didn't pass it in that way, fix it. */
if (me->tm_isdst > 0)
me->tm_isdst = 1;
else if (me->tm_isdst < 0)
me->tm_isdst = -1;
do_normalization (me);
/* Get out of here if it's not possible to represent this struct.
If any of the values in the normalized struct tm are negative,
our algorithms won't work. Luckily, we only need to check the
year at this point; normalization guarantees that all values will
be in correct ranges EXCEPT the year. */
if (me->tm_year < 0)
return BAD_STRUCT_TM;
/*************************************************/
/* Find the appropriate time_t for the structure */
/*************************************************/
/* Modified b-search -- make intelligent guesses as to where the
time might lie along the timeline, assuming that our target time
lies a linear distance (w/o considering time jumps of a
particular region).
Assume that time does not fluctuate at all along the timeline --
e.g., assume that a day will always take 86400 seconds, etc. --
and come up with a hypothetical value for the time_t
representation of the struct tm TARGET, in relation to the guess
variable -- it should be pretty close!
After testing this, the maximum number of iterations that I had
on any number that I tried was 3! Not bad.
The reason this is not a subroutine is that we will modify some
fields in the struct tm (yday and mday). I've never felt good
about side-effects when writing structured code... */
{
struct tm *guess_tm;
time_t guess = 0;
time_t distance = 0;
time_t last_distance = 0;
times_through_search = 0;
do
{
guess += distance;
times_through_search++;
guess_tm = (*producer) (&guess);
#ifdef DEBUG
if (debugging_enabled)
{
printf (" Guessing time_t == %d\n ", (int) guess);
printtm (guess_tm);
putchar ('\n');
}
#endif
/* How far is our guess from the desired struct tm? */
distance = dist_tm (me, guess_tm);
/* Handle periods of time where a period of time is skipped.
For example, 2:15 3 April 1994 does not exist, because DST
is in effect. The distance function will alternately
return values of 3600 and -3600, because it doesn't know
that the requested time doesn't exist. In these situations
(even if the skip is not exactly an hour) the distances
returned will be the same, but alternating in sign. We
want the later time, so check to see that the distance is
oscillating and we've chosen the correct of the two
possibilities.
Useful: 3 Apr 94 765356300, 30 Oct 94 783496000 */
if ((distance == -last_distance) && (distance < last_distance))
{
/* If the caller specified that the DST flag was off, it's
not possible to represent this time. */
if (me->tm_isdst == 0)
{
#ifdef DEBUG
printf (" Distance is oscillating -- dst flag nixes struct!\n");
#endif
return BAD_STRUCT_TM;
}
#ifdef DEBUG
printf (" Distance is oscillating -- chose the later time.\n");
#endif
distance = 0;
}
if ((distance == 0) && (me->tm_isdst != -1)
&& (me->tm_isdst != guess_tm->tm_isdst))
{
/* If we're in this code, we've got the right time but the
wrong daylight savings flag. We need to move away from
the time that we have and approach the other time from
the other direction. That is, if I've requested the
non-DST version of a time and I get the DST version
instead, I want to put us forward in time and search
backwards to get the other time. I checked all of the
configuration files for the tz package -- no entry
saves more than two hours, so I think we'll be safe by
moving 24 hours in one direction. IF THE AMOUNT OF
TIME SAVED IN THE CONFIGURATION FILES CHANGES, THIS
VALUE MAY NEED TO BE ADJUSTED. Luckily, we can never
have more than one level of overlaps, or this would
never work. */
#define SKIP_VALUE 86400
if (guess_tm->tm_isdst == 0)
/* we got the later one, but want the earlier one */
distance = -SKIP_VALUE;
else
distance = SKIP_VALUE;
#ifdef DEBUG
printf (" Got the right time, wrong DST value -- adjusting\n");
#endif
}
last_distance = distance;
} while (distance != 0);
/* Check to see that the dst flag matches */
if (me->tm_isdst != -1)
{
if (me->tm_isdst != guess_tm->tm_isdst)
{
#ifdef DEBUG
printf (" DST flag doesn't match! FIXME?\n");
#endif
return BAD_STRUCT_TM;
}
}
result = guess; /* Success! */
/* On successful completion, the values of tm_wday and tm_yday
have to be set appropriately. */
/* me->tm_yday = guess_tm->tm_yday;
me->tm_mday = guess_tm->tm_mday; */
*me = *guess_tm;
}
/* Update the caller's version of the structure */
*timeptr = *me;
return result;
}
time_t
#ifdef DEBUG /* make it work even if the system's
libc has it's own mktime routine */
my_mktime (timeptr)
#ifdef _LIBC
# define my_mktime_localtime_r __localtime_r
#else
mktime (timeptr)
#endif
struct tm *timeptr;
/* If we're a mktime substitute in a GNU program, then prefer
localtime to localtime_r, since many localtime_r implementations
are buggy. */
static struct tm *
my_mktime_localtime_r (const time_t *t, struct tm *tp)
{
return _mktime_internal (timeptr, localtime);
struct tm *l = localtime (t);
if (! l)
return 0;
*tp = *l;
return tp;
}
#endif /* ! _LIBC */
/* Yield the difference between (YEAR-YDAY HOUR:MIN:SEC) and (*TP),
measured in seconds, ignoring leap seconds.
YEAR uses the same numbering as TM->tm_year.
All values are in range, except possibly YEAR.
If TP is null, return a nonzero value.
If overflow occurs, yield the low order bits of the correct answer. */
static time_t
ydhms_tm_diff (int year, int yday, int hour, int min, int sec,
const struct tm *tp)
{
if (!tp)
return 1;
else
{
/* Compute intervening leap days correctly even if year is negative.
Take care to avoid int overflow. time_t overflow is OK, since
only the low order bits of the correct time_t answer are needed.
Don't convert to time_t until after all divisions are done, since
time_t might be unsigned. */
int a4 = (year >> 2) + (TM_YEAR_BASE >> 2) - ! (year & 3);
int b4 = (tp->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (tp->tm_year & 3);
int a100 = a4 / 25 - (a4 % 25 < 0);
int b100 = b4 / 25 - (b4 % 25 < 0);
int a400 = a100 >> 2;
int b400 = b100 >> 2;
int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400);
time_t years = year - (time_t) tp->tm_year;
time_t days = (365 * years + intervening_leap_days
+ (yday - tp->tm_yday));
return (60 * (60 * (24 * days + (hour - tp->tm_hour))
+ (min - tp->tm_min))
+ (sec - tp->tm_sec));
}
}
/* Use CONVERT to convert *T to a broken down time in *TP.
If *T is out of range for conversion, adjust it so that
it is the nearest in-range value and then convert that. */
static struct tm *
ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
time_t *t, struct tm *tp)
{
struct tm *r;
if (! (r = (*convert) (t, tp)) && *t)
{
time_t bad = *t;
time_t ok = 0;
struct tm tm;
/* BAD is a known unconvertible time_t, and OK is a known good one.
Use binary search to narrow the range between BAD and OK until
they differ by 1. */
while (bad != ok + (bad < 0 ? -1 : 1))
{
time_t mid = *t = (bad < 0
? bad + ((ok - bad) >> 1)
: ok + ((bad - ok) >> 1));
if ((r = (*convert) (t, tp)))
{
tm = *r;
ok = mid;
}
else
bad = mid;
}
if (!r && ok)
{
/* The last conversion attempt failed;
revert to the most recent successful attempt. */
*t = ok;
*tp = tm;
r = tp;
}
}
return r;
}
/* Convert *TP to a time_t value, inverting
the monotonic and mostly-unit-linear conversion function CONVERT.
Use *OFFSET to keep track of a guess at the offset of the result,
compared to what the result would be for UTC without leap seconds.
If *OFFSET's guess is correct, only one CONVERT call is needed. */
time_t
__mktime_internal (struct tm *tp,
struct tm *(*convert) (const time_t *, struct tm *),
time_t *offset)
{
time_t t, dt, t0, t1, t2;
struct tm tm;
/* The maximum number of probes (calls to CONVERT) should be enough
to handle any combinations of time zone rule changes, solar time,
leap seconds, and oscillations around a spring-forward gap.
POSIX.1 prohibits leap seconds, but some hosts have them anyway. */
int remaining_probes = 6;
/* Time requested. Copy it in case CONVERT modifies *TP; this can
occur if TP is localtime's returned value and CONVERT is localtime. */
int sec = tp->tm_sec;
int min = tp->tm_min;
int hour = tp->tm_hour;
int mday = tp->tm_mday;
int mon = tp->tm_mon;
int year_requested = tp->tm_year;
int isdst = tp->tm_isdst;
/* Ensure that mon is in range, and set year accordingly. */
int mon_remainder = mon % 12;
int negative_mon_remainder = mon_remainder < 0;
int mon_years = mon / 12 - negative_mon_remainder;
int year = year_requested + mon_years;
/* The other values need not be in range:
the remaining code handles minor overflows correctly,
assuming int and time_t arithmetic wraps around.
Major overflows are caught at the end. */
/* Calculate day of year from year, month, and day of month.
The result need not be in range. */
int yday = ((__mon_yday[__isleap (year + TM_YEAR_BASE)]
[mon_remainder + 12 * negative_mon_remainder])
+ mday - 1);
int sec_requested = sec;
#if LEAP_SECONDS_POSSIBLE
/* Handle out-of-range seconds specially,
since ydhms_tm_diff assumes every minute has 60 seconds. */
if (sec < 0)
sec = 0;
if (59 < sec)
sec = 59;
#endif
/* Invert CONVERT by probing. First assume the same offset as last time.
Then repeatedly use the error to improve the guess. */
tm.tm_year = EPOCH_YEAR - TM_YEAR_BASE;
tm.tm_yday = tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
t0 = ydhms_tm_diff (year, yday, hour, min, sec, &tm);
for (t = t1 = t2 = t0 + *offset;
(dt = ydhms_tm_diff (year, yday, hour, min, sec,
ranged_convert (convert, &t, &tm)));
t1 = t2, t2 = t, t += dt)
if (t == t1 && t != t2
&& (isdst < 0 || tm.tm_isdst < 0
|| (isdst != 0) != (tm.tm_isdst != 0)))
/* We can't possibly find a match, as we are oscillating
between two values. The requested time probably falls
within a spring-forward gap of size DT. Follow the common
practice in this case, which is to return a time that is DT
away from the requested time, preferring a time whose
tm_isdst differs from the requested value. In practice,
this is more useful than returning -1. */
break;
else if (--remaining_probes == 0)
return -1;
/* If we have a match, check whether tm.tm_isdst has the requested
value, if any. */
if (dt == 0 && isdst != tm.tm_isdst && 0 <= isdst && 0 <= tm.tm_isdst)
{
/* tm.tm_isdst has the wrong value. Look for a neighboring
time with the right value, and use its UTC offset.
Heuristic: probe the previous three calendar quarters (approximately),
looking for the desired isdst. This isn't perfect,
but it's good enough in practice. */
int quarter = 7889238; /* seconds per average 1/4 Gregorian year */
int i;
/* If we're too close to the time_t limit, look in future quarters. */
if (t < TIME_T_MIN + 3 * quarter)
quarter = -quarter;
for (i = 1; i <= 3; i++)
{
time_t ot = t - i * quarter;
struct tm otm;
ranged_convert (convert, &ot, &otm);
if (otm.tm_isdst == isdst)
{
/* We found the desired tm_isdst.
Extrapolate back to the desired time. */
t = ot + ydhms_tm_diff (year, yday, hour, min, sec, &otm);
ranged_convert (convert, &t, &tm);
break;
}
}
}
*offset = t - t0;
#if LEAP_SECONDS_POSSIBLE
if (sec_requested != tm.tm_sec)
{
/* Adjust time to reflect the tm_sec requested, not the normalized value.
Also, repair any damage from a false match due to a leap second. */
t += sec_requested - sec + (sec == 0 && tm.tm_sec == 60);
if (! (*convert) (&t, &tm))
return -1;
}
#endif
if (TIME_T_MAX / INT_MAX / 366 / 24 / 60 / 60 < 3)
{
/* time_t isn't large enough to rule out overflows in ydhms_tm_diff,
so check for major overflows. A gross check suffices,
since if t has overflowed, it is off by a multiple of
TIME_T_MAX - TIME_T_MIN + 1. So ignore any component of
the difference that is bounded by a small value. */
double dyear = (double) year_requested + mon_years - tm.tm_year;
double dday = 366 * dyear + mday;
double dsec = 60 * (60 * (24 * dday + hour) + min) + sec_requested;
/* On Irix4.0.5 cc, dividing TIME_T_MIN by 3 does not produce
correct results, ie., it erroneously gives a positive value
of 715827882. Setting a variable first then doing math on it
seems to work. (ghazi@caip.rutgers.edu) */
const time_t time_t_max = TIME_T_MAX;
const time_t time_t_min = TIME_T_MIN;
if (time_t_max / 3 - time_t_min / 3 < (dsec < 0 ? - dsec : dsec))
return -1;
}
*tp = tm;
return t;
}
static time_t localtime_offset;
/* Convert *TP to a time_t value. */
time_t
mktime (tp)
struct tm *tp;
{
#ifdef _LIBC
/* POSIX.1 8.1.1 requires that whenever mktime() is called, the
time zone names contained in the external variable `tzname' shall
be set as if the tzset() function had been called. */
__tzset ();
#endif
return __mktime_internal (tp, my_mktime_localtime_r, &localtime_offset);
}
#ifdef weak_alias
weak_alias (mktime, timelocal)
#endif
#ifdef DEBUG
void
#if DEBUG
static int
not_equal_tm (a, b)
struct tm *a;
struct tm *b;
{
return ((a->tm_sec ^ b->tm_sec)
| (a->tm_min ^ b->tm_min)
| (a->tm_hour ^ b->tm_hour)
| (a->tm_mday ^ b->tm_mday)
| (a->tm_mon ^ b->tm_mon)
| (a->tm_year ^ b->tm_year)
| (a->tm_mday ^ b->tm_mday)
| (a->tm_yday ^ b->tm_yday)
| (a->tm_isdst ^ b->tm_isdst));
}
static void
print_tm (tp)
struct tm *tp;
{
if (tp)
printf ("%04d-%02d-%02d %02d:%02d:%02d yday %03d wday %d isdst %d",
tp->tm_year + TM_YEAR_BASE, tp->tm_mon + 1, tp->tm_mday,
tp->tm_hour, tp->tm_min, tp->tm_sec,
tp->tm_yday, tp->tm_wday, tp->tm_isdst);
else
printf ("0");
}
static int
check_result (tk, tmk, tl, lt)
time_t tk;
struct tm tmk;
time_t tl;
struct tm *lt;
{
if (tk != tl || !lt || not_equal_tm (&tmk, lt))
{
printf ("mktime (");
print_tm (&tmk);
printf (")\nyields (");
print_tm (lt);
printf (") == %ld, should be %ld\n", (long) tl, (long) tk);
return 1;
}
return 0;
}
int
main (argc, argv)
int argc;
char *argv[];
char **argv;
{
int time;
int result_time;
struct tm *tmptr;
if (argc == 1)
{
long q;
printf ("starting long test...\n");
int status = 0;
struct tm tm, tmk, tml;
struct tm *lt;
time_t tk, tl;
char trailer;
for (q = 10000000; q < 1000000000; q += 599)
if ((argc == 3 || argc == 4)
&& (sscanf (argv[1], "%d-%d-%d%c",
&tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer)
== 3)
&& (sscanf (argv[2], "%d:%d:%d%c",
&tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer)
== 3))
{
tm.tm_year -= TM_YEAR_BASE;
tm.tm_mon--;
tm.tm_isdst = argc == 3 ? -1 : atoi (argv[3]);
tmk = tm;
tl = mktime (&tmk);
lt = localtime (&tl);
if (lt)
{
struct tm *tm = localtime ((time_t *) &q);
if ((q % 10000) == 0) { printf ("%ld\n", q); fflush (stdout); }
if (q != my_mktime (tm))
{ printf ("failed for %ld\n", q); fflush (stdout); }
tml = *lt;
lt = &tml;
}
printf ("test finished\n");
exit (0);
printf ("mktime returns %ld == ", (long) tl);
print_tm (&tmk);
printf ("\n");
status = check_result (tl, tmk, tl, lt);
}
if (argc != 2)
else if (argc == 4 || (argc == 5 && strcmp (argv[4], "-") == 0))
{
printf ("wrong # of args\n");
exit (0);
time_t from = atol (argv[1]);
time_t by = atol (argv[2]);
time_t to = atol (argv[3]);
if (argc == 4)
for (tl = from; tl <= to; tl += by)
{
lt = localtime (&tl);
if (lt)
{
tmk = tml = *lt;
tk = mktime (&tmk);
status |= check_result (tk, tmk, tl, tml);
}
else
{
printf ("localtime (%ld) yields 0\n", (long) tl);
status = 1;
}
}
else
for (tl = from; tl <= to; tl += by)
{
/* Null benchmark. */
lt = localtime (&tl);
if (lt)
{
tmk = tml = *lt;
tk = tl;
status |= check_result (tk, tmk, tl, tml);
}
else
{
printf ("localtime (%ld) yields 0\n", (long) tl);
status = 1;
}
}
}
debugging_enabled = 1; /* We want to see the info */
else
printf ("Usage:\
\t%s YYYY-MM-DD HH:MM:SS [ISDST] # Test given time.\n\
\t%s FROM BY TO # Test values FROM, FROM+BY, ..., TO.\n\
\t%s FROM BY TO - # Do not test those values (for benchmark).\n",
argv[0], argv[0], argv[0]);
++argv;
time = atoi (*argv);
tmptr = localtime ((time_t *) &time);
printf ("Localtime tells us that a time_t of %d represents\n ", time);
printtm (tmptr);
putchar ('\n');
printf (" Given localtime's return val, mktime returns %d which is\n ",
(int) my_mktime (tmptr));
printtm (tmptr);
putchar ('\n');
#if 0
tmptr->tm_sec -= 20;
tmptr->tm_min -= 20;
tmptr->tm_hour -= 20;
tmptr->tm_mday -= 20;
tmptr->tm_mon -= 20;
tmptr->tm_year -= 20;
tmptr->tm_gmtoff -= 20000; /* This has no effect! */
tmptr->tm_zone = NULL; /* Nor does this! */
tmptr->tm_isdst = -1;
#endif
tmptr->tm_hour += 1;
tmptr->tm_isdst = -1;
printf ("\n\nchanged ranges: ");
printtm (tmptr);
putchar ('\n');
result_time = my_mktime (tmptr);
printf ("\nmktime: %d\n", result_time);
tmptr->tm_isdst = 0;
printf ("\n\nchanged ranges: ");
printtm (tmptr);
putchar ('\n');
result_time = my_mktime (tmptr);
printf ("\nmktime: %d\n", result_time);
return status;
}
#endif /* DEBUG */
#endif /* DEBUG */
/*
Local Variables:
compile-command: "gcc -g mktime.c -o mktime -DDEBUG"
compile-command: "gcc -DDEBUG -DHAVE_LIMITS_H -DSTDC_HEADERS -Wall -W -O -g mktime.c -o mktime"
End:
*/

View File

@@ -1,5 +1,5 @@
/* modechange.c -- file mode manipulation
Copyright (C) 1989, 1990 Free Software Foundation, Inc.
Copyright (C) 1989, 1990, 1997-2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,8 +12,8 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by David MacKenzie <djm@ai.mit.edu> */
@@ -24,38 +24,120 @@
changing the mode of many files, this probably results in a
performance gain. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include "modechange.h"
#include <sys/stat.h>
#include "xstrtol.h"
#ifdef STDC_HEADERS
#include <stdlib.h>
#if STDC_HEADERS
# include <stdlib.h>
#else
char *malloc ();
#endif
#ifndef NULL
#define NULL 0
# define NULL 0
#endif
#ifdef STAT_MACROS_BROKEN
#undef S_ISDIR
#endif /* STAT_MACROS_BROKEN. */
#if STAT_MACROS_BROKEN
# undef S_ISDIR
#endif
#if !defined(S_ISDIR) && defined(S_IFDIR)
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif
#ifndef S_ISUID
# define S_ISUID 04000
#endif
#ifndef S_ISGID
# define S_ISGID 04000
#endif
#ifndef S_ISVTX
# define S_ISVTX 01000
#endif
#ifndef S_IRUSR
# define S_IRUSR 0400
#endif
#ifndef S_IWUSR
# define S_IWUSR 0200
#endif
#ifndef S_IXUSR
# define S_IXUSR 0100
#endif
#ifndef S_IRGRP
# define S_IRGRP 0040
#endif
#ifndef S_IWGRP
# define S_IWGRP 0020
#endif
#ifndef S_IXGRP
# define S_IXGRP 0010
#endif
#ifndef S_IROTH
# define S_IROTH 0004
#endif
#ifndef S_IWOTH
# define S_IWOTH 0002
#endif
#ifndef S_IXOTH
# define S_IXOTH 0001
#endif
#ifndef S_IRWXU
# define S_IRWXU 0700
#endif
#ifndef S_IRWXG
# define S_IRWXG 0070
#endif
#ifndef S_IRWXO
# define S_IRWXO 0007
#endif
/* All the mode bits that can be affected by chmod. */
#define CHMOD_MODE_BITS \
(S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO)
/* Return newly allocated memory to hold one element of type TYPE. */
#define talloc(type) ((type *) malloc (sizeof (type)))
#define isodigit(c) ((c) >= '0' && (c) <= '7')
/* Create a mode_change entry with the specified `=ddd'-style
mode change operation, where NEW_MODE is `ddd'. Return the
new entry, or NULL upon failure. */
static int oatoi ();
static struct mode_change *
make_node_op_equals (mode_t new_mode)
{
struct mode_change *p;
p = talloc (struct mode_change);
if (p == NULL)
return p;
p->next = NULL;
p->op = '=';
p->flags = 0;
p->value = new_mode;
p->affected = CHMOD_MODE_BITS; /* Affect all permissions. */
return p;
}
/* Append entry E to the end of the link list with the specified
HEAD and TAIL. */
static void
mode_append_entry (struct mode_change **head,
struct mode_change **tail,
struct mode_change *e)
{
if (*head == NULL)
*head = *tail = e;
else
{
(*tail)->next = e;
*tail = e;
}
}
/* Return a linked list of file mode change operations created from
MODE_STRING, an ASCII string that contains either an octal number
@@ -71,46 +153,47 @@ static int oatoi ();
return MODE_MEMORY_EXHAUSTED if there is insufficient memory. */
struct mode_change *
mode_compile (mode_string, masked_ops)
register char *mode_string;
unsigned masked_ops;
mode_compile (const char *mode_string, unsigned int masked_ops)
{
struct mode_change *head; /* First element of the linked list. */
struct mode_change *change; /* An element of the linked list. */
int i; /* General purpose temporary. */
int umask_value; /* The umask value (surprise). */
unsigned short affected_bits; /* Which bits in the mode are operated on. */
unsigned short affected_masked; /* `affected_bits' modified by umask. */
unsigned ops_to_mask; /* Operators to actually use umask on. */
struct mode_change *tail; /* An element of the linked list. */
uintmax_t mode_value; /* The mode value, if octal. */
char *string_end; /* Pointer to end of parsed value. */
mode_t umask_value; /* The umask value (surprise). */
i = oatoi (mode_string);
if (i >= 0)
head = NULL;
#ifdef lint
tail = NULL;
#endif
if (xstrtoumax (mode_string, &string_end, 8, &mode_value, "") == LONGINT_OK)
{
if (i > 07777)
struct mode_change *p;
if (mode_value != (mode_value & CHMOD_MODE_BITS))
return MODE_INVALID;
head = talloc (struct mode_change);
if (head == NULL)
p = make_node_op_equals ((mode_t) mode_value);
if (p == NULL)
return MODE_MEMORY_EXHAUSTED;
head->next = NULL;
head->op = '=';
head->flags = 0;
head->value = i;
head->affected = 07777; /* Affect all permissions. */
mode_append_entry (&head, &tail, p);
return head;
}
umask_value = umask (0);
umask (umask_value); /* Restore the old value. */
head = NULL;
#ifdef lint
change = NULL;
#endif
--mode_string;
/* One loop iteration for each "ugoa...=+-rwxXstugo...[=+-rwxXstugo...]". */
do
{
/* Which bits in the mode are operated on. */
mode_t affected_bits = 0;
/* `affected_bits' modified by umask. */
mode_t affected_masked;
/* Operators to actually use umask on. */
unsigned ops_to_mask = 0;
int who_specified_p;
affected_bits = 0;
ops_to_mask = 0;
/* Turn on all the bits in `affected_bits' for each group given. */
@@ -118,16 +201,16 @@ mode_compile (mode_string, masked_ops)
switch (*mode_string)
{
case 'u':
affected_bits |= 04700;
affected_bits |= S_ISUID | S_IRWXU;
break;
case 'g':
affected_bits |= 02070;
affected_bits |= S_ISGID | S_IRWXG;
break;
case 'o':
affected_bits |= 01007;
affected_bits |= S_ISVTX | S_IRWXO;
break;
case 'a':
affected_bits |= 07777;
affected_bits |= CHMOD_MODE_BITS;
break;
default:
goto no_more_affected;
@@ -136,37 +219,39 @@ mode_compile (mode_string, masked_ops)
no_more_affected:
/* If none specified, affect all bits, except perhaps those
set in the umask. */
if (affected_bits == 0)
if (affected_bits)
who_specified_p = 1;
else
{
affected_bits = 07777;
who_specified_p = 0;
affected_bits = CHMOD_MODE_BITS;
ops_to_mask = masked_ops;
}
while (*mode_string == '=' || *mode_string == '+' || *mode_string == '-')
{
/* Add the element to the tail of the list, so the operations
are performed in the correct order. */
if (head == NULL)
struct mode_change *change = talloc (struct mode_change);
if (change == NULL)
{
head = talloc (struct mode_change);
if (head == NULL)
return MODE_MEMORY_EXHAUSTED;
change = head;
}
else
{
change->next = talloc (struct mode_change);
if (change->next == NULL)
{
mode_free (change);
return MODE_MEMORY_EXHAUSTED;
}
change = change->next;
mode_free (head);
return MODE_MEMORY_EXHAUSTED;
}
change->next = NULL;
change->op = *mode_string; /* One of "=+-". */
affected_masked = affected_bits;
/* Per the Single Unix Spec, if `who' is not specified and the
`=' operator is used, then clear all the bits first. */
if (!who_specified_p &&
ops_to_mask & (*mode_string == '=' ? MODE_MASK_EQUALS : 0))
{
struct mode_change *p = make_node_op_equals (0);
if (p == NULL)
return MODE_MEMORY_EXHAUSTED;
mode_append_entry (&head, &tail, p);
}
if (ops_to_mask & (*mode_string == '=' ? MODE_MASK_EQUALS
: *mode_string == '+' ? MODE_MASK_PLUS
: MODE_MASK_MINUS))
@@ -175,36 +260,43 @@ mode_compile (mode_string, masked_ops)
change->value = 0;
change->flags = 0;
/* Add the element to the tail of the list, so the operations
are performed in the correct order. */
mode_append_entry (&head, &tail, change);
/* Set `value' according to the bits set in `affected_masked'. */
for (++mode_string;; ++mode_string)
switch (*mode_string)
{
case 'r':
change->value |= 00444 & affected_masked;
change->value |= ((S_IRUSR | S_IRGRP | S_IROTH)
& affected_masked);
break;
case 'w':
change->value |= 00222 & affected_masked;
change->value |= ((S_IWUSR | S_IWGRP | S_IWOTH)
& affected_masked);
break;
case 'X':
change->flags |= MODE_X_IF_ANY_X;
/* Fall through. */
case 'x':
change->value |= 00111 & affected_masked;
change->value |= ((S_IXUSR | S_IXGRP | S_IXOTH)
& affected_masked);
break;
case 's':
/* Set the setuid/gid bits if `u' or `g' is selected. */
change->value |= 06000 & affected_masked;
change->value |= (S_ISUID | S_ISGID) & affected_masked;
break;
case 't':
/* Set the "save text image" bit if `o' is selected. */
change->value |= 01000 & affected_masked;
change->value |= S_ISVTX & affected_masked;
break;
case 'u':
/* Set the affected bits to the value of the `u' bits
on the same file. */
if (change->value)
goto invalid;
change->value = 00700;
change->value = S_IRWXU;
change->flags |= MODE_COPY_EXISTING;
break;
case 'g':
@@ -212,7 +304,7 @@ mode_compile (mode_string, masked_ops)
on the same file. */
if (change->value)
goto invalid;
change->value = 00070;
change->value = S_IRWXG;
change->flags |= MODE_COPY_EXISTING;
break;
case 'o':
@@ -220,7 +312,7 @@ mode_compile (mode_string, masked_ops)
on the same file. */
if (change->value)
goto invalid;
change->value = 00007;
change->value = S_IRWXO;
change->flags |= MODE_COPY_EXISTING;
break;
default:
@@ -236,20 +328,44 @@ invalid:
return MODE_INVALID;
}
/* Return a file mode change operation that sets permissions to match those
of REF_FILE. Return MODE_BAD_REFERENCE if REF_FILE can't be accessed. */
struct mode_change *
mode_create_from_ref (const char *ref_file)
{
struct mode_change *change; /* the only change element */
struct stat ref_stats;
if (stat (ref_file, &ref_stats))
return MODE_BAD_REFERENCE;
change = talloc (struct mode_change);
if (change == NULL)
return MODE_MEMORY_EXHAUSTED;
change->op = '=';
change->flags = 0;
change->affected = CHMOD_MODE_BITS;
change->value = ref_stats.st_mode;
change->next = NULL;
return change;
}
/* Return file mode OLDMODE, adjusted as indicated by the list of change
operations CHANGES. If OLDMODE is a directory, the type `X'
change affects it even if no execute bits were set in OLDMODE.
The returned value has the S_IFMT bits cleared. */
unsigned short
mode_adjust (oldmode, changes)
unsigned oldmode;
register struct mode_change *changes;
mode_t
mode_adjust (mode_t oldmode, const struct mode_change *changes)
{
unsigned short newmode; /* The adjusted mode and one operand. */
unsigned short value; /* The other operand. */
mode_t newmode; /* The adjusted mode and one operand. */
mode_t value; /* The other operand. */
newmode = oldmode & 07777;
newmode = oldmode & CHMOD_MODE_BITS;
for (; changes; changes = changes->next)
{
@@ -259,15 +375,21 @@ mode_adjust (oldmode, changes)
the mask `changes->value'. */
value = newmode & changes->value;
if (changes->value & 00700)
if (changes->value & S_IRWXU)
/* Copy `u' permissions onto `g' and `o'. */
value |= (value >> 3) | (value >> 6);
else if (changes->value & 00070)
value |= ((value & S_IRUSR ? S_IRGRP | S_IROTH : 0)
| (value & S_IWUSR ? S_IWGRP | S_IROTH : 0)
| (value & S_IXUSR ? S_IXGRP | S_IXOTH : 0));
else if (changes->value & S_IRWXG)
/* Copy `g' permissions onto `u' and `o'. */
value |= (value << 3) | (value >> 3);
value |= ((value & S_IRGRP ? S_IRUSR | S_IROTH : 0)
| (value & S_IWGRP ? S_IWUSR | S_IROTH : 0)
| (value & S_IXGRP ? S_IXUSR | S_IXOTH : 0));
else
/* Copy `o' permissions onto `u' and `g'. */
value |= (value << 3) | (value << 6);
value |= ((value & S_IROTH ? S_IRUSR | S_IRGRP : 0)
| (value & S_IWOTH ? S_IWUSR | S_IRGRP : 0)
| (value & S_IXOTH ? S_IXUSR | S_IXGRP : 0));
/* In order to change only `u', `g', or `o' permissions,
or some combination thereof, clear unselected bits.
@@ -283,8 +405,9 @@ mode_adjust (oldmode, changes)
directory and no execute bits are already set. */
if ((changes->flags & MODE_X_IF_ANY_X)
&& !S_ISDIR (oldmode)
&& (newmode & 00111) == 0)
value &= ~00111; /* Clear the execute bits. */
&& (newmode & (S_IXUSR | S_IXGRP | S_IXOTH)) == 0)
/* Clear the execute bits. */
value &= ~ (S_IXUSR | S_IXGRP | S_IXOTH);
}
switch (changes->op)
@@ -309,8 +432,7 @@ mode_adjust (oldmode, changes)
CHANGES. */
void
mode_free (changes)
register struct mode_change *changes;
mode_free (register struct mode_change *changes)
{
register struct mode_change *next;
@@ -321,21 +443,3 @@ mode_free (changes)
changes = next;
}
}
/* Return a positive integer containing the value of the ASCII
octal number S. If S is not an octal number, return -1. */
static int
oatoi (s)
char *s;
{
register int i;
if (*s == 0)
return -1;
for (i = 0; isodigit (*s); ++s)
i = i * 8 + *s - '0';
if (*s)
return -1;
return i;
}

Some files were not shown because too many files have changed in this diff Show More