Compare commits

...

2033 Commits

Author SHA1 Message Date
Jim Meyering
382b921d64 *** empty log message *** 2002-12-13 22:13:05 +00:00
Jim Meyering
6f8678a3ec *** empty log message *** 2002-12-13 22:11:32 +00:00
Jim Meyering
7d00f03b1f Allow for a directory of size `0'.
That happens at least on file systems of type tmpfs on linux-2.4.18.
2002-12-13 22:11:28 +00:00
Jim Meyering
1e966014d0 . 2002-12-13 21:03:55 +00:00
Jim Meyering
3a550fd99a . 2002-12-13 20:46:19 +00:00
Jim Meyering
e1ecc43b28 . 2002-12-13 20:25:24 +00:00
Jim Meyering
7861a52f98 remove Ascend::Init 2002-12-13 20:24:02 +00:00
Jim Meyering
93758bb4d9 (announcement): Invoke announce-gen. 2002-12-13 20:23:39 +00:00
Jim Meyering
3643096a84 (EXTRA_DIST): Add announce-gen. 2002-12-13 20:23:29 +00:00
Jim Meyering
1ac9a613b3 *** empty log message *** 2002-12-13 20:20:39 +00:00
Jim Meyering
db26c228ed . 2002-12-13 19:52:05 +00:00
Jim Meyering
d88598865b *** empty log message *** 2002-12-13 09:15:09 +00:00
Jim Meyering
edc5c8412f (TESTS): Add preserve-2. 2002-12-13 09:15:00 +00:00
Jim Meyering
22bf522917 New file/test, for latest fix. 2002-12-13 09:14:36 +00:00
Jim Meyering
1d6fcb7121 update 2002-12-13 09:07:38 +00:00
Jim Meyering
50547ce12d *** empty log message *** 2002-12-11 23:46:04 +00:00
Jim Meyering
7ba3e40970 Fix a bug whereby cp would fail to parse an option like
--preserve=mode,ownership.

(decode_preserve_arg): Advance `comma' to
point the character following the comma.
2002-12-11 23:44:23 +00:00
Jim Meyering
990f8082fd *** empty log message *** 2002-12-11 13:40:59 +00:00
Jim Meyering
a8bdf659cc . 2002-12-11 10:12:41 +00:00
Jim Meyering
f551da2212 *** empty log message *** 2002-12-11 10:01:00 +00:00
Jim Meyering
bd385df70a (NEED_PATHCONF_WRAPPER): Undefine before defining,
in case it's already defined.
2002-12-11 10:00:57 +00:00
Jim Meyering
b8b8ba810c . 2002-12-11 07:25:05 +00:00
Jim Meyering
5e71874cd7 *** empty log message *** 2002-12-11 07:21:46 +00:00
Jim Meyering
839df841d3 Sync from gnulib. 2002-12-11 07:21:42 +00:00
Jim Meyering
c15db5ab2a *** empty log message *** 2002-12-11 07:21:20 +00:00
Jim Meyering
6e04172718 Maintain this file manually rather than generating it.
Generating it caused too much trouble.  From gnulib.
2002-12-11 07:21:14 +00:00
Jim Meyering
8e5b4e9c2b update from gnulib 2002-12-09 10:30:01 +00:00
Jim Meyering
b16ec81def *** empty log message *** 2002-12-09 09:42:08 +00:00
Jim Meyering
294a26c23c Don't get a test failure if /no exists.
Instead, evoke a framework failure if /no-$$ exists.
2002-12-09 09:41:53 +00:00
Jim Meyering
833afe42f0 *** empty log message *** 2002-12-08 20:55:37 +00:00
Jim Meyering
8cf6e02841 *** empty log message *** 2002-12-08 20:55:02 +00:00
Jim Meyering
f2af80ecd0 *** empty log message *** 2002-12-08 20:51:59 +00:00
Jim Meyering
7b352458d0 (lstat) [! LSTAT_FOLLOWS_SLASHED_SYMLINK]:
Define to rpl_lstat, so that even on systems like Solaris 5.8,
du honors (per POSIX) the trailing slash on an argument referring
to a symlink-to-directory.
2002-12-08 20:51:55 +00:00
Jim Meyering
abf1b2450f *** empty log message *** 2002-12-06 15:42:31 +00:00
Jim Meyering
ccb20835c1 . 2002-12-06 15:42:12 +00:00
Jim Meyering
a461cf1008 add a FIXME comment 2002-12-06 15:38:34 +00:00
Jim Meyering
b48a49d0f7 *** empty log message *** 2002-12-06 15:38:26 +00:00
Jim Meyering
2eae3898bf *** empty log message *** 2002-12-06 14:28:02 +00:00
Jim Meyering
08301486f0 (TESTS): Add file-type. 2002-12-06 14:27:58 +00:00
Jim Meyering
0338d23883 from gnulib 2002-12-06 14:24:22 +00:00
Jim Meyering
ebb4bf20aa *** empty log message *** 2002-12-06 14:23:44 +00:00
Jim Meyering
fc670bfb38 *** empty log message *** 2002-12-06 14:16:13 +00:00
Jim Meyering
10fc9c5ee9 (gobble_file): Also stat the file if it's a
regular file and --indicator-style=classify (aka -F).
2002-12-06 14:16:09 +00:00
Jim Meyering
93968df340 *** empty log message *** 2002-12-06 13:47:50 +00:00
Jim Meyering
431c521fef A test to contrast ls -F and ls --indicator-style=file-type. 2002-12-06 13:47:40 +00:00
Jim Meyering
0d35ee704b Add copyright notice.
(libfetish_a_SOURCES): Add unlocked-io.h.
(BUILT_SOURCES, all-local): Remove unlocked-io.h.
(DISTCLEANFILES, io_functions): Remove macros.
(EXTRA_DIST): Remove gen_uio.
(unlocked-io.h): Remove rule.
2002-12-06 13:38:15 +00:00
Jim Meyering
6fe922b850 remove, now that unlocked-io.h is maintained manually 2002-12-06 13:37:49 +00:00
Jim Meyering
5d1b828601 *** empty log message *** 2002-12-06 13:37:15 +00:00
Jim Meyering
76fd0dbc45 New file, but with proper copyright notice and
attribution.  Note: this is *not* the same as the file in gnulib.
This uses #if HAVE_FUNC_UNLOCKED for each `FUNC', rather than
HAVE_DECL_FUNC_UNLOCKED.  This usage is consistent with the autoconf
macro in ../m4/jm-glibc-io.m4.  Modulo comments, this file still
contains exactly what was generated by gen-uio.
2002-12-06 13:37:11 +00:00
Jim Meyering
e84a62d126 . 2002-12-06 13:33:23 +00:00
Jim Meyering
b9e8939e0f *** empty log message *** 2002-12-06 08:33:28 +00:00
Jim Meyering
c8a0110617 this is the old, generated version 2002-12-06 08:28:58 +00:00
Jim Meyering
5327503574 *** empty log message *** 2002-12-06 08:23:55 +00:00
Jim Meyering
1252175d43 [defined emacs]: Include "lisp.h".
(xalloc_die) [defined emacs]: New macro.
(free) [defined emacs && defined EMACS_FREE]: Define to EMACS_FREE.
[! defined emacs]: Include <xalloc.h>.
(POINTER_TYPE) [!defined POINTER_TYPE]: New macro.
(pointer): Typedef to POINTER_TYPE *.
(malloc): Remove decl; we now always use xmalloc.
(alloca): Use old-style definition, since Emacs needs this.
Check for arithmetic overflow when computing combined size.
2002-12-06 08:23:28 +00:00
Jim Meyering
1e4ba6c553 update copyright from gnulib 2002-12-06 08:09:12 +00:00
Jim Meyering
663374c9b6 . 2002-12-06 07:36:39 +00:00
Jim Meyering
ada9db6db9 update comment 2002-12-04 19:33:57 +00:00
Jim Meyering
f0675b7477 *** empty log message *** 2002-12-04 19:29:46 +00:00
Jim Meyering
2a825723f1 whoops. Add -F 2002-12-04 19:28:22 +00:00
Jim Meyering
7c42947dc5 Make sure the symlink was created.
Richard Dawe reported that `ln -s link link' succeeds, but creates
no file on systems running some version of the DJGPP libc.
2002-12-04 19:23:33 +00:00
Jim Meyering
75a84d6f4a *** empty log message *** 2002-12-04 10:07:59 +00:00
Jim Meyering
08e032083c . 2002-12-04 08:59:41 +00:00
Jim Meyering
47d074ba3f Reflect the fact that stat.c and lstat.c are no longer generated.
(BUILT_SOURCES): Remove stat.c and lstat.c.
(DISTCLEANFILES): Likewise.
(EXTRA_DIST): Likewise.
(all_local): Don't depend on stat.c or lstat.c.
(stat.c, lstat.c): Remove rules.
(EXTRA_DIST): Remove xstat.in.
2002-12-04 08:59:13 +00:00
Jim Meyering
f2cb00a54a author hardly matters here :-) 2002-12-04 08:56:58 +00:00
Jim Meyering
16c87869c6 Simply #define LSTAT and include stat.c. 2002-12-04 08:55:54 +00:00
Jim Meyering
598a3babd5 Rework so that it may serve to define rpl_lstat, too. 2002-12-04 08:55:32 +00:00
Jim Meyering
962bfcd672 Remove file. Contents moved into stat.c. 2002-12-04 08:16:02 +00:00
Jim Meyering
4890f411f0 *** empty log message *** 2002-12-04 07:55:38 +00:00
Jim Meyering
c68d6cafca Simply #define SAFE_WRITE and include safe-read.c. 2002-12-04 07:51:45 +00:00
Jim Meyering
c0ff7df8cb Rework so that it may serve to define safe_write, too. 2002-12-04 07:50:55 +00:00
Jim Meyering
c5a4e28e9b . 2002-12-04 07:43:18 +00:00
Jim Meyering
a1f5754a17 New file, from which to generate safe-read.c and safe-write.c. 2002-12-03 18:30:29 +00:00
Jim Meyering
ef97c32946 s/const void */void const */ 2002-12-03 18:20:38 +00:00
Jim Meyering
7cec5a7e3c *** empty log message *** 2002-12-03 18:19:51 +00:00
Jim Meyering
3d81ed14e1 Update from gnulib (add comments, include stddef.h). 2002-12-03 18:19:45 +00:00
Jim Meyering
d4d54b4878 regenerate using automake-1.7.1b 2002-12-03 18:17:18 +00:00
Jim Meyering
c526cbabe0 no more ansi2nkr 2002-12-03 18:03:53 +00:00
Jim Meyering
7ae465f167 . 2002-12-03 17:50:46 +00:00
Jim Meyering
2e1a0e16ed *** empty log message *** 2002-12-03 17:36:34 +00:00
Jim Meyering
3fbff01425 (AUTOMAKE_OPTIONS): Remove definition (to ansi2knr)
since this package no longer panders to K&R compilers.
2002-12-03 17:36:26 +00:00
Jim Meyering
b3e08a0a69 tweak comment 2002-12-03 12:03:55 +00:00
Jim Meyering
01d5814091 tweak comment 2002-12-03 12:02:19 +00:00
Jim Meyering
90723c47a0 Add dummy stmt in `then' branch. 2002-12-03 09:50:16 +00:00
Jim Meyering
047c948de4 *** empty log message *** 2002-12-02 17:46:00 +00:00
Jim Meyering
a2ff596c1f Skip this test if `.' is on a non-local file system. 2002-12-02 17:45:54 +00:00
Jim Meyering
0d387e7ff2 *** empty log message *** 2002-12-02 17:28:21 +00:00
Jim Meyering
cba2225ce6 . 2002-12-02 09:31:04 +00:00
Jim Meyering
dadcc49a8e *** empty log message *** 2002-12-02 09:30:47 +00:00
Jim Meyering
19b3648d15 (_at_replace): Do the substitution only if there's something to replace. 2002-12-02 09:30:41 +00:00
Jim Meyering
7570cb86a6 (EINTR): Define.
(safe_read): Rewrite to loop IFF read fails with EINTR.
2002-12-02 08:11:45 +00:00
Jim Meyering
c9c5c4c3e1 *** empty log message *** 2002-12-01 17:04:49 +00:00
Jim Meyering
32b9f22700 (safe_read): Also exit the loop when read returns zero. 2002-12-01 17:04:35 +00:00
Jim Meyering
0937f50e9e comment tweak 2002-12-01 12:10:41 +00:00
Jim Meyering
3b6cb24f4b *** empty log message *** 2002-12-01 12:04:35 +00:00
Jim Meyering
b1cfe31057 (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, INT_MAX): Define. 2002-12-01 12:04:17 +00:00
Jim Meyering
4c6c221ee2 Merge from gnulib. 2002-12-01 11:53:02 +00:00
Jim Meyering
ef266f5a81 from gnulib 2002-12-01 11:36:50 +00:00
Jim Meyering
68fd2c3b68 (libfetish_a_SOURCES): Add safe-write.c and safe-write.h. 2002-12-01 11:36:32 +00:00
Jim Meyering
e04f07c363 *** empty log message *** 2002-12-01 10:57:07 +00:00
Jim Meyering
7730fc35b7 Update from gnulib (trivial changes). 2002-12-01 10:56:47 +00:00
Jim Meyering
61bbb627cc Update from gnulib (trivial changes). 2002-12-01 10:54:01 +00:00
Jim Meyering
1ed5b3df2d Add Copyright comment. 2002-12-01 10:44:15 +00:00
Jim Meyering
3447cf0995 Add Copyright comment. 2002-12-01 10:43:35 +00:00
Jim Meyering
6cffb5b26e *** empty log message *** 2002-12-01 10:42:17 +00:00
Jim Meyering
c198111648 Update from gnulib (trivial changes). 2002-12-01 10:42:12 +00:00
Jim Meyering
422e4b4c3a *** empty log message *** 2002-12-01 10:41:22 +00:00
Jim Meyering
43aee8594d Update from gnulib (trivial changes). 2002-12-01 10:41:09 +00:00
Jim Meyering
3bd828af53 Update from gnulib (trivial changes). 2002-12-01 10:38:59 +00:00
Jim Meyering
440bb68abd *** empty log message *** 2002-12-01 10:37:02 +00:00
Jim Meyering
cffed30681 update from gnulib 2002-12-01 10:36:33 +00:00
Jim Meyering
d7f4b28a19 *** empty log message *** 2002-12-01 10:22:45 +00:00
Jim Meyering
fbb44634f7 *** empty log message *** 2002-12-01 10:20:24 +00:00
Jim Meyering
a372a5debe *** empty log message *** 2002-12-01 10:18:39 +00:00
Jim Meyering
f40bc170b0 Don't include <ctype.h>.
That's already done via system.h.
2002-12-01 10:18:34 +00:00
Jim Meyering
98ae1bbb58 *** empty log message *** 2002-12-01 10:15:32 +00:00
Jim Meyering
78f06398b8 *** empty log message *** 2002-12-01 09:58:26 +00:00
Jim Meyering
dcc3108267 *** empty log message *** 2002-12-01 09:57:39 +00:00
Jim Meyering
cb173ced29 Don't include <string.h> or <ctype.h>.
That's already done via system.h.
2002-12-01 09:49:01 +00:00
Jim Meyering
275bdd3966 update from master 2002-12-01 08:59:05 +00:00
Jim Meyering
067fc3f4ef *** empty log message *** 2002-12-01 08:57:31 +00:00
Jim Meyering
4966d758f2 ls is now more efficient: it no longer needs to stat each directory
entry on systems with valid dirent.d_type.

(print_dir): Add DT_LNK and DT_REG.
(main): Make --recursive set format_needs_type, not format_needs_stat.
(gobble_file): Remove a FIXME comment, now that this is fixed.
2002-12-01 08:57:26 +00:00
Jim Meyering
7274f62b83 (gobble_file): Remove the block of code that caused
`ls --color -F symlink-to-dir' to list the files in
`symlink-to-dir/.'.  Now, it prints `symlink-to-dir@',
(just like `ls -F symlink-to-dir') but with the addition
of highlighting.
2002-12-01 08:55:45 +00:00
Jim Meyering
d577b81792 add comment 2002-11-30 22:35:37 +00:00
Jim Meyering
6c1d1df92f (sl-F-color, sl-dF-color): New tests for the above. 2002-11-30 22:34:59 +00:00
Jim Meyering
ab1fbe7dda *** empty log message *** 2002-11-30 17:13:33 +00:00
Jim Meyering
42a42f7e4f *** empty log message *** 2002-11-30 16:34:20 +00:00
Jim Meyering
95cb2ed037 . 2002-11-30 16:17:29 +00:00
Jim Meyering
7f190fb12b *** empty log message *** 2002-11-28 09:48:47 +00:00
Jim Meyering
015aa7dfc4 Merge from gnulib/libc, for a slightly uglier solution. 2002-11-28 09:48:40 +00:00
Jim Meyering
80cff991e8 . 2002-11-28 09:38:06 +00:00
Jim Meyering
2dc7779bce (STATIC): Remvoe definitions. 2002-11-28 09:37:58 +00:00
Jim Meyering
8f5674daf9 Merge some more, in preparation for merge back into libc.
(_): Define only if not already defined.
Move definition to follow all #include directives.
Include unlocked-io.h only if !_LIBC.
2002-11-28 09:19:26 +00:00
Jim Meyering
bb07ab9b5c *** empty log message *** 2002-11-28 09:09:55 +00:00
Jim Meyering
d604ec9937 Merge in changes from libc.
[_LIBC]: Include <libio/libioP.h>.
[USE_IN_LIBIO]: Include <libio/iolibio.h>
(fflush): Tweak definition to use INTUSE.
(putc): Define.
2002-11-28 09:09:29 +00:00
Jim Meyering
e1938a7929 *** empty log message *** 2002-11-24 16:59:41 +00:00
Jim Meyering
d22a04e396 *** empty log message *** 2002-11-24 16:58:50 +00:00
Jim Meyering
8601971967 (TESTS): Add trailing-slash. 2002-11-24 16:53:59 +00:00
Jim Meyering
5857813649 *** empty log message *** 2002-11-24 16:53:06 +00:00
Jim Meyering
ce2fb08258 More clean-up, not that / means /. 2002-11-24 16:25:26 +00:00
Jim Meyering
4b8fa5d8ad (du_files): Don't strip any trailing slash.
Rewrite so that `/' is no longer represented internally as
the empty string.
(count_entry): When appending a file name component,
account for the fact that the current path may end in `/'.
Franois Pinard reported that `du symlink-to-dir/' was not
equivalent to `du symlink-to-dir/.'.  Now it is.
2002-11-24 16:12:52 +00:00
Jim Meyering
6f5375c038 *** empty log message *** 2002-11-24 16:12:28 +00:00
Jim Meyering
40d8af4244 *** empty log message *** 2002-11-24 16:03:14 +00:00
Jim Meyering
4d314289c3 Remove 2002 from copyright line,
to sync with gnulib.
2002-11-24 10:01:15 +00:00
Jim Meyering
c82be3d2ce . 2002-11-23 16:45:51 +00:00
Jim Meyering
5649aebdef (decode_switches): Use case-sensitive matching to
decode the QUOTING_STYLE environment variable.  This is more
consistent with the documentation, and with --quoting-style.
2002-11-23 16:43:49 +00:00
Jim Meyering
0c64e08266 *** empty log message *** 2002-11-23 16:28:52 +00:00
Jim Meyering
6533eac241 (output): Declare some local variables to be of type size_t,
rather than `int' to avoid warnings from gcc.
2002-11-23 16:28:44 +00:00
Jim Meyering
8442061b30 *** empty log message *** 2002-11-23 15:44:59 +00:00
Jim Meyering
f10340e27b Include gettext.h instead of <libintl.h>. 2002-11-23 15:44:51 +00:00
Jim Meyering
d6fac2ac6c *** empty log message *** 2002-11-23 15:44:07 +00:00
Jim Meyering
a14ac3568f Include gettext.h instead of <libintl.h>. 2002-11-23 15:44:01 +00:00
Jim Meyering
42cd3beba9 *** empty log message *** 2002-11-23 15:43:16 +00:00
Jim Meyering
5bd75e7682 Include gettext.h instead of <libintl.h>. 2002-11-23 15:43:13 +00:00
Jim Meyering
4372bf5619 Update from gnulib. 2002-11-23 15:42:11 +00:00
Jim Meyering
01ff25beb7 *** empty log message *** 2002-11-23 15:42:04 +00:00
Jim Meyering
4cab2486a5 *** empty log message *** 2002-11-23 15:40:44 +00:00
Jim Meyering
70212bf28b Include gettext.h instead of <libintl.h>. 2002-11-23 15:40:40 +00:00
Jim Meyering
cc7aeee22c *** empty log message *** 2002-11-23 15:38:47 +00:00
Jim Meyering
83415a7c5f Include gettext.h instead of <libintl.h>. 2002-11-23 15:38:42 +00:00
Jim Meyering
ac63441825 *** empty log message *** 2002-11-23 15:05:52 +00:00
Jim Meyering
ebd76c09f4 From gnulib, by Bruno Haible
Include gettext.h instead of <libintl.h>.
2002-11-23 15:05:32 +00:00
Jim Meyering
f1b9a8744c From gnulib, by Bruno Haible
* closeout.c: Include gettext.h instead of <libintl.h>.
2002-11-23 15:03:40 +00:00
Jim Meyering
98e5192525 . 2002-11-23 15:00:17 +00:00
Jim Meyering
ba986c2928 Update from gnulib. 2002-11-23 14:59:39 +00:00
Jim Meyering
34c25ed945 *** empty log message *** 2002-11-23 07:10:25 +00:00
Jim Meyering
08228013af Allow multiple inclusion by surrounding with
"#ifndef QUOTEARG_H_".  Include <stddef.h>, for size_t,
so that we can be included first.
(PARAMS): Remove; we now assume C89 or later.  All uses removed.
2002-11-23 07:10:19 +00:00
Jim Meyering
a328e26342 Include quotearg.h immediately after config.h.
No need to include stddef.h or sys/types.h any more.
Surround local include files with "", not "<>".
Assume HAVE_LIMITS_H unconditionally, as we assume C89.
Similarly, assume HAVE_C_BACKSLASH_A, CHAR_BIT, UCHAR_MAX, UINT_MAX,
HAVE_STDLIB_H, HAVE_STRING_H, STDC_HEADERS.
(HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
(mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
(ISPRINT): Remove; no longer needed now that we assume C89.

(clone_quoting_options, quotearg_buffer, quotearg_n_options):
Preserve errno.

(quotearg_buffer_restyled, quotearg_n, quotearg_n_style,
quotearg_char): Use SIZE_MAX rather than
(size_t) -1 when we are talking about "infinity".

(quotearg_buffer_restyled): Fix bug when quoting trigraphs.
2002-11-23 07:08:50 +00:00
Jim Meyering
38ba9564d1 *** empty log message *** 2002-11-22 13:23:55 +00:00
Jim Meyering
17bbb9bcb1 From gnulib:
Don't include <sys/types.h>.  It's unnecessary.
2002-11-22 13:23:52 +00:00
Jim Meyering
d81d040dea fix typo in comment 2002-11-22 11:13:32 +00:00
Jim Meyering
8aa90d8488 *** empty log message *** 2002-11-22 11:07:31 +00:00
Jim Meyering
d60ce1ccab *** empty log message *** 2002-11-22 11:04:05 +00:00
Jim Meyering
3858ed5bad Remove case insensitive option matching.
(argcasematch): Remove declaration.
(ARGCASEMATCH): Remove macro.
(__xargmatch_internal): Remove case_sensitive argument.
(XARGMATCH): Update.
(XARGCASEMATCH): Remove macro.
2002-11-22 11:04:01 +00:00
Jim Meyering
13fb4290db Include gettext.h instead of <locale.h> and <libintl.h>.
Remove case insensitive option matching.
  (argmatch): Renamed from __argmatch_internal. Remove
  case_sensitive argument.
  (argcasematch): Remove function.
  (__xargmatch_internal): Remove case_sensitive argument.
  (main): Use XARGMATCH instead of XARGCASEMATCH.
2002-11-22 11:03:26 +00:00
Jim Meyering
4c9c50bf72 *** empty log message *** 2002-11-22 10:28:50 +00:00
Jim Meyering
70641e502d Change compile-time error message. Add comment about
required autoconf version.

Include gettext.h instead of <libintl.h>.
(textdomain): Remove definition.
2002-11-22 10:28:44 +00:00
Jim Meyering
cc92325877 *** empty log message *** 2002-11-21 19:17:26 +00:00
Jim Meyering
b2f999fdbb Add ms (Malay). 2002-11-21 19:17:22 +00:00
Jim Meyering
b3d845869a version: 4.5.3 2002-11-21 19:16:44 +00:00
Jim Meyering
d09524c338 *** empty log message *** 2002-11-21 13:31:07 +00:00
Jim Meyering
cae292f583 (strdup): Merge in changes from gnulib; mainly to
use memcpy rather than strcpy.
2002-11-21 13:31:03 +00:00
Jim Meyering
1a1ce790d8 *** empty log message *** 2002-11-21 13:25:31 +00:00
Jim Meyering
c8a8d77816 Update from gnulib. 2002-11-21 13:25:22 +00:00
Jim Meyering
944a426ade *** empty log message *** 2002-11-21 13:18:07 +00:00
Jim Meyering
44ad4f8ed4 (str2signum): Use unsigned, not size_t. 2002-11-21 13:17:47 +00:00
Jim Meyering
b38b96b80c *** empty log message *** 2002-11-21 13:16:49 +00:00
Jim Meyering
8281103ea4 Use "'s when including quotearg.h and xalloc.h, not the <...>' notation.
Include <errno.h> and declare errno if necessary.
2002-11-21 13:16:04 +00:00
Jim Meyering
145d77b61a *** empty log message *** 2002-11-21 12:22:56 +00:00
Jim Meyering
6c0efc5fa8 *** empty log message *** 2002-11-21 12:22:03 +00:00
Jim Meyering
e688809a5c stty doesn't support all baud rates available in current Linux kernels.
When trying to set a high baud rate using stty, it says "invalid
argument". When the high rate is already configured, "stty -a"
returns 0 instead of the true baud rate.

(struct speeds): Add support for all baud rates defined
in linux-2.4.19.
2002-11-21 12:21:55 +00:00
Jim Meyering
d80aa4a03f . 2002-11-21 10:56:27 +00:00
Jim Meyering
dcb7d1cee9 *** empty log message *** 2002-11-21 10:22:10 +00:00
Jim Meyering
cb83b79ab2 *** empty log message *** 2002-11-21 10:21:01 +00:00
Jim Meyering
91d98d2baf update copyright date 2002-11-21 09:39:58 +00:00
Jim Meyering
96a2f00434 *** empty log message *** 2002-11-21 09:36:25 +00:00
Jim Meyering
aca318c51e Merge argmatch cleanups from Bison. Assume C89.
Do not include <config.h> or <sys/types.h>.
Include <stddef.h> instead, since it's all we need for size_t.
(PARAMS): Remove.  All uses removed.
(ARRAY_CARDINALITY): Do not bother to #undef.
(ARRAY_CARDINALITY, ARGMATCH, ARGCASEMATCH, invalid_arg,
ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
Remove unnecessary parentheses.
(ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
Insert necessary parentheses.
(ARGMATCH_CONSTRAINT, ARGMATCH_VERIFY): New macros.
(ARGMATCH_ASSERT): Use ARGMATCH_CONSTRAINT.
2002-11-21 09:35:51 +00:00
Jim Meyering
3aed4c5505 Merge argmatch cleanups from Bison. Assume C89.
Include config.h here, not in argmatch.h.
Include stdlib.h, for EXIT_FAILURE.
Always include <string.h>, since we assume C89.
(EXIT_FAILURE): Remove pre-C89 bug workaround.
2002-11-21 09:24:43 +00:00
Jim Meyering
501358c106 *** empty log message *** 2002-11-21 08:48:08 +00:00
Jim Meyering
449872c53a (quotearg_buffer_restyled): If mbrtowc returns
`(size_t) -1' (at which point it would also set errno to EILSEQ),
then restore errno to its previous value.
Reported by Phillip Jones via Tim Waugh as
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=76334.
2002-11-21 08:47:44 +00:00
Jim Meyering
9e96a0b09c sort 2002-11-21 08:46:39 +00:00
Jim Meyering
c411cd6b01 *** empty log message *** 2002-11-21 08:45:10 +00:00
Jim Meyering
57263e2a95 Update from gnulib. 2002-11-21 08:45:05 +00:00
Jim Meyering
46d38d7c12 *** empty log message *** 2002-11-21 08:35:24 +00:00
Jim Meyering
6bc244f431 *** empty log message *** 2002-11-21 08:32:28 +00:00
Jim Meyering
cf9a5e9196 *** empty log message *** 2002-11-19 14:08:50 +00:00
Jim Meyering
39926c6c6e Export LC_ALL=C, to avoid failure when run in a UTF locale.
Report and suggested fix by Bruno Haible.
2002-11-19 14:08:45 +00:00
Jim Meyering
32872d2edf *** empty log message *** 2002-11-19 14:08:20 +00:00
Jim Meyering
d38c17cdbc Export LC_ALL=C, to avoid failure when run in a UTF locale.
Report and suggested fix by Bruno Haible.
2002-11-19 14:07:20 +00:00
Jim Meyering
6ba0925f2d *** empty log message *** 2002-11-19 10:15:25 +00:00
Jim Meyering
cbb48b90dd *** empty log message *** 2002-11-19 09:14:24 +00:00
Jim Meyering
6de64db890 Require Autoconf-2.56. 2002-11-19 09:14:18 +00:00
Jim Meyering
abd9a99711 *** empty log message *** 2002-11-19 08:05:34 +00:00
Jim Meyering
66943316b4 Avoid a link-time failure on some Linux systems.
(STATIC): Define to be empty (_LIBC) or `static' (otherwise).
(__mon_yday): Declare with the STATIC attribute.
(__mktime_internal): Likewise.
Based on a report from Greg Schafer.
2002-11-19 08:05:29 +00:00
Jim Meyering
7808c81c06 *** empty log message *** 2002-11-19 07:50:44 +00:00
Jim Meyering
8954b35cf0 . 2002-11-17 10:14:40 +00:00
Jim Meyering
2f2b29bf9a *** empty log message *** 2002-11-17 10:11:40 +00:00
Jim Meyering
ab79e3ad72 Update via autoupdate.
Add `AM_GNU_GETTEXT_VERSION(0.11.5)'.
2002-11-17 10:10:26 +00:00
Jim Meyering
0a5f591c89 *** empty log message *** 2002-11-17 09:59:34 +00:00
Jim Meyering
47161ee7d5 (movefile): Don't remove trailing slashes from SOURCE. 2002-11-17 09:41:34 +00:00
Jim Meyering
f5c148c983 *** empty log message *** 2002-11-17 09:36:43 +00:00
Jim Meyering
fda6e5a9a8 *** empty log message *** 2002-11-16 16:45:36 +00:00
Jim Meyering
428a02b86a Use AC_REQUIRE everywhere it is possible.
(jm_PREREQ_CANON_HOST): Remove duplicates.
2002-11-16 16:45:30 +00:00
Jim Meyering
f85ea30f21 *** empty log message *** 2002-11-15 21:02:16 +00:00
Jim Meyering
2aee9e8a9b (gnu_rel_host): Define.
(url_dir_list): Choose from (alpha|ftp).gnu.org depending
on whether $(VERSION) looks like a major release number.
2002-11-15 21:02:04 +00:00
Jim Meyering
c07eca7caa (mail_gpg_sign_cookie): Backslash-escape `#'.
(release): Rename from `alpha'.
(alpha): Depend on release.
2002-11-15 20:59:56 +00:00
Jim Meyering
086c161966 *** empty log message *** 2002-11-15 10:19:09 +00:00
Jim Meyering
4716e59ab4 (signatures): Define with ?=, so it's easy to override. 2002-11-15 10:19:02 +00:00
Jim Meyering
d421906870 . 2002-11-15 08:36:57 +00:00
Jim Meyering
fc152acf79 . 2002-11-15 08:19:10 +00:00
Jim Meyering
fcb6c411f0 *** empty log message *** 2002-11-14 14:38:23 +00:00
Jim Meyering
f9362b8897 Don't include libintl.h, and don't define `_' -- they're not used. 2002-11-14 14:38:03 +00:00
Jim Meyering
e946e96a84 update from master sources 2002-11-14 14:26:05 +00:00
Jim Meyering
c908728ac8 Remove lib/long-options.c and lib/same.c.
Although each defines `_', neither actually used it.
2002-11-14 12:46:17 +00:00
Jim Meyering
1f0ec2c2ad *** empty log message *** 2002-11-14 12:37:49 +00:00
Jim Meyering
d9b899db94 Duh. change use, too. 2002-11-14 12:37:27 +00:00
Jim Meyering
01606b7988 (mail_gpg_sign_cookie): Rename to use _'s, not -'s. 2002-11-14 12:32:57 +00:00
Jim Meyering
be7e030ca9 *** empty log message *** 2002-11-14 12:20:09 +00:00
Jim Meyering
500f37f119 (mail-gpg-sign-cookie): Make optional.
(announcement): Use the new variable.
2002-11-14 12:20:01 +00:00
Jim Meyering
8bbe97528d *** empty log message *** 2002-11-14 12:09:42 +00:00
Jim Meyering
f6af345922 Sync with Bison, i.e.:
(po-check): Scan .l and .y files instead of the
.c and the .h files that they generate.  This fixes the bug
reported by Tim Van Holder in:
<http://mail.gnu.org/pipermail/bison-patches/2002-November/001352.html>
Look for N_ as well as for _.  Try to avoid matching #define for
N_ and _.
From Paul Eggert.
2002-11-14 12:09:16 +00:00
Jim Meyering
c3d9348a86 *** empty log message *** 2002-11-13 09:50:22 +00:00
Jim Meyering
23b4046380 (Examples of expr): Remove bogus `^'s. 2002-11-13 09:50:16 +00:00
Jim Meyering
e08ebb3e61 *** empty log message *** 2002-11-13 09:49:41 +00:00
Jim Meyering
8bd460c1b7 *** empty log message *** 2002-11-12 08:31:16 +00:00
Jim Meyering
3048fb4d0f (HAVE_SYMLINKS): Remove unnecessary macro definition.
Replace sole use with equivalent `#ifdef S_ISLNK'.
Inconsistency reported by Dmitry V. Levin.
2002-11-12 08:31:05 +00:00
Jim Meyering
1cd5cc1b70 *** empty log message *** 2002-11-11 13:39:02 +00:00
Jim Meyering
e8f4c08e14 Ensure that `ls -dF --color symlink-to-dir' works properly. 2002-11-11 13:38:48 +00:00
Jim Meyering
f29777ab29 *** empty log message *** 2002-11-11 09:15:35 +00:00
Jim Meyering
f1bfccb00b *** empty log message *** 2002-11-11 09:15:08 +00:00
Jim Meyering
092a0520eb *** empty log message *** 2002-11-11 09:10:39 +00:00
Jim Meyering
864e2eb4e2 *** empty log message *** 2002-11-10 23:25:13 +00:00
Jim Meyering
f2308f74e8 (usage): Transform --help output via s/ - / /,
so that help2man produces properly formatted man pages.
2002-11-10 23:24:52 +00:00
Jim Meyering
9bec2462e8 *** empty log message *** 2002-11-10 20:15:59 +00:00
Jim Meyering
f549fc269c (sighandler): Handle SIGTSTP specially.
Based on suggestions from Solar Designer and Dmitry V. Levin.
Add comments.
2002-11-10 20:15:54 +00:00
Jim Meyering
7acacbf29a *** empty log message *** 2002-11-10 14:34:29 +00:00
Jim Meyering
8056e2607f (cvs_files): Define. From autoconf.
(local_updates): Likewise.
2002-11-10 14:34:23 +00:00
Jim Meyering
f740d054ae *** empty log message *** 2002-11-10 13:33:04 +00:00
Jim Meyering
99ad3e326a . 2002-11-10 11:12:13 +00:00
Jim Meyering
ecf915a6a4 *** empty log message *** 2002-11-10 11:11:39 +00:00
Jim Meyering
bb38561062 (restore_default_color_handler, sigtstp_handler): Remove functions.
(sighandler): New function, based on the one in sort.c.
(main): Use sigaction, if possible; otherwise signal.
Handle these signals:
SIGHUP, SIGINT, SIGPIPE, SIGQUIT, SIGTERM, SIGTSTP.
Don't register our handler if the signal is already being ignored.
2002-11-10 11:11:34 +00:00
Jim Meyering
20282f4992 (main): Also declare `i' to be unsigned, not int. 2002-11-10 10:23:41 +00:00
Jim Meyering
8988c3acb3 *** empty log message *** 2002-11-10 09:56:28 +00:00
Jim Meyering
a040c8e428 (sighandler): Use raise, rather than kill+getpid.
(main): Declare `nsigs' to be unsigned, not int.
2002-11-10 09:56:19 +00:00
Jim Meyering
faf852d2dd (interrupt_handler): Use raise, rather than kill+getpid. 2002-11-10 09:54:37 +00:00
Jim Meyering
2ebcd575a0 (interrupt_handler): Use raise, rather than kill+getpid. 2002-11-10 09:53:57 +00:00
Jim Meyering
34ed452d0a Use a return stmt. This isn't Perl. 2002-11-10 09:51:37 +00:00
Jim Meyering
a0a7aef8bd Duh. add missing semicolon
Include unistd.h.
2002-11-10 09:50:59 +00:00
Jim Meyering
f63f39031e *** empty log message *** 2002-11-10 09:46:14 +00:00
Jim Meyering
f84d927787 (jm_MACROS): Add AC_REPLACE_FUNCS(raise). 2002-11-10 09:46:10 +00:00
Jim Meyering
bd03362ebb *** empty log message *** 2002-11-10 09:44:05 +00:00
Jim Meyering
b52870d14f correct indentation 2002-11-09 22:36:58 +00:00
Jim Meyering
85490682b7 ls --color: restore terminal state (color) upon signal.
Include "full-write.h" and <signal.h>.
(restore_default_color, restore_default_color_handler): New functions.
(sigtstp_handler, put_indicator_direct): New functions.
(main) [print_with_color]: Register signal handlers.
Patch mostly by Solar Designer and Stanislav Ievlev.
2002-11-09 22:27:27 +00:00
Jim Meyering
cd0013e0ea *** empty log message *** 2002-11-09 22:21:31 +00:00
Jim Meyering
bb1c17a762 . 2002-11-09 22:01:56 +00:00
Jim Meyering
f559a4c800 (human_readable): Revamp to avoid warning about unused
variable 'amt'.  Unfortunately this means using some gotos.
2002-11-09 21:46:45 +00:00
Jim Meyering
2f1a2669e5 *** empty log message *** 2002-11-09 19:53:46 +00:00
Jim Meyering
440b2cb3f3 (What information is listed): Correct parts of --dired description.
Include a lot more description, with examples.
2002-11-09 19:53:25 +00:00
Jim Meyering
dfd742c6e1 *** empty log message *** 2002-11-09 16:40:00 +00:00
Jim Meyering
2ea36bfc5c (EXTRA_LOCALE_CATEGORIES): Add LC_TIME.
Patch by Tim Waugh for Red Hat bug #73669.
2002-11-09 16:39:53 +00:00
Jim Meyering
143ae88b8f *** empty log message *** 2002-11-09 12:39:42 +00:00
Jim Meyering
2a75a0092f Make it work even when names contain spaces or shell metachars.
Write diagnostics to stderr, not stdout.
Normalize spacing in diagnostics: use one space (not two, and not a TAB)
after the leading `install:'.
Add double quotes around `$src' here: $doit $instcmd "$src" "$dsttmp"
2002-11-09 12:39:34 +00:00
Jim Meyering
8ce53c2d14 Merge in some changes from the version in automake.
Remove unnecessary quotes around `case' argument.
Use `[ cond1 ] || [ cond2 ]' rather than `[ cond1 -o cond2 ]'.
Use `:' rather than `true'.
2002-11-09 12:34:27 +00:00
Jim Meyering
82bd49565b . 2002-11-09 11:36:51 +00:00
Jim Meyering
fd57b979a9 *** empty log message *** 2002-11-09 11:34:57 +00:00
Jim Meyering
aa43311efb Update from autoconf.
(AMTAR): Remove definition.
(update, cvs-update, po-update, do-po-update): New rules.
(wget-update): Update (thus renaming to cvs-update).
(automake_repo): Use anoncvs@sources.redhat.com.
2002-11-09 11:34:42 +00:00
Jim Meyering
371a455589 . 2002-11-09 00:34:25 +00:00
Jim Meyering
868a8152e3 *** empty log message *** 2002-11-09 00:30:37 +00:00
Jim Meyering
52b5ba1af5 (jm_FUNC_GETGROUPS):
Fix typo: cv_func_getgroups_works -> ac_cv_func_getgroups_works.
2002-11-09 00:30:33 +00:00
Jim Meyering
d84c4c3354 *** empty log message *** 2002-11-08 23:20:38 +00:00
Jim Meyering
e3d3dee1b6 *** empty log message *** 2002-11-08 22:59:57 +00:00
Jim Meyering
83a7b1049d (jm_PREREQ_HUMAN): Check for locale.h, localeconv,
AC_HEADER_STDBOOL.  No need to check for limits.h since it's in
freestanding C89.  No need to check for stdlib.h or string.h since
autoconf does this now.
2002-11-08 22:59:53 +00:00
Jim Meyering
5dd24d18e2 use only my permanent address 2002-11-08 17:13:51 +00:00
Jim Meyering
24ba72493d use only my permanent address 2002-11-08 17:12:51 +00:00
Jim Meyering
7695925177 Use only my permanent address. 2002-11-08 17:12:27 +00:00
Jim Meyering
7676cbc5ce *** empty log message *** 2002-11-08 15:33:58 +00:00
Jim Meyering
554ecec785 (human_readable): Avoid warnings from gcc -Wshadow. 2002-11-08 15:33:30 +00:00
Jim Meyering
2c3bb203cd (human_output_opts): New var.
(output_block_size): Now uintmax_t, not int, to handle larger
block sizes.  All uses changed.
2002-11-08 09:41:37 +00:00
Jim Meyering
95b50fa1ac (print_header): Use primitives from inttostr.h, not
human.h, to print large numbers simply.

(human_output_opts): New var.
(output_block_size): Now uintmax_t, not int, to handle larger
block sizes.  All uses changed.

(print_header): In the header line, prefer SI to human
representation if it's shorter; if neither is shorter, try to
intuit what the user would prefer.
2002-11-08 09:39:36 +00:00
Jim Meyering
98f748e64c update from master 2002-11-07 00:29:24 +00:00
Jim Meyering
bd89283b97 update from master 2002-11-07 00:28:52 +00:00
Jim Meyering
8fd93e0867 *** empty log message *** 2002-11-06 16:27:45 +00:00
Jim Meyering
fad42afa02 (automake_repo): Use anoncvs@subversions.gnu.org. 2002-11-06 16:27:39 +00:00
Jim Meyering
def6c2371e . 2002-11-06 11:37:47 +00:00
Jim Meyering
2fbdabd4b1 *** empty log message *** 2002-11-06 11:37:15 +00:00
Jim Meyering
a6bc63bae0 (EXTRA_DIST): Add inttostr.h. 2002-11-06 11:37:11 +00:00
Jim Meyering
106c3bf364 (print_long_format, print_file_name_and_frills):
Use primitives from inttostr.h, not
human.h, to print large numbers simply.

(human_output_opts): New var.
(output_block_size): Now uintmax_t, not int, to handle larger
block sizes.  All uses changed.

(file_output_block_size): New var, to distinguish
file sizes from other sizes.
(decode_switches): Set it.
2002-11-06 11:02:56 +00:00
Jim Meyering
1fc57fa80c *** empty log message *** 2002-11-06 10:37:29 +00:00
Jim Meyering
d2d118e8d7 (printf invocation): Fix typo in index: change \0x prefix to \x.
Change \xhhh to \xhh.
2002-11-06 10:37:24 +00:00
Jim Meyering
2017db1bbd *** empty log message *** 2002-11-06 10:32:46 +00:00
Jim Meyering
c6f5b4e383 Add support for locale-specific size indications (e.g.,
thousands-separators) and for explicit size suffixes on output.

(Block size): Say that:
This affects display format as well as block size.
Fractional block counts are rounded up.
ls file size blocksize defaults to 1.
A block size spec preceded by ' generates thousands separators.
A suffix without a preceding integer generates suffixes.
(tail invocation): 32k -> 32 KiB.
(What information is listed): ls -h is now equivalent to
ls --block-size=human, and ls -H is now equivalent to
ls --block-size=si.  Displayed file size is now always affected by
--block-size.
2002-11-06 10:32:41 +00:00
Jim Meyering
5ce09d1ac7 *** empty log message *** 2002-11-06 10:28:11 +00:00
Jim Meyering
59507dd554 (usage): Update description. 2002-11-06 10:28:02 +00:00
Jim Meyering
9c2be29be5 *** empty log message *** 2002-11-06 09:23:55 +00:00
Jim Meyering
76e1efd955 (TESTS): Add printf-hex. 2002-11-06 09:23:50 +00:00
Jim Meyering
2929e95fb7 *** empty log message *** 2002-11-06 09:23:33 +00:00
Jim Meyering
eff5b46e0c Be careful to test the code in this package, not the shell built-in function. 2002-11-06 09:23:23 +00:00
Jim Meyering
fc34d6284c *** empty log message *** 2002-11-06 09:21:59 +00:00
Jim Meyering
b68401890d Make sure that only two of the `H's in \xHHH are consumed
as part of the \x escape sequence.
2002-11-06 09:19:50 +00:00
Jim Meyering
0a5d4112ba (print_esc): Hexadecimal \xhh escapes may have
at most two hex. digits, not three.
2002-11-06 09:04:50 +00:00
Jim Meyering
1f5b482124 (inttostr): Remove; use new imaxtostr library function instead. 2002-11-05 20:37:20 +00:00
Jim Meyering
c7a6c9af8b (checkfp): Use primitives from inttostr.h, not human.h,
to print large numbers simply.
2002-11-05 20:34:00 +00:00
Jim Meyering
49cfd5a52c (bsd_sum_file, sysv_sym_file):
Use primitives from inttostr.h, not human.h, to print large numbers simply.
2002-11-05 20:33:35 +00:00
Jim Meyering
371e50492e (xlseek):
Use primitives from inttostr.h, not human.h, to print large numbers simply.
2002-11-05 20:32:55 +00:00
Jim Meyering
4c16b8d35a (write_counts, wc):
Use primitives from inttostr.h, not human.h, to print large numbers simply.
2002-11-05 20:30:43 +00:00
Jim Meyering
f3fc3d4726 (dopass):
Use primitives from inttostr.h, not human.h, to print large numbers simply.

(OUTPUT_BLOCK_SIZE): remove.
(dopass): When printing progress, use floor for what has been done
so far (since we should be conservative there), and ceiling for
what needs to be done (since that's what other programs use).
2002-11-05 20:28:36 +00:00
Jim Meyering
3f2cc46da4 (print_factors):
Use primitives from inttostr.h, not human.h, to print large numbers simply.
2002-11-05 20:17:28 +00:00
Jim Meyering
5526f4f208 (print_stats, main):
Use primitives from inttostr.h, not human.h, to print large numbers simply.
2002-11-05 20:16:31 +00:00
Jim Meyering
1e583af98a (handle_line_error, parse_patterns):
Use primitives from inttostr.h, not human.h, to print large numbers simply.
2002-11-05 20:14:41 +00:00
Jim Meyering
a591db7465 (cksum): Use primitives from inttostr.h, not
human.h, to print large numbers simply.
2002-11-05 17:22:55 +00:00
Jim Meyering
adaa25e292 *** empty log message *** 2002-10-19 16:34:37 +00:00
Jim Meyering
917181c1a9 (cwrite): Change type of `bytes' parameter to size_t
Remove now-useless cast.
(stdread): Remove function.
(bytes_split): Use size_t instead of int.
Use safe_read, not stdread.
(lines_split): Likewise.
Use memchr rather than a `while' loop.
(line_bytes_split): Use size_t instead of int.
Use safe_read, not stdread.
(main): Add some FIXME comments to remind me to remove casts.
2002-10-19 16:34:25 +00:00
Jim Meyering
d3f010cb21 *** empty log message *** 2002-10-19 13:49:38 +00:00
Jim Meyering
dce67bd261 Rewrite to support locale-specific
notations like thousands separators.
Specify what includer of include.h must include beforehand.
(human_group_digits, human_suppress_point_zero, human_autoscale,
human_base_1024, human_SI, human_B): New enum values.
(human_readable): Rename from human_readable_inexact; put the
options before the sizes.  All uses changed.  The old human_readable
function has been removed; use inttostr.h instead.
(human_options): Renamed from human_block_size, with new signature
that allows block sizes up to UINTMAX_MAX.  All callers changed.
2002-10-19 13:48:04 +00:00
Jim Meyering
4774c63a5e *** empty log message *** 2002-10-19 12:55:11 +00:00
Jim Meyering
f02ba67bbb *** empty log message *** 2002-10-19 12:54:29 +00:00
Jim Meyering
a967adb215 (libfetish_a_SOURCES): Add imaxtostr.c, offtostr.c, umaxtostr.c.
(EXTRA_DIST): Add inttostr.c.
2002-10-19 12:54:23 +00:00
Jim Meyering
927bbc5cc3 New files. From GNU tar. 2002-10-19 12:34:03 +00:00
Jim Meyering
8d30090e2e *** empty log message *** 2002-10-19 07:58:09 +00:00
Jim Meyering
aeaaa9fda5 *** empty log message *** 2002-10-19 07:57:08 +00:00
Jim Meyering
2e0798f483 (print_heading): Align TTY and Name headings. 2002-10-19 07:55:15 +00:00
Jim Meyering
82d3409e3d *** empty log message *** 2002-10-18 06:49:24 +00:00
Jim Meyering
76cc19f679 (ST_BLKSIZE): Correct comment describing how to
reproduce HPUX-11 cat failure.
2002-10-18 06:49:15 +00:00
Jim Meyering
9bcacfa997 *** empty log message *** 2002-10-17 15:08:19 +00:00
Jim Meyering
73d9218bf6 *** empty log message *** 2002-10-17 15:07:47 +00:00
Jim Meyering
f72568f82c Fix a problem that could make cat misbehave on systems which
give invalid (unreasonably large) values for stat.st_blksize.
(ST_BLKSIZE): Ensure that the result is in [1..4MB].
2002-10-17 15:06:36 +00:00
Jim Meyering
8c7071d857 bump to 4.5.4 2002-10-15 14:24:48 +00:00
Jim Meyering
3540f1880d *** empty log message *** 2002-10-14 08:30:56 +00:00
Jim Meyering
254fcd14bf . 2002-10-14 08:30:22 +00:00
Jim Meyering
07c1a593ca *** empty log message *** 2002-10-14 08:29:50 +00:00
Jim Meyering
bad450db5d Specifying a printf conversion specifer as nl's separator string
could cause nl to segfault.

(build_print_fmt): Don't include separator string
in the printf format; it might contain `%'.
Use a better bound on the length of the print_fmt buffer.
(print_lineno): Print the separator here instead.
2002-10-14 08:29:41 +00:00
Jim Meyering
8c11ff93d8 *** empty log message *** 2002-10-14 08:29:22 +00:00
Jim Meyering
3634113f29 *** empty log message *** 2002-10-14 08:29:17 +00:00
Jim Meyering
79adfda48d (TESTS): Add nl. 2002-10-14 08:19:31 +00:00
Jim Meyering
7535f31db9 *** empty log message *** 2002-10-14 08:19:13 +00:00
Jim Meyering
6f44f9b2b5 *** empty log message *** 2002-10-13 22:11:44 +00:00
Jim Meyering
614bd059e8 New test, to make sure `split --lines=N' works. 2002-10-13 22:11:13 +00:00
Jim Meyering
ee801b3ccc *** empty log message *** 2002-10-13 22:10:58 +00:00
Jim Meyering
38e6669301 (TESTS): Add split-l. 2002-10-13 22:10:20 +00:00
Jim Meyering
ca0f646758 *** empty log message *** 2002-10-13 20:01:59 +00:00
Jim Meyering
3907226aa1 . 2002-10-13 18:30:13 +00:00
Jim Meyering
5ed1f9d1b1 . 2002-10-13 17:38:42 +00:00
Jim Meyering
f92f1a29c0 *** empty log message *** 2002-10-13 14:02:50 +00:00
Jim Meyering
5955869435 (usage): Tweak description of --dereference-args/-D. 2002-10-13 14:02:42 +00:00
Jim Meyering
c9c00c8bec *** empty log message *** 2002-10-13 14:01:59 +00:00
Jim Meyering
e408ac408c (count_entry): Also save cwd when dereferencing (via --dereference-args, -D)
a command-line argument.
Reported by Michal Svec.  Based on a patch by Andreas Schwab.
2002-10-13 13:59:25 +00:00
Jim Meyering
6dafd5b2fc whoops 2002-10-13 13:33:05 +00:00
Jim Meyering
25797575f8 *** empty log message *** 2002-10-13 12:23:29 +00:00
Jim Meyering
ff4e2725a7 (initialized): Remove declaration now that it's unused. 2002-10-13 12:23:25 +00:00
Jim Meyering
bd9e754992 There's no need to futz with the rounding mode,
since the code should work properly even in the default rounding mode.
(<fenv.h>): Do not include.
(#pragma STDC FENV_ACCESS ON): Remove.
(xnanosleep): Don't futz with rounding state.
2002-10-13 12:22:26 +00:00
Jim Meyering
5b87a60663 *** empty log message *** 2002-10-13 12:20:44 +00:00
Jim Meyering
29a1a5e5d4 (jm_CHECK_ALL_HEADERS): Remove fenv.h. 2002-10-13 12:20:35 +00:00
Jim Meyering
475f183eab update comment 2002-10-13 06:50:11 +00:00
Jim Meyering
797d72c3cc (../AUTHORS): Make it read-only. 2002-10-13 06:48:42 +00:00
Jim Meyering
331dd19c54 . 2002-10-13 06:47:23 +00:00
Jim Meyering
2f4402aa58 *** empty log message *** 2002-10-13 06:47:13 +00:00
Jim Meyering
380f554a46 (../AUTHORS): New target/rule. 2002-10-13 06:47:07 +00:00
Jim Meyering
c19c8b5952 . 2002-10-13 06:04:38 +00:00
Jim Meyering
1b9984330e *** empty log message *** 2002-10-13 06:04:27 +00:00
Jim Meyering
f175e3efc2 (paste_parallel): Declare local var, `delims_saved', to be
of type size_t, since that's the way it's used and avoids a warning.
2002-10-12 10:19:17 +00:00
Jim Meyering
b7fbfec375 (struct cstring) [len]: Declare to be unsigned int,
since that's how it's always used and avoids a new warning from gcc.
(read_input): Adapt to new safe_read ABI.
2002-10-12 09:44:06 +00:00
Jim Meyering
0b7a5a2391 (cut_fields): Add a temporary size_t variable, n_bytes, to avoid warnings. 2002-10-12 09:40:02 +00:00
Jim Meyering
707f8bfa62 (print_long_entry): fread returns size_t.
Declare local `bytes' accordingly, to avoid warning.
2002-10-12 09:33:34 +00:00
Jim Meyering
81817a30ea *** empty log message *** 2002-10-12 08:42:38 +00:00
Jim Meyering
38a8810cd3 *** empty log message *** 2002-10-12 08:39:34 +00:00
Jim Meyering
0ddadb6245 tail -c +N would perform an extra read after encountering EOF
[this change is analogous (bytes vs. lines) to the one of 2002-01-27]

(start_bytes): Detect EOF, inform caller.
(tail_bytes): Upon EOF in start_bytes, return immediately.
(file_lines): Reorganize to use memrchr rather than an explicit loop.
Adapt to new safe_read ABI.
2002-10-12 08:39:12 +00:00
Jim Meyering
fb8af4b59f *** empty log message *** 2002-10-11 20:03:44 +00:00
Jim Meyering
818addef64 *** empty log message *** 2002-10-11 20:02:21 +00:00
Jim Meyering
08886ecd26 (TESTS): Add deref. 2002-10-11 19:59:31 +00:00
Jim Meyering
480a562b21 *** empty log message *** 2002-10-11 19:58:32 +00:00
Jim Meyering
5a56be1388 *** empty log message *** 2002-10-11 19:56:56 +00:00
Jim Meyering
2ad8545649 *** empty log message *** 2002-10-10 15:48:53 +00:00
Jim Meyering
91762c16a0 *** empty log message *** 2002-10-10 08:32:43 +00:00
Jim Meyering
6fb9a86b51 *** empty log message *** 2002-10-10 08:32:14 +00:00
Jim Meyering
b468370388 New file/test, for the fix on 2002-10-08. 2002-10-10 08:31:29 +00:00
Jim Meyering
042b41c2b9 (TESTS): Add target-1. 2002-10-10 08:31:02 +00:00
Jim Meyering
64044efd7c *** empty log message *** 2002-10-10 07:57:35 +00:00
Jim Meyering
617c5a571a . 2002-10-10 07:27:18 +00:00
Jim Meyering
e995dcb2d5 (wc): Adapt to new safe_read ABI. 2002-10-09 15:07:52 +00:00
Jim Meyering
7db0a34488 *** empty log message *** 2002-10-09 13:28:55 +00:00
Jim Meyering
97cd9f1149 *** empty log message *** 2002-10-09 08:10:03 +00:00
Jim Meyering
d57998f128 Ensure that certain environment variables
are not set (e.g., SIMPLA_BACKUP_SUFFIX).
2002-10-09 08:09:57 +00:00
Jim Meyering
ad9f3ac0a9 *** empty log message *** 2002-10-09 08:09:35 +00:00
Jim Meyering
932a05f006 *** empty log message *** 2002-10-09 07:28:19 +00:00
Jim Meyering
70869c09b8 Mark this as an expensive test; it would
consume 4GB of disk space on systems without support for sparse files.
Fix a logic error that'd make it `cat err' even though dd didn't fail.
2002-10-09 07:28:11 +00:00
Jim Meyering
9a7b64e701 *** empty log message *** 2002-10-09 07:16:17 +00:00
Jim Meyering
c9f88f349a (.jar): Fix typo: s/01;3/01;31/. 2002-10-09 07:11:44 +00:00
Jim Meyering
2cef2b3122 *** empty log message *** 2002-10-09 07:00:27 +00:00
Jim Meyering
3a4fbcd12b Ensure that ls produces English messages. 2002-10-09 07:00:14 +00:00
Jim Meyering
d928b833e3 *** empty log message *** 2002-10-09 06:59:54 +00:00
Jim Meyering
a83991f50b *** empty log message *** 2002-10-08 14:26:19 +00:00
Jim Meyering
1d2876761d (main): Fix target_directory parsing when n_files == 1.
Patch by Dmitry V. Levin.
2002-10-08 14:25:49 +00:00
Jim Meyering
a890541a5d Fix syntax in test: use =, not ==. 2002-10-08 09:25:34 +00:00
Jim Meyering
718b928df1 *** empty log message *** 2002-10-08 09:22:25 +00:00
Jim Meyering
fb763e4f7a Use double quotes around diagnostic. 2002-10-08 09:21:08 +00:00
Jim Meyering
f3584c5e62 Use double quotes around diagnostic. 2002-10-08 09:18:12 +00:00
Jim Meyering
b3a42e44e9 (save_stdin, tac_stdin_to_mem): Adapt to new safe_read ABI. 2002-10-08 07:20:28 +00:00
Jim Meyering
ffd20427d8 Rename local variable: chars_read -> bytes_read 2002-10-08 07:14:48 +00:00
Jim Meyering
c52b7838fa (squeeze_filter, read_and_delete, read_and_xlate): Adapt to new safe_read ABI. 2002-10-08 07:13:56 +00:00
Jim Meyering
b82563de58 (sysv_sum_file): Adapt to new safe_read ABI. 2002-10-08 07:11:03 +00:00
Jim Meyering
f99306fcd5 *** empty log message *** 2002-10-08 06:21:55 +00:00
Jim Meyering
5f4fb36645 (cat): Don't advance the write pointer past the end of the write buffer. 2002-10-08 06:21:31 +00:00
Jim Meyering
7a58f340c1 (begfield, limfield): Don't advance the write pointer past the
end of the write buffer.
2002-10-08 06:19:00 +00:00
Jim Meyering
ea544336d7 (head_bytes, head_lines): Adapt to new safe_read ABI. 2002-10-07 05:13:59 +00:00
Jim Meyering
a05880e42b *** empty log message *** 2002-10-07 05:13:34 +00:00
Jim Meyering
647b737648 (scanargs): Ensure that specified block sizes (specified
via ibs=N, obs=N, and bs=N) are no larger than SSIZE_MAX.
(skip, dd_copy): Adapt to new safe_read ABI.
2002-10-06 16:17:56 +00:00
Jim Meyering
00ebca59b7 (simple_cat, cat): Adapt to new safe_read ABI. 2002-10-06 15:48:49 +00:00
Jim Meyering
f99d9f8109 *** empty log message *** 2002-10-06 14:55:17 +00:00
Jim Meyering
926546dcac Update prototype.
(SAFE_READ_ERROR): Define.
2002-10-06 14:55:12 +00:00
Jim Meyering
e70e42fa66 (safe_read): Change type of function from ssize_t to size_t. 2002-10-06 14:55:01 +00:00
Jim Meyering
4ee1570593 *** empty log message *** 2002-10-06 06:44:50 +00:00
Jim Meyering
cd6593abaf (signatures): Define.
(%.sig): New rule.
(announcement): Depend on $(signatures).
2002-10-06 06:44:43 +00:00
Jim Meyering
7ec9bab074 *** empty log message *** 2002-10-06 06:34:55 +00:00
Jim Meyering
17c175eb48 bump to 4.5.3 2002-10-06 06:34:45 +00:00
Jim Meyering
76e102fa20 *** empty log message *** 2002-10-06 06:12:27 +00:00
Jim Meyering
667c11d2dc (announcement): Output all URLs for detached
signatures, not just the last one from the previous loop.
2002-10-06 06:12:12 +00:00
Jim Meyering
cf00c95789 . 2002-10-05 20:12:57 +00:00
Jim Meyering
a5761a4adb . 2002-10-05 19:57:30 +00:00
Jim Meyering
017c2208e2 . 2002-10-05 19:56:44 +00:00
Jim Meyering
fb918bedbf (TESTS): Add i-no-r. 2002-10-05 19:56:34 +00:00
Jim Meyering
702a18d659 *** empty log message *** 2002-10-05 19:56:00 +00:00
Jim Meyering
0bd10f3b8b *** empty log message *** 2002-10-05 19:55:19 +00:00
Jim Meyering
d0d7266488 (remove_entry) [ROOT_CAN_UNLINK_DIRS]: With `rm -i DIR',
don't recurse into directory, DIR.
2002-10-05 19:54:25 +00:00
Jim Meyering
1f4be66913 *** empty log message *** 2002-10-05 19:21:33 +00:00
Jim Meyering
931e5aef07 *** empty log message *** 2002-10-05 19:17:57 +00:00
Jim Meyering
7a45935962 *** empty log message *** 2002-10-05 19:17:05 +00:00
Jim Meyering
c1a20dc27b *** empty log message *** 2002-10-05 19:16:00 +00:00
Jim Meyering
55c73b9516 . 2002-10-05 17:02:43 +00:00
Jim Meyering
f540cf3789 *** empty log message *** 2002-10-05 08:30:07 +00:00
Jim Meyering
e3d5348851 save dd's stderr, and output it if dd fails 2002-10-05 08:29:21 +00:00
Jim Meyering
ae48cdae26 redirect dd's stderr 2002-10-05 08:27:45 +00:00
Jim Meyering
6a9dc978f9 (TESTS): Add big-4gb. 2002-10-05 08:26:42 +00:00
Jim Meyering
c5549236da *** empty log message *** 2002-10-05 08:26:35 +00:00
Jim Meyering
215f635780 add a comment 2002-10-04 11:25:09 +00:00
Jim Meyering
314c0eaa97 Undo last change.
Instead, run du only on the symlinks that were successfully created.
2002-10-04 11:24:12 +00:00
Jim Meyering
4adcccbf48 Redirect errors (e.g. missing file) to /dev/null. 2002-10-04 11:19:22 +00:00
Jim Meyering
c19dbea39c *** empty log message *** 2002-10-03 09:32:14 +00:00
Jim Meyering
4a6814ada7 Mark translatable string with `N_ (...)'. 2002-10-03 09:31:12 +00:00
Jim Meyering
f91c0597b1 (AUTHORS): Mark translatable string with `N_ (...)'. 2002-10-03 09:28:02 +00:00
Jim Meyering
8ddf1353cc *** empty log message *** 2002-10-02 06:51:13 +00:00
Jim Meyering
b382c38eb1 (AC_CONFIG_FILES): Remove old/* names. 2002-10-02 06:50:57 +00:00
Jim Meyering
42a19757ae update from master 2002-10-02 06:50:19 +00:00
Jim Meyering
0c0586bb2e *** empty log message *** 2002-10-02 06:41:07 +00:00
Jim Meyering
dd356beb0a (SUBDIRS): Remove `old'.
(EXTRA_DIST): List the files in old/.
2002-10-02 06:40:46 +00:00
Jim Meyering
ba13d22e09 *** empty log message *** 2002-10-01 11:43:19 +00:00
Jim Meyering
1512315121 *** empty log message *** 2002-10-01 07:58:20 +00:00
Jim Meyering
ce221c2708 *** empty log message *** 2002-10-01 07:58:16 +00:00
Jim Meyering
6ee4cfca07 (SSIZE_MAX): Define. 2002-10-01 07:58:03 +00:00
Jim Meyering
c42deaae1a . 2002-09-30 22:03:45 +00:00
Jim Meyering
cc9e07b32f . 2002-09-30 22:02:48 +00:00
Jim Meyering
1ea1325068 Don't include stdlib.h here. It's already included via system.h. 2002-09-30 21:20:08 +00:00
Jim Meyering
43231af577 *** empty log message *** 2002-09-30 16:14:02 +00:00
Jim Meyering
be9d4e80a0 *** empty log message *** 2002-09-30 08:01:02 +00:00
Jim Meyering
98abcaa372 update from master 2002-09-30 06:35:44 +00:00
Jim Meyering
8adddf55c0 (find_bracketed_repeat): Rearrange pointer/integer
expression to avoid warning from gcc.
2002-09-29 21:31:29 +00:00
Jim Meyering
9df8af3675 *** empty log message *** 2002-09-29 21:25:11 +00:00
Jim Meyering
7e1ff0b4f8 (simple_cat): Use a temporary to avoid bogus warnings.
(cat): Declare insize and outsize to be of type size_t, not int.
Rearrange pointer/integer expressions to avoid bogus warnings.
(main): Declare insize and outsize to be of type size_t, not int.
2002-09-29 21:25:03 +00:00
Jim Meyering
ca9b1df44b *** empty log message *** 2002-09-29 18:06:06 +00:00
Jim Meyering
c791a382f8 (parse_options): Give a sensible diagnostic for
an invalid byte or line count.  Reported by Mikko Tuumanen.
2002-09-29 18:06:02 +00:00
Jim Meyering
d27ac3d82a *** empty log message *** 2002-09-29 18:05:40 +00:00
Jim Meyering
9d9dbdb922 *** empty log message *** 2002-09-29 18:01:37 +00:00
Jim Meyering
0863bbf447 (main): Split a long line. 2002-09-29 18:00:28 +00:00
Jim Meyering
e16b6e395b update from master 2002-09-29 17:26:38 +00:00
Jim Meyering
c1d185f01c . 2002-09-29 17:26:18 +00:00
Jim Meyering
d51cd50606 (TESTS): Add slink. 2002-09-29 17:26:09 +00:00
Jim Meyering
559a6d0f80 *** empty log message *** 2002-09-29 17:26:00 +00:00
Jim Meyering
dcb8cc65fa *** empty log message *** 2002-09-29 17:25:43 +00:00
Jim Meyering
92a2cc65cb *** empty log message *** 2002-09-29 17:23:03 +00:00
Jim Meyering
b7412e8bc0 *** empty log message *** 2002-09-29 17:17:28 +00:00
Jim Meyering
9e3fc21d11 . 2002-09-29 17:12:36 +00:00
Jim Meyering
a3b479c91f . 2002-09-29 08:44:36 +00:00
Jim Meyering
b928574bf6 *** empty log message *** 2002-09-29 08:43:24 +00:00
Jim Meyering
6daabb7578 In move mode, always first try to rename. Before, upon failure to
rename a directory, this code would never attempt to rename any
other file in that directory, but would thenceforth always copy.
On some systems (NetApp version ??), renaming a directory may fail
with EXDEV, yet renaming files within that directory to a newly-
created destination directory succeeds.

(copy_internal): Remove local, move_mode;
use x->move_mode instead.  Based on a patch from Tom Haynes.
2002-09-29 08:43:19 +00:00
Jim Meyering
d7e2b7fa84 *** empty log message *** 2002-09-29 08:35:05 +00:00
Jim Meyering
9265193dd2 *** empty log message *** 2002-09-29 08:33:41 +00:00
Jim Meyering
a20222cd22 . 2002-09-28 22:03:55 +00:00
Jim Meyering
d7098ccf98 *** empty log message *** 2002-09-28 22:03:31 +00:00
Jim Meyering
e5a2ac0f88 (AM_INTL_SUBDIR): Don't require gt_HEADER_INTTYPES_H.
It's not necessary with autoconf-2.54.
2002-09-28 22:03:26 +00:00
Jim Meyering
885b7147cc (jm_FUNC_GETGROUPS): Rewrite to use AC_FUNC_GETGROUPS
and (if needed) to call AC_LIBOBJ and to set GETGROUPS_LIB.
2002-09-28 21:40:45 +00:00
Jim Meyering
9d78678c22 (jm_MACROS): Don't set GETGROUPS_LIB here; now it's
done via getgroups.m4's wrapper function.
2002-09-28 21:39:28 +00:00
Jim Meyering
30978dfadf update from master 2002-09-28 17:02:56 +00:00
Jim Meyering
d83e894316 *** empty log message *** 2002-09-28 16:53:57 +00:00
Jim Meyering
ccd5e413fb Remove file -- now it's part of autoconf-2.54 2002-09-28 16:53:25 +00:00
Jim Meyering
500ad9b9b1 *** empty log message *** 2002-09-28 16:50:43 +00:00
Jim Meyering
fd5bc32835 (FAIL_ONLY_ONE_WAY): New macro. Factor out some duplication.
(main): Use it.
[case 'a']: Use strtoul rather than strtol to avoid compiler warnings.
2002-09-28 16:50:34 +00:00
Jim Meyering
6fee4452d3 *** empty log message *** 2002-09-28 16:32:31 +00:00
Jim Meyering
16b4b4f861 (begfield, limfield): Rearrange comparisons to avoid compiler warnings.
(fillbuf, keycompare): Cast literal `-1' to size_t in comparisons,
to avoid compiler warnings.
2002-09-28 16:32:23 +00:00
Jim Meyering
1060257446 (dopass): Use a uintmax_t temporary to avoid bogus compiler warnings. 2002-09-28 16:29:25 +00:00
Jim Meyering
475574011d (tail_bytes): Change type of bytes_remaining to off_t
to avoid overflow.  Reported by Hans Lermen.
2002-09-28 09:21:17 +00:00
Jim Meyering
876ff10b0c *** empty log message *** 2002-09-28 07:55:25 +00:00
Jim Meyering
cd6ee8563b *** empty log message *** 2002-09-28 07:55:16 +00:00
Jim Meyering
ddb038c033 (make_path): Restore umask *before* creating the final component. 2002-09-28 07:55:08 +00:00
Jim Meyering
8c10d25fd0 Fix things so `mkdir -p' can create very deep directories, e.g.,
mkdir -p $(perl -e 'print "a/" x 40000') now works.

(main): For --parents (-p), call make_path with the
entire directory name, so we don't ever require that file operations
like stat or chmod be performed on the entire command line argument.
2002-09-28 07:51:17 +00:00
Jim Meyering
7c8156ca73 *** empty log message *** 2002-09-26 08:40:44 +00:00
Jim Meyering
0327689de0 (get_ids): Use strtoul, not strtol. Remove some casts. 2002-09-26 08:39:20 +00:00
Jim Meyering
d50e1a86b7 add a FIXME comment 2002-09-26 08:25:44 +00:00
Jim Meyering
2c6d700418 *** empty log message *** 2002-09-26 08:20:32 +00:00
Jim Meyering
4b0eb25d6d [! HAVE_INTTYPES_H && HAVE_STDINT_H] Include <stdint.h>.
(UINTMAX_MAX) [!defined UINTMAX_MAX]: New macro.
(PROPAGATE_ALL_ONES): Work even if X is unsigned and narrower than
int.  Work more efficiently if X is the same width as uintmax_t.
Do not compare X to -1, to avoid bogus compiler warning.
(get_fs_usage): (uintmax_t) -1 -> UINTMAX_MAX to avoid a cast.
Don't assume that f_frsize and f_bsize are the same type.
2002-09-26 08:18:33 +00:00
Jim Meyering
9cc87603b9 Upgrade to gettext-0.11.5. 2002-09-25 14:34:59 +00:00
Jim Meyering
d4add26938 Add be (Belarusian). 2002-09-25 14:23:49 +00:00
Jim Meyering
4fcf036cb3 . 2002-09-25 14:23:02 +00:00
Jim Meyering
ca2302ece5 . 2002-09-25 14:19:03 +00:00
Jim Meyering
59e6528c22 . 2002-09-25 12:52:56 +00:00
Jim Meyering
b79c9e46a9 (jm_MACROS): Require gt_INTTYPES_PRI. 2002-09-25 12:52:45 +00:00
Jim Meyering
0b797ed056 (gt_INTTYPES_PRI): New file, mostly from gettext. 2002-09-25 12:52:24 +00:00
Jim Meyering
619a52f976 *** empty log message *** 2002-09-25 11:45:42 +00:00
Jim Meyering
b5a4f7671a Remove unneeded parentheses around operands of `defined'. 2002-09-25 11:45:37 +00:00
Jim Meyering
d711a9e3be *** empty log message *** 2002-09-25 08:29:57 +00:00
Jim Meyering
029b8ea75d (safe_read): Make comment more precise: upon error, it returns -1. 2002-09-25 08:29:53 +00:00
Jim Meyering
34ba862f93 (eaccess): Change type of local `euid' from int to uid_t
and add a cast, to avoid a warning about `signed and unsigned type in
conditional expression'.
2002-09-25 08:23:54 +00:00
Jim Meyering
6b7e8621e2 *** empty log message *** 2002-09-24 08:50:24 +00:00
Jim Meyering
cc0a6e14fc fmt's -s, -t, -c options didn't work properly for long lines.
Since get_line may end up calling put_paragraph (for long lines),
be sure to set global, `other_indent', before it is used there.

(set_other_indent): New function, factored out of...
(get_paragraph): ... here.  Call it.
(get_line): Call set_other_indent before calling flush_paragraph,
which calls fmt_paragraph, which in turn calls put_paragraph,
which uses other_indent.
2002-09-24 08:50:20 +00:00
Jim Meyering
8683024a34 (make_path): Minor reformatting. 2002-09-22 07:40:28 +00:00
Jim Meyering
d8e1894335 *** empty log message *** 2002-09-22 06:59:21 +00:00
Jim Meyering
68527271a5 Include "dirname.h", for declaration of strip_trailing_slashes. 2002-09-22 06:59:13 +00:00
Jim Meyering
0f88878c11 *** empty log message *** 2002-09-22 06:48:35 +00:00
Jim Meyering
fab46cb466 (PRIdMAX, PRIuMAX): Remove definitions.
Now they're defined through system.h.
2002-09-22 06:48:28 +00:00
Jim Meyering
003ab9a58d Remove all inclusions of inttypes.h,
since it's already included from sys2.h via system.h.
2002-09-22 06:41:02 +00:00
Jim Meyering
709d79631a Remove all inclusions of inttypes.h,
since it's already included from sys2.h via system.h.
2002-09-22 06:40:14 +00:00
Jim Meyering
7b355ee476 upgrade to automake-1.6f 2002-09-22 06:34:18 +00:00
Jim Meyering
3be0542f6d *** empty log message *** 2002-09-22 06:33:27 +00:00
Jim Meyering
17e6ca3e89 *** empty log message *** 2002-09-21 22:40:45 +00:00
Jim Meyering
575cb67bb2 (PERL): Remove duplicate definition. 2002-09-21 22:40:35 +00:00
Jim Meyering
457ae040b7 *** empty log message *** 2002-09-21 22:34:30 +00:00
Jim Meyering
ddc4c1a8a9 (TESTS): Add long-line. 2002-09-21 22:12:40 +00:00
Jim Meyering
ef2c79217f *** empty log message *** 2002-09-21 14:24:28 +00:00
Jim Meyering
c5c97ee23a No longer include values.h.
It was required solely for now-removed reference to BITSPERBYTE.
2002-09-21 14:24:18 +00:00
Jim Meyering
ae1f13cd3c *** empty log message *** 2002-09-21 14:22:34 +00:00
Jim Meyering
d5d3e4a862 *** empty log message *** 2002-09-21 14:22:14 +00:00
Jim Meyering
7080cab46c No longer include values.h.
It was required solely for now-removed reference to BITSPERBYTE.
2002-09-21 14:21:53 +00:00
Jim Meyering
036ab5abda (UTILS_HOST_OS): Add a case for freebsd*-gnu*. 2002-09-20 09:04:43 +00:00
Jim Meyering
17170ddcb3 (TESTS): Add t-slash. 2002-09-20 08:59:17 +00:00
Jim Meyering
9fd07809b6 *** empty log message *** 2002-09-20 08:59:07 +00:00
Jim Meyering
350063fa65 add comment 2002-09-20 08:48:21 +00:00
Jim Meyering
9a8d898e60 *** empty log message *** 2002-09-20 08:46:48 +00:00
Jim Meyering
f0693e040c (remove_parents): Strip trailing slashes. 2002-09-20 08:41:02 +00:00
Jim Meyering
899a855343 Add need-ngettext to AM_GNU_GETTEXT invocation. 2002-09-20 08:18:39 +00:00
Jim Meyering
f026fc4b46 *** empty log message *** 2002-09-20 06:44:37 +00:00
Jim Meyering
eaa5777cc5 (announcement): Arrange to gpg-sign the message.
Add a URL for each detached signature file.
2002-09-20 06:44:31 +00:00
Jim Meyering
80b4ef8025 *** empty log message *** 2002-09-19 06:21:11 +00:00
Jim Meyering
f02d6eea14 *** empty log message *** 2002-09-18 08:31:16 +00:00
Jim Meyering
62718bc18d *** empty log message *** 2002-09-18 08:30:57 +00:00
Jim Meyering
0e71fdcb84 *** empty log message *** 2002-09-18 08:30:29 +00:00
Jim Meyering
78dfee94cb *** empty log message *** 2002-09-17 22:06:28 +00:00
Jim Meyering
b8da58cdac od -t x8' used the wrong (l'-prefixed) printf format.
Likewise for the o8 and u8 formats.

(ISPEC_TO_FORMAT): Define macro.
(decode_one_format): Use PRIdMAX, PRIoMAX, etc. for LONG_LONG.
Reported by Arun Sharma.
2002-09-17 22:06:21 +00:00
Jim Meyering
8837ed851e *** empty log message *** 2002-09-17 14:43:34 +00:00
Jim Meyering
32af38ad7f (PRIdMAX, PRIoMAX, PRIuMAX, PRIxMAX): Define if necessary.
From gettext's intl/loadmsgcat.c.
2002-09-17 14:41:43 +00:00
Jim Meyering
eb025632fc sort/check like this:
(export LC_COLLATE=fr_FR; sed -n '/^$/,$p' THANKS|sort -c -f -t' ' -k1,1 -k2,2)
2002-09-17 08:10:50 +00:00
Jim Meyering
96a4006030 sort 2002-09-17 08:07:07 +00:00
Jim Meyering
498e1e4f34 sort 2002-09-17 07:56:51 +00:00
Jim Meyering
0ba46f3211 *** empty log message *** 2002-09-17 07:50:32 +00:00
Jim Meyering
1c6add23a8 (TESTS): Add x8. 2002-09-17 07:34:04 +00:00
Jim Meyering
83ce802e59 test for bug fixed in coreutils-4.5.2 2002-09-17 07:33:54 +00:00
Jim Meyering
2e828f4304 *** empty log message *** 2002-09-16 10:27:05 +00:00
Jim Meyering
fd275f739b Forbid symbols matching ^jm_[A-Z].
(jm_PREREQ_QUOTEARG): Add jm_FUNC_MEMCMP.
2002-09-16 10:26:59 +00:00
Jim Meyering
29cf63f13e *** empty log message *** 2002-09-16 10:21:06 +00:00
Jim Meyering
bed74c5f2c (jm_PREREQ_ERROR): Check for libintl.h. 2002-09-16 10:20:54 +00:00
Jim Meyering
9679e3f156 *** empty log message *** 2002-09-16 05:51:14 +00:00
Jim Meyering
786254cbd5 version: 4.5.1 2002-09-16 05:49:58 +00:00
Jim Meyering
3888eed848 *** empty log message *** 2002-09-15 20:24:19 +00:00
Jim Meyering
68754e2a35 *** empty log message *** 2002-09-15 07:23:14 +00:00
Jim Meyering
f4c8df3d37 (get_format_width): Add cast to avoid
warning about `signed and unsigned type in conditional expression'.
2002-09-15 07:23:08 +00:00
Jim Meyering
165e561cf5 (generate_all_output): Likewise. 2002-09-15 07:12:05 +00:00
Jim Meyering
643087c9eb *** empty log message *** 2002-09-15 07:11:59 +00:00
Jim Meyering
e13f998e3d *** empty log message *** 2002-09-15 06:52:35 +00:00
Jim Meyering
ec317bd993 (xnanosleep): Return -1 on failure, not 1, for consistency with nanosleep.
Check errno after nanosleep returns -1.
2002-09-15 06:52:29 +00:00
Jim Meyering
466902bf34 *** empty log message *** 2002-09-14 09:12:20 +00:00
Jim Meyering
3935842cb3 (main, skip): Add casts to avoid warnings about
`comparison between signed and unsigned'.
2002-09-14 09:12:13 +00:00
Jim Meyering
12b5bb320c (print_user): Change type of local to size_t
to avoid warnings about `comparison between signed and unsigned'.
2002-09-14 07:47:38 +00:00
Jim Meyering
95631bcc4d *** empty log message *** 2002-09-14 07:45:59 +00:00
Jim Meyering
c81581d5c3 (print_full_info, print_group_list): Add casts to avoid
warnings about `signed and unsigned type in conditional expression'.
2002-09-14 07:45:53 +00:00
Jim Meyering
5ca2fe79d9 Change type of global, digest_hex_bytes, to size_t
to avoid warnings about `comparison between signed and unsigned'.
(split_3): Change parameter names to be readable and add comment.
Clean up the test for whether a line may be ignored.
2002-09-14 07:40:04 +00:00
Jim Meyering
fd73068711 *** empty log message *** 2002-09-13 21:17:26 +00:00
Jim Meyering
cea6b0e19a (jm_MACROS): Require autoconf-2.54. 2002-09-13 21:17:19 +00:00
Jim Meyering
6dfd1fe44a . 2002-09-13 14:23:26 +00:00
Jim Meyering
17b4cf8818 *** empty log message *** 2002-09-13 12:18:39 +00:00
Jim Meyering
5bd4fe2400 (main): Handle leading command line argument of `--'. 2002-09-13 09:50:23 +00:00
Jim Meyering
b4994d29a1 . 2002-09-13 09:49:55 +00:00
Jim Meyering
ef7c6ac69f *** empty log message *** 2002-09-13 09:49:26 +00:00
Jim Meyering
b9485873b6 Make sure printf handles a leading -- properly. 2002-09-13 09:49:19 +00:00
Jim Meyering
6b11de0aad (TESTS): Add printf. 2002-09-13 09:48:04 +00:00
Jim Meyering
41de1d5546 *** empty log message *** 2002-09-13 09:35:22 +00:00
Jim Meyering
0264deb7f0 *** empty log message *** 2002-09-13 09:31:32 +00:00
Jim Meyering
adaffb391b (Time directives) [%S]: Explain why the range is [0..60]. 2002-09-13 09:31:26 +00:00
Jim Meyering
dbe1e3529a (stat invocation): Remove references to now-removed %S and %C. 2002-09-13 09:19:20 +00:00
Jim Meyering
a59ff019de (usage): Explain that %S's range of [0..60] is required --
rather than 0..59 -- to accommodate the occasional positive leap second.
2002-09-13 09:18:18 +00:00
Jim Meyering
4de67de0af *** empty log message *** 2002-09-13 09:14:46 +00:00
Jim Meyering
510b33a541 *** empty log message *** 2002-09-13 08:51:27 +00:00
Jim Meyering
626d26baaa (tail invocation): In --sleep-interval=NUMBER,
NUMBER may now be a floating point number.
2002-09-13 08:51:15 +00:00
Jim Meyering
96a4360079 update from master 2002-09-13 07:46:30 +00:00
Jim Meyering
5ecd38d97e . 2002-09-12 13:16:43 +00:00
Jim Meyering
313f44f036 *** empty log message *** 2002-09-12 13:16:28 +00:00
Jim Meyering
3087631793 (nanosec_libs): Define.
(sleep_LDADD, tail_LDADD): Use it here.
2002-09-12 13:16:20 +00:00
Jim Meyering
96bd9415dc . 2002-09-12 13:15:07 +00:00
Jim Meyering
a4d28ef145 . 2002-09-12 12:14:58 +00:00
Jim Meyering
3a9de00dc7 *** empty log message *** 2002-09-12 12:12:31 +00:00
Jim Meyering
a6386ad90d *** empty log message *** 2002-09-12 12:11:59 +00:00
Jim Meyering
3bbdcee8c3 *** empty log message *** 2002-09-12 12:02:56 +00:00
Jim Meyering
1e8f677ed4 Factor nanosleep-related code into ../lib/xnanosleep.c.
Include xnanosleep.h.
Factor out fenv.h-related code.
(timespec_subtract): Remove function.
(main): Remove code that deals with computing start and stop times
as well as the loop around nanosleep.  Now that's in xnanosleep.c.
2002-09-12 12:01:02 +00:00
Jim Meyering
3a49e627de *** empty log message *** 2002-09-12 11:38:59 +00:00
Jim Meyering
7a79266014 Include xnanosleep.h and xstrtod.h.
Move declaration of global variable, sleep_interval, to ...
(main): ...here.
(usage): Update description of --sleep-interval option.
(tail_forever): New parameter, sleep_interval.  Update caller.
Use xnanosleep, rather than sleep.
(parse_options): New parameter, sleep_interval.  Update caller.
Use xstrtod, now that we accept floating point values.
2002-09-12 11:38:47 +00:00
Jim Meyering
d7a4a48c83 *** empty log message *** 2002-09-11 11:35:18 +00:00
Jim Meyering
aa6f330821 (libfetish_a_SOURCES): Add xnanosleep.c and xnanosleep.h. 2002-09-11 11:35:12 +00:00
Jim Meyering
079eb6b3d1 New files, factored out of sleep.c. 2002-09-11 11:34:20 +00:00
Jim Meyering
ae3d0303a0 . 2002-09-10 13:10:16 +00:00
Jim Meyering
867d0d0403 Remove file -- now it's part of autoconf-2.53c. 2002-09-10 13:10:02 +00:00
Jim Meyering
5d5cef3277 . 2002-09-10 13:09:17 +00:00
Jim Meyering
99583c1cae Use AC_CONFIG_LIBOBJ_DIR(lib) to tell the new
AC_FUNC_GETLOADAVG where to find getloadavg.c.
2002-09-10 13:09:01 +00:00
Jim Meyering
3fb3949208 *** empty log message *** 2002-09-10 13:08:43 +00:00
Jim Meyering
0b49457e24 . 2002-09-10 13:08:00 +00:00
Jim Meyering
9e35801348 Add lg (Luganda). 2002-09-10 13:06:27 +00:00
Jim Meyering
afef4e7e86 . 2002-09-06 20:58:23 +00:00
Jim Meyering
0e1e6b5e56 *** empty log message *** 2002-09-06 08:00:43 +00:00
Jim Meyering
8706a066cf *** empty log message *** 2002-09-06 08:00:36 +00:00
Jim Meyering
37f7bae4f0 (prompt): Change comment to give a better note to translators. 2002-09-06 08:00:30 +00:00
Jim Meyering
fceb8c6f6d . 2002-09-05 11:38:21 +00:00
Jim Meyering
1a71d84326 *** empty log message *** 2002-09-04 07:53:56 +00:00
Jim Meyering
de68469582 (addext): Add a cast to avoid gcc's warning about
`comparison between signed and unsigned'.
2002-09-04 07:53:42 +00:00
Jim Meyering
8b4aebd031 *** empty log message *** 2002-09-04 07:41:34 +00:00
Jim Meyering
6c0a2cd041 (str2signum, sig2str): Declare loop index variables to be
of type size_t so that they match type of upper bound, thus avoiding
warning about `comparison between signed and unsigned'.
2002-09-04 07:41:11 +00:00
Jim Meyering
2eb1ba5109 *** empty log message *** 2002-09-03 14:10:17 +00:00
Jim Meyering
d3f25cc8bf . 2002-09-03 14:07:36 +00:00
Jim Meyering
a9e5e84ed7 *** empty log message *** 2002-09-02 09:07:13 +00:00
Jim Meyering
585d13437c A good problem report/patch includes diffs against
the most recent test release.
2002-09-02 07:53:13 +00:00
Jim Meyering
496f29fa8c (NEED_PATHCONF_WRAPPER): Define.
(pathconf_wrapper): Define only if NEED_PATHCONF_WRAPPER is set.
2002-09-02 07:43:38 +00:00
Jim Meyering
0ea01d21a3 (skip): Add casts to avoid warning about comparison
between signed and unsigned. Also rearrange range-checking
comparisons to make them more readable.
2002-09-02 07:38:53 +00:00
Jim Meyering
2ebfe2fc9c (print_table_row): Use an unsigned type for widths
to avoid warning about comparison between signed and unsigned.
(list_signals): Likewise.
2002-09-02 07:31:24 +00:00
Jim Meyering
680cd976cc (skip): Add a cast to avoid warning about comparison
between signed and unsigned.
2002-09-02 07:23:09 +00:00
Jim Meyering
c6fcfa23be *** empty log message *** 2002-09-02 06:36:12 +00:00
Jim Meyering
636b6d76f3 *** empty log message *** 2002-09-02 06:34:55 +00:00
Jim Meyering
951b87ccd5 Bump version to 4.5.2. 2002-09-02 06:30:16 +00:00
Jim Meyering
e6c8577825 . 2002-09-01 09:58:07 +00:00
Jim Meyering
55b9df1653 *** empty log message *** 2002-09-01 09:42:31 +00:00
Jim Meyering
b2523f82c5 . 2002-09-01 08:56:59 +00:00
Jim Meyering
f7e3d9b0f2 *** empty log message *** 2002-08-31 16:59:23 +00:00
Jim Meyering
b0231a2f03 Update from GNU libc. 2002-08-31 16:59:12 +00:00
Jim Meyering
a5f8422570 Update from GNU libc. 2002-08-31 16:54:45 +00:00
Jim Meyering
5bdb1226eb Update from GNU libc. 2002-08-31 16:52:18 +00:00
Jim Meyering
eb540d8e9b *** empty log message *** 2002-08-31 16:46:43 +00:00
Jim Meyering
174a1f057c Update from GNU libc. 2002-08-31 16:46:40 +00:00
Jim Meyering
6dcc1a7fc3 *** empty log message *** 2002-08-31 16:25:42 +00:00
Jim Meyering
08264fc838 *** empty log message *** 2002-08-31 16:23:08 +00:00
Jim Meyering
24272cc948 . 2002-08-31 16:11:27 +00:00
Jim Meyering
62808a7fb5 Symlinks were always reported as using 0 blocks.
(ST_NBLOCKS): Don't depend on file type.
This reverts the change of 2000-01-30.
Based on a report and patch from Neil Brown via Michael Stone.
2002-08-31 16:04:57 +00:00
Jim Meyering
03b25d2e46 *** empty log message *** 2002-08-31 16:04:09 +00:00
Jim Meyering
570446de4a *** empty log message *** 2002-08-31 16:02:41 +00:00
Jim Meyering
970a18999d *** empty log message *** 2002-08-31 09:03:39 +00:00
Jim Meyering
61fe93b0c0 *** empty log message *** 2002-08-31 09:02:31 +00:00
Jim Meyering
41766f78de *** empty log message *** 2002-08-31 09:02:09 +00:00
Jim Meyering
45615cb41f *** empty log message *** 2002-08-31 08:52:15 +00:00
Jim Meyering
4006f4e672 Change exit (0)' to exit (EXIT_SUCCESS)',
`exit (1)' to `exit (EXIT_FAILURE)', and
`usage (1)' to `usage (EXIT_FAILURE)'.
2002-08-31 08:52:10 +00:00
Jim Meyering
7488703199 Change error (1, ...' to error (EXIT_FAILURE, ...'. 2002-08-30 23:04:53 +00:00
Jim Meyering
6c80ecd8d5 *** empty log message *** 2002-08-30 06:59:44 +00:00
Jim Meyering
4bffc55254 [START-INFO-DIR-ENTRY]: Don't use sc{} on LHS.
Fix typo: s/permission/permissions/.  From Michail Litvak.
2002-08-30 06:59:39 +00:00
Jim Meyering
96a48abf78 *** empty log message *** 2002-08-30 06:58:41 +00:00
Jim Meyering
e5ccb59f97 *** empty log message *** 2002-08-29 10:46:04 +00:00
Jim Meyering
649a00e9b8 (is_empty_dir): Detect and diagnose readdir failures.
Always close directory handle.
2002-08-29 10:42:12 +00:00
Jim Meyering
515f184462 (print_dir): Detect and diagnose readdir failures.
On some systems (at least EMC Celerra and Solaris5.8),
this appears to be necessary.
(print_dir): Rename local variable: reading -> dirp.
2002-08-29 10:16:00 +00:00
Jim Meyering
609231e3fa *** empty log message *** 2002-08-29 10:15:20 +00:00
Jim Meyering
1f8ece552f (remove_cwd_entries): Use closedir (not CLOSEDIR) when ignoring any return value. 2002-08-29 10:13:57 +00:00
Jim Meyering
82c0b315bc (print_dir): Rename local variable: reading -> dirp. 2002-08-29 09:44:23 +00:00
Jim Meyering
9a9e0503a2 (remove_cwd_entries): Detect and diagnose readdir
failures.  On some systems (at least EMC Celerra and Solaris5.8),
this appears to be necessary.
2002-08-29 09:42:43 +00:00
Jim Meyering
cd79080f4a (remove_cwd_entries): Use CLOSEDIR, not closedir.
Give a diagnostic and fail if closedir fails.
2002-08-28 06:52:07 +00:00
Jim Meyering
3ee8ba25ba *** empty log message *** 2002-08-26 13:10:10 +00:00
Jim Meyering
c725204141 *** empty log message *** 2002-08-26 13:04:49 +00:00
Jim Meyering
4ab5b1b246 (THANKS-to-translators): New rule.
(EXTRA_DIST): Add both THANKS-to-translators and THANKStt.in.
2002-08-26 12:58:30 +00:00
Jim Meyering
b10e1c1a4a *** empty log message *** 2002-08-26 12:49:14 +00:00
Jim Meyering
69a590a469 *** empty log message *** 2002-08-26 10:05:07 +00:00
Jim Meyering
e5f8396b09 *** empty log message *** 2002-08-26 10:04:51 +00:00
Jim Meyering
efaf3a08de *** empty log message *** 2002-08-26 10:04:05 +00:00
Jim Meyering
6f6a8f0361 . 2002-08-26 10:01:57 +00:00
Jim Meyering
7dd8275506 . 2002-08-26 07:26:34 +00:00
Jim Meyering
234cd4e3fe (close_stdout_wrapper): New, kludgey, function and file-scoped global.
(main): Register it with atexit.
Close STDOUT_FILENO, to avoid a problem when writing to
/dev/audio on at least Solaris 2.7 and 2.8 systems.
2002-08-26 07:23:37 +00:00
Jim Meyering
6d1c743816 *** empty log message *** 2002-08-26 07:23:18 +00:00
Jim Meyering
5dff34cd8d *** empty log message *** 2002-08-26 07:22:09 +00:00
Jim Meyering
83f07a2ae3 *** empty log message *** 2002-08-25 14:32:21 +00:00
Jim Meyering
c7bfa321f9 *** empty log message *** 2002-08-25 14:32:10 +00:00
Jim Meyering
3124a4e393 (main): Close STDIN_FILENO rather than a literal `0'. 2002-08-25 14:32:02 +00:00
Jim Meyering
f7f7207a69 latest 2002-08-25 07:35:00 +00:00
Jim Meyering
dd11d9349e *** empty log message *** 2002-08-20 16:53:43 +00:00
Jim Meyering
17077cbcbf Rewrite not to use `: ${VAR=not_set}' paradigm. 2002-08-20 16:53:33 +00:00
Jim Meyering
9db4370c1a *** empty log message *** 2002-08-20 10:19:18 +00:00
Jim Meyering
91d008f619 . 2002-08-20 10:18:19 +00:00
Jim Meyering
ac9b8804eb . 2002-08-14 13:44:19 +00:00
Jim Meyering
78088e3400 *** empty log message *** 2002-08-10 09:58:02 +00:00
Jim Meyering
01ac2fda31 Don't use "exec --"; it's not portable and shouldn't be needed. 2002-08-10 09:57:57 +00:00
Jim Meyering
f12b040a86 . 2002-08-09 22:13:49 +00:00
Jim Meyering
b2ad2ca795 [col-last]: New test for the above. 2002-08-09 22:13:37 +00:00
Jim Meyering
13f19a6185 *** empty log message *** 2002-08-09 10:04:19 +00:00
Jim Meyering
b1113d0168 (main): Don't ignore -COLUMN if it's the last option.
(usage): Clarify help text for the -COLUMN option.
2002-08-09 10:03:58 +00:00
Jim Meyering
82e2664b87 Start with version 4.5.1, chosen so that it's larger than
the latest version numbers of the component packages.
2002-08-09 10:00:25 +00:00
Jim Meyering
6eb3ba11fb (check-x-vs-1): Set and export PATH so we use programs in ../src. 2002-08-09 06:12:29 +00:00
Jim Meyering
a4726a4c8d *** empty log message *** 2002-08-09 06:12:18 +00:00
Jim Meyering
11eaed5c9c . 2002-08-08 17:05:13 +00:00
Jim Meyering
fc0e70fe74 *** empty log message *** 2002-08-08 16:38:29 +00:00
Jim Meyering
596072d020 *** empty log message *** 2002-08-08 16:37:27 +00:00
Jim Meyering
23fd377567 *** empty log message *** 2002-08-08 16:36:52 +00:00
Jim Meyering
4cb69e11ad Guard inclusion of <langinfo.h> with
`#if HAVE_LANGINFO_CODESET', not `#if HAVE_LANGINFO_H'.
2002-08-08 16:36:33 +00:00
Jim Meyering
99ec0b1a38 *** empty log message *** 2002-08-08 09:08:09 +00:00
Jim Meyering
f900759505 *** empty log message *** 2002-08-08 09:07:45 +00:00
Jim Meyering
c762eef14f *** empty log message *** 2002-08-08 09:02:10 +00:00
Jim Meyering
8cfd57e318 *** empty log message *** 2002-08-07 22:04:42 +00:00
Jim Meyering
0a6e22bb95 (main): Adjust to posixtime signature change.
Remove unnecessary initialization.
Use localtime, not posixtm, to warn about obsolete "touch".
2002-08-07 22:04:37 +00:00
Jim Meyering
1f6174e466 (main): Adjust to posixtime signature change. 2002-08-07 22:04:01 +00:00
Jim Meyering
8f5baf053e *** empty log message *** 2002-08-07 22:03:24 +00:00
Jim Meyering
ea1d6448fb (posixtime): Return bool instead of time_t, so
that we can return (time_t) -1 successfully.
2002-08-07 22:02:52 +00:00
Jim Meyering
c66dd95e8e Fix some minor time-related bugs with POSIX time arguments.
Some valid time stamps were being rejected (notably -1, and
time stamps before 1900 on 64-bit hosts).  And some invalid
time stamps were being accepted, e.g. September 31.

* lib/posixtm.h (posixtime): Return bool instead of time_t, so
that we can return (time_t) -1 successfully.
* lib/posixtm.c: Likewise.
[HAVE_STDBOOL_H]: Include <stdbool.h>.
(bool, false, true) [!HAVE_STDBOOL_H]: New type.
(t): Remove static var.
(year, posix_time_parse): Now takes struct tm * arg to modify, instead
of static var.  All uses changed.
(year): Do not reject years before 1900; they can occur with
64-bit time_t.
(posix_time_parse): Do not check for out-of-range components;
that is now the caller's responsibility, since our checks were
only approximations.
(posixtime): Use mktime to check for out-of-range components,
since it knows them exactly.
If mktime returns (time_t) -1, check whether an error actually occurred
by invoking localtime on -1.
(main) [TEST_POSIXTIME]: Check for input data errors, and report
posixtime failures better.
Improve the test data (in comments only).
2002-08-07 22:02:23 +00:00
Jim Meyering
bdccb7c890 Change $am_cv_sys_posix_termios to $ac_cv_sys_posix_termios.
From Andreas Schwab.
2002-08-05 12:21:42 +00:00
Jim Meyering
643bb0f883 *** empty log message *** 2002-08-05 12:20:55 +00:00
Jim Meyering
5c1e3600c9 *** empty log message *** 2002-08-05 12:20:42 +00:00
Jim Meyering
ea64b210f7 *** empty log message *** 2002-08-05 11:51:50 +00:00
Jim Meyering
67b3ee9676 Also change use of $am_cv_sys_posix_termios
to $ac_cv_sys_posix_termios.  Reported by Andreas Schwab.
2002-08-05 11:51:42 +00:00
Jim Meyering
46f67717fb . 2002-08-05 10:53:37 +00:00
Jim Meyering
4597dbd2a7 *** empty log message *** 2002-08-05 10:11:54 +00:00
Jim Meyering
78c7cfea3f (TESTS): Add nice and pathchk1. 2002-08-05 08:28:29 +00:00
Jim Meyering
4ab4543c2d . 2002-08-05 08:27:56 +00:00
Jim Meyering
c6827392b2 *** empty log message *** 2002-08-04 13:48:07 +00:00
Jim Meyering
28618d4dda . 2002-08-04 13:47:09 +00:00
Jim Meyering
27076dfd18 *** empty log message *** 2002-08-04 13:46:33 +00:00
Jim Meyering
04e21e6e53 . 2002-08-04 13:46:16 +00:00
Jim Meyering
92b12e12af *** empty log message *** 2002-08-04 13:41:29 +00:00
Jim Meyering
62ddac9d22 . 2002-08-04 13:40:26 +00:00
Jim Meyering
a3e653fea2 *** empty log message *** 2002-08-04 13:36:39 +00:00
Jim Meyering
54160b0b94 . 2002-08-04 11:04:56 +00:00
Jim Meyering
f09c1b54cf *** empty log message *** 2002-08-04 11:04:38 +00:00
Jim Meyering
0e727f4c59 *** empty log message *** 2002-08-04 11:03:20 +00:00
Jim Meyering
ca845879a4 (check-README): New target/rule.
(check): Depend on it.
2002-08-04 11:03:08 +00:00
Jim Meyering
9c24b11207 *** empty log message *** 2002-08-04 11:02:44 +00:00
Jim Meyering
c1f4d04c0f (AC_CONFIG_FILES): Add old/Makefile and old/*/Makefile. 2002-08-04 11:02:26 +00:00
Jim Meyering
2220d47e56 . 2002-08-04 11:01:30 +00:00
Jim Meyering
dbb5342c42 *** empty log message *** 2002-08-04 09:38:47 +00:00
Jim Meyering
b0c47ec127 *** empty log message *** 2002-08-04 06:15:41 +00:00
Jim Meyering
667d18259c *** empty log message *** 2002-08-03 17:42:53 +00:00
Jim Meyering
12107c3302 (SUBDIRS): Add old. 2002-08-03 16:49:20 +00:00
Jim Meyering
cd93525ee8 . 2002-08-03 16:48:17 +00:00
Jim Meyering
1c421df83b . 2002-08-03 16:47:21 +00:00
Jim Meyering
245b16635b *** empty log message *** 2002-08-03 16:44:43 +00:00
Jim Meyering
cefeb81dd5 (AM_INSTALLCHECK_STD_OPTIONS_EXEMPT): Set to false. 2002-08-03 16:44:33 +00:00
Jim Meyering
87ef26a750 *** empty log message *** 2002-08-03 14:57:15 +00:00
Jim Meyering
ccd890dc9f *** empty log message *** 2002-08-03 14:55:25 +00:00
Jim Meyering
9193e7e10a *** empty log message *** 2002-08-03 14:55:21 +00:00
Jim Meyering
9159586138 Require AC_SYS_POSIX_TERMIOS, not AM_SYS_POSIX_TERMIOS. 2002-08-03 14:54:21 +00:00
Jim Meyering
515fe7d138 *** empty log message *** 2002-08-03 14:01:20 +00:00
Jim Meyering
1a15d841b8 *** empty log message *** 2002-08-02 14:49:52 +00:00
Jim Meyering
be39dde5b1 uniq now obeys LC_COLLATE. 2002-08-02 14:49:29 +00:00
Jim Meyering
f74c790e4d *** empty log message *** 2002-08-02 14:42:45 +00:00
Jim Meyering
545c2323d4 Include hard-locale.h, xmemcoll.h.
(hard_LC_COLLATE): New var.
(different): Args are now char *, not const char *.
Use xmemcoll instead of memcmp to compare lines, so that
LC_COLLATE has effect.  However, use memcmp if it is an
easy locale.
(check_file): Do not include newline in comparison, so that
xmemcoll has a byte to stomp on temporarily.
(main): Set hard_LC_COLLATE.
2002-08-02 14:42:37 +00:00
Jim Meyering
69a27f2c3d *** empty log message *** 2002-08-01 21:37:04 +00:00
Jim Meyering
9a7a47422e *** empty log message *** 2002-08-01 09:19:30 +00:00
Jim Meyering
d2b62daff5 (run_shell): Exit with status 126 or 127 when execvp or
execv fails, for consistency with POSIX commands like env and nice.
2002-08-01 09:19:24 +00:00
Jim Meyering
a6005c2ba4 (main): Exit with status 126 or 127 when execvp or
execv fails, for consistency with POSIX commands like env and nice.
2002-08-01 08:50:19 +00:00
Jim Meyering
2a41097fd7 Change behavior to conform to POSIX 1003.1-2001:
- Do not adjust scheduling priority.
  - Redirects stderr to stdout, if stderr is not a terminal.
  - Exit status is now 126 if command was found but not invoked,
    127 if nohup failed or if command was not found.
  Fix bug: command was run if nohup.out wasn't writeable.
2002-08-01 08:47:33 +00:00
Jim Meyering
901688234a *** empty log message *** 2002-08-01 08:32:00 +00:00
Jim Meyering
8f065fba94 *** empty log message *** 2002-08-01 07:02:51 +00:00
Jim Meyering
12046ce90b (jm_PREREQ_TEMPNAME): lib/tempname.c may use uintmax_t,
so require require jm_AC_TYPE_UINTMAX_T.  Patch by Joe Orton.
2002-08-01 07:02:47 +00:00
Jim Meyering
cac2b2c8eb nohup changes 2002-07-29 12:19:12 +00:00
Jim Meyering
2394313610 *** empty log message *** 2002-07-29 12:18:35 +00:00
Jim Meyering
a022cf6329 Change behavior to conform to POSIX 1003.1-2001:
- Do not adjust scheduling priority.
- Redirects stderr to stdout, if stderr is not a terminal.
- Exit status is now 126 if command was found but not invoked,
  127 if nohup failed or if command was not found.
2002-07-29 12:17:42 +00:00
Jim Meyering
ac8cf8db56 . 2002-07-29 11:05:52 +00:00
Jim Meyering
2b1fd19a04 . 2002-07-29 11:04:59 +00:00
Jim Meyering
206dd4a985 require automake-1.6b 2002-07-29 10:57:12 +00:00
Jim Meyering
ef2c17c290 . 2002-07-29 10:55:22 +00:00
Jim Meyering
72c145938f . 2002-07-29 10:54:44 +00:00
Jim Meyering
0b903c36ca . 2002-07-29 10:37:33 +00:00
Jim Meyering
bc9509e015 *** empty log message *** 2002-07-29 10:35:22 +00:00
Jim Meyering
9d8a92eeb8 *** empty log message *** 2002-07-29 10:35:17 +00:00
Jim Meyering
95a4eb7b02 (SUBDIRS): Remove djgpp, for now. 2002-07-29 10:35:11 +00:00
Jim Meyering
c010271591 . 2002-07-29 10:34:32 +00:00
Jim Meyering
c017df37f1 Supply exit arg for both invocations of exit. 2002-07-29 09:54:40 +00:00
Jim Meyering
49f015c36b *** empty log message *** 2002-07-29 08:40:50 +00:00
Jim Meyering
c8729cad98 Adjust command examples in comments to use POSIX 1003.1-2001 option syntax.
From Paul Eggert.
2002-07-29 08:40:10 +00:00
Jim Meyering
14714daf41 *** empty log message *** 2002-07-28 21:48:41 +00:00
Jim Meyering
03089e39cb . 2002-07-28 21:45:04 +00:00
Jim Meyering
ff7b7797bb *** empty log message *** 2002-07-28 20:11:43 +00:00
Jim Meyering
e3d2d82194 *** empty log message *** 2002-07-28 20:10:56 +00:00
Jim Meyering
cafa875ac4 *** empty log message *** 2002-07-28 20:10:28 +00:00
Jim Meyering
aab1a6520d *** empty log message *** 2002-07-28 13:19:38 +00:00
Jim Meyering
3eb3c770fd Don't require jm_FUNC_READDIR. 2002-07-28 13:19:35 +00:00
Jim Meyering
af8dd6d427 (jm_FUNC_READDIR): Remove file/macro. No longer needed. 2002-07-28 13:15:48 +00:00
Jim Meyering
e1b511adc6 . 2002-07-27 21:39:33 +00:00
Jim Meyering
ad0b9f7dde *** empty log message *** 2002-07-27 21:39:16 +00:00
Jim Meyering
37a7d1433c (jm_PREREQ_READUTMP): Don't check just
`struct utmpx.ut_exit' and `struct utmp.ut_exit'.  Instead, check
all combinations of utmp/utmpx and ut_termination/e_termination
and ut_exit/e_exit.
2002-07-27 21:39:00 +00:00
Jim Meyering
598ed91d62 If we have both utmpx.h and utmp.h, and there exists
the utmp.ut_exit member, but not the utmpx.ut_exit member, then
undefine HAVE_UTMPX_H.  For AIX 4.3.3.  Doing all this in cpp is
a big kludge; someday we'll put the brains in an autoconf macro.
(UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT): Define.
2002-07-27 21:35:39 +00:00
Jim Meyering
86af2dfa29 (UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT): Remove definitions.
Now they're defined in readutmp.h.
(print_deadprocs): Remove obsolete FIXME comment.
2002-07-27 21:31:50 +00:00
Jim Meyering
ee16ef9929 *** empty log message *** 2002-07-27 08:45:53 +00:00
Jim Meyering
62c03f8fac Port to POSIX 1003.1-2001 "nice", which
requires the option "-n 5" rather than "-5".  This matters
with GNU "nice" if the user has set the _POSIX2_VERSION
environment variable.
2002-07-27 08:45:49 +00:00
Jim Meyering
5e8cbfdf8e *** empty log message *** 2002-07-27 07:08:03 +00:00
Jim Meyering
1d423f93c8 *** empty log message *** 2002-07-27 07:01:42 +00:00
Jim Meyering
aa2fb76aa1 *** empty log message *** 2002-07-27 07:01:03 +00:00
Jim Meyering
8c01127f70 *** empty log message *** 2002-07-26 07:38:41 +00:00
Jim Meyering
e4d4cea119 Don't include malloc.h -- it was unnecessary. 2002-07-26 07:38:35 +00:00
Jim Meyering
723e226532 update from master 2002-07-25 07:11:29 +00:00
Jim Meyering
2b4dff2063 *** empty log message *** 2002-07-24 08:33:27 +00:00
Jim Meyering
d1f42de115 (Time directives): Document %P, %R, %e, %F, %g, %G, and %V 2002-07-24 08:33:21 +00:00
Jim Meyering
ce7a9483a9 . 2002-07-24 08:27:35 +00:00
Jim Meyering
be7f1936bd undo last change 2002-07-24 08:24:12 +00:00
Jim Meyering
43343c2793 *** empty log message *** 2002-07-23 19:42:32 +00:00
Jim Meyering
68aff85110 *** empty log message *** 2002-07-23 19:42:04 +00:00
Jim Meyering
9bbd5af6e8 . 2002-07-23 08:16:11 +00:00
Jim Meyering
34598a09f5 *** empty log message *** 2002-07-23 08:14:34 +00:00
Jim Meyering
c6bb7f43ff (AC_C_BACKSLASH_A): Remove file, now that autoconf 2002-07-23 08:13:46 +00:00
Jim Meyering
2497b8e42f *** empty log message *** 2002-07-22 19:58:34 +00:00
Jim Meyering
8c55f0fbfa (Formatting the file names): Document
that -N/--literal are equivalent to --quoting-style=literal.
Reported by Oskar Liljeblad as Debian bug#103612.
2002-07-22 19:58:29 +00:00
Jim Meyering
a6d4483234 *** empty log message *** 2002-07-22 15:39:23 +00:00
Jim Meyering
33106990a6 (usage): The short form of --dereference is now -L, not -l. 2002-07-22 15:39:12 +00:00
Jim Meyering
63fb8bd5b6 *** empty log message *** 2002-07-22 12:24:48 +00:00
Jim Meyering
2bd28f0200 Add new option, --presume-input-tty, for testing only.
Not documented.
2002-07-22 12:24:41 +00:00
Jim Meyering
48a269db9c Add a test for this:
When not interactive, don't prompt for a symlink.
2002-07-22 12:22:59 +00:00
Jim Meyering
07fdea3ed9 . 2002-07-22 08:26:07 +00:00
Jim Meyering
14947f5b6c *** empty log message *** 2002-07-22 08:25:13 +00:00
Jim Meyering
786b4298a5 *** empty log message *** 2002-07-22 08:16:57 +00:00
Jim Meyering
a0ba130aea *** empty log message *** 2002-07-22 08:16:46 +00:00
Jim Meyering
ae1331b60a Handle the case in which rm produces no output. 2002-07-22 08:16:38 +00:00
Jim Meyering
2f17be04e3 This test might remove a file owned by the person running `make check'.
Hoist definition of $target_file, and use
that (not $f) in test for owner/dir/symlink.  Patch by Michael Stone.
2002-07-22 08:12:27 +00:00
Jim Meyering
db6dff2e6e rm would prompt for non-dangling symlinks
(prompt): When not interactive, don't prompt for a symlink.
2002-07-22 06:59:26 +00:00
Jim Meyering
fc1b595b19 *** empty log message *** 2002-07-22 06:55:17 +00:00
Jim Meyering
c206bac583 Fix typo in last change: add missing $ 2002-07-20 21:08:26 +00:00
Jim Meyering
64f41399ff *** empty log message *** 2002-07-20 20:06:49 +00:00
Jim Meyering
bcfbac9349 (copy_internal): Use file_name_lookup, not getdport.
Patch by Alfred M. Szmidt.
2002-07-20 20:06:41 +00:00
Jim Meyering
32ea988e8b *** empty log message *** 2002-07-20 15:48:25 +00:00
Jim Meyering
ad7b8c7978 . 2002-07-20 15:39:18 +00:00
Jim Meyering
b24b689963 . 2002-07-20 15:29:25 +00:00
Jim Meyering
334294f09d (main): Add an explicit `exit (EXIT_SUCCESS);'
for --version, rather than falling through.
2002-07-20 15:18:37 +00:00
Jim Meyering
3f6c422f1a (false.c): Convert only the final EXIT_SUCCESS
into EXIT_FAILURE.  Otherwise, false --help and false --version
would fail.
2002-07-20 15:18:20 +00:00
Jim Meyering
ad7e872471 *** empty log message *** 2002-07-20 14:24:34 +00:00
Jim Meyering
a82d360478 (news-r1, news-r2): Define. Better regexp.
(announcement): Use them here.  Also makes the line length < 80.
2002-07-20 14:24:29 +00:00
Jim Meyering
bfe17c403d *** empty log message *** 2002-07-20 14:12:31 +00:00
Jim Meyering
d234d4b968 *** empty log message *** 2002-07-20 14:10:21 +00:00
Jim Meyering
edc5d1e500 . 2002-07-20 14:06:47 +00:00
Jim Meyering
ce62cf1bd3 *** empty log message *** 2002-07-20 14:06:33 +00:00
Jim Meyering
eb7996a1df New file. From gettex-0.11.3. 2002-07-20 14:06:23 +00:00
Jim Meyering
4d84eaa764 do not use tail -1; use tail -n 1 instead 2002-07-20 11:17:27 +00:00
Jim Meyering
a5c943a9b4 . 2002-07-20 11:16:45 +00:00
Jim Meyering
6249feeba8 *** empty log message *** 2002-07-20 08:32:46 +00:00
Jim Meyering
74222f7619 *** empty log message *** 2002-07-20 08:28:24 +00:00
Jim Meyering
18d123ec85 *** empty log message *** 2002-07-20 08:24:31 +00:00
Jim Meyering
2b6249f98c . 2002-07-20 07:12:58 +00:00
Jim Meyering
6884ff795d . 2002-07-20 07:12:29 +00:00
Jim Meyering
e54c429349 *** empty log message *** 2002-07-20 07:12:13 +00:00
Jim Meyering
559555c77c Require autoconf-2.53b.
Use new macros AC_FUNC_MALLOC and AC_FUNC_REALLOC,
in place of jm_-prefixed ones.
2002-07-20 07:12:09 +00:00
Jim Meyering
b76525f29d Remove file, now that autoconf provides this macro. 2002-07-20 07:11:05 +00:00
Jim Meyering
a848d8b02b Adjust to work with new autoconf macros, AC_FUNC_MALLOC
and AC_FUNC_REALLOC: test #ifndef HAVE_MALLOC/HAVE_REALLOC.
2002-07-20 07:07:48 +00:00
Jim Meyering
6f382f7324 . 2002-07-20 06:52:12 +00:00
Jim Meyering
5e9dbfad55 Upgrade to gettext-0.11.3. 2002-07-20 06:41:26 +00:00
Jim Meyering
940ec37b9d *** empty log message *** 2002-07-20 06:38:38 +00:00
Jim Meyering
fd72bdc343 Upgrade to gettext-0.11.3. 2002-07-20 06:38:33 +00:00
Jim Meyering
5a75d400d9 Upgrade to gettext-0.11.3. 2002-07-20 06:37:36 +00:00
Jim Meyering
03229a474f Upgrade to gettext-0.11.3. 2002-07-20 06:36:49 +00:00
Jim Meyering
5b8a7240b0 Upgrade to gettext-0.11.3. 2002-07-20 06:35:12 +00:00
Jim Meyering
7e168001e9 Upgrade to gettext-0.11.3. 2002-07-20 06:34:16 +00:00
Jim Meyering
ca66dd1648 . 2002-07-20 06:31:28 +00:00
Jim Meyering
2200bd0564 Upgrade to gettext-0.11.3. 2002-07-20 06:31:12 +00:00
Jim Meyering
9befab3af8 fix typo in comment 2002-07-20 06:22:02 +00:00
Jim Meyering
39d971818e skip directories, too.
Otherwise, we'd have to account for the additional `directory ' part
of a diagnostic like this:

fail-eperm: unexpected dignostic from `rm -f /tmp/.pcmcia';
  got      rm: cannot remove directory `/tmp/.pcmcia': Is a directory
  expected rm: cannot remove `/tmp/.pcmcia': ...
2002-07-20 05:36:59 +00:00
Jim Meyering
e724268ea5 quotemeta 2002-07-19 22:01:43 +00:00
Jim Meyering
748de084cc *** empty log message *** 2002-07-19 21:36:56 +00:00
Jim Meyering
7ca9560caf Add .wav. 2002-07-19 21:36:46 +00:00
Jim Meyering
6c38ff8431 *** empty log message *** 2002-07-19 21:35:56 +00:00
Jim Meyering
b6389794e2 Don't expect `ARGV_0=$0 exec ...' to work.
It doesn't work with /bin/sh of Solaris5.6.
Use an explicit `export ARGV_0' instead.
[comparing actual and expected output]: Don't match the entire line,
but rather just the `rm: cannot remove `$dir/$f':' part.
2002-07-19 21:35:48 +00:00
Jim Meyering
29c8739e95 Use input-tty rather than testing for /dev/stdin. 2002-07-19 21:12:23 +00:00
Jim Meyering
767a8b968e *** empty log message *** 2002-07-19 20:26:28 +00:00
Jim Meyering
5db1ff6873 *** empty log message *** 2002-07-19 20:25:46 +00:00
Jim Meyering
164e61fbb9 tweak for better exit 2002-07-19 20:22:59 +00:00
Jim Meyering
4a8560e2a0 . 2002-07-19 19:42:31 +00:00
Jim Meyering
d4439bcbf4 update from master 2002-07-18 20:44:25 +00:00
Jim Meyering
af37865370 *** empty log message *** 2002-07-18 18:38:28 +00:00
Jim Meyering
3c26c805a7 *** empty log message *** 2002-07-18 18:35:47 +00:00
Jim Meyering
a19f9253c4 (main): Test sysctl(...) >= 0, not == 0, since
on NetBSD the return value may well be positive.
Use one-line aggregate initializations.
Use tightly scoped static buffers to avoid warnings about
unused variables on some systems.
2002-07-18 18:35:42 +00:00
Jim Meyering
510f7bfe87 (UNAME_HARDWARE_PLATFORM, UNAME_PROCESSOR): New macros.
(main): Use them, along with sysctl, to support uname -i and uname -p
on BSD hosts.
2002-07-18 18:28:53 +00:00
Jim Meyering
283c81ccdd . 2002-07-18 15:29:53 +00:00
Jim Meyering
80206d9811 (Makefile): Also depend on LINGUAS. 2002-07-18 09:46:38 +00:00
Jim Meyering
c696260961 *** empty log message *** 2002-07-18 09:34:52 +00:00
Jim Meyering
dadffbebca *** empty log message *** 2002-07-18 09:33:48 +00:00
Jim Meyering
2ea4083a64 *** empty log message *** 2002-07-18 09:28:45 +00:00
Jim Meyering
a536063677 Add the following to the list of colorizable
TERM names: dtterm xterm-color Eterm.
New archive suffix: .jar
New image suffixes: .jpeg .pbm .pgm .tiff .mpeg .xcf .xwd
Audio suffixes: .ogg .mp3
2002-07-18 09:28:41 +00:00
Jim Meyering
570e8c45fe *** empty log message *** 2002-07-17 15:35:22 +00:00
Jim Meyering
37bbc4c47f (print_uptime): Restore use of (equivalent, but
more readable) `>=' from Bruno's patch.
2002-07-17 10:59:54 +00:00
Jim Meyering
5486771381 . 2002-07-17 10:50:19 +00:00
Jim Meyering
9ee956a2f7 Use GNULIB_BOOT_TIME. 2002-07-17 10:49:46 +00:00
Jim Meyering
15b923a271 New file. Extracted from sh-utils' configure.ac
and extended to work also with *BSD systems.
2002-07-17 10:47:46 +00:00
Jim Meyering
6080be6701 *** empty log message *** 2002-07-16 09:49:43 +00:00
Jim Meyering
3474b1e642 *** empty log message *** 2002-07-16 09:42:43 +00:00
Jim Meyering
a96affa5e1 use $(PERL), not @PERL@ 2002-07-16 09:37:41 +00:00
Jim Meyering
d85c0c81fa *** empty log message *** 2002-07-16 09:29:56 +00:00
Jim Meyering
6978ba6736 (print_it): Use memcpy and a little pointer arithmetic, rather than stpncpy. 2002-07-16 09:29:52 +00:00
Jim Meyering
753bb04a60 . 2002-07-16 06:53:00 +00:00
Jim Meyering
99bf17613b *** empty log message *** 2002-07-16 06:51:20 +00:00
Jim Meyering
c7a1d7f58f help font-lock-mode 2002-07-16 06:49:50 +00:00
Jim Meyering
b23214fca0 *** empty log message *** 2002-07-16 06:46:19 +00:00
Jim Meyering
ce0f0e7e12 *** empty log message *** 2002-07-15 21:08:48 +00:00
Jim Meyering
52b40984a2 Include sys/sysctl.h.
(print_uptime): Add support for determining the boot time on FreeBSD.
2002-07-15 21:08:21 +00:00
Jim Meyering
eba70ec3a5 *** empty log message *** 2002-07-15 21:07:30 +00:00
Jim Meyering
9d348b20ef (jm_MACROS): Check for the sysctl function.
(jm_CHECK_ALL_HEADERS): Check for sys/sysctl.h.
2002-07-15 21:06:21 +00:00
Jim Meyering
34e8e6db03 *** empty log message *** 2002-07-15 20:43:48 +00:00
Jim Meyering
b918fce9a6 (print_uptime): Use STREQ in place of !strcmp. 2002-07-15 20:42:43 +00:00
Jim Meyering
02bdcf7646 Remove unnecessary uses of `defined' when
operating on `HAVE_...' symbols.  Remove unnecessary parentheses.
2002-07-15 13:15:07 +00:00
Jim Meyering
cdcc745b6b *** empty log message *** 2002-07-15 13:00:46 +00:00
Jim Meyering
33b79abe90 #undef MNT_IGNORE before defining it, to avoid warning on FreeBSD. 2002-07-15 13:00:40 +00:00
Jim Meyering
bac77ea3d9 Include <string.h>. 2002-07-15 12:59:47 +00:00
Jim Meyering
b65a2d1877 *** empty log message *** 2002-07-14 12:39:24 +00:00
Jim Meyering
6e5c26da04 *** empty log message *** 2002-07-14 11:46:50 +00:00
Jim Meyering
ab4c1d5532 Under some circumstances, rm would fail due to a lack of
permissions, but give a misleading diagnostic like this:
rm: cannot chdir from `.' to `foo': Not a directory

(remove_dir): Detect the case in which unlinking a
non-directory fails with EPERM, and give an appropriate diagnostic.
2002-07-14 11:46:41 +00:00
Jim Meyering
7678915a9e (TESTS): Add fail-eperm. 2002-07-13 09:24:13 +00:00
Jim Meyering
e5ee2e3aee (print_it): Use xstrdup, not strdup.
Use strspn to avoid an explicit loop.
Use fputc rather than printf "\n".

Include quote.h.
(print_stat): Use xreadlink, rather than using readlink directly.
Use the quote function rather than hard-coded double quotes.
Use error, not perror.
2002-07-13 08:05:04 +00:00
Jim Meyering
902453fc35 *** empty log message *** 2002-07-10 10:25:31 +00:00
Jim Meyering
545b6d7541 (show_dev): Make the `Use%' column align with
its heading, even when -P is used with -h or -H.
2002-07-10 10:22:10 +00:00
Jim Meyering
0fe8dc3290 update copyright 2002-07-10 10:09:10 +00:00
Jim Meyering
44ce3e4b3c *** empty log message *** 2002-07-10 10:08:33 +00:00
Jim Meyering
2aeeb5466e (du invocation): s/PAT/PATTERN/. 2002-07-10 10:08:22 +00:00
Jim Meyering
eb8c474088 Add a brief description of --exclude. 2002-07-10 10:06:39 +00:00
Jim Meyering
290867cc4a (usage) [--exclude]: Use PATTERN rather than PAT. 2002-07-10 10:05:32 +00:00
Jim Meyering
4e2a62ff5e *** empty log message *** 2002-07-10 10:05:13 +00:00
Jim Meyering
a1e22df67a update from master 2002-07-09 15:41:05 +00:00
Jim Meyering
703f6c0969 *** empty log message *** 2002-07-09 08:40:23 +00:00
Jim Meyering
00489c764a (ME_DUMMY): Don't count entries of type `auto' as dummy ones.
At least on GNU/Linux systems, `auto' means something else.
From Michael Stone.
2002-07-09 08:40:15 +00:00
Jim Meyering
6b33fa2fc6 (check-x-vs-1): cd to srcdir before running the ls.
Otherwise, it'd fail in the non-srcdir case.
2002-07-09 07:48:30 +00:00
Jim Meyering
01fb2d0ba8 . 2002-07-09 07:31:29 +00:00
Jim Meyering
d072c179a7 alphabetize the lists of programs 2002-07-09 07:30:44 +00:00
Jim Meyering
c77361418f add cat.1, once again 2002-07-09 07:27:27 +00:00
Jim Meyering
ca407c08fa *** empty log message *** 2002-07-09 07:26:49 +00:00
Jim Meyering
ffffb388a0 *** empty log message *** 2002-07-09 07:26:38 +00:00
Jim Meyering
744750ded3 (check-x-vs-1): New target.
(check-local): Depend on check-x-vs-1.
2002-07-09 07:25:40 +00:00
Jim Meyering
a879a0925f (dist_man_MANS): Add stat.
(stat.1): Add dependency.
2002-07-09 06:55:05 +00:00
Jim Meyering
56a4c59e60 (euidaccess): Remove declaration. It was unused. From Michael Stone.
(yesno): Remove declaration.  It too was unused.
2002-07-09 06:38:19 +00:00
Jim Meyering
a1d54b2837 *** empty log message *** 2002-07-08 17:15:28 +00:00
Jim Meyering
1882eec679 df now rounds all quantities up, as per POSIX.
This fixes a bug where df would report Size < Used.
2002-07-08 17:15:19 +00:00
Jim Meyering
67bf6815c4 df now rounds all quantities up, as per POSIX.
This fixes a bug where df would report Size < Used.

(df_readable): Omit last arg; we always round up now.
All callers changed.
2002-07-08 17:03:36 +00:00
Jim Meyering
dc0221e601 s/sh-utils/this package/ 2002-07-08 12:29:34 +00:00
Jim Meyering
ffceff850d (uninstall-local): Search for @GNU_PACKAGE@,
rather than the hard-coded `sh-utils'.
2002-07-08 12:26:59 +00:00
Jim Meyering
af75d641d4 *** empty log message *** 2002-07-08 09:13:33 +00:00
Jim Meyering
647eaf53a8 New ls time style: long-iso, which generates YYYY-MM-DD HH:MM.
Any time style can be preceded by "posix-".
The default time style is now posix-long-iso instead of posix-iso.
2002-07-08 09:13:12 +00:00
Jim Meyering
01eacf71cb (enum time_style): Remove posix_iso_time_style.
Add long_iso_time_style.
(time_style_args, time_style_types, decode_switches): Likewise.
(decode_switches): If a time style is prefixed by "posix-", ignore
it if in the POSIX locale.  Default style is now posix-long-iso.
(usage): Explain the above.
2002-07-08 09:12:48 +00:00
Jim Meyering
cebf7f7371 check only for $@" 2002-07-08 08:04:08 +00:00
Jim Meyering
a18abe21f7 *** empty log message *** 2002-07-08 08:01:23 +00:00
Jim Meyering
ce7f59f2ff *** empty log message *** 2002-07-08 07:09:21 +00:00
Jim Meyering
e289e5c881 (check-texinfo): Check for the above. 2002-07-08 07:08:59 +00:00
Jim Meyering
a72662ed6b (cp invocation): Remove unnecessary "$@" in example;
Texinfo would render the @" as an umlaut over the following character.
From Paul Eggert.
2002-07-08 07:07:52 +00:00
Jim Meyering
89eb405076 . 2002-07-06 15:37:12 +00:00
Jim Meyering
a6b74b8947 *** empty log message *** 2002-07-06 15:36:23 +00:00
Jim Meyering
5a6436bf38 *** empty log message *** 2002-07-06 15:35:29 +00:00
Jim Meyering
593a07614a (stat invocation): Remove description of --secure. 2002-07-06 15:35:24 +00:00
Jim Meyering
d815f6dbb7 Remove everything associated with --secure option. 2002-07-06 15:34:32 +00:00
Jim Meyering
512de3938e comments 2002-07-06 09:53:57 +00:00
Jim Meyering
66f8c36584 improve the test 2002-07-06 09:53:14 +00:00
Jim Meyering
49d3f4be1a *** empty log message *** 2002-07-06 09:16:56 +00:00
Jim Meyering
0dc6b951d8 *** empty log message *** 2002-07-04 12:07:29 +00:00
Jim Meyering
665089a167 *** empty log message *** 2002-07-04 12:07:23 +00:00
Jim Meyering
2afe4a1677 (prompt): Fix test for write-protectedness to also
check errno == EACCES.  Otherwise, `rm dangling-symlink' would
mistakenly prompt.
2002-07-04 12:06:49 +00:00
Jim Meyering
b645ebf086 *** empty log message *** 2002-07-04 12:06:18 +00:00
Jim Meyering
99c8e3f461 (TESTS): Add dangling-symlink. 2002-07-04 12:06:08 +00:00
Jim Meyering
81cae5ce24 *** empty log message *** 2002-07-04 12:05:00 +00:00
Jim Meyering
dd2496d71e *** empty log message *** 2002-07-04 12:04:37 +00:00
Jim Meyering
8a7ec6fa52 *** empty log message *** 2002-07-03 08:45:18 +00:00
Jim Meyering
973f88bd7d *** empty log message *** 2002-07-03 08:44:59 +00:00
Jim Meyering
27195acdb6 (usage): Rename --link/-l to --dereference/-L.
Describe --secure.
Describe --format.
(main): Support -L.  Deprecate -l.
2002-07-03 08:44:55 +00:00
Jim Meyering
421c142235 *** empty log message *** 2002-07-03 08:44:34 +00:00
Jim Meyering
8d7c1bb101 (stat invocation): Rename --link/-l to --dereference/-L.
Rewrite description of --dereference.
2002-07-03 08:44:27 +00:00
Jim Meyering
4afd8a87cd *** empty log message *** 2002-07-03 08:41:56 +00:00
Jim Meyering
41fe641773 add link and unlink 2002-07-02 16:20:54 +00:00
Jim Meyering
33c2d4da98 . 2002-07-02 16:20:10 +00:00
Jim Meyering
40d884ef95 *** empty log message *** 2002-07-02 16:19:46 +00:00
Jim Meyering
99e738219b *** empty log message *** 2002-07-02 14:56:32 +00:00
Jim Meyering
51e63eddf4 remove djgpp 2002-07-02 14:06:37 +00:00
Jim Meyering
3f1725cd4a . 2002-07-02 14:05:35 +00:00
Jim Meyering
bde17523a9 *** empty log message *** 2002-07-02 09:15:50 +00:00
Jim Meyering
fa6c1e3f51 . 2002-07-02 09:13:10 +00:00
Jim Meyering
b5e07cb9e8 *** empty log message *** 2002-07-02 09:12:42 +00:00
Jim Meyering
2ee11887cd (usage): Use the PACKAGE_BUGREPORT e-mail address, rather than hard-coding it. 2002-07-02 09:09:10 +00:00
Jim Meyering
6d0fe4dba5 *** empty log message *** 2002-07-02 09:08:30 +00:00
Jim Meyering
5a731510b2 (usage): Use the PACKAGE_BUGREPORT e-mail address, rather than hard-coding it. 2002-07-02 09:06:33 +00:00
Jim Meyering
d23970e52e (usage): Use the PACKAGE_BUGREPORT e-mail address, rather than hard-coding it. 2002-07-02 09:05:33 +00:00
Jim Meyering
4c7e003c1b . 2002-07-02 09:02:16 +00:00
Jim Meyering
4262ada1bd . 2002-07-02 09:01:53 +00:00
Jim Meyering
f4bb64378d (EXTRA_DIST): Merge. 2002-07-02 08:59:21 +00:00
Jim Meyering
d3ddaf1b29 *** empty log message *** 2002-07-02 08:47:01 +00:00
Jim Meyering
16cec7b66e (.sh): Also substitute @PACKAGE_BUGREPORT@. 2002-07-02 08:46:46 +00:00
Jim Meyering
9d6d0e452b (usage_help): Use @PACKAGE_BUGREPORT@, rather than hard-coding a
deprecated address.
2002-07-02 08:45:10 +00:00
Jim Meyering
c16552eee5 (usage): Use @PACKAGE_BUGREPORT@, rather than hard-coding a deprecated address. 2002-07-02 08:44:52 +00:00
Jim Meyering
e2003dea4b (usage): Mention that the expansions of %p and %P are
empty in many locales.  From matthew arnison.
2002-07-02 05:20:52 +00:00
Jim Meyering
7f412c940d merged 2002-07-01 21:26:55 +00:00
Jim Meyering
4b42154477 s/any/some/ 2002-07-01 21:15:13 +00:00
Jim Meyering
dc58af4acf remove redundant (exit $fail) 2002-07-01 19:15:49 +00:00
Jim Meyering
58c37faa5c Handle yet another different diagnostic. 2002-07-01 14:36:57 +00:00
Jim Meyering
bec7e2c432 *** empty log message *** 2002-07-01 14:23:28 +00:00
Jim Meyering
214d3ee739 Include sys/time.h.
From Volker Borchert.
2002-07-01 14:19:20 +00:00
Jim Meyering
a7d1d17be0 update to use prologue from sample-test 2002-07-01 09:41:20 +00:00
Jim Meyering
7039e40db2 whoops. 2002-07-01 09:25:02 +00:00
Jim Meyering
c69f2e06ce merge 2002-07-01 09:24:34 +00:00
Jim Meyering
48ed048feb *** empty log message *** 2002-07-01 09:09:06 +00:00
Jim Meyering
abb32bb0ae Merge the three files from fileutils, textutils, and sh-utils. 2002-07-01 08:13:49 +00:00
Jim Meyering
5ad73398f4 Merge the three files from fileutils, textutils, and sh-utils. 2002-07-01 08:08:43 +00:00
Jim Meyering
e6b4ef7f1d *** empty log message *** 2002-06-29 13:08:16 +00:00
Jim Meyering
a9a425d557 (print_statfs): Use `fputc ('*', stdout)'
instead of the combination of strcat and printf.
(print_statfs) [!FLASK_LINUX]: Print `*' for %S and %C, rather than `S' and `C'.
(print_stat) [!FLASK_LINUX]: Likewise.
2002-06-29 13:08:08 +00:00
Jim Meyering
83df3a8165 *** empty log message *** 2002-06-29 11:50:48 +00:00
Jim Meyering
9eea5b03dd (AD_mark_current_as_unremovable): Replace dead code with an assertion. 2002-06-29 11:50:38 +00:00
Jim Meyering
b31006ba99 *** empty log message *** 2002-06-26 07:38:23 +00:00
Jim Meyering
de19a1af57 (Putting the tools together): Don't mention egrep,
since it's not part of POSIX 1003.1-2001.
2002-06-26 07:38:18 +00:00
Jim Meyering
3ba3282be5 *** empty log message *** 2002-06-26 06:18:04 +00:00
Jim Meyering
0d051ba221 (WIDE_CHAR_SUPPORT): New macro. Use it uniformly instead of
(defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H).
It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1
reported by Vin Shelton.
2002-06-26 06:17:35 +00:00
Jim Meyering
8020e5b1e3 *** empty log message *** 2002-06-26 06:16:13 +00:00
Jim Meyering
074e29a651 (_AC_LIBOBJ_FNMATCH): Check for btowc. 2002-06-26 06:16:05 +00:00
Jim Meyering
5da70319a7 from libc 2002-06-26 06:13:24 +00:00
Jim Meyering
8ac1a9f278 *** empty log message *** 2002-06-25 08:21:13 +00:00
Jim Meyering
6e78c788f0 (prompt): Add a comment to help translators work
around the problem of making the translations of the adjective
`write-protected' and the corresponding run-time-variable noun
(e.g., file, directory, symlink, etc.) consistent.  From Paul Eggert.
2002-06-25 08:21:07 +00:00
Jim Meyering
35f99d5347 *** empty log message *** 2002-06-24 11:12:56 +00:00
Jim Meyering
de1abda345 *** empty log message *** 2002-06-24 10:56:55 +00:00
Jim Meyering
e6d1f21ea6 (usage): Add missing open-quote. 2002-06-24 10:56:50 +00:00
Jim Meyering
2223ca3c2d *** empty log message *** 2002-06-24 10:39:37 +00:00
Jim Meyering
4605ddcc95 *** empty log message *** 2002-06-22 18:08:52 +00:00
Jim Meyering
4dcdd8be06 *** empty log message *** 2002-06-22 18:08:10 +00:00
Jim Meyering
67e6f0f233 *** empty log message *** 2002-06-22 18:03:44 +00:00
Jim Meyering
8965df82d1 (ISASCII, ISPRINT): Undefine, to avoid warning about
redefinition due to Solaris5.6's definition in /usr/include/sys/euc.h.
2002-06-22 18:03:40 +00:00
Jim Meyering
453257fa71 *** empty log message *** 2002-06-22 16:20:19 +00:00
Jim Meyering
9e7746f4c0 (segv_handler, c_stack_action) [! defined SA_SIGINFO]:
Do not assume SA_SIGINFO behavior.
Bug reported by Jim Meyering on NetBSD 1.5.2.
2002-06-22 16:20:15 +00:00
Jim Meyering
7721a2148a *** empty log message *** 2002-06-22 10:11:25 +00:00
Jim Meyering
64a1747ac5 Update from diffutils-2.8.2. 2002-06-22 10:11:14 +00:00
Jim Meyering
2e53304940 . 2002-06-22 10:09:47 +00:00
Jim Meyering
299741bf33 *** empty log message *** 2002-06-22 10:09:33 +00:00
Jim Meyering
a715ff5d80 (libfetish_a_SOURCES): Add exitfail.c and exitfail.h. 2002-06-22 09:26:57 +00:00
Jim Meyering
e3dbc8d753 New files, from diffutils-2.8.2. 2002-06-22 09:25:36 +00:00
Jim Meyering
d8cfcf1a19 *** empty log message *** 2002-06-22 09:23:32 +00:00
Jim Meyering
7fc37adff9 (libfetish_a_SOURCES): Add c-stack.c, too. 2002-06-22 09:23:17 +00:00
Jim Meyering
53ba358c4b New file, from diffutils-2.8.2. 2002-06-22 09:03:14 +00:00
Jim Meyering
f9114f866d from diffutils-2.8.2 2002-06-22 09:01:22 +00:00
Jim Meyering
846b65a50e (jm_PREREQ): Add jm_PREREQ_C_STACK. 2002-06-22 09:01:10 +00:00
Jim Meyering
6e8cd75ccf *** empty log message *** 2002-06-22 08:55:43 +00:00
Jim Meyering
3a88e9055b . 2002-06-22 08:54:28 +00:00
Jim Meyering
10ff1d4404 Update from diffutils-2.8.2. 2002-06-22 08:54:23 +00:00
Jim Meyering
fe02d6163d . 2002-06-22 08:53:17 +00:00
Jim Meyering
6088c6dba5 *** empty log message *** 2002-06-22 08:53:02 +00:00
Jim Meyering
04c5110e59 (jm_PREREQ_EXCLUDE): Rename: jm_FUNC_FNMATCH to AC_FUNC_FNMATCH_GNU. 2002-06-22 08:52:56 +00:00
Jim Meyering
555d569125 * jm-macros.m4 (jm_CHECK_ALL_TYPES): Don't require AC__GNU_SOURCE,
now that configure.ac uses AC_GNU_SOURCE.
	(jm_MACROS): Rename: jm_FUNC_FNMATCH to AC_FUNC_FNMATCH_GNU.
2002-06-22 08:51:02 +00:00
Jim Meyering
ff6434052f (libfetish_a_SOURCES): Add fnmatch_.h in place of fnmatch.h.
(EXTRA_DIST): Add fnmatch_loop.c.
2002-06-22 08:47:57 +00:00
Jim Meyering
c230b93ee1 . 2002-06-22 08:34:59 +00:00
Jim Meyering
06f7295ae7 *** empty log message *** 2002-06-22 08:32:50 +00:00
Jim Meyering
f35ad592ca from diffutils-2.8.2. 2002-06-22 08:32:40 +00:00
Jim Meyering
8b213cb96f Change each use of AC_CHECK_HEADERS(stdbool.h) to AC_HEADER_STDBOOL 2002-06-22 08:29:29 +00:00
Jim Meyering
1cbf3518b8 New file, from diffutils-2.8.2. 2002-06-22 08:27:18 +00:00
Jim Meyering
7d04e0b63c Accommodate the slightly different diagnostic we
get on some systems, due to `unlink (dir)' failing with EACCES
rather than EPERM.  E.g. for ReiserFS on Linux-2.4.18.
2002-06-22 06:49:57 +00:00
Jim Meyering
fb10c254d8 *** empty log message *** 2002-06-22 06:49:43 +00:00
Jim Meyering
003d4e0cbe Update from gettext-0.11.2. 2002-06-21 21:23:01 +00:00
Jim Meyering
b3e0a2f188 *** empty log message *** 2002-06-21 17:42:12 +00:00
Jim Meyering
04bc254d7a bump serial# 2002-06-21 17:42:06 +00:00
Jim Meyering
6d9cf68838 (jm_PREREQ_QUOTEARG): Reflect name change: s/AC_MBSTATE_T/AC_TYPE_MBSTATE_T. 2002-06-21 17:41:58 +00:00
Jim Meyering
442596279b Reflect name change: s/AC_MBSTATE_T/AC_TYPE_MBSTATE_T. 2002-06-21 17:41:02 +00:00
Jim Meyering
04b4ee1245 Update from diffutils-2.8.2. 2002-06-21 17:38:30 +00:00
Jim Meyering
848d68e2c7 Add comment, from diffutils-2.8.2. 2002-06-21 15:39:12 +00:00
Jim Meyering
1e1836f7ca *** empty log message *** 2002-06-21 15:29:28 +00:00
Jim Meyering
4877e7ad84 . 2002-06-21 15:21:49 +00:00
Jim Meyering
15606fc8a9 tiny tweaks 2002-06-21 13:20:39 +00:00
Jim Meyering
fc3520c6fc (stat invocation): New section. From Michael Meskes. 2002-06-21 13:19:31 +00:00
Jim Meyering
0c788cabce . 2002-06-21 12:48:36 +00:00
Jim Meyering
a170c7e497 *** empty log message *** 2002-06-21 12:48:06 +00:00
Jim Meyering
fff4a08af1 (wget-update): Checkout into config/.
Warn when skipping a file.
2002-06-21 12:48:00 +00:00
Jim Meyering
047ab72566 *** empty log message *** 2002-06-21 12:34:49 +00:00
Jim Meyering
3ec40eb458 *** empty log message *** 2002-06-21 12:34:44 +00:00
Jim Meyering
e2a70948d4 Include sys/statvfs.h.
[!HAVE_SYS_STATVFS_H && !HAVE_SYS_VFS_H]: Include sys/param.h
and sys/mount.h, to get decl of struct statfs on NetBSD 1.5.2.
(NAMEMAX_FORMAT, STRUCT_STATVFS): Define.
(HAVE_STRUCT_STATXFS_F_TYPE, SB_F_NAMEMAX): Define.
Remove `static' attribute from decl of program_name.
(human_fstype): Use f_basetype or f_fstypename if available.
(print_human_time): Use nstrftime and an ISO format string, in
place of strftime with `%c'.  The latter is too locale-dependent.
(print_statfs): Deal with lots of portability issues: some fields
are available only with statfs, others only with statvfs, and
some are available in both, but with different types.
(do_statfs) [DEFAULT_FORMAT_TERSE]: Factor out.
[DEFAULT_FORMAT_VERBOSE]: Likewise.
2002-06-21 12:34:36 +00:00
Jim Meyering
a905df79ad . 2002-06-21 12:16:27 +00:00
Jim Meyering
0ab9ebc469 *** empty log message *** 2002-06-21 12:15:39 +00:00
Jim Meyering
807ad57ff1 *** empty log message *** 2002-06-21 12:13:51 +00:00
Jim Meyering
2b45b199f8 *** empty log message *** 2002-06-21 12:12:08 +00:00
Jim Meyering
ecbe7fb826 (jm_CHECK_ALL_HEADERS): Check for hurd.h. 2002-06-21 12:12:00 +00:00
Jim Meyering
071b36fd90 Change all `preserving ...' diagnostics to
`failed to preserve ...' to make the failure clearer.
2002-06-21 12:10:02 +00:00
Jim Meyering
d7313803f0 Include hurd.h.
(copy_internal): Preserve the stat.st_author field.
2002-06-21 12:06:17 +00:00
Jim Meyering
26ba37793c *** empty log message *** 2002-06-21 07:20:49 +00:00
Jim Meyering
2f223b443c (LOGIN_NAME_MAX): Define if not already defined.
(ID_LENGTH_MAX): Define.
(ST_DM_MODE): New macro.  Code moved from...
(print_long_format): ...here.
(print_long_format): Itemize and comment the individual parts
of init_bigbuf.  Use the above *_MAX macros.
2002-06-21 07:20:36 +00:00
Jim Meyering
7758b0efd3 Change defined(X)' syntax to defined X' in cpp directives. 2002-06-20 15:58:18 +00:00
Jim Meyering
343d7d4065 *** empty log message *** 2002-06-19 11:13:29 +00:00
Jim Meyering
f35cc0e4a0 Report an error if neither S_ISREG nor
S_IFREG is defined, instead of using a test specific to glibc
2.2.  This should be safe, since POSIX requires S_ISREG and
Unix Version 7 had S_IFREG.  We don't need to check for
<sys/types.h> since we don't use any symbols that it defines.
2002-06-19 11:12:59 +00:00
Jim Meyering
86adc7266e Interpret a permissions string of
drwxr-xr-x (DOS/Windows) as meaning the cwd is not setgid.
Reported by Rich Dawe.
2002-06-17 07:06:29 +00:00
Jim Meyering
57db2c8659 *** empty log message *** 2002-06-17 07:06:19 +00:00
Jim Meyering
6d797a5b97 use newer testing framework 2002-06-16 19:18:22 +00:00
Jim Meyering
3d16018d2e *** empty log message *** 2002-06-15 16:04:16 +00:00
Jim Meyering
6a4bcbb5d6 Include <sys/types.h> before system.h. 2002-06-15 16:03:57 +00:00
Jim Meyering
240330ca78 *** empty log message *** 2002-06-15 14:05:31 +00:00
Jim Meyering
719c68fe2e ls --author 2002-06-15 14:05:25 +00:00
Jim Meyering
34f5f485be *** empty log message *** 2002-06-15 13:43:20 +00:00
Jim Meyering
dc70d62988 *** empty log message *** 2002-06-15 13:42:54 +00:00
Jim Meyering
75dedb9944 (jm_CHECK_ALL_TYPES): Check for st_author. 2002-06-15 13:42:22 +00:00
Jim Meyering
45f4bb1290 (st_author) [! HAVE_STRUCT_STAT_ST_AUTHOR]: New macro.
(print_author): New var.
(AUTHOR_OPTION): New enum val.
(long_options, decode_switches, print_long_format, usage):
Support --author.
(format_user): New function.
(print_long_format): Use it.  Make print buffer a bit bigger.
2002-06-15 13:41:46 +00:00
Jim Meyering
dda6cbbb1c *** empty log message *** 2002-06-15 13:26:42 +00:00
Jim Meyering
4c52326d70 (ls invocation): Document new option: --author. 2002-06-15 13:26:38 +00:00
Jim Meyering
2fd73898d2 use trap stuff from sample-test 2002-06-15 10:19:36 +00:00
Jim Meyering
4726bde475 use trap stuff from sample-test 2002-06-15 10:17:35 +00:00
Jim Meyering
a44fd51a81 now that $tmp has two components, use mkdir's -p option to create it 2002-06-15 10:16:22 +00:00
Jim Meyering
35e9b38dd8 now that $tmp has two components, use mkdir's -p option to create it 2002-06-15 10:15:00 +00:00
Jim Meyering
a2e113a2db use trap stuff from sample-test 2002-06-15 10:04:30 +00:00
Jim Meyering
767aa7bf70 use trap stuff from sample-test 2002-06-15 09:58:37 +00:00
Jim Meyering
9234b6f7e0 *** empty log message *** 2002-06-15 09:54:28 +00:00
Jim Meyering
77bc22f77a (trap): in chmod, use u+rwx, not 700 2002-06-15 09:54:08 +00:00
Jim Meyering
646e37ff59 *** empty log message *** 2002-06-15 09:46:43 +00:00
Jim Meyering
bf7c8ba557 (trap): Make sure the temporary hierarchy is writable before removing it. 2002-06-15 09:46:32 +00:00
Jim Meyering
59f339c1f8 Use better trap.
trap 'status=$?; cd $pwd; chmod -R 700 $t0; rm -rf $t0 && exit $status' 0
2002-06-15 09:45:05 +00:00
Jim Meyering
2309be536f Use quoted here doc by default,
so e.g., backticks don't need to be escaped.
2002-06-15 09:41:47 +00:00
Jim Meyering
14c7cfea4c (TESTS): Add perm-1. 2002-06-15 09:40:25 +00:00
Jim Meyering
6f809229ef *** empty log message *** 2002-06-15 09:40:07 +00:00
Jim Meyering
f09cbdc4b4 *** empty log message *** 2002-06-15 08:47:55 +00:00
Jim Meyering
ef159d5cdb . 2002-06-15 08:47:25 +00:00
Jim Meyering
58e6f3d386 *** empty log message *** 2002-06-15 08:47:12 +00:00
Jim Meyering
39237a241f (lstat.c, stat.c, .sin.sed): Use t-$@, rather than $@-t,
so that each temporary file name is unique and valid in the first
8 characters, for operation under DOS.
2002-06-15 08:46:59 +00:00
Jim Meyering
8ba0cddae4 (FILE_TYPE_H): Guard entire contents with #ifndef.
For GNU libc 2.2 and newer, ensure that <sys/types.h> and <sys/stat.h>
have been included before this file.
2002-06-15 08:43:45 +00:00
Jim Meyering
13221a5a13 For GNU libc 2.2 and newer, ensure that <sys/types.h>
has been included before this file.
2002-06-15 08:40:55 +00:00
Jim Meyering
3351c8aada . 2002-06-15 08:04:23 +00:00
Jim Meyering
19548deac9 Change temp file names to accommodate DOS 8.3 file name limitation. 2002-06-15 08:03:24 +00:00
Jim Meyering
ff43f6b441 Change temp. file name: s/\.err/_err/, for DOS. 2002-06-15 08:02:16 +00:00
Jim Meyering
1d51d96e1e Change temp file names to accommodate DOS 8.3 file name limitation. 2002-06-15 08:01:41 +00:00
Jim Meyering
140f272a56 Remove leading `.' from temp. names. 2002-06-15 08:01:20 +00:00
Jim Meyering
9da59fff0d Change temp file names to accommodate DOS 8.3 file name limitation. 2002-06-15 07:56:40 +00:00
Jim Meyering
06b1f74288 *** empty log message *** 2002-06-15 07:37:29 +00:00
Jim Meyering
dbb90872ee (S_ISLNK): Define to 0 if neither S_ISLNK nor S_IFLNK is defined. 2002-06-15 07:37:21 +00:00
Jim Meyering
cb8155615a (S_ISLNK): Define to 0 if neither S_ISLNK nor S_IFLNK is defined. 2002-06-15 07:36:57 +00:00
Jim Meyering
b29576f01f *** empty log message *** 2002-06-15 06:54:05 +00:00
Jim Meyering
d404816448 (S_ISNAM): Add to list of S_IS* macros.
Rearrange #if directives for each S_IS macro.
From diffutils-2.8.2.
2002-06-15 06:53:57 +00:00
Jim Meyering
02d8535f9e *** empty log message *** 2002-06-14 07:53:01 +00:00
Jim Meyering
dfe88896b5 Use the version from diffutils-2.8.2. 2002-06-14 07:52:32 +00:00
Jim Meyering
0f19d3650b update from master sources 2002-06-13 09:30:02 +00:00
Jim Meyering
10c95a54b5 tweak expected message 2002-06-12 08:02:12 +00:00
Jim Meyering
f849e0aaac (do_move): Give one diagnostic, not two, when unable to
unlink a destination file.  This bug was introduced in fileutils-3.16l.

$ /bin/mv /etc/passwd /tmp
/bin/mv: cannot unlink `/etc/passwd': Permission denied
/bin/mv: cannot remove `/etc/passwd': Permission denied
[Exit 1]
2002-06-12 08:01:48 +00:00
Jim Meyering
7e6aff288f (rm): Fix typo in assertion. 2002-06-12 08:00:50 +00:00
Jim Meyering
c5b3b8e2b6 tweak output: s/ directory// 2002-06-07 14:57:19 +00:00
Jim Meyering
e20a6cfb82 *** empty log message *** 2002-06-07 14:49:33 +00:00
Jim Meyering
bae1890d5b Also accept the permission-denied diagnostic
issued by some losing systems.  Reported by Volker Borchert.
2002-06-07 14:49:21 +00:00
Jim Meyering
b2816db207 . 2002-06-07 14:44:02 +00:00
Jim Meyering
2e6f8bf01e *** empty log message *** 2002-06-07 14:43:41 +00:00
Jim Meyering
a3eb51b0e2 (jm_PREREQ_STAT): Check for sys/param.h and sys/mount.h.
They're needed at least for NetBSD 1.5.2.
($statxfs_includes): Include those same headers.
($statxfs_includes): Include sys/vfs.h if available.
($statxfs_includes): Likewise for sys/statvfs.h.
Check for the following members in both structs statfs and statvfs:
f_basetype, f_type, f_fsid.__val, f_namemax, f_namelen.
2002-06-07 14:43:36 +00:00
Jim Meyering
6d3ea70cf7 *** empty log message *** 2002-06-07 14:39:21 +00:00
Jim Meyering
b965b62436 (remove_entry): Use DT_IS_DIR only if
HAVE_STRUCT_DIRENT_D_TYPE is defined.
2002-06-07 14:39:09 +00:00
Jim Meyering
8bd3e55a54 . 2002-06-06 07:48:26 +00:00
Jim Meyering
cb93da5115 *** empty log message *** 2002-06-03 11:07:02 +00:00
Jim Meyering
9897e1994c (rm invocation): Add the warning (also in the --help output)
that the contents of a removed file are often recoverable.
2002-06-03 11:06:58 +00:00
Jim Meyering
52fc0276d7 *** empty log message *** 2002-06-02 21:30:07 +00:00
Jim Meyering
ce73721712 (enum RM_status) [RM_NONEMPTY_DIR]: New member.
(UPDATE_STATUS): New macro.
Include save-cwd.h.
(struct File_spec): Remove declaration.
Update prototypes.
2002-06-02 21:28:41 +00:00
Jim Meyering
0f6d0c6016 (main): Adapt to new calling sequence for rm. 2002-06-02 20:50:33 +00:00
Jim Meyering
a4b18d8961 (do_move): Adapt to new calling sequence for rm. 2002-06-02 20:50:20 +00:00
Jim Meyering
fb205872c1 Merge in all changes from no-recursion branch.
* src/remove.c (enum Ternary): Define type.
(prompt): Add a parameter.  Adjust callers.
(remove_entry): Attempt rmdir here, only if a directory is
`known' to be empty.  Significant rework.
(remove_dir): Propagate failure `up' also when rmdir fails.

In interactive mode, prompt only once about an empty directory.
* src/remove.c (enum Prompt_action): Define.
(prompt): Two new parameters.  Adjust all callers.

Performance.
* src/remove.c (remove_entry) [!ROOT_CAN_UNLINK_DIRS]:
Don't call rmdir here.

* src/remove.c (AD_pop_and_chdir): Don't use errno (it's not valid)
in diagnostic for changed dev/ino.
(remove_entry): Tweak diagnostic.

* src/remove.c (ROOT_CAN_UNLINK_DIRS): Define.
(AD_pop_and_chdir): Propagate status as we traverse back `up' the tree.
(DO_UNLINK, DO_RMDIR): Define.
(remove_entry) [ROOT_CAN_UNLINK_DIRS]: Add code so this works also on
systems where root can use `unlink' to remove directories.

* src/remove.c: Include file-type.h.
Include file type in prompt when asking whether to remove file.
Based on a patch from Paul Eggert.

* src/remove.c (prompt): Add comment.

* src/remove.c (remove_dir): Fix another (known) leak.

* src/remove.c (hash_freer): New function.
(AD_mark_helper): Use it.
(AD_mark_as_unremovable): xstrdup the filename argument.
(remove_dir): Free directory name.

* src/remove.c (remove_entry): Fail also when trying to remove a
directory without the --recursive option.
Change a diagnostic, s/unlink/remove/, now that it can apply also
to a directory.

* src/remove.c (is_empty_dir): New function.
(prompt): New function, factored out of...
(remove_entry): ...here.  Call it.
(remove_dir): Call prompt before rmdir.

* src/remove.c (remove_entry): Add support for prompting (e.g., -i).

* src/remove.h (UPDATE_STATUS): New macro.
* src/remove.c [AD_ent] (status): New member.  This lets us propagate
the status from a subdirectory to its parent via AD_pop_and_chdir.
(AD_push_initial): Set it.
(AD_push): Likewise.
(remove_cwd_entries): Change return type to enum RM_status, and
adjust all callers.
(rm): Use UPDATE_STATUS rather than open-coding it.

* src/remove.c (remove_entry): New function, factored out of...
(remove_cwd_entries): ...here, and...
(rm_1): ...here.

* src/remove.c (remove_cwd_entries): Add support for --verbose.
(remove_dir): Likewise.
(rm_1): Likewise.

* src/remove.c (rm): Free cwd_state, if necessary.

* src/remove.c (rm_1): Remove now useless (always true)
user_specified_name parameter.  Adjust sole caller.

* src/remove.c (rm): New function.  This interface allows
one to remove multiple arguments at a time.  This is important in
that it allows us to hide the remove_init/remove_fini functions and
the cwd_state parameter.
(rm_1): Renamed from rm.
(remove_init, remove_fini): Remove functions.  Each body is now
part of `rm'.
2002-06-02 20:49:03 +00:00
Jim Meyering
a4ff1d036d *** empty log message *** 2002-06-02 20:45:46 +00:00
Jim Meyering
26693888de . 2002-06-02 20:39:20 +00:00
Jim Meyering
63a8743830 (TESTS): Add rm5. 2002-06-02 20:39:00 +00:00
Jim Meyering
2ef6aec8ce Adjust, now that we no longer report `removing all entries of directory ...'. 2002-06-02 20:37:43 +00:00
Jim Meyering
d38d008a1d adjust 2002-06-02 20:36:19 +00:00
Jim Meyering
09184490e9 don't give a diagnostic about each parent 2002-06-02 20:35:07 +00:00
Jim Meyering
c27d78e6e0 *** empty log message *** 2002-06-01 09:38:48 +00:00
Jim Meyering
3b96dac1d7 Remove use of D_TYPE_IN_DIRENT, now that that symbol has been renamed. 2002-06-01 09:38:41 +00:00
Jim Meyering
c96356eba9 *** empty log message *** 2002-06-01 09:37:58 +00:00
Jim Meyering
1d478cbd05 (jm_CHECK_TYPE_STRUCT_DIRENT_D_TYPE): Rename macro:
s/D_TYPE_IN_DIRENT/HAVE_STRUCT_DIRENT_D_TYPE/.
2002-06-01 09:37:53 +00:00
Jim Meyering
10d0bbfbc7 *** empty log message *** 2002-06-01 08:41:31 +00:00
Jim Meyering
76c7142a55 *** empty log message *** 2002-05-30 07:50:19 +00:00
Jim Meyering
e913eebe7c (copy_reg): Use a temporary to avoid a warning
from gcc -W about comparison between signed and unsigned.
(copy_internal): Likewise, but use a cast.
2002-05-30 07:49:56 +00:00
Jim Meyering
79278d0cad . 2002-05-29 13:16:40 +00:00
Jim Meyering
8af3bb0443 more acronyms 2002-05-28 10:03:56 +00:00
Jim Meyering
e8b70f2823 *** empty log message *** 2002-05-28 08:50:57 +00:00
Jim Meyering
79e4cbd57a (jm_FUNC_READDIR): Undefine mkdir', not rmdir'. 2002-05-28 08:50:53 +00:00
Jim Meyering
0057fa16a4 use a better test 2002-05-27 21:38:21 +00:00
Jim Meyering
924d623ac8 *** empty log message *** 2002-05-27 20:05:16 +00:00
Jim Meyering
636fceb22a Use @acronym in place of most uses of @sc. 2002-05-27 20:05:03 +00:00
Jim Meyering
ab0ab21b2e (check-texinfo): Adapt to reflect that now we use @acronym{POSIX}. 2002-05-27 20:01:03 +00:00
Jim Meyering
625d533476 *** empty log message *** 2002-05-27 16:44:12 +00:00
Jim Meyering
2eef2b57dd (AC_FUNC_GETTIMEOFDAY_CLOBBER): Also replace localtime. 2002-05-27 16:44:07 +00:00
Jim Meyering
faa8bced59 *** empty log message *** 2002-05-27 16:43:00 +00:00
Jim Meyering
d2be1268c4 Fix a problem seen only on nonconforming systems whereby ls.c's
use of localtime, and then of gettimeofday would cause trouble:
the localtime call used to initialize rpl_gettimeofday's save
mechanism would clobber ls's current local time information so
that in any long listing the first file would always be listed
with date 1970-01-01.  Analysis by Volker Borchert.

(localtime): Undefine.
(rpl_localtime): New function.
2002-05-27 16:42:55 +00:00
Jim Meyering
c75c72a9fc *** empty log message *** 2002-05-27 15:09:34 +00:00
Jim Meyering
fc1018de0e (jm_FUNC_READDIR): Undefine `rmdir' so we don't try to
use the replacement function; it wouldn't resolve at link time.
Reported by Volker Borchert.
2002-05-27 15:09:29 +00:00
Jim Meyering
7ec9be427c *** empty log message *** 2002-05-26 15:29:17 +00:00
Jim Meyering
5e15547dad Use @acronym in place of most uses of @sc. 2002-05-26 15:29:10 +00:00
Jim Meyering
e9f9963e6b fix typo: s/S_TYPEISTMO/S_TYPEISMQ/ 2002-05-25 22:42:05 +00:00
Jim Meyering
ad9071c4ba fix typo 2002-05-25 22:39:13 +00:00
Jim Meyering
0ef5b0241e remove typo 2002-05-25 22:39:07 +00:00
Jim Meyering
ef71f8a52d Adapt for changed format of --verbose output. 2002-05-24 16:40:33 +00:00
Jim Meyering
4c9753bdf7 . 2002-05-24 14:09:45 +00:00
Jim Meyering
e8e002ad91 *** empty log message *** 2002-05-24 09:01:11 +00:00
Jim Meyering
36efe03850 *** empty log message *** 2002-05-24 08:59:17 +00:00
Jim Meyering
37877a3b9c renamed from nice 2002-05-24 08:37:05 +00:00
Jim Meyering
81c4b1fcff *** empty log message *** 2002-05-24 08:26:57 +00:00
Jim Meyering
516c58c84c *** empty log message *** 2002-05-24 08:24:37 +00:00
Jim Meyering
f930c9ca0e (validate_path): Compare the result of the function --
not its (constant) address -- against zero.
2002-05-24 08:24:29 +00:00
Jim Meyering
8e1915ff14 test for fix in 2.0.13 2002-05-24 08:23:19 +00:00
Jim Meyering
710a1bc347 *** empty log message *** 2002-05-24 07:41:19 +00:00
Jim Meyering
c55ed2c0a9 . 2002-05-23 07:02:11 +00:00
Jim Meyering
f08e272c8b tweak for new diagnostics
add a nonempty file
2002-05-22 09:49:14 +00:00
Jim Meyering
c2e4117240 Include "file-type.h", etc. 2002-05-22 08:39:30 +00:00
Jim Meyering
90e0ba933e *** empty log message *** 2002-05-22 08:38:33 +00:00
Jim Meyering
b2615f2b7f *** empty log message *** 2002-05-22 08:38:30 +00:00
Jim Meyering
ae6d164b7a . 2002-05-22 08:37:58 +00:00
Jim Meyering
0e7a38dbbe (libfetish_a_SOURCES): Add file-type.c and file-type.h. 2002-05-22 08:37:35 +00:00
Jim Meyering
1be69adaeb *** empty log message *** 2002-05-22 08:36:32 +00:00
Jim Meyering
925390f0bf (S_ISREG, S_ISDIR): Define if not already defined.
(S_TYPEISSEM, S_TYPEISSHM, S_TYPEISTMO): Likewise.
2002-05-22 08:35:31 +00:00
Jim Meyering
92255513cd (file_type): New file/function. Extracted from diffutils. 2002-05-22 07:49:35 +00:00
Jim Meyering
42e9ac45ff *** empty log message *** 2002-05-22 07:33:54 +00:00
Jim Meyering
eaa373aeb6 [struct dummy]: Renamed. Don't rely on portability of
zero-length arrays.  Instead, use sizes of -1 or +1.
2002-05-22 07:33:43 +00:00
Jim Meyering
cea518eba5 *** empty log message *** 2002-05-21 23:15:19 +00:00
Jim Meyering
fdadb32d0a (S_ISLNK, S_ISFIFO, S_ISSOCK, S_ISCHR, S_ISBLK, S_ISDOOR): Define here instead. 2002-05-21 23:15:05 +00:00
Jim Meyering
b2cb94b93c (S_ISLNK, S_ISFIFO S_ISSOCK S_ISCHR S_ISBLK S_ISDOOR): Remove definitions. 2002-05-21 23:14:42 +00:00
Jim Meyering
c09bf755a6 . 2002-05-21 23:08:27 +00:00
Jim Meyering
137f240e4a . 2002-05-21 23:02:51 +00:00
Jim Meyering
59d5765b0f (TESTS): Add rm1, rm2, rm3, rm4. 2002-05-21 22:59:16 +00:00
Jim Meyering
0ded127f4c . 2002-05-21 22:58:48 +00:00
Jim Meyering
205cfe4695 *** empty log message *** 2002-05-14 21:31:48 +00:00
Jim Meyering
24f18f089d This bug was introduced with my change of 2000-10-22 (textutils-2.0.8).
(ulonglong_t): Move declaration to precede new use.
[enum size_spec] (N_SIZE_SPECS): New member.
(width_bytes): Add initializer corresponding to ulonglong_t type.
(struct assert_width_bytes_matches_size_spec_decl): Declare.
Based on a patch from Tony Kocurko.
2002-05-14 21:31:42 +00:00
Jim Meyering
61dd314ba4 *** empty log message *** 2002-05-14 21:22:57 +00:00
Jim Meyering
24a893ff63 undo last delta -- it belongs on the no-recursion branch 2002-05-13 08:50:50 +00:00
Jim Meyering
ef0776dddd . 2002-05-13 08:50:15 +00:00
Jim Meyering
6095c9a3f8 *** empty log message *** 2002-05-12 21:47:24 +00:00
Jim Meyering
ebc0c4c72f Add FIXME comment. 2002-05-03 11:46:59 +00:00
Jim Meyering
65e6baf5a9 (print_uptime): Fix last change so that we use ngettext properly. 2002-05-03 11:17:01 +00:00
Jim Meyering
072ec8dc77 (print_uptime): Use ngettext for day/days and user/users.
Suggestion from Karl Eichwalder.
2002-05-03 09:58:37 +00:00
Jim Meyering
ef8e614b04 *** empty log message *** 2002-05-03 08:13:18 +00:00
Jim Meyering
d51a8422a2 *** empty log message *** 2002-05-03 08:13:09 +00:00
Jim Meyering
7b53d3d127 (usage): Add a little to the description of --list.
Uncapitalize first word and remove period at end of each one line
option description.
2002-05-03 08:12:25 +00:00
Jim Meyering
36d90a4f13 *** empty log message *** 2002-05-03 06:57:52 +00:00
Jim Meyering
09d4a8f165 (usage): Tweak description of --users.
From Karl Eichwalder.
2002-05-03 06:57:43 +00:00
Jim Meyering
c7475ee11e *** empty log message *** 2002-05-01 14:23:15 +00:00
Jim Meyering
2431a66944 . 2002-05-01 14:22:33 +00:00
Jim Meyering
b016bc2d4f . 2002-05-01 11:49:03 +00:00
Jim Meyering
bdd9db581f *** empty log message *** 2002-05-01 06:56:32 +00:00
Jim Meyering
29fbbc05c9 *** empty log message *** 2002-05-01 06:54:38 +00:00
Jim Meyering
2a061153f6 *** empty log message *** 2002-05-01 06:53:45 +00:00
Jim Meyering
8bbc4ca7ec *** empty log message *** 2002-05-01 06:51:55 +00:00
Jim Meyering
56130b3231 *** empty log message *** 2002-04-30 09:45:48 +00:00
Jim Meyering
5a40d9ead2 (jm_PREREQ): Add jm_PREREQ_STAT. 2002-04-30 09:37:26 +00:00
Jim Meyering
13d897efcf *** empty log message *** 2002-04-30 09:30:13 +00:00
Jim Meyering
0c4c742189 (keycompare, compare): Replace #ifdef ENABLE_NLS with if (HAVE_SETLOCALE).
(hard_LC_COLLATE): Define even if ! ENABLE_NLS.
(main): Always initialize hard_LC_COLLATE.
Put initialization next to other locale-related stuff.

Include <langinfo.h> even if ! ENABLE_NLS.
(decimal_point, th_sep): Depend on HAVE_SETLOCALE, not ENABLE_NLS.
(main): Likewise.
(MONTHTAB_CONST): Remove; all uses removed.
(struct_month_cmp, inittables): Do not depend on ENABLE_NLS.
(main): hard_LC_TIME locale does not depend on ENABLE_NLS.
2002-04-30 09:29:45 +00:00
Jim Meyering
9d64f63aaa (keycmp): Replace #ifdef ENABLE_NLS with if (HAVE_SETLOCALE).
(hard_LC_COLLATE): Define even if ! ENABLE_NLS.
(main): Always initialize hard_LC_COLLATE.
Put initialization next to other locale-related stuff.
2002-04-30 09:25:37 +00:00
Jim Meyering
d7984a3fdb (compare_files): Replace #ifdef ENABLE_NLS with if (HAVE_SETLOCALE).
(hard_LC_COLLATE): Define even if ! ENABLE_NLS.
(main): Always initialize hard_LC_COLLATE.
Put initialization next to other locale-related stuff.
2002-04-30 09:23:38 +00:00
Jim Meyering
17d3a3e28c (HAVE_SETLOCALE): Define to 0 if not defined. 2002-04-30 09:21:21 +00:00
Jim Meyering
20ee294371 *** empty log message *** 2002-04-30 09:20:32 +00:00
Jim Meyering
6e40a95415 *** empty log message *** 2002-04-30 09:20:26 +00:00
Jim Meyering
24ad720079 (jm_PREREQ_HARD_LOCALE): Check for stdlib.h.
Do not check for alloca.h (no longer used) or stdbool.h (was never
used?).  Add AM_C_PROTOTYPES since hard-locale.h uses it.
2002-04-30 09:20:19 +00:00
Jim Meyering
bb3842917c *** empty log message *** 2002-04-30 09:18:24 +00:00
Jim Meyering
9c46845348 Upgrade to version used in GNU Diffutils 2.8.1. 2002-04-30 09:17:50 +00:00
Jim Meyering
2cc5a65c0f *** empty log message *** 2002-04-29 08:23:14 +00:00
Jim Meyering
15bef4ddb6 (tail_forever): Do not treat
max_n_unchanged_stats_between_opens specially (as if it were
infinite) if it has its maximal value.  Similarly for
max_n_consecutive_size_changes_between_opens.
2002-04-29 08:23:06 +00:00
Jim Meyering
5ce88fe525 *** empty log message *** 2002-04-29 07:31:56 +00:00
Jim Meyering
676991e630 (parse_obsolescent_option): Do not limit the maximum
line/byte count to be less than ULONG_MAX on systems where
OFF_T_MAX is larger.
2002-04-29 07:30:57 +00:00
Jim Meyering
f3959d84d3 *** empty log message *** 2002-04-29 07:02:21 +00:00
Jim Meyering
86459445f9 *** empty log message *** 2002-04-29 07:01:34 +00:00
Jim Meyering
ad0f322065 (jm_PREREQ_SIG2STR): Remove; all callers changed. 2002-04-29 07:01:29 +00:00
Jim Meyering
735b546108 Do not include <sys/wait.h>; no longer needed. 2002-04-29 07:00:23 +00:00
Jim Meyering
94650aa4ba (SIGNUM_BOUND): Do not use WTERMSIG, to avoid
depending on <sys/wait.h> and WTERMSIG.  Default to 64 instead
of 127, since 64 is the largest conceivable number for ancient
nonstandard hosts.
2002-04-29 06:59:24 +00:00
Jim Meyering
786fcaf4a2 *** empty log message *** 2002-04-28 23:54:55 +00:00
Jim Meyering
eae0819e3d add comment for prev change 2002-04-28 23:54:47 +00:00
Jim Meyering
550a02c909 (make_id_equals_comment): Cast sizeof expression (used as field
width argument) to `int'.
2002-04-28 23:54:06 +00:00
Jim Meyering
1e2a59b68a (PIDSTR_DECL_AND_INIT): Cast ut_pid value to int. 2002-04-28 23:47:53 +00:00
Jim Meyering
7fb3529376 . 2002-04-28 23:14:28 +00:00
Jim Meyering
3a898d66ba *** empty log message *** 2002-04-28 23:14:20 +00:00
Jim Meyering
699c46f88b *** empty log message *** 2002-04-28 23:12:01 +00:00
Jim Meyering
5565903d7c (jm_MACROS): Remove use of AC_FUNC_STRNLEN. 2002-04-28 23:11:56 +00:00
Jim Meyering
c14da32ec4 Add jm_PREREQ_STRNLEN.
Use AC_FUNC_STRNLEN here instead.
2002-04-28 23:11:45 +00:00
Jim Meyering
db37e581bc Don't AC_REQUIRE([AC_PROG_CC_STDC]).
With autoconf-2.53a, it's part of AC_PROG_CC.
2002-04-28 22:36:42 +00:00
Jim Meyering
75bb9f0a2a *** empty log message *** 2002-04-28 21:59:47 +00:00
Jim Meyering
89e4bfabcd Don't include xalloc.h.
It's already included via system.h.
2002-04-28 21:59:40 +00:00
Jim Meyering
57b792bb8a . 2002-04-28 21:58:19 +00:00
Jim Meyering
625cb88756 *** empty log message *** 2002-04-28 21:57:52 +00:00
Jim Meyering
01084fbd8d Change @code{PROG}' to @command{PROG}'. 2002-04-28 21:57:40 +00:00
Jim Meyering
219be37b93 Change @code{PROG} to @command{PROG} for the fileutils. 2002-04-28 21:55:03 +00:00
Jim Meyering
3be197ed19 Begin changing @code{PROG} to @command{PROG}. 2002-04-28 21:46:20 +00:00
Jim Meyering
2bac14f45a Use @command{(un)?link}, not @code{...} where appropriate 2002-04-28 21:35:55 +00:00
Jim Meyering
ed05aed044 Rewrite from scratch. Support everything
required by POSIX 1003.1-2001; when this conflicts with Bash,
stick with POSIX.  The conflicts are kill -l output format,
and lower case signal names preceded by `-' (e.g., "kill -hup"
is no longer supported).  Remove -L or --long-list option.
Add -t or --table option.  Rename --sigspec to --signal;
remove --signum and do not advertise obsolescent option -n.
Use str2sig and str2sig to convert between signal names and
numbers.
2002-04-28 21:32:36 +00:00
Jim Meyering
02be728995 . 2002-04-28 21:31:21 +00:00
Jim Meyering
cb75a8c02d *** empty log message *** 2002-04-28 21:30:59 +00:00
Jim Meyering
f7978a042c (jm_PREREQ): Add jm_PREREQ_SIG2STR. 2002-04-28 21:30:50 +00:00
Jim Meyering
6980e29da9 (jm_MACROS): Add AC_REPLACE_FUNCS(sig2str). 2002-04-28 21:29:39 +00:00
Jim Meyering
79d4ae4bf8 *** empty log message *** 2002-04-28 21:28:56 +00:00
Jim Meyering
03d0ba4c06 Remove definition of unused WTERMSIG. 2002-04-28 21:20:49 +00:00
Jim Meyering
b41ca51fc6 New file: from Paul Eggert. 2002-04-28 21:17:45 +00:00
Jim Meyering
8e6c9373c1 *** empty log message *** 2002-04-28 21:16:24 +00:00
Jim Meyering
dbaf821f82 (libfetish_a_SOURCES): Add sig2str.h. 2002-04-28 21:16:19 +00:00
Jim Meyering
b8b5ed3d52 *** empty log message *** 2002-04-28 21:15:37 +00:00
Jim Meyering
8075fc59b5 *** empty log message *** 2002-04-28 21:15:05 +00:00
Jim Meyering
d22026207c (kill invocation): Document the above.
Document POSIX signals better.
2002-04-28 21:14:59 +00:00
Jim Meyering
b5d5f6fffd *** empty log message *** 2002-04-28 21:07:11 +00:00
Jim Meyering
e464e1da1c Avoid new warnings from gcc.
[struct COLUMN] <name>: Declare member to be const.
(init_fps): Declare local variable `firstname' to be const.
2002-04-28 21:07:01 +00:00
Jim Meyering
ec4ea625c9 . 2002-04-28 18:43:52 +00:00
Jim Meyering
38fa93be81 *** empty log message *** 2002-04-28 17:29:12 +00:00
Jim Meyering
a1319f687c (integer_expected_error): Add `const' to paramater
declarations to avoid new warning from gcc.
2002-04-28 17:12:53 +00:00
Jim Meyering
059c9672ff (test_syntax_error): Add `const' to paramater
declarations to avoid new warning from gcc.
2002-04-28 17:09:12 +00:00
Jim Meyering
8a2075ba7d (cycle_check): Add a comment. 2002-04-27 06:46:18 +00:00
Jim Meyering
a6050a7291 (cycle_check): New function containing code factored
out of remove_dir.  The sole difference is that upon detecting a
cycle, rm now dies unconditionally.  Before, in interactive mode,
it would ask the user whether to continue.
(remove_dir): Call cycle_check.
2002-04-27 06:33:08 +00:00
Jim Meyering
d1cf325739 *** empty log message *** 2002-04-25 20:38:20 +00:00
Jim Meyering
6cc8245afb (usage): Adjust ordering to match that of default output. 2002-04-25 20:38:16 +00:00
Jim Meyering
93066fab51 *** empty log message *** 2002-04-25 20:16:15 +00:00
Jim Meyering
daeef68961 remove comment for reverted change 2002-04-25 19:51:40 +00:00
Jim Meyering
c5e9725e5b . 2002-04-25 19:47:08 +00:00
Jim Meyering
e94bd40348 . 2002-04-25 18:58:39 +00:00
Jim Meyering
6576e27321 . 2002-04-25 18:58:07 +00:00
Jim Meyering
d29bfd529e *** empty log message *** 2002-04-25 18:03:30 +00:00
Jim Meyering
e758541f7e *** empty log message *** 2002-04-25 18:03:07 +00:00
Jim Meyering
0cf2e85eda *** empty log message *** 2002-04-25 18:02:59 +00:00
Jim Meyering
de9a50b611 Avoid warnings from gcc.
Declare input_file and output_file to be `const'.
(skip): Declare `file' parameter to be `const', too.
2002-04-25 18:02:52 +00:00
Jim Meyering
b6dd48b361 *** empty log message *** 2002-04-25 17:14:28 +00:00
Jim Meyering
184edc32ab *** empty log message *** 2002-04-25 16:40:18 +00:00
Jim Meyering
0199003cf9 Remove hash table, active_dir_map, used to detect directory cycles.
Instead, detect them lazily with just O(1) memory.
Suggestion from Andi Kleen.

(is_power_of_two): New function.
(print_nth_dir, make_active_dir_ent): Remove functions.
(hash_active_dir_ent, hash_compare_active_dir_ents): Likewise.
(remove_dir): Check for cycles here, ...
(rm): ... and don't check for cycles here.

(rm): Call fspec_get_full_mode here, rather than
fspec_get_filetype_mode.  We want to get the dev/ino earlier, and
at the same time as when we get the file type, to avoid the risk
that an attacker would change e.g. a directory to a symlink before
we record its dev/ino.
2002-04-25 16:40:04 +00:00
Jim Meyering
bbd396f52f Revert last change. 2002-04-25 16:32:32 +00:00
Jim Meyering
2a15b5cbc4 Revert last change. 2002-04-25 16:31:41 +00:00
Jim Meyering
2dbf41d0d0 *** empty log message *** 2002-04-25 16:01:32 +00:00
Jim Meyering
c80374e8e8 . 2002-04-25 15:40:12 +00:00
Jim Meyering
e53320438b *** empty log message *** 2002-04-25 15:39:39 +00:00
Jim Meyering
1bb22e3075 Remove ENABLE_NLS-related code.
(_, N_) Remove definitions.
Include "gettext.h" instead.
2002-04-25 15:38:17 +00:00
Jim Meyering
fc7d0fef5f *** empty log message *** 2002-04-24 07:54:51 +00:00
Jim Meyering
b2861672f1 filtered through cppi 2002-04-24 07:54:40 +00:00
Jim Meyering
9cd1ed4307 *** empty log message *** 2002-04-24 07:52:49 +00:00
Jim Meyering
8a054458d4 (INCLUDES): Remove -I../intl.
(libfetish_a_SOURCES): Add gettext.h.
2002-04-24 07:52:39 +00:00
Jim Meyering
570703fb5e *** empty log message *** 2002-04-24 07:50:53 +00:00
Jim Meyering
0b79c81d9d (jm_PREREQ_HARD_LOCALE): New macro.
(jm_PREREQ): Use it.
2002-04-24 07:50:48 +00:00
Jim Meyering
6acdf37888 bump serial # to 9 2002-04-24 07:49:39 +00:00
Jim Meyering
1391eaea5d Check for these headers: locale.h unistd.h mach/mach.h fcntl.h.
Check for this function: setlocale.
2002-04-24 07:49:00 +00:00
Jim Meyering
d3de1d0186 (rm): Call exit with EXIT_FAILURE, not `1'. 2002-04-22 09:42:00 +00:00
Jim Meyering
a15c26266f *** empty log message *** 2002-04-22 07:36:00 +00:00
Jim Meyering
c32c344dd6 (main): Adjust caller of remove_init. 2002-04-22 07:35:54 +00:00
Jim Meyering
e305ef0fa8 (do_move): Adjust caller of remove_init. 2002-04-22 07:35:41 +00:00
Jim Meyering
f1014ac7cc (remove_init): Adjust prototype. 2002-04-22 07:35:32 +00:00
Jim Meyering
8fd6feded9 (rm, remove_init, remove_fini): Don't use or even
initialize the active_dir_map unless --recursive (-r) is specified.
2002-04-22 07:35:20 +00:00
Jim Meyering
c175e3f6c8 update framework 2002-04-20 14:49:46 +00:00
Jim Meyering
73f2d11007 update framework 2002-04-19 22:57:04 +00:00
Jim Meyering
f2bb69ebb0 Use this:
(exit $fail); exit
not this:
  exit $fail
2002-04-19 22:50:36 +00:00
Jim Meyering
0129239343 upgrade to use better framework 2002-04-19 22:41:59 +00:00
Jim Meyering
92d76e1e92 upgrade to use better framework 2002-04-19 22:39:05 +00:00
Jim Meyering
dc2f3bc5e4 *** empty log message *** 2002-04-19 22:36:11 +00:00
Jim Meyering
1a35394a57 upgrade to use better framework 2002-04-19 22:36:03 +00:00
Jim Meyering
2b5e6e4835 clean-up 2002-04-19 21:59:57 +00:00
Jim Meyering
306c8e8b4f Lots of clean-up:
E.g.,

    (exit $fail); exit

    t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$
    trap 'status=$?; cd $pwd; rm -rf $t0 && exit $status' 0
2002-04-19 21:55:30 +00:00
Jim Meyering
3cc80a4390 *** empty log message *** 2002-04-19 21:54:27 +00:00
Jim Meyering
ff015c529a *** empty log message *** 2002-04-19 21:53:42 +00:00
Jim Meyering
ebf16be3ea Use tmpdir named $0.tmp/$$. Create with mkdir -p. 2002-04-19 21:53:01 +00:00
Jim Meyering
4061c49579 Use better trap, etc. 2002-04-19 21:38:32 +00:00
Jim Meyering
d01146b817 *** empty log message *** 2002-04-19 21:18:28 +00:00
Jim Meyering
d0ae660607 Use better trap. 2002-04-19 21:17:45 +00:00
Jim Meyering
5aaccdf6a7 use better trap 2002-04-19 21:17:08 +00:00
Jim Meyering
dc3a2321e0 Set $tmp the new way. 2002-04-19 20:50:43 +00:00
Jim Meyering
3f094fd26b Use `rm', not $RM. Use better trap. 2002-04-19 19:55:21 +00:00
Jim Meyering
e86cf7f5e6 Use `rm', not $RM. Use better trap. 2002-04-19 19:54:15 +00:00
Jim Meyering
ad9fd82850 Use `rm', not $RM. Use better trap. 2002-04-19 19:53:03 +00:00
Jim Meyering
da5debc995 don't fiddle with TMPDIR 2002-04-19 19:51:29 +00:00
Jim Meyering
9f79f8d7e0 don't bother with TMPDIR 2002-04-19 19:47:16 +00:00
Jim Meyering
56931437e3 Use automatically-derived name for temporary
directory.  This is more 8.3-friendly.  Based on a suggestion from Richard Dawe.
2002-04-19 19:39:45 +00:00
Jim Meyering
5051a33ba6 *** empty log message *** 2002-04-17 08:55:39 +00:00
Jim Meyering
8d851e17c0 . 2002-04-17 08:54:38 +00:00
Jim Meyering
1df5e317dc (TESTS): Add no-create-missing. 2002-04-17 08:54:32 +00:00
Jim Meyering
950d7008ea *** empty log message *** 2002-04-17 08:54:21 +00:00
Jim Meyering
8a2d561e45 *** empty log message *** 2002-04-17 08:53:50 +00:00
Jim Meyering
ccf99a6d4c (touch): Don't report errors for nonexistent files
when --no-create is in effect.  Based on a patch from TAKAI Kousuke.
2002-04-17 08:49:27 +00:00
Jim Meyering
78ec76159b *** empty log message *** 2002-04-17 08:47:33 +00:00
Jim Meyering
28ea23054e s/POSIX/@sc{posix}/ 2002-04-16 11:26:32 +00:00
Jim Meyering
cea6ca618e *** empty log message *** 2002-04-16 10:43:04 +00:00
Jim Meyering
a9ecff59e4 (jm_PREREQ_READUTMP): Also check for these members: ut_pid, ut_id, ut_exit. 2002-04-16 10:43:00 +00:00
Jim Meyering
b1f44ffb39 (UT_TYPE): Remove definition (now in who.c).
(HAVE_STRUCT_XTMP_UT_EXIT, HAVE_STRUCT_XTMP_UT_ID): Define.
(HAVE_STRUCT_XTMP_UT_PID, HAVE_STRUCT_XTMP_UT_TYPE): Define.
2002-04-16 10:41:33 +00:00
Jim Meyering
2e0e925d3b *** empty log message *** 2002-04-16 10:39:42 +00:00
Jim Meyering
6f0db0ac6e (UT_TYPE_UNDEF, UT_TYPE, IS_USER_PROCESS): Define.
(print_line): Use "%-8.8s" for the format: the user name is not
always NUL terminated.
(scan_entries) [need_users]: Use IS_USER_PROCESS, so that this works
even on systems without ut_type.
2002-04-16 10:39:29 +00:00
Jim Meyering
aef17cff0f (BOOT_TIME): Define.
(NEW_TIME): Define to 0, not INT_MAX.
(UT_PID, UT_ID, UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT): Define.
Replace literal uses of ut_pid, ut_id, and ut_exit members with
uses through macros.
(make_id_equals_comment): New function, factored out of three others.
2002-04-16 09:49:28 +00:00
Jim Meyering
92cad6a4e5 *** empty log message *** 2002-04-16 06:51:00 +00:00
Jim Meyering
5bd81eab0f (human_fstype): Rename from print_human_fstype, and rework accordingly.
(print_statfs): Use human_fstype to honor format width on %T.
2002-04-16 06:50:54 +00:00
Jim Meyering
598064934e Add copyright comment. 2002-04-16 06:27:39 +00:00
Jim Meyering
c75c37dc2b *** empty log message *** 2002-04-15 19:05:33 +00:00
Jim Meyering
67492390d4 *** empty log message *** 2002-04-15 19:04:32 +00:00
Jim Meyering
480aa4b7c1 *** empty log message *** 2002-04-15 19:03:52 +00:00
Jim Meyering
9a9958dafc Document kill. 2002-04-15 19:03:47 +00:00
Jim Meyering
2262fbb298 add FIXME comments 2002-04-15 10:46:45 +00:00
Jim Meyering
a36a4fdedc *** empty log message *** 2002-04-15 10:37:45 +00:00
Jim Meyering
57d75ea4d8 Include xalloc.h.
Use xmalloc everywhere, not malloc.
2002-04-15 10:37:35 +00:00
Jim Meyering
7880914895 *** empty log message *** 2002-04-15 08:52:52 +00:00
Jim Meyering
b214c8214c Handle "lld" vs "ld" printf formats the same way Bash does.
Include inttypes.h.
(PRIdMAX, PRIuMAX): Define, if not already defined.
(print_statfs): Use those macros, not the literal strings.
(print_stat): Likewise.
2002-04-15 08:50:57 +00:00
Jim Meyering
68f054be8f *** empty log message *** 2002-04-15 08:41:34 +00:00
Jim Meyering
d9feb76a02 (usage): Give a verbose description of --squeeze-repeats,
including the mention of SET1.
2002-04-15 08:41:23 +00:00
Jim Meyering
872325a656 *** empty log message *** 2002-04-15 07:21:49 +00:00
Jim Meyering
d133be1fc3 (print_human_fstype): Add missing break;' for case S_MAGIC_MINIX:'. 2002-04-15 07:21:42 +00:00
Jim Meyering
ad02a0f47d remove parens in #if directives 2002-04-15 07:20:15 +00:00
Jim Meyering
f7d204bce4 *** empty log message *** 2002-04-14 12:53:10 +00:00
Jim Meyering
2b38bcb26a *** empty log message *** 2002-04-14 12:53:00 +00:00
Jim Meyering
6d89182e28 (statfs_secure): Define.
(print_stat): Remove another #ifdef.
(do_statfs): Likewise.
(print_statfs): Prefer/use fputs over printf.
(print_stat): Likewise.
2002-04-14 12:52:48 +00:00
Jim Meyering
30215a98cc filter through GNU indent 2002-04-14 08:20:15 +00:00
Jim Meyering
c8088a6184 Split some long lines.
(verbose_usage): Remove function.
2002-04-14 08:18:49 +00:00
Jim Meyering
82395d065e *** empty log message *** 2002-04-14 08:15:22 +00:00
Jim Meyering
5120cb1bc9 remove parens in #if directives 2002-04-14 08:14:37 +00:00
Jim Meyering
e407204f28 fix TABs 2002-04-14 08:14:15 +00:00
Jim Meyering
af3fa53348 *** empty log message *** 2002-04-14 08:13:50 +00:00
Jim Meyering
4fc8280fa6 *** empty log message *** 2002-04-14 07:50:19 +00:00
Jim Meyering
9e92d099ce *** empty log message *** 2002-04-14 07:49:20 +00:00
Jim Meyering
7c3982f666 (verbose_usage): Remove function. Move contents into usage.
Remove lots of #if directives involving FLASK_LINUX
[!FLASK_LINUX] (is_flask_enabled): Define.
(stat_secure, lstat_secure): Define.
(print_statfs): Remove lots of nested #if directives.
Instead, rely on support fo %llu and %lld printf formats --
but that is only temporary, since it's not porable enough.
(main): Hoist is_flask_enabled test to be done here, rather
than in each of do_stat and do_statfs for every argument.
2002-04-14 07:47:44 +00:00
Jim Meyering
b6e520d478 [HAVE_SYS_VFS_H]: Guard incluion of sys/vfs.h.
Constify many parameters.
(print_statfs): Fix typo: Use %u (to match %lu) for namelen, not %d.
2002-04-14 06:55:13 +00:00
Jim Meyering
2c41df8b40 alphabetize entries in a menu
In xref, use libc instead of library.
2002-04-14 06:27:10 +00:00
Jim Meyering
86168539c7 . 2002-04-13 17:10:57 +00:00
Jim Meyering
d849f68245 add a couple `const' 2002-04-13 14:35:46 +00:00
Jim Meyering
91990a324b (print_human_fstype): Revamp in a similar fashion. Don't use strdup. 2002-04-13 14:34:58 +00:00
Jim Meyering
ac829d6935 (print_human_type): Call fputs once rather than calling printf many times.
Declare most functions to be `static'.
2002-04-13 14:23:00 +00:00
Jim Meyering
d1a60cddfe Include system.h, error.h, and many other headers.
[HAVE_SYS_SYSMACROS_H]: Guard inclusion of sys/sysmacros.h.
(PROGRAM_NAME, AUTHORS): Define.
(long_options): Declare/define.
(print_human_access): Rewrite to use mode_string.
(usage): Rewrite.
(main): Use getopt_long.
2002-04-13 14:11:44 +00:00
Jim Meyering
8d8acf4b3c Direct from Debian's stat_3.3-1, modulo trailing blanks (removed)
and cpp directive (indented via cppi).
2002-04-13 13:47:14 +00:00
Jim Meyering
fadc4d4786 *** empty log message *** 2002-04-13 12:40:43 +00:00
Jim Meyering
9eb27b5fad Document link and unlink. 2002-04-13 12:40:36 +00:00
Jim Meyering
b1e1f83089 *** empty log message *** 2002-04-12 21:03:34 +00:00
Jim Meyering
ad935391c2 (dirfd): Elide prototype if dirfd is a macro. 2002-04-12 21:03:28 +00:00
Jim Meyering
5f057a69d6 *** empty log message *** 2002-04-12 20:51:01 +00:00
Jim Meyering
d635ea46cb (checking for getmntinfo function...): Remove now-bogus
check for f_type in sys/mount.h.  Instead, just test for the existence
of the getmntinfo function.  Needed for Darwin 5.3.
2002-04-12 20:50:53 +00:00
Jim Meyering
51816f9adb *** empty log message *** 2002-04-12 20:48:36 +00:00
Jim Meyering
50bc2a4286 (UTILS_FUNC_DIRFD): Also detect when dirfd is a macro.
This is necessary at least on Darwin 5.3.
2002-04-12 20:48:29 +00:00
Jim Meyering
7f01432879 *** empty log message *** 2002-04-12 11:04:02 +00:00
Jim Meyering
d11a1de3ed *** empty log message *** 2002-04-12 11:03:13 +00:00
Jim Meyering
c6590a2f61 Don't AC_REPLACE(strnlen), now that we use
AC_FUNC_STRNLEN.  That would end up putting two copies of strnlen.o
in the library, and that makes some versions of ranlib object.
2002-04-12 11:02:59 +00:00
Jim Meyering
f5da3f584b *** empty log message *** 2002-04-12 10:47:18 +00:00
Jim Meyering
5771d0193b . 2002-04-12 10:46:55 +00:00
Jim Meyering
f52a204a4e Include long-options.h.
[long_opts]: Remove.
(usage): Tweak --help output; use *_OPTION_DESCRIPTION macros.
(main): Don't use getopt directly.  Use parse_long_options instead.
Tweak a diagnostic.
Use EXIT_FAILURE rather than a literal `1'.
(main): If POSIXLY_CORRECT is set, don't recognize --help or --version,
so the program can operate on a file with one of those names.
2002-04-12 10:41:54 +00:00
Jim Meyering
21126e288b Include long-options.h.
[long_opts]: Remove.
(usage): Tweak --help output; use *_OPTION_DESCRIPTION macros.
(main): Don't use getopt directly.  Use parse_long_options instead.
Tweak a diagnostic.
Use EXIT_FAILURE rather than a literal `1'.
2002-04-12 10:41:22 +00:00
Jim Meyering
d1aa15101c *** empty log message *** 2002-04-12 10:41:00 +00:00
Jim Meyering
92c4ad70ea *** empty log message *** 2002-04-12 10:40:09 +00:00
Jim Meyering
1247f879f9 *** empty log message *** 2002-04-12 10:39:43 +00:00
Jim Meyering
b46ec3cd33 from Debian's fileutils_4.1-10 2002-04-12 10:07:17 +00:00
Jim Meyering
f0ea374271 *** empty log message *** 2002-04-09 17:55:48 +00:00
Jim Meyering
72af85a647 (jm_FUNC_REALLOC): Change the `checking ...' message
to be more precise.  Rather than saying we're checking whether the
function `works', say what we're testing.
2002-04-09 17:55:36 +00:00
Jim Meyering
aa77b79b4b (jm_FUNC_MALLOC): Change the `checking ...' message
to be more precise.  Rather than saying we're checking whether the
function `works', say what we're testing.
2002-04-09 17:55:23 +00:00
Jim Meyering
f36cf8b4d8 *** empty log message *** 2002-04-08 09:39:19 +00:00
Jim Meyering
a8a0842148 Use new directives, @copying and @insertcopying,
thus now requiring texinfo-4.2 to create the .info file.
2002-04-08 09:38:58 +00:00
Jim Meyering
8c3b497f01 *** empty log message *** 2002-04-07 21:46:15 +00:00
Jim Meyering
61d6d975af Tweak comments to reflect reality. 2002-04-07 21:46:11 +00:00
Jim Meyering
b5422e71f7 *** empty log message *** 2002-04-07 15:57:10 +00:00
Jim Meyering
c20f3cd330 Add VERBOSE=yes support. 2002-04-07 15:52:14 +00:00
Jim Meyering
a88ba0dd94 Fix typo in VERBOSE=yes handling. 2002-04-07 15:51:12 +00:00
Jim Meyering
81c7cd4c29 . 2002-03-30 15:49:57 +00:00
Jim Meyering
f79efa913c with --reply=no, no need for input file `no' 2002-03-30 15:26:46 +00:00
Jim Meyering
8b861292c6 --, not --- 2002-03-30 15:22:04 +00:00
Jim Meyering
39f54be321 *** empty log message *** 2002-03-30 15:20:22 +00:00
Jim Meyering
9bfbfd3b8a *** empty log message *** 2002-03-30 15:19:04 +00:00
Jim Meyering
fff7466c36 Use --reply=no rather than -i.
The latter depends on whether stdin is a tty.
2002-03-30 15:18:54 +00:00
Jim Meyering
bd2fa30652 . 2002-03-30 10:40:32 +00:00
Jim Meyering
fffcc47efc . 2002-03-30 07:24:19 +00:00
Jim Meyering
302c89b285 (do_move): Correct a comment. 2002-03-30 07:12:23 +00:00
Jim Meyering
3dd09fbf17 *** empty log message *** 2002-03-30 07:11:34 +00:00
Jim Meyering
baa4aff633 (forget_created): Prototype. 2002-03-30 07:11:24 +00:00
Jim Meyering
aa3694f1ff (forget_created): New function. 2002-03-30 07:11:13 +00:00
Jim Meyering
9211474a6e (copy_internal): Move the block that sets `earlier_file'
down to just before the first use of that variable.  Otherwise, it was
possible to make mv (and probably cp, too) malfunction when copying
hard-linked files into a directory containing at least one of the
source file names.  Call forget_created everywhere thereafter where
this function returns without creating a destination file that might
subsequently be linked.  Reported by Iida Yosiaki.
2002-03-30 07:10:57 +00:00
Jim Meyering
ca76cd842a New test for the above.
Based on an example from Iida Yosiaki.
2002-03-29 23:11:41 +00:00
Jim Meyering
6879364228 (TESTS): Add i-link-no. 2002-03-29 23:11:28 +00:00
Jim Meyering
0a2845a592 *** empty log message *** 2002-03-29 23:09:52 +00:00
Jim Meyering
d4e06e8c46 *** empty log message *** 2002-03-28 08:07:41 +00:00
Jim Meyering
61789dd7d5 . 2002-03-28 07:59:24 +00:00
Jim Meyering
df92958bed *** empty log message *** 2002-03-27 08:05:14 +00:00
Jim Meyering
c559453c89 *** empty log message *** 2002-03-27 07:57:00 +00:00
Jim Meyering
65ab259cdb *** empty log message *** 2002-03-25 09:53:28 +00:00
Jim Meyering
563ff6778d update copyright 2002-03-25 09:53:18 +00:00
Jim Meyering
eae700da7d (age_of): Return -1 and 0 rather than 0 and 1.
Might as well keep it simple, and like bash.
(binary_operator): Fix bug with -nt and -ot, when one of the
files did not exist.  We want to be compatible with the ksh93
documentation, and with Bash.
2002-03-25 09:53:07 +00:00
Jim Meyering
dc3bf580fc *** empty log message *** 2002-03-25 09:52:46 +00:00
Jim Meyering
d2ed2e78cf (File characteristic tests): Document the
behavior of test -nt and -ot when one of the files does not exist,
using the same behavior that is documented in ksh93.
2002-03-25 09:52:25 +00:00
Jim Meyering
c799d7b979 adjust spacing in expected diagnostic 2002-03-19 09:55:21 +00:00
Jim Meyering
73c74c33e6 use only one space after semicolon 2002-03-19 08:49:28 +00:00
Jim Meyering
c1635e0379 . 2002-03-18 09:51:22 +00:00
Jim Meyering
2486f9acdf . 2002-03-18 09:50:45 +00:00
Jim Meyering
af1a8f76a6 *** empty log message *** 2002-03-17 19:28:04 +00:00
Jim Meyering
1c1565ff39 *** empty log message *** 2002-03-17 19:21:54 +00:00
Jim Meyering
c3d98f8640 (TESTS): Add part-fail. 2002-03-17 19:21:49 +00:00
Jim Meyering
cf504308fe *** empty log message *** 2002-03-17 19:21:24 +00:00
Jim Meyering
3677890d37 (usage): Mention that --format=FORMAT must be
a *floating-point* format, also in description of that option.
(usage): Also add the `=' signs here: --format=FORMAT,
--separator=STRING.
2002-03-17 19:21:16 +00:00
Jim Meyering
2af2bec9b2 *** empty log message *** 2002-03-17 16:18:35 +00:00
Jim Meyering
30f0e39058 *** empty log message *** 2002-03-17 16:17:38 +00:00
Jim Meyering
fc1e984e89 *** empty log message *** 2002-03-17 16:17:29 +00:00
Jim Meyering
24c61a8949 *** empty log message *** 2002-03-17 16:02:47 +00:00
Jim Meyering
b3354081ac (copy_internal) [move_mode]: Give a better diagnostic
(using errno from the failed unlink) when a cross-device `mv'
fails, e.g., because the destination cannot be unlinked.
Prompted by a report from Karl Berry.
2002-03-17 16:00:54 +00:00
Jim Meyering
aedb44867d *** empty log message *** 2002-03-16 09:47:01 +00:00
Jim Meyering
65a82e4c26 *** empty log message *** 2002-03-16 09:46:40 +00:00
Jim Meyering
28571ed121 *** empty log message *** 2002-03-16 09:43:19 +00:00
Jim Meyering
3a0036e766 . 2002-03-14 12:19:49 +00:00
Jim Meyering
fa0309e396 *** empty log message *** 2002-03-12 12:12:02 +00:00
Jim Meyering
4f3c16b4f5 . 2002-03-10 22:26:35 +00:00
Jim Meyering
16b01fbdc7 *** empty log message *** 2002-03-10 22:25:01 +00:00
Jim Meyering
cd0be06ed2 (strip): Change wording in diagnostic. 2002-03-10 22:23:19 +00:00
Jim Meyering
48f998c0e8 (do_copy): Change wording in diagnostic. 2002-03-10 22:22:33 +00:00
Jim Meyering
f3a82e33ac (main): Change wording in diagnostic. 2002-03-10 22:21:44 +00:00
Jim Meyering
14867399cd (make_path): Remove a comma from a diagnostic. 2002-03-10 22:15:53 +00:00
Jim Meyering
948cbc01ff *** empty log message *** 2002-03-10 20:25:56 +00:00
Jim Meyering
29dade1a06 *** empty log message *** 2002-03-10 20:20:08 +00:00
Jim Meyering
814ef75488 (GZIP, BZIP2): Remove definitions.
($(my_distdir).tar.bz2): Remove rule.  Now, it's built by `make dist'.
2002-03-10 20:19:54 +00:00
Jim Meyering
17202b905d *** empty log message *** 2002-03-10 18:43:12 +00:00
Jim Meyering
0a35becaf5 *** empty log message *** 2002-03-10 18:42:44 +00:00
Jim Meyering
21eba648bd *** empty log message *** 2002-03-10 18:41:47 +00:00
Jim Meyering
c880cde6a9 reformat continued line 2002-03-10 10:22:47 +00:00
Jim Meyering
3afb09ac80 (gmsgfmt_cmd): New variable.
(.po.gmo): Use it here.

(.po.mo): Don't create target directly --
otherwise a failed gmsgfmt command would leave a corrupt,
yet up-to-date, .gmo file.
(.po.gmo): Likewise.
2002-03-10 10:21:55 +00:00
Jim Meyering
1595f15531 . 2002-03-10 09:30:15 +00:00
Jim Meyering
a6921b13ef *** empty log message *** 2002-03-10 08:28:43 +00:00
Jim Meyering
ae5a552bf1 (copy_reg): Don't exit upon finding a replaced file.
Instead, just skip it like the diagnostic says.
Reported by Paul Eggert.
2002-03-10 08:28:30 +00:00
Jim Meyering
0d4eeae035 (copy_reg): Use a more concise diagnostic for
reporting replaced files.  This avoids a bug in the code,
which mishandled ino_t wider than long.
2002-03-10 08:26:48 +00:00
Jim Meyering
c4f4cfbf11 * src/copy.c (copy_reg): Use a more concise diagnostic for
reporting replaced files.  This avoids a bug in the code,
which mishandled ino_t wider than long.
* src/remove.c (remove_dir): Likewise, twice.
2002-03-10 08:17:20 +00:00
Jim Meyering
8cef936d37 . 2002-03-09 22:14:08 +00:00
Jim Meyering
583ce8b6c9 . 2002-03-09 22:13:33 +00:00
Jim Meyering
f369403dc6 *** empty log message *** 2002-03-09 22:13:12 +00:00
Jim Meyering
3a82fa109f *** empty log message *** 2002-03-09 22:10:47 +00:00
Jim Meyering
57d9a3625b . 2002-03-09 21:05:49 +00:00
Jim Meyering
3f81b8e189 (rm) Add comment on new parameter. 2002-03-09 21:02:05 +00:00
Jim Meyering
d06faa245b *** empty log message *** 2002-03-09 20:44:11 +00:00
Jim Meyering
29544710c6 (struct dev_ino): Declare new type.
(rm): Add a parameter to the prototype.
2002-03-08 16:46:26 +00:00
Jim Meyering
7c38cd6901 (main): Call lstat `.' to get the device/inode numbers
now required for rm.
2002-03-08 16:46:11 +00:00
Jim Meyering
9419e88fc4 (do_move): The first time we resort to copy/remove,
call lstat `.' to get the device/inode numbers now required for rm.
2002-03-08 16:45:51 +00:00
Jim Meyering
2c929257dc Don't allow a malicious user to trick another user's rm process into
removing unintended files.  In one scenario, if root is removing a
hierarchy that is writable by the malicious user, that user may trick
root into removing all of `/'.  Reported by Wojciech Purczynski.

(remove_dir): After chdir `..', call lstat to get the
dev/inode of "." and fail if they aren't the same as the old numbers.
(remove_cwd_entries): New parameter, `cwd_dev_ino'.
(remove_dir): Likewise.
(rm): Likewise.
Adjust all callers.
2002-03-08 16:45:31 +00:00
Jim Meyering
28efd24883 *** empty log message *** 2002-03-08 15:41:30 +00:00
Jim Meyering
bb09da15fe *** empty log message *** 2002-03-08 08:23:53 +00:00
Jim Meyering
db8d2fe339 Mention that this wrapper is needed also on mips-dec-ultrix4.4 systems. 2002-03-08 08:23:47 +00:00
Jim Meyering
b3183656ef . 2002-03-06 09:15:00 +00:00
Jim Meyering
aa0c7901a4 update from masters 2002-03-06 09:11:13 +00:00
Jim Meyering
ef8f6fe459 . 2002-03-06 09:06:01 +00:00
Jim Meyering
c3aafd6932 *** empty log message *** 2002-03-06 08:56:50 +00:00
Jim Meyering
b0a1aa04ba (cut invocation): Say that selected input is written in the same
order that it is read, and is written exactly once.
2002-03-06 08:56:16 +00:00
Jim Meyering
e304471a9e *** empty log message *** 2002-03-05 09:03:40 +00:00
Jim Meyering
405638ebb0 *** empty log message *** 2002-03-03 23:25:58 +00:00
Jim Meyering
2020df6702 (tgz-size): Also handle a suffix of `K', since
the sizes in the output of `du -h' now look like `29K'
2002-03-03 23:25:05 +00:00
Jim Meyering
c4836a7811 *** empty log message *** 2002-03-03 22:30:13 +00:00
Jim Meyering
47c5a14bad Make cp -r equivalent to cp -R. Add a new cp option --copy-contents
for people who want to emulate the traditional (and rarely desirable)
cp -r behavior.

(cp invocation): Document this.
Fix some related minor bugs: --no-dereference is no longer
equivalent to -d, and --archive (-a) can override the other
symlink options.  Warn that cp -R is not portable on symbolic
links unless you also specify -P.
2002-03-03 22:30:06 +00:00
Jim Meyering
f6ac75fd2c *** empty log message *** 2002-03-03 22:29:41 +00:00
Jim Meyering
c76a2ddf15 . 2002-03-03 22:29:36 +00:00
Jim Meyering
337e4b174d (copy_internal): Remove -r warning; no longer needed. 2002-03-03 22:29:31 +00:00
Jim Meyering
246e147a6a (COPY_CONTENTS_OPTION): New enum value.
(long_opts): Add --copy-contents.
(usage): Describe new behavior.  Sort options.
(main): Implement new behavior.  Remove diagnostics for -a and -r;
no longer needed.
2002-03-03 22:28:48 +00:00
Jim Meyering
e566848d2a . 2002-03-03 09:57:20 +00:00
Jim Meyering
da1695cee6 . 2002-03-03 09:54:53 +00:00
Jim Meyering
2fd63693cc . 2002-03-02 17:43:10 +00:00
Jim Meyering
244554ca1a Reflect changed semantics of cp's -r option. 2002-03-02 17:42:45 +00:00
Jim Meyering
22b03a6110 . 2002-03-02 17:39:58 +00:00
Jim Meyering
d726c5ad5f *** empty log message *** 2002-03-02 17:39:26 +00:00
Jim Meyering
c5fcc8e462 (strnlen): Define-away/undef so that an inconsistent prototype in
string.h (on at least AIX4.3.2.0 w/gcc-2.95.3) doesn't cause trouble.
2002-03-02 17:39:17 +00:00
Jim Meyering
256f19b8db . 2002-03-02 17:37:50 +00:00
Jim Meyering
e4dfd95e1f *** empty log message *** 2002-03-02 17:36:04 +00:00
Jim Meyering
846263ddff (cp invocation): Document that cp -r
preserves symlinks.  Emphasize non-portability of cp -r.
2002-03-02 17:35:39 +00:00
Jim Meyering
b9d1d9e98e (main): Warn when -r is specified before --archive (-a). 2002-03-02 17:23:34 +00:00
Jim Meyering
3c3e5c4a31 add a comment 2002-03-02 17:17:49 +00:00
Jim Meyering
e2497bb4fd (copy_internal): For each symlink copied by cp -r,
issue a warning that `cp -r' is not portable.
2002-03-02 17:16:42 +00:00
Jim Meyering
7a5c83d8d5 (main): Revert change of 2001-12-29. With this change,
cp -r once again preserves symlinks.
(usage): Document the original (now-restored) behavior.
2002-03-02 17:15:42 +00:00
Jim Meyering
808b51dfba *** empty log message *** 2002-03-02 16:44:07 +00:00
Jim Meyering
baea296b94 (main): Fail if -r is specified after --archive (-a) on the command line. 2002-03-02 16:44:02 +00:00
Jim Meyering
07b422cb2a be careful about leading/trailing spaces 2002-03-02 13:24:46 +00:00
Jim Meyering
558fd59769 *** empty log message *** 2002-03-02 08:38:57 +00:00
Jim Meyering
dea4262fa6 (copy_reg): Detect abuse of a race condition
whereby an unprivileged user could gain read access to otherwise-
inaccessible files when root uses cp or mv to copy a hierarchy
belonging to that user.
2002-03-02 08:38:47 +00:00
Jim Meyering
17e6a0e4bb Include timespec.h.
(strftime, time, stime): Remove declarations; no longer needed.
(usage): Document %N.
(main): Use gettime rather than time to get the time of day,
so that we can get fractional times.
Similarly for settime and stime, so that we can set fractional times
(though this currently is not available to the user since we don't
parse fractional times; add FIXMES for that).
Check for gettime failures; e.g. this can occur if it
is past 2038 and we are a 32-bit app running on a 64-bit OS.
Get fractional part of file time stamps.
Do not falsely report failures just because time_t happens to be -1
(e.g. a file time stamp 1 second before the epoch).
(show_date): 2nd arg is now struct timespec, not time_t.
All uses changed.  Use nstrftime rather than strftime, so that
we can format fractional seconds.
2002-03-01 23:57:21 +00:00
Jim Meyering
9f1c3a0e22 *** empty log message *** 2002-03-01 23:54:58 +00:00
Jim Meyering
a9e1eeab54 (gettime): Test HAVE_CLOCK_GETTIME, not HAVE_CLOCK_SETTIME. 2002-03-01 23:54:52 +00:00
Jim Meyering
b39517e205 . 2002-03-01 23:36:30 +00:00
Jim Meyering
920077edd1 (strftime-check): Add `N'. 2002-03-01 23:35:58 +00:00
Jim Meyering
e2f0548110 (Time directives): Add %N for nanoseconds.
This documents the recent change to 'ls'.
2002-03-01 23:35:00 +00:00
Jim Meyering
a25f0cdb7e reflect renaming: nanosleep.h -> timespec.h 2002-03-01 23:34:23 +00:00
Jim Meyering
5fe8296d4a *** empty log message *** 2002-03-01 23:29:32 +00:00
Jim Meyering
853b15e627 *** empty log message *** 2002-03-01 23:28:21 +00:00
Jim Meyering
f5d3da342d *** empty log message *** 2002-03-01 23:26:26 +00:00
Jim Meyering
8f5e4ea244 (jm_MACROS): Do not replace stime; no longer used.
Check for clock_settime.
2002-03-01 23:26:10 +00:00
Jim Meyering
06b02f10be *** empty log message *** 2002-03-01 23:21:09 +00:00
Jim Meyering
e616c17722 . 2002-03-01 23:21:01 +00:00
Jim Meyering
3bde76131b (libfetish_a_SOURCES): Add gettime.c, settime.c,
timespec.h.  Remove nanosleep.h.
2002-03-01 23:20:53 +00:00
Jim Meyering
5a3e8f271b new file, from Paul Eggert 2002-03-01 23:20:20 +00:00
Jim Meyering
e5106171da Reflect renaming: nanosleep.h -> timespec.h. 2002-03-01 23:19:28 +00:00
Jim Meyering
e56702cfd6 new macros/decls, from Paul Eggert 2002-03-01 23:16:55 +00:00
Jim Meyering
20075bd5d4 renamed from nanosleep.h 2002-03-01 23:15:29 +00:00
Jim Meyering
11af8c2887 (decode_switches, usage): Add --time-style=+FORMAT. 2002-02-28 08:34:43 +00:00
Jim Meyering
4e9fd57633 *** empty log message *** 2002-02-28 08:30:31 +00:00
Jim Meyering
db2557052c (pr invocation): Reword to avoid using `:'
in an @opindex entry -- info doesn't permit it.
2002-02-28 08:30:19 +00:00
Jim Meyering
97943b2180 *** empty log message *** 2002-02-28 08:20:05 +00:00
Jim Meyering
69e796de6c (Formatting file timestamps): Document new
time-formatting method: --time-style=+FORMAT.
2002-02-28 08:19:50 +00:00
Jim Meyering
2a7a905dfc . 2002-02-26 16:03:24 +00:00
Jim Meyering
81b59e0ba3 *** empty log message *** 2002-02-26 15:48:03 +00:00
Jim Meyering
419dd76de0 *** empty log message *** 2002-02-26 15:39:27 +00:00
Jim Meyering
04c4d4dc87 *** empty log message *** 2002-02-26 15:38:49 +00:00
Jim Meyering
9f96885c83 *** empty log message *** 2002-02-26 15:22:22 +00:00
Jim Meyering
7da31a15bb *** empty log message *** 2002-02-26 15:22:09 +00:00
Jim Meyering
d7f4b25511 *** empty log message *** 2002-02-26 15:21:39 +00:00
Jim Meyering
99c885f123 *** empty log message *** 2002-02-26 15:21:11 +00:00
Jim Meyering
fba433574b (jm_MACROS): Require AC_FUNC_ACL.
Do not check for acl or sys/acl.h, as AC_FUNC_ACL does that now.
2002-02-26 15:20:39 +00:00
Jim Meyering
d678a9231c Include "acl.h" rather than <sys/acl.h>.
(USE_ACL): Remove; replaced by HAVE_ACL everywhere.
(gobble_file): Use file_has_acl rather than doing it ourselves.
2002-02-26 15:20:00 +00:00
Jim Meyering
d936975f34 *** empty log message *** 2002-02-26 14:53:28 +00:00
Jim Meyering
4656d21181 (libfetish_a_SOURCES): Add acl.h, acl.c. 2002-02-26 14:53:18 +00:00
Jim Meyering
b11f94d927 . 2002-02-26 14:06:55 +00:00
Jim Meyering
f57432bb1d tweak comment 2002-02-26 08:32:56 +00:00
Jim Meyering
3612fcbdb2 latest from FSF 2002-02-25 12:11:03 +00:00
Jim Meyering
60a7806d6e *** empty log message *** 2002-02-24 17:24:29 +00:00
Jim Meyering
e3fe486f9f Include posixver.h. 2002-02-24 17:24:06 +00:00
Jim Meyering
0142f9ed84 (DISTFILES.common): Add remove-potcdate.sin.
(.SUFFIXES): Add .sed and .sin.
(.sin.sed): New rule.
($(DOMAIN).pot-update): Depend on remove-potcdate.sed. If the old
POT file exists and the new POT file differs from it only in the
first POT-Creation-Date line, keep the old POT file. So the PO files
don't need to be remade, and automake's "distcheck" target succeeds.
(mostlyclean): Remove remove-potcdate.sed and additional temporary
files.
2002-02-23 09:16:44 +00:00
Jim Meyering
63d4f2d50b . 2002-02-23 09:16:02 +00:00
Jim Meyering
6a8f12175a *** empty log message *** 2002-02-23 09:15:45 +00:00
Jim Meyering
687ed33f94 . 2002-02-23 09:14:52 +00:00
Jim Meyering
39ae860d5b (simple_cat, cat, main): Used char * rather than
unsigned char *, to avoid some technical violations of the C
standard, and to avoid the need for casts.  I guess the
unsigned char * was probably there for improved performance
with ancient compilers, but the code wasn't using the
unsignedness any more.
Reported by Nelson H. F. Beebe.

(cat): int -> size_t for full_write arg.  This doesn't
fix any bugs since the buffer size is small, but it makes
the code a bit clearer.
2002-02-23 09:12:20 +00:00
Jim Meyering
8f0c48cf2f *** empty log message *** 2002-02-23 09:02:23 +00:00
Jim Meyering
a5d6352ca2 (xpath_concat): Reorder code to pacify
compilers that don't know that xalloc_die never returns.
2002-02-23 09:02:18 +00:00
Jim Meyering
1f8d1e1a94 *** empty log message *** 2002-02-20 16:09:14 +00:00
Jim Meyering
0d9dce8362 *** empty log message *** 2002-02-20 16:06:29 +00:00
Jim Meyering
69e2127485 Include posixver.h.
(usage): Document only the intersection of the old and new behaviors,
to encourage portability.
(main): Use `posix2_version ()' in place of POSIX2_VERSION.
2002-02-20 16:06:20 +00:00
Jim Meyering
12756a214f *** empty log message *** 2002-02-19 20:41:18 +00:00
Jim Meyering
7ca2112fce (seq invocation): In the example, use "tail
-n 3", not "tail -3", to conform to POSIX 1003.1-2001.
2002-02-19 20:41:13 +00:00
Jim Meyering
b9bf7eada4 update due to modified mk-script 2002-02-18 12:41:49 +00:00
Jim Meyering
0692039ada . 2002-02-18 12:40:53 +00:00
Jim Meyering
edd622d994 *** empty log message *** 2002-02-18 12:39:48 +00:00
Jim Meyering
c53546aa7e *** empty log message *** 2002-02-18 12:39:42 +00:00
Jim Meyering
c58e076233 (test_vector): Rename tests of obsolete usage to have prefix of `obs'.
For tests matching /^obs/,
put _POSIX2_VERSION=199209 in the environment, so the tests succeed
even when the environment would have contained _POSIX2_VERSION=200112.
2002-02-18 12:39:19 +00:00
Jim Meyering
20f7083676 *** empty log message *** 2002-02-18 12:35:15 +00:00
Jim Meyering
ebf1beaf96 For tests matching /^(obs|err-[134])/,
put _POSIX2_VERSION=199209 in the environment, so the tests succeed
even when the environment would have contained _POSIX2_VERSION=200112.
2002-02-18 12:35:00 +00:00
Jim Meyering
42eb22a775 *** empty log message *** 2002-02-18 12:33:30 +00:00
Jim Meyering
68d442ddaf When getting input via a pipe, apply the
environment settings to the command in question, not to `cat'.
No longer allow more than one element in the
$Test::env or $Test::env_default arrays.  No one used that.
2002-02-18 12:33:11 +00:00
Jim Meyering
5e8ee3161d *** empty log message *** 2002-02-17 22:53:18 +00:00
Jim Meyering
3f570570fd Tell sort to accept old-style options. 2002-02-17 22:50:33 +00:00
Jim Meyering
4228c4b860 . 2002-02-17 22:48:54 +00:00
Jim Meyering
1b34d3edee Tell head to accept old-style options like `-1'. 2002-02-17 22:48:45 +00:00
Jim Meyering
94fcdc55eb *** empty log message *** 2002-02-17 22:39:51 +00:00
Jim Meyering
09eb7ebbca Tell head to accept old-style options like `-1'. 2002-02-17 22:39:47 +00:00
Jim Meyering
91564c12b0 *** empty log message *** 2002-02-17 21:47:43 +00:00
Jim Meyering
a261a6aa62 (tsort invocation): Add a more realistic example. 2002-02-17 21:47:35 +00:00
Jim Meyering
59ad795300 (tsort background): New section.
From Ian Lance Taylor.
2002-02-17 20:26:43 +00:00
Jim Meyering
3b118bfa86 . 2002-02-17 20:15:49 +00:00
Jim Meyering
9c5a25e176 . 2002-02-17 20:14:18 +00:00
Jim Meyering
525a872b3f *** empty log message *** 2002-02-17 20:13:45 +00:00
Jim Meyering
908d3853ac *** empty log message *** 2002-02-17 19:13:21 +00:00
Jim Meyering
2377fcd9a3 (wget_files): Reflect new location of these files. 2002-02-17 19:13:11 +00:00
Jim Meyering
5e55fec6e9 *** empty log message *** 2002-02-17 19:05:53 +00:00
Jim Meyering
28d582acd9 ($(DOMAIN).pot-update): Remove/replace the .pot
file only if the new one is different (modulo the creation date).
2002-02-17 16:20:39 +00:00
Jim Meyering
2b345f4a8d *** empty log message *** 2002-02-17 08:45:54 +00:00
Jim Meyering
49a3c7a82d Upgrade to gettext-0.11. 2002-02-16 14:59:31 +00:00
Jim Meyering
2202d97525 Upgrade to gettext-0.11. 2002-02-16 14:58:48 +00:00
Jim Meyering
83dcec4e43 Update to Gettext 0.11 2002-02-16 14:40:15 +00:00
Jim Meyering
ad61fd4133 Update to Gettext 0.11 2002-02-16 14:39:44 +00:00
Jim Meyering
9644fae0fd . 2002-02-16 14:39:34 +00:00
Jim Meyering
36dd24da90 renamed from doc/texinfo.tex 2002-02-16 14:27:18 +00:00
Jim Meyering
b79eab3aa6 renamed to config/texinfo.tex 2002-02-16 14:27:17 +00:00
Jim Meyering
c7f3f0fba9 renamed to config/mdate-sh 2002-02-16 14:26:57 +00:00
Jim Meyering
0bca413339 renamed from doc/mdate-sh 2002-02-16 14:26:57 +00:00
Jim Meyering
a714e6b4e5 renamed from mkinstalldirs 2002-02-16 14:23:56 +00:00
Jim Meyering
246ae48193 renamed from install-sh 2002-02-16 14:23:51 +00:00
Jim Meyering
96cb172817 renamed from missing 2002-02-16 14:23:46 +00:00
Jim Meyering
59c60442f3 renamed from depcomp 2002-02-16 14:23:41 +00:00
Jim Meyering
7408ba7d77 renamed from config.sub 2002-02-16 14:23:37 +00:00
Jim Meyering
8b7fb356cb renamed from config.guess 2002-02-16 14:23:31 +00:00
Jim Meyering
b164e8fd95 Update to Autoconf 2.52h. 2002-02-16 14:15:27 +00:00
Jim Meyering
8481ec72a8 Update to Gettext 0.11. 2002-02-16 14:10:17 +00:00
Jim Meyering
90e921d334 Update to Gettext 0.11. 2002-02-16 14:08:46 +00:00
Jim Meyering
f033fef4ce Add support for _POSIX2_VERSION, which lets you pick which POSIX
version you want the utilities to conform to.  Remove warnings about
failure to conform to a future POSIX version.

(ISO_8601_OPTION): Remove; no longer needed.
All uses changed to back to the corresponding short options.
(short_options): Remove; no longer needed.
(COMMON_SHORT_OPTIONS): New macro.

(usage): Document only the intersection of the
old and new behaviors, to encourage portability.
(main): Parse options using POSIX 1003.1-2001 rules if
conforming to that standard.  Do not warn of obsolete options.
2002-02-16 09:04:30 +00:00
Jim Meyering
7513e6d4f4 Add support for _POSIX2_VERSION, which lets you pick which POSIX
version you want the utilities to conform to.  Remove warnings about
failure to conform to a future POSIX version.

(usage): Document only the intersection of the
old and new behaviors, to encourage portability.
(main): Parse options using POSIX 1003.1-2001 rules if
conforming to that standard.  Do not warn of obsolete options.
2002-02-16 09:03:12 +00:00
Jim Meyering
361dda3c20 *** empty log message *** 2002-02-16 08:59:10 +00:00
Jim Meyering
44cfebcac7 *** empty log message *** 2002-02-16 08:58:20 +00:00
Jim Meyering
e2ae699ef5 Use head -n 150', not head -150'. 2002-02-16 08:55:56 +00:00
Jim Meyering
b2b2d44f20 *** empty log message *** 2002-02-16 08:55:02 +00:00
Jim Meyering
76272609c2 Use head -n 7', not head -7'. 2002-02-16 08:54:52 +00:00
Jim Meyering
ebce0d1dec . 2002-02-16 08:26:04 +00:00
Jim Meyering
21d2ed30b3 *** empty log message *** 2002-02-16 08:23:43 +00:00
Jim Meyering
7592628e48 (jm_PREREQ_POSIXVER): New macro.
(jm_PREREQ): Use it.
2002-02-16 08:23:10 +00:00
Jim Meyering
9fff44980c Document _POSIX2_VERSION. 2002-02-16 08:22:32 +00:00
Jim Meyering
5de5f30d9b *** empty log message *** 2002-02-16 08:21:44 +00:00
Jim Meyering
aa21da0560 fix typo 2002-02-16 08:20:34 +00:00
Jim Meyering
c1e20b738a Add support for _POSIX2_VERSION, which lets you pick which POSIX
version you want the utilities to conform to.  Remove warnings about
failure to conform to a future POSIX version.

* NEWS, doc/coreutils.texi: Document _POSIX2_VERSION.
* doc/coreutils.texi (Standards Conformance): New section.
2002-02-16 08:16:26 +00:00
Jim Meyering
981a7966e7 *** empty log message *** 2002-02-16 08:14:53 +00:00
Jim Meyering
cc98f8a745 (libfetish_a_SOURCES): Add posixver.c and posixver.h. 2002-02-16 08:14:09 +00:00
Jim Meyering
815c5a7a31 new file, from Paul Eggert 2002-02-16 08:13:08 +00:00
Jim Meyering
5c7becf8ca *** empty log message *** 2002-02-16 08:12:01 +00:00
Jim Meyering
b7bdf635da Include posixver.h.
(usage): Document only the intersection of the old and new behaviors,
to encourage portability.
(shortopts): Remove; no longer needed.
(main): Parse options using POSIX 1003.1-2001 rules if
conforming to that standard.  Do not warn of obsolete options.
2002-02-16 08:11:50 +00:00
Jim Meyering
1e6f7000ac Include posixver.h.
(usage): Document only the intersection of the old and new behaviors,
to encourage portability.
(main, parse_obsolescent_option): Parse options using POSIX 1003.1-2001 rules if
conforming to that standard.  Do not warn of obsolete options.
2002-02-16 08:10:10 +00:00
Jim Meyering
e1ce35d51f Include posixver.h.
(usage): Document only the intersection of the old and new behaviors,
to encourage portability.
(shortopts): Remove; no longer needed.
(main): Parse options using POSIX 1003.1-2001 rules if
conforming to that standard.  Do not warn of obsolete options.
2002-02-16 08:04:12 +00:00
Jim Meyering
12549a6db8 Include posixver.h.
(usage): Document only the intersection of the old and new behaviors,
to encourage portability.
(shortopts): Remove; no longer needed.
(main): Parse options using POSIX 1003.1-2001 rules if
conforming to that standard.  Do not warn of obsolete options.
2002-02-16 08:00:46 +00:00
Jim Meyering
3741aa834b (_POSIX2_VERSION, POSIX2_VERSION): Remove definitions.
(OPTARG_POSIX, OBSOLETE_OPTION_WARNINGS): Likewise.
2002-02-16 07:47:48 +00:00
Jim Meyering
e98b44e829 Include posixver.h.
(usage): Document only the intersection of the old and new behaviors,
to encourage portability.
(short_options): Remove; no longer needed.
(COMMON_SHORT_OPTIONS): New macro.
(main): Parse options using POSIX 1003.1-2001 rules if
conforming to that standard.  Do not warn of obsolete options.
2002-02-16 07:44:20 +00:00
Jim Meyering
9cb0d2f448 Include posixver.h.
(usage): Document only the intersection of the old and new behaviors,
to encourage portability.
(short_options): Remove; no longer needed.
(COMMON_SHORT_OPTIONS): New macro.
(SEP_STRING_OPTION): Remove; no longer needed.
All uses changed to back to the corresponding short options.
(main): Parse options using POSIX 1003.1-2001 rules if
conforming to that standard.  Do not warn of obsolete options.
2002-02-16 07:42:52 +00:00
Jim Meyering
8232744d27 Include posixver.h.
(usage): Document only the intersection of the old and new behaviors,
to encourage portability.
(main): Revert to previous behavior, except report
an error and exit if the obsolete syntax is used and if conforming
to the new standard.
2002-02-16 07:39:17 +00:00
Jim Meyering
a5e2a85f07 Include posixver.h.
(usage): Document only the intersection of the old and new behaviors,
to encourage portability.
(short_options): Remove; no longer needed.
(COMMON_SHORT_OPTIONS): New macro.
(STRINGS_OPTION, WIDTH_OPTION): Remove; no longer needed.
All uses changed to back to the corresponding short options.
(main): Parse options using POSIX 1003.1-2001 rules if
conforming to that standard.  Do not warn of obsolete options.
2002-02-16 07:37:15 +00:00
Jim Meyering
1183723f25 Include posixver.h.
(usage): Document only the intersection of the old and new behaviors,
to encourage portability.
(main): Revert to previous behavior, except report
an error and exit if the obsolete syntax is used and if conforming
to the new standard.
2002-02-16 07:31:27 +00:00
Jim Meyering
014c8f4a02 Include posixver.h.
(usage): Document only the intersection of the old and new behaviors,
to encourage portability.
(shortopts): Remove; no longer needed.
(main): Revert to previous behavior, except report
an error and exit if the obsolete syntax is used and if conforming
to the new standard.
2002-02-16 07:29:18 +00:00
Jim Meyering
b042392540 . 2002-02-16 07:22:32 +00:00
Jim Meyering
7823d1aaed *** empty log message *** 2002-02-16 07:22:17 +00:00
Jim Meyering
f676dbef22 New test for change of 2002-02-05. 2002-02-16 07:22:09 +00:00
Jim Meyering
0798f9740f (TESTS): Add split-a. 2002-02-16 07:21:59 +00:00
Jim Meyering
80cb677ce9 Change 'split' to conform to POSIX. It now accepts an -a or
--suffix-length option, and refuses to generate more files
than there are suffixes.

Document this.
2002-02-15 15:22:32 +00:00
Jim Meyering
18a3d6a8aa from texinfo-4.0g 2002-02-15 09:10:54 +00:00
Jim Meyering
9e2f2e9f31 . 2002-02-13 13:59:39 +00:00
Jim Meyering
98ca17881b *** empty log message *** 2002-02-12 15:46:40 +00:00
Jim Meyering
d4e24746dc (DEFAULT_SUFFIX_LENGTH): Define constant.
(suffix_length): Use it here.
(usage): Use it here.
2002-02-12 15:46:34 +00:00
Jim Meyering
65cbf7d1fd Include "dirname.h".
(outbase): Now a global var.
(outfile_end): Remove.
(suffix_length): New var.
(shortopts, longopts, main): Add -a or --suffix-length.
(next_file_name): Implement -a.  Do not extend the suffix length.
Check for file names that are too long.
(main): Move outfile initialization to next_file_name.

(shortopts): Remove -v (a typo).
2002-02-12 15:44:16 +00:00
Jim Meyering
edcef60550 *** empty log message *** 2002-02-12 07:40:54 +00:00
Jim Meyering
3e7513f731 *** empty log message *** 2002-02-12 07:40:39 +00:00
Jim Meyering
2efda64d38 (main): Output warnings only if OBSOLETE_OPTION_WARNINGS. 2002-02-12 07:40:24 +00:00
Jim Meyering
e34b2d9108 . 2002-02-11 23:27:05 +00:00
Jim Meyering
bc4fb9c6f0 *** empty log message *** 2002-02-11 23:26:20 +00:00
Jim Meyering
a4376b2603 Add more support for POSIX 1003.1-2001, which requires removal
for support of obsolete "-DIGITS" option syntax in nice, and
which prohibits options with optional arguments like date's
-I option.

Document this.
2002-02-11 23:25:34 +00:00
Jim Meyering
28bcd77302 *** empty log message *** 2002-02-11 23:23:48 +00:00
Jim Meyering
6793260cdd (main): Conform to POSIX 1003.1-2001 if
POSIX2_VERSION says to, otherwise warn of obsolete usage if
OBSOLETE_OPTION_WARNINGS is nonzero and if not POSIXLY_CORRECT.
2002-02-11 23:23:42 +00:00
Jim Meyering
d614857d03 Add more support for POSIX 1003.1-2001, which requires removal
for support of obsolete "-DIGITS" option syntax in nice, and
which prohibits options with optional arguments like date's
-I option.

(ISO_8601_OPTION): New enum value.
(long_options): Use it.
(short_options): New constant.

(usage): Document the change.

(main): Conform to POSIX 1003.1-2001 if
POSIX2_VERSION says to, otherwise warn of obsolete usage if
OBSOLETE_OPTION_WARNINGS is nonzero and if not POSIXLY_CORRECT.
2002-02-11 22:58:59 +00:00
Jim Meyering
8abf13fa94 *** empty log message *** 2002-02-11 21:45:02 +00:00
Jim Meyering
154e260c9d (usage): Describe %F, %g, %G, %P, and %R. 2002-02-11 21:44:35 +00:00
Jim Meyering
1b7ac91429 Add more support for POSIX 1003.1-2001, which requires removal for
support of obsolete "-N" option syntax in expand, head, fold,
split, tail, unexpand, uniq, and which prohibits options with
optional arguments in od and pr.
2002-02-11 15:11:05 +00:00
Jim Meyering
bbc05d986e . 2002-02-11 15:04:51 +00:00
Jim Meyering
21b915db0f *** empty log message *** 2002-02-11 14:35:02 +00:00
Jim Meyering
c2fbf52745 Use tail -n +2', rather than tail +2'. 2002-02-11 14:34:49 +00:00
Jim Meyering
5c754a018b *** empty log message *** 2002-02-11 14:32:49 +00:00
Jim Meyering
821811d87f From Bruno Haible
(print_esc): Call print_unicode_char with exit_on_error = false.
2002-02-11 14:32:22 +00:00
Jim Meyering
57eace9a0f *** empty log message *** 2002-02-11 14:29:31 +00:00
Jim Meyering
afd24a90a3 2002-02-02 Paul Eggert <eggert@twinsun.com>
Bruno Haible  <bruno@clisp.org>

	* unicodeio.c (unicode_to_mb): New function, extracted from
	print_unicode_char. Call failure callback instead of error.
	(fwrite_success_callback): New function.
	(exit_failure_callback): New function.
	(fallback_failure_callback): New function.
	(print_unicode_char): Call unicode_to_mb.
2002-02-11 14:28:35 +00:00
Jim Meyering
395fbc0389 2002-02-02 Paul Eggert <eggert@twinsun.com>
Bruno Haible  <bruno@clisp.org>

	* unicodeio.c (unicode_to_mb): New function, extracted from
	print_unicode_char. Call failure callback instead of error.
	(fwrite_success_callback): New function.
	(exit_failure_callback): New function.
	(fallback_failure_callback): New function.
	(print_unicode_char): Call unicode_to_mb.
2002-02-11 14:28:09 +00:00
Jim Meyering
19d1db4624 . 2002-02-11 14:13:30 +00:00
Jim Meyering
f54a032ad1 *** empty log message *** 2002-02-11 11:00:55 +00:00
Jim Meyering
213d9a655f (TESTS): Add head-pos. 2002-02-11 11:00:46 +00:00
Jim Meyering
71447df741 *** empty log message *** 2002-02-11 11:00:10 +00:00
Jim Meyering
e44fbb95ea (head_lines): If we have read too much data, try
to seek back to the position we would have gotten to had we
been reading one byte at a time.  POSIX currently doesn't
require this, but it's easy to do and some software relies on it.
2002-02-11 11:00:00 +00:00
Jim Meyering
5ec71c5990 New file/test for the change of 2002-02-08. 2002-02-11 10:55:51 +00:00
Jim Meyering
f1587760e9 *** empty log message *** 2002-02-11 08:37:00 +00:00
Jim Meyering
78c4877776 *** empty log message *** 2002-02-11 08:35:10 +00:00
Jim Meyering
55a1f9d86b (unquote): Make comment a little clearer. 2002-02-11 08:34:47 +00:00
Jim Meyering
a759b38acf *** empty log message *** 2002-02-10 21:04:12 +00:00
Jim Meyering
04a5f2605f *** empty log message *** 2002-02-02 09:54:50 +00:00
Jim Meyering
7278cc2e51 (main): Prepend `warning: ' to the diagnostic, so it's
consistent with all of the other `... is obsolete...' diagnostics.
2002-02-02 09:54:38 +00:00
Jim Meyering
4166236b53 Add more support for POSIX 1003.1-2001, which requires removal for
support of obsolete "-N" option syntax in expand, head, fold,
split, tail, unexpand, uniq, and which prohibits options with
optional arguments in od and pr.

(usage): Document this.
(shortopts): New constant.
(main): Check for obsolete options.
2002-02-02 09:53:26 +00:00
Jim Meyering
1f6bad2b30 Add more support for POSIX 1003.1-2001, which requires removal for
support of obsolete "-N" option syntax in expand, head, fold,
split, tail, unexpand, uniq, and which prohibits options with
optional arguments in od and pr.

(usage): Document this.
(shortopts): New constant.
(main): Check for obsolete options.
2002-02-02 09:47:57 +00:00
Jim Meyering
3c25a62eb8 Add more support for POSIX 1003.1-2001, which requires removal for
support of obsolete "-N" option syntax in expand, head, fold,
split, tail, unexpand, uniq, and which prohibits options with
optional arguments in od and pr.

(usage): Document this.
(main): Check for obsolete options.
(shortopts): New constant.
(main): Use -1, not EOF, for getopt_long.
2002-02-02 09:40:50 +00:00
Jim Meyering
5e2bb11618 Add more support for POSIX 1003.1-2001, which requires removal for
support of obsolete "-N" option syntax in expand, head, fold,
split, tail, unexpand, uniq, and which prohibits options with
optional arguments in od and pr.

(main): Check for obsolete options.
(short_options): New constant.
2002-02-02 09:37:12 +00:00
Jim Meyering
44dc43bb3d *** empty log message *** 2002-02-02 09:35:52 +00:00
Jim Meyering
bf76cb368c Add more support for POSIX 1003.1-2001, which requires removal for
support of obsolete "-N" option syntax in expand, head, fold,
split, tail, unexpand, uniq, and which prohibits options with
optional arguments in od and pr.

(usage): Document it.
(main): Check for obsolete options.
(short_options): New constant.
(SEP_STRING_OPTION): New enum value.
(long_options): Use it.
2002-02-02 09:35:43 +00:00
Jim Meyering
c578654cad Add more support for POSIX 1003.1-2001, which requires removal for
support of obsolete "-N" option syntax in expand, head, fold,
split, tail, unexpand, uniq, and which prohibits options with
optional arguments in od and pr.

(usage): Document it.
(main): Check for obsolete options.
(short_options): New constant.
New enum for long options.
2002-02-02 09:31:09 +00:00
Jim Meyering
bf3a5672fb Add more support for POSIX 1003.1-2001, which requires removal for
support of obsolete "-N" option syntax in expand, head, fold,
split, tail, unexpand, uniq, and which prohibits options with
optional arguments in od and pr.

(usage): Document it.
(main): Check for obsolete options.
(header_mode_option): New constant.
2002-02-02 08:10:04 +00:00
Jim Meyering
f87b5cab0c Add more support for POSIX 1003.1-2001, which requires removal for
support of obsolete "-N" option syntax in expand, head, fold,
split, tail, unexpand, uniq, and which prohibits options with
optional arguments in od and pr.

(main): Check for obsolete options.
(main): Fix bug: -- -N was treated as -N --.
2002-02-02 07:58:50 +00:00
Jim Meyering
33f9d106bc Add more support for POSIX 1003.1-2001, which requires removal for
support of obsolete "-N" option syntax in expand, head, fold,
split, tail, unexpand, uniq, and which prohibits options with
optional arguments in od and pr.

(shortopts): New constant.
(main): Check for obsolete options.
2002-02-02 07:54:49 +00:00
Jim Meyering
793fbbc7f2 (OPTARG_POSIX, OBSOLETE_OPTION_WARNINGS): New macros. 2002-02-02 00:06:50 +00:00
Jim Meyering
20c2cd43a9 *** empty log message *** 2002-02-01 23:47:28 +00:00
Jim Meyering
546f26cbb3 * src/shred.c: (VERBOSE_UPDATE): Update every 5 seconds, not every 10.
(wipename): Quote file names only when necessary.
(main): Copy quoted string into malloc'd storage so it doesn't
get clobbered when using -u and --verbose.

Minor clean-up.
* src/shred.c:
Use `NULL' rather than `(time_t *) 0'.
(dopass): Use STREQ in place of strcmp.
Add parentheses around use of nested ternary operator.
2002-02-01 23:43:46 +00:00
Jim Meyering
a00579f70b (VERBOSE_UPDATE): Now counts seconds, not bytes.
(dopass): If verbose, output a line every VERBOSE_UPDATE seconds,
and suppress duplicate output lines.  Output a percentage as well
as a count of bytes.

Also, fix comment/code typo regarding how many bytes have been
written; this typo was harmless before, but is no longer harmless with
the above change in effect.
2002-02-01 23:34:57 +00:00
Jim Meyering
61d5f094fd (rm): Add a comment. 2002-02-01 23:30:23 +00:00
Jim Meyering
3e04fcdbb5 Add more support for POSIX 1003.1-2001, which requires removal for
support of obsolete "-N" option syntax in expand, head, fold,
split, tail, unexpand, uniq, and which prohibits options with
optional arguments in od and pr.

(parse_obsolescent_option, main): Likewise.
2002-02-01 16:31:55 +00:00
Jim Meyering
31cb36e88f (start_lines): Handle the case in which bytes_read is zero. 2002-02-01 09:12:50 +00:00
Jim Meyering
06506ceb4f *** empty log message *** 2002-01-28 13:51:22 +00:00
Jim Meyering
2c1c1dc64e (ac-check): Remove, now that we no longer have
to duplicate that information.
2002-01-28 13:50:50 +00:00
Jim Meyering
7db90444af *** empty log message *** 2002-01-28 10:10:33 +00:00
Jim Meyering
92747bfbc9 *** empty log message *** 2002-01-28 10:09:08 +00:00
Jim Meyering
467a80a588 *** empty log message *** 2002-01-28 10:08:38 +00:00
Jim Meyering
2d34812b74 *** empty log message *** 2002-01-28 06:30:41 +00:00
Jim Meyering
874d77f17f *** empty log message *** 2002-01-27 07:53:45 +00:00
Jim Meyering
662fff7861 tail -n +2 would perform an extra read after encountering EOF
(start_lines): Detect EOF, inform caller.
(tail_lines): Upon EOF in start_lines, return immediately.
2002-01-27 07:53:37 +00:00
Jim Meyering
2852c1c0a1 split a long line 2002-01-26 22:04:00 +00:00
Jim Meyering
bae9a65da4 . 2002-01-26 19:03:43 +00:00
Jim Meyering
a08c6469be (jm_MACROS): Require autoconf-2.52g. 2002-01-26 19:03:23 +00:00
Jim Meyering
c99c6c304a . 2002-01-26 09:56:05 +00:00
Jim Meyering
6cf1df86a5 *** empty log message *** 2002-01-26 09:55:15 +00:00
Jim Meyering
b2d18ac8f5 (getdate$U.o): Depend on unlocked-io.h. 2002-01-26 09:55:02 +00:00
Jim Meyering
1c3fa0f99e *** empty log message *** 2002-01-24 09:14:52 +00:00
Jim Meyering
5d9ed2d7bc (START-INFO-DIR-ENTRY): Remove a few entries
and clean up a few others based on suggestions from Bob Proulx.
2002-01-24 09:14:45 +00:00
Jim Meyering
97d18a1d85 *** empty log message *** 2002-01-22 18:16:06 +00:00
Jim Meyering
7e37a5e5e1 (skip): Remove redundant check for overflow.
fseeko's seek argument is already known to be in range,
since it is less than the file size.
2002-01-22 18:15:57 +00:00
Jim Meyering
d283021a71 (save_stdin): Report proper errno value after
fwrite failures.  Do not bother to rewind the temp file, as
it'll be read backwards anyway.
2002-01-22 17:50:41 +00:00
Jim Meyering
0e4a77847a . 2002-01-22 12:00:00 +00:00
Jim Meyering
bc3afd9b46 *** empty log message *** 2002-01-22 11:59:20 +00:00
Jim Meyering
fb92d24736 (Makefile): Don't depend on $(BUILT_SOURCES).
Otherwise, some versions of automake would omit the rule that makes
Makefile from Makefile.in.
2002-01-22 11:59:11 +00:00
Jim Meyering
c00f96b198 . 2002-01-22 11:58:36 +00:00
Jim Meyering
7a50bc0dff header-check: fix it yet again 2002-01-22 11:22:03 +00:00
Jim Meyering
31a6a88517 (header-check): Add `&& :'. 2002-01-22 11:13:50 +00:00
Jim Meyering
78ebc8e8d5 *** empty log message *** 2002-01-22 11:12:00 +00:00
Jim Meyering
e053850b61 *** empty log message *** 2002-01-22 11:11:22 +00:00
Jim Meyering
aa247b62b3 . 2002-01-22 11:03:33 +00:00
Jim Meyering
c31e5c3ca5 update copyright year 2002-01-22 11:02:31 +00:00
Jim Meyering
3da062869b (swallow_file_in_memory): Work even if `open' returns 0.
Check for `close' error.
2002-01-22 10:51:53 +00:00
Jim Meyering
f8053809f8 remove the parens I just added to Paul's patch 2002-01-22 10:47:14 +00:00
Jim Meyering
ef95b3233e (EOVERFLOW, fseeko): New macros. 2002-01-22 10:46:05 +00:00
Jim Meyering
437d89a151 (skip): Use fseeko rather than lseek.
(Also, check for overflow when converting uintmax_t to off_t.)
2002-01-22 10:44:13 +00:00
Jim Meyering
2b1c83e4e2 *** empty log message *** 2002-01-22 10:34:49 +00:00
Jim Meyering
e4407b754b (jm_MACROS): Require AC_FUNC_FSEEKO. 2002-01-22 10:34:43 +00:00
Jim Meyering
f2c93707b4 . 2002-01-22 09:53:13 +00:00
Jim Meyering
5713380d80 . 2002-01-22 08:14:46 +00:00
Jim Meyering
ff9ea9b139 *** empty log message *** 2002-01-22 08:13:00 +00:00
Jim Meyering
026c2017b1 Include xmemcoll.h, not memcoll.h.
Use xmemcoll instead of memcoll.

(die): Do not invoke cleanup; atexit does this now.
(main): Use atexit to invoke cleanup on exit.
Set xmemcoll_exit_failure to SORT_FAILURE.
2002-01-22 08:12:51 +00:00
Jim Meyering
64eb355c76 Include xmemcoll.h, not memcoll.h.
Use xmemcoll instead of memcoll.
2002-01-22 08:11:04 +00:00
Jim Meyering
023877ac27 *** empty log message *** 2002-01-22 08:04:03 +00:00
Jim Meyering
cc6668c3e7 (libfetish_a_SOURCES): Add them. 2002-01-22 08:03:54 +00:00
Jim Meyering
ecf261bb6e *** empty log message *** 2002-01-22 08:02:55 +00:00
Jim Meyering
3de8f89388 (quotearg_n_style_mem): New function. 2002-01-22 08:02:43 +00:00
Jim Meyering
1495a99781 (quotearg_buffer_restyled):
Fix bug with quoting buffers containing NUL when backslashing escapes.
This bug was exposed by the other changes in this patch.
(quotearg_n_options): New arg ARGSIZE.
All callers changed.
(quoting_options_from_style): New function.
(quotearg_n_style): Use it.
(quotearg_n_style_mem): New function.
2002-01-22 08:02:22 +00:00
Jim Meyering
80e8506f75 Include errno.h, and declare errno if not defined.
(memcoll): Set errno to zero if there is no error.
2002-01-22 07:56:44 +00:00
Jim Meyering
bb1f5171c4 *** empty log message *** 2002-01-21 23:33:51 +00:00
Jim Meyering
5883167774 *** empty log message *** 2002-01-21 22:02:35 +00:00
Jim Meyering
2d1ec93821 (CMP_WITH_IGNORE): Don't assume that the difference
between two size_t values can be stored in an int; this doesn't
work, for example, on 64-bit Solaris.
2002-01-21 22:02:28 +00:00
Jim Meyering
012945ff54 (keycmp): Don't assume that the difference between two size_t values can be
stored in an int; this doesn't work, for example, on 64-bit Solaris.

Also, fix the type of two locals to be size_t instead of int.
2002-01-21 22:01:58 +00:00
Jim Meyering
0199f37303 (compare_files): Don't assume that the difference
between two size_t values can be stored in an int; this doesn't
work, for example, on 64-bit Solaris.
2002-01-21 22:00:32 +00:00
Jim Meyering
8ecf5f402d *** empty log message *** 2002-01-21 20:04:08 +00:00
Jim Meyering
81e204a3e7 (header-check): New rule.
(local-check): Add header-check.
2002-01-21 20:03:59 +00:00
Jim Meyering
ccfd76fbc8 (strftime-check): New rule.
(local-check): Convert this target to a list.  Update uses.
Mark them as .PHONY.
2002-01-21 19:57:53 +00:00
Jim Meyering
0957ccf367 *** empty log message *** 2002-01-21 19:53:45 +00:00
Jim Meyering
3ca688d69a Don't include "xalloc.h", as system.h already does that via sys2.h. 2002-01-21 19:53:23 +00:00
Jim Meyering
885956355c *** empty log message *** 2002-01-21 19:52:06 +00:00
Jim Meyering
e6345ecb09 Don't include "xalloc.h", as system.h already does that via sys2.h. 2002-01-21 19:51:31 +00:00
Jim Meyering
758e7f409f Don't include "xalloc.h", as system.h already does that via sys2.h. 2002-01-21 19:50:50 +00:00
Jim Meyering
945532de66 Don't include "xalloc.h", as system.h already does that via sys2.h. 2002-01-21 19:50:28 +00:00
Jim Meyering
54bf872aab *** empty log message *** 2002-01-21 19:49:58 +00:00
Jim Meyering
ee6911b745 Don't include "xalloc.h", as system.h already does that via sys2.h. 2002-01-21 19:49:51 +00:00
Jim Meyering
c5c6647f22 Don't include "xalloc.h", as system.h already does that via sys2.h. 2002-01-21 19:49:24 +00:00
Jim Meyering
72d40f6724 Avoid undefined behavior when strcoll fails,
by resorting the directory with strcmp instead.

Include <setjmp.h>.
Include "quote.h".
(compare_atime, rev_cmp_atime, compare_ctime, rev_cmp_ctime,
compare_mtime, rev_cmp_mtime, compare_size, rev_comp_size,
compare_name, rev_cmp_name, compare_extension, rev_cmp_extension,
compare_version, rev_compare_version): Move before use, so that
we can remove the forward declaration.  Reimplement in terms of
the new functions described below, using xstrcoll instead of strcoll.
(failed_strcoll): New var.
(xstrcoll): New function.
(V): New type.
(cmp_ctime, compstr_ctime, rev_str_ctime): New functions.
(cmp_mtime, compstr_mtime, rev_str_mtime): Likewise.
(cmp_atime, compstr_atime, rev_str_atime): Likewise.
(cmp_size, compstr_size, rev_str_size): Likewise.
(cmp_version): Likewise.
(cmp_name, compstr_name, rev_str_name): Likewise.
(cmp_extension, compstr_extension, rev_str_extension): Likewise.
(sort_files): Use prototype for internal function var.
If the strcoll-based comparison fails, fall back on a strcmp-based one.
2002-01-20 20:44:49 +00:00
Jim Meyering
99f7bd761f *** empty log message *** 2002-01-20 08:22:12 +00:00
Jim Meyering
325addae1d Ensure that the two version numbers in configure.ac remain in sync.
(local-check): Depend on ac-check.
(ac_p_pkg, AC_INIT_PKG): Define.
(ac_p_ver, AC_INIT_VER): Define.
(ac-check): New rule.
2002-01-19 00:12:30 +00:00
Jim Meyering
4e69204179 . 2002-01-19 00:07:20 +00:00
Jim Meyering
c7b097f904 *** empty log message *** 2002-01-19 00:03:42 +00:00
Jim Meyering
8723a1eaae *** empty log message *** 2002-01-19 00:02:48 +00:00
Jim Meyering
fe680fd860 *** empty log message *** 2002-01-18 23:59:25 +00:00
Jim Meyering
2bd66cf7fc . 2002-01-18 23:56:59 +00:00
Jim Meyering
8e7e29d1de . 2002-01-18 23:56:32 +00:00
Jim Meyering
96efa91b23 . 2002-01-18 23:50:03 +00:00
Jim Meyering
ea2703dd8c *** empty log message *** 2002-01-18 23:47:33 +00:00
Jim Meyering
009e3b99cf *** empty log message *** 2002-01-18 23:47:13 +00:00
Jim Meyering
10b3363e2e (jm_MACROS): Use AC_FUNC_STRNLEN.
Remove useless quotes: DF_PROG="df".
2002-01-18 23:43:38 +00:00
Jim Meyering
c8aa23a9cc (main): Issue a warning for obsolete usage, unless POSIXLY_CORRECT. 2002-01-18 23:40:06 +00:00
Jim Meyering
8a755a3d27 (parse_obsolescent_option): Issue a warning for obsolete usage,
unless POSIXLY_CORRECT.
2002-01-18 23:39:37 +00:00
Jim Meyering
36a16de45c (main): Issue a warning for obsolete usage, unless POSIXLY_CORRECT. 2002-01-18 23:39:06 +00:00
Jim Meyering
6e2ffd49b1 tweak copyright line 2002-01-18 23:36:00 +00:00
Jim Meyering
2abefb14eb *** empty log message *** 2002-01-18 19:51:04 +00:00
Jim Meyering
e2c1c2e529 Add these tests:
tr '[==]' x
tr '[::]' x
they should fail, not get a failed assertion.
2002-01-18 19:50:28 +00:00
Jim Meyering
067c2ea921 Fix tr so it no longer gets a failed assertion for [::] or [==].
(xmemdup): Rename from `substr' and rewrite to
take only pointer/length parameters.
(build_spec_list): Update sole caller.
Properly diagnose the invalid specs [::] and [==].
Pawel Prokop reported that `tr [::] _' elicits a failed assertion.
2002-01-18 19:18:07 +00:00
Jim Meyering
e91fe759ec *** empty log message *** 2002-01-18 19:16:03 +00:00
Jim Meyering
37d0d50168 *** empty log message *** 2002-01-18 19:13:27 +00:00
Jim Meyering
6f46b8dd99 . 2002-01-18 15:40:54 +00:00
Jim Meyering
1f2f9be7f8 (main): Issue a warning for obsolete usage, unless POSIXLY_CORRECT. 2002-01-18 15:36:23 +00:00
Jim Meyering
96400fcda4 . 2002-01-16 23:33:48 +00:00
Jim Meyering
4ff8979277 *** empty log message *** 2002-01-16 23:32:01 +00:00
Jim Meyering
3e9354e7f7 Add support for POSIX 1003.1-2001, which requires removal for
support of the obsolete `touch [-acm] MMDDhhmm[YY] FILE...' syntax.

Document this.
2002-01-16 23:31:51 +00:00
Jim Meyering
42e25937cf *** empty log message *** 2002-01-16 23:31:33 +00:00
Jim Meyering
1701230f32 Add support for POSIX 1003.1-2001, which requires removal for
support of the obsolete `touch [-acm] MMDDhhmm[YY] FILE...' syntax.
(usage, main): Implement this.
2002-01-16 23:31:14 +00:00
Jim Meyering
68bd369ece *** empty log message *** 2002-01-16 23:14:24 +00:00
Jim Meyering
358a274042 Add support for POSIX 1003.1-2001, which requires removal for
support of obsolete "+" option syntax in sort, tail, and uniq.
* doc/coreutils.texi: Document this.  (Also, document a similar
change to "touch", for fileutils).
2002-01-16 23:13:49 +00:00
Jim Meyering
2f8c0a3131 (ISDIGIT, S_ISVTX, S_IXUGO): Comment fix. 2002-01-16 23:04:06 +00:00
Jim Meyering
9b0e6e4b56 *** empty log message *** 2002-01-16 23:02:37 +00:00
Jim Meyering
2302cc643b (_POSIX2_VERSION, POSIX2_VERSION): New macros. 2002-01-16 23:02:28 +00:00
Jim Meyering
f29617e3fe add 2002 to Copyright line 2002-01-16 23:01:04 +00:00
Jim Meyering
485d699baf tweak comment 2002-01-16 23:00:10 +00:00
Jim Meyering
a5bda3260c add 2002 to Copyright line 2002-01-16 22:59:27 +00:00
Jim Meyering
b5b50f46ea Add support for POSIX 1003.1-2001, which requires removal for
support of obsolete "+" option syntax in sort, tail, and uniq.

(usage, main): Implement this.
2002-01-16 22:59:14 +00:00
Jim Meyering
0037e217df add 2002 to Copyright line 2002-01-16 22:56:54 +00:00
Jim Meyering
2bea3939c6 Add support for POSIX 1003.1-2001, which requires removal for
support of obsolete "+" option syntax in sort, tail, and uniq.

(usage, main): Implement this.
2002-01-16 22:56:33 +00:00
Jim Meyering
65562d99c3 Add support for POSIX 1003.1-2001, which requires removal for
support of obsolete "+" option syntax in sort, tail, and uniq.

(usage, parse_obsolescent_option): Implement the above.
2002-01-16 22:53:00 +00:00
Jim Meyering
f199c753eb *** empty log message *** 2002-01-16 22:46:26 +00:00
Jim Meyering
af0225072d (ISDIGIT): Comment fix.
add 2002 to Copyright line
2002-01-16 22:44:43 +00:00
Jim Meyering
d85702e334 add 2002 to Copyright line 2002-01-16 22:43:41 +00:00
Jim Meyering
b4012f613a add 2002 to Copyright line 2002-01-16 22:38:26 +00:00
Jim Meyering
bc3a5c4e5f add 2002 to Copyright line 2002-01-16 22:38:04 +00:00
Jim Meyering
fe734b9b2d (ISDIGIT): Comment fix. 2002-01-16 22:37:35 +00:00
Jim Meyering
d298aab8a2 (ISDIGIT): Comment fix. 2002-01-16 22:36:52 +00:00
Jim Meyering
87ca587534 *** empty log message *** 2002-01-16 22:34:07 +00:00
Jim Meyering
aafbc6e7fc (ISDIGIT): Comment fix.
Add three semicolons, each just before a closing brace.
Bison (as of version 1.31) no longer papers over that mistake.
2002-01-16 22:33:58 +00:00
Jim Meyering
8efbf4f961 . 2002-01-16 10:01:52 +00:00
Jim Meyering
9e19c0c5cd *** empty log message *** 2002-01-14 18:52:15 +00:00
Jim Meyering
9b2c2ebb79 . 2002-01-14 09:58:35 +00:00
Jim Meyering
9f9d6f6c31 Comment fixes to bring us up to date with respect to POSIX 1003.1-2001.
In particular, POSIX.2 is now obsolete.
2002-01-14 09:58:19 +00:00
Jim Meyering
e73a9ed54d Comment fixes to bring us up to date with respect to POSIX 1003.1-2001.
In particular, POSIX.2 is now obsolete.
2002-01-14 09:56:49 +00:00
Jim Meyering
84f8fd1af6 Comment fixes to bring us up to date with respect to POSIX 1003.1-2001.
In particular, POSIX.2 is now obsolete.
2002-01-14 09:56:28 +00:00
Jim Meyering
15e112e97b *** empty log message *** 2002-01-14 08:53:49 +00:00
Jim Meyering
37d93402d2 (TESTS): Add sort.
(TESTS_ENVIRONMENT): Add PROG=$$tst.  This is a gross kludge
that depends on the name of an automake-generated local variable.
2002-01-14 08:53:25 +00:00
Jim Meyering
b00199bd9b *** empty log message *** 2002-01-14 08:52:45 +00:00
Jim Meyering
98ad587709 (mergefps): Fix bug when eliminating empty files. 2002-01-14 08:36:48 +00:00
Jim Meyering
5d1f26b8e5 . 2002-01-13 19:54:12 +00:00
Jim Meyering
dd3d3d7226 *** empty log message *** 2002-01-13 19:44:32 +00:00
Jim Meyering
fe42846981 *** empty log message *** 2002-01-13 09:33:37 +00:00
Jim Meyering
a907e0806e Tweak to work with the programs in diffutils. 2002-01-13 09:33:32 +00:00
Jim Meyering
4705104cfa . 2002-01-12 22:33:09 +00:00
Jim Meyering
706fae60a3 . 2002-01-12 22:32:46 +00:00
Jim Meyering
9aec59b45a *** empty log message *** 2002-01-12 22:32:09 +00:00
Jim Meyering
3fcb933b8c *** empty log message *** 2002-01-12 22:30:02 +00:00
Jim Meyering
50c1199e09 (copy_reg): Don't treat errno==ENOENT as a special case.
(same_file_ok): Detect a case that would have lead to the errno==ENOENT
condition above (and a misleading diagnostic), and return 0 so we give
a diagnostic about the source and destination being the same file.
(copy_internal): Use an explicit test for errno==EXDEV to detect
that rename has failed because source and destination are on
different devices.  This reverts part of a change from 1997-12-13,
and is to avoid letting a race condition evoke a bogus diagnostic.
Note that while POSIX has encouraged the errno==EXDEV test for
years, it was inadequate back in 1997.	I'm hoping that many
more systems have conforming support these days.
Reported by Michael Gaughen <mgaughen@polyserve.com>
2002-01-12 22:29:55 +00:00
Jim Meyering
5ce160d64c *** empty log message *** 2002-01-12 22:19:06 +00:00
Jim Meyering
30c0861e98 *** empty log message *** 2002-01-12 09:14:08 +00:00
Jim Meyering
6d5707dfa6 (shred invocation): List some journaled filesystems. 2002-01-12 09:13:31 +00:00
Jim Meyering
fca9e007c6 (usage): Also mention Ext3. 2002-01-12 09:12:13 +00:00
Jim Meyering
75ecfa15f1 s/the the/the/ in a comment 2002-01-12 08:48:08 +00:00
Jim Meyering
e3cc4f6bc8 *** empty log message *** 2002-01-09 18:11:35 +00:00
Jim Meyering
d851ca7056 *** empty log message *** 2002-01-08 21:51:25 +00:00
Jim Meyering
4471d9eb05 (long_time_format): Extended translator comments. 2002-01-08 21:51:14 +00:00
Jim Meyering
39b517459f update from master 2002-01-06 09:34:09 +00:00
Jim Meyering
d4eb26affa *** empty log message *** 2002-01-05 21:13:34 +00:00
Jim Meyering
fc9f72abca (version_etc_copyright): Update copyright year. 2002-01-05 21:13:29 +00:00
Jim Meyering
cec759ed61 *** empty log message *** 2002-01-05 20:38:36 +00:00
Jim Meyering
9d4fa35a77 . 2002-01-05 20:11:34 +00:00
Jim Meyering
66be6a1689 *** empty log message *** 2002-01-05 20:11:05 +00:00
Jim Meyering
aaa4c7445b add another test 2002-01-05 20:10:44 +00:00
Jim Meyering
4d18918a3a *** empty log message *** 2002-01-05 19:18:02 +00:00
Jim Meyering
26802588fa (install-data-yes, uninstall-data-yes):
Install the LC_TIME locale category as an alias for LC_MESSAGES.
This fixes a bug introduced in the 2001-09-22 upgrade to gettext 0.10.40.
2002-01-02 19:59:44 +00:00
Jim Meyering
d8a4f42f8c . 2001-12-31 07:56:43 +00:00
Jim Meyering
638f87f1bd *** empty log message *** 2001-12-29 23:01:15 +00:00
Jim Meyering
521f68c0a5 *** empty log message *** 2001-12-29 22:59:09 +00:00
Jim Meyering
c672e2892b (main): With -r, always dereference symlinks. 2001-12-29 22:58:40 +00:00
Jim Meyering
27d553aad2 *** empty log message *** 2001-12-29 22:55:43 +00:00
Jim Meyering
d04627589e . 2001-12-29 22:55:17 +00:00
Jim Meyering
9782cef803 *** empty log message *** 2001-12-29 22:53:38 +00:00
Jim Meyering
88429654db (TESTS): Add r-vs-symlink. 2001-12-29 22:53:09 +00:00
Jim Meyering
b9ca7077bb . 2001-12-28 08:08:15 +00:00
Jim Meyering
f5bf6fe980 Use notation compatible with SI and with IEC 60027-2.
For example, --block-size=1MB now means --block-size=1000000,
whereas --block-size=1MiB now means --block-size=1048576.
A trailing `B' now means decimal, not binary; this is a silent change.
-H or --si now outputs the trailing 'B', for consistency with this.
Programs now output trailing 'K' (not 'k') to mean 1024.
New df, du short option -B is short for --block-size.
You can omit an integer `1' before a block size suffix,
e.g. `df -BG' is equivalent to `df -B 1G' and to `df --block-size=1G'.

Document the above.  Remove documentation
for obsolescent constructs MD, --kilobytes, -m or --megabytes.
2001-12-21 11:54:04 +00:00
Jim Meyering
9db9190cd4 *** empty log message *** 2001-12-21 11:40:55 +00:00
Jim Meyering
df5fb23be1 *** empty log message *** 2001-12-21 11:39:22 +00:00
Jim Meyering
9b9c6a8565 [!HAVE_CONFIG_H]: Remove block of code that duplicated
code in lib/ for compiling this program without config.h.
2001-12-21 11:39:02 +00:00
Jim Meyering
51a3adcefa (usage): Deprecate --kilobytes. Document size suffixes. 2001-12-21 11:36:35 +00:00
Jim Meyering
d1772031ee (BLOCK_SIZE_OPTION): Remove; no longer needed now that we have 'B'.
(long_options, usage, main): Add -B.
(usage): Deprecate --kilobytes, -m, --megabytes.
Document size suffixes.

(print_header, show_dev): Enlarge column widths for trailing "B".
2001-12-21 11:35:54 +00:00
Jim Meyering
309253682d (BLOCK_SIZE_OPTION): Remove; no longer needed now that we have 'B'.
(long_options, usage, main): Add -B.
(usage): Deprecate --kilobytes, -m, --megabytes.
Document size suffixes.
2001-12-21 11:31:54 +00:00
Jim Meyering
b34d965da0 (usage, parse_integer): Prefer K to k for 1024. 2001-12-21 11:28:34 +00:00
Jim Meyering
b9676dd73d *** empty log message *** 2001-12-20 16:54:24 +00:00
Jim Meyering
de9ef8a7a7 *** empty log message *** 2001-12-20 16:53:56 +00:00
Jim Meyering
3c20276087 (usage, specify_sort_size): Accept 'K' (which is
now preferred, as it connotes 1024) as well as 'k'.
2001-12-20 16:53:50 +00:00
Jim Meyering
174e9df9c1 *** empty log message *** 2001-12-20 10:01:41 +00:00
Jim Meyering
8d83abaf89 (close_stdout_status): If ferror (stdout), do
not silently exit merely because the output buffer happens to
have nothing pending.
2001-12-20 10:01:25 +00:00
Jim Meyering
82a83f3743 *** empty log message *** 2001-12-19 18:10:46 +00:00
Jim Meyering
0b6b9b5195 Add FSF copyright notice. 2001-12-19 18:10:24 +00:00
Jim Meyering
ae3295706e *** empty log message *** 2001-12-19 15:07:13 +00:00
Jim Meyering
79a8c33f6d *** empty log message *** 2001-12-19 15:05:38 +00:00
Jim Meyering
44dcbba28a (suffixes): Prefer K to k for 1024.
(generate_suffix_backwards): New function.
(human_readable_inexact): Use it.
2001-12-19 15:05:33 +00:00
Jim Meyering
f0ed17134a (__xstrtol): If there is no number but there
is a valid suffix, assume 1.  "MB" now means decimal, "MiB" binary.
Accept 'K' as well as 'k'.
2001-12-19 10:41:27 +00:00
Jim Meyering
1cc94659ad (xstrtoumax): If there is no number but there
is a valid suffix, assume 1.  "MB" now means decimal, "MiB" binary.
Accept 'K' as well as 'k'.
2001-12-19 10:35:39 +00:00
Jim Meyering
4ee49675d3 *** empty log message *** 2001-12-17 19:45:12 +00:00
Jim Meyering
2fcddf2514 (usage): Remove strap `)' in --help output. 2001-12-17 19:45:03 +00:00
Jim Meyering
450dbb37c2 *** empty log message *** 2001-12-17 09:09:05 +00:00
Jim Meyering
42ee53e9ba *** empty log message *** 2001-12-17 09:08:39 +00:00
Jim Meyering
2a9c589d4d *** empty log message *** 2001-12-17 09:07:22 +00:00
Jim Meyering
4efee8b478 (url_dir_list): Don't set define it here, but... 2001-12-17 09:06:56 +00:00
Jim Meyering
6e5e7b7179 (url_dir_list): ...define it here instead.
(hosts, a_host, b_host): Remove now-unused variables.
(alpha_subdir, a_url_dir, b_url_dir): Remove now-unused variables.
2001-12-17 09:06:33 +00:00
Jim Meyering
a580a5e647 (real_dir): Remove unused variable. 2001-12-17 09:01:08 +00:00
Jim Meyering
d63b8caa5c use generated fs_name function 2001-12-16 22:59:07 +00:00
Jim Meyering
2fae9e5d26 Use new macros, HELP_OPTION_DESCRIPTION and VERSION_OPTION_DESCRIPTION
instead of hard-coding --help and --version descriptions.
Split --help output into smaller pieces.
Use fputs, not printf.
2001-12-15 20:46:30 +00:00
Jim Meyering
9be58099c4 *** empty log message *** 2001-12-15 20:46:00 +00:00
Jim Meyering
49db4dd32c *** empty log message *** 2001-12-15 16:59:00 +00:00
Jim Meyering
c6be028a84 (STREQ): Define. 2001-12-15 16:58:53 +00:00
Jim Meyering
e92b78f873 (__restrict_arr): Update from libc. 2001-12-15 16:57:15 +00:00
Jim Meyering
83c58cadbc from Marcus Brinkmann 2001-12-15 16:45:38 +00:00
Jim Meyering
c3d224580c *** empty log message *** 2001-12-15 10:38:55 +00:00
Jim Meyering
894cb43a58 *** empty log message *** 2001-12-15 10:37:11 +00:00
Jim Meyering
d063f15ca1 (ME_REMOTE): Recognize file systems of type smbfs
as `remote' if the name starts with `//'.
2001-12-15 10:36:58 +00:00
Jim Meyering
7e03c96656 *** empty log message *** 2001-12-15 09:29:14 +00:00
Jim Meyering
ae66a6b2b0 Also accept SunOS4's `Not owner' diagnostic. 2001-12-15 09:28:50 +00:00
Jim Meyering
686562b5a7 Run each --help and --version test with a few different settings
of LC_MESSAGES.
2001-12-15 09:14:21 +00:00
Jim Meyering
b094fe9daa Fail also if ./$i --version fails. 2001-12-15 09:07:18 +00:00
Jim Meyering
16a1aff95a *** empty log message *** 2001-12-14 11:21:13 +00:00
Jim Meyering
7f892add00 (jm_MACROS): Check for iswspace.
Suggestion from Bruno Haible.
2001-12-14 11:21:04 +00:00
Jim Meyering
a9f5b7cff2 *** empty log message *** 2001-12-13 11:17:49 +00:00
Jim Meyering
6b1cbebf24 *** empty log message *** 2001-12-13 11:12:35 +00:00
Jim Meyering
fc0b04b093 *** empty log message *** 2001-12-13 11:12:23 +00:00
Jim Meyering
8471372f24 (wc): Use ISSPACE and iswspace in addition to hard-coding
the ASCII space character.
2001-12-13 11:12:18 +00:00
Jim Meyering
80f17f22f2 *** empty log message *** 2001-12-11 11:51:17 +00:00
Jim Meyering
098bfeea80 (main):
Include the word `fail' in some diagnostics to make it clearer
that they indicate a failure.
s/getting attributes/failed to get attributes/
2001-12-11 11:49:36 +00:00
Jim Meyering
0ef9bacdc7 split long line 2001-12-11 11:49:14 +00:00
Jim Meyering
879adb17cc (change_file_mode, main):
Include the word `fail' in some diagnostics to make it clearer
that they indicate a failure.
s/getting attributes/failed to get attributes/
2001-12-11 11:48:54 +00:00
Jim Meyering
92c8fc20fb (change_file_owner):
Include the word `fail' in some diagnostics to make it clearer
that they indicate a failure.
s/getting attributes/failed to get attributes/
2001-12-11 11:48:21 +00:00
Jim Meyering
47a2e7569c (main):
Include the word `fail' in some diagnostics to make it clearer
that they indicate a failure.
s/getting attributes/failed to get attributes/
2001-12-11 11:47:54 +00:00
Jim Meyering
d5654c49bd (re_protect):
Include the word `fail' in some diagnostics to make it clearer
that they indicate a failure.
s/getting attributes/failed to get attributes/
2001-12-11 11:47:25 +00:00
Jim Meyering
a6a92722ff Include the word `fail' in some diagnostics to make it clearer
that they indicate a failure.
s/getting attributes/failed to get attributes/
2001-12-11 11:46:49 +00:00
Jim Meyering
f5a1b61888 *** empty log message *** 2001-12-11 11:41:15 +00:00
Jim Meyering
24d1484e1c (buggy_lseek_support): Remove function.
(skip_via_lseek) [__linux__]: New function.
(skip): Use skip_via_lseek, not buggy_lseek_support.
2001-12-11 11:40:50 +00:00
Jim Meyering
efc6e85c74 . 2001-12-10 00:17:05 +00:00
Jim Meyering
a988aefd03 Remove explicit declarations of xmalloc and xrealloc,
Instead, include "xalloc.h".
(initbuffer): Don't cast xmalloc return value to char*.
(readline): Reword comment.
Don't cast xrealloc return value to char*
Return NULL, not 0.
2001-12-10 00:13:36 +00:00
Jim Meyering
a49772f23b *** empty log message *** 2001-12-09 22:57:15 +00:00
Jim Meyering
ea1f6ec04b *** empty log message *** 2001-12-09 22:56:52 +00:00
Jim Meyering
0b072ba82c (posix_time_parse): Add cast to avoid warning about
`signed and unsigned type in conditional expression'.
2001-12-09 22:56:16 +00:00
Jim Meyering
0928d79889 (mode_compile): Add cast to avoid warning about
`signed and unsigned type in conditional expression'.
2001-12-09 22:54:19 +00:00
Jim Meyering
6994cb9650 (xreadlink): Add cast to avoid a warning. 2001-12-09 22:46:53 +00:00
Jim Meyering
5b34b167f9 (readtoken): Declare an index to be of type unsigned
to avoid a pedantic warning.
2001-12-09 22:39:02 +00:00
Jim Meyering
923091ff96 Don't include assert.h.
(getstr): Remove warning-evoking assertions.
Return -1 if offset parameter is out of bounds.
Change the type of a local from int to size_t.
2001-12-09 22:08:19 +00:00
Jim Meyering
26061de96f (my_strftime_localtime_r): Include this function
definition in the `#if ! HAVE_TM_GMTOFF' block.
2001-12-09 21:02:43 +00:00
Jim Meyering
102ad5c8ff *** empty log message *** 2001-12-09 21:01:23 +00:00
Jim Meyering
bb0d2464f8 Remove declarations of xmalloc and xrealloc.
Include xalloc.h instead.
2001-12-09 21:01:15 +00:00
Jim Meyering
2de5b90948 *** empty log message *** 2001-12-09 10:27:44 +00:00
Jim Meyering
d85b445409 *** empty log message *** 2001-12-08 20:44:05 +00:00
Jim Meyering
707c2dc263 *** empty log message *** 2001-12-08 20:42:13 +00:00
Jim Meyering
7f8213c31e *** empty log message *** 2001-12-08 20:41:53 +00:00
Jim Meyering
e1958d172e (wget_files): Remove ansi2knr.c, since it's
no longer available at that location.
2001-12-08 20:41:46 +00:00
Jim Meyering
7f0947ae50 *** empty log message *** 2001-12-08 19:19:19 +00:00
Jim Meyering
dcfb371a6b tweak to align with libc 2001-12-08 06:57:58 +00:00
Jim Meyering
acca325884 (join invocation): tweak wording 2001-12-05 14:14:43 +00:00
Jim Meyering
3e729d218d *** empty log message *** 2001-12-04 21:38:54 +00:00
Jim Meyering
56117f587b *** empty log message *** 2001-12-04 21:37:37 +00:00
Jim Meyering
568ec722bb *** empty log message *** 2001-12-04 17:55:12 +00:00
Jim Meyering
a95d10ec54 Don't use diff's -u option. It's not portable.
Besides, with GNU diff one can use the DIFF_OPTIONS envvar.
2001-12-04 17:55:08 +00:00
Jim Meyering
8f730b8a46 (usage): Don't split translatable strings in the middle of a sentence. 2001-12-03 16:07:50 +00:00
Jim Meyering
2f8490672b *** empty log message *** 2001-12-03 16:07:23 +00:00
Jim Meyering
99fbca4eba (usage): Merge lone "\n" into adjacent string. 2001-12-03 15:56:48 +00:00
Jim Meyering
f05581b361 (usage): Merge lone "\n" into adjacent string. 2001-12-03 15:56:24 +00:00
Jim Meyering
5444831241 *** empty log message *** 2001-12-02 22:47:09 +00:00
Jim Meyering
1e40feefae *** empty log message *** 2001-12-02 22:27:01 +00:00
Jim Meyering
f3ac2e7839 Use new macros, HELP_OPTION_DESCRIPTION and VERSION_OPTION_DESCRIPTION
instead of hard-coding --help and --version descriptions.
2001-12-02 22:26:57 +00:00
Jim Meyering
01f0361e79 *** empty log message *** 2001-12-02 20:18:43 +00:00
Jim Meyering
33c85ae850 *** empty log message *** 2001-12-02 20:16:28 +00:00
Jim Meyering
db5fd4aaae *** empty log message *** 2001-12-02 20:10:31 +00:00
Jim Meyering
f4df046ab6 (TESTS): Add recursive. 2001-12-02 20:10:25 +00:00
Jim Meyering
93da1d6e5b use diff -u 2001-12-02 20:09:27 +00:00
Jim Meyering
3e947ade15 *** empty log message *** 2001-12-02 20:08:14 +00:00
Jim Meyering
800c8d7882 *** empty log message *** 2001-12-02 20:05:56 +00:00
Jim Meyering
7afc9d1829 (touch): Extend the change of 2001-09-15 to work on
systems for which errno is set to EPERM in that case.  Thus, e.g.,
`touch /' by non-root gives a better diagnostic on systems like SunOS4.
2001-12-02 20:05:33 +00:00
Jim Meyering
15295aaf8a *** empty log message *** 2001-12-02 19:59:49 +00:00
Jim Meyering
4542868aea Don't declare getenv, thus reverting the change of 2001-11-18.
It's no longer necessary, now that stdlib.h is always included.
2001-12-02 19:59:39 +00:00
Jim Meyering
3287aaae94 *** empty log message *** 2001-12-02 17:47:34 +00:00
Jim Meyering
86eb6a1aac *** empty log message *** 2001-12-02 17:47:01 +00:00
Jim Meyering
4a2b55cc60 [!__BOUNDED_POINTERS__]: Define away __bounded, __unbounded, and __ptrvalue. 2001-12-02 17:46:54 +00:00
Jim Meyering
73711e47bb *** empty log message *** 2001-12-02 07:50:04 +00:00
Jim Meyering
e03be48b10 Don't emulate dd's skip=N for *all* character devices; lseek works
just fine on non-tape character devices like /dev/mem and /dev/kmem.

(buggy_lseek_support) [__linux__]: Emulate `skip=N'
behavior using reads, not lseek for Linux tape devices (major == 9).
Kernel lseek support for tapes is broken, up to and including
linux-2.4.16.  Reported by Herbert Xu.
2001-12-02 07:49:46 +00:00
Jim Meyering
b8efd17fe8 (emit-upload-commands): Fix typo: s/distdir/PACKAGE/. 2001-12-02 06:49:33 +00:00
Jim Meyering
d7b3fa5629 . 2001-12-01 19:52:31 +00:00
Jim Meyering
8572927454 (po-check): Check for uses of _() not just in .c files, but also in .h files. 2001-12-01 17:56:23 +00:00
Jim Meyering
b3fca9f7f6 *** empty log message *** 2001-12-01 17:54:34 +00:00
Jim Meyering
3a0a028c8c Reflect renaming to, and new usage of these macros:
HELP_OPTION_DESCRIPTION and VERSION_OPTION_DESCRIPTION.
2001-12-01 17:41:25 +00:00
Jim Meyering
0c3fd30903 *** empty log message *** 2001-12-01 17:40:17 +00:00
Jim Meyering
52f3031b24 Rename just-added macros. Here are the new names:
HELP_OPTION_DESCRIPTION
  VERSION_OPTION_DESCRIPTION
2001-12-01 17:31:09 +00:00
Jim Meyering
b3463e39bd *** empty log message *** 2001-12-01 17:22:02 +00:00
Jim Meyering
a34483b143 (EMIT_HELP_DESCRIPTION): New macro.
(EMIT_VERSION_DESCRIPTION): New macro.
2001-12-01 17:21:57 +00:00
Jim Meyering
afa12bc912 (usage): Use new macros, EMIT_HELP_DESCRIPTION and EMIT_VERSION_DESCRIPTION
instead of hard-coding --help and --version descriptions.
2001-12-01 17:21:56 +00:00
Jim Meyering
c0f45e1e43 . 2001-12-01 15:41:16 +00:00
Jim Meyering
7c8e0d8c97 *** empty log message *** 2001-11-30 14:51:13 +00:00
Jim Meyering
b0b791399d Include xalloc.h, so that xstrdup is declared before being defined. 2001-11-30 14:32:22 +00:00
Jim Meyering
6dd490fa03 . 2001-11-28 14:05:29 +00:00
Jim Meyering
dec4961f11 *** empty log message *** 2001-11-28 06:57:33 +00:00
Jim Meyering
ff927371bd (quotearg_n, quotearg_n_style):
First arg is int, not unsigned.
2001-11-28 06:57:25 +00:00
Jim Meyering
0dc8754559 (quotearg_n, quotearg_n_style): Likewise.
(SIZE_MAX, UINT_MAX): New macros.
(quotearg_n_options): Abort if N is negative.
Avoid overflow check on hosts where size_t is 64 bits and int
is 32 bits, as overflow is impossible there.
Fix off-by-one typo that caused unnecessary reallocation.
2001-11-28 06:57:02 +00:00
Jim Meyering
fb66999103 Merge with version from libc. 2001-11-27 21:34:15 +00:00
Jim Meyering
97b434be77 *** empty log message *** 2001-11-27 20:49:52 +00:00
Jim Meyering
51cd0868f5 *** empty log message *** 2001-11-27 12:56:20 +00:00
Jim Meyering
65d5eb615d Include stdlib.h unconditionally. On some old systems for which
STDC_HEADERS is 0, it was not included, resulting in a warning
about an integer-to-pointer conversion problem with getenv.
2001-11-27 12:55:16 +00:00
Jim Meyering
0bb8253d33 Merge with version from libc. 2001-11-27 12:54:58 +00:00
Jim Meyering
b0c1bd7cb5 (libfetish_a_SOURCES): Remove gtod.h. 2001-11-27 10:25:52 +00:00
Jim Meyering
2fe074017c *** empty log message *** 2001-11-27 10:22:43 +00:00
Jim Meyering
e91b426d5a Compare all lines of output.
Update code to use `trap' and more up to date infrastructure.
2001-11-27 10:22:28 +00:00
Jim Meyering
f05548e77b *** empty log message *** 2001-11-27 10:19:30 +00:00
Jim Meyering
df4c89a556 The change of 2001-11-01 introduced a bug whereby some recursive
listings didn't have a blank line between per-directory groups of files.

(print_dir): Print a newline before each directory name
except the first one, rather than after each except the last, since
now (after the changes of 2001-11-01) detecting whether a `pending*'
is the last would involve more work.  Reported by Andreas Schwab.

This change has no net effect.
(main): Remove always-true conjunct and add a comment.
2001-11-27 10:19:24 +00:00
Jim Meyering
2c9dc1f509 *** empty log message *** 2001-11-27 10:16:18 +00:00
Jim Meyering
b7d1e33e4a *** empty log message *** 2001-11-27 07:50:35 +00:00
Jim Meyering
0d1ddb59de (SET_MODE) [O_BINARY]: Call setmode, not set_mode. 2001-11-27 07:48:47 +00:00
Jim Meyering
022e60027b Don't include "gtod.h"
(main): Don't `call' GETTIMEOFDAY_INIT.
2001-11-26 16:46:20 +00:00
Jim Meyering
2bb262fd64 *** empty log message *** 2001-11-26 12:31:12 +00:00
Jim Meyering
225d614f6f Don't include gtod.h.
(GTOD_init): Remove function.
(rpl_gettimeofday): Do its job here instead, rather than aborting.
2001-11-26 12:29:43 +00:00
Jim Meyering
8087128c07 (cat): Don't test whether the full_write return value (of type size_t)
is less than 0.  Reported by Nelson H. F. Beebe,
as a warning from Irix 6.5's C compiler.
2001-11-26 12:16:48 +00:00
Jim Meyering
3cfa2e263a . 2001-11-26 12:08:16 +00:00
Jim Meyering
a927d9b0ae *** empty log message *** 2001-11-26 11:04:49 +00:00
Jim Meyering
0099b7b26e *** empty log message *** 2001-11-25 14:47:06 +00:00
Jim Meyering
9e1b4e382a (usage): Indent --help and --version strings to start in the 7th column. 2001-11-25 14:46:05 +00:00
Jim Meyering
a62884b9bb *** empty log message *** 2001-11-25 14:37:40 +00:00
Jim Meyering
79d3f45d37 (usage): Indent --help and --version strings to start in the 7th column. 2001-11-25 14:37:18 +00:00
Jim Meyering
31f6ab878e *** empty log message *** 2001-11-24 10:00:54 +00:00
Jim Meyering
8fade926f8 Include signatures for the xdelta file, too. 2001-11-24 10:00:30 +00:00
Jim Meyering
7fa1528c0f (emit-upload-commands): Rename from emit-rsync-commands.
Output only the package name and the prev and current version numbers.
2001-11-24 08:57:02 +00:00
Jim Meyering
5073e90886 *** empty log message *** 2001-11-24 08:19:59 +00:00
519 changed files with 353515 additions and 14198 deletions

6
.cvsignore Normal file
View File

@@ -0,0 +1,6 @@
Makefile
config.h
config.log
config.status
stamp-h1
autom4te.cache

1
.prev-version Normal file
View File

@@ -0,0 +1 @@
4.5.3

353
ABOUT-NLS
View File

@@ -113,6 +113,13 @@ But in fact, some languages have dialects in different countries. For
example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
country code serves to distinguish the dialects.
The locale naming convention of `LL_CC', with `LL' denoting the
language and `CC' denoting the country, is the one use on systems based
on GNU libc. On other systems, some variations of this scheme are
used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
locales supported by your system for your country by running the command
`locale -a | grep '^LL''.
Not all programs have translations for all languages. By default, an
English message is shown in place of a nonexistent translation. If you
understand other languages, you can set up a priority list of languages.
@@ -164,128 +171,232 @@ Available Packages
==================
Languages are not equally supported in all packages. The following
matrix shows the current state of internationalization, as of September
2001. The matrix shows, in regard of each package, for which languages
matrix shows the current state of internationalization, as of August
2002. The matrix shows, in regard of each package, for which languages
PO files have been submitted to translation coordination, with a
translation percentage of at least 50%.
Ready PO files bg cs da de el en eo es et fi fr gl he hr id it ja
+----------------------------------------------------+
a2ps | [] [] [] |
bash | [] [] [] [] |
bfd | |
binutils | [] |
bison | [] [] [] [] [] |
clisp | [] [] [] [] |
cpio | [] [] [] [] [] |
diffutils | [] [] [] [] [] [] [] |
enscript | [] [] |
error | [] [] |
fetchmail | |
fileutils | [] [] [] [] [] [] [] [] |
findutils | [] [] [] [] [] [] [] [] |
flex | [] [] [] |
freetype | |
gas | |
gawk | [] [] |
gcal | |
gcc | |
gettext | [] [] [] [] [] [] [] [] [] [] |
gnupg | [] [] [] [] [] [] [] |
gprof | |
grep | [] [] [] [] [] [] [] [] |
hello | [] [] [] [] [] [] [] [] [] [] [] |
id-utils | [] [] [] |
indent | [] [] [] [] [] |
jpilot | [] |
kbd | |
ld | [] |
libc | [] [] [] [] [] [] [] [] |
lilypond | [] |
lynx | [] [] [] [] |
m4 | [] [] [] [] [] [] [] [] |
make | [] [] [] [] [] [] |
mysecretdiary | [] |
nano | [] [] [] |
opcodes | |
parted | [] [] [] |
ptx | [] [] [] [] [] [] [] |
python | |
recode | [] [] [] [] [] [] [] [] [] |
sed | [] [] [] [] [] [] [] [] [] [] [] [] |
sh-utils | [] [] [] [] [] [] [] [] [] [] |
sharutils | [] [] [] [] [] [] [] [] |
sketch | |
soundtracker | [] [] [] |
sp | |
tar | [] [] [] [] [] [] [] [] |
texinfo | [] [] [] [] [] [] |
textutils | [] [] [] [] [] [] [] [] |
util-linux | [] [] |
wdiff | [] [] [] |
wget | [] [] [] [] [] [] [] [] [] [] |
+----------------------------------------------------+
bg cs da de el en eo es et fi fr gl he hr id it ja
0 14 24 32 11 1 8 23 13 1 33 22 4 0 7 9 18
Ready PO files be bg ca cs da de el en eo es et fi fr
+----------------------------------------+
a2ps | [] [] [] [] |
ap-utils | |
bash | [] [] [] [] |
bfd | [] [] |
binutils | [] [] |
bison | [] [] [] [] |
clisp | |
clisp | [] [] [] [] |
clisplow | |
cpio | [] [] [] [] |
darkstat | () |
diffutils | [] [] [] [] [] [] |
enscript | [] [] |
error | [] [] [] |
fetchmail | [] () [] [] [] () |
fileutils | [] [] [] [] [] |
findutils | [] [] [] [] [] [] |
flex | [] [] [] [] [] |
gas | [] [] |
gawk | [] [] [] |
gcal | [] [] |
gcc | [] [] |
gettext | [] [] [] [] [] |
gnupg | [] [] [] [] [] [] [] |
gprof | [] [] |
gpsdrive | () () () () () |
grep | [] [] [] [] [] [] [] [] |
gretl | [] |
gthumb | () () () |
hello | [] [] [] [] [] [] [] [] [] |
id-utils | [] [] [] |
indent | [] [] [] [] [] |
jpilot | () [] [] [] |
jwhois | [] [] |
kbd | [] [] [] |
ld | [] [] |
libc | [] [] [] [] [] [] [] [] |
libiconv | [] [] [] [] |
lifelines | () () |
lilypond | [] [] |
lingoteach | [] [] |
lingoteach_lessons| () () |
lynx | [] [] [] [] [] |
m4 | [] [] [] [] [] |
make | [] [] [] [] |
man-db | [] () () [] () () |
mysecretdiary | [] [] [] |
nano | [] () [] [] [] [] |
nano_1_0 | [] () [] [] [] [] |
opcodes | [] [] [] |
parted | [] [] [] [] [] |
ptx | [] [] [] [] [] [] [] |
python | |
recode | [] [] [] [] [] [] |
sed | [] [] [] [] [] [] [] [] [] [] |
sh-utils | [] [] [] [] |
sharutils | [] [] [] [] [] [] [] |
sketch | () [] () |
soundtracker | [] [] [] |
sp | [] |
tar | [] [] [] [] [] [] |
texinfo | [] [] [] [] [] |
textutils | [] [] [] [] [] |
util-linux | [] [] [] [] [] [] |
vorbis-tools | [] |
wastesedge | |
wdiff | [] [] [] [] [] [] |
wget | [] [] [] [] [] [] [] [] [] [] |
+----------------------------------------+
be bg ca cs da de el en eo es et fi fr
0 2 19 10 30 44 9 1 12 44 17 6 53
ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh
+----------------------------------------------------+
a2ps | [] [] [] | 6
bash | | 4
bfd | | 0
binutils | | 1
bison | [] | 6
clisp | [] | 5
cpio | [] [] [] [] [] | 10
diffutils | [] [] [] [] | 11
enscript | [] [] [] | 5
error | [] [] | 4
fetchmail | | 0
fileutils | [] [] [] [] [] [] [] [] [] | 17
findutils | [] [] [] [] [] [] [] [] | 16
flex | [] [] [] | 6
freetype | | 0
gas | | 0
gawk | [] | 3
gcal | | 0
gcc | | 0
gettext | [] [] [] [] [] [] [] [] | 18
gnupg | [] [] [] | 10
gprof | | 0
grep | [] [] [] [] | 12
hello | [] [] [] [] [] [] [] [] [] [] [] | 22
id-utils | [] [] [] | 6
indent | [] [] [] [] [] [] [] | 12
jpilot | | 1
kbd | [] | 1
ld | | 1
libc | [] [] [] [] [] [] [] [] | 16
lilypond | [] [] | 3
lynx | [] [] [] [] | 8
m4 | [] [] [] [] | 12
make | [] [] [] [] [] [] | 12
mysecretdiary | | 1
nano | [] | 4
opcodes | [] | 1
parted | [] [] | 5
ptx | [] [] [] [] [] [] [] [] | 15
python | | 0
recode | [] [] [] [] | 13
sed | [] [] [] [] [] [] [] | 19
sh-utils | [] [] [] [] [] [] [] [] [] [] [] | 21
sharutils | [] [] [] | 11
sketch | | 0
soundtracker | | 3
sp | | 0
tar | [] [] [] [] [] [] [] | 15
texinfo | [] | 7
textutils | [] [] [] [] [] [] [] [] | 16
util-linux | [] [] | 4
wdiff | [] [] [] [] | 7
wget | [] [] [] [] [] [] [] | 17
+----------------------------------------------------+
33 teams ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh
53 domains 9 1 6 20 0 6 17 1 13 25 10 11 23 21 2 2 387
gl he hr hu id it ja ko lv nb nl nn
+-------------------------------------+
a2ps | () () [] |
ap-utils | |
bash | [] |
bfd | [] |
binutils | [] |
bison | [] [] [] [] |
clisp | |
clisp | [] |
clisplow | |
cpio | [] [] [] [] |
darkstat | |
diffutils | [] [] [] [] [] |
enscript | [] [] |
error | [] |
fetchmail | [] |
fileutils | [] [] [] |
findutils | [] [] [] [] [] [] [] [] |
flex | [] |
gas | |
gawk | [] |
gcal | |
gcc | [] |
gettext | [] [] |
gnupg | [] [] [] [] |
gprof | [] |
gpsdrive | [] () () |
grep | [] [] [] [] [] [] [] |
gretl | |
gthumb | () () |
hello | [] [] [] [] [] [] [] [] [] [] [] [] |
id-utils | [] [] |
indent | [] [] [] [] |
jpilot | () () |
jwhois | [] [] |
kbd | |
ld | |
libc | [] [] [] [] |
libiconv | [] [] [] |
lifelines | |
lilypond | [] |
lingoteach | [] |
lingoteach_lessons| |
lynx | [] [] [] [] |
m4 | [] [] [] [] |
make | [] [] [] [] [] [] |
man-db | () () |
mysecretdiary | [] |
nano | [] [] [] [] |
nano_1_0 | [] [] [] [] [] |
opcodes | [] [] |
parted | [] [] [] |
ptx | [] [] [] [] [] |
python | |
recode | [] [] [] |
sed | [] [] [] [] [] [] [] [] |
sh-utils | [] [] [] |
sharutils | [] [] [] |
sketch | () |
soundtracker | [] [] |
sp | |
tar | [] [] [] [] [] [] |
texinfo | [] [] [] |
textutils | [] [] [] [] |
util-linux | () [] |
vorbis-tools | [] |
wastesedge | |
wdiff | [] [] [] |
wget | [] [] [] [] [] [] |
+-------------------------------------+
gl he hr hu id it ja ko lv nb nl nn
23 9 12 19 16 13 26 9 1 7 19 3
no pl pt pt_BR ru sk sl sv tr uk zh_CN zh_TW
+----------------------------------------------+
a2ps | () () () [] [] [] [] [] | 10
ap-utils | () | 0
bash | [] | 6
bfd | [] [] | 5
binutils | [] [] | 5
bison | [] [] [] [] | 12
clisp | | 0
clisp | | 5
clisplow | | 0
cpio | [] [] [] [] | 12
darkstat | [] [] () () | 2
diffutils | [] [] [] [] [] [] | 17
enscript | [] [] [] [] | 8
error | [] [] [] | 7
fetchmail | () () [] | 6
fileutils | [] [] [] [] [] [] | 14
findutils | [] [] [] [] [] [] [] | 21
flex | [] [] [] | 9
gas | [] | 3
gawk | [] [] | 6
gcal | [] [] | 4
gcc | [] | 4
gettext | [] [] [] [] [] [] | 13
gnupg | [] [] [] | 14
gprof | [] [] | 5
gpsdrive | [] [] | 3
grep | [] [] [] [] [] | 20
gretl | | 1
gthumb | () () [] | 1
hello | [] [] [] [] [] [] [] | 28
id-utils | [] [] [] [] | 9
indent | [] [] [] [] [] | 14
jpilot | () () [] [] | 5
jwhois | [] () () [] [] | 7
kbd | [] [] | 5
ld | [] [] | 4
libc | [] [] [] [] [] [] | 18
libiconv | [] [] [] [] [] | 12
lifelines | [] | 1
lilypond | [] | 4
lingoteach | [] [] | 5
lingoteach_lessons| () | 0
lynx | [] [] [] [] | 13
m4 | [] [] [] [] | 13
make | [] [] [] [] [] | 15
man-db | | 3
mysecretdiary | [] [] [] | 7
nano | [] [] [] [] | 13
nano_1_0 | [] [] [] [] | 14
opcodes | [] [] [] | 8
parted | [] [] [] [] | 12
ptx | [] [] [] [] [] [] [] | 19
python | | 0
recode | [] [] [] [] [] [] | 15
sed | [] [] [] [] [] [] | 24
sh-utils | [] [] | 9
sharutils | [] [] [] [] | 14
sketch | [] () [] | 4
soundtracker | [] | 6
sp | | 1
tar | [] [] [] [] [] [] [] | 19
texinfo | [] [] | 10
textutils | [] [] [] [] [] | 14
util-linux | [] [] [] | 10
vorbis-tools | [] | 3
wastesedge | | 0
wdiff | [] [] [] [] [] | 14
wget | [] [] [] [] [] [] [] [] | 24
+----------------------------------------------+
37 teams no pl pt pt_BR ru sk sl sv tr uk zh_CN zh_TW
68 domains 4 15 2 28 28 12 10 49 43 4 1 9 609
Some counters in the preceding matrix are higher than the number of
visible blocks let us expect. This is because a few extra PO files are
@@ -298,9 +409,9 @@ distributed as such by its maintainer. There might be an observable
lag between the mere existence a PO file and its wide availability in a
distribution.
If September 2001 seems to be old, you may fetch a more recent copy
of this `ABOUT-NLS' file on most GNU archive sites. The most
up-to-date matrix with full percentage details can be found at
If August 2002 seems to be old, you may fetch a more recent copy of
this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
matrix with full percentage details can be found at
`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
Using `gettext' in new packages

86
AUTHORS Normal file
View File

@@ -0,0 +1,86 @@
Here are the names of the programs in this package,
each followed by the name(s) of its author(s).
basename: FIXME unknown
cat: Torbjorn Granlund and Richard M. Stallman
chgrp: David MacKenzie
chmod: David MacKenzie
chown: David MacKenzie
chroot: Roland McGrath
cksum: Q. Frank Xia
comm: Richard Stallman and David MacKenzie
cp: Torbjorn Granlund, David MacKenzie, and Jim Meyering
csplit: Stuart Kemp and David MacKenzie
cut: David Ihnat, David MacKenzie, and Jim Meyering
date: David MacKenzie
dd: Paul Rubin, David MacKenzie, and Stuart Kemp
df: Torbjorn Granlund, David MacKenzie, Larry McVoy, and Paul Eggert
dircolors: H. Peter Anvin
dirname: David MacKenzie and Jim Meyering
du: Torbjorn Granlund, David MacKenzie, Larry McVoy, and Paul Eggert
echo: FIXME unknown
env: Richard Mlynarik and David MacKenzie
expand: David MacKenzie
expr: Mike Parker
factor: Paul Rubin
false: no one
fmt: Ross Paterson
fold: David MacKenzie
head: David MacKenzie
hostid: Jim Meyering
hostname: Jim Meyering
id: Arnold Robbins and David MacKenzie
install: David MacKenzie
join: Mike Haertel
kill: Paul Eggert
link: Michael Stone
ln: Mike Parker and David MacKenzie
logname: FIXME: unknown
ls: Richard Stallman and David MacKenzie
md5sum: Ulrich Drepper and Scott Miller
mkdir: David MacKenzie
mkfifo: David MacKenzie
mknod: David MacKenzie
mv: Mike Parker, David MacKenzie, and Jim Meyering
nice: David MacKenzie
nl: Scott Bartram and David MacKenzie
od: Jim Meyering
paste: David M. Ihnat and David MacKenzie
pathchk: David MacKenzie and Jim Meyering
pinky: Joseph Arceneaux, David MacKenzie, and Kaveh Ghazi
pr: Pete TerMaat and Roland Huebner
printenv: David MacKenzie and Richard Mlynarik
printf: David MacKenzie
ptx: François Pinard
pwd: Jim Meyering
rm: Paul Rubin, David MacKenzie, Richard Stallman, and Jim Meyering
rmdir: David MacKenzie
seq: Ulrich Drepper
shred: Colin Plumb
sleep: Jim Meyering and Paul Eggert
sort: Mike Haertel and Paul Eggert
split: Torbjorn Granlund and Richard M. Stallman
stat: Michael Meskes
stty: David MacKenzie
su: David MacKenzie
sum: Kayvan Aghaiepour and David MacKenzie
sync: Jim Meyering
tac: Jay Lepreau and David MacKenzie
tail: Paul Rubin, David MacKenzie, Ian Lance Taylor, and Jim Meyering
tee: Mike Parker, Richard M. Stallman, and David MacKenzie
test: FIXME: ksb and mjb
touch: Paul Rubin, Arnold Robbins, Jim Kingdon, David MacKenzie, and Randy Smith
tr: Jim Meyering
true: no one
tsort: Mark Kettenis
tty: David MacKenzie
uname: David MacKenzie
unexpand: David MacKenzie
uniq: Richard Stallman and David MacKenzie
unlink: Michael Stone
uptime: Joseph Arceneaux, David MacKenzie, and Kaveh Ghazi
users: Joseph Arceneaux and David MacKenzie
wc: Paul Rubin and David MacKenzie
who: Joseph Arceneaux, David MacKenzie, and Michael Stone
whoami: Richard Mlynarik
yes: David MacKenzie

850
ChangeLog Normal file
View File

@@ -0,0 +1,850 @@
2002-12-13 Jim Meyering <jim@meyering.net>
* Version 4.5.4.
* tests/du/trailing-slash: Allow for a directory of size `0'.
That happens at least on file systems of type tmpfs on linux-2.4.18.
* announce-gen: New script to begin replacing the commands
associated with the rule here...
* Makefile.maint (announcement): Invoke announce-gen.
* Makefile.am (EXTRA_DIST): Add announce-gen.
* tests/cp/preserve-2: New file/test, for latest fix.
* tests/cp/Makefile.am (TESTS): Add preserve-2.
2002-12-11 TAKAI Kousuke <takai@vlsi.kuee.kyoto-u.ac.jp>
Fix a bug whereby cp would fail to parse an option like
--preserve=mode,ownership.
* src/cp.c (decode_preserve_arg): Advance `comma' to
point the character following the comma.
2002-12-11 Jim Meyering <jim@meyering.net>
* src/pathchk.c (NEED_PATHCONF_WRAPPER): Undefine before defining,
in case it's already defined.
2002-12-09 Jim Meyering <jim@meyering.net>
* tests/touch/fail-diag: Don't get a test failure if /no exists.
Instead, evoke a framework failure if /no-$$ exists.
Reported by Michael Stone.
2002-12-08 Jim Meyering <jim@meyering.net>
* src/du.c (lstat) [! LSTAT_FOLLOWS_SLASHED_SYMLINK]:
Define to rpl_lstat, so that even on systems like Solaris 2.8,
du honors (per POSIX) the trailing slash on an argument referring
to a symlink-to-directory.
2002-12-06 Jim Meyering <jim@meyering.net>
* Use autoconf-2.57. Regenerate dependent files.
* Use automake-1.7.2. Regenerate dependent files.
* src/ls.c (gobble_file): Also stat the file if it's a
regular file and --indicator-style=classify (aka -F).
Thanks to Ed Santiago for opening my eyes.
* tests/ls/file-type: New file. Test for the above.
A test to contrast ls -F and ls --indicator-style=file-type.
* tests/ls/Makefile.am (TESTS): Add file-type.
2002-12-04 Jim Meyering <jim@meyering.net>
* tests/ls/follow-slink: Make sure the symlink was created.
Richard Dawe reported that `ln -s link link' succeeds, but creates
no file on systems running some version of the DJGPP libc.
2002-12-03 Jim Meyering <jim@meyering.net>
* src/Makefile.am (AUTOMAKE_OPTIONS): Remove definition (to ansi2knr)
since this package no longer panders to K&R compilers.
2002-12-02 Jim Meyering <jim@meyering.net>
* tests/du/slink: Skip this test if `.' is on a non-local file system.
* tests/Fetish.pm (_at_replace): Do the substitution only if there's
something to replace.
2002-12-01 Jim Meyering <jim@meyering.net>
* src/stat.c: Don't include <string.h> or <ctype.h>.
That's already done via system.h.
* src/dircolors.c: Don't include <ctype.h>.
2002-11-30 Jim Meyering <jim@meyering.net>
* ls.c (gobble_file): Remove the block of code that caused
`ls --color -F symlink-to-dir' to list the files in
`symlink-to-dir/.'. Now, it prints `symlink-to-dir@', (just
like `ls -F symlink-to-dir') but with the addition of highlighting.
Similarly, `ls --color -dF symlink-to-dir' would print
`symlink-to-dir/'; now it prints `symlink-to-dir@'.
Reported by Jeff Sheinberg as Debian bug #168203.
* tests/ls-2/tests (sl-F-color, sl-dF-color): New tests for the above.
ls is now more efficient: with certain options, it no longer needs
to stat each directory entry on systems with valid dirent.d_type.
* src/ls.c (print_dir): Add DT_LNK and DT_REG.
(main): Make --recursive set format_needs_type, not format_needs_stat.
(gobble_file): Remove a FIXME comment, now that it's fixed.
2002-11-24 Jim Meyering <jim@meyering.net>
* src/du.c (du_files): Don't strip any trailing slash.
Rewrite so that `/' is no longer represented internally as
the empty string.
(count_entry): When appending a file name component,
account for the fact that the current path may end in `/'.
François Pinard reported that `du symlink-to-dir/' was not
equivalent to `du symlink-to-dir/.'. Now it is.
* tests/du/trailing-slash: New file/test, for the above fix.
* tests/du/Makefile.am (TESTS): Add trailing-slash.
2002-11-23 Jim Meyering <jim@meyering.net>
* src/tac.c (output): Declare some local variables to be of type size_t,
rather than `int' to avoid warnings from gcc.
2002-11-21 Paul Eggert <eggert@twinsun.com>
* src/ls.c (decode_switches): Use case-sensitive matching to
decode the QUOTING_STYLE environment variable. This is more
consistent with the documentation, and with --quoting-style.
2002-11-21 Martin Buck <martin.buck@ascom.ch
* src/stty.c (struct speeds): Add support for all baud rates defined
in linux-2.4.19.
2002-11-19 Jim Meyering <jim@meyering.net>
* tests/sum/sysv: Export LC_ALL=C, to avoid failure when
run in a UTF locale. Report and suggested fix by Bruno Haible.
* tests/fmt/basic: Likewise.
2002-11-17 Jim Meyering <jim@meyering.net>
* configure.ac: Update via autoupdate.
Add `AM_GNU_GETTEXT_VERSION(0.11.5)'.
* src/mv.c (movefile): Don't remove trailing slashes from SOURCE.
Reported by Hans Ginzel.
2002-11-15 Jim Meyering <jim@meyering.net>
* Makefile.cfg (gnu_rel_host): Define.
(url_dir_list): Choose from (alpha|ftp).gnu.org depending
on whether $(VERSION) looks like a major release number.
* Makefile.maint (mail_gpg_sign_cookie): Backslash-escape `#'.
(release): Rename from `alpha'.
(alpha): Depend on release.
* Makefile.maint (signatures): Define with ?=, so it's easy to override.
2002-11-14 Jim Meyering <jim@meyering.net>
* Makefile.maint (mail_gpg_sign_cookie): Make optional.
(announcement): Use the new variable.
* Makefile.maint: Sync with Bison, i.e.:
(po-check): Scan .l and .y files instead of the
.c and the .h files that they generate. This fixes the bug
reported by Tim Van Holder in:
<http://mail.gnu.org/pipermail/bison-patches/2002-November/001352.html>
Look for N_ as well as for _. Try to avoid matching #define for
N_ and _.
From Paul Eggert.
2002-11-12 Jim Meyering <jim@meyering.net>
* src/ls.c (HAVE_SYMLINKS): Remove unnecessary macro definition.
Replace sole use with equivalent `#ifdef S_ISLNK'.
Inconsistency reported by Dmitry V. Levin.
2002-11-11 Jim Meyering <jim@meyering.net>
* src/stat.c (usage): Transform --help items output via s/ - / /,
so that help2man produces properly formatted man pages.
Reported by Herbert Xu as Debian bug #168400.
2002-11-10 Jim Meyering <jim@meyering.net>
* src/ls.c (sighandler): Handle SIGTSTP specially.
Based on suggestions from Solar Designer and Dmitry V. Levin.
Add comments.
* Makefile.cfg (cvs_files): Define. From autoconf.
(local_updates): Likewise.
* src/ls.c (restore_default_color_handler, sigtstp_handler):
Remove functions.
(sighandler): New function, based on the one in sort.c.
(main): Use sigaction, if possible; otherwise signal.
Handle these signals:
SIGHUP, SIGINT, SIGPIPE, SIGQUIT, SIGTERM, SIGTSTP.
Don't register our handler if the signal is already being ignored.
* src/dd.c (interrupt_handler): Use raise, rather than kill+getpid.
* src/csplit.c (interrupt_handler): Likewise.
* src/sort.c (sighandler): Likewise.
(main): Declare `i' and `nsigs' to be unsigned, not int.
2002-11-09 Jim Meyering <jim@meyering.net>
ls --color: restore terminal text color upon signal.
* src/ls.c: Include "full-write.h" and <signal.h>.
(restore_default_color, restore_default_color_handler): New functions.
(sigtstp_handler, put_indicator_direct): New functions.
(main) [print_with_color]: Register signal handlers.
Patch mostly by Solar Designer and Stanislav Ievlev.
Update from autoconf.
* Makefile.maint (AMTAR): Remove definition.
(update, cvs-update, po-update, do-po-update): New rules.
(wget-update): Update (thus renaming to cvs-update).
(automake_repo): Use anoncvs@sources.redhat.com.
2002-11-06 Jim Meyering <jim@meyering.net>
* tests/misc/Makefile.am (TESTS): Add printf-hex.
* tests/misc/printf: Be careful to test the code in this package,
not the shell built-in function.
* src/printf.c (print_esc): A hexadecimal escape sequence has
at most two hex. digits, not three. Reported by Padraig Brady.
(usage): Update description.
* tests/misc/printf-hex: New file/test, for the above fix.
2002-10-07 Paul Eggert <eggert@twinsun.com>
Add support for locale-specific size indications (e.g.,
thousands-separators) and for explicit size suffixes on output.
* doc/coreutils.texi (Block size): Say that:
This affects display format as well as block size.
Fractional block counts are rounded up.
ls file size blocksize defaults to 1.
A block size spec preceded by ' generates thousands separators.
A suffix without a preceding integer generates suffixes.
(tail invocation): 32k -> 32 KiB.
(What information is listed): ls -h is now equivalent to
ls --block-size=human, and ls -H is now equivalent to
ls --block-size=si. Displayed file size is now always affected by
--block-size.
* lib/inttostr.c, lib/inttostr.h, lib/imaxtostr.c, lib/offtostr.c,
lib/umaxtostr.c: New files, taken from GNU tar.
* lib/Makefile.am (libfetish_a_SOURCES): Add imaxtostr.c, offtostr.c,
umaxtostr.c.
(EXTRA_DIST): Add inttostr.c.
* lib/human.c, lib/human.h: Rewrite to support locale-specific
notations like thousands separators.
Specify what includer of include.h must include beforehand.
(human_group_digits, human_suppress_point_zero, human_autoscale,
human_base_1024, human_SI, human_B): New enum values.
(human_readable): Rename from human_readable_inexact; put the
options before the sizes. All uses changed. The old human_readable
function has been removed; use inttostr.h instead.
(human_options): Renamed from human_block_size, with new signature
that allows block sizes up to UINTMAX_MAX. All callers changed.
* m4/prereq.m4 (jm_PREREQ_HUMAN): Check for locale.h, localeconv,
AC_HEADER_STDBOOL. No need to check for limits.h since it's in
freestanding C89. No need to check for stdlib.h or string.h since
autoconf does this now.
* src/cksum.c (cksum): Use primitives from inttostr.h, not
human.h, to print large numbers simply.
* src/csplit.c (handle_line_error, parse_patterns): Likewise.
* src/dd.c (print_stats, main): Likewise.
* src/df.c (print_header): Likewise.
* src/factor.c (print_factors): Likewise.
* src/ls.c (print_long_format, print_file_name_and_frills): Likewise.
* src/shred.c (dopass): Likewise.
* src/sort.c (checkfp): Likewise.
* src/sum.c (bsd_sum_file, sysv_sym_file): Likewise.
* src/tail.c (xlseek): Likewise.
* src/wc.c (write_counts, wc): Likewise.
* src/df.c (human_output_opts): New var.
(output_block_size): Now uintmax_t, not int, to handle larger
block sizes. All uses changed.
* src/du.c: Likewise.
* src/ls.c: Likewise.
* src/df.c (print_header): In the header line, prefer SI to human
representation if it's shorter; if neither is shorter, try to
intuit what the user would prefer.
* src/expr.c (inttostr): Remove; use new imaxtostr library
function instead.
* src/ls.c (file_output_block_size): New var, to distinguish
file sizes from other sizes.
(decode_switches): Set it.
* src/shred.c (OUTPUT_BLOCK_SIZE): remove.
(dopass): When printing progress, use floor for what has been done
so far (since we should be conservative there), and ceiling for
what needs to be done (since that's what other programs use).
2002-10-19 Jim Meyering <jim@meyering.net>
* src/pinky.c (print_heading): Align TTY and Name headings.
Reported by Karl Eichwalder.
2002-10-18 Jim Meyering <jim@meyering.net>
* src/split.c (cwrite): Change type of `bytes' parameter to size_t
Remove now-useless cast.
(stdread): Remove function.
(bytes_split): Use size_t instead of int.
Use safe_read, not stdread.
(lines_split): Likewise.
Use memchr rather than a `while' loop.
(line_bytes_split): Use size_t instead of int.
Use safe_read, not stdread.
(main): Add some FIXME comments to remind me to remove casts.
* src/system.h (ST_BLKSIZE): Correct comment describing how to
reproduce HPUX-11 cat failure. From Petter Reinholdtsen.
2002-10-17 Jim Meyering <jim@meyering.net>
Fix a problem that could make e.g., `cat' misbehave on systems which
give invalid (unreasonably large) values for stat.st_blksize.
* src/system.h (ST_BLKSIZE): Ensure that the result is in [1..4MB].
Reported by Petter Reinholdtsen.
2002-10-14 Jim Meyering <jim@meyering.net>
Specifying a printf conversion specifer as nl's separator string
could cause nl to segfault.
* src/nl.c (build_print_fmt): Don't include separator string
in the printf format; it might contain `%'.
Use a better bound on the length of the print_fmt buffer.
(print_lineno): Print the separator here instead.
Reported by Doug Coleman.
* tests/misc/nl: New file/tests, including a test for the above.
* tests/misc/Makefile.am (TESTS): Add nl.
* tests/misc/split-l: New test, to make sure `split --lines=N' works.
* tests/misc/Makefile.am (TESTS): Add split-l.
2002-10-13 Jim Meyering <jim@meyering.net>
* Version 4.5.3.
* src/du.c (usage): Tweak description of --dereference-args/-D.
* src/du.c (count_entry): Also save cwd when dereferencing (via
--dereference-args, -D) a command-line argument.
Reported by Michal Svec. Based on a patch by Andreas Schwab.
* src/Makefile.am (../AUTHORS): New target/rule.
2002-10-12 Jim Meyering <jim@meyering.net>
* src/paste.c (paste_parallel): Declare local, `delims_saved', to be
of type size_t, since that's the way it's used and avoids a warning.
* src/csplit.c (struct cstring) [len]: Declare to be unsigned int,
since that's how it's always used and avoids a new warning from gcc.
(read_input): Adapt to new safe_read ABI.
* src/cut.c (cut_fields): Add a temporary size_t variable, n_bytes,
to avoid warnings.
* src/pinky.c (print_long_entry): fread returns size_t.
Declare local `bytes' accordingly, to avoid warning.
tail -c +N would perform an extra read after encountering EOF
[this change is analogous (bytes vs. lines) to the one of 2002-01-27]
* src/tail.c (start_bytes): Detect EOF, inform caller.
(tail_bytes): Upon EOF in start_bytes, return immediately.
(file_lines): Reorganize to use memrchr rather than an explicit loop.
Adapt to new safe_read ABI.
2002-10-11 Jim Meyering <jim@meyering.net>
* tests/du/deref: New file/test, for the above fix.
* tests/du/Makefile.am (TESTS): Add deref.
2002-10-10 Jim Meyering <jim@meyering.net>
* tests/ln/Makefile.am (TESTS): Add target-1.
* tests/ln/target-1: New file/test, for the fix on 2002-10-08.
2002-10-09 Jim Meyering <jim@meyering.net>
* tests/cp/backup-is-src: Ensure that certain environment variables
are not set (e.g., SIMPLE_BACKUP_SUFFIX). Reported by Duncan Roe.
* tests/tail-2/big-4gb: Mark this as an expensive test; it would
consume 4GB of disk space on systems without support for sparse files.
Fix a logic error that'd make it `cat err' even though dd didn't fail.
* src/dircolors.hin (.jar): Fix typo: s/;3$/;31/.
Patch by steven@magelico.net, forwarded by Michael Stone.
* tests/ls/dired: Ensure that ls produces English messages.
Patch by Alexey Vyskubov, forwarded by Michael Stone.
2002-10-08 Dmitry V. Levin <ldv@altlinux.org>
* src/ln.c (main): Fix target_directory parsing when n_files == 1.
2002-10-08 Jim Meyering <jim@meyering.net>
* tests/tail-2/big-4gb: Use double quotes around diagnostic.
Fix syntax in test: use =, not ==.
Reported by Bob Proulx.
Change all the rest like this: grep -lR "testing framework'" .\
|xargs perl -pi -e 's/'\''(\$0: failure in testing framework)'\''/"$1"/'
* src/sum.c (sysv_sum_file): Adapt to new safe_read ABI.
* src/tr.c (squeeze_filter, read_and_delete, read_and_xlate): Likewise.
* src/tac.c (save_stdin, tac_stdin_to_mem): Likewise.
* src/wc.c (wc): Likewise.
2002-10-07 Paul Eggert <eggert@twinsun.com>
* src/cat.c (cat):
Don't advance the write pointer past the end of the write buffer.
* src/sort.c (begfield, limfield): Likewise.
2002-10-07 Jim Meyering <jim@meyering.net>
* src/cat.c (simple_cat, cat): Adapt to new safe_read ABI.
* src/head.c (head_bytes, head_lines): Likewise.
2002-10-06 Jim Meyering <jim@meyering.net>
* src/dd.c (scanargs): Ensure that specified block sizes (specified
via ibs=N, obs=N, and bs=N) are no larger than SSIZE_MAX.
(skip, dd_copy): Adapt to new safe_read ABI.
* Makefile.maint (signatures): Define.
(%.sig): New rule.
(announcement): Depend on $(signatures).
* Makefile.maint (announcement): Output all URLs for detached
signatures, not just the last one from the previous loop.
2002-10-05 Jim Meyering <jim@meyering.net>
* Version 4.5.2.
* src/remove.c (remove_entry) [ROOT_CAN_UNLINK_DIRS]: With `rm -i DIR',
don't recurse into directory, DIR. Prompted by a report from
Leonardo Milano.
* tests/rm/i-no-r: New file/test, for the above fix.
* tests/rm/Makefile.am (TESTS): Add i-no-r.
* tests/tail-2/big-4gb: New file/test, for the fix of 2002-09-27.
* tests/tail-2/Makefile.am (TESTS): Add big-4gb.
2002-10-03 Jim Meyering <jim@meyering.net>
* src/rm.c (AUTHORS): Mark translatable string with `N_ (...)'.
* src/df.c (AUTHORS): Likewise.
* src/du.c (AUTHORS): Likewise.
* src/tail.c (AUTHORS): Likewise.
* src/touch.c (AUTHORS): Likewise.
2002-10-02 Jim Meyering <jim@meyering.net>
* Makefile.am (SUBDIRS): Remove `old'.
(EXTRA_DIST): List the files in old/.
* configure.ac (AC_CONFIG_FILES): Remove old/* names.
Suggestion from Akim Demaille.
2002-10-01 Jim Meyering <jim@meyering.net>
* src/sys2.h (SSIZE_MAX): Define.
2002-09-30 Jim Meyering <jim@meyering.net>
* src/csplit.c: Don't include stdlib.h here. It's already included
via system.h.
2002-09-29 Jim Meyering <jim@meyering.net>
* src/tr.c (find_bracketed_repeat): Rearrange pointer/integer
expression to avoid bogus warning from gcc.
* src/cat.c (simple_cat): Use a temporary to avoid bogus warnings.
(cat): Declare insize and outsize to be of type size_t, not int.
Rearrange pointer/integer expressions to avoid bogus warnings.
(main): Declare insize and outsize to be of type size_t, not int.
* src/tail.c (parse_options): Give a sensible diagnostic for
an invalid byte or line count. Reported by Mikko Tuumanen.
* src/touch.c (main): Split a long line.
* tests/du/Makefile.am (TESTS): Add slink.
* tests/du/slink: New test for system.h change of 2002-08-31.
In move mode, always first try to rename. Before, upon failure to
rename a directory, this code would never attempt to rename any
other file in that directory, but would thenceforth always copy.
On some systems (e.g., NetApp's OnTap-6.4), renaming a directory
may fail with EXDEV, yet renaming files within that directory to
a newly-created destination directory succeeds.
* src/copy.c (copy_internal): Remove local, move_mode;
use x->move_mode instead. Based on a patch from Tom Haynes.
2002-09-28 Jim Meyering <jim@meyering.net>
* src/split.c (FAIL_ONLY_ONE_WAY): New macro.
Factor out some duplication.
(main): Use it.
[case 'a']: Use strtoul rather than strtol to avoid compiler warnings.
* src/sort.c (begfield, limfield): Rearrange comparisons to avoid
compiler warnings.
(fillbuf, keycompare): Cast literal `-1' to size_t in comparisons,
to avoid compiler warnings.
* src/shred.c (dopass): Use a uintmax_t temporary to avoid bogus
compiler warnings.
Fix things so `mkdir -p' can create very deep directories, e.g.,
mkdir -p $(perl -e 'print "a/" x 40000') now works.
* src/mkdir.c (main): For --parents (-p), call make_path with the
entire directory name, so we don't ever require that file operations
like stat or chmod be performed on the entire command line argument.
* makepath.c (make_path): Restore umask *before* creating the final
component.
2002-09-27 Andreas Schwab <schwab@suse.de>
* src/tail.c (tail_bytes): Change type of bytes_remaining to off_t
to avoid overflow. Reported by Hans Lermen.
2002-09-26 Jim Meyering <jim@meyering.net>
* src/install.c (get_ids): Use strtoul, not strtol. Remove some casts.
2002-09-25 Jim Meyering <jim@meyering.net>
* src/test.c (eaccess): Change type of local `euid' from int to uid_t
and add a cast, to avoid a warning about `signed and unsigned type in
conditional expression'.
2002-09-22 Jim Meyering <jim@meyering.net>
* src/rmdir.c: Include "dirname.h", for declaration of
strip_trailing_slashes.
* src/stat.c (PRIdMAX, PRIuMAX): Remove definitions.
Now they're defined through system.h.
* src/cp-hash.c, src/dd.c, src/df.c, src/du.c, src/ls.c,
* src/stat.c, src/wc.c: Remove all inclusions of inttypes.h,
since it's already included from sys2.h via system.h.
* Use automake-1.6f. Regenerate dependent files.
* src/Makefile.am (PERL): Remove duplicate definition.
fmt's -s, -t, -c options didn't work properly for long lines.
Since get_line may end up calling put_paragraph (for long lines),
be sure to set global, `other_indent', before it is used there.
* src/fmt.c (set_other_indent): New function, factored out of...
(get_paragraph): ... here. Call it.
(get_line): Call set_other_indent before calling flush_paragraph,
which calls fmt_paragraph, which in turn calls put_paragraph,
which uses other_indent.
* tests/fmt/Makefile.am (TESTS): Add long-line.
* tests/fmt/long-line: New file/test, for the above fix.
2002-09-21 Jim Meyering <jim@meyering.net>
* src/od.c: No longer include deprecated <values.h>.
It was required solely for now-removed reference to BITSPERBYTE.
* src/install.c: Likewise.
Suggestion from Bruno Haible.
2002-09-06 Andreas Schwab <schwab@suse.de>
`rmdir -p dir-specified-with-trailing-slash/' would fail.
* src/rmdir.c (remove_parents): Strip trailing slashes.
2002-09-20 Jim Meyering <jim@meyering.net>
* tests/rmdir/t-slash: New file/test, for the above fix.
* tests/rmdir/Makefile.am (TESTS): Add t-slash.
* Makefile.maint (announcement): Arrange to gpg-sign the message.
Add a URL for each detached signature file.
2002-09-07 Bruno Haible <bruno@clisp.org>
* configure.ac: Add need-ngettext to AM_GNU_GETTEXT invocation.
2002-09-18 Jim Meyering <jim@meyering.net>
`od -t x8' used the wrong (`l'-prefixed) printf format.
Likewise for the o8 and u8 formats.
* src/od.c (ISPEC_TO_FORMAT): Define macro.
(decode_one_format): Use PRIdMAX, PRIoMAX, etc. for LONG_LONG.
Reported by Arun Sharma.
2002-09-17 Jim Meyering <jim@meyering.net>
* src/sys2.h (PRIdMAX, PRIoMAX, PRIuMAX, PRIxMAX): Define if necessary.
From gettext's intl/loadmsgcat.c.
* tests/od/x8: New file/test, for the above fix.
* tests/od/Makefile.am (TESTS): Add x8.
2002-09-15 Jim Meyering <jim@meyering.net>
* Use autoconf-2.54. Regenerate dependent files.
* src/csplit.c (get_format_width): Add cast to avoid
warning about `signed and unsigned type in conditional expression'.
2002-09-14 Jim Meyering <jim@meyering.net>
* src/who.c (print_user): Change type of local to size_t
to avoid warnings about `comparison between signed and unsigned'.
* src/ptx.c (generate_all_output): Likewise.
* src/dd.c (main, skip): Add casts to avoid warnings about
`comparison between signed and unsigned'.
* src/id.c (print_full_info, print_group_list): Add casts to avoid
warnings about `signed and unsigned type in conditional expression'.
* src/md5sum.c: Change type of global, digest_hex_bytes, to size_t
to avoid warnings about `comparison between signed and unsigned'.
(split_3): Change parameter names to be readable and add comment.
Clean up the test for whether a line may be ignored.
2002-09-13 Jim Meyering <jim@meyering.net>
* src/printf.c (main): Handle leading command line argument of `--'.
Reported by Raul: DervishD <raul@pleyades.net>
* tests/misc/printf: New file: test for the above.
* tests/misc/Makefile.am (TESTS): Add printf.
* src/date.c (usage): Explain that %S's range of [0..60] is required --
rather than 0..59 -- to accommodate the occasional positive leap second.
Reported by Richard Neill.
2002-09-12 Jim Meyering <jim@meyering.net>
* src/Makefile.am (nanosec_libs): Define.
(sleep_LDADD, tail_LDADD): Use it here.
Factor nanosleep-related code into ../lib/xnanosleep.c.
* src/sleep.c: Include xnanosleep.h.
Factor out fenv.h-related code.
(timespec_subtract): Remove function.
(main): Remove code that deals with computing start and stop times
as well as the loop around nanosleep. Now that's in xnanosleep.c.
Allow S (in --sleep-interval=S) to be a floating point value.
* src/tail.c: Include xnanosleep.h and xstrtod.h.
Move declaration of global variable, sleep_interval, to ...
(main): ...here.
(usage): Update description of --sleep-interval option.
(tail_forever): New parameter, sleep_interval. Update caller.
Use xnanosleep, rather than sleep.
(parse_options): New parameter, sleep_interval. Update caller.
Use xstrtod, now that we accept floating point values.
Prompted by a patch from Augey Mikus.
2002-09-06 Jim Meyering <jim@meyering.net>
* src/remove.c (prompt): Change comment to give a better note to
translators. From Michael Piefel.
2002-09-02 Jim Meyering <jim@meyering.net>
* README: A good problem report/patch includes diffs against
the most recent test release.
* src/pathchk.c (NEED_PATHCONF_WRAPPER): Define.
(pathconf_wrapper): Define only if NEED_PATHCONF_WRAPPER is set.
* src/kill.c (print_table_row): Use an unsigned type for widths
to avoid warning about comparison between signed and unsigned.
(list_signals): Likewise.
* src/od.c (skip): Add a cast to avoid warning about comparison
between signed and unsigned.
* src/install.c (get_ids): Likewise. Also rearrange range-checking
comparisons to make them more readable.
2002-09-01 Jim Meyering <jim@meyering.net>
* Version 4.5.1.
2002-08-31 Jim Meyering <jim@meyering.net>
Symlinks were always reported as using 0 blocks.
* src/system.h (ST_NBLOCKS): Don't depend on file type.
This reverts the change of 2000-01-30.
Based on a report and patch from Neil Brown via Michael Stone.
This fixes Debian Bug#156358.
* Most files: Change `exit (0)' to `exit (EXIT_SUCCESS)',
`exit (1)' to `exit (EXIT_FAILURE)', and
`usage (1)' to `usage (EXIT_FAILURE)'.
* chgrp.c, chmod.c, chown.c, chroot.c, cp.c, date.c, dd.c, du.c,
* hostname.c, id.c, install.c, ln.c, mkdir.c, mkfifo.c, mknod.c,
* nice.c, pinky.c, printf.c, pwd.c, shred.c, sleep.c, stty.c,
* su.c, tac-pipe.c, tail.c, tee.c, touch.c, uname.c, uptime.c,
* users.c, who.c: Change `error (1, ...' to `error (EXIT_FAILURE, ...'.
But don't change `error (0, ...' to `error (EXIT_SUCCESS, ...', since
error never exits successfully.
2002-08-29 Jim Meyering <jim@meyering.net>
* src/remove.c (remove_cwd_entries): Use closedir (not CLOSEDIR)
when ignoring any return value.
* src/remove.c (remove_cwd_entries): Detect and diagnose readdir
failures. On some systems (at least EMC Celerra and Solaris5.8),
this appears to be necessary.
(is_empty_dir): Likewise. Also, always close directory handle.
* src/ls.c (print_dir): Likewise.
(print_dir): Rename local variable: reading -> dirp.
Reported by Mike Coleman.
2002-08-28 Jim Meyering <jim@meyering.net>
* src/remove.c (remove_cwd_entries): Use CLOSEDIR, not closedir.
Give a diagnostic and fail if closedir fails.
2002-08-26 Jim Meyering <jim@meyering.net>
* Makefile.am (THANKS-to-translators): New rule.
(EXTRA_DIST): Add both THANKS-to-translators and THANKStt.in.
* THANKStt.in: New file.
* src/cat.c (close_stdout_wrapper): New, kludgey, function and
file-scoped global.
(main): Register it with atexit.
Close STDOUT_FILENO, to avoid a problem when writing to
/dev/audio on at least Solaris 2.7 and 2.8 systems.
Reported by Shing-Shong Shei.
2002-08-25 Jim Meyering <jim@meyering.net>
* src/cat.c (main): Close STDIN_FILENO rather than a literal `0'.
* src/tac.c (main): Likewise.
* src/tail.c (main): Likewise.
* src/tee.c (main): Likewise.
* src/tr.c (main): Likewise.
* src/wc.c (main): Likewise.
2002-08-20 Jim Meyering <jim@meyering.net>
* tests/mv/setup: Rewrite not to use `: ${VAR=not_set}' paradigm.
2002-08-10 Paul Eggert <eggert@twinsun.com>
* src/nohup.sh: Don't use "exec --"; it's not portable and
shouldn't be needed.
2002-08-09 Jim Meyering <jim@meyering.net>
* src/pr.c (main): Don't ignore -COLUMN if it's the last option.
(usage): Clarify help text for the -COLUMN option.
Patch by Padraig Brady.
* tests/pr/Test.pm [col-last]: New test for the above.
* configure.ac: Start with version 4.5.1, chosen so that it's larger
than the latest version numbers of the component packages.
* man/Makefile.am (check-x-vs-1): Set and export PATH so we use
programs in ../src.
2002-08-08 Jim Meyering <jim@meyering.net>
* src/date.c: Guard inclusion of <langinfo.h> with
`#if HAVE_LANGINFO_CODESET', not `#if HAVE_LANGINFO_H'.
* src/sort.c: Likewise.
Patch by GOTO Masanori.
2002-08-05 Paul Eggert <eggert@twinsun.com>
Fix some minor time-related bugs with POSIX time arguments.
Some valid time stamps were being rejected (notably -1, and
time stamps before 1900 on 64-bit hosts). And some invalid
time stamps were being accepted, e.g. September 31.
* src/date.c (main): Adjust to posixtime signature change.
* src/touch.c (main): Likewise. Remove unnecessary initialization.
Use localtime, not posixtm, to warn about obsolete "touch".
2002-08-05 Jim Meyering <jim@meyering.net>
* tests/misc/Makefile.am (TESTS): Add nice and pathchk1.
2002-08-04 Jim Meyering <jim@meyering.net>
* src/Makefile.am (check-README): New target/rule.
(check): Depend on it.
* configure.ac (AC_CONFIG_FILES): Add old/Makefile and old/*/Makefile.
2002-08-03 Jim Meyering <jim@meyering.net>
* Makefile.am (SUBDIRS): Add old.
* old/: New directory, containing legacy ChangeLog* and NEWS files
from the fileutils, sh-utils, and textutils packages.
* src/Makefile.am (AM_INSTALLCHECK_STD_OPTIONS_EXEMPT): Set to false.
2002-08-02 Paul Eggert <eggert@twinsun.com>
* NEWS, doc/coreutils.texi: uniq now obeys LC_COLLATE.
* src/uniq.c: Include hard-locale.h, xmemcoll.h.
(hard_LC_COLLATE): New var.
(different): Args are now char *, not const char *.
Use xmemcoll instead of memcmp to compare lines, so that
LC_COLLATE has effect. However, use memcmp if it is an
easy locale.
(check_file): Do not include newline in comparison, so that
xmemcoll has a byte to stomp on temporarily.
(main): Set hard_LC_COLLATE.
2002-07-29 Jim Meyering <jim@meyering.net>
* Makefile.am (SUBDIRS): Remove djgpp, for now.
2002-07-08 Jim Meyering <jim@meyering.net>
* src/Makefile.am (uninstall-local): Search for @GNU_PACKAGE@,
rather than the hard-coded `sh-utils'.
2002-07-01 Jim Meyering <jim@meyering.net>
* configure.ac: Merge the three files from fileutils,
textutils, and sh-utils.
* Makefile.am: Likewise.
* src/Makefile.am: Likewise.
Local Variables:
version-control: never
End:

25
INSTALL
View File

@@ -1,3 +1,9 @@
Copyright 1994, 1995, 1996, 1999, 2000, 2001 Free Software Foundation,
Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
@@ -70,7 +76,7 @@ them in the environment. You can do that on the command line like this:
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
*Note Environment Variables::, for more details.
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
@@ -84,10 +90,10 @@ the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you have to use a `make' that does not support the `VPATH'
variable, you have to compile the package for one architecture at a time
in the source code directory. After you have installed the package for
one architecture, use `make distclean' before reconfiguring for another
architecture.
variable, you have to compile the package for one architecture at a
time in the source code directory. After you have installed the
package for one architecture, use `make distclean' before reconfiguring
for another architecture.
Installation Names
==================
@@ -141,8 +147,7 @@ type, such as `sun4', or a canonical name which has the form:
where SYSTEM can have one of these forms:
OS
KERNEL-OS
OS KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
@@ -172,11 +177,11 @@ default values for variables like `CC', `cache_file', and `prefix'.
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Environment Variables
=====================
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to configure. However, some packages may run
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:

48
Makefile.am Normal file
View File

@@ -0,0 +1,48 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
SUBDIRS = lib src doc man m4 po tests
EXTRA_DIST = Makefile.cfg Makefile.maint GNUmakefile \
.kludge-stamp .prev-version THANKS-to-translators THANKStt.in \
announce-gen \
old/fileutils/ChangeLog \
old/fileutils/ChangeLog-1997 \
old/sh-utils/ChangeLog \
old/sh-utils/ChangeLog.0 \
old/textutils/ChangeLog \
old/fileutils/NEWS \
old/sh-utils/NEWS \
old/textutils/NEWS
install-root:
cd src && $(MAKE) $@
ACLOCAL_AMFLAGS = -I m4
# Some tests always need root privileges, others need them only sometimes.
check-root:
cd tests && $(MAKE) $@
distcheck-hook:
$(MAKE) my-distcheck
# Just prior to distribution, ...
# transform the automake-generated rule that runs `rm -f rm'.
# On some systems, that command would fail with a diagnostic like
# `rm: cannot unlink `rm': Text file busy' when `.' appears so early
# in the shell's search path that running `rm' would run the `rm'
# executable in the current directory.
# Similarly, adjust the clean-binPROGRAMS rule.
rm_subst = \
s!(rm -f (rm|\$$\(bin_PROGRAMS\)))$$!$$1 > /dev/null 2>&1 || /bin/$$1!
.kludge-stamp: $(srcdir)/src/Makefile.in
perl -pi -e '$(rm_subst)' $(srcdir)/src/Makefile.in
touch $@
THANKS-to-translators: po/LINGUAS THANKStt.in
( \
cat $(srcdir)/THANKStt.in; \
for lang in `cat po/LINGUAS`; do \
echo http://www.iro.umontreal.ca/contrib/po/HTML/team-$$lang.html; \
done; \
) > $@-tmp && mv $@-tmp $@

View File

@@ -1,23 +1,32 @@
# -*- makefile -*-
## Customize Makefile.maint.
# List the hosts to which test releases are copied.
# `a' and `b' are merely placeholders, and correspond to the
# `a_' and `b_' prefixes of the following variables.
hosts = a b
a_host = alpha.gnu.org
b_host = freefriends.org
# If the version number matches /^\d+.\d+.\d$/ or /[a-z]$/, use alpha.gnu.org.
# Otherwise, use ftp.gnu.org.
gnu_rel_host := \
$(shell perl -e \
'print "$(VERSION)" =~ /^(\d\.\d\.\d|.*[a-z])$$/ ? "alpha" : "ftp"')
alpha_subdir = gnu/fetish
a_url_dir = $(alpha_subdir)
b_url_dir = $(alpha_subdir)
url_dir_list = \
ftp://$(gnu_rel_host).gnu.org/gnu/fetish \
http://fetish.sf.net \
# Files that `make wget-update' should update.
# Files to update automatically.
wget_files = \
$(srcdir)/config.guess \
$(srcdir)/config.sub \
$(srcdir)/doc/texinfo.tex \
$(srcdir)/src/ansi2knr.c
$(srcdir)/config/config.guess \
$(srcdir)/config/config.sub \
$(srcdir)/config/texinfo.tex
cvs_files = \
$(srcdir)/config/elisp-comp \
$(srcdir)/config/mdate-sh \
$(srcdir)/config/missing \
$(srcdir)/config/install-sh \
$(srcdir)/config/mkinstalldirs
# $(srcdir)/src/ansi2knr.c
local_updates = wget-update cvs-update
###############################################

608
Makefile.in Normal file
View File

@@ -0,0 +1,608 @@
# Makefile.in generated by automake 1.7.1b from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_triplet = @host@
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FESETROUND_LIBM = @FESETROUND_LIBM@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
GLIBC21 = @GLIBC21@
GMSGFMT = @GMSGFMT@
GNU_PACKAGE = @GNU_PACKAGE@
HELP2MAN = @HELP2MAN@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
KMEM_GROUP = @KMEM_GROUP@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
LIB_CRYPT = @LIB_CRYPT@
LIB_NANOSLEEP = @LIB_NANOSLEEP@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
MSGMERGE = @MSGMERGE@
NEED_SETGID = @NEED_SETGID@
OBJEXT = @OBJEXT@
OPTIONAL_BIN_PROGS = @OPTIONAL_BIN_PROGS@
OPTIONAL_BIN_ZCRIPTS = @OPTIONAL_BIN_ZCRIPTS@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
POSUB = @POSUB@
POW_LIB = @POW_LIB@
RANLIB = @RANLIB@
SEQ_LIBM = @SEQ_LIBM@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SQRT_LIBM = @SQRT_LIBM@
STRIP = @STRIP@
U = @U@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
YACC = @YACC@
ac_ct_CC = @ac_ct_CC@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__quote = @am__quote@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
SUBDIRS = lib src doc man m4 po tests
EXTRA_DIST = Makefile.cfg Makefile.maint GNUmakefile \
.kludge-stamp .prev-version THANKS-to-translators THANKStt.in \
announce-gen \
old/fileutils/ChangeLog \
old/fileutils/ChangeLog-1997 \
old/sh-utils/ChangeLog \
old/sh-utils/ChangeLog.0 \
old/textutils/ChangeLog \
old/fileutils/NEWS \
old/sh-utils/NEWS \
old/textutils/NEWS
ACLOCAL_AMFLAGS = -I m4
# Just prior to distribution, ...
# transform the automake-generated rule that runs `rm -f rm'.
# On some systems, that command would fail with a diagnostic like
# `rm: cannot unlink `rm': Text file busy' when `.' appears so early
# in the shell's search path that running `rm' would run the `rm'
# executable in the current directory.
# Similarly, adjust the clean-binPROGRAMS rule.
rm_subst = \
s!(rm -f (rm|\$$\(bin_PROGRAMS\)))$$!$$1 > /dev/null 2>&1 || /bin/$$1!
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
DIST_SOURCES =
RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
ps-recursive install-info-recursive uninstall-info-recursive \
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive
DIST_COMMON = README ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL \
Makefile.am Makefile.in NEWS THANKS TODO aclocal.m4 config.hin \
config/ChangeLog config/config.guess config/config.rpath \
config/config.sub config/depcomp config/install-sh \
config/mdate-sh config/missing config/mkinstalldirs \
config/texinfo.tex configure configure.ac
DIST_SUBDIRS = $(SUBDIRS)
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnits Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(srcdir)/configure: $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): configure.ac m4/acl.m4 m4/afs.m4 m4/assert.m4 m4/bison.m4 m4/boottime.m4 m4/c-stack.m4 m4/check-decl.m4 m4/chown.m4 m4/codeset.m4 m4/d-ino.m4 m4/d-type.m4 m4/dirfd.m4 m4/dos.m4 m4/error.m4 m4/fpending.m4 m4/fstypename.m4 m4/fsusage.m4 m4/ftruncate.m4 m4/getcwd.m4 m4/getgroups.m4 m4/getline.m4 m4/gettext.m4 m4/gettimeofday.m4 m4/glibc.m4 m4/glibc21.m4 m4/group-member.m4 m4/host-os.m4 m4/iconv.m4 m4/intdiv0.m4 m4/inttypes-pri.m4 m4/inttypes.m4 m4/isc-posix.m4 m4/jm-glibc-io.m4 m4/jm-macros.m4 m4/jm-mktime.m4 m4/jm-winsz1.m4 m4/jm-winsz2.m4 m4/lchown.m4 m4/lcmessage.m4 m4/lib-check.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/link-follow.m4 m4/longlong.m4 m4/ls-mntd-fs.m4 m4/lstat.m4 m4/mbrtowc.m4 m4/mbswidth.m4 m4/memcmp.m4 m4/mkdir-slash.m4 m4/mkstemp.m4 m4/nanosleep.m4 m4/perl.m4 m4/prereq.m4 m4/progtest.m4 m4/putenv.m4 m4/regex.m4 m4/rename.m4 m4/rmdir-errno.m4 m4/search-libs.m4 m4/st_dm_mode.m4 m4/st_mtim.m4 m4/stat.m4 m4/stdbool.m4 m4/strftime.m4 m4/timespec.m4 m4/unlink-busy.m4 m4/uptime.m4 m4/utimbuf.m4 m4/utime.m4 m4/utimes.m4 m4/xstrtoimax.m4 m4/xstrtoumax.m4
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h1
@if test ! -f $@; then \
rm -f stamp-h1; \
$(MAKE) stamp-h1; \
else :; fi
stamp-h1: $(srcdir)/config.hin $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h
$(srcdir)/config.hin: $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOHEADER)
touch $(srcdir)/config.hin
distclean-hdr:
-rm -f config.h stamp-h1
uninstall-info-am:
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ETAGS = etags
ETAGSFLAGS =
CTAGS = ctags
CTAGSFLAGS =
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.hin $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) config.hin $(LISP) $(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)$$tags$$unique" \
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.hin $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) config.hin $(LISP) $(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 "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
top_distdir = .
distdir = $(PACKAGE)-$(VERSION)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
distdir: $(DISTFILES)
@case `sed 15q $(srcdir)/NEWS` in \
*"$(VERSION)"*) : ;; \
*) \
echo "NEWS not updated; not releasing" 1>&2; \
exit 1;; \
esac
$(am__remove_distdir)
mkdir $(distdir)
$(mkinstalldirs) $(distdir)/config $(distdir)/old/fileutils $(distdir)/old/sh-utils $(distdir)/old/textutils $(distdir)/po
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkinstalldirs) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d $(distdir)/$$subdir \
|| mkdir $(distdir)/$$subdir \
|| exit 1; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$(top_distdir)" \
distdir=../$(distdir)/$$subdir \
distdir) \
|| exit 1; \
fi; \
done
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
$(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist dist-all: distdir
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
$(am__remove_distdir)
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/=build
mkdir $(distdir)/=inst
chmod a-w $(distdir)
dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& $(MAKE) $(AM_MAKEFLAGS) distcheck-hook \
&& cd $(distdir)/=build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
--with-included-gettext \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && $(mkinstalldirs) "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
&& rm -f $(distdir).tar.gz \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
@echo "$(distdir).tar.gz is ready for distribution" | \
sed 'h;s/./=/g;p;x;p;x'
distuninstallcheck:
cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile config.h
installdirs: installdirs-recursive
installdirs-am:
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
dvi: dvi-recursive
dvi-am:
info: info-recursive
info-am:
install-data-am:
install-exec-am:
install-info: install-info-recursive
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf autom4te.cache
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-info-am
uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
clean-generic clean-recursive ctags ctags-recursive dist \
dist-all dist-bzip2 dist-gzip distcheck distclean \
distclean-generic distclean-hdr distclean-recursive \
distclean-tags distcleancheck distdir distuninstallcheck dvi \
dvi-am dvi-recursive info info-am info-recursive install \
install-am install-data install-data-am install-data-recursive \
install-exec install-exec-am install-exec-recursive \
install-info install-info-am install-info-recursive install-man \
install-recursive install-strip installcheck installcheck-am \
installdirs installdirs-am installdirs-recursive \
maintainer-clean maintainer-clean-generic \
maintainer-clean-recursive mostlyclean mostlyclean-generic \
mostlyclean-recursive pdf pdf-am pdf-recursive ps ps-am \
ps-recursive tags tags-recursive uninstall uninstall-am \
uninstall-info-am uninstall-info-recursive uninstall-recursive
install-root:
cd src && $(MAKE) $@
# Some tests always need root privileges, others need them only sometimes.
check-root:
cd tests && $(MAKE) $@
distcheck-hook:
$(MAKE) my-distcheck
.kludge-stamp: $(srcdir)/src/Makefile.in
perl -pi -e '$(rm_subst)' $(srcdir)/src/Makefile.in
touch $@
THANKS-to-translators: po/LINGUAS THANKStt.in
( \
cat $(srcdir)/THANKStt.in; \
for lang in `cat po/LINGUAS`; do \
echo http://www.iro.umontreal.ca/contrib/po/HTML/team-$$lang.html; \
done; \
) > $@-tmp && mv $@-tmp $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@@ -2,7 +2,7 @@
# This Makefile fragment is shared between fileutils, sh-utils, textutils,
# CPPI, Bison, and Autoconf.
## Copyright 2001 Free Software Foundation, Inc.
## Copyright (C) 2001-2002 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,9 +22,6 @@
# Do not save the original name or timestamp in the .tar.gz file.
GZIP_ENV = '--no-name --best'
# Automake 1.4 does not define AMTAR.
AMTAR ?= $(TAR)
CVS = cvs
prev_version_file ?= .prev-version
@@ -53,9 +50,35 @@ release_archive_dir ?= ../release
# Checks that don't require cvs.
# Run `changelog-check' last, as previous test may reveal problems requiring
# new ChangeLog entries.
local-check: po-check copyright-check writable-files \
m4-check author_mark_check \
changelog-check
local-check = \
po-check copyright-check writable-files m4-check author_mark_check \
changelog-check strftime-check header-check
.PHONY: $(local-check)
# Make sure C source files in src/ don't include xalloc.h directly,
# since they all already include it via sys2.h.
# It's not a big deal -- just aesthetics.
header-check:
if test -f $(srcdir)/src/sys2.h; then \
if grep 'xalloc\.h' $(srcdir)/src/*.c; then \
exit 1; \
fi; \
fi
# Ensure that date's --help output stays in sync with the info
# documentation for GNU strftime. The only exception is %N,
# which date accepts but GNU strftime does not.
extract_char = sed 's/^[^%][^%]*%\(.\).*/\1/'
strftime-check:
if test -f $(srcdir)/src/date.c; then \
grep '^ %. ' $(srcdir)/src/date.c | sort \
| $(extract_char) > $@-src; \
{ echo N; \
info libc date calendar format | grep '^ `%.'\' \
| $(extract_char); } | sort > $@-info; \
diff -u $@-src $@-info || exit 1; \
rm -f $@-src $@-info; \
fi
changelog-check:
if head ChangeLog | grep 'Version $(VERSION)' >/dev/null; then \
@@ -74,7 +97,16 @@ m4-check:
po-check:
if test -f po/POTFILES.in; then \
grep -E -v '^(#|$$)' po/POTFILES.in | sort > $@-1; \
grep -E -l '\b_\(' lib/*.c src/*.c | sort > $@-2; \
files=; \
for file in lib/*.[chly] src/*.[chly]; do \
case $$file in \
*.[ch]) \
base=`expr " $$file" : ' \(.*\)\..'`; \
{ test -f $$base.l || test -f $$base.y; } && continue;; \
esac; \
files="$$files $$file"; \
done; \
grep -E -l '\bN?_\([^)"]*("|$$)' $$files | sort > $@-2; \
diff -u $@-1 $@-2 || exit 1; \
rm -f $@-1 $@-2; \
fi
@@ -139,7 +171,7 @@ maintainer-distcheck: changelog-check
# 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: local-check cvs-check maintainer-distcheck
cvs-dist: $(local-check) cvs-check maintainer-distcheck
$(CVS) update po
$(CVS) tag -c $(this-cvs-tag)
$(MAKE) dist
@@ -158,7 +190,7 @@ null_AM_MAKEFLAGS = \
# and building with CFLAGS='-Wformat -Werror' causes any format warning to be
# treated as a failure.
t=./=test
my-distcheck: local-check
my-distcheck: $(local-check)
-rm -rf $(t)
mkdir $(t)
GZIP=$(GZIP_ENV) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz
@@ -177,19 +209,15 @@ my-distcheck: local-check
echo "$(distdir).tar.gz is ready for distribution"; \
echo "========================"
# This must be the same name on both hosts.
# Make it a symlink that points to the right place.
real_dir = fetish-ftp
url_dir_list = $(foreach x,$(hosts),ftp://$($(x)_host)/$($(x)_url_dir))
tgz-md5 = $(shell md5sum < $(my_distdir).tar.gz|sed 's/ -//')
tgz-sha1 = $(shell sha1sum < $(my_distdir).tar.gz|sed 's/ -//')
bz2-md5 = $(shell md5sum < $(my_distdir).tar.bz2|sed 's/ -//')
bz2-sha1 = $(shell sha1sum < $(my_distdir).tar.bz2|sed 's/ -//')
tgz-size = $(shell du --human $(my_distdir).tar.gz|sed 's/\([Mk]\).*/ \1B/')
bz2-size = $(shell du --human $(my_distdir).tar.bz2|sed 's/\([Mk]\).*/ \1B/')
xd-size = $(shell du --human $(xd-delta)|sed 's/\([Mk]\).*/ \1B/')
xdelta-md5 = $(shell md5sum < $(xd-delta)|sed 's/ -//')
xdelta-sha1 = $(shell sha1sum < $(xd-delta)|sed 's/ -//')
tgz-size = $(shell du --human $(my_distdir).tar.gz|sed 's/\([MkK]\).*/ \1B/')
bz2-size = $(shell du --human $(my_distdir).tar.bz2|sed 's/\([MkK]\).*/ \1B/')
xd-size = $(shell du --human $(xd-delta)|sed 's/\([MkK]\).*/ \1B/')
rel-check:
tarz=/tmp/rel-check-tarz-$$$$; \
@@ -203,62 +231,90 @@ rel-check:
prev-tgz = $(PACKAGE)-$(PREV_VERSION).tar.gz
xd-delta = $(PACKAGE)-$(PREV_VERSION)-$(VERSION).xdelta
GZIP = gzip
BZIP2 = bzip2
$(my_distdir).tar.bz2: $(my_distdir).tar.gz
$(GZIP) -dc $< > $(my_distdir).tar
rm -f $@
$(BZIP2) -9 $(my_distdir).tar
news-r1 = /^[^ ].*$(THIS_VERSION_REGEXP)[]:]/
news-r2 = /^[^ ].*$(PREV_VERSION_REGEXP)[]:]/
signatures ?= $(distdir).tar.bz2.sig $(distdir).tar.gz.sig
%.sig: %
gpg --detach-sign $<
# This is useful when sending via GNUS in Emacs.
mail_gpg_sign_cookie ?= echo '<\#secure method=pgpmime mode=sign>'
rel-files = $(xd-delta) $(distdir).tar.bz2 $(distdir).tar.gz
announcement: NEWS ChangeLog $(rel-files)
@( \
echo Subject: $(my_distdir) released; \
echo; \
echo FIXME: put comments here; \
echo; \
for url in $(url_dir_list); do \
echo " $$url/$(my_distdir).tar.gz ($(tgz-size))"; \
echo " $$url/$(my_distdir).tar.bz2 ($(bz2-size))"; \
done; \
echo; \
echo And here are xdelta-style diffs; \
echo; \
for url in $(url_dir_list); do \
echo " $$url/$(xd-delta) ($(xd-size))"; \
done; \
echo; \
echo "Here are the MD5 and SHA1 signatures for the compressed tar files:"; \
echo; \
echo "$(tgz-md5) $(my_distdir).tar.gz"; \
echo "$(bz2-md5) $(my_distdir).tar.bz2"; \
echo "$(tgz-sha1) $(my_distdir).tar.gz"; \
echo "$(bz2-sha1) $(my_distdir).tar.bz2"; \
echo; \
echo NEWS:; \
sed -n "/$(THIS_VERSION_REGEXP)[]:]/,/$(PREV_VERSION_REGEXP)[]:]/p" NEWS \
| grep -v '^\['; \
echo; \
echo ChangeLog entries:; \
find . -name ChangeLog -maxdepth 2 \
| xargs $(CVS) diff -up -r$(prev-cvs-tag) -rHEAD \
| sed -n 's/^+//p' \
| perl -ne 'm!^\+\+ (\./)?! or print,next;' \
announcement: NEWS ChangeLog $(rel-files) $(signatures)
@( \
./announce-gen \
--package=$(PACKAGE) \
--prev=$(PREV_VERSION) \
--curr=$(VERSION) \
--rel=$(release_archive_dir) \
$(addprefix --url-dir=, $(url_dir_list)); \
echo; \
echo NEWS:; \
sed -n "$(news-r1),$(news-r2)p" NEWS \
| grep -v '^\['; \
echo; \
echo ChangeLog entries:; \
find . -name ChangeLog -maxdepth 2 \
| 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"'; \
)
## ---------------- ##
## Updating files. ##
## ---------------- ##
WGET = wget
ftp-gnu = ftp://ftp.gnu.org/gnu
# Use mv, if you don't have/want move-if-change.
move_if_change ?= move-if-change
# --------------------- #
# Updating everything. #
# --------------------- #
.PHONY: update
local_updates ?= wget-update cvs-update po-update
update: $(local_updates)
# ------------------- #
# Updating PO files. #
# ------------------- #
po_repo = http://www.iro.umontreal.ca/contrib/po/maint/$(PACKAGE)
.PHONY: do-po-update po-update
do-po-update:
tmppo=/tmp/$(PACKAGE)-$(VERSION)-po &&\
rm -rf $$tmppo && \
mkdir $$tmppo && \
(cd $$tmppo && $(WGET) -r -l1 -nd --no-parent -A '*.po' $(po_repo)) &&\
cp $$tmppo/*.po po
cd po && $(MAKE) update-po
$(MAKE) po-check
po-update:
if test -d "po"; then \
$(MAKE) do-po-update; \
fi
# -------------------------- #
# Updating GNU build tools. #
# -------------------------- #
# The following pseudo table associates a local directory and a URL
# with each of the files that belongs to some other package and is
# regularly updated from the specified URL.
wget_files ?= $(srcdir)/config.guess $(srcdir)/config.sub \
wget_files ?= $(srcdir)/config/config.guess \
$(srcdir)/config/config.sub \
$(srcdir)/src/ansi2knr.c \
$(srcdir)/doc/texinfo.tex
$(srcdir)/config/texinfo.tex
get-targets = $(patsubst %, get-%, $(wget_files))
config.guess-url_prefix = $(ftp-gnu)/config/
@@ -279,22 +335,26 @@ $(get-targets):
$(WGET) $(url) -O $(target).t \
&& $(move_if_change) $(target).t $(target)
automake_repo=:pserver:anoncvs@anoncvs.cygnus.com:/cvs/automake
cvs_files ?= $(srcdir)/config/depcomp $(srcdir)/config/missing $(srcdir)/config/mkinstalldirs \
$(srcdir)/config/install-sh $(srcdir)/src/ansi2knr.c
automake_repo=:pserver:anoncvs:anoncvs@sources.redhat.com:/cvs/automake
.PHONY: wget-update
wget-update: $(get-targets)
for f in depcomp missing mkinstalldirs; do \
test -f $$f || continue; \
echo checking out $$f...; \
$(CVS) -d $(automake_repo) co -p automake/lib/$$f > $$f.t \
&& $(move_if_change) $$f.t $$f; \
.PHONY: cvs-update
cvs-update:
for f in $(cvs_files); do \
test -f $$f || { echo "*** skipping $$f" 1>&2; continue; }; \
file=$$(basename $$f); \
echo checking out $$file...; \
$(CVS) -d $(automake_repo) co -p automake/lib/$$file> $$f.t \
&& $(move_if_change) $$f.t $$f; \
done
define emit-rsync-commands
define emit-upload-commands
echo =====================================
echo =====================================
echo 'for host in $(a_host) $(b_host); do \'
echo ' rsync -e ssh --pro -av $(xd-delta) $(my_distdir).tar.bz2 \'
echo ' $(my_distdir).tar.gz $$host:$(real_dir); done'
echo upload $(PACKAGE) $(PREV_VERSION) $(VERSION)
echo '# send the /tmp/announcement e-mail'
echo =====================================
echo =====================================
@@ -303,7 +363,9 @@ endef
$(xd-delta): $(release_archive_dir)/$(prev-tgz) $(distdir).tar.gz
xdelta delta -9 $^ $@ || :
alpha: local-check
.PHONY: alpha release
alpha: release
release: $(local-check)
$(MAKE) cvs-dist
$(MAKE) $(xd-delta)
$(MAKE) -s announcement > /tmp/announce-$(my_distdir)
@@ -311,4 +373,4 @@ alpha: local-check
chmod a-w $(rel-files)
echo $(VERSION) > $(prev_version_file)
$(CVS) ci -m. $(prev_version_file)
@$(emit-rsync-commands)
@$(emit-upload-commands)

46
NEWS Normal file
View File

@@ -0,0 +1,46 @@
[4.5.4]
* cp no longer fails to parse options like this: --preserve=mode,ownership
* `ls --color -F symlink-to-dir' works properly
* ls is much more efficient on directories with valid dirent.d_type.
* stty supports all baud rates defined in linux-2.4.19.
* `du symlink-to-dir/' would improperly remove the trailing slash
* `du ""' would evoke a bounds violation.
* In the unlikely event that running `du /' resulted in `stat ("/", ...)'
failing, du would give a diagnostic about `' (empty string) rather than `/'.
* printf: a hexadecimal escape sequence has at most two hex. digits, not three.
* The following features have been added to the --block-size option
and similar environment variables of df, du, and ls.
- A leading "'" generates numbers with thousands separators.
For example:
$ ls -l --block-size="'1" file
-rw-rw-r-- 1 eggert src 47,483,707 Sep 24 23:40 file
- A size suffix without a leading integer generates a suffix in the output.
For example:
$ ls -l --block-size="K"
-rw-rw-r-- 1 eggert src 46371K Sep 24 23:40 file
* ls's --block-size option now affects file sizes in all cases, not
just for --block-size=human-readable and --block-size=si. Fractional
sizes are now always rounded up, for consistency with df and du.
* df now displays the block size using powers of 1000 if the requested
block size seems to be a multiple of a power of 1000.
* nl no longer gets a segfault when run like this `yes|nl -s%n'
[4.5.3]
* du --dereference-args (-D) no longer fails in certain cases
* `ln --target-dir=DIR' no longer fails when given a single argument
[4.5.2]
* `rm -i dir' (without --recursive (-r)) no longer recurses into dir
* `tail -c N FILE' now works with files of size >= 4GB
* `mkdir -p' can now create very deep (e.g. 40,000-component) directories
* rmdir -p dir-with-trailing-slash/ no longer fails
* printf now honors the `--' command line delimiter
* od's 8-byte formats x8, o8, and u8 now work
* tail now accepts fractional seconds for its --sleep-interval=S (-s) option
[4.5.1]
* du and ls now report sizes of symbolic links (before they'd always report 0)
* uniq now obeys the LC_COLLATE locale, as per POSIX 1003.1-2001 TC1.
This package is the union of the following:
textutils-2.1, fileutils-4.1.11, sh-utils-2.0.15.

96
README Normal file
View File

@@ -0,0 +1,96 @@
These are the GNU core utilities. This package is the union of
the GNU fileutils, sh-utils, and textutils packages.
Most of these programs have significant advantages over their Unix
counterparts, such as greater speed, additional options, and fewer
arbitrary limits.
The programs that can be built with this package are:
basename cat chgrp chmod chown chroot cksum comm cp csplit cut date dd
df dir dircolors dirname du echo env expand expr factor false fmt fold
ginstall groups head hostid hostname id join kill link ln logname ls
md5sum mkdir mkfifo mknod mv nice nl nohup od paste pathchk pinky pr
printenv printf ptx pwd rm rmdir seq sha1sum shred sleep sort split
stat stty su sum sync tac tail tee test touch tr true tsort tty uname
unexpand uniq unlink uptime users vdir wc who whoami yes
See the file NEWS for a list of major changes in the current release.
See the file INSTALL for compilation and installation instructions.
These programs are intended to be POSIX.2 compliant (with BSD and other
extensions), like the rest of the GNU system.
The ls, dir, and vdir commands are all separate executables instead of
one program that checks argv[0] because people often rename these
programs to things like gls, gnuls, l, etc. Renaming a program
file shouldn't affect how it operates, so that people can get the
behavior they want with whatever name they want.
Special thanks to Paul Eggert, Brian Matthews, Bruce Evans, Karl Berry,
Kaveh Ghazi, and François Pinard for help with debugging and porting
these programs. Many thanks to all of the people who have taken the
time to submit problem reports and fixes. All contributed changes are
attributed in the ChangeLog file.
And thanks to the following people who have provided accounts for
portability testing on many different types of systems: Bob Proulx,
Christian Robert, François Pinard, Greg McGary, Harlan Stenn,
Joel N. Weber, Mark D. Roth, Matt Schalit, Nelson H. F. Beebe,
Réjean Payette, Sam Tardieu.
Thanks to Michael Stone for inflicting test releases of the fileutils
on Debian's unstable distribution, and to all the kind folks who used
that distribution and found and reported bugs.
Note that each man page is now automatically generated from a template
and from the corresponding --help usage message. Patches to the template
files (man/*.x) are welcome. However, the authoritative documentation
is in texinfo form in the doc directory.
If you run the tests on a SunOS4.1.4 system, expect the ctime-part of
the ls `time-1' test to fail. I believe that is due to a bug in the
way Sun implemented link(2) and chmod(2).
There are pretty many tests, but nowhere near as many as we need.
Additions and corrections are very welcome.
If you see a problem that you've already reported, feel free to re-report
it -- it won't bother me to get a reminder. Besides, the more messages I
get regarding a particular problem the sooner it'll be fixed -- usually.
If you sent a complete patch and, after a couple weeks you haven't
received any acknowledgement please ping us. A complete patch includes
a well-written ChangeLog entry, unified (diff -u format) diffs relative
to the most recent test release, an explanation for why the patch is
necessary or useful, and if at all possible, enough information to
reproduce whatever problem prompted it.
If your patch adds a new feature, please try to get some sort of consensus
that it is a worthwhile change. One way to do that is to send mail to
bug-gnu-utils@gnu.org (aka the gnu.utils.bug news group) including as
much description and justification as you can. Based on the feedback
that generates, you may be able to convince us that it's worth adding.
WARNING: If you modify files like configure.in, m4/*.m4, aclocal.m4,
or any Makefile.am, then don't be surprised if what gets regenerated no
longer works. To make things work, you'll have to be using appropriate
versions of automake and autoconf. As for what versions are `appropriate',
use the versions of
* autoconf specified via AC_PREREQ in m4/jm-macros.m4
* automake specified via AM_INIT_AUTOMAKE in configure.ac
Usually it's fine to use versions that are newer than those specified.
These programs all recognize the `--version' option. When reporting
bugs, please include in the subject line both the package name/version
and the name of the program for which you found a problem.
For general documentation on the coding and usage standards
this distribution follows, see the GNU Coding Standards,
http://www.gnu.org/prep/standards_toc.html.
Mail suggestions and bug reports for these programs to
the address on the last line of --help output.

24
README-valgrind Normal file
View File

@@ -0,0 +1,24 @@
#! /bin/bash
# Convert Makefile.am files:
# find tests -name Makefile.am \
# | xargs grep -wl PATH|xargs perl -pi -e 's,src:\$\$PATH,src/vg:\$\$PATH,'
# Create src/vg:
coreutils=$(echo 'spy:;@echo $(all_programs)' | (cd src; make -f Makefile -f - spy | tr -s '\n ' ' '))
mkdir src/vg
pwd=`pwd`
up=`dirname $pwd`
path='export PATH='$up':${PATH#*:}'
pre='#!/bin/sh\n'"$path"'\n'
n=9
vg='exec /usr/bin/valgrind --quiet --num-callers='$n
cat <<EOF > src/vg/gen
for i in $coreutils; do
printf "$pre$vg \$i"' "\$@"\n' > \$i
chmod a+x \$i
done
EOF
cd src/vg
. ./gen

78
THANKS
View File

@@ -1,22 +1,26 @@
These people have contributed to the GNU fileutils, textutils,
and/or sh-utils packages. Some have reported problems, others have
contributed improvements to the documentation, actual code, and even
These people have contributed to the GNU coreutils (formerly, the fileutils,
textutils, and/or sh-utils packages). Some have reported problems, others
have contributed improvements to the documentation, actual code, and even
complete programs. Those contributions are described in the ChangeLog
files. If your name has been left out, if you'd rather not be listed,
or if you'd prefer a different address be used, please let me know.
Some old names and addresses are still in the ChangeLog.
??? kytek@cybercomm.net
Achim Blumensath blume@corona.oche.de
Adam Klein aklein@debian.org
Akim Demaille demaille@inf.enst.fr
Alain Magloire alain@qnx.com
Alan Iwi iwi@atm.ox.ac.uk
Albert Chin-A-Young china@thewrittenword.com
Albert Hopkins ahopkins@dynacare.com
Alberto Accomazzi alberto@cfa0.harvard.edu
aldomel aldomel@ix.netcom.com
Alen Muzinic zveki@fly.cc.fer.hr
Alexandre Duret-Lutz duret_g@epita.fr
Alexey Solovyov alekso@math.uu.se
Alexey Vyskubov alexey@pippuri.mawhrin.net
Alfred M. Szmidt ams@kemisten.nu
Andi Kleen freitag@alancoxonachip.com
Andre Novaes Cunha Andre.Cunha@br.global-one.net
Andreas Gruenbacher ag@bestbits.at
Andreas Jaeger jaeger@gnu.org
@@ -35,6 +39,8 @@ Ariel Faigon ariel@cthulhu.engr.sgi.com
Arne H. Juul arnej@solan.unit.no
Arne Henrik Juul arnej@imf.unit.no
Arthur Pool pool@commerce.uq.edu.au
Arun Sharma arun.sharma@intel.com
Augey Mikus mikus@dqc.org
Austin Donnelly Austin.Donnelly@cl.cam.ac.uk
Axel Kittenberger Anshil@gmx.net
Bauke Jan Douma bjdouma@xs4all.nl
@@ -58,9 +64,11 @@ Charles Karney karney@pppl.gov
Charles Randall crandall@matchlogic.com
Chip Salzenberg chip@valinux.com
Chris Faylor cgf@cygnus.com
Chris J. Bednar cjb@AdvancedDataSolutions.com
Chris Sylvain csylvain@umm.edu
Chris Yeo cyeo@biking.org
Christi Alice Scarborough christi@chiark.greenend.org.uk
Christian Harkort christian.harkort@web.de
Christian Krackowizer ckrackowiz@std.schuler-ag.com
Christian Rose menthos@menthos.com
Christian von Roques roques@pond.sub.org
@@ -71,9 +79,11 @@ Colin Watson cjw44@riva.ucam.org
Collin Rogowski collin@rogowski.de
Dale Scheetz dwarf@polaris.net
Dan Hagerty hag@gnu.ai.it.edu
Dan Jacobson http://www.geocities.com/jidani
Dan Pascu dan@services.iiruc.ro
Daniel Bergstrom noa@melody.se
Darren Salt ds@youmustbejoking.demon.co.uk
Dave Beckett dajobe@dajobe.org
David Dyck dcd@tc.fluke.COM
David Godfrey dave@delta.demon.co.uk
David Luyer david_luyer@pacific.net.au
@@ -82,12 +92,14 @@ Derek Clegg dclegg@next.com
Dick Streefland dick_streefland@tasking.com
Dirk Lattermann dlatt@t-online.de
Dirk-Jan Faber djfaber@snow.nl
Dan Jacobson http://www.geocities.com/jidani
Dmitry V. Levin ldv@altlinux.org
Don Parsons dparsons@synapse.kent.edu
Donni Erpel donald@appc11.gsi.de
Doug Coleman coleman@iarc1.ece.utexas.edu
Doug McLaren dougmc@comco.com
Dragos Harabor dharabor@us.oracle.com
Ed Avis epa98@doc.ic.ac.uk
Duncan Roe duncanr@optimation.com.au
Ed Avis ed@membled.com
Edzer Pebesma Edzer.Pebesma@rivm.nl
Eirik Fuller eirik@hackrat.com
Eivind eivindt@multinet.no
@@ -102,29 +114,33 @@ Erik Corry erik@kroete2.freinet.de
Felix Lee flee@teleport.com
Fletcher Mattox fletcher@cs.utexas.edu
Florin Iucha fiucha@hsys.mic.ro
François Pinard pinard@iro.umontreal.ca
Frank Adler fadler@allesklar.de
Frank T Lofaro ftlofaro@snooks.Egr.UNLV.EDU
François Pinard pinard@iro.umontreal.ca
Fred Fish fnf@ninemoons.com
Frederik Eaton frederik@caltech.edu
Frédéric L. W. Meunier 0@pervalidus.net
Frederik Eaton frederik@caltech.edu
Gabor Z. Papp gzp@gzp.org.hu
Gaël Quéri gqueri@mail.dotcom.fr
Galen Hazelwood galenh@micron.net
Gary Anderson ganderson@clark.net
Gaël Quéri gqueri@mail.dotcom.fr
Gaute Hvoslef Kvalnes gaute@verdsveven.com
Geoff Kuenning geoff@cs.hmc.edu
Geoff Odhner geoff@franklin.com
Geoff Whale geoffw@cse.unsw.EDU.AU
Gerhard Poul gpoul@gnu.org
Germano Leichsenring germano@jedi.cs.kobe-u.ac.jp
Göran Uddeborg goeran@uddeborg.pp.se
GOTO Masanori gotom@debian.or.jp
Greg Louis glouis@dynamicro.on.ca
Greg McGary gkm@gnu.org
Greg Schafer gschafer@zip.com.au
Greg Troxel gdt@bbn.com
Greg Wooledge gawooledge@sherwin.com
Gregory Leblanc gleblanc@cu-portland.edu
Göran Uddeborg goeran@uddeborg.pp.se
H. J. Lu hjl@valinux.com
Hans Ginzel hans@matfyz.cz
Hans Lermen lermen@fgan.de
Hans Verkuil hans@wyst.hobby.nl
Harry Liu rliu@lek.ugcs.caltech.edu
Herbert Xu herbert@gondor.apana.org.au
@@ -135,6 +151,7 @@ Ian Bruce ian.bruce@myrealbox.com
Ian Jackson ijackson@chiark.greenend.org.uk
Ian Lance Taylor ian@cygnus.com
Ian Turner vectro@pipeline.com
Iida Yosiaki iida@gnu.org
James james@albion.glarp.com
James Antill jmanti%essex.ac.uk@seralph21.essex.ac.uk
James Sneeringer jvs@ocslink.com
@@ -146,7 +163,7 @@ Jan Nieuwenhuizen janneke@gnu.org
Janos Farkas chexum@shadow.banki.hu
Jarkko Hietaniemi jhi@epsilon.hut.fi
Jeff Moore jbm@mordor.com
Jeff Sheinberg jeffsh@erols.com
Jeff Sheinberg jeffsh@localnet.com
Jens Schmidt jms@jsds.hamburg.com
Jerome Abela abela@hsc.fr
Jesse Thilo jgt2@eecs.lehigh.edu
@@ -155,7 +172,7 @@ Jim Blandy jimb@cyclic.com
Jim Dennis jimd@starshine.org
Joakim Rosqvist dvljrt@cs.umu.se
Jochen Hein jochen@jochen.org
Joe Orton joe@orton.demon.co.uk
Joe Orton joe@manyfish.co.uk
Johan Danielsson joda@pdc.kth.se
John Bley jbb6@acpub.duke.edu
John David Anglin dave.anglin@nrc.ca
@@ -174,8 +191,8 @@ Juan F. Codagnone juam@arnet.com.ar
Jungshik Shin jshin@pantheon.yale.edu
Jürgen Fluk louis@dachau.marco.de
jvogel jvogel@linkny.com
Kai-Uwe Rommel rommel@informatik.tu-muenchen.de
Kai Henningsen kai@debian.org
Kai-Uwe Rommel rommel@informatik.tu-muenchen.de
Kalle Olavi Niemitalo tosi@stekt.oulu.fi
Kamal Paul Nigam Kamal_Paul_Nigam@gs35.sp.cs.cmu.edu
Karl Eichwalder keichwa@gmx.net
@@ -188,11 +205,11 @@ Keith Thompson kst@sdsc.edu
Ken Pizzini kenp@halcyon.com
Kjetil Torgrim Homme kjetilho@ifi.uio.no
Kristoffer Rose kris@diku.dk
??? kytek@cybercomm.net
Larry McVoy lm@sgi.com
Lars Hecking lhecking@nmrc.ucc.ie
Lehti Rami rammer@cs.tut.fi
Leonard N. Zubkoff lnz@dandelion.com
Leonardo Milano lmilano@udel.edu
Lorne Baker lbaker@nitro.avint.net
M. P. Suzuki mpsuzuki@hiroshima-u.ac.jp
Maciej Kwapulinski pikpok@univ.gda.pl
@@ -201,6 +218,7 @@ Manfred Hollstein manfred@s-direktnet.de
Marc Boucher marc@mbsi.ca
Marc Olzheim marcolz@stack.nl
Marco Franzen Marco.Franzen@Thyron.com
Marcus Brinkmann http://www.marcus-brinkmann.de
Marcus Daniels marcus@ee.pdx.edu
Mark A. Thomas thommark@access.digex.net
Mark D. Roth roth@uiuc.edu
@@ -212,8 +230,10 @@ Mark Nudelman marknu@flash.net
Mark W. Eichin eichin@cygnus.com
Markus Demleitner msdemlei@auriga.ari.uni-heidelberg.de
Martin martin@dresden.nacamar.de
Martin Buck martin.buck@ascom.ch
Martin Gallant martyg@goodbit.net
Martin Hippe martin.hippe@schlund.de
Martin Michlmayr tbm@cyrius.com
Martin Mitchell martin@debian.org
Martin P.J. Zinser zinser@decus.de
Marty Leisner leisner@sdsp.mc.xerox.com
@@ -222,29 +242,38 @@ Mate Wierdl mw@moni.msci.memphis.edu
Matej Vela mvela@public.srce.hr
Matt Perry matt@primefactor.com
Matt Schalit mschalit@pacbell.net
Matthew Arnison maffew@cat.org.au
Matthew Braun matthew@ans.net
Matthew Clarke Matthew_Clarke@mindlink.bc.ca
Matthew S. Levine mslevine@theory.lcs.mit.edu
Matthew Smith matts@bluesguitar.org
Matthew Swift swift@alum.mit.edu
Mattias Wadenstein maswan@acc.umu.se
Matthias Urlichs smurf@noris.de
Mattias Wadenstein maswan@acc.umu.se
Meelis Roos mroos@tartu.cyber.ee
Michael ??? michael@roka.net
Michael Deutschmann michael@talamasca.ocis.net
Michael Gaughen mgaughen@polyserve.com
Michael Hasselberg mikelh@zonta.ping.de
Michael Hohn hohn@math.utah.edu
Michael J. Croghan mcroghan@usatoday.com
Michael Piefel piefel@informatik.hu-berlin.de
Michael Steffens michael.steffens@s.netic.de
Michael Stone mstone@debian.org
Michael Stutz stutz@dsl.org
Michael Veksler mveksler@techunix.technion.ac.il
Michail Litvak mci@owl.openwall.com
Michal Svec msvec@suse.cz
Michel Robitaille robitail@IRO.UMontreal.CA
Michiel Bacchiani bacchian@raven.bu.edu
Mike Castle dalgoda@ix.netcom.com
Mike Coleman mkc@mathdogs.com
Mikko Tuumanen m@sorvankyla.yok.utu.fi
Miles Bader miles@gnu.ai.mit.edu
Minh Tran-Le tranle@intellicorp.com
Morten Welinder terra@diku.dk
Neal H Walfield neal@cs.uml.edu
Neil Brown neilb@cse.unsw.edu.au
Nelson H. F. Beebe beebe@math.utah.edu
Nick Lawes nlawes@silverplatter.com
Niklas Edmundsson nikke@acc.umu.se
@@ -252,12 +281,13 @@ Noah Friedman friedman@splode.com
Noel Cragg noel@red-bean.com
Olav Morkrid olav@funcom.com
Ole Laursen olau@hardworking.dk
Oskar Liljeblad osk@hem.passagen.se
Ørn E. Hansen oehansen@daimi.aau.dk
Oskar Liljeblad osk@hem.passagen.se
Paul Eggert eggert@twinsun.com
Paul Nevai nevai@ops.mps.ohio-state.edu
Paul Sauer paul@alexa.com
Paul Slootman paul@debian.org
Pawel Prokop pablo@wizard.ae.krakow.pl
Per Cederqvist ceder@lysator.liu.se
Per Kristian Hove perhov@math.ntnu.no
Peter Eriksson peter@ifm.liu.se
@@ -269,6 +299,7 @@ Phelippe Neveu pneveu@pcigeomatics.com
Phil Richards phil.richards@vf.vodafone.co.uk
Philippe De Muyter phdm@macqel.be
Philippe Schnoebelen Philippe.Schnoebelen@imag.fr
Phillip Jones mouse@datastacks.com
Piergiorgio Sartor sartor@sony.de
Piotr Kwapulinski kwap@univ.gda.pl
Prashant TR tr@eth.net
@@ -276,9 +307,11 @@ Rainer Orth ro@TechFak.Uni-Bielefeld.DE
Ralf W. Stephan stephan@tmt.de
Ralph Loader loader@maths.ox.ac.uk
Raul Miller moth@magenta.com
Raúl Núñez de Arenas Coronado raul@pleyades.net
Richard Braakman dark@xs4all.nl
Richard Dawe richdawe@bigfoot.com
Richard J. Rauenzahn rrauenza@hairball.cup.hp.com
Richard Neill rn214@hermes.cam.ac.uk
Richard Sharman rsharman@magmacom.com
Rick Sladkey jrs@world.std.com
Rik Faith faith@cs.unc.edu
@@ -296,22 +329,31 @@ Sander van Malssen svm@kozmix.ow.nl
Santiago Vila Doncel sanvila@unex.es
Savochkin Andrey Vladimirovich saw@msu.ru
Scott Lurndal slurn@griffin.engr.sgi.com
Shing-Shong Shei shei@cs.indiana.edu
Soeren Sonnenburg sonnenburg@informatik.hu-berlin.de
Solar Designer solar@owl.openwall.com
Stanislav Ievlev inger@altlinux.ru
Stéphane Chazelas Stephane_CHAZELAS@yahoo.fr
Stephen Eglen eglen@pcg.wustl.edu
Stephen Gildea gildea@stop.mail-abuse.org
Stephen Smoogen ??????????
Stephen Smoogen smooge@mindspring.com
Steve McConnel steve@acadcomp.sil.org
Steven P Watson steven@magelico.net
Stuart Kemp skemp@peter.bmc.com
Tadayoshi Funaba tadf@kt.rim.or.jp
TAKAI Kousuke takai@vlsi.kuee.kyoto-u.ac.jp
Theodore Ts'o tytso@rsts-11.mit.edu
Thomas Bushnell thomas@gnu.ai.mit.edu
Thomas Goerlich thomas@schnappmatik.de
Thomas Quinot thomas@Cuivre.FR.EU.ORG
Tim J. Robbins tjr@FreeBSD.org
Tim Smithers mouse@dmouse.com.au
Tim Waugh twaugh@redhat
Todd A. Jacobs tjacobs@codegnome.org
Tom Haynes thomas@netapp.com
Tom Quinn trq@dionysos.thphys.ox.ac.uk
Ton Hospel thospel@mail.dma.be
Tony Kocurko akocurko@mun.ca
Tony Leneis tony@plaza.ds.adp.com
Tony Robinson ajr@eng.cam.ac.uk
Torbjorn Granlund tege@nada.kth.se
@@ -319,6 +361,7 @@ Torbjorn Lindgren tl@funcom.no
Torsten Landschoff torsten@pclab.ifg.uni-kiel.de
Ulrich Drepper drepper@gnu.org
Urs Thuermann urs@isnogud.escape.de
Uwe H. Steinfeld usteinfeld@gmx.net
Vesselin Atanasov vesselin@bgnet.bg
Vin Shelton acs@alumni.princeton.edu
Volker Borchert bt@teknon.de
@@ -330,6 +373,7 @@ Will Edgington wedgingt@acm.org
William Bader william@nscs.fast.net
William Dowling will@franklin.com
William Lewis wiml@omnigroup.com
Wojciech Purczynski cliph@isec.pl
Wolfram Kleff kleff@cs.uni-bonn.de
Won-kyu Park wkpark@chem.skku.ac.kr
Zvi Har'El rl@math.technion.ac.il

4
THANKStt.in Normal file
View File

@@ -0,0 +1,4 @@
The following teams have translated the many diagnostics of this
package into many different languages. Thank you!
---

17
TODO Normal file
View File

@@ -0,0 +1,17 @@
restore djgpp, eventually
merge TODO lists
add unit tests for lib/*.c
rewrite du.c not to use explicit recursion
strip: add an option to specify the program used to strip binaries.
suggestion from Karl Berry
Makefile.maint: extract announcement-generation into a perl script
Add a test of cat that takes input from a tty and ensures
that one ^D is sufficient to make it terminate. Probably
requires some flavor of expect.
doc/coreutils.texi:
Address this comment: FIXME: mv's behavior in this case is system-dependent
Better still: fix the code so it's *not* system-dependent.

32
TODO-private Normal file
View File

@@ -0,0 +1,32 @@
Move things so there are no symlinks from repository to
any directory other than common
******************
LINGUAS:
sort -u ../[fst]u/po/LINGUAS > po/LINGUAS
go cu
cd po
for i in f s t; do
echo $i:
xu=${i}u
for j in $(cat ../../$xu/po/LINGUAS); do
echo " $j"
msgmerge -o k ../../$xu/po/$j.po $j.po && mv k $j.po
done
done
go cu; cd po; export xu=tu j=zh_TW
go cu; cd po; export xu=su j=ru
go cu; cd po; export xu=fu j=zh_TW
go cu; cd po; export xu=tu j=fr
go cu; cd po; export xu=su j=tr
go cu; cd po; export xu=fu j=ca
go cu; cd po; export xu=su j=sl
go cu; cd po; export xu=tu j=el
go cu; cd po; export xu=su j=da
go cu; cd po; export xu=fu j=lg
k=$xu-$j
msgmerge -o $k ../../$xu/po/$j.po $j.po && mv $k $j.po
cvs ci -m 'merge from fileutils-4.1.11' $j.po

6054
aclocal.m4 vendored Normal file

File diff suppressed because it is too large Load Diff

179
announce-gen Executable file
View File

@@ -0,0 +1,179 @@
#!/usr/bin/perl -w
# Generate an announcement message.
use strict;
use Getopt::Long;
use Digest::MD5;
use Digest::SHA1;
(my $VERSION = '$Revision: 1.2 $ ') =~ tr/[0-9].//cd;
(my $ME = $0) =~ s|.*/||;
END
{
# Nobody ever checks the status of print()s. That's okay, because
# if any do fail, we're guaranteed to get an indicator when we close()
# the filehandle.
#
# Close stdout now, and if there were no errors, return happy status.
# If stdout has already been closed by the script, though, do nothing.
defined fileno STDOUT
or return;
close STDOUT
and return;
# Errors closing stdout. Indicate that, and hope stderr is OK.
warn "$ME: closing standard output: $!\n";
# Don't be so arrogant as to assume that we're the first END handler
# defined, and thus the last one invoked. There may be others yet
# to come. $? will be passed on to them, and to the final _exit().
#
# If it isn't already an error, make it one (and if it _is_ an error,
# preserve the value: it might be important).
$? ||= 1;
}
sub usage ($)
{
my ($exit_code) = @_;
my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
if ($exit_code != 0)
{
print $STREAM "Try `$ME --help' for more information.\n";
}
else
{
print $STREAM <<EOF;
Usage: $ME [OPTIONS]
OPTIONS:
Generate an announcement message.
FIXME: describe the following
--package-name=PACKAGE_NAME
--previous-version=VER
--current-version=VER
--release-archive-directory=DIR
--url-directory=URL_DIR
--help display this help and exit
--version output version information and exit
EOF
}
exit $exit_code;
}
{
my $package_name;
my $prev_version;
my $curr_version;
my $release_archive_dir;
my @url_dir_list;
GetOptions
(
'package-name=s' => \$package_name,
'previous-version=s' => \$prev_version,
'current-version=s' => \$curr_version,
'release-archive-directory=s' => \$release_archive_dir,
'url-directory=s@' => \@url_dir_list,
help => sub { usage 0 },
version => sub { print "$ME version $VERSION\n"; exit },
) or usage 1;
my $fail = 0;
# Ensure that sure each required option is specified.
$package_name
or (warn "$ME: missing package name\n"), $fail = 1;
$prev_version
or (warn "$ME: missing previous version string\n"), $fail = 1;
$curr_version
or (warn "$ME: missing current version string\n"), $fail = 1;
$release_archive_dir
or (warn "$ME: missing release directory name\n"), $fail = 1;
@url_dir_list
or (warn "$ME: missing URL directory name(s)\n"), $fail = 1;
@ARGV
and (warn "$ME: too many arguments\n"), $fail = 1;
$fail
and usage 1;
my $my_distdir = "$package_name-$curr_version";
my $tgz = "$my_distdir.tar.gz";
my $tbz = "$my_distdir.tar.bz2";
my $xd = "$package_name-$prev_version-$curr_version.xdelta";
# FIXME: make this optional?
my $mail_gpg_sign_cookie = '<#secure method=pgpmime mode=sign>';
my %size;
foreach my $f (($tgz, $tbz, $xd))
{
my $t = `du --human $f`;
chomp $t;
# FIXME: don't ignore failure...
$t =~ s/^([\d.]+[MkK]).*/${1}B/;
$size{$f} = $t;
}
print <<EOF;
Subject: $my_distdir released
$mail_gpg_sign_cookie
FIXME: put comments here
EOF
foreach my $url (@url_dir_list)
{
print " $url/$tgz ($size{$tgz})\n";
print " $url/$tbz ($size{$tbz})\n";
}
print "\nAnd here are xdelta-style diffs:\n";
foreach my $url (@url_dir_list)
{
print " $url/$xd ($size{$xd})\n";
}
print "\nHere are GPG detached signatures:\n";
foreach my $url (@url_dir_list)
{
print " $url/$tgz.sig\n";
print " $url/$tbz.sig\n";
}
print "\nHere are the MD5 and SHA1 signatures:\n";
foreach my $meth (qw (md5 sha1))
{
foreach my $f (($tgz, $tbz, $xd))
{
open FH, '<', $f
or die "$ME: $f: cannot open for reading: $!\n";
binmode FH;
my $dig =
($meth eq 'md5'
? Digest::MD5->new->addfile(*FH)->hexdigest
: Digest::SHA1->new->addfile(*FH)->hexdigest);
close FH;
print "$dig $f\n";
}
}
# FIXME: depend on whether it's a test release
# sed -n "$news-r1),$news-r2)p" NEWS
# | grep -v '^\[';
# echo;
# echo ChangeLog entries:;
# find . -name ChangeLog -maxdepth 2
# | 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"';
}

1410
config.hin Normal file

File diff suppressed because it is too large Load Diff

17
config/ChangeLog Normal file
View File

@@ -0,0 +1,17 @@
2002-11-09 Jim Meyering <jim@meyering.net>
Make it work even when names contain spaces or shell metachars.
* install-sh: Write diagnostics to stderr, not stdout.
Normalize spacing in diagnostics: use one space (not two, and not a TAB)
after the leading `install:'.
Add double quotes around `$src' here: $doit $instcmd "$src" "$dsttmp"
Merge in some changes from the version in automake.
* install-sh: Remove unnecessary quotes around `case' argument.
Use `[ cond1 ] || [ cond2 ]' rather than `[ cond1 -o cond2 ]'.
Use `:' rather than `true'.
2002-02-17 Jim Meyering <jim@meyering.net>
* config.guess (main): Don't use `head -1'; it's no longer portable.
Use `sed 1q' instead.

1411
config/config.guess vendored Normal file

File diff suppressed because it is too large Load Diff

513
config/config.rpath Executable file
View File

@@ -0,0 +1,513 @@
#! /bin/sh
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
# Copyright 1996-2002 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
#
# The first argument passed to this file is the canonical host specification,
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
# should be set by the caller.
#
# The set of defined variables is at the end of this script.
# All known linkers require a `.a' archive for static linking (except M$VC,
# which needs '.lib').
libext=a
shlibext=
host="$1"
host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
wl=
if test "$GCC" = yes; then
wl='-Wl,'
else
case "$host_os" in
aix3* | aix4* | aix5*)
wl='-Wl,'
;;
hpux9* | hpux10* | hpux11*)
wl='-Wl,'
;;
irix5* | irix6*)
wl='-Wl,'
;;
linux*)
echo '__INTEL_COMPILER' > conftest.$ac_ext
if $CC -E conftest.$ac_ext >/dev/null | grep __INTEL_COMPILER >/dev/null
then
:
else
# Intel icc
wl='-Qoption,ld,'
fi
;;
osf3* | osf4* | osf5*)
wl='-Wl,'
;;
solaris*)
wl='-Wl,'
;;
sunos4*)
wl='-Qoption ld '
;;
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
if test "x$host_vendor" = xsni; then
wl='-LD'
else
wl='-Wl,'
fi
;;
esac
fi
hardcode_libdir_flag_spec=
hardcode_libdir_separator=
hardcode_direct=no
hardcode_minus_L=no
case "$host_os" in
cygwin* | mingw* | pw32*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
if test "$GCC" != yes; then
with_gnu_ld=no
fi
;;
openbsd*)
with_gnu_ld=no
;;
esac
ld_shlibs=yes
if test "$with_gnu_ld" = yes; then
case "$host_os" in
aix3* | aix4* | aix5*)
# On AIX, the GNU linker is very broken
ld_shlibs=no
;;
amigaos*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
# Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
# that the semantics of dynamic libraries on AmigaOS, at least up
# to version 4, is to share data among multiple programs linked
# with the same dynamic library. Since this doesn't match the
# behavior of shared libraries on other platforms, we can use
# them.
ld_shlibs=no
;;
beos*)
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
cygwin* | mingw* | pw32*)
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
hardcode_libdir_flag_spec='-L$libdir'
;;
solaris* | sysv5*)
if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
ld_shlibs=no
elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
sunos4*)
hardcode_direct=yes
;;
*)
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
esac
if test "$ld_shlibs" = yes; then
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
fi
else
case "$host_os" in
aix3*)
# Note: this linker hardcodes the directories in LIBPATH if there
# are no directories specified by -L.
hardcode_minus_L=yes
if test "$GCC" = yes; then
# Neither direct hardcoding nor static linking is supported with a
# broken collect2.
hardcode_direct=unsupported
fi
;;
aix4* | aix5*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
aix_use_runtimelinking=no
else
aix_use_runtimelinking=no
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
case $host_os in aix4.[23]|aix4.[23].*|aix5*)
for ld_flag in $LDFLAGS; do
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
aix_use_runtimelinking=yes
break
fi
done
esac
fi
hardcode_direct=yes
hardcode_libdir_separator=':'
if test "$GCC" = yes; then
case $host_os in aix4.[012]|aix4.[012].*)
collect2name=`${CC} -print-prog-name=collect2`
if test -f "$collect2name" && \
strings "$collect2name" | grep resolve_lib_name >/dev/null
then
# We have reworked collect2
hardcode_direct=yes
else
# We have old collect2
hardcode_direct=unsupported
hardcode_minus_L=yes
hardcode_libdir_flag_spec='-L$libdir'
hardcode_libdir_separator=
fi
esac
fi
if test "$aix_use_runtimelinking" = yes; then
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
else
if test "$host_cpu" = ia64; then
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
else
hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
fi
fi
;;
amigaos*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
# see comment about different semantics on the GNU ld section
ld_shlibs=no
;;
cygwin* | mingw* | pw32*)
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
hardcode_libdir_flag_spec=' '
libext=lib
;;
darwin* | rhapsody*)
hardcode_direct=yes
;;
freebsd1*)
ld_shlibs=no
;;
freebsd2.2*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
freebsd2*)
hardcode_direct=yes
hardcode_minus_L=yes
;;
freebsd*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
hpux9* | hpux10* | hpux11*)
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_libdir_separator=:
hardcode_direct=yes
hardcode_minus_L=yes # Not in the search PATH, but as the default
# location of the library.
;;
irix5* | irix6*)
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
netbsd*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
newsos6)
hardcode_direct=yes
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
openbsd*)
hardcode_direct=yes
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
else
case "$host_os" in
openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
hardcode_libdir_flag_spec='-R$libdir'
;;
*)
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
;;
esac
fi
;;
os2*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
;;
osf3*)
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
osf4* | osf5*)
if test "$GCC" = yes; then
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
# Both cc and cxx compiler support -rpath directly
hardcode_libdir_flag_spec='-rpath $libdir'
fi
hardcode_libdir_separator=:
;;
sco3.2v5*)
;;
solaris*)
hardcode_libdir_flag_spec='-R$libdir'
;;
sunos4*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_direct=yes
hardcode_minus_L=yes
;;
sysv4)
if test "x$host_vendor" = xsno; then
hardcode_direct=yes # is this really true???
else
hardcode_direct=no # Motorola manual says yes, but my tests say they lie
fi
;;
sysv4.3*)
;;
sysv5*)
hardcode_libdir_flag_spec=
;;
uts4*)
hardcode_libdir_flag_spec='-L$libdir'
;;
dgux*)
hardcode_libdir_flag_spec='-L$libdir'
;;
sysv4*MP*)
if test -d /usr/nec; then
ld_shlibs=yes
fi
;;
sysv4.2uw2*)
hardcode_direct=yes
hardcode_minus_L=no
;;
sysv5uw7* | unixware7*)
;;
*)
ld_shlibs=no
;;
esac
fi
# Check dynamic linker characteristics
libname_spec='lib$name'
sys_lib_dlsearch_path_spec="/lib /usr/lib"
sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
case "$host_os" in
aix3*)
shlibext=so
;;
aix4* | aix5*)
shlibext=so
;;
amigaos*)
shlibext=ixlibrary
;;
beos*)
shlibext=so
;;
bsdi4*)
shlibext=so
sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
;;
cygwin* | mingw* | pw32*)
case $GCC,$host_os in
yes,cygwin*)
shlibext=dll.a
;;
yes,mingw*)
shlibext=dll
sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
;;
yes,pw32*)
shlibext=dll
;;
*)
shlibext=dll
;;
esac
;;
darwin* | rhapsody*)
shlibext=dylib
;;
freebsd1*)
;;
freebsd*)
shlibext=so
;;
gnu*)
shlibext=so
;;
hpux9* | hpux10* | hpux11*)
shlibext=sl
;;
irix5* | irix6*)
shlibext=so
case "$host_os" in
irix5*)
libsuff= shlibsuff=
;;
*)
case $LD in
*-32|*"-32 ") libsuff= shlibsuff= ;;
*-n32|*"-n32 ") libsuff=32 shlibsuff=N32 ;;
*-64|*"-64 ") libsuff=64 shlibsuff=64 ;;
*) libsuff= shlibsuff= ;;
esac
;;
esac
sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
;;
linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
;;
linux-gnu*)
shlibext=so
;;
netbsd*)
shlibext=so
;;
newsos6)
shlibext=so
;;
openbsd*)
shlibext=so
;;
os2*)
libname_spec='$name'
shlibext=dll
;;
osf3* | osf4* | osf5*)
shlibext=so
sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
;;
sco3.2v5*)
shlibext=so
;;
solaris*)
shlibext=so
;;
sunos4*)
shlibext=so
;;
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
shlibext=so
case "$host_vendor" in
motorola)
sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
;;
esac
;;
uts4*)
shlibext=so
;;
dgux*)
shlibext=so
;;
sysv4*MP*)
if test -d /usr/nec; then
shlibext=so
fi
;;
esac
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
escaped_sys_lib_search_path_spec=`echo "X$sys_lib_search_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
escaped_sys_lib_dlsearch_path_spec=`echo "X$sys_lib_dlsearch_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
# How to pass a linker flag through the compiler.
wl="$escaped_wl"
# Static library suffix (normally "a").
libext="$libext"
# Shared library suffix (normally "so").
shlibext="$shlibext"
# Flag to hardcode \$libdir into a binary during linking.
# This must work even if \$libdir does not exist.
hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
# Whether we need a single -rpath flag with a separated argument.
hardcode_libdir_separator="$hardcode_libdir_separator"
# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
# resulting binary.
hardcode_direct="$hardcode_direct"
# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
# resulting binary.
hardcode_minus_L="$hardcode_minus_L"
# Compile-time system search path for libraries
sys_lib_search_path_spec="$escaped_sys_lib_search_path_spec"
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec="$escaped_sys_lib_dlsearch_path_spec"
EOF

1469
config/config.sub vendored Normal file

File diff suppressed because it is too large Load Diff

423
config/depcomp Normal file
View File

@@ -0,0 +1,423 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
# Copyright 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.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# `libtool' can also be set to `yes' or `no'.
if test -z "$depfile"; then
base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
dir=`echo "$object" | sed 's,/.*$,/,'`
if test "$dir" = "$object"; then
dir=
fi
# FIXME: should be _deps on DOS.
depfile="$dir.deps/$base"
fi
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> $depfile
echo >> $depfile
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> $depfile
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. This file always lives in the current directory.
# Also, the AIX compiler puts `$object:' at the start of each line;
# $object doesn't have directory information.
stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
tmpdepfile="$stripped.u"
outname="$stripped.o"
if test "$libtool" = yes; then
"$@" -Wc,-M
else
"$@" -M
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
if test -f "$tmpdepfile"; then
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
tmpdepfile1="$dir.libs/$base.lo.d"
tmpdepfile2="$dir.libs/$base.d"
"$@" -Wc,-MD
else
tmpdepfile1="$dir$base.o.d"
tmpdepfile2="$dir$base.d"
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
if test -f "$tmpdepfile1"; then
tmpdepfile="$tmpdepfile1"
else
tmpdepfile="$tmpdepfile2"
fi
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a space and a tab in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the proprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'. We will use -o /dev/null later,
# however we can't do the remplacement now because
# `-o $object' might simply not be used
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
"$@" -o /dev/null $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# X makedepend
shift
cleared=no
for arg in "$@"; do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
-*)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix="`echo $object | sed 's/^.*\././'`"
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
sed '1,2d' "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the proprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E |
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the proprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
"$@" || exit $?
IFS=" "
for arg
do
case "$arg" in
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0

276
config/install-sh Executable file
View File

@@ -0,0 +1,276 @@
#!/bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
#
# Copyright 1991 by the Massachusetts Institute of Technology
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
while [ x"$1" != x ]; do
case $1 in
-c) instcmd=$cpprog
shift
continue;;
-d) dir_arg=true
shift
continue;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
-s) stripcmd=$stripprog
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
*) if [ x"$src" = x ]
then
src=$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst=$1
fi
shift
continue;;
esac
done
if [ x"$src" = x ]
then
echo "$0: no input file specified" >&2
exit 1
else
:
fi
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d "$dst" ]; then
instcmd=:
chmodcmd=""
else
instcmd=$mkdirprog
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f "$src" ] || [ -d "$src" ]
then
:
else
echo "$0: $src does not exist" >&2
exit 1
fi
if [ x"$dst" = x ]
then
echo "$0: no destination specified" >&2
exit 1
else
:
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
if [ -d "$dst" ]
then
dst=$dst/`basename "$src"`
else
:
fi
fi
## this sed command emulates the dirname command
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-$defaultIFS}"
oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS=$oIFS
pathcomp=''
while [ $# -ne 0 ] ; do
pathcomp=$pathcomp$1
shift
if [ ! -d "$pathcomp" ] ;
then
$mkdirprog "$pathcomp"
else
:
fi
pathcomp=$pathcomp/
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd "$dst" &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename "$dst"`
else
dstfile=`basename "$dst" $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if [ x"$dstfile" = x ]
then
dstfile=`basename "$dst"`
else
:
fi
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/#inst.$$#
rmtmp=$dstdir/#rm.$$#
# Trap to clean up temp files at exit.
trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
# Move or copy the file name to the temp name
$doit $instcmd "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
# Now remove or move aside any old file at destination location. We try this
# two ways since rm can't unlink itself on some systems and the destination
# file might be busy for other reasons. In this case, the final cleanup
# might fail but the new file should still install successfully.
{
if [ -f "$dstdir/$dstfile" ]
then
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
$doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
{
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
(exit 1); exit
}
else
:
fi
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
fi &&
# The final little trick to "correctly" pass the exit status to the exit trap.
{
(exit 0); exit
}

View File

@@ -1,6 +1,6 @@
#!/bin/sh
# Get modification time of a file or directory and pretty-print it.
# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
# Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
#
# This program is free software; you can redistribute it and/or modify
@@ -17,6 +17,11 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Prevent date giving response in another language.
LANG=C
export LANG

336
config/missing Normal file
View File

@@ -0,0 +1,336 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 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.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
run=:
# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
case "$1" in
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing 0.4 - GNU automake"
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
aclocal*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
autom4te)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them.
You can get \`$1Help2man' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo "#! /bin/sh"
echo "# Created by GNU Automake missing as a replacement of"
echo "# $ $@"
echo "exit 0"
chmod +x $file
exit 1
fi
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
help2man)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
fi
if [ -f "$file" ]; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
exit 1
fi
;;
makeinfo)
if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
# We have makeinfo, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
fi
touch $file
;;
tar)
shift
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
fi
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
# messages.
if (gnutar --version > /dev/null 2>&1); then
gnutar "$@" && exit 0
fi
if (gtar --version > /dev/null 2>&1); then
gtar "$@" && exit 0
fi
firstarg="$1"
if shift; then
case "$firstarg" in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
case "$firstarg" in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
;;
esac
fi
echo 1>&2 "\
WARNING: I can't seem to be able to run \`tar' with the given arguments.
You may want to install GNU tar or Free paxutils, or check the
command line arguments."
exit 1
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequirements for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0

111
config/mkinstalldirs Normal file
View File

@@ -0,0 +1,111 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain
errstatus=0
dirmode=""
usage="\
Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
# process command line arguments
while test $# -gt 0 ; do
case $1 in
-h | --help | --h*) # -h for help
echo "$usage" 1>&2
exit 0
;;
-m) # -m PERM arg
shift
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
dirmode=$1
shift
;;
--) # stop option processing
shift
break
;;
-*) # unknown option
echo "$usage" 1>&2
exit 1
;;
*) # first non-opt arg
break
;;
esac
done
for file
do
if test -d "$file"; then
shift
else
break
fi
done
case $# in
0) exit 0 ;;
esac
case $dirmode in
'')
if mkdir -p -- . 2>/dev/null; then
echo "mkdir -p -- $*"
exec mkdir -p -- "$@"
fi
;;
*)
if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
echo "mkdir -m $dirmode -p -- $*"
exec mkdir -m "$dirmode" -p -- "$@"
fi
;;
esac
for file
do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d
do
pathcomp="$pathcomp$d"
case $pathcomp in
-*) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp"
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
else
if test ! -z "$dirmode"; then
echo "chmod $dirmode $pathcomp"
lasterr=""
chmod "$dirmode" "$pathcomp" || lasterr=$?
if test ! -z "$lasterr"; then
errstatus=$lasterr
fi
fi
fi
fi
pathcomp="$pathcomp/"
done
done
exit $errstatus
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# End:
# mkinstalldirs ends here

File diff suppressed because it is too large Load Diff

41017
configure vendored Executable file

File diff suppressed because it is too large Load Diff

306
configure.ac Normal file
View File

@@ -0,0 +1,306 @@
dnl Process this file with autoconf to produce a configure script. -*-m4-*-
AC_INIT([GNU coreutils],[4.5.4],[bug-coreutils@gnu.org])
AC_CONFIG_SRCDIR(src/ls.c)
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_HEADERS([config.h:config.hin])
AC_CANONICAL_HOST
AM_INIT_AUTOMAKE([1.6b gnits dist-bzip2])
AC_GNU_SOURCE
jm_PERL
AC_PROG_CC
AC_PROG_CPP
AC_PROG_GCC_TRADITIONAL
AC_PROG_RANLIB
AC_AIX
AC_MINIX
AC_CHECK_FUNCS(uname,
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS uname" MAN="$MAN uname.1")
AC_CHECK_FUNCS(chroot,
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS chroot" MAN="$MAN chroot.1")
AC_CHECK_FUNCS(gethostid,
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS hostid" MAN="$MAN hostid.1")
jm_MACROS
AC_HEADER_TIOCGWINSZ()
jm_WINSIZE_IN_PTEM
# Check for SunOS statfs brokenness wrt partitions 2GB and larger.
# If <sys/vfs.h> exists and struct statfs has a member named f_spare,
# enable the work-around code in fsusage.c.
AC_MSG_CHECKING([for statfs that truncates block counts])
AC_CACHE_VAL(fu_cv_sys_truncating_statfs,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#if !defined(sun) && !defined(__sun)
choke -- this is a workaround for a Sun-specific problem
#endif
#include <sys/types.h>
#include <sys/vfs.h>]],
[[struct statfs t; long c = *(t.f_spare);]])],
[fu_cv_sys_truncating_statfs=yes],
[fu_cv_sys_truncating_statfs=no])])
if test $fu_cv_sys_truncating_statfs = yes; then
AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS, 1,
[ Define if the block counts reported by statfs may be truncated to 2GB
and the correct values may be stored in the f_spare array.
(SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem.
SunOS 4.1.1 seems not to be affected.)])
fi
AC_MSG_RESULT($fu_cv_sys_truncating_statfs)
AC_MSG_CHECKING(whether localtime caches TZ)
AC_CACHE_VAL(utils_cv_localtime_cache,
[if test x$ac_cv_func_tzset = xyes; then
AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <time.h>
#if STDC_HEADERS
# include <stdlib.h>
#endif
extern char **environ;
unset_TZ ()
{
char **from, **to;
for (to = from = environ; (*to = *from); from++)
if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
to++;
}
main()
{
time_t now = time ((time_t *) 0);
int hour_GMT0, hour_unset;
if (putenv ("TZ=GMT0") != 0)
exit (1);
hour_GMT0 = localtime (&now)->tm_hour;
unset_TZ ();
hour_unset = localtime (&now)->tm_hour;
if (putenv ("TZ=PST8") != 0)
exit (1);
if (localtime (&now)->tm_hour == hour_GMT0)
exit (1);
unset_TZ ();
if (localtime (&now)->tm_hour != hour_unset)
exit (1);
exit (0);
}]])],
[utils_cv_localtime_cache=no],
[utils_cv_localtime_cache=yes],
[# If we have tzset, assume the worst when cross-compiling.
utils_cv_localtime_cache=yes])
else
# If we lack tzset, report that localtime does not cache TZ,
# since we can't invalidate the cache if we don't have tzset.
utils_cv_localtime_cache=no
fi])dnl
AC_MSG_RESULT($utils_cv_localtime_cache)
if test $utils_cv_localtime_cache = yes; then
AC_DEFINE(LOCALTIME_CACHE, 1, [FIXME])
fi
# SCO-ODT-3.0 is reported to need -los to link programs using initgroups
AC_CHECK_FUNCS(initgroups)
if test $ac_cv_func_initgroups = no; then
AC_CHECK_LIB(os, initgroups)
fi
AC_CHECK_FUNCS(syslog)
if test $ac_cv_func_syslog = no; then
# syslog is not in the default libraries. See if it's in some other.
for lib in bsd socket inet; do
AC_CHECK_LIB($lib, syslog, [AC_DEFINE(HAVE_SYSLOG, 1, [FIXME])
LIBS="$LIBS -l$lib"; break])
done
fi
AC_MSG_CHECKING(for 3-argument setpriority function)
AC_CACHE_VAL(utils_cv_func_setpriority,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/time.h>
#include <sys/resource.h>]], [[setpriority(0, 0, 0);]])],
[utils_cv_func_setpriority=yes],
[utils_cv_func_setpriority=no])])
AC_MSG_RESULT($utils_cv_func_setpriority)
if test $utils_cv_func_setpriority = yes; then
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS nice"
OPTIONAL_BIN_ZCRIPTS="$OPTIONAL_BIN_ZCRIPTS nohup"
MAN="$MAN nice.1 nohup.1"
else
AC_MSG_CHECKING(for nice function)
AC_CACHE_VAL(utils_cv_func_nice,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[nice();]])],
[utils_cv_func_nice=yes],
[utils_cv_func_nice=no])])
AC_MSG_RESULT($utils_cv_func_nice)
if test $utils_cv_func_nice = yes; then
AC_DEFINE(NICE_PRIORITY, 1, [FIXME])
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS nice"
OPTIONAL_BIN_ZCRIPTS="$OPTIONAL_BIN_ZCRIPTS nohup"
MAN="$MAN nice.1 nohup.1"
fi
fi
AC_DEFUN(jm_DUMMY_1,
[
AC_REQUIRE([jm_PREREQ_READUTMP])
if test $ac_cv_header_utmp_h = yes || test $ac_cv_header_utmpx_h = yes; then
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS pinky users who"
MAN="$MAN pinky.1 users.1 who.1"
fi
])
jm_DUMMY_1
AC_MSG_CHECKING(ut_host in struct utmp)
AC_CACHE_VAL(su_cv_func_ut_host_in_utmp,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
#include <utmp.h>]], [[struct utmp ut; ut.ut_host;]])],
[su_cv_func_ut_host_in_utmp=yes],
[su_cv_func_ut_host_in_utmp=no])])
AC_MSG_RESULT($su_cv_func_ut_host_in_utmp)
if test $su_cv_func_ut_host_in_utmp = yes; then
have_ut_host=1
AC_DEFINE(HAVE_UT_HOST, 1, [FIXME])
fi
if test -z "$have_ut_host"; then
AC_MSG_CHECKING(ut_host in struct utmpx)
AC_CACHE_VAL(su_cv_func_ut_host_in_utmpx,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
#include <utmpx.h>]], [[struct utmpx ut; ut.ut_host;]])],
[su_cv_func_ut_host_in_utmpx=yes],
[su_cv_func_ut_host_in_utmpx=no])])
AC_MSG_RESULT($su_cv_func_ut_host_in_utmpx)
if test $su_cv_func_ut_host_in_utmpx = yes; then
AC_DEFINE(HAVE_UTMPX_H, 1, [FIXME])
AC_DEFINE(HAVE_UT_HOST, 1, [FIXME])
fi
fi
GNULIB_BOOT_TIME(
[OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS uptime" MAN="$MAN uptime.1"])
AC_SYS_POSIX_TERMIOS()
jm_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
if test $ac_cv_sys_posix_termios = yes; then
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS stty" MAN="$MAN stty.1"
AC_MSG_CHECKING(whether termios.h needs _XOPEN_SOURCE)
AC_CACHE_VAL(su_cv_sys_termios_needs_xopen_source,
[AC_EGREP_CPP(yes, [#include <termios.h>
#ifdef IUCLC
yes
#endif], su_cv_sys_termios_needs_xopen_source=no,
AC_EGREP_CPP(yes, [#define _XOPEN_SOURCE
#include <termios.h>
#ifdef IUCLC
yes
#endif], su_cv_sys_termios_needs_xopen_source=yes,
su_cv_sys_termios_needs_xopen_source=no))])
AC_MSG_RESULT($su_cv_sys_termios_needs_xopen_source)
test $su_cv_sys_termios_needs_xopen_source = yes &&
AC_DEFINE(TERMIOS_NEEDS_XOPEN_SOURCE, 1, [FIXME])
AC_MSG_CHECKING(c_line in struct termios)
AC_CACHE_VAL(su_cv_sys_c_line_in_termios,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if TERMIOS_NEEDS_XOPEN_SOURCE
#define _XOPEN_SOURCE
#endif
#include <sys/types.h>
#include <termios.h>]], [[struct termios t; t.c_line;]])],
[su_cv_sys_c_line_in_termios=yes],
[su_cv_sys_c_line_in_termios=no])])
AC_MSG_RESULT($su_cv_sys_c_line_in_termios)
test $su_cv_sys_c_line_in_termios = yes \
&& AC_DEFINE(HAVE_C_LINE, 1, [FIXME])
fi
# FIXME: note that this macro appears above, too.
# I'm leaving it here for now. This whole thing needs to be modernized...
jm_WINSIZE_IN_PTEM
jm_HEADER_TIOCGWINSZ_IN_TERMIOS_H
if test $jm_cv_sys_tiocgwinsz_needs_termios_h = no && \
test $jm_cv_sys_tiocgwinsz_needs_sys_ioctl_h = no; then
AC_MSG_CHECKING(TIOCGWINSZ in sys/pty.h)
AC_CACHE_VAL(su_cv_sys_tiocgwinsz_in_sys_pty_h,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
#ifdef WINSIZE_IN_PTEM
# include <sys/stream.h>
# include <sys/ptem.h>
#endif
#include <sys/ioctl.h>
#include <sys/tty.h>
#include <sys/pty.h>]], [[int x = TIOCGWINSZ;]])],
[su_cv_sys_tiocgwinsz_in_sys_pty_h=yes],
[su_cv_sys_tiocgwinsz_in_sys_pty_h=no])])
AC_MSG_RESULT($su_cv_sys_tiocgwinsz_in_sys_pty_h)
test $su_cv_sys_tiocgwinsz_in_sys_pty_h = yes \
&& AC_DEFINE(GWINSZ_IN_SYS_PTY, 1,
[Define if your system defines TIOCGWINSZ in sys/pty.h.])
fi
# For src/kill.c.
AC_CHECK_DECLS([strsignal, strtoimax, sys_siglist, _sys_siglist])
jm_LIB_CHECK
AM_GNU_GETTEXT([external], [need-ngettext])
AM_GNU_GETTEXT_VERSION(0.11.5)
AC_CONFIG_FILES(
Makefile
doc/Makefile
lib/Makefile
man/Makefile
m4/Makefile
po/Makefile.in
src/Makefile
tests/Makefile
tests/basename/Makefile
tests/chgrp/Makefile
tests/chmod/Makefile
tests/chown/Makefile
tests/cp/Makefile
tests/cut/Makefile
tests/date/Makefile
tests/dd/Makefile
tests/dircolors/Makefile
tests/du/Makefile
tests/expr/Makefile
tests/factor/Makefile
tests/fmt/Makefile
tests/head/Makefile
tests/install/Makefile
tests/join/Makefile
tests/ln/Makefile
tests/ls-2/Makefile
tests/ls/Makefile
tests/md5sum/Makefile
tests/misc/Makefile
tests/mkdir/Makefile
tests/mv/Makefile
tests/od/Makefile
tests/pr/Makefile
tests/rm/Makefile
tests/rmdir/Makefile
tests/seq/Makefile
tests/sha1sum/Makefile
tests/shred/Makefile
tests/sort/Makefile
tests/stty/Makefile
tests/sum/Makefile
tests/tac/Makefile
tests/tail-2/Makefile
tests/tail/Makefile
tests/test/Makefile
tests/touch/Makefile
tests/tr/Makefile
tests/tsort/Makefile
tests/unexpand/Makefile
tests/uniq/Makefile
tests/wc/Makefile
)
AC_OUTPUT

View File

@@ -1,4 +1,222 @@
2001-11-10 Jim Meyering <meyering@lucent.com>
2002-11-13 Jim Meyering <jim@meyering.net>
* coreutils.texi (Examples of expr): Remove bogus `^'s.
Reported by Thomas Goerlich.
2002-11-09 Jim Meyering <jim@meyering.net>
* coreutils.texi (What information is listed) [--dired]:
Correct parts of --dired description. Reported by Andre Spiegel.
Include a lot more description, with examples.
2002-11-06 Jim Meyering <jim@meyering.net>
* coreutils.texi (printf invocation): Fix typo in index:
change \0x prefix to \x.
Change \xhhh to \xhh.
2002-10-07 Paul Eggert <eggert@twinsun.com>
Add support for locale-specific size indications (e.g.,
thousands-separators) and for explicit size suffixes on output.
* coreutils.texi (Block size): Say that:
This affects display format as well as block size.
Fractional block counts are rounded up.
ls file size blocksize defaults to 1.
A block size spec preceded by ' generates thousands separators.
A suffix without a preceding integer generates suffixes.
(tail invocation): 32k -> 32 KiB.
(What information is listed): ls -h is now equivalent to
ls --block-size=human, and ls -H is now equivalent to
ls --block-size=si. Displayed file size is now always affected by
--block-size.
2002-09-13 Jim Meyering <jim@meyering.net>
* coreutils.texi (tail invocation): In --sleep-interval=NUMBER,
NUMBER may now be a floating point number.
(stat invocation): Remove references to now-removed %S and %C.
(Time directives) [%S]: Explain why the range is [0..60].
2002-08-30 Jim Meyering <jim@meyering.net>
* coreutils.texi [START-INFO-DIR-ENTRY]: Don't use sc{} on LHS.
Fix typo: s/permission/permissions/. From Michail Litvak.
2002-08-02 Paul Eggert <eggert@twinsun.com>
* coreutils.texi (uniq invocation): uniq now obeys LC_COLLATE.
2002-07-29 Paul Eggert <eggert@twinsun.com>
* coreutils.texi (nohup invocation): Change behavior to conform to
POSIX 1003.1-2001:
- Do not adjust scheduling priority.
- Redirects stderr to stdout, if stderr is not a terminal.
- Exit status is now 126 if command was found but not invoked,
127 if nohup failed or if command was not found.
2002-07-24 Jim Meyering <jim@meyering.net>
* coreutils.texi (Time directives): Document %P, %R, %e, %F,
%g, %G, and %V
2002-07-22 Martin Michlmayr <tbm@cyrius.com>
* coreutils.texi (Formatting the file names): Document
that -N/--literal are equivalent to --quoting-style=literal.
Reported by Oskar Liljeblad as Debian bug#103612.
2002-07-10 Jim Meyering <jim@meyering.net>
* coreutils.texi (du invocation): s/PAT/PATTERN/.
From Martin Michlmayr.
2002-07-08 Jim Meyering <jim@meyering.net>
* coreutils.texi (cp invocation): Remove unnecessary "$@" in example;
Texinfo would render the @" as an umlaut over the following character.
From Paul Eggert.
* Makefile.am (check-texinfo): Check for the above.
2002-07-06 Jim Meyering <jim@meyering.net>
* coreutils.texi (stat invocation): Remove description of --secure.
2002-07-03 Jim Meyering <jim@meyering.net>
* coreutils.texi (stat invocation): Rename --link/-l
to --dereference/-L. Rewrite description of --dereference.
2002-06-26 Paul Eggert <eggert@twinsun.com>
* coreutils.texi (Putting the tools together): Don't mention egrep,
since it's not part of POSIX 1003.1-2001.
2002-06-21 Jim Meyering <jim@meyering.net>
* coreutils.texi (stat invocation): New section. From Michael Meskes.
2002-05-19 Paul Eggert <eggert@twinsun.com>
* coreutils.texi (ls invocation): Document new option: --author.
2002-06-03 Jim Meyering <jim@meyering.net>
* coreutils.texi (rm invocation): Add the warning (also in the --help
output) that the contents of a removed file are often recoverable.
2002-05-27 Jim Meyering <jim@meyering.net>
* Makefile.am (check-texinfo): Adapt to reflect that now we use
@acronym{POSIX}.
2002-05-26 Jim Meyering <jim@meyering.net>
* coreutils.texi: Use @acronym in place of most uses of @sc.
* getdate.texi (Date input formats): Likewise.
2002-04-28 Jim Meyering <jim@meyering.net>
* coreutils.texi: Change `@code{PROG}' to `@command{PROG}'.
2002-04-28 Paul Eggert <eggert@twinsun.com>
* coreutils.texi (kill invocation): Document the above.
Document POSIX signals better.
2002-04-15 Jim Meyering <jim@meyering.net>
* coreutils.texi: Document kill.
Written by Marcus Brinkmann.
2002-04-13 Jim Meyering <jim@meyering.net>
* coreutils.texi: Document link and unlink.
2002-04-08 Jim Meyering <jim@meyering.net>
* coreutils.texi: Use new directives, @copying and @insertcopying,
thus now requiring texinfo-4.2 to create the .info file.
2002-02-26 Paul Eggert <eggert@twinsun.com>
* coreutils.texi (File characteristic tests): Document the
behavior of test -nt and -ot when one of the files does not exist,
using the same behavior that is documented in ksh93.
2002-03-05 Paul Eggert <eggert@twinsun.com>
* coreutils.texi (cut invocation): Say that selected input is
written in the same order that it is read, and is written
exactly once.
2002-03-03 Paul Eggert <eggert@twinsun.com>
Make cp -r equivalent to cp -R. Add a new cp option --copy-contents
for people who want to emulate the traditional (and rarely desirable)
cp -r behavior.
* coreutils.texi (cp invocation): Document this.
Fix some related minor bugs: --no-dereference is no longer
equivalent to -d, and --archive (-a) can override the other
symlink options. Warn that cp -R is not portable on symbolic
links unless you also specify -P.
2002-03-02 Jim Meyering <jim@meyering.net>
* coreutils.texi (cp invocation): Document that cp -r
preserves symlinks. Emphasize non-portability of cp -r.
2002-02-27 Paul Eggert <eggert@twinsun.com>
* coreutils.texi (Time directives): Add %N for nanoseconds.
This documents the recent change to 'ls'.
2002-02-28 Jim Meyering <jim@meyering.net>
* coreutils.texi (pr invocation): Reword to avoid using `:'
in an @opindex entry -- info doesn't permit it.
2002-02-27 Paul Eggert <eggert@twinsun.com>
* coreutils.texi (Formatting file timestamps): Document new
time-formatting method: --time-style=+FORMAT.
2002-02-18 Paul Eggert <eggert@twinsun.com>
* coreutils.texi (seq invocation): In the example, use "tail
-n 3", not "tail -3", to conform to POSIX 1003.1-2001.
2002-02-17 Jim Meyering <jim@meyering.net>
* coreutils.texi (tsort background): New section.
From Ian Lance Taylor.
(tsort invocation): Add a more realistic example.
2002-02-15 Paul Eggert <eggert@twinsun.com>
* coreutils.texi: Document _POSIX2_VERSION.
(Standards Conformance): New section.
2002-01-24 Jim Meyering <jim@meyering.net>
* coreutils.texi (START-INFO-DIR-ENTRY): Remove a few entries
and clean up a few others based on suggestions from Bob Proulx.
2002-02-14 Paul Eggert <eggert@twinsun.com>
Add support for POSIX 1003.1-2001, which requires removal for
support of obsolete "+" option syntax in sort, tail, and uniq.
* coreutils.texi: Document this. (Also, document a similar
change to "touch", for fileutils).
2002-01-12 Jim Meyering <jim@meyering.net>
* coreutils.texi (shred invocation): List some journaled filesystems.
2001-11-10 Jim Meyering <jim@meyering.net>
* coreutils.texi (Date directives): Document %u.
@@ -7,18 +225,18 @@
* coreutils.texi (paste invocation): Give examples.
Thanks to Dan Jacobson for suggesting the examples.
2001-11-05 Jim Meyering <meyering@lucent.com>
2001-11-05 Jim Meyering <jim@meyering.net>
* coreutils.texi (sort invocation): Recommend setting LC_ALL=C,
not LC_COLLATE=C. Explain how the latter can cause problems.
Based on a message from Paul Eggert.
(ls invocation): Recommend setting LC_ALL=C, not LC_COLLATE=C.
2001-10-21 Jim Meyering <meyering@lucent.com>
2001-10-21 Jim Meyering <jim@meyering.net>
* coreutils.texi (cp invocation): Describe --reply=...
2001-10-17 Jim Meyering <meyering@lucent.com>
2001-10-17 Jim Meyering <jim@meyering.net>
* coreutils.texi (cp invocation): `cp --no-dereference' is
no longer equivalent to `cp -d'.
@@ -27,12 +245,12 @@
Describe new optional argument to --preserve.
Describe new option: --no-preserve=ATTRIBUTE_LIST.
2001-09-23 Jim Meyering <meyering@lucent.com>
2001-09-23 Jim Meyering <jim@meyering.net>
* Makefile.am (check-texinfo): Redirect stderr of `grep -w' to
/dev/null, so people with old versions of grep don't see the failure.
2001-09-16 Jim Meyering <meyering@lucent.com>
2001-09-16 Jim Meyering <jim@meyering.net>
* coreutils.texi (mv invocation): Describe new option:
--reply={yes,no,query}. Fix a few typos.
@@ -42,7 +260,7 @@
* coreutils.texi (uniq invocation): The input need not
be sorted. Try to clarify -d versus -D versus -u.
2001-09-12 Jim Meyering <meyering@lucent.com>
2001-09-12 Jim Meyering <jim@meyering.net>
* coreutils.texi (tail invocation): Document new option: -F.
From Herbert Xu.
@@ -74,7 +292,7 @@
* coreutils.texi: expr now uses LC_COLLATE for string comparison,
as per POSIX.
2001-08-25 Jim Meyering <meyering@lucent.com>
2001-08-25 Jim Meyering <jim@meyering.net>
* coreutils.texi: Use @option, rather than @samp everywhere.
@@ -83,12 +301,12 @@
* coreutils.texi: 'expr' now requires '+' rather than 'quote'
to quote tokens.
2001-07-14 Jim Meyering <meyering@lucent.com>
2001-07-14 Jim Meyering <jim@meyering.net>
* coreutils.texi (cp invocation): Reflect 2001-07-08 change to
cp (via copy.c).
2001-06-16 Jim Meyering <meyering@lucent.com>
2001-06-16 Jim Meyering <jim@meyering.net>
* Makefile.am (info_TEXINFOS): Reflect renaming: s/omni-/core/.
* coreutils.texi: Likewise.
@@ -99,14 +317,14 @@
* omni-utils.texi (ls invocation): Mention the effect of locale.
Reported by Keith Thompson.
2001-05-24 Jim Meyering <meyering@lucent.com>
2001-05-24 Jim Meyering <jim@meyering.net>
* texinfo.tex: Update from master source.
* omni-utils.texi (ls invocation): Document more clearly what ls
does when given no arguments.
2001-05-21 Jim Meyering <meyering@lucent.com>
2001-05-21 Jim Meyering <jim@meyering.net>
* textutils.texi: Remove file.

View File

@@ -31,6 +31,9 @@ $(INFO_DEPS): $(EXTRA_DIST)
# List words/regexps here that should not appear in the texinfo documentation.
check-texinfo:
grep timezone $(srcdir)/*.texi && exit 1 || :
grep -w POSIX $(srcdir)/*.texi 2> /dev/null && exit 1 || :
grep '\$$@"' $(srcdir)/*.texi && exit 1 || :
$(PERL) -ne \
'/\bPOSIX\b/ && !/\@acronym{POSIX}/ || /{posix}/ and print,exit 1' \
$(srcdir)/*.texi 2> /dev/null && : || exit 1
check: check-texinfo

View File

@@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.5a from Makefile.am.
# Makefile.in generated by automake 1.7.1b from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -14,110 +14,74 @@
@SET_MAKE@
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
install_sh_DATA = $(install_sh) -c -m 644
INSTALL_SCRIPT = @INSTALL_SCRIPT@
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
EXEEXT = @EXEEXT@
OBJEXT = @OBJEXT@
PATH_SEPARATOR = @PATH_SEPARATOR@
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GNU_PACKAGE = @GNU_PACKAGE@
HELP2MAN = @HELP2MAN@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
KMEM_GROUP = @KMEM_GROUP@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
LIB_CRYPT = @LIB_CRYPT@
LIB_NANOSLEEP = @LIB_NANOSLEEP@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
NEED_SETGID = @NEED_SETGID@
OPTIONAL_BIN_PROGS = @OPTIONAL_BIN_PROGS@
OPTIONAL_BIN_ZCRIPTS = @OPTIONAL_BIN_ZCRIPTS@
PACKAGE = @PACKAGE@
PERL = @PERL@
POFILES = @POFILES@
POSUB = @POSUB@
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@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
info_TEXINFOS = coreutils.texi
EXTRA_DIST = perm.texi getdate.texi constants.texi doclicense.texi
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
LTLIBOBJS = @LTLIBOBJS@
# The following is necessary if the package name is 8 characters or longer.
# If the info documentation would be split into 10 or more separate files,
@@ -128,74 +92,142 @@ EXTRA_DIST = perm.texi getdate.texi constants.texi doclicense.texi
# and those names all map to one 14-byte name (<package>.info-) on some crufty
# old systems.
MAKEINFO = makeinfo --no-split
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
MSGMERGE = @MSGMERGE@
NEED_SETGID = @NEED_SETGID@
OBJEXT = @OBJEXT@
OPTIONAL_BIN_PROGS = @OPTIONAL_BIN_PROGS@
OPTIONAL_BIN_ZCRIPTS = @OPTIONAL_BIN_ZCRIPTS@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
POSUB = @POSUB@
POW_LIB = @POW_LIB@
RANLIB = @RANLIB@
SEQ_LIBM = @SEQ_LIBM@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SQRT_LIBM = @SQRT_LIBM@
STRIP = @STRIP@
U = @U@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
YACC = @YACC@
ac_ct_CC = @ac_ct_CC@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__quote = @am__quote@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
info_TEXINFOS = coreutils.texi
EXTRA_DIST = perm.texi getdate.texi constants.texi doclicense.texi
subdir = doc
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
DIST_SOURCES =
TEXINFO_TEX = $(top_srcdir)/config/texinfo.tex
am__TEXINFO_TEX_DIR = $(top_srcdir)/config
INFO_DEPS = coreutils.info
DVIS = coreutils.dvi
PDFS = coreutils.pdf
PSS = coreutils.ps
TEXINFOS = coreutils.texi
DIST_COMMON = ChangeLog Makefile.am Makefile.in mdate-sh stamp-vti \
texinfo.tex version.texi
DIST_COMMON = ChangeLog Makefile.am Makefile.in stamp-vti version.texi
all: all-am
.SUFFIXES:
.SUFFIXES: .dvi .info .ps .texi
.SUFFIXES: .dvi .info .pdf .ps .texi
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu doc/Makefile
$(AUTOMAKE) --gnits doc/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
$(srcdir)/version.texi: $(srcdir)/stamp-vti
@:
$(srcdir)/stamp-vti: coreutils.texi $(top_srcdir)/configure.ac
@(set `$(SHELL) $(srcdir)/mdate-sh $(srcdir)/coreutils.texi`; \
.texi.info:
@rm -f $@ $@-[0-9] $@-[0-9][0-9]
$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
-o $@ `test -f '$<' || echo '$(srcdir)/'`$<
.texi.dvi:
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
$(TEXI2DVI) `test -f '$<' || echo '$(srcdir)/'`$<
.texi.pdf:
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
$(TEXI2PDF) `test -f '$<' || echo '$(srcdir)/'`$<
coreutils.info: coreutils.texi version.texi
coreutils.dvi: coreutils.texi version.texi
coreutils.pdf: coreutils.texi version.texi
version.texi: stamp-vti
stamp-vti: coreutils.texi $(top_srcdir)/configure
@(dir=.; test -f ./coreutils.texi || dir=$(srcdir); \
set `$(SHELL) $(top_srcdir)/config/mdate-sh $$dir/coreutils.texi`; \
echo "@set UPDATED $$1 $$2 $$3"; \
echo "@set UPDATED-MONTH $$2 $$3"; \
echo "@set EDITION $(VERSION)"; \
echo "@set VERSION $(VERSION)") > vti.tmp
@cmp -s vti.tmp $(srcdir)/version.texi \
|| (echo "Updating $(srcdir)/version.texi"; \
cp vti.tmp $(srcdir)/version.texi)
@cmp -s vti.tmp version.texi \
|| (echo "Updating version.texi"; \
cp vti.tmp version.texi)
-@rm -f vti.tmp
@cp $(srcdir)/version.texi $@
@cp version.texi $@
mostlyclean-vti:
-rm -f vti.tmp
maintainer-clean-vti:
-rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
coreutils.info: coreutils.texi $(srcdir)/version.texi
coreutils.dvi: coreutils.texi $(srcdir)/version.texi
.texi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
`echo $< | sed 's,.*/,,'`
.texi.dvi:
TEXINPUTS="$(srcdir)$(PATH_SEPARATOR)$$TEXINPUTS" \
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
$(TEXI2DVI) $<
.texi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
`echo $< | sed 's,.*/,,'`
-rm -f stamp-vti version.texi
TEXI2DVI = texi2dvi
TEXI2PDF = $(TEXI2DVI) --pdf --batch
DVIPS = dvips
.dvi.ps:
$(DVIPS) $< -o $@
$(DVIPS) -o $@ $<
uninstall-info-am:
$(PRE_UNINSTALL)
@if (install-info --version && \
install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
install-info --version | grep -i -v debian) >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file"; \
@@ -214,7 +246,7 @@ uninstall-info-am:
dist-info: $(INFO_DEPS)
list='$(INFO_DEPS)'; \
for base in $$list; do \
d=$(srcdir); \
if test -f $$base; then d=.; else d=$(srcdir); fi; \
for file in $$d/$$base*; do \
relfile=`expr "$$file" : "$$d/\(.*\)"`; \
test -f $(distdir)/$$relfile || \
@@ -223,14 +255,13 @@ dist-info: $(INFO_DEPS)
done
mostlyclean-aminfo:
-rm -f coreutils.aux coreutils.cp coreutils.cps coreutils.dvi coreutils.fl \
coreutils.fn coreutils.ky coreutils.log coreutils.op \
coreutils.pg coreutils.ps coreutils.toc coreutils.tp \
coreutils.vr
-rm -f coreutils.aux coreutils.cp coreutils.cps coreutils.fl coreutils.fn \
coreutils.ky coreutils.log coreutils.op coreutils.pg \
coreutils.tmp coreutils.toc coreutils.tp coreutils.tps \
coreutils.vr coreutils.dvi coreutils.pdf coreutils.ps
maintainer-clean-aminfo:
cd $(srcdir) && \
for i in $(INFO_DEPS); do \
list='$(INFO_DEPS)'; for i in $$list; do \
rm -f $$i; \
if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
rm -f $$i-[0-9]*; \
@@ -239,21 +270,35 @@ maintainer-clean-aminfo:
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
dir="/$$dir"; \
$(mkinstalldirs) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
@@ -261,7 +306,7 @@ distdir: $(DISTFILES)
fi; \
done
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="${top_distdir}" distdir="$(distdir)" \
top_distdir="$(top_distdir)" distdir="$(distdir)" \
dist-info
check-am: all-am
check: check-am
@@ -281,6 +326,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -288,7 +334,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -320,7 +366,7 @@ install-info-am: $(INFO_DEPS)
$(mkinstalldirs) $(DESTDIR)$(infodir)
@list='$(INFO_DEPS)'; \
for file in $$list; do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
for ifile in echo $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9]; do \
if test -f $$ifile; then \
relfile=`expr "$$ifile" : "$$d/\(.*\)"`; \
@@ -331,7 +377,7 @@ install-info-am: $(INFO_DEPS)
done
@$(POST_INSTALL)
@if (install-info --version && \
install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
install-info --version | grep -i -v debian) >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
@@ -351,6 +397,14 @@ mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-aminfo mostlyclean-generic mostlyclean-vti
pdf: pdf-am
pdf-am: $(PDFS)
ps: ps-am
ps-am: $(PSS)
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic dist-info \
@@ -360,8 +414,8 @@ uninstall-am: uninstall-info-am
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-aminfo \
maintainer-clean-generic maintainer-clean-vti mostlyclean \
mostlyclean-aminfo mostlyclean-generic mostlyclean-vti \
uninstall uninstall-am uninstall-info-am
mostlyclean-aminfo mostlyclean-generic mostlyclean-vti pdf \
pdf-am ps ps-am uninstall uninstall-am uninstall-info-am
# Remove `DISABLED_' when fileutils, textutils, and sh-utils have
@@ -382,7 +436,10 @@ $(INFO_DEPS): $(EXTRA_DIST)
# List words/regexps here that should not appear in the texinfo documentation.
check-texinfo:
grep timezone $(srcdir)/*.texi && exit 1 || :
grep -w POSIX $(srcdir)/*.texi 2> /dev/null && exit 1 || :
grep '\$$@"' $(srcdir)/*.texi && exit 1 || :
$(PERL) -ne \
'/\bPOSIX\b/ && !/\@acronym{POSIX}/ || /{posix}/ and print,exit 1' \
$(srcdir)/*.texi 2> /dev/null && : || exit 1
check: check-texinfo
# Tell versions [3.59,3.63) of GNU make to not export all variables.

8
doc/code-vs-command Normal file
View File

@@ -0,0 +1,8 @@
perl -pi -e \
's/\@code\{('"$(echo cp dd df dir dircolors du install ln ls mkdir mkfifo mknod mv shred touch vdir|tr ' ' '|')"')\}/\@command{$1}/' coreutils.texi
perl -pi -e \
's/\@code\{('"$(echo cp dd df dir dircolors du install ln ls mkdir mkfifo mknod mv shred touch vdir|tr ' ' '|')"')\}/\@command{$1}/' coreutils.texi
regex=$((textutils; shellutils) | tr -s ' ' '|')
perl -pi -e 's/\@code\{('"$regex"')\}/\@command{$1}/' coreutils.texi

File diff suppressed because it is too large Load Diff

View File

@@ -35,13 +35,13 @@ programs accept. These are the strings you, as a user, can supply as
arguments to the various programs. The C interface (via the
@code{getdate} function) is not described here.
@cindex beginning of time, for @sc{posix}
@cindex epoch, for @sc{posix}
@cindex beginning of time, for @acronym{POSIX}
@cindex epoch, for @acronym{POSIX}
Although the date syntax here can represent any possible time since the
year zero, computer integers often cannot represent such a wide range of
time. On @sc{posix} systems, the clock starts at 1970-01-01 00:00:00
@sc{utc}: @sc{posix} does not require support for times before the
@sc{posix} Epoch and times far in the future. Traditional Unix systems
time. On @acronym{POSIX} systems, the clock starts at 1970-01-01 00:00:00
@sc{utc}: @acronym{POSIX} does not require support for times before the
@acronym{POSIX} Epoch and times far in the future. Traditional Unix systems
have 32-bit signed @code{time_t} and can represent times from 1901-12-13
20:45:52 through 2038-01-19 03:14:07 @sc{utc}. Systems with 64-bit
signed @code{time_t} can represent all the times in the known

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,28 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
## Makefile for gnulib/lib -*-Makefile-*-
# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 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.
AUTOMAKE_OPTIONS = ../src/ansi2knr
noinst_LIBRARIES = libfetish.a
INCLUDES = -I.. -I$(srcdir) -I../intl
INCLUDES = -I.. -I$(srcdir)
DEFS = -DLIBDIR=\"$(libdir)\" @DEFS@
## Put relatively complex files at the beginning of the list so
@@ -13,8 +31,10 @@ DEFS = -DLIBDIR=\"$(libdir)\" @DEFS@
## added by automake, but on systems with an up to date GNU libc,
## regex.c isn't even compiled.
libfetish_a_SOURCES = \
acl.h acl.c \
getdate.h getdate.y \
posixtm.c posixtm.h \
posixver.c posixver.h \
strftime.c \
getopt.c getopt.h getopt1.c \
hash.c hash.h \
@@ -26,27 +46,32 @@ libfetish_a_SOURCES = \
basename.c \
bumpalloc.h \
canon-host.c \
c-stack.c c-stack.h \
closeout.c closeout.h \
diacrit.c diacrit.h \
dirname.c dirname.h \
dirfd.h \
dup-safer.c \
exclude.c exclude.h \
exitfail.c exitfail.h \
filemode.c filemode.h \
fnmatch.h \
file-type.c file-type.h \
fnmatch_.h \
fopen-safer.c \
fsusage.h \
full-write.c full-write.h \
getline.h \
getpagesize.h \
getstr.c getstr.h \
gettime.c \
gettext.h \
getugroups.c \
group-member.h \
gtod.h \
hard-locale.c hard-locale.h \
human.c human.h \
idcache.c \
isdir.c \
imaxtostr.c \
lchown.h \
linebuffer.c linebuffer.h \
localcharset.c \
@@ -58,7 +83,7 @@ libfetish_a_SOURCES = \
memcoll.c memcoll.h \
modechange.c modechange.h \
mountlist.h \
nanosleep.h \
offtostr.c \
path-concat.c path-concat.h \
pathmax.h \
physmem.c physmem.h \
@@ -68,21 +93,29 @@ libfetish_a_SOURCES = \
readutmp.h \
regex.h \
safe-read.c safe-read.h \
safe-write.c safe-write.h \
same.c same.h \
save-cwd.c save-cwd.h \
savedir.c savedir.h \
settime.c \
sha.c sha.h \
sig2str.h \
stdio-safer.h \
stripslash.c \
strverscmp.h \
timespec.h \
umaxtostr.c \
unicodeio.c unicodeio.h \
unistd-safer.h \
unlocked-io.h \
userspec.c \
version-etc.c version-etc.h \
xalloc.h \
xgetcwd.c \
xgethostname.c \
xmalloc.c \
xmemcoll.c xmemcoll.h \
xnanosleep.c xnanosleep.h \
xreadlink.c xreadlink.h \
xstrdup.c \
xstrtod.c xstrtod.h \
@@ -96,30 +129,11 @@ libfetish_a_LIBADD = @LIBOBJS@ @ALLOCA@
libfetish_a_DEPENDENCIES = $(libfetish_a_LIBADD)
BUILT_SOURCES = getdate.c lstat.c stat.c unlocked-io.h
BUILT_SOURCES = getdate.c
MAINTAINERCLEANFILES = $(BUILT_SOURCES)
DISTCLEANFILES = lstat.c stat.c unlocked-io.h
EXTRA_DIST = xstat.in config.charset ref-add.sin ref-del.sin gen-uio
lstat.c: xstat.in
sed \
-e '/@IGNORE@/d' \
-e 's/@xstat@/lstat/g' \
-e '/_LSTAT_ONLY@/d' \
-e '/@BEGIN_STAT_ONLY@/,/@END_STAT_ONLY@/d' \
$(srcdir)/xstat.in > $@-t
mv $@-t $@
stat.c: xstat.in
sed \
-e '/@IGNORE@/d' \
-e 's/@xstat@/stat/g' \
-e '/_STAT_ONLY@/d' \
-e '/@BEGIN_LSTAT_ONLY@/,/@END_LSTAT_ONLY@/d' \
$(srcdir)/xstat.in > $@-t
mv $@-t $@
Makefile: $(BUILT_SOURCES)
EXTRA_DIST = config.charset ref-add.sin ref-del.sin \
fnmatch_loop.c inttostr.c inttostr.h
# The following is needed in order to install a simple file in $(libdir)
# which is shared with other installed packages. We use a list of referencing
@@ -128,7 +142,7 @@ Makefile: $(BUILT_SOURCES)
# On systems with glibc-2.1 or newer, the file is redundant, therefore we
# avoid installing it.
all-local: charset.alias ref-add.sed ref-del.sed lstat.c stat.c unlocked-io.h
all-local: charset.alias ref-add.sed ref-del.sed
charset_alias = $(DESTDIR)$(libdir)/charset.alias
charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
@@ -164,18 +178,7 @@ charset.alias: config.charset
SUFFIXES = .sed .sin
.sin.sed:
sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > $@-t
mv $@-t $@
sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@
mv t-$@ $@
CLEANFILES = charset.alias ref-add.sed ref-del.sed
###############################################
# FIXME: CAUTION this list is a duplicate of one in ../Makefile.cfg.
io_functions = \
clearerr feof ferror fflush fgets fputc fputs \
fread fwrite getc getchar putc putchar
unlocked-io.h: $(srcdir)/gen-uio Makefile.am
srcdir=$(srcdir) $(SHELL) $(srcdir)/gen-uio $(io_functions) > $@t
mv $@t $@

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,3 @@
The files in this directory are shared between the fileutils, sh-utils,
and textutils packages. Not all files are used by each package.
The files in this directory are used in many GNU packages,
including diffutils, fileutils, sh-utils, tar, and textutils.
The autoconf tests required for these files are in ../m4.
The library name, fetish, is a permutation of the first two
letters of each of the package names: FIleutils, TExtutils, SH-utils.

62
lib/acl.c Normal file
View File

@@ -0,0 +1,62 @@
/* acl.c - access control lists
Copyright (C) 2002 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 <sys/stat.h>
#ifndef S_ISLNK
# define S_ISLNK(Mode) 0
#endif
#include "acl.h"
#include <errno.h>
#ifndef ENOSYS
# define ENOSYS (-1)
#endif
#ifndef MIN_ACL_ENTRIES
# define MIN_ACL_ENTRIES 4
#endif
/* Return 1 if PATH has a nontrivial access control list, 0 if not,
and -1 (setting errno) if an error is encountered. */
int
file_has_acl (char const *path, struct stat const *pathstat)
{
/* FIXME: This implementation should work on recent-enough versions
of HP-UX, Solaris, and Unixware, but it simply returns 0 with
POSIX 1003.1e (draft 17 -- abandoned), AIX, GNU/Linux, Irix, and
Tru64. Please see Samba's source/lib/sysacls.c file for
fix-related ideas. */
#if HAVE_ACL && defined GETACLCNT
if (! S_ISLNK (pathstat->st_mode))
{
int n = acl (path, GETACLCNT, 0, NULL);
return n < 0 ? (errno == ENOSYS ? 0 : -1) : (MIN_ACL_ENTRIES < n);
}
#endif
return 0;
}

28
lib/acl.h Normal file
View File

@@ -0,0 +1,28 @@
/* acl.c - access control lists
Copyright (C) 2002 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_SYS_ACL_H && HAVE_ACL
# include <sys/acl.h>
#endif
#if ! defined GETACLCNT && defined ACL_CNT
# define GETACLCNT ACL_CNT
#endif
int file_has_acl (char const *, struct stat const *);

View File

@@ -1,5 +1,5 @@
/* addext.c -- add an extension to a file name
Copyright 1990, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
Copyright 1990, 1997, 1998, 1999, 2001, 2002 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
@@ -83,7 +83,7 @@ addext (char *filename, char const *ext, int e)
*s = c;
}
if (0 <= name_max || errno == 0)
slen_max = name_max == (size_t) name_max ? name_max : -1;
slen_max = name_max == (long) (size_t) name_max ? name_max : -1;
}
#endif

View File

@@ -33,7 +33,15 @@
#endif
#ifdef emacs
# include "lisp.h"
# include "blockinput.h"
# define xalloc_die() memory_full ()
# ifdef EMACS_FREE
# undef free
# define free EMACS_FREE
# endif
#else
# include <xalloc.h>
#endif
/* If compiling with GCC 2, this file's not needed. */
@@ -53,6 +61,8 @@
you
lose
-- must know STACK_DIRECTION at compile-time
/* Using #error here is not wise since this file should work for
old and obscure compilers. */
# endif /* STACK_DIRECTION undefined */
# endif /* static */
# endif /* emacs */
@@ -67,32 +77,19 @@ long i00afunc ();
# define ADDRESS_FUNCTION(arg) &(arg)
# endif
# if __STDC__
typedef void *pointer;
# else
typedef char *pointer;
# ifndef POINTER_TYPE
# ifdef __STDC__
# define POINTER_TYPE void
# else
# define POINTER_TYPE char
# endif
# endif
typedef POINTER_TYPE *pointer;
# ifndef NULL
# define NULL 0
# endif
/* Different portions of Emacs need to call different versions of
malloc. The Emacs executable needs alloca to call xmalloc, because
ordinary malloc isn't protected from input signals. On the other
hand, the utilities in lib-src need alloca to call malloc; some of
them are very simple, and don't have an xmalloc routine.
Non-Emacs programs expect this to call xmalloc.
Callers below should use malloc. */
# ifndef emacs
# undef malloc
# define malloc xmalloc
# endif
extern pointer malloc ();
/* Define STACK_DIRECTION if you know the direction of stack
growth for your system; otherwise it will be automatically
deduced at run-time.
@@ -169,7 +166,8 @@ static header *last_alloca_header = NULL; /* -> last alloca header. */
implementations of C, for example under Gould's UTX/32. */
pointer
alloca (size_t size)
alloca (size)
size_t size;
{
auto char probe; /* Probes stack depth: */
register char *depth = ADDRESS_FUNCTION (probe);
@@ -215,8 +213,14 @@ alloca (size_t size)
/* Allocate combined header + user data storage. */
{
register pointer new = malloc (sizeof (header) + size);
/* Address of header. */
register pointer new;
size_t combined_size = sizeof (header) + size;
if (combined_size < sizeof (header))
xalloc_die ();
new = xmalloc (combined_size);
if (new == 0)
abort();

View File

@@ -1,5 +1,5 @@
/* argmatch.c -- find a match for a string in an array
Copyright (C) 1990, 1998, 1999, 2001 Free Software Foundation, Inc.
Copyright (C) 1990, 1998, 1999, 2001, 2002 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
@@ -18,23 +18,19 @@
/* Written by David MacKenzie <djm@ai.mit.edu>
Modified by Akim Demaille <demaille@inf.enst.fr> */
#if HAVE_CONFIG_H
# include <config.h>
#endif
/* Specification. */
#include "argmatch.h"
#include <stdio.h>
#ifdef STDC_HEADERS
# include <string.h>
#endif
#include <stdlib.h>
#include <string.h>
#if HAVE_LOCALE_H
# include <locale.h>
#endif
#if ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#endif
#include "gettext.h"
#define _(msgid) gettext (msgid)
#include "error.h"
#include "quotearg.h"
@@ -48,14 +44,6 @@
# define ARGMATCH_QUOTING_STYLE locale_quoting_style
#endif
/* The following test is to work around the gross typo in
systems like Sony NEWS-OS Release 4.0C, whereby EXIT_FAILURE
is defined to 0, not 1. */
#if !EXIT_FAILURE
# undef EXIT_FAILURE
# define EXIT_FAILURE 1
#endif
/* Non failing version of argmatch call this function after failing. */
#ifndef ARGMATCH_DIE
# define ARGMATCH_DIE exit (EXIT_FAILURE)
@@ -80,7 +68,6 @@ argmatch_exit_fn argmatch_die = __argmatch_die;
null-terminated array ARGLIST, return the index in ARGLIST
of the matched element, else -1 if it does not match any element
or -2 if it is ambiguous (is a prefix of more than one element).
If SENSITIVE, comparison is case sensitive.
If VALLIST is none null, use it to resolve ambiguities limited to
synonyms, i.e., for
@@ -88,10 +75,9 @@ argmatch_exit_fn argmatch_die = __argmatch_die;
"no", "nope" -> 1
"y" is a valid argument, for `0', and "n" for `1'. */
static int
__argmatch_internal (const char *arg, const char *const *arglist,
const char *vallist, size_t valsize,
int case_sensitive)
int
argmatch (const char *arg, const char *const *arglist,
const char *vallist, size_t valsize)
{
int i; /* Temporary index in ARGLIST. */
size_t arglen; /* Length of ARG. */
@@ -103,9 +89,7 @@ __argmatch_internal (const char *arg, const char *const *arglist,
/* Test all elements for either exact match or abbreviated matches. */
for (i = 0; arglist[i]; i++)
{
if (case_sensitive
? !strncmp (arglist[i], arg, arglen)
: !strncasecmp (arglist[i], arg, arglen))
if (!strncmp (arglist[i], arg, arglen))
{
if (strlen (arglist[i]) == arglen)
/* Exact match found. */
@@ -133,22 +117,6 @@ __argmatch_internal (const char *arg, const char *const *arglist,
return matchind;
}
/* argmatch - case sensitive version */
int
argmatch (const char *arg, const char *const *arglist,
const char *vallist, size_t valsize)
{
return __argmatch_internal (arg, arglist, vallist, valsize, 1);
}
/* argcasematch - case insensitive version */
int
argcasematch (const char *arg, const char *const *arglist,
const char *vallist, size_t valsize)
{
return __argmatch_internal (arg, arglist, vallist, valsize, 0);
}
/* Error reporting for argmatch.
CONTEXT is a description of the type of entity that was being matched.
VALUE is the invalid value that was given.
@@ -203,12 +171,9 @@ int
__xargmatch_internal (const char *context,
const char *arg, const char *const *arglist,
const char *vallist, size_t valsize,
int case_sensitive,
argmatch_exit_fn exit_fn)
{
int res = __argmatch_internal (arg, arglist,
vallist, valsize,
case_sensitive);
int res = argmatch (arg, arglist, vallist, valsize);
if (res >= 0)
/* Success. */
return res;
@@ -294,12 +259,12 @@ main (int argc, const char *const *argv)
}
if ((cp = getenv ("VERSION_CONTROL")))
backup_type = XARGCASEMATCH ("$VERSION_CONTROL", cp,
backup_args, backup_vals);
backup_type = XARGMATCH ("$VERSION_CONTROL", cp,
backup_args, backup_vals);
if (argc == 2)
backup_type = XARGCASEMATCH (program_name, argv[1],
backup_args, backup_vals);
backup_type = XARGMATCH (program_name, argv[1],
backup_args, backup_vals);
printf ("The version control is `%s'\n",
ARGMATCH_TO_ARGUMENT (backup_type, backup_args, backup_vals));

View File

@@ -1,5 +1,5 @@
/* argmatch.h -- definitions and prototypes for argmatch.c
Copyright (C) 1990, 1998, 1999, 2001 Free Software Foundation, Inc.
Copyright (C) 1990, 1998, 1999, 2001, 2002 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,109 +21,89 @@
#ifndef ARGMATCH_H_
# define ARGMATCH_H_ 1
# if HAVE_CONFIG_H
# include <config.h>
# endif
# include <stddef.h>
# include <sys/types.h>
# define ARRAY_CARDINALITY(Array) (sizeof (Array) / sizeof *(Array))
# ifndef PARAMS
# if PROTOTYPES || (defined (__STDC__) && __STDC__)
# define PARAMS(args) args
# else
# define PARAMS(args) ()
# endif /* GCC. */
# endif /* Not PARAMS. */
# define ARGMATCH_CONSTRAINT(Arglist, Vallist) \
(ARRAY_CARDINALITY (Arglist) == ARRAY_CARDINALITY (Vallist) + 1)
/* Assert there are as many real arguments as there are values
(argument list ends with a NULL guard). There is no execution
cost, since it will be statically evalauted to `assert (0)' or
`assert (1)'. Unfortunately there is no -Wassert-0. */
(argument list ends with a NULL guard). ARGMATCH_VERIFY is
preferred, since it is guaranteed to be checked at compile-time.
ARGMATCH_ASSERT is for backward compatibility only. */
# undef ARRAY_CARDINALITY
# define ARRAY_CARDINALITY(Array) (sizeof ((Array)) / sizeof (*(Array)))
# define ARGMATCH_VERIFY(Arglist, Vallist) \
struct argmatch_verify \
{ \
char argmatch_verify[ARGMATCH_CONSTRAINT(Arglist, Vallist) ? 1 : -1]; \
}
# define ARGMATCH_ASSERT(Arglist, Vallist) \
assert (ARRAY_CARDINALITY ((Arglist)) == ARRAY_CARDINALITY ((Vallist)) + 1)
# define ARGMATCH_ASSERT(Arglist, Vallist) \
assert (ARGMATCH_CONSTRAINT (Arglist, Vallist))
/* Return the index of the element of ARGLIST (NULL terminated) that
matches with ARG. If VALLIST is not NULL, then use it to resolve
false ambiguities (i.e., different matches of ARG but corresponding
to the same values in VALLIST). */
int argmatch
PARAMS ((const char *arg, const char *const *arglist,
const char *vallist, size_t valsize));
int argcasematch
PARAMS ((const char *arg, const char *const *arglist,
const char *vallist, size_t valsize));
int argmatch (char const *arg, char const *const *arglist,
char const *vallist, size_t valsize);
# define ARGMATCH(Arg, Arglist, Vallist) \
argmatch ((Arg), (Arglist), (const char *) (Vallist), sizeof (*(Vallist)))
# define ARGCASEMATCH(Arg, Arglist, Vallist) \
argcasematch ((Arg), (Arglist), (const char *) (Vallist), sizeof (*(Vallist)))
argmatch (Arg, Arglist, (char const *) (Vallist), sizeof *(Vallist))
/* xargmatch calls this function when it fails. This function should not
return. By default, this is a function that calls ARGMATCH_DIE which
in turn defaults to `exit (EXIT_FAILURE)'. */
typedef void (*argmatch_exit_fn) PARAMS ((void));
typedef void (*argmatch_exit_fn) (void);
extern argmatch_exit_fn argmatch_die;
/* Report on stderr why argmatch failed. Report correct values. */
void argmatch_invalid
PARAMS ((const char *context, const char *value, int problem));
void argmatch_invalid (char const *context, char const *value, int problem);
/* Left for compatibility with the old name invalid_arg */
# define invalid_arg(Context, Value, Problem) \
argmatch_invalid ((Context), (Value), (Problem))
argmatch_invalid (Context, Value, Problem)
/* Report on stderr the list of possible arguments. */
void argmatch_valid
PARAMS ((const char *const *arglist,
const char *vallist, size_t valsize));
void argmatch_valid (char const *const *arglist,
char const *vallist, size_t valsize);
# define ARGMATCH_VALID(Arglist, Vallist) \
argmatch_valid (Arglist, (const char *) Vallist, sizeof (*(Vallist)))
argmatch_valid (Arglist, (char const *) (Vallist), sizeof *(Vallist))
/* Same as argmatch, but upon failure, reports a explanation on the
failure, and exits using the function EXIT_FN. */
int __xargmatch_internal
PARAMS ((const char *context,
const char *arg, const char *const *arglist,
const char *vallist, size_t valsize,
int case_sensitive, argmatch_exit_fn exit_fn));
int __xargmatch_internal (char const *context,
char const *arg, char const *const *arglist,
char const *vallist, size_t valsize,
argmatch_exit_fn exit_fn);
/* Programmer friendly interface to __xargmatch_internal. */
# define XARGMATCH(Context, Arg, Arglist, Vallist) \
(Vallist [__xargmatch_internal ((Context), (Arg), (Arglist), \
(const char *) (Vallist), \
sizeof (*(Vallist)), \
1, argmatch_die)])
# define XARGCASEMATCH(Context, Arg, Arglist, Vallist) \
(Vallist [__xargmatch_internal ((Context), (Arg), (Arglist), \
(const char *) (Vallist), \
sizeof (*(Vallist)), \
0, argmatch_die)])
# define XARGMATCH(Context, Arg, Arglist, Vallist) \
((Vallist) [__xargmatch_internal (Context, Arg, Arglist, \
(char const *) (Vallist), \
sizeof *(Vallist), \
argmatch_die)])
/* Convert a value into a corresponding argument. */
const char *argmatch_to_argument
PARAMS ((char const *value, const char *const *arglist,
const char *vallist, size_t valsize));
char const *argmatch_to_argument (char const *value,
char const *const *arglist,
char const *vallist, size_t valsize);
# define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist) \
argmatch_to_argument ((Value), (Arglist), \
(const char *) (Vallist), sizeof (*(Vallist)))
argmatch_to_argument (Value, Arglist, \
(char const *) (Vallist), sizeof *(Vallist))
#endif /* ARGMATCH_H_ */

View File

@@ -1,5 +1,5 @@
/* backupfile.c -- make Emacs style backup file names
Copyright 1990,91,92,93,94,95,96,97,98,99,2000, 2001 Free Software
Copyright (C) 1990,91,92,93,94,95,96,97,98,99,2000, 2001, 2002 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
@@ -95,10 +95,9 @@ char *malloc ();
- 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. */
POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to
ISDIGIT_LOCALE unless it's important to use the locale's definition
of `digit' even when the host does not conform to POSIX. */
#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
#if D_INO_IN_DIRENT

435
lib/c-stack.c Normal file
View File

@@ -0,0 +1,435 @@
/* Stack overflow handling.
Copyright (C) 2002 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. */
/* NOTES:
A program that uses alloca, dynamic arrays, or large local
variables may extend the stack by more than a page at a time. If
so, when the stack overflows the operating system may not detect
the overflow until the program uses the array, and this module may
incorrectly report a program error instead of a stack overflow.
To avoid this problem, allocate only small objects on the stack; a
program should be OK if it limits single allocations to a page or
less. Allocate larger arrays in static storage, or on the heap
(e.g., with malloc). Yes, this is a pain, but we don't know of any
better solution that is portable.
No attempt has been made to deal with multithreaded applications.
If ! HAVE_XSI_STACK_OVERFLOW_HEURISTIC, the current implementation
assumes that, if the RLIMIT_STACK limit changes during execution,
then c_stack_action is invoked immediately afterwards. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#ifndef __attribute__
# if __GNUC__ < 3 || __STRICT_ANSI__
# define __attribute__(x)
# endif
#endif
#include "gettext.h"
#define _(msgid) gettext (msgid)
#include <errno.h>
#ifndef ENOTSUP
# define ENOTSUP EINVAL
#endif
#ifndef EOVERFLOW
# define EOVERFLOW EINVAL
#endif
#include <signal.h>
#if ! HAVE_STACK_T && ! defined stack_t
typedef struct sigaltstack stack_t;
#endif
#include <stdlib.h>
#include <string.h>
#if HAVE_SYS_RESOURCE_H
/* Include sys/time.h here, because...
SunOS-4.1.x <sys/resource.h> fails to include <sys/time.h>.
This gives "incomplete type" errors for ru_utime and tu_stime. */
# if HAVE_SYS_TIME_H
# include <sys/time.h>
# endif
# include <sys/resource.h>
#endif
#if HAVE_UCONTEXT_H
# include <ucontext.h>
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#ifndef STDERR_FILENO
# define STDERR_FILENO 2
#endif
#if DEBUG
# include <stdio.h>
#endif
#include "c-stack.h"
#include "exitfail.h"
extern char *program_name;
/* The user-specified action to take when a SEGV-related program error
or stack overflow occurs. */
static void (* volatile segv_action) (int);
/* Translated messages for program errors and stack overflow. Do not
translate them in the signal handler, since gettext is not
async-signal-safe. */
static char const * volatile program_error_message;
static char const * volatile stack_overflow_message;
/* Output an error message, then exit with status EXIT_FAILURE if it
appears to have been a stack overflow, or with a core dump
otherwise. This function is async-signal-safe. */
static void die (int) __attribute__ ((noreturn));
static void
die (int signo)
{
char const *message =
signo ? program_error_message : stack_overflow_message;
segv_action (signo);
write (STDERR_FILENO, program_name, strlen (program_name));
write (STDERR_FILENO, ": ", 2);
write (STDERR_FILENO, message, strlen (message));
write (STDERR_FILENO, "\n", 1);
if (! signo)
_exit (exit_failure);
kill (getpid (), signo);
abort ();
}
#if HAVE_SIGALTSTACK && HAVE_DECL_SIGALTSTACK
/* Direction of the C runtime stack. This function is
async-signal-safe. */
# if STACK_DIRECTION
# define find_stack_direction(ptr) STACK_DIRECTION
# else
static int
find_stack_direction (char const *addr)
{
char dummy;
return ! addr ? find_stack_direction (&dummy) : addr < &dummy ? 1 : -1;
}
# endif
# if HAVE_XSI_STACK_OVERFLOW_HEURISTIC
# define get_stack_location(argv) 0
# else
# if defined RLIMIT_STACK && defined _SC_PAGESIZE
/* Return the minimum machine address deducible from ARGV. This
includes the addresses of all the strings that ARGV points at, as
well as the address of ARGV itself. */
static char const *
min_address_from_argv (char * const *argv)
{
char const *min = (char const *) argv;
char const *p;
while ((p = *argv++))
if (p < min)
min = p;
return min;
}
/* Return the maximum machine address deducible from ARGV. */
static char const *
max_address_from_argv (char * const *argv)
{
char const *max = *argv;
char const *max1;
char const *p;
while ((p = *argv++))
if (max < p)
max = p;
max1 = (char const *) (argv + 1);
return max && max1 < max ? max + strlen (max) + 1 : max1;
}
# endif
/* The base and size of the stack, determined at startup. */
static char const * volatile stack_base;
static size_t volatile stack_size;
/* Store the base and size of the stack into the static variables
STACK_BASE and STACK_SIZE. The base is the numerically lowest
address in the stack. Return -1 (setting errno) if this cannot be
done. */
static int
get_stack_location (char * const *argv)
{
# if ! (defined RLIMIT_STACK && defined _SC_PAGESIZE)
errno = ENOTSUP;
return -1;
# else
struct rlimit rlimit;
int r = getrlimit (RLIMIT_STACK, &rlimit);
if (r == 0)
{
char const *base;
size_t size = rlimit.rlim_cur;
extern char **environ;
size_t page_size = sysconf (_SC_PAGESIZE);
int stack_direction = find_stack_direction (0);
# if HAVE_GETCONTEXT && HAVE_DECL_GETCONTEXT
ucontext_t context;
if (getcontext (&context) == 0)
{
base = context.uc_stack.ss_sp;
if (stack_direction < 0)
base -= size - context.uc_stack.ss_size;
}
else
# endif
{
if (stack_direction < 0)
{
char const *a = max_address_from_argv (argv);
char const *b = max_address_from_argv (environ);
base = (a < b ? b : a) - size;
base += - (size_t) base % page_size;
}
else
{
char const *a = min_address_from_argv (argv);
char const *b = min_address_from_argv (environ);
base = a < b ? a : b;
base -= (size_t) base % page_size;
}
}
if (size != rlimit.rlim_cur
|| rlimit.rlim_cur < 0
|| base + size < base
# ifdef RLIM_SAVED_CUR
|| rlimit.rlim_cur == RLIM_SAVED_CUR
# endif
# ifdef RLIM_SAVED_MAX
|| rlimit.rlim_cur == RLIM_SAVED_MAX
# endif
# ifdef RLIM_INFINITY
|| rlimit.rlim_cur == RLIM_INFINITY
# endif
)
{
errno = EOVERFLOW;
return -1;
}
stack_base = base;
stack_size = size;
# if DEBUG
fprintf (stderr, "get_stack_location base=%p size=%lx\n",
base, (unsigned long) size);
# endif
}
return r;
# endif
}
# endif
/* Storage for the alternate signal stack. */
static union
{
char buffer[SIGSTKSZ];
/* These other members are for proper alignment. There's no
standard way to guarantee stack alignment, but this seems enough
in practice. */
long double ld;
long l;
void *p;
} alternate_signal_stack;
# if defined SA_ONSTACK && defined SA_SIGINFO && defined _SC_PAGESIZE
/* Handle a segmentation violation and exit. This function is
async-signal-safe. */
static void segv_handler (int, siginfo_t *, void *) __attribute__((noreturn));
static void
segv_handler (int signo, siginfo_t *info,
void *context __attribute__ ((unused)))
{
/* Clear SIGNO if it seems to have been a stack overflow. */
if (0 < info->si_code)
{
/* If the faulting address is within the stack, or within one
page of the stack end, assume that it is a stack
overflow. */
# if HAVE_XSI_STACK_OVERFLOW_HEURISTIC
ucontext_t const *user_context = context;
char const *stack_base = user_context->uc_stack.ss_sp;
size_t stack_size = user_context->uc_stack.ss_size;
# endif
char const *faulting_address = info->si_addr;
size_t s = faulting_address - stack_base;
size_t page_size = sysconf (_SC_PAGESIZE);
if (find_stack_direction (0) < 0)
s += page_size;
if (s < stack_size + page_size)
signo = 0;
# if DEBUG
{
char buf[1024];
sprintf (buf,
"segv_handler fault=%p base=%p size=%lx page=%lx signo=%d\n",
faulting_address, stack_base, (unsigned long) stack_size,
(unsigned long) page_size, signo);
write (STDERR_FILENO, buf, strlen (buf));
}
# endif
}
die (signo);
}
# endif
static void
null_action (int signo __attribute__ ((unused)))
{
}
/* Assuming ARGV is the argument vector of `main', set up ACTION so
that it is invoked on C stack overflow. Return -1 (setting errno)
if this cannot be done.
When ACTION is called, it is passed an argument equal to SIGSEGV
for a segmentation violation that does not appear related to stack
overflow, and is passed zero otherwise.
A null ACTION acts like an action that does nothing.
ACTION must be async-signal-safe. ACTION together with its callees
must not require more than SIGSTKSZ bytes of stack space. */
int
c_stack_action (char * const *argv __attribute__ ((unused)),
void (*action) (int))
{
int r = get_stack_location (argv);
if (r != 0)
return r;
{
stack_t st;
st.ss_flags = 0;
st.ss_sp = alternate_signal_stack.buffer;
st.ss_size = sizeof alternate_signal_stack.buffer;
r = sigaltstack (&st, 0);
if (r != 0)
return r;
}
segv_action = action ? action : null_action;
program_error_message = _("program error");
stack_overflow_message = _("stack overflow");
{
# if ! (defined SA_ONSTACK && defined SA_SIGINFO && defined _SC_PAGESIZE)
return signal (SIGSEGV, die) == SIG_ERR ? -1 : 0;
# else
struct sigaction act;
sigemptyset (&act.sa_mask);
/* POSIX 1003.1-2001 says SA_RESETHAND implies SA_NODEFER, but
this is not true on Solaris 8 at least. It doesn't hurt to use
SA_NODEFER here, so leave it in. */
act.sa_flags = SA_NODEFER | SA_ONSTACK | SA_RESETHAND | SA_SIGINFO;
act.sa_sigaction = segv_handler;
return sigaction (SIGSEGV, &act, 0);
# endif
}
}
#else /* ! (HAVE_SIGALTSTACK && HAVE_DECL_SIGALTSTACK) */
int
c_stack_action (char * const *argv __attribute__ ((unused)),
void (*action) (int) __attribute__ ((unused)))
{
errno = ENOTSUP;
return -1;
}
#endif
#if DEBUG
int volatile exit_failure;
static long
recurse (char *p)
{
char array[500];
array[0] = 1;
return *p + recurse (array);
}
char *program_name;
int
main (int argc __attribute__ ((unused)), char **argv)
{
program_name = argv[0];
fprintf (stderr, "The last line of output should be \"stack overflow\".\n");
if (c_stack_action (argv, 0) == 0)
return recurse ("\1");
perror ("c_stack_action");
return 1;
}
#endif /* DEBUG */
/*
Local Variables:
compile-command: "gcc -DDEBUG -DHAVE_CONFIG_H -I.. -g -O -Wall -W c-stack.c"
End:
*/

19
lib/c-stack.h Normal file
View File

@@ -0,0 +1,19 @@
/* Stack overflow handling.
Copyright (C) 2002 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. */
int c_stack_action (char * const *, void (*) (int));

View File

@@ -1,5 +1,5 @@
/* closeout.c - close standard output
Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000, 2001, 2002 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
@@ -19,13 +19,6 @@
# include <config.h>
#endif
#if ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
@@ -40,6 +33,9 @@
extern int errno;
#endif
#include "gettext.h"
#define _(msgid) gettext (msgid)
#include "closeout.h"
#include "error.h"
#include "quotearg.h"
@@ -94,7 +90,9 @@ close_stdout_status (int status)
{
int e = ferror (stdout) ? 0 : -1;
if (__fpending (stdout) == 0)
/* If the stream's error bit is clear and there is nothing to flush,
then return right away. */
if (e && __fpending (stdout) == 0)
return;
if (fclose (stdout) != 0)

View File

@@ -1,7 +1,7 @@
#! /bin/sh
# Output a system dependent table of character encoding aliases.
#
# Copyright (C) 2000-2001 Free Software Foundation, Inc.
# Copyright (C) 2000-2002 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
@@ -34,7 +34,7 @@
# ASCII, ANSI_X3.4-1968 glibc solaris freebsd
# ISO-8859-1 glibc aix hpux irix osf solaris freebsd yes
# ISO-8859-2 glibc aix hpux irix osf solaris freebsd yes
# ISO-8859-3 glibc yes
# ISO-8859-3 glibc solaris yes
# ISO-8859-4 osf solaris freebsd yes
# ISO-8859-5 glibc aix hpux irix osf solaris freebsd yes
# ISO-8859-6 glibc aix hpux solaris yes
@@ -42,9 +42,11 @@
# ISO-8859-8 glibc aix hpux osf solaris yes
# ISO-8859-9 glibc aix hpux irix osf solaris yes
# ISO-8859-13 glibc
# ISO-8859-14 glibc
# ISO-8859-15 glibc aix osf solaris freebsd
# KOI8-R glibc solaris freebsd yes
# KOI8-U glibc freebsd yes
# KOI8-T glibc
# CP437 dos
# CP775 dos
# CP850 aix osf dos
@@ -58,35 +60,38 @@
# CP865 dos
# CP866 freebsd dos
# CP869 dos
# CP874 win32 dos
# CP874 woe32 dos
# CP922 aix
# CP932 aix win32 dos
# CP932 aix woe32 dos
# CP943 aix
# CP949 osf win32 dos
# CP950 win32 dos
# CP949 osf woe32 dos
# CP950 woe32 dos
# CP1046 aix
# CP1124 aix
# CP1125 dos
# CP1129 aix
# CP1250 win32
# CP1251 glibc win32
# CP1252 aix win32
# CP1253 win32
# CP1254 win32
# CP1255 win32
# CP1256 win32
# CP1257 win32
# CP1250 woe32
# CP1251 glibc woe32
# CP1252 aix woe32
# CP1253 woe32
# CP1254 woe32
# CP1255 glibc woe32
# CP1256 woe32
# CP1257 woe32
# GB2312 glibc aix hpux irix solaris freebsd yes
# EUC-JP glibc aix hpux irix osf solaris freebsd yes
# EUC-KR glibc aix hpux irix osf solaris freebsd yes
# EUC-TW glibc aix hpux irix osf solaris
# BIG5 glibc aix hpux osf solaris freebsd yes
# BIG5-HKSCS glibc
# GBK aix osf win32 dos
# GB18030 glibc
# BIG5-HKSCS glibc solaris
# GBK glibc aix osf solaris woe32 dos
# GB18030 glibc solaris
# SHIFT_JIS hpux osf solaris freebsd yes
# JOHAB glibc win32
# JOHAB glibc solaris woe32
# TIS-620 glibc aix hpux osf solaris
# VISCII glibc yes
# TCVN5712-1 glibc
# GEORGIAN-PS glibc
# HP-ROMAN8 hpux
# HP-ARABIC8 hpux
# HP-GREEK8 hpux
@@ -217,6 +222,7 @@ case "$os" in
echo "646 ASCII"
echo "ISO8859-1 ISO-8859-1"
echo "ISO8859-2 ISO-8859-2"
echo "ISO8859-3 ISO-8859-3"
echo "ISO8859-4 ISO-8859-4"
echo "ISO8859-5 ISO-8859-5"
echo "ISO8859-6 ISO-8859-6"
@@ -226,19 +232,25 @@ case "$os" in
echo "ISO8859-15 ISO-8859-15"
echo "koi8-r KOI8-R"
echo "BIG5 BIG5"
echo "Big5-HKSCS BIG5-HKSCS"
echo "gb2312 GB2312"
echo "GBK GBK"
echo "GB18030 GB18030"
echo "cns11643 EUC-TW"
echo "5601 EUC-KR"
echo "ko_KR.johap92 JOHAB"
echo "eucJP EUC-JP"
echo "PCK SHIFT_JIS"
echo "TIS620.2533 TIS-620"
#echo "sun_eu_greek ?" # what is this?
echo "UTF-8 UTF-8"
;;
freebsd*)
freebsd* | os2*)
# FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
# localcharset.c falls back to using the full locale name
# from the environment variables.
# Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just
# reuse FreeBSD's locale data for OS/2.
echo "C ASCII"
echo "US-ASCII ASCII"
for l in la_LN lt_LN; do
@@ -270,6 +282,20 @@ case "$os" in
echo "ja_JP.Shift_JIS SHIFT_JIS"
echo "ko_KR.EUC EUC-KR"
;;
netbsd*)
echo "646 ASCII"
echo "ISO8859-1 ISO-8859-1"
echo "ISO8859-2 ISO-8859-2"
echo "ISO8859-4 ISO-8859-4"
echo "ISO8859-5 ISO-8859-5"
echo "ISO8859-15 ISO-8859-15"
echo "eucCN GB2312"
echo "eucJP EUC-JP"
echo "eucKR EUC-KR"
echo "eucTW EUC-TW"
echo "BIG5 BIG5"
echo "SJIS SHIFT_JIS"
;;
beos*)
# BeOS has a single locale, and it has UTF-8 encoding.
echo "* UTF-8"
@@ -284,7 +310,7 @@ case "$os" in
echo "# country is not the one your DOS machine actually uses, just"
echo "# correct it in this file, and send a mail to"
echo "# Juan Manuel Guerrero <st001906@hrz1.hrz.tu-darmstadt.de>"
echo "# and Bruno Haible <haible@clisp.cons.org>."
echo "# and Bruno Haible <bruno@clisp.org>."
echo "#"
echo "C ASCII"
# ISO-8859-1 languages
@@ -394,8 +420,10 @@ case "$os" in
echo "bg_BG CP866" # not CP855 ??
echo "mk CP866" # not CP855 ??
echo "mk_MK CP866" # not CP855 ??
echo "ru KOI8-R" # not CP866 ??
echo "ru_RU KOI8-R" # not CP866 ??
echo "ru CP866"
echo "ru_RU CP866"
echo "uk CP1125"
echo "uk_UA CP1125"
# ISO-8859-6 languages
echo "ar CP864"
echo "ar_AE CP864"

View File

@@ -22,6 +22,6 @@
#ifndef HAVE_DECL_DIRFD
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_DIRFD
#if !HAVE_DECL_DIRFD && !defined dirfd
int dirfd (DIR const *);
#endif

View File

@@ -1,22 +1,18 @@
/* Error handler for noninteractive utilities
Copyright (C) 1990-1998, 2000, 2001 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.
Copyright (C) 1990-1998, 2000, 2001, 2002 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.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser 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 Lesser General Public
License along with the GNU C Library; 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. */
/* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
@@ -25,9 +21,13 @@
#endif
#include <stdio.h>
#if HAVE_LIBINTL_H
#ifdef _LIBC
# include <libintl.h>
#else
# include "gettext.h"
#endif
#ifdef _LIBC
# include <wchar.h>
# define mbsrtowcs __mbsrtowcs
@@ -54,7 +54,10 @@ void exit ();
#endif
#include "error.h"
#include "unlocked-io.h"
#if !_LIBC
# include "unlocked-io.h"
#endif
#ifndef _
# define _(String) String
@@ -77,6 +80,7 @@ unsigned int error_message_count;
# define program_name program_invocation_name
# include <errno.h>
# include <libio/libioP.h>
/* In GNU libc we want do not want to use the common name `error' directly.
Instead make it a weak alias. */
@@ -91,7 +95,9 @@ extern void __error_at_line (int status, int errnum, const char *file_name,
# ifdef USE_IN_LIBIO
# include <libio/iolibio.h>
# define fflush(s) _IO_fflush (s)
# define fflush(s) INTUSE(_IO_fflush) (s)
# undef putc
# define putc(c, fp) INTUSE(_IO_putc) (c, fp)
# endif
#else /* not _LIBC */

31
lib/exitfail.c Normal file
View File

@@ -0,0 +1,31 @@
/* Failure exit status
Copyright (C) 2002 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifndef EXIT_FAILURE
# define EXIT_FAILURE 1
#endif
int volatile exit_failure = EXIT_FAILURE;

20
lib/exitfail.h Normal file
View File

@@ -0,0 +1,20 @@
/* Failure exit status
Copyright (C) 2002 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
extern int volatile exit_failure;

72
lib/file-type.c Normal file
View File

@@ -0,0 +1,72 @@
/* Return a string describing the type of a file.
Copyright (C) 1993, 1994, 2001, 2002 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 <sys/types.h>
#include <sys/stat.h>
#include "file-type.h"
#include <gettext.h>
#define _(text) gettext (text)
char const *
file_type (struct stat const *st)
{
/* See POSIX 1003.1-2001 XCU Table 4-8 lines 17093-17107 for some of
these formats.
To keep diagnostics grammatical in English, the returned string
must start with a consonant. */
if (S_ISREG (st->st_mode))
return st->st_size == 0 ? _("regular empty file") : _("regular file");
if (S_ISDIR (st->st_mode))
return _("directory");
if (S_ISBLK (st->st_mode))
return _("block special file");
if (S_ISCHR (st->st_mode))
return _("character special file");
if (S_ISFIFO (st->st_mode))
return _("fifo");
if (S_ISLNK (st->st_mode))
return _("symbolic link");
if (S_ISSOCK (st->st_mode))
return _("socket");
if (S_TYPEISMQ (st))
return _("message queue");
if (S_TYPEISSEM (st))
return _("semaphore");
if (S_TYPEISSHM (st))
return _("shared memory object");
return _("weird file");
}

161
lib/file-type.h Normal file
View File

@@ -0,0 +1,161 @@
/* Return a string describing the type of a file.
Copyright (C) 1993, 1994, 2001, 2002 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 and Jim Meyering. */
#ifndef FILE_TYPE_H
# define FILE_TYPE_H 1
# if ! defined S_ISREG && ! defined S_IFREG
you must include <sys/stat.h> before including this file
# endif
char const *file_type (struct stat const *);
# ifndef S_IFMT
# define S_IFMT 0170000
# endif
# if STAT_MACROS_BROKEN
# undef S_ISBLK
# undef S_ISCHR
# undef S_ISDIR
# undef S_ISDOOR
# undef S_ISFIFO
# undef S_ISLNK
# undef S_ISNAM
# undef S_ISMPB
# undef S_ISMPC
# undef S_ISNWK
# undef S_ISREG
# undef S_ISSOCK
# endif
# ifndef S_ISBLK
# ifdef S_IFBLK
# define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
# else
# define S_ISBLK(m) 0
# endif
# endif
# ifndef S_ISCHR
# ifdef S_IFCHR
# define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
# else
# define S_ISCHR(m) 0
# endif
# endif
# ifndef S_ISDIR
# ifdef S_IFDIR
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
# else
# define S_ISDIR(m) 0
# endif
# endif
# ifndef S_ISDOOR /* Solaris 2.5 and up */
# ifdef S_IFDOOR
# define S_ISDOOR(m) (((m) & S_IFMT) == S_IFDOOR)
# else
# define S_ISDOOR(m) 0
# endif
# endif
# ifndef S_ISFIFO
# ifdef S_IFIFO
# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
# else
# define S_ISFIFO(m) 0
# endif
# endif
# ifndef S_ISLNK
# ifdef S_IFLNK
# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
# else
# define S_ISLNK(m) 0
# endif
# endif
# ifndef S_ISMPB /* V7 */
# ifdef S_IFMPB
# define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB)
# define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC)
# else
# define S_ISMPB(m) 0
# define S_ISMPC(m) 0
# endif
# endif
# ifndef S_ISNAM /* Xenix */
# ifdef S_IFNAM
# define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM)
# else
# define S_ISNAM(m) 0
# endif
# endif
# ifndef S_ISNWK /* HP/UX */
# ifdef S_IFNWK
# define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK)
# else
# define S_ISNWK(m) 0
# endif
# endif
# ifndef S_ISREG
# ifdef S_IFREG
# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
# else
# define S_ISREG(m) 0
# endif
# endif
# ifndef S_ISSOCK
# ifdef S_IFSOCK
# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
# else
# define S_ISSOCK(m) 0
# endif
# endif
# ifndef S_TYPEISSEM
# ifdef S_INSEM
# define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM)
# else
# define S_TYPEISSEM(p) 0
# endif
# endif
# ifndef S_TYPEISSHM
# ifdef S_INSHD
# define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD)
# else
# define S_TYPEISSHM(p) 0
# endif
# endif
# ifndef S_TYPEISMQ
# define S_TYPEISMQ(p) 0
# endif
#endif /* FILE_TYPE_H */

View File

@@ -1,4 +1,5 @@
/* Copyright 1991, 1992, 1993, 1996, 1997, 2000 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2000, 2001,
2002 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
@@ -10,9 +11,9 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if HAVE_CONFIG_H
# include <config.h>
@@ -23,208 +24,362 @@
# define _GNU_SOURCE 1
#endif
#ifdef __GNUC__
# define alloca __builtin_alloca
# define HAVE_ALLOCA 1
#else
# if defined HAVE_ALLOCA_H || defined _LIBC
# include <alloca.h>
# else
# ifdef _AIX
# pragma alloca
# else
# ifndef alloca
char *alloca ();
# endif
# endif
# endif
#endif
#if ! defined __builtin_expect && __GNUC__ < 3
# define __builtin_expect(expr, expected) (expr)
#endif
#include <assert.h>
#include <errno.h>
#include <fnmatch.h>
#include <ctype.h>
#if defined STDC_HEADERS || !defined isascii
# define IN_CTYPE_DOMAIN(c) 1
#if HAVE_STRING_H || defined _LIBC
# include <string.h>
#else
# define IN_CTYPE_DOMAIN(c) isascii (c)
# if HAVE_STRINGS_H
# include <strings.h>
# endif
#endif
#define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper (c))
#if defined STDC_HEADERS || defined _LIBC
# include <stddef.h>
# include <stdlib.h>
#endif
#define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC)
/* For platform which support the ISO C amendement 1 functionality we
support user defined character classes. */
#if defined _LIBC || WIDE_CHAR_SUPPORT
/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
# include <wchar.h>
# include <wctype.h>
#endif
/* We need some of the locale data (the collation sequence information)
but there is no interface to get this information in general. Therefore
we support a correct implementation only in glibc. */
#ifdef _LIBC
# include "../locale/localeinfo.h"
# include "../locale/elem-hash.h"
# include "../locale/coll-lookup.h"
# include <shlib-compat.h>
# define CONCAT(a,b) __CONCAT(a,b)
# define mbsinit __mbsinit
# define mbsrtowcs __mbsrtowcs
# define fnmatch __fnmatch
extern int fnmatch (const char *pattern, const char *string, int flags);
#endif
/* We often have to test for FNM_FILE_NAME and FNM_PERIOD being both set. */
#define NO_LEADING_PERIOD(flags) \
((flags & (FNM_FILE_NAME | FNM_PERIOD)) == (FNM_FILE_NAME | FNM_PERIOD))
/* Comment out all this code if we are using the GNU C Library, are not
actually compiling the library itself, and have not detected a bug
in the library. This code is part of the GNU C
Library, but also included in many other GNU distributions. Compiling
and linking in this code is a waste when using the GNU C library
(especially if it is a shared library). Rather than having every GNU
program understand `configure --with-gnu-libc' and omit the object files,
it is simpler to just do this in the source for each such file. */
#if defined _LIBC || !defined __GNU_LIBRARY__ || !HAVE_FNMATCH_GNU
#ifndef errno
# if defined STDC_HEADERS || !defined isascii
# define ISASCII(c) 1
# else
# define ISASCII(c) isascii(c)
# endif
# ifdef isblank
# define ISBLANK(c) (ISASCII (c) && isblank (c))
# else
# define ISBLANK(c) ((c) == ' ' || (c) == '\t')
# endif
# ifdef isgraph
# define ISGRAPH(c) (ISASCII (c) && isgraph (c))
# else
# define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c))
# endif
# define ISPRINT(c) (ISASCII (c) && isprint (c))
# define ISDIGIT(c) (ISASCII (c) && isdigit (c))
# define ISALNUM(c) (ISASCII (c) && isalnum (c))
# define ISALPHA(c) (ISASCII (c) && isalpha (c))
# define ISCNTRL(c) (ISASCII (c) && iscntrl (c))
# define ISLOWER(c) (ISASCII (c) && islower (c))
# define ISPUNCT(c) (ISASCII (c) && ispunct (c))
# define ISSPACE(c) (ISASCII (c) && isspace (c))
# define ISUPPER(c) (ISASCII (c) && isupper (c))
# define ISXDIGIT(c) (ISASCII (c) && isxdigit (c))
# define STREQ(s1, s2) ((strcmp (s1, s2) == 0))
# if defined _LIBC || WIDE_CHAR_SUPPORT
/* The GNU C library provides support for user-defined character classes
and the functions from ISO C amendement 1. */
# ifdef CHARCLASS_NAME_MAX
# define CHAR_CLASS_MAX_LENGTH CHARCLASS_NAME_MAX
# else
/* This shouldn't happen but some implementation might still have this
problem. Use a reasonable default value. */
# define CHAR_CLASS_MAX_LENGTH 256
# endif
# ifdef _LIBC
# define IS_CHAR_CLASS(string) __wctype (string)
# else
# define IS_CHAR_CLASS(string) wctype (string)
# endif
# ifdef _LIBC
# define ISWCTYPE(WC, WT) __iswctype (WC, WT)
# else
# define ISWCTYPE(WC, WT) iswctype (WC, WT)
# endif
# if (HAVE_MBSTATE_T && HAVE_MBSRTOWCS) || _LIBC
/* In this case we are implementing the multibyte character handling. */
# define HANDLE_MULTIBYTE 1
# endif
# else
# define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */
# define IS_CHAR_CLASS(string) \
(STREQ (string, "alpha") || STREQ (string, "upper") \
|| STREQ (string, "lower") || STREQ (string, "digit") \
|| STREQ (string, "alnum") || STREQ (string, "xdigit") \
|| STREQ (string, "space") || STREQ (string, "print") \
|| STREQ (string, "punct") || STREQ (string, "graph") \
|| STREQ (string, "cntrl") || STREQ (string, "blank"))
# endif
/* Avoid depending on library functions or files
whose names are inconsistent. */
# if !defined _LIBC && !defined getenv && !HAVE_DECL_GETENV
extern char *getenv ();
# endif
# ifndef errno
extern int errno;
#endif
# endif
/* Match STRING against the filename pattern PATTERN, returning zero if
it matches, nonzero if not. */
int
fnmatch (const char *pattern, const char *string, int flags)
{
register const char *p = pattern, *n = string;
register char c;
/* Global variable. */
static int posixly_correct;
# ifndef internal_function
/* Inside GNU libc we mark some function in a special way. In other
environments simply ignore the marking. */
# define internal_function
# endif
/* Note that this evaluates C many times. */
#define FOLD(c) ((flags & FNM_CASEFOLD) && ISUPPER ((unsigned char) (c)) \
? tolower ((unsigned char) (c)) \
: (c))
# ifdef _LIBC
# define FOLD(c) ((flags & FNM_CASEFOLD) ? tolower (c) : (c))
# else
# define FOLD(c) ((flags & FNM_CASEFOLD) && ISUPPER (c) ? tolower (c) : (c))
# endif
# define CHAR char
# define UCHAR unsigned char
# define INT int
# define FCT internal_fnmatch
# define EXT ext_match
# define END end_pattern
# define L(CS) CS
# ifdef _LIBC
# define BTOWC(C) __btowc (C)
# else
# define BTOWC(C) btowc (C)
# endif
# define STRLEN(S) strlen (S)
# define STRCAT(D, S) strcat (D, S)
# ifdef _LIBC
# define MEMPCPY(D, S, N) __mempcpy (D, S, N)
# else
# if HAVE_MEMPCPY
# define MEMPCPY(D, S, N) mempcpy (D, S, N)
# else
# define MEMPCPY(D, S, N) ((void *) ((char *) memcpy (D, S, N) + (N)))
# endif
# endif
# define MEMCHR(S, C, N) memchr (S, C, N)
# define STRCOLL(S1, S2) strcoll (S1, S2)
# include "fnmatch_loop.c"
while ((c = *p++) != '\0')
# if HANDLE_MULTIBYTE
# define FOLD(c) ((flags & FNM_CASEFOLD) ? towlower (c) : (c))
# define CHAR wchar_t
# define UCHAR wint_t
# define INT wint_t
# define FCT internal_fnwmatch
# define EXT ext_wmatch
# define END end_wpattern
# define L(CS) L##CS
# define BTOWC(C) (C)
# ifdef _LIBC
# define STRLEN(S) __wcslen (S)
# define STRCAT(D, S) __wcscat (D, S)
# define MEMPCPY(D, S, N) __wmempcpy (D, S, N)
# else
# define STRLEN(S) wcslen (S)
# define STRCAT(D, S) wcscat (D, S)
# if HAVE_WMEMPCPY
# define MEMPCPY(D, S, N) wmempcpy (D, S, N)
# else
# define MEMPCPY(D, S, N) (wmemcpy (D, S, N) + (N))
# endif
# endif
# define MEMCHR(S, C, N) wmemchr (S, C, N)
# define STRCOLL(S1, S2) wcscoll (S1, S2)
# define WIDE_CHAR_VERSION 1
# undef IS_CHAR_CLASS
/* We have to convert the wide character string in a multibyte string. But
we know that the character class names consist of alphanumeric characters
from the portable character set, and since the wide character encoding
for a member of the portable character set is the same code point as
its single-byte encoding, we can use a simplified method to convert the
string to a multibyte character string. */
static wctype_t
is_char_class (const wchar_t *wcs)
{
char s[CHAR_CLASS_MAX_LENGTH + 1];
char *cp = s;
do
{
c = FOLD (c);
switch (c)
/* Test for a printable character from the portable character set. */
# ifdef _LIBC
if (*wcs < 0x20 || *wcs > 0x7e
|| *wcs == 0x24 || *wcs == 0x40 || *wcs == 0x60)
return (wctype_t) 0;
# else
switch (*wcs)
{
case '?':
if (*n == '\0')
return FNM_NOMATCH;
else if ((flags & FNM_FILE_NAME) && *n == '/')
return FNM_NOMATCH;
else if ((flags & FNM_PERIOD) && *n == '.' &&
(n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/')))
return FNM_NOMATCH;
case L' ': case L'!': case L'"': case L'#': case L'%':
case L'&': case L'\'': case L'(': case L')': case L'*':
case L'+': case L',': case L'-': case L'.': case L'/':
case L'0': case L'1': case L'2': case L'3': case L'4':
case L'5': case L'6': case L'7': case L'8': case L'9':
case L':': case L';': case L'<': case L'=': case L'>':
case L'?':
case L'A': case L'B': case L'C': case L'D': case L'E':
case L'F': case L'G': case L'H': case L'I': case L'J':
case L'K': case L'L': case L'M': case L'N': case L'O':
case L'P': case L'Q': case L'R': case L'S': case L'T':
case L'U': case L'V': case L'W': case L'X': case L'Y':
case L'Z':
case L'[': case L'\\': case L']': case L'^': case L'_':
case L'a': case L'b': case L'c': case L'd': case L'e':
case L'f': case L'g': case L'h': case L'i': case L'j':
case L'k': case L'l': case L'm': case L'n': case L'o':
case L'p': case L'q': case L'r': case L's': case L't':
case L'u': case L'v': case L'w': case L'x': case L'y':
case L'z': case L'{': case L'|': case L'}': case L'~':
break;
case '\\':
if (!(flags & FNM_NOESCAPE))
{
c = *p++;
if (c == '\0')
/* Trailing \ loses. */
return FNM_NOMATCH;
c = FOLD (c);
}
if (FOLD (*n) != c)
return FNM_NOMATCH;
break;
case '*':
if ((flags & FNM_PERIOD) && *n == '.' &&
(n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/')))
return FNM_NOMATCH;
for (c = *p++; c == '?' || c == '*'; c = *p++)
{
if (c == '?')
{
/* A ? needs to match one character. */
if (*n == '\0' || (*n == '/' && (flags & FNM_FILE_NAME)))
/* There isn't another character; no match. */
return FNM_NOMATCH;
else
/* One character of the string is consumed in matching
this ? wildcard, so *??? won't match if there are
less than three characters. */
++n;
}
}
if (c == '\0')
{
if ((flags & (FNM_FILE_NAME | FNM_LEADING_DIR)) == FNM_FILE_NAME)
for (; *n != '\0'; n++)
if (*n == '/')
return FNM_NOMATCH;
return 0;
}
{
char c1 = (!(flags & FNM_NOESCAPE) && c == '\\') ? *p : c;
c1 = FOLD (c1);
for (--p; *n != '\0'; ++n)
if ((c == '[' || FOLD (*n) == c1) &&
fnmatch (p, n, flags & ~FNM_PERIOD) == 0)
return 0;
else if (*n == '/' && (flags & FNM_FILE_NAME))
break;
return FNM_NOMATCH;
}
case '[':
{
/* Nonzero if the sense of the character class is inverted. */
register int not;
if (*n == '\0')
return FNM_NOMATCH;
if ((flags & FNM_PERIOD) && *n == '.' &&
(n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/')))
return FNM_NOMATCH;
not = (*p == '!' || *p == '^');
if (not)
++p;
c = *p++;
for (;;)
{
register char cstart = c, cend = c;
if (!(flags & FNM_NOESCAPE) && c == '\\')
{
if (*p == '\0')
return FNM_NOMATCH;
cstart = cend = *p++;
}
cstart = cend = FOLD (cstart);
if (c == '\0')
/* [ (unterminated) loses. */
return FNM_NOMATCH;
c = *p++;
c = FOLD (c);
if ((flags & FNM_FILE_NAME) && c == '/')
/* [/] can never match. */
return FNM_NOMATCH;
if (c == '-' && *p != ']')
{
cend = *p++;
if (!(flags & FNM_NOESCAPE) && cend == '\\')
cend = *p++;
if (cend == '\0')
return FNM_NOMATCH;
cend = FOLD (cend);
c = *p++;
}
if (FOLD (*n) >= cstart && FOLD (*n) <= cend)
goto matched;
if (c == ']')
break;
}
if (!not)
return FNM_NOMATCH;
break;
matched:;
/* Skip the rest of the [...] that already matched. */
while (c != ']')
{
if (c == '\0')
/* [... (unterminated) loses. */
return FNM_NOMATCH;
c = *p++;
if (!(flags & FNM_NOESCAPE) && c == '\\')
{
if (*p == '\0')
return FNM_NOMATCH;
/* XXX 1003.2d11 is unclear if this is right. */
++p;
}
}
if (not)
return FNM_NOMATCH;
}
break;
default:
if (c != FOLD (*n))
return FNM_NOMATCH;
return (wctype_t) 0;
}
# endif
++n;
/* Avoid overrunning the buffer. */
if (cp == s + CHAR_CLASS_MAX_LENGTH)
return (wctype_t) 0;
*cp++ = (char) *wcs++;
}
while (*wcs != L'\0');
if (*n == '\0')
return 0;
*cp = '\0';
if ((flags & FNM_LEADING_DIR) && *n == '/')
/* The FNM_LEADING_DIR flag says that "foo*" matches "foobar/frobozz". */
return 0;
return FNM_NOMATCH;
#undef FOLD
# ifdef _LIBC
return __wctype (s);
# else
return wctype (s);
# endif
}
# define IS_CHAR_CLASS(string) is_char_class (string)
# include "fnmatch_loop.c"
# endif
int
fnmatch (pattern, string, flags)
const char *pattern;
const char *string;
int flags;
{
# if HANDLE_MULTIBYTE
if (__builtin_expect (MB_CUR_MAX, 1) != 1)
{
mbstate_t ps;
size_t n;
wchar_t *wpattern;
wchar_t *wstring;
/* Convert the strings into wide characters. */
memset (&ps, '\0', sizeof (ps));
n = mbsrtowcs (NULL, &pattern, 0, &ps);
if (__builtin_expect (n, 0) == (size_t) -1)
/* Something wrong.
XXX Do we have to set `errno' to something which mbsrtows hasn't
already done? */
return -1;
wpattern = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
assert (mbsinit (&ps));
(void) mbsrtowcs (wpattern, &pattern, n + 1, &ps);
assert (mbsinit (&ps));
n = mbsrtowcs (NULL, &string, 0, &ps);
if (__builtin_expect (n, 0) == (size_t) -1)
/* Something wrong.
XXX Do we have to set `errno' to something which mbsrtows hasn't
already done? */
return -1;
wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
assert (mbsinit (&ps));
(void) mbsrtowcs (wstring, &string, n + 1, &ps);
return internal_fnwmatch (wpattern, wstring, wstring + n,
flags & FNM_PERIOD, flags);
}
# endif /* mbstate_t and mbsrtowcs or _LIBC. */
return internal_fnmatch (pattern, string, string + strlen (string),
flags & FNM_PERIOD, flags);
}
# ifdef _LIBC
# undef fnmatch
versioned_symbol (libc, __fnmatch, fnmatch, GLIBC_2_2_3);
# if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_3)
strong_alias (__fnmatch, __fnmatch_old)
compat_symbol (libc, __fnmatch_old, fnmatch, GLIBC_2_0);
# endif
# endif
#endif /* _LIBC or not __GNU_LIBRARY__. */

View File

@@ -1,69 +0,0 @@
/* Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is 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 _FNMATCH_H
#define _FNMATCH_H 1
#ifdef __cplusplus
extern "C" {
#endif
#if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
#undef __P
#define __P(protos) protos
#else /* Not C++ or ANSI C. */
#undef __P
#define __P(protos) ()
/* We can get away without defining `const' here only because in this file
it is used only inside the prototype for `fnmatch', which is elided in
non-ANSI C where `const' is problematical. */
#endif /* C++ or ANSI C. */
/* We #undef these before defining them because some losing systems
(HP-UX A.08.07 for example) define these in <unistd.h>. */
#undef FNM_PATHNAME
#undef FNM_NOESCAPE
#undef FNM_PERIOD
/* Bits set in the FLAGS argument to `fnmatch'. */
#define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */
#define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */
#define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */
#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_GNU_SOURCE)
#define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */
#define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */
#define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */
#endif
/* Value returned by `fnmatch' if STRING does not match PATTERN. */
#define FNM_NOMATCH 1
/* Match STRING against the filename pattern PATTERN,
returning zero if it matches, FNM_NOMATCH if not. */
extern int fnmatch __P ((const char *__pattern, const char *__string,
int __flags));
#ifdef __cplusplus
}
#endif
#endif /* fnmatch.h */

80
lib/fnmatch_.h Normal file
View File

@@ -0,0 +1,80 @@
/* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2001, 2002
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 _FNMATCH_H
# define _FNMATCH_H 1
# ifdef __cplusplus
extern "C" {
# endif
# if defined __cplusplus || (defined __STDC__ && __STDC__) || defined WINDOWS32
# if !defined __GLIBC__ || !defined __P
# undef __P
# define __P(protos) protos
# endif
# else /* Not C++ or ANSI C. */
# undef __P
# define __P(protos) ()
/* We can get away without defining `const' here only because in this file
it is used only inside the prototype for `fnmatch', which is elided in
non-ANSI C where `const' is problematical. */
# endif /* C++ or ANSI C. */
# ifndef __const
# define __const const
# endif
/* We #undef these before defining them because some losing systems
(HP-UX A.08.07 for example) define these in <unistd.h>. */
# undef FNM_PATHNAME
# undef FNM_NOESCAPE
# undef FNM_PERIOD
/* Bits set in the FLAGS argument to `fnmatch'. */
# define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */
# define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */
# define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */
# if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE
# define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */
# define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */
# define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */
# define FNM_EXTMATCH (1 << 5) /* Use ksh-like extended matching. */
# endif
/* Value returned by `fnmatch' if STRING does not match PATTERN. */
# define FNM_NOMATCH 1
/* This value is returned if the implementation does not support
`fnmatch'. Since this is not the case here it will never be
returned but the conformance test suites still require the symbol
to be defined. */
# ifdef _XOPEN_SOURCE
# define FNM_NOSYS (-1)
# endif
/* Match NAME against the filename pattern PATTERN,
returning zero if it matches, FNM_NOMATCH if not. */
extern int fnmatch __P ((__const char *__pattern, __const char *__name,
int __flags));
# ifdef __cplusplus
}
# endif
#endif /* fnmatch.h */

1189
lib/fnmatch_loop.c Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,6 @@
/* fsusage.c -- return space usage of mounted filesystems
Copyright (C) 1991, 1992, 1996, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1991, 1992, 1996, 1998, 1999, 2002 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,7 +22,15 @@
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
# include <stdint.h>
# endif
#endif
#ifndef UINTMAX_MAX
# define UINTMAX_MAX ((uintmax_t) -1)
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include "fsusage.h"
@@ -51,7 +60,7 @@ int statfs ();
# include <sys/fs/s5param.h>
#endif
#if defined (HAVE_SYS_FILSYS_H) && !defined (_CRAY)
#if defined HAVE_SYS_FILSYS_H && !defined _CRAY
# include <sys/filsys.h> /* SVR2 */
#endif
@@ -74,9 +83,14 @@ int statvfs ();
/* Many space usage primitives use all 1 bits to denote a value that is
not applicable or unknown. Propagate this information by returning
a uintmax_t value that is all 1 bits if the argument is all 1 bits,
even if the argument is unsigned and smaller than uintmax_t. */
#define PROPAGATE_ALL_ONES(x) ((x) == -1 ? (uintmax_t) -1 : (uintmax_t) (x))
a uintmax_t value that is all 1 bits if X is all 1 bits, even if X
is unsigned and narrower than uintmax_t. */
#define PROPAGATE_ALL_ONES(x) \
((sizeof (x) < sizeof (uintmax_t) \
&& (~ (x) == (sizeof (x) < sizeof (int) \
? - (1 << (sizeof (x) * CHAR_BIT)) \
: 0))) \
? UINTMAX_MAX : (x))
/* Extract the top bit of X as an uintmax_t value. */
#define EXTRACT_TOP_BIT(x) ((x) \
@@ -162,7 +176,7 @@ get_fs_usage (const char *path, const char *disk, struct fs_usage *fsp)
fsp->fsu_bavail = PROPAGATE_TOP_BIT (fsd.s_tfree);
fsp->fsu_bavail_top_bit_set = EXTRACT_TOP_BIT (fsd.s_tfree) != 0;
fsp->fsu_files = (fsd.s_isize == -1
? (uintmax_t) -1
? UINTMAX_MAX
: (fsd.s_isize - 2) * INOPB * (fsd.s_type == Fs2b ? 2 : 1));
fsp->fsu_ffree = PROPAGATE_ALL_ONES (fsd.s_tinode);
@@ -219,7 +233,7 @@ get_fs_usage (const char *path, const char *disk, struct fs_usage *fsp)
/* Empirically, the block counts on most SVR3 and SVR3-derived
systems seem to always be in terms of 512-byte blocks,
no matter what value f_bsize has. */
# if _AIX || defined(_CRAY)
# if _AIX || defined _CRAY
fsp->fsu_blocksize = PROPAGATE_ALL_ONES (fsd.f_bsize);
# else
fsp->fsu_blocksize = 512;
@@ -235,12 +249,13 @@ get_fs_usage (const char *path, const char *disk, struct fs_usage *fsp)
return -1;
/* f_frsize isn't guaranteed to be supported. */
fsp->fsu_blocksize =
PROPAGATE_ALL_ONES (fsd.f_frsize ? fsd.f_frsize : fsd.f_bsize);
fsp->fsu_blocksize = (fsd.f_frsize
? PROPAGATE_ALL_ONES (fsd.f_frsize)
: PROPAGATE_ALL_ONES (fsd.f_bsize));
#endif /* STAT_STATVFS */
#if !defined(STAT_STATFS2_FS_DATA) && !defined(STAT_READ_FILSYS)
#if !defined STAT_STATFS2_FS_DATA && !defined STAT_READ_FILSYS
/* !Ultrix && !SVR2 */
fsp->fsu_blocks = PROPAGATE_ALL_ONES (fsd.f_blocks);
@@ -255,7 +270,7 @@ get_fs_usage (const char *path, const char *disk, struct fs_usage *fsp)
return 0;
}
#if defined(_AIX) && defined(_I386)
#if defined _AIX && defined _I386
/* AIX PS/2 does not supply statfs. */
int

View File

@@ -1,6 +1,6 @@
/* full-write.c -- an interface to write that retries after interrupts
/* An interface to write() that writes all it is asked to write.
Copyright 1993, 1994, 1997, 1998, 1999, 2000, 2001 Free Software
Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
@@ -15,53 +15,47 @@
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. */
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
/* Specification. */
#include "full-write.h"
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <errno.h>
#ifndef errno
extern int errno;
#endif
/* Write LEN bytes at PTR to descriptor DESC, retrying if interrupted
or if partial writes occur. Return the number of bytes successfully
written, setting errno if that is less than LEN. */
#include "safe-write.h"
/* Write COUNT bytes at BUF to descriptor FD, retrying if interrupted
or if partial writes occur. Return the number of bytes successfully
written, setting errno if that is less than COUNT. */
size_t
full_write (int desc, const char *ptr, size_t len)
full_write (int fd, const void *buf, size_t count)
{
size_t total_written = 0;
const char *ptr = buf;
while (len > 0)
while (count > 0)
{
ssize_t written = write (desc, ptr, len);
if (written <= 0)
size_t written = safe_write (fd, ptr, count);
if (written == (size_t)-1)
break;
if (written == 0)
{
/* Some buggy drivers return 0 when you fall off a device's end. */
if (written == 0)
errno = ENOSPC;
#ifdef EINTR
if (errno == EINTR)
continue;
#endif
/* Some buggy drivers return 0 when you fall off a device's
end. (Example: Linux 1.2.13 on /dev/fd0.) */
errno = ENOSPC;
break;
}
total_written += written;
ptr += written;
len -= written;
count -= written;
}
return total_written;
}

View File

@@ -1,9 +1,24 @@
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
/* An interface to write() that writes all it is asked to write.
size_t full_write PARAMS ((int, const char *, size_t));
Copyright (C) 2002 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. */
#include <stddef.h>
/* Write COUNT bytes at BUF to descriptor FD, retrying if interrupted
or if partial writes occur. Return the number of bytes successfully
written, setting errno if that is less than COUNT. */
extern size_t full_write (int fd, const void *buf, size_t count);

View File

@@ -1,53 +0,0 @@
#!/bin/sh
fail=0
cat <<\EOF || fail=1
#ifndef UNLOCKED_IO_H
# define UNLOCKED_IO_H 1
# ifndef USE_UNLOCKED_IO
# define USE_UNLOCKED_IO 1
# endif
# if USE_UNLOCKED_IO
/* These are wrappers for functions/macros from GNU libc.
The standard I/O functions are thread-safe. These *_unlocked ones are
more efficient but not thread-safe. That they're not thread-safe is
fine since all of the applications in this package are single threaded. */
EOF
for f in $@; do
u=`echo $f|tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
cat <<EOF || fail=1
# if HAVE_${u}_UNLOCKED
# undef $f
EOF
case $f in
getchar)
params=;;
putchar | clearerr | feof | ferror | fflush | getc )
params=x;;
putc | fputc | fputs )
params=x,y;;
fgets )
params=x,y,z;;
fread | fwrite )
params=w,x,y,z;;
*)
echo $0: missing case for $f 2>&1; fail=1;;
esac
cat <<EOF || fail=1
# define $f($params) ${f}_unlocked ($params)
# endif
EOF
done
cat <<\EOF || fail=1
# endif /* USE_UNLOCKED_IO */
#endif /* UNLOCKED_IO_H */
EOF
(exit $fail); exit

View File

@@ -1,6 +1,6 @@
%{
/* Parse a string into an internal time stamp.
Copyright 1999, 2000 Free Software Foundation, Inc.
Copyright (C) 1999, 2000, 2002 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
@@ -63,10 +63,9 @@
- 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_LOCALE unless
it's important to use the locale's definition of `digit' even when the
host does not conform to Posix. */
POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to
ISDIGIT_LOCALE unless it's important to use the locale's definition
of `digit' even when the host does not conform to POSIX. */
#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
#if STDC_HEADERS || HAVE_STRING_H
@@ -378,19 +377,19 @@ relunit:
| tSNUMBER tDAY_UNIT
{ PC.rel_day += $1.value * $2; }
| tDAY_UNIT
{ PC.rel_day += $1 }
{ PC.rel_day += $1; }
| tUNUMBER tHOUR_UNIT
{ PC.rel_hour += $1.value * $2; }
| tSNUMBER tHOUR_UNIT
{ PC.rel_hour += $1.value * $2; }
| tHOUR_UNIT
{ PC.rel_hour += $1 }
{ PC.rel_hour += $1; }
| tUNUMBER tMINUTE_UNIT
{ PC.rel_minutes += $1.value * $2; }
| tSNUMBER tMINUTE_UNIT
{ PC.rel_minutes += $1.value * $2; }
| tMINUTE_UNIT
{ PC.rel_minutes += $1 }
{ PC.rel_minutes += $1; }
| tUNUMBER tSEC_UNIT
{ PC.rel_seconds += $1.value * $2; }
| tSNUMBER tSEC_UNIT

View File

@@ -2,24 +2,23 @@
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!
Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001
Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001,2002
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser 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 Lesser General Public
License along with the GNU C Library; 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>. */
@@ -76,16 +75,20 @@
# endif
#endif
#ifndef _
#ifdef _LIBC
# include <libintl.h>
#else
/* This is for other GNU distributions with internationalized messages. */
# if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC
# include <libintl.h>
# ifndef _
# define _(msgid) gettext (msgid)
# endif
# else
# define _(msgid) (msgid)
# endif
# include "gettext.h"
#endif
#define _(msgid) gettext (msgid)
#if defined _LIBC && defined USE_IN_LIBIO
# include <wchar.h>
#endif
#ifndef attribute_hidden
# define attribute_hidden
#endif
/* This version of `getopt' appears to the caller like standard Unix `getopt'
@@ -131,7 +134,7 @@ int optind = 1;
causes problems with re-calling getopt as programs generally don't
know that. */
int __getopt_initialized;
int __getopt_initialized attribute_hidden;
/* The next char to be scanned in the option-element
in which the last option character we returned was found.
@@ -250,35 +253,22 @@ static int first_nonopt;
static int last_nonopt;
#ifdef _LIBC
/* Stored original parameters.
XXX This is no good solution. We should rather copy the args so
that we can compare them later. But we must not use malloc(3). */
extern int __libc_argc;
extern char **__libc_argv;
/* Bash 2.0 gives us an environment variable containing flags
indicating ARGV elements that should not be considered arguments. */
#ifdef USE_NONOPTION_FLAGS
# ifdef USE_NONOPTION_FLAGS
/* Defined in getopt_init.c */
extern char *__getopt_nonoption_flags;
static int nonoption_flags_max_len;
static int nonoption_flags_len;
#endif
static int original_argc;
static char *const *original_argv;
/* Make sure the environment variable bash 2.0 puts in the environment
is valid for the getopt call we must make sure that the ARGV passed
to getopt is that one passed to the process. */
static void
__attribute__ ((unused))
store_args_and_env (int argc, char *const *argv)
{
/* XXX This is no good solution. We should rather copy the args so
that we can compare them later. But we must not use malloc(3). */
original_argc = argc;
original_argv = argv;
}
# ifdef text_set_element
text_set_element (__libc_subinit, store_args_and_env);
# endif /* text_set_element */
# endif
# ifdef USE_NONOPTION_FLAGS
# define SWAP_FLAGS(ch1, ch2) \
@@ -428,7 +418,7 @@ _getopt_initialize (argc, argv, optstring)
#if defined _LIBC && defined USE_NONOPTION_FLAGS
if (posixly_correct == NULL
&& argc == original_argc && argv == original_argv)
&& argc == __libc_argc && argv == __libc_argv)
{
if (nonoption_flags_max_len == 0)
{
@@ -691,8 +681,26 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (ambig && !exact)
{
if (print_errors)
fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
argv[0], argv[optind]);
{
#if defined _LIBC && defined USE_IN_LIBIO
char *buf;
if (__asprintf (&buf, _("%s: option `%s' is ambiguous\n"),
argv[0], argv[optind]) >= 0)
{
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
free (buf);
}
#else
fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
argv[0], argv[optind]);
#endif
}
nextchar += strlen (nextchar);
optind++;
optopt = 0;
@@ -713,16 +721,50 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
{
if (print_errors)
{
#if defined _LIBC && defined USE_IN_LIBIO
char *buf;
int n;
#endif
if (argv[optind - 1][1] == '-')
/* --option */
fprintf (stderr,
_("%s: option `--%s' doesn't allow an argument\n"),
argv[0], pfound->name);
{
/* --option */
#if defined _LIBC && defined USE_IN_LIBIO
n = __asprintf (&buf, _("\
%s: option `--%s' doesn't allow an argument\n"),
argv[0], pfound->name);
#else
fprintf (stderr, _("\
%s: option `--%s' doesn't allow an argument\n"),
argv[0], pfound->name);
#endif
}
else
/* +option or -option */
fprintf (stderr,
_("%s: option `%c%s' doesn't allow an argument\n"),
argv[0], argv[optind - 1][0], pfound->name);
{
/* +option or -option */
#if defined _LIBC && defined USE_IN_LIBIO
n = __asprintf (&buf, _("\
%s: option `%c%s' doesn't allow an argument\n"),
argv[0], argv[optind - 1][0],
pfound->name);
#else
fprintf (stderr, _("\
%s: option `%c%s' doesn't allow an argument\n"),
argv[0], argv[optind - 1][0], pfound->name);
#endif
}
#if defined _LIBC && defined USE_IN_LIBIO
if (n >= 0)
{
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
free (buf);
}
#endif
}
nextchar += strlen (nextchar);
@@ -738,9 +780,27 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
else
{
if (print_errors)
fprintf (stderr,
_("%s: option `%s' requires an argument\n"),
argv[0], argv[optind - 1]);
{
#if defined _LIBC && defined USE_IN_LIBIO
char *buf;
if (__asprintf (&buf, _("\
%s: option `%s' requires an argument\n"),
argv[0], argv[optind - 1]) >= 0)
{
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
free (buf);
}
#else
fprintf (stderr,
_("%s: option `%s' requires an argument\n"),
argv[0], argv[optind - 1]);
#endif
}
nextchar += strlen (nextchar);
optopt = pfound->val;
return optstring[0] == ':' ? ':' : '?';
@@ -766,14 +826,45 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
{
if (print_errors)
{
#if defined _LIBC && defined USE_IN_LIBIO
char *buf;
int n;
#endif
if (argv[optind][1] == '-')
/* --option */
fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
argv[0], nextchar);
{
/* --option */
#if defined _LIBC && defined USE_IN_LIBIO
n = __asprintf (&buf, _("%s: unrecognized option `--%s'\n"),
argv[0], nextchar);
#else
fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
argv[0], nextchar);
#endif
}
else
/* +option or -option */
fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
argv[0], argv[optind][0], nextchar);
{
/* +option or -option */
#if defined _LIBC && defined USE_IN_LIBIO
n = __asprintf (&buf, _("%s: unrecognized option `%c%s'\n"),
argv[0], argv[optind][0], nextchar);
#else
fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
argv[0], argv[optind][0], nextchar);
#endif
}
#if defined _LIBC && defined USE_IN_LIBIO
if (n >= 0)
{
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
free (buf);
}
#endif
}
nextchar = (char *) "";
optind++;
@@ -796,13 +887,42 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
{
if (print_errors)
{
#if defined _LIBC && defined USE_IN_LIBIO
char *buf;
int n;
#endif
if (posixly_correct)
/* 1003.2 specifies the format of this message. */
fprintf (stderr, _("%s: illegal option -- %c\n"),
argv[0], c);
{
/* 1003.2 specifies the format of this message. */
#if defined _LIBC && defined USE_IN_LIBIO
n = __asprintf (&buf, _("%s: illegal option -- %c\n"),
argv[0], c);
#else
fprintf (stderr, _("%s: illegal option -- %c\n"), argv[0], c);
#endif
}
else
fprintf (stderr, _("%s: invalid option -- %c\n"),
argv[0], c);
{
#if defined _LIBC && defined USE_IN_LIBIO
n = __asprintf (&buf, _("%s: invalid option -- %c\n"),
argv[0], c);
#else
fprintf (stderr, _("%s: invalid option -- %c\n"), argv[0], c);
#endif
}
#if defined _LIBC && defined USE_IN_LIBIO
if (n >= 0)
{
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
free (buf);
}
#endif
}
optopt = c;
return '?';
@@ -831,8 +951,24 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (print_errors)
{
/* 1003.2 specifies the format of this message. */
#if defined _LIBC && defined USE_IN_LIBIO
char *buf;
if (__asprintf (&buf,
_("%s: option requires an argument -- %c\n"),
argv[0], c) >= 0)
{
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
free (buf);
}
#else
fprintf (stderr, _("%s: option requires an argument -- %c\n"),
argv[0], c);
#endif
}
optopt = c;
if (optstring[0] == ':')
@@ -878,8 +1014,25 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (ambig && !exact)
{
if (print_errors)
fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
argv[0], argv[optind]);
{
#if defined _LIBC && defined USE_IN_LIBIO
char *buf;
if (__asprintf (&buf, _("%s: option `-W %s' is ambiguous\n"),
argv[0], argv[optind]) >= 0)
{
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
free (buf);
}
#else
fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
argv[0], argv[optind]);
#endif
}
nextchar += strlen (nextchar);
optind++;
return '?';
@@ -896,9 +1049,27 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
else
{
if (print_errors)
fprintf (stderr, _("\
{
#if defined _LIBC && defined USE_IN_LIBIO
char *buf;
if (__asprintf (&buf, _("\
%s: option `-W %s' doesn't allow an argument\n"),
argv[0], pfound->name);
argv[0], pfound->name) >= 0)
{
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
free (buf);
}
#else
fprintf (stderr, _("\
%s: option `-W %s' doesn't allow an argument\n"),
argv[0], pfound->name);
#endif
}
nextchar += strlen (nextchar);
return '?';
@@ -911,9 +1082,27 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
else
{
if (print_errors)
fprintf (stderr,
_("%s: option `%s' requires an argument\n"),
argv[0], argv[optind - 1]);
{
#if defined _LIBC && defined USE_IN_LIBIO
char *buf;
if (__asprintf (&buf, _("\
%s: option `%s' requires an argument\n"),
argv[0], argv[optind - 1]) >= 0)
{
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
free (buf);
}
#else
fprintf (stderr,
_("%s: option `%s' requires an argument\n"),
argv[0], argv[optind - 1]);
#endif
}
nextchar += strlen (nextchar);
return optstring[0] == ':' ? ':' : '?';
}
@@ -960,9 +1149,25 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (print_errors)
{
/* 1003.2 specifies the format of this message. */
#if defined _LIBC && defined USE_IN_LIBIO
char *buf;
if (__asprintf (&buf, _("\
%s: option requires an argument -- %c\n"),
argv[0], c) >= 0)
{
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
free (buf);
}
#else
fprintf (stderr,
_("%s: option requires an argument -- %c\n"),
argv[0], c);
#endif
}
optopt = c;
if (optstring[0] == ':')

View File

@@ -2,20 +2,19 @@
Copyright (C) 1989-1994, 1996-1999, 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser 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 Lesser General Public
License along with the GNU C Library; 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
@@ -142,20 +141,21 @@ struct option
/* Many other libraries have conflicting prototypes for getopt, with
differences in the consts, in stdlib.h. To avoid compilation
errors, only prototype getopt for the GNU C library. */
extern int getopt (int __argc, char *const *__argv, const char *__shortopts);
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts);
# else /* not __GNU_LIBRARY__ */
extern int getopt ();
# endif /* __GNU_LIBRARY__ */
# ifndef __need_getopt
extern int getopt_long (int __argc, char *const *__argv, const char *__shortopts,
extern int getopt_long (int ___argc, char *const *___argv,
const char *__shortopts,
const struct option *__longopts, int *__longind);
extern int getopt_long_only (int __argc, char *const *__argv,
extern int getopt_long_only (int ___argc, char *const *___argv,
const char *__shortopts,
const struct option *__longopts, int *__longind);
/* Internal only. Users should not call this directly. */
extern int _getopt_internal (int __argc, char *const *__argv,
extern int _getopt_internal (int ___argc, char *const *___argv,
const char *__shortopts,
const struct option *__longopts, int *__longind,
int __long_only);

View File

@@ -3,26 +3,29 @@
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser 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 Lesser General Public
License along with the GNU C Library; 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"
#ifdef _LIBC
# include <getopt.h>
#else
# include "getopt.h"
#endif
#if !defined __STDC__ || !__STDC__
/* This is a separate conditional since some stdc systems
@@ -90,6 +93,10 @@ getopt_long_only (argc, argv, options, long_options, opt_index)
return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
}
# ifdef _LIBC
libc_hidden_def (getopt_long)
libc_hidden_def (getopt_long_only)
# endif
#endif /* Not ELIDE_CODE. */

View File

@@ -25,8 +25,6 @@
#include <stdio.h>
#include <sys/types.h>
#include <assert.h>
#if STDC_HEADERS
# include <stdlib.h>
#else
@@ -49,7 +47,7 @@ int
getstr (char **lineptr, size_t *n, FILE *stream, int delim1, int delim2,
size_t offset)
{
int nchars_avail; /* Allocated but unused chars in *LINEPTR. */
size_t nchars_avail; /* Allocated but unused chars in *LINEPTR. */
char *read_pos; /* Where we're reading into *LINEPTR. */
int ret;
@@ -64,6 +62,9 @@ getstr (char **lineptr, size_t *n, FILE *stream, int delim1, int delim2,
return -1;
}
if (*n < offset)
return -1;
nchars_avail = *n - offset;
read_pos = *lineptr + offset;
@@ -75,7 +76,6 @@ getstr (char **lineptr, size_t *n, FILE *stream, int delim1, int delim2,
always (unless we get an error while reading the first char)
NUL-terminate the line buffer. */
assert(*n - nchars_avail == read_pos - *lineptr);
if (nchars_avail < 2)
{
if (*n > MIN_CHUNK)
@@ -88,7 +88,6 @@ getstr (char **lineptr, size_t *n, FILE *stream, int delim1, int delim2,
if (!*lineptr)
return -1;
read_pos = *n - nchars_avail + *lineptr;
assert(*n - nchars_avail == read_pos - *lineptr);
}
if (c == EOF || ferror (stream))

69
lib/gettext.h Normal file
View File

@@ -0,0 +1,69 @@
/* Convenience header for conditional use of GNU <libintl.h>.
Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc.
This program 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, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library 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 _LIBGETTEXT_H
# define _LIBGETTEXT_H 1
/* NLS can be disabled through the configure --disable-nls option. */
# if ENABLE_NLS
/* Get declarations of GNU message catalog functions. */
# include <libintl.h>
# else
/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
chokes if dcgettext is defined as a macro. So include it now, to make
later inclusions of <locale.h> a NOP. We don't include <libintl.h>
as well because people using "gettext.h" will not include <libintl.h>,
and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
is OK. */
# if defined(__sun)
# include <locale.h>
# endif
/* Disabled NLS.
The casts to 'const char *' serve the purpose of producing warnings
for invalid uses of the value returned from these functions.
On pre-ANSI systems without 'const', the config.h file is supposed to
contain "#define const". */
# define gettext(Msgid) ((const char *) (Msgid))
# define dgettext(Domainname, Msgid) ((const char *) (Msgid))
# define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid))
# define ngettext(Msgid1, Msgid2, N) \
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
# define dngettext(Domainname, Msgid1, Msgid2, N) \
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
# define textdomain(Domainname) ((const char *) (Domainname))
# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
# define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset))
# endif
/* A pseudo function call that serves as a marker for the automated
extraction of messages, but does not call gettext(). The run-time
translation is done at a different place in the code.
The argument, String, should be a literal string. Concatenated strings
and other string expressions won't work.
The macro's expansion is not parenthesized, so that it is suitable as
initializer for static 'char[]' or 'const char[]' variables. */
# define gettext_noop(String) String
#endif /* _LIBGETTEXT_H */

46
lib/gettime.c Normal file
View File

@@ -0,0 +1,46 @@
/* gettime -- get the system clock
Copyright (C) 2002 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. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "timespec.h"
/* Get the system time. */
int
gettime (struct timespec *ts)
{
#if defined CLOCK_REALTIME && HAVE_CLOCK_GETTIME
if (clock_gettime (CLOCK_REALTIME, ts) == 0)
return 0;
#endif
{
struct timeval tv;
int r = gettimeofday (&tv, 0);
if (r == 0)
{
ts->tv_sec = tv.tv_sec;
ts->tv_nsec = tv.tv_usec * 1000;
}
return r;
}
}

View File

@@ -1,7 +1,7 @@
/* Work around the bug in some systems whereby gettimeofday clobbers the
static buffer that localtime uses for it's return value. The gettimeofday
function from Mac OS X 10.0.4, i.e. Darwin 1.3.7 has this problem.
Copyright (C) 2001 Free Software Foundation, Inc.
Copyright (C) 2001, 2002 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,9 +21,10 @@
#include <config.h>
/* Disable the definition of gettimeofday (from config.h) so we can use
the library version. */
/* Disable the definitions of gettimeofday and localtime (from config.h)
so we can use the library versions here. */
#undef gettimeofday
#undef localtime
#include <sys/types.h>
@@ -39,15 +40,24 @@
#endif
#include <stdlib.h>
#include "gtod.h"
static struct tm *localtime_buffer_addr;
void
GTOD_init (void)
/* This is a wrapper for localtime. It is used only on systems for which
gettimeofday clobbers the static buffer used for localtime's result.
On the first call, record the address of the static buffer that
localtime uses for its result. */
struct tm *
rpl_localtime (const time_t *timep)
{
time_t t = 0;
localtime_buffer_addr = localtime (&t);
struct tm *tm = localtime (timep);
if (! localtime_buffer_addr)
localtime_buffer_addr = tm;
return tm;
}
/* This is a wrapper for gettimeofday. It is used only on systems for which
@@ -63,7 +73,10 @@ rpl_gettimeofday (struct timeval *tv, struct timezone *tz)
int result;
if (! localtime_buffer_addr)
abort ();
{
time_t t = 0;
localtime_buffer_addr = localtime (&t);
}
save = *localtime_buffer_addr;
result = gettimeofday (tv, tz);

View File

@@ -1,21 +0,0 @@
#ifndef GTOD_H
# define GTOD_H 1
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
void GTOD_init PARAMS ((void));
/* This is a no-op on compliant systems. */
# if GETTIMEOFDAY_CLOBBERS_LOCALTIME_BUFFER
# define GETTIMEOFDAY_INIT() GTOD_init ()
# else
# define GETTIMEOFDAY_INIT() /* empty */
# endif
#endif

View File

@@ -1,5 +1,6 @@
/* hard-locale.c -- Determine whether a locale is hard.
Copyright 1997, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 1999, 2002 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
@@ -19,41 +20,26 @@
# include <config.h>
#endif
#if __GNUC__
# define alloca __builtin_alloca
#else
# 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_STDLIB_H
# include <stdlib.h>
#endif
#if HAVE_STRING_H
# include <string.h>
#endif
#include "hard-locale.h"
/* 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)
#if ! HAVE_SETLOCALE
return 0;
#else
@@ -62,22 +48,28 @@ hard_locale (int category)
if (p)
{
# if defined __GLIBC__ && __GLIBC__ >= 2
# if defined __GLIBC__ && 2 <= __GLIBC__
if (strcmp (p, "C") == 0 || strcmp (p, "POSIX") == 0)
hard = 0;
# else
char *locale = alloca (strlen (p) + 1);
strcpy (locale, p);
char *locale = malloc (strlen (p) + 1);
if (locale)
{
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;
/* 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);
/* Restore the caller's locale. */
setlocale (category, locale);
free (locale);
}
# endif
}

View File

@@ -1,5 +1,7 @@
/* human.c -- print human readable file size
Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 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,33 +18,42 @@
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Originally contributed by lm@sgi.com;
--si, output block size selection, and large file support
added by eggert@twinsun.com. */
--si, output block size selection, large file support,
and grouping added by eggert@twinsun.com. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#include <stdio.h>
#if HAVE_LIMITS_H
# include <limits.h>
#endif
#if HAVE_STRING_H
# include <string.h>
#if HAVE_STDBOOL_H
# include <stdbool.h>
#else
# include <strings.h>
typedef enum {false = 0, true = 1} bool;
#endif
#ifndef CHAR_BIT
# define CHAR_BIT 8
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
# include <stdint.h>
# endif
#endif
#ifndef SIZE_MAX
# define SIZE_MAX ((size_t) -1)
#endif
#ifndef UINTMAX_MAX
# define UINTMAX_MAX ((uintmax_t) -1)
#endif
#include <limits.h>
#if HAVE_LOCALE_H && HAVE_LOCALECONV
# include <locale.h>
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifndef HAVE_DECL_GETENV
"this configure-time declaration test was not run"
#endif
@@ -50,41 +61,54 @@
char *getenv ();
#endif
#if ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#if HAVE_STRING_H
# include <string.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#include <stdio.h>
#include <sys/types.h>
#include <gettext.h>
#define _(text) gettext (text)
#include <argmatch.h>
#include <error.h>
#include <xstrtol.h>
#include "human.h"
static const char suffixes[] =
/* The maximum length of a suffix like "KiB". */
#define HUMAN_READABLE_SUFFIX_LENGTH_MAX 3
static const char power_letter[] =
{
0, /* not used */
'k', /* kilo */
'M', /* Mega */
'G', /* Giga */
'T', /* Tera */
'P', /* Peta */
'E', /* Exa */
'Z', /* Zetta */
'Y' /* Yotta */
'K', /* kibi ('k' for kilo is a special case) */
'M', /* mega or mebi */
'G', /* giga or gibi */
'T', /* tera or tebi */
'P', /* peta or pebi */
'E', /* exa or exbi */
'Z', /* zetta or 2**70 */
'Y' /* yotta or 2**80 */
};
/* If INEXACT_STYLE is not human_round_to_even, and if easily
/* If INEXACT_STYLE is not human_round_to_nearest, and if easily
possible, adjust VALUE according to the style. */
static double
adjust_value (enum human_inexact_style inexact_style, double value)
static long double
adjust_value (int inexact_style, long double value)
{
/* Do not use the floor or ceil functions, as that would mean
linking with the standard math library, which is a porting pain.
So leave the value alone if it is too large to easily round. */
if (inexact_style != human_round_to_even && value < (uintmax_t) -1)
/* Do not use the floorl or ceill functions, as that would mean
checking for their presence and possibly linking with the
standard math library, which is a porting pain. So leave the
value alone if it is too large to easily round. */
if (inexact_style != human_round_to_nearest && value < UINTMAX_MAX)
{
uintmax_t u = value;
value = u + (inexact_style == human_ceiling && u != value);
@@ -93,195 +117,323 @@ adjust_value (enum human_inexact_style inexact_style, double value)
return value;
}
/* 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)
/* Group the digits of NUMBER according to the grouping rules of the
current locale. NUMBER contains NUMBERLEN digits. Modify the
bytes pointed to by NUMBER in place, subtracting 1 from NUMBER for
each byte inserted. Return the starting address of the modified
number.
To group the digits, use GROUPING and THOUSANDS_SEP as in `struct
lconv' from <locale.h>. */
static char *
group_number (char *number, size_t numberlen,
char const *grouping, char const *thousands_sep)
{
return human_readable_inexact (n, buf, from_block_size, output_block_size,
human_round_to_even);
register char *d;
size_t grouplen = SIZE_MAX;
size_t thousands_seplen = strlen (thousands_sep);
size_t i = numberlen;
/* The maximum possible value for NUMBERLEN is the number of digits
in the square of the largest uintmax_t, so double the size of
uintmax_t before converting to a bound. 302 / 1000 is ceil
(log10 (2.0)). Add 1 for integer division truncation. */
char buf[2 * sizeof (uintmax_t) * CHAR_BIT * 302 / 1000 + 1];
memcpy (buf, number, numberlen);
d = number + numberlen;
for (;;)
{
unsigned char g = *grouping;
if (g)
{
grouplen = g < CHAR_MAX ? g : i;
grouping++;
}
if (i < grouplen)
grouplen = i;
d -= grouplen;
i -= grouplen;
memcpy (d, buf + i, grouplen);
if (i == 0)
return d;
d -= thousands_seplen;
memcpy (d, thousands_sep, thousands_seplen);
}
}
/* Convert N to a human readable format in BUF.
/* Convert N to a human readable format in BUF, using the options OPTS.
N is expressed in units of FROM_BLOCK_SIZE. FROM_BLOCK_SIZE must
be nonnegative.
OUTPUT_BLOCK_SIZE must be nonzero. If it is positive, use units of
OUTPUT_BLOCK_SIZE in the output number.
Use units of TO_BLOCK_SIZE in the output number. TO_BLOCK_SIZE
must be positive.
Use INEXACT_STYLE to determine whether to take the ceiling or floor
of any result that cannot be expressed exactly.
Use (OPTS & (human_round_to_nearest | human_floor | human_ceiling))
to determine whether to take the ceiling or floor of any result
that cannot be expressed exactly.
If OUTPUT_BLOCK_SIZE is negative, use a format like "127k" if
possible, using powers of -OUTPUT_BLOCK_SIZE; otherwise, use
ordinary decimal format. Normally -OUTPUT_BLOCK_SIZE is either
1000 or 1024; it must be at least 2. Most people visually process
strings of 3-4 digits effectively, but longer strings of digits are
more prone to misinterpretation. Hence, converting to an
abbreviated form usually improves readability. Use a suffix
indicating which power is being used. For example, assuming
-OUTPUT_BLOCK_SIZE is 1024, 8500 would be converted to 8.3k,
133456345 to 127M, 56990456345 to 53G, and so on. Numbers smaller
than -OUTPUT_BLOCK_SIZE aren't modified. */
If (OPTS & human_group_digits), group the thousands digits
according to the locale, e.g., `1,000,000' in an American English
locale.
If (OPTS & human_autoscale), deduce the output block size
automatically; TO_BLOCK_SIZE must be 1 but it has no effect on the
output. Use powers of 1024 if (OPTS & human_base_1024), and powers
of 1000 otherwise. For example, assuming powers of 1024, 8500
would be converted to 8.3, 133456345 to 127, 56990456345 to 53, and
so on. Numbers smaller than the power aren't modified.
human_autoscale is normally used together with human_SI.
If (OPTS & human_SI), append an SI prefix indicating which power is
being used. If in addition (OPTS & human_B), append "B" (if base
1000) or "iB" (if base 1024) to the SI prefix. When ((OPTS &
human_SI) && ! (OPTS & human_autoscale)), TO_BLOCK_SIZE must be a
power of 1024 or of 1000, depending on (OPTS &
human_base_1024). */
char *
human_readable_inexact (uintmax_t n, char *buf,
int from_block_size, int output_block_size,
enum human_inexact_style inexact_style)
human_readable (uintmax_t n, char *buf, int opts,
uintmax_t from_block_size, uintmax_t to_block_size)
{
int inexact_style =
opts & (human_round_to_nearest | human_floor | human_ceiling);
unsigned int base = opts & human_base_1024 ? 1024 : 1000;
uintmax_t amt;
int base;
int to_block_size;
int tenths = 0;
int power;
int tenths;
int exponent = -1;
int exponent_max = sizeof power_letter - 1;
char *p;
char *psuffix;
char const *integerlim;
/* 0 means adjusted N == AMT.TENTHS;
1 means AMT.TENTHS < adjusted N < AMT.TENTHS + 0.05;
2 means adjusted N == AMT.TENTHS + 0.05;
3 means AMT.TENTHS + 0.05 < adjusted N < AMT.TENTHS + 0.1. */
int rounding = 0;
int rounding;
if (output_block_size < 0)
char const *decimal_point = ".";
size_t decimal_pointlen = 1;
char const *grouping = "";
char const *thousands_sep = "";
#if HAVE_LOCALE_H && HAVE_LOCALECONV
struct lconv const *l = localeconv ();
size_t pointlen = strlen (l->decimal_point);
if (0 < pointlen && pointlen <= MB_LEN_MAX)
{
base = -output_block_size;
to_block_size = 1;
decimal_point = l->decimal_point;
decimal_pointlen = pointlen;
}
else
{
base = 0;
to_block_size = output_block_size;
}
p = buf + LONGEST_HUMAN_READABLE;
*p = '\0';
#ifdef lint
/* Suppress `used before initialized' warning. */
power = 0;
grouping = l->grouping;
if (strlen (l->thousands_sep) <= MB_LEN_MAX)
thousands_sep = l->thousands_sep;
#endif
/* Adjust AMT out of FROM_BLOCK_SIZE units and into TO_BLOCK_SIZE units. */
psuffix = buf + LONGEST_HUMAN_READABLE - HUMAN_READABLE_SUFFIX_LENGTH_MAX;
p = psuffix;
/* Adjust AMT out of FROM_BLOCK_SIZE units and into TO_BLOCK_SIZE
units. If this can be done exactly with integer arithmetic, do
not use floating point operations. */
if (to_block_size <= from_block_size)
{
if (from_block_size % to_block_size == 0)
{
uintmax_t multiplier = from_block_size / to_block_size;
amt = n * multiplier;
if (amt / multiplier == n)
{
tenths = 0;
rounding = 0;
goto use_integer_arithmetic;
}
}
}
else if (from_block_size != 0 && to_block_size % from_block_size == 0)
{
uintmax_t divisor = to_block_size / from_block_size;
uintmax_t r10 = (n % divisor) * 10;
uintmax_t r2 = (r10 % divisor) * 2;
amt = n / divisor;
tenths = r10 / divisor;
rounding = r2 < divisor ? 0 < r2 : 2 + (divisor < r2);
goto use_integer_arithmetic;
}
{
int multiplier;
int divisor;
int r2;
int r10;
if (to_block_size <= from_block_size
? (from_block_size % to_block_size != 0
|| (multiplier = from_block_size / to_block_size,
(amt = n * multiplier) / multiplier != n))
: (from_block_size == 0
|| to_block_size % from_block_size != 0
|| (divisor = to_block_size / from_block_size,
r10 = (n % divisor) * 10,
r2 = (r10 % divisor) * 2,
amt = n / divisor,
tenths = r10 / divisor,
rounding = r2 < divisor ? 0 < r2 : 2 + (divisor < r2),
0)))
/* Either the result cannot be computed easily using uintmax_t,
or from_block_size is zero. Fall back on floating point.
FIXME: This can yield answers that are slightly off. */
long double dto_block_size = to_block_size;
long double damt = n * (from_block_size / dto_block_size);
size_t buflen;
size_t nonintegerlen;
if (! (opts & human_autoscale))
{
/* Either the result cannot be computed easily using uintmax_t,
or from_block_size is zero. Fall back on floating point.
FIXME: This can yield answers that are slightly off. */
sprintf (buf, "%.0Lf", adjust_value (inexact_style, damt));
buflen = strlen (buf);
nonintegerlen = 0;
}
else
{
long double e = 1;
exponent = 0;
double damt = n * (from_block_size / (double) to_block_size);
if (! base)
sprintf (buf, "%.0f", adjust_value (inexact_style, damt));
else
do
{
double e = 1;
power = 0;
e *= base;
exponent++;
}
while (e * base <= damt && exponent < exponent_max);
damt /= e;
sprintf (buf, "%.1Lf", adjust_value (inexact_style, damt));
buflen = strlen (buf);
nonintegerlen = decimal_pointlen + 1;
if (1 + nonintegerlen + ! (opts & human_base_1024) < buflen
|| ((opts & human_suppress_point_zero)
&& buf[buflen - 1] == '0'))
{
sprintf (buf, "%.0Lf",
adjust_value (inexact_style, damt * 10) / 10);
buflen = strlen (buf);
nonintegerlen = 0;
}
}
p = psuffix - buflen;
memmove (p, buf, buflen);
integerlim = p + buflen - nonintegerlen;
}
goto do_grouping;
use_integer_arithmetic:
{
/* The computation can be done exactly, with integer arithmetic.
Use power of BASE notation if requested and if adjusted AMT is
large enough. */
if (opts & human_autoscale)
{
exponent = 0;
if (base <= amt)
{
do
{
e *= base;
power++;
unsigned r10 = (amt % base) * 10 + tenths;
unsigned r2 = (r10 % base) * 2 + (rounding >> 1);
amt /= base;
tenths = r10 / base;
rounding = (r2 < base
? (r2 + rounding) != 0
: 2 + (base < r2 + rounding));
exponent++;
}
while (e * base <= damt && power < sizeof suffixes - 1);
while (base <= amt && exponent < exponent_max);
damt /= e;
if (amt < 10)
{
if (inexact_style == human_round_to_nearest
? 2 < rounding + (tenths & 1)
: inexact_style == human_ceiling && 0 < rounding)
{
tenths++;
rounding = 0;
sprintf (buf, "%.1f%c", adjust_value (inexact_style, damt),
suffixes[power]);
if (4 < strlen (buf))
sprintf (buf, "%.0f%c",
adjust_value (inexact_style, damt * 10) / 10,
suffixes[power]);
if (tenths == 10)
{
amt++;
tenths = 0;
}
}
if (amt < 10
&& (tenths || ! (opts & human_suppress_point_zero)))
{
*--p = '0' + tenths;
p -= decimal_pointlen;
memcpy (p, decimal_point, decimal_pointlen);
tenths = rounding = 0;
}
}
}
return buf;
}
if (inexact_style == human_ceiling
? 0 < tenths + rounding
: inexact_style == human_round_to_nearest
? 5 < tenths + (2 < rounding + (amt & 1))
: /* inexact_style == human_floor */ 0)
{
amt++;
if ((opts & human_autoscale)
&& amt == base && exponent < exponent_max)
{
exponent++;
if (! (opts & human_suppress_point_zero))
{
*--p = '0';
p -= decimal_pointlen;
memcpy (p, decimal_point, decimal_pointlen);
}
amt = 1;
}
}
integerlim = p;
do
{
int digit = amt % 10;
*--p = digit + '0';
}
while ((amt /= 10) != 0);
}
/* Use power of BASE notation if adjusted AMT is large enough. */
do_grouping:
if (opts & human_group_digits)
p = group_number (p, integerlim - p, grouping, thousands_sep);
if (base && base <= amt)
if (opts & human_SI)
{
power = 0;
do
if (exponent < 0)
{
int r10 = (amt % base) * 10 + tenths;
int r2 = (r10 % base) * 2 + (rounding >> 1);
amt /= base;
tenths = r10 / base;
rounding = (r2 < base
? 0 < r2 + rounding
: 2 + (base < r2 + rounding));
power++;
uintmax_t power;
exponent = 0;
for (power = 1; power < to_block_size; power *= base)
if (++exponent == exponent_max)
break;
}
while (base <= amt && power < sizeof suffixes - 1);
*--p = suffixes[power];
if (exponent)
*psuffix++ = (! (opts & human_base_1024) && exponent == 1
? 'k'
: power_letter[exponent]);
if (amt < 10)
if (opts & human_B)
{
if (2 * (1 - (int) inexact_style)
< rounding + (tenths & (inexact_style == human_round_to_even)))
{
tenths++;
rounding = 0;
if (tenths == 10)
{
amt++;
tenths = 0;
}
}
if (amt < 10)
{
*--p = '0' + tenths;
*--p = '.';
tenths = rounding = 0;
}
if ((opts & human_base_1024) && exponent)
*psuffix++ = 'i';
*psuffix++ = 'B';
}
}
if (inexact_style == human_ceiling
? 0 < tenths + rounding
: inexact_style == human_round_to_even
? 5 < tenths + (2 < rounding + (amt & 1))
: /* inexact_style == human_floor */ 0)
{
amt++;
if (amt == base && power < sizeof suffixes - 1)
{
*p = suffixes[power + 1];
*--p = '0';
*--p = '.';
amt = 1;
}
}
do
*--p = '0' + (int) (amt % 10);
while ((amt /= 10) != 0);
*psuffix = '\0';
return p;
}
@@ -294,44 +446,70 @@ human_readable_inexact (uintmax_t n, char *buf,
#endif
static char const *const block_size_args[] = { "human-readable", "si", 0 };
static int const block_size_types[] = { -1024, -1000 };
static int const block_size_opts[] =
{
human_autoscale + human_SI + human_base_1024,
human_autoscale + human_SI
};
static int
static uintmax_t
default_block_size (void)
{
return getenv ("POSIXLY_CORRECT") ? 512 : DEFAULT_BLOCK_SIZE;
}
static strtol_error
humblock (char const *spec, int *block_size)
humblock (char const *spec, uintmax_t *block_size, int *options)
{
int i;
int opts = 0;
if (! spec && ! (spec = getenv ("BLOCK_SIZE")))
*block_size = default_block_size ();
else if (0 <= (i = ARGMATCH (spec, block_size_args, block_size_types)))
*block_size = block_size_types[i];
else
{
char *ptr;
unsigned long val;
strtol_error e = xstrtoul (spec, &ptr, 0, &val, "eEgGkKmMpPtTyYzZ0");
if (e != LONGINT_OK)
return e;
if (*ptr)
return LONGINT_INVALID_SUFFIX_CHAR;
if ((int) val < 0 || val != (int) val)
return LONGINT_OVERFLOW;
*block_size = (int) val;
if (*spec == '\'')
{
opts |= human_group_digits;
spec++;
}
if (0 <= (i = ARGMATCH (spec, block_size_args, block_size_opts)))
{
opts |= block_size_opts[i];
*block_size = 1;
}
else
{
char *ptr;
strtol_error e = xstrtoumax (spec, &ptr, 0, block_size,
"eEgGkKmMpPtTyYzZ0");
if (e != LONGINT_OK)
return e;
if (*ptr)
return LONGINT_INVALID_SUFFIX_CHAR;
for (; ! ('0' <= *spec && *spec <= '9'); spec++)
if (spec == ptr)
{
opts |= human_SI;
if (ptr[-1] == 'B')
opts |= human_B;
if (ptr[-1] != 'B' || ptr[-2] == 'i')
opts |= human_base_1024;
break;
}
}
}
*options = opts;
return LONGINT_OK;
}
void
human_block_size (char const *spec, int report_errors, int *block_size)
int
human_options (char const *spec, bool report_errors, uintmax_t *block_size)
{
strtol_error e = humblock (spec, block_size);
int opts;
strtol_error e = humblock (spec, block_size, &opts);
if (*block_size == 0)
{
*block_size = default_block_size ();
@@ -339,4 +517,5 @@ human_block_size (char const *spec, int report_errors, int *block_size)
}
if (e != LONGINT_OK && report_errors)
STRTOL_FATAL_ERROR (spec, _("block size"), e);
return opts;
}

View File

@@ -1,39 +1,77 @@
#ifndef HUMAN_H_
# define HUMAN_H_ 1
# if HAVE_CONFIG_H
# include <config.h>
# endif
/* Before including this file, you need something like the following:
# if HAVE_INTTYPES_H
# include <inttypes.h>
# endif
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if HAVE_STDBOOL_H
# include <stdbool.h>
#else
typedef enum {false = 0, true = 1} bool;
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
# include <stdint.h>
# endif
#endif
#include <limits.h>
so that the proper identifiers are all declared. */
/* A conservative bound on the maximum length of a human-readable string.
The output can be the product of the largest uintmax_t and the largest int,
so add their sizes before converting to a bound on digits. */
# define LONGEST_HUMAN_READABLE ((sizeof (uintmax_t) + sizeof (int)) \
* CHAR_BIT / 3)
The output can be the square of the largest uintmax_t, so double
its size before converting to a bound.
302 / 1000 is ceil (log10 (2.0)). Add 1 for integer division truncation.
Also, the output can have a thousands separator between every digit,
so multiply by MB_LEN_MAX + 1 and then subtract MB_LEN_MAX.
Finally, append 3, the maximum length of a suffix. */
# define LONGEST_HUMAN_READABLE \
((2 * sizeof (uintmax_t) * CHAR_BIT * 302 / 1000 + 1) * (MB_LEN_MAX + 1) \
- MB_LEN_MAX + 3)
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
enum human_inexact_style
/* Options for human_readable. */
enum
{
human_floor = -1,
human_round_to_even = 0,
human_ceiling = 1
/* Unless otherwise specified these options may be ORed together. */
/* The following three options are mutually exclusive. */
/* Round to plus infinity (default). */
human_ceiling = 0,
/* Round to nearest, ties to even. */
human_round_to_nearest = 1,
/* Round to minus infinity. */
human_floor = 2,
/* Group digits together, e.g. `1,000,000'. This uses the
locale-defined grouping; the traditional C locale does not group,
so this has effect only if some other locale is in use. */
human_group_digits = 4,
/* When autoscaling, suppress ".0" at end. */
human_suppress_point_zero = 8,
/* Scale output and use SI-style units, ignoring the output block size. */
human_autoscale = 16,
/* Prefer base 1024 to base 1000. */
human_base_1024 = 32,
/* Append SI prefix, e.g. "k" or "M". */
human_SI = 64,
/* Append "B" (if base 1000) or "iB" (if base 1024) to SI prefix. */
human_B = 128
};
char *human_readable PARAMS ((uintmax_t, char *, int, int));
char *human_readable_inexact PARAMS ((uintmax_t, char *, int, int,
enum human_inexact_style));
char *human_readable (uintmax_t, char *, int, uintmax_t, uintmax_t);
void human_block_size PARAMS ((char const *, int, int *));
int human_options (char const *, bool, uintmax_t *);
#endif /* HUMAN_H_ */

3
lib/imaxtostr.c Normal file
View File

@@ -0,0 +1,3 @@
#define inttostr imaxtostr
#define inttype intmax_t
#include "inttostr.c"

49
lib/inttostr.c Normal file
View File

@@ -0,0 +1,49 @@
/* inttostr.c -- convert integers to printable strings
Copyright (C) 2001 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 */
#include "inttostr.h"
/* Convert I to a printable string in BUF, which must be at least
INT_BUFSIZE_BOUND (INTTYPE) bytes long. Return the address of the
printable string, which need not start at BUF. */
char *
inttostr (inttype i, char *buf)
{
char *p = buf + INT_STRLEN_BOUND (inttype);
*p = 0;
if (i < 0)
{
do
*--p = '0' - i % 10;
while ((i /= 10) != 0);
*--p = '-';
}
else
{
do
*--p = '0' + i % 10;
while ((i /= 10) != 0);
}
return p;
}

57
lib/inttostr.h Normal file
View File

@@ -0,0 +1,57 @@
/* inttostr.h -- convert integers to printable strings
Copyright (C) 2001, 2002 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_LIMITS_H
# include <limits.h>
#endif
#ifndef CHAR_BIT
# define CHAR_BIT 8
#endif
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
/* Upper bound on the string length of an integer converted to string.
302 / 1000 is ceil (log10 (2.0)). Subtract 1 for the sign bit;
add 1 for integer division truncation; add 1 more for a minus sign. */
#define INT_STRLEN_BOUND(t) ((sizeof (t) * CHAR_BIT - 1) * 302 / 1000 + 2)
#define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1)
#ifndef PARAMS
# if defined PROTOTYPES || defined __STDC__
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
char *offtostr PARAMS ((off_t, char *));
char *imaxtostr PARAMS ((intmax_t, char *));
char *umaxtostr PARAMS ((uintmax_t, char *));

View File

@@ -1,5 +1,5 @@
/* Provide a stub lchown function for systems that lack it.
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2002 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,8 +30,13 @@ extern int errno;
#ifdef STAT_MACROS_BROKEN
# undef S_ISLNK
#endif
#if !defined(S_ISLNK) && defined(S_IFLNK)
# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
#ifndef S_ISLNK
# ifdef S_IFLNK
# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
# else
# define S_ISLNK(m) 0
# endif
#endif
/* Declare chown to avoid a warning. Don't include unistd.h,

View File

@@ -25,9 +25,8 @@
#include <sys/types.h>
#include "linebuffer.h"
#include "unlocked-io.h"
#include "xalloc.h"
char *xmalloc ();
char *xrealloc ();
void free ();
/* Initialize linebuffer LINEBUFFER for use. */
@@ -37,14 +36,16 @@ initbuffer (struct linebuffer *linebuffer)
{
linebuffer->length = 0;
linebuffer->size = 200;
linebuffer->buffer = (char *) xmalloc (linebuffer->size);
linebuffer->buffer = xmalloc (linebuffer->size);
}
/* Read an arbitrarily long line of text from STREAM into 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. */
Therefore the stream can contain NUL bytes, and the length
(including the newline) is returned in linebuffer->length.
Return NULL upon error, or when STREAM is empty.
Otherwise, return LINEBUFFER. */
struct linebuffer *
readline (struct linebuffer *linebuffer, FILE *stream)
{
@@ -54,7 +55,7 @@ readline (struct linebuffer *linebuffer, FILE *stream)
char *end = buffer + linebuffer->size; /* Sentinel. */
if (feof (stream) || ferror (stream))
return 0;
return NULL;
do
{
@@ -62,7 +63,7 @@ readline (struct linebuffer *linebuffer, FILE *stream)
if (c == EOF)
{
if (p == buffer)
return 0;
return NULL;
if (p[-1] == '\n')
break;
c = '\n';
@@ -70,7 +71,7 @@ readline (struct linebuffer *linebuffer, FILE *stream)
if (p == end)
{
linebuffer->size *= 2;
buffer = (char *) xrealloc (buffer, linebuffer->size);
buffer = xrealloc (buffer, linebuffer->size);
p = p - linebuffer->buffer + buffer;
linebuffer->buffer = buffer;
end = buffer + linebuffer->size;

View File

@@ -1,6 +1,6 @@
/* Determine a canonical name for the current locale's character encoding.
Copyright (C) 2000-2001 Free Software Foundation, Inc.
Copyright (C) 2000-2002 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
@@ -17,7 +17,7 @@
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
/* Written by Bruno Haible <haible@clisp.cons.org>. */
/* Written by Bruno Haible <bruno@clisp.org>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -42,7 +42,12 @@
# define WIN32
#endif
#ifndef WIN32
#if defined __EMX__
/* Assume EMX program runs on OS/2, even if compiled under DOS. */
# define OS2
#endif
#if !defined WIN32
# if HAVE_LANGINFO_CODESET
# include <langinfo.h>
# else
@@ -50,10 +55,19 @@
# include <locale.h>
# endif
# endif
#else /* WIN32 */
#elif defined WIN32
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
#endif
#if defined OS2
# define INCL_DOS
# include <os2.h>
#endif
#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
/* Win32, OS/2, DOS */
# define ISSLASH(C) ((C) == '/' || (C) == '\\')
#endif
#ifndef DIRECTORY_SEPARATOR
# define DIRECTORY_SEPARATOR '/'
@@ -63,6 +77,16 @@
# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
#endif
#ifdef HAVE_GETC_UNLOCKED
# undef getc
# define getc getc_unlocked
#endif
#ifdef __cplusplus
/* When compiling with "gcc -x c++", produce a function with C linkage. */
extern "C" const char * locale_charset (void);
#endif
/* The following static variable is declared 'volatile' to avoid a
possible multithread problem in the function get_charset_aliases. If we
are running in a threaded environment, and if two threads initialize
@@ -86,7 +110,7 @@ get_charset_aliases ()
cp = charset_aliases;
if (cp == NULL)
{
#ifndef WIN32
#if !defined WIN32
FILE *fp;
const char *dir = LIBDIR;
const char *base = "charset.alias";
@@ -138,19 +162,19 @@ get_charset_aliases ()
continue;
}
ungetc (c, fp);
if (fscanf(fp, "%50s %50s", buf1, buf2) < 2)
if (fscanf (fp, "%50s %50s", buf1, buf2) < 2)
break;
l1 = strlen (buf1);
l2 = strlen (buf2);
if (res_size == 0)
{
res_size = l1 + 1 + l2 + 1;
res_ptr = malloc (res_size + 1);
res_ptr = (char *) malloc (res_size + 1);
}
else
{
res_size += l1 + 1 + l2 + 1;
res_ptr = realloc (res_ptr, res_size + 1);
res_ptr = (char *) realloc (res_ptr, res_size + 1);
}
if (res_ptr == NULL)
{
@@ -174,14 +198,29 @@ get_charset_aliases ()
if (file_name != NULL)
free (file_name);
#else /* WIN32 */
#else
/* To avoid the troubles of installing a separate file in the same
directory as the DLL and of retrieving the DLL's directory at
runtime, simply inline the aliases here. */
# if defined WIN32
cp = "CP936" "\0" "GBK" "\0"
"CP1361" "\0" "JOHAB" "\0";
"CP1361" "\0" "JOHAB" "\0"
"CP20127" "\0" "ASCII" "\0"
"CP20866" "\0" "KOI8-R" "\0"
"CP21866" "\0" "KOI8-RU" "\0"
"CP28591" "\0" "ISO-8859-1" "\0"
"CP28592" "\0" "ISO-8859-2" "\0"
"CP28593" "\0" "ISO-8859-3" "\0"
"CP28594" "\0" "ISO-8859-4" "\0"
"CP28595" "\0" "ISO-8859-5" "\0"
"CP28596" "\0" "ISO-8859-6" "\0"
"CP28597" "\0" "ISO-8859-7" "\0"
"CP28598" "\0" "ISO-8859-8" "\0"
"CP28599" "\0" "ISO-8859-9" "\0"
"CP28605" "\0" "ISO-8859-15" "\0";
# endif
#endif
charset_aliases = cp;
@@ -205,7 +244,7 @@ locale_charset ()
const char *codeset;
const char *aliases;
#ifndef WIN32
#if !(defined WIN32 || defined OS2)
# if HAVE_LANGINFO_CODESET
@@ -242,14 +281,67 @@ locale_charset ()
# endif
#else /* WIN32 */
#elif defined WIN32
static char buf[2 + 10 + 1];
/* Win32 has a function returning the locale's codepage as a number. */
/* Woe32 has a function returning the locale's codepage as a number. */
sprintf (buf, "CP%u", GetACP ());
codeset = buf;
#elif defined OS2
const char *locale;
static char buf[2 + 10 + 1];
ULONG cp[3];
ULONG cplen;
/* Allow user to override the codeset, as set in the operating system,
with standard language environment variables. */
locale = getenv ("LC_ALL");
if (locale == NULL || locale[0] == '\0')
{
locale = getenv ("LC_CTYPE");
if (locale == NULL || locale[0] == '\0')
locale = getenv ("LANG");
}
if (locale != NULL && locale[0] != '\0')
{
/* If the locale name contains an encoding after the dot, return it. */
const char *dot = strchr (locale, '.');
if (dot != NULL)
{
const char *modifier;
dot++;
/* Look for the possible @... trailer and remove it, if any. */
modifier = strchr (dot, '@');
if (modifier == NULL)
return dot;
if (modifier - dot < sizeof (buf))
{
memcpy (buf, dot, modifier - dot);
buf [modifier - dot] = '\0';
return buf;
}
}
/* Resolve through the charset.alias file. */
codeset = locale;
}
else
{
/* OS/2 has a function returning the locale's codepage as a number. */
if (DosQueryCp (sizeof (cp), cp, &cplen))
codeset = "";
else
{
sprintf (buf, "CP%u", cp[0]);
codeset = buf;
}
}
#endif
if (codeset == NULL)
@@ -267,5 +359,11 @@ locale_charset ()
break;
}
/* Don't return an empty string. GNU libc and GNU libiconv interpret
the empty string as denoting "the locale's character encoding",
thus GNU libiconv would call this function a second time. */
if (codeset[0] == '\0')
codeset = "ASCII";
return codeset;
}

View File

@@ -1,5 +1,5 @@
/* Utility to accept --help and --version options as unobtrusively as possible.
Copyright (C) 1993, 1994, 1998, 1999, 2000 Free Software Foundation, Inc.
Copyright (C) 1993-1994, 1998-1999, 2000, 2002 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,13 +30,6 @@
#include "long-options.h"
#include "version-etc.h"
#if ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#endif
static struct option const long_options[] =
{
{"help", no_argument, 0, 'h'},

21
lib/lstat.c Normal file
View File

@@ -0,0 +1,21 @@
/* Work around the bug in some systems whereby lstat succeeds when
given the zero-length file name argument. The lstat from SunOS4.1.4
has this bug.
Copyright (C) 1997-2002 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. */
#define LSTAT
#include "stat.c"

View File

@@ -1,5 +1,5 @@
/* makepath.c -- Ensure that a directory path exists.
Copyright (C) 1990, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
Copyright (C) 1990, 1997, 1998, 1999, 2000, 2002 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
@@ -46,7 +46,7 @@ char *alloca ();
# undef S_ISDIR
#endif
#if !defined(S_ISDIR) && defined(S_IFDIR)
#if !defined S_ISDIR && defined S_IFDIR
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif
@@ -103,16 +103,8 @@ extern int errno;
/* Include this before libintl.h so we get our definition of PARAMS. */
#include "makepath.h"
#if HAVE_LOCALE_H
# include <locale.h>
#endif
#if ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#endif
#include "gettext.h"
#define _(msgid) gettext (msgid)
#include "save-cwd.h"
#include "dirname.h"
@@ -311,7 +303,7 @@ make_path (const char *argpath,
if ((owner != (uid_t) -1 || group != (gid_t) -1)
&& chown (basename_dir, owner, group)
#if defined(AFS) && defined (EPERM)
#if defined AFS && defined EPERM
&& errno != EPERM
#endif
)
@@ -338,7 +330,7 @@ make_path (const char *argpath,
stat and mkdir process O(n^2) file name components. */
if (do_chdir && chdir (basename_dir) < 0)
{
error (0, errno, _("cannot chdir to directory, %s"),
error (0, errno, _("cannot chdir to directory %s"),
quote (dirpath));
CLEANUP;
return 1;
@@ -355,6 +347,9 @@ make_path (const char *argpath,
if (!do_chdir)
basename_dir = dirpath;
/* Done creating leading directories. Restore original umask. */
umask (oldmask);
/* We're done making leading directories.
Create the final component of the path. */
@@ -364,9 +359,6 @@ make_path (const char *argpath,
return 1;
}
/* Done creating directories. Restore original umask. */
umask (oldmask);
if (verbose_fmt_string != NULL)
error (0, 0, verbose_fmt_string, quote (dirpath));
@@ -392,7 +384,8 @@ make_path (const char *argpath,
if ((mode & ~S_IRWXUGO)
&& chmod (basename_dir, mode))
{
error (0, errno, _("cannot change permissions of %s"), quote (dirpath));
error (0, errno, _("cannot change permissions of %s"),
quote (dirpath));
retval = 1;
}

View File

@@ -1,5 +1,5 @@
/* Determine the number of screen columns needed for a string.
Copyright (C) 2000-2001 Free Software Foundation, Inc.
Copyright (C) 2000-2002 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,9 @@
# include <config.h>
#endif
/* Specification. */
#include "mbswidth.h"
/* Get MB_CUR_MAX. */
#include <stdlib.h>
@@ -78,17 +81,13 @@ int wcwidth ();
#undef ISCNTRL
#define ISCNTRL(c) (IN_CTYPE_DOMAIN (c) && iscntrl (c))
#include "mbswidth.h"
/* Returns the number of columns needed to represent the multibyte
character string pointed to by STRING. If a non-printable character
occurs, and MBSW_REJECT_UNPRINTABLE is specified, -1 is returned.
With flags = MBSW_REJECT_INVALID | MBSW_REJECT_UNPRINTABLE, this is
the multibyte analogon of the wcswidth function. */
int
mbswidth (string, flags)
const char *string;
int flags;
mbswidth (const char *string, int flags)
{
return mbsnwidth (string, strlen (string), flags);
}
@@ -98,10 +97,7 @@ mbswidth (string, flags)
non-printable character occurs, and MBSW_REJECT_UNPRINTABLE is
specified, -1 is returned. */
int
mbsnwidth (string, nbytes, flags)
const char *string;
size_t nbytes;
int flags;
mbsnwidth (const char *string, size_t nbytes, int flags)
{
const char *p = string;
const char *plimit = p + nbytes;

View File

@@ -1,5 +1,5 @@
/* Determine the number of screen columns needed for a string.
Copyright (C) 2000-2001 Free Software Foundation, Inc.
Copyright (C) 2000-2002 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,13 +15,7 @@
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef PARAMS
# if defined (__GNUC__) || __STDC__
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
#include <stddef.h>
/* Optional flags to influence mbswidth/mbsnwidth behavior. */
@@ -36,8 +30,8 @@
/* Returns the number of screen columns needed for STRING. */
#define mbswidth gnu_mbswidth /* avoid clash with UnixWare 7.1.1 function */
extern int mbswidth PARAMS ((const char *string, int flags));
extern int mbswidth (const char *string, int flags);
/* Returns the number of screen columns needed for the NBYTES bytes
starting at BUF. */
extern int mbsnwidth PARAMS ((const char *buf, size_t nbytes, int flags));
extern int mbsnwidth (const char *buf, size_t nbytes, int flags);

View File

@@ -1,5 +1,5 @@
/* Locale-specific memory comparison.
Copyright 1999 Free Software Foundation, Inc.
Copyright 1999, 2002 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,11 @@
# include <config.h>
#endif
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#include <sys/types.h>
#if HAVE_STRING_H
@@ -30,7 +35,8 @@
/* 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. */
restore their original contents before returning. Set errno to an
error number if there is an error, and to zero otherwise. */
int
memcoll (char *s1, size_t s1len, char *s2, size_t s2len)
{
@@ -41,7 +47,7 @@ memcoll (char *s1, size_t s1len, char *s2, size_t s2len)
s1[s1len++] = '\0';
s2[s2len++] = '\0';
while (! (diff = strcoll (s1, s2)))
while (! (errno = 0, (diff = strcoll (s1, s2)) || errno))
{
/* strcoll found no difference, but perhaps it was fooled by NUL
characters in the data. Work around this problem by advancing

View File

@@ -1,22 +1,22 @@
/* Convert a `struct tm' to a time_t value.
Copyright (C) 1993, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
Copyright (C) 1993-1999, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Eggert (eggert@twinsun.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
Lesser 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 Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
/* Define this to have a standalone program to test this implementation of
mktime. */
@@ -49,6 +49,7 @@
# include <stdio.h>
# if STDC_HEADERS
# include <stdlib.h>
# include <string.h>
# endif
/* Make it work even if the system's libc has its own mktime routine. */
# define mktime my_mktime
@@ -99,6 +100,9 @@
#endif
/* How many days come before each month (0-12). */
#ifndef _LIBC
static
#endif
const unsigned short int __mon_yday[2][13] =
{
/* Normal years. */
@@ -212,6 +216,9 @@ ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
Use *OFFSET to keep track of a guess at the offset of the result,
compared to what the result would be for UTC without leap seconds.
If *OFFSET's guess is correct, only one CONVERT call is needed. */
#ifndef _LIBC
static
#endif
time_t
__mktime_internal (struct tm *tp,
struct tm *(*convert) (const time_t *, struct tm *),
@@ -236,6 +243,9 @@ __mktime_internal (struct tm *tp,
int year_requested = tp->tm_year;
int isdst = tp->tm_isdst;
/* 1 if the previous probe was DST. */
int dst2;
/* Ensure that mon is in range, and set year accordingly. */
int mon_remainder = mon % 12;
int negative_mon_remainder = mon_remainder < 0;
@@ -254,6 +264,13 @@ __mktime_internal (struct tm *tp,
+ mday - 1);
int sec_requested = sec;
/* Only years after 1970 are defined.
If year is 69, it might still be representable due to
timezone differences. */
if (year < 69)
return -1;
#if LEAP_SECONDS_POSSIBLE
/* Handle out-of-range seconds specially,
since ydhms_tm_diff assumes every minute has 60 seconds. */
@@ -270,20 +287,24 @@ __mktime_internal (struct tm *tp,
tm.tm_yday = tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
t0 = ydhms_tm_diff (year, yday, hour, min, sec, &tm);
for (t = t1 = t2 = t0 + *offset;
for (t = t1 = t2 = t0 + *offset, dst2 = 0;
(dt = ydhms_tm_diff (year, yday, hour, min, sec,
ranged_convert (convert, &t, &tm)));
t1 = t2, t2 = t, t += dt)
t1 = t2, t2 = t, t += dt, dst2 = tm.tm_isdst != 0)
if (t == t1 && t != t2
&& (isdst < 0 || tm.tm_isdst < 0
|| (isdst != 0) != (tm.tm_isdst != 0)))
&& (tm.tm_isdst < 0
|| (isdst < 0
? dst2 <= (tm.tm_isdst != 0)
: (isdst != 0) != (tm.tm_isdst != 0))))
/* We can't possibly find a match, as we are oscillating
between two values. The requested time probably falls
within a spring-forward gap of size DT. Follow the common
practice in this case, which is to return a time that is DT
away from the requested time, preferring a time whose
tm_isdst differs from the requested value. In practice,
this is more useful than returning -1. */
tm_isdst differs from the requested value. (If no tm_isdst
was requested and only one of the two values has a nonzero
tm_isdst, prefer that value.) In practice, this is more
useful than returning -1. */
break;
else if (--remaining_probes == 0)
return -1;
@@ -357,6 +378,14 @@ __mktime_internal (struct tm *tp,
return -1;
}
if (year == 69)
{
/* If year was 69, need to check whether the time was representable
or not. */
if (t < 0 || t > 2 * 24 * 60 * 60)
return -1;
}
*tp = tm;
return t;
}
@@ -382,6 +411,11 @@ mktime (tp)
#ifdef weak_alias
weak_alias (mktime, timelocal)
#endif
#ifdef _LIBC
libc_hidden_def (mktime)
libc_hidden_weak (timelocal)
#endif
#if DEBUG

View File

@@ -194,18 +194,18 @@ mode_compile (const char *mode_string, unsigned int masked_ops)
&& S_IRGRP == RGRP && S_IWGRP == WGRP && S_IXGRP == XGRP
&& S_IROTH == ROTH && S_IWOTH == WOTH && S_IXOTH == XOTH)
? octal_value
: ((octal_value & SUID ? S_ISUID : 0)
| (octal_value & SGID ? S_ISGID : 0)
| (octal_value & SVTX ? S_ISVTX : 0)
| (octal_value & RUSR ? S_IRUSR : 0)
| (octal_value & WUSR ? S_IWUSR : 0)
| (octal_value & XUSR ? S_IXUSR : 0)
| (octal_value & RGRP ? S_IRGRP : 0)
| (octal_value & WGRP ? S_IWGRP : 0)
| (octal_value & XGRP ? S_IXGRP : 0)
| (octal_value & ROTH ? S_IROTH : 0)
| (octal_value & WOTH ? S_IWOTH : 0)
| (octal_value & XOTH ? S_IXOTH : 0)));
: (mode_t) ((octal_value & SUID ? S_ISUID : 0)
| (octal_value & SGID ? S_ISGID : 0)
| (octal_value & SVTX ? S_ISVTX : 0)
| (octal_value & RUSR ? S_IRUSR : 0)
| (octal_value & WUSR ? S_IWUSR : 0)
| (octal_value & XUSR ? S_IXUSR : 0)
| (octal_value & RGRP ? S_IRGRP : 0)
| (octal_value & WGRP ? S_IWGRP : 0)
| (octal_value & XGRP ? S_IXGRP : 0)
| (octal_value & ROTH ? S_IROTH : 0)
| (octal_value & WOTH ? S_IWOTH : 0)
| (octal_value & XOTH ? S_IXOTH : 0)));
p = make_node_op_equals (mode);
if (p == NULL)

View File

@@ -1,5 +1,5 @@
/* mountlist.c -- return a list of mounted filesystems
Copyright (C) 1991, 1992, 1997-2001 Free Software Foundation, Inc.
Copyright (C) 1991, 1992, 1997-2002 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
@@ -136,6 +136,7 @@ extern int errno;
# include <sys/mntent.h>
#endif
#undef MNT_IGNORE
#if defined MNTOPT_IGNORE && defined HAVE_HASMNTOPT
# define MNT_IGNORE(M) hasmntopt ((M), MNTOPT_IGNORE)
#else

View File

@@ -1,5 +1,5 @@
/* mountlist.h -- declarations for list of mounted filesystems
Copyright (C) 1991, 1992, 1998, 2000 Free Software Foundation, Inc.
Copyright (C) 1991, 1992, 1998, 2000-2002 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
@@ -38,13 +38,21 @@ struct mount_entry
struct mount_entry *read_filesystem_list PARAMS ((int need_fs_type));
#ifndef ME_DUMMY
# define ME_DUMMY(fs_name, fs_type) \
(!strcmp (fs_type, "auto") \
|| !strcmp (fs_type, "autofs") \
# define ME_DUMMY(Fs_name, Fs_type) \
(!strcmp (Fs_type, "autofs") \
/* for Irix 6.5 */ \
|| !strcmp (fs_type, "ignore"))
|| !strcmp (Fs_type, "ignore"))
#endif
#undef STREQ
#define STREQ(a, b) (strcmp ((a), (b)) == 0)
#ifndef ME_REMOTE
# define ME_REMOTE(fs_name, fs_type) (strchr (fs_name, ':') != 0)
/* A file system is `remote' if its Fs_name contains a `:'
or if (it is of type smbfs and its Fs_name starts with `//'). */
# define ME_REMOTE(Fs_name, Fs_type) \
(strchr ((Fs_name), ':') != 0 \
|| ((Fs_name)[0] == '/' \
&& (Fs_name)[1] == '/' \
&& STREQ (Fs_type, "smbfs")))
#endif

View File

@@ -1,5 +1,5 @@
/* Provide a replacement for the POSIX nanosleep function.
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
Copyright (C) 1999, 2000, 2002 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
@@ -43,7 +43,7 @@ extern int errno;
# define SIGCONT SIGTERM
#endif
#include "nanosleep.h"
#include "timespec.h"
static int suspended;
int first_call = 1;

View File

@@ -1,22 +1,18 @@
/* obstack.c - subroutines used implicitly by object stack macros
Copyright (C) 1988-1994,96,97,98,99,2000,2001 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.
Copyright (C) 1988-1994, 1996-1999, 2000-2002 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.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser 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 Lesser General Public
License along with the GNU C Library; 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>
@@ -458,16 +454,13 @@ _obstack_memory_used (h)
}
/* Define the error handler. */
# ifndef _
# if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC
# include <libintl.h>
# ifndef _
# define _(Str) gettext (Str)
# endif
# else
# define _(Str) (Str)
# endif
# ifdef _LIBC
# include <libintl.h>
# else
# include "gettext.h"
# endif
# define _(msgid) gettext (msgid)
# if defined _LIBC && defined USE_IN_LIBIO
# include <libio/iolibio.h>
# define fputs(s, f) _IO_fputs (s, f)

3
lib/offtostr.c Normal file
View File

@@ -0,0 +1,3 @@
#define inttostr offtostr
#define inttype off_t
#include "inttostr.c"

View File

@@ -1,5 +1,7 @@
/* path-concat.c -- concatenate two arbitrary pathnames
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 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
@@ -121,7 +123,7 @@ 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 ();
if (! res)
xalloc_die ();
return res;
}

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