Compare commits

...

993 Commits

Author SHA1 Message Date
Jim Meyering
07a5b9fe8e *** empty log message *** 1999-02-07 23:34:24 +00:00
Jim Meyering
cb954e6a87 *** empty log message *** 1999-02-07 23:31:49 +00:00
Jim Meyering
2d463bbcb5 *** empty log message *** 1999-02-07 23:07:43 +00:00
Jim Meyering
7d957fac2e *** empty log message *** 1999-02-07 23:06:38 +00:00
Jim Meyering
238e6f6a40 . 1999-02-07 23:06:14 +00:00
Jim Meyering
9625a6cdaf *** empty log message *** 1999-02-07 23:06:10 +00:00
Jim Meyering
05b9afe56b (my-distcheck): Don't depend on dist, now that this
is hooked up to the distcheck rule.
1999-02-07 23:02:34 +00:00
Jim Meyering
84f044b998 . 1999-02-07 23:00:01 +00:00
Jim Meyering
bc885b89c1 . 1999-02-07 16:38:18 +00:00
Jim Meyering
24c3de8eb7 *** empty log message *** 1999-02-07 16:37:08 +00:00
Jim Meyering
a2c6534e1d *** empty log message *** 1999-02-07 16:36:58 +00:00
Jim Meyering
38c9d6d2b6 . 1999-02-07 16:35:56 +00:00
Jim Meyering
a8f75cc5c9 . 1999-02-07 16:35:30 +00:00
Jim Meyering
467a9bfd4b New file -- extracted from sh-utils' configure.in. 1999-02-07 14:24:08 +00:00
Jim Meyering
c0dfa7f21b *** empty log message *** 1999-02-07 13:49:07 +00:00
Jim Meyering
9e0faa6d18 Support DOS-style d:/foo/bar absolute file names.
From Eli Zaretskii.
1999-02-07 13:41:27 +00:00
Jim Meyering
7e74cfab42 Use AC_SUBST(LIBOBJS) since we set LIBOBJS. 1999-02-07 05:37:39 +00:00
Jim Meyering
c77b696d1e *** empty log message *** 1999-02-07 05:32:49 +00:00
Jim Meyering
2c13a275ca Use .$ac_objext, not .o 1999-02-07 05:27:24 +00:00
Jim Meyering
48a0c3d403 . 1999-02-07 05:24:19 +00:00
Jim Meyering
a59624613d *** empty log message *** 1999-02-07 05:24:15 +00:00
Jim Meyering
88869ee024 Actually invoke jm_WITH_REGEX now that it requires an argument. 1999-02-07 05:23:27 +00:00
Jim Meyering
505f12e2e4 Add a run-time Test for proper operation of re_compile_pattern. 1999-02-07 05:20:23 +00:00
Jim Meyering
4473f3cb6e import latest 1999-02-06 18:37:55 +00:00
Jim Meyering
4ae35f8a89 cpp indent 1999-02-03 15:23:21 +00:00
Jim Meyering
cd9a08e476 (S_ISDOOR): Define if missing. 1999-02-03 13:56:43 +00:00
Jim Meyering
6025f81e94 . 1999-02-03 13:53:26 +00:00
Jim Meyering
e7dc64cdaf *** empty log message *** 1999-02-03 06:40:30 +00:00
Jim Meyering
ee34311b45 *** empty log message *** 1999-02-03 06:39:02 +00:00
Jim Meyering
ec20f35608 *** empty log message *** 1999-02-03 05:42:15 +00:00
Jim Meyering
0d148ec872 Handle DOOR. 1999-02-03 05:41:42 +00:00
Jim Meyering
751a3dc73b (S_ISLNK, S_ISFIFO, S_ISSOCK, S_ISCHR, S_ISBLK, S_ISDOOR):
Define to zero if not already defined.
(HAVE_SYMLINKS): Define.
(gobble_file): Remove #ifdef.
(get_link_name, make_link_path): Guard these with #if HAVE_SYMLINKS
rather than #ifdef S_ISLNK.
(print_type_indicator): Remove #ifdefs and reorganize.
(print_color_indicator): Remove #ifdefs.
(length_of_file_name_and_frills): Likewise.
1999-02-03 05:41:18 +00:00
Jim Meyering
43aa4122fc (print_type_indicator): Print doors as '>'.
(length_of_file_name_and_frills): Account for this.
1999-02-03 05:16:22 +00:00
Jim Meyering
a6d3060450 (ftypelet): Handle doors.
(S_ISDOOR): Define if missing.
1999-02-03 05:15:07 +00:00
Jim Meyering
015e2e77ed New version from L. Peter Deutsch. 1999-02-03 02:01:06 +00:00
Jim Meyering
b10a3f942e *** empty log message *** 1999-02-01 13:50:32 +00:00
Jim Meyering
ca787f30f6 (STRXCASECMP_FUNCTION): Don't increment within macro argument list.
From Akim Demaille.
1999-02-01 13:50:12 +00:00
Jim Meyering
ac68c4f0c9 *** empty log message *** 1999-01-31 23:16:49 +00:00
Jim Meyering
45d503f7f9 Wrap the @top node in @ifnottex instead of
@ifinfo so `makeinfo --html ...' works.  From Karl Berry.
1999-01-31 23:16:31 +00:00
Jim Meyering
3aaa173ce2 *** empty log message *** 1999-01-31 23:15:38 +00:00
Jim Meyering
7f7cdc86f9 Wrap the @top node in @ifnottex instead of
@ifinfo so `makeinfo --html ...' works.  From Karl Berry.
1999-01-31 23:15:30 +00:00
Jim Meyering
c54cb6e13b *** empty log message *** 1999-01-31 23:04:21 +00:00
Jim Meyering
c900767da2 *** empty log message *** 1999-01-31 18:51:14 +00:00
Jim Meyering
9f0e21b7ca new test: Create a hard link to a dangling symlink. 1999-01-31 18:51:08 +00:00
Jim Meyering
7442141536 *** empty log message *** 1999-01-31 18:44:48 +00:00
Jim Meyering
2aa0dbcc2e *** empty log message *** 1999-01-31 18:44:34 +00:00
Jim Meyering
94fa239afa *** empty log message *** 1999-01-31 18:44:14 +00:00
Jim Meyering
4872440d7a (do_link): Allow creation of a hard link to a dangling
symlink.  Reported by Alexey Solovyov:
1999-01-31 18:41:36 +00:00
Jim Meyering
821fddfdc5 *** empty log message *** 1999-01-31 18:41:18 +00:00
Jim Meyering
9a5044f0ea *** empty log message *** 1999-01-31 18:18:16 +00:00
Jim Meyering
2f07328f17 (main): Call chdir ("/") after chroot.
Suggestion from James Youngman.
1999-01-31 17:50:53 +00:00
Jim Meyering
09619556e6 . 1999-01-31 17:13:53 +00:00
Jim Meyering
5b070b2329 *** empty log message *** 1999-01-31 16:55:51 +00:00
Jim Meyering
a12101a224 Include locale.h.
[!HAVE_SETLOCALE]: Define-away setlocale.
(getloadavg): Ensure the sscanf of /proc/getloadavg data uses the
`C' numeric locale.  Restore afterwards.
1999-01-31 16:54:00 +00:00
Jim Meyering
62b3fd4e81 (print_uptime): Use the C numeric locale for sscanf
of /proc/uptime data, then restore.
1999-01-31 16:53:28 +00:00
Jim Meyering
c4ece6d8cb *** empty log message *** 1999-01-31 16:23:10 +00:00
Jim Meyering
69649d98b1 Check for locale.h and the function, setlocale. 1999-01-31 16:22:58 +00:00
Jim Meyering
99ce6d77e0 *** empty log message *** 1999-01-31 15:28:53 +00:00
Jim Meyering
3f9c40bdcb Protoize. 1999-01-31 15:28:48 +00:00
Jim Meyering
3b1dbb8f30 *** empty log message *** 1999-01-31 15:18:25 +00:00
Jim Meyering
6de09f9d18 *** empty log message *** 1999-01-31 15:13:00 +00:00
Jim Meyering
eaec7699ac (copy_internal): Describe any backup-related renaming
operations when in verbose mode.
(copy_internal): Likewise.
Based on changes from Marty Leisner.
1999-01-31 15:12:43 +00:00
Jim Meyering
e960794409 *** empty log message *** 1999-01-31 14:47:18 +00:00
Jim Meyering
82eb2dcf9e Declare chown manually. 1999-01-31 14:46:08 +00:00
Jim Meyering
c1fb8566f6 . 1999-01-31 14:16:28 +00:00
Jim Meyering
ef68c26a22 . 1999-01-31 05:41:02 +00:00
Jim Meyering
8ec1a397be . 1999-01-31 05:40:21 +00:00
Jim Meyering
9b531d8675 . 1999-01-31 05:39:01 +00:00
Jim Meyering
fc965709f9 *** empty log message *** 1999-01-31 05:29:41 +00:00
Jim Meyering
44a61d78bb Use 3-arg form of AC_DEFINE. 1999-01-31 05:29:34 +00:00
Jim Meyering
9195b6970b *** empty log message *** 1999-01-31 05:10:23 +00:00
Jim Meyering
eaacf48c40 . 1999-01-31 05:07:11 +00:00
Jim Meyering
263bc0f77b Make this a wrapper around the official AM_FUNC_MKTIME
rather than my private copy, now that the official one is up to date.
1999-01-31 05:06:51 +00:00
Jim Meyering
29d4ea7270 *** empty log message *** 1999-01-30 16:35:04 +00:00
Jim Meyering
9196dbf945 *** empty log message *** 1999-01-30 15:55:43 +00:00
Jim Meyering
98edf21e5e . 1999-01-30 15:53:25 +00:00
Jim Meyering
7dfa1c9eaa use AC_DEFINE_UNQUOTED, now 1999-01-30 14:20:15 +00:00
Jim Meyering
c1ea7960a5 *** empty log message *** 1999-01-30 13:51:20 +00:00
Jim Meyering
076e82b82b Use 3-arg form of AC_DEFINE. 1999-01-30 13:50:58 +00:00
Jim Meyering
779b181b61 Use 3-arg form of AC_DEFINE. 1999-01-30 13:38:57 +00:00
Jim Meyering
97f8518205 *** empty log message *** 1999-01-30 05:35:42 +00:00
Jim Meyering
d713f56660 use 3-arg form of AC_DEFINE_UNQUOTED 1999-01-30 05:35:10 +00:00
Jim Meyering
fed619866d *** empty log message *** 1999-01-30 05:34:00 +00:00
Jim Meyering
5d8751167c require 2.13 1999-01-30 04:51:49 +00:00
Jim Meyering
77f5cd6359 . 1999-01-29 13:45:11 +00:00
Jim Meyering
523442d018 *** empty log message *** 1999-01-29 05:15:49 +00:00
Jim Meyering
b04492c62b *** empty log message *** 1999-01-29 05:07:30 +00:00
Jim Meyering
87110cd9f2 . 1999-01-29 05:06:23 +00:00
Jim Meyering
7744b342e1 *** empty log message *** 1999-01-29 05:06:03 +00:00
Jim Meyering
56fee444e2 Use the 3-argument forms of AC_DEFINE* macros. 1999-01-29 05:05:56 +00:00
Jim Meyering
cef9c0a44a Use jm_AFS. 1999-01-29 05:03:30 +00:00
Jim Meyering
af1ef50ae1 *** empty log message *** 1999-01-29 05:00:35 +00:00
Jim Meyering
a2f2ba51bc Use TIME_WITH_SYS_TIME-based #if test rather than
TM_IN_SYS_TIME based one (for shred).
1999-01-29 04:58:32 +00:00
Jim Meyering
8bf7657cd4 . 1999-01-27 21:32:59 +00:00
Jim Meyering
4d319867cf . 1999-01-27 05:25:37 +00:00
Jim Meyering
9fe649e01a *** empty log message *** 1999-01-25 15:23:44 +00:00
Jim Meyering
922d1292c3 *** empty log message *** 1999-01-25 15:19:36 +00:00
Jim Meyering
f525fd81ca (isaac_seed): Guard clock_gettime with test of
HAVE_CLOCK_GETTIME, not CLOCK_REALTIME.
(wipename): Rename local dirfd to dir_fd to avoid shadowing the
function declared in Linux's dirent.h.
1999-01-25 15:13:10 +00:00
Jim Meyering
89826ef420 (ARRAY_CARDINALITY): Define.
(ARGMATCH_ASSERT): New macro.
1999-01-25 14:52:13 +00:00
Jim Meyering
a2e1454d4b *** empty log message *** 1999-01-25 14:33:44 +00:00
Jim Meyering
276d118b10 (usage): Remove static attribute. 1999-01-25 14:33:38 +00:00
Jim Meyering
fe9d964a78 (usage): Remove static attribute.
Move function be the first in the file.
1999-01-25 14:31:12 +00:00
Jim Meyering
54f4eb2224 (usage): Remove static attribute.
Move function be the first in the file.
1999-01-25 14:30:08 +00:00
Jim Meyering
86fb9cb9ec (usage): Remove static attribute.
Move function be the first in the file.
1999-01-25 14:29:22 +00:00
Jim Meyering
7082d762aa (usage): Remove static attribute.
Move function be the first in the file.
1999-01-25 14:28:31 +00:00
Jim Meyering
22099863b4 (usage): Remove static attribute.
Move function be the first in the file.
1999-01-25 14:27:48 +00:00
Jim Meyering
a4c1c9627e (usage): Remove static attribute.
Move function be the first in the file.
1999-01-25 14:26:38 +00:00
Jim Meyering
53ab150d29 (usage): Remove static attribute.
Move function be the first in the file.
1999-01-25 14:24:35 +00:00
Jim Meyering
1a3dfa550d . 1999-01-25 14:09:45 +00:00
Jim Meyering
2b9e4c6914 (program_name): Remove dcl.
Include error.h.
(argmatch_invalid): Use error rather than fprintf.
1999-01-25 14:08:04 +00:00
Jim Meyering
8908c87cb0 tweak comment 1999-01-25 13:59:34 +00:00
Jim Meyering
7049562dce tweak comment 1999-01-25 13:58:34 +00:00
Jim Meyering
e7ae216189 tweak comment 1999-01-25 13:54:30 +00:00
Jim Meyering
70ede084c0 *** empty log message *** 1999-01-25 05:51:07 +00:00
Jim Meyering
becdfba8b9 New version from L. Peter Deutsch. 1999-01-25 05:50:56 +00:00
Jim Meyering
cb6a8b722b *** empty log message *** 1999-01-25 00:34:39 +00:00
Jim Meyering
2ecbb0307d Exit nonzero upon failed write to stdout. 1999-01-25 00:34:26 +00:00
Jim Meyering
95ec5d7e78 *** empty log message *** 1999-01-25 00:18:55 +00:00
Jim Meyering
11a5174aa6 (DONT_UNLINK_WHILE_OPEN) [__MSDOS__ || _WIN32]: Define. 1999-01-25 00:18:47 +00:00
Jim Meyering
a9ec82981b *** empty log message *** 1999-01-25 00:17:40 +00:00
Jim Meyering
cbf82d876b (quotearg_n_options): Revert type of parameter `n'
(and hence that of the local `n1', too) to `int' at Paul's request.
1999-01-25 00:17:22 +00:00
Jim Meyering
8c5f91e5ad Add comments. 1999-01-25 00:13:36 +00:00
Jim Meyering
da9211c1c1 *** empty log message *** 1999-01-24 15:11:00 +00:00
Jim Meyering
26756c6f82 (fdatasync): Remove function. instead, ...
[! HAVE_FDATASYNC]: Define to fsync.
From Colin Plumb.
1999-01-24 15:10:22 +00:00
Jim Meyering
604691004d *** empty log message *** 1999-01-23 23:25:16 +00:00
Jim Meyering
70db3065cb (fdatasync) [! HAVE_FDATASYNC]: New function. 1999-01-23 23:07:53 +00:00
Jim Meyering
d91597a2e8 *** empty log message *** 1999-01-23 23:01:07 +00:00
Jim Meyering
1b0f03e1da (wipename): Print the `FILE: deleting' message only when in verbose mode. 1999-01-23 18:55:34 +00:00
Jim Meyering
e21cf52e03 (wipename): Print the `FILE: deleted' message only when in verbose mode. 1999-01-23 18:33:11 +00:00
Jim Meyering
4ab3a8a345 always close stdout 1999-01-23 18:15:41 +00:00
Jim Meyering
35c2b35dbd fix typos in comments 1999-01-23 17:36:33 +00:00
Jim Meyering
9550ca6b71 (pfstatus): Use __format__ and __printf__.
Remove `if __GNUC__ >= 2' guard.
1999-01-23 16:48:36 +00:00
Jim Meyering
5b181c3bd6 *** empty log message *** 1999-01-23 16:41:20 +00:00
Jim Meyering
b02f28bab4 Bracket pfstatus messages with _(). 1999-01-23 16:26:16 +00:00
Jim Meyering
68e327564d add parens around STREQ 1999-01-23 15:34:18 +00:00
Jim Meyering
e363353a48 restore mistakenly removed stdio.h
use error in place of pferror
(pferror): Remove.
(wipefd): Use error in place of fprintf(stderr,... call
s/alllocate/allocate
1999-01-23 15:32:48 +00:00
Jim Meyering
954d1b451f use `%s' rather than \"%s\" everywhere 1999-01-23 15:22:16 +00:00
Jim Meyering
8b036d56ef s/sterilize/shred/g
Don't include headers already included (and guarded by HAVE_FOO_H tests)
in system.h.
1999-01-23 15:17:54 +00:00
Jim Meyering
758bbda788 use getopt_long
(struct Options): Declare.
(usage): New function.
(program_name): Rename from argv0
(FLAG_* macros): Remove.
1999-01-23 05:32:58 +00:00
Jim Meyering
ae7d45cdc9 Include config.h, getopt.h, system.h and error.h.
Use #else/#if, not #elif.
1999-01-22 02:19:24 +00:00
Jim Meyering
6cb040753f import latest 1999-01-21 13:40:27 +00:00
Jim Meyering
42d3b0be50 *** empty log message *** 1999-01-19 04:47:33 +00:00
Jim Meyering
cdc04ccc0e (__mktime_internal): Adopt the traditional (and
problematic) notion of what to do when tm_isdst doesn't match.
From Paul Eggert.
1999-01-19 04:47:24 +00:00
Jim Meyering
509abea3f1 put back mistakenly removed pwd= assignment 1999-01-19 03:04:12 +00:00
Jim Meyering
67a1a846c4 remove temporary files 1999-01-18 18:33:58 +00:00
Jim Meyering
d3b6e5f4fb . 1999-01-18 17:14:57 +00:00
Jim Meyering
b83bf32695 . 1999-01-18 17:14:35 +00:00
Jim Meyering
65c540d59c Tweak grammar in description of ptx's --break-file=FILE option. 1999-01-18 16:30:20 +00:00
Jim Meyering
ab8dea5328 *** empty log message *** 1999-01-18 16:23:59 +00:00
Jim Meyering
a90a97ba1d Harmonization of @samp use for options. 1999-01-18 16:23:48 +00:00
Jim Meyering
21cf7cf8c2 indent -- sorry Colin. 1999-01-18 05:49:43 +00:00
Jim Meyering
9f4ddf5976 *** empty log message *** 1999-01-18 03:49:16 +00:00
Jim Meyering
25668ab60b *** empty log message *** 1999-01-18 03:47:16 +00:00
Jim Meyering
d12341e78a . 1999-01-18 03:46:48 +00:00
Jim Meyering
34ad3d2d3b Now that PATH is set properly, use ln rather than $LN. 1999-01-18 02:57:24 +00:00
Jim Meyering
bece904517 (TESTS): Add backup-1.
(TESTS_ENVIRONMENT): Set PATH here, rather than setting LN.
1999-01-18 02:56:27 +00:00
Jim Meyering
d869e3fdc0 . 1999-01-18 02:55:50 +00:00
Jim Meyering
33a1515274 . 1999-01-18 02:54:56 +00:00
Jim Meyering
890d74d50b Now that PATH is set properly, use rm and cp rather than $RM and $CP. 1999-01-18 02:54:36 +00:00
Jim Meyering
f0f15679fb . 1999-01-18 02:54:19 +00:00
Jim Meyering
b4b06d9c39 (TESTS_ENVIRONMENT): Set PATH here, rather than setting RM and CP. 1999-01-18 02:53:19 +00:00
Jim Meyering
e11c197cc2 (do_link): Try to remove DEST even after renaming it.
This fixes a bug reported by Jamie Lokier.
1999-01-18 02:41:13 +00:00
Jim Meyering
5967a93b4f *** empty log message *** 1999-01-18 02:40:30 +00:00
Jim Meyering
1f4c0ed890 cpp-indent #error line 1999-01-18 00:44:57 +00:00
Jim Meyering
9a6aae1ed7 . 1999-01-18 00:44:18 +00:00
Jim Meyering
3f05e0467f *** empty log message *** 1999-01-17 18:14:28 +00:00
Jim Meyering
ea020acdd2 (same_name): Use SAME_INODE rather than open coding it. 1999-01-17 18:12:19 +00:00
Jim Meyering
3b713062cd *** empty log message *** 1999-01-17 15:07:44 +00:00
Jim Meyering
f5f0c17fe9 Add SHELL = /bin/sh. 1999-01-17 13:53:32 +00:00
Jim Meyering
d34ec08816 compress copyright 1999-01-17 04:15:12 +00:00
Jim Meyering
7316f85aaa (ARGMATCH_DIE_DECL): Use it. 1999-01-16 17:18:01 +00:00
Jim Meyering
3c2295f52c *** empty log message *** 1999-01-16 17:15:32 +00:00
Jim Meyering
d3e2cd9eca (ARGMATCH_DIE_DECL): Define. 1999-01-16 17:15:24 +00:00
Jim Meyering
bf527b6094 *** empty log message *** 1999-01-16 17:01:20 +00:00
Jim Meyering
eb3b7c64d0 Define ARGMATCH_DIE. 1999-01-16 17:01:11 +00:00
Jim Meyering
0695444a89 . 1999-01-16 16:25:26 +00:00
Jim Meyering
cf00554f8f Don't declare base_name. 1999-01-16 16:22:00 +00:00
Jim Meyering
1b9f58551d Don't declare base_name.
Use function-style XARGMATCH once again.
1999-01-16 16:21:46 +00:00
Jim Meyering
4e83f9789c (usage): Remove `static'.
Use function-style XARGMATCH.
1999-01-16 16:20:02 +00:00
Jim Meyering
29064b5f4f Remove declarations of base_name and get_version.
(main): Don't call getenv ("VERSION_CONTROL"); xget_version does it.
Use xget_version and function-style XARGMATCH.
1999-01-16 16:18:26 +00:00
Jim Meyering
fadedac410 Remove declarations of base_name and get_version.
(main): Don't call getenv ("VERSION_CONTROL"); xget_version does it.
Use xget_version and function-style XARGMATCH.
1999-01-16 16:14:56 +00:00
Jim Meyering
06f14ae760 Remove declarations of base_name and get_version.
(main): Don't call getenv ("VERSION_CONTROL"); xget_version does it.
Use xget_version and function-style XARGMATCH.
1999-01-16 16:14:31 +00:00
Jim Meyering
1592f752f6 Don't declare base_name.
(usage): Don't make it static so that it can be
called from libfu.a by xargmatch.
1999-01-16 16:13:31 +00:00
Jim Meyering
84b4618b26 Remove declarations of base_name and get_version.
(main): Don't call getenv ("VERSION_CONTROL"); xget_version does it.
Use xget_version and function-style XARGMATCH.
1999-01-16 16:12:05 +00:00
Jim Meyering
414cf1b428 (base_name): Declare. 1999-01-16 16:04:43 +00:00
Jim Meyering
b76f341922 (quotearg_n_options): Declare n1 to be of type
unsigned int, not just int.
1999-01-16 15:55:20 +00:00
Jim Meyering
10f96d621c (get_version): Adjust prototype.
(xget_version): Add prototype.
(base_name): Remove prototype.
1999-01-16 15:54:22 +00:00
Jim Meyering
306ea2b028 [!HAVE_DECL_GETENV]: Declare getenv.
(backup_args): Reorder enum members.
(backup_types): Likewise.
(get_version): Take an additional parameter, `context'.
(xget_version): Like get_version, but if the `version' argument is NULL,
use the value of the envvar VERSION_CONTROL.
(base_name): Declare.
1999-01-16 15:51:21 +00:00
Jim Meyering
ff5b4df30b Add prototype for base_name. 1999-01-16 15:37:25 +00:00
Jim Meyering
20bc02752b (usage): Don't make it static so that it can be called from libfu.a by xargmatch. 1999-01-16 15:34:59 +00:00
Jim Meyering
410a3c94e8 (usage): Don't make it static so that it can be called from libfu.a by xargmatch. 1999-01-16 15:33:16 +00:00
Jim Meyering
c94e186b91 s/argmatch_exit_failure/argmatch_die/ 1999-01-16 15:21:52 +00:00
Jim Meyering
e42efa6866 (EXIT_FAILURE): Define.
(ARGMATCH_DIE): Use it.
1999-01-16 15:17:48 +00:00
Jim Meyering
115a5d0e61 *** empty log message *** 1999-01-16 15:12:19 +00:00
Jim Meyering
f28d5ba125 (XARGMATCH): Define to return a value once again.
(XARGCASEMATCH): Likewise.
1999-01-16 15:12:04 +00:00
Jim Meyering
f22e54a579 (ARGMATCH_DIE): Provide default.
(__xargmatch_internal): New function.
s/rogram_name/program_name.
From Akim Demaille.
1999-01-16 15:06:41 +00:00
Jim Meyering
888b0fe143 import latest 1999-01-15 13:26:46 +00:00
Jim Meyering
e0c1e743cc *** empty log message *** 1999-01-14 18:44:38 +00:00
Jim Meyering
3e60c9744d Use f', not x' as temp. file name to avoid warnings from perl5.004. 1999-01-14 18:43:54 +00:00
Jim Meyering
3cce240e0a . 1999-01-14 18:27:33 +00:00
Jim Meyering
17a4ddab33 *** empty log message *** 1999-01-14 18:27:01 +00:00
Jim Meyering
d2e1175756 (parse_long_options): Rename `usage' parameter
to avoid shadowing globally scoped function.
1999-01-14 18:26:51 +00:00
Jim Meyering
9fec9172be Don't prototype usage as static. 1999-01-14 18:25:16 +00:00
Jim Meyering
da25811932 Include closeout.h. (main): Use close_stdout. 1999-01-14 15:37:04 +00:00
Jim Meyering
dc4fd4c43b Include closeout.h. (main): Use close_stdout_status. 1999-01-14 15:36:50 +00:00
Jim Meyering
26ba9ca9df . 1999-01-13 05:50:34 +00:00
Jim Meyering
f749a71868 . 1999-01-13 05:50:05 +00:00
Jim Meyering
43ca488eae *** empty log message *** 1999-01-13 05:42:38 +00:00
Jim Meyering
b0c149e78f new version from automake 1999-01-13 05:40:42 +00:00
Jim Meyering
97bc6652e7 . 1999-01-13 05:38:11 +00:00
Jim Meyering
e0ad1ee4d1 . 1999-01-13 05:38:08 +00:00
Jim Meyering
af821763c5 new version from glibc 1999-01-13 05:37:17 +00:00
Jim Meyering
4a90a25973 new version from glibc 1999-01-13 05:36:45 +00:00
Jim Meyering
570fa71fb3 add parens, s/|/;/ 1999-01-12 17:40:08 +00:00
Jim Meyering
8d891cbf63 *** empty log message *** 1999-01-12 17:35:22 +00:00
Jim Meyering
58d4fd72fe Rewrite to avoid using fmt. 1999-01-12 17:35:13 +00:00
Jim Meyering
b517135765 . 1999-01-11 05:49:42 +00:00
Jim Meyering
f4e4297031 *** empty log message *** 1999-01-11 05:01:31 +00:00
Jim Meyering
22d584b475 . 1999-01-11 04:58:28 +00:00
Jim Meyering
f6aaba2b34 *** empty log message *** 1999-01-11 04:53:02 +00:00
Jim Meyering
c970990a0a All of the following new code is protected by `#if DONT_UNLINK_WHILE_OPEN'
(file_to_remove): New global.
(fp_to_close): New global.
(unlink_tempfile): New function.
(record_tempfile): New function.
(save_stdin): Call record_tempfile.
Use SET_BINARY.
(main): Use SET_BINARY and SET_BINARY2.
From Eli Zaretskii.
1999-01-11 04:52:44 +00:00
Jim Meyering
500f608a4d *** empty log message *** 1999-01-11 04:15:09 +00:00
Jim Meyering
e5eed12981 *** empty log message *** 1999-01-11 04:14:29 +00:00
Jim Meyering
8be71eeb83 . 1999-01-11 04:12:15 +00:00
Jim Meyering
06683af3c4 *** empty log message *** 1999-01-11 03:36:44 +00:00
Jim Meyering
38d09e7907 *** empty log message *** 1999-01-11 03:23:14 +00:00
Jim Meyering
0e777744cb (copy_internal): Handle two more values of errno from
failed rename of a directory into a subdirectory of itself.
1999-01-11 03:22:50 +00:00
Jim Meyering
9a887e5ca4 *** empty log message *** 1999-01-11 03:19:45 +00:00
Jim Meyering
495729b1dc (quotearg_buffer): Change escape_quoting_style so that it no longer escapes ` '.
Suggestion from Paul Eggert.
1999-01-11 03:11:15 +00:00
Jim Meyering
75e5479220 (decode_switches): Now that escape_quoting_style no longer
escapes the SPACE character, arrange for SPACEs to be quoted here.
1999-01-11 03:10:59 +00:00
Jim Meyering
db0dadb263 (ARGMATCH_QUOTING_STYLE): Change from c_quoting_style to escape_quoting_style.
(argmatch_invalid): Now that the quoted quantity is no longer double
quoted, remove the code that removed leading and trailing double quotes.
1999-01-11 03:10:19 +00:00
Jim Meyering
3c21ae616f *** empty log message *** 1999-01-11 02:49:20 +00:00
Jim Meyering
ac25bd69bf (main) [TEST_CANON_HOST]: Add a simple test driver. 1999-01-11 02:46:33 +00:00
Jim Meyering
87364848e2 import new version 1999-01-11 02:40:27 +00:00
Jim Meyering
015d9b3c3f . 1999-01-10 23:47:16 +00:00
Jim Meyering
8a3a8c7126 . 1999-01-10 23:44:44 +00:00
Jim Meyering
003cf75202 *** empty log message *** 1999-01-10 22:51:50 +00:00
Jim Meyering
51f90506ba Use the new 3-arg form of AC_DEFINE instead of my gross kludge. 1999-01-10 22:51:01 +00:00
Jim Meyering
4a0813fecb Use the new 3-arg form of AC_DEFINE instead of my gross kludge. 1999-01-10 22:50:14 +00:00
Jim Meyering
ee991227ee Use the new 3-arg form of AC_DEFINE instead of my gross kludge. 1999-01-10 22:49:24 +00:00
Jim Meyering
4d57863e63 Use the new 3-arg form of AC_DEFINE instead of my gross kludge. 1999-01-10 22:48:12 +00:00
Jim Meyering
d6c548c783 Use the new 3-arg form of AC_DEFINE instead of my gross kludge. 1999-01-10 22:47:37 +00:00
Jim Meyering
357c999a88 Use the new 3-arg form of AC_DEFINE instead of my gross kludge. 1999-01-10 22:47:01 +00:00
Jim Meyering
6222e67d7f Use 3-arg form of AC_DEFINE instead of the
AC_CHECK_FUNCS hack.  Now, it's still a hack, but at least the
comments in config.h.in are meaningful.
1999-01-10 22:45:03 +00:00
Jim Meyering
110bd4aa65 bump serial# 1999-01-10 22:43:13 +00:00
Jim Meyering
97d75acb2c Require autoconf-2.13 here. 1999-01-10 22:42:57 +00:00
Jim Meyering
8d598fb33d *** empty log message *** 1999-01-10 22:06:15 +00:00
Jim Meyering
ceb02a40aa *** empty log message *** 1999-01-10 14:57:07 +00:00
Jim Meyering
ea9ec4ab46 By default, don't use the included regex.c on systems
with glibc 2.  Suggestion from Uli Drepper.
1999-01-10 14:57:00 +00:00
Jim Meyering
37f6675617 *** empty log message *** 1999-01-09 21:20:02 +00:00
Jim Meyering
a9583f3841 *** empty log message *** 1999-01-09 16:25:02 +00:00
Jim Meyering
fd008ba80b declare `match' 1999-01-09 16:21:40 +00:00
Jim Meyering
1eb017af63 New option: --all-repeated (-D).
(output_all_repeated) [output_mode]: New enum value.
(usage): Describe it.
(writeline): Test for new mode.
(check_file): Likewise.
Based on patches from Jochen Hein and Florin Iucha.
(main): Diagnose `too many arguments'.
1999-01-09 16:16:18 +00:00
Jim Meyering
7a545dda54 Add tests from Jochen Hein. 1999-01-09 16:15:32 +00:00
Jim Meyering
27aafa985a (null-1): Add test from Jochen Hein. 1999-01-09 15:44:27 +00:00
Jim Meyering
df9cb5d5c0 s/max_n_consecutive_size_changes/max_n_consecutive_size_changes_between_opens/ 1999-01-09 14:21:32 +00:00
Jim Meyering
375b687738 (parse_obsolescent_option): Interpret `number' as decimal.
(parse_options): Likewise.
Reported by Kamal Paul Nigam.

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

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

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

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

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

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

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

View File

@@ -4,6 +4,10 @@
# It is necessary if you want to build targets usually of interest
# only to the maintainer.
# Systems where /bin/sh is not the default shell need this. The $(shell)
# command below won't work with e.g. stock DOS/Windows shells.
SHELL = /bin/sh
have-Makefile := $(shell test -f Makefile && echo yes)
# If the user runs GNU make but has not yet run ./configure,

View File

@@ -13,12 +13,13 @@ maintainer-check:
# Tag before making distribution. Also, don't make a distribution if
# checks fail. Also, make sure the NEWS file is up-to-date.
# FIXME: use dist-hook/my-dist like distcheck-hook/my-distcheck.
cvs-dist: maintainer-check
pkg=`echo "$(PACKAGE)" | tr a-z A-Z`; \
ver=`echo "$(VERSION)" | sed 's/\./_/g'`; \
tag="$$pkg-$$ver"; \
echo tag=$$tag; \
if cvs -n log -h README| grep -e $$tag > /dev/null; then \
if cvs -n log -h README| grep -e $$tag: > /dev/null; then \
echo "VERSION not new; not tagging" 1>&2; \
exit 1; \
fi; \
@@ -27,18 +28,69 @@ cvs-dist: maintainer-check
$(MAKE) dist
t=./=test
my-distcheck: dist
my-distcheck:
-rm -rf $(t)
mkdir $(t)
GZIP=$(GZIP) $(TAR) -C $(t) -zxf $(distdir).tar.gz
cd $(t)/$(distdir) \
&& ./configure --disable-nls \
&& $(MAKE) \
&& $(MAKE) CFLAGS='-Wformat -Werror' \
&& $(MAKE) dvi \
&& $(MAKE) check \
&& $(MAKE) distclean
cd $(t) && $(TAR) --diff -z -f ../$(distdir).tar.gz
cd $(t) && mv $(distdir) $(distdir).old \
&& $(TAR) -zxf ../$(distdir).tar.gz
diff -ur $(t)/$(distdir).old $(t)/$(distdir)
-rm -rf $(t)
@echo "========================"; \
echo "$(distdir).tar.gz is ready for distribution"; \
echo "========================"
THIS_VERSION_REGEXP = $(subst .,\.,$(VERSION))
# FIXME: this works only for Gnits-style test releases.
PREV_VERSION := $(shell echo $(VERSION)|tr a-z Xa-y)
PREV_VERSION_REGEXP := $(shell echo $(PREV_VERSION)|sed 's/\./\\./g')
v = Version
url-host-prefix = ftp://alpha.gnu.org
url = $(url-host-prefix)/gnu/fetish/$(distdir).tar.gz
md5 = $(shell md5sum < $(distdir).tar.gz|sed 's/ -//')
rel-check:
tarz=/tmp/rel-check-tarz-$$$$; \
md5_tmp=/tmp/rel-check-md5-$$$$; \
set -e; \
trap 'status=$$?; rm -f $$tarz $$md5_tmp; exit $$status' 0 1 2 3 15; \
wget -q --output-document=$$tarz $(url); \
echo "$(md5) -" > $$md5_tmp; \
md5sum -c $$md5_tmp < $$tarz
announcement: NEWS ChangeLog $(distdir).tar.gz
@( \
echo Subject: $(distdir) released; \
echo; \
echo FIXME: put comments here; \
echo; \
echo " $(url)"; \
echo; \
echo "$(md5) $(distdir).tar.gz"; \
echo; \
echo NEWS:; \
sed -n "/$(THIS_VERSION_REGEXP)/,/$(PREV_VERSION_REGEXP)/p" NEWS \
| grep -v '^\['; \
echo; \
echo ChangeLog entries:; \
sed -n "1,/$v $(PREV_VERSION_REGEXP)/p" \
ChangeLog; \
)
alpha:
$(MAKE) cvs-dist
$(MAKE) -s announcement > /tmp/announcement
ln $(distdir).tar.gz ../release
chmod a-w $(distdir).tar.gz
@echo =====================================
@echo 'ncftp -u $(url-host-prefix)/fs/share/ftp/gnu/fetish/'
@echo '# put $(distdir).tar.gz'
@echo '# send the /tmp/announcement e-mail'
@echo 'pot-mail $(distdir).tar.gz | bash'
@echo =====================================

23
THANKS
View File

@@ -2,12 +2,23 @@ This is just a start at listing e-mail addresses of contributors.
The rest of the addresses are still in the ChangeLog.
Achim Blumensath: blume@corona.oche.de
aldomel: aldomel@ix.netcom.com
Akim Demaille: demaille@inf.enst.fr
Alain Magloire: alain@qnx.com
Alexey Solovyov: alekso@math.uu.se
Andreas Jaeger: jaeger@gnu.org
Andreas Schwab: schwab@issan.informatik.uni-dortmund.de
Andries Brouwer: Andries.Brouwer@cwi.nl
Arne Henrik Juul: arnej@imf.unit.no
Bauke Jan Douma: bjdouma@xs4all.nl
Bengt Martensson: bengt@mathematik.uni-Bremen.de
Bernd Leibing: bernd.leibing@rz.uni-ulm.de
Bjorn Helgaas: helgaas@rsn.hp.com
Bob McCracken: kerouac@ravenet.com
Brendan O'Dea: bod@compusol.com.au
Charles Karney: karney@pppl.gov
Christian von Roques: roques@pond.sub.org
Colin Plumb: colin@nyx.net
Dirk Lattermann: dlatt@t-online.de
Don Parsons: dparsons@synapse.kent.edu
Eirik Fuller: eirik@netcom.com
@@ -21,27 +32,39 @@ Hugh Daniel: hugh@xanadu.com
James: james@albion.glarp.com
James Antill: jmanti%essex.ac.uk@seralph21.essex.ac.uk
James Tanis: jtt@soscorp.com
Jamie Lokier: jamie@imbolc.ucc.ie
Jesse Thilo: jgt2@eecs.lehigh.edu
Joakim Rosqvist: dvljrt@cs.umu.se
Johan Danielsson: joda@pdc.kth.se
John Gatewood Ham: zappaman@alphabox.compsci.buu.ac.th
Karl Heuer: kwzh@gnu.org
Kjetil Torgrim Homme: kjetilho@ifi.uio.no
Lars Hecking: lhecking@nmrc.ucc.ie
Lorne Baker: lbaker@nitro.avint.net
Marcus Daniels: marcus@sysc.pdx.edu
Mark A. Thomas: thommark@access.digex.net
Mark Harris: mark@monitor.designacc.com
Mark Kettenis: kettenis@phys.uva.nl
Marty Leisner: leisner@sdsp.mc.xerox.com
Masami Takikawa: takikawm@CS.ORST.EDU
Matthew S. Levine: mslevine@theory.lcs.mit.edu
Matthew Swift: swift@alum.mit.edu
Michiel Bacchiani: bacchian@raven.bu.edu
Miles Bader: miles@gnu.ai.mit.edu
Noel Cragg: noel@red-bean.com
Olav Morkrid: olav@funcom.com
Per Kristian Hove: perhov@math.ntnu.no
Peter Eriksson: peter@ifm.liu.se
Paul Eggert: eggert@twinsun.com
Philippe De Muyter: phdm@macqel.be
Rainer Orth: ro@TechFak.Uni-Bielefeld.DE
Ross Ridge: rridge@calum.csclub.uwaterloo.ca
Santiago Vila Doncel: sanvila@unex.es
Stuart Kemp: skemp@peter.bmc.com
Thomas Bushnell, n/BSG: thomas@gnu.ai.mit.edu
Torbjorn Lindgren: tl@funcom.no
Tony Leneis: tony@plaza.ds.adp.com
Ulrich Drepper: drepper@cygnus.com
Volker Borchert: bt@teknon.de
Michael Veksler: mveksler@techunix.technion.ac.il
Wayne Stewart: wstewa@atl.com

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
# Makefile.in generated automatically by automake 1.3 from Makefile.am
# Makefile.in generated automatically by automake 1.4a from Makefile.am
# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,7 +11,7 @@
# PARTICULAR PURPOSE.
SHELL = /bin/sh
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -32,7 +32,7 @@ mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DISTDIR =
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -46,7 +46,7 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
@@ -93,16 +93,19 @@ info_TEXINFOS = fileutils.texi
EXTRA_DIST = perm.texi getdate.texi
# Tell makeinfo to put everything in a single info file: sh-utils.info.
# Otherwise, it would also generate files with names like sh-utils.info-[123],
# and those names all map to one 14-byte name (sh-utils.info-) on some crufty
# The following is necessary if the package name is 8 characters or longer.
# If the info documentation would be split into 10 or more separate files,
# then this is necessary even if the package name is 7 characters long.
#
# Tell makeinfo to put everything in a single info file: <package>.info.
# Otherwise, it would also generate files with names like <package>.info-[123],
# and those names all map to one 14-byte name (<package>.info-) on some crufty
# old systems.
MAKEINFO = makeinfo --no-split
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
TEXI2DVI = texi2dvi
TEXINFO_TEX = $(srcdir)/texinfo.tex
INFO_DEPS = fileutils.info
DVIS = fileutils.dvi
TEXINFOS = fileutils.texi
@@ -112,13 +115,12 @@ version.texi
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP = --best
all: Makefile $(INFO_DEPS)
TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
.SUFFIXES: .dvi .info .ps .texi .texinfo .txi
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnits doc/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
@@ -126,18 +128,18 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
version.texi: stamp-vti
cp $(srcdir)/stamp-vti $(srcdir)/version.texi
$(srcdir)/version.texi: stamp-vti
@:
stamp-vti: fileutils.texi $(top_srcdir)/configure.in
@echo "@set UPDATED `cd $(srcdir) \
&& $(SHELL) ./mdate-sh fileutils.texi`" > vti.tmp
$(srcdir)/stamp-vti: fileutils.texi $(top_srcdir)/configure.in
@echo "@set UPDATED `$(SHELL) $(srcdir)/mdate-sh $(srcdir)/fileutils.texi`" > vti.tmp
@echo "@set EDITION $(VERSION)" >> vti.tmp
@echo "@set VERSION $(VERSION)" >> vti.tmp
@cmp -s vti.tmp $(srcdir)/stamp-vti \
|| (echo "Updating $(srcdir)/stamp-vti"; \
cp vti.tmp $(srcdir)/stamp-vti)
@cmp -s vti.tmp $(srcdir)/version.texi \
|| (echo "Updating $(srcdir)/version.texi"; \
cp vti.tmp $(srcdir)/version.texi)
-@rm -f vti.tmp
@cp $(srcdir)/version.texi $@
mostlyclean-vti:
-rm -f vti.tmp
@@ -147,7 +149,7 @@ clean-vti:
distclean-vti:
maintainer-clean-vti:
-rm -f stamp-vti version.texi
-rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
fileutils.info: fileutils.texi version.texi
fileutils.dvi: fileutils.texi version.texi
@@ -161,7 +163,7 @@ DVIPS = dvips
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texi.dvi:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
TEXINPUTS=.:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.texi:
@@ -180,7 +182,7 @@ DVIPS = dvips
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo.dvi:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
TEXINPUTS=.:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi.info:
@@ -189,7 +191,7 @@ DVIPS = dvips
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.txi.dvi:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
TEXINPUTS=.:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi:
@@ -202,7 +204,8 @@ DVIPS = dvips
install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(infodir)
@for file in $(INFO_DEPS); do \
@list='$(INFO_DEPS)'; \
for file in $$list; do \
d=$(srcdir); \
for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
if test -f $$d/$$ifile; then \
@@ -213,7 +216,8 @@ install-info-am: $(INFO_DEPS)
done
@$(POST_INSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
for file in $(INFO_DEPS); do \
list='$(INFO_DEPS)'; \
for file in $$list; do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
done; \
@@ -224,17 +228,20 @@ uninstall-info:
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
ii=yes; \
else ii=; fi; \
for file in $(INFO_DEPS); do \
list='$(INFO_DEPS)'; \
for file in $$list; do \
test -z "$ii" \
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
done
@$(NORMAL_UNINSTALL)
for file in $(INFO_DEPS); do \
list='$(INFO_DEPS)'; \
for file in $$list; do \
(cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
done
dist-info: $(INFO_DEPS)
for base in $(INFO_DEPS); do \
list='$(INFO_DEPS)'; \
for base in $$list; do \
d=$(srcdir); \
for file in `cd $$d && eval echo $$base*`; do \
test -f $(distdir)/$$file \
@@ -255,7 +262,7 @@ clean-aminfo:
distclean-aminfo:
maintainer-clean-aminfo:
for i in $(INFO_DEPS); do \
cd $(srcdir) && for i in $(INFO_DEPS); do \
rm -f $$i; \
if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
rm -f $$i-[0-9]*; \
@@ -277,63 +284,76 @@ distdir: $(DISTFILES)
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnits doc/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
if test -d $$d/$$file; then \
cp -pr $$/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
$(MAKE) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
info: $(INFO_DEPS)
dvi: $(DVIS)
check: all
$(MAKE)
installcheck:
install-exec:
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
info-am: $(INFO_DEPS)
info: info-am
dvi-am: $(DVIS)
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
install-data: install-info-am
@$(NORMAL_INSTALL)
install: install-exec install-data all
@:
uninstall: uninstall-info
install-data-am: install-info-am
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-info
uninstall: uninstall-am
all-am: Makefile $(INFO_DEPS)
all-redirect: all-am
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(infodir)
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(DISTCLEANFILES)
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
mostlyclean: mostlyclean-vti mostlyclean-aminfo mostlyclean-generic
mostlyclean-am: mostlyclean-vti mostlyclean-aminfo mostlyclean-generic
clean: clean-vti clean-aminfo clean-generic mostlyclean
mostlyclean: mostlyclean-am
distclean: distclean-vti distclean-aminfo distclean-generic clean
-rm -f config.status
clean-am: clean-vti clean-aminfo clean-generic mostlyclean-am
maintainer-clean: maintainer-clean-vti maintainer-clean-aminfo \
maintainer-clean-generic distclean
clean: clean-am
distclean-am: distclean-vti distclean-aminfo distclean-generic clean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-vti maintainer-clean-aminfo \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-vti distclean-vti clean-vti maintainer-clean-vti \
install-info-am uninstall-info mostlyclean-aminfo distclean-aminfo \
clean-aminfo maintainer-clean-aminfo tags distdir info dvi installcheck \
install-exec install-data install uninstall all installdirs \
clean-aminfo maintainer-clean-aminfo tags distdir info-am info dvi-am \
dvi check check-am installcheck-am installcheck install-exec-am \
install-exec install-data-am install-data install-am install \
uninstall-am uninstall all-redirect all-am all installdirs \
mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean

View File

@@ -113,7 +113,7 @@ by the Foundation.
@end titlepage
@ifinfo
@ifnottex
@node Top
@top GNU shell utilities
@@ -140,7 +140,7 @@ This manual documents version @value{VERSION} of the GNU shell utilities.
* Index:: General index.
@end menu
@end ifinfo
@end ifnottex
@node Introduction
@@ -166,7 +166,7 @@ The GNU shell utilities are mostly compatible with the POSIX.2 standard.
@c This paragraph appears in all of fileutils.texi, textutils.texi, and
@c sh-utils.texi too -- so be sure to keep them consistent.
@cindex bugs, reporting
Please report bugs to @samp{sh-utils-bugs@@gnu.org}. Remember
Please report bugs to @samp{bug-sh-utils@@gnu.org}. Remember
to include the version number, machine architecture, input files, and
any other information needed to reproduce the bug: your input, what you
expected, what you got, and why it is wrong. Diffs are welcome, but

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

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

21
lib/.gdb-history Normal file
View File

@@ -0,0 +1,21 @@
r 206.65.212.10
b main
r
n
s
n
p addr
p addr
p he->h_name
n
q
b canon_host
r 206.65.212.10
n
p he
p *he
n
n
p (he->h_addrtype)
n
q

View File

@@ -6,7 +6,7 @@ noinst_LIBRARIES = libfu.a
INCLUDES = -I.. -I$(srcdir) -I../intl
libfu_a_SOURCES = getdate.y posixtm.y getopt.c getopt1.c \
libfu_a_SOURCES = getdate.y posixtm.c getopt.c getopt1.c \
addext.c argmatch.c backupfile.c basename.c \
closeout.c dirname.c exclude.c filemode.c \
full-write.c human.c idcache.c \
@@ -18,10 +18,19 @@ libfu_a_LIBADD = @LIBOBJS@ @ALLOCA@
libfu_a_DEPENDENCIES = $(libfu_a_LIBADD)
noinst_HEADERS = argmatch.h backupfile.h closeout.h \
error.h exclude.h fnmatch.h fsusage.h \
getdate.h getline.h getopt.h group-member.h human.h long-options.h \
dirname.h error.h exclude.h filemode.h fnmatch.h fsusage.h \
getdate.h getline.h getopt.h group-member.h human.h lchown.h long-options.h \
makepath.h modechange.h mountlist.h hash.h path-concat.h pathmax.h \
quotearg.h safe-read.h save-cwd.h savedir.h strverscmp.h \
posixtm.h quotearg.h regex.h safe-read.h save-cwd.h savedir.h strverscmp.h \
xalloc.h xstrtol.h xstrtoul.h
BUILT_SOURCES = getdate.c posixtm.c
BUILT_SOURCES = getdate.c lstat.c stat.c
EXTRA_DIST = xstat.in
lstat.c: xstat.in
sed -e '/@IGNORE@/d' -e 's/@xstat@/lstat/g' $(srcdir)/xstat.in > $@-t
mv $@-t $@
stat.c: xstat.in
sed -e '/@IGNORE@/d' -e 's/@xstat@/stat/g' $(srcdir)/xstat.in > $@-t
mv $@-t $@

View File

@@ -1,6 +1,6 @@
# Makefile.in generated automatically by automake 1.3 from Makefile.am
# Makefile.in generated automatically by automake 1.4a from Makefile.am
# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,7 +11,7 @@
# PARTICULAR PURPOSE.
SHELL = /bin/sh
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -32,7 +32,7 @@ mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DISTDIR =
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -46,7 +46,7 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
@@ -96,25 +96,18 @@ noinst_LIBRARIES = libfu.a
INCLUDES = -I.. -I$(srcdir) -I../intl
libfu_a_SOURCES = getdate.y posixtm.y getopt.c getopt1.c \
addext.c argmatch.c backupfile.c basename.c \
closeout.c dirname.c exclude.c filemode.c \
full-write.c human.c idcache.c \
isdir.c long-options.c makepath.c modechange.c hash.c path-concat.c \
quotearg.c safe-read.c save-cwd.c savedir.c stripslash.c userspec.c xgetcwd.c \
xmalloc.c xstrdup.c xstrtol.c xstrtoul.c yesno.c
libfu_a_SOURCES = getdate.y posixtm.c getopt.c getopt1.c addext.c argmatch.c backupfile.c basename.c closeout.c dirname.c exclude.c filemode.c full-write.c human.c idcache.c isdir.c long-options.c makepath.c modechange.c hash.c path-concat.c quotearg.c safe-read.c save-cwd.c savedir.c stripslash.c userspec.c xgetcwd.c xmalloc.c xstrdup.c xstrtol.c xstrtoul.c yesno.c
libfu_a_LIBADD = @LIBOBJS@ @ALLOCA@
libfu_a_DEPENDENCIES = $(libfu_a_LIBADD)
noinst_HEADERS = argmatch.h backupfile.h closeout.h \
error.h exclude.h fnmatch.h fsusage.h \
getdate.h getline.h getopt.h group-member.h human.h long-options.h \
makepath.h modechange.h mountlist.h hash.h path-concat.h pathmax.h \
quotearg.h safe-read.h save-cwd.h savedir.h strverscmp.h \
xalloc.h xstrtol.h xstrtoul.h
noinst_HEADERS = argmatch.h backupfile.h closeout.h dirname.h error.h exclude.h filemode.h fnmatch.h fsusage.h getdate.h getline.h getopt.h group-member.h human.h lchown.h long-options.h makepath.h modechange.h mountlist.h hash.h path-concat.h pathmax.h posixtm.h quotearg.h regex.h safe-read.h save-cwd.h savedir.h strverscmp.h xalloc.h xstrtol.h xstrtoul.h
BUILT_SOURCES = getdate.c posixtm.c
BUILT_SOURCES = getdate.c lstat.c stat.c
EXTRA_DIST = xstat.in
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
@@ -134,52 +127,50 @@ hash$U.o path-concat$U.o quotearg$U.o safe-read$U.o save-cwd$U.o \
savedir$U.o stripslash$U.o userspec$U.o xgetcwd$U.o xmalloc$U.o \
xstrdup$U.o xstrtol$U.o xstrtoul$U.o yesno$U.o
AR = ar
YLWRAP = $(srcdir)/ylwrap
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
HEADERS = $(noinst_HEADERS)
DIST_COMMON = Makefile.am Makefile.in TODO alloca.c chown.c error.c \
error.h euidaccess.c fileblocks.c fnmatch.c fsusage.c ftruncate.c \
getdate.c getgroups.c getline.c group-member.c lchown.c lstat.c \
malloc.c memcmp.c memcpy.c memset.c mkdir.c mktime.c mountlist.c \
obstack.c obstack.h posixtm.c realloc.c regex.c regex.h rename.c \
rmdir.c rpmatch.c rx.c rx.h stat.c stpcpy.c strcasecmp.c strdup.c \
strftime.c strndup.c strstr.c strtol.c strtoul.c strverscmp.c ylwrap
obstack.c obstack.h realloc.c regex.c rename.c rmdir.c rpmatch.c stat.c \
stpcpy.c strcasecmp.c strdup.c strftime.c strncasecmp.c strndup.c \
strstr.c strtol.c strtoul.c strverscmp.c utime.c
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP = --best
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/addext.P .deps/alloca.P .deps/argmatch.P \
.deps/backupfile.P .deps/basename.P .deps/chown.P .deps/closeout.P \
.deps/dirname.P .deps/error.P .deps/euidaccess.P .deps/exclude.P \
.deps/fileblocks.P .deps/filemode.P .deps/fnmatch.P .deps/fsusage.P \
.deps/ftruncate.P .deps/full-write.P .deps/getdate .deps/getdate.P \
.deps/getgroups.P .deps/getline.P .deps/getopt.P .deps/getopt1.P \
.deps/group-member.P .deps/hash.P .deps/human.P .deps/idcache.P \
.deps/isdir.P .deps/lchown.P .deps/long-options.P .deps/lstat.P \
.deps/makepath.P .deps/malloc.P .deps/memcmp.P .deps/memcpy.P \
.deps/memset.P .deps/mkdir.P .deps/mktime.P .deps/modechange.P \
.deps/mountlist.P .deps/obstack.P .deps/path-concat.P .deps/posixtm \
.deps/posixtm.P .deps/quotearg.P .deps/realloc.P .deps/regex.P \
.deps/rename.P .deps/rmdir.P .deps/rpmatch.P .deps/rx.P \
.deps/ftruncate.P .deps/full-write.P .deps/getdate.P .deps/getgroups.P \
.deps/getline.P .deps/getopt.P .deps/getopt1.P .deps/group-member.P \
.deps/hash.P .deps/human.P .deps/idcache.P .deps/isdir.P .deps/lchown.P \
.deps/long-options.P .deps/lstat.P .deps/makepath.P .deps/malloc.P \
.deps/memcmp.P .deps/memcpy.P .deps/memset.P .deps/mkdir.P \
.deps/mktime.P .deps/modechange.P .deps/mountlist.P .deps/obstack.P \
.deps/path-concat.P .deps/posixtm.P .deps/quotearg.P .deps/realloc.P \
.deps/regex.P .deps/rename.P .deps/rmdir.P .deps/rpmatch.P \
.deps/safe-read.P .deps/save-cwd.P .deps/savedir.P .deps/stat.P \
.deps/stpcpy.P .deps/strcasecmp.P .deps/strdup.P .deps/strftime.P \
.deps/stripslash.P .deps/strndup.P .deps/strstr.P .deps/strtol.P \
.deps/strtoul.P .deps/strverscmp.P .deps/userspec.P .deps/xgetcwd.P \
.deps/xmalloc.P .deps/xstrdup.P .deps/xstrtol.P .deps/xstrtoul.P \
.deps/yesno.P
.deps/stripslash.P .deps/strncasecmp.P .deps/strndup.P .deps/strstr.P \
.deps/strtol.P .deps/strtoul.P .deps/strverscmp.P .deps/userspec.P \
.deps/utime.P .deps/xgetcwd.P .deps/xmalloc.P .deps/xstrdup.P \
.deps/xstrtol.P .deps/xstrtoul.P .deps/yesno.P
SOURCES = $(libfu_a_SOURCES)
OBJECTS = $(libfu_a_OBJECTS)
all: Makefile $(LIBRARIES) $(HEADERS)
all: all-redirect
.SUFFIXES:
.SUFFIXES: .S .c .o .s .y
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
@@ -212,10 +203,10 @@ distclean-compile:
maintainer-clean-compile:
../src/ansi2knr: ../src/ansi2knr.o
cd ../src && $(MAKE) ansi2knr
cd ../src && $(MAKE) $(AM_MAKEFLAGS) ansi2knr
../src/ansi2knr.o:
cd ../src && $(MAKE) ansi2knr.o
cd ../src && $(MAKE) $(AM_MAKEFLAGS) ansi2knr.o
mostlyclean-kr:
@@ -231,151 +222,148 @@ libfu.a: $(libfu_a_OBJECTS) $(libfu_a_DEPENDENCIES)
-rm -f libfu.a
$(AR) cru libfu.a $(libfu_a_OBJECTS) $(libfu_a_LIBADD)
$(RANLIB) libfu.a
.y.c:
$(SHELL) $(YLWRAP) "$(YACC)" $< y.tab.c $*.c y.tab.h $*.h -- $(YFLAGS)
posixtm.h: posixtm.c
getdate.h: getdate.c
addext_.c: addext.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/addext.c; then echo $(srcdir)/addext.c; else echo addext.c; fi` | $(ANSI2KNR) > addext_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/addext.c; then echo $(srcdir)/addext.c; else echo addext.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > addext_.c
alloca_.c: alloca.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/alloca.c; then echo $(srcdir)/alloca.c; else echo alloca.c; fi` | $(ANSI2KNR) > alloca_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/alloca.c; then echo $(srcdir)/alloca.c; else echo alloca.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > alloca_.c
argmatch_.c: argmatch.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/argmatch.c; then echo $(srcdir)/argmatch.c; else echo argmatch.c; fi` | $(ANSI2KNR) > argmatch_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/argmatch.c; then echo $(srcdir)/argmatch.c; else echo argmatch.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > argmatch_.c
backupfile_.c: backupfile.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/backupfile.c; then echo $(srcdir)/backupfile.c; else echo backupfile.c; fi` | $(ANSI2KNR) > backupfile_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/backupfile.c; then echo $(srcdir)/backupfile.c; else echo backupfile.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > backupfile_.c
basename_.c: basename.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/basename.c; then echo $(srcdir)/basename.c; else echo basename.c; fi` | $(ANSI2KNR) > basename_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/basename.c; then echo $(srcdir)/basename.c; else echo basename.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > basename_.c
chown_.c: chown.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/chown.c; then echo $(srcdir)/chown.c; else echo chown.c; fi` | $(ANSI2KNR) > chown_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/chown.c; then echo $(srcdir)/chown.c; else echo chown.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > chown_.c
closeout_.c: closeout.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/closeout.c; then echo $(srcdir)/closeout.c; else echo closeout.c; fi` | $(ANSI2KNR) > closeout_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/closeout.c; then echo $(srcdir)/closeout.c; else echo closeout.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > closeout_.c
dirname_.c: dirname.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/dirname.c; then echo $(srcdir)/dirname.c; else echo dirname.c; fi` | $(ANSI2KNR) > dirname_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/dirname.c; then echo $(srcdir)/dirname.c; else echo dirname.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > dirname_.c
error_.c: error.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/error.c; then echo $(srcdir)/error.c; else echo error.c; fi` | $(ANSI2KNR) > error_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/error.c; then echo $(srcdir)/error.c; else echo error.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > error_.c
euidaccess_.c: euidaccess.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/euidaccess.c; then echo $(srcdir)/euidaccess.c; else echo euidaccess.c; fi` | $(ANSI2KNR) > euidaccess_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/euidaccess.c; then echo $(srcdir)/euidaccess.c; else echo euidaccess.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > euidaccess_.c
exclude_.c: exclude.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/exclude.c; then echo $(srcdir)/exclude.c; else echo exclude.c; fi` | $(ANSI2KNR) > exclude_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/exclude.c; then echo $(srcdir)/exclude.c; else echo exclude.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > exclude_.c
fileblocks_.c: fileblocks.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/fileblocks.c; then echo $(srcdir)/fileblocks.c; else echo fileblocks.c; fi` | $(ANSI2KNR) > fileblocks_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/fileblocks.c; then echo $(srcdir)/fileblocks.c; else echo fileblocks.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > fileblocks_.c
filemode_.c: filemode.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/filemode.c; then echo $(srcdir)/filemode.c; else echo filemode.c; fi` | $(ANSI2KNR) > filemode_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/filemode.c; then echo $(srcdir)/filemode.c; else echo filemode.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > filemode_.c
fnmatch_.c: fnmatch.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/fnmatch.c; then echo $(srcdir)/fnmatch.c; else echo fnmatch.c; fi` | $(ANSI2KNR) > fnmatch_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/fnmatch.c; then echo $(srcdir)/fnmatch.c; else echo fnmatch.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > fnmatch_.c
fsusage_.c: fsusage.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/fsusage.c; then echo $(srcdir)/fsusage.c; else echo fsusage.c; fi` | $(ANSI2KNR) > fsusage_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/fsusage.c; then echo $(srcdir)/fsusage.c; else echo fsusage.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > fsusage_.c
ftruncate_.c: ftruncate.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/ftruncate.c; then echo $(srcdir)/ftruncate.c; else echo ftruncate.c; fi` | $(ANSI2KNR) > ftruncate_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/ftruncate.c; then echo $(srcdir)/ftruncate.c; else echo ftruncate.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > ftruncate_.c
full-write_.c: full-write.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/full-write.c; then echo $(srcdir)/full-write.c; else echo full-write.c; fi` | $(ANSI2KNR) > full-write_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/full-write.c; then echo $(srcdir)/full-write.c; else echo full-write.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > full-write_.c
getdate_.c: getdate.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/getdate.c; then echo $(srcdir)/getdate.c; else echo getdate.c; fi` | $(ANSI2KNR) > getdate_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getdate.c; then echo $(srcdir)/getdate.c; else echo getdate.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getdate_.c
getgroups_.c: getgroups.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/getgroups.c; then echo $(srcdir)/getgroups.c; else echo getgroups.c; fi` | $(ANSI2KNR) > getgroups_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getgroups.c; then echo $(srcdir)/getgroups.c; else echo getgroups.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getgroups_.c
getline_.c: getline.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/getline.c; then echo $(srcdir)/getline.c; else echo getline.c; fi` | $(ANSI2KNR) > getline_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getline.c; then echo $(srcdir)/getline.c; else echo getline.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getline_.c
getopt_.c: getopt.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/getopt.c; then echo $(srcdir)/getopt.c; else echo getopt.c; fi` | $(ANSI2KNR) > getopt_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt.c; then echo $(srcdir)/getopt.c; else echo getopt.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt_.c
getopt1_.c: getopt1.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/getopt1.c; then echo $(srcdir)/getopt1.c; else echo getopt1.c; fi` | $(ANSI2KNR) > getopt1_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt1.c; then echo $(srcdir)/getopt1.c; else echo getopt1.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt1_.c
group-member_.c: group-member.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/group-member.c; then echo $(srcdir)/group-member.c; else echo group-member.c; fi` | $(ANSI2KNR) > group-member_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/group-member.c; then echo $(srcdir)/group-member.c; else echo group-member.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > group-member_.c
hash_.c: hash.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/hash.c; then echo $(srcdir)/hash.c; else echo hash.c; fi` | $(ANSI2KNR) > hash_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/hash.c; then echo $(srcdir)/hash.c; else echo hash.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > hash_.c
human_.c: human.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/human.c; then echo $(srcdir)/human.c; else echo human.c; fi` | $(ANSI2KNR) > human_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/human.c; then echo $(srcdir)/human.c; else echo human.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > human_.c
idcache_.c: idcache.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/idcache.c; then echo $(srcdir)/idcache.c; else echo idcache.c; fi` | $(ANSI2KNR) > idcache_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/idcache.c; then echo $(srcdir)/idcache.c; else echo idcache.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > idcache_.c
isdir_.c: isdir.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/isdir.c; then echo $(srcdir)/isdir.c; else echo isdir.c; fi` | $(ANSI2KNR) > isdir_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/isdir.c; then echo $(srcdir)/isdir.c; else echo isdir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > isdir_.c
lchown_.c: lchown.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/lchown.c; then echo $(srcdir)/lchown.c; else echo lchown.c; fi` | $(ANSI2KNR) > lchown_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lchown.c; then echo $(srcdir)/lchown.c; else echo lchown.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > lchown_.c
long-options_.c: long-options.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/long-options.c; then echo $(srcdir)/long-options.c; else echo long-options.c; fi` | $(ANSI2KNR) > long-options_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/long-options.c; then echo $(srcdir)/long-options.c; else echo long-options.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > long-options_.c
lstat_.c: lstat.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/lstat.c; then echo $(srcdir)/lstat.c; else echo lstat.c; fi` | $(ANSI2KNR) > lstat_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lstat.c; then echo $(srcdir)/lstat.c; else echo lstat.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > lstat_.c
makepath_.c: makepath.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/makepath.c; then echo $(srcdir)/makepath.c; else echo makepath.c; fi` | $(ANSI2KNR) > makepath_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/makepath.c; then echo $(srcdir)/makepath.c; else echo makepath.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > makepath_.c
malloc_.c: malloc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/malloc.c; then echo $(srcdir)/malloc.c; else echo malloc.c; fi` | $(ANSI2KNR) > malloc_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/malloc.c; then echo $(srcdir)/malloc.c; else echo malloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > malloc_.c
memcmp_.c: memcmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/memcmp.c; then echo $(srcdir)/memcmp.c; else echo memcmp.c; fi` | $(ANSI2KNR) > memcmp_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memcmp.c; then echo $(srcdir)/memcmp.c; else echo memcmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memcmp_.c
memcpy_.c: memcpy.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/memcpy.c; then echo $(srcdir)/memcpy.c; else echo memcpy.c; fi` | $(ANSI2KNR) > memcpy_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memcpy.c; then echo $(srcdir)/memcpy.c; else echo memcpy.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memcpy_.c
memset_.c: memset.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/memset.c; then echo $(srcdir)/memset.c; else echo memset.c; fi` | $(ANSI2KNR) > memset_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memset.c; then echo $(srcdir)/memset.c; else echo memset.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memset_.c
mkdir_.c: mkdir.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/mkdir.c; then echo $(srcdir)/mkdir.c; else echo mkdir.c; fi` | $(ANSI2KNR) > mkdir_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/mkdir.c; then echo $(srcdir)/mkdir.c; else echo mkdir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > mkdir_.c
mktime_.c: mktime.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/mktime.c; then echo $(srcdir)/mktime.c; else echo mktime.c; fi` | $(ANSI2KNR) > mktime_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/mktime.c; then echo $(srcdir)/mktime.c; else echo mktime.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > mktime_.c
modechange_.c: modechange.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/modechange.c; then echo $(srcdir)/modechange.c; else echo modechange.c; fi` | $(ANSI2KNR) > modechange_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/modechange.c; then echo $(srcdir)/modechange.c; else echo modechange.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > modechange_.c
mountlist_.c: mountlist.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/mountlist.c; then echo $(srcdir)/mountlist.c; else echo mountlist.c; fi` | $(ANSI2KNR) > mountlist_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/mountlist.c; then echo $(srcdir)/mountlist.c; else echo mountlist.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > mountlist_.c
obstack_.c: obstack.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/obstack.c; then echo $(srcdir)/obstack.c; else echo obstack.c; fi` | $(ANSI2KNR) > obstack_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/obstack.c; then echo $(srcdir)/obstack.c; else echo obstack.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > obstack_.c
path-concat_.c: path-concat.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/path-concat.c; then echo $(srcdir)/path-concat.c; else echo path-concat.c; fi` | $(ANSI2KNR) > path-concat_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/path-concat.c; then echo $(srcdir)/path-concat.c; else echo path-concat.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > path-concat_.c
posixtm_.c: posixtm.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/posixtm.c; then echo $(srcdir)/posixtm.c; else echo posixtm.c; fi` | $(ANSI2KNR) > posixtm_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/posixtm.c; then echo $(srcdir)/posixtm.c; else echo posixtm.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > posixtm_.c
quotearg_.c: quotearg.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/quotearg.c; then echo $(srcdir)/quotearg.c; else echo quotearg.c; fi` | $(ANSI2KNR) > quotearg_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/quotearg.c; then echo $(srcdir)/quotearg.c; else echo quotearg.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > quotearg_.c
realloc_.c: realloc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/realloc.c; then echo $(srcdir)/realloc.c; else echo realloc.c; fi` | $(ANSI2KNR) > realloc_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/realloc.c; then echo $(srcdir)/realloc.c; else echo realloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > realloc_.c
regex_.c: regex.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/regex.c; then echo $(srcdir)/regex.c; else echo regex.c; fi` | $(ANSI2KNR) > regex_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/regex.c; then echo $(srcdir)/regex.c; else echo regex.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > regex_.c
rename_.c: rename.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/rename.c; then echo $(srcdir)/rename.c; else echo rename.c; fi` | $(ANSI2KNR) > rename_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/rename.c; then echo $(srcdir)/rename.c; else echo rename.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > rename_.c
rmdir_.c: rmdir.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/rmdir.c; then echo $(srcdir)/rmdir.c; else echo rmdir.c; fi` | $(ANSI2KNR) > rmdir_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/rmdir.c; then echo $(srcdir)/rmdir.c; else echo rmdir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > rmdir_.c
rpmatch_.c: rpmatch.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/rpmatch.c; then echo $(srcdir)/rpmatch.c; else echo rpmatch.c; fi` | $(ANSI2KNR) > rpmatch_.c
rx_.c: rx.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/rx.c; then echo $(srcdir)/rx.c; else echo rx.c; fi` | $(ANSI2KNR) > rx_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/rpmatch.c; then echo $(srcdir)/rpmatch.c; else echo rpmatch.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > rpmatch_.c
safe-read_.c: safe-read.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/safe-read.c; then echo $(srcdir)/safe-read.c; else echo safe-read.c; fi` | $(ANSI2KNR) > safe-read_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/safe-read.c; then echo $(srcdir)/safe-read.c; else echo safe-read.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > safe-read_.c
save-cwd_.c: save-cwd.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/save-cwd.c; then echo $(srcdir)/save-cwd.c; else echo save-cwd.c; fi` | $(ANSI2KNR) > save-cwd_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/save-cwd.c; then echo $(srcdir)/save-cwd.c; else echo save-cwd.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > save-cwd_.c
savedir_.c: savedir.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/savedir.c; then echo $(srcdir)/savedir.c; else echo savedir.c; fi` | $(ANSI2KNR) > savedir_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/savedir.c; then echo $(srcdir)/savedir.c; else echo savedir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > savedir_.c
stat_.c: stat.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/stat.c; then echo $(srcdir)/stat.c; else echo stat.c; fi` | $(ANSI2KNR) > stat_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stat.c; then echo $(srcdir)/stat.c; else echo stat.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stat_.c
stpcpy_.c: stpcpy.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/stpcpy.c; then echo $(srcdir)/stpcpy.c; else echo stpcpy.c; fi` | $(ANSI2KNR) > stpcpy_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stpcpy.c; then echo $(srcdir)/stpcpy.c; else echo stpcpy.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stpcpy_.c
strcasecmp_.c: strcasecmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/strcasecmp.c; then echo $(srcdir)/strcasecmp.c; else echo strcasecmp.c; fi` | $(ANSI2KNR) > strcasecmp_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strcasecmp.c; then echo $(srcdir)/strcasecmp.c; else echo strcasecmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strcasecmp_.c
strdup_.c: strdup.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/strdup.c; then echo $(srcdir)/strdup.c; else echo strdup.c; fi` | $(ANSI2KNR) > strdup_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strdup.c; then echo $(srcdir)/strdup.c; else echo strdup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strdup_.c
strftime_.c: strftime.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/strftime.c; then echo $(srcdir)/strftime.c; else echo strftime.c; fi` | $(ANSI2KNR) > strftime_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strftime.c; then echo $(srcdir)/strftime.c; else echo strftime.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strftime_.c
stripslash_.c: stripslash.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/stripslash.c; then echo $(srcdir)/stripslash.c; else echo stripslash.c; fi` | $(ANSI2KNR) > stripslash_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stripslash.c; then echo $(srcdir)/stripslash.c; else echo stripslash.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stripslash_.c
strncasecmp_.c: strncasecmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strncasecmp.c; then echo $(srcdir)/strncasecmp.c; else echo strncasecmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strncasecmp_.c
strndup_.c: strndup.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/strndup.c; then echo $(srcdir)/strndup.c; else echo strndup.c; fi` | $(ANSI2KNR) > strndup_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strndup.c; then echo $(srcdir)/strndup.c; else echo strndup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strndup_.c
strstr_.c: strstr.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/strstr.c; then echo $(srcdir)/strstr.c; else echo strstr.c; fi` | $(ANSI2KNR) > strstr_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strstr.c; then echo $(srcdir)/strstr.c; else echo strstr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strstr_.c
strtol_.c: strtol.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/strtol.c; then echo $(srcdir)/strtol.c; else echo strtol.c; fi` | $(ANSI2KNR) > strtol_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strtol.c; then echo $(srcdir)/strtol.c; else echo strtol.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtol_.c
strtoul_.c: strtoul.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/strtoul.c; then echo $(srcdir)/strtoul.c; else echo strtoul.c; fi` | $(ANSI2KNR) > strtoul_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strtoul.c; then echo $(srcdir)/strtoul.c; else echo strtoul.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtoul_.c
strverscmp_.c: strverscmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/strverscmp.c; then echo $(srcdir)/strverscmp.c; else echo strverscmp.c; fi` | $(ANSI2KNR) > strverscmp_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strverscmp.c; then echo $(srcdir)/strverscmp.c; else echo strverscmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strverscmp_.c
userspec_.c: userspec.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/userspec.c; then echo $(srcdir)/userspec.c; else echo userspec.c; fi` | $(ANSI2KNR) > userspec_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/userspec.c; then echo $(srcdir)/userspec.c; else echo userspec.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > userspec_.c
utime_.c: utime.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/utime.c; then echo $(srcdir)/utime.c; else echo utime.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > utime_.c
xgetcwd_.c: xgetcwd.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/xgetcwd.c; then echo $(srcdir)/xgetcwd.c; else echo xgetcwd.c; fi` | $(ANSI2KNR) > xgetcwd_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xgetcwd.c; then echo $(srcdir)/xgetcwd.c; else echo xgetcwd.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xgetcwd_.c
xmalloc_.c: xmalloc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/xmalloc.c; then echo $(srcdir)/xmalloc.c; else echo xmalloc.c; fi` | $(ANSI2KNR) > xmalloc_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xmalloc.c; then echo $(srcdir)/xmalloc.c; else echo xmalloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xmalloc_.c
xstrdup_.c: xstrdup.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/xstrdup.c; then echo $(srcdir)/xstrdup.c; else echo xstrdup.c; fi` | $(ANSI2KNR) > xstrdup_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrdup.c; then echo $(srcdir)/xstrdup.c; else echo xstrdup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrdup_.c
xstrtol_.c: xstrtol.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/xstrtol.c; then echo $(srcdir)/xstrtol.c; else echo xstrtol.c; fi` | $(ANSI2KNR) > xstrtol_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrtol.c; then echo $(srcdir)/xstrtol.c; else echo xstrtol.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrtol_.c
xstrtoul_.c: xstrtoul.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/xstrtoul.c; then echo $(srcdir)/xstrtoul.c; else echo xstrtoul.c; fi` | $(ANSI2KNR) > xstrtoul_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrtoul.c; then echo $(srcdir)/xstrtoul.c; else echo xstrtoul.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrtoul_.c
yesno_.c: yesno.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) `if test -f $(srcdir)/yesno.c; then echo $(srcdir)/yesno.c; else echo yesno.c; fi` | $(ANSI2KNR) > yesno_.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/yesno.c; then echo $(srcdir)/yesno.c; else echo yesno.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > yesno_.c
addext_.o alloca_.o argmatch_.o backupfile_.o basename_.o chown_.o \
closeout_.o dirname_.o error_.o euidaccess_.o exclude_.o fileblocks_.o \
filemode_.o fnmatch_.o fsusage_.o ftruncate_.o full-write_.o getdate_.o \
@@ -383,17 +371,28 @@ getgroups_.o getline_.o getopt_.o getopt1_.o group-member_.o hash_.o \
human_.o idcache_.o isdir_.o lchown_.o long-options_.o lstat_.o \
makepath_.o malloc_.o memcmp_.o memcpy_.o memset_.o mkdir_.o mktime_.o \
modechange_.o mountlist_.o obstack_.o path-concat_.o posixtm_.o \
quotearg_.o realloc_.o regex_.o rename_.o rmdir_.o rpmatch_.o rx_.o \
quotearg_.o realloc_.o regex_.o rename_.o rmdir_.o rpmatch_.o \
safe-read_.o save-cwd_.o savedir_.o stat_.o stpcpy_.o strcasecmp_.o \
strdup_.o strftime_.o stripslash_.o strndup_.o strstr_.o strtol_.o \
strtoul_.o strverscmp_.o userspec_.o xgetcwd_.o xmalloc_.o xstrdup_.o \
xstrtol_.o xstrtoul_.o yesno_.o : $(ANSI2KNR)
strdup_.o strftime_.o stripslash_.o strncasecmp_.o strndup_.o strstr_.o \
strtol_.o strtoul_.o strverscmp_.o userspec_.o utime_.o xgetcwd_.o \
xmalloc_.o xstrdup_.o xstrtol_.o xstrtoul_.o yesno_.o : $(ANSI2KNR)
.y.c:
$(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*.c
if test -f y.tab.h; then \
if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \
else :; fi
getdate.h: getdate.c
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP)
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
@@ -426,9 +425,13 @@ distdir: $(DISTFILES)
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnits lib/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
if test -d $$d/$$file; then \
cp -pr $$/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
@@ -440,84 +443,110 @@ mostlyclean-depend:
clean-depend:
distclean-depend:
-rm -rf .deps
maintainer-clean-depend:
-rm -rf .deps
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).P -c $<
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $<
@-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \
< .deps/$(*F).p > .deps/$(*F).P
@-rm -f .deps/$(*F).p
info:
dvi:
check: all
$(MAKE)
installcheck:
install-exec:
@$(NORMAL_INSTALL)
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
install-data:
@$(NORMAL_INSTALL)
install: install-exec install-data all
@:
uninstall:
install-data-am:
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am:
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(HEADERS)
all-redirect: all-am
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(DISTCLEANFILES)
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \
-test -z "getdatehgetdatec$(BUILT_SOURCES)" || rm -f getdateh getdatec $(BUILT_SOURCES)
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
mostlyclean-kr mostlyclean-tags mostlyclean-depend \
mostlyclean-generic
clean: clean-noinstLIBRARIES clean-compile clean-kr clean-tags \
clean-depend clean-generic mostlyclean
mostlyclean: mostlyclean-am
distclean: distclean-noinstLIBRARIES distclean-compile distclean-kr \
distclean-tags distclean-depend distclean-generic clean
-rm -f config.status
clean-am: clean-noinstLIBRARIES clean-compile clean-kr clean-tags \
clean-depend clean-generic mostlyclean-am
maintainer-clean: maintainer-clean-noinstLIBRARIES \
clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile distclean-kr \
distclean-tags distclean-depend distclean-generic \
clean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
maintainer-clean-compile maintainer-clean-kr \
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-kr distclean-kr clean-kr \
maintainer-clean-kr tags mostlyclean-tags distclean-tags clean-tags \
maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
clean-depend maintainer-clean-depend info dvi installcheck install-exec \
install-data install uninstall all installdirs mostlyclean-generic \
clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
check-am installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
lstat.c: xstat.in
sed -e '/@IGNORE@/d' -e 's/@xstat@/lstat/g' $(srcdir)/xstat.in > $@-t
mv $@-t $@
stat.c: xstat.in
sed -e '/@IGNORE@/d' -e 's/@xstat@/stat/g' $(srcdir)/xstat.in > $@-t
mv $@-t $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.

View File

@@ -1,5 +1,5 @@
/* addext.c -- add an extension to a file name
Copyright (C) 1990, 1997 Free Software Foundation, Inc.
Copyright (C) 1990, 1997, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,10 +23,10 @@
#endif
#ifndef HAVE_DOS_FILE_NAMES
#define HAVE_DOS_FILE_NAMES 0
# define HAVE_DOS_FILE_NAMES 0
#endif
#ifndef HAVE_LONG_FILE_NAMES
#define HAVE_LONG_FILE_NAMES 0
# define HAVE_LONG_FILE_NAMES 0
#endif
#include <backupfile.h>
@@ -35,7 +35,7 @@
# include <limits.h>
#endif
#ifndef _POSIX_NAME_MAX
#define _POSIX_NAME_MAX 14
# define _POSIX_NAME_MAX 14
#endif
#include <sys/types.h>
@@ -49,14 +49,13 @@
# include <unistd.h>
#endif
char *base_name PARAMS ((char const *));
/* Append to FILENAME the extension EXT, unless the result would be too long,
in which case just append the character E. */
void
addext (filename, ext, e)
char *filename;
char const *ext;
int e;
addext (char *filename, char const *ext, int e)
{
char *s = base_name (filename);
size_t slen = strlen (s), extlen = strlen (ext);

View File

@@ -161,8 +161,7 @@ static header *last_alloca_header = NULL; /* -> last alloca header. */
implementations of C, for example under Gould's UTX/32. */
pointer
alloca (size)
unsigned size;
alloca (unsigned size)
{
auto char probe; /* Probes stack depth: */
register char *depth = ADDRESS_FUNCTION (probe);

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
/* backupfile.c -- make Emacs style backup file names
Copyright (C) 1990-1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1990-1997, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -64,6 +64,12 @@
char *malloc ();
#endif
#ifndef HAVE_DECL_GETENV
char *getenv ();
#endif
char *base_name PARAMS ((char const *));
#if HAVE_DIRENT_H || HAVE_NDIR_H || HAVE_SYS_DIR_H || HAVE_SYS_NDIR_H
# define HAVE_DIR 1
#else
@@ -214,29 +220,49 @@ version_number (const char *base, const char *backup, size_t base_length)
static const char * const backup_args[] =
{
"never", "simple", "nil", "existing", "t", "numbered", 0
/* In a series of synonyms, present the most meaning full first, so
that argmatch_valid be more readable. */
"none", "off",
"simple", "never",
"existing", "nil",
"numbered", "t",
0
};
static const enum backup_type backup_types[] =
{
simple, simple, numbered_existing, numbered_existing, numbered, numbered
none, none,
simple, simple,
numbered_existing, numbered_existing,
numbered, numbered
};
/* Return the type of backup indicated by VERSION.
Unique abbreviations are accepted. */
/* Return the type of backup specified by VERSION.
If VERSION is NULL or the empty string, return numbered_existing.
If VERSION is invalid or ambiguous, fail with a diagnostic appropriate
for the specified CONTEXT. Unambiguous abbreviations are accepted. */
enum backup_type
get_version (const char *version)
get_version (const char *context, const char *version)
{
int i;
if (version == 0 || *version == 0)
return numbered_existing;
i = argmatch (version, backup_args);
if (i < 0)
{
invalid_arg ("version control type", version, i);
exit (2);
}
return backup_types[i];
else
return XARGMATCH (context, version, backup_args, backup_types);
}
/* Return the type of backup specified by VERSION.
If VERSION is NULL, use the value of the envvar VERSION_CONTROL.
If the specified string is invalid or ambiguous, fail with a diagnostic
appropriate for the specified CONTEXT.
Unambiguous abbreviations are accepted. */
enum backup_type
xget_version (const char *context, const char *version)
{
if (version && *version)
return get_version (context, version);
else
return get_version ("$VERSION_CONTROL", getenv ("VERSION_CONTROL"));
}

View File

@@ -1,5 +1,5 @@
/* backupfile.h -- declarations for making Emacs style backup file names
Copyright (C) 1990, 1991, 1992, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1990-1992, 1997-1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -16,6 +16,9 @@
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef BACKUPFILE_H_
# define BACKUPFILE_H_
/* When to make backup files. */
enum backup_type
{
@@ -33,7 +36,7 @@ enum backup_type
numbered
};
#define VALID_BACKUP_TYPE(Type) \
# define VALID_BACKUP_TYPE(Type) \
((Type) == none \
|| (Type) == simple \
|| (Type) == numbered_existing \
@@ -41,15 +44,17 @@ enum backup_type
extern char const *simple_backup_suffix;
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
#endif
char *base_name PARAMS ((char const *));
char *find_backup_file_name PARAMS ((char const *, enum backup_type));
enum backup_type get_version PARAMS ((char const *));
enum backup_type get_version PARAMS ((char const *context, char const *arg));
enum backup_type xget_version PARAMS ((char const *context, char const *arg));
void addext PARAMS ((char *, char const *, int));
#endif /* ! BACKUPFILE_H_ */

63
lib/bumpalloc.h Normal file
View File

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

View File

@@ -1,6 +1,6 @@
/* Host name canonicalization
Copyright (C) 1995 Free Software Foundation, Inc.
Copyright (C) 1995, 1999 Free Software Foundation, Inc.
Written by Miles Bader <miles@gnu.ai.mit.edu>
@@ -46,8 +46,7 @@
/* Returns the canonical hostname associated with HOST (allocated in a static
buffer), or 0 if it can't be determined. */
char *
canon_host (host)
char *host;
canon_host (const char *host)
{
#ifdef HAVE_GETHOSTBYNAME
struct hostent *he = gethostbyname (host);
@@ -79,3 +78,17 @@ canon_host (host)
#endif /* HAVE_GETHOSTBYNAME */
return 0;
}
#ifdef TEST_CANON_HOST
int
main (int argc, char **argv)
{
int i;
for (i = 1; i < argc; i++)
{
char *s = canon_host (argv[i]);
printf ("%s: %s\n", argv[i], (s ? s : "<undef>"));
}
exit (0);
}
#endif /* TEST_CANON_HOST */

View File

@@ -34,10 +34,7 @@
/* FIXME: describe. */
int
rpl_chown (file, uid, gid)
const char *file;
uid_t uid;
gid_t gid;
rpl_chown (const char *file, uid_t uid, gid_t gid)
{
if (gid == (gid_t) -1 || uid == (uid_t) -1)
{

View File

@@ -1,5 +1,5 @@
/* closeout.c - close standard output
Copyright (C) 1998 Free Software Foundation, Inc.
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -42,7 +42,23 @@ extern int errno;
#include "closeout.h"
#include "error.h"
/* Close standard output, exiting with status STATUS on failure. */
/* Close standard output, exiting with status STATUS on failure.
If a program writes *anything* to stdout, that program should close
stdout and make sure that the close succeeds. Otherwise, suppose that
you go to the extreme of checking the return status of every function
that does an explicit write to stdout. The last printf can succeed in
writing to the internal stream buffer, and yet the fclose(stdout) could
still fail (due e.g., to a disk full error) when it tries to write
out that buffered data. Thus, you would be left with an incomplete
output file and the offending program would exit successfully.
Besides, it's wasteful to check the return value from every call
that writes to stdout -- just let the internal stream state record
the failure. That's what the ferror test is checking below.
It's important to detect such failures and exit nonzero because many
tools (most notably `make' and other build-management systems) depend
on being able to detect failure in other tools via their exit status. */
void
close_stdout_status (int status)
{

148
lib/diacrit.c Normal file
View File

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

16
lib/diacrit.h Normal file
View File

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

View File

@@ -33,14 +33,15 @@ char *malloc ();
# endif
#endif
#include "dirname.h"
/* Return the leading directories part of PATH,
allocated with malloc. If out of memory, return 0.
Assumes that trailing slashes have already been
removed. */
char *
dirname (path)
char *path;
dir_name (const char *path)
{
char *newpath;
char *slash;

31
lib/dirname.h Normal file
View File

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

View File

@@ -152,7 +152,10 @@ error (status, errnum, message, va_alist)
{
#if defined HAVE_STRERROR_R || defined _LIBC
char errbuf[1024];
fprintf (stderr, ": %s", __strerror_r (errnum, errbuf, sizeof errbuf));
/* Don't use __strerror_r's return value because on some systems
(at least DEC UNIX 4.0[A-D]) strerror_r returns `int'. */
__strerror_r (errnum, errbuf, sizeof errbuf);
fprintf (stderr, ": %s", errbuf);
#else
fprintf (stderr, ": %s", strerror (errnum));
#endif

View File

@@ -1,5 +1,5 @@
/* euidaccess -- check if effective user id can access file
Copyright (C) 1990, 1991, 1995 Free Software Foundation, Inc.
Copyright (C) 1990, 1991, 1995, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -127,9 +127,7 @@ int group_member ();
filesystem, text busy, etc. */
int
euidaccess (path, mode)
const char *path;
int mode;
euidaccess (const char *path, int mode)
{
struct stat stats;
int granted;

View File

@@ -50,8 +50,7 @@ typedef long daddr_t; /* for disk address */
/* Return the number of 512-byte blocks in a file of SIZE bytes. */
off_t
st_blocks (size)
off_t size;
st_blocks (off_t size)
{
off_t datablks = size / 512 + (size % 512 != 0);
off_t indrblks = 0;

View File

@@ -1,5 +1,5 @@
/* filemode.c -- make a string describing file modes
Copyright (C) 1985, 1990, 1993, 1998 Free Software Foundation, Inc.
Copyright (C) 1985, 1990, 1993, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -22,6 +22,8 @@
#include <sys/types.h>
#include <sys/stat.h>
#include "filemode.h"
#if !S_IRUSR
# if S_IREAD
# define S_IRUSR S_IREAD
@@ -87,11 +89,141 @@
#if !defined(S_ISNWK) && defined(S_IFNWK) /* HP/UX */
# define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK)
#endif
#if !defined(S_ISDOOR) && defined(S_IFDOOR) /* Solaris 2.5 and up */
# define S_ISDOOR(m) (((m) & S_IFMT) == S_IFDOOR)
#endif
void mode_string ();
static char ftypelet ();
static void rwx ();
static void setst ();
/* Look at read, write, and execute bits in BITS and set
flags in CHARS accordingly. */
static void
rwx (short unsigned int bits, char *chars)
{
chars[0] = (bits & S_IRUSR) ? 'r' : '-';
chars[1] = (bits & S_IWUSR) ? 'w' : '-';
chars[2] = (bits & S_IXUSR) ? 'x' : '-';
}
/* Set the 's' and 't' flags in file attributes string CHARS,
according to the file mode BITS. */
static void
setst (short unsigned int bits, char *chars)
{
#ifdef S_ISUID
if (bits & S_ISUID)
{
if (chars[3] != 'x')
/* Set-uid, but not executable by owner. */
chars[3] = 'S';
else
chars[3] = 's';
}
#endif
#ifdef S_ISGID
if (bits & S_ISGID)
{
if (chars[6] != 'x')
/* Set-gid, but not executable by group. */
chars[6] = 'S';
else
chars[6] = 's';
}
#endif
#ifdef S_ISVTX
if (bits & S_ISVTX)
{
if (chars[9] != 'x')
/* Sticky, but not executable by others. */
chars[9] = 'T';
else
chars[9] = 't';
}
#endif
}
/* Return a character indicating the type of file described by
file mode BITS:
'd' for directories
'D' for doors
'b' for block special files
'c' for character special files
'm' for multiplexor files
'M' for an off-line (regular) file
'l' for symbolic links
's' for sockets
'p' for fifos
'-' for regular files
'?' for any other file type. */
static char
ftypelet (long int bits)
{
#ifdef S_ISBLK
if (S_ISBLK (bits))
return 'b';
#endif
if (S_ISCHR (bits))
return 'c';
if (S_ISDIR (bits))
return 'd';
if (S_ISREG (bits))
return '-';
#ifdef S_ISFIFO
if (S_ISFIFO (bits))
return 'p';
#endif
#ifdef S_ISLNK
if (S_ISLNK (bits))
return 'l';
#endif
#ifdef S_ISSOCK
if (S_ISSOCK (bits))
return 's';
#endif
#ifdef S_ISMPC
if (S_ISMPC (bits))
return 'm';
#endif
#ifdef S_ISNWK
if (S_ISNWK (bits))
return 'n';
#endif
#ifdef S_ISDOOR
if (S_ISDOOR (bits))
return 'D';
#endif
/* The following two tests are for Cray DMF (Data Migration
Facility), which is a HSM file system. A migrated file has a
`st_dm_mode' that is different from the normal `st_mode', so any
tests for migrated files should use the former. */
#ifdef S_ISOFD
if (S_ISOFD (bits))
/* off line, with data */
return 'M';
#endif
#ifdef S_ISOFL
/* off line, with no data */
if (S_ISOFL (bits))
return 'M';
#endif
return '?';
}
/* Like filemodestring, but only the relevant part of the `struct stat'
is given as an argument. */
void
mode_string (short unsigned int mode, char *str)
{
str[0] = ftypelet ((long) mode);
rwx ((mode & 0700) << 0, &str[1]);
rwx ((mode & 0070) << 3, &str[4]);
rwx ((mode & 0007) << 6, &str[7]);
setst (mode, str);
}
/* filemodestring - fill in string STR with an ls-style ASCII
representation of the st_mode field of file stats block STATP.
@@ -130,137 +262,7 @@ static void setst ();
'T' if the file is sticky but not executable. */
void
filemodestring (statp, str)
struct stat *statp;
char *str;
filemodestring (struct stat *statp, char *str)
{
mode_string (statp->st_mode, str);
}
/* Like filemodestring, but only the relevant part of the `struct stat'
is given as an argument. */
void
mode_string (mode, str)
unsigned short mode;
char *str;
{
str[0] = ftypelet ((long) mode);
rwx ((mode & 0700) << 0, &str[1]);
rwx ((mode & 0070) << 3, &str[4]);
rwx ((mode & 0007) << 6, &str[7]);
setst (mode, str);
}
/* Return a character indicating the type of file described by
file mode BITS:
'd' for directories
'b' for block special files
'c' for character special files
'm' for multiplexor files
'l' for symbolic links
's' for sockets
'p' for fifos
'-' for regular files
'?' for any other file type. */
static char
ftypelet (bits)
long bits;
{
#ifdef S_ISBLK
if (S_ISBLK (bits))
return 'b';
#endif
if (S_ISCHR (bits))
return 'c';
if (S_ISDIR (bits))
return 'd';
if (S_ISREG (bits))
return '-';
#ifdef S_ISFIFO
if (S_ISFIFO (bits))
return 'p';
#endif
#ifdef S_ISLNK
if (S_ISLNK (bits))
return 'l';
#endif
#ifdef S_ISSOCK
if (S_ISSOCK (bits))
return 's';
#endif
#ifdef S_ISMPC
if (S_ISMPC (bits))
return 'm';
#endif
#ifdef S_ISNWK
if (S_ISNWK (bits))
return 'n';
#endif
#ifdef S_ISOFD
/* Cray migrated dmf file. */
if (S_ISOFD (bits))
return 'M';
#endif
#ifdef S_ISOFL
/* Cray migrated dmf file. */
if (S_ISOFL (bits))
return 'M';
#endif
return '?';
}
/* Look at read, write, and execute bits in BITS and set
flags in CHARS accordingly. */
static void
rwx (bits, chars)
unsigned short bits;
char *chars;
{
chars[0] = (bits & S_IRUSR) ? 'r' : '-';
chars[1] = (bits & S_IWUSR) ? 'w' : '-';
chars[2] = (bits & S_IXUSR) ? 'x' : '-';
}
/* Set the 's' and 't' flags in file attributes string CHARS,
according to the file mode BITS. */
static void
setst (bits, chars)
unsigned short bits;
char *chars;
{
#ifdef S_ISUID
if (bits & S_ISUID)
{
if (chars[3] != 'x')
/* Set-uid, but not executable by owner. */
chars[3] = 'S';
else
chars[3] = 's';
}
#endif
#ifdef S_ISGID
if (bits & S_ISGID)
{
if (chars[6] != 'x')
/* Set-gid, but not executable by group. */
chars[6] = 'S';
else
chars[6] = 's';
}
#endif
#ifdef S_ISVTX
if (bits & S_ISVTX)
{
if (chars[9] != 'x')
/* Sticky, but not executable by others. */
chars[9] = 'T';
else
chars[9] = 't';
}
#endif
}

9
lib/filemode.h Normal file
View File

@@ -0,0 +1,9 @@
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
void mode_string PARAMS ((short unsigned int mode, char *str));

View File

@@ -55,10 +55,7 @@ extern int errno;
/* Match STRING against the filename pattern PATTERN, returning zero if
it matches, nonzero if not. */
int
fnmatch (pattern, string, flags)
const char *pattern;
const char *string;
int flags;
fnmatch (const char *pattern, const char *string, int flags)
{
register const char *p = pattern, *n = string;
register char c;

View File

@@ -101,10 +101,7 @@ int safe_read ();
ERRNO is either a system error value, or zero if DISK is NULL
on a system that requires a non-NULL value. */
int
get_fs_usage (path, disk, fsp)
const char *path;
const char *disk;
struct fs_usage *fsp;
get_fs_usage (const char *path, const char *disk, struct fs_usage *fsp)
{
#ifdef STAT_STATFS3_OSF1
@@ -262,9 +259,7 @@ get_fs_usage (path, disk, fsp)
/* AIX PS/2 does not supply statfs. */
int
statfs (path, fsb)
char *path;
struct statfs *fsb;
statfs (char *path, struct statfs *fsb)
{
struct stat stats;
struct dustat fsd;

View File

@@ -11,9 +11,7 @@
#ifdef F_CHSIZE
int
ftruncate (fd, length)
int fd;
off_t length;
ftruncate (int fd, off_t length)
{
return fcntl (fd, F_CHSIZE, length);
}
@@ -30,9 +28,7 @@ ftruncate (fd, length)
# endif
int
ftruncate (fd, length)
int fd;
off_t length;
ftruncate (int fd, off_t length)
{
struct flock fl;
struct stat filebuf;
@@ -75,9 +71,7 @@ ftruncate (fd, length)
# if HAVE_CHSIZE
int
ftruncate (fd, length)
int fd;
off_t length;
ftruncate (int fd, off_t length)
{
return chsize (fd, length);
}
@@ -90,9 +84,7 @@ extern int errno;
# endif
int
ftruncate (fd, length)
int fd;
off_t length;
ftruncate (int fd, off_t length)
{
errno = EIO;
return -1;

View File

@@ -53,6 +53,14 @@
# include <string.h>
#endif
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
# define __attribute__(x)
#endif
#ifndef ATTRIBUTE_UNUSED
# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
#endif
/* Some old versions of bison generate parsers that use bcopy.
That loses on systems that don't provide the function, so we have
to redefine it here. */
@@ -471,7 +479,7 @@ static TABLE const MonthDayTable[] = {
{ "thurs", tDAY, 4 },
{ "friday", tDAY, 5 },
{ "saturday", tDAY, 6 },
{ NULL }
{ NULL, 0, 0 }
};
/* Time units table. */
@@ -486,7 +494,7 @@ static TABLE const UnitsTable[] = {
{ "min", tMINUTE_UNIT, 1 },
{ "second", tSEC_UNIT, 1 },
{ "sec", tSEC_UNIT, 1 },
{ NULL }
{ NULL, 0, 0 }
};
/* Assorted relative-time words. */
@@ -511,7 +519,7 @@ static TABLE const OtherTable[] = {
{ "eleventh", tUNUMBER, 11 },
{ "twelfth", tUNUMBER, 12 },
{ "ago", tAGO, 1 },
{ NULL }
{ NULL, 0, 0 }
};
/* The timezone table. */
@@ -596,7 +604,7 @@ static TABLE const TimezoneTable[] = {
{ "nzst", tZONE, -HOUR (12) }, /* New Zealand Standard */
{ "nzdt", tDAYZONE, -HOUR (12) }, /* New Zealand Daylight */
{ "idle", tZONE, -HOUR (12) }, /* International Date Line East */
{ NULL }
{ NULL, 0, 0 }
};
/* Military timezone table. */
@@ -626,7 +634,7 @@ static TABLE const MilitaryTable[] = {
{ "x", tZONE, HOUR (-11) },
{ "y", tZONE, HOUR (-12) },
{ "z", tZONE, HOUR ( 0) },
{ NULL }
{ NULL, 0, 0 }
};
@@ -635,7 +643,7 @@ static TABLE const MilitaryTable[] = {
/* ARGSUSED */
static int
yyerror (s)
char *s;
char *s ATTRIBUTE_UNUSED;
{
return 0;
}

View File

@@ -1,6 +1,6 @@
/* getline.c -- Replacement for GNU C library function getline
Copyright (C) 1993, 1996, 1997 Free Software Foundation, Inc.
Copyright (C) 1993, 1996, 1997, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
@@ -34,10 +34,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if defined __GNU_LIBRARY__ && HAVE_GETDELIM
int
getline (lineptr, n, stream)
char **lineptr;
size_t *n;
FILE *stream;
getline (char **lineptr, size_t *n, FILE *stream)
{
return getdelim (lineptr, n, '\n', stream);
}
@@ -64,12 +61,7 @@ char *malloc (), *realloc ();
null terminator), or -1 on error or EOF. */
int
getstr (lineptr, n, stream, terminator, offset)
char **lineptr;
size_t *n;
FILE *stream;
char terminator;
size_t offset;
getstr (char **lineptr, size_t *n, FILE *stream, char terminator, size_t offset)
{
int nchars_avail; /* Allocated but unused chars in *LINEPTR. */
char *read_pos; /* Where we're reading into *LINEPTR. */
@@ -138,20 +130,13 @@ getstr (lineptr, n, stream, terminator, offset)
}
int
getline (lineptr, n, stream)
char **lineptr;
size_t *n;
FILE *stream;
getline (char **lineptr, size_t *n, FILE *stream)
{
return getstr (lineptr, n, stream, '\n', 0);
}
int
getdelim (lineptr, n, delimiter, stream)
char **lineptr;
size_t *n;
int delimiter;
FILE *stream;
getdelim (char **lineptr, size_t *n, int delimiter, FILE *stream)
{
return getstr (lineptr, n, stream, delimiter, 0);
}

View File

@@ -98,8 +98,14 @@
extern int errno;
#endif
#ifndef HAVE_GETLOADAVG
#if HAVE_LOCALE_H
# include <locale.h>
#endif
#if !HAVE_SETLOCALE
# define setlocale(Category, Locale) /* empty */
#endif
#ifndef HAVE_GETLOADAVG
/* The existing Emacs configuration files define a macro called
LOAD_AVE_CVT, which accepts a value of type LOAD_AVE_TYPE, and
@@ -638,8 +644,11 @@ getloadavg (loadavg, nelem)
if (count <= 0)
return -1;
/* The following sscanf must use the C locale. */
setlocale (LC_NUMERIC, "C");
count = sscanf (ldavgbuf, "%lf %lf %lf",
&load_ave[0], &load_ave[1], &load_ave[2]);
setlocale (LC_NUMERIC, "");
if (count < 1)
return -1;

View File

@@ -1,47 +1,42 @@
/* Getopt for GNU.
NOTE: getopt is now part of the C library, so if you don't know what
"Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
"Keep this file name-space clean" means, talk to drepper@gnu.org
before changing it!
Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98
Free Software Foundation, Inc.
the C library, however. The master source lives in /gd/gnu/lib.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
Ditto for AIX 3.2 and <stdlib.h>. */
#ifndef _NO_PROTO
#define _NO_PROTO
# define _NO_PROTO
#endif
#ifdef HAVE_CONFIG_H
#include <config.h>
# include <config.h>
#endif
#if !defined (__STDC__) || !__STDC__
#if !defined __STDC__ || !__STDC__
/* This is a separate conditional since some stdc systems
reject `defined (const)'. */
#ifndef const
#define const
#endif
# ifndef const
# define const
# endif
#endif
#include <stdio.h>
@@ -55,11 +50,11 @@ USA. */
it is simpler to just do this in the source for each such file. */
#define GETOPT_INTERFACE_VERSION 2
#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2
#include <gnu-versions.h>
#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
#define ELIDE_CODE
#endif
#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
# include <gnu-versions.h>
# if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
# define ELIDE_CODE
# endif
#endif
#ifndef ELIDE_CODE
@@ -70,32 +65,26 @@ USA. */
#ifdef __GNU_LIBRARY__
/* Don't include stdlib.h for non-GNU C libraries because some of them
contain conflicting prototypes for getopt. */
#include <stdlib.h>
#include <unistd.h>
# include <stdlib.h>
# include <unistd.h>
#endif /* GNU C library. */
#ifdef VMS
#include <unixlib.h>
#if HAVE_STRING_H - 0
#include <string.h>
#endif
#endif
#if defined (WIN32) && !defined (__CYGWIN32__)
/* It's not Unix, really. See? Capital letters. */
#include <windows.h>
#define getpid() GetCurrentProcessId()
# include <unixlib.h>
# if HAVE_STRING_H - 0
# include <string.h>
# endif
#endif
#ifndef _
/* This is for other GNU distributions with internationalized messages.
When compiling libc, the _ macro is predefined. */
#ifdef HAVE_LIBINTL_H
# include <libintl.h>
# define _(msgid) gettext (msgid)
#else
# define _(msgid) (msgid)
#endif
# ifdef HAVE_LIBINTL_H
# include <libintl.h>
# define _(msgid) gettext (msgid)
# else
# define _(msgid) (msgid)
# endif
#endif
/* This version of `getopt' appears to the caller like standard Unix `getopt'
@@ -205,14 +194,22 @@ static char *posixly_correct;
because there are many ways it can cause trouble.
On some systems, it contains special magic macros that don't work
in GCC. */
#include <string.h>
#define my_index strchr
# include <string.h>
# define my_index strchr
#else
# if HAVE_STRING_H
# include <string.h>
# else
# include <strings.h>
# endif
/* Avoid depending on library functions or files
whose names are inconsistent. */
char *getenv ();
#ifndef getenv
extern char *getenv ();
#endif
static char *
my_index (str, chr)
@@ -233,11 +230,11 @@ my_index (str, chr)
#ifdef __GNUC__
/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
That was relevant to code that was here before. */
#if !defined (__STDC__) || !__STDC__
# if (!defined __STDC__ || !__STDC__) && !defined strlen
/* gcc with -traditional declares the built-in strlen to return int,
and has done so at least since version 2.4.5. -- rms. */
extern int strlen (const char *);
#endif /* not __STDC__ */
# endif /* not __STDC__ */
#endif /* __GNUC__ */
#endif /* not __GNU_LIBRARY__ */
@@ -264,8 +261,6 @@ static int nonoption_flags_len;
static int original_argc;
static char *const *original_argv;
extern pid_t __libc_pid;
/* Make sure the environment variable bash 2.0 puts in the environment
is valid for the getopt call we must make sure that the ARGV passed
to getopt is that one passed to the process. */
@@ -278,7 +273,9 @@ store_args_and_env (int argc, char *const *argv)
original_argc = argc;
original_argv = argv;
}
# ifdef text_set_element
text_set_element (__libc_subinit, store_args_and_env);
# endif /* text_set_element */
# define SWAP_FLAGS(ch1, ch2) \
if (nonoption_flags_len > 0) \
@@ -300,7 +297,7 @@ text_set_element (__libc_subinit, store_args_and_env);
`first_nonopt' and `last_nonopt' are relocated so that they describe
the new indices of the non-options in ARGV after they are moved. */
#if defined (__STDC__) && __STDC__
#if defined __STDC__ && __STDC__
static void exchange (char **);
#endif
@@ -331,9 +328,9 @@ exchange (argv)
nonoption_flags_len = nonoption_flags_max_len = 0;
else
{
memcpy (new_str, __getopt_nonoption_flags, nonoption_flags_max_len);
memset (&new_str[nonoption_flags_max_len], '\0',
top + 1 - nonoption_flags_max_len);
memset (__mempcpy (new_str, __getopt_nonoption_flags,
nonoption_flags_max_len),
'\0', top + 1 - nonoption_flags_max_len);
nonoption_flags_max_len = top + 1;
__getopt_nonoption_flags = new_str;
}
@@ -386,7 +383,7 @@ exchange (argv)
/* Initialize the internal data when the first call is made. */
#if defined (__STDC__) && __STDC__
#if defined __STDC__ && __STDC__
static const char *_getopt_initialize (int, char *const *, const char *);
#endif
static const char *
@@ -442,11 +439,8 @@ _getopt_initialize (argc, argv, optstring)
if (__getopt_nonoption_flags == NULL)
nonoption_flags_max_len = -1;
else
{
memcpy (__getopt_nonoption_flags, orig_str, len);
memset (&__getopt_nonoption_flags[len], '\0',
nonoption_flags_max_len - len);
}
memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
'\0', nonoption_flags_max_len - len);
}
}
nonoption_flags_len = nonoption_flags_max_len;
@@ -538,11 +532,11 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
from the shell indicating it is not an option. The later information
is only used when the used in the GNU libc. */
#ifdef _LIBC
#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \
|| (optind < nonoption_flags_len \
&& __getopt_nonoption_flags[optind] == '1'))
# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \
|| (optind < nonoption_flags_len \
&& __getopt_nonoption_flags[optind] == '1'))
#else
#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
#endif
if (nextchar == NULL || *nextchar == '\0')
@@ -705,12 +699,12 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (argv[optind - 1][1] == '-')
/* --option */
fprintf (stderr,
_("%s: option `--%s' doesn't allow an argument\n"),
_("%s: option `--%s' doesn't allow an argument\n"),
argv[0], pfound->name);
else
/* +option or -option */
fprintf (stderr,
_("%s: option `%c%s' doesn't allow an argument\n"),
_("%s: option `%c%s' doesn't allow an argument\n"),
argv[0], argv[optind - 1][0], pfound->name);
}

View File

@@ -1,28 +1,27 @@
/* Declarations for getopt.
Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc.
Copyright (C) 1989,90,91,92,93,94,96,97,98 Free Software Foundation, Inc.
This file is part of the GNU C Library.
the C library, however. The master source lives in /gd/gnu/lib.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _GETOPT_H
#define _GETOPT_H 1
#ifndef __need_getopt
# define _GETOPT_H 1
#endif
#ifdef __cplusplus
extern "C" {
@@ -59,6 +58,7 @@ extern int opterr;
extern int optopt;
#ifndef __need_getopt
/* Describe the long-named options requested by the application.
The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
of `struct option' terminated by an element containing a name which is
@@ -82,11 +82,11 @@ extern int optopt;
struct option
{
#if defined (__STDC__) && __STDC__
# if defined __STDC__ && __STDC__
const char *name;
#else
# else
char *name;
#endif
# endif
/* has_arg can't be an enum because some compilers complain about
type mismatches in all the code that assumes it is an int. */
int has_arg;
@@ -96,40 +96,74 @@ struct option
/* Names for the values of the `has_arg' field of `struct option'. */
#define no_argument 0
#define required_argument 1
#define optional_argument 2
# define no_argument 0
# define required_argument 1
# define optional_argument 2
#endif /* need getopt */
#if defined (__STDC__) && __STDC__
#ifdef __GNU_LIBRARY__
/* Get definitions and prototypes for functions to process the
arguments in ARGV (ARGC of them, minus the program name) for
options given in OPTS.
Return the option character from OPTS just read. Return -1 when
there are no more options. For unrecognized options, or options
missing arguments, `optopt' is set to the option letter, and '?' is
returned.
The OPTS string is a list of characters which are recognized option
letters, optionally followed by colons, specifying that that letter
takes an argument, to be placed in `optarg'.
If a letter in OPTS is followed by two colons, its argument is
optional. This behavior is specific to the GNU `getopt'.
The argument `--' causes premature termination of argument
scanning, explicitly telling `getopt' that there are no more
options.
If OPTS begins with `--', then non-option arguments are treated as
arguments to the option '\0'. This behavior is specific to the GNU
`getopt'. */
#if defined __STDC__ && __STDC__
# ifdef __GNU_LIBRARY__
/* Many other libraries have conflicting prototypes for getopt, with
differences in the consts, in stdlib.h. To avoid compilation
errors, only prototype getopt for the GNU C library. */
extern int getopt (int argc, char *const *argv, const char *shortopts);
#else /* not __GNU_LIBRARY__ */
extern int getopt (int __argc, char *const *__argv, const char *__shortopts);
# else /* not __GNU_LIBRARY__ */
extern int getopt ();
#endif /* __GNU_LIBRARY__ */
extern int getopt_long (int argc, char *const *argv, const char *shortopts,
const struct option *longopts, int *longind);
extern int getopt_long_only (int argc, char *const *argv,
const char *shortopts,
const struct option *longopts, int *longind);
# endif /* __GNU_LIBRARY__ */
# ifndef __need_getopt
extern int getopt_long (int __argc, char *const *__argv, const char *__shortopts,
const struct option *__longopts, int *__longind);
extern int getopt_long_only (int __argc, char *const *__argv,
const char *__shortopts,
const struct option *__longopts, int *__longind);
/* Internal only. Users should not call this directly. */
extern int _getopt_internal (int argc, char *const *argv,
const char *shortopts,
const struct option *longopts, int *longind,
int long_only);
extern int _getopt_internal (int __argc, char *const *__argv,
const char *__shortopts,
const struct option *__longopts, int *__longind,
int __long_only);
# endif
#else /* not __STDC__ */
extern int getopt ();
# ifndef __need_getopt
extern int getopt_long ();
extern int getopt_long_only ();
extern int _getopt_internal ();
# endif
#endif /* __STDC__ */
#ifdef __cplusplus
}
#endif
#endif /* _GETOPT_H */
/* Make sure we later can get all the definitions and declarations. */
#undef __need_getopt
#endif /* getopt.h */

View File

@@ -1,25 +1,22 @@
/* getopt_long and getopt_long_only entry points for GNU getopt.
Copyright (C) 1987,88,89,90,91,92,93,94,96,97 Free Software Foundation, Inc.
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 C library, however. The master source lives in /gd/gnu/lib.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
@@ -27,7 +24,7 @@ USA. */
#include "getopt.h"
#if !defined (__STDC__) || !__STDC__
#if !defined __STDC__ || !__STDC__
/* This is a separate conditional since some stdc systems
reject `defined (const)'. */
#ifndef const
@@ -46,7 +43,7 @@ USA. */
it is simpler to just do this in the source for each such file. */
#define GETOPT_INTERFACE_VERSION 2
#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2
#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
#include <gnu-versions.h>
#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
#define ELIDE_CODE

View File

@@ -1,5 +1,5 @@
/* getversion.c -- select backup filename type
Copyright (C) 1990 Free Software Foundation, Inc.
Copyright (C) 1990, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -46,8 +46,7 @@ static const enum backup_type backup_types[] =
Unique abbreviations are accepted. */
enum backup_type
get_version (version)
char *version;
get_version (const char *version)
{
int i;

View File

@@ -1,5 +1,5 @@
/* human.c -- print human readable file size
Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -158,7 +158,7 @@ human_readable (uintmax_t n, char *buf,
e *= base;
power++;
}
while (e * base <= amt && power < sizeof suffixes - 1);
while (e * base <= damt && power < sizeof suffixes - 1);
damt /= e;
@@ -258,7 +258,7 @@ humblock (char const *spec, int *block_size)
if (! spec && ! (spec = getenv ("BLOCK_SIZE")))
*block_size = getenv ("POSIXLY_CORRECT") ? 512 : DEFAULT_BLOCK_SIZE;
else if (0 <= (i = argmatch (spec, block_size_args)))
else if (0 <= (i = ARGMATCH (spec, block_size_args, block_size_types)))
*block_size = block_size_types[i];
else
{

View File

@@ -1,5 +1,6 @@
/* idcache.c -- map user and group IDs, cached for speed
Copyright (C) 1985, 1988, 1989, 1990, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1985, 1988, 1989, 1990, 1997, 1998 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -34,8 +34,7 @@
return nonzero, else 0. */
int
isdir (path)
char *path;
isdir (const char *path)
{
struct stat stats;

View File

@@ -1,5 +1,5 @@
/* Provide a stub lchown function for systems that lack it.
Copyright (C) 1998 Free Software Foundation, Inc.
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -25,6 +25,11 @@
#ifndef errno
extern int errno;
#endif
#include "lchown.h"
/* Declare chown to avoid a warning. Don't include unistd.h,
because it may have a conflicting prototype for lchown. */
int chown ();
/* Work just like chown, except when FILE is a symbolic link.
In that case, set errno to ENOSYS and return -1. */

9
lib/lchown.h Normal file
View File

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

View File

@@ -1,5 +1,5 @@
/* linebuffer.c -- read arbitrarily long lines
Copyright (C) 1986, 1991 Free Software Foundation, Inc.
Copyright (C) 1986, 1991, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,11 +12,15 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Richard Stallman. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#include "linebuffer.h"
@@ -27,8 +31,7 @@ void free ();
/* Initialize linebuffer LINEBUFFER for use. */
void
initbuffer (linebuffer)
struct linebuffer *linebuffer;
initbuffer (struct linebuffer *linebuffer)
{
linebuffer->length = 0;
linebuffer->size = 200;
@@ -37,19 +40,18 @@ initbuffer (linebuffer)
/* Read an arbitrarily long line of text from STREAM into LINEBUFFER.
Remove any newline. Does not null terminate.
Return LINEBUFFER, except at end of file return 0. */
Return zero upon error or upon end of file.
Otherwise, return LINEBUFFER. */
struct linebuffer *
readline (linebuffer, stream)
struct linebuffer *linebuffer;
FILE *stream;
readline (struct linebuffer *linebuffer, FILE *stream)
{
int c;
char *buffer = linebuffer->buffer;
char *p = linebuffer->buffer;
char *end = buffer + linebuffer->size; /* Sentinel. */
if (feof (stream))
if (feof (stream) || ferror (stream))
{
linebuffer->length = 0;
return 0;
@@ -83,8 +85,7 @@ readline (linebuffer, stream)
/* Free linebuffer LINEBUFFER and its data, all allocated with malloc. */
void
freebuffer (linebuffer)
struct linebuffer *linebuffer;
freebuffer (struct linebuffer *linebuffer)
{
free (linebuffer->buffer);
free (linebuffer);

View File

@@ -1,5 +1,5 @@
/* Utility to accept --help and --version options as unobtrusively as possible.
Copyright (C) 1993, 1994, 1998 Free Software Foundation, Inc.
Copyright (C) 1993, 1994, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -37,13 +37,9 @@ static struct option const long_options[] =
Be careful not to gobble up `--'. */
void
parse_long_options (argc, argv, command_name, package, version, usage)
int argc;
char **argv;
const char *command_name;
const char *package;
const char *version;
void (*usage)();
parse_long_options (int argc, char **argv, const char *command_name,
const char *package, const char *version,
void (*usage_func)())
{
int c;
int saved_opterr;
@@ -59,7 +55,7 @@ parse_long_options (argc, argv, command_name, package, version, usage)
switch (c)
{
case 'h':
(*usage) (0);
(*usage_func) (0);
case 'v':
printf ("%s (%s) %s\n", command_name, package, version);

View File

@@ -1,50 +0,0 @@
/* 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 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* written by Jim Meyering */
#include <config.h>
/* Disable the definition of lstat to rpl_lstat (from config.h) in this
file. Otherwise, we'd get conflicting prototypes for rpl_lstat on
most systems. */
#undef lstat
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#ifndef errno
extern int errno;
#endif
/* FIXME: describe. */
int
rpl_lstat (file, sbuf)
const char *file;
struct stat *sbuf;
{
if (file && *file == 0)
{
errno = EINVAL;
return -1;
}
return lstat (file, sbuf);
}

View File

@@ -1,5 +1,5 @@
/* makepath.c -- Ensure that a directory path exists.
Copyright (C) 1990, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1990, 1997, 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -81,6 +81,17 @@ extern int errno;
#define WX_USR (S_IWUSR | S_IXUSR)
#if HAVE_LOCALE_H
# include <locale.h>
#endif
#if ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#endif
#ifdef __MSDOS__
typedef int uid_t;
typedef int gid_t;
@@ -99,9 +110,9 @@ void strip_trailing_slashes ();
Restore working directory. */ \
if (do_chdir) \
{ \
int fail = restore_cwd (&cwd, NULL, NULL); \
int _fail = restore_cwd (&cwd, NULL, NULL); \
free_cwd (&cwd); \
if (fail) \
if (_fail) \
return 1; \
} \
} \
@@ -115,6 +126,56 @@ void strip_trailing_slashes ();
} \
while (0)
/* Attempt to create directory DIR (aka DIRPATH) with the specified MODE.
If CREATED_DIR_P is non-NULL, set *CREATED_DIR_P to non-zero if this
function creates DIR and to zero otherwise. Give a diagnostic and
return non-zero if DIR cannot be created or cannot be determined to
exist already. Use DIRPATH in any diagnostic, not DIR.
Note that if DIR already exists, this function will return zero
(indicating success) and will set *CREATED_DIR_P to zero. */
static int
make_dir (const char *dir, const char *dirpath, mode_t mode, int *created_dir_p)
{
int fail = 0;
int created_dir;
created_dir = (mkdir (dir, mode) == 0);
if (!created_dir)
{
struct stat stats;
/* The mkdir and stat calls below may appear to be reversed.
They are not. It is important to call mkdir first and then to
call stat (to distinguish the three cases) only if mkdir fails.
The alternative to this approach is to `stat' each directory,
then to call mkdir if it doesn't exist. But if some other process
were to create the directory between the stat & mkdir, the mkdir
would fail with EEXIST. */
if (stat (dir, &stats))
{
error (0, errno, _("cannot create directory `%s'"), dirpath);
fail = 1;
}
else if (!S_ISDIR (stats.st_mode))
{
error (0, 0, _("`%s' exists but is not a directory"), dirpath);
fail = 1;
}
else
{
/* DIR (aka DIRPATH) already exists and is a directory. */
}
}
if (created_dir_p)
*created_dir_p = created_dir;
return fail;
}
/* Ensure that the directory ARGPATH exists.
Remove any trailing slashes from ARGPATH before calling this function.
@@ -203,7 +264,8 @@ make_path (const char *argpath,
while (1)
{
int newly_created_dir = 1;
int newly_created_dir;
int fail;
/* slash points to the leftmost unprocessed component of dirpath. */
basename_dir = slash;
@@ -217,34 +279,12 @@ make_path (const char *argpath,
if (!do_chdir)
basename_dir = dirpath;
/* The mkdir and stat calls below appear to be reversed.
They are not. It is important to call mkdir first and then to
call stat (to distinguish the three cases) only if mkdir fails.
The alternative to this approach is to `stat' each directory,
then to call mkdir if it doesn't exist. But if some other process
were to create the directory between the stat & mkdir, the mkdir
would fail with EEXIST. */
*slash = '\0';
if (mkdir (basename_dir, tmp_mode))
fail = make_dir (basename_dir, dirpath, tmp_mode, &newly_created_dir);
if (fail)
{
if (stat (basename_dir, &stats))
{
error (0, errno, "cannot create directory `%s'", dirpath);
CLEANUP;
return 1;
}
else if (!S_ISDIR (stats.st_mode))
{
error (0, 0, "`%s' exists but is not a directory", dirpath);
CLEANUP;
return 1;
}
else
{
/* DIRPATH already exists and is a directory. */
newly_created_dir = 0;
}
CLEANUP;
return 1;
}
if (newly_created_dir)
@@ -280,7 +320,7 @@ make_path (const char *argpath,
stat and mkdir process O(n^2) file name components. */
if (do_chdir && chdir (basename_dir) < 0)
{
error (0, errno, "cannot chdir to directory, %s", dirpath);
error (0, errno, _("cannot chdir to directory, %s"), dirpath);
CLEANUP;
return 1;
}
@@ -299,12 +339,8 @@ make_path (const char *argpath,
/* We're done making leading directories.
Create the final component of the path. */
/* The path could end in "/." or contain "/..", so test
if we really have to create the directory. */
if (stat (basename_dir, &stats) && mkdir (basename_dir, mode))
if (make_dir (basename_dir, dirpath, mode, NULL))
{
error (0, errno, "cannot create directory `%s'", dirpath);
CLEANUP;
return 1;
}
@@ -323,13 +359,13 @@ make_path (const char *argpath,
#endif
)
{
error (0, errno, "cannot chown %s", dirpath);
error (0, errno, _("cannot chown %s"), dirpath);
retval = 1;
}
/* chown may have turned off some permission bits we wanted. */
if ((mode & 07000) != 0 && chmod (basename_dir, mode))
{
error (0, errno, "cannot chmod %s", dirpath);
error (0, errno, _("cannot chmod %s"), dirpath);
retval = 1;
}
}
@@ -357,7 +393,7 @@ make_path (const char *argpath,
if (!S_ISDIR (stats.st_mode))
{
error (0, 0, "`%s' exists but is not a directory", dirpath);
error (0, 0, _("`%s' exists but is not a directory"), dirpath);
return 1;
}

View File

@@ -1,5 +1,5 @@
/* Work around bug on some systems where malloc (0) fails.
Copyright (C) 1997 Free Software Foundation, Inc.
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -30,8 +30,7 @@ char *malloc ();
If N is zero, allocate a 1-byte block. */
char *
rpl_malloc (n)
size_t n;
rpl_malloc (size_t n)
{
if (n == 0)
n = 1;

View File

@@ -104,8 +104,7 @@ static int memcmp_bytes __P((op_t, op_t));
__inline
# endif
static int
memcmp_bytes (a, b)
op_t a, b;
memcmp_bytes (long unsigned int a, long unsigned int b)
{
long int srcp1 = (long int) &a;
long int srcp2 = (long int) &b;
@@ -132,10 +131,7 @@ static int memcmp_common_alignment __P((long, long, size_t));
__inline
#endif
static int
memcmp_common_alignment (srcp1, srcp2, len)
long int srcp1;
long int srcp2;
size_t len;
memcmp_common_alignment (long int srcp1, long int srcp2, size_t len)
{
op_t a0, a1;
op_t b0, b1;
@@ -222,10 +218,7 @@ static int memcmp_not_common_alignment __P((long, long, size_t));
__inline
#endif
static int
memcmp_not_common_alignment (srcp1, srcp2, len)
long int srcp1;
long int srcp2;
size_t len;
memcmp_not_common_alignment (long int srcp1, long int srcp2, size_t len)
{
op_t a0, a1, a2, a3;
op_t b0, b1, b2, b3;
@@ -325,10 +318,7 @@ memcmp_not_common_alignment (srcp1, srcp2, len)
}
int
rpl_memcmp (s1, s2, len)
const __ptr_t s1;
const __ptr_t s2;
size_t len;
rpl_memcmp (const void *s1, const void *s2, size_t len)
{
op_t a0;
op_t b0;

View File

@@ -16,10 +16,7 @@
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
char *
memset (str, c, len)
char *str;
int c;
unsigned len;
memset (char *str, int c, unsigned int len)
{
register char *st = str;

View File

@@ -1,5 +1,5 @@
/* BSD compatible make directory function for System V
Copyright (C) 1988, 1990 Free Software Foundation, Inc.
Copyright (C) 1988, 1990, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -48,9 +48,7 @@ extern int errno;
subroutine didn't return EEXIST. It does now. */
int
mkdir (dpath, dmode)
char *dpath;
int dmode;
mkdir (const char *dpath, int dmode)
{
int cpid, status;
struct stat statbuf;

View File

@@ -1,5 +1,5 @@
/* mktime: convert a `struct tm' to a time_t value zzzzzz
Copyright (C) 1993-1997, 1998 Free Software Foundation, Inc.
/* mktime: convert a `struct tm' to a time_t value
Copyright (C) 1993-1998, 1999 Free Software Foundation, Inc.
Contributed by Paul Eggert (eggert@twinsun.com).
NOTE: The canonical source of this file is maintained with the GNU C Library.
@@ -28,14 +28,8 @@
# include <config.h>
#endif
/* Some systems need this in order to declare localtime_r properly. */
#ifndef _REENTRANT
# define _REENTRANT 1
#endif
#ifdef _LIBC
# define HAVE_LIMITS_H 1
# define HAVE_LOCALTIME_R 1
# define STDC_HEADERS 1
#endif
@@ -63,7 +57,7 @@
#endif /* DEBUG */
#ifndef __P
# if defined (__GNUC__) || (defined (__STDC__) && __STDC__)
# if defined __GNUC__ || (defined __STDC__ && __STDC__)
# define __P(args) args
# else
# define __P(args) ()
@@ -125,16 +119,14 @@ time_t __mktime_internal __P ((struct tm *,
#ifdef _LIBC
# define localtime_r __localtime_r
# define my_mktime_localtime_r __localtime_r
#else
# if ! HAVE_LOCALTIME_R && ! defined localtime_r
/* Approximate localtime_r as best we can in its absence. */
# define localtime_r my_mktime_localtime_r
static struct tm *localtime_r __P ((const time_t *, struct tm *));
/* If we're a mktime substitute in a GNU program, then prefer
localtime to localtime_r, since many localtime_r implementations
are buggy. */
static struct tm *my_mktime_localtime_r __P ((const time_t *, struct tm *));
static struct tm *
localtime_r (t, tp)
const time_t *t;
struct tm *tp;
my_mktime_localtime_r (const time_t *t, struct tm *tp)
{
struct tm *l = localtime (t);
if (! l)
@@ -142,7 +134,6 @@ localtime_r (t, tp)
*tp = *l;
return tp;
}
# endif /* ! HAVE_LOCALTIME_R && ! defined (localtime_r) */
#endif /* ! _LIBC */
@@ -153,9 +144,8 @@ localtime_r (t, tp)
If TP is null, return a nonzero value.
If overflow occurs, yield the low order bits of the correct answer. */
static time_t
ydhms_tm_diff (year, yday, hour, min, sec, tp)
int year, yday, hour, min, sec;
const struct tm *tp;
ydhms_tm_diff (int year, int yday, int hour, int min, int sec,
const struct tm *tp)
{
if (!tp)
return 1;
@@ -187,8 +177,7 @@ static time_t localtime_offset;
/* Convert *TP to a time_t value. */
time_t
mktime (tp)
struct tm *tp;
mktime (struct tm *tp)
{
#ifdef _LIBC
/* POSIX.1 8.1.1 requires that whenever mktime() is called, the
@@ -197,17 +186,15 @@ mktime (tp)
__tzset ();
#endif
return __mktime_internal (tp, localtime_r, &localtime_offset);
return __mktime_internal (tp, my_mktime_localtime_r, &localtime_offset);
}
/* Use CONVERT to convert *T to a broken down time in *TP.
If *T is out of range for conversion, adjust it so that
it is the nearest in-range value and then convert that. */
static struct tm *
ranged_convert (convert, t, tp)
struct tm *(*convert) __P ((const time_t *, struct tm *));
time_t *t;
struct tm *tp;
ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
time_t *t, struct tm *tp)
{
struct tm *r;
@@ -254,19 +241,18 @@ ranged_convert (convert, t, tp)
compared to what the result would be for UTC without leap seconds.
If *OFFSET's guess is correct, only one CONVERT call is needed. */
time_t
__mktime_internal (tp, convert, offset)
struct tm *tp;
struct tm *(*convert) __P ((const time_t *, struct tm *));
time_t *offset;
__mktime_internal (struct tm *tp,
struct tm *(*convert) (const time_t *, struct tm *),
time_t *offset)
{
time_t t, dt, t0;
time_t t, dt, t0, t1, t2;
struct tm tm;
/* The maximum number of probes (calls to CONVERT) should be enough
to handle any combinations of time zone rule changes, solar time,
and leap seconds. POSIX.1 prohibits leap seconds, but some hosts
have them anyway. */
int remaining_probes = 4;
leap seconds, and oscillations around a spring-forward gap.
POSIX.1 prohibits leap seconds, but some hosts have them anyway. */
int remaining_probes = 6;
/* Time requested. Copy it in case CONVERT modifies *TP; this can
occur if TP is localtime's returned value and CONVERT is localtime. */
@@ -312,36 +298,52 @@ __mktime_internal (tp, convert, offset)
tm.tm_yday = tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
t0 = ydhms_tm_diff (year, yday, hour, min, sec, &tm);
for (t = t0 + *offset;
for (t = t1 = t2 = t0 + *offset;
(dt = ydhms_tm_diff (year, yday, hour, min, sec,
ranged_convert (convert, &t, &tm)));
t += dt)
if (--remaining_probes == 0)
t1 = t2, t2 = t, t += dt)
if (t == t1 && t != t2
&& (isdst < 0 || tm.tm_isdst < 0
|| (isdst != 0) != (tm.tm_isdst != 0)))
/* We can't possibly find a match, as we are oscillating
between two values. The requested time probably falls
within a spring-forward gap of size DT. Follow the common
practice in this case, which is to return a time that is DT
away from the requested time, preferring a time whose
tm_isdst differs from the requested value. In practice,
this is more useful than returning -1. */
break;
else if (--remaining_probes == 0)
return -1;
/* Check whether tm.tm_isdst has the requested value, if any. */
if (0 <= isdst && 0 <= tm.tm_isdst)
/* If we have a match, check whether tm.tm_isdst has the requested
value, if any. */
if (dt == 0 && isdst != tm.tm_isdst && 0 <= isdst && 0 <= tm.tm_isdst)
{
int dst_diff = (isdst != 0) - (tm.tm_isdst != 0);
if (dst_diff)
/* tm.tm_isdst has the wrong value. Look for a neighboring
time with the right value, and use its UTC offset.
Heuristic: probe the previous three calendar quarters (approximately),
looking for the desired isdst. This isn't perfect,
but it's good enough in practice. */
int quarter = 7889238; /* seconds per average 1/4 Gregorian year */
int i;
/* If we're too close to the time_t limit, look in future quarters. */
if (t < TIME_T_MIN + 3 * quarter)
quarter = -quarter;
for (i = 1; i <= 3; i++)
{
/* Move two hours in the direction indicated by the disagreement,
probe some more, and switch to a new time if found.
The largest known fallback due to daylight savings is two hours:
once, in Newfoundland, 1988-10-30 02:00 -> 00:00. */
time_t ot = t - 2 * 60 * 60 * dst_diff;
while (--remaining_probes != 0)
time_t ot = t - i * quarter;
struct tm otm;
ranged_convert (convert, &ot, &otm);
if (otm.tm_isdst == isdst)
{
struct tm otm;
if (! (dt = ydhms_tm_diff (year, yday, hour, min, sec,
ranged_convert (convert, &ot, &otm))))
{
t = ot;
tm = otm;
break;
}
if ((ot += dt) == t)
break; /* Avoid a redundant probe. */
/* We found the desired tm_isdst.
Extrapolate back to the desired time. */
t = ot + ydhms_tm_diff (year, yday, hour, min, sec, &otm);
ranged_convert (convert, &t, &tm);
break;
}
}
}
@@ -531,6 +533,6 @@ main (argc, argv)
/*
Local Variables:
compile-command: "gcc -DDEBUG -D__EXTENSIONS__ -DHAVE_LIMITS_H -DHAVE_LOCALTIME_R -DSTDC_HEADERS -Wall -W -O -g mktime.c -o mktime"
compile-command: "gcc -DDEBUG -DHAVE_LIMITS_H -DSTDC_HEADERS -Wall -W -O -g mktime.c -o mktime"
End:
*/

View File

@@ -1,5 +1,5 @@
/* modechange.c -- file mode manipulation
Copyright (C) 1989, 1990, 1997 Free Software Foundation, Inc.
Copyright (C) 1989, 1990, 1997, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -55,7 +55,22 @@ char *malloc ();
#define isodigit(c) ((c) >= '0' && (c) <= '7')
static int oatoi ();
/* Return a positive integer containing the value of the ASCII
octal number S. If S is not an octal number, return -1. */
static int
oatoi (const char *s)
{
register int i;
if (*s == 0)
return -1;
for (i = 0; isodigit (*s); ++s)
i = i * 8 + *s - '0';
if (*s)
return -1;
return i;
}
/* Return a linked list of file mode change operations created from
MODE_STRING, an ASCII string that contains either an octal number
@@ -71,9 +86,7 @@ static int oatoi ();
return MODE_MEMORY_EXHAUSTED if there is insufficient memory. */
struct mode_change *
mode_compile (mode_string, masked_ops)
const char *mode_string;
unsigned masked_ops;
mode_compile (const char *mode_string, unsigned int masked_ops)
{
struct mode_change *head; /* First element of the linked list. */
struct mode_change *change; /* An element of the linked list. */
@@ -240,8 +253,7 @@ invalid:
of REF_FILE. Return MODE_BAD_REFERENCE if REF_FILE can't be accessed. */
struct mode_change *
mode_create_from_ref (ref_file)
const char *ref_file;
mode_create_from_ref (const char *ref_file)
{
struct mode_change *change; /* the only change element */
struct stat ref_stats;
@@ -269,9 +281,7 @@ mode_create_from_ref (ref_file)
The returned value has the S_IFMT bits cleared. */
unsigned short
mode_adjust (oldmode, changes)
unsigned oldmode;
const struct mode_change *changes;
mode_adjust (unsigned int oldmode, const struct mode_change *changes)
{
unsigned short newmode; /* The adjusted mode and one operand. */
unsigned short value; /* The other operand. */
@@ -336,8 +346,7 @@ mode_adjust (oldmode, changes)
CHANGES. */
void
mode_free (changes)
register struct mode_change *changes;
mode_free (register struct mode_change *changes)
{
register struct mode_change *next;
@@ -348,21 +357,3 @@ mode_free (changes)
changes = next;
}
}
/* Return a positive integer containing the value of the ASCII
octal number S. If S is not an octal number, return -1. */
static int
oatoi (s)
char *s;
{
register int i;
if (*s == 0)
return -1;
for (i = 0; isodigit (*s); ++s)
i = i * 8 + *s - '0';
if (*s)
return -1;
return i;
}

View File

@@ -129,10 +129,10 @@ extern int errno;
/* Return the value of the hexadecimal number represented by CP.
No prefix (like '0x') or suffix (like 'h') is expected to be
part of CP. */
/* FIXME: this can overflow */
static int
xatoi (cp)
char *cp;
xatoi (char *cp)
{
int val;
@@ -256,7 +256,7 @@ static char *
fsp_to_string (const struct statfs *fsp)
{
# if defined HAVE_F_FSTYPENAME_IN_STATFS
return xstrdup (fsp->f_fstypename);
return fsp->f_fstypename;
# else
return fstype_to_string (fsp->f_type);
# endif
@@ -266,8 +266,7 @@ fsp_to_string (const struct statfs *fsp)
#ifdef MOUNTED_VMOUNT /* AIX. */
static char *
fstype_to_string (t)
int t;
fstype_to_string (int t)
{
struct vfs_ent *e;
@@ -282,22 +281,14 @@ fstype_to_string (t)
/* Return a list of the currently mounted filesystems, or NULL on error.
Add each entry to the tail of the list so that they stay in order.
If NEED_FS_TYPE is nonzero, ensure that the filesystem type fields in
the returned list are valid. Otherwise, they might not be.
If ALL_FS is zero, do not return entries for filesystems that
are automounter (dummy) entries. */
the returned list are valid. Otherwise, they might not be. */
struct mount_entry *
read_filesystem_list (need_fs_type, all_fs)
int need_fs_type, all_fs;
read_filesystem_list (int need_fs_type)
{
struct mount_entry *mount_list;
struct mount_entry *me;
struct mount_entry *mtail;
/* Start the list off with a dummy entry. */
me = (struct mount_entry *) xmalloc (sizeof (struct mount_entry));
me->me_next = NULL;
mount_list = mtail = me;
struct mount_entry **mtail = &mount_list;
#ifdef MOUNTED_LISTMNTENT
{
@@ -312,18 +303,17 @@ read_filesystem_list (need_fs_type, all_fs)
if(listmntent(&mntlist, KMTAB, NULL, NULL) < 0)
return NULL;
p = mntlist;
while(p){
for (p = mntlist; p; p = p->next) {
mnt = p->ment;
me = (struct mount_entry*) xmalloc(sizeof (struct mount_entry));
me->me_devname = xstrdup(mnt->mnt_fsname);
me->me_mountdir = xstrdup(mnt->mnt_dir);
me->me_type = xstrdup(mnt->mnt_type);
me->me_dummy = ME_DUMMY (me->me_devname, me->me_type);
me->me_remote = ME_REMOTE (me->me_devname, me->me_type);
me->me_dev = -1;
me->me_next = NULL;
mtail->me_next = me;
mtail = me;
p = p->next;
*mtail = me;
mtail = &me->me_next;
}
freemntlist(mntlist);
}
@@ -342,14 +332,12 @@ read_filesystem_list (need_fs_type, all_fs)
while ((mnt = getmntent (fp)))
{
if (!all_fs && (!strcmp (mnt->mnt_type, "ignore")
|| !strcmp (mnt->mnt_type, "auto")))
continue;
me = (struct mount_entry *) xmalloc (sizeof (struct mount_entry));
me->me_devname = xstrdup (mnt->mnt_fsname);
me->me_mountdir = xstrdup (mnt->mnt_dir);
me->me_type = xstrdup (mnt->mnt_type);
me->me_dummy = ME_DUMMY (me->me_devname, me->me_type);
me->me_remote = ME_REMOTE (me->me_devname, me->me_type);
devopt = strstr (mnt->mnt_opts, "dev=");
if (devopt)
{
@@ -360,15 +348,14 @@ read_filesystem_list (need_fs_type, all_fs)
}
else
me->me_dev = (dev_t) -1; /* Magic; means not known yet. */
me->me_next = NULL;
/* Add to the linked list. */
mtail->me_next = me;
mtail = me;
*mtail = me;
mtail = &me->me_next;
}
if (endmntent (fp) == 0)
return NULL;
goto free_then_fail;
}
#endif /* MOUNTED_GETMNTENT1. */
@@ -380,19 +367,21 @@ read_filesystem_list (need_fs_type, all_fs)
entries = getmntinfo (&fsp, MNT_NOWAIT);
if (entries < 0)
return NULL;
while (entries-- > 0)
for (; entries-- > 0; fsp++)
{
char *fs_type = fsp_to_string (fsp);
me = (struct mount_entry *) xmalloc (sizeof (struct mount_entry));
me->me_devname = xstrdup (fsp->f_mntfromname);
me->me_mountdir = xstrdup (fsp->f_mntonname);
me->me_type = fsp_to_string (fsp);
me->me_type = fs_type;
me->me_dummy = ME_DUMMY (me->me_devname, me->me_type);
me->me_remote = ME_REMOTE (me->me_devname, me->me_type);
me->me_dev = (dev_t) -1; /* Magic; means not known yet. */
me->me_next = NULL;
/* Add to the linked list. */
mtail->me_next = me;
mtail = me;
fsp++;
*mtail = me;
mtail = &me->me_next;
}
}
#endif /* MOUNTED_GETMNTINFO */
@@ -403,22 +392,24 @@ read_filesystem_list (need_fs_type, all_fs)
int val;
struct fs_data fsd;
while ((val = getmnt (&offset, &fsd, sizeof (fsd), NOSTAT_MANY,
(char *) 0)) > 0)
while (errno = 0,
0 < (val = getmnt (&offset, &fsd, sizeof (fsd), NOSTAT_MANY,
(char *) 0)))
{
me = (struct mount_entry *) xmalloc (sizeof (struct mount_entry));
me->me_devname = xstrdup (fsd.fd_req.devname);
me->me_mountdir = xstrdup (fsd.fd_req.path);
me->me_type = gt_names[fsd.fd_req.fstype];
me->me_dummy = ME_DUMMY (me->me_devname, me->me_type);
me->me_remote = ME_REMOTE (me->me_devname, me->me_type);
me->me_dev = fsd.fd_req.dev;
me->me_next = NULL;
/* Add to the linked list. */
mtail->me_next = me;
mtail = me;
*mtail = me;
mtail = &me->me_next;
}
if (val < 0)
return NULL;
goto free_then_fail;
}
#endif /* MOUNTED_GETMNT. */
@@ -447,12 +438,13 @@ read_filesystem_list (need_fs_type, all_fs)
me->me_devname = xstrdup (stats[counter].f_mntfromname);
me->me_mountdir = xstrdup (stats[counter].f_mntonname);
me->me_type = mnt_names[stats[counter].f_type];
me->me_dummy = ME_DUMMY (me->me_devname, me->me_type);
me->me_remote = ME_REMOTE (me->me_devname, me->me_type);
me->me_dev = (dev_t) -1; /* Magic; means not known yet. */
me->me_next = NULL;
/* Add to the linked list. */
mtail->me_next = me;
mtail = me;
*mtail = me;
mtail = &me->me_next;
}
free (stats);
@@ -493,15 +485,24 @@ read_filesystem_list (need_fs_type, all_fs)
me->me_type = xstrdup (typebuf);
}
# endif
me->me_next = NULL;
me->me_dummy = ME_DUMMY (me->me_devname, me->me_type);
me->me_remote = ME_REMOTE (me->me_devname, me->me_type);
/* Add to the linked list. */
mtail->me_next = me;
mtail = me;
*mtail = me;
mtail = &me->me_next;
}
if (ferror (fp))
{
int saved_errno = errno;
fclose (fp);
errno = saved_errno;
goto free_then_fail;
}
if (fclose (fp) == EOF)
return NULL;
goto free_then_fail;
}
#endif /* MOUNTED_FREAD || MOUNTED_FREAD_FSTYP. */
@@ -514,12 +515,13 @@ read_filesystem_list (need_fs_type, all_fs)
me->me_devname = xstrdup ( (*ent)->mt_resource);
me->me_mountdir = xstrdup( (*ent)->mt_directory);
me->me_type = xstrdup ((*ent)->mt_fstype);
me->me_dummy = ME_DUMMY (me->me_devname, me->me_type);
me->me_remote = ME_REMOTE (me->me_devname, me->me_type);
me->me_dev = (dev_t) -1; /* Magic; means not known yet. */
me->me_next = NULL;
/* Add to the linked list. */
mtail->me_next = me;
mtail = me;
*mtail = me;
mtail = &me->me_next;
}
endmnttbl();
}
@@ -532,7 +534,6 @@ read_filesystem_list (need_fs_type, all_fs)
FILE *fp;
int ret;
int lockfd = -1;
int fail = 0;
# if defined F_RDLCK && defined F_SETLKW
/* MNTTAB_LOCK is a macro name of our own invention; it's not present in
@@ -552,46 +553,49 @@ read_filesystem_list (need_fs_type, all_fs)
flock.l_len = 0;
while (fcntl (lockfd, F_SETLKW, &flock) == -1)
if (errno != EINTR)
return NULL;
{
int saved_errno = errno;
close (lockfd);
errno = saved_errno;
return NULL;
}
}
else if (errno != ENOENT)
return NULL;
# endif
errno = 0;
fp = fopen (table, "r");
if (fp == NULL)
ret = errno;
else
{
/* FIXME maybe: this close could clobber errno from fopen failure. */
if (0 <= lockfd)
close (lockfd);
return NULL;
while ((ret = getmntent (fp, &mnt)) == 0)
{
me = (struct mount_entry *) xmalloc (sizeof (struct mount_entry));
me->me_devname = xstrdup (mnt.mnt_special);
me->me_mountdir = xstrdup (mnt.mnt_mountp);
me->me_type = xstrdup (mnt.mnt_fstype);
me->me_dummy = MNT_IGNORE (&mnt) != 0;
me->me_remote = ME_REMOTE (me->me_devname, me->me_type);
me->me_dev = (dev_t) -1; /* Magic; means not known yet. */
/* Add to the linked list. */
*mtail = me;
mtail = &me->me_next;
}
ret = fclose (fp) == EOF ? errno : 0 < ret ? 0 : -1;
}
while ((ret = getmntent (fp, &mnt)) == 0)
{
/* Don't show automounted filesystems twice on e.g., Solaris. */
if (!all_fs && MNT_IGNORE (&mnt))
continue;
me = (struct mount_entry *) xmalloc (sizeof (struct mount_entry));
me->me_devname = xstrdup (mnt.mnt_special);
me->me_mountdir = xstrdup (mnt.mnt_mountp);
me->me_type = xstrdup (mnt.mnt_fstype);
me->me_dev = (dev_t) -1; /* Magic; means not known yet. */
me->me_next = NULL;
/* Add to the linked list. */
mtail->me_next = me;
mtail = me;
}
if (ret > 0)
fail = 1;
if (fclose (fp) == EOF)
fail = 1;
if (0 <= lockfd && close (lockfd) != 0)
fail = 1;
ret = errno;
if (fail)
return NULL;
if (0 <= ret)
{
errno = ret;
goto free_then_fail;
}
}
#endif /* MOUNTED_GETMNTENT2. */
@@ -617,6 +621,7 @@ read_filesystem_list (need_fs_type, all_fs)
{
char *host, *path;
me->me_remote = 1;
/* Prepend the remote pathname. */
host = thisent + vmp->vmt_data[VMT_HOSTNAME].vmt_off;
path = thisent + vmp->vmt_data[VMT_OBJECT].vmt_off;
@@ -627,25 +632,43 @@ read_filesystem_list (need_fs_type, all_fs)
}
else
{
me->me_remote = 0;
me->me_devname = xstrdup (thisent +
vmp->vmt_data[VMT_OBJECT].vmt_off);
}
me->me_mountdir = xstrdup (thisent + vmp->vmt_data[VMT_STUB].vmt_off);
me->me_type = xstrdup (fstype_to_string (vmp->vmt_gfstype));
me->me_dummy = ME_DUMMY (me->me_devname, me->me_type);
me->me_dev = (dev_t) -1; /* vmt_fsid might be the info we want. */
me->me_next = NULL;
/* Add to the linked list. */
mtail->me_next = me;
mtail = me;
*mtail = me;
mtail = &me->me_next;
}
free (entries);
}
#endif /* MOUNTED_VMOUNT. */
/* Free the dummy head. */
me = mount_list;
mount_list = mount_list->me_next;
free (me);
*mtail = NULL;
return mount_list;
free_then_fail:
{
int saved_errno = errno;
*mtail = NULL;
while (mount_list)
{
me = mount_list->me_next;
free (mount_list->me_devname);
free (mount_list->me_mountdir);
/* FIXME: me_type is not always malloced. */
free (mount_list);
mount_list = me;
}
errno = saved_errno;
return NULL;
}
}

View File

@@ -1,5 +1,5 @@
/* mountlist.h -- declarations for list of mounted filesystems
Copyright (C) 1991, 1992 Free Software Foundation, Inc.
Copyright (C) 1991, 1992, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -22,11 +22,26 @@ struct mount_entry
char *me_mountdir; /* Mount point directory pathname. */
char *me_type; /* "nfs", "4.2", etc. */
dev_t me_dev; /* Device number of me_mountdir. */
unsigned int me_dummy : 1; /* Nonzero for dummy filesystems. */
unsigned int me_remote : 1; /* Nonzero for remote fileystems. */
struct mount_entry *me_next;
};
#if __STDC__
struct mount_entry *read_filesystem_list (int need_fs_type, int all_fs);
#else
struct mount_entry *read_filesystem_list ();
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
struct mount_entry *read_filesystem_list PARAMS ((int need_fs_type));
#ifndef ME_DUMMY
# define ME_DUMMY(fs_name, fs_type) \
(!strcmp (fs_type, "auto") || !strcmp (fs_type, "ignore"))
#endif
#ifndef ME_REMOTE
# define ME_REMOTE(fs_name, fs_type) (strchr (fs_name, ':') != 0)
#endif

View File

@@ -42,10 +42,7 @@ char *malloc ();
BASE in the returned concatenation. */
char *
path_concat (dir, base, base_in_result)
const char *dir;
const char *base;
char **base_in_result;
path_concat (const char *dir, const char *base, char **base_in_result)
{
char *p;
char *p_concat;

File diff suppressed because it is too large Load Diff

24
lib/posixtm.h Normal file
View File

@@ -0,0 +1,24 @@
#ifndef POSIXTM_H_
# define POSIXTM_H_
/* POSIX Date Syntax flags. */
# define PDS_LEADING_YEAR 1
# define PDS_TRAILING_YEAR 2
# define PDS_CENTURY 4
# define PDS_SECONDS 8
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
time_t
posixtime PARAMS ((const char *s, unsigned int syntax_bits));
struct tm *
posixtm PARAMS ((const char *s, unsigned int syntax_bits));
#endif

View File

@@ -1,242 +0,0 @@
/* Parse dates for touch.
Copyright (C) 1989, 1990, 1991 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 Kingdon and David MacKenzie. */
%{
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
/* The following block of alloca-related preprocessor directives is here
solely to allow compilation by non GNU-C compilers of the C parser
produced from this file by old versions of bison. Newer versions of
bison include a block similar to this one in bison.simple. */
#ifdef __GNUC__
#define alloca __builtin_alloca
#else
#ifdef HAVE_ALLOCA_H
#include <alloca.h>
#else
#ifdef _AIX
#pragma alloca
#else
void *alloca ();
#endif
#endif
#endif
#include <stdio.h>
#include <sys/types.h>
#ifdef TM_IN_SYS_TIME
#include <sys/time.h>
#else
#include <time.h>
#endif
/* Some old versions of bison generate parsers that use bcopy.
That loses on systems that don't provide the function, so we have
to redefine it here. */
#if !defined (HAVE_BCOPY) && defined (HAVE_MEMCPY) && !defined (bcopy)
#define bcopy(from, to, len) memcpy ((to), (from), (len))
#endif
#define YYDEBUG 1
/* Lexical analyzer's current scan position in the input string. */
static char *curpos;
/* The return value. */
static struct tm t;
time_t mktime ();
/* Remap normal yacc parser interface names (yyparse, yylex, yyerror, etc),
as well as gratuitiously global symbol names, so we can have multiple
yacc generated parsers in the same program. Note that these are only
the variables produced by yacc. If other parser generators (bison,
byacc, etc) produce additional global names that conflict at link time,
then those parser generators need to be fixed instead of adding those
names to this list. */
#define yymaxdepth pt_maxdepth
#define yyparse pt_parse
#define yylex pt_lex
#define yyerror pt_error
#define yylval pt_lval
#define yychar pt_char
#define yydebug pt_debug
#define yypact pt_pact
#define yyr1 pt_r1
#define yyr2 pt_r2
#define yydef pt_def
#define yychk pt_chk
#define yypgo pt_pgo
#define yyact pt_act
#define yyexca pt_exca
#define yyerrflag pt_errflag
#define yynerrs pt_nerrs
#define yyps pt_ps
#define yypv pt_pv
#define yys pt_s
#define yy_yys pt_yys
#define yystate pt_state
#define yytmp pt_tmp
#define yyv pt_v
#define yy_yyv pt_yyv
#define yyval pt_val
#define yylloc pt_lloc
#define yyreds pt_reds /* With YYDEBUG defined */
#define yytoks pt_toks /* With YYDEBUG defined */
#define yylhs pt_yylhs
#define yylen pt_yylen
#define yydefred pt_yydefred
#define yydgoto pt_yydgoto
#define yysindex pt_yysindex
#define yyrindex pt_yyrindex
#define yygindex pt_yygindex
#define yytable pt_yytable
#define yycheck pt_yycheck
static int yylex ();
static int yyerror ();
%}
%token DIGIT
%%
date :
digitpair /* month */
digitpair /* day */
digitpair /* hours */
digitpair /* minutes */
year
seconds {
if ($1 >= 1 && $1 <= 12)
t.tm_mon = $1 - 1;
else {
YYABORT;
}
if ($2 >= 1 && $2 <= 31)
t.tm_mday = $2;
else {
YYABORT;
}
if ($3 >= 0 && $3 <= 23)
t.tm_hour = $3;
else {
YYABORT;
}
if ($4 >= 0 && $4 <= 59)
t.tm_min = $4;
else {
YYABORT;
}
}
year : digitpair {
t.tm_year = $1;
/* Deduce the century based on the year.
See POSIX.2 section 4.63.3. */
if ($1 <= 68)
t.tm_year += 100;
}
| digitpair digitpair {
t.tm_year = $1 * 100 + $2;
if (t.tm_year < 1900) {
YYABORT;
} else
t.tm_year -= 1900;
}
| /* empty */ {
time_t now;
struct tm *tmp;
/* Use current year. */
time (&now);
tmp = localtime (&now);
t.tm_year = tmp->tm_year;
}
;
seconds : /* empty */ {
t.tm_sec = 0;
}
| '.' digitpair {
if ($2 >= 0 && $2 <= 61)
t.tm_sec = $2;
else {
YYABORT;
}
}
;
digitpair : DIGIT DIGIT {
$$ = $1 * 10 + $2;
}
;
%%
static int
yylex ()
{
char ch = *curpos++;
if (ch >= '0' && ch <= '9')
{
yylval = ch - '0';
return DIGIT;
}
else if (ch == '.' || ch == 0)
return ch;
else
return '?'; /* Cause an error. */
}
static int
yyerror ()
{
return 0;
}
/* Parse a POSIX-style date and return it, or (time_t)-1 for an error. */
time_t
posixtime (s)
char *s;
{
curpos = s;
/* Let mktime decide whether it is daylight savings time. */
t.tm_isdst = -1;
if (yyparse ())
return (time_t)-1;
else
return mktime (&t);
}
/* Parse a POSIX-style date and return it, or NULL for an error. */
struct tm *
posixtm (s)
char *s;
{
if (posixtime (s) == -1)
return NULL;
return &t;
}

View File

@@ -23,16 +23,15 @@
# include <config.h>
#endif
/* Disable the definition of putenv to rpl_putenv (from config.h) in this
file. Otherwise, we'd get conflicting prototypes for rpl_putenv on
systems like Irix 5.3. */
#undef putenv
#include <sys/types.h>
#if defined (__GNU_LIBRARY__) || defined (HAVE_STDLIB_H)
# include <stdlib.h>
#endif
/* Don't include stdlib.h because some (e.g., Solaris 2.7) declare putenv
with a non-const argument. That would conflict with the declaration of
rpl_putenv below (due to the #define putenv rpl_putenv from config.h). */
char *malloc ();
void free ();
#if defined (__GNU_LIBRARY__) || defined (HAVE_STRING_H)
# include <string.h>
#endif
@@ -60,8 +59,7 @@ extern char **environ;
/* Put STRING, which is of the form "NAME=VALUE", in the environment. */
int
rpl_putenv (string)
const char *string;
rpl_putenv (const char *string)
{
const char *const name_end = strchr (string, '=');
register size_t size;

View File

@@ -1,5 +1,5 @@
/* quotearg.c - quote arguments for output
Copyright (C) 1998 Free Software Foundation, Inc.
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -71,7 +71,22 @@ struct quoting_options
/* Names of quoting styles. */
char const *const quoting_style_args[] =
{
"literal", "shell", "shell-always", "c", "escape", 0
"literal",
"shell",
"shell-always",
"c",
"escape",
0
};
/* Correspondances to quoting style names. */
enum quoting_style const quoting_style_vals[] =
{
literal_quoting_style,
shell_quoting_style,
shell_always_quoting_style,
c_quoting_style,
escape_quoting_style
};
/* The default quoting options. */
@@ -151,7 +166,7 @@ quotearg_buffer (char *buffer, size_t buffersize,
switch (quoting_style)
{
case shell_quoting_style:
if (! (argsize == -1 ? arg[0] == '\0' : argsize == 0))
if (! (argsize == (size_t) -1 ? arg[0] == '\0' : argsize == 0))
{
switch (arg[0])
{
@@ -162,7 +177,7 @@ quotearg_buffer (char *buffer, size_t buffersize,
len = 0;
for (i = 0; ; i++)
{
if (argsize == -1 ? arg[i] == '\0' : i == argsize)
if (argsize == (size_t) -1 ? arg[i] == '\0' : i == argsize)
goto done;
c = arg[i];
@@ -209,7 +224,7 @@ quotearg_buffer (char *buffer, size_t buffersize,
if (quote_mark)
STORE (quote_mark);
for (i = 0; ! (argsize == -1 ? arg[i] == '\0' : i == argsize); i++)
for (i = 0; ! (argsize == (size_t) -1 ? arg[i] == '\0' : i == argsize); i++)
{
c = arg[i];
@@ -243,11 +258,6 @@ quotearg_buffer (char *buffer, size_t buffersize,
case '\t': c = 't'; goto store_escape;
case '\v': c = 'v'; goto store_escape;
case ' ':
if (quoting_style == escape_quoting_style)
goto store_escape;
break;
case '"':
if (quoting_style == c_quoting_style)
goto store_escape;
@@ -258,8 +268,8 @@ quotearg_buffer (char *buffer, size_t buffersize,
{
STORE ('\\');
STORE ('0' + (c >> 6));
STORE ('0' + ((c >> 3) & 3));
c = '0' + (c & 3);
STORE ('0' + ((c >> 3) & 7));
c = '0' + (c & 7);
goto store_c;
}
break;
@@ -289,11 +299,13 @@ quotearg_buffer (char *buffer, size_t buffersize,
OPTIONS specifies the 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. */
N must be nonnegative. N is deliberately declared with type `int'
to allow for future extensions (using negative values). */
static char *
quotearg_n_options (int n, char const *arg, struct quoting_options *options)
quotearg_n_options (int n, char const *arg,
struct quoting_options const *options)
{
static unsigned nslots;
static unsigned int nslots;
static struct slotvec
{
size_t size;
@@ -328,7 +340,7 @@ quotearg_n_options (int n, char const *arg, struct quoting_options *options)
}
char *
quotearg_n (int n, char const *arg)
quotearg_n (unsigned int n, char const *arg)
{
return quotearg_n_options (n, arg, &default_quoting_options);
}

View File

@@ -1,5 +1,5 @@
/* quotearg.h - quote arguments for output
Copyright (C) 1998 Free Software Foundation, Inc.
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -33,8 +33,9 @@ enum quoting_style
# define DEFAULT_QUOTING_STYLE literal_quoting_style
#endif
/* Names of quoting styles. */
/* Names of quoting styles and their corresponding values. */
extern char const *const quoting_style_args[];
extern enum quoting_style const quoting_style_vals[];
struct quoting_options;
@@ -87,9 +88,9 @@ size_t quotearg_buffer PARAMS ((char *buffer, size_t buffersize,
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 PARAMS ((unsigned int n, char const *arg));
/* Equivalent to quotearg_n (ARG, 0). */
/* Equivalent to quotearg_n (0, ARG). */
char *quotearg PARAMS ((char const *arg));
/* Like quotearg (ARG), except also quote any instances of CH. */

View File

@@ -4,23 +4,20 @@
internationalization features.)
Copyright (C) 1993, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* AIX requires this to be the first thing in the file. */
#if defined _AIX && !defined REGEX_MALLOC
@@ -49,16 +46,41 @@
# include <sys/types.h>
#endif
#define WIDE_CHAR_SUPPORT \
defined _LIBC || (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC)
#define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC)
/* For platform which support the ISO C amendement 1 functionality we
support user defined character classes. */
#if WIDE_CHAR_SUPPORT
#if defined _LIBC || WIDE_CHAR_SUPPORT
/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
# include <wchar.h>
# include <wctype.h>
#endif
#ifdef _LIBC
/* We have to keep the namespace clean. */
# define regfree(preg) __regfree (preg)
# define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef)
# define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags)
# define regerror(errcode, preg, errbuf, errbuf_size) \
__regerror(errcode, preg, errbuf, errbuf_size)
# define re_set_registers(bu, re, nu, st, en) \
__re_set_registers (bu, re, nu, st, en)
# define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \
__re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
# define re_match(bufp, string, size, pos, regs) \
__re_match (bufp, string, size, pos, regs)
# define re_search(bufp, string, size, startpos, range, regs) \
__re_search (bufp, string, size, startpos, range, regs)
# define re_compile_pattern(pattern, length, bufp) \
__re_compile_pattern (pattern, length, bufp)
# define re_set_syntax(syntax) __re_set_syntax (syntax)
# define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \
__re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop)
# define re_compile_fastmap(bufp) __re_compile_fastmap (bufp)
#define btowc __btowc
#endif
/* This is for other GNU distributions with internationalized messages. */
#if HAVE_LIBINTL_H || defined _LIBC
# include <libintl.h>
@@ -110,8 +132,12 @@ char *realloc ();
# ifndef INHIBIT_STRING_HEADER
# if defined HAVE_STRING_H || defined STDC_HEADERS || defined _LIBC
# include <string.h>
# if !defined bzero && !defined _LIBC
# define bzero(s, n) (memset (s, '\0', n), (s))
# ifndef bzero
# ifndef _LIBC
# define bzero(s, n) (memset (s, '\0', n), (s))
# else
# define bzero(s, n) __bzero (s, n)
# endif
# endif
# else
# include <strings.h>
@@ -181,7 +207,7 @@ init_syntax_once ()
#endif /* not emacs */
/* Get the interface, including the syntax bits. */
#include "regex.h"
#include <regex.h>
/* isalpha etc. are used for the character classes. */
#include <ctype.h>
@@ -195,7 +221,8 @@ init_syntax_once ()
STDC_HEADERS is defined, then autoconf has verified that the ctype
macros don't need to be guarded with references to isascii. ...
Defining isascii to 1 should let any compiler worth its salt
eliminate the && through constant folding." */
eliminate the && through constant folding."
Solaris defines some of these symbols so we must undefine them first. */
#undef ISASCII
#if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)
@@ -971,6 +998,9 @@ re_set_syntax (syntax)
#endif /* DEBUG */
return ret;
}
#ifdef _LIBC
weak_alias (__re_set_syntax, re_set_syntax)
#endif
/* This table gives an error message for each of the error codes listed
in regex.h. Obviously the order here has to be same as there.
@@ -1688,7 +1718,7 @@ typedef struct
} \
}
#if WIDE_CHAR_SUPPORT
#if defined _LIBC || WIDE_CHAR_SUPPORT
/* The GNU C library provides support for user-defined character classes
and the functions from ISO C amendement 1. */
# ifdef CHARCLASS_NAME_MAX
@@ -1699,7 +1729,11 @@ typedef struct
# define CHAR_CLASS_MAX_LENGTH 256
# endif
# define IS_CHAR_CLASS(string) wctype (string)
# ifdef _LIBC
# define IS_CHAR_CLASS(string) __wctype (string)
# else
# define IS_CHAR_CLASS(string) wctype (string)
# endif
#else
# define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */
@@ -2176,25 +2210,28 @@ regex_compile (pattern, size, syntax, bufp)
for (;;)
{
PATFETCH (c);
if (c == ':' || c == ']' || p == pend
|| c1 == CHAR_CLASS_MAX_LENGTH)
if ((c == ':' && *p == ']') || p == pend)
break;
str[c1++] = c;
if (c1 < CHAR_CLASS_MAX_LENGTH)
str[c1++] = c;
else
/* This is in any case an invalid class name. */
str[0] = '\0';
}
str[c1] = '\0';
/* If isn't a word bracketed by `[:' and:`]':
/* If isn't a word bracketed by `[:' and `:]':
undo the ending character, the letters, and leave
the leading `:' and `[' (but set bits for them). */
if (c == ':' && *p == ']')
{
#if WIDE_CHAR_SUPPORT
#if defined _LIBC || WIDE_CHAR_SUPPORT
boolean is_lower = STREQ (str, "lower");
boolean is_upper = STREQ (str, "upper");
wctype_t wt;
int ch;
wt = wctype (str);
wt = IS_CHAR_CLASS (str);
if (wt == 0)
FREE_STACK_RETURN (REG_ECTYPE);
@@ -2206,8 +2243,13 @@ regex_compile (pattern, size, syntax, bufp)
for (ch = 0; ch < 1 << BYTEWIDTH; ++ch)
{
# ifdef _LIBC
if (__iswctype (__btowc (ch), wt))
SET_LIST_BIT (ch);
# else
if (iswctype (btowc (ch), wt))
SET_LIST_BIT (ch);
# endif
if (translate && (is_upper || is_lower)
&& (ISUPPER (ch) || ISLOWER (ch)))
@@ -2691,7 +2733,7 @@ regex_compile (pattern, size, syntax, bufp)
case 'w':
if (re_syntax_options & RE_NO_GNU_OPS)
if (syntax & RE_NO_GNU_OPS)
goto normal_char;
laststart = b;
BUF_PUSH (wordchar);
@@ -2699,7 +2741,7 @@ regex_compile (pattern, size, syntax, bufp)
case 'W':
if (re_syntax_options & RE_NO_GNU_OPS)
if (syntax & RE_NO_GNU_OPS)
goto normal_char;
laststart = b;
BUF_PUSH (notwordchar);
@@ -2707,37 +2749,37 @@ regex_compile (pattern, size, syntax, bufp)
case '<':
if (re_syntax_options & RE_NO_GNU_OPS)
if (syntax & RE_NO_GNU_OPS)
goto normal_char;
BUF_PUSH (wordbeg);
break;
case '>':
if (re_syntax_options & RE_NO_GNU_OPS)
if (syntax & RE_NO_GNU_OPS)
goto normal_char;
BUF_PUSH (wordend);
break;
case 'b':
if (re_syntax_options & RE_NO_GNU_OPS)
if (syntax & RE_NO_GNU_OPS)
goto normal_char;
BUF_PUSH (wordbound);
break;
case 'B':
if (re_syntax_options & RE_NO_GNU_OPS)
if (syntax & RE_NO_GNU_OPS)
goto normal_char;
BUF_PUSH (notwordbound);
break;
case '`':
if (re_syntax_options & RE_NO_GNU_OPS)
if (syntax & RE_NO_GNU_OPS)
goto normal_char;
BUF_PUSH (begbuf);
break;
case '\'':
if (re_syntax_options & RE_NO_GNU_OPS)
if (syntax & RE_NO_GNU_OPS)
goto normal_char;
BUF_PUSH (endbuf);
break;
@@ -3375,6 +3417,9 @@ re_compile_fastmap (bufp)
RESET_FAIL_STACK ();
return 0;
} /* re_compile_fastmap */
#ifdef _LIBC
weak_alias (__re_compile_fastmap, re_compile_fastmap)
#endif
/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
ENDS. Subsequent matches using PATTERN_BUFFER and REGS will use
@@ -3410,6 +3455,9 @@ re_set_registers (bufp, regs, num_regs, starts, ends)
regs->start = regs->end = (regoff_t *) 0;
}
}
#ifdef _LIBC
weak_alias (__re_set_registers, re_set_registers)
#endif
/* Searching routines. */
@@ -3426,6 +3474,9 @@ re_search (bufp, string, size, startpos, range, regs)
return re_search_2 (bufp, NULL, 0, string, size, startpos, range,
regs, size);
}
#ifdef _LIBC
weak_alias (__re_search, re_search)
#endif
/* Using the compiled pattern in BUFP->buffer, first tries to match the
@@ -3479,7 +3530,11 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
/* If the search isn't to be a backwards one, don't waste time in a
search for a pattern that must be anchored. */
if (bufp->used > 0 && (re_opcode_t) bufp->buffer[0] == begbuf && range > 0)
if (bufp->used > 0 && range > 0
&& ((re_opcode_t) bufp->buffer[0] == begbuf
/* `begline' is like `begbuf' if it cannot match at newlines. */
|| ((re_opcode_t) bufp->buffer[0] == begline
&& !bufp->newline_anchor)))
{
if (startpos > 0)
return -1;
@@ -3582,6 +3637,9 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
}
return -1;
} /* re_search_2 */
#ifdef _LIBC
weak_alias (__re_search_2, re_search_2)
#endif
/* This converts PTR, a pointer into one of the search strings `string1'
and `string2' into an offset from the beginning of that string. */
@@ -3683,6 +3741,9 @@ re_match (bufp, string, size, pos, regs)
# endif
return result;
}
# ifdef _LIBC
weak_alias (__re_match, re_match)
# endif
#endif /* not emacs */
static boolean group_match_null_string_p _RE_ARGS ((unsigned char **p,
@@ -3728,6 +3789,9 @@ re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
#endif
return result;
}
#ifdef _LIBC
weak_alias (__re_match_2, re_match_2)
#endif
/* This is a separate function so that we can force an alloca cleanup
afterwards. */
@@ -5421,6 +5485,9 @@ re_compile_pattern (pattern, length, bufp)
return NULL;
return gettext (re_error_msgid[(int) ret]);
}
#ifdef _LIBC
weak_alias (__re_compile_pattern, re_compile_pattern)
#endif
/* Entry points compatible with 4.2 BSD regex library. We don't define
them unless specifically requested. */
@@ -5453,12 +5520,12 @@ re_comp (s)
{
re_comp_buf.buffer = (unsigned char *) malloc (200);
if (re_comp_buf.buffer == NULL)
return gettext (re_error_msgid[(int) REG_ESPACE]);
return (char *) gettext (re_error_msgid[(int) REG_ESPACE]);
re_comp_buf.allocated = 200;
re_comp_buf.fastmap = (char *) malloc (1 << BYTEWIDTH);
if (re_comp_buf.fastmap == NULL)
return gettext (re_error_msgid[(int) REG_ESPACE]);
return (char *) gettext (re_error_msgid[(int) REG_ESPACE]);
}
/* Since `re_exec' always passes NULL for the `regs' argument, we
@@ -5506,7 +5573,8 @@ re_exec (s)
REG_EXTENDED bit in CFLAGS is set; otherwise, to
RE_SYNTAX_POSIX_BASIC;
`newline_anchor' to REG_NEWLINE being set in CFLAGS;
`fastmap' and `fastmap_accurate' to zero;
`fastmap' to an allocated space for the fastmap;
`fastmap_accurate' to zero;
`re_nsub' to the number of subexpressions in PATTERN.
PATTERN is the address of the pattern string.
@@ -5545,11 +5613,8 @@ regcomp (preg, pattern, cflags)
preg->allocated = 0;
preg->used = 0;
/* Don't bother to use a fastmap when searching. This simplifies the
REG_NEWLINE case: if we used a fastmap, we'd have to put all the
characters after newlines into the fastmap. This way, we just try
every character. */
preg->fastmap = 0;
/* Try to allocate space for the fastmap. */
preg->fastmap = (char *) malloc (1 << BYTEWIDTH);
if (cflags & REG_ICASE)
{
@@ -5589,8 +5654,24 @@ regcomp (preg, pattern, cflags)
unmatched close-group: both are REG_EPAREN. */
if (ret == REG_ERPAREN) ret = REG_EPAREN;
if (ret == REG_NOERROR && preg->fastmap)
{
/* Compute the fastmap now, since regexec cannot modify the pattern
buffer. */
if (re_compile_fastmap (preg) == -2)
{
/* Some error occured while computing the fastmap, just forget
about it. */
free (preg->fastmap);
preg->fastmap = NULL;
}
}
return (int) ret;
}
#ifdef _LIBC
weak_alias (__regcomp, regcomp)
#endif
/* regexec searches for a given pattern, specified by PREG, in the
@@ -5634,10 +5715,10 @@ regexec (preg, string, nmatch, pmatch, eflags)
if (want_reg_info)
{
regs.num_regs = nmatch;
regs.start = TALLOC (nmatch, regoff_t);
regs.end = TALLOC (nmatch, regoff_t);
if (regs.start == NULL || regs.end == NULL)
regs.start = TALLOC (nmatch * 2, regoff_t);
if (regs.start == NULL)
return (int) REG_NOMATCH;
regs.end = regs.start + nmatch;
}
/* Perform the searching operation. */
@@ -5661,12 +5742,14 @@ regexec (preg, string, nmatch, pmatch, eflags)
/* If we needed the temporary register info, free the space now. */
free (regs.start);
free (regs.end);
}
/* We want zero return to mean success, unlike `re_search'. */
return ret >= 0 ? (int) REG_NOERROR : (int) REG_NOMATCH;
}
#ifdef _LIBC
weak_alias (__regexec, regexec)
#endif
/* Returns a message corresponding to an error code, ERRCODE, returned
@@ -5712,6 +5795,9 @@ regerror (errcode, preg, errbuf, errbuf_size)
return msg_size;
}
#ifdef _LIBC
weak_alias (__regerror, regerror)
#endif
/* Free dynamically allocated space used by PREG. */
@@ -5736,5 +5822,8 @@ regfree (preg)
free (preg->translate);
preg->translate = NULL;
}
#ifdef _LIBC
weak_alias (__regfree, regfree)
#endif
#endif /* not emacs */

View File

@@ -1,25 +1,24 @@
/* Definitions for data structures and routines for the regular
expression library, version 0.12.
Copyright (C) 1985,89,90,91,92,93,95,96,97 Free Software Foundation, Inc.
Copyright (C) 1985,89,90,91,92,93,95,96,97,98 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.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _REGEX_H
#define _REGEX_H 1
@@ -283,8 +282,8 @@ extern reg_syntax_t re_syntax_options;
`re_error_msg' table in regex.c. */
typedef enum
{
#if (_XOPEN_SOURCE - 0) == 500
REG_NOSYS = -1, /* This will never happen for this implementation. */
#ifdef _XOPEN_SOURCE
REG_ENOSYS = -1, /* This will never happen for this implementation. */
#endif
REG_NOERROR = 0, /* Success. */
@@ -506,7 +505,7 @@ extern void re_set_registers
_RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
unsigned num_regs, regoff_t *starts, regoff_t *ends));
#ifdef _REGEX_RE_COMP
#if defined _REGEX_RE_COMP || defined _LIBC
# ifndef _CRAY
/* 4.2 bsd compatibility. */
extern char *re_comp _RE_ARGS ((const char *));
@@ -515,14 +514,17 @@ extern int re_exec _RE_ARGS ((const char *));
#endif
/* POSIX compatibility. */
extern int regcomp _RE_ARGS ((regex_t *preg, const char *pattern, int cflags));
extern int regexec
_RE_ARGS ((const regex_t *preg, const char *string, size_t nmatch,
regmatch_t pmatch[], int eflags));
extern size_t regerror
_RE_ARGS ((int errcode, const regex_t *preg, char *errbuf,
size_t errbuf_size));
extern void regfree _RE_ARGS ((regex_t *preg));
extern int regcomp _RE_ARGS ((regex_t *__preg, const char *__pattern,
int __cflags));
extern int regexec _RE_ARGS ((const regex_t *__preg,
const char *__string, size_t __nmatch,
regmatch_t __pmatch[], int __eflags));
extern size_t regerror _RE_ARGS ((int __errcode, const regex_t *__preg,
char *__errbuf, size_t __errbuf_size));
extern void regfree _RE_ARGS ((regex_t *__preg));
#ifdef __cplusplus

View File

@@ -38,9 +38,7 @@ extern int errno;
Return 0 if successful, -1 if not. */
int
rename (from, to)
char *from;
char *to;
rename (char *from, char *to)
{
struct stat from_stats, to_stats;
int pid, status;

View File

@@ -1,6 +1,6 @@
/* Determine whether string value is affirmation or negative response
according to current locale's data.
Copyright (C) 1996 Free Software Foundation, Inc.
Copyright (C) 1996, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -29,28 +29,15 @@
# endif
#endif
#include <sys/types.h>
#if WITH_REGEX
# include <regex.h>
#else
# include <rx.h>
#endif
#if ENABLE_NLS
# include <sys/types.h>
# include <regex.h>
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#endif
static int
try (response, pattern, match, nomatch, lastp, re)
const char *response;
const char *pattern;
const int match;
const int nomatch;
const char **lastp;
regex_t *re;
try (const char *response, const char *pattern, const int match,
const int nomatch, const char **lastp, regex_t *re)
{
if (pattern != *lastp)
{
@@ -70,12 +57,13 @@ try (response, pattern, match, nomatch, lastp, re)
/* See if the regular expression matches RESPONSE. */
return regexec (re, response, 0, NULL, 0) == 0 ? match : nomatch;
}
#endif
int
rpmatch (response)
const char *response;
rpmatch (const char *response)
{
#if ENABLE_NLS
/* Match against one of the response patterns, compiling the pattern
first if necessary. */
@@ -88,4 +76,9 @@ rpmatch (response)
&yesexpr, &yesre))
? result
: try (response, _("^[nN]"), 0, -1, &noexpr, &nore));
#else
/* Test against "^[yY]" and "^[nN]", hardcoded to avoid requiring regex */
return (*response == 'y' || *response == 'Y' ? 1
: *response == 'n' || *response == 'N' ? 0 : -1);
#endif
}

View File

@@ -38,7 +38,7 @@ extern int errno;
for an error. */
ssize_t
safe_read (int desc, char *ptr, size_t len)
safe_read (int desc, void *ptr, size_t len)
{
ssize_t n_chars;

View File

@@ -7,4 +7,4 @@
#endif
ssize_t
safe_read PARAMS ((int desc, char *ptr, size_t len));
safe_read PARAMS ((int desc, void *ptr, size_t len));

View File

@@ -57,8 +57,7 @@ char *xgetcwd PARAMS ((void));
called, but doing so is ok. Otherwise, return zero. */
int
save_cwd (cwd)
struct saved_cwd *cwd;
save_cwd (struct saved_cwd *cwd)
{
static int have_working_fchdir = 1;
@@ -118,10 +117,7 @@ save_cwd (cwd)
*/
int
restore_cwd (cwd, dest, from)
const struct saved_cwd *cwd;
const char *dest;
const char *from;
restore_cwd (const struct saved_cwd *cwd, const char *dest, const char *from)
{
int fail = 0;
if (cwd->desc >= 0)
@@ -144,8 +140,7 @@ restore_cwd (cwd, dest, from)
}
void
free_cwd (cwd)
struct saved_cwd *cwd;
free_cwd (struct saved_cwd *cwd)
{
if (cwd->desc >= 0)
close (cwd->desc);

View File

@@ -76,9 +76,7 @@ char *stpcpy ();
Return NULL if DIR cannot be opened or if out of memory. */
char *
savedir (dir, name_size)
const char *dir;
unsigned int name_size;
savedir (const char *dir, unsigned int name_size)
{
DIR *dirp;
struct dirent *dp;

View File

@@ -34,9 +34,7 @@
/* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */
char *
__stpcpy (dest, src)
char *dest;
const char *src;
__stpcpy (char *dest, const char *src)
{
register char *d = dest;
register const char *s = src;

66
lib/strcasecmp.c Normal file
View File

@@ -0,0 +1,66 @@
/* strcasecmp.c -- case insensitive string comparator
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef LENGTH_LIMIT
# define STRXCASECMP_FUNCTION strncasecmp
# define STRXCASECMP_DECLARE_N , size_t n
# define LENGTH_LIMIT_EXPR(Expr) Expr
#else
# define STRXCASECMP_FUNCTION strcasecmp
# define STRXCASECMP_DECLARE_N /* empty */
# define LENGTH_LIMIT_EXPR(Expr) 0
#endif
#include <sys/types.h>
#include <ctype.h>
#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
/* Compare {{no more than N characters of }}strings S1 and S2,
ignoring case, returning less than, equal to or
greater than zero if S1 is lexicographically less
than, equal to or greater than S2. */
int
STRXCASECMP_FUNCTION (const char *s1, const char *s2 STRXCASECMP_DECLARE_N)
{
register const unsigned char *p1 = (const unsigned char *) s1;
register const unsigned char *p2 = (const unsigned char *) s2;
unsigned char c1, c2;
if (p1 == p2 || LENGTH_LIMIT_EXPR (n == 0))
return 0;
do
{
c1 = TOLOWER (*p1);
c2 = TOLOWER (*p2);
if (LENGTH_LIMIT_EXPR (--n == 0) || c1 == '\0')
break;
++p1;
++p2;
}
while (c1 == c2);
return c1 - c2;
}

View File

@@ -31,8 +31,7 @@ char *strcpy ();
or 0 if out of memory. */
char *
strdup (str)
const char *str;
strdup (const char *str)
{
char *newstr;

View File

@@ -22,11 +22,6 @@
# include <config.h>
#endif
/* Some systems need this in order to declare localtime_r properly. */
#ifndef _REENTRANT
# define _REENTRANT 1
#endif
#ifdef _LIBC
# define HAVE_LIMITS_H 1
# define HAVE_MBLEN 1
@@ -136,7 +131,7 @@ extern char *tzname[];
add one for integer division truncation;
add one more for a minus sign if t is signed. */
#define INT_STRLEN_BOUND(t) \
((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 100 + 1 + TYPE_SIGNED (t))
((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 1000 + 1 + TYPE_SIGNED (t))
#define TM_YEAR_BASE 1900
@@ -149,21 +144,20 @@ extern char *tzname[];
#ifdef _LIBC
# define gmtime_r __gmtime_r
# define localtime_r __localtime_r
# define my_strftime_gmtime_r __gmtime_r
# define my_strftime_localtime_r __localtime_r
# define tzname __tzname
# define tzset __tzset
#else
# if ! HAVE_LOCALTIME_R
# if ! HAVE_TM_GMTOFF
/* Approximate gmtime_r as best we can in its absence. */
# undef gmtime_r
# define gmtime_r my_gmtime_r
static struct tm *gmtime_r __P ((const time_t *, struct tm *));
/* If we're a strftime substitute in a GNU program, then prefer gmtime
to gmtime_r, since many gmtime_r implementations are buggy.
Similarly for localtime_r. */
# if ! HAVE_TM_GMTOFF
static struct tm *my_strftime_gmtime_r __P ((const time_t *, struct tm *));
static struct tm *
gmtime_r (t, tp)
const time_t *t;
struct tm *tp;
my_strftime_gmtime_r (const time_t *t, struct tm *tp)
{
struct tm *l = gmtime (t);
if (! l)
@@ -171,16 +165,11 @@ gmtime_r (t, tp)
*tp = *l;
return tp;
}
# endif /* ! HAVE_TM_GMTOFF */
# endif /* ! HAVE_TM_GMTOFF */
/* Approximate localtime_r as best we can in its absence. */
# undef localtime_r
# define localtime_r my_ftime_localtime_r
static struct tm *localtime_r __P ((const time_t *, struct tm *));
static struct tm *my_strftime_localtime_r __P ((const time_t *, struct tm *));
static struct tm *
localtime_r (t, tp)
const time_t *t;
struct tm *tp;
my_strftime_localtime_r (const time_t *t, struct tm *tp)
{
struct tm *l = localtime (t);
if (! l)
@@ -188,7 +177,6 @@ localtime_r (t, tp)
*tp = *l;
return tp;
}
# endif /* ! HAVE_LOCALTIME_R */
#endif /* ! defined _LIBC */
@@ -282,10 +270,7 @@ static const char zeroes[16] = /* "0000000000000000" */
static char *memcpy_lowcase __P ((char *dest, const char *src, size_t len));
static char *
memcpy_lowcase (dest, src, len)
char *dest;
const char *src;
size_t len;
memcpy_lowcase (char *dest, const char *src, size_t len)
{
while (len-- > 0)
dest[len] = TOLOWER ((unsigned char) src[len]);
@@ -295,10 +280,7 @@ memcpy_lowcase (dest, src, len)
static char *memcpy_uppcase __P ((char *dest, const char *src, size_t len));
static char *
memcpy_uppcase (dest, src, len)
char *dest;
const char *src;
size_t len;
memcpy_uppcase (char *dest, const char *src, size_t len)
{
while (len-- > 0)
dest[len] = TOUPPER ((unsigned char) src[len]);
@@ -312,9 +294,7 @@ memcpy_uppcase (dest, src, len)
# define tm_diff ftime_tm_diff
static int tm_diff __P ((const struct tm *, const struct tm *));
static int
tm_diff (a, b)
const struct tm *a;
const struct tm *b;
tm_diff (const struct tm *a, const struct tm *b)
{
/* Compute intervening leap days correctly even if year is negative.
Take care to avoid int overflow in leap day calculations,
@@ -349,9 +329,7 @@ static int iso_week_days __P ((int, int));
__inline__
#endif
static int
iso_week_days (yday, wday)
int yday;
int wday;
iso_week_days (int yday, int wday)
{
/* Add enough to the first operand of % to make it nonnegative. */
int big_enough_multiple_of_7 = (-YDAY_MINIMUM / 7 + 2) * 7;
@@ -376,34 +354,35 @@ static char const month_name[][10] =
#ifdef emacs
# define my_strftime emacs_strftime
/* Emacs 20.2 uses `-Dstrftime=emacs_strftime' when compiling,
because that's how strftime used to be configured.
Undo this, since it gets in the way of accessing the underlying strftime,
which is needed for things like %Ec in Solaris.
The following two lines can be removed once Emacs stops compiling with
`-Dstrftime=emacs_strftime'. */
# undef strftime
size_t strftime __P ((char *, size_t, const char *, const struct tm *));
# define my_strftime emacs_strftimeu
# define ut_argument , ut
# define ut_argument_spec int ut;
# define ut_argument_spec_iso , int ut
#else
# define my_strftime strftime
# define ut_argument
# define ut_argument_spec
# define ut_argument_spec_iso
/* We don't have this information in general. */
# define ut 0
#endif
#if !defined _LIBC && HAVE_TZNAME && HAVE_TZSET
/* Solaris 2.5 tzset sometimes modifies the storage returned by localtime.
Work around this bug by copying *tp before it might be munged. */
size_t _strftime_copytm __P ((char *, size_t, const char *,
const struct tm *));
const struct tm * ut_argument_spec_iso));
size_t
my_strftime (s, maxsize, format, tp)
my_strftime (s, maxsize, format, tp ut_argument)
char *s;
size_t maxsize;
const char *format;
const struct tm *tp;
ut_argument_spec
{
struct tm tmcopy;
tmcopy = *tp;
return _strftime_copytm (s, maxsize, format, &tmcopy);
return _strftime_copytm (s, maxsize, format, &tmcopy ut_argument);
}
# undef my_strftime
# define my_strftime(S, Maxsize, Format, Tp) \
@@ -418,41 +397,40 @@ size_t strftime __P ((char *, size_t, const char *, const struct tm *));
anywhere, so to determine how many characters would be
written, use NULL for S and (size_t) UINT_MAX for MAXSIZE. */
size_t
my_strftime (s, maxsize, format, tp)
char *s;
size_t maxsize;
const char *format;
const struct tm *tp;
my_strftime (char *s, size_t maxsize, const char *format, const struct tm *tp
ut_argument_spec)
{
int hour12 = tp->tm_hour;
#ifdef _NL_CURRENT
const char *const a_wkday = _NL_CURRENT (LC_TIME, ABDAY_1 + tp->tm_wday);
const char *const f_wkday = _NL_CURRENT (LC_TIME, DAY_1 + tp->tm_wday);
const char *const a_month = _NL_CURRENT (LC_TIME, ABMON_1 + tp->tm_mon);
const char *const f_month = _NL_CURRENT (LC_TIME, MON_1 + tp->tm_mon);
const char *const ampm = _NL_CURRENT (LC_TIME,
hour12 > 11 ? PM_STR : AM_STR);
size_t aw_len = strlen (a_wkday);
size_t am_len = strlen (a_month);
size_t ap_len = strlen (ampm);
/* We cannot make the following values variables since we must delay
the evaluation of these values until really needed since some
expressions might not be valid in every situation. The `struct tm'
might be generated by a strptime() call that initialized
only a few elements. Dereference the pointers only if the format
requires this. Then it is ok to fail if the pointers are invalid. */
# define a_wkday _NL_CURRENT (LC_TIME, ABDAY_1 + tp->tm_wday)
# define f_wkday _NL_CURRENT (LC_TIME, DAY_1 + tp->tm_wday)
# define a_month _NL_CURRENT (LC_TIME, ABMON_1 + tp->tm_mon)
# define f_month _NL_CURRENT (LC_TIME, MON_1 + tp->tm_mon)
# define ampm _NL_CURRENT (LC_TIME, tp->tm_hour > 11 ? PM_STR : AM_STR)
# define aw_len strlen (a_wkday)
# define am_len strlen (a_month)
# define ap_len strlen (ampm)
#else
# if !HAVE_STRFTIME
const char *const f_wkday = weekday_name[tp->tm_wday];
const char *const f_month = month_name[tp->tm_mon];
const char *const a_wkday = f_wkday;
const char *const a_month = f_month;
const char *const ampm = "AMPM" + 2 * (hour12 > 11);
# define f_wkday (weekday_name[tp->tm_wday])
# define f_month (month_name[tp->tm_mon])
# define a_wkday f_wkday
# define a_month f_month
# define ampm ("AMPM" + 2 * (tp->tm_hour > 11))
size_t aw_len = 3;
size_t am_len = 3;
size_t ap_len = 2;
# endif
#endif
#if defined _NL_CURRENT || !HAVE_STRFTIME
size_t wkday_len = strlen (f_wkday);
size_t month_len = strlen (f_month);
#endif
const char *zone;
size_t zonelen;
size_t i = 0;
char *p = s;
const char *f;
@@ -468,25 +446,27 @@ my_strftime (s, maxsize, format, tp)
zone = (const char *) tp->tm_zone;
#endif
#if HAVE_TZNAME
/* POSIX.1 8.1.1 requires that whenever strftime() is called, the
time zone names contained in the external variable `tzname' shall
be set as if the tzset() function had been called. */
if (ut)
{
if (! (zone && *zone))
zone = "GMT";
}
else
{
/* POSIX.1 8.1.1 requires that whenever strftime() is called, the
time zone names contained in the external variable `tzname' shall
be set as if the tzset() function had been called. */
# if HAVE_TZSET
tzset ();
tzset ();
# endif
if (!(zone && *zone) && tp->tm_isdst >= 0)
zone = tzname[tp->tm_isdst];
}
#endif
if (! zone)
zone = ""; /* POSIX.2 requires the empty string here. */
zonelen = strlen (zone);
if (hour12 > 12)
hour12 -= 12;
else
if (hour12 == 0) hour12 = 12;
if (hour12 == 0)
hour12 = 12;
for (f = format; *f != '\0'; ++f)
{
@@ -552,7 +532,13 @@ my_strftime (s, maxsize, format, tp)
if (bytes == 0)
break;
if (bytes == (size_t) -2 || bytes == (size_t) -1)
if (bytes == (size_t) -2)
{
len += strlen (f + len);
break;
}
if (bytes == (size_t) -1)
{
len++;
break;
@@ -563,6 +549,7 @@ my_strftime (s, maxsize, format, tp)
while (! mbsinit (&mbstate));
cpy (len, f);
f += len - 1;
continue;
}
}
@@ -672,7 +659,7 @@ my_strftime (s, maxsize, format, tp)
to_lowcase = 0;
}
#if defined _NL_CURRENT || !HAVE_STRFTIME
cpy (wkday_len, f_wkday);
cpy (strlen (f_wkday), f_wkday);
break;
#else
goto underlying_strftime;
@@ -698,7 +685,7 @@ my_strftime (s, maxsize, format, tp)
to_lowcase = 0;
}
#if defined _NL_CURRENT || !HAVE_STRFTIME
cpy (month_len, f_month);
cpy (strlen (f_month), f_month);
break;
#else
goto underlying_strftime;
@@ -722,9 +709,7 @@ my_strftime (s, maxsize, format, tp)
subformat:
{
char *old_start = p;
size_t len = my_strftime (NULL, maxsize - i, subfmt, tp);
if (len == 0 && *subfmt)
return 0;
size_t len = my_strftime (NULL, (size_t) -1, subfmt, tp);
add (len, my_strftime (p, maxsize - i, subfmt, tp));
if (to_uppcase)
@@ -751,7 +736,7 @@ my_strftime (s, maxsize, format, tp)
*u++ = format_char;
*u = '\0';
len = strftime (ubuf, sizeof ubuf, ufmt, tp);
if (len == 0)
if (len == 0 && ubuf[0] != '\0')
return 0;
cpy (len, ubuf);
}
@@ -1149,7 +1134,16 @@ my_strftime (s, maxsize, format, tp)
to_uppcase = 0;
to_lowcase = 1;
}
cpy (zonelen, zone);
#if HAVE_TZNAME
/* The tzset() call might have changed the value. */
if (!(zone && *zone) && tp->tm_isdst >= 0)
zone = tzname[tp->tm_isdst];
#endif
if (! zone)
zone = ""; /* POSIX.2 requires the empty string here. */
cpy (strlen (zone), zone);
break;
case 'z': /* GNU extension. */
@@ -1161,34 +1155,39 @@ my_strftime (s, maxsize, format, tp)
#if HAVE_TM_GMTOFF
diff = tp->tm_gmtoff;
#else
struct tm gtm;
struct tm ltm;
time_t lt;
ltm = *tp;
lt = mktime (&ltm);
if (lt == (time_t) -1)
if (ut)
diff = 0;
else
{
/* mktime returns -1 for errors, but -1 is also a
valid time_t value. Check whether an error really
occurred. */
struct tm tm;
localtime_r (&lt, &tm);
struct tm gtm;
struct tm ltm;
time_t lt;
if ((ltm.tm_sec ^ tm.tm_sec)
| (ltm.tm_min ^ tm.tm_min)
| (ltm.tm_hour ^ tm.tm_hour)
| (ltm.tm_mday ^ tm.tm_mday)
| (ltm.tm_mon ^ tm.tm_mon)
| (ltm.tm_year ^ tm.tm_year))
ltm = *tp;
lt = mktime (&ltm);
if (lt == (time_t) -1)
{
/* mktime returns -1 for errors, but -1 is also a
valid time_t value. Check whether an error really
occurred. */
struct tm tm;
if (! my_strftime_localtime_r (&lt, &tm)
|| ((ltm.tm_sec ^ tm.tm_sec)
| (ltm.tm_min ^ tm.tm_min)
| (ltm.tm_hour ^ tm.tm_hour)
| (ltm.tm_mday ^ tm.tm_mday)
| (ltm.tm_mon ^ tm.tm_mon)
| (ltm.tm_year ^ tm.tm_year)))
break;
}
if (! my_strftime_gmtime_r (&lt, &gtm))
break;
diff = tm_diff (&ltm, &gtm);
}
if (! gmtime_r (&lt, &gtm))
break;
diff = tm_diff (&ltm, &gtm);
#endif
if (diff < 0)
@@ -1221,7 +1220,23 @@ my_strftime (s, maxsize, format, tp)
}
}
if (p)
if (p && i < maxsize)
*p = '\0';
return i;
}
#ifdef emacs
/* For Emacs we have a separate interface which corresponds to the normal
strftime function and does not have the extra information whether the
TP arguments comes from a `gmtime' call or not. */
size_t
emacs_strftime (s, maxsize, format, tp)
char *s;
size_t maxsize;
const char *format;
const struct tm *tp;
{
return my_strftime (s, maxsize, format, tp, 0);
}
#endif

View File

@@ -32,8 +32,7 @@
when given a path that ends in "/" (except for the root directory). */
void
strip_trailing_slashes (path)
char *path;
strip_trailing_slashes (char *path)
{
int last;

2
lib/strncasecmp.c Normal file
View File

@@ -0,0 +1,2 @@
#define LENGTH_LIMIT
#include "strcasecmp.c"

View File

@@ -33,9 +33,7 @@ char *malloc ();
/* Duplicate S, returning an identical malloc'd string. */
char *
strndup (s, n)
const char *s;
size_t n;
strndup (const char *s, size_t n)
{
char *new = malloc (n + 1);

View File

@@ -30,9 +30,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
typedef unsigned chartype;
char *
strstr (phaystack, pneedle)
const char *phaystack;
const char *pneedle;
strstr (const char *phaystack, const char *pneedle)
{
register const unsigned char *haystack, *needle;
register chartype b, c;

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1992, 1997, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -57,9 +57,7 @@ extern int errno;
/* Convert NPTR to a double. If ENDPTR is not NULL, a pointer to the
character after the last one used in the number is put in *ENDPTR. */
double
strtod (nptr, endptr)
const char *nptr;
char **endptr;
strtod (const char *nptr, char **endptr)
{
register const char *s;
short int sign;

View File

@@ -43,9 +43,7 @@
*/
int
strverscmp (s1, s2)
const char *s1;
const char *s2;
strverscmp (const char *s1, const char *s2)
{
const unsigned char *p1 = (const unsigned char *) s1;
const unsigned char *p2 = (const unsigned char *) s2;

View File

@@ -1,5 +1,5 @@
/* userspec.c -- Parse a user and group string.
Copyright (C) 1989, 1990, 1991, 1992, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1989-1992, 1997, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -93,8 +93,7 @@ char *strdup ();
otherwise return 0. */
static int
is_number (str)
const char *str;
is_number (const char *str)
{
for (; *str; str++)
if (!isdigit (*str))
@@ -115,11 +114,8 @@ is_number (str)
Return NULL if successful, a static error message string if not. */
const char *
parse_user_spec (spec_arg, uid, gid, username_arg, groupname_arg)
const char *spec_arg;
uid_t *uid;
gid_t *gid;
char **username_arg, **groupname_arg;
parse_user_spec (const char *spec_arg, uid_t *uid, gid_t *gid,
char **username_arg, char **groupname_arg)
{
static const char *tired = "virtual memory exhausted";
const char *error_msg;

81
lib/utime.c Normal file
View File

@@ -0,0 +1,81 @@
/* Copyright (C) 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* derived from a function in touch.c */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#undef utime
#include <sys/types.h>
#ifdef HAVE_UTIME_H
# include <utime.h>
#endif
#include "safe-read.h"
/* Some systems (even some that do have <utime.h>) don't declare this
structure anywhere. */
#ifndef HAVE_STRUCT_UTIMBUF
struct utimbuf
{
long actime;
long modtime;
};
#endif
/* Emulate utime (file, NULL) for systems (like 4.3BSD) that do not
interpret it to set the access and modification times of FILE to
the current time. Return 0 if successful, -1 if not. */
static int
utime_null (const char *file)
{
#if HAVE_UTIMES_NULL
return utimes (file, 0);
#else
int fd;
char c;
int status = 0;
struct stat sb;
fd = open (file, O_RDWR, 0666);
if (fd < 0
|| fstat (fd, &sb) < 0
|| safe_read (fd, &c, sizeof (char)) < 0
|| lseek (fd, (off_t) 0, SEEK_SET) < 0
|| full_write (fd, &c, sizeof (char)) < 0
/* Maybe do this -- it's necessary on SunOS4.1.3 with some combination
of patches, but that system doesn't use this code: it has utimes.
|| fsync (fd) < 0
*/
|| ftruncate (fd, st.st_size) < 0
|| close (fd) < 0)
status = -1;
return status;
#endif
}
int
rpl_utime (const char *file, const struct utimbuf *times)
{
if (times)
return utime (file, times);
return utime_null (file);
}

View File

@@ -1,21 +1,52 @@
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
/* xalloc.h -- malloc with out-of-memory checking
Copyright (C) 1990-1998, 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef XALLOC_H_
# define XALLOC_H_
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
#endif
/* Exit value when the requested amount of memory is not available.
The caller may set it to some other value. */
It is initialized to EXIT_FAILURE, but the caller may set it to
some other value. */
extern int xalloc_exit_failure;
/* FIXME: describe */
extern char *const xalloc_msg_memory_exhausted;
/* FIXME: describe */
/* If this pointer is non-zero, run the specified function upon each
allocation failure. It is initialized to zero. */
extern void (*xalloc_fail_func) ();
/* If XALLOC_FAIL_FUNC is undefined or a function that returns, this
message must be non-NULL. It is translated via gettext.
The default value is "Memory exhausted". */
extern char *const xalloc_msg_memory_exhausted;
void *xmalloc PARAMS ((size_t n));
void *xcalloc PARAMS ((size_t n, size_t s));
void *xrealloc PARAMS ((void *p, size_t n));
# define XMALLOC(Type, N_bytes) ((Type *) xmalloc (sizeof (Type) * (N_bytes)))
# define XCALLOC(Type, N_bytes) ((Type *) xcalloc (sizeof (Type), (N_bytes)))
# define XREALLOC(Ptr, Type, N_bytes) \
((Type *) xrealloc ((void *) (Ptr), sizeof (Type) * (N_bytes)))
#endif /* !XALLOC_H_ */

View File

@@ -1,5 +1,5 @@
/* xmalloc.c -- malloc with out of memory checking
Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
Copyright (C) 1990-1997, 98 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -46,13 +46,6 @@ void free ();
# define EXIT_FAILURE 1
#endif
/* Prototypes for functions defined here. */
#if defined (__STDC__) && __STDC__
void *xmalloc (size_t n);
void *xcalloc (size_t n, size_t s);
void *xrealloc (void *p, size_t n);
#endif
#ifndef HAVE_DONE_WORKING_MALLOC_CHECK
you must run the autoconf test for a properly working malloc -- see malloc.m4
#endif
@@ -65,20 +58,15 @@ you must run the autoconf test for a properly working realloc -- see realloc.m4
The caller may set it to some other value. */
int xalloc_exit_failure = EXIT_FAILURE;
/* FIXME: describe */
char *const xalloc_msg_memory_exhausted = N_("Memory exhausted");
/* FIXME: describe */
/* If non NULL, call this function when memory is exhausted. */
void (*xalloc_fail_func) () = 0;
#if __STDC__ && (HAVE_VPRINTF || HAVE_DOPRNT)
void error (int, int, const char *, ...);
#else
void error ();
#endif
/* If XALLOC_FAIL_FUNC is NULL, or does return, display this message
before exiting when memory is exhausted. Goes through gettext. */
char *const xalloc_msg_memory_exhausted = N_("Memory exhausted");
static void
xalloc_fail ()
xalloc_fail (void)
{
if (xalloc_fail_func)
(*xalloc_fail_func) ();
@@ -88,8 +76,7 @@ xalloc_fail ()
/* Allocate N bytes of memory dynamically, with error checking. */
void *
xmalloc (n)
size_t n;
xmalloc (size_t n)
{
void *p;
@@ -104,9 +91,7 @@ xmalloc (n)
If P is NULL, run xmalloc. */
void *
xrealloc (p, n)
void *p;
size_t n;
xrealloc (void *p, size_t n)
{
p = realloc (p, n);
if (p == 0)
@@ -114,13 +99,10 @@ xrealloc (p, n)
return p;
}
#ifdef NOT_USED
/* Allocate memory for N elements of S bytes, with error checking. */
void *
xcalloc (n, s)
size_t n, s;
xcalloc (size_t n, size_t s)
{
void *p;
@@ -129,5 +111,3 @@ xcalloc (n, s)
xalloc_fail ();
return p;
}
#endif /* NOT_USED */

View File

@@ -1,5 +1,8 @@
/* Work around the bug in some systems whereby stat succeeds when
given the zero-length file name argument. The stat from SunOS4.1.4
/* @IGNORE@ -*- c -*- */
/* @IGNORE@ This file is a template from which both stat.c and lstat.c
@IGNORE@ are generated. */
/* Work around the bug in some systems whereby @xstat@ succeeds when
given the zero-length file name argument. The @xstat@ from SunOS4.1.4
has this bug.
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
@@ -21,11 +24,6 @@
#include <config.h>
/* Disable the definition of stat to rpl_stat (from config.h) in this
file. Otherwise, we'd get conflicting prototypes for rpl_stat on
most systems. */
#undef stat
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
@@ -33,18 +31,16 @@
extern int errno;
#endif
/* This is a wrapper for stat(2).
/* This is a wrapper for @xstat@(2).
If FILE is the empty string, fail with errno == ENOENT.
Otherwise, return the result of calling the real stat.
Otherwise, return the result of calling the real @xstat@.
This works around the bug in some systems whereby stat succeeds when
given the zero-length file name argument. The stat from SunOS4.1.4
This works around the bug in some systems whereby @xstat@ succeeds when
given the zero-length file name argument. The @xstat@ from SunOS4.1.4
has this bug. */
int
rpl_stat (file, sbuf)
const char *file;
struct stat *sbuf;
rpl_@xstat@ (const char *file, struct stat *sbuf)
{
if (file && *file == 0)
{
@@ -52,5 +48,5 @@ rpl_stat (file, sbuf)
return -1;
}
return stat (file, sbuf);
return @xstat@ (file, sbuf);
}

View File

@@ -21,6 +21,10 @@
# include <config.h>
#endif
/* Some pre-ANSI implementations (e.g. SunOS 4)
need stderr defined if assertion checking is enabled. */
#include <stdio.h>
#if STDC_HEADERS
# include <stdlib.h>
#endif
@@ -34,7 +38,6 @@
# endif
#endif
#define NDEBUG
#include <assert.h>
#include <errno.h>
@@ -66,6 +69,18 @@ extern int errno;
# define LONG_MAX TYPE_MAXIMUM (long int)
#endif
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define IN_CTYPE_DOMAIN(c) 1
#else
# define IN_CTYPE_DOMAIN(c) isascii(c)
#endif
#ifdef isblank
# define ISBLANK(c) (IN_CTYPE_DOMAIN (c) && isblank (c))
#else
# define ISBLANK(c) ((c) == ' ' || (c) == '\t')
#endif
#include "xstrtol.h"
__unsigned long int __strtol ();
@@ -104,6 +119,18 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
p = (ptr ? ptr : &t_ptr);
#if STRING_TO_UNSIGNED
{
const char *q = s;
while (ISBLANK (*q))
{
++q;
}
if (*q == '-')
return LONGINT_INVALID;
}
#endif
errno = 0;
tmp = __strtol (s, p, strtol_base);
if (errno != 0)

View File

@@ -1,101 +0,0 @@
#! /bin/sh
# ylwrap - wrapper for lex/yacc invocations.
# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Usage:
# ylwrap PROGRAM INPUT [OUTPUT DESIRED]... -- [ARGS]...
# * PROGRAM is program to run.
# * INPUT is the input file
# * OUTPUT is file PROG generates
# * DESIRED is file we actually want
# * ARGS are passed to PROG
# Any number of OUTPUT,DESIRED pairs may be used.
# The program to run.
prog="$1"
shift
# The input.
input="$1"
shift
case "$input" in
/*)
# Absolute path; do nothing.
;;
*)
# Relative path. Make it absolute. Why? Because otherwise any
# debugging info in the generated file will point to the wrong
# place. This is really gross.
input="`pwd`/$input"
;;
esac
pairlist=
while test "$#" -ne 0; do
if test "$1" = "--"; then
break
fi
pairlist="$pairlist $1"
shift
done
# FIXME: add hostname here for parallel makes that run commands on
# other machines. But that might take us over the 14-char limit.
dirname=ylwrap$$
trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
mkdir $dirname || exit 1
cd $dirname
$prog ${1+"$@"} "$input"
status=$?
if test $status -eq 0; then
set X $pairlist
shift
first=yes
while test "$#" -ne 0; do
if test -f "$1"; then
# If $2 is an absolute path name, then just use that,
# otherwise prepend `../'.
case "$2" in
/*) target="$2";;
*) target="../$2";;
esac
mv "$1" "$target" || status=$?
else
# A missing file is only an error for the first file. This
# is a blatant hack to let us support using "yacc -d". If -d
# is not specified, we don't want an error when the header
# file is "missing".
if test $first = yes; then
status=1
fi
fi
shift
shift
first=no
done
else
status=$?
fi
# Remove the directory.
cd ..
rm -rf $dirname
exit $status

View File

@@ -1,3 +1,256 @@
1999-02-07 Jim Meyering <meyering@ascend.com>
* group-member.m4: New file -- extracted from sh-utils' configure.in.
1999-02-05 Eli Zaretskii <eliz@is.elta.co.il>
* m4/gettext.m4: Support DOS-style d:/foo/bar absolute file names.
1999-02-06 Jim Meyering <meyering@ascend.com>
* chown.m4: Use `AC_SUBST(LIBOBJS)' since we set LIBOBJS.
* fnmatch.m4: Likewise.
* getgroups.m4: Likewise.
* lstat.m4: Likewise.
* malloc.m4: Likewise.
* putenv.m4: Likewise.
* realloc.m4: Likewise.
* regex.m4: Likewise.
* stat.m4: Likewise.
* strftime.m4: Likewise.
Suggestion from Alain Magloire.
* chown.m4: Use `.$ac_objext', not `.o'.
* fnmatch.m4: Likewise.
* getgroups.m4: Likewise.
* getline.m4: Likewise.
* lstat.m4: Likewise.
* malloc.m4: Likewise.
* memcmp.m4: Likewise.
* putenv.m4: Likewise.
* realloc.m4: Likewise.
* regex.m4: Likewise.
* stat.m4: Likewise.
* strftime.m4: Likewise.
Suggestion from Alain Magloire.
* jm-macros.m4: Actually invoke jm_WITH_REGEX now that it requires
an argument.
* regex.m4: Add a run-time Test for proper operation of
re_compile_pattern.
1999-01-31 Jim Meyering <meyering@ascend.com>
* getloadavg.m4: Check for locale.h and the function, setlocale.
1999-01-30 Jim Meyering <meyering@ascend.com>
* check-type.m4: Use 3-arg form of AC_DEFINE.
* jm-mktime.m4: Make this a wrapper around the official AM_FUNC_MKTIME
rather than my private copy, now that the official one is up to date.
* mktime.m4: Remove file.
* getloadavg.m4: Use 3-arg form of AC_DEFINE.
* uptime.m4: Likewise.
* uintmax_t.m4: Likewise.
1999-01-28 Jim Meyering <meyering@ascend.com>
* jm-macros.m4: Use jm_AFS.
* afs.m4: New file (from fileutils' configure.in).
* assert.m4: Use the 3-argument forms of AC_DEFINE* macros.
* chown.m4: Likewise.
* d-ino.m4: Likewise.
* d-type.m4: Likewise.
* fnmatch.m4: Likewise.
* getgroups.m4: Likewise.
* gettext.m4: Likewise.
* jm-mktime.m4: Likewise.
* jm-winsz2.m4: Likewise.
* lcmessage.m4: Likewise.
* ls-mntd-fs.m4: Likewise.
* malloc.m4: Likewise.
* memcmp.m4: Likewise.
* putenv.m4: Likewise.
* realloc.m4: Likewise.
* st_mtim.m4: Likewise.
* strftime.m4: Likewise.
1999-01-16 Jim Meyering <meyering@ascend.com>
* jm-macros.m4 (ARGMATCH_DIE): Define.
(ARGMATCH_DIE_DECL): Define.
1999-01-12 Jim Meyering <meyering@ascend.com>
* Makefile.am.in: Rewrite to avoid using fmt.
Reported by Lars Hecking.
1999-01-10 Jim Meyering <meyering@ascend.com>
* fstypename.m4: Use the new 3-arg form of AC_DEFINE instead of my
gross kludge.
* inttypes_h.m4: Likewise.
* lstat.m4: Likewise.
* malloc.m4: Likewise.
* readdir.m4: Likewise.
* realloc.m4: Likewise.
* st_dm_mode.m4: Likewise.
* stat.m4: Likewise.
* utimbuf.m4: Likewise.
* utimes.m4: Likewise.
* check-decl.m4: Use the new 3-arg form of AC_DEFINE instead of the
AC_CHECK_FUNCS hack. Now, it's still a hack, but at least the
comments in config.h.in are meaningful.
* jm-macros.m4: Require autoconf-2.13 here.
* regex.m4: By default, don't use the included regex.c on systems
with glibc 2. Suggestion from Uli Drepper.
1999-01-02 Jim Meyering <meyering@ascend.com>
* jm-macros.m4: Replace strcasecmp and strncasecmp.
1998-12-18 Jim Meyering <meyering@ascend.com>
* Makefile.am.in (Makefile.am): Simplify rule.
Based on a suggestion from Lars Hecking.
1998-11-16 Jim Meyering <meyering@ascend.com>
* lfs.m4: Double-quote the `uname...` expression.
1998-11-16 Paul Eggert <eggert@twinsun.com>
* lfs.m4 (AC_LFS): Add support for HP-UX 10.20 and HP-UX 11.
1998-11-14 Jim Meyering <meyering@ascend.com>
* lstat.m4: Correct comment. POSIX does not permit it to succeed.
* stat.m4: Likewise.
1998-11-03 Jim Meyering <meyering@ascend.com>
* stat.m4: Rewrite to set HAVE_STAT_EMPTY_STRING_BUG.
* lstat.m4: Rewrite to set HAVE_LSTAT_EMPTY_STRING_BUG.
1998-10-18 Jim Meyering <meyering@ascend.com>
* check-decl.m4 (jm_CHECK_DECL_LOCALTIME_R): Remove macro.
1998-10-17 Jim Meyering <meyering@ascend.com>
* decl.m4 (jm_CHECK_DECLARATION): Don't hard-code which headers to
include, though we still hard-code the `require'-like AC_CHECK_HEADERS
calls for those previously hard-coded headers. Instead, take a new
parameter.
(jm_CHECK_DECLARATIONS): Reflect interface change.
* check-decl.m4 (jm_CHECK_DECLS): Likewise.
(jm_CHECK_DECL_LOCALTIME_R): New macro.
* mktime.m4: Test for spring-forward gap before long-running test.
1998-10-14 Jim Meyering <meyering@ascend.com>
* mktime.m4: Use the more portable "TZ=PST8PDT,M4.1.0,M10.5.0"
instead of "TZ=America/Vancouver". From Paul Eggert.
1998-10-11 Jim Meyering <meyering@ascend.com>
* mktime.m4 (jm_AM_FUNC_MKTIME): New file and macro.
This adds a test for a recently added compatibility fix for mktime.c.
* jm-mktime.m4: Require jm_AM_FUNC_MKTIME, not AM_FUNC_MKTIME.
1998-09-27 Jim Meyering <meyering@ascend.com>
* jm-macros.m4 (jm_MACROS): Require jm_FUNC_FNMATCH.
* fnmatch.m4 (jm_FUNC_FNMATCH): New file/macro. Extracted from
../configure.in, including a change from Gordon Matzigkeit to allow
cross-compiling for the Hurd.
* glibc.m4: New file/macro to test for the GNU C Library
versions 1 and 2. From Gordon Matzigkeit.
Indent.
1998-09-21 Jim Meyering <meyering@ascend.com>
* chown.m4: Declare locals: before, after. From Andries Brouwer.
1998-08-18 Paul Eggert <eggert@twinsun.com>
Port nanosecond-resolution times to UnixWare 2.1.2 and
pedantic Solaris 2.6.
* st_mtim.m4 (AC_STRUCT_ST_MTIM_NSEC): Renamed from
AC_STRUCT_ST_MTIM.
* st_mtim.m4 (AC_STRUCT_ST_MTIM_NSEC):
Generate name of ns member, instead of just 1 or undef.
Allow for UnixWare 2.1.2 and Solaris 2.6 if in pedantic mode.
1998-08-15 Jim Meyering <meyering@ascend.com>
* ssize_t.m4 (jm_TYPE_SSIZE_T): Remove file.
* check-type.m4: New file. Replacement for AC_CHECK_TYPE.
* jm-macros.m4: Use the new AC_CHECK_TYPE(ssize_t, int)
instead of jm_TYPE_SSIZE_T.
1998-08-12 Jim Meyering <meyering@ascend.com>
* st_dm_mode.m4: New file. From Johan Danielsson.
1998-08-02 Jim Meyering <meyering@ascend.com>
* st_mtim.m4: Use hack to avoid having to put #undef HAVE_ST_MTIM
in acconfig.h manually.
1998-07-31 Paul Eggert <eggert@twinsun.com>
* st_mtim.m4: New file.
1998-07-28 Jim Meyering <meyering@ascend.com>
* utimes.m4: Undef stat.
1998-07-25 Jim Meyering <meyering@ascend.com>
* utime.m4 (jm_FUNC_UTIME): New file and macro.
* utimes.m4 (jm_FUNC_UTIMES_NULL): New file and macro.
1998-07-09 Manfred Hollstein <manfred@s-direktnet.de>
* chown.m4 (jm_FUNC_CHOWN): Add a check to verify that the
uid and gid actually remain unchanged.
1998-07-07 Jim Meyering <meyering@ascend.com>
* jm-glibc-io.m4: Remove fclose_unlocked.
1998-07-04 Jim Meyering <meyering@ascend.com>
* regex.m4: Use syscmd, ifelse, and sysval. Mainly as an exercise
to prove that this macro can be used in packages without regex.c.
1998-07-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* gettext.m4 (AM_WITH_NLS): Remove intl/libintl.h if <libintl.h>
is to be used.
1998-07-03 Jim Meyering <meyering@ascend.com>
* gettext.m4: Add -lintl if it's found to be necessary.
* gettext.m4: New file -- from gettext-0.10.35.
* lcmessage.m4: Likewise.
* progtest.m4: Likewise.
* regex.m4 (jm_WITH_REGEX): New file and macro.
* jm-macros.m4: Require the new macro.
1998-06-29 Jim Meyering <meyering@ascend.com>
* fstypename.m4: Include sys/param.h. NetBSD 1.3.1 requires this

View File

@@ -1,23 +1,63 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
##m4-files-begin
EXTRA_DIST = README Makefile.am.in assert.m4 check-decl.m4 chown.m4 \
const.m4 d-ino.m4 d-type.m4 decl.m4 error.m4 fstypename.m4 getgroups.m4 \
getline.m4 getloadavg.m4 inttypes_h.m4 isc-posix.m4 jm-glibc-io.m4 \
jm-macros.m4 jm-mktime.m4 jm-winsz1.m4 jm-winsz2.m4 lchown.m4 lfs.m4 \
ls-mntd-fs.m4 lstat.m4 malloc.m4 memcmp.m4 perl.m4 prereq.m4 putenv.m4 \
readdir.m4 realloc.m4 ssize_t.m4 stat.m4 strftime.m4 uintmax_t.m4 \
uptime.m4 utimbuf.m4
EXTRA_DIST = README Makefile.am.in \
afs.m4 \
assert.m4 \
check-decl.m4 \
check-type.m4 \
chown.m4 \
const.m4 \
d-ino.m4 \
d-type.m4 \
decl.m4 \
error.m4 \
fnmatch.m4 \
fstypename.m4 \
getgroups.m4 \
getline.m4 \
getloadavg.m4 \
gettext.m4 \
glibc.m4 \
group-member.m4 \
inttypes_h.m4 \
isc-posix.m4 \
jm-glibc-io.m4 \
jm-macros.m4 \
jm-mktime.m4 \
jm-winsz1.m4 \
jm-winsz2.m4 \
lchown.m4 \
lcmessage.m4 \
lfs.m4 \
ls-mntd-fs.m4 \
lstat.m4 \
malloc.m4 \
memcmp.m4 \
perl.m4 \
prereq.m4 \
progtest.m4 \
putenv.m4 \
readdir.m4 \
realloc.m4 \
regex.m4 \
st_dm_mode.m4 \
st_mtim.m4 \
stat.m4 \
strftime.m4 \
uintmax_t.m4 \
uptime.m4 \
utimbuf.m4 \
utime.m4 \
utimes.m4
##m4-files-end
Makefile.am: Makefile.am.in
rm -f $@ $@t
sed -n '1,/^##m4-files-begin/p' $< > $@t
( echo EXTRA_DIST = README Makefile.am.in; \
find . -type f -name '*.m4' -print |sed 's,^\./,,' |sort ) \
|fmt | (tr '\012' @; echo) \
|sed 's/@$$/%/;s/@/ \\@/g' |tr @% '\012\012' \
( (echo EXTRA_DIST = README Makefile.am.in | tr '\012' @); \
(echo *.m4|tr ' ' @) ) \
|sed 's/@$$/%/;s/@/ \\@/g' |tr @% '\012\012' \
>> $@t
sed -n '/^##m4-files-end/,$$p' $< >> $@t
chmod a-w $@t

View File

@@ -6,10 +6,9 @@
Makefile.am: Makefile.am.in
rm -f $@ $@t
sed -n '1,/^##m4-files-begin/p' $< > $@t
( echo EXTRA_DIST = README Makefile.am.in; \
find . -type f -name '*.m4' -print |sed 's,^\./,,' |sort ) \
|fmt | (tr '\012' @; echo) \
|sed 's/@$$/%/;s/@/ \\@/g' |tr @% '\012\012' \
( (echo EXTRA_DIST = README Makefile.am.in | tr '\012' @); \
(echo *.m4|tr ' ' @) ) \
|sed 's/@$$/%/;s/@/ \\@/g' |tr @% '\012\012' \
>> $@t
sed -n '/^##m4-files-end/,$$p' $< >> $@t
chmod a-w $@t

View File

@@ -1,6 +1,6 @@
# Makefile.in generated automatically by automake 1.3 from Makefile.am
# Makefile.in generated automatically by automake 1.4a from Makefile.am
# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,7 +11,7 @@
# PARTICULAR PURPOSE.
SHELL = /bin/sh
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -32,7 +32,7 @@ mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DISTDIR =
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -46,7 +46,7 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
@@ -63,11 +63,9 @@ CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
GENCAT = @GENCAT@
GETHOSTBYNAME_LIB = @GETHOSTBYNAME_LIB@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GNU_PACKAGE = @GNU_PACKAGE@
GT_NO = @GT_NO@
GT_YES = @GT_YES@
INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
@@ -100,13 +98,8 @@ VERSION = @VERSION@
YACC = @YACC@
l = @l@
EXTRA_DIST = README Makefile.am.in assert.m4 check-decl.m4 chown.m4 \
const.m4 d-ino.m4 d-type.m4 decl.m4 error.m4 fstypename.m4 getgroups.m4 \
getline.m4 getloadavg.m4 inttypes_h.m4 isc-posix.m4 jm-glibc-io.m4 \
jm-macros.m4 jm-mktime.m4 jm-winsz1.m4 jm-winsz2.m4 lchown.m4 lfs.m4 \
ls-mntd-fs.m4 lstat.m4 malloc.m4 memcmp.m4 perl.m4 prereq.m4 putenv.m4 \
readdir.m4 realloc.m4 ssize_t.m4 stat.m4 strftime.m4 uintmax_t.m4 \
uptime.m4 utimbuf.m4
EXTRA_DIST = README Makefile.am.in afs.m4 assert.m4 check-decl.m4 check-type.m4 chown.m4 const.m4 d-ino.m4 d-type.m4 decl.m4 error.m4 fnmatch.m4 fstypename.m4 getgroups.m4 getline.m4 getloadavg.m4 gettext.m4 glibc.m4 group-member.m4 inttypes_h.m4 isc-posix.m4 jm-glibc-io.m4 jm-macros.m4 jm-mktime.m4 jm-winsz1.m4 jm-winsz2.m4 lchown.m4 lcmessage.m4 lfs.m4 ls-mntd-fs.m4 lstat.m4 malloc.m4 memcmp.m4 perl.m4 prereq.m4 progtest.m4 putenv.m4 readdir.m4 realloc.m4 regex.m4 st_dm_mode.m4 st_mtim.m4 stat.m4 strftime.m4 uintmax_t.m4 uptime.m4 utimbuf.m4 utime.m4 utimes.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
@@ -115,12 +108,11 @@ DIST_COMMON = README ChangeLog Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP = --best
all: Makefile
TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnits m4/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
@@ -143,69 +135,81 @@ distdir: $(DISTFILES)
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnits m4/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
if test -d $$d/$$file; then \
cp -pr $$/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
info:
dvi:
check: all
$(MAKE)
installcheck:
install-exec:
@$(NORMAL_INSTALL)
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
install-data:
@$(NORMAL_INSTALL)
install: install-exec install-data all
@:
uninstall:
install-data-am:
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am:
uninstall: uninstall-am
all-am: Makefile
all-redirect: all-am
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(DISTCLEANFILES)
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
mostlyclean: mostlyclean-generic
mostlyclean-am: mostlyclean-generic
clean: clean-generic mostlyclean
mostlyclean: mostlyclean-am
distclean: distclean-generic clean
-rm -f config.status
clean-am: clean-generic mostlyclean-am
maintainer-clean: maintainer-clean-generic distclean
clean: clean-am
distclean-am: distclean-generic clean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
.PHONY: tags distdir info dvi installcheck install-exec install-data \
install uninstall all installdirs mostlyclean-generic distclean-generic \
clean-generic maintainer-clean-generic clean mostlyclean distclean \
maintainer-clean
maintainer-clean: maintainer-clean-am
.PHONY: tags distdir info-am info dvi-am dvi check check-am \
installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
Makefile.am: Makefile.am.in
rm -f $@ $@t
sed -n '1,/^##m4-files-begin/p' $< > $@t
( echo EXTRA_DIST = README Makefile.am.in; \
find . -type f -name '*.m4' -print |sed 's,^\./,,' |sort ) \
|fmt | (tr '\012' @; echo) \
|sed 's/@$$/%/;s/@/ \\@/g' |tr @% '\012\012' \
( (echo EXTRA_DIST = README Makefile.am.in | tr '\012' @); \
(echo *.m4|tr ' ' @) ) \
|sed 's/@$$/%/;s/@/ \\@/g' |tr @% '\012\012' \
>> $@t
sed -n '/^##m4-files-end/,$$p' $< >> $@t
chmod a-w $@t

View File

@@ -4,5 +4,4 @@ used by autoconf to create the configure script at the the top level in
this distribution.
The Makefile.am file in this directory is automatically generated
from the template file, Makefile.am.in. The generation will fail
if you don't have all the right tools.
from the template file, Makefile.am.in.

7
m4/afs.m4 Normal file
View File

@@ -0,0 +1,7 @@
#serial 1
AC_DEFUN(jm_AFS,
AC_CHECKING(for AFS)
test -d /afs \
&& AC_DEFINE(AFS, 1, [Define if you have the Andrew File System.])
)

View File

@@ -1,13 +1,13 @@
#serial 1
#serial 2
dnl based on code from Eleftherios Gkioulekas
AC_DEFUN(jm_ASSERT,
[
AC_MSG_CHECKING(whether to enable assertions)
AC_ARG_ENABLE(assert,
[ --disable-assert turn off assertions],
[ AC_MSG_RESULT(no)
AC_DEFINE(NDEBUG) ],
[ AC_MSG_RESULT(yes) ]
[ --disable-assert turn off assertions],
[ AC_MSG_RESULT(no)
AC_DEFINE(NDEBUG,1,[Define to 1 if assertions should be disabled.]) ],
[ AC_MSG_RESULT(yes) ]
)
])

View File

@@ -1,18 +1,45 @@
#serial 2
#serial 5
dnl This is just a wrapper function to encapsulate this kludge.
dnl Putting it in a separate file like this helps share it between
dnl different packages.
AC_DEFUN(jm_CHECK_DECLS,
[
headers='
#include <stdio.h>
#ifdef HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#else
# ifdef HAVE_STRINGS_H
# include <strings.h>
# endif
#endif
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
'
if test x = y; then
dnl This code is deliberately never run via ./configure.
dnl FIXME: this is a gross hack to make autoheader put entries
dnl for each of these symbols in the config.h.in.
dnl Otherwise, I'd have to update acconfig.h every time I change
dnl this list of functions.
AC_CHECK_FUNCS(DECL_FREE DECL_LSEEK DECL_MALLOC DECL_MEMCHR DECL_REALLOC \
DECL_STPCPY DECL_STRSTR)
AC_DEFINE(HAVE_DECL_FREE, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_LSEEK, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_MALLOC, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_MEMCHR, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_REALLOC, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_STPCPY, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_STRSTR, 1, [Define if this function is declared.])
fi
jm_CHECK_DECLARATIONS(free lseek malloc memchr realloc stpcpy strstr)
jm_CHECK_DECLARATIONS($headers, free lseek malloc \
memchr realloc stpcpy strstr)
])

30
m4/check-type.m4 Normal file
View File

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

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