Compare commits

...

1481 Commits

Author SHA1 Message Date
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
537 changed files with 21714 additions and 19741 deletions

View File

@@ -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
@@ -313,7 +313,7 @@ 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.

View File

@@ -11,35 +11,60 @@ maintainer-check:
$(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
pkg=`echo "$(PACKAGE)" | tr a-z A-Z`; \
ver=`echo "$(VERSION)" | sed 's/\./_/g'`; \
tag="$$pkg-$$ver"; \
echo tag=$$tag; \
if cvs -n log -h README| grep -e $$tag: > /dev/null; then \
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 $$tag
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:
my-distcheck: writable-files po-check
-rm -rf $(t)
mkdir $(t)
GZIP=$(GZIP) $(TAR) -C $(t) -zxf $(distdir).tar.gz
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 \
&& $(TAR) -zxf ../$(distdir).tar.gz
&& $(AMTAR) -zxf ../$(distdir).tar.gz
diff -ur $(t)/$(distdir).old $(t)/$(distdir)
-rm -rf $(t)
@echo "========================"; \
@@ -48,17 +73,20 @@ my-distcheck:
THIS_VERSION_REGEXP = $(subst .,\.,$(VERSION))
# FIXME: this works only for Gnits-style test releases.
PREV_VERSION := $(shell echo $(VERSION)|tr a-z Xa-y)
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
url_list = \
ftp://alpha.gnu.org/gnu/fetish/$(distdir).tar.gz \
ftp://tug.org/pub/gnu/fetish/$(distdir).tar.gz \
ftp://ftp.enst.fr/pub/gnu/gnits/fetish/$(distdir).tar.gz
dir_list = \
/fs/share/ftp/gnu/fetish \
/home/ftp/pub/gnu/fetish \
/pub/gnu/gnits/fetish
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/ -//')
@@ -71,14 +99,24 @@ rel-check:
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_list); do \
echo " $$url"; \
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"; \
@@ -88,20 +126,35 @@ announcement: NEWS ChangeLog $(distdir).tar.gz
| grep -v '^\['; \
echo; \
echo ChangeLog entries:; \
sed -n "1,/$v $(PREV_VERSION_REGEXP)/p" \
ChangeLog; \
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"'; \
)
alpha:
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/announcement
$(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 =====================================
@for url in $(dir_list); do \
echo "ncftp -u $$url"; \
done
@echo '# put $(distdir).tar.gz'
@echo =====================================
@echo 'scp $(xd-delta) $(distdir).tar.gz \'
@echo ' $(b_host):$(b_real_dir)'
@echo '# send the /tmp/announcement e-mail'
@echo 'pot-mail $(distdir).tar.gz | bash'
@echo =====================================
@echo =====================================

34
THANKS
View File

@@ -8,7 +8,8 @@ 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@issan.informatik.uni-dortmund.de
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
@@ -16,12 +17,17 @@ 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
@@ -29,20 +35,29 @@ 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
@@ -52,27 +67,42 @@ 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
Michael Veksler: mveksler@techunix.technion.ac.il
Wayne Stewart: wstewa@atl.com
Wichert Akkerman: wichert@cistron.nl
William Bader: william@nscs.fast.net

View File

@@ -57,13 +57,23 @@ 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@
@@ -74,20 +84,26 @@ INSTOBJEXT = @INSTOBJEXT@
INTLDEPS = @INTLDEPS@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
MVDIR_PROG = @MVDIR_PROG@
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@
@@ -104,9 +120,11 @@ EXTRA_DIST = perm.texi getdate.texi
# 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
@@ -115,9 +133,8 @@ DIST_COMMON = Makefile.am Makefile.in mdate-sh stamp-vti texinfo.tex \
version.texi
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
@@ -165,7 +182,7 @@ DVIPS = dvips
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texi.dvi:
TEXINPUTS=.:$$TEXINPUTS \
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.texi:
@@ -184,7 +201,7 @@ DVIPS = dvips
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo.dvi:
TEXINPUTS=.:$$TEXINPUTS \
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi.info:
@@ -193,7 +210,7 @@ DVIPS = dvips
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.txi.dvi:
TEXINPUTS=.:$$TEXINPUTS \
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi:
@@ -209,7 +226,7 @@ install-info-am: $(INFO_DEPS)
@list='$(INFO_DEPS)'; \
for file in $$list; do \
d=$(srcdir); \
for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
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; \
@@ -228,24 +245,26 @@ install-info-am: $(INFO_DEPS)
uninstall-info:
$(PRE_UNINSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
ii=yes; \
else ii=; fi; \
list='$(INFO_DEPS)'; \
for file in $$list; do \
test -z "$ii" \
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
done
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)'; \
@list='$(INFO_DEPS)'; \
for file in $$list; do \
(cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
(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 `cd $$d && eval echo $$base*`; do \
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; \
@@ -258,7 +277,7 @@ mostlyclean-aminfo:
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.cn fileutils.cm fileutils.ov
clean-aminfo:
@@ -277,18 +296,11 @@ TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = doc
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnits doc/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir); \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
@@ -332,6 +344,7 @@ distclean-generic:
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
-rm -f Makefile.in
mostlyclean-am: mostlyclean-vti mostlyclean-aminfo mostlyclean-generic
mostlyclean: mostlyclean-am
@@ -356,8 +369,8 @@ 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 installdirs \
mostlyclean-generic distclean-generic clean-generic \
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

View File

@@ -114,7 +114,7 @@ numerically or literally. All these strings specify the same calendar date:
@example
1970-09-17 # ISO 8601.
70-9-17 # This century assumed by default.
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
@@ -141,8 +141,9 @@ 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 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 less than 100, then 1900
is added to it to force a date in this century. The construct
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.

View File

@@ -430,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
@@ -440,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

View File

@@ -366,15 +366,21 @@ pipeline.
@section @code{false}: Do nothing, unsuccessfully
@pindex false
@cindex exit status of @code{true}
@cindex do nothing, unsuccessfully
@cindex failure exit status
@cindex exit status of @code{false}
@code{false} does nothing except return an exit status of 1, meaning
@dfn{failure}. It can be used as a place holder in shell scripts
where an unsuccessful command is needed.
Any arguments are ignored, except for a lone @samp{--help} or
@samp{--version} (@pxref{Common options}).
@code{false} ignores @emph{all} command line arguments, even @samp{--help}
and @samp{--version}, since to do otherwise would change expected
behavior that some programmers may be relying on.
This version of @code{false} is implemented as a C program, and is thus
more secure and faster than a shell script implementation, and may safely
be used as a dummy shell for the purpose of disabling accounts.
@node true invocation
@@ -384,15 +390,20 @@ Any arguments are ignored, except for a lone @samp{--help} or
@cindex do nothing, successfully
@cindex no-op
@cindex successful exit
@cindex exit status of @code{true}
@code{true} does nothing except return an exit status of 0, meaning
@dfn{success}. It can be used as a place holder in shell scripts
where a successful command is needed, although the shell built-in
command @code{:} (colon) may be faster.
command @code{:} (colon) does the same thing faster.
Any arguments are ignored, except for a lone @samp{--help} or
@samp{--version} (@pxref{Common options}).
@code{true} ignores @emph{all} command line arguments, even @samp{--help}
and @samp{--version}, since to do otherwise would change expected
behavior that some programmers may be relying on.
This version of @code{true} is implemented as a C program, and is thus
more secure and faster than a shell script implementation, and may safely
be used as a dummy shell for the purpose of disabling accounts.
@node test invocation
@@ -1165,7 +1176,7 @@ Print all current settings in human-readable form. This option may not
be used in combination with any line settings.
@item -F @var{device}
@itemx --file @var{device}
@itemx --file=@var{device}
@opindex -F
@opindex --file
Set the line opened by the filename specified in @var{device} instead of
@@ -2390,6 +2401,32 @@ input. This is useful when you have many dates to process, because the
system overhead of starting up the @code{date} executable many times can
be considerable.
@item -I[@var{timespec}]
@itemx --iso-8601[=@var{timespec}]
@opindex -I[@var{timespec}]
@opindex --iso-8601[=@var{timespec}]
Display the date using the ISO 8601 format, @samp{%Y-%m-%d}.
The optional argument @var{timespec} specifies the number of additional
terms of the time to include. It can be one of the following:
@table @samp
@item auto
The default behavior: print just the date.
@item hours
Append the hour of the day to the date.
@item minutes
Append the hours and minutes.
@item seconds
Append the hours, minutes, and seconds.
@end table
If showing any time terms, then include the time zone using the format
@samp{%z}. If @samp{--utc} is also specified, use @samp{%Z} in place of
@samp{%z}.
@item -R
@itemx --rfc-822
@opindex -R
@@ -3004,7 +3041,7 @@ the values of the command line arguments.
Synopsis:
@example
sleep [@var{number}[smhd]]@dots{}
sleep @var{number}[smhd]@dots{}
@end example
@cindex time units
@@ -3022,6 +3059,10 @@ hours
days
@end table
Historical implementations of @code{sleep} have required that
@var{number} be an integer. However, GNU @code{sleep} accepts
arbitrary floating point numbers.
The only options are @samp{--help} and @samp{--version}. @xref{Common
options}.
@@ -3057,6 +3098,23 @@ numbers from standard input, delimited by newlines, tabs, or spaces.
The only options are @samp{--help} and @samp{--version}. @xref{Common
options}.
The algorithm it uses is not very sophisticated, so for some inputs
@code{factor} runs for a long time. The hardest numbers to factor are
the products of large primes. Factoring the square of the largest 32-bit
prime number takes over 10 minutes of CPU time on a 400MHz Pentium II.
@example
$ factor `echo '4294967291^2'|bc`
18446744030759878681: 4294967291 4294967291
@end example
In contrast, @code{factor} factors the largest 64-bit number in just
over a tenth of a second:
@example
$ factor `echo '2^64-1'|bc`
18446744073709551615: 3 5 17 257 641 65537 6700417
@end example
@node seq invocation
@section @code{seq}: Print numeric sequences
@@ -3085,8 +3143,8 @@ The program accepts the following options. Also see @ref{Common options}.
@opindex --format=@var{format}
@cindex formatting of numbers in @code{seq}
Print all numbers using @var{format}; default @samp{%g}.
@var{format} must contain exactly one of the standarding float output
formats @samp{%e}, @samp{%f}, or @samp{%g}.
@var{format} must contain exactly one of the standarding floating point
output formats @samp{%e}, @samp{%f}, or @samp{%g}.
@item -s @var{string}
@itemx --separator=@var{string}
@@ -3101,6 +3159,66 @@ Print all numbers with the same width, by padding with leading zeroes.
@end table
If you want to use @code{seq} to print sequences of large integer values,
don't use the default @samp{%g} format since it can result in
loss of precision:
@example
$ seq 1000000 1000001
1e+06
1e+06
@end example
Instead, you can use the format, @samp{%1.f},
to print large decimal numbers with no exponent and no decimal point.
@example
$ seq --format=%1.f 1000000 1000001
1000000
1000001
@end example
If you want hexadecimal output, you can use @code{printf}
to perform the conversion:
@example
$ printf %x'\n' `seq -f %1.f 1048575 1024 1050623`
fffff
1003ff
1007ff
@end example
For very long lists of numbers, use xargs to avoid
system limitations on the length of an argument list:
@example
$ seq -f %1.f 1000000 | xargs printf %x'\n' |tail -3
f423e
f423f
f4240
@end example
To generate octal output, use the printf @code{%o} format instead
of @code{%x}. Note however that using printf works only for numbers
smaller than @code{2^32}:
@example
$ printf "%x\n" `seq -f %1.f 4294967295 4294967296`
ffffffff
bash: printf: 4294967296: Numerical result out of range
@end example
On most systems, seq can produce whole-number output for values up to
@code{2^53}, so here's a more general approach to base conversion that
also happens to be more robust for such large numbers. It works by
using @code{bc} and setting its output radix variable, @var{obase},
to @samp{16} in this case to produce hexadecimal output.
@example
$ (echo obase=16; seq -f %1.f 4294967295 4294967296)|bc
FFFFFFFF
100000000
@end example
@node Index
@unnumbered Index

View File

@@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
\def\texinfoversion{1999-03-31.13}%
\def\texinfoversion{1999-09-25.10}
%
% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
% Free Software Foundation, Inc.
@@ -29,15 +29,15 @@
%
% Please try the latest version of texinfo.tex before submitting bug
% reports; you can get the latest version from:
% ftp://ftp.gnu.org/pub/gnu/texinfo.tex
% ftp://ftp.gnu.org/gnu/texinfo.tex
% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html)
% ftp://tug.org/tex/texinfo.tex
% ftp://ctan.org/macros/texinfo/texinfo.tex
% (and all CTAN mirrors, finger ctan@ctan.org for a list).
% ftp://texinfo.org/tex/texinfo.tex
% ftp://us.ctan.org/macros/texinfo/texinfo.tex
% (and all CTAN mirrors, finger ctan@us.ctan.org for a list).
% /home/gd/gnu/doc/texinfo.tex on the GNU machines.
% The texinfo.tex in any given Texinfo distribution could well be out
% of date, so if that's what you're using, please check.
% There is a small home page for Texinfo at http://texinfo.org/.
% Texinfo has a small home page at http://texinfo.org/.
%
% Send bug reports to bug-texinfo@gnu.org. Please include including a
% complete document in each bug report with which we can reproduce the
@@ -67,7 +67,6 @@
\catcode`+=\active \catcode`\_=\active}
% Save some parts of plain tex whose names we will redefine.
\let\ptexb=\b
\let\ptexbullet=\bullet
\let\ptexc=\c
@@ -87,7 +86,6 @@
% For @tex, we can use \tabalign.
\let\+ = \relax
\message{Basics,}
\chardef\other=12
@@ -245,6 +243,8 @@
\unvbox\footlinebox
\fi
%
\ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi
%
\ifcropmarks
\egroup % end of \vbox\bgroup
\hfil\egroup % end of (centering) \line\bgroup
@@ -599,36 +599,42 @@ where each line of input produces a line of output.}
%}}
\def\needx#1{%
% Go into vertical mode, so we don't make a big box in the middle of a
% Ensure vertical mode, so we don't make a big box in the middle of a
% paragraph.
\par
%
% Don't add any leading before our big empty box, but allow a page
% break, since the best break might be right here.
\allowbreak
\nointerlineskip
\vtop to #1\mil{\vfil}%
%
% TeX does not even consider page breaks if a penalty added to the
% main vertical list is 10000 or more. But in order to see if the
% empty box we just added fits on the page, we must make it consider
% page breaks. On the other hand, we don't want to actually break the
% page after the empty box. So we use a penalty of 9999.
%
% There is an extremely small chance that TeX will actually break the
% page at this \penalty, if there are no other feasible breakpoints in
% sight. (If the user is using lots of big @group commands, which
% almost-but-not-quite fill up a page, TeX will have a hard time doing
% good page breaking, for example.) However, I could not construct an
% example where a page broke at this \penalty; if it happens in a real
% document, then we can reconsider our strategy.
\penalty9999
%
% Back up by the size of the box, whether we did a page break or not.
\kern -#1\mil
%
% Do not allow a page break right after this kern.
\nobreak
% If the @need value is less than one line space, it's useless.
\dimen0 = #1\mil
\dimen2 = \ht\strutbox
\advance\dimen2 by \dp\strutbox
\ifdim\dimen0 > \dimen2
%
% Do a \strut just to make the height of this box be normal, so the
% normal leading is inserted relative to the preceding line.
% And a page break here is fine.
\vtop to #1\mil{\strut\vfil}%
%
% TeX does not even consider page breaks if a penalty added to the
% main vertical list is 10000 or more. But in order to see if the
% empty box we just added fits on the page, we must make it consider
% page breaks. On the other hand, we don't want to actually break the
% page after the empty box. So we use a penalty of 9999.
%
% There is an extremely small chance that TeX will actually break the
% page at this \penalty, if there are no other feasible breakpoints in
% sight. (If the user is using lots of big @group commands, which
% almost-but-not-quite fill up a page, TeX will have a hard time doing
% good page breaking, for example.) However, I could not construct an
% example where a page broke at this \penalty; if it happens in a real
% document, then we can reconsider our strategy.
\penalty9999
%
% Back up by the size of the box, whether we did a page break or not.
\kern -#1\mil
%
% Do not allow a page break right after this kern.
\nobreak
\fi
}
% @br forces paragraph break
@@ -842,6 +848,178 @@ where each line of input produces a line of output.}
\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
\message{pdf,}
% adobe `portable' document format
\newcount\tempnum
\newcount\lnkcount
\newtoks\filename
\newcount\filenamelength
\newcount\pgn
\newtoks\toksA
\newtoks\toksB
\newtoks\toksC
\newtoks\toksD
\newbox\boxA
\newcount\countA
\newif\ifpdf
\newif\ifpdfmakepagedest
\ifx\pdfoutput\undefined
\pdffalse
\let\pdfmkdest = \gobble
\let\pdfurl = \gobble
\let\endlink = \relax
\let\linkcolor = \relax
\let\pdfmakeoutlines = \relax
\else
\pdftrue
\pdfoutput = 1
\input pdfcolor
\def\dopdfimage#1#2#3{%
\def\imagewidth{#2}%
\def\imageheight{#3}%
\ifnum\pdftexversion < 14
\pdfimage
\else
\pdfximage
\fi
\ifx\empty\imagewidth\else width \imagewidth \fi
\ifx\empty\imageheight\else height \imageheight \fi
{#1.pdf}%
\ifnum\pdftexversion < 14 \else
\pdfrefximage \pdflastximage
\fi}
\def\pdfmkdest#1{\pdfdest name{#1@} xyz}
\def\pdfmkpgn#1{#1@}
\let\linkcolor = \Cyan
\def\endlink{\Black\pdfendlink}
% Adding outlines to PDF; macros for calculating structure of outlines
% come from Petr Olsak
\def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
\else \csname#1\endcsname \fi}
\def\advancenumber#1{\tempnum=\expnumber{#1}\relax
\advance\tempnum by1
\expandafter\xdef\csname#1\endcsname{\the\tempnum}}
\def\pdfmakeoutlines{{%
\openin 1 \jobname.toc
\ifeof 1\else\bgroup
\closein 1
\indexnofonts
\def\tt{}
% thanh's hack / proper braces in bookmarks
\edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
\edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
%
\def\chapentry ##1##2##3{}
\def\unnumbchapentry ##1##2{}
\def\secentry ##1##2##3##4{\advancenumber{chap##2}}
\def\unnumbsecentry ##1##2{}
\def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}}
\def\unnumbsubsecentry ##1##2{}
\def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}}
\def\unnumbsubsubsecentry ##1##2{}
\input \jobname.toc
\def\chapentry ##1##2##3{%
\pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}}
\def\unnumbchapentry ##1##2{%
\pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
\def\secentry ##1##2##3##4{%
\pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}}
\def\unnumbsecentry ##1##2{%
\pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
\def\subsecentry ##1##2##3##4##5{%
\pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}}
\def\unnumbsubsecentry ##1##2{%
\pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
\def\subsubsecentry ##1##2##3##4##5##6{%
\pdfoutline goto name{\pdfmkpgn{##6}}{##1}}
\def\unnumbsubsubsecentry ##1##2{%
\pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
\input \jobname.toc
\egroup\fi
}}
\def\makelinks #1,{%
\def\params{#1}\def\E{END}%
\ifx\params\E
\let\nextmakelinks=\relax
\else
\let\nextmakelinks=\makelinks
\ifnum\lnkcount>0,\fi
\picknum{#1}%
\startlink attr{/Border [0 0 0]}
goto name{\pdfmkpgn{\the\pgn}}%
\linkcolor #1%
\advance\lnkcount by 1%
\endlink
\fi
\nextmakelinks
}
\def\picknum#1{\expandafter\pn#1}
\def\pn#1{%
\def\p{#1}%
\ifx\p\lbrace
\let\nextpn=\ppn
\else
\let\nextpn=\ppnn
\def\first{#1}
\fi
\nextpn
}
\def\ppn#1{\pgn=#1\gobble}
\def\ppnn{\pgn=\first}
\def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,}
\def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
\def\skipspaces#1{\def\PP{#1}\def\D{|}%
\ifx\PP\D\let\nextsp\relax
\else\let\nextsp\skipspaces
\ifx\p\space\else\addtokens{\filename}{\PP}%
\advance\filenamelength by 1
\fi
\fi
\nextsp}
\def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
\ifnum\pdftexversion < 14
\let \startlink \pdfannotlink
\else
\let \startlink \pdfstartlink
\fi
\def\pdfurl#1{%
\begingroup
\normalturnoffactive\def\@{@}%
\leavevmode\Red
\startlink attr{/Border [0 0 0]}%
user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
% #1
\endgroup}
\def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
\def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
\def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
\def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
\def\maketoks{%
\expandafter\poptoks\the\toksA|ENDTOKS|
\ifx\first0\adn0
\else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
\else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
\else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
\else
\ifnum0=\countA\else\makelink\fi
\ifx\first.\let\next=\done\else
\let\next=\maketoks
\addtokens{\toksB}{\the\toksD}
\ifx\first,\addtokens{\toksB}{\space}\fi
\fi
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
\next}
\def\makelink{\addtokens{\toksB}%
{\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
\def\pdflink#1{%
\startlink attr{/Border [0 0 0]} goto name{\mkpgn{#1}}
\linkcolor #1\endlink}
\def\mkpgn#1{#1@}
\def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
\fi % \ifx\pdfoutput
\message{fonts,}
% Font-change commands.
@@ -911,23 +1089,17 @@ where each line of input produces a line of output.}
\setfont\deftt\ttshape{10}{\magstep1}
\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
% Fonts for indices and small examples (9pt).
% We actually use the slanted font rather than the italic,
% because texinfo normally uses the slanted fonts for that.
% Do not make many font distinctions in general in the index, since they
% aren't very useful.
\setfont\ninett\ttshape{9}{1000}
\setfont\ninettsl\ttslshape{10}{900}
\setfont\indrm\rmshape{9}{1000}
\setfont\indit\itshape{9}{1000}
\setfont\indsl\slshape{9}{1000}
\let\indtt=\ninett
\let\indttsl=\ninettsl
\let\indsf=\indrm
\let\indbf=\indrm
\setfont\indsc\scshape{10}{900}
\font\indi=cmmi9
\font\indsy=cmsy9
% Fonts for indices, footnotes, small examples (9pt).
\setfont\smallrm\rmshape{9}{1000}
\setfont\smalltt\ttshape{9}{1000}
\setfont\smallbf\bfshape{10}{900}
\setfont\smallit\itshape{9}{1000}
\setfont\smallsl\slshape{9}{1000}
\setfont\smallsf\sfshape{9}{1000}
\setfont\smallsc\scshape{10}{900}
\setfont\smallttsl\ttslshape{10}{900}
\font\smalli=cmmi9
\font\smallsy=cmsy9
% Fonts for title page:
\setfont\titlerm\rmbshape{12}{\magstep3}
@@ -1041,11 +1213,12 @@ where each line of input produces a line of output.}
\let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl
\resetmathfonts \setleading{15pt}}
\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf?
\def\indexfonts{%
\let\tenrm=\indrm \let\tenit=\indit \let\tensl=\indsl
\let\tenbf=\indbf \let\tentt=\indtt \let\smallcaps=\indsc
\let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy \let\tenttsl=\indttsl
\resetmathfonts \setleading{12pt}}
\def\smallfonts{%
\let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl
\let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc
\let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
\let\tenttsl=\smallttsl
\resetmathfonts \setleading{11pt}}
% Set up the default fonts, so we can use them for creating boxes.
%
@@ -1094,9 +1267,9 @@ where each line of input produces a line of output.}
}
\let\ttfont=\t
\def\samp#1{`\tclose{#1}'\null}
\setfont\smallrm\rmshape{8}{1000}
\font\smallsy=cmsy9
\def\key#1{{\smallrm\textfont2=\smallsy \leavevmode\hbox{%
\setfont\keyrm\rmshape{8}{1000}
\font\keysy=cmsy9
\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
\raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
\vbox{\hrule\kern-0.4pt
\hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
@@ -1207,24 +1380,43 @@ where each line of input produces a line of output.}
% a hypertex \special here.
%
\def\uref#1{\douref #1,,,\finish}
\def\douref#1,#2,#3,#4\finish{%
\def\douref#1,#2,#3,#4\finish{\begingroup
\unsepspaces
\pdfurl{#1}%
\setbox0 = \hbox{\ignorespaces #3}%
\ifdim\wd0 > 0pt
\unhbox0 % third arg given, show only that
\else
\setbox0 = \hbox{\ignorespaces #2}%
\ifdim\wd0 > 0pt
\unhbox0\ (\code{#1})% second arg given, show both it and url
\ifpdf
\unhbox0 % PDF: 2nd arg given, show only it
\else
\unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
\fi
\else
\code{#1}% only url given, so show it
\fi
\fi
}
\endlink
\endgroup}
% rms does not like the angle brackets --karl, 17may97.
% So now @email is just like @uref.
% rms does not like angle brackets --karl, 17may97.
% So now @email is just like @uref, unless we are pdf.
%
%\def\email#1{\angleleft{\tt #1}\angleright}
\let\email=\uref
\ifpdf
\def\email#1{\doemail#1,,\finish}
\def\doemail#1,#2,#3\finish{\begingroup
\unsepspaces
\pdfurl{mailto:#1}%
\setbox0 = \hbox{\ignorespaces #2}%
\ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
\endlink
\endgroup}
\else
\let\email=\uref
\fi
% Check if we are currently using a typewriter font. Since all the
% Computer Modern typewriter fonts have zero interword stretch (and
@@ -1343,6 +1535,8 @@ where each line of input produces a line of output.}
\global\let\shortcontents = \relax
\fi
%
\ifpdf \pdfmakepagedesttrue \fi
%
\HEADINGSon
}
@@ -1908,10 +2102,11 @@ where each line of input produces a line of output.}
\go
}
% multitable syntax
\def\tab{&\hskip1sp\relax} % 2/2/96
% tiny skip here makes sure this column space is
% maintained, even if it is never used.
% This used to have \hskip1sp. But then the space in a template line is
% not enough. That is bad. So let's go back to just & until we
% encounter the problem it was intended to solve again.
% --karl, nathan@acm.org, 20apr99.
\def\tab{&}
% @multitable ... @end multitable definitions:
%
@@ -1992,15 +2187,18 @@ where each line of input produces a line of output.}
% If so, do nothing. If not, give it an appropriate dimension based on
% current baselineskip.
\ifdim\multitablelinespace=0pt
\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
\global\advance\multitablelinespace by-\ht0
%% strut to put in table in case some entry doesn't have descenders,
%% to keep lines equally spaced
\let\multistrut = \strut
\else
%% FIXME: what is \box0 supposed to be?
\gdef\multistrut{\vrule height\multitablelinespace depth\dp0
width0pt\relax} \fi
%% Test to see if parskip is larger than space between lines of
%% table. If not, do nothing.
%% If so, set to same dimension as multitablelinespace.
\else
\gdef\multistrut{\vrule height\multitablelinespace depth\dp0
width0pt\relax} \fi
\ifdim\multitableparskip>\multitablelinespace
\global\multitableparskip=\multitablelinespace
\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
@@ -2063,6 +2261,7 @@ width0pt\relax} \fi
\let\deftypefn = \relax
\let\deftypefun = \relax
\let\deftypeivar = \relax
\let\deftypeop = \relax
\let\deftypevar = \relax
\let\deftypevr = \relax
\let\defun = \relax
@@ -2206,14 +2405,13 @@ width0pt\relax} \fi
% stuff compared to the main input.
%
\nullfont
\let\tenrm = \nullfont \let\tenit = \nullfont \let\tensl = \nullfont
\let\tenbf = \nullfont \let\tentt = \nullfont \let\smallcaps = \nullfont
\let\tensf = \nullfont
% Similarly for index fonts (mostly for their use in
% smallexample)
\let\indrm = \nullfont \let\indit = \nullfont \let\indsl = \nullfont
\let\indbf = \nullfont \let\indtt = \nullfont \let\indsc = \nullfont
\let\indsf = \nullfont
\let\tenrm=\nullfont \let\tenit=\nullfont \let\tensl=\nullfont
\let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont
\let\tensf=\nullfont
% Similarly for index fonts (mostly for their use in smallexample).
\let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont
\let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont
\let\smallsf=\nullfont
%
% Don't complain when characters are missing from the fonts.
\tracinglostchars = 0
@@ -2477,7 +2675,7 @@ width0pt\relax} \fi
\def\@{@}% will be @@ when we switch to @ as escape char.
% Need these in case \tex is in effect and \{ is a \delimiter again.
% But can't use \lbracecmd and \rbracecmd because texindex assumes
% braces and backslashes are used only as delimiters.
% braces and backslashes are used only as delimiters.
\let\{ = \mylbrace
\let\} = \myrbrace
\def\_{{\realbackslash _}}%
@@ -2590,6 +2788,7 @@ width0pt\relax} \fi
\let\url=\indexdummyfont
\let\uref=\indexdummyfont
\let\env=\indexdummyfont
\let\acronym=\indexdummyfont
\let\command=\indexdummyfont
\let\option=\indexdummyfont
\let\file=\indexdummyfont
@@ -2743,7 +2942,7 @@ width0pt\relax} \fi
\def\doprintindex#1{\begingroup
\dobreak \chapheadingskip{10000}%
%
\indexfonts \rm
\smallfonts \rm
\tolerance = 9500
\indexbreaks
%
@@ -2870,7 +3069,11 @@ width0pt\relax} \fi
% The `\ ' here is removed by the implicit \unskip that TeX does as
% part of (the primitive) \par. Without it, a spurious underfull
% \hbox ensues.
\ #2% The page number ends the paragraph.
\ifpdf
\pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
\else
\ #2% The page number ends the paragraph.
\fi
\fi%
\par
\endgroup}
@@ -3029,7 +3232,7 @@ width0pt\relax} \fi
\message{sectioning,}
% Define chapters, sections, etc.
% Chapters, sections, etc.
\newcount\chapno
\newcount\secno \secno=0
@@ -3038,7 +3241,43 @@ width0pt\relax} \fi
% This counter is funny since it counts through charcodes of letters A, B, ...
\newcount\appendixno \appendixno = `\@
\def\appendixletter{\char\appendixno}
% \def\appendixletter{\char\the\appendixno}
% We do the following for the sake of pdftex, which needs the actual
% letter in the expansion, not just typeset.
\def\appendixletter{%
\ifnum\appendixno=`A A%
\else\ifnum\appendixno=`B B%
\else\ifnum\appendixno=`C C%
\else\ifnum\appendixno=`D D%
\else\ifnum\appendixno=`E E%
\else\ifnum\appendixno=`F F%
\else\ifnum\appendixno=`G G%
\else\ifnum\appendixno=`H H%
\else\ifnum\appendixno=`I I%
\else\ifnum\appendixno=`J J%
\else\ifnum\appendixno=`K K%
\else\ifnum\appendixno=`L L%
\else\ifnum\appendixno=`M M%
\else\ifnum\appendixno=`N N%
\else\ifnum\appendixno=`O O%
\else\ifnum\appendixno=`P P%
\else\ifnum\appendixno=`Q Q%
\else\ifnum\appendixno=`R R%
\else\ifnum\appendixno=`S S%
\else\ifnum\appendixno=`T T%
\else\ifnum\appendixno=`U U%
\else\ifnum\appendixno=`V V%
\else\ifnum\appendixno=`W W%
\else\ifnum\appendixno=`X X%
\else\ifnum\appendixno=`Y Y%
\else\ifnum\appendixno=`Z Z%
% The \the is necessary, despite appearances, because \appendixletter is
% expanded while writing the .toc file. \char\appendixno is not
% expandable, thus it is written literally, thus all appendixes come out
% with the same letter (or @) in the toc without it.
\else\char\the\appendixno
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
% Each @chapter defines this as the name of the chapter.
% page headings and footings can use it. @section does likewise.
@@ -3511,6 +3750,7 @@ width0pt\relax} \fi
\message{toc,}
% Table of contents.
\newwrite\tocfile
% Write an entry to the toc file, opening it if necessary.
@@ -3571,6 +3811,7 @@ width0pt\relax} \fi
\fi
\vfill \eject
\contentsalignmacro % in case @setchapternewpage odd is in effect
\pdfmakeoutlines
\endgroup
\lastnegativepageno = \pageno
\pageno = \savepageno
@@ -3607,6 +3848,10 @@ width0pt\relax} \fi
}
\let\shortcontents = \summarycontents
\ifpdf
\pdfcatalog{/PageMode /UseOutlines}%
\fi
% These macros generate individual entries in the table of contents.
% The first argument is the chapter or section name.
% The last argument is the page number.
@@ -3617,7 +3862,7 @@ width0pt\relax} \fi
% See comments in \dochapentry re vbox and related settings
\def\shortchapentry#1#2#3{%
\tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno{#3}}%
\tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}%
}
% Typeset the label for a chapter or appendix for the short contents.
@@ -3625,10 +3870,14 @@ width0pt\relax} \fi
% We could simplify the code here by writing out an \appendixentry
% command in the toc file for appendices, instead of using \chapentry
% for both, but it doesn't seem worth it.
\setbox0 = \hbox{\shortcontrm \putwordAppendix }
\newdimen\shortappendixwidth \shortappendixwidth = \wd0
%
\newdimen\shortappendixwidth
%
\def\shortchaplabel#1{%
% Compute width of word "Appendix", may change with language.
\setbox0 = \hbox{\shortcontrm \putwordAppendix}%
\shortappendixwidth = \wd0
%
% We typeset #1 in a box of constant width, regardless of the text of
% #1, so the chapter titles will come out aligned.
\setbox0 = \hbox{#1}%
@@ -3643,7 +3892,7 @@ width0pt\relax} \fi
}
\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno{#2}}}
\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}}
% Sections.
\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
@@ -3670,24 +3919,24 @@ width0pt\relax} \fi
\penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
\begingroup
\chapentryfonts
\tocentry{#1}{\dopageno{#2}}%
\tocentry{#1}{\dopageno\bgroup#2\egroup}%
\endgroup
\nobreak\vskip .25\baselineskip plus.1\baselineskip
}
\def\dosecentry#1#2{\begingroup
\secentryfonts \leftskip=\tocindent
\tocentry{#1}{\dopageno{#2}}%
\tocentry{#1}{\dopageno\bgroup#2\egroup}%
\endgroup}
\def\dosubsecentry#1#2{\begingroup
\subsecentryfonts \leftskip=2\tocindent
\tocentry{#1}{\dopageno{#2}}%
\tocentry{#1}{\dopageno\bgroup#2\egroup}%
\endgroup}
\def\dosubsubsecentry#1#2{\begingroup
\subsubsecentryfonts \leftskip=3\tocindent
\tocentry{#1}{\dopageno{#2}}%
\tocentry{#1}{\dopageno\bgroup#2\egroup}%
\endgroup}
% Final typesetting of a toc entry; we use the same \entry macro as for
@@ -3715,6 +3964,7 @@ width0pt\relax} \fi
\message{environments,}
% @foo ... @end foo.
% Since these characters are used in examples, it should be an even number of
% \tt widths. Each \tt character is 1en, so two makes it 1em.
@@ -3964,7 +4214,7 @@ width0pt\relax} \fi
\def\smalllispx{\begingroup
\def\Esmalllisp{\nonfillfinish\endgroup}%
\def\Esmallexample{\nonfillfinish\endgroup}%
\indexfonts
\smallfonts
\lisp
}
@@ -3980,7 +4230,7 @@ width0pt\relax} \fi
%
\def\smalldisplayx{\begingroup
\def\Esmalldisplay{\nonfillfinish\endgroup}%
\indexfonts \rm
\smallfonts \rm
\display
}
@@ -3997,7 +4247,7 @@ width0pt\relax} \fi
%
\def\smallformatx{\begingroup
\def\Esmallformat{\nonfillfinish\endgroup}%
\indexfonts \rm
\smallfonts \rm
\format
}
@@ -4038,8 +4288,9 @@ width0pt\relax} \fi
\message{defuns,}
% Define formatter for defuns
% First, allow user to change definition object font (\df) internally
% @defun etc.
% Allow user to change definition object font (\df) internally
\def\setdeffont #1 {\csname DEF#1\endcsname}
\newskip\defbodyindent \defbodyindent=.4in
@@ -4166,23 +4417,39 @@ width0pt\relax} \fi
\exdentamount=\defbodyindent
\begingroup\obeylines\activeparens\spacesplit{#3{#4}}}
% @deftypemethod has an extra argument that nothing else does. Sigh.
% Used for @deftypemethod and @deftypeivar.
% #1 is the \E... control sequence to end the definition (which we define).
% #2 is the \...x control sequence for consecutive fns (which we define).
% #3 is the control sequence to call to resume processing.
% #4, delimited by the space, is the class name.
% #4, delimited by a space, is the class name.
% #5 is the method's return type.
%
\def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV %
\medbreak %
% Define the end token that this defining construct specifies
% so that it will exit this group.
\def#1{\endgraf\endgroup\medbreak}%
\def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}%
\parindent=0in
\advance\leftskip by \defbodyindent
\exdentamount=\defbodyindent
\begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}}
\def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV
\medbreak
\def#1{\endgraf\endgroup\medbreak}%
\def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}%
\parindent=0in
\advance\leftskip by \defbodyindent
\exdentamount=\defbodyindent
\begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}}
% Used for @deftypeop. The change from \deftypemethparsebody is an
% extra argument at the beginning which is the `category', instead of it
% being the hardwired string `Method' or `Instance Variable'. We have
% to account for this both in the \...x definition and in parsing the
% input at hand. Thus also need a control sequence (passed as #5) for
% the \E... definition to assign the category name to.
%
\def\deftypeopparsebody#1#2#3#4#5 #6 {\begingroup\inENV
\medbreak
\def#1{\endgraf\endgroup\medbreak}%
\def#2##1 ##2 ##3 {%
\def#4{##1}%
\begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}%
\parindent=0in
\advance\leftskip by \defbodyindent
\exdentamount=\defbodyindent
\begingroup\obeylines\activeparens\spacesplit{#3{#5}{#6}}}
\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV %
\medbreak %
@@ -4293,12 +4560,13 @@ width0pt\relax} \fi
% First, define the processing that is wanted for arguments of \defun
% Use this to expand the args and terminate the paragraph they make up
\def\defunargs #1{\functionparens \sl
\def\defunargs#1{\functionparens \sl
% Expand, preventing hyphenation at `-' chars.
% Note that groups don't affect changes in \hyphenchar.
\hyphenchar\tensl=0
% Set the font temporarily and use \font in case \setfont made \tensl a macro.
{\tensl\hyphenchar\font=0}%
#1%
\hyphenchar\tensl=45
{\tensl\hyphenchar\font=45}%
\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi%
\interlinepenalty=10000
\advance\rightskip by 0pt plus 1fil
@@ -4397,13 +4665,29 @@ width0pt\relax} \fi
\def\defop #1 {\def\defoptype{#1}%
\defopparsebody\Edefop\defopx\defopheader\defoptype}
%
\def\defopheader #1#2#3{%
\def\defopheader#1#2#3{%
\dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index
\begingroup\defname {#2}{\defoptype\ \putwordon\ #1}%
\defunargs {#3}\endgroup %
}
% @deftypemethod CLASS RETURN-TYPE METHOD ARG...
% @deftypeop CATEGORY CLASS TYPE OPERATION ARG...
%
\def\deftypeop #1 {\def\deftypeopcategory{#1}%
\deftypeopparsebody\Edeftypeop\deftypeopx\deftypeopheader
\deftypeopcategory}
%
% #1 is the class name, #2 the data type, #3 the operation name, #4 the args.
\def\deftypeopheader#1#2#3#4{%
\dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
\begingroup
\defname{\defheaderxcond#2\relax$$$#3}
{\deftypeopcategory\ \putwordon\ \code{#1}}%
\deftypefunargs{#4}%
\endgroup
}
% @deftypemethod CLASS TYPE METHOD ARG...
%
\def\deftypemethod{%
\deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader}
@@ -4552,6 +4836,7 @@ width0pt\relax} \fi
\def\deftypefunx#1 {\errmessage{@deftypefunx in invalid context}}
\def\deftypeivarx#1 {\errmessage{@deftypeivarx in invalid context}}
\def\deftypemethodx#1 {\errmessage{@deftypemethodx in invalid context}}
\def\deftypeopx#1 {\errmessage{@deftypeopx in invalid context}}
\def\deftypevarx#1 {\errmessage{@deftypevarx in invalid context}}
\def\deftypevrx#1 {\errmessage{@deftypevrx in invalid context}}
\def\defunx#1 {\errmessage{@defunx in invalid context}}
@@ -4839,10 +5124,19 @@ width0pt\relax} \fi
% @alias.
\def\alias#1=#2{\gdef#1{#2}}
% We need some trickery to remove the optional spaces around the equal
% sign. Just make them active and then expand them all to nothing.
\def\alias{\begingroup\obeyspaces\parsearg\aliasxxx}
\def\aliasxxx #1{\aliasyyy#1\relax}
\def\aliasyyy #1=#2\relax{\ignoreactivespaces
\edef\next{\global\let\expandafter\noexpand\csname#1\endcsname=%
\expandafter\noexpand\csname#2\endcsname}%
\expandafter\endgroup\next}
\message{cross references,}
% @xref etc.
\newwrite\auxfile
\newif\ifhavexrefs % True if xref values are known.
@@ -4885,20 +5179,10 @@ width0pt\relax} \fi
% @anchor{NAME} -- define xref target at arbitrary point.
%
{ \catcode`\@ = 11
% From latex.ltx, to make @anchor truely invisible.
\newdimen\@savsk
\newcount\@savsf
\gdef\@bsphack{\relax
\ifhmode \@savsk\lastskip \@savsf\spacefactor \fi
}
\gdef\@esphack{\relax
\ifhmode \spacefactor\@savsf
\ifdim\@savsk>\z@ \ignorespaces \fi
\fi
}
\gdef\anchor#1{\@bsphack \setref{#1}{Ynothing}\@esphack}
}
\newcount\savesfregister
\gdef\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
\gdef\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
\gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
% \setref{NAME}{SNT} defines a cross-reference point NAME, namely
% NAME-title, NAME-pg, and NAME-SNT. Called from \foonoderef. We have
@@ -4908,6 +5192,7 @@ width0pt\relax} \fi
%
\def\setref#1#2{{%
\indexdummies
\pdfmkdest{#1}%
\dosetq{#1-title}{Ytitle}%
\dosetq{#1-pg}{Ypagenumber}%
\dosetq{#1-snt}{#2}%
@@ -4922,6 +5207,7 @@ width0pt\relax} \fi
\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
\def\ref#1{\xrefX[#1,,,,,,,]}
\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
\unsepspaces
\def\printedmanual{\ignorespaces #5}%
\def\printednodename{\ignorespaces #3}%
\setbox1=\hbox{\printedmanual}%
@@ -4955,6 +5241,19 @@ width0pt\relax} \fi
% are best written with fairly long node names, containing hyphens, this
% is a loss. Therefore, we give the text of the node name again, so it
% is as if TeX is seeing it for the first time.
\ifpdf
\leavevmode
\getfilename{#4}%
\ifnum\filenamelength>0
\startlink attr{/Border [0 0 0]}%
goto file{\the\filename.pdf} name{#1@}%
\else
\startlink attr{/Border [0 0 0]}%
goto name{#1@}%
\fi
\linkcolor
\fi
%
\ifdim \wd1 > 0pt
\putwordsection{} ``\printednodename'' \putwordin{} \cite{\printedmanual}%
\else
@@ -4974,6 +5273,7 @@ width0pt\relax} \fi
% page 3
\turnoffactive \putwordpage\tie\refx{#1-pg}{}%
\fi
\endlink
\endgroup}
% \dosetq is the interface for calls from other macros
@@ -5210,6 +5510,8 @@ width0pt\relax} \fi
\xspaceskip\z@skip
\parindent\defaultparindent
%
\smallfonts \rm
%
% Hang the footnote text off the number.
\hang
\textindent{\thisfootno}%
@@ -5224,7 +5526,7 @@ width0pt\relax} \fi
\else\let\next\f@t\fi \next}
\def\f@@t{\bgroup\aftergroup\@foot\let\next}
\def\f@t#1{#1\@foot}
\def\@foot{\strut\egroup}
\def\@foot{\strut\par\egroup}
}%end \catcode `\@=11
@@ -5319,7 +5621,9 @@ width0pt\relax} \fi
% #2 is (optional) width, #3 is (optional) height.
% #4 is just the usual extra ignored arg for parsing this stuff.
\def\imagexxx#1,#2,#3,#4\finish{%
\ifx\pdfoutput\undefined
\ifpdf
\centerline{\dopdfimage{#1}{#2}{#3}}%
\else
% \epsfbox itself resets \epsf?size at each figure.
\setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
\setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
@@ -5340,13 +5644,12 @@ width0pt\relax} \fi
\epsfbox{#1.eps}%
\fi
\endgroup
\else
\centerline{\pdfimage #1.pdf}%
\fi
}
\message{localization,}
% and i18n.
% @documentlanguage is usually given very early, just after
% @setfilename. If done too late, it may not override everything
@@ -5406,8 +5709,7 @@ should work if nowhere else does.}
% Allow us to assign to \emergencystretch anyway.
\def\emergencystretch{\dimen0}%
\else
\emergencystretch = \hsize
\divide\emergencystretch by 40
\emergencystretch = .15\hsize
\fi
}
@@ -5517,6 +5819,7 @@ should work if nowhere else does.}
%
\letterpaper
\message{and turning on texinfo input format.}
% Define macros to output various characters with catcode for normal text.
@@ -5684,6 +5987,6 @@ should work if nowhere else does.}
@c eval: (add-hook 'write-file-hooks 'time-stamp)
@c page-delimiter: "^\\\\message"
@c time-stamp-start: "def\\\\texinfoversion{"
@c time-stamp-format: "%:y-%02m-%02d.%H"
@c time-stamp-format: "%:y-%02m-%02d.%02H"
@c time-stamp-end: "}"
@c End:

View File

@@ -21,7 +21,7 @@
START-INFO-DIR-ENTRY
* Text utilities: (textutils). GNU text utilities.
* cat: (textutils)cat invocation. Concatenate and write files.
* cksum: (textutils)cksum invocation. Print @sc{POSIX} CRC checksum.
* cksum: (textutils)cksum invocation. Print @sc{posix} CRC checksum.
* comm: (textutils)comm invocation. Compare sorted files by line.
* csplit: (textutils)csplit invocation. Split by context.
* cut: (textutils)cut invocation. Print selected parts of lines.
@@ -44,7 +44,7 @@ START-INFO-DIR-ENTRY
* tsort: (textutils)tsort invocation. Topological sort.
* tr: (textutils)tr invocation. Translate characters.
* unexpand: (textutils)unexpand invocation. Convert spaces to tabs.
* uniq: (textutils)uniq invocation. Uniqify files.
* uniq: (textutils)uniq invocation. Uniquify files.
* wc: (textutils)wc invocation. Byte, word, and line counts.
END-INFO-DIR-ENTRY
@end format
@@ -161,7 +161,7 @@ Summarizing files
Operating on sorted files
* sort invocation:: Sort text files.
* uniq invocation:: Uniqify files.
* uniq invocation:: Uniquify files.
* comm invocation:: Compare two sorted files line by line.
* ptx invocation:: Produce a permuted index of file contents.
* tsort invocation:: Topological sort.
@@ -220,7 +220,7 @@ involved in improving this manual. The entire GNU community will
benefit.
@cindex POSIX.2
The GNU text utilities are mostly compatible with the @sc{POSIX.2} standard.
The GNU text utilities are mostly compatible with the @sc{posix.2} standard.
@c This paragraph appears in all of fileutils.texi, textutils.texi, and
@c sh-utils.texi too -- so be sure to keep them consistent.
@@ -317,18 +317,18 @@ Equivalent to @samp{-vET}.
@opindex -B
@opindex --binary
@cindex binary and text I/O in cat
On MS-DOS and MS-Windows only, causes @code{cat} read and write the
On MS-DOS and MS-Windows only, read and write the
files in binary mode. By default, @code{cat} on MS-DOS/MS-Windows uses
binary mode only when standard output is redirected to a file or a pipe;
this option overrides that. Binary file I/O is used so that the files
retain their format (Unix text as opposed to DOS text and binary),
because @code{cat} is frequently used as file copying program. Some
because @code{cat} is frequently used as a file-copying program. Some
options (see below) cause @code{cat} read and write files in text mode
because then the original file contents aren't important (e.g., when
lines are numbered by @code{cat}, or when line endings should be
marked). This is so these options work as DOS/Windows users would
expect; for example, DOS-style text files have their lines end with
@key{CR-LF} pair of characters which won't be processed as an empty line
the CR-LF pair of characters which won't be processed as an empty line
by @samp{-b} unless the file is read in text mode.
@item -b
@@ -375,7 +375,7 @@ Equivalent to @samp{-vT}.
@itemx --show-tabs
@opindex -T
@opindex --show-tabs
Display @key{TAB} characters as @samp{^I}.
Display TAB characters as @samp{^I}.
@item -u
@opindex -u
@@ -385,10 +385,10 @@ Ignored; for Unix compatibility.
@itemx --show-nonprinting
@opindex -v
@opindex --show-nonprinting
Display control characters except for @key{LFD} and @key{TAB} using
Display control characters except for LFD and TAB using
@samp{^} notation and precede characters that have the high bit set with
@samp{M-}. On MS-DOS and MS-Windows, this option causes @code{cat} to
read files and standard input in DOS binary mode, so the @key{CR}
read files and standard input in DOS binary mode, so the CR
characters at the end of each line are also visible.
@end table
@@ -583,7 +583,7 @@ Do not reset the line number at the start of a logical page.
@opindex -s
@opindex --number-separator
Separate the line number from the text line in the output with
@var{string} (default is @key{TAB}).
@var{string} (default is the TAB character).
@item -v @var{number}
@itemx --starting-line-number=@var{number}
@@ -672,7 +672,7 @@ Output at most @var{bytes} bytes of the input. Prefixes and suffixes on
@opindex --strings
@cindex string constants, outputting
Instead of the normal output, output only @dfn{string constants}: at
least @var{n} (3 by default) consecutive ASCII graphic characters,
least @var{n} (3 by default) consecutive @sc{ascii} graphic characters,
followed by a null (zero) byte.
@item -t @var{type}
@@ -687,14 +687,14 @@ of each output line using each of the data types that you specified,
in the order that you specified.
Adding a trailing ``z'' to any type specification appends a display
of the ASCII character representation of the printable characters
of the @sc{ascii} character representation of the printable characters
to the output line generated by the type specification.
@table @samp
@item a
named character,
@item c
ASCII character or backslash escape,
@sc{ascii} character or backslash escape,
@item d
signed decimal,
@item f
@@ -762,8 +762,8 @@ is not given at all, the default is 16.
@end table
The next several options map the old, pre-@sc{POSIX} format specification
options to the corresponding @sc{POSIX} format specs. GNU @code{od} accepts
The next several options map the old, pre-@sc{posix} format specification
options to the corresponding @sc{posix} format specs. GNU @code{od} accepts
any combination of old- and new-style options. Format specification
options accumulate.
@@ -779,7 +779,7 @@ Output as octal bytes. Equivalent to @samp{-toC}.
@item -c
@opindex -c
Output as ASCII characters or backslash escapes. Equivalent to
Output as @sc{ascii} characters or backslash escapes. Equivalent to
@samp{-tc}.
@item -d
@@ -1065,7 +1065,7 @@ Double space the output.
@opindex --expand-tabs
@cindex input tabs
Expand @var{tab}s to spaces on input. Optional argument @var{in-tabchar} is
the input tab character (default is @key{TAB}). Second optional
the input tab character (default is the TAB character). Second optional
argument @var{in-tabwidth} is the input tab character's width (default
is 8).
@@ -1097,7 +1097,7 @@ indispensable.
@opindex --output-tabs
@cindex output tabs
Replace spaces with @var{tab}s on output. Optional argument @var{out-tabchar}
is the output tab character (default is @key{TAB}). Second optional
is the output tab character (default is the TAB character). Second optional
argument @var{out-tabwidth} is the output tab character's width (default
is 8).
@@ -1151,7 +1151,7 @@ line of the input file (not the 1st line printed, compare the
@samp{--page} option and @samp{-N} option).
Optional argument @var{number-separator} is the character appended to
the line number to separate it from the text followed. The default
separator is a @key{TAB}. In a strict sense a @key{TAB} is always
separator is the TAB character. In a strict sense a TAB is always
printed with single column output only. The @var{TAB}-width varies
with the @var{TAB}-position, e.g. with the left @var{margin} specified
by @samp{-o} option. With multicolumn output priority is given to
@@ -1192,7 +1192,7 @@ opened. (The exit status will still be nonzero, however.)
@opindex -s
@opindex --separator
Separate columns by a single character @var{char}. Default for @var{char}
is the @key{TAB} character without @samp{-w} and @samp{no character} with
is the TAB character without @samp{-w} and @samp{no character} with
@samp{-w}. Without @samp{-s} default separator @samp{space} is set.
@samp{-s[char]} turns off line truncation of all three column options
(@samp{-COLUMN}|@samp{-a -COLUMN}|@samp{-m}) except @samp{-w} is set.
@@ -1203,16 +1203,19 @@ That is a @var{posix} compliant formulation.
@itemx --sep-string[=@var{string}]
@opindex -S
@opindex --sep-string
Separate columns by any string @var{string}. The @samp{-S} option doesn't
react upon the @samp{-W/-w} option (unlike @samp{-s} option does). It
does not affect line truncation or column alignment. A separator is
defined, nothing else. Without @samp{-S}: default separator @key{TAB}
is used with @samp{-J} and @samp{space} otherwise (same as @samp{-S" "}).
With @samp{-S} only: no separator is used, same as @samp{-S""}. Quotes
should be used with blanks and some shell active characters. Some of the
@code{pr} options don't allow the option letter to be separated from its
argument. @samp{-S/-s} is one of them. Don't use @samp{-S "STRING"}.
That's @var{posix} compliant.
Use @var{string} to separate output columns. The @samp{-S} option doesn't
affect the @samp{-W/-w} option, unlike the @samp{-s} option which does. It
does not affect line truncation or column alignment.
Without @samp{-S}, and with @samp{-J}, @code{pr} uses the default output
separator, TAB.
Without @samp{-S} or @samp{-J}, @code{pr} uses a @samp{space}
(same as @samp{-S" "}).
Using @samp{-S} with no @var{string} is equivalent to @samp{-S""}.
Note that for some of @code{pr}'s options the single-letter option
character must be followed immediately by any corresponding argument;
there may not be any intervening white space.
@samp{-S/-s} is one of them. Don't use @samp{-S "STRING"}.
@sc{posix} requires this.
@item -t
@itemx --omit-header
@@ -1222,7 +1225,7 @@ Do not print the usual header [and footer] on each page, and do not fill
out the bottom of pages (with blank lines or a form feed). No page
structure is produced, but form feeds set in the input files are retained.
The predefined pagination is not changed. @samp{-t} or @samp{-T} may be
useful together with other options; e.g.: @samp{-t -e4}, expand @key{TAB}
useful together with other options; e.g.: @samp{-t -e4}, expand TAB characters
in the input file to 4 spaces but don't make any other changes. Use of
@samp{-t} overrides @samp{-h}.
@@ -1483,13 +1486,13 @@ gets output from a different file, to indicate which file that output is
from.
There are two ways to specify how you'd like to track files with this option,
but that difference is noticeable only when a followed file is removed.
but that difference is noticeable only when a followed file is removed or
renamed.
If you'd like to continue to track the end of a growing file even after
it has been unlinked, use @samp{--follow=descriptor}. This is the default
behavior, but it is not useful if you're tracking a log file that may be
rotated (removed and reopened). In that case, use @samp{--follow=name} to
track the named file by reopening it periodically
@c FIXME: cross reference to the new option name
rotated (removed or renamed, then reopened). In that case, use
@samp{--follow=name} to track the named file by reopening it periodically
to see if it has been removed and recreated by some other program.
No matter which method you use, if the tracked file is determined to have
@@ -1499,16 +1502,71 @@ and resumes tracking the end of the file from the newly-determined endpoint.
When a file is removed, @code{tail}'s behavior depends on whether it is
following the name or the descriptor. When following by name, tail can
detect that a file has been removed and gives a message to that effect,
and if @samp{--allow-missing} has been specified it will continue checking
and if @samp{--retry} has been specified it will continue checking
periodically to see if the file reappears.
When following a descriptor, tail does not detect that the file has
been unlinked and issues no message.
been unlinked or renamed and issues no message; even though the file
may no longer be accessible via its original name, it may still be
growing.
The option values @samp{descriptor} and @samp{name} may be specified only
with the long form of the option, not with @samp{-f}.
@c FIXME-describe --allow-missing [useful only with --follow]
@c FIXME-describe --sleep-interval [useful only with --follow]
@itemx --retry
@opindex --retry
This option is meaningful only when following by name.
Without this option, when tail encounters a file that doesn't
exist or is otherwise inaccessible, it reports that fact and
never checks it again.
@itemx --sleep-interval=@var{n}
@opindex --sleep-interval
Change the number of seconds to wait between iterations (the default is 1).
During one iteration, every specified file is checked to see if it has
changed size.
@itemx --pid=@var{pid}
@opindex --pid
When following by name or by descriptor, you may specify the process ID,
@var{pid}, of the sole writer of all @var{file} arguments. Then, shortly
after that process terminates, tail will also terminate. This will
work properly only if the writer and the tailing process are running on
the same machine. For example, to save the output of a build in a file
and to watch the file grow, if you invoke @code{make} and @code{tail}
like this then the tail process will stop when your build completes.
Without this option, you would have had to kill the @code{tail -f}
process yourself.
@example
$ make >& makerr & tail --pid=$! -f makerr
@end example
If you specify a @var{pid} that is not in use or that does not correspond
to the process that is writing to the tailed files, then @code{tail}
may terminate long before any @var{file}s stop growing or it may not
terminate until long after the real writer has terminated.
Note that @samp{--pid} cannot be supported on some systems; @code{tail}
will print a warning if this is the case.
@itemx --max-consecutive-size-changes=@var{n}
@opindex --max-consecutive-size-changes
This option is meaningful only when following by name.
Use it to control how long @code{tail} follows the descriptor of a file
that continues growing at a rapid pace even after it is deleted or renamed.
After detecting @var{n} consecutive size changes for a file,
@code{open}/@code{fstat} the file to determine if that file name is
still associated with the same device/inode-number pair as before.
See the output of @code{tail --help} for the default value.
@itemx --max-unchanged-stats=@var{n}
@opindex --max-unchanged-stats
When tailing a file by name, if there have been this many consecutive
iterations for which the size has remained the same, then
@code{open}/@code{fstat} the file to determine if that file name is
still associated with the same device/inode-number pair as before.
When following a log file that is rotated, this is approximately the
number of seconds between when tail prints the last pre-rotation lines
and when it prints the lines that have accumulated in the new log file.
See the output of @code{tail --help} for the default value.
This option is meaningful only when following by name.
@itemx -n @var{n}
@itemx --lines=@var{n}
@@ -1762,6 +1820,11 @@ given as an argument, it prints the file name following the counts. If
more than one @var{file} is given, @code{wc} prints a final line
containing the cumulative counts, with the file name @file{total}. The
counts are printed in this order: newlines, words, bytes.
By default, each count is output right-justified in a 7-byte field with
one space between fields so that the numbers and file names line up nicely
in columns. However, POSIX requires that there be exactly one space
separating columns. You can make @code{wc} use the POSIX-mandated
output format by setting the @env{POSIXLY_CORRECT} environment variable.
By default, @code{wc} prints all three counts. Options can specify
that only certain counts be printed. Options do not undo others
@@ -1884,7 +1947,7 @@ by comparing the @code{cksum} output for the received files with the
@code{cksum} output for the original files (typically given in the
distribution).
The CRC algorithm is specified by the @sc{POSIX.2} standard. It is not
The CRC algorithm is specified by the @sc{posix.2} standard. It is not
compatible with the BSD or System V @code{sum} algorithms (see the
previous section); it is more robust.
@@ -1998,7 +2061,7 @@ These commands work with (or produce) sorted files.
@menu
* sort invocation:: Sort text files.
* uniq invocation:: Uniqify files.
* uniq invocation:: Uniquify files.
* comm invocation:: Compare two sorted files line by line.
* ptx invocation:: Produce a permuted index of file contents.
* tsort invocation:: Topological sort.
@@ -2043,18 +2106,21 @@ works.
@end table
@vindex LC_COLLATE
A pair of lines is compared as follows: if any key fields have been
specified, @code{sort} compares each pair of fields, in the order
specified on the command line, according to the associated ordering
options, until a difference is found or no fields are left.
Unless otherwise specified, all comparisons use the character
collating sequence specified by the @env{LC_COLLATE} locale.
If any of the global options @samp{Mbdfinr} are given but no key fields
are specified, @code{sort} compares the entire lines according to the
global options.
Finally, as a last resort when all keys compare equal (or if no
ordering options were specified at all), @code{sort} compares the lines
byte by byte in machine collating sequence. The last resort comparison
ordering options were specified at all), @code{sort} compares the entire
lines. The last resort comparison
honors the @samp{-r} global option. The @samp{-s} (stable) option
disables this last-resort comparison so that lines in which all fields
compare equal are left in their original relative order. If no fields
@@ -2063,7 +2129,12 @@ or global options are specified, @samp{-s} has no effect.
GNU @code{sort} (as specified for all GNU utilities) has no limits on
input line length or restrictions on bytes allowed within lines. In
addition, if the final byte of an input file is not a newline, GNU
@code{sort} silently supplies one.
@code{sort} silently supplies one. A line's trailing newline is not
part of the line for comparison purposes.@footnote{@sc{posix}.2-1992
requires that the trailing newline be part of the comparison, and some
@code{sort} implementations obey this requirement, but it is widely
considered to be a bug in the standard and the next version of
@sc{posix}.2 will likely remove this requirement.}
Upon any error, @code{sort} exits with a status of @samp{2}.
@@ -2073,11 +2144,14 @@ value as the directory for temporary files instead of @file{/tmp}. The
@samp{-T @var{tempdir}} option in turn overrides the environment
variable.
@vindex LC_CTYPE
The following options affect the ordering of output lines. They may be
specified globally or as part of a specific key field. If no key
fields are specified, global options apply to comparison of entire
lines; otherwise the global options are inherited by key fields that do
not specify any special options of their own.
not specify any special options of their own. The @samp{-b}, @samp{-d},
@samp{-f} and @samp{-i} options classify characters according to
the @env{LC_CTYPE} locale.
@table @samp
@@ -2102,40 +2176,59 @@ sorting so that, for example, @samp{b} and @samp{B} sort as equal.
@item -g
@opindex -g
@cindex general numeric sort
Sort numerically, but use strtod(3) to arrive at the numeric values.
Sort numerically, using the standard C function @code{strtod} to convert
a prefix of each line to a double-precision floating point number.
This allows floating point numbers to be specified in scientific notation,
like @code{1.0e-34} and @code{10e100}. Use this option only if there
is no alternative; it is much slower than @samp{-n} and numbers with
too many significant digits will be compared as if they had been
truncated. In addition, numbers outside the range of representable
double precision floating point numbers are treated as if they were
zeroes; overflow and underflow are not reported.
like @code{1.0e-34} and @code{10e100}.
Do not report overflow, underflow, or conversion errors.
Use the following collating sequence:
@itemize @bullet
@item
Lines that do not start with numbers (all considered to be equal).
@item
NaNs (``Not a Number'' values, in IEEE floating point arithmetic)
in a consistent but machine-dependent order.
@item
Minus infinity.
@item
Finite numbers in ascending numeric order (with @math{-0} and @math{+0} equal).
@item
Plus infinity.
@end itemize
Use this option only if there is no alternative; it is much slower than
@samp{-n} and it can lose information when converting to floating point.
@item -i
@opindex -i
@cindex unprintable characters, ignoring
Ignore characters outside the printable ASCII range 040-0176 octal
(inclusive) when sorting.
Ignore unprintable characters.
@item -M
@opindex -M
@cindex months, sorting by
@vindex LC_TIME
An initial string, consisting of any amount of whitespace, followed
by three letters abbreviating a month name, is folded to UPPER case and
by a month name abbreviation, is folded to UPPER case and
compared in the order @samp{JAN} < @samp{FEB} < @dots{} < @samp{DEC}.
Invalid names compare low to valid names.
Invalid names compare low to valid names. The @env{LC_TIME} locale
determines the month spellings.
@item -n
@opindex -n
@cindex numeric sort
@vindex LC_NUMERIC
Sort numerically: the number begins each line; specifically, it consists
of optional whitespace, an optional @samp{-} sign, and zero or more
digits, optionally followed by a decimal point and zero or more digits.
digits possibly separated by thousands separators, optionally followed
by a radix character and zero or more digits. The @env{LC_NUMERIC}
locale specifies the radix character and thousands separator.
@code{sort -n} uses what might be considered an unconventional method
to compare strings representing floating point numbers. Rather than
first converting each string to the C @code{double} type and then
comparing those values, sort aligns the decimal points in the two
comparing those values, sort aligns the radix characters in the two
strings and compares the strings a character at a time. One benefit
of using this approach is its speed. In practice this is much more
efficient than performing the two corresponding string-to-double (or even
@@ -2180,7 +2273,7 @@ following.
@item -u
@opindex -u
@cindex uniqifying output
@cindex uniquifying output
For the default case or the @samp{-m} option, only output the first
of a sequence of lines that compare equal. For the @samp{-c} option,
check that no pair of consecutive lines compares equal.
@@ -2188,16 +2281,18 @@ check that no pair of consecutive lines compares equal.
@item -k @var{pos1}[,@var{pos2}]
@opindex -k
@cindex sort field
The recommended, @sc{POSIX}, option for specifying a sort field. The field
The recommended, @sc{posix}, option for specifying a sort field. The field
consists of the part of the line between @var{pos1} and @var{pos2} (or the
end of the line, if @var{pos2} is omitted), inclusive. Fields and
character positions are numbered starting with 1. See below.
end of the line, if @var{pos2} is omitted), @emph{inclusive}.
Fields and character positions are numbered starting with 1.
So to sort on the second field, you'd use @samp{-k 2,2}
See below for more examples.
@item -z
@opindex -z
@cindex sort zero-terminated lines
Treat the input as a set of lines, each terminated by a zero byte (@sc{ASCII}
@sc{NUL} (Null) character) instead of a @sc{ASCII} @sc{LF} (Line Feed.)
Treat the input as a set of lines, each terminated by a zero byte (@sc{ascii}
@sc{nul} (Null) character) instead of an @sc{ascii} @sc{lf} (Line Feed).
This option can be useful in conjunction with @samp{perl -0} or
@samp{find -print0} and @samp{xargs -0} which do the same in order to
reliably handle arbitrary pathnames (even those which contain Line Feed
@@ -2217,9 +2312,9 @@ options}.
Historical (BSD and System V) implementations of @code{sort} have
differed in their interpretation of some options, particularly
@samp{-b}, @samp{-f}, and @samp{-n}. GNU sort follows the @sc{POSIX}
@samp{-b}, @samp{-f}, and @samp{-n}. GNU sort follows the @sc{posix}
behavior, which is usually (but not always!) like the System V behavior.
According to @sc{POSIX}, @samp{-n} no longer implies @samp{-b}. For
According to @sc{posix}, @samp{-n} no longer implies @samp{-b}. For
consistency, @samp{-M} has been changed in the same way. This may
affect the meaning of character positions in field specifications in
obscure cases. The only fix is to add an explicit @samp{-b}.
@@ -2244,7 +2339,7 @@ from the global options it will be attached to both.
Keys may span multiple fields.
Here are some examples to illustrate various combinations of options.
In them, the @sc{POSIX} @samp{-k} option is used to specify sort keys rather
In them, the @sc{posix} @samp{-k} option is used to specify sort keys rather
than the obsolete @samp{+@var{pos1}-@var{pos2}} syntax.
@itemize @bullet
@@ -2256,12 +2351,13 @@ Sort in descending (reverse) numeric order.
sort -nr
@end example
@item
Sort alphabetically, omitting the first and second fields.
This uses a single key composed of the characters beginning
at the start of field three and extending to the end of each line.
@example
sort -k3
sort -k 3
@end example
@item
@@ -2303,6 +2399,7 @@ sort -t : -n -k 5b,5 -k 3,3 /etc/passwd
@item
Generate a tags file in case insensitive sorted order.
@example
find src -type f -print0 | sort -t / -z -f | xargs -0 etags --append
@end example
@@ -2340,10 +2437,10 @@ sort -t : -b -k 5,5 -k 3,3n /etc/passwd
@node uniq invocation
@section @code{uniq}: Uniqify files
@section @code{uniq}: Uniquify files
@pindex uniq
@cindex uniqify files
@cindex uniquify files
@code{uniq} writes the unique lines in the given @file{input}, or
standard input if nothing is given or for an @var{input} name of
@@ -2450,14 +2547,19 @@ standard input. Synopsis:
comm [@var{option}]@dots{} @var{file1} @var{file2}
@end example
The input files must be sorted before @code{comm} can be used.
@vindex LC_COLLATE
Before @code{comm} can be used, the input files must be sorted using the
collating sequence specified by the @env{LC_COLLATE} locale, with
trailing newlines significant. If an input file ends in a non-newline
character, a newline is silently appended. The @code{sort} command with
no options always outputs a file that is suitable input to @code{comm}.
@cindex differing lines
@cindex common lines
With no options, @code{comm} produces three column output. Column one
contains lines unique to @var{file1}, column two contains lines unique
to @var{file2}, and column three contains lines common to both files.
Columns are separated by @key{TAB}.
Columns are separated by a single TAB character.
@c FIXME: when there's an option to supply an alternative separator
@c string, append `by default' to the above sentence.
@@ -2616,7 +2718,7 @@ As it is setup now, the program assumes that the input file is coded
using 8-bit ISO 8859-1 code, also known as Latin-1 character set,
@emph{unless} if it is compiled for MS-DOS, in which case it uses the
character set of the IBM-PC. (GNU @code{ptx} is not known to work on
smaller MS-DOS machines anymore.) Compared to 7-bit ASCII, the set of
smaller MS-DOS machines anymore.) Compared to 7-bit @sc{ascii}, the set of
characters which are letters is then different, this fact alters the
behaviour of regular expression matching. Thus, the default regular
expression for a keyword allows foreign or diacriticized letters.
@@ -2905,7 +3007,7 @@ sequence @code{^\@{ @}} and @code{~\@{ @}} respectively. Other
diacriticized characters of the underlying character set produce an
appropriate @TeX{} sequence as far as possible. The other non-graphical
characters, like newline and tab, and all others characters which are
not part of ASCII, are merely changed to exactly one space, with no
not part of @sc{ascii}, are merely changed to exactly one space, with no
special attempt to compress consecutive spaces. Let me know how to
improve this special character processing for @TeX{}.
@@ -3042,14 +3144,14 @@ take up 1 character.
@opindex -f
@opindex --fields
Print only the fields listed in @var{field-list}. Fields are
separated by a @key{TAB} by default.
separated by a TAB character by default.
@item -d @var{input_delim_byte}
@itemx --delimiter=@var{input_delim_byte}
@opindex -d
@opindex --delimiter
For @samp{-f}, fields are separated in the input by the first character
in @var{input_delim_byte} (default is @key{TAB}).
in @var{input_delim_byte} (default is TAB).
@item -n
@opindex -n
@@ -3078,7 +3180,7 @@ The default is to use the input delimiter.
@cindex merging files
@code{paste} writes to standard output lines consisting of sequentially
corresponding lines of each given file, separated by @key{TAB}.
corresponding lines of each given file, separated by a TAB character.
Standard input is used for a file name of @samp{-} or if no input files
are given.
@@ -3100,11 +3202,11 @@ Paste the lines of one file at a time rather than one line from each
file.
@item -d @var{delim-list}
@itemx --delimiters @var{delim-list}
@itemx --delimiters=@var{delim-list}
@opindex -d
@opindex --delimiters
Consecutively use the characters in @var{delim-list} instead of
@key{TAB} to separate merged lines. When @var{delim-list} is
TAB to separate merged lines. When @var{delim-list} is
exhausted, start again at its beginning.
@end table
@@ -3123,10 +3225,12 @@ lines that have identical join fields. Synopsis:
join [@var{option}]@dots{} @var{file1} @var{file2}
@end example
@vindex LC_COLLATE
Either @var{file1} or @var{file2} (but not both) can be @samp{-},
meaning standard input. @var{file1} and @var{file2} should be already
sorted in increasing order (not numerically) on the join fields; unless
the @samp{-t} option is given, they should be sorted ignoring blanks at
sorted in increasing textual order on the join fields, using the
collating sequence specified by the @env{LC_COLLATE} locale. Unless
the @samp{-t} option is given, the input should be sorted ignoring blanks at
the start of the join field, as in @code{sort -b}. If the
@samp{--ignore-case} option is given, lines should be sorted without
regard to the case of characters in the join field, as in @code{sort -f}.
@@ -3187,7 +3291,7 @@ to the join field. However, when printing unpairable lines
(using either of the @samp{-a} or @samp{-v} options), there is no way
to specify the join field using @var{m.n} in @var{field-list}
if there are unpairable lines in both files.
To give @code{join} that functionality, @sc{POSIX} invented the @samp{0}
To give @code{join} that functionality, @sc{posix} invented the @samp{0}
field specification notation.
The elements in @var{field-list}
@@ -3430,7 +3534,7 @@ typically have the same length. If @var{set1} is shorter than
@var{set2}, the extra characters at the end of @var{set2} are ignored.
On the other hand, making @var{set1} longer than @var{set2} is not
portable; @sc{POSIX.2} says that the result is undefined. In this situation,
portable; @sc{posix.2} says that the result is undefined. In this situation,
BSD @code{tr} pads @var{set2} to the length of @var{set1} by repeating
the last character of @var{set2} as many times as necessary. System V
@code{tr} truncates @var{set1} to the length of @var{set2}.
@@ -3491,7 +3595,7 @@ non-alphanumeric characters to newlines, then squeezes each string
of repeated newlines into a single newline:
@example
tr -cs '[a-zA-Z0-9]' '[\n*]'
tr -cs 'a-zA-Z0-9' '[\n*]'
@end example
@item
@@ -3519,6 +3623,39 @@ cat "$@@" \
| uniq -d
@end example
@item
Deleting a small set of characters is usually straightforward. For example,
to remove all @samp{a}s, @samp{x}s, and @samp{M}s you would do this:
@example
tr -d axM
@end example
However, when @samp{-} is one of those characters, it can be tricky because
@samp{-} has special meanings. Performing the same task as above but also
removing all @samp{-} characters, we might try @code{tr -d -axM}, but
that would fail because @code{tr} would try to interpret @samp{-a} as
a command-line option. Alternatively, we could try putting the hyphen
inside the string, @code{tr -d a-xM}, but that wouldn't work either because
it would make @code{tr} interpret @code{a-x} as the range of characters
@samp{a}@dots{}@samp{x} rather than the three.
One way to solve the problem is to put the hyphen at the end of the list
of characters:
@example
tr -d axM-
@end example
More generally, use the character class notation @code{[=c=]}
with @samp{-} (or any other character) in place of the @samp{c}:
@example
tr -d '[=-=]axM'
@end example
Note how single quotes are used in the above example to protect the
square brackets from interpretation by a shell.
@end itemize
@@ -3528,7 +3665,7 @@ cat "$@@" \
@vindex POSIXLY_CORRECT
Setting the environment variable @env{POSIXLY_CORRECT} turns off the
following warning and error messages, for strict compliance with
@sc{POSIX.2}. Otherwise, the following diagnostics are issued:
@sc{posix.2}. Otherwise, the following diagnostics are issued:
@enumerate
@@ -3536,7 +3673,7 @@ following warning and error messages, for strict compliance with
When the @samp{--delete} option is given but @samp{--squeeze-repeats}
is not, and @var{set2} is given, GNU @code{tr} by default prints
a usage message and exits, because @var{set2} would not be used.
The @sc{POSIX} specification says that @var{set2} must be ignored in
The @sc{posix} specification says that @var{set2} must be ignored in
this case. Silently ignoring arguments is a bad idea.
@item
@@ -3547,7 +3684,7 @@ value 400 octal does not fit into a single byte.
@end enumerate
GNU @code{tr} does not provide complete BSD or System V compatibility.
For example, it is impossible to disable interpretation of the @sc{POSIX}
For example, it is impossible to disable interpretation of the @sc{posix}
constructs @samp{[:alpha:]}, @samp{[=c=]}, and @samp{[c*10]}. Also, GNU
@code{tr} does not delete zero bytes automatically, unlike traditional
Unix versions, which provide no way to preserve zero bytes.
@@ -3765,7 +3902,7 @@ redirected standard output of your program away from your screen.
For filter programs to work together, the format of the data has to be
agreed upon. The most straightforward and easiest format to use is simply
lines of text. Unix data files are generally just streams of bytes, with
lines delimited by the @sc{ASCII} @sc{LF} (Line Feed) character,
lines delimited by the @sc{ascii} @sc{lf} (Line Feed) character,
conventionally called a ``newline'' in the Unix literature. (This is
@code{'\n'} if you're a C programmer.) This is the format used by all
the traditional filtering programs. (Many earlier operating systems
@@ -3840,8 +3977,8 @@ yourself using when setting up fancy data plumbing. The @code{sort}
command reads and sorts each file named on the command line. It then
merges the sorted data and writes it to standard output. It will read
standard input if no files are given on the command line (thus
making it into a filter). The sort is based on the machine collating
sequence (@sc{ASCII}) or based on user-supplied ordering criteria.
making it into a filter). The sort is based on the character collating
sequence or based on user-supplied ordering criteria.
@node The uniq command
@@ -4017,7 +4154,7 @@ $ tr '[A-Z]' '[a-z]' < whats.gnu | tr -cd '[A-Za-z0-9_ \012]' | ...
The second @code{tr} command operates on the complement of the listed
characters, which are all the letters, the digits, the underscore, and
the blank. The @samp{\012} represents the newline character; it has to
be left alone. (The ASCII TAB character should also be included for
be left alone. (The @sc{ascii} tab character should also be included for
good measure in a production script.)
At this point, we have data consisting of words separated by blank space.
@@ -4063,7 +4200,7 @@ with the help of two more @code{sort} options:
@table @samp
@item -n
do a numeric sort, not an ASCII one
do a numeric sort, not a textual one
@item -r
reverse the order of the sort

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

@@ -19,3 +19,168 @@ 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:

View File

@@ -2,35 +2,52 @@
AUTOMAKE_OPTIONS = ../src/ansi2knr
noinst_LIBRARIES = libfu.a
noinst_LIBRARIES = libfetish.a
INCLUDES = -I.. -I$(srcdir) -I../intl
libfu_a_SOURCES = getdate.y posixtm.c getopt.c getopt1.c \
addext.c argmatch.c backupfile.c basename.c \
closeout.c dirname.c exclude.c filemode.c \
full-write.c human.c idcache.c \
isdir.c long-options.c makepath.c modechange.c hash.c path-concat.c \
quotearg.c safe-read.c save-cwd.c savedir.c stripslash.c userspec.c \
version-etc.c xgetcwd.c xmalloc.c xstrdup.c xstrtol.c xstrtoul.c yesno.c
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
libfu_a_LIBADD = @LIBOBJS@ @ALLOCA@
libfu_a_DEPENDENCIES = $(libfu_a_LIBADD)
libfetish_a_LIBADD = @LIBOBJS@ @ALLOCA@
libfetish_a_DEPENDENCIES = $(libfetish_a_LIBADD)
noinst_HEADERS = argmatch.h backupfile.h closeout.h \
dirname.h error.h exclude.h filemode.h fnmatch.h fsusage.h \
getdate.h getline.h getopt.h group-member.h human.h lchown.h long-options.h \
makepath.h modechange.h mountlist.h hash.h path-concat.h pathmax.h \
posixtm.h quotearg.h regex.h safe-read.h save-cwd.h savedir.h strverscmp.h \
version-etc.h xalloc.h xstrtol.h xstrtoul.h
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' $(srcdir)/xstat.in > $@-t
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' $(srcdir)/xstat.in > $@-t
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

@@ -57,13 +57,23 @@ 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@
@@ -74,42 +84,67 @@ INSTOBJEXT = @INSTOBJEXT@
INTLDEPS = @INTLDEPS@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
MVDIR_PROG = @MVDIR_PROG@
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 = libfu.a
noinst_LIBRARIES = libfetish.a
INCLUDES = -I.. -I$(srcdir) -I../intl
libfu_a_SOURCES = getdate.y posixtm.c getopt.c getopt1.c addext.c argmatch.c backupfile.c basename.c closeout.c dirname.c exclude.c filemode.c full-write.c human.c idcache.c isdir.c long-options.c makepath.c modechange.c hash.c path-concat.c quotearg.c safe-read.c save-cwd.c savedir.c stripslash.c userspec.c version-etc.c xgetcwd.c xmalloc.c xstrdup.c xstrtol.c xstrtoul.c yesno.c
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
libfu_a_LIBADD = @LIBOBJS@ @ALLOCA@
libfu_a_DEPENDENCIES = $(libfu_a_LIBADD)
libfetish_a_LIBADD = @LIBOBJS@ @ALLOCA@
libfetish_a_DEPENDENCIES = $(libfetish_a_LIBADD)
noinst_HEADERS = argmatch.h backupfile.h closeout.h dirname.h error.h exclude.h filemode.h fnmatch.h fsusage.h getdate.h getline.h getopt.h group-member.h human.h lchown.h long-options.h makepath.h modechange.h mountlist.h hash.h path-concat.h pathmax.h posixtm.h quotearg.h regex.h safe-read.h save-cwd.h savedir.h strverscmp.h version-etc.h xalloc.h xstrtol.h xstrtoul.h
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
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
@@ -121,57 +156,82 @@ CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
ANSI2KNR = ../src/ansi2knr
libfu_a_OBJECTS = getdate$U.o posixtm$U.o getopt$U.o getopt1$U.o \
addext$U.o argmatch$U.o backupfile$U.o basename$U.o closeout$U.o \
dirname$U.o exclude$U.o filemode$U.o full-write$U.o human$U.o \
idcache$U.o isdir$U.o long-options$U.o makepath$U.o modechange$U.o \
hash$U.o path-concat$U.o quotearg$U.o safe-read$U.o save-cwd$U.o \
savedir$U.o stripslash$U.o userspec$U.o version-etc$U.o xgetcwd$U.o \
xmalloc$U.o xstrdup$U.o xstrtol$U.o xstrtoul$U.o yesno$U.o
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
CFLAGS = @CFLAGS@
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)
DIST_COMMON = Makefile.am Makefile.in TODO alloca.c chown.c error.c \
error.h euidaccess.c fileblocks.c fnmatch.c fsusage.c ftruncate.c \
getdate.c getgroups.c getline.c group-member.c lchown.c lstat.c \
malloc.c memcmp.c memcpy.c memset.c mkdir.c mktime.c mountlist.c \
obstack.c obstack.h realloc.c regex.c rename.c rmdir.c rpmatch.c stat.c \
stpcpy.c strcasecmp.c strdup.c strftime.c strncasecmp.c strndup.c \
strstr.c strtol.c strtoul.c strverscmp.c utime.c
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
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/addext.P .deps/alloca.P .deps/argmatch.P \
.deps/backupfile.P .deps/basename.P .deps/chown.P .deps/closeout.P \
.deps/dirname.P .deps/error.P .deps/euidaccess.P .deps/exclude.P \
.deps/fileblocks.P .deps/filemode.P .deps/fnmatch.P .deps/fsusage.P \
.deps/ftruncate.P .deps/full-write.P .deps/getdate.P .deps/getgroups.P \
.deps/getline.P .deps/getopt.P .deps/getopt1.P .deps/group-member.P \
.deps/hash.P .deps/human.P .deps/idcache.P .deps/isdir.P .deps/lchown.P \
.deps/long-options.P .deps/lstat.P .deps/makepath.P .deps/malloc.P \
.deps/memcmp.P .deps/memcpy.P .deps/memset.P .deps/mkdir.P \
.deps/mktime.P .deps/modechange.P .deps/mountlist.P .deps/obstack.P \
.deps/path-concat.P .deps/posixtm.P .deps/quotearg.P .deps/realloc.P \
.deps/regex.P .deps/rename.P .deps/rmdir.P .deps/rpmatch.P \
.deps/safe-read.P .deps/save-cwd.P .deps/savedir.P .deps/stat.P \
.deps/stpcpy.P .deps/strcasecmp.P .deps/strdup.P .deps/strftime.P \
.deps/stripslash.P .deps/strncasecmp.P .deps/strndup.P .deps/strstr.P \
.deps/strtol.P .deps/strtoul.P .deps/strverscmp.P .deps/userspec.P \
.deps/utime.P .deps/version-etc.P .deps/xgetcwd.P .deps/xmalloc.P \
.deps/xstrdup.P .deps/xstrtol.P .deps/xstrtoul.P .deps/yesno.P
SOURCES = $(libfu_a_SOURCES)
OBJECTS = $(libfu_a_OBJECTS)
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)
all: all-redirect
.SUFFIXES:
.SUFFIXES: .S .c .o .s .y
.SUFFIXES: .c .o .y
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/Makefile
@@ -189,12 +249,6 @@ distclean-noinstLIBRARIES:
maintainer-clean-noinstLIBRARIES:
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core *.core
@@ -220,10 +274,10 @@ distclean-kr:
maintainer-clean-kr:
libfu.a: $(libfu_a_OBJECTS) $(libfu_a_DEPENDENCIES)
-rm -f libfu.a
$(AR) cru libfu.a $(libfu_a_OBJECTS) $(libfu_a_LIBADD)
$(RANLIB) libfu.a
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)
@@ -234,12 +288,18 @@ 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)
@@ -262,14 +322,24 @@ 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)
@@ -280,6 +350,8 @@ 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)
@@ -288,10 +360,20 @@ 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)
@@ -302,36 +384,48 @@ 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
rename_.c: rename.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/rename.c; then echo $(srcdir)/rename.c; else echo rename.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > rename_.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)
@@ -342,12 +436,20 @@ 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)
@@ -358,56 +460,70 @@ 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 chown_.o \
closeout_.o dirname_.o error_.o euidaccess_.o exclude_.o fileblocks_.o \
filemode_.o fnmatch_.o fsusage_.o ftruncate_.o full-write_.o getdate_.o \
getgroups_.o getline_.o getopt_.o getopt1_.o group-member_.o hash_.o \
human_.o idcache_.o isdir_.o lchown_.o long-options_.o lstat_.o \
makepath_.o malloc_.o memcmp_.o memcpy_.o memset_.o mkdir_.o mktime_.o \
modechange_.o mountlist_.o obstack_.o path-concat_.o posixtm_.o \
quotearg_.o realloc_.o regex_.o rename_.o rmdir_.o rpmatch_.o \
safe-read_.o save-cwd_.o savedir_.o stat_.o stpcpy_.o strcasecmp_.o \
strdup_.o strftime_.o stripslash_.o strncasecmp_.o strndup_.o strstr_.o \
strtol_.o strtoul_.o strverscmp_.o userspec_.o utime_.o version-etc_.o \
xgetcwd_.o xmalloc_.o xstrdup_.o xstrtol_.o xstrtoul_.o yesno_.o : \
$(ANSI2KNR)
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
getdate.h: getdate.c
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
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; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
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" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
mostlyclean-tags:
@@ -420,18 +536,11 @@ maintainer-clean-tags:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = lib
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnits lib/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir); \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
@@ -439,37 +548,123 @@ distdir: $(DISTFILES)
fi; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include $(DEP_FILES)
@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
mostlyclean-depend:
clean-depend:
distclean-depend:
-rm -rf .deps
-rm -rf $(DEPDIR)
maintainer-clean-depend:
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
@AMDEP@CCDEPMODE = @CCDEPMODE@
.c.o:
@AMDEP@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c -o $@ $<
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
info-am:
info: info-am
dvi-am:
@@ -503,9 +698,11 @@ 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:
-test -z "getdate.hgetdate.c$(BUILT_SOURCES)" || rm -f getdate.h getdate.c $(BUILT_SOURCES)
-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
@@ -541,16 +738,26 @@ 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 installdirs mostlyclean-generic \
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' $(srcdir)/xstat.in > $@-t
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' $(srcdir)/xstat.in > $@-t
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.

View File

@@ -25,6 +25,13 @@
# include <config.h>
#endif
#if HAVE_STRING_H
# include <string.h>
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifdef emacs
# include "blockinput.h"
#endif
@@ -210,6 +217,9 @@ alloca (unsigned size)
register pointer new = malloc (sizeof (header) + size);
/* Address of header. */
if (new == 0)
abort();
((header *) new)->h.next = last_alloca_header;
((header *) new)->h.deep = depth;

View File

@@ -43,7 +43,7 @@
by using the quoting style ARGMATCH_QUOTING_STYLE. Do not use
literal_quoting_style. */
#ifndef ARGMATCH_QUOTING_STYLE
# define ARGMATCH_QUOTING_STYLE escape_quoting_style
# define ARGMATCH_QUOTING_STYLE locale_quoting_style
#endif
/* The following test is to work around the gross typo in
@@ -155,21 +155,11 @@ argcasematch (const char *arg, const char *const *arglist,
void
argmatch_invalid (const char *context, const char *value, int problem)
{
enum quoting_style saved_quoting_style;
char const *format;
char const *format = (problem == -1
? _("invalid argument %s for `%s'")
: _("ambiguous argument %s for `%s'"));
/* Make sure to have a good quoting style to report errors.
literal is insane here. */
saved_quoting_style = get_quoting_style (NULL);
set_quoting_style (NULL, ARGMATCH_QUOTING_STYLE);
format = (problem == -1
? _("invalid argument `%s' for `%s'")
: _("ambiguous argument `%s' for `%s'"));
error (0, 0, format, quotearg (value), context);
set_quoting_style (NULL, saved_quoting_style);
error (0, 0, format, quotearg_style (ARGMATCH_QUOTING_STYLE, value), context);
}
/* List the valid arguments for argmatch.

View File

@@ -23,10 +23,20 @@
# define FILESYSTEM_PREFIX_LEN(Filename) 0
#endif
#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.

View File

@@ -57,8 +57,17 @@ dir_name (const char *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;
}

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,5 +1,5 @@
/* Error handler for noninteractive utilities
Copyright (C) 1990,91,92,93,94,95,96,97,98 Free Software Foundation, Inc.
Copyright (C) 1990-2000 Free Software Foundation, Inc.
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.
@@ -150,12 +150,16 @@ error (status, errnum, message, va_alist)
++error_message_count;
if (errnum)
{
#if defined HAVE_STRERROR_R || defined _LIBC
#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
@@ -228,9 +232,16 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist)
++error_message_count;
if (errnum)
{
#if defined HAVE_STRERROR_R || defined _LIBC
#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

View File

@@ -1,5 +1,5 @@
/* euidaccess -- check if effective user id can access file
Copyright (C) 1990, 1991, 1995, 1998 Free Software Foundation, Inc.
Copyright (C) 1990, 1991, 1995, 1998, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -66,6 +66,9 @@ gid_t getegid ();
#ifndef errno
extern int errno;
#endif
#ifndef __set_errno
# define __set_errno(val) errno = (val)
#endif
#if defined(EACCES) && !defined(EACCESS)
# define EACCESS EACCES
@@ -93,6 +96,7 @@ extern int errno;
#ifdef _LIBC
# define group_member __group_member
# define euidaccess __euidaccess
#else
@@ -102,15 +106,6 @@ static uid_t uid;
/* The user's real group id. */
static gid_t gid;
/* The user's effective user id. */
static uid_t euid;
/* The user's effective group id. */
static gid_t egid;
/* Nonzero if UID, GID, EUID, and EGID have valid values. */
static int have_ids = 0;
# if HAVE_GETGROUPS
int group_member ();
# else
@@ -119,6 +114,15 @@ int group_member ();
#endif
/* The user's effective user id. */
static uid_t euid;
/* The user's effective group id. */
static gid_t egid;
/* Nonzero if UID, GID, EUID, and EGID have valid values. */
static int have_ids;
/* Return 0 if the user has permission of type MODE on file PATH;
otherwise, return -1 and set `errno' to EACCESS.
@@ -133,8 +137,9 @@ euidaccess (const char *path, int mode)
int granted;
#ifdef _LIBC
uid_t uid = getuid (), euid = geteuid ();
gid_t gid = getgid (), egid = getegid ();
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)
{
@@ -144,11 +149,11 @@ euidaccess (const char *path, int mode)
euid = geteuid ();
egid = getegid ();
}
#endif
if (uid == euid && gid == egid)
/* If we are not set-uid or set-gid, access does the same. */
return access (path, mode);
#endif
if (stat (path, &stats))
return -1;
@@ -161,6 +166,16 @@ euidaccess (const char *path, int mode)
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
@@ -175,6 +190,40 @@ euidaccess (const char *path, int mode)
granted = (stats.st_mode & mode);
if (granted == mode)
return 0;
errno = EACCESS;
__set_errno (EACCESS);
return -1;
}
#undef euidaccess
#ifdef weak_alias
weak_alias (__euidaccess, euidaccess)
#endif
#ifdef TEST
# include <stdio.h>
# include <errno.h>
# include "error.h"
char *program_name;
int
main (argc, argv)
int argc;
char **argv;
{
char *file;
int mode;
int err;
program_name = argv[0];
if (argc < 3)
abort ();
file = argv[1];
mode = atoi (argv[2]);
err = euidaccess (file, mode);
printf ("%d\n", err);
if (err != 0)
error (0, errno, "%s", file);
exit (0);
}
#endif

View File

@@ -1,5 +1,5 @@
/* exclude.c -- exclude file names
Copyright 1992, 1993, 1994, 1997 Free Software Foundation, Inc.
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
@@ -54,14 +54,14 @@ new_exclude (void)
}
int
excluded_filename (struct exclude const *ex, char const *f)
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, 0) == 0)
if (fnmatch (exclude[i], f, options) == 0)
return 1;
return 0;
@@ -79,7 +79,8 @@ add_exclude (struct exclude *ex, char const *pattern)
}
int
add_exclude_file (struct exclude *ex, char const *filename, char line_end)
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;
@@ -118,7 +119,7 @@ add_exclude_file (struct exclude *ex, char const *filename, char line_end)
if (p < lim ? *p == line_end : buf < p && p[-1])
{
*p = '\0';
add_exclude (ex, pattern);
(*add_func) (ex, pattern);
pattern = p + 1;
}

View File

@@ -1,5 +1,5 @@
/* exclude.h -- declarations for excluding file names
Copyright 1992, 1993, 1994, 1997 Free Software Foundation, Inc.
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
@@ -30,5 +30,6 @@ struct exclude;
struct exclude *new_exclude PARAMS ((void));
void add_exclude PARAMS ((struct exclude *, char const *));
int add_exclude_file PARAMS ((struct exclude *, char const *, char));
int excluded_filename PARAMS ((struct exclude const *, 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, 1997, 1998 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
@@ -27,7 +27,7 @@
# include <sys/param.h>
#endif
#if !HAVE_ST_BLOCKS && !defined _POSIX_SOURCE && defined BSIZE
#if !HAVE_STRUCT_STAT_ST_BLOCKS && !defined _POSIX_SOURCE && defined BSIZE
# if HAVE_UNISTD_H
# include <unistd.h>

View File

@@ -48,6 +48,25 @@
# 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
@@ -93,22 +112,11 @@
# define S_ISDOOR(m) (((m) & S_IFMT) == S_IFDOOR)
#endif
/* Look at read, write, and execute bits in BITS and set
flags in CHARS accordingly. */
static void
rwx (short unsigned int 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 (short unsigned int bits, char *chars)
setst (mode_t bits, char *chars)
{
#ifdef S_ISUID
if (bits & S_ISUID)
@@ -157,7 +165,7 @@ setst (short unsigned int bits, char *chars)
'?' for any other file type. */
static char
ftypelet (long int bits)
ftypelet (mode_t bits)
{
#ifdef S_ISBLK
if (S_ISBLK (bits))
@@ -216,12 +224,18 @@ ftypelet (long int bits)
is given as an argument. */
void
mode_string (short unsigned int mode, char *str)
mode_string (mode_t 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]);
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);
}

View File

@@ -1,9 +1,19 @@
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
#ifndef FILEMODE_H_
void mode_string PARAMS ((short unsigned int mode, char *str));
# 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,5 +1,5 @@
/* fsusage.c -- return space usage of mounted filesystems
Copyright (C) 1991, 1992, 1996, 1998 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
@@ -184,7 +184,7 @@ get_fs_usage (const char *path, const char *disk, struct fs_usage *fsp)
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 == 0x1fffff && fsd.f_spare[0] > 0)
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];

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1997 Free Software Foundation, Inc.
/* 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
@@ -27,10 +27,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
# 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_ */

View File

@@ -1,25 +1,23 @@
/* 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 drepper@gnu.org
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, 96, 97, 98
Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
Free Software Foundation, Inc.
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.
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.
The GNU C Library is distributed in the hope that it will be useful,
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 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. */
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. */
/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
Ditto for AIX 3.2 and <stdlib.h>. */
@@ -29,13 +27,13 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#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
# ifndef const
# define const
# endif
# endif
#endif
@@ -109,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
@@ -130,7 +128,7 @@ int optind = 1;
causes problems with re-calling getopt as programs generally don't
know that. */
int __getopt_initialized = 0;
int __getopt_initialized;
/* The next char to be scanned in the option-element
in which the last option character we returned was found.

View File

@@ -1,21 +1,21 @@
/* Declarations for getopt.
Copyright (C) 1989,90,91,92,93,94,96,97,98 Free Software Foundation, Inc.
This file is part of the GNU C Library.
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
later version.
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,
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 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. */
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 _GETOPT_H

View File

@@ -1,29 +1,26 @@
/* getopt_long and getopt_long_only entry points for GNU getopt.
Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98
Free Software Foundation, Inc.
This file is part of the GNU C Library.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@gnu.org.
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.
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.
The GNU C Library is distributed in the hope that it will be useful,
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 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. */
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 "getopt.h"
#else
#if !defined __STDC__ || !__STDC__
/* This is a separate conditional since some stdc systems
reject `defined (const)'. */
@@ -31,6 +28,9 @@
#define const
#endif
#endif
#endif
#include "getopt.h"
#include <stdio.h>

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

@@ -41,6 +41,8 @@ struct group *getgrent ();
# include <strings.h>
#endif
#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
@@ -64,14 +66,17 @@ getugroups (int maxcount, GETGROUPS_T *grouplist, char *username, gid_t gid)
setgrent ();
while ((grp = getgrent ()) != 0)
for (cp = grp->gr_mem; *cp; ++cp)
if (!strcmp (username, *cp))
{
for (cp = grp->gr_mem; *cp; ++cp)
{
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[n] == grp->gr_gid)
if (grouplist && grouplist[n] == grp->gr_gid)
break;
/* If it's a new group number, then try to add it to the list. */
@@ -89,6 +94,8 @@ getugroups (int maxcount, GETGROUPS_T *grouplist, char *username, gid_t gid)
count++;
}
}
}
endgrent ();
return count;
}

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_ */

View File

@@ -445,8 +445,8 @@ hash_reset_tuning (Hash_tuning *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, definitvely reset the TUNING field to some acceptable default in
the hash table (that is, the user loses the right of further modifying
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
@@ -468,15 +468,14 @@ check_tuning (Hash_table *table)
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.
/* 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
@@ -769,8 +768,8 @@ hash_find_entry (Hash_table *table, const void *entry,
/* 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
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. */

View File

@@ -23,10 +23,6 @@
# include <config.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#include <sys/types.h>
#include <stdio.h>
@@ -34,6 +30,12 @@
# include <limits.h>
#endif
#if HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#ifndef CHAR_BIT
# define CHAR_BIT 8
#endif
@@ -54,7 +56,7 @@ char *getenv ();
#include <argmatch.h>
#include <error.h>
#include <xstrtoul.h>
#include <xstrtol.h>
#include "human.h"
@@ -71,15 +73,27 @@ static const char suffixes[] =
'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 positive.
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
@@ -93,13 +107,14 @@ static const char suffixes[] =
than -OUTPUT_BLOCK_SIZE aren't modified. */
char *
human_readable (uintmax_t n, char *buf,
int from_block_size, int output_block_size)
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;
int tenths = 0;
int power;
char *p;
@@ -107,7 +122,7 @@ human_readable (uintmax_t n, char *buf,
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;
int rounding = 0;
if (output_block_size < 0)
{
@@ -134,7 +149,6 @@ human_readable (uintmax_t n, char *buf,
{
int multiplier = from_block_size / to_block_size;
amt = n * multiplier;
tenths = rounding = 0;
if (amt / multiplier != n)
{
@@ -170,6 +184,8 @@ human_readable (uintmax_t n, char *buf,
return buf;
}
}
else if (from_block_size == 0)
amt = 0;
else
{
int divisor = to_block_size / from_block_size;
@@ -204,24 +220,33 @@ human_readable (uintmax_t n, char *buf,
if (amt < 10)
{
tenths += 2 < rounding + (tenths & 1);
if (tenths == 10)
if (2 * (1 - (int) inexact_style)
< rounding + (tenths & (inexact_style == human_round_to_even)))
{
amt++;
tenths = 0;
tenths++;
rounding = 0;
if (tenths == 10)
{
amt++;
tenths = 0;
}
}
if (amt < 10)
{
*--p = '0' + tenths;
*--p = '.';
tenths = 0;
tenths = rounding = 0;
}
}
}
if (5 < tenths + (2 < rounding + (amt & 1)))
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++;
@@ -251,13 +276,19 @@ human_readable (uintmax_t n, char *buf,
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 = getenv ("POSIXLY_CORRECT") ? 512 : DEFAULT_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
@@ -281,6 +312,11 @@ 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);
}

View File

@@ -1,6 +1,14 @@
#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. */
@@ -15,7 +23,16 @@
# 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 *));

View File

@@ -1,46 +0,0 @@
#! /bin/sh
# interlock - wrap program invocation in lock to allow
# parallel builds to work.
# Written by Tom Tromey <tromey@cygnus.com>, Aug 10 1996
#
# 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.
# Usage:
# interlock lock-dir-name program args-to-program...
dirname="$1"
program="$2"
shift
shift
while (mkdir $dirname > /dev/null 2>&1 && exit 1 || exit 0); do
# Wait a bit.
sleep 1
done
# Race condition here: if interrupted after the loop but before this
# trap, the lock can be left around.
trap "rmdir $dirname > /dev/null 2>&1" 1 2 3 15
# We have the lock, so run the program.
$program ${1+"$@"}
ret=$?
# Release the lock.
rmdir $dirname > /dev/null 2>&1
exit $ret

View File

@@ -27,6 +27,13 @@ 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 ();

View File

@@ -4,6 +4,6 @@
# define ENOSYS ENOTSUP
# else
/* Some systems don't have ENOTSUP either. */
# define ENOSYS ENOMSG
# define ENOSYS EINVAL
# endif
#endif

View File

@@ -1,5 +1,5 @@
/* linebuffer.c -- read arbitrarily long lines
Copyright (C) 1986, 1991, 1998 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
@@ -22,6 +22,7 @@
#endif
#include <stdio.h>
#include <sys/types.h>
#include "linebuffer.h"
char *xmalloc ();
@@ -39,9 +40,9 @@ initbuffer (struct linebuffer *linebuffer)
}
/* Read an arbitrarily long line of text from STREAM into LINEBUFFER.
Remove any newline. Does not null terminate.
Return zero upon error or upon end of file.
Otherwise, return LINEBUFFER. */
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 (struct linebuffer *linebuffer, FILE *stream)
@@ -52,33 +53,32 @@ readline (struct linebuffer *linebuffer, FILE *stream)
char *end = buffer + linebuffer->size; /* Sentinel. */
if (feof (stream) || ferror (stream))
{
linebuffer->length = 0;
return 0;
}
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;
}

View File

@@ -1,5 +1,5 @@
/* linebuffer.h -- declarations for reading arbitrarily long lines
Copyright (C) 1986, 1991, 1998 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
@@ -22,8 +22,8 @@
struct linebuffer
{
long size; /* Allocated. */
long length; /* Used. */
size_t size; /* Allocated. */
size_t length; /* Used. */
char *buffer;
};
@@ -39,7 +39,8 @@ struct 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 PARAMS ((struct linebuffer *linebuffer,
FILE *stream));

View File

@@ -71,16 +71,34 @@ 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
@@ -98,7 +116,6 @@ typedef int gid_t;
#endif
#include "save-cwd.h"
#include "makepath.h"
#include "error.h"
void strip_trailing_slashes ();
@@ -145,6 +162,7 @@ make_dir (const char *dir, const char *dirpath, mode_t mode, int *created_dir_p)
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
@@ -156,7 +174,7 @@ make_dir (const char *dir, const char *dirpath, mode_t mode, int *created_dir_p)
if (stat (dir, &stats))
{
error (0, errno, _("cannot create directory `%s'"), dirpath);
error (0, saved_errno, _("cannot create directory `%s'"), dirpath);
fail = 1;
}
else if (!S_ISDIR (stats.st_mode))
@@ -223,7 +241,7 @@ make_path (const char *argpath,
char *dirpath;
/* Temporarily relax umask in case it's overly restrictive. */
int oldmask = umask (0);
mode_t oldmask = umask (0);
/* Make a copy of ARGPATH that we can scribble NULs on. */
dirpath = (char *) alloca (strlen (argpath) + 1);
@@ -235,9 +253,9 @@ make_path (const char *argpath,
their owners, we need to fix their permissions after making them. */
if (((parent_mode & WX_USR) != WX_USR)
|| ((owner != (uid_t) -1 || group != (gid_t) -1)
&& (parent_mode & 07000) != 0))
&& (parent_mode & (S_ISUID | S_ISGID | S_ISVTX)) != 0))
{
tmp_mode = 0700;
tmp_mode = S_IRWXU;
re_protect = 1;
}
else
@@ -290,7 +308,7 @@ make_path (const char *argpath,
if (newly_created_dir)
{
if (verbose_fmt_string)
fprintf (stderr, verbose_fmt_string, dirpath);
error (0, 0, verbose_fmt_string, dirpath);
if ((owner != (uid_t) -1 || group != (gid_t) -1)
&& chown (basename_dir, owner, group)
@@ -351,7 +369,7 @@ make_path (const char *argpath,
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 (basename_dir, owner, group)
#ifdef AFS
@@ -363,7 +381,8 @@ make_path (const char *argpath,
retval = 1;
}
/* chown may have turned off some permission bits we wanted. */
if ((mode & 07000) != 0 && chmod (basename_dir, mode))
if ((mode & (S_ISUID | S_ISGID | S_ISVTX))
&& chmod (basename_dir, mode))
{
error (0, errno, _("cannot chmod %s"), dirpath);
retval = 1;

View File

@@ -1,6 +1,6 @@
/* md5.h - Declaration of functions and data types used for MD5 sum
computing library functions.
Copyright (C) 1995, 1996 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.
@@ -118,7 +118,7 @@ extern void md5_process_bytes __P ((const void *buffer, size_t len,
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 is correctly
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));

View File

@@ -1,5 +1,5 @@
/* Case-insensitive buffer comparator.
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
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
@@ -15,9 +15,9 @@
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@na-net.ornl.gov) */
/* Written by Jim Meyering. */
#ifdef HAVE_CONFIG_H
#if HAVE_CONFIG_H
# include <config.h>
#endif
@@ -25,16 +25,16 @@
#include <ctype.h>
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define IN_CTYPE_DOMAIN(c) 1
# define IN_CTYPE_DOMAIN(Char) 1
#else
# define IN_CTYPE_DOMAIN(c) isascii(c)
# define IN_CTYPE_DOMAIN(Char) isascii(Char)
#endif
#define ISLOWER(c) (IN_CTYPE_DOMAIN (c) && islower (c))
#define ISLOWER(Char) (IN_CTYPE_DOMAIN (Char) && islower (Char))
#if _LIBC || STDC_HEADERS
# define TOUPPER(c) toupper (c)
# define TOUPPER(Char) toupper (Char)
#else
# define TOUPPER(c) (ISLOWER (c) ? toupper (c) : (c))
# define TOUPPER(Char) (ISLOWER (Char) ? toupper (Char) : (Char))
#endif
#include "memcasecmp.h"
@@ -44,14 +44,11 @@
join -i works with sort -f. */
int
memcasecmp (vs1, vs2, n)
const void *vs1;
const void *vs2;
size_t n;
memcasecmp (const void *vs1, const void *vs2, size_t n)
{
unsigned int i;
unsigned char *s1 = (unsigned char *) vs1;
unsigned char *s2 = (unsigned char *) vs2;
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++;

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1993, 1997 Free Software Foundation, Inc.
/* 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);
@@ -24,7 +24,7 @@ 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
@@ -45,7 +45,7 @@ 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>

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,4 +1,4 @@
/* Copyright (C) 1995, 1997 Free Software Foundation, Inc.
/* 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
@@ -25,10 +25,7 @@
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

@@ -34,6 +34,16 @@ extern int errno;
# 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. */
/* Make directory DPATH, with permission mode DMODE.
@@ -48,9 +58,10 @@ extern int errno;
subroutine didn't return EEXIST. It does now. */
int
mkdir (const char *dpath, int dmode)
mkdir (const char *dpath, mode_t dmode)
{
pid_t cpid;
mode_t mode;
int status;
struct stat statbuf;
@@ -75,8 +86,9 @@ mkdir (const char *dpath, int 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);

View File

@@ -1,5 +1,5 @@
/* modechange.c -- file mode manipulation
Copyright (C) 1989, 1990, 1997, 1998, 1999 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
@@ -28,9 +28,9 @@
# include <config.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include "modechange.h"
#include <sys/stat.h>
#include "xstrtol.h"
#if STDC_HEADERS
# include <stdlib.h>
@@ -50,34 +50,65 @@ char *malloc ();
# 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')
/* 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 (const 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;
}
/* 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 struct mode_change *
make_node_op_equals (int new_mode)
make_node_op_equals (mode_t new_mode)
{
struct mode_change *p;
p = talloc (struct mode_change);
@@ -87,7 +118,7 @@ make_node_op_equals (int new_mode)
p->op = '=';
p->flags = 0;
p->value = new_mode;
p->affected = 07777; /* Affect all permissions. */
p->affected = CHMOD_MODE_BITS; /* Affect all permissions. */
return p;
}
@@ -126,21 +157,21 @@ mode_compile (const char *mode_string, unsigned int masked_ops)
{
struct mode_change *head; /* First element of the linked list. */
struct mode_change *tail; /* An element of the linked list. */
int i; /* General purpose temporary. */
int umask_value; /* The umask value (surprise). */
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). */
head = NULL;
#ifdef lint
tail = NULL;
#endif
i = oatoi (mode_string);
if (i >= 0)
if (xstrtoumax (mode_string, &string_end, 8, &mode_value, "") == LONGINT_OK)
{
struct mode_change *p;
if (i > 07777)
if (mode_value != (mode_value & CHMOD_MODE_BITS))
return MODE_INVALID;
p = make_node_op_equals (i);
p = make_node_op_equals ((mode_t) mode_value);
if (p == NULL)
return MODE_MEMORY_EXHAUSTED;
mode_append_entry (&head, &tail, p);
@@ -155,9 +186,9 @@ mode_compile (const char *mode_string, unsigned int masked_ops)
do
{
/* Which bits in the mode are operated on. */
unsigned short affected_bits = 0;
mode_t affected_bits = 0;
/* `affected_bits' modified by umask. */
unsigned short affected_masked;
mode_t affected_masked;
/* Operators to actually use umask on. */
unsigned ops_to_mask = 0;
@@ -170,16 +201,16 @@ mode_compile (const char *mode_string, unsigned int 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;
@@ -193,7 +224,7 @@ mode_compile (const char *mode_string, unsigned int masked_ops)
else
{
who_specified_p = 0;
affected_bits = 07777;
affected_bits = CHMOD_MODE_BITS;
ops_to_mask = masked_ops;
}
@@ -238,31 +269,34 @@ mode_compile (const char *mode_string, unsigned int masked_ops)
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':
@@ -270,7 +304,7 @@ mode_compile (const char *mode_string, unsigned int 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':
@@ -278,7 +312,7 @@ mode_compile (const char *mode_string, unsigned int 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:
@@ -313,7 +347,7 @@ mode_create_from_ref (const char *ref_file)
change->op = '=';
change->flags = 0;
change->affected = 07777;
change->affected = CHMOD_MODE_BITS;
change->value = ref_stats.st_mode;
change->next = NULL;
@@ -325,13 +359,13 @@ mode_create_from_ref (const char *ref_file)
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 (unsigned int oldmode, const 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)
{
@@ -341,15 +375,21 @@ mode_adjust (unsigned int oldmode, const struct mode_change *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.
@@ -365,8 +405,9 @@ mode_adjust (unsigned int oldmode, const struct mode_change *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)

View File

@@ -20,6 +20,12 @@
#if ! defined MODECHANGE_H_
# define MODECHANGE_H_
# if HAVE_CONFIG_H
# include <config.h>
# endif
# include <sys/types.h>
/* Affect the execute bits only if at least one execute bit is set already,
or if the file is a directory. */
# define MODE_X_IF_ANY_X 01
@@ -33,8 +39,8 @@ struct mode_change
{
char op; /* One of "=+-". */
char flags; /* Special operations. */
unsigned short affected; /* Set for u/g/o/s/s/t, if to be affected. */
unsigned short value; /* Bits to add/remove. */
mode_t affected; /* Set for u/g/o/s/s/t, if to be affected. */
mode_t value; /* Bits to add/remove. */
struct mode_change *next; /* Link to next change in list. */
};
@@ -59,7 +65,7 @@ struct mode_change
struct mode_change *mode_compile PARAMS ((const char *, unsigned));
struct mode_change *mode_create_from_ref PARAMS ((const char *));
unsigned short mode_adjust PARAMS ((unsigned, const struct mode_change *));
mode_t mode_adjust PARAMS ((mode_t, const struct mode_change *));
void mode_free PARAMS ((struct mode_change *));
#endif

View File

@@ -1,5 +1,5 @@
/* mountlist.c -- return a list of mounted filesystems
Copyright (C) 1991, 1992, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1991, 1992, 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

102
lib/nanosleep.c Normal file
View File

@@ -0,0 +1,102 @@
/* Provide a replacement for the POSIX nanosleep function.
Copyright (C) 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; 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>
#include <signal.h>
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include "nanosleep.h"
static int suspended;
int first_call = 1;
/* Handle SIGCONT. */
static void
sighandler (int sig)
{
suspended = 1;
}
/* FIXME: comment */
static void
my_usleep (const struct timespec *ts_delay)
{
struct timeval tv_delay;
tv_delay.tv_sec = ts_delay->tv_sec;
tv_delay.tv_usec = ts_delay->tv_nsec / 1000;
select (0, (void *) 0, (void *) 0, (void *) 0, &tv_delay);
}
/* FIXME: comment */
int
nanosleep (const struct timespec *requested_delay,
struct timespec *remaining_delay)
{
#ifdef SA_NOCLDSTOP
struct sigaction oldact, newact;
#endif
suspended = 0;
/* set up sig handler */
if (first_call)
{
#ifdef SA_NOCLDSTOP
newact.sa_handler = sighandler;
sigemptyset (&newact.sa_mask);
newact.sa_flags = 0;
sigaction (SIGCONT, NULL, &oldact);
if (oldact.sa_handler != SIG_IGN)
sigaction (SIGCONT, &newact, NULL);
#else
if (signal (SIGCONT, SIG_IGN) != SIG_IGN)
signal (SIGCONT, sighandler);
#endif
first_call = 0;
}
my_usleep (requested_delay);
if (suspended)
{
/* Calculate time remaining. */
/* FIXME: the code in sleep doesn't use this, so there's no
rush to implement it. */
errno = EINTR;
}
/* FIXME: Restore sig handler? */
return suspended;
}

57
lib/nanosleep.h Normal file
View File

@@ -0,0 +1,57 @@
/* Copyright (C) 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. */
#if ! defined NANOSLEEP_H
# define NANOSLEEP_H
# 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
# 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
# if ! HAVE_STRUCT_TIMESPEC
/* Some systems don't define this struct, e.g., AIX 4.1, Ultrix 4.3. */
struct timespec
{
time_t tv_sec;
long tv_nsec;
};
# endif
int
nanosleep PARAMS ((const struct timespec *requested_delay,
struct timespec *remaining_delay));
#endif

View File

@@ -1,5 +1,5 @@
/* path-concat.c -- concatenate two arbitrary pathnames
Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
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
@@ -33,21 +33,49 @@
char *malloc ();
/* Concatenate two pathname components, DIR and BASE, in newly-allocated
storage and return the result. Return 0 if out of memory. Add a slash
between DIR and BASE in the result if neither would contribute one.
If each would contribute at least one, elide one from the end of DIR.
Otherwise, simply concatenate DIR and BASE. In any case, if
BASE_IN_RESULT is non-NULL, set *BASE_IN_RESULT to point to the copy of
BASE in the returned concatenation. */
#ifndef DIRECTORY_SEPARATOR
# define DIRECTORY_SEPARATOR '/'
#endif
#ifndef ISSLASH
# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
#endif
#include "xalloc.h"
#include "path-concat.h"
/* Concatenate two pathname components, DIR and BASE, in
newly-allocated storage and return the result. Return 0 if out of
memory. Add a slash between DIR and BASE in the result if neither
would contribute one. If each would contribute at least one, elide
one from the end of DIR. Otherwise, simply concatenate DIR and
BASE. In any case, if BASE_IN_RESULT is non-NULL, set
*BASE_IN_RESULT to point to the copy of BASE in the returned
concatenation.
DIR may be NULL, BASE must not be.
Return NULL if memory is exhausted. */
char *
path_concat (const char *dir, const char *base, char **base_in_result)
{
char *p;
char *p_concat;
size_t base_len = strlen (base);
size_t dir_len = strlen (dir);
size_t base_len;
size_t dir_len;
if (!dir)
{
p_concat = strdup (base);
if (base_in_result)
*base_in_result = p_concat;
return p_concat;
}
/* DIR is not empty. */
base_len = strlen (base);
dir_len = strlen (dir);
p_concat = malloc (dir_len + base_len + 2);
if (!p_concat)
@@ -55,10 +83,10 @@ path_concat (const char *dir, const char *base, char **base_in_result)
p = mempcpy (p_concat, dir, dir_len);
if (*(p - 1) == '/' && *base == '/')
if (ISSLASH (*(p - 1)) && ISSLASH(*base))
--p;
else if (*(p - 1) != '/' && *base != '/')
*p++ = '/';
else if (!ISSLASH (*(p - 1)) && !ISSLASH(*base))
*p++ = DIRECTORY_SEPARATOR;
if (base_in_result)
*base_in_result = p;
@@ -67,3 +95,14 @@ path_concat (const char *dir, const char *base, char **base_in_result)
return p_concat;
}
/* Same, but die when memory is exhausted. */
char *
xpath_concat (const char *dir, const char *base, char **base_in_result)
{
char *res = path_concat (dir, base, base_in_result);
if (res)
return res;
xalloc_die ();
}

View File

@@ -1,5 +1,5 @@
/* Define PATH_MAX somehow. Requires sys/types.h.
Copyright (C) 1992 Free Software Foundation, Inc.
Copyright (C) 1992, 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
@@ -16,38 +16,39 @@
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef _PATHMAX_H
#define _PATHMAX_H
# define _PATHMAX_H
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
# ifdef HAVE_UNISTD_H
# include <unistd.h>
# endif
/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
PATH_MAX but might cause redefinition warnings when sys/param.h is
later included (as on MORE/BSD 4.3). */
#if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__))
#include <limits.h>
#endif
# if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__))
# include <limits.h>
# endif
#ifndef _POSIX_PATH_MAX
#define _POSIX_PATH_MAX 255
#endif
# ifndef _POSIX_PATH_MAX
# define _POSIX_PATH_MAX 255
# endif
#if !defined(PATH_MAX) && defined(_PC_PATH_MAX)
#define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX))
#endif
# if !defined(PATH_MAX) && defined(_PC_PATH_MAX)
# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 \
: pathconf ("/", _PC_PATH_MAX))
# endif
/* Don't include sys/param.h if it already has been. */
#if defined(HAVE_SYS_PARAM_H) && !defined(PATH_MAX) && !defined(MAXPATHLEN)
#include <sys/param.h>
#endif
# if defined(HAVE_SYS_PARAM_H) && !defined(PATH_MAX) && !defined(MAXPATHLEN)
# include <sys/param.h>
# endif
#if !defined(PATH_MAX) && defined(MAXPATHLEN)
#define PATH_MAX MAXPATHLEN
#endif
# if !defined(PATH_MAX) && defined(MAXPATHLEN)
# define PATH_MAX MAXPATHLEN
# endif
#ifndef PATH_MAX
#define PATH_MAX _POSIX_PATH_MAX
#endif
# ifndef PATH_MAX
# define PATH_MAX _POSIX_PATH_MAX
# endif
#endif /* _PATHMAX_H */

View File

@@ -1,5 +1,5 @@
/* quotearg.c - quote arguments for output
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1998, 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
@@ -31,10 +31,13 @@
#else
# define ISASCII(c) isascii (c)
#endif
#ifdef isgraph
# define ISGRAPH(c) (ISASCII (c) && isgraph (c))
#define ISPRINT(c) (ISASCII (c) && isprint (c))
#if ENABLE_NLS
# include <libintl.h>
# define _(text) gettext (text)
#else
# define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c))
# define _(text) text
#endif
#if HAVE_LIMITS_H
@@ -55,6 +58,19 @@
# include <string.h>
#endif
#if HAVE_WCTYPE_H
# include <wctype.h>
#endif
#if HAVE_MBRTOWC && HAVE_WCHAR_H
# include <wchar.h>
#else
# define iswprint(wc) 1
# define mbrtowc(pwc, s, n, ps) 1
# define mbsinit(ps) 1
# define mbstate_t int
#endif
#define INT_BITS (sizeof (int) * CHAR_BIT)
struct quoting_options
@@ -62,7 +78,7 @@ struct quoting_options
/* Basic quoting style. */
enum quoting_style style;
/* Quote the chararacters indicated by this bit vector even if the
/* Quote the characters indicated by this bit vector even if the
quoting style would not normally require them to be quoted. */
int quote_these_too[((UCHAR_MAX + 1) / INT_BITS
+ ((UCHAR_MAX + 1) % INT_BITS != 0))];
@@ -76,17 +92,19 @@ char const *const quoting_style_args[] =
"shell-always",
"c",
"escape",
"locale",
0
};
/* Correspondances to quoting style names. */
/* Correspondences to quoting style names. */
enum quoting_style const quoting_style_vals[] =
{
literal_quoting_style,
shell_quoting_style,
shell_always_quoting_style,
c_quoting_style,
escape_quoting_style
escape_quoting_style,
locale_quoting_style
};
/* The default quoting options. */
@@ -135,6 +153,293 @@ set_char_quoting (struct quoting_options *o, char c, int i)
return r;
}
/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
argument ARG (of size ARGSIZE), using QUOTING_STYLE and the
non-quoting-style part of O to control quoting.
Terminate the output with a null character, and return the written
size of the output, not counting the terminating null.
If BUFFERSIZE is too small to store the output string, return the
value that would have been returned had BUFFERSIZE been large enough.
If ARGSIZE is -1, use the string length of the argument for ARGSIZE.
This function acts like quotearg_buffer (BUFFER, BUFFERSIZE, ARG,
ARGSIZE, O), except it uses QUOTING_STYLE instead of the quoting
style specified by O, and O may not be null. */
static size_t
quotearg_buffer_restyled (char *buffer, size_t buffersize,
char const *arg, size_t argsize,
enum quoting_style quoting_style,
struct quoting_options const *o)
{
size_t i;
size_t len = 0;
char const *quote_string = 0;
size_t quote_string_len = 0;
int backslash_escapes = 0;
#define STORE(c) \
do \
{ \
if (len < buffersize) \
buffer[len] = (c); \
len++; \
} \
while (0)
switch (quoting_style)
{
case c_quoting_style:
STORE ('"');
backslash_escapes = 1;
quote_string = "\"";
quote_string_len = 1;
break;
case escape_quoting_style:
backslash_escapes = 1;
break;
case locale_quoting_style:
for (quote_string = _("`"); *quote_string; quote_string++)
STORE (*quote_string);
backslash_escapes = 1;
quote_string = _("'");
quote_string_len = strlen (quote_string);
break;
case shell_always_quoting_style:
STORE ('\'');
quote_string = "'";
quote_string_len = 1;
break;
default:
break;
}
for (i = 0; ! (argsize == (size_t) -1 ? arg[i] == '\0' : i == argsize); i++)
{
unsigned char c;
unsigned char esc;
if (backslash_escapes
&& quote_string_len
&& i + quote_string_len <= argsize
&& memcmp (arg + i, quote_string, quote_string_len) == 0)
STORE ('\\');
c = arg[i];
switch (c)
{
case '?':
switch (quoting_style)
{
case shell_quoting_style:
goto use_shell_always_quoting_style;
case c_quoting_style:
if (i + 2 < argsize && arg[i + 1] == '?')
switch (arg[i + 2])
{
case '!': case '\'':
case '(': case ')': case '-': case '/':
case '<': case '=': case '>':
/* Escape the second '?' in what would otherwise be
a trigraph. */
i += 2;
c = arg[i + 2];
STORE ('?');
STORE ('\\');
STORE ('?');
break;
}
break;
default:
break;
}
break;
#if HAVE_C_BACKSLASH_A
case '\a': esc = 'a'; goto c_escape;
#endif
case '\b': esc = 'b'; goto c_escape;
case '\f': esc = 'f'; goto c_escape;
case '\n': esc = 'n'; goto c_and_shell_escape;
case '\r': esc = 'r'; goto c_and_shell_escape;
case '\t': esc = 't'; goto c_and_shell_escape;
case '\v': esc = 'v'; goto c_escape;
case '\\': esc = c; goto c_and_shell_escape;
c_and_shell_escape:
if (quoting_style == shell_quoting_style)
goto use_shell_always_quoting_style;
c_escape:
if (backslash_escapes)
{
c = esc;
goto store_escape;
}
break;
case '#': case '~':
if (i != 0)
break;
/* Fall through. */
case ' ':
case '!': /* special in bash */
case '"': case '$': case '&':
case '(': case ')': case '*': case ';':
case '<': case '>': case '[':
case '^': /* special in old /bin/sh, e.g. SunOS 4.1.4 */
case '`': case '|':
/* A shell special character. In theory, '$' and '`' could
be the first bytes of multibyte characters, which means
we should check them with mbrtowc, but in practice this
doesn't happen so it's not worth worrying about. */
if (quoting_style == shell_quoting_style)
goto use_shell_always_quoting_style;
break;
case '\'':
switch (quoting_style)
{
case shell_quoting_style:
goto use_shell_always_quoting_style;
case shell_always_quoting_style:
STORE ('\'');
STORE ('\\');
STORE ('\'');
break;
default:
break;
}
break;
case '%': case '+': case ',': case '-': case '.': case '/':
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9': case ':': case '=':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z': case ']': case '_': case 'a': case 'b':
case 'c': case 'd': case 'e': case 'f': case 'g': case 'h':
case 'i': case 'j': case 'k': case 'l': case 'm': case 'n':
case 'o': case 'p': case 'q': case 'r': case 's': case 't':
case 'u': case 'v': case 'w': case 'x': case 'y': case 'z':
case '{': case '}':
/* These characters don't cause problems, no matter what the
quoting style is. They cannot start multibyte sequences. */
break;
default:
/* If we have a multibyte sequence, copy it until we reach
its end, find an error, or come back to the initial shift
state. For C-like styles, if the sequence has
unprintable characters, escape the whole sequence, since
we can't easily escape single characters within it. */
{
/* Length of multibyte sequence found so far. */
size_t m = 0;
int printable = 1;
mbstate_t mbstate;
memset (&mbstate, 0, sizeof mbstate);
if (argsize == (size_t) -1)
argsize = strlen (arg);
do
{
wchar_t w;
size_t bytes = mbrtowc (&w, &arg[i + m],
argsize - (i + m), &mbstate);
if (bytes == 0)
break;
else if (bytes == (size_t) -1)
{
printable = 0;
break;
}
else if (bytes == (size_t) -2)
{
printable = 0;
while (i + m < argsize && arg[i + m])
m++;
break;
}
else
{
if (! iswprint (w))
printable = 0;
m += bytes;
}
}
while (! mbsinit (&mbstate));
if (m <= 1)
{
/* Escape a unibyte character like a multibyte
sequence if using backslash escapes, and if the
character is not printable. */
m = backslash_escapes && ! ISPRINT (c);
printable = 0;
}
if (m)
{
/* Output a multibyte sequence, or an escaped
unprintable unibyte character. */
size_t imax = i + m - 1;
for (;;)
{
if (backslash_escapes && ! printable)
{
STORE ('\\');
STORE ('0' + (c >> 6));
STORE ('0' + ((c >> 3) & 7));
c = '0' + (c & 7);
}
if (i == imax)
break;
STORE (c);
c = arg[++i];
}
goto store_c;
}
}
}
if (! (backslash_escapes
&& o->quote_these_too[c / INT_BITS] & (1 << (c % INT_BITS))))
goto store_c;
store_escape:
STORE ('\\');
store_c:
STORE (c);
}
if (quote_string)
for (; *quote_string; quote_string++)
STORE (*quote_string);
if (len < buffersize)
buffer[len] = '\0';
return len;
use_shell_always_quoting_style:
return quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
shell_always_quoting_style, o);
}
/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
argument ARG (of size ARGSIZE), using O to control quoting.
If O is null, use the default.
@@ -148,151 +453,9 @@ quotearg_buffer (char *buffer, size_t buffersize,
char const *arg, size_t argsize,
struct quoting_options const *o)
{
unsigned char c;
size_t i;
size_t len;
int quote_mark;
struct quoting_options const *p = o ? o : &default_quoting_options;
enum quoting_style quoting_style = p->style;
#define STORE(c) \
do \
{ \
if (len < buffersize) \
buffer[len] = (c); \
len++; \
} \
while (0)
switch (quoting_style)
{
case shell_quoting_style:
if (! (argsize == (size_t) -1 ? arg[0] == '\0' : argsize == 0))
{
switch (arg[0])
{
case '#': case '~':
break;
default:
len = 0;
for (i = 0; ; i++)
{
if (argsize == (size_t) -1 ? arg[i] == '\0' : i == argsize)
goto done;
c = arg[i];
switch (c)
{
case '\t': case '\n': case ' ':
case '!': /* special in csh */
case '"': case '$': case '&': case '\'':
case '(': case ')': case '*': case ';':
case '<': case '>': case '?': case '[': case '\\':
case '^': /* special in old /bin/sh, e.g. SunOS 4.1.4 */
case '`': case '|':
goto needs_quoting;
}
if (p->quote_these_too[c / INT_BITS] & (1 << (c % INT_BITS)))
goto needs_quoting;
STORE (c);
}
needs_quoting:;
break;
}
}
/* Fall through. */
case shell_always_quoting_style:
quote_mark = '\'';
break;
case c_quoting_style:
quote_mark = '"';
break;
default:
quote_mark = 0;
break;
}
len = 0;
if (quote_mark)
STORE (quote_mark);
for (i = 0; ! (argsize == (size_t) -1 ? arg[i] == '\0' : i == argsize); i++)
{
c = arg[i];
switch (quoting_style)
{
case literal_quoting_style:
break;
case shell_quoting_style:
case shell_always_quoting_style:
if (c == '\'')
{
STORE ('\'');
STORE ('\\');
STORE ('\'');
}
break;
case c_quoting_style:
case escape_quoting_style:
switch (c)
{
case '?': /* Do not generate trigraphs. */
case '\\': goto store_escape;
/* Not all C compilers know what \a means. */
case 7 : c = 'a'; goto store_escape;
case '\b': c = 'b'; goto store_escape;
case '\f': c = 'f'; goto store_escape;
case '\n': c = 'n'; goto store_escape;
case '\r': c = 'r'; goto store_escape;
case '\t': c = 't'; goto store_escape;
case '\v': c = 'v'; goto store_escape;
case '"':
if (quoting_style == c_quoting_style)
goto store_escape;
break;
default:
if (!ISGRAPH (c))
{
STORE ('\\');
STORE ('0' + (c >> 6));
STORE ('0' + ((c >> 3) & 7));
c = '0' + (c & 7);
goto store_c;
}
break;
}
if (! (p->quote_these_too[c / INT_BITS] & (1 << (c % INT_BITS))))
goto store_c;
store_escape:
STORE ('\\');
}
store_c:
STORE (c);
}
if (quote_mark)
STORE (quote_mark);
done:
if (len < buffersize)
buffer[len] = '\0';
return len;
return quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
p->style, p);
}
/* Use storage slot N to return a quoted version of the string ARG.
@@ -351,6 +514,21 @@ quotearg (char const *arg)
return quotearg_n (0, arg);
}
char *
quotearg_n_style (unsigned int n, enum quoting_style s, char const *arg)
{
struct quoting_options o;
o.style = s;
memset (o.quote_these_too, 0, sizeof o.quote_these_too);
return quotearg_n_options (n, arg, &o);
}
char *
quotearg_style (enum quoting_style s, char const *arg)
{
return quotearg_n_style (0, s, arg);
}
char *
quotearg_char (char const *arg, char ch)
{

View File

@@ -24,11 +24,11 @@ enum quoting_style
shell_quoting_style, /* --quoting-style=shell */
shell_always_quoting_style, /* --quoting-style=shell-always */
c_quoting_style, /* --quoting-style=c */
escape_quoting_style /* --quoting-style=escape */
escape_quoting_style, /* --quoting-style=escape */
locale_quoting_style /* --quoting-style=locale */
};
/* For now, --quoting-style=literal is the default, but
this is planned to change to --quoting-style=shell in the future. */
/* For now, --quoting-style=literal is the default, but this may change. */
#ifndef DEFAULT_QUOTING_STYLE
# define DEFAULT_QUOTING_STYLE literal_quoting_style
#endif
@@ -93,6 +93,15 @@ char *quotearg_n PARAMS ((unsigned int n, char const *arg));
/* Equivalent to quotearg_n (0, ARG). */
char *quotearg PARAMS ((char const *arg));
/* Use style S and storage slot N to return a quoted version of the string ARG.
This is like quotearg_n (N, ARG), except that it uses S with no other
options to specify the quoting method. */
char *quotearg_n_style PARAMS ((unsigned int n, enum quoting_style s,
char const *arg));
/* Equivalent to quotearg_n_style (0, S, ARG). */
char *quotearg_style PARAMS ((enum quoting_style s, char const *arg));
/* Like quotearg (ARG), except also quote any instances of CH. */
char *quotearg_char PARAMS ((char const *arg, char ch));

View File

@@ -1,5 +1,5 @@
/* readtokens.c -- Functions for reading tokens from an input stream.
Copyright (C) 1990-1991 Jim Meyering.
Copyright (C) 1990-1991, 1999 Jim Meyering.
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
@@ -77,11 +77,10 @@ init_tokenbuffer (tokenbuffer)
and on files that aren't newline-terminated. */
long
readtoken (stream, delim, n_delim, tokenbuffer)
FILE *stream;
const char *delim;
int n_delim;
token_buffer *tokenbuffer;
readtoken (FILE *stream,
const char *delim,
int n_delim,
token_buffer *tokenbuffer)
{
char *p;
int c, i, n;
@@ -164,14 +163,12 @@ readtoken (stream, delim, n_delim, tokenbuffer)
%%% realloc() of `tokens' just before returning? */
int
readtokens (stream, projected_n_tokens, delim, n_delim,
tokens_out, token_lengths)
FILE *stream;
int projected_n_tokens;
const char *delim;
int n_delim;
char ***tokens_out;
long **token_lengths;
readtokens (FILE *stream,
int projected_n_tokens,
const char *delim,
int n_delim,
char ***tokens_out,
long **token_lengths)
{
token_buffer tb, *token = &tb;
int token_length;

View File

@@ -1,5 +1,5 @@
/* GNU's read utmp module.
Copyright (C) 1992-1999 Free Software Foundation, Inc.
Copyright (C) 1992-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
@@ -41,11 +41,11 @@ extract_trimmed_name (const STRUCT_UTMP *ut)
{
char *p, *trimmed_name;
trimmed_name = xmalloc (sizeof (ut->ut_name) + 1);
strncpy (trimmed_name, ut->ut_name, sizeof (ut->ut_name));
trimmed_name = xmalloc (sizeof (UT_USER (ut)) + 1);
strncpy (trimmed_name, UT_USER (ut), sizeof (UT_USER (ut)));
/* Append a trailing space character. Some systems pad names shorter than
the maximum with spaces, others pad with NULs. Remove any spaces. */
trimmed_name[sizeof (ut->ut_name)] = ' ';
trimmed_name[sizeof (UT_USER (ut))] = ' ';
p = strchr (trimmed_name, ' ');
if (p != NULL)
*p = '\0';
@@ -66,13 +66,16 @@ read_utmp (const char *filename, int *n_entries, STRUCT_UTMP **utmp_buf)
STRUCT_UTMP *u;
STRUCT_UTMP *utmp = NULL;
if (utmpname (filename))
return 1;
/* Ignore the return value for now.
Solaris' utmpname returns 1 upon success -- which is contrary
to what the GNU libc version does. In addition, older GNU libc
versions are actually void. */
UTMP_NAME_FUNCTION (filename);
setutent ();
SET_UTMP_ENT ();
n_read = 0;
while ((u = getutent ()) != NULL)
while ((u = GET_UTMP_ENT ()) != NULL)
{
++n_read;
utmp = (STRUCT_UTMP *) realloc (utmp, n_read * sizeof (STRUCT_UTMP));
@@ -81,7 +84,7 @@ read_utmp (const char *filename, int *n_entries, STRUCT_UTMP **utmp_buf)
utmp[n_read - 1] = *u;
}
endutent ();
END_UTMP_ENT ();
*n_entries = n_read;
*utmp_buf = utmp;

View File

@@ -1,5 +1,5 @@
/* Declarations for GNU's read utmp module.
Copyright (C) 1992-1999 Free Software Foundation, Inc.
Copyright (C) 1992-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
@@ -34,10 +34,41 @@
# include <utmpx.h>
# define UTMP_STRUCT_NAME utmpx
# define UT_TIME_MEMBER(UT_PTR) ((UT_PTR)->ut_tv.tv_sec)
# define SET_UTMP_ENT setutxent
# define GET_UTMP_ENT getutxent
# define END_UTMP_ENT endutxent
# define UTMP_NAME_FUNCTION utmpxname
# else
# include <utmp.h>
# define UTMP_STRUCT_NAME utmp
# define UT_TIME_MEMBER(UT_PTR) ((UT_PTR)->ut_time)
# define SET_UTMP_ENT setutent
# define GET_UTMP_ENT getutent
# define END_UTMP_ENT endutent
# define UTMP_NAME_FUNCTION utmpname
# endif
/* Accessor macro for the member named ut_user or ut_name. */
# ifdef HAVE_UTMPX_H
# if HAVE_STRUCT_UTMPX_UT_USER
# define UT_USER(Utmp) Utmp->ut_user
# endif
# if HAVE_STRUCT_UTMPX_UT_NAME
# undef UT_USER
# define UT_USER(Utmp) Utmp->ut_name
# endif
# else
# if HAVE_STRUCT_UTMP_UT_USER
# define UT_USER(Utmp) Utmp->ut_user
# endif
# if HAVE_STRUCT_UTMP_UT_NAME
# undef UT_USER
# define UT_USER(Utmp) Utmp->ut_name
# endif
# endif
typedef struct UTMP_STRUCT_NAME STRUCT_UTMP;

View File

@@ -2,7 +2,7 @@
version 0.12.
(Implements POSIX draft P1003.2/D11.2, except for some of the
internationalization features.)
Copyright (C) 1993, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
Copyright (C) 1993, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
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
@@ -254,6 +254,12 @@ init_syntax_once ()
#define ISUPPER(c) (ISASCII (c) && isupper (c))
#define ISXDIGIT(c) (ISASCII (c) && isxdigit (c))
#ifdef _tolower
# define TOLOWER(c) _tolower(c)
#else
# define TOLOWER(c) tolower(c)
#endif
#ifndef NULL
# define NULL (void *)0
#endif
@@ -5628,7 +5634,7 @@ regcomp (preg, pattern, cflags)
/* Map uppercase characters to corresponding lowercase ones. */
for (i = 0; i < CHAR_SET_SIZE; i++)
preg->translate[i] = ISUPPER (i) ? tolower (i) : i;
preg->translate[i] = ISUPPER (i) ? TOLOWER (i) : i;
}
else
preg->translate = NULL;

View File

@@ -1,113 +0,0 @@
/* BSD compatible rename and directory rename function for System V.
Copyright (C) 1988, 1990 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
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#if STAT_MACROS_BROKEN
# undef S_ISDIR
#endif
#if !defined(S_ISDIR) && defined(S_IFDIR)
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif
/* Rename file FROM to file TO.
Return 0 if successful, -1 if not. */
int
rename (char *from, char *to)
{
struct stat from_stats, to_stats;
if (stat (from, &from_stats))
return -1;
/* Be careful not to unlink `from' if it happens to be equal to `to' or
(on filesystems that silently truncate filenames after 14 characters)
if `from' and `to' share the significant characters. */
if (stat (to, &to_stats))
{
if (errno != ENOENT)
return -1;
}
else
{
if ((from_stats.st_dev == to_stats.st_dev)
&& (from_stats.st_ino == to_stats.st_ino))
/* `from' and `to' designate the same file on that filesystem. */
return 0;
if (unlink (to) && errno != ENOENT)
return -1;
}
#ifdef MVDIR
/* If MVDIR is defined, it should be the full filename of a setuid root
program able to link and unlink directories. If MVDIR is not defined,
then the capability of renaming directories may be missing. */
if (S_ISDIR (from_stats.st_mode))
{
/* Need a setuid root process to link and unlink directories. */
int status;
pid_t pid = fork ();
switch (pid)
{
case -1: /* Error. */
return -1; /* errno already set */
case 0: /* Child. */
execl (MVDIR, "mvdir", from, to, (char *) 0);
_exit (1);
default: /* Parent. */
while (wait (&status) != pid)
/* Do nothing. */ ;
if (status)
{
/* MVDIR failed. */
errno = EIO;
return -1;
}
}
}
else
#endif /* MVDIR */
{
if (link (from, to))
return -1;
if (unlink (from) && errno != ENOENT)
{
unlink (to);
return -1;
}
}
return 0;
}

7185
lib/rx.c

File diff suppressed because it is too large Load Diff

3732
lib/rx.h

File diff suppressed because it is too large Load Diff

94
lib/same.c Normal file
View File

@@ -0,0 +1,94 @@
/* Determine whether two file names refer to the same file.
Copyright (C) 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 <stdio.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include <ctype.h>
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#include "same.h"
#include "dirname.h"
#include "error.h"
#if ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#endif
#define STREQ(a, b) (strcmp ((a), (b)) == 0)
#ifndef HAVE_DECL_FREE
void free ();
#endif
char *base_name PARAMS ((char const *));
#define SAME_INODE(Stat_buf_1, Stat_buf_2) \
((Stat_buf_1).st_ino == (Stat_buf_2).st_ino \
&& (Stat_buf_1).st_dev == (Stat_buf_2).st_dev)
/* Return nonzero if SOURCE and DEST point to the same name in the same
directory. */
int
same_name (const char *source, const char *dest)
{
struct stat source_dir_stats;
struct stat dest_dir_stats;
char *source_dirname, *dest_dirname;
source_dirname = dir_name (source);
dest_dirname = dir_name (dest);
if (source_dirname == NULL || dest_dirname == NULL)
error (1, 0, _("virtual memory exhausted"));
if (stat (source_dirname, &source_dir_stats))
{
/* Shouldn't happen. */
error (1, errno, "%s", source_dirname);
}
if (stat (dest_dirname, &dest_dir_stats))
{
/* Shouldn't happen. */
error (1, errno, "%s", dest_dirname);
}
free (source_dirname);
free (dest_dirname);
return (SAME_INODE (source_dir_stats, dest_dir_stats)
&& STREQ (base_name (source), base_name (dest)));
}

36
lib/same.h Normal file
View File

@@ -0,0 +1,36 @@
/* Determine whether two file names refer to the same file.
Copyright (C) 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. */
#ifndef SAME_H_
# define SAME_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
same_name PARAMS ((const char *source, const char *dest));
#endif /* SAME_H_ */

View File

@@ -1,5 +1,5 @@
/* savedir.c -- save the list of files in a directory in a string
Copyright (C) 1990, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1990, 1997, 1998, 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
@@ -76,7 +76,7 @@ char *stpcpy ();
Return NULL if DIR cannot be opened or if out of memory. */
char *
savedir (const char *dir, unsigned int name_size)
savedir (const char *dir, off_t name_size)
{
DIR *dirp;
struct dirent *dp;
@@ -87,6 +87,10 @@ savedir (const char *dir, unsigned int name_size)
if (dirp == NULL)
return NULL;
/* Be sure name_size is at least `1' so there's room for
the final NUL byte. */
name_size += !name_size;
name_space = (char *) malloc (name_size);
if (name_space == NULL)
{
@@ -102,7 +106,7 @@ savedir (const char *dir, unsigned int name_size)
|| (dp->d_name[1] != '\0'
&& (dp->d_name[1] != '.' || dp->d_name[2] != '\0')))
{
unsigned size_needed = (namep - name_space) + NAMLEN (dp) + 2;
off_t size_needed = (namep - name_space) + NAMLEN (dp) + 2;
if (size_needed > name_size)
{

View File

@@ -10,6 +10,6 @@
# endif
char *
savedir PARAMS ((const char *dir, unsigned int name_size));
savedir PARAMS ((const char *dir, off_t name_size));
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1994 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1994, 2000 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.
@@ -16,15 +16,13 @@
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
#if HAVE_CONFIG_H
# include <config.h>
#endif
/* Find the first ocurrence in S of any character in ACCEPT. */
char *
strpbrk (s, accept)
register const char *s;
register const char *accept;
strpbrk (const char *s, const char *accept)
{
while (*s != '\0')
{

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 1994 Free Software Foundation, Inc.
/* Copyright (C) 1994, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This program is free software; you can redistribute it and/or modify
@@ -24,6 +24,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
*
* Stephen R. van den Berg, berg@pool.informatik.rwth-aachen.de */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <string.h>
#include <sys/types.h>
@@ -71,7 +75,7 @@ strstr (const char *phaystack, const char *pneedle)
a = *++haystack;
if (a == '\0')
goto ret0;
shloop: }
shloop:; }
while (a != b);
jin: a = *++haystack;

View File

@@ -1,7 +1,7 @@
/* strtol - Convert string representation of a number into an integer value.
Copyright (C) 1991, 92, 94, 95, 96, 97 Free Software Foundation, Inc.
/* Convert string representation of a number into an integer value.
Copyright (C) 1991, 92, 94, 95, 96, 97, 98, 99 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.
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
@@ -54,7 +54,7 @@ extern int errno;
# include "../locale/localeinfo.h"
#endif
/* Nonzero if we are defining `strtoul' or `strtouq', operating on
/* Nonzero if we are defining `strtoul' or `strtoull', operating on
unsigned integers. */
#ifndef UNSIGNED
# define UNSIGNED 0
@@ -64,72 +64,154 @@ extern int errno;
#endif
/* Determine the name. */
#if UNSIGNED
# ifdef USE_WIDE_CHAR
# ifdef QUAD
# define strtol wcstouq
#ifdef USE_IN_EXTENDED_LOCALE_MODEL
# if UNSIGNED
# ifdef USE_WIDE_CHAR
# ifdef QUAD
# define strtol __wcstoull_l
# else
# define strtol __wcstoul_l
# endif
# else
# define strtol wcstoul
# ifdef QUAD
# define strtol __strtoull_l
# else
# define strtol __strtoul_l
# endif
# endif
# else
# ifdef QUAD
# define strtol strtouq
# ifdef USE_WIDE_CHAR
# ifdef QUAD
# define strtol __wcstoll_l
# else
# define strtol __wcstol_l
# endif
# else
# define strtol strtoul
# ifdef QUAD
# define strtol __strtoll_l
# else
# define strtol __strtol_l
# endif
# endif
# endif
#else
# ifdef USE_WIDE_CHAR
# ifdef QUAD
# define strtol wcstoq
# if UNSIGNED
# ifdef USE_WIDE_CHAR
# ifdef QUAD
# define strtol wcstoull
# else
# define strtol wcstoul
# endif
# else
# define strtol wcstol
# ifdef QUAD
# define strtol strtoull
# else
# define strtol strtoul
# endif
# endif
# else
# ifdef QUAD
# define strtol strtoq
# ifdef USE_WIDE_CHAR
# ifdef QUAD
# define strtol wcstoll
# else
# define strtol wcstol
# endif
# else
# ifdef QUAD
# define strtol strtoll
# endif
# endif
# endif
#endif
/* If QUAD is defined, we are defining `strtoq' or `strtouq',
/* If QUAD is defined, we are defining `strtoll' or `strtoull',
operating on `long long int's. */
#ifdef QUAD
# define LONG long long
# undef LONG_MIN
# define LONG_MIN LONG_LONG_MIN
# undef LONG_MAX
# define LONG_MAX LONG_LONG_MAX
# undef ULONG_MAX
# define ULONG_MAX ULONG_LONG_MAX
# define STRTOL_LONG_MIN LONG_LONG_MIN
# define STRTOL_LONG_MAX LONG_LONG_MAX
# define STRTOL_ULONG_MAX ULONG_LONG_MAX
/* The extra casts work around common compiler bugs,
e.g. Cray C 5.0.3.0 when t == time_t. */
# ifndef TYPE_SIGNED
# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
# endif
# ifndef TYPE_MINIMUM
# define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \
? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) \
: (t) 0))
# endif
# ifndef TYPE_MAXIMUM
# define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t)))
# endif
# ifndef ULONG_LONG_MAX
# define ULONG_LONG_MAX TYPE_MAXIMUM (unsigned long long)
# endif
# ifndef LONG_LONG_MAX
# define LONG_LONG_MAX TYPE_MAXIMUM (long long int)
# endif
# ifndef LONG_LONG_MIN
# define LONG_LONG_MIN TYPE_MINIMUM (long long int)
# endif
# if __GNUC__ == 2 && __GNUC_MINOR__ < 7
/* Work around gcc bug with using this constant. */
static const unsigned long long int maxquad = ULONG_LONG_MAX;
# undef ULONG_MAX
# define ULONG_MAX maxquad
# undef STRTOL_ULONG_MAX
# define STRTOL_ULONG_MAX maxquad
# endif
#else
# define LONG long
#ifndef ULONG_MAX
# define ULONG_MAX ((unsigned long) ~(unsigned long) 0)
# ifndef ULONG_MAX
# define ULONG_MAX ((unsigned long) ~(unsigned long) 0)
# endif
# ifndef LONG_MAX
# define LONG_MAX ((long int) (ULONG_MAX >> 1))
# endif
# define STRTOL_LONG_MIN LONG_MIN
# define STRTOL_LONG_MAX LONG_MAX
# define STRTOL_ULONG_MAX ULONG_MAX
#endif
#ifndef LONG_MAX
# define LONG_MAX ((long int) (ULONG_MAX >> 1))
/* We use this code also for the extended locale handling where the
function gets as an additional argument the locale which has to be
used. To access the values we have to redefine the _NL_CURRENT
macro. */
#ifdef USE_IN_EXTENDED_LOCALE_MODEL
# undef _NL_CURRENT
# define _NL_CURRENT(category, item) \
(current->values[_NL_ITEM_INDEX (item)].string)
# define LOCALE_PARAM , loc
# define LOCALE_PARAM_DECL __locale_t loc;
#else
# define LOCALE_PARAM
# define LOCALE_PARAM_DECL
#endif
#if defined _LIBC || defined HAVE_WCHAR_H
# include <wchar.h>
#endif
#ifdef USE_WIDE_CHAR
# include <wchar.h>
# include <wctype.h>
# define L_(Ch) L##Ch
# define UCHAR_TYPE wint_t
# define STRING_TYPE wchar_t
# define ISSPACE(Ch) iswspace (Ch)
# define ISALPHA(Ch) iswalpha (Ch)
# define TOUPPER(Ch) towupper (Ch)
# ifdef USE_IN_EXTENDED_LOCALE_MODEL
# define ISSPACE(Ch) __iswspace_l ((Ch), loc)
# define ISALPHA(Ch) __iswalpha_l ((Ch), loc)
# define TOUPPER(Ch) __towupper_l ((Ch), loc)
# else
# define ISSPACE(Ch) iswspace (Ch)
# define ISALPHA(Ch) iswalpha (Ch)
# define TOUPPER(Ch) towupper (Ch)
# endif
#else
# if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)
# define IN_CTYPE_DOMAIN(c) 1
# else
# define IN_CTYPE_DOMAIN(c) isascii(c)
@@ -137,12 +219,20 @@ extern int errno;
# define L_(Ch) Ch
# define UCHAR_TYPE unsigned char
# define STRING_TYPE char
# define ISSPACE(Ch) (IN_CTYPE_DOMAIN (Ch) && isspace (Ch))
# define ISALPHA(Ch) (IN_CTYPE_DOMAIN (Ch) && isalpha (Ch))
# define TOUPPER(Ch) (IN_CTYPE_DOMAIN (Ch) ? toupper (Ch) : (Ch))
# ifdef USE_IN_EXTENDED_LOCALE_MODEL
# define ISSPACE(Ch) __isspace_l ((Ch), loc)
# define ISALPHA(Ch) __isalpha_l ((Ch), loc)
# define TOUPPER(Ch) __toupper_l ((Ch), loc)
# else
# define ISSPACE(Ch) (IN_CTYPE_DOMAIN (Ch) && isspace (Ch))
# define ISALPHA(Ch) (IN_CTYPE_DOMAIN (Ch) && isalpha (Ch))
# define TOUPPER(Ch) (IN_CTYPE_DOMAIN (Ch) ? toupper (Ch) : (Ch))
# endif
#endif
#ifdef __STDC__
/* For compilers which are ansi but don't define __STDC__, like SGI
Irix-4.0.5 cc, also check whether PROTOTYPES is defined. */
#if defined (__STDC__) || defined (PROTOTYPES)
# define INTERNAL(X) INTERNAL1(X)
# define INTERNAL1(X) __##X##_internal
# define WEAKNAME(X) WEAKNAME1(X)
@@ -156,6 +246,7 @@ extern int errno;
#endif
/* Convert NPTR to an `unsigned long int' or `long int' in base BASE.
If BASE is 0 the base is determined by the presence of a leading
zero, indicating octal or a leading "0x" or "0X", indicating hexadecimal.
@@ -164,11 +255,12 @@ extern int errno;
one converted is stored in *ENDPTR. */
INT
INTERNAL (strtol) (nptr, endptr, base, group)
INTERNAL (strtol) (nptr, endptr, base, group LOCALE_PARAM)
const STRING_TYPE *nptr;
STRING_TYPE **endptr;
int base;
int group;
LOCALE_PARAM_DECL
{
int negative;
register unsigned LONG int cutoff;
@@ -180,8 +272,11 @@ INTERNAL (strtol) (nptr, endptr, base, group)
int overflow;
#ifdef USE_NUMBER_GROUPING
# ifdef USE_IN_EXTENDED_LOCALE_MODEL
struct locale_data *current = loc->__locales[LC_NUMERIC];
# endif
/* The thousands character of the current locale. */
wchar_t thousands;
wchar_t thousands = L'\0';
/* The numeric grouping specification of the current locale,
in the format described in <locale.h>. */
const char *grouping;
@@ -194,9 +289,11 @@ INTERNAL (strtol) (nptr, endptr, base, group)
else
{
/* Figure out the thousands separator character. */
if (mbtowc (&thousands, _NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP),
strlen (_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP))) <= 0)
thousands = (wchar_t) *_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP);
# if defined _LIBC || defined _HAVE_BTOWC
thousands = __btowc (*_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP));
if (thousands == WEOF)
thousands = L'\0';
# endif
if (thousands == L'\0')
grouping = NULL;
}
@@ -233,23 +330,19 @@ INTERNAL (strtol) (nptr, endptr, base, group)
else
negative = 0;
if (base == 16 && s[0] == L_('0') && TOUPPER (s[1]) == L_('X'))
s += 2;
/* If BASE is zero, figure it out ourselves. */
if (base == 0)
if (*s == L_('0'))
{
if (TOUPPER (s[1]) == L_('X'))
{
s += 2;
base = 16;
}
else
base = 8;
}
else
base = 10;
/* Recognize number prefix and if BASE is zero, figure it out ourselves. */
if (*s == L_('0'))
{
if ((base == 0 || base == 16) && TOUPPER (s[1]) == L_('X'))
{
s += 2;
base = 16;
}
else if (base == 0)
base = 8;
}
else if (base == 0)
base = 10;
/* Save the pointer so we can check later if anything happened. */
save = s;
@@ -273,8 +366,8 @@ INTERNAL (strtol) (nptr, endptr, base, group)
#endif
end = NULL;
cutoff = ULONG_MAX / (unsigned LONG int) base;
cutlim = ULONG_MAX % (unsigned LONG int) base;
cutoff = STRTOL_ULONG_MAX / (unsigned LONG int) base;
cutlim = STRTOL_ULONG_MAX % (unsigned LONG int) base;
overflow = 0;
i = 0;
@@ -314,25 +407,23 @@ INTERNAL (strtol) (nptr, endptr, base, group)
`unsigned LONG int', but outside the range of `LONG int'. */
if (overflow == 0
&& i > (negative
? -((unsigned LONG int) (LONG_MIN + 1)) + 1
: (unsigned LONG int) LONG_MAX))
? -((unsigned LONG int) (STRTOL_LONG_MIN + 1)) + 1
: (unsigned LONG int) STRTOL_LONG_MAX))
overflow = 1;
#else
overflow |= negative;
#endif
if (overflow)
{
__set_errno (ERANGE);
#if UNSIGNED
return ULONG_MAX;
return STRTOL_ULONG_MAX;
#else
return negative ? LONG_MIN : LONG_MAX;
return negative ? STRTOL_LONG_MIN : STRTOL_LONG_MAX;
#endif
}
/* Return the result of the appropriate sign. */
return (negative ? -i : i);
return negative ? -i : i;
noconv:
/* We must handle a special case here: the base is 0 or 16 and the
@@ -340,12 +431,14 @@ noconv:
hexadecimal digits. This is no error case. We return 0 and
ENDPTR points to the `x`. */
if (endptr != NULL)
if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X')
&& save[-2] == L_('0'))
*endptr = (STRING_TYPE *) &save[-1];
else
/* There was no number to convert. */
*endptr = (STRING_TYPE *) nptr;
{
if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X')
&& save[-2] == L_('0'))
*endptr = (STRING_TYPE *) &save[-1];
else
/* There was no number to convert. */
*endptr = (STRING_TYPE *) nptr;
}
return 0L;
}
@@ -369,10 +462,11 @@ INT
#ifdef weak_function
weak_function
#endif
strtol (nptr, endptr, base)
strtol (nptr, endptr, base LOCALE_PARAM)
const STRING_TYPE *nptr;
STRING_TYPE **endptr;
int base;
LOCALE_PARAM_DECL
{
return INTERNAL (strtol) (nptr, endptr, base, 0);
return INTERNAL (strtol) (nptr, endptr, base, 0 LOCALE_PARAM);
}

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 1991 Free Software Foundation, Inc.
/* Copyright (C) 1991, 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.
@@ -17,6 +17,6 @@ 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. */
#define UNSIGNED 1
#define UNSIGNED 1
#include <strtol.c>

27
lib/strtoull.c Normal file
View File

@@ -0,0 +1,27 @@
/* Function to parse an `unsigned long long int' from text.
Copyright (C) 1995, 1996, 1997, 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@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
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. */
#define QUAD 1
#include "strtoul.c"
#ifdef _LIBC
strong_alias (__strtoull_internal, __strtouq_internal)
weak_alias (strtoull, strtouq)
#endif

75
lib/strtoumax.c Normal file
View File

@@ -0,0 +1,75 @@
/* Convert string representation of a number into an uintmax_t value.
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
#if HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifndef PARAMS
# if defined PROTOTYPES || defined __STDC__
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
#ifndef HAVE_DECL_STRTOUL
unsigned long long strtoul PARAMS ((char const *, char **, int));
#endif
#ifndef HAVE_DECL_STRTOULL
unsigned long long strtoull PARAMS ((char const *, char **, int));
#endif
uintmax_t
strtoumax (char const *ptr, char **endptr, int base)
{
#define USE_IF_EQUIVALENT(function) \
if (sizeof (uintmax_t) == sizeof function (ptr, endptr, base)) \
return function (ptr, endptr, base);
#if HAVE_UNSIGNED_LONG_LONG
USE_IF_EQUIVALENT (strtoull)
#endif
USE_IF_EQUIVALENT (strtoul)
abort ();
}
#ifdef TESTING
# include <stdio.h>
int
main ()
{
char *p, *endptr;
printf ("sizeof uintmax_t: %d\n", sizeof (uintmax_t));
printf ("sizeof strtoull(): %d\n", sizeof strtoull(p, &endptr, 10));
printf ("sizeof strtoul(): %d\n", sizeof strtoul(p, &endptr, 10));
exit (0);
}
#endif

View File

@@ -1,5 +1,5 @@
/* Compare strings while treating digits characters numerically.
Copyright (C) 1997 Free Software Foundation, Inc.
Copyright (C) 1997, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jean-Francois Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
@@ -36,6 +36,15 @@
#define CMP 2
#define LEN 3
/* 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)
/* Compare S1 and S2 as strings holding indices/version numbers,
returning less than, equal to or greater than zero if S1 is less than,
@@ -83,17 +92,17 @@ strverscmp (const char *s1, const char *s2)
c1 = *p1++;
c2 = *p2++;
/* Hint: '0' is a digit too. */
state = S_N | ((c1 == '0') + (isdigit (c1) != 0));
state = S_N | ((c1 == '0') + (ISDIGIT (c1) != 0));
while ((diff = c1 - c2) == 0 && c1 != '\0')
{
state = next_state[state];
c1 = *p1++;
c2 = *p2++;
state |= (c1 == '0') + (isdigit (c1) != 0);
state |= (c1 == '0') + (ISDIGIT (c1) != 0);
}
state = result_type[state << 2 | ((c2 == '0') + (isdigit (c2) != 0))];
state = result_type[state << 2 | ((c2 == '0') + (ISDIGIT (c2) != 0))];
switch (state)
{
@@ -101,11 +110,11 @@ strverscmp (const char *s1, const char *s2)
return diff;
case LEN:
while (isdigit (*p1++))
if (!isdigit (*p2++))
while (ISDIGIT (*p1++))
if (!ISDIGIT (*p2++))
return 1;
return isdigit (*p2) ? -1 : diff;
return ISDIGIT (*p2) ? -1 : diff;
default:
return state;

View File

@@ -54,7 +54,7 @@ utime_null (const char *file)
int status = 0;
struct stat sb;
fd = open (file, O_RDWR, 0666);
fd = open (file, O_RDWR);
if (fd < 0
|| fstat (fd, &sb) < 0
|| safe_read (fd, &c, sizeof (char)) < 0

View File

@@ -15,6 +15,8 @@
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
@@ -28,20 +30,41 @@
#else
# define _(Text) Text
#endif
#define N_(Text) Text
/* Default copyright goes to the FSF. */
char* version_etc_copyright =
N_("Copyright (C) 1999 Free Software Foundation, Inc.");
/* Display the --version information the standard way.
If COMMAND_NAME is NULL, the PACKAGE is asumed to be the name of
the program. The formats are therefore:
PACKAGE VERSION
or
COMMAND_NAME (PACKAGE) VERSION. */
void
version_etc (FILE *stream,
const char *command_name, const char *package,
const char *version, const char *authors)
{
fprintf (stream, "%s (%s) %s\n", command_name, package, version);
fputs (_("\
\n\
Copyright (C) 1999 Free Software Foundation, Inc.\n\
This is free software; see the source for copying conditions. There is NO\n\
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
\n\
"
), stream);
if (command_name)
fprintf (stream, "%s (%s) %s\n", command_name, package, version);
else
fprintf (stream, "%s %s\n", package, version);
fprintf (stream, _("Written by %s.\n"), authors);
putc ('\n', stream);
fputs (_(version_etc_copyright), stream);
putc ('\n', stream);
fputs (_("\
This is free software; see the source for copying conditions. There is NO\n\
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"),
stream);
}

View File

@@ -1,3 +1,22 @@
/* Utility to help print --version output in a consistent format.
Copyright (C) 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 VERSION_ETC_H
# define VERSION_ETC_H 1
@@ -9,9 +28,11 @@
# endif
# endif
extern char *version_etc_copyright;
void
version_etc PARAMS ((FILE *stream,
const char *command_name, const char *package,
const char *version, const char *authors));
const char *command_name, const char *package,
const char *version, const char *authors));
#endif /* VERSION_ETC_H */

View File

@@ -26,6 +26,16 @@
# endif
# endif
# ifndef __attribute__
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
# define __attribute__(x)
# endif
# endif
# ifndef ATTRIBUTE_NORETURN
# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
# endif
/* Exit value when the requested amount of memory is not available.
It is initialized to EXIT_FAILURE, but the caller may set it to
some other value. */
@@ -33,20 +43,45 @@ extern int xalloc_exit_failure;
/* If this pointer is non-zero, run the specified function upon each
allocation failure. It is initialized to zero. */
extern void (*xalloc_fail_func) ();
extern void (*xalloc_fail_func) PARAMS ((void));
/* If XALLOC_FAIL_FUNC is undefined or a function that returns, this
message must be non-NULL. It is translated via gettext.
The default value is "Memory exhausted". */
extern char *const xalloc_msg_memory_exhausted;
/* This function is always triggered when memory is exhausted. It is
in charge of honoring the three previous items. This is the
function to call when one wants the program to die because of a
memory allocation failure. */
extern void xalloc_die PARAMS ((void)) ATTRIBUTE_NORETURN;
void *xmalloc PARAMS ((size_t n));
void *xcalloc PARAMS ((size_t n, size_t s));
void *xrealloc PARAMS ((void *p, size_t n));
char *xstrdup PARAMS ((const char *str));
# define XMALLOC(Type, N_items) ((Type *) xmalloc (sizeof (Type) * (N_items)))
# define XCALLOC(Type, N_items) ((Type *) xcalloc (sizeof (Type), (N_items)))
# define XREALLOC(Ptr, Type, N_items) \
((Type *) xrealloc ((void *) (Ptr), sizeof (Type) * (N_items)))
/* Declare and alloc memory for VAR of type TYPE. */
# define NEW(Type, Var) Type *(Var) = XMALLOC (Type, 1)
/* Free VAR only if non NULL. */
# define XFREE(Var) \
do { \
if (Var) \
free (Var); \
} while (0)
/* Return a pointer to a malloc'ed copy of the array SRC of NUM elements. */
# define CCLONE(Src, Num) \
(memcpy (xmalloc (sizeof (*Src) * (Num)), (Src), sizeof (*Src) * (Num)))
/* Return a malloc'ed copy of SRC. */
# define CLONE(Src) CCLONE (Src, 1)
# define XMALLOC(Type, N_bytes) ((Type *) xmalloc (sizeof (Type) * (N_bytes)))
# define XCALLOC(Type, N_bytes) ((Type *) xcalloc (sizeof (Type), (N_bytes)))
# define XREALLOC(Ptr, Type, N_bytes) \
((Type *) xrealloc ((void *) (Ptr), sizeof (Type) * (N_bytes)))
#endif /* !XALLOC_H_ */

View File

@@ -59,18 +59,22 @@ you must run the autoconf test for a properly working realloc -- see realloc.m4
int xalloc_exit_failure = EXIT_FAILURE;
/* If non NULL, call this function when memory is exhausted. */
void (*xalloc_fail_func) () = 0;
void (*xalloc_fail_func) PARAMS ((void)) = 0;
/* If XALLOC_FAIL_FUNC is NULL, or does return, display this message
before exiting when memory is exhausted. Goes through gettext. */
char *const xalloc_msg_memory_exhausted = N_("Memory exhausted");
static void
xalloc_fail (void)
void
xalloc_die (void)
{
if (xalloc_fail_func)
(*xalloc_fail_func) ();
error (xalloc_exit_failure, 0, "%s", xalloc_msg_memory_exhausted);
error (xalloc_exit_failure, 0, "%s", _(xalloc_msg_memory_exhausted));
/* The `noreturn' cannot be given to error, since it may return if
its first argument is 0. To help compilers understand the
xalloc_die does terminate, call exit. */
exit (EXIT_FAILURE);
}
/* Allocate N bytes of memory dynamically, with error checking. */
@@ -82,7 +86,7 @@ xmalloc (size_t n)
p = malloc (n);
if (p == 0)
xalloc_fail ();
xalloc_die ();
return p;
}
@@ -95,7 +99,7 @@ xrealloc (void *p, size_t n)
{
p = realloc (p, n);
if (p == 0)
xalloc_fail ();
xalloc_die ();
return p;
}
@@ -108,6 +112,6 @@ xcalloc (size_t n, size_t s)
p = calloc (n, s);
if (p == 0)
xalloc_fail ();
xalloc_die ();
return p;
}

View File

@@ -4,7 +4,7 @@
/* Work around the bug in some systems whereby @xstat@ succeeds when
given the zero-length file name argument. The @xstat@ from SunOS4.1.4
has this bug.
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 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
@@ -30,6 +30,58 @@
#ifndef errno
extern int errno;
#endif
@BEGIN_LSTAT_ONLY@
#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
char *xmalloc ();
/* lstat works different on Linux and Solaris systems. POSIX (see
`pathname resolution' in the glossary) requires that programs like `ls'
take into consideration the fact that FILE has a trailing slash when
FILE is a symbolic link. On Linux systems, the lstat function already
has the desired semantics (in treating `lstat("symlink/",sbuf)' just like
`lstat("symlink/.",sbuf)', but on Solaris it does not.
If FILE has a trailing slash and specifies a symbolic link,
then append a `.' to FILE and call lstat a second time. */
static int
slash_aware_lstat (const char *file, struct stat *sbuf)
{
size_t len;
char *new_file;
int lstat_result = lstat (file, sbuf);
if (lstat_result != 0 || !S_ISLNK (sbuf->st_mode))
return lstat_result;
len = strlen (file);
if (file[len - 1] != '/')
return lstat_result;
/* FILE refers to a symbolic link and the name ends with a slash.
Append a `.' to FILE and repeat the lstat call. */
/* Add one for the `.' we might have to append, and one more
for the trailing NUL. */
new_file = xmalloc (len + 1 + 1);
memcpy (new_file, file, len);
new_file[len] = '.';
new_file[len + 1] = 0;
lstat_result = lstat (new_file, sbuf);
free (new_file);
return lstat_result;
}
@END_LSTAT_ONLY@
/* This is a wrapper for @xstat@(2).
If FILE is the empty string, fail with errno == ENOENT.
@@ -38,6 +90,11 @@ extern int errno;
This works around the bug in some systems whereby @xstat@ succeeds when
given the zero-length file name argument. The @xstat@ from SunOS4.1.4
has this bug. */
@BEGIN_LSTAT_ONLY@
/* This function also provides a version of lstat with consistent semantics
when FILE specifies a symbolic link and has a trailing slash. */
@END_LSTAT_ONLY@
int
rpl_@xstat@ (const char *file, struct stat *sbuf)
@@ -48,5 +105,10 @@ rpl_@xstat@ (const char *file, struct stat *sbuf)
return -1;
}
return @xstat@ (file, sbuf);
@BEGIN_LSTAT_ONLY@
return slash_aware_lstat (file, sbuf);
@END_LSTAT_ONLY@
@BEGIN_STAT_ONLY@
return stat (file, sbuf);
@END_STAT_ONLY@
}

View File

@@ -1,5 +1,5 @@
/* xstrtod.c - error-checking interface to strtod
Copyright (C) 1996 Free Software Foundation, Inc.
Copyright (C) 1996, 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
@@ -32,6 +32,11 @@ double strtod ();
#include <limits.h>
#include "xstrtod.h"
/* Tell the compiler that non-default rounding modes are used. */
#if 199901 <= __STDC_VERSION__
#pragma STDC FENV_ACCESS ON
#endif
/* An interface to strtod that encapsulates all the error checking
one should usually perform. Like strtod, but upon successful
conversion put the result in *RESULT and return zero. Return
@@ -68,4 +73,3 @@ xstrtod (str, ptr, result)
*result = val;
return fail;
}

View File

@@ -1,5 +1,5 @@
/* A more useful interface to strtol.
Copyright (C) 1995, 1996, 1998 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 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
@@ -21,6 +21,12 @@
# include <config.h>
#endif
#ifndef __strtol
# define __strtol strtol
# define __strtol_t long int
# define __xstrtol xstrtol
#endif
/* Some pre-ANSI implementations (e.g. SunOS 4)
need stderr defined if assertion checking is enabled. */
#include <stdio.h>
@@ -39,6 +45,7 @@
#endif
#include <assert.h>
#include <ctype.h>
#include <errno.h>
#ifndef errno
@@ -61,34 +68,32 @@ extern int errno;
? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) : (t) 0))
#define TYPE_MAXIMUM(t) (~ (t) 0 - TYPE_MINIMUM (t))
#ifndef ULONG_MAX
# define ULONG_MAX TYPE_MAXIMUM (unsigned long int)
#endif
#ifndef LONG_MAX
# define LONG_MAX TYPE_MAXIMUM (long int)
#endif
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define IN_CTYPE_DOMAIN(c) 1
#else
# define IN_CTYPE_DOMAIN(c) isascii(c)
#endif
#ifdef isblank
# define ISBLANK(c) (IN_CTYPE_DOMAIN (c) && isblank (c))
#else
# define ISBLANK(c) ((c) == ' ' || (c) == '\t')
#endif
#define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (c))
#include "xstrtol.h"
__unsigned long int __strtol ();
#ifndef strtol
long int strtol ();
#endif
#ifndef strtoul
unsigned long int strtoul ();
#endif
#ifndef strtoumax
uintmax_t strtoumax ();
#endif
static int
bkm_scale (__unsigned long int *x, int scale_factor)
bkm_scale (__strtol_t *x, int scale_factor)
{
__unsigned long int product = *x * scale_factor;
__strtol_t product = *x * scale_factor;
if (*x != product / scale_factor)
return 1;
*x = product;
@@ -96,7 +101,7 @@ bkm_scale (__unsigned long int *x, int scale_factor)
}
static int
bkm_scale_by_power (__unsigned long int *x, int base, int power)
bkm_scale_by_power (__strtol_t *x, int base, int power)
{
while (power--)
if (bkm_scale (x, base))
@@ -109,27 +114,24 @@ bkm_scale_by_power (__unsigned long int *x, int base, int power)
strtol_error
__xstrtol (const char *s, char **ptr, int strtol_base,
__unsigned long int *val, const char *valid_suffixes)
__strtol_t *val, const char *valid_suffixes)
{
char *t_ptr;
char **p;
__unsigned long int tmp;
__strtol_t tmp;
assert (0 <= strtol_base && strtol_base <= 36);
p = (ptr ? ptr : &t_ptr);
#if STRING_TO_UNSIGNED
{
const char *q = s;
while (ISBLANK (*q))
{
if (! TYPE_SIGNED (__strtol_t))
{
const char *q = s;
while (ISSPACE ((unsigned char) *q))
++q;
}
if (*q == '-')
return LONGINT_INVALID;
}
#endif
if (*q == '-')
return LONGINT_INVALID;
}
errno = 0;
tmp = __strtol (s, p, strtol_base);
@@ -139,8 +141,8 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
return LONGINT_INVALID;
/* Let valid_suffixes == NULL mean `allow any suffix'. */
/* FIXME: update all callers except the one in tail.c changing
last parameter NULL to `""'. */
/* FIXME: update all callers except the ones that allow suffixes
after the number, changing last parameter NULL to `""'. */
if (!valid_suffixes)
{
*val = tmp;
@@ -154,7 +156,10 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
int overflow;
if (!strchr (valid_suffixes, **p))
return LONGINT_INVALID_SUFFIX_CHAR;
{
*val = tmp;
return LONGINT_INVALID_SUFFIX_CHAR;
}
if (strchr (valid_suffixes, '0'))
{
@@ -227,6 +232,7 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
break;
default:
*val = tmp;
return LONGINT_INVALID_SUFFIX_CHAR;
break;
}
@@ -258,7 +264,7 @@ main (int argc, char** argv)
for (i=1; i<argc; i++)
{
char *p;
__unsigned long int val;
__strtol_t val;
s_err = __xstrtol (argv[i], &p, 0, &val, "bckmw");
if (s_err == LONGINT_OK)

View File

@@ -1,14 +1,8 @@
#ifndef XSTRTOL_H_
# define XSTRTOL_H_ 1
# if STRING_TO_UNSIGNED
# define __xstrtol xstrtoul
# define __strtol strtoul
# define __unsigned unsigned
# else
# define __xstrtol xstrtol
# define __strtol strtol
# define __unsigned /* empty */
# if HAVE_INTTYPES_H
# include <inttypes.h> /* for uintmax_t */
# endif
# ifndef PARAMS
@@ -27,11 +21,14 @@ enum strtol_error
typedef enum strtol_error strtol_error;
# endif
strtol_error
__xstrtol PARAMS ((const char *s, char **ptr, int base,
__unsigned long int *val, const char *valid_suffixes));
# define _DECLARE_XSTRTOL(name, type) \
strtol_error \
name PARAMS ((const char *s, char **ptr, int base, \
type *val, const char *valid_suffixes));
_DECLARE_XSTRTOL (xstrtol, long int)
_DECLARE_XSTRTOL (xstrtoul, unsigned long int)
_DECLARE_XSTRTOL (xstrtoumax, uintmax_t)
# undef _STRTOL_ERROR
# define _STRTOL_ERROR(Exit_code, Str, Argument_type_string, Err) \
do \
{ \
@@ -51,8 +48,7 @@ strtol_error
break; \
\
case LONGINT_OVERFLOW: \
/* FIXME: make this message dependent on STRING_TO_UNSIGNED */\
error ((Exit_code), 0, "%s `%s' larger than maximum long int",\
error ((Exit_code), 0, "%s `%s' too large", \
(Argument_type_string), (Str)); \
break; \
} \

View File

@@ -1,2 +1,4 @@
#define STRING_TO_UNSIGNED 1
#define __strtol strtoul
#define __strtol_t unsigned long int
#define __xstrtol xstrtoul
#include "xstrtol.c"

View File

@@ -1,13 +0,0 @@
#ifndef XSTRTOUL_H_
# define XSTRTOUL_H_ 1
# define STRING_TO_UNSIGNED 1
/* Undefine this symbol so we can include xstrtol.h a second time.
Otherwise, a program that wanted both xstrtol.h and xstrtoul.h
would never get the declaration corresponding to the header file
included after the first one. */
# undef XSTRTOL_H_
# include "xstrtol.h"
#endif /* not XSTRTOUL_H_ */

31
lib/xstrtoumax.c Normal file
View File

@@ -0,0 +1,31 @@
/* xstrtoumax.c -- A more useful interface to strtoumax.
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
#if HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#define __strtol strtoumax
#define __strtol_t uintmax_t
#define __xstrtol xstrtoumax
#include "xstrtol.c"

View File

@@ -1,3 +1,382 @@
2000-01-30 Jim Meyering <meyering@lucent.com>
* lib-check.m4: Clean up some kludgy old shadow password tests.
* prereq.m4 (utmp_includes): Define.
Check for ut_user and ut_name members in both struct utmpx
and struct utmp.
2000-01-29 Jim Meyering <meyering@lucent.com>
* lib-check.m4: New file containing library-related checks from
fileutils and sh-utils (textutils had none).
2000-01-28 Jim Meyering <meyering@lucent.com>
* perl.m4: Change format of warning message to look more like that
from the missing script. Suggestion from François Pinard.
2000-01-25 Jim Meyering <meyering@lucent.com>
* timespec.m4: Require AC_HEADER_TIME, and include sys/time.h as well
as time.h in the compile check.
* nanosleep.m4: Require AC_HEADER_TIME rather than simply using it.
Fix typo in cross-compiling case: s/yes/no/.
2000-01-23 Jim Meyering <meyering@lucent.com>
* jm-macros.m4: Move df-related tests here from fileutils/configure.in
* ls-mntd-fs.m4: s/list_mounted_fs/ac_list_mounted_fs/
(jm_LIST_MOUNTED_FILESYSTEMS): Take two parameters.
* fsusage.m4: New file. Extracted from fileutils/configure.in.
s/space/ac_fsusage_space/.
(jm_FILE_SYSTEM_USAGE): Take two parameters.
* ftruncate.m4: New file (derived from part of fileutils/configure.in).
* jm-macros.m4: (jm_FUNC_FTRUNCATE): AC_REQUIRE it.
(jm_CHECK_ALL_TYPES): Require AC_HEADER_MAJOR and AC_HEADER_DIRENT.
* jm-macros.m4: (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.
(AM_FUNC_OBSTACK): Add (from fileutils/configure.in).
(AC_CHECK_FUNCS): Merge all checks from fileutils, textutils, sh-utils.
(AM_FUNC_STRTOD): Added (from textutils', sh-utils' configure.in).
(AC_SUBST(POW_LIBM)): Likewise.
(AC_SUBST(DF_PROG)): Moved from fileutils/configure.in.
2000-01-22 Jim Meyering <meyering@lucent.com>
* jm-macros.m4: Call AC_PROG_CC_STDC just before AC_C_CONST.
* prereq.m4 (jm_PREREQ_QUOTEARG): Add wctype.h.
* jm-macros.m4 (AC_CHECK_HEADERS): Add checks from fileutils'
configure.in
(AC_CHECK_HEADERS): Likewise for sh-utils.
(AC_CHECK_HEADERS): Likewise for textutils.
Merge the three lists of headers.
* prereq.m4 (jm_PREREQ_ADDEXT): New macro. Parts moved here
from fileutils' configure.in.
* decl.m4: Remove kludgy `test -z $ac_...AC_CHECK_HEADERS(...)' code.
Moved tests into their own function (_jm_DECL_HEADERS) in check-decl.m4.
* check-decl.m4: Use #if rather than #ifdef.
Add HAVE_DECL_STRTOUL and HAVE_DECL_STRTOULL.
(jm_CHECK_DECLARATIONS): Add strtoul strtoull.
(_jm_DECL_HEADERS): Define new function.
(jm_CHECK_DECLARATIONS): Require it.
2000-01-19 Jim Meyering <meyering@lucent.com>
* nanosleep.m4 (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>
* c-bs-a.m4: Remove uses of changequote altogether.
Thanks to Akim for explaining.
2000-01-16 Jim Meyering <meyering@lucent.com>
* jm-macros.m4: 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, AC_FUNC_ALLOCA,
AM_FUNC_GETLOADAVG, and jm_SYS_PROC_UPTIME.
2000-01-16 Jim Meyering <meyering@lucent.com>
* c-bs-a.m4: Use `changequote(<<,>>)', rather than `changequote(, )'
because the latter didn't work.
2000-01-15 Jim Meyering <meyering@lucent.com>
* jm-macros.m4 (AC_REPLACE_FUNCS): Add gethostname and getusershell.
(AC_REPLACE_FUNCS): Add memcpy and memset.
Add these, too: stime strcspn stpcpy strstr strtol strtoul.
Add strpbrk.
Add these: euidaccess memcmp mkdir rmdir rpmatch strndup strverscmp.
2000-01-12 Jim Meyering <meyering@lucent.com>
* prereq.m4 (jm_PREREQ_CANON_HOST): New macro.
(jm_PREREQ): Use it.
(jm_PREREQ_READUTMP): New macro.
(jm_PREREQ): Use it.
2000-01-11 Paul Eggert <eggert@twinsun.com>
Quote multibyte characters correctly.
* m4/c-bs-a.m4: New file.
* m4/prereq.m4 (jm_PREREQ_QUOTEARG): New macro.
(jm_PREREQ): Use it.
2000-01-11 Paul Eggert <eggert@twinsun.com>
* m4/uintmax_t.m4: Port to autoconf 2.13.
2000-01-08 Jim Meyering <meyering@ascend.com>
* strerror_r.m4 (jm_FUNC_STRERROR_R): New file/macro.
* jm-macros.m4 (jm_FUNC_STRERROR_R): Require it.
2000-01-04 Jim Meyering <meyering@ascend.com>
* d-type.m4 (jm_CHECK_TYPE_STRUCT_DIRENT_D_TYPE): Rename from
jm_STRUCT_DIRENT_D_TYPE.
* d-ino.m4: (jm_CHECK_TYPE_STRUCT_DIRENT_D_INO): Rename from
jm_STRUCT_DIRENT_D_INO.
* utimbuf.m4 (jm_CHECK_TYPE_STRUCT_UTIMBUF): Rename from
jm_STRUCT_UTIMBUF.
* jm-macros.m4: Reflect s/jm_STRUCT_/jm_CHECK_TYPE_STRUCT_/ renamings.
* utime.m4: Likewise.
* timespec.m4 (jm_CHECK_TYPE_STRUCT_TIMESPEC): New file, macro.
* jm-macros.m4 (jm_CHECK_TYPE_STRUCT_TIMESPEC): Require it.
2000-01-03 Paul Eggert <eggert@twinsun.com>
* nanosleep.m4 (jm_FUNC_NANOSLEEP): Search for nanosleep in -lrt
(for Solaris 7) and in -lposix4 (for Solaris 2.5.1).
2000-01-02 Jim Meyering <meyering@ascend.com>
* search-libs.m4: Escape `$' in $3 of dnl comment. I no longer
remember if this is necessary.
1999-12-26 Jim Meyering <meyering@ascend.com>
* jm-macros.m4: Use it here.
* nanosleep.m4 (jm_FUNC_NANOSLEEP): New file/macro.
1999-12-23 Jim Meyering <meyering@ascend.com>
* jm-macros.m4: Check for clock_gettime (moved from
fileutils/configure.in)
Check for gettimeofday.
1999-12-20 Jim Meyering <meyering@ascend.com>
* strftime.m4: Remove kludge, now that I'm using the fixed
autoconf-2.14a-1999-12-20.
1999-12-19 Jim Meyering <meyering@ascend.com>
* lstat-slash.m4: New file.
* jm-macros.m4: Use the new macro:
jm_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK.
1999-12-07 Jim Meyering <meyering@ascend.com>
* perl.m4: Require that File::Compare be available, too.
Too many systems seem to lack it.
* strftime.m4: Add checks for most of the cpp macros tested in
GNU's strftime.c. Prompted by a patch from Paul Eggert.
1999-11-18 Paul Eggert <eggert@twinsun.com>
* m4/largefile.m4 (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-17 Jim Meyering <meyering@ascend.com>
* gettext.m4: Use new AC_CONFIG_LINKS in place of AC_LINK_FILES.
1999-11-07 Jim Meyering <meyering@ascend.com>
* getloadavg.m4: Add `, 1, [FIXME]' to each use of AC_DEFINE.
1999-11-06 Jim Meyering <meyering@ascend.com>
* link-follow.m4 (jm_AC_FUNC_LINK_FOLLOWS_SYMLINK): New file/macro.
* jm-macros.m4 (jm_MACROS): Use it here.
1999-11-05 Jim Meyering <meyering@ascend.com>
* jm-macros.m4 (jm_CHECK_ALL_TYPES): Move some tests from configure.in
of textutils, fileutils, and sh-utils into this one (shared between
those packages) file.
Use `AC_CHECK_MEMBERS((struct stat.st_blksize))' instead of deprecated
AC_STRUCT_ST_BLKSIZE.
1999-11-03 Jim Meyering <meyering@ascend.com>
* ssize_t.m4: Remove file. No longer needed since the new version of
AC_CHECK_TYPE checks includes unistd.h.
* jm-macros.m4: Use straight `AC_CHECK_TYPE(ssize_t, int)'.
Suggestion from Akim Demaille.
1999-10-30 Jim Meyering <meyering@ascend.com>
* uintmax_t.m4: Require 2.14a. Remove backslash before backtick in
m4-quoted string.
* ls-mntd-fs.m4: Likewise.
* jm-macros.m4: Likewise. Also, use AC_TYPE_SSIZE_T instead
* jm-winsz1.m4: Likewise.
* const.m4: Remove file, since the fix made it into the experimental
version of autoconf.
* mktime.m4: Likewise.
* check-type.m4: Remove file, now that the latest version of
AC_CHECK_TYPE takes a third arg to specify additional #includes.
* ssize_t.m4: New file, requires experimental version of autoconf.
* jm-macros.m4: Use new AC_TYPE_SSIZE_T instead of my hacked
AC_CHECK_TYPE.
1999-10-04 Jim Meyering <meyering@ascend.com>
* jm-macros.m4: Don't require autoconf-2.14.1.
1999-09-22 Paul Eggert <eggert@twinsun.com>
* largefile.m4 (AC_SYS_LARGEFILE_FLAGS): Work around GCC
2.95.1 bug with HP-UX 10.20.
1999-09-17 Jim Meyering <meyering@ascend.com>
* jm-macros.m4 (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-08-29 Jim Meyering <meyering@ascend.com>
* jm-macros.m4: Require jm_BISON.
* bison.m4: New file.
1999-08-17 Paul Eggert <eggert@twinsun.com>
* m4/largefile.m4 (AC_SYS_LARGEFILE): Fix typo: missing comma
in value for _FILE_OFFSET_BITS, which broke ports to HP-UX 10.20.
1999-08-05 Jim Meyering <meyering@ascend.com>
* getline.m4: Rename test file from conftestdata to conftest.data
to avoid conflicts with `conftest' on 8+3 filesystems.
Suggestion from Eli Zaretskii.
1999-08-04 Jim Meyering <meyering@ascend.com>
* jm-macros.m4: Move a 4-line block of code from the configure.in of
fileutils and sh-utils (textutils's getline test was inadequate).
(AM_FUNC_GETLINE): Run this test.
(AC_CHECK_FUNCS): Check for getdelim.
Reported by Bob Proulx.
1999-08-02 Jim Meyering <meyering@ascend.com>
* jm-macros.m4: Add a comment.
1999-08-01 Jim Meyering <meyering@ascend.com>
* mktime.m4 (AC_FUNC_MKTIME): Undefine to avoid syntax errors from m4.
1999-08-01 Paul Eggert <eggert@twinsun.com>
* lfs.m4: Remove this file.
* largefile.m4: 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-07-16 Paul Eggert <eggert@twinsun.com>
* ulonglong.m4 (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-07-14 Paul Eggert <eggert@twinsun.com>
* xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX): Check whether
<inttypes.h> defines strtoumax as a macro (and not as a
function).
1999-07-05 Paul Eggert <eggert@twinsun.com>
* gettext.m4 (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-07-03 Paul Eggert <eggert@twinsun.com>
* mktime.m4: New file, which is a preview of what should appear
in the next public autoconf release.
1999-07-20 Jim Meyering <meyering@ascend.com>
* jm-macros.m4 (AC_REPLACE_FUNCS): Add memmove.
1999-07-15 Jim Meyering <meyering@ascend.com>
* jm-macros.m4: (AC_CHECK_FUNCS): Check for getpagesize.
1999-05-22 Jim Meyering <meyering@ascend.com>
* jm-macros.m4 (AC_REPLACE_FUNCS): Add memchr.
1999-05-20 Jim Meyering <meyering@ascend.com>
* search-libs.m4 [AC_SEARCH_LIBS]: Quote name in undefine.
Add a colon after each `then' in case $4 is empty.
1999-05-16 Jim Meyering <meyering@ascend.com>
* search-libs.m4: New file to override autoconf's AC_SEARCH_LIBS.
1999-05-10 Jim Meyering <meyering@ascend.com>
* jm-mktime.m4: Reflect renaming: AM_FUNC_MKTIME -> AC_FUNC_MKTIME.
* jm-macros.m4: Require 2.14.1, since we use newly-renamed
AC_FUNC_MKTIME.
1999-05-10 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* jm-mktime.m4, putenv.m4: Fix typos in config.h comments.
1999-05-04 Paul Eggert <eggert@twinsun.com>
* lfs.m4 (AC_LFS): -n32, -o32, and -n64 should be in CFLAGS,
not CPPFLAGS, so that linking works correctly in IRIX.
1999-04-30 Paul Eggert <eggert@twinsun.com>
* jm-macros.m4 (AC_REPLACE_FUNCS): Add dup2.
1999-04-20 Jim Meyering <meyering@ascend.com>
* xstrtoumax.m4: Require jm_AC_TYPE_UNSIGNED_LONG_LONG.
AC_REPLACE xstroull if necessary. From Paul Eggert.
(AC_CHECK_FUNCS): Remove strtoull, strtoumax, strtouq.
1999-04-20 Paul Eggert <eggert@twinsun.com>
* uintmax_t.m4 (jm_AC_TYPE_UINTMAX_T): Move unsigned long
long check into new jm_AC_TYPE_UNSIGNED_LONG_LONG macro.
* jm-macros.m4 (jm_CHECK_ALL_TYPES): Require
jm_AC_TYPE_UNSIGNED_LONG_LONG.
* ulonglong.m4 (jm_AC_TYPE_UNSIGNED_LONG_LONG): New file/macro.
* lfs.m4: Port to AIX and HP-UX. Support cross-compilation.
1999-04-18 Jim Meyering <meyering@ascend.com>
* xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX): New file/macro.
* jm-macros.m4: Use it.
1999-04-06 Jim Meyering <meyering@ascend.com>
* strftime.m4: Remove test for %f.
1999-03-29 Jim Meyering <meyering@ascend.com>
* jm-macros.m4 (jm_CHECK_ALL_TYPES): New macro, contains the
@@ -39,7 +418,7 @@
* group-member.m4: New file -- extracted from sh-utils' configure.in.
1999-02-05 Eli Zaretskii <eliz@is.elta.co.il>
* m4/gettext.m4: Support DOS-style d:/foo/bar absolute file names.
* gettext.m4: Support DOS-style d:/foo/bar absolute file names.
1999-02-06 Jim Meyering <meyering@ascend.com>
@@ -388,7 +767,7 @@
Add lseek and memchr.
* decl.m4: s/HAVE_DECLARATION_/HAVE_DECL_/g.
T.E.Dickey <dickey@clark.net> said that some older preprocessors
T.E.Dickey <dickey@clark.net> said that some older preprocessors
have a 20-character limit on names.
1997-11-30 Jim Meyering <meyering@na-net.ornl.gov>

View File

@@ -4,16 +4,18 @@
EXTRA_DIST = README Makefile.am.in \
afs.m4 \
assert.m4 \
bison.m4 \
c-bs-a.m4 \
check-decl.m4 \
check-type.m4 \
chown.m4 \
const.m4 \
d-ino.m4 \
d-type.m4 \
decl.m4 \
error.m4 \
fnmatch.m4 \
fstypename.m4 \
fsusage.m4 \
ftruncate.m4 \
getgroups.m4 \
getline.m4 \
getloadavg.m4 \
@@ -27,13 +29,17 @@ jm-macros.m4 \
jm-mktime.m4 \
jm-winsz1.m4 \
jm-winsz2.m4 \
largefile.m4 \
lchown.m4 \
lcmessage.m4 \
lfs.m4 \
lib-check.m4 \
link-follow.m4 \
ls-mntd-fs.m4 \
lstat-slash.m4 \
lstat.m4 \
malloc.m4 \
memcmp.m4 \
nanosleep.m4 \
perl.m4 \
prereq.m4 \
progtest.m4 \
@@ -41,15 +47,20 @@ putenv.m4 \
readdir.m4 \
realloc.m4 \
regex.m4 \
search-libs.m4 \
st_dm_mode.m4 \
st_mtim.m4 \
stat.m4 \
strerror_r.m4 \
strftime.m4 \
timespec.m4 \
uintmax_t.m4 \
ulonglong.m4 \
uptime.m4 \
utimbuf.m4 \
utime.m4 \
utimes.m4
utimes.m4 \
xstrtoumax.m4
##m4-files-end
Makefile.am: Makefile.am.in

View File

@@ -57,12 +57,22 @@ 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@
@@ -76,7 +86,6 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -90,27 +99,86 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SEQ_LIBM = @SEQ_LIBM@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
YACC = @YACC@
install_sh = @install_sh@
l = @l@
EXTRA_DIST = README Makefile.am.in afs.m4 assert.m4 check-decl.m4 check-type.m4 chown.m4 const.m4 d-ino.m4 d-type.m4 decl.m4 error.m4 fnmatch.m4 fstypename.m4 getgroups.m4 getline.m4 getloadavg.m4 gettext.m4 glibc.m4 group-member.m4 inttypes_h.m4 isc-posix.m4 jm-glibc-io.m4 jm-macros.m4 jm-mktime.m4 jm-winsz1.m4 jm-winsz2.m4 lchown.m4 lcmessage.m4 lfs.m4 ls-mntd-fs.m4 lstat.m4 malloc.m4 memcmp.m4 perl.m4 prereq.m4 progtest.m4 putenv.m4 readdir.m4 realloc.m4 regex.m4 st_dm_mode.m4 st_mtim.m4 stat.m4 strftime.m4 uintmax_t.m4 uptime.m4 utimbuf.m4 utime.m4 utimes.m4
EXTRA_DIST = README Makefile.am.in \
afs.m4 \
assert.m4 \
bison.m4 \
c-bs-a.m4 \
check-decl.m4 \
chown.m4 \
d-ino.m4 \
d-type.m4 \
decl.m4 \
error.m4 \
fnmatch.m4 \
fstypename.m4 \
fsusage.m4 \
ftruncate.m4 \
getgroups.m4 \
getline.m4 \
getloadavg.m4 \
gettext.m4 \
glibc.m4 \
group-member.m4 \
inttypes_h.m4 \
isc-posix.m4 \
jm-glibc-io.m4 \
jm-macros.m4 \
jm-mktime.m4 \
jm-winsz1.m4 \
jm-winsz2.m4 \
largefile.m4 \
lchown.m4 \
lcmessage.m4 \
lib-check.m4 \
link-follow.m4 \
ls-mntd-fs.m4 \
lstat-slash.m4 \
lstat.m4 \
malloc.m4 \
memcmp.m4 \
nanosleep.m4 \
perl.m4 \
prereq.m4 \
progtest.m4 \
putenv.m4 \
readdir.m4 \
realloc.m4 \
regex.m4 \
search-libs.m4 \
st_dm_mode.m4 \
st_mtim.m4 \
stat.m4 \
strerror_r.m4 \
strftime.m4 \
timespec.m4 \
uintmax_t.m4 \
ulonglong.m4 \
uptime.m4 \
utimbuf.m4 \
utime.m4 \
utimes.m4 \
xstrtoumax.m4
subdir = m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
DIST_SOURCES =
DIST_COMMON = README ChangeLog Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
@@ -127,18 +195,11 @@ TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = m4
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnits m4/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir); \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
@@ -180,6 +241,7 @@ distclean-generic:
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
-rm -f Makefile.in
mostlyclean-am: mostlyclean-generic
mostlyclean: mostlyclean-am
@@ -201,7 +263,7 @@ maintainer-clean: maintainer-clean-am
.PHONY: 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 installdirs mostlyclean-generic \
all-redirect all-am all install-strip installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean

8
m4/bison.m4 Normal file
View File

@@ -0,0 +1,8 @@
#serial 1
AC_DEFUN(jm_BISON,
[
# getdate.y works with bison only.
: ${YACC='bison -y'}
AC_SUBST(YACC)
])

23
m4/c-bs-a.m4 Normal file
View File

@@ -0,0 +1,23 @@
#serial 3
dnl From Paul Eggert.
AC_DEFUN(AC_C_BACKSLASH_A,
[
AC_CACHE_CHECK([whether backslash-a works in strings], ac_cv_c_backslash_a,
[AC_TRY_COMPILE([],
[
#if '\a' == 'a'
syntax error;
#endif
char buf['\a' == 'a' ? -1 : 1];
buf[0] = '\a';
return buf[0] != "\a"[0];
],
ac_cv_c_backslash_a=yes,
ac_cv_c_backslash_a=no)])
if test $ac_cv_c_backslash_a = yes; then
AC_DEFINE(HAVE_C_BACKSLASH_A, 1,
[Define if backslash-a works in C strings.])
fi
])

View File

@@ -1,26 +1,27 @@
#serial 5
#serial 6
dnl This is just a wrapper function to encapsulate this kludge.
dnl Putting it in a separate file like this helps share it between
dnl different packages.
AC_DEFUN(jm_CHECK_DECLS,
[
AC_REQUIRE([_jm_DECL_HEADERS])
headers='
#include <stdio.h>
#ifdef HAVE_STRING_H
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#else
# ifdef HAVE_STRINGS_H
# if HAVE_STRINGS_H
# include <strings.h>
# endif
#endif
#ifdef HAVE_STDLIB_H
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifdef HAVE_UNISTD_H
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
'
@@ -38,8 +39,18 @@ AC_DEFUN(jm_CHECK_DECLS,
AC_DEFINE(HAVE_DECL_REALLOC, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_STPCPY, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_STRSTR, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_STRTOUL, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_STRTOULL, 1, [Define if this function is declared.])
fi
jm_CHECK_DECLARATIONS($headers, free lseek malloc \
memchr realloc stpcpy strstr)
memchr realloc stpcpy strstr strtoul strtoull)
])
dnl FIXME: when autoconf has support for it.
dnl This is a little helper so we can require these header checks.
AC_DEFUN(_jm_DECL_HEADERS,
[
AC_REQUIRE([AC_HEADER_STDC])
AC_CHECK_HEADERS(memory.h string.h strings.h stdlib.h unistd.h)
])

View File

@@ -1,30 +0,0 @@
#serial 2
dnl Just like AC_CHECK_TYPE from autoconf-2.12, but also checks in unistd.h
dnl on systems that have it. Fujitsu UXP/V needs this for ssize_t.
dnl Now, also uses the three-argument form of AC_DEFINE.
undefine([AC_CHECK_TYPE])
dnl AC_CHECK_TYPE(TYPE, DEFAULT)
AC_DEFUN(AC_CHECK_TYPE,
[AC_REQUIRE([AC_HEADER_STDC])dnl
AC_CHECK_HEADERS(unistd.h)
AC_MSG_CHECKING(for $1)
AC_CACHE_VAL(ac_cv_type_$1,
[AC_EGREP_CPP(dnl
changequote(<<,>>)dnl
<<$1[^a-zA-Z_0-9]>>dnl
changequote([,]), [#include <sys/types.h>
#if STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl
AC_MSG_RESULT($ac_cv_type_$1)
if test $ac_cv_type_$1 = no; then
AC_DEFINE($1, $2,
[ Define to \`$2' if certain system header files doesn't define it.])
fi
])

View File

@@ -1,66 +0,0 @@
#serial 1
dnl Just like AC_C_CONST from autoconf-2.12, but with an initializer
dnl for `charset x' and with
dnl AC_DEFINE(const, )
dnl changed to
dnl AC_DEFINE_UNQUOTED(const, [/* empty */])
dnl to avoid this warning:
dnl [...]/m4: Warning: Excess arguments to built-in `define' ignored
undefine([AC_C_CONST])
AC_DEFUN(AC_C_CONST,
[dnl This message is consistent in form with the other checking messages,
dnl and with the result message.
AC_CACHE_CHECK([for working const], ac_cv_c_const,
[AC_TRY_COMPILE(,
changequote(<<, >>)dnl
<<
/* Ultrix mips cc rejects this. */
typedef int charset[2]; const charset x = {0, 0};
/* SunOS 4.1.1 cc rejects this. */
char const *const *ccp;
char **p;
/* NEC SVR4.0.2 mips cc rejects this. */
struct point {int x, y;};
static struct point const zero = {0,0};
/* AIX XL C 1.02.0.0 rejects this.
It does not let you subtract one const X* pointer from another in an arm
of an if-expression whose if-part is not a constant expression */
const char *g = "string";
ccp = &g + (g ? g-g : 0);
/* HPUX 7.0 cc rejects these. */
++ccp;
p = (char**) ccp;
ccp = (char const *const *) p;
{ /* SCO 3.2v4 cc rejects this. */
char *t;
char const *s = 0 ? (char *) 0 : (char const *) 0;
*t++ = 0;
}
{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
int x[] = {25, 17};
const int *foo = &x[0];
++foo;
}
{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
typedef const int *iptr;
iptr p = 0;
++p;
}
{ /* AIX XL C 1.02.0.0 rejects this saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
struct s { int j; const int *ap[3]; };
struct s *b; b->j = 5;
}
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
const int foo = 10;
}
>>,
changequote([, ])dnl
ac_cv_c_const=yes, ac_cv_c_const=no)])
if test $ac_cv_c_const = no; then
AC_DEFINE_UNQUOTED(const, [/* empty */])
fi
])

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