Compare commits

...

1449 Commits
v4.5.3 ... v5.0

Author SHA1 Message Date
Jim Meyering
65d52b65f6 *** empty log message *** 2003-04-02 21:10:23 +00:00
Jim Meyering
bd10536e76 . 2003-04-02 21:09:04 +00:00
Jim Meyering
9d30201501 re-add it for 5.0 2003-04-02 21:08:54 +00:00
Jim Meyering
f84ed713c5 *** empty log message *** 2003-04-02 18:45:14 +00:00
Jim Meyering
8ab362dd32 *** empty log message *** 2003-04-02 18:42:12 +00:00
Jim Meyering
edba764d8f *** empty log message *** 2003-04-02 18:22:14 +00:00
Jim Meyering
702cda63ad *** empty log message *** 2003-04-02 18:19:56 +00:00
Jim Meyering
ba621e52e1 (false invocation): Note that false exits
unsuccessfully even with --help and --version.
2003-04-02 18:19:53 +00:00
Jim Meyering
0cb78db3f7 add lost log entry:
2002-07-20  Jim Meyering  <jim@meyering.net>

	  * Makefile.am (false.c): Convert only the final EXIT_SUCCESS
	  into EXIT_FAILURE.  Otherwise, false --help and false --version
	  would fail.
2003-04-02 18:14:04 +00:00
Jim Meyering
e78a54bc5a *** empty log message *** 2003-04-02 18:06:39 +00:00
Jim Meyering
55277831b2 (TESTS): Add false. 2003-04-02 18:06:15 +00:00
Jim Meyering
ec3a2e9ece . 2003-04-02 14:46:13 +00:00
Jim Meyering
78fc3d5f94 Redirect stderr to /dev/null for initial perl invocation. 2003-04-02 14:45:21 +00:00
Jim Meyering
7453dd8cba *** empty log message *** 2003-04-02 14:43:48 +00:00
Jim Meyering
0bb2129733 (jm_PERL): Use $am_missing_run, not undefined $missing_dir. 2003-04-02 14:43:41 +00:00
Jim Meyering
8c14c2f53f . 2003-04-02 10:20:58 +00:00
Jim Meyering
33561fa3e4 *** empty log message *** 2003-04-02 10:11:09 +00:00
Jim Meyering
722a49ea0c (TMPDIR): Make sure it's defined.
(my-distcheck): Build in $(TMPDIR), not `.'.
2003-04-02 10:10:58 +00:00
Jim Meyering
33ee26bc23 Bump version to 5.0. 2003-04-02 10:09:25 +00:00
Jim Meyering
a310f7be42 *** empty log message *** 2003-04-02 07:21:46 +00:00
Jim Meyering
206427cd38 (false.c): Change all occurrences of (EXIT_SUCCESS)' to (EXIT_FAILURE)'.
Reported by Paul Jarc,
2003-04-02 07:21:40 +00:00
Jim Meyering
c3c1ee6202 *** empty log message *** 2003-04-02 07:19:35 +00:00
Jim Meyering
9ec88c1b14 *** empty log message *** 2003-04-01 22:16:15 +00:00
Jim Meyering
5d5ceb37e8 (check-texinfo): Don't fail if perl is missing. 2003-04-01 22:16:10 +00:00
Jim Meyering
6f795227dc . 2003-03-31 19:29:25 +00:00
Jim Meyering
4d6314bb53 *** empty log message *** 2003-03-31 10:59:40 +00:00
Jim Meyering
681e6be8f0 *** empty log message *** 2003-03-30 17:48:04 +00:00
Jim Meyering
727168d377 *** empty log message *** 2003-03-30 17:47:38 +00:00
Jim Meyering
f0865ef40c Note the location of older NEWS files. 2003-03-30 17:47:26 +00:00
Jim Meyering
1d5528face *** empty log message *** 2003-03-30 15:02:59 +00:00
Jim Meyering
bb726ef20b (is_empty_dir): Don't let a failing closedir
clobber errno.  Spotted by Arnold Robbins.
2003-03-30 15:02:55 +00:00
Jim Meyering
d4bac80f4d *** empty log message *** 2003-03-30 14:04:19 +00:00
Jim Meyering
2ec96a5e83 Fix typo in comment. 2003-03-30 12:11:50 +00:00
Jim Meyering
6a1ff8af0c . 2003-03-30 08:41:39 +00:00
Jim Meyering
99ba62166a *** empty log message *** 2003-03-29 14:24:19 +00:00
Jim Meyering
030c740af1 Note to expect build problems for stat.c on Ultrix 4.3.
Note that there are some harmless test failures when running
`make check' as root on some systems.
2003-03-29 14:24:16 +00:00
Jim Meyering
44d5da2f7e *** empty log message *** 2003-03-28 15:24:04 +00:00
Jim Meyering
5e8abb3891 Skip this test if stty can't get window size.
This happens when connecting to sparc-solaris2.7 via ssh from within
emacs.  Reported by Karl Berry.
2003-03-28 15:23:58 +00:00
Jim Meyering
2a049a867f *** empty log message *** 2003-03-28 14:03:26 +00:00
Jim Meyering
cf0fa2d930 Use seq, not `yes' to generate dir name.
Otherwise, on systems (DJGPP) that emulate pipes using files,
this test would never complete, waiting for `yes' to terminate.
2003-03-28 14:03:17 +00:00
Jim Meyering
98458bfd36 Use seq, not `yes' to generate link target.
Otherwise, on systems (DJGPP) that emulate pipes using files,
this test would never complete, waiting for `yes' to terminate.
2003-03-28 14:02:58 +00:00
Jim Meyering
e93c93de4e generate 9000+ bytes, in case we ever go for 8KB of output 2003-03-28 12:55:04 +00:00
Jim Meyering
5165cd0f65 Use seq, not `yes' to generate 4KB of data.
Otherwise, on systems (DJGPP) that emulate pipes using files,
this test would never complete, waiting for `yes' to terminate.
2003-03-28 12:38:52 +00:00
Jim Meyering
2210b0a9de *** empty log message *** 2003-03-28 12:29:57 +00:00
Jim Meyering
e41f61881b *** empty log message *** 2003-03-28 10:28:52 +00:00
Jim Meyering
340ff6ec71 . 2003-03-28 10:23:28 +00:00
Jim Meyering
e8b4056312 *** empty log message *** 2003-03-28 09:44:17 +00:00
Jim Meyering
5e3a2ec4d0 *** empty log message *** 2003-03-28 09:38:54 +00:00
Jim Meyering
9864858156 *** empty log message *** 2003-03-28 09:32:21 +00:00
Jim Meyering
8bd4ff02af *** empty log message *** 2003-03-28 09:30:46 +00:00
Jim Meyering
248735bfc4 *** empty log message *** 2003-03-28 09:18:40 +00:00
Jim Meyering
642939ab6a *** empty log message *** 2003-03-28 07:35:50 +00:00
Jim Meyering
1040e672f1 add tests for Paul's change of Mar 24, 2003 2003-03-28 00:00:58 +00:00
Jim Meyering
b381b40c4b *** empty log message *** 2003-03-28 00:00:34 +00:00
Jim Meyering
85ea0a3546 *** empty log message *** 2003-03-27 23:59:26 +00:00
Jim Meyering
7c740a55c6 Remove Arnold Robbins' obsolete e-mail address
from `written by...' comment, at his request.
2003-03-27 22:40:37 +00:00
Jim Meyering
b05fe59a8b *** empty log message *** 2003-03-27 17:11:11 +00:00
Jim Meyering
41a6a3caff *** empty log message *** 2003-03-27 15:55:58 +00:00
Jim Meyering
bfaee25d1f (sort invocation): Describe sort's --stable (-s) option. 2003-03-27 15:55:55 +00:00
Jim Meyering
9ad2c98a28 *** empty log message *** 2003-03-27 14:59:37 +00:00
Jim Meyering
cb392d1022 Fix buffer overrun problem reported by TAKAI Kousuke, along
with some other POSIX incompatibilities.

(print_esc): Do not treat \x specially if
POSIXLY_CORRECT.  Avoid buffer overrun if the format ends
in backslash.  Treat incomplete escape sequences as strings
of characters, as POSIX requires.
(print_formatted): Allow multiple flags.  Avoid buffer overrun
if the format is incomplete.
2003-03-27 14:59:26 +00:00
Jim Meyering
a89b7d3e83 tiny spelling fix 2003-03-27 14:00:45 +00:00
Jim Meyering
7c09897fcb *** empty log message *** 2003-03-27 13:59:17 +00:00
Jim Meyering
fb9a0792d7 (printf invocation): Fix formatting bugs. 2003-03-27 13:59:13 +00:00
Jim Meyering
3988ba0038 *** empty log message *** 2003-03-27 10:55:18 +00:00
Jim Meyering
592a888d76 . 2003-03-27 09:50:29 +00:00
Jim Meyering
dd12de8477 . 2003-03-27 09:08:37 +00:00
Jim Meyering
8b4b8696ba *** empty log message *** 2003-03-26 18:47:55 +00:00
Jim Meyering
2cd4a7d3cd (struct cp_options): Add a comment. 2003-03-26 18:47:49 +00:00
Jim Meyering
8044f51ca3 Describe problem with 64-bit mode on HPUX 11.x,
with patch for /usr/include/inttypes.h.
2003-03-23 09:13:57 +00:00
Jim Meyering
585736ca42 Plan to add an autoconf test to work around the HPUX 11.x bug. 2003-03-23 09:13:36 +00:00
Jim Meyering
92b524013b D'oh. 2003-03-22 22:32:12 +00:00
Jim Meyering
27b3065db1 *** empty log message *** 2003-03-22 21:32:34 +00:00
Jim Meyering
1bf7ea8fd1 Don't include <sys/sysmacros.h>.
That is already done via system.h.  Otherwise, the multiple
inclusion would evoke redefinition warnings from Cray's /bin/cc
(Cray Standard C Version 4.0.3  (057126) Mar 22 2003  22:02:28).
(human_fstype): Factor some directives `up', out of this function.
Cast away `const' to avoid error from Cray's /bin/cc.
2003-03-22 21:32:22 +00:00
Jim Meyering
e08b6d5fe7 *** empty log message *** 2003-03-22 19:42:50 +00:00
Jim Meyering
06fc494da3 (widen): Cast alloca return value to proper type. 2003-03-22 19:42:42 +00:00
Jim Meyering
206ea8eee6 *** empty log message *** 2003-03-22 19:39:48 +00:00
Jim Meyering
d777b396b7 (NEW_PATTERN): Cast alloca to proper type.
Otherwise, it wouldn't compile with at least /bin/cc on
ymp-cray-unicos9.0.2.X.
Combine two mostly-identical uses of alloca into one.
2003-03-22 19:39:40 +00:00
Jim Meyering
fe2e2b71ea *** empty log message *** 2003-03-22 19:38:00 +00:00
Jim Meyering
ed9f04cf64 *** empty log message *** 2003-03-21 15:26:21 +00:00
Jim Meyering
944ef7a2c1 *** empty log message *** 2003-03-20 17:43:16 +00:00
Jim Meyering
780ccddf5c (print_changelog_deltas): Ensure that a newline precedes each row of `*'s. 2003-03-20 17:43:12 +00:00
Jim Meyering
9f4a054923 bump to 4.5.12 -- maybe to 5.0, later 2003-03-20 16:46:53 +00:00
Jim Meyering
c46b6369a9 . 2003-03-20 15:10:45 +00:00
Jim Meyering
216808be38 . 2003-03-20 14:56:19 +00:00
Jim Meyering
ffde892348 fix typo 2003-03-20 14:55:33 +00:00
Jim Meyering
b1b0860f20 . 2003-03-20 14:43:03 +00:00
Jim Meyering
b912c10f7a *** empty log message *** 2003-03-20 13:52:03 +00:00
Jim Meyering
9e4472733b *** empty log message *** 2003-03-20 13:49:42 +00:00
Jim Meyering
0568c4e2d4 (valid_format): Also accept ' and '' as valid
format flag characters.
Do not require that a field width be specified.
Do not fail when given a field width of `0'.
2003-03-20 13:49:39 +00:00
Jim Meyering
8fe825b787 add two more, using space flag character 2003-03-20 13:47:21 +00:00
Jim Meyering
991e476b56 . 2003-03-20 10:11:45 +00:00
Jim Meyering
8d65951aea *** empty log message *** 2003-03-19 23:17:15 +00:00
Jim Meyering
bb6e39dc48 (all-local): Append $(EXEEXT) to use of `su'
(install-root): Likewise.
(install-exec-local): Likewise.
2003-03-19 23:17:12 +00:00
Jim Meyering
cf1a86162e *** empty log message *** 2003-03-19 23:01:11 +00:00
Jim Meyering
0c7a413e4e *** empty log message *** 2003-03-19 23:00:35 +00:00
Jim Meyering
ca85f1f994 (.x.1): Use $(LN_S) instead of 'ln -s',
because the DJGPP 2.03 port of 'ln -s' doesn't work.
Include $(EXEEXT) in program names.
Since $(LN_S) may degenerate to `cp -p', be careful
to invoke it from the destination directory.
Mostly from Richard Dawe.
2003-03-19 23:00:25 +00:00
Jim Meyering
3d8719b298 Use AC_PROG_LN_S. 2003-03-19 22:50:52 +00:00
Jim Meyering
d23db66508 *** empty log message *** 2003-03-19 19:38:34 +00:00
Jim Meyering
cd02bb1ec7 (AC_FUNC_FTW): Require AC_HEADER_STAT. 2003-03-19 19:38:30 +00:00
Jim Meyering
51d522533a *** empty log message *** 2003-03-19 19:33:18 +00:00
Jim Meyering
c8e3afa388 DJGPP doesn't have S_ISLNK, so provide a replacement.
(S_IFMT): Define, if necessary.
[STAT_MACROS_BROKEN]: Undefine S_ISLNK.
(S_ISLNK): Define, if necessary.
2003-03-19 19:33:12 +00:00
Jim Meyering
04ac96ed14 *** empty log message *** 2003-03-19 09:11:59 +00:00
Jim Meyering
4554e2245d *** empty log message *** 2003-03-19 09:10:42 +00:00
Jim Meyering
1564be8f74 . 2003-03-19 09:10:07 +00:00
Jim Meyering
d90ad399b7 *** empty log message *** 2003-03-19 09:09:41 +00:00
Jim Meyering
2c07dcd1e8 Include $(EXEEXT) in OPTIONAL_BIN_PROGS'
program names, since automake only adds $(EXEEXT) to programs
in its *_PROGRAMS.  From Rich Dawe.
2003-03-19 09:06:40 +00:00
Jim Meyering
903c5ac7c9 . 2003-03-19 09:04:39 +00:00
Jim Meyering
a54791dc18 (jm_MACROS): Include $(EXEEXT) in DF_PROG's program
name, since automake only adds $(EXEEXT) to programs in its *_PROGRAMS.
Arrange to compile the corresponding stub function if fchdir is missing.
2003-03-19 09:03:40 +00:00
Jim Meyering
82fb517834 New file: trivial stub for fchdir.
From Rich Dawe.
2003-03-19 09:00:34 +00:00
Jim Meyering
620d2e40cc *** empty log message *** 2003-03-19 08:15:28 +00:00
Jim Meyering
b01894ce34 Unset CDPATH. Otherwise, having the
CDPATH shell variable set could cause this test to fail.
2003-03-19 08:15:14 +00:00
Jim Meyering
7c76b720e8 *** empty log message *** 2003-03-19 08:14:04 +00:00
Jim Meyering
0cc6e2962d Remove uses of `PARAMS'. 2003-03-19 08:14:02 +00:00
Jim Meyering
37e0f7ac18 (PARAMS): Remove definition and uses. 2003-03-19 08:12:47 +00:00
Jim Meyering
79feee4de5 *** empty log message *** 2003-03-19 08:11:10 +00:00
Jim Meyering
60e4df7191 Don't define __const.
(fnmatch): Use const, not __const in prototype.
2003-03-19 08:10:47 +00:00
Jim Meyering
c8dd553971 revert last change 2003-03-19 08:09:20 +00:00
Jim Meyering
e5f3393f3a *** empty log message *** 2003-03-19 00:00:04 +00:00
Jim Meyering
0a72ec6c46 . 2003-03-18 19:16:34 +00:00
Jim Meyering
66937ee56b *** empty log message *** 2003-03-18 19:12:57 +00:00
Jim Meyering
32a06622de *** empty log message *** 2003-03-18 19:11:28 +00:00
Jim Meyering
97f17c1705 Remove lib/c-stack.c. 2003-03-18 19:11:25 +00:00
Jim Meyering
1fe585c5df . 2003-03-18 17:48:02 +00:00
Jim Meyering
081b3c96ef (read_filesystem_list) [MOUNTED_VMOUNT]: Detect any
error from mntctl.
Use mntctl's return value to drive the entry-processing loop, since
we can't rely on the value of the vmt_length member in the last
entry.  On some systems doing so could result in an infinite loop.
Based in part on a patch from Mike Jetzer.
2003-03-18 17:47:06 +00:00
Jim Meyering
f36cebb7df *** empty log message *** 2003-03-18 17:14:42 +00:00
Jim Meyering
4e3aebb74a (jm_LIST_MOUNTED_FILESYSTEMS): Move the MOUNTED_VMOUNT
test to precede the MOUNTED_GETMNTENT1 tests, since otherwise, AIX 5.1
systems would end up using the latter.  MOUNTED_GETMNTENT1 support
is inadequate on such systems: 1) detecting whether a file system
is remote doesn't work  2) the MOUNTED_VMOUNT code reports the
HOSTNAME:/MOUNT_POINT, while the MOUNTED_GETMNTENT1 code reports
merely /MOUNT_POINT.  Reported by Mike Jetzer.
2003-03-18 17:14:31 +00:00
Jim Meyering
b9c866ac1a undo mountlist.h change 2003-03-18 17:04:18 +00:00
Jim Meyering
5f4059d425 undo last change 2003-03-18 17:04:04 +00:00
Jim Meyering
8be6d87354 . 2003-03-18 15:40:34 +00:00
Jim Meyering
5f3bedb89a (excluded_filename): Define and use typedef to
avoid type mismatch in conditional expression.
2003-03-18 15:40:13 +00:00
Jim Meyering
336a1e2dad *** empty log message *** 2003-03-18 15:39:58 +00:00
Jim Meyering
dc872b1ebe (ME_REMOTE): Recognize as remote any file system
that has an Fs_type with the `nfs' (any case) prefix.
This is necessary at least for AIX 5.1 when it uses the
MOUNTED_GETMNTENT1 code.  Reported by Mike Jetzer.
2003-03-18 15:39:45 +00:00
Jim Meyering
3c13c953a8 . 2003-03-18 08:53:59 +00:00
Jim Meyering
837fc9bfa5 (quote_n): Fix typo in comment. 2003-03-18 08:49:12 +00:00
Jim Meyering
e94edefba1 *** empty log message *** 2003-03-18 08:44:07 +00:00
Jim Meyering
ba84092326 [struct Word] (paren, period, punct, final): Change the
type of each member from bool <MEMBER>:1 to unsigned int <MEMBER>:1.
AIX 5.1's xlc could not compile the former.
2003-03-18 08:43:57 +00:00
Jim Meyering
8f33b715b1 *** empty log message *** 2003-03-18 08:27:50 +00:00
Jim Meyering
b596a7b153 *** empty log message *** 2003-03-17 21:50:33 +00:00
Jim Meyering
01b5986293 (raise): Rename from rpl_raise.
Without that change, systems lacking raise (SunOS4) would not be
able to link programs using raise.  Reported by Volker Borchert.
2003-03-17 21:50:30 +00:00
Jim Meyering
d06c77002c *** empty log message *** 2003-03-17 21:32:42 +00:00
Jim Meyering
be1c943e9a *** empty log message *** 2003-03-17 21:03:17 +00:00
Jim Meyering
e01be0a128 (FTW_STAT): Rename from `STAT', to avoid conflict
with STAT definition from <sys/dir.h> on AIX 5.1.
2003-03-17 21:00:48 +00:00
Jim Meyering
67b77b54e5 *** empty log message *** 2003-03-17 19:47:45 +00:00
Jim Meyering
ad51076699 *** empty log message *** 2003-03-17 19:46:20 +00:00
Jim Meyering
947851c136 *** empty log message *** 2003-03-17 19:28:35 +00:00
Jim Meyering
70c7e4f3e8 (UTILS_FUNC_DIRFD): Test the cache variable, not one
that is guaranteed to be `no'.  Use `no_such_member' to indicate
that condition, rather than `-1' which is slightly misleading.
Change the name of the cache variable to have the gl_ prefix.
Prompted by a patch from Richard Dawe for DJGPP.
2003-03-17 19:28:31 +00:00
Jim Meyering
49475d0eea *** empty log message *** 2003-03-17 19:21:33 +00:00
Jim Meyering
bb0dd792a3 (readlink): Put function type on its own line. 2003-03-17 19:21:28 +00:00
Jim Meyering
f3ad658b98 (lstat): Put function type on its own line. 2003-03-17 19:21:13 +00:00
Jim Meyering
f9cfbe069c (fchown): Put function type on its own line. 2003-03-17 19:21:01 +00:00
Jim Meyering
2de612e2d0 *** empty log message *** 2003-03-16 10:16:28 +00:00
Jim Meyering
5151ce79b2 (rm): Put two local variables in static storage,
so they can't be clobbered by the potential longjmp.
2003-03-16 10:16:14 +00:00
Jim Meyering
a32544a77f . 2003-03-15 10:41:10 +00:00
Jim Meyering
3b424797bc . 2003-03-15 10:40:43 +00:00
Jim Meyering
bc72fc72a1 *** empty log message *** 2003-03-15 10:20:18 +00:00
Jim Meyering
4dae9f5284 *** empty log message *** 2003-03-15 10:18:28 +00:00
Jim Meyering
ba8161db2b (gnu_rel_host): Define in terms of $(RELEASE_TYPE) instead. 2003-03-15 10:18:21 +00:00
Jim Meyering
cb8af7fe26 remove unnecessary trailing backslash 2003-03-15 10:13:05 +00:00
Jim Meyering
58153c43df (gnu_rel_host): Fix code to match the comment
so that a version number with a two-digit component can still count
as an alpha release.
2003-03-15 10:11:04 +00:00
Jim Meyering
fbf699624a *** empty log message *** 2003-03-14 20:45:07 +00:00
Jim Meyering
2da403eb07 (jm_PREREQ): Also forbid the gl_[A-Z] prefix.
Don't require jm_PREREQ_C_STACK.
2003-03-14 20:45:03 +00:00
Jim Meyering
261df8b8d6 *** empty log message *** 2003-03-14 20:33:54 +00:00
Jim Meyering
518c982d88 (libfetish_a_SOURCES): Remove unused files: c-stack.c, c-stack.h. 2003-03-14 20:33:44 +00:00
Jim Meyering
b9fa45f2b0 remove ansi2knr junk 2003-03-14 20:23:12 +00:00
Jim Meyering
3a87bec119 *** empty log message *** 2003-03-14 20:15:32 +00:00
Jim Meyering
a37bc433f1 *** empty log message *** 2003-03-14 20:14:00 +00:00
Jim Meyering
4968b1607c (AUTOMAKE_OPTIONS): Remove definition --
before it pointed to ../src/ansi2knr.
2003-03-14 20:11:41 +00:00
Jim Meyering
711674a112 *** empty log message *** 2003-03-14 20:10:33 +00:00
Jim Meyering
f406bff3f9 . 2003-03-14 20:10:15 +00:00
Jim Meyering
82faf15e5a *** empty log message *** 2003-03-14 15:40:40 +00:00
Jim Meyering
daab2ee487 (prev_version_file): Don't use ?= for this particular
assignment, since it causes trouble with old versions of GNU make
(e.g. 3.76.1).  The other uses of `?=' are inoffensive.  Details here.
http://mail.gnu.org/archive/html/bug-coreutils/2003-03/msg00028.html
Patch from Alexandre Duret-Lutz.
2003-03-14 15:40:34 +00:00
Jim Meyering
a6fe60683e *** empty log message *** 2003-03-14 13:56:33 +00:00
Jim Meyering
52ebb61da8 . 2003-03-14 13:54:36 +00:00
Jim Meyering
f69ed27d62 . 2003-03-14 13:16:21 +00:00
Jim Meyering
acf7bd48ce *** empty log message *** 2003-03-14 12:52:19 +00:00
Jim Meyering
3cb04081fb Include "xalloc.h". 2003-03-14 12:52:13 +00:00
Jim Meyering
766de40ee7 *** empty log message *** 2003-03-14 09:54:48 +00:00
Jim Meyering
dfd085aa0d Merge changes from Bison.
(__INT_TO_PTR) [__STDC__]: Cast result to
(void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
when compiling Bison 1.875's `bitset bset = obstack_alloc
(bobstack, bytes);'.  Problem reported by Nelson H. F. Beebe.
2003-03-14 09:54:39 +00:00
Jim Meyering
ee3bda46f8 . 2003-03-14 09:50:49 +00:00
Jim Meyering
a85b65745b [from gnulib]
(m4_quote): New macro.
(AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
Quote AC_FOREACH variable-expansions properly.
2003-03-14 09:50:43 +00:00
Jim Meyering
61d848b5c4 bump to 4.5.11 2003-03-14 09:45:37 +00:00
Jim Meyering
b1064596b4 (main): Label the compressed source URLs. 2003-03-14 09:44:59 +00:00
Jim Meyering
5b50817cd5 . 2003-03-14 08:37:36 +00:00
Jim Meyering
e50a5bac4a . 2003-03-14 08:13:06 +00:00
Jim Meyering
e81983cdf2 *** empty log message *** 2003-03-14 07:56:15 +00:00
Jim Meyering
e4a76f1076 Relax the test for the `local'ness of a file system,
so that now it works also for tmpfs.
2003-03-14 07:56:09 +00:00
Jim Meyering
b38d8f4a44 Transform output from first du, so that this
test doesn't fail on file systems like tmpfs that order directory
entries differently.
2003-03-14 06:54:37 +00:00
Jim Meyering
4f6b47eb0b sort du output, in case f1 and f2 are listed in a different order 2003-03-14 06:50:28 +00:00
Jim Meyering
37fce4800e reformat a little 2003-03-14 06:48:13 +00:00
Jim Meyering
971302bb61 . 2003-03-13 21:25:48 +00:00
Jim Meyering
5cd9c80dff *** empty log message *** 2003-03-13 21:06:06 +00:00
Jim Meyering
689922fc01 Work around what appears to be an NFS failure that
would make this test fail on some systems.
2003-03-13 21:05:59 +00:00
Jim Meyering
419e214799 . 2003-03-13 13:16:15 +00:00
Jim Meyering
4949f06ed4 *** empty log message *** 2003-03-13 13:16:04 +00:00
Jim Meyering
0a604bf564 tweak wording 2003-03-13 13:15:56 +00:00
Jim Meyering
814ec278fc (shred invocation): Mention that --exact
is now the default for non-regular files.
2003-03-13 13:14:40 +00:00
Jim Meyering
0ac35ac0b7 *** empty log message *** 2003-03-13 13:08:19 +00:00
Jim Meyering
2e836b19be *** empty log message *** 2003-03-13 13:07:15 +00:00
Jim Meyering
30593686a8 . 2003-03-13 13:07:11 +00:00
Jim Meyering
7bf2a1ab85 *** empty log message *** 2003-03-13 13:06:50 +00:00
Jim Meyering
4f5960c9fb (jm_MACROS): Arrange to compile the corresponding stub
function if any of the following is missing: fchown, lstat, readlink.
From Richard Dawe.
2003-03-13 13:06:44 +00:00
Jim Meyering
2506805702 . 2003-03-12 23:14:15 +00:00
Jim Meyering
0baa107ac9 *** empty log message *** 2003-03-12 09:47:23 +00:00
Jim Meyering
95ca880e12 *** empty log message *** 2003-03-11 22:54:36 +00:00
Jim Meyering
97002b08a8 Make the test file exactly 4k bytes long. 2003-03-11 22:20:54 +00:00
Jim Meyering
73408e50af *** empty log message *** 2003-03-11 22:12:42 +00:00
Jim Meyering
28a2492860 *** empty log message *** 2003-03-11 22:12:38 +00:00
Jim Meyering
a988982b19 (longopts): Don't hard-code `2' here.
Instead, just specify `&verbose', and ...
(main): ... remove the `case 2:' block for --verbose.
2003-03-11 20:48:36 +00:00
Jim Meyering
872d765633 *** empty log message *** 2003-03-11 20:34:29 +00:00
Jim Meyering
89c8181527 *** empty log message *** 2003-03-11 20:31:53 +00:00
Jim Meyering
257b85ca8e Don't segfault for a negative field width or precision in format string.
(UNSPECIFIED): Define.
(print_direc): Use the special value, UNSPECIFIED, to indicate
that field_width or precision has not been specified.
(print_formatted): Fail if field_width or precision is the
special value, UNSPECIFIED.
2003-03-11 20:25:18 +00:00
Jim Meyering
09ad938a09 *** empty log message *** 2003-03-11 20:23:38 +00:00
Jim Meyering
4a3dc4c76c Make the test larger than 64 bytes, so that we don't
immediately disqualify file systems (e.g., NetApp) on which smaller
files take up zero disk blocks.
2003-03-11 20:23:31 +00:00
Jim Meyering
3850874bf0 *** empty log message *** 2003-03-11 17:08:50 +00:00
Jim Meyering
a0528d8bf2 *** empty log message *** 2003-03-11 10:08:21 +00:00
Jim Meyering
d7103af2bc Include <wchar.h>. Needed for UnixWare 7.1.1.
Reported by John Hughes, see
http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html
2003-03-11 10:08:15 +00:00
Jim Meyering
0f48190f5d *** empty log message *** 2003-03-11 10:07:21 +00:00
Jim Meyering
c7cb614727 (EXIT_FAILURE): Define if the system doesn't.
Reported by Bruce Becker; see:
http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00017.html
2003-03-11 10:07:17 +00:00
Jim Meyering
2cfe7f19eb *** empty log message *** 2003-03-10 18:27:27 +00:00
Jim Meyering
1a91a03bd0 *** empty log message *** 2003-03-10 18:26:16 +00:00
Jim Meyering
f089969ec9 Add a test for the above-fixed bug. 2003-03-10 12:24:59 +00:00
Jim Meyering
b44a6e8565 (INT_MIN): Define, if necessary. 2003-03-10 10:41:24 +00:00
Jim Meyering
cbc5ba67a5 *** empty log message *** 2003-03-10 10:39:31 +00:00
Jim Meyering
f380405cb6 . 2003-03-10 07:53:39 +00:00
Jim Meyering
3d23ede4eb Include "save-cwd.h".
(ftw_startup): Avoid use of getcwd, if possible.
Instead, use fopen/fchdir via save_cwd/restore_cwd.
2003-03-09 09:22:55 +00:00
Jim Meyering
ff47d1602f *** empty log message *** 2003-03-09 09:14:25 +00:00
Jim Meyering
79cb935030 fix typo in comment 2003-03-09 07:56:29 +00:00
Jim Meyering
b834bcfc65 *** empty log message *** 2003-03-09 07:54:43 +00:00
Jim Meyering
ac6d593d59 *** empty log message *** 2003-03-09 07:14:28 +00:00
Jim Meyering
25697ff274 (AD_stack_pop): Cast sizeof... to int before changing its sign.
This avoids a warning from gcc on 64-bit systems.
(pop_dir): Reverse order of sign change and cast, to be consistent
with the above.
2003-03-09 07:14:19 +00:00
Jim Meyering
5a7ffbd8f9 *** empty log message *** 2003-03-08 21:22:40 +00:00
Jim Meyering
cf79b808df (evar-check): Check for POSIXLY_CORRECT not as a
shell variable, but only in the environment.  With /bin/sh->bash, the
shell variable is set to `y', and that would cause a spurious warning.
2003-03-08 21:22:25 +00:00
Jim Meyering
79d95ae843 *** empty log message *** 2003-03-08 21:04:11 +00:00
Jim Meyering
183fe2386d *** empty log message *** 2003-03-08 19:02:46 +00:00
Jim Meyering
30ccf7222a Require at least version 1.11 of Expect.pm.
Old versions of Expect.pm (e.g., 1.07) lack the log_user function.
Patch by Bob Proulx.
2003-03-08 19:02:38 +00:00
Jim Meyering
34a6d6e2dd Before, when using shred on a device, one had to specify --exact,
or be careful to choose a size that would not be rounded up and
exceed the maximum value;  that could result in a failure of
the final write.

(do_wipefd): --exact is now the default for non-regular
files.  Suggestion from Ben Elliston.
(usage): Say it.
2003-03-08 16:57:55 +00:00
Jim Meyering
4dffef72e6 *** empty log message *** 2003-03-08 16:55:50 +00:00
Jim Meyering
9d3548a908 (check-root): Remove touch/fifo.
It doesn't appear to have to be run as root.
2003-03-08 16:55:42 +00:00
Jim Meyering
c440afd9f8 *** empty log message *** 2003-03-08 16:44:04 +00:00
Jim Meyering
e02625cb79 *** empty log message *** 2003-03-08 16:43:52 +00:00
Jim Meyering
c86bae2a59 *** empty log message *** 2003-03-08 16:43:48 +00:00
Jim Meyering
6df9b9041d Rather than simply using the first non-root
username, make sure that the selected user name has a usable shell.
2003-03-08 16:43:43 +00:00
Jim Meyering
777ac50d21 *** empty log message *** 2003-03-08 15:47:57 +00:00
Jim Meyering
b01a17f9b4 *** empty log message *** 2003-03-08 15:32:23 +00:00
Jim Meyering
f31336c193 Also check for the log_user method, to avoid
spurious failure when using an old version of Expect.pm (e.g., 1.07).
Reported by Bob Proulx.
2003-03-08 15:32:17 +00:00
Jim Meyering
cb1dcb5818 . 2003-03-08 14:32:57 +00:00
Jim Meyering
3e9e352991 Remove now-unused #include and #define directives. 2003-03-08 14:30:28 +00:00
Jim Meyering
79065539dd (check-misc): Check for use of `defined' in #define directives.
Change to $(srcdir) before running grep.
2003-03-08 14:30:14 +00:00
Jim Meyering
eff5758aaf Don't use `defined' in a #define directive. 2003-03-08 14:26:48 +00:00
Jim Meyering
ec655b669f *** empty log message *** 2003-03-08 10:28:41 +00:00
Jim Meyering
9d7d671604 . 2003-03-08 10:27:19 +00:00
Jim Meyering
5abd02fef6 *** empty log message *** 2003-03-08 10:26:32 +00:00
Jim Meyering
e4c02ba583 *** empty log message *** 2003-03-08 10:25:25 +00:00
Jim Meyering
a3a6a035d1 . 2003-03-08 10:24:00 +00:00
Jim Meyering
04c9a5c2e4 Ensure that hard links _are_ listed twice when using --count-links. 2003-03-08 10:23:45 +00:00
Jim Meyering
66bada849b (process_file): If a file's size is not being counted
e.g., because it's a hard link to a file we've already counted,
then don't print a line for it.
2003-03-08 10:21:19 +00:00
Jim Meyering
07f4993bfb *** empty log message *** 2003-03-08 10:18:26 +00:00
Jim Meyering
6c1a78b5d6 `du -S' didn't work
Revert most of the `reorganization' change of 2003-02-20,
and make the two-array approach work.
2003-03-08 10:18:19 +00:00
Jim Meyering
8f683f9314 *** empty log message *** 2003-03-08 10:14:33 +00:00
Jim Meyering
0da302c05a *** empty log message *** 2003-03-08 10:10:59 +00:00
Jim Meyering
12a14ef034 *** empty log message *** 2003-03-08 10:10:09 +00:00
Jim Meyering
72dc1cec94 (TESTS): Add hard-link. 2003-03-08 09:56:14 +00:00
Jim Meyering
d53c43f440 *** empty log message *** 2003-03-08 09:50:12 +00:00
Jim Meyering
3ba019fec5 . 2003-03-08 09:48:27 +00:00
Jim Meyering
5fb608bc08 Correct/add tests for the above fix.
Set LC_ALL, etc, now that we use sort.
Check the block/size of a small file, too.
Correct expected results for simple dir1/dir2/file case.
Add another test of du -S.
2003-03-08 08:39:07 +00:00
Jim Meyering
e20876e2ca . 2003-03-07 23:48:40 +00:00
Jim Meyering
7c8f779ea4 remove mmap-stack.c 2003-03-07 23:43:09 +00:00
Jim Meyering
a36e686371 *** empty log message *** 2003-03-07 23:42:35 +00:00
Jim Meyering
684f41944e . 2003-03-07 23:37:10 +00:00
Jim Meyering
6d842c09f0 *** empty log message *** 2003-03-07 23:36:49 +00:00
Jim Meyering
c647d81837 *** empty log message *** 2003-03-07 23:26:35 +00:00
Jim Meyering
a1134e1eb6 (print_it): Use putchar, not fputs, to output a single character. 2003-03-07 23:24:53 +00:00
Jim Meyering
b24b4b4d59 (dired_dump_obstack): Use putchar, not fputs, to output a single character. 2003-03-07 23:22:54 +00:00
Jim Meyering
a98f67970e (usage): Use putchar, not fputs, to output a single character. 2003-03-07 23:22:14 +00:00
Jim Meyering
aec039a4c1 (output_one_tex_line, output_one_dumb_line):
Use putchar, not fputs, to output a single character.
2003-03-07 23:21:45 +00:00
Jim Meyering
792f321a7a *** empty log message *** 2003-03-07 20:01:46 +00:00
Jim Meyering
2b1a18e682 Remove everything associated with mmap-stack.c.
This reverts the two changes of 2003-02-21.
2003-03-07 20:01:35 +00:00
Jim Meyering
07434548fa *** empty log message *** 2003-03-07 19:53:59 +00:00
Jim Meyering
3450fcb4f5 Don't require AC_SYS_MMAP_STACK. 2003-03-07 19:52:19 +00:00
Jim Meyering
f7fcb90822 (AC_LANG_SOURCE(C)): New macro. 2003-03-07 19:52:03 +00:00
Jim Meyering
cb79312b0c . 2003-03-07 19:51:00 +00:00
Jim Meyering
b29dc802f7 (libfetish_a_SOURCES): Remove mmap-stack.h. 2003-03-07 19:49:56 +00:00
Jim Meyering
300807cd2f . 2003-03-07 19:49:20 +00:00
Jim Meyering
bce28b3573 *** empty log message *** 2003-03-07 19:47:24 +00:00
Jim Meyering
6d1bd5a97d Remove everything associated with mmap-stack.c.
This reverts the change of 2003-02-19.
2003-03-07 19:47:18 +00:00
Jim Meyering
9631f28a53 *** empty log message *** 2003-03-07 13:01:02 +00:00
Jim Meyering
3d3879d118 Test the -S option using a hierarchy containing files, too,
not just directories.
2003-03-07 12:59:30 +00:00
Jim Meyering
390a0fb48d *** empty log message *** 2003-03-07 10:16:50 +00:00
Jim Meyering
5635524114 #undef getcwd only after *all* included header files.
Declare getcwd unconditionally.
2003-03-07 10:13:55 +00:00
Jim Meyering
5fb9e06a4a *** empty log message *** 2003-03-07 09:57:33 +00:00
Jim Meyering
4c2704b8cd (GL_FUNC_GETCWD_PATH_MAX): Check for declaration of getcwd. 2003-03-07 09:57:29 +00:00
Jim Meyering
80ddb4bed4 *** empty log message *** 2003-03-07 09:52:34 +00:00
Jim Meyering
32ae6e8565 (same_name): Remove unnecessary inclusion of config.h.
It also happened to lead to infinite recursion in getcwd.c.
(PARAMS): Remove definition and use.
2003-03-07 09:52:28 +00:00
Jim Meyering
473d0baa73 undo last change 2003-03-06 22:24:06 +00:00
Jim Meyering
b4e7a90ce6 #undef getcwd before including system headers.
This avoid a build failure on IRIX 6.5.  Reported by Nelson Beebe.
2003-03-06 22:23:26 +00:00
Jim Meyering
08e9a37430 *** empty log message *** 2003-03-06 22:04:54 +00:00
Jim Meyering
a63a083879 [!HAVE_DECL_GETCWD]: Declare getcwd. 2003-03-06 22:04:45 +00:00
Jim Meyering
a319b6a626 *** empty log message *** 2003-03-06 22:04:23 +00:00
Jim Meyering
9f0f14d1d6 (GL_FUNC_GETCWD_PATH_MAX): Check for declaration of getcwd. 2003-03-06 22:04:19 +00:00
Jim Meyering
c71e43ce1d *** empty log message *** 2003-03-06 14:14:22 +00:00
Jim Meyering
b70ecc4de1 Fix a bug that causes du to dump core on 64-bit systems.
(ftw_startup): Declare `func' parameter to be of type
NFTW_FUNC_T, not void* which may be smaller on 64-bit systems.
Remove now-unnecessary cast.
(FTW_NAME): Cast func argument to type `NFTW_FUNC_T'.
2003-03-06 14:14:16 +00:00
Jim Meyering
ce8758e12c *** empty log message *** 2003-03-06 07:44:00 +00:00
Jim Meyering
00709b8fa2 Unset CDPATH. Otherwise, having the
CDPATH shell variable set could cause this test to fail.
2003-03-06 07:43:45 +00:00
Jim Meyering
4e38ca53ee bump to 4.5.10 2003-03-05 20:46:39 +00:00
Jim Meyering
f4991fd3ca . 2003-03-05 18:05:04 +00:00
Jim Meyering
a7135a8d95 . 2003-03-05 17:50:06 +00:00
Jim Meyering
57bdc54b21 (print_esc): Remove pointless comparison of unsigned
integer with zero, to avoid a warning from Intel's ecc.
2003-03-05 17:44:08 +00:00
Jim Meyering
8e111ca309 . 2003-03-05 13:12:02 +00:00
Jim Meyering
0b41ba4064 *** empty log message *** 2003-03-05 11:06:41 +00:00
Jim Meyering
09fb1e2d6e (ARRAY_SIZE): Define it. 2003-03-05 11:06:18 +00:00
Jim Meyering
5bc14b90c6 add comment 2003-03-05 10:48:41 +00:00
Jim Meyering
9bd9db554a fix logic error 2003-03-05 10:45:38 +00:00
Jim Meyering
4e8dbeb934 #undef mkdir to avoid link errors on
i386-unknown-netbsdelf1.6
2003-03-05 10:29:38 +00:00
Jim Meyering
3179bd60e7 . 2003-03-05 09:25:26 +00:00
Jim Meyering
3369a3e58c . 2003-03-05 09:05:38 +00:00
Jim Meyering
e50251a361 more variable renaming: use gl_ prefix 2003-03-05 09:05:08 +00:00
Jim Meyering
9e4307423e . 2003-03-05 09:04:43 +00:00
Jim Meyering
f5f28cd4a8 *** empty log message *** 2003-03-05 09:03:58 +00:00
Jim Meyering
ef2d0f022d *** empty log message *** 2003-03-05 09:02:24 +00:00
Jim Meyering
c3410e9d59 *** empty log message *** 2003-03-05 08:58:20 +00:00
Jim Meyering
710f4eabd6 *** empty log message *** 2003-03-05 08:57:50 +00:00
Jim Meyering
cba636cfe0 rename 2003-03-05 08:36:35 +00:00
Jim Meyering
66d86350c4 name changes
add comments
fix logic
2003-03-05 08:35:36 +00:00
Jim Meyering
51a43a8c56 rename to GL_FUNC_GETCWD_PATH_MAX 2003-03-05 08:33:24 +00:00
Jim Meyering
60660ec79c comments 2003-03-05 08:19:10 +00:00
Jim Meyering
fad0f0f131 *** empty log message *** 2003-03-05 08:13:34 +00:00
Jim Meyering
a82b32cb9a . 2003-03-05 08:08:35 +00:00
Jim Meyering
b15bf36cee *** empty log message *** 2003-03-05 07:43:36 +00:00
Jim Meyering
82fba3787f use better sed expressions 2003-03-05 07:38:10 +00:00
Jim Meyering
c2c397d96f . 2003-03-05 07:25:57 +00:00
Jim Meyering
998e0827e4 comments 2003-03-05 07:24:22 +00:00
Jim Meyering
6d53130e35 *** empty log message *** 2003-03-05 07:15:34 +00:00
Jim Meyering
f921b7474d (TESTS): Add 8gb. 2003-03-05 07:15:30 +00:00
Jim Meyering
3fcd54f545 *** empty log message *** 2003-03-05 07:14:41 +00:00
Jim Meyering
64baf18b09 (process_file): Sizes must all be of type uintmax_t.
Otherwise, for files or totals that are too big, numbers would
be truncated.  Patch mostly by Michael Stone.
2003-03-05 06:35:18 +00:00
Jim Meyering
05c18320d7 *** empty log message *** 2003-03-05 06:34:08 +00:00
Jim Meyering
53ad087cdb *** empty log message *** 2003-03-04 23:02:42 +00:00
Jim Meyering
cd4c7725a8 *** empty log message *** 2003-03-04 23:02:16 +00:00
Jim Meyering
47fa65c648 (MAX_N_DESCRIPTORS): Use 3 * UTILS_OPEN_MAX / 4. 2003-03-04 23:02:08 +00:00
Jim Meyering
68b5e00c0c *** empty log message *** 2003-03-04 22:25:14 +00:00
Jim Meyering
eb399d45af Refer new feature discussion to bug-coreutils@gnu.org, rather than
bug-gnu-utils, now that the former is better known.
2003-03-04 22:25:11 +00:00
Jim Meyering
b4f567deb9 (usage): Capitalize consistently. 2003-03-04 22:22:19 +00:00
Jim Meyering
18c3ace4b9 . 2003-03-04 22:02:42 +00:00
Jim Meyering
abac4c9182 *** empty log message *** 2003-03-04 21:58:11 +00:00
Jim Meyering
50f317767f (rel-files): Include $(signatures), so that
those files are also copied into $(release_archive_dir).
2003-03-04 21:58:05 +00:00
Jim Meyering
72c2590f6f *** empty log message *** 2003-03-04 21:53:04 +00:00
Jim Meyering
51c121e352 *** empty log message *** 2003-03-04 21:46:40 +00:00
Jim Meyering
0c0252d8fd . 2003-03-04 21:44:07 +00:00
Jim Meyering
fa2e6d600c *** empty log message *** 2003-03-04 21:42:29 +00:00
Jim Meyering
b71a7bfd31 . 2003-03-04 21:40:33 +00:00
Jim Meyering
ac44ebc2f7 *** empty log message *** 2003-03-04 21:30:34 +00:00
Jim Meyering
e628a56597 (AD_pop_and_chdir): Call error here, now that restore_cwd no longer does it. 2003-03-04 21:30:27 +00:00
Jim Meyering
5ef70ce637 (find_mount_point): Call error here, now that restore_cwd no longer does it. 2003-03-04 21:29:56 +00:00
Jim Meyering
541c6da4ba *** empty log message *** 2003-03-04 21:29:16 +00:00
Jim Meyering
ca1b088722 (CLEANUP_CWD): Call error here, now that restore_cwd no longer does it. 2003-03-04 21:29:13 +00:00
Jim Meyering
6c08bfe83f (restore_cwd): Update prototype. 2003-03-04 21:27:55 +00:00
Jim Meyering
7820b193f6 (restore_cwd): Remove two parameters.
Simplify.  Don't call error upon failure.  Let callers do that.
(save_cwd): Mention that Irix 5.3 has the same problem as SunOS4
when auditing is enabled.  But don't bother updating the #if.
2003-03-04 21:27:34 +00:00
Jim Meyering
88410798e7 . 2003-03-04 19:53:40 +00:00
Jim Meyering
dc5916a65f (TESTS): Add fail-2eperm. 2003-03-04 19:52:20 +00:00
Jim Meyering
25481dc08c *** empty log message *** 2003-03-04 19:50:29 +00:00
Jim Meyering
1c4009dc9d (check-root): Add fail-2eperm. 2003-03-04 19:50:23 +00:00
Jim Meyering
74d2292171 *** empty log message *** 2003-03-04 19:49:35 +00:00
Jim Meyering
4c1d653416 . 2003-03-04 19:35:41 +00:00
Jim Meyering
ed1780effe *** empty log message *** 2003-03-04 18:08:06 +00:00
Jim Meyering
d68a9cf4e9 Improve comment. 2003-03-04 18:07:59 +00:00
Jim Meyering
59bd90b877 *** empty log message *** 2003-03-04 18:07:52 +00:00
Jim Meyering
d7b57a7571 *** empty log message *** 2003-03-04 18:00:42 +00:00
Jim Meyering
4b7f5815ef *** empty log message *** 2003-03-04 17:54:19 +00:00
Jim Meyering
c4893e2b08 Require GL_FUNC_GETCWD_ROBUST. 2003-03-04 17:54:15 +00:00
Jim Meyering
6e31d6f5a5 add comment 2003-03-04 17:21:33 +00:00
Jim Meyering
618481ca0c *** empty log message *** 2003-03-04 17:18:13 +00:00
Jim Meyering
59ae46343b *** empty log message *** 2003-03-04 09:18:02 +00:00
Jim Meyering
f31ebeed31 `df /some/mount-point' no longer hangs when an unrelated hard-mount
is unavailable

[__GLIBC__]: GNU libc's statvfs stats each mount point in
/proc/mounts until it finds one with matching device number.  This is
unnecessary when the FILE argument *is* a mount point.  No stat call
is necessary in that case.  So, disable the statvfs-testing code on
systems with GNU libc.  Reported by Andrei Gaponenko via Tim Waugh
as RedHat bug# 84846.
2003-03-04 09:16:35 +00:00
Jim Meyering
8617b0d590 *** empty log message *** 2003-03-04 09:16:11 +00:00
Jim Meyering
fa081ec19e *** empty log message *** 2003-03-04 08:27:31 +00:00
Jim Meyering
224794bba6 *** empty log message *** 2003-03-03 20:04:20 +00:00
Jim Meyering
4756c070ad (remove_cwd_entries): Include the full filename of
the offending file, not just the basename.
2003-03-03 20:03:43 +00:00
Jim Meyering
e7a2d01f98 *** empty log message *** 2003-03-03 10:39:15 +00:00
Jim Meyering
a6b030577b Set $ME properly. 2003-03-03 10:39:02 +00:00
Jim Meyering
7b5ef3e75d (tag-prev-version, prev-cvs-tag): Remove now-unused variables. 2003-03-03 09:49:37 +00:00
Jim Meyering
2f6403d671 (THIS_VERSION_REGEXP, PREV_VERSION_REGEXP): Remove now-unused variables. 2003-03-03 09:48:12 +00:00
Jim Meyering
872b3a4109 *** empty log message *** 2003-03-03 09:06:28 +00:00
Jim Meyering
1678b8382e (remove_cwd_entries) [!ROOT_CAN_UNLINK_DIRS]: Give an
accurate diagnostic when failing to remove a file owned by some other
user.  Reported by Ivo Timmermans via Michael Stone.
This fixes Debian bug# 178471.
2003-03-03 07:55:33 +00:00
Jim Meyering
5e9ae632a4 *** empty log message *** 2003-03-03 07:55:14 +00:00
Jim Meyering
2afb270a28 *** empty log message *** 2003-03-03 07:53:35 +00:00
Jim Meyering
23e0d08815 *** empty log message *** 2003-03-02 22:04:31 +00:00
Jim Meyering
76f851c979 fix typo in comment 2003-03-02 21:29:33 +00:00
Jim Meyering
af5c78f1c9 (TESTS): Add hard-3. 2003-03-02 21:27:48 +00:00
Jim Meyering
16403723ad tweak wording in last change 2003-03-02 18:09:22 +00:00
Jim Meyering
f4d210ebe8 *** empty log message *** 2003-03-02 18:04:16 +00:00
Jim Meyering
345481344c (Exit status): New section. 2003-03-02 18:04:03 +00:00
Jim Meyering
123cec6105 *** empty log message *** 2003-03-02 10:06:43 +00:00
Jim Meyering
49e5543e9d *** empty log message *** 2003-03-02 10:06:00 +00:00
Jim Meyering
5d1c377779 . 2003-03-02 10:04:48 +00:00
Jim Meyering
b254cdd31d *** empty log message *** 2003-03-02 06:09:39 +00:00
Jim Meyering
8c0f326660 (copy_internal) [un_backup]: When recovering from a
failure to create a hard link, do not remove the entry associating
the source dev/ino with the destination file name.
2003-03-02 06:09:28 +00:00
Jim Meyering
d8fd301dea add comments 2003-03-02 05:59:23 +00:00
Jim Meyering
b1e5afbaef fix tpyo 2003-03-01 21:28:39 +00:00
Jim Meyering
aa1ae08fc5 (print_header): Don't embed spaces in a separate `Type'
header string.  Instead, put `Filesystem' and `Type' headers in the
same string, so translators can use horizontal space as needed.
2003-03-01 21:20:57 +00:00
Jim Meyering
5f80e10645 *** empty log message *** 2003-03-01 13:19:03 +00:00
Jim Meyering
25a2ac8e3e *** empty log message *** 2003-03-01 13:18:25 +00:00
Jim Meyering
fa6cfd2ef3 *** empty log message *** 2003-02-28 21:46:49 +00:00
Jim Meyering
a1d2e330ec (copy_internal): When link fails because of an
existing destination file, unlink that file and try again.
2003-02-28 21:36:18 +00:00
Jim Meyering
1fce29ae93 also test cp 2003-02-28 21:34:15 +00:00
Jim Meyering
4b08f97c49 *** empty log message *** 2003-02-28 21:24:49 +00:00
Jim Meyering
7323ae775c (TESTS): Add hard-2. 2003-02-28 21:23:22 +00:00
Jim Meyering
b5c388739e *** empty log message *** 2003-02-28 21:20:28 +00:00
Jim Meyering
ad9e0f6824 (ftw_startup): Return -1 if alloca fails. 2003-02-28 14:44:34 +00:00
Jim Meyering
e660be4d86 *** empty log message *** 2003-02-28 12:42:47 +00:00
Jim Meyering
4433c9a082 (fts_children): If opening `.' fails, set the fts_child
member to NULL before returning.  From NetBSD.
2003-02-28 12:42:31 +00:00
Jim Meyering
3a4ac3a6a6 *** empty log message *** 2003-02-28 11:04:28 +00:00
Jim Meyering
fb428bedfc (fts_children): If fchdir fails, close file descriptor
before returning.  From NetBSD.
2003-02-28 11:04:18 +00:00
Jim Meyering
9fef9aa3eb *** empty log message *** 2003-02-27 21:05:59 +00:00
Jim Meyering
901f7f3910 (jm_PREREQ_PHYSMEM): Also check for `table' function. 2003-02-27 21:05:55 +00:00
Jim Meyering
eb339c4303 *** empty log message *** 2003-02-27 20:21:24 +00:00
Jim Meyering
9c97727fb2 (physmem_total, physmem_available): Add comments. 2003-02-27 20:21:21 +00:00
Jim Meyering
5446a82008 . 2003-02-27 17:52:56 +00:00
Jim Meyering
1fc44fe183 *** empty log message *** 2003-02-27 17:52:41 +00:00
Jim Meyering
92fa74148d Merge in portability changes from gcc/libiberty
to support AIX, Tru64, and Windows.  See the ChangeLog there
for credits and details.
2003-02-27 17:52:37 +00:00
Jim Meyering
8e2b85814a (gl_SYS__SYSTEM_CONFIGURATION): New function.
(jm_PREREQ_PHYSMEM): Check for new headers and functions.
Use gl_SYS__SYSTEM_CONFIGURATION.
2003-02-27 17:44:34 +00:00
Jim Meyering
8b9fe6bd80 *** empty log message *** 2003-02-26 18:09:11 +00:00
Jim Meyering
25dc498dab *** empty log message *** 2003-02-26 17:51:38 +00:00
Jim Meyering
0ac5f83cf9 Don't test du's -b option here. Directory byte
counts are smaller (512 rather than 4096) on at least OSF/1 5.1
and IBM AIX 4.2.
2003-02-26 17:51:34 +00:00
Jim Meyering
486d1c7024 *** empty log message *** 2003-02-25 19:14:12 +00:00
Jim Meyering
441c736081 (announcement): Now that ChangeLog entries
are output by announce-gen, don't do it here.
2003-02-25 19:14:04 +00:00
Jim Meyering
8708902315 (print_changelog_deltas): New function.
(main): Use it.
2003-02-25 19:13:08 +00:00
Jim Meyering
66d8a81ef3 filter through cppi 2003-02-24 10:09:19 +00:00
Jim Meyering
0eb448466a [__USE_FILE_OFFSET64]: Remove #error directive. 2003-02-24 10:08:57 +00:00
Jim Meyering
eb85acc63a Include <search.h>.
(struct known_object): Define.
(object_compare, add_object, find_object): New functions, like
those in ftw.c.
(fts_open): Initialize new member.
(fts_close): Free memory allocated for new member.
(fts_stat): Detect a cycle in O(logN) time per directory processed.
2003-02-24 09:58:02 +00:00
Jim Meyering
06a0dc99c7 *** empty log message *** 2003-02-24 09:09:49 +00:00
Jim Meyering
b3cac1155b [HAVE_CONFIG_H]: Include <config.h>.
Conditionalize inclusion of <sys/param.h>.
Conditionalize inclusion of <include/sys/stat.h> vs <sys/stat.h>.
Include autoconf-recommended block of dirent/NAMELEN-related
definitions and includes.  Use NAMLEN throughout, rather than
_D_EXACT_NAMLEN.
[_LIBC] (close, closedir, fchdir, open, opendir): Define.
[_LIBC] (readdir, tdestroy, tfind, tsearch): Define.
Remove `__' prefix from all uses of the above.  This will help
to merge *BSD changes.
[!_LIBC] (internal_function): Define.
[! _LIBC && ! LSTAT_FOLLOWS_SLASHED_SYMLINK]: Define lstat.
(__set_errno): Define if not already defined.
2003-02-24 09:09:42 +00:00
Jim Meyering
4c283a1dc0 [struct FTS] (fts_dir_signatures): New, opaque member. 2003-02-24 08:57:06 +00:00
Jim Meyering
0818c3e24c (fts_open): If fts_alloc returns NULL, don't dereference it.
(fts_read): If fts_safe_changedir fails because it is not
able to chdir into a subdirectory, then inform the caller.
2003-02-24 08:27:59 +00:00
Jim Meyering
f30cda6bd2 virgin copy from glibc 2003-02-24 08:24:59 +00:00
Jim Meyering
74432ad178 *** empty log message *** 2003-02-24 08:24:52 +00:00
Jim Meyering
6fcb6d17cf doh 2003-02-24 08:24:48 +00:00
Jim Meyering
75a2b87d4d *** empty log message *** 2003-02-24 08:21:39 +00:00
Jim Meyering
bf9a35319d *** empty log message *** 2003-02-24 08:21:21 +00:00
Jim Meyering
f86c2b4f16 . 2003-02-23 12:07:50 +00:00
Jim Meyering
4c370827c8 *** empty log message *** 2003-02-22 16:52:51 +00:00
Jim Meyering
39a87c5201 New option: --release-type=TYPE 2003-02-22 16:52:45 +00:00
Jim Meyering
0731abb38c (beta, major): New targets. Remove `release'.
Put them all together on a line.
Pass the release type (via RELEASE_TYPE envvar) to the MAKE
invocation of `announcement'.
(announcement): Invoke announce-gen with --release-type=$RELEASE_TYPE.
2003-02-22 16:52:36 +00:00
Jim Meyering
2f066fd511 (news-r1, news-r2): Remove now-unused definitions. 2003-02-22 16:35:32 +00:00
Jim Meyering
8d292b0f8a add comment 2003-02-22 16:32:58 +00:00
Jim Meyering
94755d84aa tweak comments 2003-02-22 16:31:12 +00:00
Jim Meyering
862609b1ec tweak comments 2003-02-22 16:30:39 +00:00
Jim Meyering
36db69ff1c Escape dots in regexps for $curr_version and $prev_version.
Fail if we find no lines in NEWS.
2003-02-22 16:30:28 +00:00
Jim Meyering
5c69cf2fea (announcement): Now that NEWS entries are
extracted by announce-gen, don't do it here.
2003-02-22 16:24:36 +00:00
Jim Meyering
05fac90002 New option: --news=NEWS_FILE.
Extract NEWS entries here, not ...
2003-02-22 16:23:36 +00:00
Jim Meyering
7147909aef *** empty log message *** 2003-02-22 07:55:21 +00:00
Jim Meyering
8030ecfee5 bump to 4.5.9 2003-02-22 07:55:11 +00:00
Jim Meyering
6c7b470774 . 2003-02-21 21:52:33 +00:00
Jim Meyering
f0c7211960 . 2003-02-21 21:37:12 +00:00
Jim Meyering
441007d004 *** empty log message *** 2003-02-21 21:34:14 +00:00
Jim Meyering
7ccb88fc0b *** empty log message *** 2003-02-21 20:38:16 +00:00
Jim Meyering
ad478502ed Merge in changes from autoconf's version of this file.
(www-gnu): Define.
(standards.texi-url_prefix): Use $(www-gnu).
(make-stds.texi-url_prefix): Likewise.
2003-02-21 20:38:10 +00:00
Jim Meyering
48437b2433 *** empty log message *** 2003-02-21 20:24:39 +00:00
Jim Meyering
19ae573dca *** empty log message *** 2003-02-21 20:22:27 +00:00
Jim Meyering
a49b79b305 *** empty log message *** 2003-02-21 17:13:17 +00:00
Jim Meyering
8607700a75 Undefine HAVE_MMAP_STACK, thus disabling
this code on all systems.
2003-02-21 17:13:09 +00:00
Jim Meyering
d15cfc1025 . 2003-02-21 12:27:57 +00:00
Jim Meyering
25af1b321d *** empty log message *** 2003-02-21 12:27:28 +00:00
Jim Meyering
a7b79d2a74 *** empty log message *** 2003-02-21 12:24:32 +00:00
Jim Meyering
27fad7ecec (stat invocation): Describe %B. 2003-02-21 12:24:12 +00:00
Jim Meyering
fc5797807e (usage): Tweak wording of %B description. 2003-02-21 12:23:48 +00:00
Jim Meyering
7215259bb0 *** empty log message *** 2003-02-21 12:16:34 +00:00
Jim Meyering
5e91595f93 Merge in some changes from GNU libc.
(md5_uintptr): Define.
2003-02-21 12:16:12 +00:00
Jim Meyering
0d0a14cd56 *** empty log message *** 2003-02-21 11:14:39 +00:00
Jim Meyering
d0301f3c12 *** empty log message *** 2003-02-21 11:12:53 +00:00
Jim Meyering
ab99f99f74 . 2003-02-21 11:12:46 +00:00
Jim Meyering
0586e6dbfc (TESTS): Add basic. 2003-02-21 11:12:34 +00:00
Jim Meyering
3abab5f388 *** empty log message *** 2003-02-21 10:41:34 +00:00
Jim Meyering
4d34fabc8d Include "mmap-stack.h".
(main): Invoke `run' through a macro that (when possible) runs it
with a large, mmap'd stack.
2003-02-21 10:41:27 +00:00
Jim Meyering
1771d1a11d *** empty log message *** 2003-02-21 10:23:21 +00:00
Jim Meyering
7f51568be5 *** empty log message *** 2003-02-21 10:22:29 +00:00
Jim Meyering
0801bebeb4 (run_on_mmaped_stack): Allocate 256MB, not 1GB 2003-02-21 09:51:26 +00:00
Jim Meyering
49daa21e00 *** empty log message *** 2003-02-21 08:34:41 +00:00
Jim Meyering
6fe8f2a831 New option: --apparent-size.
(enum) [APPARENT_SIZE_OPTION]: New member.
(long_options): Add it.
(usage): Describe it.
(main): Handle it.
['b']: Set apparent_size.
2003-02-21 08:30:18 +00:00
Jim Meyering
7dc3ed2f04 *** empty log message *** 2003-02-21 08:27:09 +00:00
Jim Meyering
8a096b3518 (du invocation): Document --apparent-size.
Adjust documentation of --bytes (-b).
2003-02-21 08:25:59 +00:00
Jim Meyering
85cbe110d4 use printf, not echo
test -b
2003-02-21 08:02:33 +00:00
Jim Meyering
f1f8ca7ddc (apparent_size): New global.
(print_only_size): Reflect the fact that we're printing byte counts,
not ST_NBLOCKSIZE-byte-block counts.
(print_size): Call print_only_size rather than duplicating its code.
(process_file): Accumulate byte counts, rather than block counts.
2003-02-21 07:47:06 +00:00
Jim Meyering
5cfcefdcf9 *** empty log message *** 2003-02-21 07:15:54 +00:00
Jim Meyering
12508c923f (process_file): Always reset size_to_propagate_to_parent for
--separate-dirs (-S).
2003-02-21 07:15:16 +00:00
Jim Meyering
23e52c28fb *** empty log message *** 2003-02-21 07:06:38 +00:00
Jim Meyering
7f2df50cee Include <sys/types.h> before <dirent.h>.
This is required for Apple Darwin 6.3 (MacOS 10.2.3).
2003-02-21 07:06:33 +00:00
Jim Meyering
eb63743d48 (process_file): Reorganize the code to use only
one `sum' array, and change how -S works back to the way it was
before 2003-01-31.  Patch by Bruno Haible.
2003-02-20 23:13:11 +00:00
Jim Meyering
4cf069e8a2 *** empty log message *** 2003-02-20 19:12:33 +00:00
Jim Meyering
46bfcaf2bb *** empty log message *** 2003-02-20 19:11:08 +00:00
Jim Meyering
44e80d26cb (usage) [%b]: Refer to %B. 2003-02-20 19:11:02 +00:00
Jim Meyering
409e7dd0b6 (print_stat): New format: %B (to print ST_NBLOCKSIZE).
(usage): Describe it.
2003-02-20 19:07:55 +00:00
Jim Meyering
4ebc314f18 . 2003-02-20 19:05:38 +00:00
Jim Meyering
4efd012fe0 *** empty log message *** 2003-02-20 17:59:37 +00:00
Jim Meyering
a4bbb4de7e Add checks for the following:
BLOCK_SIZE, DU_BLOCK_SIZE, DF_BLOCK_SIZE, LS_BLOCK_SIZE.
2003-02-20 17:58:45 +00:00
Jim Meyering
9c46a8acf3 Rename phony target envvar-check to evar-check
so as not to conflict with the distributed file by the same name.
2003-02-20 17:52:11 +00:00
Jim Meyering
5c629d9ef4 (process_file): Set info->skip before any possible return.
Report correct usage for directories, not 0.
(process_file): Return for `file_type == FTW_DPRE'
_before_ recording the dev/ino of a directory.
2003-02-20 15:03:22 +00:00
Jim Meyering
c023e74aac . 2003-02-20 13:45:48 +00:00
Jim Meyering
fca1c1173c Now, df always displays the device file name corresponding to the
listed mount point under `Filesystem'.  Before, for an unmounted
block- or character-special file argument, it would display the
command-line argument instead.

(show_disk): Return a value indicating whether
there was a match.  Don't try to find a mount point here.
(show_entry): If show_disk doesn't find a match, call show_point.
2003-02-20 10:37:14 +00:00
Jim Meyering
59e474dc56 . 2003-02-20 10:36:52 +00:00
Jim Meyering
56644db507 *** empty log message *** 2003-02-20 10:35:27 +00:00
Jim Meyering
7d224e76de *** empty log message *** 2003-02-20 10:34:21 +00:00
Jim Meyering
ac823e21c0 Include "mmap-stack.h".
(du_files): Add prototype with ATTRIBUTE_NORETURN.
Exit from this function, not from...
(main): ...here.
Instead, if possible, invoke du_files through a macro that
runs it with a large, mmap'd stack.
2003-02-19 22:20:45 +00:00
Jim Meyering
5c6facc555 *** empty log message *** 2003-02-19 19:09:06 +00:00
Jim Meyering
47de14a1c5 Merge in some clean-up and optimization changes from glibc's md5.c. 2003-02-19 19:09:01 +00:00
Jim Meyering
071bd2881a Merge in some clean-up and optimization changes from glibc. 2003-02-19 19:08:49 +00:00
Jim Meyering
4738213e95 *** empty log message *** 2003-02-19 16:12:06 +00:00
Jim Meyering
7c9292d5c9 (usage): Change wording in --help output:
use FILENUM instead of `SIDE' and say what FILENUM means.
2003-02-19 16:11:39 +00:00
Jim Meyering
1860324779 *** empty log message *** 2003-02-19 16:06:34 +00:00
Jim Meyering
e2cd6ba3df (print_header): Rather than using a hard-coded literal
string of spaces matching the length of the English `...Type' header,
output the right number of spaces to match the selected translation.
Reported by Yann Dirson and Jean Charles Delepine as Debian bug 131113.
2003-02-19 16:05:07 +00:00
Jim Meyering
efb6756c2e *** empty log message *** 2003-02-19 16:02:44 +00:00
Jim Meyering
3a29026961 *** empty log message *** 2003-02-19 15:06:12 +00:00
Jim Meyering
44f8f70e7f *** empty log message *** 2003-02-19 14:29:01 +00:00
Jim Meyering
23f6d41f94 Include "full-read.h".
(bytes_split, lines_split, line_bytes_split): Use full_read,
not safe_read.   The way split was using the latter, a short read
could cause split to terminate before EOF.

(bytes_split): Remove unnecessary `else' after break.
(lines_split): Likewise.  and correct misleading indentation.
2003-02-19 14:28:50 +00:00
Jim Meyering
d0944f6e8b *** empty log message *** 2003-02-19 14:04:22 +00:00
Jim Meyering
07ef2a29cf *** empty log message *** 2003-02-19 14:04:17 +00:00
Jim Meyering
af4ad8d695 fix comment 2003-02-19 14:03:44 +00:00
Jim Meyering
f0ecd05212 more clean-up. give more precise diagnostics 2003-02-19 14:02:43 +00:00
Jim Meyering
4d5aae90bb *** empty log message *** 2003-02-19 12:59:31 +00:00
Jim Meyering
68f68b6bf2 (TESTS): Reflect renaming. 2003-02-19 12:59:14 +00:00
Jim Meyering
1b919c5c1e new file. renamed from cat-tty-eof 2003-02-19 12:58:46 +00:00
Jim Meyering
4b26d67f58 Remove file. Rename to tty-eof. 2003-02-19 12:58:07 +00:00
Jim Meyering
f60bd3f4c8 comment out diagnostic 2003-02-19 12:56:37 +00:00
Jim Meyering
f3ecf0e5df upgrade to automake-1.7.2b 2003-02-19 12:55:25 +00:00
Jim Meyering
49a3524823 *** empty log message *** 2003-02-19 08:44:45 +00:00
Jim Meyering
23bd5c8be5 *** empty log message *** 2003-02-19 08:40:10 +00:00
Jim Meyering
3ef0832f7a (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Limit stack size
to 1MB, so as not to render systems with no stack size limit (e.g.,
linux-2.2.x) unusable.  Suggestion and code from Bruno Haible.
2003-02-19 08:39:55 +00:00
Jim Meyering
3ac28e3dee *** empty log message *** 2003-02-18 21:17:11 +00:00
Jim Meyering
3bb9bacdd7 *** empty log message *** 2003-02-18 19:00:54 +00:00
Jim Meyering
714f398d7f (sha_stream) [BLOCKSIZE]: Move definition to top of file.
Ensure that it is a multiple of 64.
Rearrange loop exit tests so as to avoid performing an
additional fread after encountering an error or EOF.
2003-02-18 19:00:40 +00:00
Jim Meyering
7496bc25b0 (md5_stream) [BLOCKSIZE]: Move definition to top of file.
Ensure that it is a multiple of 64.
Rearrange loop exit tests so as to avoid performing an
additional fread after encountering an error or EOF.
2003-02-18 19:00:16 +00:00
Jim Meyering
38b90cb669 *** empty log message *** 2003-02-18 14:01:32 +00:00
Jim Meyering
ae993355b7 (CLEANFILES): Remove ftw.h and search.h.
(DISTCLEANFILES): Add them here.
Add fnmatch.h, too.
2003-02-18 14:01:25 +00:00
Jim Meyering
d2c4a4e44d cksum would perform an extra read after encountering EOF
(cksum): Exit the loop upon EOF, too.
Patch by Michael Bacarella.
2003-02-18 08:05:02 +00:00
Jim Meyering
b47c09ad60 *** empty log message *** 2003-02-18 08:02:41 +00:00
Jim Meyering
33c62fcef3 Generalize, clean-up, and test for
cat, cksum, md5sum, and sha1sum all in the same loop.
2003-02-18 07:59:58 +00:00
Jim Meyering
d3dbf68beb . 2003-02-17 17:21:37 +00:00
Jim Meyering
072015e870 *** empty log message *** 2003-02-17 17:21:05 +00:00
Jim Meyering
143bca6b80 (RUN_WITH_BIG_STACK_4): Define. 2003-02-17 17:21:00 +00:00
Jim Meyering
3db0886789 . 2003-02-17 17:17:43 +00:00
Jim Meyering
f6b9999548 *** empty log message *** 2003-02-17 16:58:34 +00:00
Jim Meyering
22e376e2e1 Undo most of last change.
Use sysmp instead, since it provides a cleaner interface.
2003-02-17 16:58:28 +00:00
Jim Meyering
3f4e77fdd6 *** empty log message *** 2003-02-17 16:55:44 +00:00
Jim Meyering
87be2f14b1 (jm_PREREQ_PHYSMEM): Undo last change, since
Kaveh Ghazi found a better way to get the required information.
Add check for sys/sysmp.h.
2003-02-17 16:55:40 +00:00
Jim Meyering
2bb32c98a5 (run): New function, preparing for use of
RUN_WITH_BIG_STACK_*
2003-02-17 08:39:20 +00:00
Jim Meyering
49cda05bd3 tweak comment 2003-02-17 08:27:26 +00:00
Jim Meyering
f8741e7214 *** empty log message *** 2003-02-16 21:00:07 +00:00
Jim Meyering
9cba3efc8a Add Finnish (fi). 2003-02-16 21:00:01 +00:00
Jim Meyering
b57469df43 version: 4.5.7 2003-02-16 20:59:16 +00:00
Jim Meyering
3eb96248f7 *** empty log message *** 2003-02-16 09:00:13 +00:00
Jim Meyering
c270a888e9 (libfetish_a_SOURCES): Add mmap-stack.h. 2003-02-16 09:00:08 +00:00
Jim Meyering
382b502ccf *** empty log message *** 2003-02-16 08:59:20 +00:00
Jim Meyering
c276ca6e49 (MAP_ANONYMOUS): Use MAP_ANON, if possible.
Initialize `fd' to -1, so Solaris' mmap works with MAP_ANON.
2003-02-16 08:59:15 +00:00
Jim Meyering
e58f9df1b3 add an assertion 2003-02-15 22:38:32 +00:00
Jim Meyering
d71265c2e3 *** empty log message *** 2003-02-15 22:33:18 +00:00
Jim Meyering
5b16ce70fb *** empty log message *** 2003-02-15 22:31:22 +00:00
Jim Meyering
e52bb403b5 *** empty log message *** 2003-02-15 22:30:46 +00:00
Jim Meyering
fa6fd21580 Require AC_SYS_MMAP_STACK. 2003-02-15 22:29:52 +00:00
Jim Meyering
434cd73a81 *** empty log message *** 2003-02-15 22:29:37 +00:00
Jim Meyering
958da3fffd I meant mmap-stack.h, not mmap-stack.c. 2003-02-15 22:23:33 +00:00
Jim Meyering
51037cbd96 Add lib/mmap-stack.c 2003-02-15 22:19:49 +00:00
Jim Meyering
edcf77bcb1 *** empty log message *** 2003-02-15 22:08:59 +00:00
Jim Meyering
1588508be2 *** empty log message *** 2003-02-15 10:15:49 +00:00
Jim Meyering
2b62137426 (main) [DEBUG]: New function. 2003-02-15 09:59:27 +00:00
Jim Meyering
c1604ca5a7 Clean up change of a minute ago. 2003-02-15 09:11:49 +00:00
Jim Meyering
c911821af7 *** empty log message *** 2003-02-15 09:06:13 +00:00
Jim Meyering
16b37b5c9d Add Irix6 support to physmem.c.
(jm_PREREQ_PHYSMEM): Also check for sys/sysget.h
and sys/sysinfo.h.
Also check for sysget.
2003-02-15 09:06:05 +00:00
Jim Meyering
d017693646 *** empty log message *** 2003-02-15 09:05:51 +00:00
Jim Meyering
bdf738b1a1 Add Irix6 support to physmem.c.
(irix_sysget): New function.
(IRIX_SYSGET_TOTAL, IRIX_SYSGET_AVAILABLE): New macros.
(physmem_total, physmem_available): Use them.
2003-02-15 09:05:16 +00:00
Jim Meyering
5aeb13149e *** empty log message *** 2003-02-14 07:41:42 +00:00
Jim Meyering
49eda1bead Include "euidaccess.h".
Remove declaration of euidaccess.
2003-02-14 07:41:27 +00:00
Jim Meyering
1656a5880b hacked from the versions in glibc 2003-02-13 21:28:58 +00:00
Jim Meyering
f95d4f7696 tweak comment 2003-02-12 20:48:49 +00:00
Jim Meyering
e0935a3fc9 *** empty log message *** 2003-02-12 17:47:55 +00:00
Jim Meyering
98b0c66968 (ACX_C_RESTRICT): Remove #ifndef -- so now this
macro also checks for support when using a C++ compiler.
Also, remove the test for SGI's __restrict.
Suggested by Steven G. Johnson.
2003-02-12 17:47:51 +00:00
Jim Meyering
60279d3bab *** empty log message *** 2003-02-12 09:27:32 +00:00
Jim Meyering
aaaba62077 *** empty log message *** 2003-02-12 09:24:28 +00:00
Jim Meyering
67e430edda (jm_PREREQ_REGEX): Require ACX_C_RESTRICT. 2003-02-12 09:24:23 +00:00
Jim Meyering
be6a1bab4f (portable_chars_only): Remove unnecessary `const'
in cast to avoid warning from icc.  Reported by Alexandre Duret-Lutz.
2003-02-12 09:20:47 +00:00
Jim Meyering
4839fcb1c0 *** empty log message *** 2003-02-12 09:11:35 +00:00
Jim Meyering
21910fd8af *** empty log message *** 2003-02-12 09:03:49 +00:00
Jim Meyering
887ad2d358 (ACX_C_RESTRICT): Minor syntactic changes:
Split long lines, use AC_COMPILE_IFELSE, use `case' instead of
nested `if's, remove unnecessary quotes.
2003-02-12 08:57:34 +00:00
Jim Meyering
ac3db7d319 verbatim from the URL in the comment 2003-02-12 08:54:20 +00:00
Jim Meyering
17cef92ec0 *** empty log message *** 2003-02-12 08:24:40 +00:00
Jim Meyering
97156c6dcf *** empty log message *** 2003-02-10 23:01:58 +00:00
Jim Meyering
136bb0265b (libfetish_a_SOURCES): Add euidaccess.h. 2003-02-10 23:01:53 +00:00
Jim Meyering
53b11c2b17 Include "euidaccess.h". 2003-02-10 22:47:30 +00:00
Jim Meyering
f18e3f9fae *** empty log message *** 2003-02-10 22:47:24 +00:00
Jim Meyering
da6e10d0c5 *** empty log message *** 2003-02-10 22:46:44 +00:00
Jim Meyering
348adf65ab doh 2003-02-10 22:45:59 +00:00
Jim Meyering
8e480afae3 . 2003-02-10 22:45:40 +00:00
Jim Meyering
e046d32e51 *** empty log message *** 2003-02-10 13:23:50 +00:00
Jim Meyering
81b7f5a407 add comments and fix dumb typos 2003-02-10 13:19:00 +00:00
Jim Meyering
c2597b6041 Don't include group-member.h.
Include euidaccess.h.
(eaccess): Rewrite function to set the real uid and gid temporarily
to the effective uid and gid, then invoke 'access', and then set the
real uid and gid back.  On systems that lack setreuid or setregid,
fall back on the kludges in euidaccess.  Before, it would not work
for e.g., files with ACLs, files that were marked immutable,
or on file systems mounted read-only.
2003-02-10 09:01:48 +00:00
Jim Meyering
bf95c4519c *** empty log message *** 2003-02-09 08:40:12 +00:00
Jim Meyering
22319b98fc (jm_CHECK_DECLS): Add euidaccess. 2003-02-09 08:40:09 +00:00
Jim Meyering
8f69eadada (test_stat): Remove function. It's job is done (only
when necessary) by the wrapper in lib/stat.c.
2003-02-09 08:28:59 +00:00
Jim Meyering
aa2142ded2 bump to4.5.8 2003-02-09 07:55:15 +00:00
Jim Meyering
4e3b901743 . 2003-02-08 21:23:24 +00:00
Jim Meyering
4e94149b49 . 2003-02-08 20:49:00 +00:00
Jim Meyering
1faf44aaa8 . 2003-02-08 20:33:03 +00:00
Jim Meyering
fd4716fb7f *** empty log message *** 2003-02-08 20:31:56 +00:00
Jim Meyering
6c4ad568f5 (Mode Structure): Mention filesystem-specific
permissions and that mounting a filesystem as read-only may
override actual file permissions.  Use @command instead
of @code for program names.
2003-02-08 20:31:48 +00:00
Jim Meyering
a70e8c6a64 *** empty log message *** 2003-02-08 20:09:36 +00:00
Jim Meyering
6a79d4805e Don't assume that the file owner username length is less than 9
in ls output: instead, omit that field altogether.
2003-02-08 20:08:55 +00:00
Jim Meyering
8aa60ca867 . 2003-02-08 20:01:19 +00:00
Jim Meyering
905c870f3a . 2003-02-08 20:00:53 +00:00
Jim Meyering
cf5d5f5789 *** empty log message *** 2003-02-08 18:20:01 +00:00
Jim Meyering
5c13851e62 (ftw_startup): Don't shadow outer declaration of save_err.
Merge inconsequential changes from libc.
2003-02-08 18:19:57 +00:00
Jim Meyering
f3e0faa64c *** empty log message *** 2003-02-08 18:11:17 +00:00
Jim Meyering
a9bf908eb3 . 2003-02-08 18:08:54 +00:00
Jim Meyering
77f6e91e99 *** empty log message *** 2003-02-08 18:08:20 +00:00
Jim Meyering
47276b7f94 (TESTS): Add restore-wd. 2003-02-08 18:08:16 +00:00
Jim Meyering
d60aa22957 New test for just-fixed bug in ftw.c. 2003-02-08 18:07:45 +00:00
Jim Meyering
981efef893 *** empty log message *** 2003-02-08 17:07:41 +00:00
Jim Meyering
f99cc7ac67 (ftw_startup): When using FTW_CHDIR, always remember
the current directory, not just when DIR contains a slash.
2003-02-08 17:07:38 +00:00
Jim Meyering
14608aae3c *** empty log message *** 2003-02-08 16:50:06 +00:00
Jim Meyering
712c6ceded Correct now-invalid comment about cycle-detection. 2003-02-08 16:50:00 +00:00
Jim Meyering
7e82ca8927 Use @command instead of @code for program names. 2003-02-07 18:00:19 +00:00
Jim Meyering
828c363c22 fix typo in entry from 2003-02-02 2003-02-07 09:39:57 +00:00
Jim Meyering
58fac09294 *** empty log message *** 2003-02-07 09:28:58 +00:00
Jim Meyering
0876c5bbd3 Merge inconsequential changes from libc.
Include limits.h earlier.
Move PATH_MAX definition `down' a little; add comment.
Rename local, saved_errno to save_err.
2003-02-07 09:28:50 +00:00
Jim Meyering
4f1c8d7e88 . 2003-02-06 20:59:02 +00:00
Jim Meyering
68f8003de8 add entries from old/*/NEWS
from fileutils-4.1 through 4.1.11 and
  from sh-utils-2.0 through 2.0.15.
Thanks, Karl.
2003-02-06 14:36:26 +00:00
Jim Meyering
9bf618e9cb *** empty log message *** 2003-02-06 14:29:03 +00:00
Jim Meyering
bf9322b7ac bump to 4.5.7 2003-02-06 14:28:53 +00:00
Jim Meyering
1a210d0f64 *** empty log message *** 2003-02-06 14:28:19 +00:00
Jim Meyering
e5afe1995e Adjust alignment and mention `file, text, shell'
on the `* Coreutils:...' dirently line.  From Karl Berry.
2003-02-06 14:27:14 +00:00
Jim Meyering
eacacadc1b . 2003-02-06 13:22:53 +00:00
Jim Meyering
ac0fd8b58f *** empty log message *** 2003-02-06 13:06:33 +00:00
Jim Meyering
784604222e Include <unistd.h>. On some systems,
it is required for the definition of _SC_PAGESIZE.
2003-02-06 13:06:29 +00:00
Jim Meyering
524ed3ce44 Remove declaration of statfs.
It conflicted with one from OSF/1 5.1 in <sys/mount.h>.
2003-02-06 10:25:43 +00:00
Jim Meyering
0468afd28f *** empty log message *** 2003-02-06 10:25:21 +00:00
Jim Meyering
ae0cb229f2 (FTW_DPRE) [enum]: New member and definition.
(struct FTW) [skip]: New member.
2003-02-06 10:24:57 +00:00
Jim Meyering
adb8e94a33 (print_boottime, print_deadprocs, print_runlevel):
Fix memory allocation arithmetic.
2003-02-06 10:22:12 +00:00
Jim Meyering
4138c9ef9f *** empty log message *** 2003-02-06 10:13:35 +00:00
Jim Meyering
ac0250af06 (__restrict): Define to `restrict' or to nothing. 2003-02-06 10:13:28 +00:00
Jim Meyering
0e4da9fc4f *** empty log message *** 2003-02-06 08:14:13 +00:00
Jim Meyering
a47615d2ed (process_file): Don't return early for excluded files
or for files whose dev/inode we've already seen.
2003-02-06 08:14:01 +00:00
Jim Meyering
505f652d9e Require non-root. 2003-02-06 08:09:53 +00:00
Jim Meyering
73eae2675d Require non-root. 2003-02-06 08:09:18 +00:00
Jim Meyering
692e0b022f . 2003-02-06 08:08:42 +00:00
Jim Meyering
09137743d5 *** empty log message *** 2003-02-05 22:54:21 +00:00
Jim Meyering
6b18df4826 *** empty log message *** 2003-02-05 22:52:46 +00:00
Jim Meyering
33bb552cee *** empty log message *** 2003-02-05 22:22:11 +00:00
Jim Meyering
89bcff9cf4 put POSIX back in direntry description of cksum 2003-02-05 20:40:39 +00:00
Jim Meyering
ed83326eb6 *** empty log message *** 2003-02-05 20:40:04 +00:00
Jim Meyering
c21649c777 use this delta after all 2003-02-05 20:39:59 +00:00
Jim Meyering
c42eb7b832 *** empty log message *** 2003-02-05 20:37:29 +00:00
Jim Meyering
621f949258 Use new form of @direntry.
Put unlink in its proper place.  Adjust wording in some
dir entry descriptions, mainly so they fit in 80 columns.
Don't use mark-up like @acronym{POSIX} in direntries.
2003-02-05 20:37:22 +00:00
Jim Meyering
11b2bb7b15 undo last change 2003-02-05 20:32:12 +00:00
Jim Meyering
0b1bd09499 revert last change: I am removing POSIX from the offending (cksum) line altogether 2003-02-05 20:31:59 +00:00
Jim Meyering
bfa5d2583c *** empty log message *** 2003-02-05 20:29:17 +00:00
Jim Meyering
55b9fdf667 (check-texinfo): Allow bare `POSIX' to be used on direntry lines. 2003-02-05 20:29:14 +00:00
Jim Meyering
66fce3b572 *** empty log message *** 2003-02-05 20:19:46 +00:00
Jim Meyering
5a5f1c2340 (ftw_startup): When using FTW_DEPTH, call `func', the
user-supplied callback, once for the current directory before calling
ftw_dir, in case that part of the hierarchy should be pruned.
`func' does that by setting `data->skip'.
2003-02-05 20:19:31 +00:00
Jim Meyering
03975e728d Include <limits.h>.
(PATH_MAX): Define to 1024, if not already defined.
(process_entry): Allocate enough space to hold the resulting
file name.  Don't presume that 2*dirbufsize is enough.
(ftw_startup): Always use PATH_MAX to compute buffer size, now that
it is guaranteed to be defined.
2003-02-05 16:35:07 +00:00
Jim Meyering
6e6188765a (process_entry): When using FTW_DEPTH, call `func',
the user-supplied callback, once before any of its entries,
in case that part of the hierarchy should be pruned. `func'
does that by setting `data->skip'.
2003-02-05 15:08:15 +00:00
Jim Meyering
862ae182e1 make sure excluding an entire hierarchy works 2003-02-05 14:29:59 +00:00
Jim Meyering
c7a61822f6 *** empty log message *** 2003-02-05 09:47:23 +00:00
Jim Meyering
031d89674a (TESTS): Add exclude. 2003-02-05 09:47:17 +00:00
Jim Meyering
7b86ff9268 don't use diff -u 2003-02-05 09:18:43 +00:00
Jim Meyering
6f9963b8ac typos 2003-02-05 09:18:33 +00:00
Jim Meyering
a5f617b2b4 *** empty log message *** 2003-02-05 09:17:22 +00:00
Jim Meyering
3c1dbea18f (show_entry): Update sole use of show_disk. 2003-02-05 07:01:27 +00:00
Jim Meyering
4d97bfa966 *** empty log message *** 2003-02-04 16:36:18 +00:00
Jim Meyering
e5860d52f8 *** empty log message *** 2003-02-04 11:48:40 +00:00
Jim Meyering
e295f4f388 `df /dev/block-or-char-device-file--not-mounted' now reports
the name of the file system on which the file resides, usually `/'.
Before, it would leave the `Mounted on' field blank.

(show_disk): Add parameter: STATP.
If we don't find a matching device name, then resort to calling
find_mount_point.
2003-02-04 11:48:27 +00:00
Jim Meyering
144418cd9d (show_disk): Move function to precede find_mount_point. 2003-02-04 10:28:23 +00:00
Jim Meyering
dc4a9398cb bump to 4.5.6 2003-02-03 13:57:21 +00:00
Jim Meyering
2eb4b97607 . 2003-02-02 23:16:49 +00:00
Jim Meyering
ca5fe741ff . 2003-02-02 22:11:13 +00:00
Jim Meyering
2e881206e3 duh 2003-02-02 22:10:41 +00:00
Jim Meyering
c0e51beb61 . 2003-02-02 21:48:00 +00:00
Jim Meyering
c7366d9a4b Remove junk that somehow was improperly pasted into an entry from 2002-10-12. 2003-02-02 20:53:56 +00:00
Jim Meyering
54f1fd99a4 add a couple newlines 2003-02-02 20:51:24 +00:00
Jim Meyering
bd9a1a92b4 *** empty log message *** 2003-02-02 20:35:15 +00:00
Jim Meyering
92248c4bc9 . 2003-02-02 20:34:45 +00:00
Jim Meyering
a3fb0cc75a (check-x-vs-1): Use @PATH_SEPARATOR@, not `:'. 2003-02-02 20:34:20 +00:00
Jim Meyering
4ac006af69 (makefile_path_separator_check): New rule.
(local-check): Add it to the list.
2003-02-02 20:31:48 +00:00
Jim Meyering
b535cc4171 *** empty log message *** 2003-02-02 20:17:21 +00:00
Jim Meyering
7ffbf3d56a *** empty log message *** 2003-02-02 20:17:04 +00:00
Jim Meyering
89fc480602 *** empty log message *** 2003-02-02 20:15:11 +00:00
Jim Meyering
08b6275885 Use @PATH_SEPARATOR@ instead of hard-coding the path-separator.
Also double-quote the new PATH, to avoid problems when the
path-separator is a semi-colon or when `pwd` contains e.g. a space.
2003-02-02 20:14:53 +00:00
Jim Meyering
62631d8844 *** empty log message *** 2003-02-02 20:14:20 +00:00
Jim Meyering
183659bb72 *** empty log message *** 2003-02-02 20:14:00 +00:00
Jim Meyering
d9ad189ff7 Use @PATH_SEPARATOR@ instead of hard-coding the path-separator.
Also double-quote the new PATH, to avoid problems when the
path-separator is a semi-colon or when `pwd` contains e.g. a space.
2003-02-02 20:11:33 +00:00
Jim Meyering
a9a663e42b tweak syntax to make it consistent with others 2003-02-02 19:36:48 +00:00
Jim Meyering
7be64fb687 *** empty log message *** 2003-02-02 18:25:33 +00:00
Jim Meyering
6426d38820 . 2003-02-02 18:25:22 +00:00
Jim Meyering
45698f01ec *** empty log message *** 2003-02-02 18:24:09 +00:00
Jim Meyering
f25f4c7cf3 . 2003-02-02 18:23:56 +00:00
Jim Meyering
977ac31797 *** empty log message *** 2003-02-02 18:18:47 +00:00
Jim Meyering
4747fbf9b4 (jm_PREREQ_REGEX): Remove. 2003-02-02 18:18:43 +00:00
Jim Meyering
1facca4380 (jm_PREREQ_REGEX): New function, from gnulib.
(jm_INCLUDED_REGEX): Use it.
2003-02-02 18:18:05 +00:00
Jim Meyering
50d375102f *** empty log message *** 2003-02-02 17:15:01 +00:00
Jim Meyering
670e4e061a (lstat) [LSTAT_FOLLOWS_SLASHED_SYMLINK]: Define to rpl_lstat. 2003-02-02 17:14:59 +00:00
Jim Meyering
2d5342fb94 Require jm_FUNC_LSTAT. 2003-02-02 17:10:25 +00:00
Jim Meyering
a881942cca Don't put decl after non-decl. 2003-02-01 22:52:45 +00:00
Jim Meyering
7df6daf8a4 *** empty log message *** 2003-02-01 15:21:45 +00:00
Jim Meyering
1a26ff6e02 . 2003-02-01 15:21:29 +00:00
Jim Meyering
a7eac7f5fd *** empty log message *** 2003-02-01 15:21:18 +00:00
Jim Meyering
d606b47598 (MAX_N_DESCRIPTORS): Define. 2003-02-01 15:20:36 +00:00
Jim Meyering
07d3a99375 *** empty log message *** 2003-02-01 11:05:25 +00:00
Jim Meyering
8323669455 (jm_MACROS): Require UTILS_SYS_OPEN_MAX. 2003-02-01 11:05:23 +00:00
Jim Meyering
5acb27d993 . 2003-02-01 11:04:50 +00:00
Jim Meyering
be0c9150a0 . 2003-02-01 11:03:57 +00:00
Jim Meyering
40bc15c132 tweak syntax. duh 2003-02-01 11:03:28 +00:00
Jim Meyering
228544d08c Whoops. Swap fail/cross-compile cases. 2003-02-01 11:03:04 +00:00
Jim Meyering
ba61c1af86 add comments 2003-02-01 11:00:45 +00:00
Jim Meyering
1973da17d0 *** empty log message *** 2003-02-01 09:59:17 +00:00
Jim Meyering
442dbd2429 (G_fail): New global.
(human_time): Diagnose failed localtime, not failed nstrftime.
(main): Fail if G_fail is set.
2003-02-01 09:59:09 +00:00
Jim Meyering
3507d9868f *** empty log message *** 2003-01-31 18:28:43 +00:00
Jim Meyering
4686f1f3fd Include "file-type.h"
(print_human_type): Remove function.
(human_access): Rename from print_human_access.  Return a string.
(human_time): Rename from print_human_time.  Return a string.
(print_stat): Arrange so that field width and an alignment specifier
are honored for the %A, %F, %x, %y, and %z formats.
[%F]: Use file_type; this gives slightly different file type strings,
e.g., `directory' instead of `Directory' and `regular file' or
`regular empty file' instead of `Regular file'.
2003-01-31 18:28:39 +00:00
Jim Meyering
fb9e95e6c3 (print_stat): Use S_ISLNK rather than an explicit
test using S_IFMT and S_IFLNK.  S_IFLNK may not be defined.
2003-01-31 13:52:18 +00:00
Jim Meyering
d060450cc8 *** empty log message *** 2003-01-31 13:37:16 +00:00
Jim Meyering
d85b93c0fb ditto for invalid options 2003-01-31 13:37:08 +00:00
Jim Meyering
4bee27ae43 (main): Upon processing a bad --exclude-from or --max-depth
option argument, don't exit right away, in case there are others.
Rather record the failure and exit after processing other options.
2003-01-31 13:35:25 +00:00
Jim Meyering
aaf8697ee9 *** empty log message *** 2003-01-31 10:43:35 +00:00
Jim Meyering
d92da7460e (TAR_OPTIONS): Set and export, in order to make
tar archive easier to reproduce.
2003-01-31 10:43:29 +00:00
Jim Meyering
3f026f0448 *** empty log message *** 2003-01-31 10:39:47 +00:00
Jim Meyering
de49951491 Rewrite to perform directory traversal using nftw.
Include "dirname.h", "ftw.h", and "quotearg.h".
(AUTHORS): Add self.
(opt_one_file_system): Move global into `main'.
(path, xstat, exit_status): Remove declarations.
(arg_length, suffix_length): New globals.
(G_fail): New global, sort of like the old `exit_status'.
(IS_FTW_DIR_TYPE): Define.
(print_only_size): New function.
(process_file): New function.
(str_init, ensure_space, str_copyc, str_concatc): Remove functions.
(str_trunc, pop_dir, count_entry): Likewise.
(du_files): Rewrite to use nftw.
2003-01-31 10:39:33 +00:00
Jim Meyering
129c735cda *** empty log message *** 2003-01-30 20:23:29 +00:00
Jim Meyering
9f90080b95 Ensure that with -L we get the same results even without the trailing slash. 2003-01-30 19:40:09 +00:00
Jim Meyering
1c976d1966 get latest 2003-01-30 13:55:20 +00:00
Jim Meyering
c96b23c2ff *** empty log message *** 2003-01-30 10:42:45 +00:00
Jim Meyering
594fe72be0 no backticks in C comments 2003-01-29 20:52:02 +00:00
Jim Meyering
0267e219b7 *** empty log message *** 2003-01-29 20:36:41 +00:00
Jim Meyering
f5ded0090d *** empty log message *** 2003-01-29 20:36:18 +00:00
Jim Meyering
651da6950f *** empty log message *** 2003-01-29 20:20:40 +00:00
Jim Meyering
a3d30ef951 Detect broken re_search in e.g. glibc-2.2.93. 2003-01-29 20:20:36 +00:00
Jim Meyering
1c5a98512f . 2003-01-28 17:55:23 +00:00
Jim Meyering
88b5eb8ef1 . 2003-01-28 17:54:46 +00:00
Jim Meyering
09b1a0014b comments 2003-01-28 17:40:56 +00:00
Jim Meyering
77e740fff6 *** empty log message *** 2003-01-27 18:06:38 +00:00
Jim Meyering
fd51c35ed6 *** empty log message *** 2003-01-27 18:04:46 +00:00
Jim Meyering
3ba60a0bc5 add comments 2003-01-27 15:16:01 +00:00
Jim Meyering
96332f0a7e (FTW_DCH, FTW_DCHP): Better comments. 2003-01-27 15:00:22 +00:00
Jim Meyering
336827087f (quote_name): Add fourth parameter, width, into which to
store the screen columns, and return the number of bytes instead.
(print_dir): Pass NULL as fourth parameter of quote_name.
(print_name_with_quoting): Likewise.
(length_of_file_name_and_frills): Get the width from the fourth
parameter of quote_name instead of return value.
2003-01-27 13:42:26 +00:00
Jim Meyering
b9f33a9f76 *** empty log message *** 2003-01-27 13:40:47 +00:00
Jim Meyering
d28d7b1814 (check-misc): Check for st_blocks, too. 2003-01-27 13:40:43 +00:00
Jim Meyering
88a5f079b4 (print_stat): Use ST_NBLOCKS rather than `->st_blocks'. 2003-01-27 13:32:44 +00:00
Jim Meyering
2a22320430 . 2003-01-27 13:26:45 +00:00
Jim Meyering
3ab066a0d6 *** empty log message *** 2003-01-27 10:45:51 +00:00
Jim Meyering
7f93a5421a (decode_switches): If `dired' is set without
`format == long_format', then silently reset dired.  This doesn't
change the behavior of ls (all prior uses of dired were protected
by `&& format == long_format'), and lets us...
(DIRED_INDENT): ... remove `format == long_format' conjunct.
(PUSH_CURRENT_DIRED_POS): Likewise.
(main): Likewise.
2003-01-27 10:45:48 +00:00
Jim Meyering
ab43d63c3a *** empty log message *** 2003-01-26 11:05:46 +00:00
Jim Meyering
fe443ea297 *** empty log message *** 2003-01-26 11:03:44 +00:00
Jim Meyering
91b31aa87c [_LIBC] (ISSLASH, FILESYSTEM_PREFIX_LEN): Define.
(base_name): New function.
(ftw_startup): Don't strip trailing slashes.
Use base_name to find the offset of the basename.
2003-01-25 20:32:44 +00:00
Jim Meyering
431d1b6241 (object_compare): Compare inode numbers before device numbers.
The former is much more likely to differ for any two given file objects.
2003-01-25 16:44:07 +00:00
Jim Meyering
29faf21e94 *** empty log message *** 2003-01-25 16:31:35 +00:00
Jim Meyering
68c1da4150 (cut invocation): Describe new functionality of --output-delimiter=STR. 2003-01-25 16:31:23 +00:00
Jim Meyering
d8ab1cdcfb . 2003-01-25 08:00:05 +00:00
Jim Meyering
b998bbef74 Tweak mysql output to match input :-) From Jan. 2003-01-24 14:58:38 +00:00
Jim Meyering
cae8997185 *** empty log message *** 2003-01-24 14:49:47 +00:00
Jim Meyering
2c4d6da0a4 *** empty log message *** 2003-01-24 13:49:41 +00:00
Jim Meyering
588979c4ae Change each use of Core-utils' to Coreutils'. 2003-01-24 13:49:38 +00:00
Jim Meyering
dcbd546bf2 *** empty log message *** 2003-01-24 13:48:16 +00:00
Jim Meyering
0644a66901 (Formatting file timestamps): Fix typo: s/%M:S/%M:%S/. 2003-01-24 13:48:11 +00:00
Jim Meyering
d57cca6de0 (The cut command): Extend the new example a little. 2003-01-24 13:47:21 +00:00
Jim Meyering
527715894f (The cut command): Give an example of using cut -c
with an output delimiter.  From Jan Nieuwenhuizen.
2003-01-24 13:46:28 +00:00
Jim Meyering
37ac1f18f1 *** empty log message *** 2003-01-23 20:49:21 +00:00
Jim Meyering
2cceacc8fc *** empty log message *** 2003-01-23 20:13:48 +00:00
Jim Meyering
89beded7d0 [HAVE_CONFIG_H]: Include <config.h>.
Add autoconf-recommended block of alloca-related code.
Cast each use of alloca to the required type, (node**).
2003-01-23 20:13:42 +00:00
Jim Meyering
07dad3b45d *** empty log message *** 2003-01-23 20:12:12 +00:00
Jim Meyering
0eb62f18b3 Add autoconf-recommended block of alloca-related code.
[!_LIBC] (__getcwd): Define to xgetcwd and declare xgetcwd.
2003-01-23 20:12:08 +00:00
Jim Meyering
4d80abb25a update from master sources 2003-01-23 18:51:54 +00:00
Jim Meyering
2e4d3d565b *** empty log message *** 2003-01-23 17:56:16 +00:00
Jim Meyering
a8f272fc4e (UTILS_FUNC_DIRFD): Invoke some AC_EGREP_CPP requirements. 2003-01-23 17:55:17 +00:00
Jim Meyering
537676b8fd *** empty log message *** 2003-01-23 17:50:48 +00:00
Jim Meyering
4f045ded1c Correct typo: s/-1/no/ that kept this from working
on at least Irix and OSF1/Tru64.
2003-01-23 17:50:42 +00:00
Jim Meyering
bf7bd8329e *** empty log message *** 2003-01-22 20:46:11 +00:00
Jim Meyering
1f91d7b6de (find_object): Don't use c99-style struct initializer. 2003-01-22 20:46:08 +00:00
Jim Meyering
4a4db048f8 *** empty log message *** 2003-01-22 20:33:29 +00:00
Jim Meyering
8414999524 Change all uses of __const to const. 2003-01-22 20:33:26 +00:00
Jim Meyering
5eb68d6330 *** empty log message *** 2003-01-22 20:32:23 +00:00
Jim Meyering
a3d541f8f1 Change all uses of __const to const. 2003-01-22 20:32:16 +00:00
Jim Meyering
81d6349ec5 Require FTW_DCH and FTW_DCHP, too. 2003-01-22 20:28:25 +00:00
Jim Meyering
586bfb65d6 *** empty log message *** 2003-01-22 15:55:21 +00:00
Jim Meyering
5245b864d7 . 2003-01-22 15:51:46 +00:00
Jim Meyering
c7753e456b . 2003-01-22 15:50:54 +00:00
Jim Meyering
6046409989 *** empty log message *** 2003-01-22 15:50:07 +00:00
Jim Meyering
b88e308839 (CLEANFILES): Add generated files: ftw.h search.h. 2003-01-22 15:50:00 +00:00
Jim Meyering
4e26fbcb07 *** empty log message *** 2003-01-22 15:46:42 +00:00
Jim Meyering
3ead987ffc [anon enum] (FTW_DCHP): New member.
(FTW_DCHP): Define.
2003-01-22 15:46:38 +00:00
Jim Meyering
f0a528b13a (process_entry): Handle FTW_DCHP.
(ftw_dir): Handle FTW_DCH.
2003-01-22 15:45:48 +00:00
Jim Meyering
5b7ab2372d [!_LIBC && !__USE_XOPEN_EXTENDED]: Define __USE_XOPEN_EXTENDED
and FTW_H_STANDALONE.
[ enum] (FTW_DCH): New member.
(FTW_DCH): Define.
2003-01-22 13:27:20 +00:00
Jim Meyering
eb7d21ab94 Include autoconf-recommended block of dirent/NAMELEN
related definitions and includes.  Use NAMELEN throughout,
rather than _D_EXACT_NAMLEN.
[_LIBC]: Define NAMELEN to _D_EXACT_NAMLEN.
(stpcpy): Declare, if necessary.
(mempcpy): Define, if necessary.
[!_LIBC] (__stpcpy, __mempcpy): Define.
[!_LIBC] (LXSTAT, XSTAT): Define.
2003-01-22 13:13:04 +00:00
Jim Meyering
d4fb8aaf40 . 2003-01-22 12:49:46 +00:00
Jim Meyering
9c54e95335 (TESTS): Add no-x. 2003-01-22 12:49:37 +00:00
Jim Meyering
047c26a588 *** empty log message *** 2003-01-22 12:49:12 +00:00
Jim Meyering
997c341e37 New test, for functionality added to lib/ftw.c. 2003-01-22 12:49:08 +00:00
Jim Meyering
85d03af23a *** empty log message *** 2003-01-21 18:50:00 +00:00
Jim Meyering
c59a8e2d32 (remove_entry) [ROOT_CAN_UNLINK_DIRS && HAVE_STRUCT_DIRENT_D_TYPE]: If a file
has d_type == DT_UNKNOWN it may still be a directory -- or not (e.g., with
FreeBSD on an NFS-mounted file system), so resort to calling lstat to find out.
2003-01-21 18:49:49 +00:00
Jim Meyering
2b2a4a83de *** empty log message *** 2003-01-21 18:47:12 +00:00
Jim Meyering
0257e76d36 *** empty log message *** 2003-01-21 12:39:17 +00:00
Jim Meyering
d1b342cd01 *** empty log message *** 2003-01-21 12:38:45 +00:00
Jim Meyering
8b32e1089e Add comment, and remove now-unnecessary -l option. 2003-01-21 12:38:38 +00:00
Jim Meyering
59670ee05b Don't assume that the file owner username
length is less than 9 in ls output: instead, omit that field
altogether.  Reported by, and suggested fix from, Ferdinand.
2003-01-21 12:36:56 +00:00
Jim Meyering
8cdd6ee1d6 *** empty log message *** 2003-01-21 12:35:27 +00:00
Jim Meyering
5ece3f7020 . 2003-01-21 09:00:34 +00:00
Jim Meyering
cd36829ef0 *** empty log message *** 2003-01-21 08:57:58 +00:00
Jim Meyering
89c0589166 *** empty log message *** 2003-01-21 08:57:26 +00:00
Jim Meyering
3631c1d814 [! weak_alias]: Define __-prefixed names to publicized ones.
[! defined _LIBC]: Define-away weak_alias and internal_function.
[defined weak_alias]: Guard each use of weak_alias.
2003-01-21 08:57:13 +00:00
Jim Meyering
c9f1ed5f93 *** empty log message *** 2003-01-21 08:53:17 +00:00
Jim Meyering
0044a44ce4 New file, from GNU libc. 2003-01-21 08:52:53 +00:00
Jim Meyering
f6cabef722 Link search.h to search_.h if we use our tsearch.c. 2003-01-21 08:26:59 +00:00
Jim Meyering
24ad07391c *** empty log message *** 2003-01-20 20:17:06 +00:00
Jim Meyering
307a4ecdb5 *** empty log message *** 2003-01-20 20:01:18 +00:00
Jim Meyering
829a063ea6 . 2003-01-20 18:55:27 +00:00
Jim Meyering
97a68bfd65 change test name to wide-fmt 2003-01-20 18:20:22 +00:00
Jim Meyering
2023a466b3 *** empty log message *** 2003-01-20 18:20:13 +00:00
Jim Meyering
3429138fc9 *** empty log message *** 2003-01-20 18:20:09 +00:00
Jim Meyering
dcd7703911 (bignum): New test to demonstrate that large
format widths no longer smash strftime's stack and cause infloop.
2003-01-20 18:19:50 +00:00
Jim Meyering
9cfc4300cd *** empty log message *** 2003-01-20 16:41:31 +00:00
Jim Meyering
dadc92d2a9 Include "path-concat.h". 2003-01-20 16:41:19 +00:00
Jim Meyering
6eedcbbf3d remove the temporary directory 2003-01-20 16:38:41 +00:00
Jim Meyering
f501ec73d7 see if we can do it without rpl_ftw 2003-01-20 16:31:28 +00:00
Jim Meyering
abe155b043 New file, from GNU libc. 2003-01-20 16:30:59 +00:00
Jim Meyering
8a9ca6d9d7 *** empty log message *** 2003-01-20 16:30:49 +00:00
Jim Meyering
b266d99497 *** empty log message *** 2003-01-20 16:30:39 +00:00
Jim Meyering
009241b037 *** empty log message *** 2003-01-20 16:29:27 +00:00
Jim Meyering
538f8ebc40 (libfetish_a_SOURCES): Use ftw_.h here, too. 2003-01-20 16:28:34 +00:00
Jim Meyering
a325c0219b *** empty log message *** 2003-01-20 16:28:04 +00:00
Jim Meyering
b7d8a28ca4 renamed to ftw_.h 2003-01-20 16:27:35 +00:00
Jim Meyering
a9660519e8 renamed from ftw.h 2003-01-20 16:27:35 +00:00
Jim Meyering
b138fd4ef8 define ftw to rpl_ftw 2003-01-20 16:19:28 +00:00
Jim Meyering
5bbba381fd *** empty log message *** 2003-01-20 15:45:57 +00:00
Jim Meyering
6918da4447 (obstack_object_size): Declare temporary, __o, to be const.
(obstack_room): Likewise.
(obstack_empty_p): Likewise.
2003-01-20 15:45:53 +00:00
Jim Meyering
8df5caa414 Rename type: DS -> Dirstack_state. 2003-01-20 15:43:03 +00:00
Jim Meyering
3c7f4321a0 Remove some unnecessary parentheses. 2003-01-20 15:40:25 +00:00
Jim Meyering
ae5862eecf *** empty log message *** 2003-01-20 15:06:38 +00:00
Jim Meyering
ff5b51afdd (mail_gpg_sign_cookie): Remove now-unused definition. 2003-01-20 15:06:28 +00:00
Jim Meyering
787138d638 *** empty log message *** 2003-01-20 15:04:56 +00:00
Jim Meyering
01dfd68984 From GNU libc.
(my_strftime): Handle very large width
specifications for numeric values correctly.  Improve checks for
overflow.
2003-01-20 15:04:51 +00:00
Jim Meyering
3fa2b8a8eb *** empty log message *** 2003-01-20 15:03:12 +00:00
Jim Meyering
7565faca35 Merge in changes from libc
Eliminate many `#ifdef USE_IN_LIBIO' conditionals.
2003-01-20 15:03:04 +00:00
Jim Meyering
73af65ef56 Include config.h.
Add copyright.
2003-01-19 16:42:45 +00:00
Jim Meyering
1fab123c3c *** empty log message *** 2003-01-19 16:14:47 +00:00
Jim Meyering
17c68905a0 Include "canonicalize.h". 2003-01-19 16:14:41 +00:00
Jim Meyering
8e5aabe259 duh. fix typo 2003-01-19 16:06:13 +00:00
Jim Meyering
56b3c75e63 (widen) [COMPILE_WIDE]: Merge nearly-identical definitions.
(nl_get_alt_digit) [! defined my_strftime]: Define.
(my_strftime) [_NL_CURRENT]: Merge nearly-identical uses of
_nl_get_alt_digit and _nl_get_walt_digit.
2003-01-19 13:01:35 +00:00
Jim Meyering
7c9bd0e59c (my_strftime): Merge in locale-related changes from libc.
These changes have no effect outside of _LIBC.
2003-01-19 11:51:32 +00:00
Jim Meyering
eb5cd04ce2 *** empty log message *** 2003-01-19 08:52:25 +00:00
Jim Meyering
2a5b4f1761 (Which files are listed): Document new option:
--dereference-command-line-symlink-to-dir.
2003-01-19 08:52:20 +00:00
Jim Meyering
825c8d1155 *** empty log message *** 2003-01-18 18:36:17 +00:00
Jim Meyering
cdb4bba0e6 (Dereference_symlink) [DEREF_COMMAND_LINE_SYMLINK_TO_DIR]: New member.
(enum) [DEREFERENCE_COMMAND_LINE_SYMLINK_TO_DIR_OPTION]: New member.
(long_options): Add option --dereference-command-line-symlink-to-dir.
(main): Make DEREF_COMMAND_LINE_SYMLINK_TO_DIR be the default,
rather than DEREF_COMMAND_LINE_ARGUMENTS, when none of the
-d, -F, -l options is specified.
(decode_switches): Handle --dereference-command-line-symlink-to-dir.
(gobble_file): Honor DEREF_COMMAND_LINE_SYMLINK_TO_DIR.
Change --dereference-command-line (-H) to dereference *all*
command line arguments, including broken symlinks.
2003-01-18 18:36:13 +00:00
Jim Meyering
be33a434cb reflect change in how ls -H works 2003-01-18 18:06:38 +00:00
Jim Meyering
ba2b351bbf Change ls -H back to the way it was yesterday, since this is
compatible with FreeBSD and the POSIX spec is confusing
and somewhat contradictory.

(DEREF_COMMAND_LINE_ARGUMENTS): Change name back
from DEREF_COMMAND_LINE_SYMLINK_TO_DIR, updating all uses.
(long_options): Change the long option name back.
(usage): Change the usage back.
(gobble_file): When -H is specified, dereference a top-level
arg even if it points to a non-directory.
2003-01-18 18:01:51 +00:00
Jim Meyering
f0110096ac ls [4.1.1]: Mention that --dereference-command-line (-H) is now the default,
unless one of the -d, -F, or -l options are given.
From Paul Eggert
2003-01-18 08:41:06 +00:00
Jim Meyering
328b32a49d . 2003-01-17 15:14:21 +00:00
Jim Meyering
d615969812 update from automake/lib 2003-01-17 14:53:19 +00:00
Jim Meyering
308e04e326 . 2003-01-16 22:28:13 +00:00
Jim Meyering
d3e2cd0783 *** empty log message *** 2003-01-16 19:03:42 +00:00
Jim Meyering
060c09c357 *** empty log message *** 2003-01-16 19:02:49 +00:00
Jim Meyering
496cd263e7 (Which files are listed, General output formatting): Undo last change. 2003-01-16 19:01:56 +00:00
Jim Meyering
86c7ef826a move prerequisites to precede AC_CACHE_CHECK 2003-01-16 18:23:18 +00:00
Jim Meyering
a578d7d8e9 *** empty log message *** 2003-01-16 17:34:04 +00:00
Jim Meyering
ba53003e9f The `regex' struct is both input and output.
Initialize it before each use.  Patch by Tim Waugh.
2003-01-16 17:33:52 +00:00
Jim Meyering
950fed888a rename variable 2003-01-15 21:12:19 +00:00
Jim Meyering
d7d13fa5c2 Add tsearch.o IFF we have to use the replacement ftw.c. 2003-01-15 21:11:27 +00:00
Jim Meyering
d24ceb3b32 Check for declaration of stpcpy. 2003-01-15 17:32:13 +00:00
Jim Meyering
a2c75df256 *** empty log message *** 2003-01-15 13:11:31 +00:00
Jim Meyering
a1850bde1a *** empty log message *** 2003-01-15 13:09:04 +00:00
Jim Meyering
0ba481441f (General output formatting): Reflect option name change:
s/--dereference-command-line/--dereference-command-line-symlink-to-dir/.
Say that this option changes how ls treats only symlinks to directories
specified on the command line.
2003-01-15 13:09:00 +00:00
Jim Meyering
23b5ef6146 *** empty log message *** 2003-01-15 12:24:54 +00:00
Jim Meyering
e1f1be8559 *** empty log message *** 2003-01-15 12:24:04 +00:00
Jim Meyering
3786638a49 *** empty log message *** 2003-01-15 12:23:34 +00:00
Jim Meyering
ea4d81f366 . 2003-01-15 12:14:38 +00:00
Jim Meyering
3e2ec9890b Require AC_FUNC_FTW. 2003-01-15 12:14:29 +00:00
Jim Meyering
ddd1b52c1c . 2003-01-15 12:13:34 +00:00
Jim Meyering
800f3a1e77 (gobble_file): Fall back on using lstat when required:
when --dereference (-L) is not specified, and
- when operating on a dangling symlink
- when operating on command-line-symlink-to-directories
This fixes numerous problems.  Here are examples:
- `ls dangling-symlink' would fail with `no such file...'
Now it prints `dangling-symlink'.
- `ls -i symlink' would mistakenly print the inode of the referent.
Now it prints the inode of the symlink.  Likewise for --size (-s).
Based on a patch from Michael Stone.
Reported by Deepak Goel as Debian bug #173793.
2003-01-15 11:59:07 +00:00
Jim Meyering
b1ebf2a383 *** empty log message *** 2003-01-15 11:58:26 +00:00
Jim Meyering
b6dcca8662 *** empty log message *** 2003-01-15 11:58:02 +00:00
Jim Meyering
c4abcd5882 *** empty log message *** 2003-01-15 11:32:59 +00:00
Jim Meyering
5c68fbd9a3 Rename ls's --dereference-command-line (-H)
option to   --dereference-command-line-symlink-to-dir.

[enum Dereference_symlink]
(DEREF_COMMAND_LINE_SYMLINK_TO_DIR): Rename from
DEREF_COMMAND_LINE_ARGUMENTS.  Update all uses.
(long_options): Rename the option.
(usage): Say that --dereference-... changes how ls treats
only symlinks to directories specified on the command line.
2003-01-15 11:32:47 +00:00
Jim Meyering
64a58d4cdd *** empty log message *** 2003-01-14 21:10:26 +00:00
Jim Meyering
78c9c2c7fa (TESTS): Add dangle and inode. 2003-01-14 21:10:12 +00:00
Jim Meyering
4d76e1e857 *** empty log message *** 2003-01-14 20:51:25 +00:00
Jim Meyering
a57532aeac remove diff's -u 2003-01-14 19:04:28 +00:00
Jim Meyering
fbc1a9a299 *** empty log message *** 2003-01-14 19:03:00 +00:00
Jim Meyering
c4384e7af5 *** empty log message *** 2003-01-14 16:23:03 +00:00
Jim Meyering
642bc1acfb (gobble_file): Fix a bug introduced in 4.5.4 that made it
so that ls --color would no longer highlight the names of files with
the execute bit set when not specified on the command line.
Patch by Michael Stone.  Reported by Stephen Depooter as
Debian bug 175135.
2003-01-14 16:22:55 +00:00
Jim Meyering
0c28dd9808 *** empty log message *** 2003-01-14 16:20:54 +00:00
Jim Meyering
caf5671edc factor a little 2003-01-14 16:19:09 +00:00
Jim Meyering
fb056f448a duh: close file handle 2003-01-14 15:50:18 +00:00
Jim Meyering
6c1ccdaf7f (color-exe): New test, for the above fix. 2003-01-14 15:38:23 +00:00
Jim Meyering
a5c0405752 fix typo in comment 2003-01-14 15:10:41 +00:00
Jim Meyering
0568a21a8d *** empty log message *** 2003-01-14 15:09:00 +00:00
Jim Meyering
cbe7e9daec (same_name): Declare *_basename locals to be `const'.
Consolidate declarations and initializations of *_base* locals.
2003-01-14 15:07:24 +00:00
Jim Meyering
ee45aa56cb *** empty log message *** 2003-01-14 14:44:33 +00:00
Jim Meyering
cbf24b40e3 (same_name): Reorder tests so as to avoid calling stat()
when a string comparison is sufficient.
2003-01-14 14:44:29 +00:00
Jim Meyering
72bca87dba *** empty log message *** 2003-01-14 14:15:44 +00:00
Jim Meyering
0e87cb139e (readtoken): Cast character to 'unsigned char', not 'unsigned int'. 2003-01-14 14:15:37 +00:00
Jim Meyering
ff0e20e30e *** empty log message *** 2003-01-14 12:58:27 +00:00
Jim Meyering
92602ead01 Merge in Ulrich's and my changes from libc. 2003-01-14 12:58:22 +00:00
Jim Meyering
7da8f5c488 *** empty log message *** 2003-01-13 15:33:43 +00:00
Jim Meyering
58c625df5d *** empty log message *** 2003-01-13 15:33:17 +00:00
Jim Meyering
12cb8887bc *** empty log message *** 2003-01-13 15:27:08 +00:00
Jim Meyering
495b91c2d1 *** empty log message *** 2003-01-13 13:44:14 +00:00
Jim Meyering
64977d2baa Also test for just fixed bug with --zero. 2003-01-13 13:44:11 +00:00
Jim Meyering
ebc3717c9d *** empty log message *** 2003-01-13 13:40:04 +00:00
Jim Meyering
cca0153946 *** empty log message *** 2003-01-13 13:39:44 +00:00
Jim Meyering
8355da5492 (long_opts): --zero does not require an argument.
Patch by Michael Stone.
2003-01-13 13:35:17 +00:00
Jim Meyering
01f012f2f5 *** empty log message *** 2003-01-12 18:29:54 +00:00
Jim Meyering
c5ee2230b0 *** empty log message *** 2003-01-12 18:29:32 +00:00
Jim Meyering
398ca04327 tweak comments 2003-01-12 18:16:31 +00:00
Jim Meyering
73bb03d0a6 *** empty log message *** 2003-01-12 18:03:52 +00:00
Jim Meyering
4e95cd2dff Also work on systems that have `struct direct', using autoconf's AC_HEADER_DIRENT. 2003-01-12 18:03:48 +00:00
Jim Meyering
67b5ecf8ab *** empty log message *** 2003-01-12 17:01:53 +00:00
Jim Meyering
376e889123 (ftw_startup): Rename local-shadowing local to pacify gcc. 2003-01-12 17:01:48 +00:00
Jim Meyering
cce1b15448 New file, from glibc/io. 2003-01-12 16:48:56 +00:00
Jim Meyering
0b6a1829be New file, from glibc/io. 2003-01-12 16:48:31 +00:00
Jim Meyering
d3b1d606c5 (libfetish_a_SOURCES): Add ftw.h. 2003-01-12 16:47:20 +00:00
Jim Meyering
b121bd6e31 exit nonzero for any failure 2003-01-12 13:18:16 +00:00
Jim Meyering
304728fb95 *** empty log message *** 2003-01-12 13:17:29 +00:00
Jim Meyering
9bb12a2a33 (cvs-update): Skip any file with local modifications. 2003-01-12 13:11:14 +00:00
Jim Meyering
b0312e15d4 *** empty log message *** 2003-01-12 11:52:38 +00:00
Jim Meyering
131a8fecb3 *** empty log message *** 2003-01-12 11:51:43 +00:00
Jim Meyering
65a9e6a065 Lots of syntactic clean-up, mostly from Karl Berry.
Use consistent indentation, two spaces per level.
(scriptversion): New variable.
Change initializations like `variable=""' to `variable='.
(usage): New variable.
Use `test', not `['.
Use `test -n "$var"', not `[ x"$var" = x ]'.
Use `test -z "$var"', not `[ x"$var" != x ]'.
Alphabetize case entries.
Accept --help and --version options.
Remove unnecessary `else :' clauses.
Add a `Local variables' eval block to help emacs users update
the time-stamp variable added above.
2003-01-12 11:51:36 +00:00
Jim Meyering
60ad866925 *** empty log message *** 2003-01-12 09:04:16 +00:00
Jim Meyering
932bf8f214 *** empty log message *** 2003-01-12 08:59:19 +00:00
Jim Meyering
42594a0e4a (usage): Document --first-only and mention that --tabs=N (-t) enables --all (-a). 2003-01-12 08:59:00 +00:00
Jim Meyering
079dc69267 (libfetish_a_SOURCES): Add canonicalize.h. 2003-01-12 08:57:11 +00:00
Jim Meyering
664a205be6 *** empty log message *** 2003-01-11 09:44:28 +00:00
Jim Meyering
b734cbf724 Don't test HAVE_ERRNO_H. It's not necessary. 2003-01-11 09:44:23 +00:00
Jim Meyering
7287520d21 *** empty log message *** 2003-01-11 09:43:50 +00:00
Jim Meyering
5e74b3cb3b *** empty log message *** 2003-01-11 09:39:45 +00:00
Jim Meyering
35d5499fca Include "canonicalize.h".
Use canonicalize_file_name unconditionally.
2003-01-11 09:39:40 +00:00
Jim Meyering
8a5ad5c78c *** empty log message *** 2003-01-11 09:37:31 +00:00
Jim Meyering
96a72cddd1 Require AC_FUNC_CANONICALIZE_FILE_NAME.
(jm_MACROS): No longer check for resolvepath or canonicalize_file_name.
2003-01-11 09:37:18 +00:00
Jim Meyering
a49cb29dc1 *** empty log message *** 2003-01-11 09:36:07 +00:00
Jim Meyering
23ad418ba6 add prereqs 2003-01-11 09:35:55 +00:00
Jim Meyering
5d33b7498f *** empty log message *** 2003-01-11 09:35:07 +00:00
Jim Meyering
c7463c38f8 Don't test HAVE_ERRNO_H. It's not necessary.
Don't test HAVE_STDDEF_H.  It's not necessary.
Use definition of PTR_INT_TYPE from obstack.h.
2003-01-11 09:32:48 +00:00
Jim Meyering
eb04d885c2 From Dmitry Levin. 2003-01-11 08:29:46 +00:00
Jim Meyering
c600ace840 (AC_FUNC_CANONICALIZE_FILE_NAME): New file and macro. 2003-01-11 08:16:56 +00:00
Jim Meyering
8920dfdb57 Require AC_FUNC_CANONICALIZE_FILE_NAME. 2003-01-11 08:16:46 +00:00
Jim Meyering
85bcabcba2 *** empty log message *** 2003-01-10 23:17:23 +00:00
Jim Meyering
52855f6e36 *** empty log message *** 2003-01-10 23:07:12 +00:00
Jim Meyering
b6c0821009 Don't include xalloc.h.
It's already included via system.h.
2003-01-10 23:07:04 +00:00
Jim Meyering
3bc2ea6982 *** empty log message *** 2003-01-10 23:03:18 +00:00
Jim Meyering
774f38050e Add src/readlink.c. 2003-01-10 23:03:13 +00:00
Jim Meyering
8ba73f51a0 *** empty log message *** 2003-01-10 22:55:49 +00:00
Jim Meyering
44b0813e1e Include "xgetcwd.h". 2003-01-10 22:55:33 +00:00
Jim Meyering
251cad0c9c *** empty log message *** 2003-01-10 22:48:28 +00:00
Jim Meyering
77f6ad8381 Include "xgetcwd.h". 2003-01-10 22:48:02 +00:00
Jim Meyering
76ee8c435c (libfetish_a_SOURCES): Add xgetcwd.h. 2003-01-10 22:47:38 +00:00
Jim Meyering
9805d6c5cc Remove uses of PARAMS. 2003-01-10 22:46:11 +00:00
Jim Meyering
784d409601 Include xgetcwd.h. 2003-01-10 22:45:14 +00:00
Jim Meyering
e690564cc9 *** empty log message *** 2003-01-10 22:32:08 +00:00
Jim Meyering
418e181ad8 Don't declare functions declared by xalloc.h.
Include "xalloc.h" instead.
2003-01-10 21:46:37 +00:00
Jim Meyering
4ac2ebda98 Don't declare directly functions declared by xalloc.h.
Include "xalloc.h" instead.
2003-01-10 21:45:21 +00:00
Jim Meyering
3242594f7b Don't declare directly functions declared by xalloc.h.
Include "xalloc.h" instead.
2003-01-10 21:44:56 +00:00
Jim Meyering
200a73de4f Don't declare xmalloc directly.
Include "xalloc.h" instead.
2003-01-10 21:38:20 +00:00
Jim Meyering
2e62c8ab03 . 2003-01-10 21:37:19 +00:00
Jim Meyering
8088407c6c . 2003-01-10 13:21:14 +00:00
Jim Meyering
3617805acb Remove declaration of xstrdup.
Instead, include "xalloc.h".
2003-01-10 08:41:28 +00:00
Jim Meyering
6f45173dec . 2003-01-09 20:59:09 +00:00
Jim Meyering
b1b0565faf Document readlink. 2003-01-09 20:53:40 +00:00
Jim Meyering
acd9f2ab3b copyright 2003-01-09 20:45:06 +00:00
Jim Meyering
3b3ff7872c *** empty log message *** 2003-01-09 20:43:05 +00:00
Jim Meyering
9681c225cb Include other part of Dmitry's patch.
(dist_man_MANS): Add readlink.1.
2003-01-09 20:42:33 +00:00
Jim Meyering
51accd1c5e *** empty log message *** 2003-01-09 20:39:43 +00:00
Jim Meyering
07a2a5a4be *** empty log message *** 2003-01-09 20:39:04 +00:00
Jim Meyering
30e7a37b70 Add readlink. 2003-01-09 20:38:48 +00:00
Jim Meyering
f3f599f657 Add readlink. 2003-01-09 20:37:41 +00:00
Jim Meyering
6b0465359f *** empty log message *** 2003-01-09 20:36:55 +00:00
Jim Meyering
229031ed3f (bin_PROGRAMS): Add readlink. 2003-01-09 20:36:37 +00:00
Jim Meyering
2ae02ab5b9 New program, by Dmitry V. Levin. 2003-01-09 20:35:13 +00:00
Jim Meyering
8ee5d881b1 (out-delim1, ..., out-delim5): Test new functionality. 2003-01-09 20:30:40 +00:00
Jim Meyering
322ee6e302 When selecting ranges of byte offsets (as opposed to ranges of fields)
and when --output-delimiter=STRING is specified, output STRING between
ranges of selected bytes.

(RANGE_START_SENTINEL): Define.
(output_delimiter_specified): New global.
(print_kth): Add parameter.  Adjust all callers.
(set_fields): Mark each range-start index with RANGE_START_SENTINEL.
(cut_bytes): When requested, output STRING between ranges of
selected bytes.
(main): Make a diagnostic a little clearer.
Based on a patch from Jan Nieuwenhuizen.
2003-01-09 20:16:58 +00:00
Jim Meyering
ba5be82b7e *** empty log message *** 2003-01-09 20:14:08 +00:00
Jim Meyering
a215ab54d3 *** empty log message *** 2003-01-09 19:30:28 +00:00
Jim Meyering
e66ab953ef (set_fields): Make code agree with comment:
Don't merge abutting ranges like 4- and 2-3.  This makes no
difference currently, but is required to support an upcoming change.
2003-01-09 19:30:22 +00:00
Jim Meyering
bc49481933 *** empty log message *** 2003-01-08 17:36:51 +00:00
Jim Meyering
8ca0769584 Undefine and define-away `const' after inclusion
of errno.h, not before.  Suggestion from Bruno Haible.
2003-01-08 17:36:35 +00:00
Jim Meyering
0f19450208 *** empty log message *** 2003-01-07 22:40:34 +00:00
Jim Meyering
0f076ebc12 *** empty log message *** 2003-01-07 17:12:16 +00:00
Jim Meyering
7d1c764098 (set_fields): Fix typo in comment. 2003-01-07 17:12:11 +00:00
Jim Meyering
d31fd7a77e tweak comment 2003-01-07 16:36:45 +00:00
Jim Meyering
1ef6e79882 add a comment 2003-01-07 16:06:56 +00:00
Jim Meyering
d14b4f476c *** empty log message *** 2003-01-07 15:59:48 +00:00
Jim Meyering
06ed252866 *** empty log message *** 2003-01-07 15:54:53 +00:00
Jim Meyering
819147ade4 (TESTS): Add not-owner. 2003-01-07 15:36:17 +00:00
Jim Meyering
6068858986 *** empty log message *** 2003-01-07 15:34:51 +00:00
Jim Meyering
6580a55aeb Remove the test for non-owner diagnostic.
Now, this tests only the nonexistent-directory diagnostic.
2003-01-07 15:34:34 +00:00
Jim Meyering
8586d4652e New test, mostly extracted from fail-diag. 2003-01-07 15:34:20 +00:00
Jim Meyering
0d07d1b2b7 *** empty log message *** 2003-01-07 14:44:54 +00:00
Jim Meyering
84cdbe6529 Fix typo: s/ld/ls/. 2003-01-07 14:44:45 +00:00
Jim Meyering
72d00a1c57 . 2003-01-07 14:12:30 +00:00
Jim Meyering
6a4d25740c tweak comment 2003-01-07 14:09:37 +00:00
Jim Meyering
fbb3b7b80c *** empty log message *** 2003-01-07 14:03:21 +00:00
Jim Meyering
e76d578bad Rework so that it may serve to define full_read, too. 2003-01-07 14:03:15 +00:00
Jim Meyering
0f0a65766e Simply #define FULL_READ and include full-write.c. 2003-01-07 14:03:05 +00:00
Jim Meyering
9d89ba4161 2002-12-10 Paul Eggert <eggert@twinsun.com>
Port exclude.c and exclude.h to more non-GNU systems, e.g. Solaris 7.

(FNM_CASEFOLD, FNM_LEADING_DIR): Define to 0 if not
defined (e.g., a pure POSIX system).
(EXCLUDE_macros_do_not_collide_with_FNM_macros): Use FNM_PATHNAME
instead of FNM_FILE_NAME, for compatibility with pure POSIX sytems.
2003-01-06 13:17:48 +00:00
Jim Meyering
783186bced 2002-12-10 Paul Eggert <eggert@twinsun.com>
Port exclude.c and exclude.h to more non-GNU systems, e.g. Solaris 7.

(EXCLUDE_ANCHORED, EXCLUDE_INCLUDE, EXCLUDE_WILDCARDS):
Choose values that are less likely to collide with system fnmatch
options.
2003-01-06 13:17:27 +00:00
Jim Meyering
cc334674f6 (libfetish_a_SOURCES): Add full-read.c and full-read.h. 2003-01-06 13:14:55 +00:00
Jim Meyering
685ac06eef . 2003-01-06 13:08:59 +00:00
Jim Meyering
dd02096234 Include full_read.h.
(get_fs_usage): Use full_read instead of safe_read.
2003-01-06 13:08:19 +00:00
Jim Meyering
a66b8da8d5 *** empty log message *** 2003-01-06 13:05:24 +00:00
Jim Meyering
b9ba08e368 (strdup): Remove unused declaration. 2003-01-06 13:04:50 +00:00
Jim Meyering
a7bed0741a (get_date): Test HAVE_STRUCT_TM_TM_ZONE, not HAVE_TM_ZONE. 2003-01-06 13:02:33 +00:00
Jim Meyering
d509325269 (utime_null): No need to call ftruncate if the file was
nonempty.  Patch by Bruno Haible.
(utime_null): Use SAFE_READ_ERROR.
2003-01-06 12:58:35 +00:00
Jim Meyering
e7ad638593 *** empty log message *** 2003-01-04 10:51:46 +00:00
Jim Meyering
7de3755878 Update copyright date. 2003-01-04 10:51:31 +00:00
Jim Meyering
79ea5a059c (TESTS): Add no-deref. 2003-01-04 10:46:56 +00:00
Jim Meyering
2076d0231d . 2003-01-04 10:45:42 +00:00
Jim Meyering
dc90551359 *** empty log message *** 2003-01-04 10:36:24 +00:00
Jim Meyering
7a1c2309c2 *** empty log message *** 2003-01-04 10:35:13 +00:00
Jim Meyering
a2b9cb05b7 Remove use of PARAMS. 2003-01-04 10:34:59 +00:00
Jim Meyering
a6b5021004 Remove use of PARAMS. 2003-01-04 10:33:01 +00:00
Jim Meyering
6df04c9288 Remove use of PARAMS. 2003-01-04 10:32:21 +00:00
Jim Meyering
83593d5f3a *** empty log message *** 2003-01-04 10:08:07 +00:00
Jim Meyering
8b6b22bcef rm could be tricked into mistakenly reporting a cycle.
* src/remove.c: [cycle_check_state]: New global.
(remove_cwd_entries): Adapt to new semantics of cycle_check.
(rm): Call cycle_check_init and cycle_check_free for each file.

When rm detects a cycle, don't abort the entire command,
but rather just the affected command line argument.
* src/remove.c: Include <setjmp.h>
(struct dirstack_state) [current_arg_jumpbuf]: New member.
(remove_cwd_entries): Call longjmp if we detect a cycle.
(rm): Call setjmp here.

* src/remove.c (cycle_check, is_power_of_two): Remove functions.
Instead, include cycle-check.h and use it.
2003-01-04 10:07:44 +00:00
Jim Meyering
e2b894c771 (struct dev_ino): Remove declaration. 2003-01-04 09:53:20 +00:00
Jim Meyering
a3e6d3aa63 Don't include trailing /. in diagnostics about directories.
(full_filename_): When FILENAME is just `.'
and there is a nonempty directory-name part, don't append `/.'.
2003-01-04 09:45:54 +00:00
Jim Meyering
b09da5c9d0 (remove_cwd_entries): Fix typos in comment. 2003-01-04 09:42:53 +00:00
Jim Meyering
2432611646 *** empty log message *** 2003-01-04 09:41:35 +00:00
Jim Meyering
818c25f686 (struct dirstack_state): Define.
To be used in place of these file-scoped globals ...
(dir_stack, len_stack, Active_dir): Remove globals.
(ds_init, ds_free): New functions.
(full_filename): Define.
(full_filename_): Rename from full_filename.



Begin to make AD_* functions more generic.

(AD_push_initial): Don't set status to RM_OK here.
(AD_push): Likewise.
(AD_INIT_OTHER_MEMBERS): Define.
(remove_dir): Define the `status' member manually after each
call to AD_push or AD_push_initial.
2003-01-04 09:41:24 +00:00
Jim Meyering
7e4c16df3d (TESTS): Add cycle. 2003-01-04 09:09:48 +00:00
Jim Meyering
c146a76b5d Remove trailing /. from diagnostic. 2003-01-04 09:03:45 +00:00
Jim Meyering
874f367c0a Enable this test -- now that we have the --presume-input-tty option. 2003-01-04 09:03:02 +00:00
Jim Meyering
432a5017a2 rm could be tricked into mistakenly reporting a cycle 2003-01-04 09:01:04 +00:00
Jim Meyering
5a0e8b1ab1 *** empty log message *** 2003-01-04 08:59:19 +00:00
Jim Meyering
10a0b7c14d (check-misc): New rule, to ensure that no more
S_IS* macro definitions sneak into the code.
(check): Depend on check-misc.
2003-01-04 08:59:15 +00:00
Jim Meyering
33ca4e1f5a [S_ISLNK, S_ISFIFO, S_ISSOCK]: Don't define.
They're already defined in sys2.h.
2003-01-04 08:58:12 +00:00
Jim Meyering
fd5d4e6d54 remove blank line 2003-01-04 08:55:30 +00:00
Jim Meyering
1cf764991f (count_entry) [S_ISLNK]: Don't define.
It's already defined in sys2.h.
2003-01-04 08:55:19 +00:00
Jim Meyering
a4efa35cd7 [S_ISLNK]: Don't define. It's already defined in sys2.h. 2003-01-04 08:44:11 +00:00
Jim Meyering
9434608b2b . 2003-01-04 08:42:26 +00:00
Jim Meyering
0bce0bb6f4 *** empty log message *** 2003-01-03 21:38:33 +00:00
Jim Meyering
08cf9aee8b Add copyright.
(AUTHORS): I suppose I've written it.
2003-01-03 21:38:27 +00:00
Jim Meyering
8256faecd8 *** empty log message *** 2003-01-03 21:34:16 +00:00
Jim Meyering
d45f740edc (false.c): Make the generated file be read-only. 2003-01-03 21:34:06 +00:00
Jim Meyering
8cce263649 . 2003-01-03 21:05:51 +00:00
Jim Meyering
d517c8fa79 (do_copy): Tweak diagnostic to be consistent with the one
from mv: s/missing file arguments/missing file argument/.
With --target-directory=DIR, cp and mv work with a single file argument.
Reported by Karl Berry.
2003-01-03 19:34:22 +00:00
Jim Meyering
820fd625f3 *** empty log message *** 2003-01-03 19:33:59 +00:00
Jim Meyering
1b6b9abd55 Include "dev-ino.h".
[struct dev_ino]: Remove declaration.
2003-01-03 19:33:52 +00:00
Jim Meyering
8e4c2127af *** empty log message *** 2003-01-03 19:31:10 +00:00
Jim Meyering
fe688e3d91 (libfetish_a_SOURCES): Add cycle-check.c, cycle-check.h, and dev-ino.h. 2003-01-03 19:31:01 +00:00
Jim Meyering
fab52f550d . 2003-01-03 19:30:29 +00:00
Jim Meyering
5ed7d34ed8 *** empty log message *** 2002-12-21 14:53:26 +00:00
Jim Meyering
e3c1118ce1 Generate MML-formatted announcement.
This makes it a *lot* harder to send stale MD5/SHA1 signatures.
2002-12-21 14:53:18 +00:00
Jim Meyering
317fa67e1e . 2002-12-21 14:50:45 +00:00
Jim Meyering
3156fcf62a *** empty log message *** 2002-12-21 14:42:02 +00:00
Jim Meyering
374d2948bc . 2002-12-21 14:41:58 +00:00
Jim Meyering
bb42dae7f2 *** empty log message *** 2002-12-20 20:10:59 +00:00
Jim Meyering
f331e1389c (touch): Change the wording of a diagnostic so
that it makes sense both when the file exists and when it doesn't.
2002-12-20 20:10:48 +00:00
Jim Meyering
5fcf19366e . 2002-12-19 20:30:39 +00:00
Jim Meyering
302165d602 (valid_options): Declare to be static. 2002-12-18 08:54:01 +00:00
Jim Meyering
7d29906690 . 2002-12-16 07:43:45 +00:00
Jim Meyering
4c14b0f08e . 2002-12-16 07:43:25 +00:00
Jim Meyering
63c56a6444 *** empty log message *** 2002-12-15 21:41:08 +00:00
Jim Meyering
dd2b357234 . 2002-12-15 21:40:56 +00:00
Jim Meyering
e7ff31d2ac Remove rules related to generating m4/jm-glibc-io.m4. 2002-12-15 21:40:30 +00:00
Jim Meyering
0a8353f85e *** empty log message *** 2002-12-15 21:39:41 +00:00
Jim Meyering
c7bc5000c9 Remove now-unused file. 2002-12-15 21:39:28 +00:00
Jim Meyering
a734df6426 (Makefile.am): Remove jm-glibc-io.m4 and jm-glibc-io.m4n. 2002-12-15 21:38:44 +00:00
Jim Meyering
97ce59e3bc (libfetish_a_SOURCES): Add strftime.h. 2002-12-15 21:33:42 +00:00
Jim Meyering
5da39e8d5c *** empty log message *** 2002-12-15 21:33:35 +00:00
Jim Meyering
470a990b59 New file, for declaration of nstrftime. 2002-12-15 21:33:29 +00:00
Jim Meyering
8aaa230726 *** empty log message *** 2002-12-15 20:55:20 +00:00
Jim Meyering
a05f170290 *** empty log message *** 2002-12-15 20:55:15 +00:00
Jim Meyering
85b26cb44d *** empty log message *** 2002-12-15 20:54:49 +00:00
Jim Meyering
a5f14f167e Remove all uses of `PARAMS'. 2002-12-15 20:54:29 +00:00
Jim Meyering
b7e390ca09 (PARAMS): Remove definition. 2002-12-15 20:53:36 +00:00
Jim Meyering
a6561c4753 (PARAMS): Remove definition. 2002-12-15 20:48:26 +00:00
Jim Meyering
a896d0a426 *** empty log message *** 2002-12-15 20:46:06 +00:00
Jim Meyering
eb4832a29c Remove declaration of nstrftime.
Include strftime.h instead.
2002-12-15 20:45:36 +00:00
Jim Meyering
576dca2909 . 2002-12-15 19:21:40 +00:00
Jim Meyering
60d48b0f32 *** empty log message *** 2002-12-15 08:40:42 +00:00
Jim Meyering
b647a582c0 *** empty log message *** 2002-12-15 07:43:12 +00:00
Jim Meyering
fda1cba3bf *** empty log message *** 2002-12-14 19:51:04 +00:00
Jim Meyering
e5855b15f1 ($(url_dir_list)): Use .../coreutils, not .../fetish. 2002-12-14 19:50:29 +00:00
Jim Meyering
3a0bfd5cda *** empty log message *** 2002-12-14 17:34:21 +00:00
Jim Meyering
ec2a27c16b [! HAVE_DECL_MEMRCHR]: Declare memrchr.
This is necessary at least for Irix6.5 when using c89.
Reported by Nelson Beebe.
2002-12-14 17:34:13 +00:00
Jim Meyering
80579847f4 *** empty log message *** 2002-12-14 17:21:32 +00:00
Jim Meyering
a50dbaf78c (TESTS): Add cat-tty-eof. 2002-12-14 17:21:25 +00:00
Jim Meyering
e4b01add78 *** empty log message *** 2002-12-14 17:21:04 +00:00
Jim Meyering
c5e036dcd4 test for a bug that appeared in cat from using a bad version of safe-read.c 2002-12-14 17:19:32 +00:00
Jim Meyering
5b372bd3cc *** empty log message *** 2002-12-14 16:29:11 +00:00
Jim Meyering
facdf8937d *** empty log message *** 2002-12-14 14:15:43 +00:00
Jim Meyering
6073421583 (usage): Specify how major and minor mode numbers are interpreted.
Remove now-redundant usage-specifying comment.
2002-12-14 14:15:38 +00:00
Jim Meyering
d09d7750ea *** empty log message *** 2002-12-14 14:14:25 +00:00
Jim Meyering
8ed95f0a9d *** empty log message *** 2002-12-14 13:31:05 +00:00
Jim Meyering
fcb430c20c *** empty log message *** 2002-12-14 13:27:59 +00:00
Jim Meyering
35ffb9714d (mknod invocation): Specify how major and minor mode numbers are interpreted. 2002-12-14 13:27:53 +00:00
Jim Meyering
98986162e7 bump to 4.5.5 2002-12-14 12:45:57 +00:00
Jim Meyering
0801186cb1 . 2002-12-13 22:34:11 +00:00
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
381 changed files with 73152 additions and 48912 deletions

View File

@@ -1 +1 @@
4.5.2
4.5.12

492
ABOUT-NLS
View File

@@ -171,232 +171,274 @@ Available Packages
==================
Languages are not equally supported in all packages. The following
matrix shows the current state of internationalization, as of August
2002. The matrix shows, in regard of each package, for which languages
matrix shows the current state of internationalization, as of February
2003. 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 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
Ready PO files az be bg ca cs da de el en en_GB eo es et fa fi
+-------------------------------------------------+
a2ps | [] [] [] [] [] |
aegis | () |
anubis | |
ap-utils | |
bash | [] [] [] |
batchelor | |
bfd | [] [] |
binutils | [] [] |
bison | [] [] [] [] |
clisp | [] [] [] |
clisp | |
coreutils | [] [] [] [] |
cpio | [] [] [] |
darkstat | () [] |
diffutils | [] [] [] [] [] [] [] |
enscript | [] [] [] |
error | [] [] [] [] |
fetchmail | [] () [] [] [] |
fileutils | [] [] [] [] |
findutils | [] [] [] [] [] [] [] |
flex | [] [] [] [] |
gas | [] |
gawk | [] [] [] |
gcal | [] |
gcc | [] [] |
gettext | [] [] [] [] [] |
gimp-print | |
gliv | |
gnucash | [] () |
gnucash-glossary| [] () [] |
gnupg | [] [] [] [] [] [] [] |
gpe-todo | |
gphoto2 | [] [] |
gprof | [] [] |
gpsdrive | () () () () |
grep | [] [] [] [] [] [] [] |
gretl | [] |
hello | [] [] [] [] [] [] [] [] [] |
id-utils | [] [] |
indent | [] [] [] [] [] [] |
jpilot | () [] [] [] |
jwhois | [] |
kbd | [] [] [] |
ld | [] [] |
libc | [] [] [] [] [] [] [] |
libgpewidget | |
libiconv | [] [] [] [] [] [] |
lifelines | [] () |
lilypond | [] |
lingoteach | [] |
lingoteach_lessons| () () |
lynx | [] [] [] [] [] |
m4 | [] [] [] [] |
mailutils | [] [] |
make | [] [] [] |
man-db | [] () [] () |
mysecretdiary | [] [] [] |
nano | [] () [] [] [] |
nano_1_0 | [] () [] [] [] |
opcodes | [] [] |
parted | [] [] [] [] |
ptx | [] [] [] [] [] [] [] |
python | |
radius | |
recode | [] [] [] [] [] |
sed | [] [] [] [] [] [] |
sh-utils | [] [] [] [] |
sharutils | [] [] [] [] [] [] [] |
sketch | [] () [] |
soundtracker | [] [] [] |
sp | [] |
tar | [] [] [] [] [] [] |
texinfo | [] [] [] [] |
textutils | [] [] [] [] |
tin | () () [] |
util-linux | [] [] [] [] [] [] [] |
vorbis-tools | [] [] |
wastesedge | () |
wdiff | [] [] [] [] [] |
wget | [] [] [] [] [] [] [] [] [] |
xchat | |
xpad | |
+-------------------------------------------------+
az be bg ca cs da de el en en_GB eo es et fa fi
0 1 2 26 9 49 46 9 1 1 11 52 19 1 15
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
fr gl he hr hu id it ja ko lg lv ms nb nl
+-------------------------------------------+
a2ps | [] () () [] [] |
aegis | () |
anubis | [] [] |
ap-utils | [] |
bash | [] [] |
batchelor | |
bfd | [] [] |
binutils | [] [] |
bison | [] [] [] [] |
clisp | [] [] |
clisp | |
coreutils | [] [] [] |
cpio | [] [] [] [] [] |
darkstat | () [] [] [] |
diffutils | [] [] [] [] [] [] |
enscript | [] [] [] |
error | [] [] [] |
fetchmail | [] |
fileutils | [] [] [] [] |
findutils | [] [] [] [] [] [] [] [] [] |
flex | [] [] |
gas | [] |
gawk | [] [] |
gcal | [] |
gcc | [] |
gettext | [] [] [] |
gimp-print | |
gliv | () |
gnucash | [] [] [] |
gnucash-glossary| [] [] |
gnupg | [] [] [] [] [] |
gpe-todo | |
gphoto2 | [] [] [] |
gprof | [] [] |
gpsdrive | () [] () () |
grep | [] [] [] [] [] [] [] [] |
gretl | [] |
hello | [] [] [] [] [] [] [] [] [] [] [] [] [] |
id-utils | [] [] [] |
indent | [] [] [] [] [] [] |
jpilot | [] () () |
jwhois | [] [] [] [] |
kbd | [] |
ld | [] |
libc | [] [] [] [] [] [] |
libgpewidget | |
libiconv | [] [] [] [] [] [] |
lifelines | () |
lilypond | [] [] |
lingoteach | [] |
lingoteach_lessons| |
lynx | [] [] [] [] |
m4 | [] [] [] [] [] |
mailutils | |
make | [] [] [] [] [] [] [] |
man-db | [] () () |
mysecretdiary | [] [] |
nano | [] [] [] [] [] [] |
nano_1_0 | [] [] [] [] [] [] |
opcodes | [] [] [] |
parted | [] [] [] |
ptx | [] [] [] [] [] [] |
python | |
radius | |
recode | [] [] [] [] [] |
sed | [] [] [] [] [] |
sh-utils | [] [] [] [] [] |
sharutils | [] [] [] [] [] |
sketch | [] |
soundtracker | [] [] [] |
sp | [] () |
tar | [] [] [] [] [] [] [] [] [] |
texinfo | [] [] [] [] |
textutils | [] [] [] [] [] [] |
tin | |
util-linux | [] [] () [] [] |
vorbis-tools | [] |
wastesedge | () |
wdiff | [] [] [] [] [] |
wget | [] [] [] [] [] [] [] |
xchat | |
xpad | |
+-------------------------------------------+
fr gl he hr hu id it ja ko lg lv ms nb nl
59 23 8 10 26 20 18 26 8 0 1 8 7 24
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
nn no pl pt pt_BR ro ru sk sl sv tr uk zh_CN zh_TW
+----------------------------------------------------+
a2ps | () () () [] [] [] [] [] [] | 14
aegis | () | 0
anubis | [] [] | 4
ap-utils | () () | 1
bash | [] [] | 7
batchelor | | 0
bfd | [] [] | 6
binutils | [] [] | 6
bison | [] [] [] | 11
clisp | | 5
clisp | | 0
coreutils | [] [] [] [] [] | 12
cpio | [] [] [] [] [] | 13
darkstat | [] [] () () | 6
diffutils | [] [] [] [] [] [] | 19
enscript | [] [] [] [] | 10
error | [] [] [] [] | 11
fetchmail | () () [] | 6
fileutils | [] [] [] [] [] [] | 14
findutils | [] [] [] [] [] [] [] [] | 24
flex | [] [] [] [] | 10
gas | [] | 3
gawk | [] [] | 7
gcal | [] [] | 4
gcc | [] | 4
gettext | [] [] [] [] [] [] | 14
gimp-print | | 0
gliv | [] | 1
gnucash | [] [] [] [] [] | 9
gnucash-glossary| [] [] [] [] | 8
gnupg | [] [] [] [] | 16
gpe-todo | | 0
gphoto2 | [] [] | 7
gprof | [] [] [] | 7
gpsdrive | [] [] | 3
grep | [] [] [] [] [] | 20
gretl | | 2
hello | [] [] [] [] [] [] [] [] [] | 31
id-utils | [] [] [] [] | 9
indent | [] [] [] [] [] | 17
jpilot | () [] [] [] [] | 8
jwhois | [] () () [] [] | 8
kbd | [] [] | 6
ld | [] [] | 5
libc | [] [] [] [] [] [] [] | 20
libgpewidget | | 0
libiconv | [] [] [] [] [] [] | 18
lifelines | [] | 2
lilypond | [] | 4
lingoteach | [] [] | 4
lingoteach_lessons| () | 0
lynx | [] [] [] [] | 13
m4 | [] [] [] [] | 13
mailutils | | 2
make | [] [] [] [] [] | 15
man-db | [] | 4
mysecretdiary | [] [] [] | 8
nano | [] [] [] | 13
nano_1_0 | [] [] [] [] [] | 15
opcodes | [] [] [] | 8
parted | [] [] [] [] [] | 12
ptx | [] [] [] [] [] [] [] | 20
python | | 0
radius | | 0
recode | [] [] [] [] [] [] | 16
sed | [] [] [] [] [] | 16
sh-utils | [] [] [] | 12
sharutils | [] [] [] [] | 16
sketch | [] [] | 5
soundtracker | [] | 7
sp | [] | 3
tar | [] [] [] [] [] [] [] [] [] | 24
texinfo | [] [] [] [] | 12
textutils | [] [] [] [] [] | 15
tin | | 1
util-linux | [] [] [] | 14
vorbis-tools | [] | 4
wastesedge | | 0
wdiff | [] [] [] [] [] | 15
wget | [] [] [] [] [] [] [] [] | 24
xchat | | 0
xpad | | 0
+----------------------------------------------------+
43 teams nn no pl pt pt_BR ro ru sk sl sv tr uk zh_CN zh_TW
82 domains 3 4 14 4 34 1 29 14 13 53 46 6 9 13 723
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
@@ -409,9 +451,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 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
If February 2003 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
@@ -426,7 +468,7 @@ library, whereas only free software can use `libintl' as a static
library or use modified versions of `libintl'.
Once the sources are changed appropriately and the setup can handle
to use of `gettext' the only thing missing are the translations. The
the use of `gettext' the only thing missing are the translations. The
Free Translation Project is also available for packages which are not
developed inside the GNU project. Therefore the information given above
applies also for every other Free Software Project. Contact

1466
ChangeLog

File diff suppressed because it is too large Load Diff

View File

@@ -14,6 +14,9 @@ have-Makefile := $(shell test -f Makefile && echo yes)
# give them a diagnostic.
ifeq ($(have-Makefile),yes)
# Make tar archive easier to reproduce.
export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
include Makefile
include $(srcdir)/Makefile.cfg
include $(srcdir)/Makefile.maint

View File

@@ -3,6 +3,7 @@
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 \

View File

@@ -1,39 +1,30 @@
# -*- makefile -*-
## Customize Makefile.maint.
url_dir_list = \
ftp://alpha.gnu.org/gnu/fetish \
http://fetish.sf.net \
# Use alpha.gnu.org for alpha and beta releases.
# Use ftp.gnu.org for major releases.
gnu_ftp_host-alpha = alpha
gnu_ftp_host-beta = alpha
gnu_ftp_host-major = ftp
gnu_rel_host = $(gnu_ftp_host-$(RELEASE_TYPE))
# Files that `make wget-update' should update.
url_dir_list = \
ftp://$(gnu_rel_host).gnu.org/gnu/coreutils \
http://fetish.sf.net
# Files to update automatically.
wget_files = \
$(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
###############################################
# FIXME: CAUTION this list is a duplicate of one in lib/Makefile.am.
io_functions = \
clearerr feof ferror fflush fgets fputc fputs \
fread fwrite getc getchar putc putchar
unlocked_io_functions = $(patsubst %,%_unlocked,$(io_functions))
comma_separated = $(shell echo $(unlocked_io_functions)|tr -s ' ' ,)
# This temp file may not be e.g., $@t, since that may be in a read-only
# directory. Instead, use a file in the current directory.
t_io = $(notdir $@)t
# This rule requires GNU make.
$(srcdir)/m4/jm-glibc-io.m4: $(srcdir)/m4/jm-glibc-io.m4n Makefile.cfg
echo dnl This file is automatically generated from $(notdir $<). \
> $(t_io)
echo >> $(t_io)
sed \
-e 's/@space_separated@/$(unlocked_io_functions)/g' \
-e 's/@comma_separated@/$(comma_separated)/g' \
$< >> $(t_io)
mv $(t_io) $@
local_updates = wget-update cvs-update

View File

@@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.7 from Makefile.am.
# Makefile.in generated by automake 1.7.3 from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -74,10 +74,12 @@ 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@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
LTLIBOBJS = @LTLIBOBJS@
@@ -117,6 +119,7 @@ ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
bindir = @bindir@
build = @build@
@@ -149,6 +152,7 @@ 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 \
@@ -209,7 +213,7 @@ $(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(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
$(ACLOCAL_M4): configure.ac m4/acl.m4 m4/afs.m4 m4/assert.m4 m4/bison.m4 m4/boottime.m4 m4/c-stack.m4 m4/canonicalize.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/ftw.m4 m4/getcwd-path-max.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/onceonly.m4 m4/open-max.m4 m4/perl.m4 m4/prereq.m4 m4/progtest.m4 m4/putenv.m4 m4/regex.m4 m4/rename.m4 m4/restrict.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
@@ -372,9 +376,11 @@ distdir: $(DISTFILES)
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,/[^/]*$$,,'`; \
@@ -433,16 +439,14 @@ 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
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& $(mkinstalldirs) $$dc_destdir \
&& $(MAKE) $(AM_MAKEFLAGS) distcheck-hook \
&& cd $(distdir)/=build \
&& cd $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
--with-included-gettext \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -453,7 +457,9 @@ distcheck: dist
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& ({ \
(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; \

View File

@@ -2,7 +2,7 @@
# This Makefile fragment is shared between fileutils, sh-utils, textutils,
# CPPI, Bison, and Autoconf.
## Copyright (C) 2001-2002 Free Software Foundation, Inc.
## Copyright (C) 2001-2003 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,22 +22,17 @@
# 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
ifeq ($(origin prev_version_file), undefined)
prev_version_file = .prev-version
endif
THIS_VERSION_REGEXP = $(subst .,\.,$(VERSION))
PREV_VERSION := $(shell cat $(prev_version_file))
PREV_VERSION_REGEXP := $(shell echo $(PREV_VERSION)|sed 's/\./\\./g')
tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]')
tag-this-version = $(subst .,_,$(VERSION))
tag-prev-version = $(subst .,_,$(PREV_VERSION))
this-cvs-tag = $(tag-package)-$(tag-this-version)
prev-cvs-tag = $(tag-package)-$(tag-prev-version)
my_distdir = $(PACKAGE)-$(VERSION)
# Old releases are stored here.
@@ -55,7 +50,7 @@ release_archive_dir ?= ../release
# new ChangeLog entries.
local-check = \
po-check copyright-check writable-files m4-check author_mark_check \
changelog-check strftime-check header-check
changelog-check strftime-check header-check makefile_path_separator_check
.PHONY: $(local-check)
# Make sure C source files in src/ don't include xalloc.h directly,
@@ -100,7 +95,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/*.[ch] src/*.[ch] | 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
@@ -113,6 +117,17 @@ author_mark_check:
{ echo 'Makefile.maint: enclose the above strings in N_ (...)' 1>&2; \
exit 1; } || :
# Sometimes it is useful to change the PATH environment variable
# in Makefiles. When doing so, it's better not to use the Unix-centric
# path separator of `:', but rather the automake-provided `@PATH_SEPARATOR@'.
# It'd be better to use `find -print0 ...|xargs -0 ...', but less portable,
# and there probably aren't many projects with so many Makefile.am files
# that we'd have to worry about limits on command line length.
msg = 'Makefile.maint: Do not use `:'\'' above; use @PATH_SEPARATOR@ instead'
makefile_path_separator_check:
@grep 'PATH=.*:' `find $(srcdir) -name Makefile.am` \
&& { echo $(msg) 1>&2; exit 1; } || :
# Check that `make alpha' will not fail at the end of the process.
writable-files:
if test -d $(release_archive_dir); then :; else \
@@ -183,10 +198,11 @@ null_AM_MAKEFLAGS = \
# by the use of _(). The --disable-nls effectively defines away that macro,
# and building with CFLAGS='-Wformat -Werror' causes any format warning to be
# treated as a failure.
t=./=test
TMPDIR ?= /tmp
t=$(TMPDIR)/$(PACKAGE)/test
my-distcheck: $(local-check)
-rm -rf $(t)
mkdir $(t)
mkdir -p $(t)
GZIP=$(GZIP_ENV) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz
cd $(t)/$(distdir) \
&& ./configure --disable-nls \
@@ -195,8 +211,8 @@ my-distcheck: $(local-check)
&& $(MAKE) dvi \
&& $(MAKE) check \
&& $(MAKE) distclean
cd $(t) && mv $(distdir) $(distdir).old \
&& $(AMTAR) -zxf ../$(distdir).tar.gz
(cd $(t) && mv $(distdir) $(distdir).old \
&& $(AMTAR) -zxf - ) < $(distdir).tar.gz
diff -ur $(t)/$(distdir).old $(t)/$(distdir)
-rm -rf $(t)
@echo "========================"; \
@@ -225,66 +241,67 @@ rel-check:
prev-tgz = $(PACKAGE)-$(PREV_VERSION).tar.gz
xd-delta = $(PACKAGE)-$(PREV_VERSION)-$(VERSION).xdelta
news-r1 = /^[^ ].*$(THIS_VERSION_REGEXP)[]:]/
news-r2 = /^[^ ].*$(PREV_VERSION_REGEXP)[]:]/
signatures = $(distdir).tar.bz2.sig $(distdir).tar.gz.sig
signatures ?= $(distdir).tar.bz2.sig $(distdir).tar.gz.sig
%.sig: %
gpg --detach-sign $<
rel-files = $(xd-delta) $(distdir).tar.bz2 $(distdir).tar.gz
rel-files = $(xd-delta) $(distdir).tar.bz2 $(distdir).tar.gz $(signatures)
announcement: NEWS ChangeLog $(rel-files) $(signatures)
@( \
echo Subject: $(my_distdir) released; \
echo; \
echo '<#secure method=pgpmime mode=sign>'; \
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 GPG detached signatures:"; \
echo; \
for url in $(url_dir_list); do \
echo " $$url/$(my_distdir).tar.gz.sig"; \
echo " $$url/$(my_distdir).tar.bz2.sig"; \
done; \
echo; \
echo "Here are the MD5 and SHA1 signatures:"; \
echo; \
echo "$(tgz-md5) $(my_distdir).tar.gz"; \
echo "$(bz2-md5) $(my_distdir).tar.bz2"; \
echo "$(xdelta-md5) $(xd-delta)"; \
echo "$(tgz-sha1) $(my_distdir).tar.gz"; \
echo "$(bz2-sha1) $(my_distdir).tar.bz2"; \
echo "$(xdelta-sha1) $(xd-delta)"; \
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"'; \
)
@./announce-gen \
--release-type=$(RELEASE_TYPE) \
--package=$(PACKAGE) \
--prev=$(PREV_VERSION) \
--curr=$(VERSION) \
--release-archive-directory=$(release_archive_dir) \
--news=NEWS \
$(addprefix --url-dir=, $(url_dir_list)) \
## ---------------- ##
## Updating files. ##
## ---------------- ##
WGET = wget
ftp-gnu = ftp://ftp.gnu.org/gnu
www-gnu = http://www.gnu.org
# 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.
@@ -301,8 +318,8 @@ ansi2knr.c-url_prefix = ftp://ftp.cs.wisc.edu/ghost/
texinfo.tex-url_prefix = $(ftp-gnu)/texinfo/
standards.texi-url_prefix = $(ftp-gnu)/GNUinfo/
make-stds.texi-url_prefix = $(ftp-gnu)/GNUinfo/
standards.texi-url_prefix = $(www-gnu)/prep/
make-stds.texi-url_prefix = $(standards.texi-url_prefix)
target = $(patsubst get-%, %, $@)
url = $($(notdir $(target))-url_prefix)$(notdir $(target))
@@ -312,16 +329,27 @@ $(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)
cd config && \
for f in depcomp missing mkinstalldirs; do \
.PHONY: cvs-update
cvs-update:
fail=; \
for f in $(cvs_files); do \
test -f $$f || { echo "*** skipping $$f" 1>&2; continue; }; \
echo checking out $$f...; \
$(CVS) -d $(automake_repo) co -p automake/lib/$$f > $$f.t \
cvs diff $$f > /dev/null \
|| { echo "*** $$f is locally modified; skipping it" 1>&2; \
fail=yes; 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
done; \
test "$$fail" && exit 1
define emit-upload-commands
echo =====================================
@@ -335,10 +363,11 @@ endef
$(xd-delta): $(release_archive_dir)/$(prev-tgz) $(distdir).tar.gz
xdelta delta -9 $^ $@ || :
alpha: $(local-check)
.PHONY: alpha beta major
alpha beta major: $(local-check)
$(MAKE) cvs-dist
$(MAKE) $(xd-delta)
$(MAKE) -s announcement > /tmp/announce-$(my_distdir)
$(MAKE) -s announcement RELEASE_TYPE=$@ > /tmp/announce-$(my_distdir)
ln $(rel-files) $(release_archive_dir)
chmod a-w $(rel-files)
echo $(VERSION) > $(prev_version_file)

350
NEWS
View File

@@ -1,6 +1,133 @@
[5.0]
* false --help now exits nonzero
[4.5.12]
* printf no longer treats \x specially when POSIXLY_CORRECT is set
* printf avoids buffer overrun with format ending in a backslash and
* printf avoids buffer overrun with incomplete conversion specifier
* printf accepts multiple flags in a single conversion specifier
[4.5.11]
* seq no longer requires that a field width be specified
* seq no longer fails when given a field width of `0'
* seq now accepts ` ' and `'' as valid format flag characters
* df now shows a HOSTNAME: prefix for each remote-mounted file system on AIX 5.1
* portability tweaks for HP-UX, AIX 5.1, DJGPP
[4.5.10]
* printf no longer segfaults for a negative field width or precision
* shred now always enables --exact for non-regular files
* du no longer lists hard-linked files more than once
* du no longer dumps core on some systems due to `infinite' recursion
via nftw's use of the buggy replacement function in getcwd.c
* portability patches for a few vendor compilers and 64-bit systems
* du -S *really* now works like it did before the change in 4.5.5
[4.5.9]
* du no longer truncates file sizes or sums to fit in 32-bit size_t
* work around Linux kernel bug in getcwd (fixed in 2.4.21-pre4), so that pwd
now fails if the name of the working directory is so long that getcwd
truncates it. Before it would print the truncated name and exit successfully.
* `df /some/mount-point' no longer hangs on a GNU libc system when another
hard-mounted NFS file system (preceding /some/mount-point in /proc/mounts)
is inaccessible.
* rm -rf now gives an accurate diagnostic when failing to remove a file
under certain unusual conditions
* mv and `cp --preserve=links' now preserve multiple hard links even under
certain unusual conditions where they used to fail
[4.5.8]
* du -S once again works like it did before the change in 4.5.5
* stat accepts a new file format, %B, for the size of each block reported by %b
* du accepts new option: --apparent-size
* du --bytes (-b) works the same way it did in fileutils-3.16 and before
* du reports proper sizes for directories (not zero) (broken in 4.5.6 or 4.5.7)
* df now always displays under `Filesystem', the device file name
corresponding to the listed mount point. Before, for a block- or character-
special file command line argument, df would display that argument. E.g.,
`df /dev/hda' would list `/dev/hda' as the `Filesystem', rather than say
/dev/hda3 (the device on which `/' is mounted), as it does now.
* test now works properly when invoked from a set user ID or set group ID
context and when testing access to files subject to alternate protection
mechanisms. For example, without this change, a set-UID program that invoked
`test -w F' (to see if F is writable) could mistakenly report that it *was*
writable, even though F was on a read-only file system, or F had an ACL
prohibiting write access, or F was marked as immutable.
[4.5.7]
* du would fail with more than one DIR argument when any but the last did not
contain a slash (due to a bug in ftw.c)
[4.5.6]
* du no longer segfaults on Solaris systems (fixed heap-corrupting bug in ftw.c)
* du --exclude=FILE works once again (this was broken by the rewrite for 4.5.5)
* du no longer gets a failed assertion for certain hierarchy lay-outs
involving hard-linked directories
* `who -r' no longer segfaults when using non-C-locale messages
* df now displays a mount point (usually `/') for non-mounted
character-special and block files
[4.5.5]
* ls --dired produces correct byte offset for file names containing
nonprintable characters in a multibyte locale
* du has been rewritten to use a variant of GNU libc's ftw.c
* du now counts the space associated with a directory's directory entry,
even if it cannot list or chdir into that subdirectory.
* du -S now includes the st_size of each entry corresponding to a subdirectory
* rm on FreeBSD can once again remove directories from NFS-mounted file systems
* ls has a new option --dereference-command-line-symlink-to-dir, which
corresponds to the new default behavior when none of -d, -l -F, -H, -L
has been specified.
* ls dangling-symlink now prints `dangling-symlink'.
Before, it would fail with `no such file or directory'.
* ls -s symlink-to-non-dir and ls -i symlink-to-non-dir now print
attributes of `symlink', rather than attributes of their referents.
* Fix a bug introduced in 4.5.4 that made it so that ls --color would no
longer highlight the names of files with the execute bit set when not
specified on the command line.
* shred's --zero (-z) option no longer gobbles up any following argument.
Before, `shred --zero file' would produce `shred: missing file argument',
and worse, `shred --zero f1 f2 ...' would appear to work, but would leave
the first file untouched.
* readlink: new program
* cut: new feature: when used to select ranges of byte offsets (as opposed
to ranges of fields) and when --output-delimiter=STRING is specified,
output STRING between ranges of selected bytes.
* rm -r can no longer be tricked into mistakenly reporting a cycle.
* when rm detects a directory cycle, it no longer aborts the entire command,
but rather merely stops processing the affected command line argument.
[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
@@ -9,9 +136,230 @@
* 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:
========================================================================
Here are the NEWS entries made from fileutils-4.1 until the
point at which the packages merged to form the coreutils:
[4.1.11]
* `rm symlink-to-unwritable' doesn't prompt [introduced in 4.1.10]
[4.1.10]
* rm once again gives a reasonable diagnostic when failing to remove a file
owned by someone else in a sticky directory [introduced in 4.1.9]
* df now rounds all quantities up, as per POSIX.
* New ls time style: long-iso, which generates YYYY-MM-DD HH:MM.
* Any time style can be preceded by "posix-"; this causes "ls" to
use traditional timestamp format when in the POSIX locale.
* The default time style is now posix-long-iso instead of posix-iso.
Set TIME_STYLE="posix-iso" to revert to the behavior of 4.1.1 thru 4.1.9.
* `rm dangling-symlink' doesn't prompt [introduced in 4.1.9]
* stat: remove support for --secure/-s option and related %S and %C format specs
* stat: rename --link/-l to --dereference/-L.
The old options will continue to work for a while.
[4.1.9]
* rm can now remove very deep hierarchies, in spite of any limit on stack size
* new programs: link, unlink, and stat
* New ls option: --author (for the Hurd).
* `touch -c no-such-file' no longer fails, per POSIX
[4.1.8]
* mv no longer mistakenly creates links to preexisting destination files
that aren't moved
[4.1.7]
* rm: close a hole that would allow a running rm process to be subverted
[4.1.6]
* New cp option: --copy-contents.
* cp -r is now equivalent to cp -R. Use cp -R -L --copy-contents to get the
traditional (and rarely desirable) cp -r behavior.
* ls now accepts --time-style=+FORMAT, where +FORMAT works like date's format
* The obsolete usage `touch [-acm] MMDDhhmm[YY] FILE...' is no longer
supported on systems conforming to POSIX 1003.1-2001. Use touch -t instead.
* cp and inter-partition mv no longer give a misleading diagnostic in some
unusual cases
[4.1.5]
* cp -r no longer preserves symlinks
* The block size notation is now 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 missing `B' (e.g. `1M') has the same meaning as before.
A trailing `B' now means decimal, not binary; this is a silent change.
The nonstandard `D' suffix (e.g. `1MD') is now obsolescent.
* -H or --si now outputs the trailing 'B', for consistency with the above.
* Programs now output trailing 'K' (not 'k') to mean 1024, as per IEC 60027-2.
* 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'.
* The following options are now obsolescent, as their names are
incompatible with IEC 60027-2:
df, du: -m or --megabytes (use -BM or --block-size=1M)
df, du, ls: --kilobytes (use --block-size=1K)
[4.1.4]
* df --local no longer lists smbfs file systems whose name starts with //
* dd now detects the Linux/tape/lseek bug at run time and warns about it.
[4.1.3]
* ls -R once again outputs a blank line between per-directory groups of files.
This was broken by the cycle-detection change in 4.1.1.
* dd once again uses `lseek' on character devices like /dev/mem and /dev/kmem.
On systems with the linux kernel (at least up to 2.4.16), dd must still
resort to emulating `skip=N' behavior using reads on tape devices, because
lseek has no effect, yet appears to succeed. This may be a kernel bug.
[4.1.2]
* cp no longer fails when two or more source files are the same;
now it just gives a warning and doesn't copy the file the second time.
E.g., cp a a d/ produces this:
cp: warning: source file `a' specified more than once
* chmod would set the wrong bit when given symbolic mode strings like
these: g=o, o=g, o=u. E.g., `chmod a=,o=w,ug=o f' would give a mode
of --w-r---w- rather than --w--w--w-.
[4.1.1]
* mv (likewise for cp), now fails rather than silently clobbering one of
the source files in the following example:
rm -rf a b c; mkdir a b c; touch a/f b/f; mv a/f b/f c
* ls -R detects directory cycles, per POSIX. It warns and doesn't infloop.
* cp's -P option now means the same as --no-dereference, per POSIX.
Use --parents to get the old meaning.
* When copying with the -H and -L options, cp can preserve logical
links between source files with --preserve=links
* cp accepts new options:
--preserve[={mode,ownership,timestamps,links,all}]
--no-preserve={mode,ownership,timestamps,links,all}
* cp's -p and --preserve options remain unchanged and are equivalent
to `--preserve=mode,ownership,timestamps'
* mv and cp accept a new option: --reply={yes,no,query}; provides a consistent
mechanism to control whether one is prompted about certain existing
destination files. Note that cp's and mv's -f options don't have the
same meaning: cp's -f option no longer merely turns off `-i'.
* remove portability limitations (e.g., PATH_MAX on the Hurd, fixes for
64-bit systems)
* mv now prompts before overwriting an existing, unwritable destination file
when stdin is a tty, unless --force (-f) is specified, as per POSIX.
* mv: fix the bug whereby `mv -uf source dest' would delete source,
even though it's older than dest.
* chown's --from=CURRENT_OWNER:CURRENT_GROUP option now works
* cp now ensures that the set-user-ID and set-group-ID bits are cleared for
the destination file when when copying and not preserving permissions.
* `ln -f --backup k k' gives a clearer diagnostic
* ls no longer truncates user names or group names that are longer
than 8 characters.
* ls's new --dereference-command-line option causes it to dereference
symbolic links on the command-line only. It is the default unless
one of the -d, -F, or -l options are given.
* ls -H now means the same as ls --dereference-command-line, as per POSIX.
* ls -g now acts like ls -l, except it does not display owner, as per POSIX.
* ls -n now implies -l, as per POSIX.
* ls can now display dates and times in one of four time styles:
- The `full-iso' time style gives full ISO-style time stamps like
`2001-05-14 23:45:56.477817180 -0700'.
- The 'iso' time style gives ISO-style time stamps like '2001-05-14 '
and '05-14 23:45'.
- The 'locale' time style gives locale-dependent time stamps like
'touko 14 2001' and 'touko 14 23:45' (in a Finnish locale).
- The 'posix-iso' time style gives traditional POSIX-locale
time stamps like 'May 14 2001' and 'May 14 23:45' unless the user
specifies a non-POSIX locale, in which case it uses ISO-style dates.
This is the default.
You can specify a time style with an option like --time-style='iso'
or with an environment variable like TIME_STYLE='iso'. GNU Emacs 21
and later can parse ISO dates, but older Emacs versions cannot, so
if you are using an older version of Emacs outside the default POSIX
locale, you may need to set TIME_STYLE="locale".
* --full-time is now an alias for "-l --time-style=full-iso".
========================================================================
Here are the NEWS entries made from sh-utils-2.0 until the
point at which the packages merged to form the coreutils:
[2.0.15]
* date no longer accepts e.g., September 31 in the MMDDhhmm syntax
* fix a bug in this package's .m4 files and in configure.ac
[2.0.14]
* nohup's behavior is changed as follows, to conform to POSIX 1003.1-2001:
- nohup no longer adjusts scheduling priority; use "nice" for that.
- nohup now redirects stderr to stdout, if stderr is not a terminal.
- nohup exit status is now 126 if command was found but not invoked,
127 if nohup failed or if command was not found.
[2.0.13]
* uname and uptime work better on *BSD systems
* pathchk now exits nonzero for a path with a directory component
that specifies a non-directory
[2.0.12]
* kill: new program
* who accepts new options: --all (-a), --boot (-b), --dead (-d), --login,
--process (-p), --runlevel (-r), --short (-s), --time (-t), --users (-u).
The -u option now produces POSIX-specified results and is the same as
the long option `--users'. --idle is no longer the same as -u.
* The following changes apply on systems conforming to POSIX 1003.1-2001,
and are required by the new POSIX standard:
- `date -I' is no longer supported. Instead, use `date --iso-8601'.
- `nice -NUM' is no longer supported. Instead, use `nice -n NUM'.
* New 'uname' options -i or --hardware-platform, and -o or --operating-system.
'uname -a' now outputs -i and -o information at the end.
New uname option --kernel-version is an alias for -v.
Uname option --release has been renamed to --kernel-release,
and --sysname has been renamed to --kernel-name;
the old options will work for a while, but are no longer documented.
* 'expr' now uses the LC_COLLATE locale for string comparison, as per POSIX.
* 'expr' now requires '+' rather than 'quote' to quote tokens;
this removes an incompatibility with POSIX.
* date -d 'last friday' would print a date/time that was one hour off
(e.g., 23:00 on *thursday* rather than 00:00 of the preceding friday)
when run such that the current time and the target date/time fall on
opposite sides of a daylight savings time transition.
This problem arose only with relative date strings like `last monday'.
It was not a problem with strings that include absolute dates.
* factor is twice as fast, for large numbers
[2.0.11]
* setting the date now works properly, even when using -u
* `date -f - < /dev/null' no longer dumps core
* some DOS/Windows portability changes
[2.0j]
* `date -d DATE' now parses certain relative DATEs correctly
[2.0i]
* fixed a bug introduced in 2.0h that made many programs fail with a
`write error' when invoked with the --version option
[2.0h]
* all programs fail when printing --help or --version output to a full device
* printf exits nonzero upon write failure
* yes now detects and terminates upon write failure
* date --rfc-822 now always emits day and month names from the `C' locale
* portability tweaks for Solaris8, Ultrix, and DOS
[2.0g]
* date now handles two-digit years with leading zeros correctly.
* printf interprets unicode, \uNNNN \UNNNNNNNN, on systems with the
required support; from Bruno Haible.
* stty's rprnt attribute now works on HPUX 10.20
* seq's --equal-width option works more portably
[2.0f]
* fix build problems with ut_name vs. ut_user
[2.0e]
* stty: fix long-standing bug that caused test failures on at least HPUX
systems when COLUMNS was set to zero
* still more portability fixes
* unified lib/: now that directory and most of the configuration framework
is common between fileutils, textutils, and sh-utils
[2.0d]
* fix portability problem with sleep vs lib/strtod.c's requirement for -lm
[2.0c]
* fix portability problems with nanosleep.c and with the new code in sleep.c
[2.0b]
* Regenerate lib/Makefile.in so that nanosleep.c is distributed.
[2.0a]
* sleep accepts floating point arguments on command line
* sleep's clock continues counting down when sleep is suspended
* when a suspended sleep process is resumed, it continues sleeping if
there is any time remaining
* who once again prints whatever host information it has, even without --lookup
========================================================================
For older NEWS entries for the fileutils, textutils, and sh-utils
packages, see ./old/*/NEWS.
This package began as the union of the following:
textutils-2.1, fileutils-4.1.11, sh-utils-2.0.15.

42
README
View File

@@ -11,9 +11,9 @@ The programs that can be built with this package are:
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
printenv printf ptx pwd readlink 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.
@@ -53,6 +53,36 @@ 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).
***************************************
Last-minute notes, before coreutils-5.0
---------------------------------------
A known problem exists when compiling on HPUX on both hppa and ia64
in 64-bit mode (i.e. +DD64) on all known HPUX 11.x versions. This
is not due to a bug in the package but instead due to a bug in the
system header file which breaks things in 64-bit mode. The default
compilation mode is 32-bit and the software compiles fine using the
default mode. To build this software in 64-bit mode you will need
to fix the system /usr/include/inttypes.h header file. After
correcting that file the software also compiles fine in 64-bit mode.
Here is one possible patch to correct the problem.
--- /usr/include/inttypes.h.orig Thu May 30 01:00:00 1996
+++ /usr/include/inttypes.h Sun Mar 23 00:20:36 2003
@@ -489 +489 @@
-#ifndef __STDC_32_MODE__
+#ifndef __LP64__
I've heard that stat.c doesn't compile on Ultrix 4.3.
Does anyone with access to such a system want to investigate?
On some systems, some of the tests fail when run as root. All failures
I've seen appear to be due to problems in the testing framework, not
in the tools themselves. I'll address that for the next release by
using a program like setuidgid (see the comment in TODO).
***************************************
There are pretty many tests, but nowhere near as many as we need.
Additions and corrections are very welcome.
@@ -68,9 +98,9 @@ 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.
bug-coreutils@gnu.org 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,

View File

@@ -0,0 +1,13 @@
As of 2002-09-01, the GNU fileutils, textutils, and sh-utils
packages have been merged into one, called the GNU coreutils.
See http://www.gnu.org/software/coreutils/ for a description.
For information on the mailing lists associated with the
coreutils package, see these:
http://mail.gnu.org/mailman/listinfo/coreutils-announce
http://mail.gnu.org/mailman/listinfo/bug-coreutils
mailing list archives are here:
http://mail.gnu.org/pipermail/bug-coreutils/

27
README-valgrind Normal file
View File

@@ -0,0 +1,27 @@
#! /bin/bash
# Fix valgrind script to exec "$@", not some var.
# Fix valgrind sources to know about syscall 252, for exit_group
# 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 /p/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

35
THANKS
View File

@@ -27,6 +27,7 @@ Andreas Jaeger jaeger@gnu.org
Andreas Luik luik@isa.de
Andreas Schwab schwab@suse.de
Andreas Stolcke stolcke@ICSI.Berkeley.EDU
Andrei Gaponenko andr@triumf.ca
Andres Soolo andres@soolo.matti.ee
Andrew Burgess aab@cichlid.com
Andrew Dalke dalke@bioreason.com
@@ -38,15 +39,18 @@ Antonio Rendas ajrendas@yahoo.com
Ariel Faigon ariel@cthulhu.engr.sgi.com
Arne H. Juul arnej@solan.unit.no
Arne Henrik Juul arnej@imf.unit.no
Arnold Robbins arnold@skeeve.com
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
Ben Elliston bje@air.net.au
Bengt Martensson bengt@mathematik.uni-Bremen.de
Bernd Leibing bernd.leibing@rz.uni-ulm.de
Bernhard Baehr bernhard.baehr@gmx.de
Bernhard Gabler bernhard@uni-koblenz.de
Bernhard Rosenkraenzer bero@redhat.de
Bill Peters peters@gaffel.as.arizona.edu
Bjorn Helgaas helgaas@rsn.hp.com
@@ -77,6 +81,7 @@ Clark Morgan cmorgan@aracnet.com
Colin Plumb colin@nyx.net
Colin Watson cjw44@riva.ucam.org
Collin Rogowski collin@rogowski.de
Cray-Cyber Project http://www.cray-cyber.org
Dale Scheetz dwarf@polaris.net
Dan Hagerty hag@gnu.ai.it.edu
Dan Jacobson http://www.geocities.com/jidani
@@ -85,8 +90,10 @@ Daniel Bergstrom noa@melody.se
Darren Salt ds@youmustbejoking.demon.co.uk
Dave Beckett dajobe@dajobe.org
David Dyck dcd@tc.fluke.COM
David Eisner cradle@umd.edu
David Godfrey dave@delta.demon.co.uk
David Luyer david_luyer@pacific.net.au
Deepak Goel deego@gnufans.org
Dennis Henriksen opus@flamingo.osrl.dk
Derek Clegg dclegg@next.com
Dick Streefland dick_streefland@tasking.com
@@ -95,10 +102,11 @@ Dirk-Jan Faber djfaber@snow.nl
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
Duncan Roe duncanr@optimation.com.au
Ed Avis epa98@doc.ic.ac.uk
Ed Avis ed@membled.com
Edzer Pebesma Edzer.Pebesma@rivm.nl
Eirik Fuller eirik@hackrat.com
Eivind eivindt@multinet.no
@@ -111,6 +119,7 @@ Eric S. Raymond esr@snark.thyrsus.com
Erik Bennett bennett@cvo.oneworld.com
Erik Corry erik@kroete2.freinet.de
Felix Lee flee@teleport.com
Ferdinand fw@scenic.mine.nu
Fletcher Mattox fletcher@cs.utexas.edu
Florin Iucha fiucha@hsys.mic.ro
François Pinard pinard@iro.umontreal.ca
@@ -133,10 +142,12 @@ G
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
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
@@ -149,6 +160,8 @@ Ian Jackson ijackson@chiark.greenend.org.uk
Ian Lance Taylor ian@cygnus.com
Ian Turner vectro@pipeline.com
Iida Yosiaki iida@gnu.org
Ingo Saitz ingo@debian.org
Ivo Timmermans ivo@debian.org
James james@albion.glarp.com
James Antill jmanti%essex.ac.uk@seralph21.essex.ac.uk
James Sneeringer jvs@ocslink.com
@@ -159,8 +172,9 @@ Jan Fedak J.Fedak@sh.cvut.cz
Jan Nieuwenhuizen janneke@gnu.org
Janos Farkas chexum@shadow.banki.hu
Jarkko Hietaniemi jhi@epsilon.hut.fi
Jean Charles Delepine delepine@u-picardie.fr
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
@@ -200,6 +214,7 @@ Kaveh R. Ghazi ghazi@caip.rutgers.edu
Keith Owens kaos@audio.apana.org.au
Keith Thompson kst@sdsc.edu
Ken Pizzini kenp@halcyon.com
Kristin E Thomas kristint@us.ibm.com
Kjetil Torgrim Homme kjetilho@ifi.uio.no
Kristoffer Rose kris@diku.dk
Larry McVoy lm@sgi.com
@@ -227,6 +242,7 @@ 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
@@ -248,6 +264,7 @@ Matthias Urlichs smurf@noris.de
Mattias Wadenstein maswan@acc.umu.se
Meelis Roos mroos@tartu.cyber.ee
Michael ??? michael@roka.net
Michael Bacarella mbac@netgraft.com>
Michael Deutschmann michael@talamasca.ocis.net
Michael Gaughen mgaughen@polyserve.com
Michael Hasselberg mikelh@zonta.ping.de
@@ -257,6 +274,7 @@ 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 van Elst mlelstv@dev.de.cw.net
Michael Veksler mveksler@techunix.technion.ac.il
Michail Litvak mci@owl.openwall.com
Michal Svec msvec@suse.cz
@@ -264,6 +282,7 @@ Michel Robitaille robitail@IRO.UMontreal.CA
Michiel Bacchiani bacchian@raven.bu.edu
Mike Castle dalgoda@ix.netcom.com
Mike Coleman mkc@mathdogs.com
Mike Jetzer mjetzer@mke.catalystwms.com
Mikko Tuumanen m@sorvankyla.yok.utu.fi
Miles Bader miles@gnu.ai.mit.edu
Minh Tran-Le tranle@intellicorp.com
@@ -277,9 +296,11 @@ Noah Friedman friedman@splode.com
Noel Cragg noel@red-bean.com
Olav Morkrid olav@funcom.com
Ole Laursen olau@hardworking.dk
Oliver Kiddle okiddle@yahoo.co.uk
Ørn E. Hansen oehansen@daimi.aau.dk
Oskar Liljeblad osk@hem.passagen.se
Paul Eggert eggert@twinsun.com
Paul Jarc prj@po.cwru.edu
Paul Nevai nevai@ops.mps.ohio-state.edu
Paul Sauer paul@alexa.com
Paul Slootman paul@debian.org
@@ -295,6 +316,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
@@ -303,6 +325,7 @@ 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 A Downing richard.downing@bcs.org.uk
Richard Braakman dark@xs4all.nl
Richard Dawe richdawe@bigfoot.com
Richard J. Rauenzahn rrauenza@hairball.cup.hp.com
@@ -314,6 +337,7 @@ Risto Kankkunen kankkune@lingsoft.fi
Robert H. de Vries robert@and.nl
Rogier Wolff R.E.Wolff@BitWizard.nl
Roland Huebner ro-huebner@gmx.de
Roland Turner raz@raz.cx
Ronald F. Guilmette rfg@netcom.com
Ross Alexander r.alexander@auckland.ac.nz
Ross Paterson rap@doc.ic.ac.uk
@@ -326,17 +350,22 @@ 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 Depooter sbdep@myrealbox.com
Stephen Eglen eglen@pcg.wustl.edu
Stephen Gildea gildea@stop.mail-abuse.org
Stephen Smoogen smooge@mindspring.com
Steve McConnel steve@acadcomp.sil.org
Steven G. Johnson stevenj@alum.mit.edu
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
@@ -365,7 +394,9 @@ Will Edgington wedgingt@acm.org
William Bader william@nscs.fast.net
William Dowling will@franklin.com
William Lewis wiml@omnigroup.com
wiregauze wiregauze@yahoo.com
Wojciech Purczynski cliph@isec.pl
Wolfram Kleff kleff@cs.uni-bonn.de
Won-kyu Park wkpark@chem.skku.ac.kr
Yann Dirson dirson@debian.org
Zvi Har'El rl@math.technion.ac.il

73
TODO
View File

@@ -1,6 +1,79 @@
restore djgpp, eventually
merge TODO lists
add unit tests for lib/*.c
rewrite lib/ftw.c not to use explicit recursion, and then use nftw in
chown, chgrp, chmod, du
strip: add an option to specify the program used to strip binaries.
suggestion from Karl Berry
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.
implement --target-directory=DIR for install (per texinfo documentation)
ls: add --format=FORMAT option that controls how each line is printed.
cp --no-preserve=X should not attempt to preserve attribute X
reported by Andreas Schwab
copy.c: Address the FIXME-maybe comment in copy_internal.
And once that's done, add an exclusion so that `cp --link'
no longer incurs the overhead of saving src. dev/ino and dest. filename
in the hash table.
Apply suggestion from Paul Jarc to use something along the
lines of http://cr.yp.to/daemontools/setuidgid.html to avoid
kludges (as in tests/rm/fail-2eperm) when running tests as root.
See if we can be consistent about where --verbose sends its output:
These all send --verbose output to stdout:
head, tail, rm, cp, mv, ln, chmod, chown, chgrp, install, ln
These send it to stderr:
shred mkdir split
readlink is different
Write an autoconf test to work around build failure in HPUX's 64-bit mode.
See notes in README -- and remove them once there's a work-around.
after 5.0, change doc strings (like df, ls, etc) not to use `,'
as thousands separator in e.g. 1,000,000. Instead, do this:
SIZE may be (or may be an integer optionally followed by) one of following:
kB 1000, K 1024, MB 1000*1000, M 1024*1024 and so on for G, T, P, E, Z, Y.
Integrate use of sendfile, suggested here:
http://mail.gnu.org/archive/html/bug-fileutils/2003-03/msg00030.html
Should printf '\0123' print "\n3"?
per report from TAKAI Kousuke on Mar 27
http://mail.gnu.org/archive/html/bug-coreutils/2003-03/index.html
printf: consider adapting builtins/printf.def from bash
df: add `--total' option, suggested here http://bugs.debian.org/186007
Martin Michlmayr's patch to provide ls with `--sort directory' option
seq: give better diagnostics for invalid formats:
e.g. no or too many % directives
seq: consider allowing format string to contain no %-directives
dd: consider adding an option to suppress `bytes/block read/written'
output to stderr. Suggested here:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=165045
nl: fix this bug:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=177256
# printf 'a\n\n'|nl|cat -A
1^Ia$
$
$
m4: rename all macros that start with AC_ to start with another prefix
Consider using an autoconf test and rename wrapper to make mv work
properly (by unlinking a) in cases like this:
: > a; ln a b; mv a b
Reported by Ed Avis: http://article.gmane.org/gmane.comp.gnu.fileutils.bugs/686

1061
aclocal.m4 vendored

File diff suppressed because it is too large Load Diff

331
announce-gen Executable file
View File

@@ -0,0 +1,331 @@
#!/usr/bin/perl -w
# Generate an announcement message.
use strict;
use Getopt::Long;
use Digest::MD5;
use Digest::SHA1;
(my $VERSION = '$Revision: 1.13 $ ') =~ tr/[0-9].//cd;
(my $ME = $0) =~ s|.*/||;
my %valid_release_types = map {$_ => 1} qw (alpha beta major);
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
{
my @types = sort keys %valid_release_types;
print $STREAM <<EOF;
Usage: $ME [OPTIONS]
OPTIONS:
Generate an announcement message.
FIXME: describe the following
--release-type=TYPE TYPE must be one of @types
--package-name=PACKAGE_NAME
--previous-version=VER
--current-version=VER
--release-archive-directory=DIR
--url-directory=URL_DIR
--news=NEWS_FILE optional
--help display this help and exit
--version output version information and exit
EOF
}
exit $exit_code;
}
sub print_changelog_deltas ($$)
{
my ($package_name, $prev_version) = @_;
# Print new ChangeLog entries.
# First find all CVS-controlled ChangeLog files.
use File::Find;
my @changelog;
find ({wanted => sub {$_ eq 'ChangeLog' && -d 'CVS'
and push @changelog, $File::Find::name}},
'.');
# If there are no ChangeLog files, we're done.
@changelog
or return;
my %changelog = map {$_ => 1} @changelog;
# Reorder the list of files so that if there are ChangeLog
# files in the specified directories, they're listed first,
# in this order:
my @dir = qw ( . src lib m4 config doc );
# A typical @changelog array might look like this:
# ./ChangeLog
# ./po/ChangeLog
# ./m4/ChangeLog
# ./lib/ChangeLog
# ./doc/ChangeLog
# ./config/ChangeLog
my @reordered;
foreach my $d (@dir)
{
my $dot_slash = $d eq '.' ? $d : "./$d";
my $target = "$dot_slash/ChangeLog";
delete $changelog{$target}
and push @reordered, $target;
}
# Append any remaining ChangeLog files.
push @reordered, sort keys %changelog;
# Remove leading `./'.
@reordered = map { s!^\./!!; $_ } @reordered;
print "\nChangeLog entries:\n\n";
# print join ("\n", @reordered), "\n";
$prev_version =~ s/\./_/g;
my $prev_cvs_tag = "\U$package_name\E-$prev_version";
my $cmd = "cvs -n diff -u -r$prev_cvs_tag -rHEAD @reordered";
open DIFF, '-|', $cmd
or die "$ME: cannot run `$cmd': $!\n";
# Print two types of lines, making minor changes:
# Lines starting with `+++ ', e.g.,
# +++ ChangeLog 22 Feb 2003 16:52:51 -0000 1.247
# and those starting with `+'.
# Don't print the others.
my $prev_printed_line_empty = 1;
while (defined (my $line = <DIFF>))
{
if ($line =~ /^\+\+\+ /)
{
my $separator = "*"x70 ."\n";
$line =~ s///;
$line =~ s/\s.*//;
$prev_printed_line_empty
or print "\n";
print $separator, $line, $separator;
}
elsif ($line =~ /^\+/)
{
$line =~ s///;
print $line;
$prev_printed_line_empty = ($line =~ /^$/);
}
}
close DIFF;
# The exit code should be 1.
# Allow in case there are no modified ChangeLog entries.
$? == 256 || $? == 128
or warn "$ME: warning: `cmd' had unexpected exit code or signal ($?)\n";
}
{
my $release_type;
my $package_name;
my $prev_version;
my $curr_version;
my $release_archive_dir;
my @url_dir_list;
my $news_file;
GetOptions
(
'release-type=s' => \$release_type,
'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,
'news=s@' => \$news_file,
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.
$release_type
or (warn "$ME: release type not specified\n"), $fail = 1;
$package_name
or (warn "$ME: package name not specified\n"), $fail = 1;
$prev_version
or (warn "$ME: previous version string not specified\n"), $fail = 1;
$curr_version
or (warn "$ME: current version string not specified\n"), $fail = 1;
$release_archive_dir
or (warn "$ME: release directory name not specified\n"), $fail = 1;
@url_dir_list
or (warn "$ME: URL directory name(s) not specified\n"), $fail = 1;
exists $valid_release_types{$release_type}
or (warn "$ME: `$release_type': invalid release type\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";
my %size;
foreach my $f (($tgz, $tbz, $xd))
{
my $cmd = "du --human $f";
my $t = `$cmd`;
# FIXME-someday: give a better diagnostic, a la $PROCESS_STATUS
$@
and (warn "$ME: command failed: `$cmd'\n"), $fail = 1;
chomp $t;
$t =~ s/^([\d.]+[MkK]).*/${1}B/;
$size{$f} = $t;
}
$fail
and exit 1;
print <<EOF;
Subject: $my_distdir released
<#secure method=pgpmime mode=sign>
FIXME: put comments here
EOF
print "Here are the compressed sources:\n";
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";
}
# FIXME: clean up upon interrupt or die
my $tmpdir = $ENV{TMPDIR} || '/tmp';
my $tmp = "$tmpdir/$ME-$$";
unlink $tmp; # ignore failure
print "\nHere are the MD5 and SHA1 signatures:\n";
print "\n";
print "<#part type=text/plain filename=\"$tmp\" disposition=inline>\n"
. "<#/part>\n";
open OUT, '>', $tmp
or die "$ME: $tmp: cannot open for writing: $!\n";
foreach my $meth (qw (md5 sha1))
{
foreach my $f (($tgz, $tbz, $xd))
{
open IN, '<', $f
or die "$ME: $f: cannot open for reading: $!\n";
binmode IN;
my $dig =
($meth eq 'md5'
? Digest::MD5->new->addfile(*IN)->hexdigest
: Digest::SHA1->new->addfile(*IN)->hexdigest);
close IN;
print OUT "$dig $f\n";
}
}
close OUT
or die "$ME: $tmp: while writing: $!\n";
chmod 0400, $tmp; # ignore failure
if ($news_file)
{
print "\nNEWS\n\n";
# Print all lines from $news_file, starting with the first one
# that mentions $curr_version up to but not including
# the first occurrence of $prev_version.
my $in_items;
open NEWS, '<', $news_file
or die "$ME: $news_file: cannot open for reading: $!\n";
while (defined (my $line = <NEWS>))
{
if ( ! $in_items)
{
$line =~ /^[^ *].*\Q$curr_version\E/o
or next;
$in_items = 1;
print $line;
}
else
{
# Be careful that this regexp cannot match version numbers
# in NEWS items -- they might well say `introduced in 4.5.5',
# and we don't want that to match.
$line =~ /^[^ *].*\Q$prev_version\E/o
and last;
print $line;
}
}
close NEWS;
$in_items
or die "$ME: $news_file: no matching lines\n";
}
$release_type eq 'major'
or print_changelog_deltas ($package_name, $prev_version);
exit 0;
}

View File

@@ -109,21 +109,12 @@
/* Define to 1 if you have the `btowc' function. */
#undef HAVE_BTOWC
/* Define to 1 if you have the `bzero' function. */
#undef HAVE_BZERO
/* Define to 1 if you have the `canonicalize_file_name' function. */
#undef HAVE_CANONICALIZE_FILE_NAME
/* Define to 1 if you have the `chroot' function. */
#undef HAVE_CHROOT
/* Define to 1 if you have the `chsize' function. */
#undef HAVE_CHSIZE
/* Define to 1 if you have the `clearerr_unlocked' function. */
#undef HAVE_CLEARERR_UNLOCKED
/* Define to 1 if you have the `clock_gettime' function. */
#undef HAVE_CLOCK_GETTIME
@@ -148,6 +139,10 @@
*/
#undef HAVE_DECL_DIRFD
/* Define to 1 if you have the declaration of `euidaccess', and to 0 if you
don't. */
#undef HAVE_DECL_EUIDACCESS
/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you
don't. */
#undef HAVE_DECL_FEOF_UNLOCKED
@@ -188,9 +183,9 @@
you don't. */
#undef HAVE_DECL_GETCHAR_UNLOCKED
/* Define to 1 if you have the declaration of `getcontext', and to 0 if you
don't. */
#undef HAVE_DECL_GETCONTEXT
/* Define to 1 if you have the declaration of `getcwd', and to 0 if you don't.
*/
#undef HAVE_DECL_GETCWD
/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
don't. */
@@ -256,10 +251,6 @@
don't. */
#undef HAVE_DECL_REALLOC
/* Define to 1 if you have the declaration of `sigaltstack', and to 0 if you
don't. */
#undef HAVE_DECL_SIGALTSTACK
/* Define to 1 if you have the declaration of `stpcpy', and to 0 if you don't.
*/
#undef HAVE_DECL_STPCPY
@@ -366,36 +357,15 @@
/* Define to 1 if you have the `fdatasync' function. */
#undef HAVE_FDATASYNC
/* Define to 1 if you have the `feof_unlocked' function. */
#undef HAVE_FEOF_UNLOCKED
/* Define to 1 if you have the `ferror_unlocked' function. */
#undef HAVE_FERROR_UNLOCKED
/* Define to 1 if you have the `fesetround' function. */
#undef HAVE_FESETROUND
/* Define to 1 if you have the `fflush_unlocked' function. */
#undef HAVE_FFLUSH_UNLOCKED
/* Define to 1 if you have the `fgets_unlocked' function. */
#undef HAVE_FGETS_UNLOCKED
/* Define to 1 if you have the <float.h> header file. */
#undef HAVE_FLOAT_H
/* Define to 1 if you have the `floor' function. */
#undef HAVE_FLOOR
/* Define to 1 if you have the `fputc_unlocked' function. */
#undef HAVE_FPUTC_UNLOCKED
/* Define to 1 if you have the `fputs_unlocked' function. */
#undef HAVE_FPUTS_UNLOCKED
/* Define to 1 if you have the `fread_unlocked' function. */
#undef HAVE_FREAD_UNLOCKED
/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
#undef HAVE_FSEEKO
@@ -411,27 +381,15 @@
/* Define to 1 if you have the `ftruncate' function. */
#undef HAVE_FTRUNCATE
/* Define to 1 if you have the `fwrite_unlocked' function. */
#undef HAVE_FWRITE_UNLOCKED
/* Define if struct statfs has the f_fstypename member. */
#undef HAVE_F_FSTYPENAME_IN_STATFS
/* Define to 1 if you have the `getchar_unlocked' function. */
#undef HAVE_GETCHAR_UNLOCKED
/* Define to 1 if you have the `getcontext' function. */
#undef HAVE_GETCONTEXT
/* Define to 1 if you have the `getcwd' function. */
#undef HAVE_GETCWD
/* Define if getcwd (NULL, 0) allocates memory for result. */
#undef HAVE_GETCWD_NULL
/* Define to 1 if you have the `getc_unlocked' function. */
#undef HAVE_GETC_UNLOCKED
/* Define to 1 if you have the `getdelim' function. */
#undef HAVE_GETDELIM
@@ -471,6 +429,9 @@
/* Define to 1 if you have the `getspnam' function. */
#undef HAVE_GETSPNAM
/* Define to 1 if you have the `getsysinfo' function. */
#undef HAVE_GETSYSINFO
/* Define if the GNU gettext() function is already present or preinstalled. */
#undef HAVE_GETTEXT
@@ -567,11 +528,14 @@
1998-11-01) do this. */
#undef HAVE_LSTAT_EMPTY_STRING_BUG
/* Define to 1 if you have the <machine/hal_sysinfo.h> header file. */
#undef HAVE_MACHINE_HAL_SYSINFO_H
/* Define to 1 if you have the <mach/mach.h> header file. */
#undef HAVE_MACH_MACH_H
/* Define to 1 if your system has a working `malloc' function, and to 0
otherwise. */
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
to 0 otherwise. */
#undef HAVE_MALLOC
/* Define to 1 if you have the `mblen' function. */
@@ -667,17 +631,14 @@
/* Define to 1 if you have the `pstat_getstatic' function. */
#undef HAVE_PSTAT_GETSTATIC
/* Define to 1 if you have the `putchar_unlocked' function. */
#undef HAVE_PUTCHAR_UNLOCKED
/* Define to 1 if you have the `putc_unlocked' function. */
#undef HAVE_PUTC_UNLOCKED
/* Define to 1 if you have the <pwd.h> header file. */
#undef HAVE_PWD_H
/* Define to 1 if your system has a working `realloc' function, and to 0
otherwise. */
/* Define to 1 if you have the `raise' function. */
#undef HAVE_RAISE
/* Define to 1 if your system has a GNU libc compatible `realloc' function,
and to 0 otherwise. */
#undef HAVE_REALLOC
/* Define to 1 if you have the `realpath' function. */
@@ -701,21 +662,21 @@
/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE
/* Define to 1 if you have the `setregid' function. */
#undef HAVE_SETREGID
/* Define to 1 if you have the `setreuid' function. */
#undef HAVE_SETREUID
/* Define to 1 if you have the <shadow.h> header file. */
#undef HAVE_SHADOW_H
/* Define to 1 if you have the `sig2str' function. */
#undef HAVE_SIG2STR
/* Define to 1 if you have the `sigaltstack' function. */
#undef HAVE_SIGALTSTACK
/* Define to 1 if you have the `sqrt' function. */
#undef HAVE_SQRT
/* Define to 1 if the system has the type `stack_t'. */
#undef HAVE_STACK_T
/* Define to 1 if you have the `statvfs' function. */
#undef HAVE_STATVFS
@@ -943,6 +904,9 @@
/* Define to 1 if you have the <syslog.h> header file. */
#undef HAVE_SYSLOG_H
/* Define to 1 if you have the `sysmp' function. */
#undef HAVE_SYSMP
/* Define to 1 if you have the <sys/acl.h> header file. */
#undef HAVE_SYS_ACL_H
@@ -999,12 +963,24 @@
/* Define to 1 if you have the <sys/sysctl.h> header file. */
#undef HAVE_SYS_SYSCTL_H
/* Define to 1 if you have the <sys/sysinfo.h> header file. */
#undef HAVE_SYS_SYSINFO_H
/* Define to 1 if you have the <sys/sysmacros.h> header file. */
#undef HAVE_SYS_SYSMACROS_H
/* Define to 1 if you have the <sys/sysmp.h> header file. */
#undef HAVE_SYS_SYSMP_H
/* Define to 1 if you have the <sys/systemcfg.h> header file. */
#undef HAVE_SYS_SYSTEMCFG_H
/* Define to 1 if you have the <sys/systeminfo.h> header file. */
#undef HAVE_SYS_SYSTEMINFO_H
/* Define to 1 if you have the <sys/table.h> header file. */
#undef HAVE_SYS_TABLE_H
/* Define to 1 if you have the <sys/timeb.h> header file. */
#undef HAVE_SYS_TIMEB_H
@@ -1023,6 +999,9 @@
/* Define to 1 if you have the <sys/wait.h> header file. */
#undef HAVE_SYS_WAIT_H
/* Define to 1 if you have the `table' function. */
#undef HAVE_TABLE
/* Define to 1 if you have the <termios.h> header file. */
#undef HAVE_TERMIOS_H
@@ -1040,9 +1019,6 @@
/* Define to 1 if you have the `tzset' function. */
#undef HAVE_TZSET
/* Define to 1 if you have the <ucontext.h> header file. */
#undef HAVE_UCONTEXT_H
/* Define to 1 if you have the `uname' function. */
#undef HAVE_UNAME
@@ -1100,13 +1076,9 @@
/* Define to 1 if you have the `wmempcpy' function. */
#undef HAVE_WMEMPCPY
/* Define to 1 if extending the stack slightly past the limit causes a
SIGSEGV, and an alternate stack can be established with sigaltstack, and
the signal handler is passed a context that specifies the run time stack.
This behavior is defined by POSIX 1003.1-2001 with the X/Open System
Interface (XSI) option and is a standardized way to implement a SEGV-based
stack overflow detection heuristic. */
#undef HAVE_XSI_STACK_OVERFLOW_HEURISTIC
/* Define to 1 if you have the external variable, _system_configuration with a
member named physmem. */
#undef HAVE__SYSTEM_CONFIGURATION
/* Define to 1 if you have the `__fpending' function. */
#undef HAVE___FPENDING
@@ -1310,6 +1282,9 @@
<sys/cpustats.h>. */
#undef UMAX4_3
/* the maximum number of simultaneously open files per process */
#undef UTILS_OPEN_MAX
/* Version number of package */
#undef VERSION
@@ -1363,6 +1338,9 @@
/* Define to rpl_fnmatch if the replacement function should be used. */
#undef fnmatch
/* Define to rpl_getcwd if the wrapper function should be used. */
#undef getcwd
/* Define as rpl_getgroups if getgroups doesn't work right. */
#undef getgroups
@@ -1430,6 +1408,10 @@
/* Define to rpl_realloc if the replacement function should be used. */
#undef realloc
/* Define to equivalent of C99 restrict keyword, or to nothing if this is not
supported. Do not define if restrict is supported directly. */
#undef restrict
/* Define to `unsigned' if <sys/types.h> does not define. */
#undef size_t

View File

@@ -1,4 +1,38 @@
2002-02-17 Jim Meyering <meyering@lucent.com>
2003-01-12 Jim Meyering <jim@meyering.net>
Lots of syntactic clean-up, mostly from Karl Berry.
* install-sh: Use consistent indentation, two spaces per level.
(scriptversion): New variable.
Change initializations like `variable=""' to `variable='.
(usage): New variable.
Use `test', not `['.
Use `test -z "$var"', not `[ x"$var" = x ]'.
Use `test -n "$var"', not `[ x"$var" != x ]'.
Alphabetize case entries.
Accept --help and --version options.
Remove unnecessary `else :' clauses.
Add a `Local variables' eval block to help emacs users update
the time-stamp variable added above.
2002-12-20 Jim Meyering <jim@meyering.net>
* install-sh: Set the execute bit on this file.
Reported by Vin Shelton.
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.

247
config/config.guess vendored
View File

@@ -1,9 +1,9 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002 Free Software Foundation, Inc.
# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
timestamp='2002-09-03'
timestamp='2003-02-22'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -98,30 +98,31 @@ trap 'exit 1' 1 2 15
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated.
# This shell variable is my proudest work .. or something. --bje
# Portable tmp directory creation inspired by the Autoconf team.
set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
|| (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
dummy=$tmpdir/dummy ;
files="$dummy.c $dummy.o $dummy.rel $dummy" ;
trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
case $CC_FOR_BUILD,$HOST_CC,$CC in
,,) echo "int x;" > $dummy.c ;
for c in cc gcc c89 c99 ; do
if ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; then
if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
CC_FOR_BUILD="$c"; break ;
fi ;
done ;
rm -f $files ;
if test x"$CC_FOR_BUILD" = x ; then
CC_FOR_BUILD=no_compiler_found ;
fi
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
esac ;
unset files'
esac ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
@@ -178,7 +179,18 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
;;
esac
# The OS release
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
# Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
case "${UNAME_VERSION}" in
Debian*)
release='-gnu'
;;
*)
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
@@ -227,66 +239,47 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
if test $UNAME_RELEASE = "V4.0"; then
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
fi
# According to Compaq, /usr/sbin/psrinfo has been available on
# OSF/1 and Tru64 systems produced since 1995. I hope that
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
case "$ALPHA_CPU_TYPE" in
"EV4 (21064)")
UNAME_MACHINE="alpha" ;;
"EV4.5 (21064)")
UNAME_MACHINE="alpha" ;;
"LCA4 (21066/21068)")
UNAME_MACHINE="alpha" ;;
"EV5 (21164)")
UNAME_MACHINE="alphaev5" ;;
"EV5.6 (21164A)")
UNAME_MACHINE="alphaev56" ;;
"EV5.6 (21164PC)")
UNAME_MACHINE="alphapca56" ;;
"EV5.7 (21164PC)")
UNAME_MACHINE="alphapca57" ;;
"EV6 (21264)")
UNAME_MACHINE="alphaev6" ;;
"EV6.7 (21264A)")
UNAME_MACHINE="alphaev67" ;;
"EV6.8CB (21264C)")
UNAME_MACHINE="alphaev68" ;;
"EV6.8AL (21264B)")
UNAME_MACHINE="alphaev68" ;;
"EV6.8CX (21264D)")
UNAME_MACHINE="alphaev68" ;;
"EV6.9A (21264/EV69A)")
UNAME_MACHINE="alphaev69" ;;
"EV7 (21364)")
UNAME_MACHINE="alphaev7" ;;
"EV7.9 (21364A)")
UNAME_MACHINE="alphaev79" ;;
esac
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
eval $set_cc_for_build
cat <<EOF >$dummy.s
.data
\$Lformat:
.byte 37,100,45,37,120,10,0 # "%d-%x\n"
.text
.globl main
.align 4
.ent main
main:
.frame \$30,16,\$26,0
ldgp \$29,0(\$27)
.prologue 1
.long 0x47e03d80 # implver \$0
lda \$2,-1
.long 0x47e20c21 # amask \$2,\$1
lda \$16,\$Lformat
mov \$0,\$17
not \$1,\$18
jsr \$26,printf
ldgp \$29,0(\$26)
mov 0,\$16
jsr \$26,exit
.end main
EOF
$CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
if test "$?" = 0 ; then
case `$dummy` in
0-0)
UNAME_MACHINE="alpha"
;;
1-0)
UNAME_MACHINE="alphaev5"
;;
1-1)
UNAME_MACHINE="alphaev56"
;;
1-101)
UNAME_MACHINE="alphapca56"
;;
2-303)
UNAME_MACHINE="alphaev6"
;;
2-307)
UNAME_MACHINE="alphaev67"
;;
2-1307)
UNAME_MACHINE="alphaev68"
;;
3-1307)
UNAME_MACHINE="alphaev7"
;;
esac
fi
rm -f $dummy.s $dummy && rmdir $tmpdir
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
exit 0 ;;
Alpha\ *:Windows_NT*:*)
@@ -437,10 +430,9 @@ EOF
exit (-1);
}
EOF
$CC_FOR_BUILD $dummy.c -o $dummy \
$CC_FOR_BUILD -o $dummy $dummy.c \
&& $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
&& rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
rm -f $dummy.c $dummy && rmdir $tmpdir
&& exit 0
echo mips-mips-riscos${UNAME_RELEASE}
exit 0 ;;
Motorola:PowerMAX_OS:*:*)
@@ -449,7 +441,7 @@ EOF
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
exit 0 ;;
Night_Hawk:*:*:PowerMAX_OS)
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
exit 0 ;;
Night_Hawk:Power_UNIX:*:*)
@@ -524,8 +516,7 @@ EOF
exit(0);
}
EOF
$CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
rm -f $dummy.c $dummy && rmdir $tmpdir
$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
echo rs6000-ibm-aix3.2.5
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
@@ -623,11 +614,21 @@ EOF
exit (0);
}
EOF
(CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`$dummy`
if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
rm -f $dummy.c $dummy && rmdir $tmpdir
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
if [ ${HP_ARCH} = "hppa2.0w" ]
then
# avoid double evaluation of $set_cc_for_build
test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
then
HP_ARCH="hppa2.0w"
else
HP_ARCH="hppa64"
fi
fi
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
exit 0 ;;
ia64:HP-UX:*:*)
@@ -661,8 +662,7 @@ EOF
exit (0);
}
EOF
$CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
rm -f $dummy.c $dummy && rmdir $tmpdir
$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
echo unknown-hitachi-hiuxwe2
exit 0 ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
@@ -720,15 +720,15 @@ EOF
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
CRAY*T3D:*:*:*)
echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
CRAY*T3E:*:*:*)
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
CRAY*SV1:*:*:*)
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
*:UNICOS/mp:*:*)
echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
@@ -756,7 +756,6 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
rm -f $dummy.c && rmdir $tmpdir
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
exit 0 ;;
i*:CYGWIN*:*)
@@ -769,13 +768,16 @@ EOF
echo ${UNAME_MACHINE}-pc-pw32
exit 0 ;;
x86:Interix*:3*)
echo i386-pc-interix3
echo i586-pc-interix3
exit 0 ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
exit 0 ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
echo i386-pc-interix
echo i586-pc-interix
exit 0 ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
@@ -818,8 +820,26 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
rm -f $dummy.c && rmdir $tmpdir
test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
;;
mips64:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
#undef mips64
#undef mips64el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
CPU=mips64el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
CPU=mips64
#else
CPU=
#endif
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
;;
ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu
@@ -914,7 +934,6 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
rm -f $dummy.c && rmdir $tmpdir
test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
;;
@@ -932,6 +951,23 @@ EOF
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit 0 ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
echo ${UNAME_MACHINE}-pc-os2-emx
exit 0 ;;
i*86:XTS-300:*:STOP)
echo ${UNAME_MACHINE}-unknown-stop
exit 0 ;;
i*86:atheos:*:*)
echo ${UNAME_MACHINE}-unknown-atheos
exit 0 ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
i*86:*DOS:*:*)
echo ${UNAME_MACHINE}-pc-msdosdjgpp
exit 0 ;;
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
@@ -966,9 +1002,6 @@ EOF
echo ${UNAME_MACHINE}-pc-sysv32
fi
exit 0 ;;
i*86:*DOS:*:*)
echo ${UNAME_MACHINE}-pc-msdosdjgpp
exit 0 ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
@@ -995,9 +1028,12 @@ EOF
mc68k:UNIX:SYSTEM5:3.51m)
echo m68k-convergent-sysv
exit 0 ;;
M680?0:D-NIX:5.3:*)
echo m68k-diab-dnix
exit 0 ;;
M68*:*:R3V[567]*:*)
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
@@ -1014,9 +1050,6 @@ EOF
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit 0 ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
@@ -1098,7 +1131,11 @@ EOF
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
exit 0 ;;
*:Darwin:*:*)
echo `uname -p`-apple-darwin${UNAME_RELEASE}
case `uname -p` in
*86) UNAME_PROCESSOR=i686 ;;
powerpc) UNAME_PROCESSOR=powerpc ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit 0 ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
@@ -1134,11 +1171,6 @@ EOF
fi
echo ${UNAME_MACHINE}-unknown-plan9
exit 0 ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
echo ${UNAME_MACHINE}-pc-os2-emx
exit 0 ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
exit 0 ;;
@@ -1157,12 +1189,6 @@ EOF
*:ITS:*:*)
echo pdp10-unknown-its
exit 0 ;;
i*86:XTS-300:*:STOP)
echo ${UNAME_MACHINE}-unknown-stop
exit 0 ;;
i*86:atheos:*:*)
echo ${UNAME_MACHINE}-unknown-atheos
exit 0 ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1283,8 +1309,7 @@ main ()
}
EOF
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
rm -f $dummy.c $dummy && rmdir $tmpdir
$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
# Apollos put the system type in the environment.

61
config/config.sub vendored
View File

@@ -1,9 +1,9 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002 Free Software Foundation, Inc.
# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
timestamp='2002-09-05'
timestamp='2003-02-22'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -118,7 +118,7 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
@@ -245,17 +245,19 @@ case $basic_machine in
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
| mipsisa64 | mipsisa64el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| msp430 \
| ns16k | ns32k \
| openrisc | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
| sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
| strongarm \
@@ -294,7 +296,7 @@ case $basic_machine in
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* \
| bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
| clipper-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
@@ -315,21 +317,25 @@ case $basic_machine in
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipstx39 | mipstx39el \
| none-* | np1-* | ns16k-* | ns32k-* \
| mipstx39-* | mipstx39el-* \
| msp430-* \
| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
| sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \
| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \
| tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tron-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
@@ -716,6 +722,10 @@ case $basic_machine in
np1)
basic_machine=np1-gould
;;
nv1)
basic_machine=nv1-cray
os=-unicosmp
;;
nsr-tandem)
basic_machine=nsr-tandem
;;
@@ -901,10 +911,6 @@ case $basic_machine in
basic_machine=i386-sequent
os=-dynix
;;
t3d)
basic_machine=alpha-cray
os=-unicos
;;
t3e)
basic_machine=alphaev5-cray
os=-unicos
@@ -921,6 +927,14 @@ case $basic_machine in
basic_machine=tic54x-unknown
os=-coff
;;
tic55x | c55x*)
basic_machine=tic55x-unknown
os=-coff
;;
tic6x | c6x*)
basic_machine=tic6x-unknown
os=-coff
;;
tx39)
basic_machine=mipstx39-unknown
;;
@@ -977,10 +991,6 @@ case $basic_machine in
basic_machine=hppa1.1-winbond
os=-proelf
;;
windows32)
basic_machine=i386-pc
os=-windows32-msvcrt
;;
xps | xps100)
basic_machine=xps100-honeywell
;;
@@ -1027,7 +1037,7 @@ case $basic_machine in
we32k)
basic_machine=we32k-att
;;
sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
sh64)
@@ -1113,11 +1123,12 @@ case $os in
| -chorusos* | -chorusrdb* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*)
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1129,8 +1140,10 @@ case $os in
;;
esac
;;
-nto-qnx*)
;;
-nto*)
os=-nto-qnx
os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
| -windows* | -osx | -abug | -netware* | -os9* | -beos* \
@@ -1224,6 +1237,12 @@ case $os in
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
os=-mint
;;
-aros*)
os=-aros
;;
-kaos*)
os=-kaos
;;
-none)
;;
*)

View File

@@ -1,9 +1,11 @@
#!/bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
#
# This originally came from X11R5 (mit/util/scripts/install.sh).
scriptversion=2003-01-17.15
# Copyright 1991 by the Massachusetts Institute of Technology
# (FSF changes in the public domain.)
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
@@ -23,13 +25,11 @@
# 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}"
@@ -41,236 +41,229 @@ stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename=""
transform_arg=""
transformbasename=
transform_arg=
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
chowncmd=
chgrpcmd=
stripcmd=
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
src=
dst=
dir_arg=
while [ x"$1" != x ]; do
case "$1" in
-c) instcmd=$cpprog
shift
continue;;
usage="Usage: $0 [OPTION]... SRCFILE DSTFILE
or: $0 -d DIR1 DIR2...
-d) dir_arg=true
shift
continue;;
In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
In the second, create the directory path DIR.
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
Options:
-b=TRANSFORMBASENAME
-c copy source (using $cpprog) instead of moving (using $mvprog).
-d create directories instead of installing files.
-g GROUP $chgrp installed files to GROUP.
-m MODE $chmod installed files to MODE.
-o USER $chown installed files to USER.
-s strip installed files (using $stripprog).
-t=TRANSFORM
--help display this help and exit.
--version display version info and exit.
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
"
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
while test -n "$1"; do
case $1 in
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
-s) stripcmd=$stripprog
shift
continue;;
-c) instcmd=$cpprog
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
-d) dir_arg=true
shift
continue;;
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
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
--help) echo "$usage"; exit 0;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-s) stripcmd=$stripprog
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
--version) echo "$0 $scriptversion"; exit 0;;
*) if test -z "$src"; 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 "install: no input file specified" >&2
exit 1
else
true
if test -z "$src"; then
echo "$0: no input file specified." >&2
exit 1
fi
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if test -n "$dir_arg"; then
dst=$src
src=
if [ -d "$dst" ]; then
instcmd=:
chmodcmd=""
else
instcmd=$mkdirprog
fi
if test -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 test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
# 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 test -z "$dst"; then
echo "$0: no destination specified." >&2
exit 1
fi
if [ -f "$src" -o -d "$src" ]
then
true
else
echo "install: $src does not exist" >&2
exit 1
fi
if [ x"$dst" = x ]
then
echo "install: no destination specified" >&2
exit 1
else
true
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
true
fi
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
dst=$dst/`basename "$src"`
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
# (this part is taken from Noah Friedman's mkinstalldirs script.)
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
if test ! -d "$dstdir"; then
defaultIFS='
'
IFS="${IFS-$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
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=''
pathcomp=
while [ $# -ne 0 ] ; do
pathcomp=$pathcomp$1
shift
if [ ! -d "$pathcomp" ] ;
then
$mkdirprog "$pathcomp"
else
true
fi
pathcomp=$pathcomp/
done
while test $# -ne 0 ; do
pathcomp=$pathcomp$1
shift
test -d "$pathcomp" || $mkdirprog "$pathcomp"
pathcomp=$pathcomp/
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd "$dst" &&
if test -n "$dir_arg"; then
$doit $instcmd "$dst" \
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else true ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else true ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else true ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else true ; fi
else
# If we're going to rename the final executable, determine the name now.
if test -z "$transformarg"; then
dstfile=`basename "$dst"`
else
dstfile=`basename "$dst" $transformbasename \
| sed $transformarg`$transformbasename
fi
# If we're going to rename the final executable, determine the name now.
# don't allow the sed command to completely eliminate the filename.
test -z "$dstfile" && dstfile=`basename "$dst"`
if [ x"$transformarg" = x ]
then
dstfile=`basename "$dst"`
else
dstfile=`basename "$dst" $transformbasename |
sed $transformarg`$transformbasename
fi
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/#inst.$$#
rmtmp=$dstdir/#rm.$$#
# don't allow the sed command to completely eliminate the filename
# Trap to clean up those temp files at exit.
trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
if [ x"$dstfile" = x ]
then
dstfile=`basename "$dst"`
else
true
fi
# Move or copy the file name to the temp name
$doit $instcmd "$src" "$dsttmp" &&
# Make a couple of temp file names in the proper directory.
# 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.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
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 true;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp";else true;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp";else true;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp";else true;fi &&
# Now remove or move 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 "install: cannot unlink or rename $dstdir/$dstfile" >&2
(exit 1); exit
}
else
true
fi
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
# 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 test -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
(exit 0); exit
}
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

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 (C) 1995, 1996, 1997, 2003 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
@@ -25,24 +30,38 @@ export LC_ALL
LC_TIME=C
export LC_TIME
# Get the extended ls output of the file or directory.
# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
if ls -L /dev/null 1>/dev/null 2>&1; then
set - x`ls -L -l -d $1`
else
set - x`ls -l -d $1`
fi
# The month is at least the fourth argument
# (3 shifts here, the next inside the loop).
shift
shift
shift
save_arg1="$1"
# Find the month. Next argument is day, followed by the year or time.
# Find out how to get the extended ls output of a file or directory.
if ls -L /dev/null 1>/dev/null 2>&1; then
ls_command='ls -L -l -d'
else
ls_command='ls -l -d'
fi
# A `ls -l' line looks as follows on OS/2.
# drwxrwx--- 0 Aug 11 2001 foo
# This differs from Unix, which adds ownership information.
# drwxrwx--- 2 root root 4096 Aug 11 2001 foo
#
# To find the date, we split the line on spaces and iterate on words
# until we find a month. This cannot work with files whose owner is a
# user named `Jan', or `Feb', etc. However, it's unlikely that `/'
# will be owned by a user whose name is a month. So we first look at
# the extended ls output of the root directory to decide how many
# words should be skipped to get the date.
# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
set - x`$ls_command /`
# Find which argument is the month.
month=
command=
until test $month
do
shift
# Add another shift to the command.
command="$command shift;"
case $1 in
Jan) month=January; nummonth=1;;
Feb) month=February; nummonth=2;;
@@ -59,6 +78,28 @@ do
esac
done
# Get the extended ls output of the file or directory.
set - x`eval "$ls_command \"\$save_arg1\""`
# Remove all preceding arguments
eval $command
# Get the month. Next argument is day, followed by the year or time.
case $1 in
Jan) month=January; nummonth=1;;
Feb) month=February; nummonth=2;;
Mar) month=March; nummonth=3;;
Apr) month=April; nummonth=4;;
May) month=May; nummonth=5;;
Jun) month=June; nummonth=6;;
Jul) month=July; nummonth=7;;
Aug) month=August; nummonth=8;;
Sep) month=September; nummonth=9;;
Oct) month=October; nummonth=10;;
Nov) month=November; nummonth=11;;
Dec) month=December; nummonth=12;;
esac
day=$2
# Here we have to deal with the problem that the ls output gives either

File diff suppressed because it is too large Load Diff

16113
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,9 @@
dnl Process this file with autoconf to produce a configure script. -*-m4-*-
AC_INIT(GNU coreutils, 4.5.3, bug-coreutils@gnu.org)
AC_INIT([GNU coreutils],[5.0],[bug-coreutils@gnu.org])
AC_CONFIG_SRCDIR(src/ls.c)
AC_CONFIG_AUX_DIR(config)
AM_CONFIG_HEADER(config.h:config.hin)
AC_CONFIG_HEADERS([config.h:config.hin])
AC_CANONICAL_HOST
AM_INIT_AUTOMAKE([1.6b gnits dist-bzip2])
@@ -14,19 +14,23 @@ AC_PROG_CC
AC_PROG_CPP
AC_PROG_GCC_TRADITIONAL
AC_PROG_RANLIB
AC_PROG_LN_S
AC_AIX
AC_MINIX
AC_CHECK_FUNCS(uname,
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS uname" MAN="$MAN uname.1")
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS uname\$(EXEEXT)"
MAN="$MAN uname.1")
AC_CHECK_FUNCS(chroot,
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS chroot" MAN="$MAN chroot.1")
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS chroot\$(EXEEXT)"
MAN="$MAN chroot.1")
AC_CHECK_FUNCS(gethostid,
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS hostid" MAN="$MAN hostid.1")
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS hostid\$(EXEEXT)"
MAN="$MAN hostid.1")
jm_MACROS
AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
AC_HEADER_TIOCGWINSZ()
jm_WINSIZE_IN_PTEM
# Check for SunOS statfs brokenness wrt partitions 2GB and larger.
@@ -34,16 +38,15 @@ jm_WINSIZE_IN_PTEM
# 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_TRY_COMPILE([
[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,
)])
#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
@@ -56,7 +59,7 @@ 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_TRY_RUN([#include <time.h>
AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <time.h>
#if STDC_HEADERS
# include <stdlib.h>
#endif
@@ -85,7 +88,9 @@ main()
if (localtime (&now)->tm_hour != hour_unset)
exit (1);
exit (0);
}], utils_cv_localtime_cache=no, utils_cv_localtime_cache=yes,
}]])],
[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
@@ -115,24 +120,25 @@ fi
AC_MSG_CHECKING(for 3-argument setpriority function)
AC_CACHE_VAL(utils_cv_func_setpriority,
[AC_TRY_LINK([#include <sys/time.h>
#include <sys/resource.h>],
[setpriority(0, 0, 0);],
utils_cv_func_setpriority=yes, utils_cv_func_setpriority=no)])
[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_PROGS="$OPTIONAL_BIN_PROGS nice\$(EXEEXT)"
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_TRY_LINK([], nice();,
utils_cv_func_nice=yes, utils_cv_func_nice=no)])
[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_PROGS="$OPTIONAL_BIN_PROGS nice\$(EXEEXT)"
OPTIONAL_BIN_ZCRIPTS="$OPTIONAL_BIN_ZCRIPTS nohup"
MAN="$MAN nice.1 nohup.1"
fi
@@ -142,7 +148,9 @@ 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"
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS pinky\$(EXEEXT)"
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS users\$(EXEEXT)"
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS who\$(EXEEXT)"
MAN="$MAN pinky.1 users.1 who.1"
fi
])
@@ -150,9 +158,10 @@ jm_DUMMY_1
AC_MSG_CHECKING(ut_host in struct utmp)
AC_CACHE_VAL(su_cv_func_ut_host_in_utmp,
[AC_TRY_LINK([#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_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
@@ -162,9 +171,10 @@ 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_TRY_LINK([#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_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])
@@ -173,13 +183,14 @@ if test -z "$have_ut_host"; then
fi
GNULIB_BOOT_TIME(
[OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS uptime" MAN="$MAN uptime.1"])
[OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS uptime\$(EXEEXT)"
MAN="$MAN uptime.1"])
AM_SYS_POSIX_TERMIOS
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"
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS stty\$(EXEEXT)" MAN="$MAN stty.1"
AC_MSG_CHECKING(whether termios.h needs _XOPEN_SOURCE)
AC_CACHE_VAL(su_cv_sys_termios_needs_xopen_source,
@@ -199,16 +210,16 @@ yes
AC_MSG_CHECKING(c_line in struct termios)
AC_CACHE_VAL(su_cv_sys_c_line_in_termios,
[AC_TRY_LINK([#if TERMIOS_NEEDS_XOPEN_SOURCE
[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)])
#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])
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.
@@ -221,17 +232,16 @@ 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_TRY_LINK([#include <sys/types.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)])
#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 \
@@ -245,6 +255,7 @@ 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

View File

@@ -1,11 +1,146 @@
2002-09-13 Jim Meyering <meyering@lucent.com>
2003-04-02 Jim Meyering <jim@meyering.net>
* coreutils.texi (false invocation): Note that false exits
unsuccessfully even with --help and --version.
* Makefile.am (check-texinfo): Don't fail if perl is missing.
Reported by Nelson Beebe.
2003-03-27 Jim Meyering <jim@meyering.net>
* coreutils.texi (printf invocation): Fix formatting bugs.
From Paul Eggert.
(sort invocation): Describe sort's --stable (-s) option.
2003-03-13 Jim Meyering <jim@meyering.net>
* coreutils.texi (shred invocation): Mention that --exact
is now the default for non-regular files.
2003-03-02 Jim Meyering <jim@meyering.net>
* coreutils.texi (Exit status): New section.
Suggestion from Michael Stone.
2003-02-21 Jim Meyering <jim@meyering.net>
* coreutils.texi (du invocation): Document --apparent-size.
Adjust documentation of --bytes (-b).
(stat invocation): Describe %B.
2003-02-07 Richard Dawe <rich@phekda.freeserve.co.uk>
* coreutils.texi: Use @command instead of @code for program names.
* perm.texi (Mode Structure): Mention filesystem-specific
permissions and that mounting a filesystem as read-only may
override actual file permissions. Use @command instead
of @code for program names.
2003-02-06 Jim Meyering <jim@meyering.net>
* coreutils.texi: Adjust alignment and mention `file, text, shell'
on the `* Coreutils:...' dirently line. From Karl Berry.
2003-02-05 Jim Meyering <jim@meyering.net>
* Makefile.am (check-texinfo): Allow bare `POSIX' to be used on
direntry lines.
* coreutils.texi: Use new form of @direntry.
Put unlink in its proper place. Adjust wording in some
dir entry descriptions, mainly so they fit in 80 columns.
Don't use mark-up like @acronym{POSIX} in direntries.
Mostly from Karl Berry.
2003-01-25 Jim Meyering <jim@meyering.net>
* coreutils.texi (cut invocation): Describe new functionality of
--output-delimiter=STR.
2003-01-24 Jim Meyering <jim@meyering.net>
* coreutils.texi (The cut command): Give an example of using cut -c
with an output delimiter. From Jan Nieuwenhuizen.
* coreutils.texi (The cut command): Extend the new example a little.
(Formatting file timestamps): Fix typo: s/%M:S/%M:%S/.
* coreutils.texi: Change each use of `Core-utils' to `Coreutils'.
From Karl Berry.
2003-01-19 Jim Meyering <jim@meyering.net>
* coreutils.texi (Which files are listed): Document new option:
--dereference-command-line-symlink-to-dir.
2003-01-15 Paul Eggert <eggert@twinsun.com>
Change ls -H back to the way it was yesterday, since this is
compatible with FreeBSD and the POSIX spec is confusing
and somewhat contradictory.
* doc/coreutils.texi (Which files are listed, General output
formatting): Undo last change.
2003-01-15 Jim Meyering <jim@meyering.net>
* coreutils.texi (General output formatting): Reflect option name change:
s/--dereference-command-line/--dereference-command-line-symlink-to-dir/.
Say that this option changes how ls treats only symlinks to directories
specified on the command line.
2002-08-27 Dmitry V. Levin <ldv@altlinux.org>
* coreutils.texi: Document readlink.
2002-12-14 Jim Meyering <jim@meyering.net>
* coreutils.texi (mknod invocation): Specify how major and minor mode
numbers are interpreted. Report forwarded by Kristin E Thomas.
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 <meyering@lucent.com>
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.
@@ -23,7 +158,7 @@
- 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 <meyering@lucent.com>
2002-07-24 Jim Meyering <jim@meyering.net>
* coreutils.texi (Time directives): Document %P, %R, %e, %F,
%g, %G, and %V
@@ -34,23 +169,23 @@
that -N/--literal are equivalent to --quoting-style=literal.
Reported by Oskar Liljeblad as Debian bug#103612.
2002-07-10 Jim Meyering <meyering@lucent.com>
2002-07-10 Jim Meyering <jim@meyering.net>
* coreutils.texi (du invocation): s/PAT/PATTERN/.
From Martin Michlmayr.
2002-07-08 Jim Meyering <meyering@lucent.com>
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 <meyering@lucent.com>
2002-07-06 Jim Meyering <jim@meyering.net>
* coreutils.texi (stat invocation): Remove description of --secure.
2002-07-03 Jim Meyering <meyering@lucent.com>
2002-07-03 Jim Meyering <jim@meyering.net>
* coreutils.texi (stat invocation): Rename --link/-l
to --dereference/-L. Rewrite description of --dereference.
@@ -60,7 +195,7 @@
* 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 <meyering@lucent.com>
2002-06-21 Jim Meyering <jim@meyering.net>
* coreutils.texi (stat invocation): New section. From Michael Meskes.
@@ -68,22 +203,22 @@
* coreutils.texi (ls invocation): Document new option: --author.
2002-06-03 Jim Meyering <meyering@lucent.com>
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 <meyering@lucent.com>
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 <meyering@lucent.com>
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 <meyering@lucent.com>
2002-04-28 Jim Meyering <jim@meyering.net>
* coreutils.texi: Change `@code{PROG}' to `@command{PROG}'.
@@ -92,16 +227,16 @@
* coreutils.texi (kill invocation): Document the above.
Document POSIX signals better.
2002-04-15 Jim Meyering <meyering@lucent.com>
2002-04-15 Jim Meyering <jim@meyering.net>
* coreutils.texi: Document kill.
Written by Marcus Brinkmann.
2002-04-13 Jim Meyering <meyering@lucent.com>
2002-04-13 Jim Meyering <jim@meyering.net>
* coreutils.texi: Document link and unlink.
2002-04-08 Jim Meyering <meyering@lucent.com>
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.
@@ -130,7 +265,7 @@
symlink options. Warn that cp -R is not portable on symbolic
links unless you also specify -P.
2002-03-02 Jim Meyering <meyering@lucent.com>
2002-03-02 Jim Meyering <jim@meyering.net>
* coreutils.texi (cp invocation): Document that cp -r
preserves symlinks. Emphasize non-portability of cp -r.
@@ -140,7 +275,7 @@
* coreutils.texi (Time directives): Add %N for nanoseconds.
This documents the recent change to 'ls'.
2002-02-28 Jim Meyering <meyering@lucent.com>
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.
@@ -155,7 +290,7 @@
* 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 <meyering@lucent.com>
2002-02-17 Jim Meyering <jim@meyering.net>
* coreutils.texi (tsort background): New section.
From Ian Lance Taylor.
@@ -166,7 +301,7 @@
* coreutils.texi: Document _POSIX2_VERSION.
(Standards Conformance): New section.
2002-01-24 Jim Meyering <meyering@lucent.com>
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.
@@ -178,11 +313,11 @@
* coreutils.texi: Document this. (Also, document a similar
change to "touch", for fileutils).
2002-01-12 Jim Meyering <meyering@lucent.com>
2002-01-12 Jim Meyering <jim@meyering.net>
* coreutils.texi (shred invocation): List some journaled filesystems.
2001-11-10 Jim Meyering <meyering@lucent.com>
2001-11-10 Jim Meyering <jim@meyering.net>
* coreutils.texi (Date directives): Document %u.
@@ -191,18 +326,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'.
@@ -211,12 +346,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.
@@ -226,7 +361,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.
@@ -258,7 +393,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.
@@ -267,12 +402,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.
@@ -283,14 +418,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

@@ -30,10 +30,12 @@ $(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 '\$$@"' $(srcdir)/*.texi && exit 1 || :
$(PERL) -ne \
'/\bPOSIX\b/ && !/\@acronym{POSIX}/ || /{posix}/ and print,exit 1' \
$(srcdir)/*.texi 2> /dev/null && : || exit 1
fail=0; \
grep timezone $(srcdir)/*.texi && fail=1; \
grep '\$$@"' $(srcdir)/*.texi && fail=1; \
$(PERL) -e 1 2> /dev/null && { $(PERL) -ne \
'/\bPOSIX\b/ && !/\@acronym{POSIX}/ && !/^\* / || /{posix}/ and print,exit 1' \
$(srcdir)/*.texi 2> /dev/null || fail=1; }; \
exit $$fail
check: check-texinfo

View File

@@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.7 from Makefile.am.
# Makefile.in generated by automake 1.7.3 from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -74,10 +74,12 @@ 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@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
LTLIBOBJS = @LTLIBOBJS@
@@ -126,6 +128,7 @@ ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
bindir = @bindir@
build = @build@
@@ -158,6 +161,7 @@ info_TEXINFOS = coreutils.texi
EXTRA_DIST = perm.texi getdate.texi constants.texi doclicense.texi
subdir = doc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -181,9 +185,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
.texi.info:
@rm -f $@ $@-[0-9] $@-[0-9][0-9]
@rm -f $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]
$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
`test -f '$<' || echo '$(srcdir)/'`$< -o $@
-o $@ `test -f '$<' || echo '$(srcdir)/'`$<
.texi.dvi:
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
@@ -198,7 +202,7 @@ 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.ac
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"; \
@@ -221,7 +225,7 @@ TEXI2DVI = texi2dvi
TEXI2PDF = $(TEXI2DVI) --pdf --batch
DVIPS = dvips
.dvi.ps:
$(DVIPS) $< -o $@
$(DVIPS) -o $@ $<
uninstall-info-am:
$(PRE_UNINSTALL)
@@ -229,16 +233,19 @@ uninstall-info-am:
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"; \
install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file; \
relfile=`echo "$$file" | sed 's|^.*/||'`; \
echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$relfile"; \
install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$relfile; \
done; \
else :; fi
@$(NORMAL_UNINSTALL)
@list='$(INFO_DEPS)'; \
for file in $$list; do \
relfile=`echo "$$file" | sed 's|^.*/||'`; \
relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
(if cd $(DESTDIR)$(infodir); then \
echo " rm -f $$file $$file-[0-9] $$file-[0-9][0-9])"; \
rm -f $$file $$file-[0-9] $$file-[0-9][0-9]; \
echo " rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9])"; \
rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
else :; fi); \
done
@@ -256,15 +263,14 @@ dist-info: $(INFO_DEPS)
mostlyclean-aminfo:
-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.vr \
coreutils.dvi coreutils.pdf coreutils.ps
coreutils.tmp coreutils.toc coreutils.tp coreutils.tps \
coreutils.vr coreutils.dvi coreutils.pdf coreutils.ps
maintainer-clean-aminfo:
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]*; \
fi; \
@list='$(INFO_DEPS)'; for i in $$list; do \
i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
done
tags: TAGS
TAGS:
@@ -279,9 +285,11 @@ distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@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,/[^/]*$$,,'`; \
@@ -364,9 +372,11 @@ install-info-am: $(INFO_DEPS)
@list='$(INFO_DEPS)'; \
for file in $$list; do \
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 \
file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
$$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
if test -f $$ifile; then \
relfile=`expr "$$ifile" : "$$d/\(.*\)"`; \
relfile=`echo "$$ifile" | sed 's|^.*/||'`; \
echo " $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile"; \
$(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile; \
else : ; fi; \
@@ -377,8 +387,9 @@ install-info-am: $(INFO_DEPS)
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";\
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
relfile=`echo "$$file" | sed 's|^.*/||'`; \
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$relfile";\
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$relfile || :;\
done; \
else : ; fi
install-man:
@@ -432,11 +443,13 @@ $(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 '\$$@"' $(srcdir)/*.texi && exit 1 || :
$(PERL) -ne \
'/\bPOSIX\b/ && !/\@acronym{POSIX}/ || /{posix}/ and print,exit 1' \
$(srcdir)/*.texi 2> /dev/null && : || exit 1
fail=0; \
grep timezone $(srcdir)/*.texi && fail=1; \
grep '\$$@"' $(srcdir)/*.texi && fail=1; \
$(PERL) -e 1 2> /dev/null && { $(PERL) -ne \
'/\bPOSIX\b/ && !/\@acronym{POSIX}/ && !/^\* / || /{posix}/ and print,exit 1' \
$(srcdir)/*.texi 2> /dev/null || fail=1; }; \
exit $$fail
check: check-texinfo
# Tell versions [3.59,3.63) of GNU make to not export all variables.

File diff suppressed because it is too large Load Diff

View File

@@ -47,8 +47,8 @@ Files are given an owner and group when they are created. Usually the
owner is the current user and the group is the group of the directory
the file is in, but this varies with the operating system, the
filesystem the file is created on, and the way the file is created. You
can change the owner and group of a file by using the @code{chown} and
@code{chgrp} commands.
can change the owner and group of a file by using the @command{chown} and
@command{chgrp} commands.
In addition to the three sets of three permissions listed above, a
file's permissions have three special components, which affect only
@@ -77,6 +77,38 @@ unless they own the file or the directory; this is called the
@dfn{restricted deletion flag} for the directory.
@end enumerate
In addition to the permissions listed above, there may be file attributes
specific to the filesystem, e.g: access control lists (ACLs), whether a
file is compressed, whether a file can be modified (immutability), whether
a file can be dumped. These are usually set using programs
specific to the filesystem. For example:
@c should probably say a lot more about ACLs... someday
@table @asis
@item ext2
On GNU and Linux/GNU the file permissions (``attributes'') specific to
the ext2 filesystem are set using @command{chattr}.
@item FFS
On FreeBSD the file permissions (``flags'') specific to the FFS
filesystem are set using @command{chrflags}.
@end table
Although a file's permission ``bits'' allow an operation on that file,
that operation may still fail, because:
@itemize
@item
the filesystem-specific permissions do not permit it;
@item
the filesystem is mounted as read-only.
@end itemize
For example, if the immutable attribute is set on a file,
it cannot be modified, regardless of the fact that you
may have just run @code{chmod a+w FILE}.
@node Symbolic Modes
@section Symbolic Modes

View File

@@ -1,10 +1,12 @@
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
fts_.h
fts.c

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,22 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
## Makefile for gnulib/lib -*-Makefile-*-
AUTOMAKE_OPTIONS = ../src/ansi2knr
# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 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.
noinst_LIBRARIES = libfetish.a
@@ -17,7 +33,7 @@ libfetish_a_SOURCES = \
getdate.h getdate.y \
posixtm.c posixtm.h \
posixver.c posixver.h \
strftime.c \
strftime.c strftime.h \
getopt.c getopt.h getopt1.c \
hash.c hash.h \
hash-pjw.c hash-pjw.h \
@@ -28,12 +44,15 @@ libfetish_a_SOURCES = \
basename.c \
bumpalloc.h \
canon-host.c \
c-stack.c c-stack.h \
canonicalize.h \
closeout.c closeout.h \
cycle-check.c cycle-check.h \
dev-ino.h \
diacrit.c diacrit.h \
dirname.c dirname.h \
dirfd.h \
dup-safer.c \
euidaccess.h \
exclude.c exclude.h \
exitfail.c exitfail.h \
filemode.c filemode.h \
@@ -41,6 +60,8 @@ libfetish_a_SOURCES = \
fnmatch_.h \
fopen-safer.c \
fsusage.h \
ftw_.h \
full-read.c full-read.h \
full-write.c full-write.h \
getline.h \
getpagesize.h \
@@ -53,6 +74,7 @@ libfetish_a_SOURCES = \
human.c human.h \
idcache.c \
isdir.c \
imaxtostr.c \
lchown.h \
linebuffer.c linebuffer.h \
localcharset.c \
@@ -64,6 +86,7 @@ libfetish_a_SOURCES = \
memcoll.c memcoll.h \
modechange.c modechange.h \
mountlist.h \
offtostr.c \
path-concat.c path-concat.h \
pathmax.h \
physmem.c physmem.h \
@@ -73,9 +96,11 @@ 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 \
search_.h \
settime.c \
sha.c sha.h \
sig2str.h \
@@ -83,12 +108,14 @@ libfetish_a_SOURCES = \
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 \
xgetcwd.c xgetcwd.h \
xgethostname.c \
xmalloc.c \
xmemcoll.c xmemcoll.h \
@@ -106,30 +133,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 \
fnmatch_loop.c
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-$@ $@
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
@@ -138,7 +146,7 @@ stat.c: xstat.in
# 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
@@ -178,21 +186,4 @@ SUFFIXES = .sed .sin
mv t-$@ $@
CLEANFILES = charset.alias ref-add.sed ref-del.sed
###############################################
# FIXME: remove this dependency once automake handles it.
# As of cvs automake of about 2002-01-13,
# this dependency is necessary to avoid a build failure
# when running `make check' before running `make all'.
# Otherwise, unlocked-io.h is not built before it's needed.
getdate$U.o: unlocked-io.h
# 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 $@
DISTCLEANFILES = ftw.h search.h fnmatch.h

View File

@@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.7 from Makefile.am.
# Makefile.in generated by automake 1.7.3 from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -14,6 +14,9 @@
@SET_MAKE@
# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free
# Software Foundation, Inc.
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -74,10 +77,12 @@ 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@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
LTLIBOBJS = @LTLIBOBJS@
@@ -117,6 +122,7 @@ ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
bindir = @bindir@
build = @build@
@@ -146,8 +152,6 @@ sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
AUTOMAKE_OPTIONS = ../src/ansi2knr
noinst_LIBRARIES = libfetish.a
INCLUDES = -I.. -I$(srcdir)
@@ -157,7 +161,7 @@ libfetish_a_SOURCES = \
getdate.h getdate.y \
posixtm.c posixtm.h \
posixver.c posixver.h \
strftime.c \
strftime.c strftime.h \
getopt.c getopt.h getopt1.c \
hash.c hash.h \
hash-pjw.c hash-pjw.h \
@@ -168,12 +172,15 @@ libfetish_a_SOURCES = \
basename.c \
bumpalloc.h \
canon-host.c \
c-stack.c c-stack.h \
canonicalize.h \
closeout.c closeout.h \
cycle-check.c cycle-check.h \
dev-ino.h \
diacrit.c diacrit.h \
dirname.c dirname.h \
dirfd.h \
dup-safer.c \
euidaccess.h \
exclude.c exclude.h \
exitfail.c exitfail.h \
filemode.c filemode.h \
@@ -181,6 +188,8 @@ libfetish_a_SOURCES = \
fnmatch_.h \
fopen-safer.c \
fsusage.h \
ftw_.h \
full-read.c full-read.h \
full-write.c full-write.h \
getline.h \
getpagesize.h \
@@ -193,6 +202,7 @@ libfetish_a_SOURCES = \
human.c human.h \
idcache.c \
isdir.c \
imaxtostr.c \
lchown.h \
linebuffer.c linebuffer.h \
localcharset.c \
@@ -204,6 +214,7 @@ libfetish_a_SOURCES = \
memcoll.c memcoll.h \
modechange.c modechange.h \
mountlist.h \
offtostr.c \
path-concat.c path-concat.h \
pathmax.h \
physmem.c physmem.h \
@@ -213,9 +224,11 @@ 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 \
search_.h \
settime.c \
sha.c sha.h \
sig2str.h \
@@ -223,12 +236,14 @@ libfetish_a_SOURCES = \
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 \
xgetcwd.c xgetcwd.h \
xgethostname.c \
xmalloc.c \
xmemcoll.c xmemcoll.h \
@@ -246,12 +261,11 @@ libfetish_a_SOURCES = \
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 \
fnmatch_loop.c
EXTRA_DIST = config.charset ref-add.sin ref-del.sin \
fnmatch_loop.c inttostr.c inttostr.h
charset_alias = $(DESTDIR)$(libdir)/charset.alias
@@ -260,62 +274,60 @@ charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
SUFFIXES = .sed .sin
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
DISTCLEANFILES = ftw.h search.h fnmatch.h
subdir = lib
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
libfetish_a_AR = $(AR) cru
am_libfetish_a_OBJECTS = acl$U.$(OBJEXT) getdate$U.$(OBJEXT) \
posixtm$U.$(OBJEXT) posixver$U.$(OBJEXT) strftime$U.$(OBJEXT) \
getopt$U.$(OBJEXT) getopt1$U.$(OBJEXT) hash$U.$(OBJEXT) \
hash-pjw$U.$(OBJEXT) addext$U.$(OBJEXT) argmatch$U.$(OBJEXT) \
backupfile$U.$(OBJEXT) basename$U.$(OBJEXT) \
canon-host$U.$(OBJEXT) c-stack$U.$(OBJEXT) closeout$U.$(OBJEXT) \
diacrit$U.$(OBJEXT) dirname$U.$(OBJEXT) dup-safer$U.$(OBJEXT) \
exclude$U.$(OBJEXT) exitfail$U.$(OBJEXT) filemode$U.$(OBJEXT) \
file-type$U.$(OBJEXT) fopen-safer$U.$(OBJEXT) \
full-write$U.$(OBJEXT) getstr$U.$(OBJEXT) gettime$U.$(OBJEXT) \
getugroups$U.$(OBJEXT) hard-locale$U.$(OBJEXT) \
human$U.$(OBJEXT) idcache$U.$(OBJEXT) isdir$U.$(OBJEXT) \
linebuffer$U.$(OBJEXT) localcharset$U.$(OBJEXT) \
long-options$U.$(OBJEXT) makepath$U.$(OBJEXT) \
mbswidth$U.$(OBJEXT) md5$U.$(OBJEXT) memcasecmp$U.$(OBJEXT) \
memcoll$U.$(OBJEXT) modechange$U.$(OBJEXT) \
path-concat$U.$(OBJEXT) physmem$U.$(OBJEXT) quote$U.$(OBJEXT) \
quotearg$U.$(OBJEXT) readtokens$U.$(OBJEXT) \
safe-read$U.$(OBJEXT) same$U.$(OBJEXT) save-cwd$U.$(OBJEXT) \
savedir$U.$(OBJEXT) settime$U.$(OBJEXT) sha$U.$(OBJEXT) \
stripslash$U.$(OBJEXT) unicodeio$U.$(OBJEXT) \
userspec$U.$(OBJEXT) version-etc$U.$(OBJEXT) \
xgetcwd$U.$(OBJEXT) xgethostname$U.$(OBJEXT) \
xmalloc$U.$(OBJEXT) xmemcoll$U.$(OBJEXT) xnanosleep$U.$(OBJEXT) \
xreadlink$U.$(OBJEXT) xstrdup$U.$(OBJEXT) xstrtod$U.$(OBJEXT) \
xstrtol$U.$(OBJEXT) xstrtoul$U.$(OBJEXT) xstrtoimax$U.$(OBJEXT) \
xstrtoumax$U.$(OBJEXT) yesno$U.$(OBJEXT)
am_libfetish_a_OBJECTS = acl.$(OBJEXT) getdate.$(OBJEXT) \
posixtm.$(OBJEXT) posixver.$(OBJEXT) strftime.$(OBJEXT) \
getopt.$(OBJEXT) getopt1.$(OBJEXT) hash.$(OBJEXT) \
hash-pjw.$(OBJEXT) addext.$(OBJEXT) argmatch.$(OBJEXT) \
backupfile.$(OBJEXT) basename.$(OBJEXT) canon-host.$(OBJEXT) \
closeout.$(OBJEXT) cycle-check.$(OBJEXT) diacrit.$(OBJEXT) \
dirname.$(OBJEXT) dup-safer.$(OBJEXT) exclude.$(OBJEXT) \
exitfail.$(OBJEXT) filemode.$(OBJEXT) file-type.$(OBJEXT) \
fopen-safer.$(OBJEXT) full-read.$(OBJEXT) full-write.$(OBJEXT) \
getstr.$(OBJEXT) gettime.$(OBJEXT) getugroups.$(OBJEXT) \
hard-locale.$(OBJEXT) human.$(OBJEXT) idcache.$(OBJEXT) \
isdir.$(OBJEXT) imaxtostr.$(OBJEXT) linebuffer.$(OBJEXT) \
localcharset.$(OBJEXT) long-options.$(OBJEXT) \
makepath.$(OBJEXT) mbswidth.$(OBJEXT) md5.$(OBJEXT) \
memcasecmp.$(OBJEXT) memcoll.$(OBJEXT) modechange.$(OBJEXT) \
offtostr.$(OBJEXT) path-concat.$(OBJEXT) physmem.$(OBJEXT) \
quote.$(OBJEXT) quotearg.$(OBJEXT) readtokens.$(OBJEXT) \
safe-read.$(OBJEXT) safe-write.$(OBJEXT) same.$(OBJEXT) \
save-cwd.$(OBJEXT) savedir.$(OBJEXT) settime.$(OBJEXT) \
sha.$(OBJEXT) stripslash.$(OBJEXT) umaxtostr.$(OBJEXT) \
unicodeio.$(OBJEXT) userspec.$(OBJEXT) version-etc.$(OBJEXT) \
xgetcwd.$(OBJEXT) xgethostname.$(OBJEXT) xmalloc.$(OBJEXT) \
xmemcoll.$(OBJEXT) xnanosleep.$(OBJEXT) xreadlink.$(OBJEXT) \
xstrdup.$(OBJEXT) xstrtod.$(OBJEXT) xstrtol.$(OBJEXT) \
xstrtoul.$(OBJEXT) xstrtoimax.$(OBJEXT) xstrtoumax.$(OBJEXT) \
yesno.$(OBJEXT)
libfetish_a_OBJECTS = $(am_libfetish_a_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
am__depfiles_maybe = depfiles
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/__fpending.Po $(DEPDIR)/alloca.Po \
@AMDEP_TRUE@ $(DEPDIR)/atexit.Po $(DEPDIR)/chown.Po \
@AMDEP_TRUE@ $(DEPDIR)/dirfd.Po $(DEPDIR)/dup2.Po \
@AMDEP_TRUE@ $(DEPDIR)/error.Po $(DEPDIR)/euidaccess.Po \
@AMDEP_TRUE@ $(DEPDIR)/fileblocks.Po $(DEPDIR)/fnmatch.Po \
@AMDEP_TRUE@ $(DEPDIR)/fsusage.Po $(DEPDIR)/ftruncate.Po \
@AMDEP_TRUE@ $(DEPDIR)/getgroups.Po $(DEPDIR)/gethostname.Po \
@AMDEP_TRUE@ $(DEPDIR)/getline.Po $(DEPDIR)/getloadavg.Po \
@AMDEP_TRUE@ $(DEPDIR)/getpass.Po $(DEPDIR)/gettimeofday.Po \
@AMDEP_TRUE@ $(DEPDIR)/getusershell.Po $(DEPDIR)/group-member.Po \
@AMDEP_TRUE@ $(DEPDIR)/lchown.Po $(DEPDIR)/lstat.Po \
@AMDEP_TRUE@ $(DEPDIR)/atexit.Po $(DEPDIR)/canonicalize.Po \
@AMDEP_TRUE@ $(DEPDIR)/chown.Po $(DEPDIR)/dirfd.Po \
@AMDEP_TRUE@ $(DEPDIR)/dup2.Po $(DEPDIR)/error.Po \
@AMDEP_TRUE@ $(DEPDIR)/euidaccess.Po $(DEPDIR)/fchdir-stub.Po \
@AMDEP_TRUE@ $(DEPDIR)/fchown-stub.Po $(DEPDIR)/fileblocks.Po \
@AMDEP_TRUE@ $(DEPDIR)/fnmatch.Po $(DEPDIR)/fsusage.Po \
@AMDEP_TRUE@ $(DEPDIR)/ftruncate.Po $(DEPDIR)/ftw.Po \
@AMDEP_TRUE@ $(DEPDIR)/getcwd.Po $(DEPDIR)/getgroups.Po \
@AMDEP_TRUE@ $(DEPDIR)/gethostname.Po $(DEPDIR)/getline.Po \
@AMDEP_TRUE@ $(DEPDIR)/getloadavg.Po $(DEPDIR)/getpass.Po \
@AMDEP_TRUE@ $(DEPDIR)/gettimeofday.Po $(DEPDIR)/getusershell.Po \
@AMDEP_TRUE@ $(DEPDIR)/group-member.Po $(DEPDIR)/lchown.Po \
@AMDEP_TRUE@ $(DEPDIR)/lstat-stub.Po $(DEPDIR)/lstat.Po \
@AMDEP_TRUE@ $(DEPDIR)/malloc.Po $(DEPDIR)/memchr.Po \
@AMDEP_TRUE@ $(DEPDIR)/memcmp.Po $(DEPDIR)/memcpy.Po \
@AMDEP_TRUE@ $(DEPDIR)/memmove.Po $(DEPDIR)/memrchr.Po \
@@ -323,6 +335,7 @@ am__depfiles_maybe = depfiles
@AMDEP_TRUE@ $(DEPDIR)/mkstemp.Po $(DEPDIR)/mktime.Po \
@AMDEP_TRUE@ $(DEPDIR)/mountlist.Po $(DEPDIR)/nanosleep.Po \
@AMDEP_TRUE@ $(DEPDIR)/obstack.Po $(DEPDIR)/putenv.Po \
@AMDEP_TRUE@ $(DEPDIR)/raise.Po $(DEPDIR)/readlink-stub.Po \
@AMDEP_TRUE@ $(DEPDIR)/readutmp.Po $(DEPDIR)/realloc.Po \
@AMDEP_TRUE@ $(DEPDIR)/regex.Po $(DEPDIR)/rename.Po \
@AMDEP_TRUE@ $(DEPDIR)/rmdir.Po $(DEPDIR)/rpmatch.Po \
@@ -336,54 +349,45 @@ am__depfiles_maybe = depfiles
@AMDEP_TRUE@ $(DEPDIR)/strtoll.Po $(DEPDIR)/strtoul.Po \
@AMDEP_TRUE@ $(DEPDIR)/strtoull.Po $(DEPDIR)/strtoumax.Po \
@AMDEP_TRUE@ $(DEPDIR)/strverscmp.Po $(DEPDIR)/tempname.Po \
@AMDEP_TRUE@ $(DEPDIR)/utime.Po ./$(DEPDIR)/acl$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/addext$U.Po ./$(DEPDIR)/argmatch$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/backupfile$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/basename$U.Po ./$(DEPDIR)/c-stack$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/canon-host$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/closeout$U.Po ./$(DEPDIR)/diacrit$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/dirname$U.Po ./$(DEPDIR)/dup-safer$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/exclude$U.Po ./$(DEPDIR)/exitfail$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/file-type$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/filemode$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/fopen-safer$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/full-write$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/getdate$U.Po ./$(DEPDIR)/getopt$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/getopt1$U.Po ./$(DEPDIR)/getstr$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/gettime$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/getugroups$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/hard-locale$U.Po ./$(DEPDIR)/hash$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/hash-pjw$U.Po ./$(DEPDIR)/human$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/idcache$U.Po ./$(DEPDIR)/isdir$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/linebuffer$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/localcharset$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/long-options$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/makepath$U.Po ./$(DEPDIR)/mbswidth$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/md5$U.Po ./$(DEPDIR)/memcasecmp$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/memcoll$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/modechange$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/path-concat$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/physmem$U.Po ./$(DEPDIR)/posixtm$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/posixver$U.Po ./$(DEPDIR)/quote$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/quotearg$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/readtokens$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/safe-read$U.Po ./$(DEPDIR)/same$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/save-cwd$U.Po ./$(DEPDIR)/savedir$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/settime$U.Po ./$(DEPDIR)/sha$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/strftime$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/stripslash$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/unicodeio$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/userspec$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/version-etc$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/xgetcwd$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/xgethostname$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/xmalloc$U.Po ./$(DEPDIR)/xmemcoll$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/xnanosleep$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/xreadlink$U.Po ./$(DEPDIR)/xstrdup$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/xstrtod$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/xstrtoimax$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/xstrtol$U.Po ./$(DEPDIR)/xstrtoul$U.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/xstrtoumax$U.Po ./$(DEPDIR)/yesno$U.Po
@AMDEP_TRUE@ $(DEPDIR)/tsearch.Po $(DEPDIR)/utime.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/acl.Po ./$(DEPDIR)/addext.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/argmatch.Po ./$(DEPDIR)/backupfile.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/basename.Po ./$(DEPDIR)/canon-host.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/closeout.Po ./$(DEPDIR)/cycle-check.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/diacrit.Po ./$(DEPDIR)/dirname.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/dup-safer.Po ./$(DEPDIR)/exclude.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/exitfail.Po ./$(DEPDIR)/file-type.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/filemode.Po ./$(DEPDIR)/fopen-safer.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/full-read.Po ./$(DEPDIR)/full-write.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/getdate.Po ./$(DEPDIR)/getopt.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/getopt1.Po ./$(DEPDIR)/getstr.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/gettime.Po ./$(DEPDIR)/getugroups.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/hard-locale.Po ./$(DEPDIR)/hash-pjw.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/hash.Po ./$(DEPDIR)/human.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/idcache.Po ./$(DEPDIR)/imaxtostr.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/isdir.Po ./$(DEPDIR)/linebuffer.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/localcharset.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/long-options.Po ./$(DEPDIR)/makepath.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/mbswidth.Po ./$(DEPDIR)/md5.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/memcasecmp.Po ./$(DEPDIR)/memcoll.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/modechange.Po ./$(DEPDIR)/offtostr.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/path-concat.Po ./$(DEPDIR)/physmem.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/posixtm.Po ./$(DEPDIR)/posixver.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/quote.Po ./$(DEPDIR)/quotearg.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/readtokens.Po ./$(DEPDIR)/safe-read.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/safe-write.Po ./$(DEPDIR)/same.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/save-cwd.Po ./$(DEPDIR)/savedir.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/settime.Po ./$(DEPDIR)/sha.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/strftime.Po ./$(DEPDIR)/stripslash.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/umaxtostr.Po ./$(DEPDIR)/unicodeio.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/userspec.Po ./$(DEPDIR)/version-etc.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/xgetcwd.Po ./$(DEPDIR)/xgethostname.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/xmalloc.Po ./$(DEPDIR)/xmemcoll.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/xnanosleep.Po ./$(DEPDIR)/xreadlink.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/xstrdup.Po ./$(DEPDIR)/xstrtod.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/xstrtoimax.Po ./$(DEPDIR)/xstrtol.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/xstrtoul.Po ./$(DEPDIR)/xstrtoumax.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/yesno.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
@@ -391,18 +395,19 @@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
DIST_SOURCES = $(libfetish_a_SOURCES)
DIST_COMMON = README ChangeLog Makefile.am Makefile.in TODO \
__fpending.c alloca.c atexit.c chown.c dirfd.c dup2.c error.c \
error.h euidaccess.c fileblocks.c fnmatch.c fsusage.c \
ftruncate.c getdate.c getgroups.c gethostname.c getline.c \
getloadavg.c getpass.c gettimeofday.c getusershell.c \
group-member.c lchown.c malloc.c memchr.c memcmp.c memcpy.c \
__fpending.c alloca.c atexit.c canonicalize.c chown.c dirfd.c \
dup2.c error.c error.h euidaccess.c fchdir-stub.c fchown-stub.c \
fileblocks.c fnmatch.c fsusage.c ftruncate.c ftw.c getcwd.c \
getdate.c getgroups.c gethostname.c getline.c getloadavg.c \
getpass.c gettimeofday.c getusershell.c group-member.c lchown.c \
lstat-stub.c lstat.c malloc.c memchr.c memcmp.c memcpy.c \
memmove.c memrchr.c memset.c mkdir.c mkstemp.c mktime.c \
mountlist.c nanosleep.c obstack.c obstack.h putenv.c readutmp.c \
realloc.c regex.c rename.c rmdir.c rpmatch.c sig2str.c stpcpy.c \
strcasecmp.c strcspn.c strdup.c strncasecmp.c strndup.c \
strnlen.c strpbrk.c strstr.c strtod.c strtoimax.c strtol.c \
strtoll.c strtoul.c strtoull.c strtoumax.c strverscmp.c \
tempname.c utime.c
mountlist.c nanosleep.c obstack.c obstack.h putenv.c raise.c \
readlink-stub.c readutmp.c realloc.c regex.c rename.c rmdir.c \
rpmatch.c sig2str.c stat.c stpcpy.c strcasecmp.c strcspn.c \
strdup.c strncasecmp.c strndup.c strnlen.c strpbrk.c strstr.c \
strtod.c strtoimax.c strtol.c strtoll.c strtoul.c strtoull.c \
strtoumax.c strverscmp.c tempname.c tsearch.c utime.c
SOURCES = $(libfetish_a_SOURCES)
all: $(BUILT_SOURCES)
@@ -431,25 +436,23 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
ANSI2KNR = ../src/ansi2knr
../src/ansi2knr:
cd ../src && $(MAKE) $(AM_MAKEFLAGS) ansi2knr
mostlyclean-kr:
-test "$U" = "" || rm -f *_.c
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/__fpending.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/atexit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/canonicalize.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/chown.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/dirfd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/dup2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/error.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/euidaccess.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/fchdir-stub.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/fchown-stub.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/fileblocks.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/fnmatch.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/fsusage.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ftruncate.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ftw.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getcwd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getgroups.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/gethostname.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getline.Po@am__quote@
@@ -459,6 +462,7 @@ mostlyclean-kr:
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getusershell.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/group-member.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/lchown.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/lstat-stub.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/lstat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/malloc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/memchr.Po@am__quote@
@@ -474,6 +478,8 @@ mostlyclean-kr:
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/nanosleep.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/obstack.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/putenv.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/raise.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/readlink-stub.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/readutmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/realloc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/regex.Po@am__quote@
@@ -500,76 +506,82 @@ mostlyclean-kr:
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strtoumax.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strverscmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/tempname.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/tsearch.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/utime.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acl$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/addext$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argmatch$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backupfile$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-stack$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/canon-host$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closeout$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diacrit$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-safer$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exclude$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-type$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filemode$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fopen-safer$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full-write$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdate$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getstr$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettime$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getugroups$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hard-locale$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash-pjw$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/human$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idcache$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isdir$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linebuffer$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/long-options$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/makepath$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbswidth$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memcasecmp$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memcoll$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modechange$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/path-concat$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/physmem$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/posixtm$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/posixver$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quote$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quotearg$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readtokens$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-read$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/same$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/save-cwd$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/savedir$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/settime$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strftime$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unicodeio$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/userspec$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgetcwd$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgethostname$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmemcoll$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xnanosleep$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xreadlink$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrdup$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtod$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtoimax$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtol$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtoul$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtoumax$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yesno$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/addext.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argmatch.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backupfile.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/canon-host.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closeout.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cycle-check.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diacrit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-safer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exclude.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-type.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filemode.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fopen-safer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full-read.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full-write.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdate.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getstr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettime.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getugroups.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hard-locale.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash-pjw.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/human.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idcache.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imaxtostr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isdir.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linebuffer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/long-options.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/makepath.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbswidth.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memcasecmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memcoll.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modechange.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/offtostr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/path-concat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/physmem.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/posixtm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/posixver.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quote.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quotearg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readtokens.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-read.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-write.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/same.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/save-cwd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/savedir.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/settime.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strftime.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umaxtostr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unicodeio.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/userspec.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgetcwd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgethostname.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmemcoll.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xnanosleep.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xreadlink.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrdup.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtod.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtoimax.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtol.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtoul.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtoumax.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yesno.Po@am__quote@
distclean-depend:
-rm -rf $(DEPDIR) ./$(DEPDIR)
@@ -587,322 +599,14 @@ distclean-depend:
.c.obj:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'`; \
@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
@am__fastdepCC_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'`
__fpending_.c: lib/__fpending.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/__fpending.c; then echo $(srcdir)/lib/__fpending.c; else echo lib/__fpending.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > __fpending_.c || rm -f __fpending_.c
acl_.c: acl.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/acl.c; then echo $(srcdir)/acl.c; else echo acl.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > acl_.c || rm -f acl_.c
addext_.c: addext.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/addext.c; then echo $(srcdir)/addext.c; else echo addext.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > addext_.c || rm -f addext_.c
alloca_.c: lib/alloca.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/alloca.c; then echo $(srcdir)/lib/alloca.c; else echo lib/alloca.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > alloca_.c || rm -f alloca_.c
argmatch_.c: argmatch.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/argmatch.c; then echo $(srcdir)/argmatch.c; else echo argmatch.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > argmatch_.c || rm -f argmatch_.c
atexit_.c: lib/atexit.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/atexit.c; then echo $(srcdir)/lib/atexit.c; else echo lib/atexit.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > atexit_.c || rm -f atexit_.c
backupfile_.c: backupfile.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/backupfile.c; then echo $(srcdir)/backupfile.c; else echo backupfile.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > backupfile_.c || rm -f backupfile_.c
basename_.c: basename.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/basename.c; then echo $(srcdir)/basename.c; else echo basename.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > basename_.c || rm -f basename_.c
c-stack_.c: c-stack.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/c-stack.c; then echo $(srcdir)/c-stack.c; else echo c-stack.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > c-stack_.c || rm -f c-stack_.c
canon-host_.c: canon-host.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/canon-host.c; then echo $(srcdir)/canon-host.c; else echo canon-host.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > canon-host_.c || rm -f canon-host_.c
chown_.c: lib/chown.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/chown.c; then echo $(srcdir)/lib/chown.c; else echo lib/chown.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > chown_.c || rm -f chown_.c
closeout_.c: closeout.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/closeout.c; then echo $(srcdir)/closeout.c; else echo closeout.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > closeout_.c || rm -f closeout_.c
diacrit_.c: diacrit.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/diacrit.c; then echo $(srcdir)/diacrit.c; else echo diacrit.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > diacrit_.c || rm -f diacrit_.c
dirfd_.c: lib/dirfd.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/dirfd.c; then echo $(srcdir)/lib/dirfd.c; else echo lib/dirfd.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > dirfd_.c || rm -f dirfd_.c
dirname_.c: dirname.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/dirname.c; then echo $(srcdir)/dirname.c; else echo dirname.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > dirname_.c || rm -f dirname_.c
dup-safer_.c: dup-safer.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/dup-safer.c; then echo $(srcdir)/dup-safer.c; else echo dup-safer.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > dup-safer_.c || rm -f dup-safer_.c
dup2_.c: lib/dup2.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/dup2.c; then echo $(srcdir)/lib/dup2.c; else echo lib/dup2.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > dup2_.c || rm -f dup2_.c
error_.c: lib/error.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/error.c; then echo $(srcdir)/lib/error.c; else echo lib/error.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > error_.c || rm -f error_.c
euidaccess_.c: lib/euidaccess.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/euidaccess.c; then echo $(srcdir)/lib/euidaccess.c; else echo lib/euidaccess.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > euidaccess_.c || rm -f euidaccess_.c
exclude_.c: exclude.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/exclude.c; then echo $(srcdir)/exclude.c; else echo exclude.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > exclude_.c || rm -f exclude_.c
exitfail_.c: exitfail.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/exitfail.c; then echo $(srcdir)/exitfail.c; else echo exitfail.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > exitfail_.c || rm -f exitfail_.c
file-type_.c: file-type.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/file-type.c; then echo $(srcdir)/file-type.c; else echo file-type.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > file-type_.c || rm -f file-type_.c
fileblocks_.c: lib/fileblocks.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/fileblocks.c; then echo $(srcdir)/lib/fileblocks.c; else echo lib/fileblocks.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > fileblocks_.c || rm -f fileblocks_.c
filemode_.c: filemode.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/filemode.c; then echo $(srcdir)/filemode.c; else echo filemode.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > filemode_.c || rm -f filemode_.c
fnmatch_.c: lib/fnmatch.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/fnmatch.c; then echo $(srcdir)/lib/fnmatch.c; else echo lib/fnmatch.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > fnmatch_.c || rm -f fnmatch_.c
fopen-safer_.c: fopen-safer.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/fopen-safer.c; then echo $(srcdir)/fopen-safer.c; else echo fopen-safer.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > fopen-safer_.c || rm -f fopen-safer_.c
fsusage_.c: lib/fsusage.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/fsusage.c; then echo $(srcdir)/lib/fsusage.c; else echo lib/fsusage.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > fsusage_.c || rm -f fsusage_.c
ftruncate_.c: lib/ftruncate.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/ftruncate.c; then echo $(srcdir)/lib/ftruncate.c; else echo lib/ftruncate.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > ftruncate_.c || rm -f ftruncate_.c
full-write_.c: full-write.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/full-write.c; then echo $(srcdir)/full-write.c; else echo full-write.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > full-write_.c || rm -f full-write_.c
getdate_.c: getdate.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getdate.c; then echo $(srcdir)/getdate.c; else echo getdate.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getdate_.c || rm -f getdate_.c
getgroups_.c: lib/getgroups.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/getgroups.c; then echo $(srcdir)/lib/getgroups.c; else echo lib/getgroups.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getgroups_.c || rm -f getgroups_.c
gethostname_.c: lib/gethostname.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/gethostname.c; then echo $(srcdir)/lib/gethostname.c; else echo lib/gethostname.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > gethostname_.c || rm -f gethostname_.c
getline_.c: lib/getline.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/getline.c; then echo $(srcdir)/lib/getline.c; else echo lib/getline.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getline_.c || rm -f getline_.c
getloadavg_.c: lib/getloadavg.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/getloadavg.c; then echo $(srcdir)/lib/getloadavg.c; else echo lib/getloadavg.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getloadavg_.c || rm -f getloadavg_.c
getopt_.c: getopt.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt.c; then echo $(srcdir)/getopt.c; else echo getopt.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt_.c || rm -f getopt_.c
getopt1_.c: getopt1.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt1.c; then echo $(srcdir)/getopt1.c; else echo getopt1.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt1_.c || rm -f getopt1_.c
getpass_.c: lib/getpass.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/getpass.c; then echo $(srcdir)/lib/getpass.c; else echo lib/getpass.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getpass_.c || rm -f getpass_.c
getstr_.c: getstr.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getstr.c; then echo $(srcdir)/getstr.c; else echo getstr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getstr_.c || rm -f getstr_.c
gettime_.c: gettime.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/gettime.c; then echo $(srcdir)/gettime.c; else echo gettime.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > gettime_.c || rm -f gettime_.c
gettimeofday_.c: lib/gettimeofday.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/gettimeofday.c; then echo $(srcdir)/lib/gettimeofday.c; else echo lib/gettimeofday.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > gettimeofday_.c || rm -f gettimeofday_.c
getugroups_.c: getugroups.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getugroups.c; then echo $(srcdir)/getugroups.c; else echo getugroups.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getugroups_.c || rm -f getugroups_.c
getusershell_.c: lib/getusershell.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/getusershell.c; then echo $(srcdir)/lib/getusershell.c; else echo lib/getusershell.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getusershell_.c || rm -f getusershell_.c
group-member_.c: lib/group-member.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/group-member.c; then echo $(srcdir)/lib/group-member.c; else echo lib/group-member.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > group-member_.c || rm -f group-member_.c
hard-locale_.c: hard-locale.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/hard-locale.c; then echo $(srcdir)/hard-locale.c; else echo hard-locale.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > hard-locale_.c || rm -f hard-locale_.c
hash_.c: hash.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/hash.c; then echo $(srcdir)/hash.c; else echo hash.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > hash_.c || rm -f hash_.c
hash-pjw_.c: hash-pjw.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/hash-pjw.c; then echo $(srcdir)/hash-pjw.c; else echo hash-pjw.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > hash-pjw_.c || rm -f hash-pjw_.c
human_.c: human.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/human.c; then echo $(srcdir)/human.c; else echo human.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > human_.c || rm -f human_.c
idcache_.c: idcache.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/idcache.c; then echo $(srcdir)/idcache.c; else echo idcache.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > idcache_.c || rm -f idcache_.c
isdir_.c: isdir.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/isdir.c; then echo $(srcdir)/isdir.c; else echo isdir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > isdir_.c || rm -f isdir_.c
lchown_.c: lib/lchown.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/lchown.c; then echo $(srcdir)/lib/lchown.c; else echo lib/lchown.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > lchown_.c || rm -f lchown_.c
linebuffer_.c: linebuffer.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/linebuffer.c; then echo $(srcdir)/linebuffer.c; else echo linebuffer.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > linebuffer_.c || rm -f linebuffer_.c
localcharset_.c: localcharset.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/localcharset.c; then echo $(srcdir)/localcharset.c; else echo localcharset.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > localcharset_.c || rm -f localcharset_.c
long-options_.c: long-options.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/long-options.c; then echo $(srcdir)/long-options.c; else echo long-options.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > long-options_.c || rm -f long-options_.c
lstat_.c: lib/lstat.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/lstat.c; then echo $(srcdir)/lib/lstat.c; else echo lib/lstat.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > lstat_.c || rm -f lstat_.c
makepath_.c: makepath.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/makepath.c; then echo $(srcdir)/makepath.c; else echo makepath.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > makepath_.c || rm -f makepath_.c
malloc_.c: lib/malloc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/malloc.c; then echo $(srcdir)/lib/malloc.c; else echo lib/malloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > malloc_.c || rm -f malloc_.c
mbswidth_.c: mbswidth.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/mbswidth.c; then echo $(srcdir)/mbswidth.c; else echo mbswidth.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > mbswidth_.c || rm -f mbswidth_.c
md5_.c: md5.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/md5.c; then echo $(srcdir)/md5.c; else echo md5.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > md5_.c || rm -f md5_.c
memcasecmp_.c: memcasecmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memcasecmp.c; then echo $(srcdir)/memcasecmp.c; else echo memcasecmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memcasecmp_.c || rm -f memcasecmp_.c
memchr_.c: lib/memchr.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/memchr.c; then echo $(srcdir)/lib/memchr.c; else echo lib/memchr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memchr_.c || rm -f memchr_.c
memcmp_.c: lib/memcmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/memcmp.c; then echo $(srcdir)/lib/memcmp.c; else echo lib/memcmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memcmp_.c || rm -f memcmp_.c
memcoll_.c: memcoll.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memcoll.c; then echo $(srcdir)/memcoll.c; else echo memcoll.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memcoll_.c || rm -f memcoll_.c
memcpy_.c: lib/memcpy.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/memcpy.c; then echo $(srcdir)/lib/memcpy.c; else echo lib/memcpy.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memcpy_.c || rm -f memcpy_.c
memmove_.c: lib/memmove.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/memmove.c; then echo $(srcdir)/lib/memmove.c; else echo lib/memmove.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memmove_.c || rm -f memmove_.c
memrchr_.c: lib/memrchr.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/memrchr.c; then echo $(srcdir)/lib/memrchr.c; else echo lib/memrchr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memrchr_.c || rm -f memrchr_.c
memset_.c: lib/memset.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/memset.c; then echo $(srcdir)/lib/memset.c; else echo lib/memset.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memset_.c || rm -f memset_.c
mkdir_.c: lib/mkdir.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/mkdir.c; then echo $(srcdir)/lib/mkdir.c; else echo lib/mkdir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > mkdir_.c || rm -f mkdir_.c
mkstemp_.c: lib/mkstemp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/mkstemp.c; then echo $(srcdir)/lib/mkstemp.c; else echo lib/mkstemp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > mkstemp_.c || rm -f mkstemp_.c
mktime_.c: lib/mktime.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/mktime.c; then echo $(srcdir)/lib/mktime.c; else echo lib/mktime.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > mktime_.c || rm -f mktime_.c
modechange_.c: modechange.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/modechange.c; then echo $(srcdir)/modechange.c; else echo modechange.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > modechange_.c || rm -f modechange_.c
mountlist_.c: lib/mountlist.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/mountlist.c; then echo $(srcdir)/lib/mountlist.c; else echo lib/mountlist.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > mountlist_.c || rm -f mountlist_.c
nanosleep_.c: lib/nanosleep.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/nanosleep.c; then echo $(srcdir)/lib/nanosleep.c; else echo lib/nanosleep.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > nanosleep_.c || rm -f nanosleep_.c
obstack_.c: lib/obstack.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/obstack.c; then echo $(srcdir)/lib/obstack.c; else echo lib/obstack.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > obstack_.c || rm -f obstack_.c
path-concat_.c: path-concat.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/path-concat.c; then echo $(srcdir)/path-concat.c; else echo path-concat.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > path-concat_.c || rm -f path-concat_.c
physmem_.c: physmem.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/physmem.c; then echo $(srcdir)/physmem.c; else echo physmem.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > physmem_.c || rm -f physmem_.c
posixtm_.c: posixtm.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/posixtm.c; then echo $(srcdir)/posixtm.c; else echo posixtm.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > posixtm_.c || rm -f posixtm_.c
posixver_.c: posixver.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/posixver.c; then echo $(srcdir)/posixver.c; else echo posixver.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > posixver_.c || rm -f posixver_.c
putenv_.c: lib/putenv.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/putenv.c; then echo $(srcdir)/lib/putenv.c; else echo lib/putenv.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > putenv_.c || rm -f putenv_.c
quote_.c: quote.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/quote.c; then echo $(srcdir)/quote.c; else echo quote.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > quote_.c || rm -f quote_.c
quotearg_.c: quotearg.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/quotearg.c; then echo $(srcdir)/quotearg.c; else echo quotearg.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > quotearg_.c || rm -f quotearg_.c
readtokens_.c: readtokens.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/readtokens.c; then echo $(srcdir)/readtokens.c; else echo readtokens.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > readtokens_.c || rm -f readtokens_.c
readutmp_.c: lib/readutmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/readutmp.c; then echo $(srcdir)/lib/readutmp.c; else echo lib/readutmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > readutmp_.c || rm -f readutmp_.c
realloc_.c: lib/realloc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/realloc.c; then echo $(srcdir)/lib/realloc.c; else echo lib/realloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > realloc_.c || rm -f realloc_.c
regex_.c: lib/regex.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/regex.c; then echo $(srcdir)/lib/regex.c; else echo lib/regex.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > regex_.c || rm -f regex_.c
rename_.c: lib/rename.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/rename.c; then echo $(srcdir)/lib/rename.c; else echo lib/rename.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > rename_.c || rm -f rename_.c
rmdir_.c: lib/rmdir.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/rmdir.c; then echo $(srcdir)/lib/rmdir.c; else echo lib/rmdir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > rmdir_.c || rm -f rmdir_.c
rpmatch_.c: lib/rpmatch.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/rpmatch.c; then echo $(srcdir)/lib/rpmatch.c; else echo lib/rpmatch.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > rpmatch_.c || rm -f rpmatch_.c
safe-read_.c: safe-read.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/safe-read.c; then echo $(srcdir)/safe-read.c; else echo safe-read.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > safe-read_.c || rm -f safe-read_.c
same_.c: same.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/same.c; then echo $(srcdir)/same.c; else echo same.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > same_.c || rm -f same_.c
save-cwd_.c: save-cwd.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/save-cwd.c; then echo $(srcdir)/save-cwd.c; else echo save-cwd.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > save-cwd_.c || rm -f save-cwd_.c
savedir_.c: savedir.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/savedir.c; then echo $(srcdir)/savedir.c; else echo savedir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > savedir_.c || rm -f savedir_.c
settime_.c: settime.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/settime.c; then echo $(srcdir)/settime.c; else echo settime.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > settime_.c || rm -f settime_.c
sha_.c: sha.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/sha.c; then echo $(srcdir)/sha.c; else echo sha.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > sha_.c || rm -f sha_.c
sig2str_.c: lib/sig2str.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/sig2str.c; then echo $(srcdir)/lib/sig2str.c; else echo lib/sig2str.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > sig2str_.c || rm -f sig2str_.c
stat_.c: lib/stat.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/stat.c; then echo $(srcdir)/lib/stat.c; else echo lib/stat.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stat_.c || rm -f stat_.c
stpcpy_.c: lib/stpcpy.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/stpcpy.c; then echo $(srcdir)/lib/stpcpy.c; else echo lib/stpcpy.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stpcpy_.c || rm -f stpcpy_.c
strcasecmp_.c: lib/strcasecmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strcasecmp.c; then echo $(srcdir)/lib/strcasecmp.c; else echo lib/strcasecmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strcasecmp_.c || rm -f strcasecmp_.c
strcspn_.c: lib/strcspn.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strcspn.c; then echo $(srcdir)/lib/strcspn.c; else echo lib/strcspn.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strcspn_.c || rm -f strcspn_.c
strdup_.c: lib/strdup.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strdup.c; then echo $(srcdir)/lib/strdup.c; else echo lib/strdup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strdup_.c || rm -f strdup_.c
strftime_.c: strftime.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strftime.c; then echo $(srcdir)/strftime.c; else echo strftime.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strftime_.c || rm -f strftime_.c
stripslash_.c: stripslash.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stripslash.c; then echo $(srcdir)/stripslash.c; else echo stripslash.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stripslash_.c || rm -f stripslash_.c
strncasecmp_.c: lib/strncasecmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strncasecmp.c; then echo $(srcdir)/lib/strncasecmp.c; else echo lib/strncasecmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strncasecmp_.c || rm -f strncasecmp_.c
strndup_.c: lib/strndup.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strndup.c; then echo $(srcdir)/lib/strndup.c; else echo lib/strndup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strndup_.c || rm -f strndup_.c
strnlen_.c: lib/strnlen.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strnlen.c; then echo $(srcdir)/lib/strnlen.c; else echo lib/strnlen.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strnlen_.c || rm -f strnlen_.c
strpbrk_.c: lib/strpbrk.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strpbrk.c; then echo $(srcdir)/lib/strpbrk.c; else echo lib/strpbrk.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strpbrk_.c || rm -f strpbrk_.c
strstr_.c: lib/strstr.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strstr.c; then echo $(srcdir)/lib/strstr.c; else echo lib/strstr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strstr_.c || rm -f strstr_.c
strtod_.c: lib/strtod.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strtod.c; then echo $(srcdir)/lib/strtod.c; else echo lib/strtod.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtod_.c || rm -f strtod_.c
strtoimax_.c: lib/strtoimax.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strtoimax.c; then echo $(srcdir)/lib/strtoimax.c; else echo lib/strtoimax.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtoimax_.c || rm -f strtoimax_.c
strtol_.c: lib/strtol.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strtol.c; then echo $(srcdir)/lib/strtol.c; else echo lib/strtol.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtol_.c || rm -f strtol_.c
strtoll_.c: lib/strtoll.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strtoll.c; then echo $(srcdir)/lib/strtoll.c; else echo lib/strtoll.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtoll_.c || rm -f strtoll_.c
strtoul_.c: lib/strtoul.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strtoul.c; then echo $(srcdir)/lib/strtoul.c; else echo lib/strtoul.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtoul_.c || rm -f strtoul_.c
strtoull_.c: lib/strtoull.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strtoull.c; then echo $(srcdir)/lib/strtoull.c; else echo lib/strtoull.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtoull_.c || rm -f strtoull_.c
strtoumax_.c: lib/strtoumax.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strtoumax.c; then echo $(srcdir)/lib/strtoumax.c; else echo lib/strtoumax.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtoumax_.c || rm -f strtoumax_.c
strverscmp_.c: lib/strverscmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strverscmp.c; then echo $(srcdir)/lib/strverscmp.c; else echo lib/strverscmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strverscmp_.c || rm -f strverscmp_.c
tempname_.c: lib/tempname.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/tempname.c; then echo $(srcdir)/lib/tempname.c; else echo lib/tempname.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > tempname_.c || rm -f tempname_.c
unicodeio_.c: unicodeio.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/unicodeio.c; then echo $(srcdir)/unicodeio.c; else echo unicodeio.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > unicodeio_.c || rm -f unicodeio_.c
userspec_.c: userspec.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/userspec.c; then echo $(srcdir)/userspec.c; else echo userspec.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > userspec_.c || rm -f userspec_.c
utime_.c: lib/utime.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/utime.c; then echo $(srcdir)/lib/utime.c; else echo lib/utime.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > utime_.c || rm -f utime_.c
version-etc_.c: version-etc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/version-etc.c; then echo $(srcdir)/version-etc.c; else echo version-etc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > version-etc_.c || rm -f version-etc_.c
xgetcwd_.c: xgetcwd.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xgetcwd.c; then echo $(srcdir)/xgetcwd.c; else echo xgetcwd.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xgetcwd_.c || rm -f xgetcwd_.c
xgethostname_.c: xgethostname.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xgethostname.c; then echo $(srcdir)/xgethostname.c; else echo xgethostname.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xgethostname_.c || rm -f xgethostname_.c
xmalloc_.c: xmalloc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xmalloc.c; then echo $(srcdir)/xmalloc.c; else echo xmalloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xmalloc_.c || rm -f xmalloc_.c
xmemcoll_.c: xmemcoll.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xmemcoll.c; then echo $(srcdir)/xmemcoll.c; else echo xmemcoll.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xmemcoll_.c || rm -f xmemcoll_.c
xnanosleep_.c: xnanosleep.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xnanosleep.c; then echo $(srcdir)/xnanosleep.c; else echo xnanosleep.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xnanosleep_.c || rm -f xnanosleep_.c
xreadlink_.c: xreadlink.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xreadlink.c; then echo $(srcdir)/xreadlink.c; else echo xreadlink.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xreadlink_.c || rm -f xreadlink_.c
xstrdup_.c: xstrdup.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrdup.c; then echo $(srcdir)/xstrdup.c; else echo xstrdup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrdup_.c || rm -f xstrdup_.c
xstrtod_.c: xstrtod.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrtod.c; then echo $(srcdir)/xstrtod.c; else echo xstrtod.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrtod_.c || rm -f xstrtod_.c
xstrtoimax_.c: xstrtoimax.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrtoimax.c; then echo $(srcdir)/xstrtoimax.c; else echo xstrtoimax.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrtoimax_.c || rm -f xstrtoimax_.c
xstrtol_.c: xstrtol.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrtol.c; then echo $(srcdir)/xstrtol.c; else echo xstrtol.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrtol_.c || rm -f xstrtol_.c
xstrtoul_.c: xstrtoul.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrtoul.c; then echo $(srcdir)/xstrtoul.c; else echo xstrtoul.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrtoul_.c || rm -f xstrtoul_.c
xstrtoumax_.c: xstrtoumax.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrtoumax.c; then echo $(srcdir)/xstrtoumax.c; else echo xstrtoumax.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrtoumax_.c || rm -f xstrtoumax_.c
yesno_.c: yesno.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/yesno.c; then echo $(srcdir)/yesno.c; else echo yesno.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > yesno_.c || rm -f yesno_.c
__fpending_.$(OBJEXT) acl_.$(OBJEXT) addext_.$(OBJEXT) \
alloca_.$(OBJEXT) argmatch_.$(OBJEXT) atexit_.$(OBJEXT) \
backupfile_.$(OBJEXT) basename_.$(OBJEXT) c-stack_.$(OBJEXT) \
canon-host_.$(OBJEXT) chown_.$(OBJEXT) closeout_.$(OBJEXT) \
diacrit_.$(OBJEXT) dirfd_.$(OBJEXT) dirname_.$(OBJEXT) \
dup-safer_.$(OBJEXT) dup2_.$(OBJEXT) error_.$(OBJEXT) \
euidaccess_.$(OBJEXT) exclude_.$(OBJEXT) exitfail_.$(OBJEXT) \
file-type_.$(OBJEXT) fileblocks_.$(OBJEXT) filemode_.$(OBJEXT) \
fnmatch_.$(OBJEXT) fopen-safer_.$(OBJEXT) fsusage_.$(OBJEXT) \
ftruncate_.$(OBJEXT) full-write_.$(OBJEXT) getdate_.$(OBJEXT) \
getgroups_.$(OBJEXT) gethostname_.$(OBJEXT) getline_.$(OBJEXT) \
getloadavg_.$(OBJEXT) getopt_.$(OBJEXT) getopt1_.$(OBJEXT) \
getpass_.$(OBJEXT) getstr_.$(OBJEXT) gettime_.$(OBJEXT) \
gettimeofday_.$(OBJEXT) getugroups_.$(OBJEXT) getusershell_.$(OBJEXT) \
group-member_.$(OBJEXT) hard-locale_.$(OBJEXT) hash_.$(OBJEXT) \
hash-pjw_.$(OBJEXT) human_.$(OBJEXT) idcache_.$(OBJEXT) \
isdir_.$(OBJEXT) lchown_.$(OBJEXT) linebuffer_.$(OBJEXT) \
localcharset_.$(OBJEXT) long-options_.$(OBJEXT) lstat_.$(OBJEXT) \
makepath_.$(OBJEXT) malloc_.$(OBJEXT) mbswidth_.$(OBJEXT) \
md5_.$(OBJEXT) memcasecmp_.$(OBJEXT) memchr_.$(OBJEXT) \
memcmp_.$(OBJEXT) memcoll_.$(OBJEXT) memcpy_.$(OBJEXT) \
memmove_.$(OBJEXT) memrchr_.$(OBJEXT) memset_.$(OBJEXT) \
mkdir_.$(OBJEXT) mkstemp_.$(OBJEXT) mktime_.$(OBJEXT) \
modechange_.$(OBJEXT) mountlist_.$(OBJEXT) nanosleep_.$(OBJEXT) \
obstack_.$(OBJEXT) path-concat_.$(OBJEXT) physmem_.$(OBJEXT) \
posixtm_.$(OBJEXT) posixver_.$(OBJEXT) putenv_.$(OBJEXT) \
quote_.$(OBJEXT) quotearg_.$(OBJEXT) readtokens_.$(OBJEXT) \
readutmp_.$(OBJEXT) realloc_.$(OBJEXT) regex_.$(OBJEXT) \
rename_.$(OBJEXT) rmdir_.$(OBJEXT) rpmatch_.$(OBJEXT) \
safe-read_.$(OBJEXT) same_.$(OBJEXT) save-cwd_.$(OBJEXT) \
savedir_.$(OBJEXT) settime_.$(OBJEXT) sha_.$(OBJEXT) sig2str_.$(OBJEXT) \
stat_.$(OBJEXT) stpcpy_.$(OBJEXT) strcasecmp_.$(OBJEXT) \
strcspn_.$(OBJEXT) strdup_.$(OBJEXT) strftime_.$(OBJEXT) \
stripslash_.$(OBJEXT) strncasecmp_.$(OBJEXT) strndup_.$(OBJEXT) \
strnlen_.$(OBJEXT) strpbrk_.$(OBJEXT) strstr_.$(OBJEXT) \
strtod_.$(OBJEXT) strtoimax_.$(OBJEXT) strtol_.$(OBJEXT) \
strtoll_.$(OBJEXT) strtoul_.$(OBJEXT) strtoull_.$(OBJEXT) \
strtoumax_.$(OBJEXT) strverscmp_.$(OBJEXT) tempname_.$(OBJEXT) \
unicodeio_.$(OBJEXT) userspec_.$(OBJEXT) utime_.$(OBJEXT) \
version-etc_.$(OBJEXT) xgetcwd_.$(OBJEXT) xgethostname_.$(OBJEXT) \
xmalloc_.$(OBJEXT) xmemcoll_.$(OBJEXT) xnanosleep_.$(OBJEXT) \
xreadlink_.$(OBJEXT) xstrdup_.$(OBJEXT) xstrtod_.$(OBJEXT) \
xstrtoimax_.$(OBJEXT) xstrtol_.$(OBJEXT) xstrtoul_.$(OBJEXT) \
xstrtoumax_.$(OBJEXT) yesno_.$(OBJEXT) : $(ANSI2KNR)
@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
.y.c:
$(YACCCOMPILE) `test -f '$<' || echo '$(srcdir)/'`$<
@@ -985,9 +689,11 @@ distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@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,/[^/]*$$,,'`; \
@@ -1009,7 +715,8 @@ distdir: $(DISTFILES)
fi; \
done
check-am: all-am
check: check-am
check: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile $(LIBRARIES) all-local
installdirs:
@@ -1076,7 +783,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic mostlyclean-kr
mostlyclean-am: mostlyclean-compile mostlyclean-generic
pdf: pdf-am
@@ -1096,29 +803,11 @@ uninstall-am: uninstall-info-am uninstall-local
install-exec-am install-exec-local install-info install-info-am \
install-man install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-compile mostlyclean-generic \
mostlyclean-kr pdf pdf-am ps ps-am tags uninstall uninstall-am \
uninstall-info-am uninstall-local
mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
ps ps-am tags uninstall uninstall-am uninstall-info-am \
uninstall-local
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-$@ $@
# 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
# packages so that "make uninstall" will remove the file if and only if it
@@ -1126,7 +815,7 @@ stat.c: xstat.in
# 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
install-exec-local: all-local
$(mkinstalldirs) $(DESTDIR)$(libdir)
if test -f $(charset_alias); then \
@@ -1159,19 +848,6 @@ charset.alias: config.charset
.sin.sed:
sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@
mv t-$@ $@
###############################################
# FIXME: remove this dependency once automake handles it.
# As of cvs automake of about 2002-01-13,
# this dependency is necessary to avoid a build failure
# when running `make check' before running `make all'.
# Otherwise, unlocked-io.h is not built before it's needed.
getdate$U.o: unlocked-io.h
unlocked-io.h: $(srcdir)/gen-uio Makefile.am
srcdir=$(srcdir) $(SHELL) $(srcdir)/gen-uio $(io_functions) > $@t
mv $@t $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

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.

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,7 @@
/* 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, 2003 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 +20,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,11 +46,7 @@
# 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
#ifndef EXIT_FAILURE
# define EXIT_FAILURE 1
#endif
@@ -80,7 +74,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 +81,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 +95,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 +123,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 +177,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 +265,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,435 +0,0 @@
/* 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:
*/

View File

@@ -46,10 +46,6 @@
# include <arpa/inet.h>
#endif
#ifndef strdup
char *strdup ();
#endif
/* Returns the canonical hostname associated with HOST (allocated in a static
buffer), or 0 if it can't be determined. */
char *

300
lib/canonicalize.c Normal file
View File

@@ -0,0 +1,300 @@
/* Return the canonical absolute name of a given file.
Copyright (C) 1996-2001, 2002, 2003 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. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef STDC_HEADERS
# include <stdlib.h>
#else
void free ();
#endif
#if defined STDC_HEADERS || defined HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#if HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#include <sys/stat.h>
#include <errno.h>
#include "path-concat.h"
#include "xalloc.h"
#include "xgetcwd.h"
#ifndef errno
extern int errno;
#endif
#ifndef __set_errno
# define __set_errno(Val) errno = (Val)
#endif
#if !HAVE_RESOLVEPATH
/* If __PTRDIFF_TYPE__ is
defined, as with GNU C, use that; that way we don't pollute the
namespace with <stddef.h>'s symbols. Otherwise, if <stddef.h> is
available, include it and use ptrdiff_t. In traditional C, long is
the best that we can do. */
# ifdef __PTRDIFF_TYPE__
# define PTR_INT_TYPE __PTRDIFF_TYPE__
# else
# ifdef HAVE_STDDEF_H
# include <stddef.h>
# define PTR_INT_TYPE ptrdiff_t
# else
# define PTR_INT_TYPE long
# endif
# endif
# include "pathmax.h"
# include "xreadlink.h"
# ifdef STAT_MACROS_BROKEN
# undef S_ISLNK
# endif
# ifndef S_ISLNK
# ifdef S_IFLNK
# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
# endif
# endif
#endif /* !HAVE_RESOLVEPATH */
/* Return the canonical absolute name of file NAME. A canonical name
does not contain any `.', `..' components nor any repeated path
separators ('/') or symlinks. All path components must exist.
The result is malloc'd. */
char *
canonicalize_file_name (const char *name)
{
#if HAVE_RESOLVEPATH
char *resolved, *extra_buf = NULL;
size_t resolved_size;
ssize_t resolved_len;
#else /* !HAVE_RESOLVEPATH */
char *rpath, *dest, *extra_buf = NULL;
const char *start, *end, *rpath_limit;
size_t extra_len = 0;
int num_links = 0;
#endif /* !HAVE_RESOLVEPATH */
if (name == NULL)
{
__set_errno (EINVAL);
return NULL;
}
if (name[0] == '\0')
{
__set_errno (ENOENT);
return NULL;
}
#if HAVE_RESOLVEPATH
/* All known hosts with resolvepath (e.g. Solaris 7) don't turn
relative names into absolute ones, so prepend the working
directory if the path is not absolute. */
if (name[0] != '/')
{
char *wd;
if (!(wd = xgetcwd ()));
return NULL;
extra_buf = path_concat (wd, name, NULL);
if (!extra_buf)
xalloc_die ();
name = extra_buf;
free (wd);
}
resolved_size = strlen (name);
while (1)
{
resolved_size = 2 * resolved_size + 1;
resolved = xmalloc (resolved_size);
resolved_len = resolvepath (name, resolved, resolved_size);
if (resolved_len < resolved_size)
break;
free (resolved);
}
if (resolved_len < 0)
{
free (resolved);
resolved = NULL;
}
free (extra_buf);
return resolved;
#else /* !HAVE_RESOLVEPATH */
if (name[0] != '/')
{
rpath = xgetcwd ();
if (!rpath)
return NULL;
dest = strchr (rpath, '\0');
if (dest < rpath + PATH_MAX)
{
rpath = xrealloc (rpath, PATH_MAX);
rpath_limit = rpath + PATH_MAX;
}
else
{
rpath_limit = dest;
}
}
else
{
rpath = xmalloc (PATH_MAX);
rpath_limit = rpath + PATH_MAX;
rpath[0] = '/';
dest = rpath + 1;
}
for (start = end = name; *start; start = end)
{
/* Skip sequence of multiple path-separators. */
while (*start == '/')
++start;
/* Find end of path component. */
for (end = start; *end && *end != '/'; ++end)
/* Nothing. */;
if (end - start == 0)
break;
else if (end - start == 1 && start[0] == '.')
/* nothing */;
else if (end - start == 2 && start[0] == '.' && start[1] == '.')
{
/* Back up to previous component, ignore if at root already. */
if (dest > rpath + 1)
while ((--dest)[-1] != '/');
}
else
{
struct stat st;
if (dest[-1] != '/')
*dest++ = '/';
if (dest + (end - start) >= rpath_limit)
{
PTR_INT_TYPE dest_offset = dest - rpath;
size_t new_size = rpath_limit - rpath;
if (end - start + 1 > PATH_MAX)
new_size += end - start + 1;
else
new_size += PATH_MAX;
rpath = (char *) xrealloc (rpath, new_size);
rpath_limit = rpath + new_size;
dest = rpath + dest_offset;
}
dest = memcpy (dest, start, end - start);
dest += end - start;
*dest = '\0';
if (lstat (rpath, &st) < 0)
goto error;
# ifdef S_ISLNK
if (S_ISLNK (st.st_mode))
{
char *buf;
size_t n, len;
# ifdef MAXSYMLINKS
if (++num_links > MAXSYMLINKS)
{
__set_errno (ELOOP);
goto error;
}
# endif /* MAXSYMLINKS */
buf = xreadlink (rpath);
if (!buf)
goto error;
n = strlen (buf);
len = strlen (end);
if (!extra_len)
{
extra_len =
((n + len + 1) > PATH_MAX) ? (n + len + 1) : PATH_MAX;
extra_buf = xmalloc (extra_len);
}
else if ((n + len + 1) > extra_len)
{
extra_len = n + len + 1;
extra_buf = xrealloc (extra_buf, extra_len);
}
/* Careful here, end may be a pointer into extra_buf... */
memmove (&extra_buf[n], end, len + 1);
name = end = memcpy (extra_buf, buf, n);
if (buf[0] == '/')
dest = rpath + 1; /* It's an absolute symlink */
else
/* Back up to previous component, ignore if at root already: */
if (dest > rpath + 1)
while ((--dest)[-1] != '/');
free (buf);
}
# endif /* S_ISLNK */
}
}
if (dest > rpath + 1 && dest[-1] == '/')
--dest;
*dest = '\0';
free (extra_buf);
return rpath;
error:
free (extra_buf);
free (rpath);
return NULL;
#endif /* !HAVE_RESOLVEPATH */
}

3
lib/canonicalize.h Normal file
View File

@@ -0,0 +1,3 @@
#if !HAVE_CANONICALIZE_FILE_NAME
char *canonicalize_file_name (const char *);
#endif

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"

View File

@@ -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,9 +232,13 @@ 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"
@@ -272,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"
@@ -286,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
@@ -396,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"

87
lib/cycle-check.c Normal file
View File

@@ -0,0 +1,87 @@
/* help detect directory cycles efficiently
Copyright 2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Jim Meyering */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#if HAVE_STDBOOL_H
# include <stdbool.h>
#else
typedef enum {false = 0, true = 1} bool;
#endif
#include "cycle-check.h"
#include "xalloc.h"
#define SAME_INODE(Stat_buf_1, Stat_buf_2) \
((Stat_buf_1).st_ino == (Stat_buf_2).st_ino \
&& (Stat_buf_1).st_dev == (Stat_buf_2).st_dev)
#define CC_MAGIC 9827862
static inline bool
is_power_of_two (unsigned int i)
{
return (i & (i - 1)) == 0;
}
void
cycle_check_init (struct cycle_check_state *state)
{
state->chdir_counter = 0;
state->magic = CC_MAGIC;
}
/* In traversing a directory hierarchy, call this function once for each
descending chdir call, with SB corresponding to the chdir operand.
If SB corresponds to a directory that has already been seen,
return true to indicate that there is a directory cycle.
Note that this is done `lazily', which means that some of
the directories in the cycle may be processed twice before
the cycle is detected. */
bool
cycle_check (struct cycle_check_state *state, struct stat const *sb)
{
assert (state->magic == CC_MAGIC);
/* If the current directory ever happens to be the same
as the one we last recorded for the cycle detection,
then it's obviously part of a cycle. */
if (state->chdir_counter && SAME_INODE (*sb, state->dev_ino))
return true;
/* If the number of `descending' chdir calls is a power of two,
record the dev/ino of the current directory. */
if (is_power_of_two (++(state->chdir_counter)))
{
state->dev_ino.st_dev = sb->st_dev;
state->dev_ino.st_ino = sb->st_ino;
}
return false;
}

33
lib/cycle-check.h Normal file
View File

@@ -0,0 +1,33 @@
#ifndef CYCLE_CHECK_H
# define CYCLE_CHECK_H 1
/* Before including this file, you need something like the following:
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#if HAVE_STDBOOL_H
# include <stdbool.h>
#else
typedef enum {false = 0, true = 1} bool;
#endif
so that the proper identifiers are all declared. */
# include "dev-ino.h"
struct cycle_check_state
{
struct dev_ino dev_ino;
size_t chdir_counter;
long unsigned int magic;
};
void cycle_check_init (struct cycle_check_state *state);
bool cycle_check (struct cycle_check_state *state, struct stat const *sb);
#endif

10
lib/dev-ino.h Normal file
View File

@@ -0,0 +1,10 @@
#ifndef DEV_INO_H
# define DEV_INO_H 1
struct dev_ino
{
ino_t st_ino;
dev_t st_dev;
};
#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, 2003 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. */
@@ -89,10 +93,10 @@ extern void __error_at_line (int status, int errnum, const char *file_name,
# define error __error
# define error_at_line __error_at_line
# ifdef USE_IN_LIBIO
# include <libio/iolibio.h>
# define fflush(s) _IO_fflush (s)
# endif
# include <libio/iolibio.h>
# define fflush(s) INTUSE(_IO_fflush) (s)
# undef putc
# define putc(c, fp) INTUSE(_IO_putc) (c, fp)
#else /* not _LIBC */
@@ -157,7 +161,7 @@ print_errno_message (int errnum)
s = _("Unknown system error");
#endif
#if _LIBC && USE_IN_LIBIO
#if _LIBC
if (_IO_fwide (stderr, 0) > 0)
{
__fwprintf (stderr, L": %s", s);
@@ -173,7 +177,7 @@ static void
error_tail (int status, int errnum, const char *message, va_list args)
{
# if HAVE_VPRINTF || _LIBC
# if _LIBC && USE_IN_LIBIO
# if _LIBC
if (_IO_fwide (stderr, 0) > 0)
{
# define ALLOCA_LIMIT 2000
@@ -224,7 +228,7 @@ error_tail (int status, int errnum, const char *message, va_list args)
++error_message_count;
if (errnum)
print_errno_message (errnum);
# if _LIBC && USE_IN_LIBIO
# if _LIBC
if (_IO_fwide (stderr, 0) > 0)
putwc (L'\n', stderr);
else
@@ -259,17 +263,13 @@ error (status, errnum, message, va_alist)
fflush (stdout);
#ifdef _LIBC
# ifdef USE_IN_LIBIO
_IO_flockfile (stderr);
# else
__flockfile (stderr);
# endif
#endif
if (error_print_progname)
(*error_print_progname) ();
else
{
#if _LIBC && USE_IN_LIBIO
#if _LIBC
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s: ", program_name);
else
@@ -293,11 +293,7 @@ error (status, errnum, message, va_alist)
#endif
#ifdef _LIBC
# ifdef USE_IN_LIBIO
_IO_funlockfile (stderr);
# else
__funlockfile (stderr);
# endif
#endif
}
@@ -340,17 +336,13 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist)
fflush (stdout);
#ifdef _LIBC
# ifdef USE_IN_LIBIO
_IO_flockfile (stderr);
# else
__flockfile (stderr);
# endif
#endif
if (error_print_progname)
(*error_print_progname) ();
else
{
#if _LIBC && USE_IN_LIBIO
#if _LIBC
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s: ", program_name);
else
@@ -360,7 +352,7 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist)
if (file_name != NULL)
{
#if _LIBC && USE_IN_LIBIO
#if _LIBC
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s:%d: ", file_name, line_number);
else
@@ -384,11 +376,7 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist)
#endif
#ifdef _LIBC
# ifdef USE_IN_LIBIO
_IO_funlockfile (stderr);
# else
__funlockfile (stderr);
# endif
#endif
}

View File

@@ -1,5 +1,5 @@
/* euidaccess -- check if effective user id can access file
Copyright (C) 1990, 1991, 1995, 1998, 2000 Free Software Foundation, Inc.
Copyright (C) 1990, 1991, 1995, 1998, 2000, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -69,6 +69,7 @@ extern int errno;
#ifndef __set_errno
# define __set_errno(val) errno = (val)
#endif
#include "euidaccess.h"
#if defined(EACCES) && !defined(EACCESS)
# define EACCESS EACCES

3
lib/euidaccess.h Normal file
View File

@@ -0,0 +1,3 @@
#if ! HAVE_DECL_EUIDACCESS
int euidaccess (char const *file, int mode);
#endif

View File

@@ -1,7 +1,7 @@
/* exclude.c -- exclude file names
Copyright 1992, 1993, 1994, 1997, 1999, 2000, 2001 Free Software
Foundation, Inc.
Copyright (C) 1992, 1993, 1994, 1997, 1999, 2000, 2001, 2002, 2003 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
@@ -67,9 +67,17 @@ extern int errno;
/* Verify a requirement at compile-time (unlike assert, which is runtime). */
#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; }
/* Non-GNU systems lack these options, so we don't need to check them. */
#ifndef FNM_CASEFOLD
# define FNM_CASEFOLD 0
#endif
#ifndef FNM_LEADING_DIR
# define FNM_LEADING_DIR 0
#endif
verify (EXCLUDE_macros_do_not_collide_with_FNM_macros,
(((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS)
& (FNM_FILE_NAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR
& (FNM_PATHNAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR
| FNM_CASEFOLD))
== 0));
@@ -165,7 +173,7 @@ excluded_filename (struct exclude const *ex, char const *f)
int options = exclude[i].options;
if (excluded == !! (options & EXCLUDE_INCLUDE))
{
int (*matcher) PARAMS ((char const *, char const *, int)) =
int (*matcher) (char const *, char const *, int) =
(options & EXCLUDE_WILDCARDS
? fnmatch
: fnmatch_no_wildcards);
@@ -212,8 +220,7 @@ add_exclude (struct exclude *ex, char const *pattern, int options)
on failure, 0 on success. */
int
add_exclude_file (void (*add_func) PARAMS ((struct exclude *,
char const *, int)),
add_exclude_file (void (*add_func) (struct exclude *, char const *, int),
struct exclude *ex, char const *filename, int options,
char line_end)
{

View File

@@ -1,5 +1,7 @@
/* exclude.h -- declarations for excluding file names
Copyright 1992, 1993, 1994, 1997, 1999, 2001 Free Software Foundation, Inc.
Copyright (C) 1992, 1993, 1994, 1997, 1999, 2001, 2002, 2003 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,32 +20,24 @@
/* Written by Paul Eggert <eggert@twinsun.com> */
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
/* Exclude options, which can be ORed with fnmatch options. */
/* Patterns must match the start of file names, instead of matching
anywhere after a '/'. */
#define EXCLUDE_ANCHORED (1 << 5)
#define EXCLUDE_ANCHORED (1 << 30)
/* Include instead of exclude. */
#define EXCLUDE_INCLUDE (1 << 6)
#define EXCLUDE_INCLUDE (1 << 29)
/* '?', '*', '[', and '\\' are special in patterns. Without this
option, these characters are ordinary and fnmatch is not used. */
#define EXCLUDE_WILDCARDS (1 << 7)
#define EXCLUDE_WILDCARDS (1 << 28)
struct exclude;
struct exclude *new_exclude PARAMS ((void));
void free_exclude PARAMS ((struct exclude *));
void add_exclude PARAMS ((struct exclude *, char const *, int));
int add_exclude_file PARAMS ((void (*) (struct exclude *, char const *, int),
struct exclude *, char const *, int, char));
bool excluded_filename PARAMS ((struct exclude const *, char const *));
struct exclude *new_exclude (void);
void free_exclude (struct exclude *);
void add_exclude (struct exclude *, char const *, int);
int add_exclude_file (void (*) (struct exclude *, char const *, int),
struct exclude *, char const *, int, char);
bool excluded_filename (struct exclude const *, char const *);

14
lib/fchdir-stub.c Normal file
View File

@@ -0,0 +1,14 @@
#include <config.h>
#include <sys/types.h>
#include <errno.h>
/* A trivial substitute for `fchdir'.
DJGPP 2.03 and earlier don't have `fchdir'. */
int
fchdir (int fd)
{
errno = ENOSYS;
return -1;
}

15
lib/fchown-stub.c Normal file
View File

@@ -0,0 +1,15 @@
#include <config.h>
#include <sys/types.h>
#include <errno.h>
/* A trivial substitute for `fchown'.
DJGPP 2.03 and earlier (and perhaps later) don't have `fchown',
so we pretend no-one has permission for this operation. */
int
fchown (int fd, uid_t uid, gid_t gid)
{
errno = EPERM;
return -1;
}

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2001, 2002
/* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2001, 2002, 2003
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
@@ -35,10 +35,6 @@ extern "C" {
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
@@ -70,7 +66,7 @@ extern "C" {
/* 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,
extern int fnmatch __P ((const char *__pattern, const char *__name,
int __flags));
# ifdef __cplusplus

View File

@@ -1,5 +1,5 @@
/* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2000, 2001,
2002 Free Software Foundation, Inc.
2002, 2003 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
@@ -1051,13 +1051,14 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
/* This means we found the end of the pattern. */
#define NEW_PATTERN \
struct patternlist *newp; \
size_t plen; \
\
if (opt == L('?') || opt == L('@')) \
newp = alloca (offsetof (struct patternlist, str) \
+ (pattern_len * sizeof (CHAR))); \
else \
newp = alloca (offsetof (struct patternlist, str) \
+ ((p - startp + 1) * sizeof (CHAR))); \
plen = (opt == L('?') || opt == L('@') \
? pattern_len \
: p - startp + 1); \
newp = (struct patternlist *) \
alloca (offsetof (struct patternlist, str) \
+ (plen * sizeof (CHAR))); \
*((CHAR *) MEMPCPY (newp->str, startp, p - startp)) = L('\0'); \
newp->next = NULL; \
*lastp = newp; \

View File

@@ -1,5 +1,5 @@
/* fsusage.c -- return space usage of mounted filesystems
Copyright (C) 1991, 1992, 1996, 1998, 1999, 2002 Free Software
Copyright (C) 1991, 1992, 1996, 1998, 1999, 2002, 2003 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
@@ -42,8 +42,6 @@
# define CHAR_BIT 8
#endif
int statfs ();
#if HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
@@ -81,6 +79,8 @@ int statfs ();
int statvfs ();
#endif
#include "full-read.h"
/* 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 X is all 1 bits, even if X
@@ -105,8 +105,6 @@ int statvfs ();
otherwise, use PROPAGATE_ALL_ONES. */
#define PROPAGATE_TOP_BIT(x) ((x) | ~ (EXTRACT_TOP_BIT (x) - 1))
int safe_read ();
/* Fill in the fields of FSP with information about space usage for
the filesystem on which PATH resides.
DISK is the device on which PATH is mounted, for space-getting
@@ -163,7 +161,7 @@ get_fs_usage (const char *path, const char *disk, struct fs_usage *fsp)
if (fd < 0)
return -1;
lseek (fd, (off_t) SUPERBOFF, 0);
if (safe_read (fd, (char *) &fsd, sizeof fsd) != sizeof fsd)
if (full_read (fd, (char *) &fsd, sizeof fsd) != sizeof fsd)
{
close (fd);
return -1;

1257
lib/fts.c Normal file

File diff suppressed because it is too large Load Diff

128
lib/fts_.h Normal file
View File

@@ -0,0 +1,128 @@
/*
* Copyright (c) 1989, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)fts.h 8.3 (Berkeley) 8/14/94
*/
#ifndef _FTS_H
# define _FTS_H 1
# include <features.h>
# include <sys/types.h>
typedef struct {
struct _ftsent *fts_cur; /* current node */
struct _ftsent *fts_child; /* linked list of children */
struct _ftsent **fts_array; /* sort array */
dev_t fts_dev; /* starting device # */
char *fts_path; /* path for this descent */
int fts_rfd; /* fd for root */
int fts_pathlen; /* sizeof(path) */
int fts_nitems; /* elements in the sort array */
int (*fts_compar) (const void *, const void *); /* compare fn */
# define FTS_COMFOLLOW 0x0001 /* follow command line symlinks */
# define FTS_LOGICAL 0x0002 /* logical walk */
# define FTS_NOCHDIR 0x0004 /* don't change directories */
# define FTS_NOSTAT 0x0008 /* don't get stat info */
# define FTS_PHYSICAL 0x0010 /* physical walk */
# define FTS_SEEDOT 0x0020 /* return dot and dot-dot */
# define FTS_XDEV 0x0040 /* don't cross devices */
# define FTS_WHITEOUT 0x0080 /* return whiteout information */
# define FTS_OPTIONMASK 0x00ff /* valid user option mask */
# define FTS_NAMEONLY 0x0100 /* (private) child names only */
# define FTS_STOP 0x0200 /* (private) unrecoverable error */
int fts_options; /* fts_open options, global flags */
/* Data structure in which to store the fingerprint
of each directory we've encountered. */
void *fts_dir_signatures;
} FTS;
typedef struct _ftsent {
struct _ftsent *fts_cycle; /* cycle node */
struct _ftsent *fts_parent; /* parent directory */
struct _ftsent *fts_link; /* next file in directory */
long fts_number; /* local numeric value */
void *fts_pointer; /* local address value */
char *fts_accpath; /* access path */
char *fts_path; /* root path */
int fts_errno; /* errno for this node */
int fts_symfd; /* fd for symlink */
u_short fts_pathlen; /* strlen(fts_path) */
u_short fts_namelen; /* strlen(fts_name) */
ino_t fts_ino; /* inode */
dev_t fts_dev; /* device */
nlink_t fts_nlink; /* link count */
# define FTS_ROOTPARENTLEVEL -1
# define FTS_ROOTLEVEL 0
short fts_level; /* depth (-1 to N) */
# define FTS_D 1 /* preorder directory */
# define FTS_DC 2 /* directory that causes cycles */
# define FTS_DEFAULT 3 /* none of the above */
# define FTS_DNR 4 /* unreadable directory */
# define FTS_DOT 5 /* dot or dot-dot */
# define FTS_DP 6 /* postorder directory */
# define FTS_ERR 7 /* error; errno is set */
# define FTS_F 8 /* regular file */
# define FTS_INIT 9 /* initialized only */
# define FTS_NS 10 /* stat(2) failed */
# define FTS_NSOK 11 /* no stat(2) requested */
# define FTS_SL 12 /* symbolic link */
# define FTS_SLNONE 13 /* symbolic link without target */
# define FTS_W 14 /* whiteout object */
u_short fts_info; /* user flags for FTSENT structure */
# define FTS_DONTCHDIR 0x01 /* don't chdir .. to the parent */
# define FTS_SYMFOLLOW 0x02 /* followed a symlink to get here */
u_short fts_flags; /* private flags for FTSENT structure */
# define FTS_AGAIN 1 /* read node again */
# define FTS_FOLLOW 2 /* follow symbolic link */
# define FTS_NOINSTR 3 /* no instructions */
# define FTS_SKIP 4 /* discard node */
u_short fts_instr; /* fts_set() instructions */
struct stat *fts_statp; /* stat(2) information */
char fts_name[1]; /* file name */
} FTSENT;
__BEGIN_DECLS
FTSENT *fts_children (FTS *, int) __THROW;
int fts_close (FTS *) __THROW;
FTS *fts_open (char * const *, int,
int (*)(const FTSENT **, const FTSENT **)) __THROW;
FTSENT *fts_read (FTS *) __THROW;
int fts_set (FTS *, FTSENT *, int) __THROW;
__END_DECLS
#endif /* fts.h */

837
lib/ftw.c Normal file
View File

@@ -0,0 +1,837 @@
/* File tree walker functions.
Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
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,
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.
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. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if __GNUC__
# define alloca __builtin_alloca
#else
# if HAVE_ALLOCA_H
# include <alloca.h>
# else
# ifdef _AIX
# pragma alloca
# else
char *alloca ();
# endif
# endif
#endif
#include <sys/types.h>
#if defined _LIBC
# include <dirent.h>
# define NAMLEN(dirent) _D_EXACT_NAMLEN (dirent)
#else
# if HAVE_DIRENT_H
# include <dirent.h>
# define NAMLEN(dirent) strlen ((dirent)->d_name)
# else
# define dirent direct
# define NAMLEN(dirent) (dirent)->d_namlen
# if HAVE_SYS_NDIR_H
# include <sys/ndir.h>
# endif
# if HAVE_SYS_DIR_H
# include <sys/dir.h>
# endif
# if HAVE_NDIR_H
# include <ndir.h>
# endif
# endif
#endif
#include <errno.h>
#include <ftw.h>
#include <limits.h>
#include <search.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#if HAVE_SYS_PARAM_H || defined _LIBC
# include <sys/param.h>
#endif
#ifdef _LIBC
# include <include/sys/stat.h>
#else
# include <sys/stat.h>
#endif
#if ! _LIBC && !HAVE_DECL_STPCPY && !defined stpcpy
char *stpcpy ();
#endif
#if ! _LIBC && ! defined HAVE_MEMPCPY && ! defined mempcpy
/* Be CAREFUL that there are no side effects in N. */
# define mempcpy(D, S, N) ((void *) ((char *) memcpy (D, S, N) + (N)))
#endif
/* #define NDEBUG 1 */
#include <assert.h>
#include "save-cwd.h"
#ifndef _LIBC
# undef __chdir
# define __chdir chdir
# undef __closedir
# define __closedir closedir
# undef __fchdir
# define __fchdir fchdir
# undef __mempcpy
# define __mempcpy mempcpy
# undef __opendir
# define __opendir opendir
# undef __readdir64
# define __readdir64 readdir
# undef __stpcpy
# define __stpcpy stpcpy
# undef __tdestroy
# define __tdestroy tdestroy
# undef __tfind
# define __tfind tfind
# undef __tsearch
# define __tsearch tsearch
# undef internal_function
# define internal_function /* empty */
# undef dirent64
# define dirent64 dirent
# undef MAX
# define MAX(a, b) ((a) > (b) ? (a) : (b))
#endif
/* Arrange to make lstat calls go through the wrapper function
on systems with an lstat function that does not dereference symlinks
that are specified with a trailing slash. */
#if ! _LIBC && ! LSTAT_FOLLOWS_SLASHED_SYMLINK
int rpl_lstat (const char *, struct stat *);
# undef lstat
# define lstat(Name, Stat_buf) rpl_lstat(Name, Stat_buf)
#endif
#ifndef __set_errno
# define __set_errno(Val) errno = (Val)
#endif
/* Support for the LFS API version. */
#ifndef FTW_NAME
# define FTW_NAME ftw
# define NFTW_NAME nftw
# define INO_T ino_t
# define FTW_STAT stat
# ifdef _LIBC
# define LXSTAT __lxstat
# define XSTAT __xstat
# else
# define LXSTAT(V,f,sb) lstat (f,sb)
# define XSTAT(V,f,sb) stat (f,sb)
# endif
# define FTW_FUNC_T __ftw_func_t
# define NFTW_FUNC_T __nftw_func_t
#endif
/* We define PATH_MAX if the system does not provide a definition.
This does not artificially limit any operation. PATH_MAX is simply
used as a guesstimate for the expected maximal path length.
Buffers will be enlarged if necessary. */
#ifndef PATH_MAX
# define PATH_MAX 1024
#endif
#ifndef S_IFMT
# define S_IFMT 0170000
#endif
#if STAT_MACROS_BROKEN
# undef S_ISLNK
#endif
#ifndef S_ISLNK
# ifdef S_IFLNK
# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
# else
# define S_ISLNK(m) 0
# endif
#endif
struct dir_data
{
DIR *stream;
char *content;
};
struct known_object
{
dev_t dev;
INO_T ino;
};
struct ftw_data
{
/* Array with pointers to open directory streams. */
struct dir_data **dirstreams;
size_t actdir;
size_t maxdir;
/* Buffer containing name of currently processed object. */
char *dirbuf;
size_t dirbufsize;
/* Passed as fourth argument to `nftw' callback. The `base' member
tracks the content of the `dirbuf'. */
struct FTW ftw;
/* Flags passed to `nftw' function. 0 for `ftw'. */
int flags;
/* Conversion array for flag values. It is the identity mapping for
`nftw' calls, otherwise it maps the values to those known by
`ftw'. */
const int *cvt_arr;
/* Callback function. We always use the `nftw' form. */
NFTW_FUNC_T func;
/* Device of starting point. Needed for FTW_MOUNT. */
dev_t dev;
/* Data structure for keeping fingerprints of already processed
object. This is needed when not using FTW_PHYS. */
void *known_objects;
};
/* Internally we use the FTW_* constants used for `nftw'. When invoked
as `ftw', map each flag to the subset of values used by `ftw'. */
static const int nftw_arr[] =
{
FTW_F, FTW_D, FTW_DNR, FTW_NS, FTW_SL, FTW_DP, FTW_SLN
};
static const int ftw_arr[] =
{
FTW_F, FTW_D, FTW_DNR, FTW_NS, FTW_F, FTW_D, FTW_NS
};
/* Forward declarations of local functions. */
static int ftw_dir (struct ftw_data *data, struct FTW_STAT *st)
internal_function;
static int
object_compare (const void *p1, const void *p2)
{
/* We don't need a sophisticated and useful comparison. We are only
interested in equality. However, we must be careful not to
accidentally compare `holes' in the structure. */
const struct known_object *kp1 = p1, *kp2 = p2;
int cmp1;
cmp1 = (kp1->ino > kp2->ino) - (kp1->ino < kp2->ino);
if (cmp1 != 0)
return cmp1;
return (kp1->dev > kp2->dev) - (kp1->dev < kp2->dev);
}
static inline int
add_object (struct ftw_data *data, struct FTW_STAT *st)
{
struct known_object *newp = malloc (sizeof (struct known_object));
if (newp == NULL)
return -1;
newp->dev = st->st_dev;
newp->ino = st->st_ino;
return __tsearch (newp, &data->known_objects, object_compare) ? 0 : -1;
}
static inline int
find_object (struct ftw_data *data, struct FTW_STAT *st)
{
struct known_object obj;
obj.dev = st->st_dev;
obj.ino = st->st_ino;
return __tfind (&obj, &data->known_objects, object_compare) != NULL;
}
static inline int
open_dir_stream (struct ftw_data *data, struct dir_data *dirp)
{
int result = 0;
if (data->dirstreams[data->actdir] != NULL)
{
/* Oh, oh. We must close this stream. Get all remaining
entries and store them as a list in the `content' member of
the `struct dir_data' variable. */
size_t bufsize = 1024;
char *buf = malloc (bufsize);
if (buf == NULL)
result = -1;
else
{
DIR *st = data->dirstreams[data->actdir]->stream;
struct dirent64 *d;
size_t actsize = 0;
while ((d = __readdir64 (st)) != NULL)
{
size_t this_len = NAMLEN (d);
if (actsize + this_len + 2 >= bufsize)
{
char *newp;
bufsize += MAX (1024, 2 * this_len);
newp = (char *) realloc (buf, bufsize);
if (newp == NULL)
{
/* No more memory. */
int save_err = errno;
free (buf);
__set_errno (save_err);
result = -1;
break;
}
buf = newp;
}
*((char *) __mempcpy (buf + actsize, d->d_name, this_len))
= '\0';
actsize += this_len + 1;
}
/* Terminate the list with an additional NUL byte. */
buf[actsize++] = '\0';
/* Shrink the buffer to what we actually need. */
data->dirstreams[data->actdir]->content = realloc (buf, actsize);
if (data->dirstreams[data->actdir]->content == NULL)
{
int save_err = errno;
free (buf);
__set_errno (save_err);
result = -1;
}
else
{
__closedir (st);
data->dirstreams[data->actdir]->stream = NULL;
data->dirstreams[data->actdir] = NULL;
}
}
}
/* Open the new stream. */
if (result == 0)
{
const char *name = ((data->flags & FTW_CHDIR)
? data->dirbuf + data->ftw.base: data->dirbuf);
assert (data->dirstreams[data->actdir] == NULL);
dirp->stream = __opendir (name);
if (dirp->stream == NULL)
result = -1;
else
{
dirp->content = NULL;
data->dirstreams[data->actdir] = dirp;
if (++data->actdir == data->maxdir)
data->actdir = 0;
}
}
return result;
}
static inline int
process_entry (struct ftw_data *data, struct dir_data *dir, const char *name,
size_t namlen)
{
struct FTW_STAT st;
int result = 0;
int flag = 0;
size_t new_buflen;
if (name[0] == '.' && (name[1] == '\0'
|| (name[1] == '.' && name[2] == '\0')))
/* Don't process the "." and ".." entries. */
return 0;
new_buflen = data->ftw.base + namlen + 2;
if (data->dirbufsize < new_buflen)
{
/* Enlarge the buffer. */
char *newp;
data->dirbufsize = 2 * new_buflen;
newp = (char *) realloc (data->dirbuf, data->dirbufsize);
if (newp == NULL)
return -1;
data->dirbuf = newp;
}
*((char *) __mempcpy (data->dirbuf + data->ftw.base, name, namlen)) = '\0';
if ((data->flags & FTW_CHDIR) == 0)
name = data->dirbuf;
if (((data->flags & FTW_PHYS)
? LXSTAT (_STAT_VER, name, &st)
: XSTAT (_STAT_VER, name, &st)) < 0)
{
if (errno != EACCES && errno != ENOENT)
result = -1;
else if (!(data->flags & FTW_PHYS)
&& LXSTAT (_STAT_VER, name, &st) == 0
&& S_ISLNK (st.st_mode))
flag = FTW_SLN;
else
flag = FTW_NS;
}
else
{
if (S_ISDIR (st.st_mode))
flag = FTW_D;
else if (S_ISLNK (st.st_mode))
flag = FTW_SL;
else
flag = FTW_F;
}
if (result == 0
&& (flag == FTW_NS
|| !(data->flags & FTW_MOUNT) || st.st_dev == data->dev))
{
if (flag == FTW_D)
{
if ((data->flags & FTW_PHYS)
|| (!find_object (data, &st)
/* Remember the object. */
&& (result = add_object (data, &st)) == 0))
{
/* When processing a directory as part of a depth-first traversal,
invoke the user's callback function with type=FTW_DPRE
just before processing any entry in that directory.
And if the callback sets ftw.skip, then don't process
any entries of the directory. */
if ((data->flags & FTW_DEPTH)
&& (result = (*data->func) (data->dirbuf, &st, FTW_DPRE,
&data->ftw)) == 0
&& ! data->ftw.skip)
result = ftw_dir (data, &st);
if (result == 0 && (data->flags & FTW_CHDIR))
{
/* Change back to the parent directory. */
int done = 0;
if (dir->stream != NULL)
if (__fchdir (dirfd (dir->stream)) == 0)
done = 1;
if (!done)
{
if (data->ftw.base == 1)
{
if (__chdir ("/") < 0)
result = -1;
}
else
if (__chdir ("..") < 0)
result = -1;
}
if (result < 0)
{
result = (*data->func) (data->dirbuf, NULL, FTW_DCHP,
&data->ftw);
}
}
}
}
else
result = (*data->func) (data->dirbuf, &st, data->cvt_arr[flag],
&data->ftw);
}
return result;
}
static int
internal_function
ftw_dir (struct ftw_data *data, struct FTW_STAT *st)
{
struct dir_data dir;
struct dirent64 *d;
int previous_base = data->ftw.base;
int result;
char *startp;
/* Open the stream for this directory. This might require that
another stream has to be closed. */
result = open_dir_stream (data, &dir);
if (result != 0)
{
if (errno == EACCES)
/* We cannot read the directory. Signal this with a special flag. */
result = (*data->func) (data->dirbuf, st, FTW_DNR, &data->ftw);
return result;
}
/* First, report the directory (if not depth-first). */
if (!(data->flags & FTW_DEPTH))
{
result = (*data->func) (data->dirbuf, st, FTW_D, &data->ftw);
if (result != 0)
return result;
}
/* If necessary, change to this directory. */
if (data->flags & FTW_CHDIR)
{
if (__fchdir (dirfd (dir.stream)) < 0)
{
if (errno == ENOSYS)
{
if (__chdir (data->dirbuf) < 0)
result = -1;
}
else
result = -1;
}
if (result != 0)
{
int save_err = errno;
__closedir (dir.stream);
__set_errno (save_err);
if (data->actdir-- == 0)
data->actdir = data->maxdir - 1;
data->dirstreams[data->actdir] = NULL;
/* We cannot change to the directory.
Signal this with a special flag. */
result = (*data->func) (data->dirbuf, st, FTW_DCH, &data->ftw);
return result;
}
}
/* Next, update the `struct FTW' information. */
++data->ftw.level;
startp = strchr (data->dirbuf, '\0');
/* There always must be a directory name. */
assert (startp != data->dirbuf);
if (startp[-1] != '/')
*startp++ = '/';
data->ftw.base = startp - data->dirbuf;
while (dir.stream != NULL && (d = __readdir64 (dir.stream)) != NULL)
{
result = process_entry (data, &dir, d->d_name, NAMLEN (d));
if (result != 0)
break;
}
if (dir.stream != NULL)
{
/* The stream is still open. I.e., we did not need more
descriptors. Simply close the stream now. */
int save_err = errno;
assert (dir.content == NULL);
__closedir (dir.stream);
__set_errno (save_err);
if (data->actdir-- == 0)
data->actdir = data->maxdir - 1;
data->dirstreams[data->actdir] = NULL;
}
else
{
int save_err;
char *runp = dir.content;
while (result == 0 && *runp != '\0')
{
char *endp = strchr (runp, '\0');
result = process_entry (data, &dir, runp, endp - runp);
runp = endp + 1;
}
save_err = errno;
free (dir.content);
__set_errno (save_err);
}
/* Prepare the return, revert the `struct FTW' information. */
data->dirbuf[data->ftw.base - 1] = '\0';
--data->ftw.level;
data->ftw.base = previous_base;
/* Finally, if we process depth-first report the directory. */
if (result == 0 && (data->flags & FTW_DEPTH))
result = (*data->func) (data->dirbuf, st, FTW_DP, &data->ftw);
return result;
}
#ifdef _LIBC
# define ISSLASH(C) ((C) == '/')
# define FILESYSTEM_PREFIX_LEN(Filename) 0
#endif
/* In general, we can't use the builtin `basename' function if available,
since it has different meanings in different environments.
In some environments the builtin `basename' modifies its argument.
Return the address of the last file name component of NAME. If
NAME has no file name components because it is all slashes, return
NAME if it is empty, the address of its last slash otherwise. */
static char *
base_name (char const *name)
{
char const *base = name + FILESYSTEM_PREFIX_LEN (name);
char const *p;
for (p = base; *p; p++)
{
if (ISSLASH (*p))
{
/* Treat multiple adjacent slashes like a single slash. */
do p++;
while (ISSLASH (*p));
/* If the file name ends in slash, use the trailing slash as
the basename if no non-slashes have been found. */
if (! *p)
{
if (ISSLASH (*base))
base = p - 1;
break;
}
/* *P is a non-slash preceded by a slash. */
base = p;
}
}
return (char *) base;
}
static int
internal_function
ftw_startup (const char *dir, int is_nftw, NFTW_FUNC_T func, int descriptors,
int flags)
{
struct ftw_data data;
struct FTW_STAT st;
int result = 0;
int save_err;
struct saved_cwd cwd;
size_t dir_len;
/* First make sure the parameters are reasonable. */
if (dir[0] == '\0')
{
__set_errno (ENOENT);
return -1;
}
data.maxdir = descriptors < 1 ? 1 : descriptors;
data.actdir = 0;
data.dirstreams = (struct dir_data **) alloca (data.maxdir
* sizeof (struct dir_data *));
if (data.dirstreams == NULL)
return -1;
memset (data.dirstreams, '\0', data.maxdir * sizeof (struct dir_data *));
/* PATH_MAX is always defined when we get here. */
dir_len = strlen (dir);
data.dirbufsize = MAX (2 * dir_len, PATH_MAX);
data.dirbuf = (char *) malloc (data.dirbufsize);
if (data.dirbuf == NULL)
return -1;
memcpy (data.dirbuf, dir, dir_len + 1);
data.ftw.level = 0;
/* Find offset of basename. */
data.ftw.base = base_name (data.dirbuf) - data.dirbuf;
data.flags = flags;
/* This assignment might seem to be strange but it is what we want.
The trick is that the first three arguments to the `ftw' and
`nftw' callback functions are equal. Therefore we can call in
every case the callback using the format of the `nftw' version
and get the correct result since the stack layout for a function
call in C allows this. */
data.func = func;
/* Since we internally use the complete set of FTW_* values we need
to reduce the value range before calling a `ftw' callback. */
data.cvt_arr = is_nftw ? nftw_arr : ftw_arr;
/* No object known so far. */
data.known_objects = NULL;
/* Now go to the directory containing the initial file/directory. */
if (flags & FTW_CHDIR)
{
if (save_cwd (&cwd))
result = -1;
else if (data.ftw.base > 0)
{
/* Change to the directory the file is in. In data.dirbuf
we have a writable copy of the file name. Just NUL
terminate it for now and change the directory. */
if (data.ftw.base == 1)
/* I.e., the file is in the root directory. */
result = __chdir ("/");
else
{
char ch = data.dirbuf[data.ftw.base - 1];
data.dirbuf[data.ftw.base - 1] = '\0';
result = __chdir (data.dirbuf);
data.dirbuf[data.ftw.base - 1] = ch;
}
}
}
/* Get stat info for start directory. */
if (result == 0)
{
const char *name = ((data.flags & FTW_CHDIR)
? data.dirbuf + data.ftw.base
: data.dirbuf);
if (((flags & FTW_PHYS)
? LXSTAT (_STAT_VER, name, &st)
: XSTAT (_STAT_VER, name, &st)) < 0)
{
if (!(flags & FTW_PHYS)
&& errno == ENOENT
&& LXSTAT (_STAT_VER, name, &st) == 0
&& S_ISLNK (st.st_mode))
result = (*data.func) (data.dirbuf, &st, data.cvt_arr[FTW_SLN],
&data.ftw);
else
/* No need to call the callback since we cannot say anything
about the object. */
result = -1;
}
else
{
if (S_ISDIR (st.st_mode))
{
/* Remember the device of the initial directory in case
FTW_MOUNT is given. */
data.dev = st.st_dev;
/* We know this directory now. */
if (!(flags & FTW_PHYS))
result = add_object (&data, &st);
if (result == 0)
{
/* If we're doing a depth-first traversal, give the user
a chance to prune the top-level directory. */
if ((flags & FTW_DEPTH)
&& (result = (*data.func) (data.dirbuf, &st, FTW_DPRE,
&data.ftw)) == 0
&& ! data.ftw.skip)
result = ftw_dir (&data, &st);
}
}
else
{
int flag = S_ISLNK (st.st_mode) ? FTW_SL : FTW_F;
result = (*data.func) (data.dirbuf, &st, data.cvt_arr[flag],
&data.ftw);
}
}
}
/* Return to the start directory (if necessary). */
if (flags & FTW_CHDIR)
{
save_err = errno;
/* If restore_cwd fails and there wasn't a prior failure,
then let this new errno override any prior value.
FIXME: ideally, we'd be able to return some indication
of what the failure means. Otherwise, the caller will
have a hard time distinguishing between e.g., `out of memory'
and this sort of failure. */
if (restore_cwd (&cwd) && result == 0)
{
save_err = errno;
result = -1;
}
__set_errno (save_err);
}
/* Free all memory. */
save_err = errno;
__tdestroy (data.known_objects, free);
free (data.dirbuf);
__set_errno (save_err);
return result;
}
/* Entry points. */
int
FTW_NAME (path, func, descriptors)
const char *path;
FTW_FUNC_T func;
int descriptors;
{
return ftw_startup (path, 0, (NFTW_FUNC_T) func, descriptors, 0);
}
int
NFTW_NAME (path, func, descriptors, flags)
const char *path;
NFTW_FUNC_T func;
int descriptors;
int flags;
{
return ftw_startup (path, 1, func, descriptors, flags);
}

186
lib/ftw_.h Normal file
View File

@@ -0,0 +1,186 @@
/* Copyright (C) 1992, 1996, 1997, 1998, 1999, 2003
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.
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
Lesser 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. */
/*
* X/Open Portability Guide 4.2: ftw.h
*/
#ifndef _FTW_H
# define _FTW_H 1
# ifdef _LIBC
# include <features.h>
# else
# undef __THROW
# define __THROW
# undef __BEGIN_DECLS
# define __BEGIN_DECLS
# undef __END_DECLS
# define __END_DECLS
# endif
# include <sys/types.h>
# include <sys/stat.h>
/* When compiling stand-alone on a system that does not define
__USE_XOPEN_EXTENDED, define that symbol so that all the
required declarations appear. */
# if ! defined _LIBC && ! defined __USE_XOPEN_EXTENDED
# define FTW_H_STANDALONE 1
# define __USE_XOPEN_EXTENDED 1
# endif
__BEGIN_DECLS
/* Values for the FLAG argument to the user function passed to `ftw'
and 'nftw'. */
enum
{
FTW_F, /* Regular file. */
# define FTW_F FTW_F
FTW_D, /* Directory. */
# define FTW_D FTW_D
FTW_DNR, /* Unreadable directory. */
# define FTW_DNR FTW_DNR
FTW_NS, /* Unstatable file. */
# define FTW_NS FTW_NS
/* Can't chdir to named directory. This can happen only when using
FTW_CHDIR. Note that although we can't chdir into that directory,
we were able to stat it, so SB (2nd argument to callback) is valid. */
FTW_DCH,
# define FTW_DCH FTW_DCH
/* Can't chdir to parent of named directory. This can happen only when
using FTW_CHDIR. Unlike for FTW_DCH, in this case, SB is not valid.
In fact, it is NULL. */
FTW_DCHP,
# define FTW_DCHP FTW_DCHP
/* nftw calls the user-supplied function at most twice for each directory
it encounters. When calling it the first time, it passes this value
as the `type'. */
FTW_DPRE,
# define FTW_DPRE FTW_DPRE
# if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
FTW_SL, /* Symbolic link. */
# define FTW_SL FTW_SL
# endif
# ifdef __USE_XOPEN_EXTENDED
/* These flags are only passed from the `nftw' function. */
FTW_DP, /* Directory, all subdirs have been visited. */
# define FTW_DP FTW_DP
FTW_SLN /* Symbolic link naming non-existing file. */
# define FTW_SLN FTW_SLN
# endif /* extended X/Open */
};
# ifdef __USE_XOPEN_EXTENDED
/* Flags for fourth argument of `nftw'. */
enum
{
FTW_PHYS = 1, /* Perform physical walk, ignore symlinks. */
# define FTW_PHYS FTW_PHYS
FTW_MOUNT = 2, /* Report only files on same file system as the
argument. */
# define FTW_MOUNT FTW_MOUNT
FTW_CHDIR = 4, /* Change to current directory while processing it. */
# define FTW_CHDIR FTW_CHDIR
FTW_DEPTH = 8 /* Report files in directory before directory itself.*/
# define FTW_DEPTH FTW_DEPTH
};
/* Structure used for fourth argument to callback function for `nftw'. */
struct FTW
{
int base;
int level;
int skip;
};
# endif /* extended X/Open */
/* Convenient types for callback functions. */
typedef int (*__ftw_func_t) (const char *__filename,
const struct stat *__status, int __flag);
# ifdef __USE_LARGEFILE64
typedef int (*__ftw64_func_t) (const char *__filename,
const struct stat64 *__status, int __flag);
# endif
# ifdef __USE_XOPEN_EXTENDED
typedef int (*__nftw_func_t) (const char *__filename,
const struct stat *__status, int __flag,
struct FTW *__info);
# ifdef __USE_LARGEFILE64
typedef int (*__nftw64_func_t) (const char *__filename,
const struct stat64 *__status,
int __flag, struct FTW *__info);
# endif
# endif
/* Call a function on every element in a directory tree. */
# ifndef __USE_FILE_OFFSET64
extern int ftw (const char *__dir, __ftw_func_t __func, int __descriptors)
__THROW;
# else
# ifdef __REDIRECT
extern int __REDIRECT (ftw, (const char *__dir, __ftw_func_t __func,
int __descriptors) __THROW, ftw64);
# else
# define ftw ftw64
# endif
# endif
# ifdef __USE_LARGEFILE64
extern int ftw64 (const char *__dir, __ftw64_func_t __func,
int __descriptors) __THROW;
# endif
# ifdef __USE_XOPEN_EXTENDED
/* Call a function on every element in a directory tree. FLAG allows
to specify the behaviour more detailed. */
# ifndef __USE_FILE_OFFSET64
extern int nftw (const char *__dir, __nftw_func_t __func, int __descriptors,
int __flag) __THROW;
# else
# ifdef __REDIRECT
extern int __REDIRECT (nftw, (const char *__dir, __nftw_func_t __func,
int __descriptors, int __flag) __THROW, nftw64);
# else
# define nftw nftw64
# endif
# endif
# ifdef __USE_LARGEFILE64
extern int nftw64 (const char *__dir, __nftw64_func_t __func,
int __descriptors, int __flag) __THROW;
# endif
# endif
/* If we defined __USE_XOPEN_EXTENDED above, undefine it here. */
# ifdef FTW_H_STANDALONE
# undef __USE_XOPEN_EXTENDED
# endif
__END_DECLS
#endif /* ftw.h */

19
lib/full-read.c Normal file
View File

@@ -0,0 +1,19 @@
/* An interface to read that retries after partial reads and interrupts.
Copyright (C) 2002, 2003 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 FULL_READ
#include "full-write.c"

24
lib/full-read.h Normal file
View File

@@ -0,0 +1,24 @@
/* An interface to read() that reads all it is asked to read.
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, read to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include <stddef.h>
/* Read COUNT bytes at BUF to descriptor FD, retrying if interrupted
or if partial reads occur. Return the number of bytes successfully
read, setting errno if that is less than COUNT. errno = 0 means EOF. */
extern size_t full_read (int fd, void *buf, size_t count);

View File

@@ -1,7 +1,6 @@
/* full-write.c -- an interface to write that retries after interrupts
/* An interface to read and write that retries (if necessary) until complete.
Copyright 1993, 1994, 1997, 1998, 1999, 2000, 2001 Free Software
Foundation, Inc.
Copyright (C) 1993, 1994, 1997-2003 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,53 +14,67 @@
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>
#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. */
size_t
full_write (int desc, const char *ptr, size_t len)
{
size_t total_written = 0;
while (len > 0)
{
ssize_t written = write (desc, ptr, len);
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;
#ifdef FULL_READ
# include "full-read.h"
# include "safe-read.h"
# define safe_rw safe_read
# define full_rw full_read
# undef const
# define const /* empty */
#else
# include "full-write.h"
# include "safe-write.h"
# define safe_rw safe_write
# define full_rw full_write
#endif
#ifdef FULL_READ
/* Set errno to zero upon EOF. */
# define ZERO_BYTE_TRANSFER_ERRNO 0
#else
/* Some buggy drivers return 0 when one tries to write beyond
a device's end. (Example: Linux 1.2.13 on /dev/fd0.)
Set errno to ENOSPC so they get a sensible diagnostic. */
# define ZERO_BYTE_TRANSFER_ERRNO ENOSPC
#endif
/* Write(read) COUNT bytes at BUF to(from) descriptor FD, retrying if
interrupted or if a partial write(read) occurs. Return the number
of bytes transferred.
When writing, set errno if fewer than COUNT bytes are written.
When reading, if fewer than COUNT bytes are read, you must examine
errno to distinguish failure from EOF (errno == 0). */
size_t
full_rw (int fd, const void *buf, size_t count)
{
size_t total = 0;
const char *ptr = buf;
while (count > 0)
{
size_t n_rw = safe_rw (fd, ptr, count);
if (n_rw == (size_t) -1)
break;
if (n_rw == 0)
{
errno = ZERO_BYTE_TRANSFER_ERRNO;
break;
}
total_written += written;
ptr += written;
len -= written;
total += n_rw;
ptr += n_rw;
count -= n_rw;
}
return total_written;
return total;
}

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

74
lib/getcwd.c Normal file
View File

@@ -0,0 +1,74 @@
/* Provide a replacement for the POSIX getcwd function.
Copyright (C) 2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* written by Jim Meyering */
#include <config.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#include <sys/types.h>
#include "pathmax.h"
#include "same.h"
/* Guess high, because that makes the test below more conservative.
But this is a kludge, because we should really use
pathconf (".", _PC_NAME_MAX). But it's probably not worth the cost. */
#define KLUDGE_POSIX_NAME_MAX 255
#define MAX_SAFE_LEN (PATH_MAX - 1 - KLUDGE_POSIX_NAME_MAX - 1)
/* Undefine getcwd here, as near the use as possible, in case any
of the files included above define it to rpl_getcwd. */
#undef getcwd
/* Any declaration of getcwd from headers included above has
been changed to a declaration of rpl_getcwd. Declare it here. */
extern char *getcwd (char *buf, size_t size);
/* This is a wrapper for getcwd.
Some implementations (at least GNU libc 2.3.1 + linux-2.4.20) return
non-NULL for a working directory name longer than PATH_MAX, yet the
returned string is a strict prefix of the desired directory name.
Upon such a failure, free the offending string, set errno to
ENAMETOOLONG, and return NULL.
I've heard that this is a Linux kernel bug, and that it has
been fixed between 2.4.21-pre3 and 2.4.21-pre4. */
char *
rpl_getcwd (char *buf, size_t size)
{
char *cwd = getcwd (buf, size);
if (cwd == NULL)
return NULL;
if (strlen (cwd) <= MAX_SAFE_LEN || same_name (cwd, "."))
return cwd;
free (cwd);
errno = ENAMETOOLONG;
return NULL;
}

View File

@@ -908,7 +908,7 @@ get_date (const char *p, const time_t *now)
pc.local_zones_seen = 0;
pc.zones_seen = 0;
#if HAVE_TM_ZONE
#if HAVE_STRUCT_TM_TM_ZONE
pc.local_time_zone_table[0].name = tmp->tm_zone;
pc.local_time_zone_table[0].type = tLOCAL_ZONE;
pc.local_time_zone_table[0].value = tmp->tm_isdst;

View File

@@ -21,7 +21,7 @@
#include <stdio.h>
#include <sys/types.h>
char *xmalloc ();
#include "xalloc.h"
/* On at least Ultrix 4.3 and NextStep 3.2, getgroups (0, 0) always fails.
On other systems, it returns the number of supplemental groups for the

View File

@@ -6,20 +6,19 @@
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,19 +75,16 @@
# 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
# if defined _LIBC && defined USE_IN_LIBIO
# include <wchar.h>
# endif
# include "gettext.h"
#endif
#define _(msgid) gettext (msgid)
#if defined _LIBC && defined USE_IN_LIBIO
# include <wchar.h>
#endif
#ifndef attribute_hidden

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

@@ -1,22 +1,21 @@
/* getopt_long and getopt_long_only entry points for GNU getopt.
Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98, 02
Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98
Free Software Foundation, Inc.
This file is part of the GNU C Library.
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>

View File

@@ -31,9 +31,7 @@
#endif
#include "group-member.h"
char *xmalloc ();
char *xrealloc ();
#include "xalloc.h"
struct group_info
{

View File

@@ -1,7 +1,7 @@
/* human.c -- print human readable file size
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
@@ -18,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
@@ -52,20 +61,30 @@
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', /* kibi ('k' for kilo is a special case) */
@@ -78,33 +97,18 @@ static const char suffixes[] =
'Y' /* yotta or 2**80 */
};
/* Generate into P[-1] (and possibly P[-2]) the proper suffix for
POWER and BASE. Return the address of the generated suffix. */
static char *
generate_suffix_backwards (char *p, int power, int base)
{
char letter = suffixes[power];
if (base == 1000)
{
*--p = 'B';
if (power == 1)
letter = 'k';
}
*--p = letter;
return p;
}
/* 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);
@@ -113,199 +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 -OUTPUT_BLOCK_SIZE is
1024, append a "B" after any size letter. */
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
{
char suffix[3];
char const *psuffix;
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;
suffix[2] = '\0';
psuffix = generate_suffix_backwards (suffix + 2, power, base);
sprintf (buf, "%.1f%s",
adjust_value (inexact_style, damt), psuffix);
if (4 + (base == 1000) < strlen (buf))
sprintf (buf, "%.0f%s",
adjust_value (inexact_style, damt * 10) / 10, psuffix);
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 = generate_suffix_backwards (p, power, base);
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;
}
@@ -318,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 ();
@@ -363,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_ */

View File

@@ -1,5 +1,5 @@
/* idcache.c -- map user and group IDs, cached for speed
Copyright (C) 1985, 1988, 1989, 1990, 1997, 1998 Free Software
Copyright (C) 1985, 1988, 1989, 1990, 1997, 1998, 2003 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
@@ -35,6 +35,8 @@
# include <unistd.h>
#endif
#include "xalloc.h"
#ifndef _POSIX_VERSION
struct passwd *getpwuid ();
struct passwd *getpwnam ();
@@ -42,9 +44,6 @@ struct group *getgrgid ();
struct group *getgrnam ();
#endif
char *xmalloc ();
char *xstrdup ();
#ifdef __DJGPP__
static char digits[] = "0123456789";
#endif

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

@@ -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>
@@ -82,6 +82,11 @@
# 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
@@ -201,7 +206,20 @@ get_charset_aliases ()
# 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
@@ -267,7 +285,7 @@ locale_charset ()
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;
@@ -341,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'},

13
lib/lstat-stub.c Normal file
View File

@@ -0,0 +1,13 @@
#include <config.h>
#include <sys/stat.h>
/* A trivial substitute for `lstat'.
DJGPP 2.03 and earlier don't have `lstat' and don't support
symlinks. */
int
lstat (const char *fname, struct stat *st_buf)
{
return stat (fname, st_buf);
}

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,6 @@
/* makepath.c -- Ensure that a directory path exists.
Copyright (C) 1990, 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
Copyright (C) 1990, 1997, 1998, 1999, 2000, 2002, 2003 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
@@ -58,9 +59,7 @@ char *alloca ();
# include <stdlib.h>
#endif
#if HAVE_ERRNO_H
# include <errno.h>
#endif
#include <errno.h>
#ifndef errno
extern int errno;
@@ -103,16 +102,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"
@@ -126,10 +117,16 @@ extern int errno;
Restore working directory. */ \
if (do_chdir) \
{ \
int _fail = restore_cwd (&cwd, NULL, NULL); \
if (restore_cwd (&cwd) != 0) \
{ \
int _saved_errno = errno; \
error (0, errno, \
_("failed to return to initial working directory")); \
free_cwd (&cwd); \
errno = _saved_errno; \
return 1; \
} \
free_cwd (&cwd); \
if (_fail) \
return 1; \
} \
} \
while (0)

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-2003 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,14 +15,16 @@
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
#include <stddef.h>
/* Avoid a clash of our mbswidth() with a function of the same name defined
in UnixWare 7.1.1 <wchar.h>. We need this #include before the #define
below. */
#if HAVE_WCHAR_H
# include <wchar.h>
#endif
/* Optional flags to influence mbswidth/mbsnwidth behavior. */
/* If this bit is set, return -1 upon finding an invalid or incomplete
@@ -36,8 +38,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);

100
lib/md5.c
View File

@@ -1,6 +1,6 @@
/* md5.c - Functions to compute MD5 message digest of files or memory blocks
according to the definition of MD5 in RFC 1321 from April 1992.
Copyright (C) 1995, 1996, 2001 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 2001, 2003 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.
@@ -43,6 +43,15 @@
# if __BYTE_ORDER == __BIG_ENDIAN
# define WORDS_BIGENDIAN 1
# endif
/* We need to keep the namespace clean so define the MD5 function
protected using leading __ . */
# define md5_init_ctx __md5_init_ctx
# define md5_process_block __md5_process_block
# define md5_process_bytes __md5_process_bytes
# define md5_finish_ctx __md5_finish_ctx
# define md5_read_ctx __md5_read_ctx
# define md5_stream __md5_stream
# define md5_buffer __md5_buffer
#endif
#ifdef WORDS_BIGENDIAN
@@ -52,6 +61,12 @@
# define SWAP(n) (n)
#endif
#define BLOCKSIZE 4096
/* Ensure that BLOCKSIZE is a multiple of 64. */
#if BLOCKSIZE % 64 != 0
/* FIXME-someday (soon?): use #error instead of this kludge. */
"invalid BLOCKSIZE"
#endif
/* This array contains the bytes used to pad the buffer to the next
64-byte boundary. (RFC 1321, 3.1: Step 1) */
@@ -132,8 +147,6 @@ md5_stream (stream, resblock)
FILE *stream;
void *resblock;
{
/* Important: BLOCKSIZE must be a multiple of 64. */
#define BLOCKSIZE 4096
struct md5_ctx ctx;
char buffer[BLOCKSIZE + 72];
size_t sum;
@@ -151,19 +164,31 @@ md5_stream (stream, resblock)
sum = 0;
/* Read block. Take care for partial reads. */
do
while (1)
{
n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
sum += n;
}
while (sum < BLOCKSIZE && n != 0);
if (n == 0 && ferror (stream))
return 1;
/* If end of file is reached, end the loop. */
if (n == 0)
break;
if (sum == BLOCKSIZE)
break;
if (n == 0)
{
/* Check for the error flag IFF N == 0, so that we don't
exit the loop after a partial read due to e.g., EAGAIN
or EWOULDBLOCK. */
if (ferror (stream))
return 1;
goto process_partial_block;
}
/* We've read at least one byte, so ignore errors. But always
check for EOF, since feof may be true even though N > 0.
Otherwise, we could end up calling fread after EOF. */
if (feof (stream))
goto process_partial_block;
}
/* Process buffer with BLOCKSIZE bytes. Note that
BLOCKSIZE % 64 == 0
@@ -171,7 +196,9 @@ md5_stream (stream, resblock)
md5_process_block (buffer, BLOCKSIZE, &ctx);
}
/* Add the last bytes if necessary. */
process_partial_block:;
/* Process any remaining bytes. */
if (sum > 0)
md5_process_bytes (buffer, sum, &ctx);
@@ -219,13 +246,14 @@ md5_process_bytes (buffer, len, ctx)
memcpy (&ctx->buffer[left_over], buffer, add);
ctx->buflen += add;
if (left_over + add > 64)
if (ctx->buflen > 64)
{
md5_process_block (ctx->buffer, (left_over + add) & ~63, ctx);
md5_process_block (ctx->buffer, ctx->buflen & ~63, ctx);
ctx->buflen &= 63;
/* The regions in the following copy operation cannot overlap. */
memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
(left_over + add) & 63);
ctx->buflen = (left_over + add) & 63;
ctx->buflen);
}
buffer = (const char *) buffer + add;
@@ -233,18 +261,46 @@ md5_process_bytes (buffer, len, ctx)
}
/* Process available complete blocks. */
if (len > 64)
if (len >= 64)
{
md5_process_block (buffer, len & ~63, ctx);
buffer = (const char *) buffer + (len & ~63);
len &= 63;
#if !_STRING_ARCH_unaligned
/* To check alignment gcc has an appropriate operator. Other
compilers don't. */
# if __GNUC__ >= 2
# define UNALIGNED_P(p) (((md5_uintptr) p) % __alignof__ (md5_uint32) != 0)
# else
# define UNALIGNED_P(p) (((md5_uintptr) p) % sizeof (md5_uint32) != 0)
# endif
if (UNALIGNED_P (buffer))
while (len > 64)
{
md5_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx);
buffer = (const char *) buffer + 64;
len -= 64;
}
else
#endif
{
md5_process_block (buffer, len & ~63, ctx);
buffer = (const char *) buffer + (len & ~63);
len &= 63;
}
}
/* Move remaining bytes in internal buffer. */
if (len > 0)
{
memcpy (ctx->buffer, buffer, len);
ctx->buflen = len;
size_t left_over = ctx->buflen;
memcpy (&ctx->buffer[left_over], buffer, len);
left_over += len;
if (left_over >= 64)
{
md5_process_block (ctx->buffer, 64, ctx);
left_over -= 64;
memcpy (ctx->buffer, &ctx->buffer[64], left_over);
}
ctx->buflen = left_over;
}
}

View File

@@ -35,8 +35,9 @@
is usually not possible. */
#ifdef _LIBC
# include <sys/types.h>
typedef u_int32_t md5_uint32;
# include <stdint.h>
typedef uint32_t md5_uint32;
typedef uintptr_t md5_uintptr;
#else
# if defined __STDC__ && __STDC__
# define UINT_MAX_32_BITS 4294967295U
@@ -68,6 +69,9 @@ typedef u_int32_t md5_uint32;
# endif
# endif
# endif
/* We have to make a guess about the integer type equivalent in size
to pointers which should always be correct. */
typedef unsigned long int md5_uintptr;
#endif
#undef __P

View File

@@ -100,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. */
@@ -213,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 *),

View File

@@ -1,5 +1,5 @@
/* mountlist.c -- return a list of mounted filesystems
Copyright (C) 1991, 1992, 1997-2002 Free Software Foundation, Inc.
Copyright (C) 1991, 1992, 1997-2003 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
@@ -730,16 +730,27 @@ read_filesystem_list (int need_fs_type)
int bufsize;
char *entries, *thisent;
struct vmount *vmp;
int n_entries;
int i;
/* Ask how many bytes to allocate for the mounted filesystem info. */
mntctl (MCTL_QUERY, sizeof bufsize, (struct vmount *) &bufsize);
if (mntctl (MCTL_QUERY, sizeof bufsize, (struct vmount *) &bufsize) != 0)
return NULL;
entries = xmalloc (bufsize);
/* Get the list of mounted filesystems. */
mntctl (MCTL_QUERY, bufsize, (struct vmount *) entries);
n_entries = mntctl (MCTL_QUERY, bufsize, (struct vmount *) entries);
if (n_entries < 0)
{
int saved_errno = errno;
free (entries);
errno = saved_errno;
return NULL;
}
for (thisent = entries; thisent < entries + bufsize;
thisent += vmp->vmt_length)
for (i = 0, thisent = entries;
i < n_entries;
i++, thisent += vmp->vmt_length)
{
char *options, *ignore;

View File

@@ -1,32 +1,24 @@
/* obstack.c - subroutines used implicitly by object stack macros
Copyright (C) 1988-1994, 1996-2001, 2002 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>
#endif
#ifdef _LIBC
# include <obstack.h>
#else
# include "obstack.h"
#endif
#include "obstack.h"
/* NOTE BEFORE MODIFYING THIS FILE: This version number must be
incremented whenever callers compiled using an old obstack.h can no
@@ -342,9 +334,6 @@ _obstack_newchunk (h, length)
/* The new chunk certainly contains no empty object yet. */
h->maybe_empty_object = 0;
}
# ifdef _LIBC
libc_hidden_def (_obstack_newchunk)
# endif
/* Return nonzero if object OBJ has been allocated from obstack H.
This is here for debugging.
@@ -465,18 +454,16 @@ _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
# 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)
# endif
# ifndef __attribute__

View File

@@ -1,5 +1,5 @@
/* obstack.h - object stack macros
Copyright (C) 1988,89,90,91,92,93,94,96,97,98,99 Free Software Foundation, Inc.
Copyright (C) 1988,89,90,91,92,93,94,96,97,98,99,2003 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.
@@ -123,8 +123,12 @@ extern "C" {
#endif
#ifndef __INT_TO_PTR
#if defined __STDC__ && __STDC__
# define __INT_TO_PTR(P) ((void *) ((P) + (char *) 0))
#else
# define __INT_TO_PTR(P) ((P) + (char *) 0)
#endif
#endif
/* We need the type of the resulting object. If __PTRDIFF_TYPE__ is
defined, as with GNU C, use that; that way we don't pollute the
@@ -368,12 +372,12 @@ extern int obstack_exit_failure;
# define obstack_object_size(OBSTACK) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
({ struct obstack const *__o = (OBSTACK); \
(unsigned) (__o->next_free - __o->object_base); })
# define obstack_room(OBSTACK) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
({ struct obstack const *__o = (OBSTACK); \
(unsigned) (__o->chunk_limit - __o->next_free); })
# define obstack_make_room(OBSTACK,length) \
@@ -386,7 +390,7 @@ __extension__ \
# define obstack_empty_p(OBSTACK) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
({ struct obstack const *__o = (OBSTACK); \
(__o->chunk->prev == 0 && __o->next_free - __o->chunk->contents == 0); })
# define obstack_grow(OBSTACK,where,length) \

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,5 @@
/* Calculate the size of physical memory.
Copyright 2000, 2001 Free Software Foundation, Inc.
Copyright 2000, 2001, 2003 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,8 +21,6 @@
# include <config.h>
#endif
#include "physmem.h"
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
@@ -31,12 +29,63 @@
# include <sys/pstat.h>
#endif
#if HAVE_SYS_SYSMP_H
# include <sys/sysmp.h>
#endif
#if HAVE_SYS_SYSINFO_H && HAVE_MACHINE_HAL_SYSINFO_H
# include <sys/sysinfo.h>
# include <machine/hal_sysinfo.h>
#endif
#if HAVE_SYS_TABLE_H
# include <sys/table.h>
#endif
#include <sys/types.h>
#if HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#if HAVE_SYS_SYSCTL_H
# include <sys/sysctl.h>
#endif
#if HAVE_SYS_SYSTEMCFG_H
# include <sys/systemcfg.h>
#endif
#ifdef _WIN32
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
/* MEMORYSTATUSEX is missing from older windows headers, so define
a local replacement. */
typedef struct
{
DWORD dwLength;
DWORD dwMemoryLoad;
DWORDLONG ullTotalPhys;
DWORDLONG ullAvailPhys;
DWORDLONG ullTotalPageFile;
DWORDLONG ullAvailPageFile;
DWORDLONG ullTotalVirtual;
DWORDLONG ullAvailVirtual;
DWORDLONG ullAvailExtendedVirtual;
} lMEMORYSTATUSEX;
typedef WINBOOL (WINAPI *PFN_MS_EX) (lMEMORYSTATUSEX*);
#endif
#include "physmem.h"
#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
/* Return the total amount of physical memory. */
double
physmem_total (void)
physmem_total ()
{
#if defined _SC_PHYS_PAGES && defined _SC_PAGESIZE
{
{ /* This works on linux-gnu, solaris2 and cygwin. */
double pages = sysconf (_SC_PHYS_PAGES);
double pagesize = sysconf (_SC_PAGESIZE);
if (0 <= pages && 0 <= pagesize)
@@ -45,7 +94,7 @@ physmem_total (void)
#endif
#if HAVE_PSTAT_GETSTATIC
{
{ /* This works on hpux11. */
struct pst_static pss;
if (0 <= pstat_getstatic (&pss, sizeof pss, 1, 0))
{
@@ -57,16 +106,90 @@ physmem_total (void)
}
#endif
#if HAVE_SYSMP && defined MP_SAGET && defined MPSA_RMINFO && defined _SC_PAGESIZE
{ /* This works on irix6. */
struct rminfo realmem;
if (sysmp (MP_SAGET, MPSA_RMINFO, &realmem, sizeof realmem) == 0)
{
double pagesize = sysconf (_SC_PAGESIZE);
double pages = realmem.physmem;
if (0 <= pages && 0 <= pagesize)
return pages * pagesize;
}
}
#endif
#if HAVE_GETSYSINFO && defined GSI_PHYSMEM
{ /* This works on Tru64 UNIX V4/5. */
int physmem;
if (getsysinfo (GSI_PHYSMEM, (caddr_t) &physmem, sizeof (physmem),
NULL, NULL, NULL) == 1)
{
double kbytes = physmem;
if (0 <= kbytes)
return kbytes * 1024.0;
}
}
#endif
#if HAVE_SYSCTL && defined HW_PHYSMEM
{ /* This works on *bsd and darwin. */
unsigned int physmem;
size_t len = sizeof physmem;
static int mib[2] = { CTL_HW, HW_PHYSMEM };
if (sysctl (mib, ARRAY_SIZE (mib), &physmem, &len, NULL, 0) == 0
&& len == sizeof (physmem))
return (double) physmem;
}
#endif
#if HAVE__SYSTEM_CONFIGURATION
/* This works on AIX. */
return _system_configuration.physmem;
#endif
#if defined _WIN32
{ /* this works on windows */
PFN_MS_EX pfnex;
HMODULE h = GetModuleHandle ("kernel32.dll");
if (!h)
return 0.0;
/* Use GlobalMemoryStatusEx if available. */
if ((pfnex = (PFN_MS_EX) GetProcAddress (h, "GlobalMemoryStatusEx")))
{
lMEMORYSTATUSEX lms_ex;
lms_ex.dwLength = sizeof lms_ex;
if (!pfnex (&lms_ex))
return 0.0;
return (double) lms_ex.ullTotalPhys;
}
/* Fall back to GlobalMemoryStatus which is always available.
but returns wrong results for physical memory > 4GB. */
else
{
MEMORYSTATUS ms;
GlobalMemoryStatus (&ms);
return (double) ms.dwTotalPhys;
}
}
#endif
/* Guess 64 MB. It's probably an older host, so guess small. */
return 64 * 1024 * 1024;
}
/* Return the amount of physical memory available. */
double
physmem_available (void)
physmem_available ()
{
#if defined _SC_AVPHYS_PAGES && defined _SC_PAGESIZE
{
{ /* This works on linux-gnu, solaris2 and cygwin. */
double pages = sysconf (_SC_AVPHYS_PAGES);
double pagesize = sysconf (_SC_PAGESIZE);
if (0 <= pages && 0 <= pagesize)
@@ -75,7 +198,7 @@ physmem_available (void)
#endif
#if HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC
{
{ /* This works on hpux11. */
struct pst_static pss;
struct pst_dynamic psd;
if (0 <= pstat_getstatic (&pss, sizeof pss, 1, 0)
@@ -89,6 +212,96 @@ physmem_available (void)
}
#endif
#if HAVE_SYSMP && defined MP_SAGET && defined MPSA_RMINFO && defined _SC_PAGESIZE
{ /* This works on irix6. */
struct rminfo realmem;
if (sysmp (MP_SAGET, MPSA_RMINFO, &realmem, sizeof realmem) == 0)
{
double pagesize = sysconf (_SC_PAGESIZE);
double pages = realmem.availrmem;
if (0 <= pages && 0 <= pagesize)
return pages * pagesize;
}
}
#endif
#if HAVE_TABLE && defined TBL_VMSTATS
{ /* This works on Tru64 UNIX V4/5. */
struct tbl_vmstats vmstats;
if (table (TBL_VMSTATS, 0, &vmstats, 1, sizeof (vmstats)) == 1)
{
double pages = vmstats.free_count;
double pagesize = vmstats.pagesize;
if (0 <= pages && 0 <= pagesize)
return pages * pagesize;
}
}
#endif
#if HAVE_SYSCTL && defined HW_USERMEM
{ /* This works on *bsd and darwin. */
unsigned int usermem;
size_t len = sizeof usermem;
static int mib[2] = { CTL_HW, HW_USERMEM };
if (sysctl (mib, ARRAY_SIZE (mib), &usermem, &len, NULL, 0) == 0
&& len == sizeof (usermem))
return (double) usermem;
}
#endif
#if defined _WIN32
{ /* this works on windows */
PFN_MS_EX pfnex;
HMODULE h = GetModuleHandle ("kernel32.dll");
if (!h)
return 0.0;
/* Use GlobalMemoryStatusEx if available. */
if ((pfnex = (PFN_MS_EX) GetProcAddress (h, "GlobalMemoryStatusEx")))
{
lMEMORYSTATUSEX lms_ex;
lms_ex.dwLength = sizeof lms_ex;
if (!pfnex (&lms_ex))
return 0.0;
return (double) lms_ex.ullAvailPhys;
}
/* Fall back to GlobalMemoryStatus which is always available.
but returns wrong results for physical memory > 4GB */
else
{
MEMORYSTATUS ms;
GlobalMemoryStatus (&ms);
return (double) ms.dwAvailPhys;
}
}
#endif
/* Guess 25% of physical memory. */
return physmem_total () / 4;
}
#if DEBUG
# include <stdio.h>
# include <stdlib.h>
int
main ()
{
printf ("%12.f %12.f\n", physmem_total (), physmem_available ());
exit (0);
}
#endif /* DEBUG */
/*
Local Variables:
compile-command: "gcc -DDEBUG -DHAVE_CONFIG_H -I.. -g -O -Wall -W physmem.c"
End:
*/

View File

@@ -1,3 +1,20 @@
/* quote.c - quote arguments for output
Copyright (C) 1998, 1999, 2000, 2001, 2003 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 <eggert@twinsun.com> */
#if HAVE_CONFIG_H
@@ -8,19 +25,19 @@
# include <stddef.h> /* For the definition of size_t on windows w/MSVC. */
#endif
#include <sys/types.h>
#include <quotearg.h>
#include <quote.h>
#include "quotearg.h"
#include "quote.h"
/* Return an unambiguous printable representated, allocated in slot N,
for NAME, suitable for diagnostics. */
/* Return an unambiguous printable representation of NAME,
allocated in slot N, suitable for diagnostics. */
char const *
quote_n (int n, char const *name)
{
return quotearg_n_style (n, locale_quoting_style, name);
}
/* Return an unambiguous printable representation of NAME, suitable
for diagnostics. */
/* Return an unambiguous printable representation of NAME,
suitable for diagnostics. */
char const *
quote (char const *name)
{

View File

@@ -1,4 +1,20 @@
/* prototypes for quote.c */
/* quote.h - prototypes for quote.c
Copyright (C) 1998, 1999, 2000, 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. */
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)

View File

@@ -21,52 +21,19 @@
# include <config.h>
#endif
#if HAVE_STDDEF_H
# include <stddef.h> /* For the definition of size_t on windows w/MSVC. */
#endif
#include <sys/types.h>
#include <quotearg.h>
#include <xalloc.h>
#include "quotearg.h"
#include "xalloc.h"
#include <ctype.h>
#include <errno.h>
#include <limits.h>
#include <stdlib.h>
#include <string.h>
#if ENABLE_NLS
# include <libintl.h>
# define _(text) gettext (text)
#else
# define _(text) text
#endif
#define N_(text) text
#if HAVE_LIMITS_H
# include <limits.h>
#endif
#ifndef CHAR_BIT
# define CHAR_BIT 8
#endif
#ifndef SIZE_MAX
# define SIZE_MAX ((size_t) -1)
#endif
#ifndef UCHAR_MAX
# define UCHAR_MAX ((unsigned char) -1)
#endif
#ifndef UINT_MAX
# define UINT_MAX ((unsigned int) -1)
#endif
#if HAVE_C_BACKSLASH_A
# define ALERT_CHAR '\a'
#else
# define ALERT_CHAR '\7'
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#if HAVE_STRING_H
# include <string.h>
#endif
#include "gettext.h"
#define _(msgid) gettext (msgid)
#define N_(msgid) msgid
#if HAVE_WCHAR_H
@@ -84,8 +51,12 @@
# undef MB_CUR_MAX
# define MB_CUR_MAX 1
# define mbrtowc(pwc, s, n, ps) ((*(pwc) = *(s)) != 0)
# define iswprint(wc) isprint ((unsigned char) (wc))
# undef HAVE_MBSINIT
#endif
#if !defined mbsinit && !HAVE_MBSINIT
# define mbsinit(ps) 1
# define iswprint(wc) ISPRINT ((unsigned char) (wc))
#endif
#ifndef iswprint
@@ -97,17 +68,11 @@
# endif
#endif
#define INT_BITS (sizeof (int) * CHAR_BIT)
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define IN_CTYPE_DOMAIN(c) 1
#else
# define IN_CTYPE_DOMAIN(c) isascii(c)
#ifndef SIZE_MAX
# define SIZE_MAX ((size_t) -1)
#endif
/* Undefine to protect against the definition in wctype.h of solaris2.6. */
#undef ISPRINT
#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c))
#define INT_BITS (sizeof (int) * CHAR_BIT)
struct quoting_options
{
@@ -153,9 +118,10 @@ static struct quoting_options default_quoting_options;
struct quoting_options *
clone_quoting_options (struct quoting_options *o)
{
struct quoting_options *p
= (struct quoting_options *) xmalloc (sizeof (struct quoting_options));
int e = errno;
struct quoting_options *p = xmalloc (sizeof *p);
*p = *(o ? o : &default_quoting_options);
errno = e;
return p;
}
@@ -287,7 +253,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
break;
}
for (i = 0; ! (argsize == (size_t) -1 ? arg[i] == '\0' : i == argsize); i++)
for (i = 0; ! (argsize == SIZE_MAX ? arg[i] == '\0' : i == argsize); i++)
{
unsigned char c;
unsigned char esc;
@@ -326,8 +292,8 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
case '<': case '=': case '>':
/* Escape the second '?' in what would otherwise be
a trigraph. */
i += 2;
c = arg[i + 2];
i += 2;
STORE ('?');
STORE ('\\');
STORE ('?');
@@ -340,7 +306,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
}
break;
case ALERT_CHAR: esc = 'a'; goto c_escape;
case '\a': esc = 'a'; goto c_escape;
case '\b': esc = 'b'; goto c_escape;
case '\f': esc = 'f'; goto c_escape;
case '\n': esc = 'n'; goto c_and_shell_escape;
@@ -428,7 +394,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
if (unibyte_locale)
{
m = 1;
printable = ISPRINT (c);
printable = isprint (c);
}
else
{
@@ -437,7 +403,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
m = 0;
printable = 1;
if (argsize == (size_t) -1)
if (argsize == SIZE_MAX)
argsize = strlen (arg);
do
@@ -533,8 +499,11 @@ quotearg_buffer (char *buffer, size_t buffersize,
struct quoting_options const *o)
{
struct quoting_options const *p = o ? o : &default_quoting_options;
return quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
p->style, p);
int e = errno;
size_t r = quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
p->style, p);
errno = e;
return r;
}
/* Use storage slot N to return a quoted version of argument ARG.
@@ -548,6 +517,8 @@ static char *
quotearg_n_options (int n, char const *arg, size_t argsize,
struct quoting_options const *options)
{
int e = errno;
/* Preallocate a slot 0 buffer, so that the caller can always quote
one small component of a "memory exhausted" message in slot 0. */
static char slot0[256];
@@ -575,10 +546,10 @@ quotearg_n_options (int n, char const *arg, size_t argsize,
if (slotvec == &slotvec0)
{
slotvec = (struct slotvec *) xmalloc (sizeof *slotvec);
slotvec = xmalloc (sizeof *slotvec);
*slotvec = slotvec0;
}
slotvec = (struct slotvec *) xrealloc (slotvec, s);
slotvec = xrealloc (slotvec, s);
memset (slotvec + nslots, 0, (n1 - nslots) * sizeof *slotvec);
nslots = n1;
}
@@ -595,6 +566,7 @@ quotearg_n_options (int n, char const *arg, size_t argsize,
quotearg_buffer (val, size, arg, argsize, options);
}
errno = e;
return val;
}
}
@@ -602,7 +574,7 @@ quotearg_n_options (int n, char const *arg, size_t argsize,
char *
quotearg_n (int n, char const *arg)
{
return quotearg_n_options (n, arg, (size_t) -1, &default_quoting_options);
return quotearg_n_options (n, arg, SIZE_MAX, &default_quoting_options);
}
char *
@@ -625,7 +597,7 @@ char *
quotearg_n_style (int n, enum quoting_style s, char const *arg)
{
struct quoting_options const o = quoting_options_from_style (s);
return quotearg_n_options (n, arg, (size_t) -1, &o);
return quotearg_n_options (n, arg, SIZE_MAX, &o);
}
char *
@@ -648,7 +620,7 @@ quotearg_char (char const *arg, char ch)
struct quoting_options options;
options = default_quoting_options;
set_char_quoting (&options, ch, 1);
return quotearg_n_options (0, arg, (size_t) -1, &options);
return quotearg_n_options (0, arg, SIZE_MAX, &options);
}
char *

View File

@@ -1,5 +1,7 @@
/* quotearg.h - quote arguments for output
Copyright (C) 1998, 1999, 2000, 2002 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
@@ -17,6 +19,11 @@
/* Written by Paul Eggert <eggert@twinsun.com> */
#ifndef QUOTEARG_H_
# define QUOTEARG_H_ 1
# include <stddef.h>
/* Basic quoting styles. */
enum quoting_style
{
@@ -30,9 +37,9 @@ enum quoting_style
};
/* For now, --quoting-style=literal is the default, but this may change. */
#ifndef DEFAULT_QUOTING_STYLE
# define DEFAULT_QUOTING_STYLE literal_quoting_style
#endif
# ifndef DEFAULT_QUOTING_STYLE
# define DEFAULT_QUOTING_STYLE literal_quoting_style
# endif
/* Names of quoting styles and their corresponding values. */
extern char const *const quoting_style_args[];
@@ -40,37 +47,27 @@ extern enum quoting_style const quoting_style_vals[];
struct quoting_options;
#ifndef PARAMS
# if defined PROTOTYPES || defined __STDC__
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
/* The functions listed below set and use a hidden variable
that contains the default quoting style options. */
/* Allocate a new set of quoting options, with contents initially identical
to O if O is not null, or to the default if O is null.
It is the caller's responsibility to free the result. */
struct quoting_options *clone_quoting_options
PARAMS ((struct quoting_options *o));
struct quoting_options *clone_quoting_options (struct quoting_options *o);
/* Get the value of O's quoting style. If O is null, use the default. */
enum quoting_style get_quoting_style PARAMS ((struct quoting_options *o));
enum quoting_style get_quoting_style (struct quoting_options *o);
/* In O (or in the default if O is null),
set the value of the quoting style to S. */
void set_quoting_style PARAMS ((struct quoting_options *o,
enum quoting_style s));
void set_quoting_style (struct quoting_options *o, enum quoting_style s);
/* In O (or in the default if O is null),
set the value of the quoting options for character C to I.
Return the old value. Currently, the only values defined for I are
0 (the default) and 1 (which means to quote the character even if
it would not otherwise be quoted). */
int set_char_quoting PARAMS ((struct quoting_options *o, char c, int i));
int set_char_quoting (struct quoting_options *o, char c, int i);
/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
argument ARG (of size ARGSIZE), using O to control quoting.
@@ -80,35 +77,38 @@ int set_char_quoting PARAMS ((struct quoting_options *o, char c, int i));
If BUFFERSIZE is too small to store the output string, return the
value that would have been returned had BUFFERSIZE been large enough.
If ARGSIZE is -1, use the string length of the argument for ARGSIZE. */
size_t quotearg_buffer PARAMS ((char *buffer, size_t buffersize,
char const *arg, size_t argsize,
struct quoting_options const *o));
size_t quotearg_buffer (char *buffer, size_t buffersize,
char const *arg, size_t argsize,
struct quoting_options const *o);
/* Use storage slot N to return a quoted version of the string ARG.
Use the default quoting options.
The returned value points to static storage that can be
reused by the next call to this function with the same value of N.
N must be nonnegative. */
char *quotearg_n PARAMS ((int n, char const *arg));
char *quotearg_n (int n, char const *arg);
/* Equivalent to quotearg_n (0, ARG). */
char *quotearg PARAMS ((char const *arg));
char *quotearg (char const *arg);
/* Use style S and storage slot N to return a quoted version of the string ARG.
This is like quotearg_n (N, ARG), except that it uses S with no other
options to specify the quoting method. */
char *quotearg_n_style PARAMS ((int n, enum quoting_style s, char const *arg));
char *quotearg_n_style (int n, enum quoting_style s, char const *arg);
/* Use style S and storage slot N to return a quoted version of the
argument ARG of size ARGSIZE. This is like quotearg_n_style
(N, S, ARG), except it can quote null bytes. */
char *quotearg_n_style_mem PARAMS ((int n, enum quoting_style s,
char const *arg, size_t argsize));
char *quotearg_n_style_mem (int n, enum quoting_style s,
char const *arg, size_t argsize);
/* Equivalent to quotearg_n_style (0, S, ARG). */
char *quotearg_style PARAMS ((enum quoting_style s, char const *arg));
char *quotearg_style (enum quoting_style s, char const *arg);
/* Like quotearg (ARG), except also quote any instances of CH. */
char *quotearg_char PARAMS ((char const *arg, char ch));
char *quotearg_char (char const *arg, char ch);
/* Equivalent to quotearg_char (ARG, ':'). */
char *quotearg_colon PARAMS ((char const *arg));
char *quotearg_colon (char const *arg);
#endif /* !QUOTEARG_H_ */

View File

@@ -1,5 +1,5 @@
/* stime -- set the system clock
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
/* Provide a non-threads replacement for the POSIX raise function.
Copyright (C) 2002, 2003 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,24 +15,18 @@
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* David MacKenzie <djm@ai.mit.edu> */
/* written by Jim Meyering */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <config.h>
#include <sys/types.h>
#include <sys/time.h>
/* Set the system time to *WHEN seconds past the start of 1970 GMT. */
#include <signal.h>
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
int
stime (when)
time_t *when;
raise (int sig)
{
struct timeval tv;
tv.tv_sec = *when;
tv.tv_usec = 0;
return settimeofday (&tv, (struct timezone *) 0);
return kill (getpid (), sig);
}

15
lib/readlink-stub.c Normal file
View File

@@ -0,0 +1,15 @@
#include <config.h>
#include <stddef.h>
#include <errno.h>
/* A trivial substitute for `readlink'.
DJGPP 2.03 and earlier don't have `readlink' and don't support
symlinks. */
int
readlink (const char *filename, char *buffer, size_t size)
{
errno = EINVAL;
return -1;
}

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