Compare commits

...

2518 Commits

Author SHA1 Message Date
Jim Meyering
f318f5c4d8 *** empty log message *** 2001-01-28 22:25:48 +00:00
Jim Meyering
30bbbfe67a *** empty log message *** 2001-01-28 22:25:04 +00:00
Jim Meyering
f06dd61f03 *** empty log message *** 2001-01-28 22:24:14 +00:00
Jim Meyering
67998a215f (main): Remove decl of unused local, `len'. 2001-01-28 21:58:19 +00:00
Jim Meyering
94767ce8cf add a comment, reformat a little. 2001-01-28 21:45:36 +00:00
Jim Meyering
577a8f346e (gobble_file): Add a FIXME comment. 2001-01-28 21:43:21 +00:00
Jim Meyering
daf6c50b95 *** empty log message *** 2001-01-28 21:43:15 +00:00
Jim Meyering
b221cf780f *** empty log message *** 2001-01-28 21:35:10 +00:00
Jim Meyering
2bc68d2234 [FULL_TIME]: Define.
(long_options): Use it.
(decode_switches): Make --full-time imply -l.
2001-01-28 21:34:35 +00:00
Jim Meyering
d6f931281e . 2001-01-28 08:10:00 +00:00
Jim Meyering
ae9d89cfe2 (jm_FILE_SYSTEM_USAGE): Open-code what was a use of AS_IF. 2001-01-27 14:06:18 +00:00
Jim Meyering
263fb2dc15 (jm_LIST_MOUNTED_FILESYSTEMS): Open-code what was a use of AS_IF. 2001-01-27 14:06:04 +00:00
Jim Meyering
e5e92e670c *** empty log message *** 2001-01-27 13:24:36 +00:00
Jim Meyering
d85aac6782 (jm_FILE_SYSTEM_USAGE): Add `[]' between use of
AS_IF and following `dnl'.
2001-01-27 13:24:32 +00:00
Jim Meyering
d54655c623 (jm_LIST_MOUNTED_FILESYSTEMS): Add `[]' between use of
AS_IF and following `dnl'.
2001-01-27 13:24:13 +00:00
Jim Meyering
18656b733d *** empty log message *** 2001-01-26 11:17:34 +00:00
Jim Meyering
ac4936b7b1 bump serial # 2001-01-26 11:17:29 +00:00
Jim Meyering
742625303d (jm_PREREQ_QUOTEARG): Check for stddef.h, now that quotearg.c includes it. 2001-01-26 11:17:19 +00:00
Jim Meyering
9e2606d77b *** empty log message *** 2001-01-26 11:15:53 +00:00
Jim Meyering
c8d0d0ca6f Include stddef.h. 2001-01-26 11:15:37 +00:00
Jim Meyering
0e3fea79f3 *** empty log message *** 2001-01-26 11:13:34 +00:00
Jim Meyering
dcfda51801 [HAVE_DONE_WORKING_MALLOC_CHECK]: Enclose error-evoking
line in double quotes so that it evokes a better diagnostic.
[HAVE_DONE_WORKING_REALLOC_CHECK]: Likewise.
2001-01-26 11:13:28 +00:00
Jim Meyering
fad08d3f31 *** empty log message *** 2001-01-26 11:13:08 +00:00
Jim Meyering
d362235eed (main): Declare local result as non-const, now that it's freed. 2001-01-26 09:24:46 +00:00
Jim Meyering
6ff755a69a . 2001-01-26 09:22:43 +00:00
Jim Meyering
c4bb1d449e *** empty log message *** 2001-01-22 10:54:32 +00:00
Jim Meyering
e673a685ac (remove_file): Correct an expression to avoid making
an unnecessary call to euidaccess for each file.
2001-01-22 10:51:54 +00:00
Jim Meyering
37e38b4941 *** empty log message *** 2001-01-21 22:54:53 +00:00
Jim Meyering
9eabf6d99a *** empty log message *** 2001-01-21 12:27:39 +00:00
Jim Meyering
8efb6d5f7b *** empty log message *** 2001-01-21 12:26:34 +00:00
Jim Meyering
928b1b8300 *** empty log message *** 2001-01-21 10:15:59 +00:00
Jim Meyering
211a6642e2 (jm_ICONV): Also check whether the iconv declaration has const. 2001-01-21 10:15:53 +00:00
Jim Meyering
fd1d1eaa80 *** empty log message *** 2001-01-21 09:40:48 +00:00
Jim Meyering
ad41cbff8a (print_unicode_char): Cast the second iconv() arg,
to avoid a warning.  Add back 'const' to inptr.
2001-01-21 09:40:43 +00:00
Jim Meyering
71611d94f3 . 2001-01-20 19:41:15 +00:00
Jim Meyering
9beeae646e *** empty log message *** 2001-01-20 19:41:01 +00:00
Jim Meyering
67450be04d *** empty log message *** 2001-01-20 19:24:36 +00:00
Jim Meyering
84264973d6 *** empty log message *** 2001-01-20 19:20:53 +00:00
Jim Meyering
5239228c17 *** empty log message *** 2001-01-20 19:18:43 +00:00
Jim Meyering
29940657ab *** empty log message *** 2001-01-20 18:34:44 +00:00
Jim Meyering
a5ab9f78c3 Be sure that headers are checked before used in code compiled
for the type checks.

(jm_MACROS): Remove all header checks.
In place of that, invoke jm_CHECK_ALL_TYPES.
(jm_CHECK_ALL_HEADERS): New functions with the above checks.
(jm_CHECK_ALL_TYPES): Require jm_CHECK_ALL_HEADERS.
2001-01-20 18:34:32 +00:00
Jim Meyering
01bbd27a4d revert last change 2001-01-20 11:17:33 +00:00
Jim Meyering
df06c5de7b *** empty log message *** 2001-01-20 09:49:24 +00:00
Jim Meyering
706235da55 (jm_PREREQ): Add jm_PREREQ_HASH.
(jm_PREREQ_HASH): New function.
2001-01-20 09:49:10 +00:00
Jim Meyering
403b4c49eb whoops. revert last change 2001-01-20 09:36:19 +00:00
Jim Meyering
c6014bc847 *** empty log message *** 2001-01-20 09:34:34 +00:00
Jim Meyering
c148112941 Fix typo: s/false/0/. 2001-01-20 09:34:20 +00:00
Jim Meyering
19b3a9d102 *** empty log message *** 2001-01-17 10:34:22 +00:00
Jim Meyering
7f9c804f7a (jm_FILE_SYSTEM_USAGE): Use AS_IF, not AS_IFELSE, for autoconf-2.49c. 2001-01-17 10:34:16 +00:00
Jim Meyering
4bdc202a00 (jm_LIST_MOUNTED_FILESYSTEMS): Likewise. 2001-01-17 10:33:43 +00:00
Jim Meyering
a80ec26277 . 2001-01-17 10:30:32 +00:00
Jim Meyering
fcdbd9ff15 (main): Likewise. 2001-01-17 10:30:25 +00:00
Jim Meyering
108694f32a (PACKAGE): Likewise. 2001-01-17 10:29:56 +00:00
Jim Meyering
59b34eded2 (main): Likewise. 2001-01-17 10:28:46 +00:00
Jim Meyering
622dcc58ee (case_GETOPT_VERSION_CHAR): Use PACKAGE, not GNU_PACKAGE. 2001-01-17 10:28:03 +00:00
Jim Meyering
770b6c1bb5 *** empty log message *** 2001-01-17 09:48:02 +00:00
Jim Meyering
56c1cbf2e8 (main): Use PACKAGE, not GNU_PACKAGE. 2001-01-17 09:47:41 +00:00
Jim Meyering
bd485671ff (usage): Convert each TAB in --help output to a sequence of 8 spaces. 2001-01-17 09:47:32 +00:00
Jim Meyering
43be299a76 (main): Use PACKAGE, not GNU_PACKAGE. 2001-01-17 09:42:36 +00:00
Jim Meyering
1493e0d650 *** empty log message *** 2001-01-16 08:34:53 +00:00
Jim Meyering
592e22d509 Include <stdio.h>, needed by assert on SunOS4. 2001-01-16 08:34:45 +00:00
Jim Meyering
c8e070ed62 *** empty log message *** 2001-01-15 11:32:45 +00:00
Jim Meyering
ceb3908c6f . 2001-01-14 20:28:14 +00:00
Jim Meyering
4468f22968 *** empty log message *** 2001-01-14 20:28:03 +00:00
Jim Meyering
eb3dc6a095 Remove conftestdir{,2} before trying to create the directory.
Make the entire configure script fail if the mkdir fails.
2001-01-14 20:27:56 +00:00
Jim Meyering
4a65486da9 (UINT_MAX_32_BITS): Define.
Use UINT_MAX_32_BITS in the cpp conditions that determine
the `word32' typedef.  Using a literal `0xffffffff' failed with
HPUX10.20's /bin/cc.
2001-01-14 20:26:28 +00:00
Jim Meyering
07872e486f *** empty log message *** 2001-01-14 16:42:50 +00:00
Jim Meyering
5aba961278 use id's -ng options, not -nG 2001-01-14 16:27:08 +00:00
Jim Meyering
9be1481d17 *** empty log message *** 2001-01-14 15:37:48 +00:00
Jim Meyering
eda1fa3268 *** empty log message *** 2001-01-14 15:37:22 +00:00
Jim Meyering
633a2ace39 *** empty log message *** 2001-01-14 15:36:53 +00:00
Jim Meyering
c2329c797c . 2001-01-14 15:35:19 +00:00
Jim Meyering
4d8de6887f *** empty log message *** 2001-01-14 15:35:07 +00:00
Jim Meyering
5b2304d7b4 Include stdlib.h, string.h or strings.h, and xalloc.h.
Use strip_trailing_slashes rather than open-coding it.
2001-01-14 15:34:22 +00:00
Jim Meyering
b6863fa3c9 *** empty log message *** 2001-01-14 15:28:54 +00:00
Jim Meyering
c0ba4297c5 Use temporary directories named conftestdir{,2}, not
foo and bar.  Create conftestdir/ in the script, not in the C code.
Remove directories in the script, not in the C code.
2001-01-14 15:28:45 +00:00
Jim Meyering
acc13fdc89 from Volker Borchert 2001-01-14 11:08:35 +00:00
Jim Meyering
ee56fd2719 (jm_MACROS): Require vb_FUNC_RENAME. 2001-01-14 11:07:45 +00:00
Jim Meyering
16863fa14e check for SunOS4.1.1U bug in rename 2001-01-14 11:07:28 +00:00
Jim Meyering
c957bbdeae (TESTS): Add trailing-slash. 2001-01-14 11:06:20 +00:00
Jim Meyering
c6a4fe00db from Volker Borchert 2001-01-14 11:05:50 +00:00
Jim Meyering
30fc8c55a3 [RENAME_TRAILING_SLASH_BUG]: Use the rename wrapper. 2001-01-14 11:04:47 +00:00
Jim Meyering
98c8115e96 *** empty log message *** 2001-01-14 09:42:01 +00:00
Jim Meyering
d6b863b09c (update-po): Merge po-files in temporary files
in the build directory, and update the source directory only when
the merged catalog differs from the original.  This fixes the known
`make distcheck' failure due to `make update-po' being called
on up-to-date but read-only files.
2001-01-14 09:41:53 +00:00
Jim Meyering
c730e2d9e8 *** empty log message *** 2001-01-13 15:59:19 +00:00
Jim Meyering
81268e4b67 . 2001-01-13 15:57:48 +00:00
Jim Meyering
896a20a2a9 *** empty log message *** 2001-01-13 15:56:33 +00:00
Jim Meyering
455ce0178b (TESTS): Add into-self-4. 2001-01-13 15:56:29 +00:00
Jim Meyering
e268536dba *** empty log message *** 2001-01-13 15:55:35 +00:00
Jim Meyering
e2aae9e166 add comment to go along with last change 2001-01-13 15:50:01 +00:00
Jim Meyering
8e4dbf5ab0 *** empty log message *** 2001-01-13 15:49:01 +00:00
Jim Meyering
b7138e1052 (same_file_ok): When moving a symlink onto itself,
don't remove the symlink.  Reported by David Luyer as Debian bug#82089,
via Michael Stone.
2001-01-13 15:48:32 +00:00
Jim Meyering
5775f7e864 *** empty log message *** 2001-01-12 23:27:53 +00:00
Jim Meyering
6deb757ba4 * tests/chmod/setgid: If `chmod g+s d' fails, then try to chgrp
to a group of which we're a member, then try the chmod again.
2001-01-12 23:27:43 +00:00
Jim Meyering
a0d25e62aa *** empty log message *** 2001-01-11 16:58:40 +00:00
Jim Meyering
dc38e3a287 *** empty log message *** 2001-01-11 16:04:46 +00:00
Jim Meyering
7b99d77bc6 *** empty log message *** 2001-01-10 23:30:56 +00:00
Jim Meyering
1a79f34996 . 2001-01-10 23:08:51 +00:00
Jim Meyering
ad3ec0add1 *** empty log message *** 2001-01-10 13:44:13 +00:00
Jim Meyering
a3ffafd3fe . 2001-01-10 12:20:03 +00:00
Jim Meyering
2d33b67399 (TESTS): Add into-self. 2001-01-10 12:19:05 +00:00
Jim Meyering
e7e6c322a0 (copy_internal): Add a comment.
Set *copy_into_self in the new code that detects that.
Make diagnostic more consistent: s/won't/will not/.
[move_mode, copy_into_self]: Give a diagnstic here, now that
we have the top_level_* globals.  Remove the corresponding diagnostic
from mv.c.
Add a FIXME comment.
2001-01-10 12:18:19 +00:00
Jim Meyering
9ea9eed873 (do_move): Remove diagnostic, now that copy.c issues it.
Set `fail' to nonzero in the primary `if (copy_into_self)' block
rather than in its own tiny one below.
2001-01-10 12:16:52 +00:00
Jim Meyering
d882d1d100 *** empty log message *** 2001-01-10 11:56:59 +00:00
Jim Meyering
b6e29912be [struct entry] (node): Describe how it's used,
now that we've overloaded it a little, in order to detect and diagnose
the copying-directory-into-self problem.
(new_file): Remove global.
(htab): Declare global to be static.
(remember_created): Insert file name instead of dummy pointer, so
that copy.c can use the just-created directory name to detect
the copying-directory-into-self problem.
2001-01-10 11:54:53 +00:00
Jim Meyering
687ef9f9fe *** empty log message *** 2001-01-10 10:29:57 +00:00
Jim Meyering
4e1f4a8496 *** empty log message *** 2001-01-10 10:27:09 +00:00
Jim Meyering
c1485dd854 *** empty log message *** 2001-01-10 09:58:43 +00:00
Jim Meyering
35099b35ba *** empty log message *** 2001-01-10 09:56:04 +00:00
Jim Meyering
2a5fb11132 (copy_internal): Don't allow cp (or mv, when working
across a partition boundary) to overwrite a non-directory with a directory.
2001-01-10 09:43:36 +00:00
Jim Meyering
a49513bedd *** empty log message *** 2001-01-10 09:42:16 +00:00
Jim Meyering
fc6a8dcfb2 *** empty log message *** 2001-01-10 09:41:46 +00:00
Jim Meyering
cbb4300cc2 (TESTS): Add dir-vs-file. 2001-01-10 09:41:41 +00:00
Jim Meyering
deb79403bd *** empty log message *** 2001-01-10 09:41:15 +00:00
Jim Meyering
9f43a52210 *** empty log message *** 2001-01-10 09:40:47 +00:00
Jim Meyering
6bf0f043cd *** empty log message *** 2001-01-10 09:40:05 +00:00
Jim Meyering
3f1cd6f52a *** empty log message *** 2001-01-10 09:39:57 +00:00
Jim Meyering
d1da062806 *** empty log message *** 2001-01-09 23:13:08 +00:00
Jim Meyering
bce88bc1ae *** empty log message *** 2001-01-09 16:13:29 +00:00
Jim Meyering
8740ecf8c0 add comment 2001-01-09 16:12:59 +00:00
Jim Meyering
e92e87181b (top_level_src_path, top_level_dst_path): New globals.
(copy_internal): Use them.
(copy): Set them.
2001-01-09 16:07:40 +00:00
Jim Meyering
902dacb46a *** empty log message *** 2001-01-09 15:50:13 +00:00
Jim Meyering
134bbf752c whoops. move printf args, too 2001-01-08 08:34:52 +00:00
Jim Meyering
b27dd775ad (usage): Split long message string. 2001-01-07 16:15:37 +00:00
Jim Meyering
e230d9a62b *** empty log message *** 2001-01-07 16:13:34 +00:00
Jim Meyering
7709a02741 Split a string that was longer than 2048 bytes. 2001-01-07 16:13:27 +00:00
Jim Meyering
aaf9e9a820 (usage): Split a string that was longer than 2048 bytes. 2001-01-07 16:11:14 +00:00
Jim Meyering
674fed73ec (usage): Split a string that was longer than 2048 bytes. 2001-01-07 16:10:50 +00:00
Jim Meyering
98d1d862d5 back out last, prematurely-committed, change 2001-01-07 16:07:33 +00:00
Jim Meyering
aaef348f3d Correct the indentation of an `#endif'. 2001-01-07 16:06:27 +00:00
Jim Meyering
9bc96fd932 clean up after commit hook testing 2001-01-07 10:57:29 +00:00
Jim Meyering
7b0658b00f testing -- commit should fail 2001-01-07 10:54:06 +00:00
Jim Meyering
f4034df457 testing -- commit should fail 2001-01-07 10:52:43 +00:00
Jim Meyering
5856751f41 testing -- commit should fail 2001-01-07 10:51:00 +00:00
Jim Meyering
4df9c47ca7 (usage): Untabify. 2001-01-07 10:12:25 +00:00
Jim Meyering
354a71cdc2 *** empty log message *** 2001-01-07 10:12:16 +00:00
Jim Meyering
481c79dfac *** empty log message *** 2001-01-07 09:23:28 +00:00
Jim Meyering
5e32f7c19a s/can not/cannot/ 2001-01-07 09:23:18 +00:00
Jim Meyering
c5b4a727ab *** empty log message *** 2001-01-07 09:21:41 +00:00
Jim Meyering
8c07ff563b (parse_group): Normalize spelling. 2001-01-07 09:21:34 +00:00
Jim Meyering
fa997616ff normalize spelling in comment 2001-01-07 09:20:47 +00:00
Jim Meyering
0edd80c0f2 *** empty log message *** 2001-01-04 17:59:32 +00:00
Jim Meyering
cc49da4ddf (main): Fail when --rfc-822 (-R) is specified along
with a format string.  Reported by Jochen Hein.
2001-01-04 17:59:22 +00:00
Jim Meyering
b7b4bec8df . 2001-01-04 14:00:07 +00:00
Jim Meyering
7aed2f97a5 . 2001-01-04 10:19:49 +00:00
Jim Meyering
89c7458b53 Sync with glibc time/strftime.c 1.81. 2001-01-04 10:19:43 +00:00
Jim Meyering
0809f17d77 . 2001-01-03 21:04:52 +00:00
Jim Meyering
550edf90b2 Use the more precise algorithm of GNU "make" to decide whether
a file is in the future, by looking at high-resolution time
stamps if available.

(TIMESPEC_NS): New macro.
(current_time): Initialize to the minimum value.
(current_time_ns): New var.
(main): Do not bother to initialize current_time;
it's no longer needed.
(get_current_time): New function.
(print_long_format): Use it when a file appears to be in the future.
Get the nanoseconds of the file's time stamp, if available,
and use that to decide whether the file appears	to be in the future.
2001-01-03 21:02:08 +00:00
Jim Meyering
f3aa989205 check for existing behavior 2001-01-03 16:16:56 +00:00
Jim Meyering
f8a894c567 *** empty log message *** 2001-01-03 11:37:46 +00:00
Jim Meyering
a0439c2405 (main): Remove embedded \n from diagnostic. 2001-01-03 11:36:10 +00:00
Jim Meyering
edfabc70d3 *** empty log message *** 2001-01-03 10:16:14 +00:00
Jim Meyering
9e14c22918 (AM_GNU_GETTEXT): Define MKINSTALLDIRS by
expanding the value of $ac_aux_dir, as in AM_MISSING_HAS_RUN,
so `make install' also works in VPATH builds.
2001-01-03 10:16:02 +00:00
Jim Meyering
f3334434ea *** empty log message *** 2001-01-03 10:09:08 +00:00
Jim Meyering
5686f159ab (print_unicode_char): Remove `const' from declaration of
local `inptr' to avoid warning with some system declarations of iconv.
2001-01-03 10:08:43 +00:00
Jim Meyering
b7f12e5291 *** empty log message *** 2001-01-03 10:06:53 +00:00
Jim Meyering
954daed8c2 . 2001-01-03 09:47:20 +00:00
Jim Meyering
b042ca3c0f (long_time_expected_width, print_long_format): Fix
bug: the initial byte passed to strftime wasn't initialized to
a nonzero value after the buffer was reallocated.
2001-01-03 09:47:09 +00:00
Jim Meyering
5d3b5e175a *** empty log message *** 2001-01-03 09:45:43 +00:00
Jim Meyering
1f13191b6f (install-data-yes): If the package is
fileutils, install LC_TIME as an alias for LC_MESSAGES.
2001-01-03 09:45:32 +00:00
Jim Meyering
5aa665a624 (dcgettext): New macro. 2001-01-03 09:44:56 +00:00
Jim Meyering
85a5e683e8 (decode_switches): Use dcgettext with LC_TIME,
not plain gettext, to get the translations of time formats.
2001-01-03 09:44:15 +00:00
Jim Meyering
e646037f4a . 2001-01-03 09:38:55 +00:00
Jim Meyering
536a6dd3ce (long_time_expected_width): New function.
(print_long_format): Use it, so that we don't assume a
particular width for time stamps in an internationalized
environment.
2001-01-03 09:15:22 +00:00
Jim Meyering
701cc3fe2c *** empty log message *** 2001-01-02 15:50:18 +00:00
Jim Meyering
22fc5f7ac9 (ulonglong_t): Define place-holder type to avoid some #if directives.
(LONGEST_INTEGRAL_TYPE): Remove definition.
(MAX_INTEGRAL_TYPE_SIZE): Use ulonglong_t instead of LONGEST_INTEGRAL_TYPE.
(print_long_long): Compile this function even on systems without
long long support.
(decode_one_format): Remove #if directive.
2001-01-02 15:48:21 +00:00
Jim Meyering
4dcf0e2c7b . 2001-01-02 15:31:41 +00:00
Jim Meyering
67aea68e97 *** empty log message *** 2001-01-02 10:55:34 +00:00
Jim Meyering
2320b98d89 (decode_one_format): Guard use of print_long_long with
`#if HAVE_UNSIGNED_LONG_LONG'.  From Darren Salt.
Change all `#ifdef HAVE_UNSIGNED_LONG_LONG' to use `#if' instead.
2001-01-02 10:54:55 +00:00
Jim Meyering
4f90505509 *** empty log message *** 2001-01-02 10:44:38 +00:00
Jim Meyering
4fcf9133ef *** empty log message *** 2001-01-02 07:21:36 +00:00
Jim Meyering
1f29ee0e02 *** empty log message *** 2001-01-02 07:20:13 +00:00
Jim Meyering
5285933ed8 copyright 2001-01-02 07:19:59 +00:00
Jim Meyering
1efbe325bd (print_long_format):
Report the year for files even slightly in the future.
Avoid overflow problems near Y2038 on 32-bit hosts.
To calculate "six months", take half the average Gregorian
year, not 180 days.
2001-01-02 07:18:56 +00:00
Jim Meyering
1f678f44f9 *** empty log message *** 2001-01-02 07:14:47 +00:00
Jim Meyering
895cf6e91f . 2001-01-01 18:17:10 +00:00
Jim Meyering
682bc57d89 (jm_PREREQ_READUTMP): Include utmp.h (if available), even
on systems with utmpx.h.  It's necessary for the declaration of utmp's
ut_user member.  Reported by Andreas Jaeger.
2001-01-01 18:16:52 +00:00
Jim Meyering
74ac72a78f . 2001-01-01 18:09:31 +00:00
Jim Meyering
f324aa68f9 (jm_CHECK_DECLS): Include grp.h and pwd.h if available.
They are required for the declarations of getgrgid and getpwuid resp.
(_jm_DECL_HEADERS): Check for grp.h and pwd.h.
2001-01-01 18:08:48 +00:00
Jim Meyering
88db6b6944 . 2001-01-01 10:59:50 +00:00
Jim Meyering
387d125c2d *** empty log message *** 2001-01-01 10:52:32 +00:00
Jim Meyering
fd77d94155 *** empty log message *** 2001-01-01 10:51:32 +00:00
Jim Meyering
137c6d5137 (TESTS): Add setgid. 2001-01-01 10:51:22 +00:00
Jim Meyering
671567d496 *** empty log message *** 2001-01-01 10:49:52 +00:00
Jim Meyering
aa3ef39ac8 *** empty log message *** 2000-12-31 13:24:28 +00:00
Jim Meyering
b360fa26e5 (AM_WITH_NLS): When using AC_CONFIG_AUX_DIR,
prepend $(top_srcdir) to the value of MKINSTALLDIRS so that it
can be used in subdirectories.
2000-12-31 12:15:42 +00:00
Jim Meyering
168401bef2 *** empty log message *** 2000-12-31 12:12:41 +00:00
Jim Meyering
9ecf7a54be . 2000-12-31 09:51:50 +00:00
Jim Meyering
b46b6af7e3 . 2000-12-31 09:49:33 +00:00
Jim Meyering
318e97ef64 File renamed from tests/sticky-check.
All uses of "sticky" changed to "setgid".
2000-12-31 09:49:23 +00:00
Jim Meyering
9b525d2fe1 sticky-check -> setgid-check 2000-12-31 09:48:35 +00:00
Jim Meyering
7a5e723600 sticky-check -> setgid-check 2000-12-31 09:48:10 +00:00
Jim Meyering
9a2e78d703 sticky-check -> setgid-check 2000-12-31 09:46:15 +00:00
Jim Meyering
b28d611552 *** empty log message *** 2000-12-31 09:21:28 +00:00
Jim Meyering
f39ef82a14 . 2000-12-31 09:19:25 +00:00
Jim Meyering
c76348c318 (TESTS): Add deref-slink. 2000-12-31 09:17:00 +00:00
Jim Meyering
dd9804a4fe New file. Test for the bug fixed by my 2000-12-28 change to copy.c. 2000-12-31 09:15:44 +00:00
Jim Meyering
f0018a3b9c Improve performance by invoking gettext twice at the start,
instead of once for each file.
(long_time_format): New var.
(decode_switches): Initialize it, if format == long_format.
(print_long_format): Use it.
2000-12-31 09:06:54 +00:00
Jim Meyering
9adb2c7cf1 *** empty log message *** 2000-12-31 08:55:58 +00:00
Jim Meyering
857c948551 (print_long_format): Don't dump core if strftime returns the empty string. 2000-12-31 08:55:41 +00:00
Jim Meyering
33cf956fc8 *** empty log message *** 2000-12-31 08:33:59 +00:00
Jim Meyering
66816a3514 (gobble_file): If not using long format, don't invoke acl; it's not needed. 2000-12-31 08:33:49 +00:00
Jim Meyering
6417617d33 *** empty log message *** 2000-12-31 08:30:28 +00:00
Jim Meyering
769b95b751 Avoid an unnecessary `stat' when using --dereference.
(same_file_ok): Use stat only if lstat reported that
the file was a symbolic link.
2000-12-31 08:29:17 +00:00
Jim Meyering
de0ebc7eb6 *** empty log message *** 2000-12-30 16:51:42 +00:00
Jim Meyering
d8271b06b4 append-only directories -> restricted deletion flag,
which is the term that POSIX d5 uses for this notion.
2000-12-30 16:51:24 +00:00
Jim Meyering
206205c6ee *** empty log message *** 2000-12-29 10:32:33 +00:00
Jim Meyering
3336d7cf69 Do not assume that mode_t uses the
traditional octal encoding.  E.g. "chmod 1 FOO" should set
the other-execute bit of FOO even if S_IXOTH != 1.

(SUID, SGID, SVTX, RUSR, WUSR, XUSR, RGRP, WGRP, XGRP, ROTH,
WOTH, XOTH, ALLM): New macros.
(S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR,
 S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH):
Use them.
(S_ISGID): Fix typo; it was defaulting to the same value as S_ISUID.
(S_IRWXU, S_IRWXG, S_IRWXO): Specify defaults in terms of the above.
(mode_compile):
No need to use uintmax_t; unsigned long is long enough.
Don't bother to get suffix since we don't use it.
2000-12-29 10:32:09 +00:00
Jim Meyering
c319b5bf3b *** empty log message *** 2000-12-29 08:58:38 +00:00
Jim Meyering
de577f3440 Try /usr/xpg4/bin/id (Solaris 7) if plain 'id' doesn't work. 2000-12-29 08:58:25 +00:00
Jim Meyering
9f0489df43 . 2000-12-28 14:43:13 +00:00
Jim Meyering
46e7805428 Run sticky-check from just-created directory. 2000-12-28 14:40:15 +00:00
Jim Meyering
d4b4519d8d *** empty log message *** 2000-12-28 13:35:28 +00:00
Jim Meyering
b8d4bfe024 . 2000-12-28 13:17:02 +00:00
Jim Meyering
7046dfbc47 tweak comment 2000-12-28 11:52:28 +00:00
Jim Meyering
f119221740 tweak comment 2000-12-28 11:31:44 +00:00
Jim Meyering
fe38ed9d90 *** empty log message *** 2000-12-28 11:23:55 +00:00
Jim Meyering
bc9ff8c14d (same_file_ok): Fix *another* typo from my 2000-09-03 change: s/tmp_dst_sb/tmp_src_sb/. 2000-12-28 11:22:59 +00:00
Jim Meyering
a400a0e081 *** empty log message *** 2000-12-28 09:53:58 +00:00
Jim Meyering
3abbefb5e4 (same_file_ok): Fix typo from my 2000-09-03 change: s/tmp_dst_sb/tmp_src_sb/. 2000-12-28 09:53:34 +00:00
Jim Meyering
51d5f8a438 (same_file_ok): Use a single auto var for
tmp_dst_sb, instead of two static vars.
Likewise for tmp_src_sb.
2000-12-28 09:42:06 +00:00
Jim Meyering
e8c1aced2b *** empty log message *** 2000-12-28 09:41:39 +00:00
Jim Meyering
9926b4ec03 . 2000-12-27 10:05:05 +00:00
Jim Meyering
20b09b0761 . 2000-12-27 07:47:08 +00:00
Jim Meyering
9d72d71f21 . 2000-12-27 07:46:47 +00:00
Jim Meyering
937873451a use AC_DEFINE_UNQUOTED 2000-12-27 07:46:35 +00:00
Jim Meyering
b7eb48d4fc (jm_AC_DOS): Rewrite (though it's still a stub) to work better with autoheader. 2000-12-26 18:57:53 +00:00
Jim Meyering
2f67a24489 *** empty log message *** 2000-12-26 11:34:34 +00:00
Jim Meyering
0fa2ce5716 *** empty log message *** 2000-12-26 09:39:17 +00:00
Jim Meyering
1aef6a3960 tweak comment, white space 2000-12-26 09:36:36 +00:00
Jim Meyering
e41d7c5bee *** empty log message *** 2000-12-26 08:51:59 +00:00
Jim Meyering
37aa98f669 Disable the test if the working directory has the sticky bit set. 2000-12-26 08:51:51 +00:00
Jim Meyering
5c265cddbf *** empty log message *** 2000-12-26 08:43:15 +00:00
Jim Meyering
da21549918 Disable the test if the working directory has the sticky bit set. 2000-12-26 08:43:03 +00:00
Jim Meyering
f46fed1458 add omitted semicolon 2000-12-25 18:51:58 +00:00
Jim Meyering
fa9603b6d4 *** empty log message *** 2000-12-25 18:38:19 +00:00
Jim Meyering
0f4de82749 (same_file_ok): Remove declaration and set of unused
variables: src_sb_no_link, dst_sb_no_link.
2000-12-25 18:35:16 +00:00
Jim Meyering
46fa2b76aa *** empty log message *** 2000-12-25 18:31:25 +00:00
Jim Meyering
1a8989fd9d Add a test for this (for all of cp, mv, ln, install). 2000-12-25 18:31:18 +00:00
Jim Meyering
f4795cc6b3 For both ln and install, when using `--backup=simple --suffix=S',
the suffix `S' wasn't used.

(main): Actually use the local variable, `backup_suffix_string'.
2000-12-25 11:07:20 +00:00
Jim Meyering
5688e294f7 *** empty log message *** 2000-12-25 10:45:20 +00:00
Jim Meyering
3c1f0042f5 (hash_compare_active_dir_ents): Return explicit `true'
or `false', rather than relying on implicit int-to-enum cast.
2000-12-25 10:45:10 +00:00
Jim Meyering
ca08f0ea65 *** empty log message *** 2000-12-25 10:41:52 +00:00
Jim Meyering
61b343a3c8 *** empty log message *** 2000-12-25 10:40:42 +00:00
Jim Meyering
ec76cb5726 (extract_dirs_from_files): Remove unused variable.
(gobble_file): Move decl of local, val, into the scope where it's used.
2000-12-25 10:39:04 +00:00
Jim Meyering
d6c55effc3 *** empty log message *** 2000-12-24 18:02:18 +00:00
Jim Meyering
788bdca00c *** empty log message *** 2000-12-24 17:58:16 +00:00
Jim Meyering
c8b1db11d3 (main): Actually use the local variable, `backup_suffix_string'. 2000-12-24 17:56:51 +00:00
Jim Meyering
24ffc1a3c9 whoops 2000-12-24 17:53:05 +00:00
Jim Meyering
2cea3f1b14 detect ln simple backup bug 2000-12-24 13:49:29 +00:00
Jim Meyering
73a15b2b5f *** empty log message *** 2000-12-24 10:06:00 +00:00
Jim Meyering
3734f30bca *** empty log message *** 2000-12-24 09:39:04 +00:00
Jim Meyering
7862d9f6fc Update to version 1.24. 2000-12-24 09:34:17 +00:00
Jim Meyering
7aa3fb3d47 (is_prime): Return explicit boolean values.
(hash_get_first): Return NULL to appease Irix5.6's 89.
2000-12-24 07:12:21 +00:00
Jim Meyering
6ac10d9b9a . 2000-12-23 10:44:25 +00:00
Jim Meyering
8c8f0df4f0 [HAVE_INTTYPES_H]: Include <inttypes.h>. 2000-12-23 10:43:33 +00:00
Jim Meyering
69e09f0559 *** empty log message *** 2000-12-22 22:45:32 +00:00
Jim Meyering
1a18604b2e (isaac_seed_machdep) [_ARCH_PPC]: Disable the code
that would use the PPC mfspr `asm' code.
2000-12-22 22:44:30 +00:00
Jim Meyering
eae1c2b69c . 2000-12-19 11:06:05 +00:00
Jim Meyering
4c038111f8 *** empty log message *** 2000-12-19 10:51:39 +00:00
Jim Meyering
a82d4c2b3d . 2000-12-19 10:50:31 +00:00
Jim Meyering
0cba2d7f5b *** empty log message *** 2000-12-19 10:37:30 +00:00
Jim Meyering
a87ae161be . 2000-12-19 10:25:15 +00:00
Jim Meyering
275b1879c3 . 2000-12-19 10:25:15 +00:00
Jim Meyering
66cf2ad8ce *** empty log message *** 2000-12-19 09:23:47 +00:00
Jim Meyering
0966c0f860 . 2000-12-19 09:23:09 +00:00
Jim Meyering
83a6c55c74 (UINTMAX_MAX): New macro, taken from C99. 2000-12-19 09:22:24 +00:00
Jim Meyering
3c46adfe19 adjust indentation 2000-12-19 09:21:42 +00:00
Jim Meyering
0787040b75 *** empty log message *** 2000-12-19 09:16:39 +00:00
Jim Meyering
bf86c62a33 Include physmem.h.
(SORTALLOC, mergealloc, LINEALLOC): Remove.
(sortalloc): Default to zero at program startup.
(SORTALLOC_MIN, SORTALLOC_DEFAULT_MIN): New macros.
(usage, main): Add support for new -S SIZE option.
(specify_sort_size, default_sort_size): New functions.
(initlines): Do not let alloc exceed limit.
(findlines): Likewise.
(checkfp, mergefps, sort): Use sortalloc to size everything
else, instead of relying on precomputed sizes.
2000-12-19 09:16:28 +00:00
Jim Meyering
915dacbb85 New "sort" option -S SIZE. 2000-12-19 08:40:54 +00:00
Jim Meyering
b6b86da148 *** empty log message *** 2000-12-19 08:36:53 +00:00
Jim Meyering
de38d76a18 (libfetish_a_SOURCES): Add physmem.c.
(noinst_HEADERS): Add physmem.h.
2000-12-19 08:36:39 +00:00
Jim Meyering
166c00189a (__xstrtol): Add undocumented suffixes 'g' and
't' for compatibility with Solaris 8 sort.
2000-12-19 08:35:20 +00:00
Jim Meyering
bca787f7c4 *** empty log message *** 2000-12-19 08:22:18 +00:00
Jim Meyering
258f00968a *** empty log message *** 2000-12-19 08:16:25 +00:00
Jim Meyering
bc40f9fcef (locale_charset): Add support for Win32. 2000-12-19 08:16:09 +00:00
Jim Meyering
d81418fd5e . 2000-12-18 23:43:27 +00:00
Jim Meyering
85ab4b9988 *** empty log message *** 2000-12-18 23:04:34 +00:00
Jim Meyering
f75f8a4b1d Add support for BeOS. 2000-12-18 23:04:28 +00:00
Jim Meyering
dfada44550 these macros take arguments 2000-12-17 09:26:55 +00:00
Jim Meyering
5d4c822ef7 *** empty log message *** 2000-12-17 09:23:05 +00:00
Jim Meyering
55f51356fb (jm_AC_DOS): New file and macro. 2000-12-17 09:22:56 +00:00
Jim Meyering
3f6afc4a7a (jm_MACROS): Require jm_AC_DOS. 2000-12-17 09:22:17 +00:00
Jim Meyering
dc87bf344c *** empty log message *** 2000-12-17 00:19:05 +00:00
Jim Meyering
7a41a27413 *** empty log message *** 2000-12-17 00:18:50 +00:00
Jim Meyering
8dc25234e0 *** empty log message *** 2000-12-17 00:17:26 +00:00
Jim Meyering
24ad4ecf29 *** empty log message *** 2000-12-17 00:17:03 +00:00
Jim Meyering
c9f0363bea . 2000-12-17 00:15:02 +00:00
Jim Meyering
c44bd5683d Update from master repository. 2000-12-17 00:14:40 +00:00
Jim Meyering
ae8bf0e8f1 . 2000-12-16 23:35:38 +00:00
Jim Meyering
fbba4d8d5e *** empty log message *** 2000-12-16 22:27:18 +00:00
Jim Meyering
2b64713ac6 *** empty log message *** 2000-12-16 22:26:23 +00:00
Jim Meyering
2464a2cd9d [!SHELLS_FILE && __DJGPP__]: Define
SHELLS_FILE to a file name that's useful on djgpp systems.
Include stdlib.h.
(ADDITIONAL_DEFAULT_SHELLS): Define.
(default_shells): Prepend ADDITIONAL_DEFAULT_SHELLS.
Based mostly on a patch from Prashant TR.
2000-12-16 22:25:44 +00:00
Jim Meyering
96e6715ebe . 2000-12-16 18:53:08 +00:00
Jim Meyering
72d973cb61 (uint_to_string): New function.
(uid_to_name): Use it.
(gid_to_name): Use it.
Rename locals, user/group, to uid/gid.
2000-12-16 18:52:58 +00:00
Jim Meyering
39d300f12b (enum Change_status): Start with 1. 2000-12-16 18:47:43 +00:00
Jim Meyering
76f8538bf6 . 2000-12-16 14:49:25 +00:00
Jim Meyering
71411370e7 *** empty log message *** 2000-12-16 13:41:40 +00:00
Jim Meyering
eb24d1f55c *** empty log message *** 2000-12-16 13:40:37 +00:00
Jim Meyering
608b347584 This bug had a serious impact on chown: `chown N:M FILE' (for integer
N and M) would have treated it like `chown N:N FILE'.
(parse_user_spec): Fix typo: s/u/g/.
2000-12-16 13:28:13 +00:00
Jim Meyering
6c4cbe6b5f (main): Rename local, group, to gid. 2000-12-16 13:10:05 +00:00
Jim Meyering
ad31d9b60c tweak a comment 2000-12-16 13:01:24 +00:00
Jim Meyering
8e2ee9a689 (main): Rename locals, user/group, to uid/gid. 2000-12-16 12:57:14 +00:00
Jim Meyering
067af316b6 *** empty log message *** 2000-12-16 09:23:52 +00:00
Jim Meyering
c0ab7dc021 *** empty log message *** 2000-12-16 09:23:32 +00:00
Jim Meyering
8233adab59 Use group-names. 2000-12-16 09:23:10 +00:00
Jim Meyering
be74434bbd Use group-names. 2000-12-16 09:21:20 +00:00
Jim Meyering
bbc027cf8b *** empty log message *** 2000-12-16 09:19:34 +00:00
Jim Meyering
43da73f064 Don't assume that creating a file gives it group $g1. 2000-12-16 09:11:24 +00:00
Jim Meyering
ffc1ef87ea . 2000-12-16 08:20:57 +00:00
Jim Meyering
66e2135f07 (TESTS): Add recurse. 2000-12-16 08:20:11 +00:00
Jim Meyering
e6a5c51ed7 Add ISO-8859-3, BIG5HKSCS, GB18030, JOHAB, VISCII,
CP874, CP949, CP950, CP1250, CP1253, CP1254, CP1255, CP1256, CP1257
to the list of canonical encodings. Rename EUC-CN to GB2312.
2000-12-15 23:43:55 +00:00
Jim Meyering
d952853f74 *** empty log message *** 2000-12-15 14:49:48 +00:00
Jim Meyering
3ebf224b28 *** empty log message *** 2000-12-15 14:45:50 +00:00
Jim Meyering
9be2faa156 *** empty log message *** 2000-12-15 13:32:24 +00:00
Jim Meyering
a8fff5ee1f *** empty log message *** 2000-12-15 13:31:21 +00:00
Jim Meyering
4ab4534292 . 2000-12-15 13:30:32 +00:00
Jim Meyering
0e81b6b48e (main): Reflect renaming: s/dereference/change_symlinks/. 2000-12-15 13:29:56 +00:00
Jim Meyering
694c6b3a86 (enum Dereference_symlink): rename member: s/change_symlinks/dereference/ 2000-12-15 13:27:03 +00:00
Jim Meyering
9724aab7a6 Declare lstat.
Rename change_symlinks member to `dereference' and use the DEREF_*
enum values.
(describe_change): Merge the chgrp and chown switch statements.
Use xmalloc to form the `user:group' string.
(change_file_owner): Record (and later, use) is_symlink and is_directory
from the lstat stats, in order to control whether we operate on symlinks
and whether (with -R) we traverse symlinks to directories.
When dereferencing, use open/fchown (rather than chown) on symlinks.
2000-12-15 13:24:47 +00:00
Jim Meyering
b6ca14a123 changed messages to match those chgrp now produces 2000-12-15 08:42:35 +00:00
Jim Meyering
976f3796be *** empty log message *** 2000-12-14 15:01:55 +00:00
Jim Meyering
1c643649b0 *** empty log message *** 2000-12-14 15:01:24 +00:00
Jim Meyering
3337b5a092 *** empty log message *** 2000-12-14 14:52:15 +00:00
Jim Meyering
b41ab84baa *** empty log message *** 2000-12-13 22:25:42 +00:00
Jim Meyering
af996c06d0 *** empty log message *** 2000-12-13 07:54:44 +00:00
Jim Meyering
2a21b4cf40 *** empty log message *** 2000-12-10 23:25:43 +00:00
Jim Meyering
3614a52150 *** empty log message *** 2000-12-10 12:50:40 +00:00
Jim Meyering
d2be99eb17 add envvar and lang checks 2000-12-10 09:20:52 +00:00
Jim Meyering
fca6110993 *** empty log message *** 2000-12-10 09:20:35 +00:00
Jim Meyering
9bb0e5cdb7 *** empty log message *** 2000-12-10 08:07:38 +00:00
Jim Meyering
cf302e3bc9 give a better diagnostic when only the group is being changed 2000-12-10 08:04:50 +00:00
Jim Meyering
b50fed9980 . 2000-12-09 22:18:02 +00:00
Jim Meyering
baf047f89a *** empty log message *** 2000-12-09 22:17:31 +00:00
Jim Meyering
a65f9eef4a *** empty log message *** 2000-12-09 22:16:57 +00:00
Jim Meyering
9c149c3b6c . 2000-12-09 22:07:28 +00:00
Jim Meyering
d64368c699 *** empty log message *** 2000-12-09 22:06:03 +00:00
Jim Meyering
97e76d3e24 (jm_MACROS): Remove jm_SYS_OFF_T_PRINTF_FORMAT. 2000-12-09 22:05:54 +00:00
Jim Meyering
a157495002 . 2000-12-09 22:05:28 +00:00
Jim Meyering
3c805daf45 . 2000-12-09 20:55:41 +00:00
Jim Meyering
8f55fdc385 (chopt_free): don't free anything 2000-12-09 20:54:23 +00:00
Jim Meyering
26f88f15c8 *** empty log message *** 2000-12-09 20:44:39 +00:00
Jim Meyering
6820c8729e *** empty log message *** 2000-12-09 20:39:17 +00:00
Jim Meyering
78169b6a2f *** empty log message *** 2000-12-09 20:38:12 +00:00
Jim Meyering
5a795ec749 Include "chown-core.h".
[enum Change_status, enum Verbosity]: Remove declarations.
Remove decls of globals that are now part of struct Chown_option.
Remove decl of xstat.
(describe_change): Remove function.
(change_file_group): Likewise.
(change_dir_group): Likewise.
(parse_group): Don't set global, groupname, here...
(main): ... instead, initialize `chopt.group_name' here.
Initialize chopt and update uses of the now-members.
Set group_name also when it's obtained via a --reference=FILE option.
Call change_file_owner (with -1 for uids), not change_file_group.
2000-12-09 20:38:01 +00:00
Jim Meyering
d26ef4e978 add 3 more prototypes 2000-12-09 20:31:56 +00:00
Jim Meyering
40d911bc45 Include <pwd.h>, <grp.h>, and "xalloc.h".
[!_POSIX_VERSION]: Declare getgrnam and getgrgid.
(gid_to_name): New function.
(uid_to_name): Likewise.
(chopt_free): Likewise.
2000-12-09 20:31:34 +00:00
Jim Meyering
748db39d02 Don't include pwd.h or grp.h -- no longer needed.
Include chown-core.h.
[enum Change_status, enum Verbosity]: Remove declarations.
Remove decls of globals that are now part of struct Chown_option.
(describe_change): Remove function.
(change_file_owner): Likewise.
(change_dir_owner): Likewise.
(main): Initialize chopt and update uses of the now-members.
Set user_name and group_name also when they're obtained via a
--reference=FILE option.
Pass `chopt' to change_file_owner.
2000-12-09 20:29:32 +00:00
Jim Meyering
4db97b7a7d *** empty log message *** 2000-12-09 14:47:06 +00:00
Jim Meyering
f8b26d3ade *** empty log message *** 2000-12-09 14:46:34 +00:00
Jim Meyering
5c8eb8ec36 *** empty log message *** 2000-12-09 14:08:07 +00:00
Jim Meyering
64f7bff756 *** empty log message *** 2000-12-09 13:50:13 +00:00
Jim Meyering
040db4c3fe *** empty log message *** 2000-12-09 13:48:03 +00:00
Jim Meyering
34ef74b11c *** empty log message *** 2000-12-09 13:44:37 +00:00
Jim Meyering
de4a3dfb26 *** empty log message *** 2000-12-09 13:44:10 +00:00
Jim Meyering
108881a3b2 *** empty log message *** 2000-12-09 13:38:51 +00:00
Jim Meyering
7d5f893b7f *** empty log message *** 2000-12-09 12:47:51 +00:00
Jim Meyering
8d977c3978 *** empty log message *** 2000-12-09 10:15:26 +00:00
Jim Meyering
73f1bc31d7 (change_file_owner): Restore special file permission
bits, since calling chown resets them on some systems.
Reported by Matt Perry.
2000-12-09 10:15:17 +00:00
Jim Meyering
497d1d9e97 *** empty log message *** 2000-12-09 10:14:52 +00:00
Jim Meyering
764dd3149e Don't make the success of the test depend
on the order in which directory entries are processed.
2000-12-08 20:31:47 +00:00
Jim Meyering
b2b9bed164 *** empty log message *** 2000-12-08 20:31:15 +00:00
Jim Meyering
9580e7cc87 *** empty log message *** 2000-12-08 18:32:11 +00:00
Jim Meyering
a05267197a (mbsnwidth): Don't loop endlessly when called with an
invalid mulitbyte sequence and with the MBSW_ACCEPT_INVALID flag set.
2000-12-08 18:31:38 +00:00
Jim Meyering
a90e5f5a69 *** empty log message *** 2000-12-08 08:06:33 +00:00
Jim Meyering
1f47a082c4 Include xalloc.h.
(main): Use dir_name rather than the underlying dir_name_r.
The former now handles cwd-relative names with drive-letter prefixes.
2000-12-08 07:55:05 +00:00
Jim Meyering
7b55b7aa13 *** empty log message *** 2000-12-07 14:14:18 +00:00
Jim Meyering
bcc94017bc convert a > expression to the equivalent < one 2000-12-07 14:13:51 +00:00
Jim Meyering
b615d79ac3 (ISSLASH): Define.
(strip_trailing_slashes): Use ISSLASH rather than comparing against `/'.
From Prashant TR.
2000-12-07 14:13:13 +00:00
Jim Meyering
04f549820f convert a > expression to the equivalent < one 2000-12-07 14:11:52 +00:00
Jim Meyering
ded8b14afb *** empty log message *** 2000-12-07 14:10:33 +00:00
Jim Meyering
4504b81f3b (FILESYSTEM_PREFIX_LEN): Define.
(dir_name_r): Declare this function as static.
[BACKSLASH_IS_PATH_SEPARATOR]: Fix a bug that'd
manifest itself on a name containing a mix of slashes and
backslashes.
Make this function work with names starting with a DOS-style
drive letter and colon prefix.
(dir_name): Append `.' if necessary.
Based mostly on patches from Prashant TR and Eli Zaretskii.
2000-12-07 14:10:21 +00:00
Jim Meyering
222412dbf1 (dir_name_r): Remove prototype. 2000-12-07 11:50:35 +00:00
Jim Meyering
71751f757d *** empty log message *** 2000-12-07 10:07:28 +00:00
Jim Meyering
8c8424d0c2 (address_base): Declare to be static. 2000-12-07 10:07:08 +00:00
Jim Meyering
e42f27d147 (address_base, address_pad_len): New var.
(output_address_fmt_string, address_fmt_buffer, address_pad): Remove.
(flag_pseudo_start): Now int, not long int.
(pseudo_offset): Now off_t, not long int.
(n_specs, n_specs_allocated): Now size_t, not unsigned int.
(format_address, format_address_none, format_address_std,
format_address_label): Now accepts an extra char argument (an extra
char to print if nonzero), and prints instead of returning a string.
All callers changed.
(bytes_per_block): Now size_t, not int.
(format_address_none): Do not even print the extra char argument.
This simplifies the callers.
(format_address_std, format_address_label): Print off_t ourself
instead of trying to use autoconfigured format.  This is faster and
more portable.
(format_address_paren): New function.
(dump): Remove unnecessary cast.
(expand_address_fmt): Remove.
(main): Use size_t, off_t, etc. instead of builtin types where this is
advisable.  Adjust to above changes.  Remove unnecessary cast.
2000-12-07 10:05:09 +00:00
Jim Meyering
d1cca1ee9c *** empty log message *** 2000-12-06 11:06:43 +00:00
Jim Meyering
0654f3206d Check for strtol. Mainly as a cue to cause automake to include
strtol.c -- that file is included by each of strtoul.c and strtoull.c.
Check for limits.h -- strtol.c needs it.
2000-12-06 11:06:39 +00:00
Jim Meyering
67cf94a857 *** empty log message *** 2000-12-06 10:52:37 +00:00
Jim Meyering
69ed54e544 Check for declarations of strtoul and strtoull. 2000-12-06 10:52:28 +00:00
Jim Meyering
3dabe6b533 separate conditions for strtoul and strtoull 2000-12-06 10:26:51 +00:00
Jim Meyering
2845214164 *** empty log message *** 2000-12-06 09:55:03 +00:00
Jim Meyering
6b8102a180 *** empty log message *** 2000-12-06 09:35:48 +00:00
Jim Meyering
570074d6d1 (jm_AC_PREREQ_XSTRTOUMAX): If we need the replacement
strtoull, we may well need the replacement strtoul, too.
2000-12-06 09:35:40 +00:00
Jim Meyering
72a6d74ab2 . 2000-12-05 13:53:13 +00:00
Jim Meyering
cd6f0af0ea (dir_name_r): Add `const' in a few local declarations. 2000-12-05 13:14:13 +00:00
Jim Meyering
2746cd50c3 *** empty log message *** 2000-12-04 09:41:28 +00:00
Jim Meyering
8a4261c7a5 *** empty log message *** 2000-12-04 09:37:40 +00:00
Jim Meyering
90799b6c68 Also include memory.h, stdlib.h, unistd.h if appropriate. 2000-12-04 09:37:33 +00:00
Jim Meyering
1c6320fe7c *** empty log message *** 2000-12-04 09:15:54 +00:00
Jim Meyering
fecdd2bd2b [!HAVE_DECL_MALLOC]: Declare malloc. 2000-12-04 09:15:49 +00:00
Jim Meyering
15691fb64f *** empty log message *** 2000-12-03 22:40:40 +00:00
Jim Meyering
cb366955f3 (gobble_file) [USE_ACL]: Set have_acl member unconditionally
to avoid uninitialized memory reference via FILE_HAS_ACL.
2000-12-03 22:40:31 +00:00
Jim Meyering
82a6fbda1c *** empty log message *** 2000-12-03 20:46:07 +00:00
Jim Meyering
177b2553e2 (TESTS): Add assert-2. 2000-12-03 20:43:51 +00:00
Jim Meyering
814e63e371 remove instrumentation 2000-12-03 20:37:55 +00:00
Jim Meyering
2eed25f2ed add instrumentation to detect some UMRs 2000-12-03 20:37:18 +00:00
Jim Meyering
1be9e19c7d *** empty log message *** 2000-12-03 20:36:29 +00:00
Jim Meyering
b7895d0d10 (tail_file): Initialize ignore, dev, and ino members,
when tailing forever and the open failed.  Otherwise, we could get
uninitialized memory references of those fields in recheck.
2000-12-03 20:36:19 +00:00
Jim Meyering
8461820956 *** empty log message *** 2000-12-03 13:10:48 +00:00
Jim Meyering
86960ce221 *** empty log message *** 2000-12-03 12:46:55 +00:00
Jim Meyering
6670163eee (alpha): Use rsync rather than scp, so the destination
file is created only after the successful completion of the copy.
2000-12-03 12:46:44 +00:00
Jim Meyering
437f8becaa . 2000-12-03 12:31:59 +00:00
Jim Meyering
5233121102 use CHAR_BIT, not BITSPERBYTE 2000-12-03 11:00:06 +00:00
Jim Meyering
25c2989d30 *** empty log message *** 2000-12-03 10:59:49 +00:00
Jim Meyering
4f96dfa43e (CHAR_BIT): Define. 2000-12-03 10:59:44 +00:00
Jim Meyering
f559a4afa3 *** empty log message *** 2000-12-03 10:39:03 +00:00
Jim Meyering
b5d4b2c555 *** empty log message *** 2000-12-03 10:22:32 +00:00
Jim Meyering
d8a157a00e *** empty log message *** 2000-12-03 10:21:34 +00:00
Jim Meyering
85a75d3a16 *** empty log message *** 2000-12-03 10:18:09 +00:00
Jim Meyering
d183ecddcd Make od print valid addresses for offsets of 2^32 and larger. (cont'd)
(MAX_ADDRESS_LENGTH): Don't hard-code as a literal.
Rather, define in terms of the type, off_t.
(string_min): Declare to be of type size_t.
(flag_dump_strings): Declare to be of type int.
(print_s_char): Declare the n_bytes parameter and the local, `i',
to be of type off_t.
(print_char): Likewise.
(print_s_short): Likewise.
(print_short): Likewise.
(print_int): Likewise.
(print_long): Likewise.
(print_long_long): Likewise.
(print_float): Likewise.
(print_double): Likewise.
(print_long_double): Likewise.
(dump_hexl_mode_trailer): Likewise.
(print_named_ascii): Likewise.
(print_ascii): Likewise.
(write_block): Likewise.
(print_ascii): Declare local, `print_function' with a prototype.
Change a few `>' comparisons to the equivalent `<' form.
(parse_options): Declare `tmp' to be of type uintmax_t.
Use xstrtoumax, not xstrtoul.
Fail if the specified offset if larger than OFF_T_MAX.
(dump_strings): Declare local `i' to be of type size_t.
Remove the now-unnecessary cast-to-off_t.
(main) [IF_LINT]: Initialize desired_width to avoid a warning.
Declare `tmp' to be of type uintmax_t.
Use xstrtoumax, not xstrtoul.
Fail if minimum string length is larger than SIZE_MAX.
Fail if specified width is larger than ULONG_MAX.
2000-12-03 10:18:04 +00:00
Jim Meyering
e30c09b4cb Add this:
AC_REQUIRE([AC_TYPE_OFF_T])
2000-12-03 10:04:30 +00:00
Jim Meyering
9d5d7f0d50 (OFF_T_MIN): Remove definition.
(OFF_T_MAX): Likewise.
2000-12-03 08:55:51 +00:00
Jim Meyering
caae4ed5a7 (OFF_T_MIN): Define.
(OFF_T_MAX): Define.
2000-12-03 08:54:37 +00:00
Jim Meyering
a1ca60f4e5 Make od print valid addresses for offsets of 2^32 and larger.
(format_address): Use off_t, not long unsigned_int as the
parameter type.
(format_address_none): Likewise.  Mark parameter as unused.
(format_address_std): Likewise.
(format_address_label): Likewise.
(print_ascii): Mark format string parameter as unused.
(write_block): Use off_t, not long unsigned_int as offset type.
(expand_address_fmt): New function.
(main): Use it to expand each address format string template.
Reported by Mark Nudelman, via Andreas Jaeger.
2000-12-03 08:44:12 +00:00
Jim Meyering
ce861b2cb3 (parse_options): Use xstrtoumax to parse the byte and line
offset.  Give a better diagnostic when the requested offset is still
representable but larger than OFF_T_MAX.
2000-12-03 08:35:48 +00:00
Jim Meyering
67ec78d188 *** empty log message *** 2000-12-02 22:18:29 +00:00
Jim Meyering
d661be38ed (valid_format): Move pre-increment to a separate statement to avoid a warning. 2000-12-02 22:18:21 +00:00
Jim Meyering
69e30c7f2a Move dcls of globals used only in main...
(main): ...to here.
(usage): Clarify option descriptions.
2000-12-02 22:16:41 +00:00
Jim Meyering
8973e2b38c whoops. rename the use, too -- not just the decl!! 2000-12-02 21:14:41 +00:00
Jim Meyering
df52f23ebf *** empty log message *** 2000-12-02 21:14:09 +00:00
Jim Meyering
5edc91fc05 (checkfp): Rename local `buf' to avoid shadowing previous declaration. 2000-12-02 21:14:02 +00:00
Jim Meyering
8b4ac20908 (skip): Use lseek instead of worrying about fseeko or fseek.
This should be portable, as we seek before doing any I/O.
(fseeko): Remove; no longer used.
2000-12-02 21:08:01 +00:00
Jim Meyering
1a0d9ea086 add back the parens Paul removed :-) 2000-12-02 20:55:25 +00:00
Jim Meyering
e49511faef (gobble_file): Do not fall back on lstat if stat
fails; POSIX.2 does not allow this.  Invoke acl only on
non-symlinks, and only if lstat or stat succeeds.
2000-12-02 20:55:02 +00:00
Jim Meyering
e05c32a868 *** empty log message *** 2000-12-02 20:52:09 +00:00
Jim Meyering
c2f898236f *** empty log message *** 2000-12-02 20:45:40 +00:00
Jim Meyering
501ebc1cba Make idempotent, to avoid some obscure warnings. 2000-12-02 20:45:30 +00:00
Jim Meyering
77182607c0 . 2000-12-02 18:52:17 +00:00
Jim Meyering
6769657fa3 *** empty log message *** 2000-12-02 18:52:03 +00:00
Jim Meyering
dab453378b (OFF_T_PRINTF_FORMAT_STRING): require it. 2000-12-02 18:51:26 +00:00
Jim Meyering
aa266c29eb *** empty log message *** 2000-12-02 18:04:19 +00:00
Jim Meyering
6b94589fa4 *** empty log message *** 2000-12-02 18:02:05 +00:00
Jim Meyering
0d849addb3 *** empty log message *** 2000-12-02 17:44:04 +00:00
Jim Meyering
1698b85090 *** empty log message *** 2000-12-02 17:40:26 +00:00
Jim Meyering
a538ba0149 *** empty log message *** 2000-12-02 17:39:59 +00:00
Jim Meyering
41f20fd38f *** empty log message *** 2000-12-02 14:53:18 +00:00
Jim Meyering
1c8189de61 (TESTS): Add follow-slink. 2000-12-02 14:53:07 +00:00
Jim Meyering
525e76fce0 *** empty log message *** 2000-12-02 14:52:45 +00:00
Jim Meyering
d91624bd99 *** empty log message *** 2000-12-02 14:43:34 +00:00
Jim Meyering
1c71127370 (NONZERO): Define and use it to make the code a tiny
bit more readable.
2000-12-02 14:43:28 +00:00
Jim Meyering
4f1553c89f *** empty log message *** 2000-12-02 14:28:23 +00:00
Jim Meyering
1b9cb7ea23 (sort invocation): Clarify how -t works when
a sort key specifies a range of fields.  From Karl O. Pinc.
2000-12-02 14:28:11 +00:00
Jim Meyering
479aba180c *** empty log message *** 2000-12-02 14:10:37 +00:00
Jim Meyering
8eeae63a74 . 2000-12-02 14:04:05 +00:00
Jim Meyering
07584e33ec add test that would fail on NetBSD before the last change 2000-12-02 14:02:34 +00:00
Jim Meyering
33ba435db5 *** empty log message *** 2000-12-02 13:22:57 +00:00
Jim Meyering
73fe66c783 *** empty log message *** 2000-12-02 13:22:14 +00:00
Jim Meyering
cc27b86c60 (main): Remove any trailing slash unconditionally.
Reported by Volker Borchert.
2000-12-02 13:20:37 +00:00
Jim Meyering
9db47bb808 *** empty log message *** 2000-12-02 12:15:00 +00:00
Jim Meyering
8bf3961df0 *** empty log message *** 2000-12-02 12:05:15 +00:00
Jim Meyering
df7d583cc2 (TESTS): Add skip-seek2 2000-12-02 12:05:03 +00:00
Jim Meyering
271e41850b *** empty log message *** 2000-12-02 12:04:32 +00:00
Jim Meyering
97b58344c5 *** empty log message *** 2000-12-02 09:58:43 +00:00
Jim Meyering
627dac6c07 Include <config.h> before any system include file. 2000-12-02 09:58:31 +00:00
Jim Meyering
0742bc284e *** empty log message *** 2000-12-02 08:19:31 +00:00
Jim Meyering
acca4638b8 (skip, dd_copy): Use ssize_t to store result of
safe_read, to avoid overflow e.g. on 64-bit Solaris sparc.
(dd_copy): Remove unnecessary cast.
2000-12-02 08:19:21 +00:00
Jim Meyering
05aabec021 *** empty log message *** 2000-12-02 08:14:33 +00:00
Jim Meyering
e996c1bd77 Undo most of the changes since 2000-11-24, since we've
documented a standard way to do it.
(skip_bytes, seek_bytes): Remove.
(usage): Remove B suffix.
(scanargs, skip, dd_copy, main): Remove support for B suffix.
2000-12-02 08:12:56 +00:00
Jim Meyering
b529a77be8 *** empty log message *** 2000-11-30 20:36:08 +00:00
Jim Meyering
4faf0a9a17 *** empty log message *** 2000-11-30 20:35:02 +00:00
Jim Meyering
3e50cea2f5 (jm_MACROS): Add stdint.h to the list of headers. 2000-11-30 20:34:23 +00:00
Jim Meyering
339738f351 s/SIZE_T_MAX/SIZE_MAX/. 2000-11-30 20:30:04 +00:00
Jim Meyering
a48a4d5c63 Include <stdint.h> if HAVE_STDINT_H.
(SIZE_MAX): Renamed from SIZE_T_MAX, as C99 uses SIZE_MAX.
All uses changed.
2000-11-30 20:27:49 +00:00
Jim Meyering
57a0382b5f *** empty log message *** 2000-11-30 11:39:19 +00:00
Jim Meyering
835a8fa634 (SIZE_T_MAX): Define. 2000-11-30 11:39:08 +00:00
Jim Meyering
4ff7ab63ab *** empty log message *** 2000-11-30 11:33:57 +00:00
Jim Meyering
d92f4ac85e Port GNU "sort" to hosts where sizes don't fit in "int",
e.g. 64-bit Solaris (sparc).

("human.h", "xstrtol.h"): Include.
(struct line): length member is now size_t, not int.
(struct lines): Likewise for used, alloc, limit members.
(struct buffer): Likewise for used, alloc, left, newline_free members.
(struct keyfield): Likewise for sword, schar, eword, echar members.
(sortalloc, mergealloc, linelength): Now size_t, not int.

(initbuf, fillbuf, initlines, begfield, limfield, findlines,
numcompare, getmonth, keycompare, compare, checkfp, mergefps,
sortlines, sort): Accept, return, and use size_t for sizes, not int.

(fillbuf, initlines, findlines, checkfp, sort): Check for overflow
when computing buffer sizes.

(begfield, limfield): Do not index past end of array.

(checkfp): Return a boolean, not a line number, as the line
number may not fit in int.  All callers changed.  Use
uintmax_t for line numbers, not int.

(sort): Don't allocate tmp until we need it (and know the right size).

(parse_field_count): New function.

(main): Use it to check for overflow in field counts.
"outfile" is now a pointer to const.
2000-11-30 11:33:49 +00:00
Jim Meyering
21b8c52ae9 *** empty log message *** 2000-11-30 09:36:04 +00:00
Jim Meyering
7303ca25db (dir_name_r): Fix typo: int -> size_t. 2000-11-30 09:35:52 +00:00
Jim Meyering
060fb58f86 *** empty log message *** 2000-11-30 07:45:38 +00:00
Jim Meyering
d185a442b9 s/ifval/m4_ifval/ to accommodate new autoconf. 2000-11-30 07:44:58 +00:00
Jim Meyering
86046cb32f . 2000-11-30 07:40:16 +00:00
Jim Meyering
1500316caf remove useless parens 2000-11-27 09:33:53 +00:00
Jim Meyering
72454050bb *** empty log message *** 2000-11-27 09:04:38 +00:00
Jim Meyering
b0b9c6fee7 *** empty log message *** 2000-11-27 08:47:13 +00:00
Jim Meyering
4a9feba665 add an echo 2000-11-27 08:45:46 +00:00
Jim Meyering
afed66de3b *** empty log message *** 2000-11-27 08:32:13 +00:00
Jim Meyering
d33f54f74f Use touch with `-d tomorrow' to avoid race condition. 2000-11-27 08:01:57 +00:00
Jim Meyering
6d43eca61a *** empty log message *** 2000-11-27 08:00:53 +00:00
Jim Meyering
59a56f4172 use abs_srcdir 2000-11-27 07:01:39 +00:00
Jim Meyering
8cd774b0a3 . 2000-11-26 23:30:27 +00:00
Jim Meyering
7484a08597 *** empty log message *** 2000-11-26 23:13:28 +00:00
Jim Meyering
3083c30362 Include config.h, stdio.h, sys/types.h. and system.h here instead. 2000-11-26 23:13:11 +00:00
Jim Meyering
81ae3684cc Include config.h, stdio.h, sys/types.h. and system.h here instead. 2000-11-26 23:12:44 +00:00
Jim Meyering
f8674300d4 don't include system.h here 2000-11-26 23:10:55 +00:00
Jim Meyering
b65d5875b7 *** empty log message *** 2000-11-26 23:10:25 +00:00
Jim Meyering
7c85357876 . 2000-11-26 23:08:17 +00:00
Jim Meyering
913052e751 *** empty log message *** 2000-11-26 23:05:02 +00:00
Jim Meyering
5536541dbb *** empty log message *** 2000-11-26 23:04:55 +00:00
Jim Meyering
6fbae8149f (_compare_files): New function.
(_process_file_spec): Likewise.
(_at_replace): Likewise.
(run_tests): Support new keywords, AUX and CMP and associated
syntax and semantics.
2000-11-26 23:04:39 +00:00
Jim Meyering
be56f8286f *** empty log message *** 2000-11-26 23:01:58 +00:00
Jim Meyering
b04a174558 . 2000-11-26 23:01:02 +00:00
Jim Meyering
1040389220 *** empty log message *** 2000-11-26 21:36:24 +00:00
Jim Meyering
459b44b03d (skip): Perform the `records < blocksize' test
at the top of the loop, not at the bottom.
2000-11-26 21:35:53 +00:00
Jim Meyering
297c469d6f (skip): New arg COUNT_BYTES. Read with BLOCKSIZE
bytes, but consider RECORDS to be a byte count if COUNT_BYTES
is nonzero.
2000-11-26 21:34:05 +00:00
Jim Meyering
022f9b7d19 Include sys/types.h. From Werner Almesberger. 2000-11-26 16:52:29 +00:00
Jim Meyering
de2cfc1a5f *** empty log message *** 2000-11-26 16:52:03 +00:00
Jim Meyering
005c4244f9 *** empty log message *** 2000-11-26 16:50:17 +00:00
Jim Meyering
9b45312c35 . 2000-11-26 16:00:33 +00:00
Jim Meyering
bd3afcc718 . 2000-11-26 15:59:51 +00:00
Jim Meyering
d47e7953ba *** empty log message *** 2000-11-26 15:59:12 +00:00
Jim Meyering
9860ca9f9b *** empty log message *** 2000-11-26 15:57:21 +00:00
Jim Meyering
8f9f95b5ec (TESTS): Add skip-seek. 2000-11-26 15:57:04 +00:00
Jim Meyering
2d354c5a2e . 2000-11-26 15:52:13 +00:00
Jim Meyering
7f5ed2b586 *** empty log message *** 2000-11-26 14:33:06 +00:00
Jim Meyering
8ee842a15b (skip_bytes, seek_bytes): Now booleans, not counts.
(seek_records): Renamed from seek_record, for consistency with
skip_records and max_records.  All uses changed.

(usage, scanargs): Remove bseek=n and bskip=n; instead, use seek=nB
and skip=nB.
(enum Unit, Unit): Remove.
(skip, dd_copy, main): Undo most recent change.
(dd_copy, main): Pass blocksize of 1 as appropriate when
skip_bytes or seek_bytes is nonzero.
(main): Rework ftruncate failure diagnostic to always use byte count.
2000-11-26 08:23:23 +00:00
Jim Meyering
7a16e5e6ff *** empty log message *** 2000-11-25 17:01:00 +00:00
Jim Meyering
6cfcd41e1a *** empty log message *** 2000-11-25 15:27:47 +00:00
Jim Meyering
89499f2124 *** empty log message *** 2000-11-25 14:24:52 +00:00
Jim Meyering
e3db837339 more post-merge clean-up.
Fix a merge bug exposed by new test.
2000-11-25 14:17:43 +00:00
Jim Meyering
b499483abd *** empty log message *** 2000-11-25 13:49:38 +00:00
Jim Meyering
944f878a72 *** empty log message *** 2000-11-25 13:27:13 +00:00
Jim Meyering
a1e9a949b4 *** empty log message *** 2000-11-25 13:25:53 +00:00
Jim Meyering
d1680f86e1 *** empty log message *** 2000-11-25 13:24:30 +00:00
Jim Meyering
019bdadfc9 remove bskip
adapt skip to skip either by bytes or by blocks
2000-11-25 08:54:58 +00:00
Jim Meyering
7d57b34196 (S_TYPEISSHM): New macro.
(main): Report failed fstat.
Complain only when ftruncate fails on a regular file,
a directory, or a shared memory object.
2000-11-25 07:20:51 +00:00
Jim Meyering
c8a0eec3f6 bskip/bseek patch from Chris Sylvain <csylvain@umm.edu> merged in 2000-11-24 21:54:31 +00:00
Jim Meyering
3d6852f7fa Declare a pointer parameters to be `const' as appropriate. 2000-11-24 21:41:38 +00:00
Jim Meyering
dd82647d0c *** empty log message *** 2000-11-24 21:19:56 +00:00
Jim Meyering
b95b1e3c9a *** empty log message *** 2000-11-24 21:18:58 +00:00
Jim Meyering
1d250b6098 (main): Use ftruncate only on regular files.
Based on a patch from Michael Stone.
Reported by andras@kolumbus.fi at http://bugs.debian.org/77174.
2000-11-24 21:18:51 +00:00
Jim Meyering
b35b7e0553 *** empty log message *** 2000-11-24 17:42:01 +00:00
Jim Meyering
d1703ad194 *** empty log message *** 2000-11-24 15:54:48 +00:00
Jim Meyering
17800b0300 . 2000-11-23 21:48:47 +00:00
Jim Meyering
c9dcdd0fc5 cd back to $pwd 2000-11-23 21:48:10 +00:00
Jim Meyering
b21c6f8e1e *** empty log message *** 2000-11-23 15:58:51 +00:00
Jim Meyering
846b539b4e *** empty log message *** 2000-11-23 15:58:19 +00:00
Jim Meyering
9a4e9f426c (show_point): Before accepting an entry as a match, make sure that
the mount directory exists and has the required device number.
Before, e.g., `df /floppy' would mistakenly report on the root
partition if /floppy were not listed in /etc/mtab but / was.
Patch from Eirik Fuller (http://bugs.debian.org/76923).
2000-11-23 15:36:58 +00:00
Jim Meyering
4e07d471cc *** empty log message *** 2000-11-23 15:08:19 +00:00
Jim Meyering
5afa8c022e *** empty log message *** 2000-11-23 15:05:40 +00:00
Jim Meyering
6202e79712 (mode_changed): New function.
(change_file_mode): Use it to determine accurately when -c should
make chmod announce there's been a change.
2000-11-23 15:04:17 +00:00
Jim Meyering
bd320fe27b Source sticky-check instead of open-coding it. 2000-11-23 14:59:05 +00:00
Jim Meyering
bf319d9d88 *** empty log message *** 2000-11-23 14:57:47 +00:00
Jim Meyering
1e9f7512fe (TESTS): Add c-option 2000-11-23 14:37:16 +00:00
Jim Meyering
75e63ae6cd whoops 2000-11-23 14:32:09 +00:00
Jim Meyering
d6dabd6cbb *** empty log message *** 2000-11-23 07:24:59 +00:00
Jim Meyering
d5b2ff2b99 (my_strftime): Do not invoke mbrlen with a
size of (size_t) -1; it's not portable.
2000-11-23 07:24:51 +00:00
Jim Meyering
a3e608b76a chmod before removing 2000-11-22 13:15:10 +00:00
Jim Meyering
d97f90581b Update to use its own directory, and better trap. 2000-11-19 22:24:24 +00:00
Jim Meyering
5f90e3be67 *** empty log message *** 2000-11-19 15:15:48 +00:00
Jim Meyering
f2f5e30bc2 (main): Do not assume EOF == -1.
Handle the case correctly when digits options immediately precede a
non-option.
2000-11-19 15:15:38 +00:00
Jim Meyering
6c1ee8402c (BLOCK_SIZE_OPTION, COLOR_OPTION, FORMAT_OPTION,
INDICATOR_STYLE_OPTION, QUOTING_STYLE_OPTION,
SHOW_CONTROL_CHARS_OPTION, SORT_OPTION, TIME_OPTION): New enum
values, to ensure that option values can't collide with chars.
(long_options, decode_switches): Use them.
2000-11-19 07:44:26 +00:00
Jim Meyering
ff9d584dcc *** empty log message *** 2000-11-19 07:41:31 +00:00
Jim Meyering
aba2a0fd6d (GETOPT_HELP_CHAR, GETOPT_VERSION_CHAR): Now enum
constants rather than macros.  Use values that cannot conflict
with C characters or with -1, CHAR_MAX + 1, etc.
2000-11-19 07:41:20 +00:00
Jim Meyering
5baa94d136 *** empty log message *** 2000-11-18 20:01:14 +00:00
Jim Meyering
6447e5b997 (count_entry): Don't omit the size of a directory entry
merely because we couldn't `chdir' into it.  That would give subtly
different results in some cases.  Reported by Mattias Wadenstein
via Michael Stone.
2000-11-18 20:01:02 +00:00
Jim Meyering
49d5578b0b *** empty log message *** 2000-11-18 20:00:25 +00:00
Jim Meyering
ed757a3e9d *** empty log message *** 2000-11-18 19:43:23 +00:00
Jim Meyering
e5aacbc6ea Revert change of 2000-11-11. It inadvertently change
the output format of `ls -l --full-time'.
2000-11-18 19:43:15 +00:00
Jim Meyering
909f49e651 *** empty log message *** 2000-11-18 15:09:02 +00:00
Jim Meyering
54f2cba1b5 Update to use the Free Documentation Licence. 2000-11-18 15:08:57 +00:00
Jim Meyering
880e67d643 Change GNU to @sc{gnu} in many places. 2000-11-18 14:27:36 +00:00
Jim Meyering
166bbecf0b . 2000-11-18 14:10:40 +00:00
Jim Meyering
f94fab125e *** empty log message *** 2000-11-18 13:51:56 +00:00
Jim Meyering
8bbc00b147 (main): When failing to create a directory, give only
one diagnostic, not two.  Reported by Volker Borchert.
2000-11-18 13:49:44 +00:00
Jim Meyering
9ca70467e9 *** empty log message *** 2000-11-18 13:48:25 +00:00
Jim Meyering
16f1ca4c35 *** empty log message *** 2000-11-18 13:40:17 +00:00
Jim Meyering
c7087747a4 (TESTS): Add t-slash. 2000-11-18 13:39:49 +00:00
Jim Meyering
cdc8ee798f *** empty log message *** 2000-11-18 13:36:40 +00:00
Jim Meyering
caf54306a3 (main): With --parents, remove any trailing slashes
from the argument to the final mkdir call.  Required for NetBSD.
2000-11-18 13:36:24 +00:00
Jim Meyering
cde06a54ea Create and `cd' into temporary directory
before anything else.  Reported by Volker Borchert.
2000-11-18 13:19:23 +00:00
Jim Meyering
40af3c54b6 revert mysteriously-applied last delta! 2000-11-18 13:10:40 +00:00
Jim Meyering
bb56dec673 add -*- Makefile -*- 2000-11-18 13:02:44 +00:00
Jim Meyering
1234569e43 Sync with the one from fileutils. 2000-11-18 13:01:22 +00:00
Jim Meyering
82db55924e *** empty log message *** 2000-11-18 11:53:28 +00:00
Jim Meyering
9a99175c0e *** empty log message *** 2000-11-18 11:53:02 +00:00
Jim Meyering
88754c060d *** empty log message *** 2000-11-18 11:52:12 +00:00
Jim Meyering
d3a2ca48d4 . 2000-11-18 11:50:19 +00:00
Jim Meyering
6adb4780b5 . 2000-11-18 11:17:41 +00:00
Jim Meyering
6e3bd39c14 tweak a comment 2000-11-18 09:53:33 +00:00
Jim Meyering
cf59735d7b Formatting changes.
(obstack_grow, obstack_grow0): Don't cast WHERE at all: that would
prevent type checking.
(obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
cast the value to (void *): assigning a `foo *' to a `void *'
variable is valid.
(obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
2000-11-18 09:50:09 +00:00
Jim Meyering
ff0e0181c9 *** empty log message *** 2000-11-17 10:22:20 +00:00
Jim Meyering
138e17c26e *** empty log message *** 2000-11-17 10:21:57 +00:00
Jim Meyering
2c7002e529 *** empty log message *** 2000-11-17 10:20:42 +00:00
Jim Meyering
88b47ac69f (.NOTPARALLEL): Put it here instead, since this file
is common to these packages: fileutils, sh-utils, textutils.
2000-11-17 10:20:09 +00:00
Jim Meyering
f15c4ee154 Declare global `tab' to be of type *unsigned* char,
so join works with 8-bit delimiter characters.
2000-11-17 10:16:53 +00:00
Jim Meyering
9a25583ef1 . 2000-11-17 10:16:22 +00:00
Jim Meyering
d32d63e211 *** empty log message *** 2000-11-17 08:31:36 +00:00
Jim Meyering
7daa83a149 Explicitly include sys/types.h before including system.h. 2000-11-17 08:31:01 +00:00
Jim Meyering
b73eb2433d . 2000-11-17 08:21:22 +00:00
Jim Meyering
73ee461623 *** empty log message *** 2000-11-17 08:19:14 +00:00
Jim Meyering
00fba41266 Update from GNU libc. 2000-11-17 08:19:01 +00:00
Jim Meyering
7822d5fe7f (sha1): Define.
(announcement): Include SHA1 digest of .tar.gz file.
2000-11-17 08:13:38 +00:00
Jim Meyering
395dc1f7ff *** empty log message *** 2000-11-16 19:35:10 +00:00
Jim Meyering
1f789a22a2 Include sys/types.h before system.h. 2000-11-16 19:34:23 +00:00
Jim Meyering
0354ab509e *** empty log message *** 2000-11-16 14:19:37 +00:00
Jim Meyering
5b85894325 Declare global `tab' to be of type *unsigned* char,
so join works with 8-bit delimiter characters.
Reported by Antonio Rendas.
2000-11-16 14:19:27 +00:00
Jim Meyering
b77cb25935 (8-bit-t): New test for the above fix. 2000-11-16 14:19:00 +00:00
Jim Meyering
ea9a4e4755 *** empty log message *** 2000-11-16 12:56:51 +00:00
Jim Meyering
69c750af36 *** empty log message *** 2000-11-16 12:20:35 +00:00
Jim Meyering
f2e553b126 Incorporate weak-alias-related changes from glibc. 2000-11-16 10:15:54 +00:00
Jim Meyering
8a93bbce06 remove bruno's 11-03 entry for unicodeio.c 2000-11-14 21:45:59 +00:00
Jim Meyering
965cb80669 *** empty log message *** 2000-11-14 21:39:06 +00:00
Jim Meyering
0e397f0460 reword a paragraph in the ptx section 2000-11-14 21:38:00 +00:00
Jim Meyering
0ebd6b45a8 *** empty log message *** 2000-11-13 23:59:21 +00:00
Jim Meyering
a8fab3b2eb Add an `echo' so that the input to the sed command
is NL-terminated.  Otherwise, Solaris' /bin/sed generates no output.
Reported by Vin Shelton.
2000-11-13 23:59:15 +00:00
Jim Meyering
2e9fdf49c5 *** empty log message *** 2000-11-13 19:34:19 +00:00
Jim Meyering
0743fbb426 *** empty log message *** 2000-11-13 19:33:47 +00:00
Jim Meyering
2c6fbbea7a (ST_TIME_CMP_NS): Fix typo: ST_MTIM_NSEC should
be tested with #ifdef, not with #if.
2000-11-13 19:33:32 +00:00
Jim Meyering
3f6da994c0 *** empty log message *** 2000-11-12 15:19:26 +00:00
Jim Meyering
adcacc9417 (print_long_format): Remove obsolete comment (strftime vs. ctime).
From Paul Eggert.
2000-11-12 15:19:21 +00:00
Jim Meyering
7e2f836a49 . 2000-11-12 10:51:33 +00:00
Jim Meyering
1bac92811e Update from master repository. 2000-11-12 10:51:24 +00:00
Jim Meyering
8fc17df678 (show_date): Add a comment explaining why the
format string must not be translatable via _().  From Paul Eggert.
2000-11-12 10:02:29 +00:00
Jim Meyering
1ff67f6c5c (<langinfo.h>): Include if HAVE_LANGINFO_H.
(DATE_FMT_LANGINFO): New macro, taken from sh-utils/src/date.c.
(print_long_format): Use it to determine "date" format.
Do not wrap "%b %e %Y" and "%b %e %H:%M" in _(), as it results in
incorrect behavior when LC_ALL is unset, LC_TIME is "C", and
LC_MESSAGES or LANG is set to something disagreeing with the POSIX
locale.
2000-11-12 09:48:14 +00:00
Jim Meyering
eabc99b8a4 *** empty log message *** 2000-11-11 14:52:05 +00:00
Jim Meyering
b3f23e14d2 Add a couple #includes, merging from GNU libc version. 2000-11-11 14:32:00 +00:00
Jim Meyering
abe849cb76 . 2000-11-11 14:18:22 +00:00
Jim Meyering
4f9389cf1e More minor rewording and grammar correction.
From Brian Youmans.
2000-11-11 14:18:08 +00:00
Jim Meyering
3ac192dc18 *** empty log message *** 2000-11-11 13:42:17 +00:00
Jim Meyering
39d746aace (GZIP_ENV): Define to --no-name, so the timestamp
is not included in the .tar.gz file.
2000-11-11 13:42:07 +00:00
Jim Meyering
a4aa31ab26 *** empty log message *** 2000-11-11 13:35:39 +00:00
Jim Meyering
fc27d7356d (tests): Use `empty' (instead of just blanks) to
indicate no `-m' option.  Using just blanks wasn't portable to
Solaris2.5.1's /bin/sh.
2000-11-11 13:34:51 +00:00
Jim Meyering
427694451d *** empty log message *** 2000-11-11 10:21:51 +00:00
Jim Meyering
81655756c2 Don't put newline in IFS; that's not portable to
NetBSD's /bin/sh.  Instead, filter newlines and leading/trailing blanks
out of `tests' before the `set -'.
2000-11-11 10:21:42 +00:00
Jim Meyering
2cd2cfc95c Back out Paul's changes while we wait for him and Bruno to reach agreement. 2000-11-11 09:10:33 +00:00
Jim Meyering
dd55ac2967 Remove Paul's entries for unicodeio.c: then I don't have to justify
backing out the nov8/9 changes.
2000-11-11 09:09:55 +00:00
Jim Meyering
0a8f8a7f96 *** empty log message *** 2000-11-11 08:32:16 +00:00
Jim Meyering
8fdb4073cb (announcement): Limit depth of ChangeLog `find' to 2. 2000-11-11 08:32:10 +00:00
Jim Meyering
6a3804bceb *** empty log message *** 2000-11-11 08:29:21 +00:00
Jim Meyering
7a23da6e17 *** empty log message *** 2000-11-11 08:11:20 +00:00
Jim Meyering
403470bdfb *** empty log message *** 2000-11-11 07:52:09 +00:00
Jim Meyering
565c193a23 *** empty log message *** 2000-11-11 07:51:25 +00:00
Jim Meyering
cd7e157b45 (print_long_format): Wrap the --full-time' date format
string in _(...), so it too may be internationalized.
Suggestion from Jungshik Shin.
2000-11-11 07:51:07 +00:00
Jim Meyering
bac81b8dd0 *** empty log message *** 2000-11-11 07:50:38 +00:00
Jim Meyering
6e92f27548 . 2000-11-10 18:54:40 +00:00
Jim Meyering
b3324ca196 (main): Interpret a lone numeric argument of 8 or 10
digits as a file name, rather than as a date/time in the obsolescent
`MMDDhhmm[YY]' format.  Reported by Wenjun Zheng.
2000-11-10 18:54:19 +00:00
Jim Meyering
c90aa4af6c *** empty log message *** 2000-11-10 16:37:20 +00:00
Jim Meyering
2dcd72c77e *** empty log message *** 2000-11-10 16:30:37 +00:00
Jim Meyering
4aba36bd9a (TESTS): Add obsolescent. 2000-11-10 16:30:28 +00:00
Jim Meyering
2ee35792a0 *** empty log message *** 2000-11-10 16:29:12 +00:00
Jim Meyering
782e6319e5 *** empty log message *** 2000-11-10 16:24:24 +00:00
Jim Meyering
95bbe7a4e1 *** empty log message *** 2000-11-10 16:23:14 +00:00
Jim Meyering
5631658518 *** empty log message *** 2000-11-10 11:14:03 +00:00
Jim Meyering
64e75882f4 Update from GNU libc. 2000-11-10 11:13:32 +00:00
Jim Meyering
151c87c3df Update from GNU libc. 2000-11-10 11:10:39 +00:00
Jim Meyering
0e12cbe0e2 fix typo 2000-11-10 09:02:29 +00:00
Jim Meyering
6165d7114f *** empty log message *** 2000-11-10 08:46:34 +00:00
Jim Meyering
2edf3e95db (ENOTSUP): Define to EINVAL if not defined. 2000-11-10 08:46:19 +00:00
Jim Meyering
b2a6e3f614 don't back them out 2000-11-10 08:44:51 +00:00
Jim Meyering
be1e26b2e5 Back out the last two changes, at least for now. 2000-11-10 08:43:46 +00:00
Jim Meyering
185ee08979 . 2000-11-09 22:29:57 +00:00
Jim Meyering
020235e167 *** empty log message *** 2000-11-09 22:22:41 +00:00
Jim Meyering
445485d9b8 Do not set the permissions of the final directory
component if it was not just created.
Based on a patch from Volker Borchert.
2000-11-09 22:21:59 +00:00
Jim Meyering
0fd7aaf38c *** empty log message *** 2000-11-09 08:33:01 +00:00
Jim Meyering
48a83af35c (MB_LEN_MAX): Make sure it's at least 6, to avoid buggy C libraries. 2000-11-09 08:32:52 +00:00
Jim Meyering
bb73f9b20e (<wchar.h>): Do not include; no longer needed, since we no longer use wcrtomb.
(<limits.h>): Include if HAVE_LIMITS_H.
(MB_LEN_MAX): Define if limits.h doesn't.
(convert_unicode_char): New function, with the conversion part of the
old print_unicode_char.  Use wctomb, not wcrtomb.  Depend on
HAVE_WCTOMB, not HAVE_WCRTOMB.
(print_unicode_char): Use convert_unicode_char to do the conversion.
2000-11-09 08:30:00 +00:00
Jim Meyering
611fadd9e8 *** empty log message *** 2000-11-09 08:28:13 +00:00
Jim Meyering
f95b33a519 *** empty log message *** 2000-11-08 14:46:43 +00:00
Jim Meyering
73771cb380 (jm_MACROS): Add test for wcrtomb. 2000-11-08 14:46:35 +00:00
Jim Meyering
48da137f84 *** empty log message *** 2000-11-08 14:46:20 +00:00
Jim Meyering
4e378387d0 Include wchar.h.
(wcrtomb): Provide fallback definition for broken platforms.
(print_unicode_char): New alternative definition for platforms where
wchar_t is Unicode.
2000-11-08 14:46:13 +00:00
Jim Meyering
830edd4985 . 2000-11-07 15:36:04 +00:00
Jim Meyering
770c39a710 *** empty log message *** 2000-11-07 15:35:25 +00:00
Jim Meyering
4e2bc789ab (setusershell): Use rewind rather than
fseek/fseeko, to avoid configuration hassles with fseeko.
Don't bother opening SHELLS_FILE if shellstream is NULL;
it's not necessary.
2000-11-07 15:35:15 +00:00
Jim Meyering
da0732da37 tweak 2000-11-07 14:57:41 +00:00
Jim Meyering
b3edfeaeee *** empty log message *** 2000-11-07 14:22:54 +00:00
Jim Meyering
e1d09fbef3 (TESTS): Add parents.
(TESTS_ENVIRONMENT): Define srcdir=$(srcdir).
2000-11-07 14:22:11 +00:00
Jim Meyering
4d73de7228 *** empty log message *** 2000-11-07 14:20:43 +00:00
Jim Meyering
97a165c61f handle special bits, too 2000-11-07 14:20:06 +00:00
Jim Meyering
57ebb8d808 *** empty log message *** 2000-11-06 21:53:08 +00:00
Jim Meyering
0aa5a0d85e *** empty log message *** 2000-11-06 21:52:12 +00:00
Jim Meyering
c49c23e608 (TESTS_ENVIRONMENT): Define srcdir=$(srcdir). 2000-11-06 20:57:04 +00:00
Jim Meyering
1a6f58ae67 Move mkdir tests into ../mkdir. 2000-11-06 20:53:58 +00:00
Jim Meyering
49a11aa4d4 add Paul here, too. 2000-11-06 18:41:25 +00:00
Jim Meyering
ebecb3f230 *** empty log message *** 2000-11-06 17:42:19 +00:00
Jim Meyering
be34aaaa35 Update from master repository. 2000-11-06 17:42:11 +00:00
Jim Meyering
939977073e *** empty log message *** 2000-11-06 17:38:13 +00:00
Jim Meyering
17d7e0206d Update from latest version: 1.23. 2000-11-06 17:38:07 +00:00
Jim Meyering
c968981077 *** empty log message *** 2000-11-06 13:12:57 +00:00
Jim Meyering
23357a490e *** empty log message *** 2000-11-06 13:10:38 +00:00
Jim Meyering
c08ca675ac (print_header): Mark strings for translation. 2000-11-06 13:10:33 +00:00
Jim Meyering
25353ae5a7 *** empty log message *** 2000-11-06 10:24:36 +00:00
Jim Meyering
0e4c958fb8 (skip): st_size is not defined for directories. 2000-11-06 10:24:21 +00:00
Jim Meyering
8b6603f085 *** empty log message *** 2000-11-06 09:03:22 +00:00
Jim Meyering
a3dcaf6a83 *** empty log message *** 2000-11-06 09:02:21 +00:00
Jim Meyering
f00f8f6a9c *** empty log message *** 2000-11-06 08:55:34 +00:00
Jim Meyering
f472159d99 *** empty log message *** 2000-11-06 08:46:01 +00:00
Jim Meyering
0e1b0b2ea2 *** empty log message *** 2000-11-05 15:45:35 +00:00
Jim Meyering
a46e9f0919 *** empty log message *** 2000-11-05 15:45:31 +00:00
Jim Meyering
22438d75ce *** empty log message *** 2000-11-05 15:45:05 +00:00
Jim Meyering
9b18c35ac9 (main): Use make_dir instead of using mkdir directly.
Diagnose as failure when mkdir tries to create (without the
--parent (-p) option) a directory that already exists.
2000-11-05 15:14:09 +00:00
Jim Meyering
33f1edc571 *** empty log message *** 2000-11-05 15:12:48 +00:00
Jim Meyering
e9e376d85f fix another exit 2000-11-05 15:12:37 +00:00
Jim Meyering
81f10fbd43 Clean up this test. 2000-11-05 15:12:14 +00:00
Jim Meyering
a44e5341bb *** empty log message *** 2000-11-05 15:11:05 +00:00
Jim Meyering
08b1c573cd *** empty log message *** 2000-11-05 15:08:35 +00:00
Jim Meyering
d858c3c433 (main): Use make_dir instead of using mkdir directly.
Diagnose as failure when mkdir tries to create (without the --parent (-p)
option) a directory that already exists.
2000-11-05 15:08:22 +00:00
Jim Meyering
39b53154ca *** empty log message *** 2000-11-05 15:04:53 +00:00
Jim Meyering
214a8623eb (make_dir): Declare. 2000-11-05 15:04:39 +00:00
Jim Meyering
e1356e7fe7 (make_dir): Remove `static' attribute.
Tweak a comment.
2000-11-05 15:04:17 +00:00
Jim Meyering
0760dc7412 *** empty log message *** 2000-11-05 15:03:01 +00:00
Jim Meyering
f3a6e69b4e Add tests for the above fix. 2000-11-05 15:02:32 +00:00
Jim Meyering
6d722e99e2 *** empty log message *** 2000-11-05 10:12:25 +00:00
Jim Meyering
2cac22f76f *** empty log message *** 2000-11-05 09:54:07 +00:00
Jim Meyering
983cd11143 *** empty log message *** 2000-11-05 09:52:55 +00:00
Jim Meyering
aea44f3fa0 *** empty log message *** 2000-11-04 22:19:21 +00:00
Jim Meyering
f8038b425a Use the m4_' prefix on syscmd' and `m4_sysval'. 2000-11-04 22:19:15 +00:00
Jim Meyering
ff6e48f61e *** empty log message *** 2000-11-04 21:39:00 +00:00
Jim Meyering
a5565c08a3 (hash_get_next): Fix a thinko: when ENTRY is the
last one in a bucket, advance to the next bucket.
From Alexandre Duret-Lutz.
2000-11-04 21:38:55 +00:00
Jim Meyering
b510774dbb *** empty log message *** 2000-11-04 12:08:22 +00:00
Jim Meyering
e10f361193 list the source 2000-11-03 11:12:01 +00:00
Jim Meyering
dfe9af3d61 *** empty log message *** 2000-11-03 11:11:45 +00:00
Jim Meyering
49d7e8c71f . 2000-11-03 10:27:01 +00:00
Jim Meyering
eb53331d93 *** empty log message *** 2000-11-03 09:03:37 +00:00
Jim Meyering
4d3c9a170d (TESTS): Add sample-vec. 2000-11-03 09:03:30 +00:00
Jim Meyering
ee2d8446f4 *** empty log message *** 2000-11-03 08:47:20 +00:00
Jim Meyering
1021e06a20 *** empty log message *** 2000-11-03 08:44:12 +00:00
Jim Meyering
8dc1b2caf4 cppi 2000-11-03 08:44:06 +00:00
Jim Meyering
d19f921653 Do not comment out all the code if we are using
the GNU C library, because in some cases we are replacing buggy
code in the GNU C library itself.
2000-11-03 08:43:20 +00:00
Jim Meyering
cf83af7c10 *** empty log message *** 2000-11-02 19:37:11 +00:00
Jim Meyering
4bdc0991b0 *** empty log message *** 2000-11-02 17:05:17 +00:00
Jim Meyering
fc1e3ad166 argh!! use pack's B', not b' format 2000-11-02 17:04:23 +00:00
Jim Meyering
901ef41f7f *** empty log message *** 2000-11-02 09:51:17 +00:00
Jim Meyering
50326157d9 remove const attribute for PARENTS 2000-11-01 17:53:35 +00:00
Jim Meyering
9e9f0846f8 Fix bad typo! free the string, PARENTS, not the function, dir_name. 2000-11-01 17:52:43 +00:00
Jim Meyering
09917b2b9a *** empty log message *** 2000-11-01 17:33:19 +00:00
Jim Meyering
02080dd37e (main): Better diagnostics. 2000-11-01 17:33:09 +00:00
Jim Meyering
039653dde5 *** empty log message *** 2000-10-31 22:03:47 +00:00
Jim Meyering
144bbe26ac Clean up indentation and punctuation.
Fix a couple typos.  From Brian Youmans.
2000-10-31 22:03:42 +00:00
Jim Meyering
933e0997e2 Add all the internationalization-related
variable names autoconf uses.  Set and export them in a loop.
2000-10-31 19:33:30 +00:00
Jim Meyering
8f90ed0f42 *** empty log message *** 2000-10-31 19:29:22 +00:00
Jim Meyering
96380f703c *** empty log message *** 2000-10-31 19:29:05 +00:00
Jim Meyering
40709c446a *** empty log message *** 2000-10-31 19:26:32 +00:00
Jim Meyering
c8da0cbba6 `mkdir -p' would create parent directories with permissions
that did not account for the umask. [introduced with the
2000-09-30 change that became part of fileutils-4.0.28]

Include dirname.h.
Compute the parent directory `mode' unconditionally, effectively
as `$(umask -S),u+wx'.
Use make_path to create only the parent directories, thus using
the same code, both with and without -p, to create the final
component in each file name.  Reported by Bob Proulx.
2000-10-31 19:25:50 +00:00
Jim Meyering
575f5c2f24 *** empty log message *** 2000-10-31 10:46:30 +00:00
Jim Meyering
662a4f705c Much improved.
Run each test also with mkdir's `-p' option and check permissions
on the parent directories.
2000-10-31 10:46:24 +00:00
Jim Meyering
ae53a3e4da use backticks and sed instead of set and shift 2000-10-31 08:31:30 +00:00
Jim Meyering
a5385f0a5f *** empty log message *** 2000-10-31 08:12:38 +00:00
Jim Meyering
b8e83dda2b Add some permission tests. 2000-10-31 08:12:28 +00:00
Jim Meyering
577627b257 Fix the test so it actually does something.
Run each test also with mkdir's `-p' option.
2000-10-31 07:57:29 +00:00
Jim Meyering
7e7943c979 *** empty log message *** 2000-10-31 07:15:54 +00:00
Jim Meyering
1734d51c53 Use @sc where appropriate. Document the
ranges of supported times more precisely.  Correct menu
spacing.  Document old Latin 12m/12pm tradition.  Remove list
of alphabetic time zone names, as it wasn't correct and people
shouldn't be relying on it anyway.  Relative items also
account for non-DST adjustments.  Fix some misspellings.
2000-10-31 07:15:42 +00:00
Jim Meyering
8686e2bf77 *** empty log message *** 2000-10-31 07:10:03 +00:00
Jim Meyering
5a6effff70 Add "2000" to Copyright line, as this file was changed this year. 2000-10-31 07:09:56 +00:00
Jim Meyering
a5810cd3de Remove "2000" from Copyright line, as the file hasn't been
changed this year other than in the copyright notice.
2000-10-31 07:09:40 +00:00
Jim Meyering
3a1f0aa8d5 Remove "2000" from Copyright line, as the file hasn't been
changed this year other than in the copyright notice.
2000-10-31 07:09:02 +00:00
Jim Meyering
462d532cd5 *** empty log message *** 2000-10-31 07:07:26 +00:00
Jim Meyering
3adf8ab9c6 (FOLD): Do not assume that characters are unsigned.
(fnmatch): Fix some FNM_FILE_NAME and FNM_LEADING_DIR bugs,
e.g. fnmatch("d*/*1", "d/s/1", FNM_FILE_NAME) incorrectly yielded zero.
2000-10-31 07:07:05 +00:00
Jim Meyering
16b7a20d01 . 2000-10-30 17:52:42 +00:00
Jim Meyering
f32a1186bc . 2000-10-30 17:51:06 +00:00
Jim Meyering
2689e0a07c *** empty log message *** 2000-10-30 17:50:29 +00:00
Jim Meyering
9d7b428daa *** empty log message *** 2000-10-30 17:50:03 +00:00
Jim Meyering
f177ed1332 *** empty log message *** 2000-10-30 15:59:20 +00:00
Jim Meyering
ad3a1fbb82 Include "system.h" after wctype.h (not before) to avoid
a compilation error on Solaris 5.5.1 systems.
2000-10-30 15:58:59 +00:00
Jim Meyering
82cd6af9bc *** empty log message *** 2000-10-29 22:43:51 +00:00
Jim Meyering
971d190dc4 s/AC_SHELL_IFELSE/AS_IFELSE/ to match autoconf renaming. 2000-10-29 22:43:08 +00:00
Jim Meyering
05fc0219ad fix typo: s/fseek0/fseeko/ 2000-10-29 17:19:51 +00:00
Jim Meyering
aeb6f5e5f3 *** empty log message *** 2000-10-29 15:37:00 +00:00
Jim Meyering
f055dbe669 *** empty log message *** 2000-10-29 13:50:25 +00:00
Jim Meyering
55408e0307 (__restrict_arr): Move definition out of #ifndef block.
Required because egcs-2.91.66 (aka 1.1.2) defines __restrict, but
doesn't define __restrict_arr.
2000-10-29 13:49:56 +00:00
Jim Meyering
0dd327c851 . 2000-10-29 12:36:19 +00:00
Jim Meyering
1f60246c8b *** empty log message *** 2000-10-29 12:34:43 +00:00
Jim Meyering
76be42eef0 *** empty log message *** 2000-10-29 12:34:19 +00:00
Jim Meyering
018d1056e0 *** empty log message *** 2000-10-29 12:33:53 +00:00
Jim Meyering
17b6fd61c3 *** empty log message *** 2000-10-29 12:25:21 +00:00
Jim Meyering
03e6d30ae7 *** empty log message *** 2000-10-29 12:25:07 +00:00
Jim Meyering
78abfe5da3 (do_copy): When constructing dst_path for use with the
--parents option, first remove any trailing slashes from the command
line argument.  Otherwise, tests/cp/cp-parent would fail on NetBSD.
2000-10-29 12:25:03 +00:00
Jim Meyering
ffb5b5a2ad *** empty log message *** 2000-10-29 11:03:18 +00:00
Jim Meyering
12eea70d7d Fix grammar in comment. 2000-10-29 11:03:01 +00:00
Jim Meyering
9ffd4ae3df *** empty log message *** 2000-10-29 08:05:00 +00:00
Jim Meyering
c487c2b929 *** empty log message *** 2000-10-29 08:04:22 +00:00
Jim Meyering
fe62a85366 Add a test. 2000-10-29 08:04:17 +00:00
Jim Meyering
4b4c8534e6 *** empty log message *** 2000-10-29 07:55:27 +00:00
Jim Meyering
e716f459a5 *** empty log message *** 2000-10-29 07:50:07 +00:00
Jim Meyering
013d63bb67 (DT_INIT): Define.
[enum filetype]: Remove the #ifdef, and use DT_INIT on the
initializers instead.
2000-10-29 07:49:35 +00:00
Jim Meyering
f604c52243 (LC_COLLATE): Set it to the empty string and
export it.  Otherwise, tests/cp/cp-mv-backup would fail e.g., when
LC_COLLATE was set to en.  Reported by Vin Shelton.
2000-10-29 07:38:13 +00:00
Jim Meyering
e321b0bd06 [enum filetype] (arg_directory): Rather than `100', use
a number that should never conflict with another DT_* value.
From Ulrich Drepper.
2000-10-28 18:00:57 +00:00
Jim Meyering
007b5b4ba8 (main): In call to gobble_file with "."', use directory'
as the type, not `unknown'.  From Ulrich Drepper.
2000-10-28 17:58:25 +00:00
Jim Meyering
c58f8e0f80 *** empty log message *** 2000-10-28 13:50:23 +00:00
Jim Meyering
328bfd1fb7 Disable this test by default; it's expensive.
Mark this as an expensive test.
2000-10-28 13:50:14 +00:00
Jim Meyering
a3f0f65334 *this* is not an expensive test 2000-10-28 13:49:43 +00:00
Jim Meyering
0a2ef3619c *** empty log message *** 2000-10-28 13:39:20 +00:00
Jim Meyering
5854bc4e0c *** empty log message *** 2000-10-28 13:38:52 +00:00
Jim Meyering
429ea1bad3 *** empty log message *** 2000-10-28 13:12:02 +00:00
Jim Meyering
efde89cc27 *** empty log message *** 2000-10-28 13:11:43 +00:00
Jim Meyering
d4d8f86b15 *** empty log message *** 2000-10-28 12:53:50 +00:00
Jim Meyering
69254ed7d2 Factor out the expensive-test-checking code, ... 2000-10-28 12:53:27 +00:00
Jim Meyering
7b86692737 Mark this as an expensive test. 2000-10-28 12:51:40 +00:00
Jim Meyering
c82dbabbea *** empty log message *** 2000-10-28 12:50:13 +00:00
Jim Meyering
3bd2a88618 source lang-default before the first `cd' 2000-10-28 12:46:59 +00:00
Jim Meyering
4c5cf8b144 source lang-default before the first `cd' 2000-10-28 12:36:37 +00:00
Jim Meyering
d1033dc2b9 source lang-default before the first `cd' 2000-10-28 12:36:17 +00:00
Jim Meyering
a36e91c826 source lang-default before changing directory 2000-10-28 12:33:26 +00:00
Jim Meyering
e9bcabbf05 *** empty log message *** 2000-10-28 12:29:54 +00:00
Jim Meyering
20d893e3e2 (jm_PREREQ): Add jm_PREREQ_MEMCHR.
(jm_PREREQ_MEMCHR): New function.
2000-10-28 12:29:45 +00:00
Jim Meyering
3610481c97 *** empty log message *** 2000-10-28 12:19:05 +00:00
Jim Meyering
b4c60a84e1 *** empty log message *** 2000-10-28 12:18:31 +00:00
Jim Meyering
a67cbceb5a Make `ls' a lot more efficient on systems (e.g., linux-2.4.*)
that save file type information in directory entries.

[enum filetype] (unknown):
Add members (as yet unused):
(HAVE_STRUCT_DIRENT_D_TYPE): Define.
(format_needs_type): New global.
(main): Set it.
(print_dir): Set `type' from directory entry, if possible.
(gobble_file): Add a parameter, TYPE.
Stat the file only if its type is unknown and we need the type.
Patch from Ulrich Drepper.
2000-10-28 12:18:21 +00:00
Jim Meyering
71a47cd7bb *** empty log message *** 2000-10-28 12:00:14 +00:00
Jim Meyering
8f945ecf3a *** empty log message *** 2000-10-28 11:59:34 +00:00
Jim Meyering
d7bb6bd985 *** empty log message *** 2000-10-28 11:50:00 +00:00
Jim Meyering
37c05b6267 Include assert.h.
(fillrand): Add a parameter, size_max.
Add an assertion.
Adjust caller.
(dopass): Break out of the `for (;;)' loop if size < offset.
That can happen now that dopass is called with SIZE == -1.
(do_wipefd): Accept a length of zero only for a regular file.
If lseek fails or returns 0 for a non-regular file, let dopass
determine the length.
Inspired by a patch from Alan Iwi.
2000-10-28 11:49:52 +00:00
Jim Meyering
37bcdce62a . 2000-10-28 08:25:21 +00:00
Jim Meyering
52a97ad805 Update from libc. 2000-10-28 08:24:44 +00:00
Jim Meyering
cc785dc620 *** empty log message *** 2000-10-28 08:22:17 +00:00
Jim Meyering
0f44320b83 Update from libc.
Adjust for portability:
[HAVE_STDLIB_H]: Include stdlib.h.
[HAVE_BP_SYM_H || _LIBC]: Guard inclusion of bp-sym.h.
Undef __memchr, too.
[!weak_alias]: Define __memchr to memchr.
2000-10-28 08:22:11 +00:00
Jim Meyering
3032dfa4ef *** empty log message *** 2000-10-28 07:56:40 +00:00
Jim Meyering
f199ae5181 Update from libc. 2000-10-28 07:56:12 +00:00
Jim Meyering
c2c9db2056 *** empty log message *** 2000-10-28 07:47:07 +00:00
Jim Meyering
13a9a251d8 (setusershell) [HAVE_FSEEKO]: Use fseek0.
Patch by Ulrich Drepper.
2000-10-28 07:47:04 +00:00
Jim Meyering
f0da6c980d Update from libc. 2000-10-28 07:15:32 +00:00
Jim Meyering
6673e992d4 *** empty log message *** 2000-10-26 22:36:58 +00:00
Jim Meyering
141a1086a2 (usage): Mention the time zone, UTC, and write the date
in ISO format in the description of %s.  Suggestion from Karl Berry.
2000-10-26 22:36:39 +00:00
Jim Meyering
f74e9bb483 (Authors of getdate): Add Paul Eggert. 2000-10-26 14:18:24 +00:00
Jim Meyering
a2bbbeb38f *** empty log message *** 2000-10-26 14:18:06 +00:00
Jim Meyering
f3e058b838 typo 2000-10-26 14:16:24 +00:00
Jim Meyering
9ed4fe029a . 2000-10-26 09:39:08 +00:00
Jim Meyering
49ac3c60d0 Update from libc. 2000-10-26 08:08:06 +00:00
Jim Meyering
d9ef180ae5 *** empty log message *** 2000-10-25 08:39:48 +00:00
Jim Meyering
9d29159931 Include dirname.h.
(main): Use dir_name_r rather than open-coding it.
2000-10-25 08:39:29 +00:00
Jim Meyering
342d5997cc *** empty log message *** 2000-10-25 08:36:13 +00:00
Jim Meyering
e63e45a195 (dir_name_r): Declare it. 2000-10-25 08:36:08 +00:00
Jim Meyering
6b4ccb9ba3 *** empty log message *** 2000-10-25 08:34:36 +00:00
Jim Meyering
22e86fcb3c *** empty log message *** 2000-10-25 06:01:31 +00:00
Jim Meyering
faf5915f7d cppi, on one line 2000-10-25 06:01:24 +00:00
Jim Meyering
d538aba94d Update from libc. 2000-10-25 06:00:26 +00:00
Jim Meyering
26f187aa36 *** empty log message *** 2000-10-24 08:20:17 +00:00
Jim Meyering
7e87cd0d6e (hard_locale): Revert last change -- it was simply
wrong.  That set_locale call must not have any side effects.
From Paul Eggert.
2000-10-24 08:20:13 +00:00
Jim Meyering
a20eb902b8 *** empty log message *** 2000-10-23 06:38:10 +00:00
Jim Meyering
da66e2e769 *** empty log message *** 2000-10-23 06:31:28 +00:00
Jim Meyering
963388111d *** empty log message *** 2000-10-23 06:29:30 +00:00
Jim Meyering
7499ea8154 *** empty log message *** 2000-10-23 06:28:01 +00:00
Jim Meyering
79f359ff8a Clean up version-related variables. 2000-10-23 06:27:50 +00:00
Jim Meyering
6a19cbc61b *** empty log message *** 2000-10-22 22:40:13 +00:00
Jim Meyering
9e546891f1 remove remnants of lang-default change 2000-10-22 21:24:40 +00:00
Jim Meyering
171aba014f source lang-default *before* the `cd' 2000-10-22 21:23:18 +00:00
Jim Meyering
ed3d57b572 *** empty log message *** 2000-10-22 21:13:53 +00:00
Jim Meyering
81e231a46d . 2000-10-22 21:12:59 +00:00
Jim Meyering
0622127ac6 include stdio.h 2000-10-22 21:11:53 +00:00
Jim Meyering
a76f632427 *** empty log message *** 2000-10-22 21:09:53 +00:00
Jim Meyering
bf660d1331 (md5_process_block) [OP]: Use `rol', not CYCLIC.
[CYCLIC]: Remove now-unused definition.
2000-10-22 21:09:43 +00:00
Jim Meyering
7bb9c7382f s/shasum/sha1sum/ 2000-10-22 14:40:44 +00:00
Jim Meyering
6e955cb84a *** empty log message *** 2000-10-22 14:25:12 +00:00
Jim Meyering
f08ced6c34 *** empty log message *** 2000-10-22 14:21:47 +00:00
Jim Meyering
c66278dffc renamed from shasum.c 2000-10-22 14:19:52 +00:00
Jim Meyering
ed2d4df754 renamed from shasum.x 2000-10-22 14:18:02 +00:00
Jim Meyering
1bc1a37f86 fix typo 2000-10-22 14:03:33 +00:00
Jim Meyering
674233fb72 *** empty log message *** 2000-10-22 13:17:10 +00:00
Jim Meyering
1f2219cabf (print_long_format): Wrap date format strings in _(...)
so they may be internationalized.  Suggestion from Christian Rose.
2000-10-22 13:15:22 +00:00
Jim Meyering
f0d9306c78 (make_path_private): Add a FIXME comment. 2000-10-22 13:10:20 +00:00
Jim Meyering
28c6609c86 Source lang-default rather than open-coding
the setting/exporting of LANG, LC_ALL, and LANGUAGE.
2000-10-22 13:09:28 +00:00
Jim Meyering
43c38af6a1 *** empty log message *** 2000-10-22 13:08:50 +00:00
Jim Meyering
7cbb85937a Source lang-default rather than open-coding
the setting/exporting of LANG, LC_ALL, and LANGUAGE.
2000-10-22 13:08:43 +00:00
Jim Meyering
8c61ed9ff1 . 2000-10-22 13:03:06 +00:00
Jim Meyering
6ba06cf611 *** empty log message *** 2000-10-22 13:02:40 +00:00
Jim Meyering
957f363d1d *** empty log message *** 2000-10-22 13:02:00 +00:00
Jim Meyering
38856139ea *** empty log message *** 2000-10-22 12:57:48 +00:00
Jim Meyering
206ffe5898 *** empty log message *** 2000-10-22 12:51:38 +00:00
Jim Meyering
34b462a936 . 2000-10-22 12:00:22 +00:00
Jim Meyering
82495b5d26 . 2000-10-22 11:56:18 +00:00
Jim Meyering
cf806f5d2d . 2000-10-22 11:51:50 +00:00
Jim Meyering
148e5d1b4d Factor out the differences between MD5 and SHA1,
and parameterize so this code may be used by both md5sum and the new
program, shasum.  Loosely based on a patch from Scott Miller.
2000-10-22 11:50:16 +00:00
Jim Meyering
8a149d2242 Support 8-byte integers, assuming they're printable with e.g., %lld.
Add support for printing data as unsigned
long long integers.
2000-10-22 07:33:21 +00:00
Jim Meyering
b84871a279 add missing backslash 2000-10-22 07:20:24 +00:00
Jim Meyering
807e464dec *** empty log message *** 2000-10-22 06:57:54 +00:00
Jim Meyering
1f3a6e1eb8 (O_DIRECTORY): Define, if needed.
(save_cwd) [HAVE_FCHDIR]: Use O_DIRECTORY when opening ".".
Suggestion from Ulrich Drepper.
2000-10-22 06:57:42 +00:00
Jim Meyering
a48426382d *** empty log message *** 2000-10-22 06:50:02 +00:00
Jim Meyering
77ad7205cb *** empty log message *** 2000-10-22 06:43:52 +00:00
Jim Meyering
c599760ff1 2000-10-21 20:07:49 +00:00
Jim Meyering
e563a1a5b5 . 2000-10-21 20:07:03 +00:00
Jim Meyering
4e329a1473 *** empty log message *** 2000-10-21 20:01:28 +00:00
Jim Meyering
fd717e8d45 *** empty log message *** 2000-10-21 20:00:37 +00:00
Jim Meyering
13e80acf07 The command, `yes ''|./cat -n' would stop printing after INT_MAX lines.
(cat): Never let `newlines' exceed 3.
2000-10-21 19:57:41 +00:00
Jim Meyering
51e2ffc524 Prevent a counter buffer overrun when numbering lines and when
processing 100 billion lines (or more) of input.

(LINE_COUNTER_BUF_LEN): Define to allow numbering as
many as 10^18 - 1 lines (the old limit was 10^11 - 1, and could
be exceeded without too much trouble).	Use this symbol rather
than hard-coding the constant everywhere.  Rather than overruning
for input with more lines, mark the line number by putting a
`>' in the leftmost slot.
(next_line_num): Fixed (now academic) possible line buffer overrun.
Patch by Jan Nieuwenhuizen.
2000-10-21 19:16:37 +00:00
Jim Meyering
379688e35d *** empty log message *** 2000-10-21 13:22:39 +00:00
Jim Meyering
4d2231d02c *** empty log message *** 2000-10-21 13:09:31 +00:00
Jim Meyering
c344de8d9b *** empty log message *** 2000-10-21 13:05:55 +00:00
Jim Meyering
fb5e934c73 (SORT_OUT_OF_ORDER): Define.
(main): Use it instead of hard-coding the `1'.
2000-10-21 13:05:40 +00:00
Jim Meyering
09ad98374b (main): Use EXIT_SUCCESS rather than 0.
Fail when checking (-c) with more than one file argument,
rather than simply ignoring the extra arguments.
2000-10-21 13:03:40 +00:00
Jim Meyering
6864ceca11 tweak comment 2000-10-21 12:46:58 +00:00
Jim Meyering
ef43db1c4b (dir_name_r): New function, factored out of dir_name.
(dir_name): Use dir_name_r.
2000-10-21 11:44:43 +00:00
Jim Meyering
b9dbd94712 *** empty log message *** 2000-10-21 11:29:01 +00:00
Jim Meyering
9ff69c8035 (memrchr): Declare if necessary.
(dir_name): Remove the restriction that there be no
trailing slashes.  Now, this code skips past them, effectively
ignoring them.
[TEST_DIRNAME] (main): New unit tests.
2000-10-21 11:28:42 +00:00
Jim Meyering
c03498f2e7 *** empty log message *** 2000-10-21 10:37:14 +00:00
Jim Meyering
e45c3dba07 (jm_PREREQ_DIRNAME): New macro. 2000-10-21 10:37:10 +00:00
Jim Meyering
bc6477ff72 (AC_REPLACE_FUNCS): Add memrchr. 2000-10-21 10:36:49 +00:00
Jim Meyering
e46f105350 (jm_CHECK_DECLS): Also check for memrchr. 2000-10-21 10:36:32 +00:00
Jim Meyering
6ab7032952 *** empty log message *** 2000-10-21 10:33:25 +00:00
Jim Meyering
a5301cb3e2 New file, derived from the one in GNU libc. 2000-10-21 10:27:59 +00:00
Jim Meyering
9bab244d20 . 2000-10-19 11:43:34 +00:00
Jim Meyering
3b5b337246 Update from master repository. 2000-10-19 11:43:28 +00:00
Jim Meyering
3b60294bd9 *** empty log message *** 2000-10-18 20:48:04 +00:00
Jim Meyering
7243403b27 (universal_time): Remove; it's just a temptation to do the wrong thing.
(main): The -u option now just sets TZ; it doesn't do anything else.
(show_date): Do not do anything special if -u is set.
This affects the behavior of the -I and -R options.
2000-10-18 20:47:25 +00:00
Jim Meyering
d478d6efec * src/date.c (universal_time): Remove; it's just a temptation to
do the wrong thing.
(main): The -u option now just sets TZ; it doesn't do anything else.
(show_date): Do not do anything special if -u is set.
This affects the behavior of the -I and -R options.

* doc/sh-utils.texi: Document the above.
2000-10-18 20:45:20 +00:00
Jim Meyering
dbfbb93424 Undo the effect of the 1997-07-12 change to date.c; it
broke "date -u MMDDhhmm" and it wasn't documented.
This reverts to the behavior of the 1996-01-03 patch.

(utc-0, utc-1, relative-2): Adjust to above change.
2000-10-18 19:03:30 +00:00
Jim Meyering
29a4bf90d3 Undo the effect of the 1997-07-12 change to date.c; it
broke "date -u MMDDhhmm" and it wasn't documented.
This reverts to the behavior of the 1996-01-03 patch.

(TZ_UTC0, MAYBE_SET_TZ_UTC0, set_tz): Remove.
(batch_convert): Don't futz with TZ.
(main): -u now parses all dates as UTC, not just some.
2000-10-18 19:02:56 +00:00
Jim Meyering
fe5cad6b29 space to tab 2000-10-18 19:02:34 +00:00
Jim Meyering
39520407ef *** empty log message *** 2000-10-18 09:51:00 +00:00
Jim Meyering
2e4b629e21 (Examples of date): Fix a typo. 2000-10-18 09:50:56 +00:00
Jim Meyering
eaca68c289 *** empty log message *** 2000-10-18 07:42:08 +00:00
Jim Meyering
7e02b6c989 Make sure the programs use C-locale formats
and translations.  Bruno Haible reported that this test would fail
when using other locales, because ls printed a translation of `total'.
2000-10-18 07:41:59 +00:00
Jim Meyering
32dfed954f *** empty log message *** 2000-10-17 08:45:42 +00:00
Jim Meyering
55f43f7915 *** empty log message *** 2000-10-17 08:45:32 +00:00
Jim Meyering
6cca23cec4 *** empty log message *** 2000-10-17 08:45:11 +00:00
Jim Meyering
0be2660d96 [PARAMS]: Define and use. 2000-10-17 08:45:07 +00:00
Jim Meyering
a8bf544803 *** empty log message *** 2000-10-17 06:45:57 +00:00
Jim Meyering
c841079462 Update from libc. 2000-10-17 06:45:49 +00:00
Jim Meyering
ad06715030 *** empty log message *** 2000-10-16 22:05:20 +00:00
Jim Meyering
66a4baa8a6 *** empty log message *** 2000-10-16 22:01:11 +00:00
Jim Meyering
ae2b7961cf *** empty log message *** 2000-10-16 14:31:38 +00:00
Jim Meyering
6f84766d19 *** empty log message *** 2000-10-16 14:30:39 +00:00
Jim Meyering
fd00df9c4d fix spell-o in comment 2000-10-16 08:10:58 +00:00
Jim Meyering
d15557db96 (rm_option_init): Remove FIXME-maybe comment. 2000-10-16 08:09:57 +00:00
Jim Meyering
b31c11e46b . 2000-10-16 08:09:42 +00:00
Jim Meyering
bdb5516fdd *** empty log message *** 2000-10-16 06:25:55 +00:00
Jim Meyering
c8c93cfefa *** empty log message *** 2000-10-16 06:25:29 +00:00
Jim Meyering
640221896f (hard_locale): Use "", not 0 as 2nd arg to setlocale.
From Jan Fedak.
2000-10-16 06:24:33 +00:00
Jim Meyering
d73ea5f65a . 2000-10-15 11:53:35 +00:00
Jim Meyering
d72623052b . 2000-10-12 02:36:18 +00:00
Jim Meyering
a5b38192d0 (Time directives) [%S]: Range is 0..60, not 0..61. 2000-10-12 02:28:27 +00:00
Jim Meyering
5681a0705f *** empty log message *** 2000-09-30 11:58:17 +00:00
Jim Meyering
04f6bb2648 *** empty log message *** 2000-09-30 09:50:23 +00:00
Jim Meyering
ad09410b04 (main): Rename local symbolic_mode' to specified_mode'. 2000-09-30 09:40:56 +00:00
Jim Meyering
cc4722e802 *** empty log message *** 2000-09-30 09:39:52 +00:00
Jim Meyering
f8e66794d9 (change_file_mode): Perform the chmod even if the
file mode permission bits are the same as those that should be set.
Omitting the chmod call would be alright with minimal 1003.1e DS17
ACLs, but eventually there will be other permissions in addition to
rwx.  E.g., add and delete for directories, and something analogous
to NT's take ownership permission.
2000-09-30 09:39:41 +00:00
Jim Meyering
e2b45cb9fe (main): Don't set the umask to 0 and hand-apply
the previously-set umask unconditionally.  Do that only when a
MODE has been specified.  Otherwise, call mkfifo with the full
creation mask (0777 or 0666) and let the kernel apply the umask.
The difference shows up only on file systems with ACL support
when the containing directory has a default ACL.
Patch by Andreas Gruenbacher.
(main): Rename local `symbolic_mode' to `specified_mode'.
Also, when MODE is specified, call chmod to ensure that the
permission bits are set as specified even when the containing
directory has a default ACL.
2000-09-30 08:56:06 +00:00
Jim Meyering
2170a48956 (main): Rename local symbolic_mode' to specified_mode'. 2000-09-30 08:53:27 +00:00
Jim Meyering
beebc69168 (main): Don't set the umask to 0 and hand-apply
the previously-set umask unconditionally.  Do that only when a
MODE has been specified.  Otherwise, call mknod with the full
creation mask (0777 or 0666) and let the kernel apply the umask.
The difference shows up only on file systems with ACL support
when the containing directory has a default ACL.
Patch by Andreas Gruenbacher.
(main): Rename local `symbolic_mode' to `specified_mode'.
Also, when MODE is specified, call chmod to ensure that the
permission bits are set as specified even when the containing
directory has a default ACL.
2000-09-30 08:53:10 +00:00
Jim Meyering
daf9d41918 (main): Rename local symbolic_mode' to specified_mode'. 2000-09-30 08:49:51 +00:00
Jim Meyering
105cbe3ea3 (main): Don't set the umask to 0 and hand-apply
the previously-set umask unconditionally.  Do that only when a
MODE has been specified.  Otherwise, call mkdir with the full
creation mask (0777 or 0666) and let the kernel apply the umask.
The difference shows up only on file systems with ACL support
when the containing directory has a default ACL.
Patch by Andreas Gruenbacher.
2000-09-30 08:49:17 +00:00
Jim Meyering
f14dbb1710 *** empty log message *** 2000-09-30 08:42:11 +00:00
Jim Meyering
ec8df1d330 *** empty log message *** 2000-09-30 08:35:05 +00:00
Jim Meyering
d7232f8ca7 Update to use newer template. 2000-09-30 08:32:55 +00:00
Jim Meyering
c217428f39 (main): Rename local symbolic_mode' to specified_mode'. 2000-09-30 08:20:23 +00:00
Jim Meyering
41939d7bfe Remove option-describing comment block. 2000-09-30 08:19:34 +00:00
Jim Meyering
e7f9f83fa1 *** empty log message *** 2000-09-30 08:10:36 +00:00
Jim Meyering
77eb8604f1 (TESTS): Add perm. 2000-09-30 08:10:31 +00:00
Jim Meyering
f8d8ad4e94 *** empty log message *** 2000-09-30 08:09:14 +00:00
Jim Meyering
52e7fcc46c *** empty log message *** 2000-09-30 08:08:21 +00:00
Jim Meyering
96cde75480 *** empty log message *** 2000-09-30 08:05:32 +00:00
Jim Meyering
55b181511c (usage): Add a separate usage line, just for `OPTION'. 2000-09-29 21:40:38 +00:00
Jim Meyering
6ce74d5d36 *** empty log message *** 2000-09-29 21:40:33 +00:00
Jim Meyering
588d70c624 *** empty log message *** 2000-09-29 21:39:51 +00:00
Jim Meyering
6a8e993550 Run `diff -c' only if cmp finds a difference.
Clean up.
2000-09-29 10:17:51 +00:00
Jim Meyering
087520e781 . 2000-09-25 22:38:16 +00:00
Jim Meyering
8879e63dee (long_opts): --exact doesn't take an argument. 2000-09-25 22:37:54 +00:00
Jim Meyering
1a37445686 *** empty log message *** 2000-09-25 22:37:17 +00:00
Jim Meyering
d6ce71fb68 *** empty log message *** 2000-09-25 22:36:45 +00:00
Jim Meyering
65e65dbf30 *** empty log message *** 2000-09-25 20:25:04 +00:00
Jim Meyering
ec00767a8e Don't use `diff -u'. It's not portable.
Run `diff -c' only if cmp finds a difference.
2000-09-25 20:23:43 +00:00
Jim Meyering
f443264116 *** empty log message *** 2000-09-25 20:23:11 +00:00
Jim Meyering
6292a2bb96 *** empty log message *** 2000-09-25 19:43:57 +00:00
Jim Meyering
2371d8faaf Use `(exit 1); exit' paradigm also for framework_failure. 2000-09-25 19:41:56 +00:00
Jim Meyering
2dc45ff0c8 *** empty log message *** 2000-09-25 10:52:09 +00:00
Jim Meyering
d2a170a785 (prev_version_file): Define and use. 2000-09-25 10:51:53 +00:00
Jim Meyering
2da0b15537 (PREV_VERSION): Get the value from a file, rather
than trying to derive it from the current version number.
This is much more robust.
(alpha): Record just-released version number in `.version',
and commit (post-tag).
2000-09-25 10:49:35 +00:00
Jim Meyering
9191f089b9 *** empty log message *** 2000-09-25 07:41:45 +00:00
Jim Meyering
5f201a38b6 *** empty log message *** 2000-09-25 07:33:07 +00:00
Jim Meyering
53feb25dd7 *** empty log message *** 2000-09-25 07:17:29 +00:00
Jim Meyering
9726d96742 *** empty log message *** 2000-09-25 00:23:17 +00:00
Jim Meyering
3283bb8b93 (usage): Match revised documentation better. 2000-09-25 00:09:10 +00:00
Jim Meyering
2b9d8efc91 *** empty log message *** 2000-09-25 00:01:22 +00:00
Jim Meyering
c3da9e25ed (rol): Define (from GnuPG). 2000-09-25 00:00:58 +00:00
Jim Meyering
ab367e6b13 Give credit (GnuPG) where due.
(M): Use rol rather than open-coding it.
Add a FIXME comment.
2000-09-24 23:59:39 +00:00
Jim Meyering
8d0687974f *** empty log message *** 2000-09-24 23:05:57 +00:00
Jim Meyering
230bf31c87 . 2000-09-24 18:42:23 +00:00
Jim Meyering
5f7aed5f78 *** empty log message *** 2000-09-24 11:57:41 +00:00
Jim Meyering
65b0c96d46 (main): Tweak a relatively new diagnostic. 2000-09-24 11:57:36 +00:00
Jim Meyering
cb05584160 *** empty log message *** 2000-09-23 19:27:41 +00:00
Jim Meyering
79043436ce Output more information when a test fails. 2000-09-23 19:27:33 +00:00
Jim Meyering
3584f04f59 adjust for change in behavior 2000-09-23 19:24:12 +00:00
Jim Meyering
1f5e4907c2 . 2000-09-23 09:29:54 +00:00
Jim Meyering
a04e5b9dbc (main): When used with --force, each of the --link and
--symbolic-link options now implies --remove-destination.
2000-09-22 20:41:40 +00:00
Jim Meyering
ce8d840e83 *** empty log message *** 2000-09-22 19:30:36 +00:00
Jim Meyering
39da0cbc3b (cp_option_init): Once again make it so install always
unlinks an existing destination before trying to open it for writing.
Otherwise, installing onto a running shared library would make the
running program malfunction.
2000-09-22 19:30:29 +00:00
Jim Meyering
dffa52e11a *** empty log message *** 2000-09-22 19:28:24 +00:00
Jim Meyering
60c672e7ec (TESTS): Add dir-rm-dest. 2000-09-22 19:27:31 +00:00
Jim Meyering
ace3c90796 *** empty log message *** 2000-09-22 18:31:02 +00:00
Jim Meyering
c2c680ad95 (do_move): Moving a directory specified with a trailing
slash from one partition to another, and giving it a different
name at the destination would cause mv to get a failed assertion.
Reported by Michael Stone.
(strip_trailing_slashes_2): Move function definition to precede new first use.
2000-09-22 15:40:43 +00:00
Jim Meyering
e34407ac09 *** empty log message *** 2000-09-22 15:39:03 +00:00
Jim Meyering
bca49a8c12 (TESTS): Add part-rename. 2000-09-22 15:38:37 +00:00
Jim Meyering
483f907eb8 (copy_internal): Don't try to unlink directories when
using --remove-dest with -R.
2000-09-22 14:14:55 +00:00
Jim Meyering
f680954f1f *** empty log message *** 2000-09-22 13:31:14 +00:00
Jim Meyering
e7a17082b4 *** empty log message *** 2000-09-21 14:40:09 +00:00
Jim Meyering
33675b72ce *** empty log message *** 2000-09-21 05:40:34 +00:00
Jim Meyering
7708d86636 (parse_user_spec): Remove debugging printf I'd added.
Argh!
2000-09-21 05:40:28 +00:00
Jim Meyering
ff8d7f3d98 *** empty log message *** 2000-09-20 09:43:37 +00:00
Jim Meyering
39e3db9605 *** empty log message *** 2000-09-20 09:43:07 +00:00
Jim Meyering
8619939503 *** empty log message *** 2000-09-20 08:06:06 +00:00
Jim Meyering
aba49610d9 *** empty log message *** 2000-09-20 08:05:39 +00:00
Jim Meyering
4b5edfea53 (libfetish_a_SOURCES): Add sha.c.
(noinst_HEADERS): Add sha.h.
Based on code from Scott G. Miller and from GnuPG.
2000-09-20 08:05:24 +00:00
Jim Meyering
98daab19b9 . 2000-09-20 07:38:56 +00:00
Jim Meyering
6924fde974 *** empty log message *** 2000-09-18 06:37:15 +00:00
Jim Meyering
cf19019bf9 (AC_FUNC_GETLOADAVG): Restore the initial value of LIBS.
Otherwise, everyone ends up linking with -lelf for some configurations.
Reported by Mike Stone.
2000-09-18 06:37:01 +00:00
Jim Meyering
eccfa6b591 shrink tmp array length from 80 to 16. 2000-09-17 13:02:43 +00:00
Jim Meyering
1778e41773 use gnupg R/M macros 2000-09-17 13:01:02 +00:00
Jim Meyering
2d3aded1bb checkpoint 2000-09-17 12:54:25 +00:00
Jim Meyering
9d524deb2b *** empty log message *** 2000-09-17 11:12:31 +00:00
Jim Meyering
12079963ab remove debug junk 2000-09-17 11:11:26 +00:00
Jim Meyering
30ee9b3006 moving to gnupg's version of sha1.c 2000-09-17 11:11:01 +00:00
Jim Meyering
e87dcda480 snapshot of massaged original 2000-09-17 11:08:06 +00:00
Jim Meyering
3d929fbda2 . 2000-09-16 16:49:23 +00:00
Jim Meyering
c0e5ce613e *** empty log message *** 2000-09-16 16:47:06 +00:00
Jim Meyering
59a8abac57 Update from libc. 2000-09-16 16:46:50 +00:00
Jim Meyering
89aa821b03 *** empty log message *** 2000-09-16 16:26:09 +00:00
Jim Meyering
eaa53735c2 (Changing Special Permissions): Remove this statement:
`a' in the USERS part of a symbolic mode does not cause the special
permissions to be affected...  It doesn't reflect what the code does
and isn't required by POSIX.  Reported by aldomel@ix.netcom.com via
Mike Stone.
2000-09-16 16:26:02 +00:00
Jim Meyering
2dfa2338b8 *** empty log message *** 2000-09-15 06:33:32 +00:00
Jim Meyering
a7f53c72b3 *** empty log message *** 2000-09-12 14:04:20 +00:00
Jim Meyering
f6234990b2 *** empty log message *** 2000-09-10 19:48:05 +00:00
Jim Meyering
9eb2ccc113 (LC_ALL): Set to `C' and export to ensure
that `ls' sorts the same way for everyone.  Reported by Vin Shelton.
2000-09-10 19:47:56 +00:00
Jim Meyering
92ae1c7d2a *** empty log message *** 2000-09-10 19:04:14 +00:00
Jim Meyering
31d9a98e82 (b_host): Use freefriends.org, not tug.org. 2000-09-10 19:04:09 +00:00
Jim Meyering
4df3e0f3b9 *** empty log message *** 2000-09-10 07:31:54 +00:00
Jim Meyering
834c4dbfe1 (_getopt_internal): Update from glibc. 2000-09-10 07:31:44 +00:00
Jim Meyering
3d7a795592 *** empty log message *** 2000-09-09 16:34:17 +00:00
Jim Meyering
1352d5e6ce (usage): Make second `Usage' line more precise
(also making it match the texinfo documentation).
2000-09-09 16:33:59 +00:00
Jim Meyering
327b8f63c0 *** empty log message *** 2000-09-09 16:02:37 +00:00
Jim Meyering
af49390ea7 Rename ISASCII to IN_CTYPE_DOMAIN. 2000-09-09 15:58:57 +00:00
Jim Meyering
ac42c1a725 Rename ISASCII to IN_CTYPE_DOMAIN. 2000-09-09 15:58:03 +00:00
Jim Meyering
5f9e998bca Rename ISASCII to IN_CTYPE_DOMAIN. 2000-09-09 15:56:26 +00:00
Jim Meyering
16bcaae35b (Setting the time): Correct the capitalization of
`HHMM' in the info-rendering of the texinfo documentation.
2000-09-09 14:35:39 +00:00
Jim Meyering
315d948fe2 *** empty log message *** 2000-09-09 14:35:18 +00:00
Jim Meyering
3016c52459 *** empty log message *** 2000-09-09 12:12:28 +00:00
Jim Meyering
a6e3bc0ace (announcement): Use a stricter regexp for the previous version. 2000-09-09 12:12:16 +00:00
Jim Meyering
940dc652a5 *** empty log message *** 2000-09-09 09:58:16 +00:00
Jim Meyering
c0d85f7e45 . 2000-09-09 08:58:58 +00:00
Jim Meyering
fdd7f15c6e *** empty log message *** 2000-09-09 08:58:42 +00:00
Jim Meyering
88fec8763a . 2000-09-09 08:56:38 +00:00
Jim Meyering
80fe6fbd20 *** empty log message *** 2000-09-09 08:55:48 +00:00
Jim Meyering
ca10098c93 *** empty log message *** 2000-09-09 08:53:37 +00:00
Jim Meyering
e336878a5b *** empty log message *** 2000-09-09 08:42:34 +00:00
Jim Meyering
6f98f91fad *** empty log message *** 2000-09-09 08:27:52 +00:00
Jim Meyering
a2e3399aa2 *** empty log message *** 2000-09-09 08:25:33 +00:00
Jim Meyering
f3643f7edd (TESTS_ENVIRONMENT): Propagate $MAKE into environment, for special-bits. 2000-09-09 08:24:41 +00:00
Jim Meyering
108783401d *** empty log message *** 2000-09-09 08:22:54 +00:00
Jim Meyering
88cd90df1e *** empty log message *** 2000-09-09 08:22:19 +00:00
Jim Meyering
f6c0c0ee16 *** empty log message *** 2000-09-09 08:18:10 +00:00
Jim Meyering
bb4904c751 (TESTS): Add special-bits. 2000-09-09 08:17:33 +00:00
Jim Meyering
6fdcba1097 *** empty log message *** 2000-09-09 07:32:43 +00:00
Jim Meyering
7ce4ee180b (copy_internal): Call chmod also if we've made the
preceding chown call and we're supposed to preserve some special
permission bit(s) that would have been reset by chown.
Reported by Greg Louis.
2000-09-09 07:32:36 +00:00
Jim Meyering
84d9e6f35b (SAME_OWNER, SAME_GROUP, SAME_OWNER_AND_GROUP): Define.
(copy_internal): Avoid calling chown if we know it's not necessary.
2000-09-09 07:29:38 +00:00
Jim Meyering
5e333bb8b8 *** empty log message *** 2000-09-09 07:20:54 +00:00
Jim Meyering
7d5c9847aa Don't use atoi.
Include sys/param.h and limits.h.
Include xstrtol.h.
(CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
(UID_T_MAX, GID_T_MAX, MAXUID, MAXGID): Define.
(parse_user_spec): Use xstrtoul, not atoi when converting numeric
UID, GID.  Check range.
2000-09-09 07:20:46 +00:00
Jim Meyering
116698bb24 *** empty log message *** 2000-09-08 09:03:05 +00:00
Jim Meyering
93fe4a3b72 (S_IRWXUGO): Define here, instead. 2000-09-08 09:01:32 +00:00
Jim Meyering
3a66ad8dcd (S_IRWXUGO): Remove definition. 2000-09-08 09:01:02 +00:00
Jim Meyering
b12b63eced *** empty log message *** 2000-09-07 13:23:52 +00:00
Jim Meyering
5f44c5626b . 2000-09-07 13:22:26 +00:00
Jim Meyering
829258e77c Update from master repository. 2000-09-07 13:22:14 +00:00
Jim Meyering
d9a1527093 *** empty log message *** 2000-09-07 07:08:50 +00:00
Jim Meyering
bd5a2dc9e1 (cut invocation): Note that when using -f, lines with no delimiters are
also printed.
2000-09-07 07:08:39 +00:00
Jim Meyering
95ed06eb09 (usage): Note that when using -f, lines with no delimiters are also printed. 2000-09-07 07:08:17 +00:00
Jim Meyering
19ee58e090 Remove obsolete comment block. 2000-09-07 07:01:11 +00:00
Jim Meyering
b61f6618aa *** empty log message *** 2000-09-06 20:04:17 +00:00
Jim Meyering
7ed190837a (_getopt_internal): Update from glibc. 2000-09-06 20:04:06 +00:00
Jim Meyering
812dc8da17 *** empty log message *** 2000-09-05 12:15:38 +00:00
Jim Meyering
b150de0a99 Redirect stdout to stderr before trying to
remove the temp directory.  Otherwise, the `rm -rf' would get an
error because the output file wouldn't be closed and the directory
wouldn't be `empty'.
2000-09-05 12:15:30 +00:00
Jim Meyering
2757680bbf . 2000-09-05 12:04:29 +00:00
Jim Meyering
9fecbb3105 Remove the `cp -bdl symlink foo' case.
since it's no longer portable (hard link to a symlink).
2000-09-05 12:02:40 +00:00
Jim Meyering
b0126126d2 Remove the `cp -dl sl1 sl2' case,
since it's no longer portable (hard link to a symlink).
2000-09-05 11:53:03 +00:00
Jim Meyering
3260d507f5 *** empty log message *** 2000-09-05 10:41:18 +00:00
Jim Meyering
537879ee7d . 2000-09-05 10:22:35 +00:00
Jim Meyering
0c483136cf . 2000-09-04 20:51:43 +00:00
Jim Meyering
106eedf2a8 Remove declaration of lstat, now that it's in copy.h. 2000-09-04 20:51:29 +00:00
Jim Meyering
cec4418796 Move declaractions of lstat, stat, and rpl_lstat
as well as the definition of lstat from cp.c to this file.
2000-09-04 20:51:12 +00:00
Jim Meyering
25e0824d28 Move declaractions of lstat, stat, and rpl_lstat
as well as the definition of lstat from here to copy.h.
2000-09-04 20:50:45 +00:00
Jim Meyering
739a268735 *** empty log message *** 2000-09-04 17:01:23 +00:00
Jim Meyering
7c5d2581a0 . 2000-09-04 16:58:38 +00:00
Jim Meyering
9f99fca934 mv's --force (-f) option is no longer needed for
this test, now that all it does is cancel --interactive (-i).
2000-09-04 16:58:25 +00:00
Jim Meyering
d7dfef329f *** empty log message *** 2000-09-04 16:56:17 +00:00
Jim Meyering
daaa56f985 Add new tests using cp's --rem option.
Reflect the fact that cp's -f option no longer causes cp to remove the
destination file before trying to open it.
Reflect the fact that `cp -bdl' now makes a backup when copying a
symlink onto the file it points to (FIXME: look into this, and why
cp -bl does *not* do so).
2000-09-04 16:56:09 +00:00
Jim Meyering
143be7ea2d *** empty log message *** 2000-09-04 15:22:08 +00:00
Jim Meyering
4cb0cadf96 (do_link): Tweak diagnostics. 2000-09-04 15:22:00 +00:00
Jim Meyering
b5545e03db (same_file_ok): Hoist a test. 2000-09-04 14:49:30 +00:00
Jim Meyering
4dfe280c99 *** empty log message *** 2000-09-04 14:46:18 +00:00
Jim Meyering
616d9920c0 factor out backup/same test, put it after if-else. 2000-09-04 14:45:42 +00:00
Jim Meyering
65a185d754 (same_file_ok): factor some more. improve -- now passes all tests.
checkpoint
2000-09-04 14:42:32 +00:00
Jim Meyering
5dcb9b11aa *** empty log message *** 2000-09-04 08:16:16 +00:00
Jim Meyering
fbc1b0b06f *** empty log message *** 2000-09-04 08:03:56 +00:00
Jim Meyering
1f64389cd5 *** empty log message *** 2000-09-04 07:27:49 +00:00
Jim Meyering
e2017655a1 *** empty log message *** 2000-09-04 07:25:10 +00:00
Jim Meyering
09af7ed5f7 *** empty log message *** 2000-09-04 07:09:08 +00:00
Jim Meyering
2c663e070c *** empty log message *** 2000-09-03 18:50:55 +00:00
Jim Meyering
799114aa8c (cp_option_init): Initialize new members. 2000-09-03 18:50:49 +00:00
Jim Meyering
8ed20d830e . 2000-09-03 18:50:14 +00:00
Jim Meyering
a513c6c10e . 2000-09-03 18:49:37 +00:00
Jim Meyering
35640da77d tweak comment 2000-09-03 15:25:11 +00:00
Jim Meyering
b8fbc41536 Remove obsolete comment block.
(cp_option_init): Initialize new members.
(usage): Reflect the fact that --force (-f) relates only to whether
mv prompts.
(main): Remove uses of old `force' option member.
2000-09-03 14:36:50 +00:00
Jim Meyering
475fb2e732 (enum): Add UNLINK_DEST_BEFORE_OPENING.
[long_options]: Add an entry for --remove-destination.
(usage): Describe --remove-destination.
(do_copy): Use unlink_dest_after_failed_open member, not `force.'
(cp_option_init): Initialize new members.
(main): Handle UNLINK_DEST_BEFORE_OPENING (aka --remove-destination).
2000-09-03 14:09:23 +00:00
Jim Meyering
b1bf91b67d correct description of unlink_dest_after_failed_open 2000-09-03 13:56:15 +00:00
Jim Meyering
e2a422b8ef comment 2000-09-03 13:18:22 +00:00
Jim Meyering
81ab1beb52 Use strcoll (not strcmp) when comparing file names. 2000-09-03 13:06:41 +00:00
Jim Meyering
c199939348 (struct cp_options) [force]: Remove member.
[unlink_dest_before_opening]: Add member.
[unlink_dest_after_failed_open]: Add member.
2000-09-03 13:04:44 +00:00
Jim Meyering
76685fb1e9 (same_file_ok): New function, extracted from copy_internal,
and partially rewritten.
(copy_internal): Unlink destination file when unlink_dest_before_opening
option is set, and when the source is neither a regular file nor a directory.
2000-09-03 13:01:49 +00:00
Jim Meyering
3e8dff57b2 *** empty log message *** 2000-09-02 09:44:47 +00:00
Jim Meyering
1207fe6788 *** empty log message *** 2000-09-02 09:32:01 +00:00
Jim Meyering
24946d8604 *** empty log message *** 2000-09-02 09:30:03 +00:00
Jim Meyering
aa8f9f7e67 *** empty log message *** 2000-09-02 09:28:31 +00:00
Jim Meyering
9136c97143 *** empty log message *** 2000-09-02 09:08:31 +00:00
Jim Meyering
976d5c8a3f add basic test 2000-09-02 07:55:32 +00:00
Jim Meyering
3b023926b1 *** empty log message *** 2000-08-30 07:58:05 +00:00
Jim Meyering
048aa98ba8 Merge in changes from GNU libc. 2000-08-30 07:58:01 +00:00
Jim Meyering
3c5e612fce declare __fpending only if necessary 2000-08-28 14:55:18 +00:00
Jim Meyering
92452ed0a0 check for __fpending declaration 2000-08-28 14:53:10 +00:00
Jim Meyering
edc1ebe9e7 include stdio_ext.h 2000-08-28 14:50:37 +00:00
Jim Meyering
96719d7999 *** empty log message *** 2000-08-27 09:50:08 +00:00
Jim Meyering
739185ba74 . 2000-08-27 09:30:11 +00:00
Jim Meyering
6bf3479c9f (copy_reg): New parameters: X and NEW_DST.
Remove the SPARSE_MODE parameter.  Update caller.
Perform POSIX-mandated (for cp) open-with-O_WRONLY|O_TRUNC when
the regular destination file exists;  upon failure, unlink
that existing file, then open again, but with O_WRONLY|O_CREAT.
(copy_internal): `force' in not related to interactive; remove
the conjunct.
Remove the entire `else if (x->force)' block;  justifying
removal of the non-directory part is easy:  POSIX requires we try
to open an existing regular file, so we can't unlink it beforehand.
The part that changes the mode on a directory to allow overwriting
isn't necessary.
2000-08-27 09:30:00 +00:00
Jim Meyering
2c8881fa4e (copy_internal): Set `new_dst' when the move_mode rename fails,
since we then unlink the destination file.
2000-08-27 08:46:21 +00:00
Jim Meyering
a246888987 (copy_reg): Rename two goto labels. 2000-08-27 08:33:35 +00:00
Jim Meyering
5f4e35a42a . 2000-08-26 22:24:50 +00:00
Jim Meyering
004fa32b78 (usage): --force is independent of --interactive. 2000-08-26 22:24:31 +00:00
Jim Meyering
b679f078af . 2000-08-26 15:40:01 +00:00
Jim Meyering
64c38128cb . 2000-08-26 15:39:39 +00:00
Jim Meyering
47ffae51d2 *** empty log message *** 2000-08-26 12:05:55 +00:00
Jim Meyering
dc93e67305 Include "__fpending.h".
(close_stdout_status): Return right away if there's nothing to flush.
2000-08-26 12:05:50 +00:00
Jim Meyering
04b3f8c73f *** empty log message *** 2000-08-26 12:04:46 +00:00
Jim Meyering
15da58e940 *** empty log message *** 2000-08-26 12:04:13 +00:00
Jim Meyering
2c45ec8870 (noinst_HEADERS): Add __fpending.h. 2000-08-26 12:04:01 +00:00
Jim Meyering
b0a76138e8 *** empty log message *** 2000-08-26 11:59:55 +00:00
Jim Meyering
f48d309e1f *** empty log message *** 2000-08-26 11:58:08 +00:00
Jim Meyering
9f29c127ad Use jm_FUNC_FPENDING. 2000-08-26 11:56:54 +00:00
Jim Meyering
4edc4fdd20 *** empty log message *** 2000-08-26 11:56:20 +00:00
Jim Meyering
bf25ff5686 *** empty log message *** 2000-08-26 11:55:12 +00:00
Jim Meyering
5dee541de5 *** empty log message *** 2000-08-26 11:46:21 +00:00
Jim Meyering
9ca4b0ce4c *** empty log message *** 2000-08-26 11:44:00 +00:00
Jim Meyering
86d77d28f6 *** empty log message *** 2000-08-26 11:26:11 +00:00
Jim Meyering
5fec9dcd63 *** empty log message *** 2000-08-26 11:25:48 +00:00
Jim Meyering
5cd332146d *** empty log message *** 2000-08-25 07:43:45 +00:00
Jim Meyering
f35a629b10 *** empty log message *** 2000-08-25 07:39:22 +00:00
Jim Meyering
2115d8b251 *** empty log message *** 2000-08-24 11:39:14 +00:00
Jim Meyering
44256afd61 Put back the kluge. It's necessary after all.
(buggy_lseek_support): New function.
(skip): Use it.
Frank Adler reported that although _llseek returns 0, lseek
erroneously returns an offset suggesting the operation succeeded
even though it fails.
2000-08-24 11:39:08 +00:00
Jim Meyering
078fb9958e *** empty log message *** 2000-08-24 11:36:28 +00:00
Jim Meyering
10d2bd9fe1 . 2000-08-24 08:40:47 +00:00
Jim Meyering
d5f68c636f . 2000-08-24 08:40:08 +00:00
Jim Meyering
fc5b8b497f *** empty log message *** 2000-08-24 08:37:06 +00:00
Jim Meyering
399ca3007b *** empty log message *** 2000-08-24 08:36:47 +00:00
Jim Meyering
69450c7b8e (skip): Assume lseek failed if it returned zero, since a zero return is
impossible and some buggy drivers return zero.

Use SEEK_CUR rather than SEEK_SET; this fixes a bug when the
file descriptor is not currently rewound.
2000-08-24 08:34:33 +00:00
Jim Meyering
2abb1fd55d *** empty log message *** 2000-08-23 16:26:55 +00:00
Jim Meyering
5679351226 Include <config.h> unconditionally, to be consistent
with all the other programs in this directory.
2000-08-23 16:26:39 +00:00
Jim Meyering
52d06428c4 *** empty log message *** 2000-08-23 07:54:41 +00:00
Jim Meyering
9fa18193a8 *** empty log message *** 2000-08-23 07:54:23 +00:00
Jim Meyering
c5a36496a9 longer input 2000-08-23 07:54:06 +00:00
Jim Meyering
89f0eb153f redir dd's stderr 2000-08-23 07:49:05 +00:00
Jim Meyering
0816398823 change PROG from ls to dd 2000-08-23 07:48:11 +00:00
Jim Meyering
2ca0198ba4 (TESTS): Add not-rewound. 2000-08-23 07:47:52 +00:00
Jim Meyering
441d42d262 *** empty log message *** 2000-08-23 07:45:59 +00:00
Jim Meyering
47635579b0 use better trap 2000-08-23 07:38:21 +00:00
Jim Meyering
ed034dc2fb *** empty log message *** 2000-08-23 07:35:22 +00:00
Jim Meyering
d704481d1f back out last change 2000-08-23 07:33:28 +00:00
Jim Meyering
9445f3be05 *** empty log message *** 2000-08-22 11:12:06 +00:00
Jim Meyering
ba9af72e94 Don't even try to use lseek on character devices.
(buggy_lseek_support): New function.
(skip): Use it.
Reported by Martin Gallant via Michael Stone.
2000-08-22 11:12:01 +00:00
Jim Meyering
f2f8c736c9 *** empty log message *** 2000-08-22 11:05:47 +00:00
Jim Meyering
3ee1d2075c Clean up traps. Create files in a subdir. 2000-08-21 09:45:52 +00:00
Jim Meyering
4ff47b028e remove `dir' in trap, too 2000-08-21 09:41:56 +00:00
Jim Meyering
6d622fcb6b use better trap 2000-08-21 09:39:59 +00:00
Jim Meyering
dfdd08e943 *** empty log message *** 2000-08-21 05:29:32 +00:00
Jim Meyering
bcb31e6df5 *** empty log message *** 2000-08-21 05:15:55 +00:00
Jim Meyering
e37426d44c *** empty log message *** 2000-08-20 22:48:42 +00:00
Jim Meyering
5344a40bc2 remove blank line 2000-08-20 22:46:16 +00:00
Jim Meyering
f79086fbd3 *** empty log message *** 2000-08-20 22:46:05 +00:00
Jim Meyering
3944f9acc9 *** empty log message *** 2000-08-20 22:35:52 +00:00
Jim Meyering
5f69a51188 . 2000-08-20 21:16:36 +00:00
Jim Meyering
fc27421c82 New file. From J. David Anglin. 2000-08-20 21:12:36 +00:00
Jim Meyering
3581b3cf77 *** empty log message *** 2000-08-20 21:04:38 +00:00
Jim Meyering
9f425a515b *** empty log message *** 2000-08-20 21:04:26 +00:00
Jim Meyering
b4721f8c6e (TESTS): Add cp-HL. 2000-08-20 21:04:20 +00:00
Jim Meyering
59bf576f46 *** empty log message *** 2000-08-20 21:03:48 +00:00
Jim Meyering
1d0ba16702 *** empty log message *** 2000-08-20 21:03:03 +00:00
Jim Meyering
c4c4106e8b *** empty log message *** 2000-08-20 20:50:26 +00:00
Jim Meyering
d7af479281 *** empty log message *** 2000-08-20 20:49:58 +00:00
Jim Meyering
5b55669c7a (cp_option_init): Initialize to DEREF_ALWAYS, not `1'. 2000-08-20 20:49:44 +00:00
Jim Meyering
94d34806bd (cp_option_init): Initialize to DEREF_NEVER, not `0'. 2000-08-20 20:49:34 +00:00
Jim Meyering
c93a607f05 (long_opts): Add --dereference, -L.
(usage): Describe -L and -H.
(cp_option_init): Initialize to DEREF_UNDEFINED, not `1'.
(main): Add `H' and `-L' to getopt spec string.
[case 'a']: Initialize `dereference' to DEREF_NEVER, not 0.
[case 'd']: Likewise.
[case 'H']: New case.
[case 'L']: New case.
[case 'R']: Don't set dereference to `0' here.
If it's not yet defined, set x.dereference to DEREF_NEVER
if -R was specified, else set it to DEREF_ALWAYS.
Set x.xstat accordingly for -H.
2000-08-20 20:48:57 +00:00
Jim Meyering
7b1d35af90 Declare lstat.
(copy_dir): Set `xstat' member to lstat so that with `-H' we don't
follow symlinks found via recursive traversal.
Update uses of `dereference' to compare against new enum member names.
2000-08-20 20:48:45 +00:00
Jim Meyering
33db1748a0 (enum Dereference_symlink): Define.
(struct cp_options) [dereference]: Change type to Dereference_symlink.
2000-08-20 20:35:25 +00:00
Jim Meyering
9c55b67dd4 . 2000-08-20 16:48:02 +00:00
Jim Meyering
74a00a63a0 . 2000-08-20 15:56:43 +00:00
Jim Meyering
f801837d6c . 2000-08-20 15:56:11 +00:00
Jim Meyering
55692e275e *** empty log message *** 2000-08-20 12:45:35 +00:00
Jim Meyering
5bf6f179da Include utmp.h `#if HAVE_UTMP_H', rather than
`#if !HAVE_UTMPX_H'.  The latter would lose on systems with neither
utmp.h nor utmpx.h.  Reported by Eli Zaretskii.
2000-08-20 12:45:31 +00:00
Jim Meyering
f9850882f1 (print_totals): Rename global from opt_combined_arguments. 2000-08-20 09:55:23 +00:00
Jim Meyering
5d0d80fc27 fix my grammar error in last change 2000-08-19 11:09:03 +00:00
Jim Meyering
c055d35869 *** empty log message *** 2000-08-19 11:07:46 +00:00
Jim Meyering
61a8f5b321 *** empty log message *** 2000-08-19 11:07:37 +00:00
Jim Meyering
0dd04df27f (writeline): Correct comments.
From Bruno Haible.
2000-08-19 11:07:32 +00:00
Jim Meyering
dde8f61f1c *** empty log message *** 2000-08-18 07:08:34 +00:00
Jim Meyering
1696188993 (DO_CHOWN): Do not make a special case for non-root.
POSIX.2 requires that cp -p and mv attempt to set the uid of the
destination file, even if you're not root.  This affects behavior
only on hosts that let you give files away via chmod.
2000-08-18 07:08:04 +00:00
Jim Meyering
3804c0288a *** empty log message *** 2000-08-15 13:12:57 +00:00
Jim Meyering
70b951593e Add tests for just-fixed bug. 2000-08-15 13:12:48 +00:00
Jim Meyering
614723b9c1 *** empty log message *** 2000-08-15 13:08:31 +00:00
Jim Meyering
849d512ee9 *** empty log message *** 2000-08-15 13:08:06 +00:00
Jim Meyering
c4e4ba9607 *** empty log message *** 2000-08-15 13:07:40 +00:00
Jim Meyering
5f52473b9c *** empty log message *** 2000-08-15 13:05:21 +00:00
Jim Meyering
f0a4b95c58 (count_entry): Remember the current directory also for `.'
and `..'.  Reported by Stephen Smoogen, based on a patch from H.J. Lu.
2000-08-15 13:05:03 +00:00
Jim Meyering
d5d043c57a *** empty log message *** 2000-08-14 21:42:45 +00:00
Jim Meyering
5f14914c49 remove incorrect FIXME comment. 2000-08-14 21:40:30 +00:00
Jim Meyering
8c446739e7 *** empty log message *** 2000-08-14 09:58:58 +00:00
Jim Meyering
0f8dd3a954 (copy_reg): Move declaration of local, `n_read', into
the scope where it's used.
(copy_internal): In calling copy_reg, pass not the raw `src_mode',
but the possibly-umask-relative mode, `get_dest_mode (x, src_mode)'.
2000-08-14 09:58:25 +00:00
Jim Meyering
d927d60b36 (copy_reg): Add comment. 2000-08-13 13:13:25 +00:00
Jim Meyering
bed2ded78f *** empty log message *** 2000-08-13 13:05:16 +00:00
Jim Meyering
406f1dcb0f *** empty log message *** 2000-08-13 13:04:52 +00:00
Jim Meyering
fc0b4f7672 *** empty log message *** 2000-08-13 13:04:27 +00:00
Jim Meyering
262dbfe2f6 *** empty log message *** 2000-08-13 13:03:41 +00:00
Jim Meyering
27289e8b53 *** empty log message *** 2000-08-13 13:03:13 +00:00
Jim Meyering
8656b00f6d (get_dest_mode): Rename from new_nondir_mode.
Honor the umask for `cp', but not for `mv' or `cp -p'.
(copy_reg): New 4th parameter, dst_mode.  Pass it as 3rd arg. to open.
(copy_internal): Change type of locals `src_mode' and `src_type' from
int to mode_t.
Remove unnecessary local `fix_mode'.
Combine two if-stmts into one.
Pass `src_mode' as 4th arg to copy_reg.
If we've just created a new regular file, return early, skipping the
chmod step.  copy_reg now sets permissions of such files upon creation.
Use get_dest_mode, so there's just one chmod call here.
2000-08-13 13:03:07 +00:00
Jim Meyering
ce9d58029c Use jm_FUNC_UNLINK_BUSY_TEXT. 2000-08-12 13:27:29 +00:00
Jim Meyering
c187c5884b *** empty log message *** 2000-08-12 13:25:33 +00:00
Jim Meyering
ae8efa7087 . 2000-08-12 13:24:44 +00:00
Jim Meyering
13a7e4caf8 (TESTS): Add perm. 2000-08-12 13:24:31 +00:00
Jim Meyering
00874a5dad *** empty log message *** 2000-08-12 13:23:18 +00:00
Jim Meyering
52f1830329 Remove test for the VERSION_CONTROL and/or
SIMPLE_BACKUP_SUFFIX envvars.  Source ../envvar-check instead.
2000-08-12 13:22:59 +00:00
Jim Meyering
af77319c56 Remove test for the VERSION_CONTROL and/or
SIMPLE_BACKUP_SUFFIX envvars.  Source ../envvar-check instead.
2000-08-12 13:22:19 +00:00
Jim Meyering
60d7a8e772 Remove test for the VERSION_CONTROL and/or
SIMPLE_BACKUP_SUFFIX envvars.  Source ../envvar-check instead.
2000-08-12 13:21:47 +00:00
Jim Meyering
e37768067a Remove test for the VERSION_CONTROL and/or
SIMPLE_BACKUP_SUFFIX envvars.  Source ../envvar-check instead.
2000-08-12 13:21:13 +00:00
Jim Meyering
47e19fb368 *** empty log message *** 2000-08-12 13:19:27 +00:00
Jim Meyering
f2893678eb *** empty log message *** 2000-08-12 07:24:27 +00:00
Jim Meyering
1a27d41352 . 2000-08-12 06:17:33 +00:00
Jim Meyering
9099ba78e2 *** empty log message *** 2000-08-12 05:50:21 +00:00
Jim Meyering
017ee79337 *** empty log message *** 2000-08-12 05:16:40 +00:00
Jim Meyering
44d3e01da9 tweak the `whether...' message 2000-08-12 04:59:31 +00:00
Jim Meyering
52d20e4420 (jm_FUNC_UNLINK_BUSY_TEXT): New file/macro.
From J. David Anglin.
2000-08-12 04:57:18 +00:00
Jim Meyering
04d18f430c *** empty log message *** 2000-08-11 20:59:57 +00:00
Jim Meyering
c2177b12b3 Portable shell scripts should specify global options before key fields.
Move global LC_CTYPE remark to each sort option that depends on LC_CTYPE.

sort -g depends on LC_NUMERIC.

Add @vindex where it's missing.

"radix character" -> "decimal-point character", to match Standard C
terminology, which is easier for most people to follow.

"comm" does not consider trailing newlines to be significant.
2000-08-11 20:59:49 +00:00
Jim Meyering
7c032c04b9 *** empty log message *** 2000-08-11 09:20:36 +00:00
Jim Meyering
19d6aed760 Add support for multi-byte locales.
(iswprint, mbrtowc, wcwidth): Provide default definitions.
(total_bytes): New variable.
(print_bytes): New variable.
(longopts): Change abbreviation for --chars from 'c' to 'm'.
(usage): Update.
(write_counts): Add `bytes' argument.
(wc): New variables `bytes', `count_bytes', `count_chars',
`count_complicated'. The old code determines `bytes', not `chars'.
New case for MB_CUR_MAX > 1. A non-printable non-space character does
not increment the line position or start a word. Update `total_bytes'.
(main): Initialize `print_bytes' and `total_bytes' to 0. Accept 'm'
option. Pass `total_bytes' to write_counts.
2000-08-11 09:20:31 +00:00
Jim Meyering
c14f06f708 *** empty log message *** 2000-08-11 09:13:00 +00:00
Jim Meyering
5018ccfb7e (usage): Describe -d and -i in a locale-independent way. 2000-08-11 09:12:47 +00:00
Jim Meyering
d0c8664700 (usage): Don't describe System V syntax, as it doesn't always work. 2000-08-11 09:12:05 +00:00
Jim Meyering
2ed0078725 Recommend against the System V syntax
for tr ranges, and don't use it in examples.  Use POSIX
classes rather than ranges, for portability.
2000-08-11 09:11:20 +00:00
Jim Meyering
f64320db7b (wc invocation): Update accordingly. 2000-08-11 09:10:22 +00:00
Jim Meyering
f253241fa6 *** empty log message *** 2000-08-08 10:53:28 +00:00
Jim Meyering
129ede91ad (movefile): Invoke xalloc_die instead of printing our own message. 2000-08-08 10:53:23 +00:00
Jim Meyering
c5e73d1f4a *** empty log message *** 2000-08-08 07:16:45 +00:00
Jim Meyering
543cd52e60 *** empty log message *** 2000-08-08 07:13:46 +00:00
Jim Meyering
a9a5efd77b (remove_cwd_entries, rm): Invoke xalloc_die instead of printing our own message. 2000-08-08 07:13:36 +00:00
Jim Meyering
b99ee65d9f (main): Invoke xalloc_die instead of printing our own message. 2000-08-08 07:12:24 +00:00
Jim Meyering
b2557211cb (do_link): Invoke xalloc_die instead of printing our own message. 2000-08-08 07:11:46 +00:00
Jim Meyering
6fa66b8414 (main): Invoke xalloc_die instead of printing our own message. 2000-08-08 07:11:30 +00:00
Jim Meyering
13587cf0ec (xstrndup): Invoke xalloc_die instead of printing our own message. 2000-08-08 07:11:12 +00:00
Jim Meyering
deffd164df *** empty log message *** 2000-08-08 07:10:22 +00:00
Jim Meyering
8b6882e5e9 (cut_fields): Invoke xalloc_die instead of printing our own message.
(cut_fields): Check for I/O error as well as end-of-file.
2000-08-08 07:09:31 +00:00
Jim Meyering
1899efe4f6 (copy_dir, copy_internal): Invoke xalloc_die instead of printing our own message. 2000-08-08 07:08:17 +00:00
Jim Meyering
8180fd9209 (main): Invoke xalloc_die instead of printing our own message. 2000-08-08 07:07:55 +00:00
Jim Meyering
d681dd7524 (quotearg_colon, xmalloc): "virtual memory exhausted" -> "memory exhausted" 2000-08-08 07:03:41 +00:00
Jim Meyering
c64d3aaf18 (usage, main): For cp -P messages, mention the new behavior as well as the old. 2000-08-08 06:55:47 +00:00
Jim Meyering
b6bacc5dcf Invoke xalloc_die instead of printing our own message. 2000-08-08 06:53:14 +00:00
Jim Meyering
3424a30611 *** empty log message *** 2000-08-07 17:07:19 +00:00
Jim Meyering
045b33aaef (xalloc_msg_memory_exhausted): Now char const[],
not char *const and pointing to a constant array.
(xrealloc): Comment fix.
2000-08-07 17:06:38 +00:00
Jim Meyering
1fdeee96e2 (print_and_abort): Use "memory exhausted", not "virtual memory exhausted". 2000-08-07 17:05:37 +00:00
Jim Meyering
8d381987d0 comment fix 2000-08-07 17:03:20 +00:00
Jim Meyering
1def0627b7 (xalloc_msg_memory_exhausted): Now char const[],
not char *const and pointing to a constant array.
2000-08-07 17:02:15 +00:00
Jim Meyering
cab29a570d (same_name): Invoke xalloc_die instead of printing our own message.
(parse_user_spec):
Don't translate a message until just before returning,
to avoid unnecessary translation.
2000-08-07 16:56:29 +00:00
Jim Meyering
02edb50e8f (same_name): Invoke xalloc_die instead of printing our own message. 2000-08-07 16:55:57 +00:00
Jim Meyering
3190f18d1c *** empty log message *** 2000-08-07 16:50:27 +00:00
Jim Meyering
d8f02c5c3a (xputenv): Invoke xalloc_die instead of printing our own message. 2000-08-07 16:50:11 +00:00
Jim Meyering
8f8f0254b2 *** empty log message *** 2000-08-07 15:51:08 +00:00
Jim Meyering
51b6b653a2 back out Copyright date changes for files with no changes year 2000-08-07 15:48:18 +00:00
Jim Meyering
90fb34362a *** empty log message *** 2000-08-07 13:27:40 +00:00
Jim Meyering
7299626404 *** empty log message *** 2000-08-07 13:27:33 +00:00
Jim Meyering
0ae67ef6a8 (head): Call write_header here.
(head_file): ... not here.
2000-08-07 13:27:24 +00:00
Jim Meyering
fd5da15041 (closeout_func): Remove variable.
(close_stdout_wrapper): Remove unused function.
(main): Remove assignment to closeout_func.
2000-08-07 13:23:44 +00:00
Jim Meyering
0981ef97c0 (fold_file): Remove ferror(stdout) check, already done in close_stdout. 2000-08-07 13:19:52 +00:00
Jim Meyering
eb6e8b63c6 *** empty log message *** 2000-08-07 08:57:11 +00:00
Jim Meyering
0ef1ebe00e (enum) [PARENTS_OPTION]: New member.
(long_opts): Update "parents" and deprecated "path" entries to use
`PARENTS_OPTION', not `P'.
(usage): Update --help output.
(main): Warn that the meaning of `-P' will soon change.
2000-08-07 08:55:50 +00:00
Jim Meyering
56752ea034 *** empty log message *** 2000-08-07 08:18:32 +00:00
Jim Meyering
568f9e0516 *** empty log message *** 2000-08-07 07:15:31 +00:00
Jim Meyering
497785afe5 (AC_MBSTATE_T): Define mbstate_t to be int,
not char, for compatibility with glibc 2.1.3 strftime.c.
2000-08-07 07:15:25 +00:00
Jim Meyering
43fde4395a (usage): Warn more succintly about the effects of
the locale on sort order.
2000-08-07 07:07:00 +00:00
Jim Meyering
aee6ce52e0 *** empty log message *** 2000-08-06 19:54:55 +00:00
Jim Meyering
a64e651230 . 2000-08-06 19:09:08 +00:00
Jim Meyering
4951b1a4b0 *** empty log message *** 2000-08-06 16:12:42 +00:00
Jim Meyering
3110281aad We know nbytes is 0, so remove it from bail-out test. 2000-08-06 15:08:29 +00:00
Jim Meyering
0d9ee9b50c *** empty log message *** 2000-08-06 09:06:22 +00:00
Jim Meyering
496964cdc3 *** empty log message *** 2000-08-06 09:06:00 +00:00
Jim Meyering
9048856887 *** empty log message *** 2000-08-06 09:03:33 +00:00
Jim Meyering
61b0870c41 (pipe_lines): Declare local `cp' to be const. 2000-08-06 09:03:29 +00:00
Jim Meyering
ae9ce08522 *** empty log message *** 2000-08-06 08:45:47 +00:00
Jim Meyering
95b686e751 (pipe_lines): Add variable `nbytes' so we can free
`tmp' immediately after read loop.  Don't process an empty file.
This fixes a buffer-underrun error -- also thanks to bounded pointers.
2000-08-06 08:44:11 +00:00
Jim Meyering
773a575cd5 (main): Rename local t' to tmp_dir' to avoid shadowing
a previous local by that name.
(usage): Warn that GNU sort is now locale-aware, and suggest
people put LC_ALL=POSIX in their environment.
2000-08-05 20:27:49 +00:00
Jim Meyering
8db7ef9e42 *** empty log message *** 2000-08-05 19:36:37 +00:00
Jim Meyering
6b95201b8d . 2000-08-05 19:36:20 +00:00
Jim Meyering
a8fd3f260a . 2000-08-05 19:35:59 +00:00
Jim Meyering
8b39b39763 *** empty log message *** 2000-08-05 19:31:58 +00:00
Jim Meyering
76211dbaeb . 2000-08-05 11:51:10 +00:00
Jim Meyering
1b57516fe2 *** empty log message *** 2000-08-05 11:50:43 +00:00
Jim Meyering
b3197453ad (init_header): Fix buffer-overrun error.
Allocated buffer was sometimes too small.
Reported by Greg McGary (who found this bug using his
bounded-pointers-enabled gcc).
(init_header): Move declarations of several variables into the
inner scope where they are used.
2000-08-05 10:56:12 +00:00
Jim Meyering
f79bc88685 . 2000-08-05 10:51:58 +00:00
Jim Meyering
81b2c3735e (narrow-1): New test, for the above. 2000-08-05 10:51:39 +00:00
Jim Meyering
e69797a267 *** empty log message *** 2000-08-05 08:34:36 +00:00
Jim Meyering
77a40f148f (MAX): Remove definition (It's in sys2.h). 2000-08-05 08:34:25 +00:00
Jim Meyering
26a7265907 *** empty log message *** 2000-08-04 10:18:09 +00:00
Jim Meyering
4e39b59aba *** empty log message *** 2000-08-04 10:13:36 +00:00
Jim Meyering
90d90ce434 (store_columns): Remove conjunct that would dereference
an out-of-bounds pointer.  Reported by Greg McGary (who found this
bug using his bounded-pointers-enabled gcc).
2000-08-04 10:13:30 +00:00
Jim Meyering
a5b5eb21f9 *** empty log message *** 2000-08-03 23:10:28 +00:00
Jim Meyering
641dabb657 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER,
ELSE_EXTEND_BUFFER_HIGH_BOUND): New macros.
(EXTEND_BUFFER): Use them.
2000-08-03 23:10:05 +00:00
Jim Meyering
0037a01cf8 . 2000-08-03 08:00:40 +00:00
Jim Meyering
c60c4a9fdc . 2000-08-03 08:00:00 +00:00
Jim Meyering
1d80882fc0 *** empty log message *** 2000-08-03 07:57:51 +00:00
Jim Meyering
f3e288c470 ($(srcdir)/$x-tests): Use -I$(srcdir), not `-I.'.
(Makefile.am): Likewise.  Reported by Greg McGary.
2000-08-03 07:57:46 +00:00
Jim Meyering
ac4300150a . 2000-08-01 07:52:37 +00:00
Jim Meyering
051a7c856a *** empty log message *** 2000-08-01 07:52:26 +00:00
Jim Meyering
449a130ddb ranges vs ebcdic 2000-08-01 07:39:56 +00:00
Jim Meyering
10798a81c4 *** empty log message *** 2000-08-01 07:11:04 +00:00
Jim Meyering
cf04cc6ec2 (tee): Use SET_BINARY and SET_BINARY2.
From Prashant TR.
2000-08-01 07:10:57 +00:00
Jim Meyering
fe15457dcd *** empty log message *** 2000-08-01 07:10:10 +00:00
Jim Meyering
a55a40b616 (ISSLASH): Define.
(BACKSLASH_IS_PATH_SEPARATOR): Define.
(dir_name) [BACKSLASH_IS_PATH_SEPARATOR]: Handle the case in which
both `\' and `/' may be use as path separators.
Based on a patch from Prashant TR.
2000-08-01 07:10:05 +00:00
Jim Meyering
d203fb94d2 *** empty log message *** 2000-07-31 18:30:27 +00:00
Jim Meyering
8baafe1f08 (quotearg_n_options): Don't make the initial
slot vector a constant, since it might get modified.
2000-07-31 18:30:21 +00:00
Jim Meyering
07e0171826 Tweak comments, per Bruno's comments. 2000-07-31 12:31:44 +00:00
Jim Meyering
d034a083ab Tweak comments, per Bruno's comments. 2000-07-31 12:30:24 +00:00
Jim Meyering
cbed17e88a *** empty log message *** 2000-07-31 07:48:05 +00:00
Jim Meyering
ef49ee4777 (quotearg_n_options): Preallocate a slot 0
buffer, so that the caller can always quote one small
component of a "memory exhausted" message in slot 0.
From a suggestion by Jim Meyering.
2000-07-31 07:23:01 +00:00
Jim Meyering
a2e30297d1 *** empty log message *** 2000-07-31 06:50:26 +00:00
Jim Meyering
56d6e5a38a (cut_fields): Use virtual memory exhausted', not Memory exhausted'. 2000-07-31 06:48:43 +00:00
Jim Meyering
4e02f20bd3 Use virtual memory exhausted', not Memory exhausted'. 2000-07-31 06:47:33 +00:00
Jim Meyering
216cc77784 *** empty log message *** 2000-07-31 06:46:33 +00:00
Jim Meyering
6fb996fcc5 [!HAVE_CONFIG_H]: Use virtual memory exhausted', not Memory exhausted'. 2000-07-31 06:46:21 +00:00
Jim Meyering
5a95ad0a73 Use virtual memory exhausted', not Memory exhausted'. 2000-07-31 06:44:51 +00:00
Jim Meyering
5dcaccf5be *** empty log message *** 2000-07-30 20:25:31 +00:00
Jim Meyering
beb983dd07 *** empty log message *** 2000-07-30 19:51:03 +00:00
Jim Meyering
e0be88dd59 (ISPRINT): Undef before defining to avoid warning. 2000-07-30 19:50:58 +00:00
Jim Meyering
456a1ea3ea *** empty log message *** 2000-07-30 18:44:58 +00:00
Jim Meyering
c8a15b9edb Add quote marks to match new behavior. 2000-07-30 18:44:43 +00:00
Jim Meyering
0e1dfa9b8b (remove_file): Quote the file names that are displayed with --verbose. 2000-07-30 18:42:07 +00:00
Jim Meyering
7b79dfe695 (copy_internal): Quote the file names that are displayed
with --verbose and --backup.
2000-07-30 18:41:55 +00:00
Jim Meyering
a53a181821 *** empty log message *** 2000-07-30 17:08:10 +00:00
Jim Meyering
614cf2b06b Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
2000-07-30 17:08:05 +00:00
Jim Meyering
a73455fc19 *** empty log message *** 2000-07-30 17:06:49 +00:00
Jim Meyering
87ad4e1dbb . 2000-07-30 16:51:16 +00:00
Jim Meyering
56836dca33 . 2000-07-30 16:50:16 +00:00
Jim Meyering
3048ed8790 . 2000-07-30 16:49:47 +00:00
Jim Meyering
a0947ac542 *** empty log message *** 2000-07-30 16:45:35 +00:00
Jim Meyering
a313a8b995 *** empty log message *** 2000-07-30 16:34:56 +00:00
Jim Meyering
c2c1f42b0b Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
2000-07-30 16:34:48 +00:00
Jim Meyering
381ba4a26a Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
2000-07-30 16:33:08 +00:00
Jim Meyering
8330089910 *** empty log message *** 2000-07-30 16:30:59 +00:00
Jim Meyering
ff6161442d Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
2000-07-30 16:30:43 +00:00
Jim Meyering
7373e3149d Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
2000-07-30 16:29:15 +00:00
Jim Meyering
608cabf1d4 *** empty log message *** 2000-07-30 16:28:30 +00:00
Jim Meyering
76bc5dc396 Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
2000-07-30 16:28:25 +00:00
Jim Meyering
fb61cfca00 Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
2000-07-30 16:26:43 +00:00
Jim Meyering
1f9d1ea959 *** empty log message *** 2000-07-30 16:25:01 +00:00
Jim Meyering
eb128f8a49 (make_path): Quote the other instance, too. 2000-07-30 16:24:51 +00:00
Jim Meyering
395e6c592a include quote.h. 2000-07-30 16:21:57 +00:00
Jim Meyering
4d617153d5 Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
2000-07-30 16:21:39 +00:00
Jim Meyering
222f736378 Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
2000-07-30 16:19:33 +00:00
Jim Meyering
b53d6da640 Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
Add more precise diagnostics.
2000-07-30 16:16:16 +00:00
Jim Meyering
d4365673c5 (remove_cwd_entries): Quote one more file name. 2000-07-30 16:03:37 +00:00
Jim Meyering
493d6182eb tweak diagnostic 2000-07-30 16:01:48 +00:00
Jim Meyering
6986c2b9ad *** empty log message *** 2000-07-30 15:32:15 +00:00
Jim Meyering
e15422c3d3 *** empty log message *** 2000-07-30 15:31:20 +00:00
Jim Meyering
ec739a978b *** empty log message *** 2000-07-30 15:29:27 +00:00
Jim Meyering
b9e891771e *** empty log message *** 2000-07-30 15:28:36 +00:00
Jim Meyering
3b18fcfb6a *** empty log message *** 2000-07-30 15:24:27 +00:00
Jim Meyering
ae3ec5f069 *** empty log message *** 2000-07-30 15:23:55 +00:00
Jim Meyering
02b4fede5b moved from ../src 2000-07-30 15:17:34 +00:00
Jim Meyering
74fe479350 (do_move): Fix typo. 2000-07-30 15:01:11 +00:00
Jim Meyering
048017b39c (dir_name): Use __MSDOS__ in favor of MSDOS. 2000-07-29 17:11:33 +00:00
Jim Meyering
734d411884 *** empty log message *** 2000-07-29 17:06:53 +00:00
Jim Meyering
4524bbcaf8 (diacrit_diac): Use __MSDOS__ in favor of MSDOS. 2000-07-29 17:06:00 +00:00
Jim Meyering
70c58e8192 (base_name): Use ISSLASH rather than comparing against `/'. 2000-07-29 16:45:30 +00:00
Jim Meyering
ce49687fac fix spelling error in comment: s/squirelled/squirreled/. 2000-07-29 14:55:51 +00:00
Jim Meyering
7ddc6c5927 *** empty log message *** 2000-07-29 08:15:37 +00:00
Jim Meyering
043c4958de remove prematurely-added ISSLASH definition 2000-07-29 08:15:01 +00:00
Jim Meyering
3819c2d7cb (dir_name): Assert that there are no trailing slashes. 2000-07-29 08:10:46 +00:00
Jim Meyering
ba8620bf01 *** empty log message *** 2000-07-29 08:00:17 +00:00
Jim Meyering
e32586114e (dir_name) [MSDOS]: Declare `lim' to be const. 2000-07-29 08:00:11 +00:00
Jim Meyering
7102df4dd3 *** empty log message *** 2000-07-29 06:17:27 +00:00
Jim Meyering
586254e713 Include <limits.h>, <stdlib.h>, <wchar.h>, <wctype.h>.
(quote_name): Use mbrtowc to step through the filename string while
replacing nonprintables with question marks. Return the screen width,
not the strlen length. Do no output if the out stream is NULL.
(length_of_file_name_and_frills): Use the quote_name return value.
2000-07-29 06:17:02 +00:00
Jim Meyering
cbcd5929c1 *** empty log message *** 2000-07-29 06:09:43 +00:00
Jim Meyering
e6db9876a0 tweak comments 2000-07-29 06:09:22 +00:00
Jim Meyering
f247c7bd44 (mbswidth): Add a flags argument.
(mbswidth): New declaration.
(MBSW_ACCEPT_INVALID, MBSW_ACCEPT_UNPRINTABLE): New macros.
2000-07-29 06:02:28 +00:00
Jim Meyering
e7a7601ef4 . 2000-07-29 05:47:42 +00:00
Jim Meyering
3330c7dab7 *** empty log message *** 2000-07-29 05:42:14 +00:00
Jim Meyering
d0f57e1004 (temp_dir): Remove.
(temp_dirs, temp_dir_count, temp_dir_alloc): New vars.
(process_id): New var.
(usage): Describe new use of -T.
(add_temp_dir): New function.
(tempname): Use new temp_dirs array.
Do not discard information from the process-id or sequence
number, unless we have short file names.
(sighandle): Use process_id instead of getpid.
(main): Initialize process_id.
Add support for the new use of -T.
2000-07-29 05:41:55 +00:00
Jim Meyering
9b14de28be sort's -T option can now appear multiple times. 2000-07-29 05:31:44 +00:00
Jim Meyering
9133ae8f15 *** empty log message *** 2000-07-29 05:25:34 +00:00
Jim Meyering
d86f9d40a5 (change_file_owner): Save errno from a possibly failed chown,
and use that later.  Otherwise, errno itself could be clobbered before used.
2000-07-25 22:23:05 +00:00
Jim Meyering
ebd74667bc (change_file_mode): Save errno from a possibly failed chown,
and use that later.  Otherwise, errno itself could be clobbered before used.
2000-07-25 22:22:52 +00:00
Jim Meyering
d3938d3118 (change_file_group): Save errno from a possibly failed chown,
and use that later.  Otherwise, errno itself could be clobbered before used.
2000-07-25 22:22:29 +00:00
Jim Meyering
c0186d3cbb Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
Add more precise diagnostics.
2000-07-25 13:06:31 +00:00
Jim Meyering
289dacfa49 tweak diagnostic 2000-07-25 12:28:33 +00:00
Jim Meyering
1bfc7036c0 *** empty log message *** 2000-07-25 12:27:01 +00:00
Jim Meyering
cb1df652a7 Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
Add more precise diagnostics.
2000-07-25 12:26:52 +00:00
Jim Meyering
135a310ca1 Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
2000-07-25 12:18:06 +00:00
Jim Meyering
01bd168259 (main): Remove unnecessary "%s" argument. 2000-07-25 12:16:16 +00:00
Jim Meyering
50631d7b81 *** empty log message *** 2000-07-24 16:30:03 +00:00
Jim Meyering
18051fbbb3 (mbswidth): Add a flags argument.
(mbsnwidth): New function.
2000-07-24 16:29:57 +00:00
Jim Meyering
ddc825a0f0 Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
Add more precise diagnostics.
2000-07-24 09:32:07 +00:00
Jim Meyering
2071a4054e *** empty log message *** 2000-07-24 06:42:26 +00:00
Jim Meyering
80dbd557de (jm_PREREQ_MBSWIDTH): Check for wcwidth declaration. 2000-07-24 06:42:17 +00:00
Jim Meyering
b083f93482 *** empty log message *** 2000-07-24 06:42:04 +00:00
Jim Meyering
66a0218c1a (_XOPEN_SOURCE): Don't define; this causes problems on Solaris 7.
(wcwidth) [!HAVE_DECL_WCWIDTH]: Declare.
2000-07-24 06:41:58 +00:00
Jim Meyering
50c130325e *** empty log message *** 2000-07-24 06:14:32 +00:00
Jim Meyering
1978f56515 Include <wchar.h> even if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX),
so that mbstate_t is always defined.

Do not inspect MB_LEN_MAX, since it's incorrectly defined to
be 1 in at least one GCC installation, and this configuration
error is likely to be common.  Ignoring MB_LEN_MAX hurts
performance on hosts that have mbrtowc but have only unibyte
locales, but I assume these hosts are rare.
2000-07-24 06:14:19 +00:00
Jim Meyering
d53f7b9a5d *** empty log message *** 2000-07-23 21:48:28 +00:00
Jim Meyering
d565aeb336 Streamline by invoking multibyte code only if needed.
<wchar.h>: Include only if HAVE_MBRTOWC && 1 < MB_LEN_MAX.
(MB_CUR_MAX): Redefine to 1 if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX).
(quotearg_buffer_restyled): If a unibyte locale, don't bother to
invoke multibyte primitives.
2000-07-23 21:48:17 +00:00
Jim Meyering
5294c10e84 *** empty log message *** 2000-07-23 21:06:22 +00:00
Jim Meyering
64eece7c53 fix typos (missing commas) 2000-07-23 18:44:35 +00:00
Jim Meyering
894d51af47 *** empty log message *** 2000-07-23 18:29:44 +00:00
Jim Meyering
6407eda7df *** empty log message *** 2000-07-23 16:27:38 +00:00
Jim Meyering
e67940b416 Include <sys/param.h> if HAVE_SYS_PARAM_H is defined,
rather than if _POSIX_VERSION is defined.  Remove declarations of
getpwuid, getgrgid, and getuid, now that they're in sys2.h.
2000-07-23 16:27:13 +00:00
Jim Meyering
57a16fe8c1 . 2000-07-23 15:36:43 +00:00
Jim Meyering
62ab4baa06 (main): Give a better diagnostic for e.g.,
`dd if=/dev/fd0 seek=100000000000'.
Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
Add many, more precise diagnostics.
2000-07-23 15:36:34 +00:00
Jim Meyering
00652253f7 *** empty log message *** 2000-07-23 15:28:29 +00:00
Jim Meyering
6a3f36dacb [!HAVE_DECL_GETPWUID]: Declare getpwuid.
[!HAVE_DECL_GETGRGID]: Declare getgrgid.
[!HAVE_DECL_GETUID]: Declare getuid.
2000-07-23 15:28:24 +00:00
Jim Meyering
dafbd8d26d *** empty log message *** 2000-07-23 15:27:19 +00:00
Jim Meyering
0c96a22ac7 (jm_CHECK_DECLS): Check for declarations of these, too:
getgrgid, getpwuid, getuid.
2000-07-23 15:27:11 +00:00
Jim Meyering
3091cce80a *** empty log message *** 2000-07-23 13:58:48 +00:00
Jim Meyering
a83726fb4e *** empty log message *** 2000-07-23 11:07:09 +00:00
Jim Meyering
2bfbe02e2f Rename tests (and hence files) to have a short
enough prefix so that they're not truncated on 8+3 file systems.
Reported by Eli Zaretskii.
2000-07-23 11:07:05 +00:00
Jim Meyering
92d2c54ae9 *** empty log message *** 2000-07-23 11:01:19 +00:00
Jim Meyering
ff8e66a907 . 2000-07-23 10:59:53 +00:00
Jim Meyering
ecf44d1a0e *** empty log message *** 2000-07-23 10:58:52 +00:00
Jim Meyering
9993d4141c Fix cp so that `cp -r DIR1/ DIR2' works once again.
(ASSIGN_BASENAME_STRDUPA): New macro.
(do_copy): Use it here (so we always strip trailing slashes before
calling base_name).
2000-07-23 10:54:01 +00:00
Jim Meyering
e66e1f94bb (ASSIGN_STRDUPA): Remove macro definition. 2000-07-23 10:52:05 +00:00
Jim Meyering
418ae892b1 (ASSIGN_STRDUPA): New macro (moved here from remove.c). 2000-07-23 10:49:59 +00:00
Jim Meyering
2eb0dc10c3 *** empty log message *** 2000-07-23 09:25:19 +00:00
Jim Meyering
2546495dab (base_name): Add an assertion. 2000-07-23 09:25:14 +00:00
Jim Meyering
dbca6b183b *** empty log message *** 2000-07-23 09:02:29 +00:00
Jim Meyering
6d26d7c908 *** empty log message *** 2000-07-23 09:00:22 +00:00
Jim Meyering
8038df09a5 (TESTS): Add dir-slash. 2000-07-23 09:00:17 +00:00
Jim Meyering
b03e65037c *** empty log message *** 2000-07-23 08:38:30 +00:00
Jim Meyering
e62f7a5962 When the system forces us to redefine mbstate_t, shadow its mbsinit function. 2000-07-23 08:38:25 +00:00
Jim Meyering
a121532512 *** empty log message *** 2000-07-19 21:01:16 +00:00
Jim Meyering
fde07e7f99 (batch_convert): Free `initial_TZ' only if it was set. 2000-07-19 21:00:20 +00:00
Jim Meyering
6fcabe7b2b *** empty log message *** 2000-07-19 21:00:03 +00:00
Jim Meyering
271249026d . 2000-07-17 20:48:36 +00:00
Jim Meyering
24d24529f4 *** empty log message *** 2000-07-17 20:48:00 +00:00
Jim Meyering
c950ce2982 (WGET): Define.
(ftp-gnu): Define.
(wget-update): New rule, based on the one in autoconf.
2000-07-17 20:47:53 +00:00
Jim Meyering
fd2d83d617 . 2000-07-17 20:46:35 +00:00
Jim Meyering
46fb83f548 *** empty log message *** 2000-07-17 20:45:03 +00:00
Jim Meyering
a9027c8afd (libfetish_a_SOURCES): Add mbswidth.c.
(noinst_HEADERS): Add mbswidth.h.
2000-07-17 20:45:00 +00:00
Jim Meyering
d1316a4669 *** empty log message *** 2000-07-17 20:43:18 +00:00
Jim Meyering
c00612504b from Bruno Haible. 2000-07-17 20:42:46 +00:00
Jim Meyering
d0192db8ac from Bruno Haible. 2000-07-17 20:42:12 +00:00
Jim Meyering
365bcc959c *** empty log message *** 2000-07-17 20:41:10 +00:00
Jim Meyering
8ec106f6b1 (jm_PREREQ): Call jm_PREREQ_MBSWIDTH. 2000-07-17 20:40:39 +00:00
Jim Meyering
ef93322b25 *** empty log message *** 2000-07-17 20:40:18 +00:00
Jim Meyering
27e5b4d0c3 *** empty log message *** 2000-07-17 20:07:49 +00:00
Jim Meyering
5c05881f32 (visible): Don't mark `<undef>' for translation.
The standard requires that exact string.
2000-07-17 20:07:33 +00:00
Jim Meyering
5829e323e8 *** empty log message *** 2000-07-17 20:05:40 +00:00
Jim Meyering
0a3e5544ba Add support for FreeBSD. Improve support for HP-UX and IRIX 6. 2000-07-17 20:05:30 +00:00
Jim Meyering
9ef04e4fa6 . 2000-07-17 19:43:38 +00:00
Jim Meyering
e26b531e3b *** empty log message *** 2000-07-17 19:43:14 +00:00
Jim Meyering
6859252584 (usage): Give a little more info.
Remove FIXME comment.
2000-07-17 19:43:05 +00:00
Jim Meyering
870d8663fb Avoid warnings.
(struct bin_str): Declare `string' member to be `const'.
(put_indicator): Declare local `p' to be `const'.
2000-07-17 08:17:12 +00:00
Jim Meyering
f4758f2165 *** empty log message *** 2000-07-15 13:32:16 +00:00
Jim Meyering
b905d7f0b5 Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
Improve a couple diagnostics.
2000-07-15 13:32:02 +00:00
Jim Meyering
015bcbb713 . 2000-07-15 13:29:01 +00:00
Jim Meyering
a23c477555 *** empty log message *** 2000-07-15 13:27:37 +00:00
Jim Meyering
da8dd781de Include quote.h.
(make_path): Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
Give better diagnostics.
2000-07-15 13:27:30 +00:00
Jim Meyering
f6cb183112 Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call -- if there's only one.
If there are more than one, then use `quote_n (0, ...),
quote_n (1, ...), ...'.
2000-07-15 10:35:27 +00:00
Jim Meyering
f78d8fcd66 Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call -- if there's only one.
If there are more than one, then use `quote_n (0, ...),
quote_n (1, ...), ...'.
2000-07-15 10:11:47 +00:00
Jim Meyering
7f8c02a4fb Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call -- if there's only one.
If there are more than one, then use `quote_n (0, ...),
quote_n (1, ...), ...'.
2000-07-15 10:11:18 +00:00
Jim Meyering
2b4d177553 *** empty log message *** 2000-07-15 09:58:14 +00:00
Jim Meyering
3e41cabaf2 (libfetish_a_SOURCES): Add quote.c.
(noinst_HEADERS): Add quote.h.
2000-07-15 09:58:10 +00:00
Jim Meyering
48c6c83ef6 *** empty log message *** 2000-07-15 09:57:38 +00:00
Jim Meyering
4ee7d58704 (quote, quote_n): New file. Two functions taken verbatim
from tar's src/misc.c.
2000-07-15 09:57:19 +00:00
Jim Meyering
a956a46792 *** empty log message *** 2000-07-14 21:18:00 +00:00
Jim Meyering
eb25458cd8 (jm_AC_PREREQ_XSTRTOUMAX): Require jm_AC_TYPE_UINTMAX_T. 2000-07-14 21:17:51 +00:00
Jim Meyering
b9e495aafb . 2000-07-14 19:35:13 +00:00
Jim Meyering
84817c5f8c *** empty log message *** 2000-07-14 15:58:39 +00:00
Jim Meyering
1d97735304 (jm_PREREQ_QUOTEARG): s/AC_MBSTATE_T_OBJECT/AC_MBSTATE_T/. 2000-07-14 15:58:34 +00:00
Jim Meyering
a8d048fb4d *** empty log message *** 2000-07-14 15:57:09 +00:00
Jim Meyering
f53d3a9d28 (AC_MBSTATE_T): Renamed from AC_MBSTATE_T_OBJECT. All uses changed.
Change from a two-part test, which defines both HAVE_MBSTATE_T_OBJECT
and mbstate_t, to a single-part test that simply defines mbstate_t.
2000-07-14 15:56:42 +00:00
Jim Meyering
269ecb09d9 *** empty log message *** 2000-07-14 15:55:13 +00:00
Jim Meyering
e4dac83b0d (mbrtowc): Do not use HAVE_WCHAR_H in the definition.
Use defined mbstate_t, not HAVE_MBSTATE_T_OBJECT,
to decide whether to define the BeOS workaround macro;
this adjusts to the change to AC_MBSTATE_T.
2000-07-14 13:56:07 +00:00
Jim Meyering
288db81c18 *** empty log message *** 2000-07-14 11:32:47 +00:00
Jim Meyering
19920cfb66 *** empty log message *** 2000-07-14 11:27:06 +00:00
Jim Meyering
5ba7e086e5 (enum quoting style): New enum clocale_quoting_style. 2000-07-14 11:27:00 +00:00
Jim Meyering
83fdbce6a7 (quoting_style_args, quoting_style_vals,
quotearg_buffer_restyled): Add support for
clocale_quoting_style.  Undo previous change to
locale_quoting_style behavior, and undo the "{LEFT QUOTATION MARK}"
and "{RIGHT QUOTATION MARK}" msgids.
2000-07-14 11:26:28 +00:00
Jim Meyering
109fa3946b *** empty log message *** 2000-07-14 11:23:29 +00:00
Jim Meyering
bfc1dacca8 import 1.022 2000-07-11 22:44:26 +00:00
Jim Meyering
b64a0a7a90 from FSF 2000-07-10 14:54:02 +00:00
Jim Meyering
9d9677bd51 Tweak a comment to make it less negative about BeOS.
From Bruno Haible.
2000-07-10 11:41:50 +00:00
Jim Meyering
144d72edd4 *** empty log message *** 2000-07-10 11:30:54 +00:00
Jim Meyering
3bcb0b1bc2 Mirror the correction made in autoconf. 2000-07-10 11:30:50 +00:00
Jim Meyering
0f061bcb2d *** empty log message *** 2000-07-10 08:26:51 +00:00
Jim Meyering
bbb585d782 Output to confdefs.h directly. 2000-07-10 08:26:36 +00:00
Jim Meyering
a3f96e6b80 *** empty log message *** 2000-07-09 20:14:33 +00:00
Jim Meyering
2bf26f848f . 2000-07-09 17:53:14 +00:00
Jim Meyering
173953c503 *** empty log message *** 2000-07-09 17:49:50 +00:00
Jim Meyering
0efaa6792a *** empty log message *** 2000-07-09 17:46:16 +00:00
Jim Meyering
d2269d5c1b (jm_MACROS): Add a test to see if -lm is required
to link seq.  If so, set SEQ_LIBM to -lm.  From Bruno Haible.
2000-07-09 17:46:11 +00:00
Jim Meyering
0fe0294290 . 2000-07-09 17:25:35 +00:00
Jim Meyering
13b24a32fa *** empty log message *** 2000-07-09 17:25:03 +00:00
Jim Meyering
a27a4be2d0 (AC__GNU_SOURCE): New file/macro. 2000-07-09 17:24:41 +00:00
Jim Meyering
07cdecb35d (jm_CHECK_ALL_TYPES): Require it. 2000-07-09 17:24:27 +00:00
Jim Meyering
a6ecdec89c *** empty log message *** 2000-07-09 15:48:11 +00:00
Jim Meyering
96b16428cc The old behavior of quoting `like this' doesn't look good with
newer, ISO-style fonts.  See:
http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html

Instead, quote "like this" by default.  Let the translator
tailor the locale-specific quoting behavior by providing
translations for {LEFT QUOTATION MARK} and {RIGHT QUOTATION MARK}.

(N_): New macro.
(gettext_default): New function.
(quotearg_buffer_restyled): Use
gettext_default ("{LEFT QUOTATION MARK}", "\"") for left quote, and
gettext_default ("{RIGHT QUOTATION MARK}", "\"") for right quote.
2000-07-09 15:46:46 +00:00
Jim Meyering
f5211a209e . 2000-07-09 15:32:47 +00:00
Jim Meyering
17afffee22 *** empty log message *** 2000-07-09 07:26:44 +00:00
Jim Meyering
50751a7eff (ENAMETOOLONG): Define to an unlikely value if not defined.
(xgethostname): Remove now-unnecessary #ifdef.
Move declaration of `err' into loop where it's used.
2000-07-09 07:26:34 +00:00
Jim Meyering
7a993dd16b update copyright date 2000-07-09 07:24:51 +00:00
Jim Meyering
42d1574ad8 *** empty log message *** 2000-07-09 07:23:19 +00:00
Jim Meyering
fde850f7ad update copyright date 2000-07-09 07:22:43 +00:00
Jim Meyering
23c792f18c update copyright date 2000-07-09 07:14:42 +00:00
Jim Meyering
6d16d92a02 update copyright date 2000-07-09 07:11:28 +00:00
Jim Meyering
3f94561e84 (xgethostname): Protect against the SunOS5.5 bug
by allocating a larger buffer. Test the gethostname return value for
being >= 0, not == 0, for BeOS.  Don't exhaust memory if gethostname
returns an error and ENAMETOOLONG isn't defined.
2000-07-08 21:48:07 +00:00
Jim Meyering
c85595bddf *** empty log message *** 2000-07-06 14:41:14 +00:00
Jim Meyering
d3afffe835 *** empty log message *** 2000-07-06 05:32:12 +00:00
Jim Meyering
8fd16e77e5 *** empty log message *** 2000-07-06 05:22:57 +00:00
Jim Meyering
2cab6f81a0 Include <ctype.h> for use of isalpha. 2000-07-06 05:22:55 +00:00
Jim Meyering
3a2ee9a318 *** empty log message *** 2000-07-06 05:20:18 +00:00
Jim Meyering
d148eef81d (AC_FUNC_STRERROR_R): Pass a reasonably large buffer to strerror_r. 2000-07-06 05:20:15 +00:00
Jim Meyering
082c0a9e23 . 2000-07-06 04:48:11 +00:00
Jim Meyering
24e6e33409 (mbrtowc): Declare returned type, since BeOS doesn't. 2000-07-06 04:47:28 +00:00
Jim Meyering
47566a14a9 *** empty log message *** 2000-07-06 04:46:57 +00:00
Jim Meyering
4f23c0f185 (AC_MBSTATE_T_OBJECT): Test for mbstate_t
only if the test for an object-type mbstate_t fails.  This
prevents us from mistakenly reporting that mbstate_t is a
system object type after we "#define mbstate_t int" to work
around its lack.
2000-07-06 04:46:48 +00:00
Jim Meyering
79ab392196 *** empty log message *** 2000-07-06 04:32:11 +00:00
Jim Meyering
98b348bce8 (struct quoting_options): Simplify quote_these_too dimension. 2000-07-06 04:31:59 +00:00
Jim Meyering
78c7d32c2e . 2000-07-04 20:32:51 +00:00
Jim Meyering
a8494c44a3 *** empty log message *** 2000-07-04 17:37:47 +00:00
Jim Meyering
1954ebfb93 [!HAVE_DECL_STRNLEN]: Declare strnlen. 2000-07-04 17:37:43 +00:00
Jim Meyering
1f05833062 . 2000-07-04 17:35:01 +00:00
Jim Meyering
60b5579ba9 *** empty log message *** 2000-07-04 17:32:00 +00:00
Jim Meyering
3b26158445 Make inclusion of <wchar.h> independent of whether
HAVE_MBRTOWC is set.  Required at least for irix-5.6, which lacks mbrtowc.
2000-07-04 17:31:56 +00:00
Jim Meyering
a9f8981529 *** empty log message *** 2000-07-04 17:19:27 +00:00
Jim Meyering
f03b81fd6f *** empty log message *** 2000-07-04 17:17:30 +00:00
Jim Meyering
02ac23c3e2 (jm_FILE_SYSTEM_USAGE): Use plain old `echo' instead of deprecated AC_CHECKING. 2000-07-04 17:15:45 +00:00
Jim Meyering
673a575a22 *** empty log message *** 2000-07-04 13:07:25 +00:00
Jim Meyering
4bdbf25dee (test_vector): Disable test #2 for all systems,
even though it fails only on SunOS4.
2000-07-04 13:07:21 +00:00
Jim Meyering
030c059d49 (AC_CHECK_DECLS): Add strnlen. 2000-07-04 09:03:26 +00:00
Jim Meyering
286c731efc *** empty log message *** 2000-07-04 09:03:09 +00:00
Jim Meyering
98a94bfb23 *** empty log message *** 2000-07-04 08:44:35 +00:00
Jim Meyering
1358f7c4a8 [HAVE_UTMPX_H]: Include <utmp.h> if HAVE_UTMP_H.
This is necessary to get a definition of e.g., UTMP_FILE on HP-UX 10.20.
From Bob Proulx.
2000-07-04 08:44:28 +00:00
Jim Meyering
93262c2f7f *** empty log message *** 2000-07-04 07:11:55 +00:00
Jim Meyering
5ba976c1b1 (AC_MBSTATE_T_OBJECT): Port to autoconf 2.13.
Add AC_CHECK_HEADERS(stdlib.h), since we use HAVE_STDLIB_H.
2000-07-04 07:11:28 +00:00
Jim Meyering
266adb5302 *** empty log message *** 2000-07-04 07:03:26 +00:00
Jim Meyering
5a6fe4fd57 (mbrtowc): Assign to *pwc, and return 1 only if result is nonzero.
(iswprint): Use ISPRINT when substituting our own mbrtowc.
2000-07-04 07:03:16 +00:00
Jim Meyering
8d765a5946 . 2000-07-02 20:25:43 +00:00
Jim Meyering
b2a05e768c . 2000-07-02 20:21:44 +00:00
Jim Meyering
1eefb25591 Also define mbstate_t, if necessary. 2000-07-02 20:21:30 +00:00
Jim Meyering
b6ceaf9df1 (mbstate_t): Don't define here. 2000-07-02 18:32:05 +00:00
Jim Meyering
c6d5d9624c *** empty log message *** 2000-07-02 18:23:56 +00:00
Jim Meyering
e1919145a5 (SIGCONT): Define if not already defined. 2000-07-02 18:23:51 +00:00
Jim Meyering
591e461818 *** empty log message *** 2000-07-02 16:05:29 +00:00
Jim Meyering
f0b701359a *** empty log message *** 2000-07-02 15:43:22 +00:00
Jim Meyering
767804657c *** empty log message *** 2000-07-02 15:27:08 +00:00
Jim Meyering
f6b360c61f fix typo in last change 2000-07-02 15:14:04 +00:00
Jim Meyering
9cb651e6a5 *** empty log message *** 2000-07-02 12:59:32 +00:00
Jim Meyering
a8a5b983f1 Replace each use of AC_SUBST(LIBOBJS)/LIBOBJS=... with AC_LIBOBJ([function_name]). 2000-07-02 12:58:27 +00:00
Jim Meyering
5d6bc792ac *** empty log message *** 2000-07-02 11:58:18 +00:00
Jim Meyering
b08f9caae1 *** empty log message *** 2000-07-02 11:57:40 +00:00
Jim Meyering
c3259fabe2 *** empty log message *** 2000-07-02 11:49:20 +00:00
Jim Meyering
a3ff3953fc remove extra space 2000-07-01 16:45:31 +00:00
Jim Meyering
1fe03869c8 *** empty log message *** 2000-07-01 15:41:06 +00:00
Jim Meyering
1237bc6c72 Change type of global, field_1_bufsize, from int to size_t. 2000-07-01 15:41:01 +00:00
Jim Meyering
51155d32a3 *** empty log message *** 2000-07-01 15:36:44 +00:00
Jim Meyering
7dbb61f30e *** empty log message *** 2000-07-01 14:06:55 +00:00
Jim Meyering
73202c14e6 . 2000-07-01 14:03:02 +00:00
Jim Meyering
a784ac670f . 2000-07-01 13:58:19 +00:00
Jim Meyering
1002386cc5 *** empty log message *** 2000-07-01 13:43:51 +00:00
Jim Meyering
9657d66244 Remove a `FIXME' comment and fix the associated problem. 2000-07-01 13:43:46 +00:00
Jim Meyering
9a4135570b . 2000-07-01 13:35:52 +00:00
Jim Meyering
7d25895457 *** empty log message *** 2000-07-01 13:35:33 +00:00
Jim Meyering
1ce3f3cca5 Use MOUNTED_FS_STAT_DEV instead of MOUNTED_NEXT_DEV,
per change in ../m4/ls-mntd-fs.m4.
(read_filesystem_list): Ignore symbolic links.
2000-07-01 13:35:28 +00:00
Jim Meyering
879717eafa (jm_LIST_MOUNTED_FILESYSTEMS): Rename BeOS specific
macro from MOUNTED_NEXT_DEV to MOUNTED_FS_STAT_DEV.
2000-07-01 13:31:20 +00:00
Jim Meyering
f00cefa62b *** empty log message *** 2000-07-01 11:01:18 +00:00
Jim Meyering
13133639a4 (TESTS_ENVIRONMENT): Define host_triplet for use in the dangling-symlink test. 2000-07-01 11:01:14 +00:00
Jim Meyering
994724bf67 *** empty log message *** 2000-07-01 11:00:10 +00:00
Jim Meyering
95e3f911e2 Warn about the problem, rather
than failing on some very recent (at least 2.3.99) versions of
the Linux kernel.  Suggestion from Ulrich Drepper.
2000-07-01 10:59:56 +00:00
Jim Meyering
f59a68b49a *** empty log message *** 2000-07-01 09:09:37 +00:00
Jim Meyering
f6d2d9b74c *** empty log message *** 2000-07-01 09:05:13 +00:00
Jim Meyering
c52dea43b7 Put double quotes around use of $cross_compiling. 2000-07-01 09:04:56 +00:00
Jim Meyering
1e4dca2dd1 . 2000-07-01 07:13:53 +00:00
Jim Meyering
7a17620c53 *** empty log message *** 2000-06-30 13:25:12 +00:00
Jim Meyering
1ba4b1a996 *** empty log message *** 2000-06-30 13:25:04 +00:00
Jim Meyering
60cea0e8fe *** empty log message *** 2000-06-29 11:30:16 +00:00
Jim Meyering
d1e34222a8 Include <string.h> or <strings.h>, as appropriate, for declaration of strcmp. 2000-06-29 11:29:55 +00:00
Jim Meyering
13f4d23214 *** empty log message *** 2000-06-29 11:24:14 +00:00
Jim Meyering
2aab0b6a6c Include <stdlib.h>, for declaration of exit. 2000-06-29 11:24:09 +00:00
Jim Meyering
d0ffb1b198 *** empty log message *** 2000-06-29 11:16:29 +00:00
Jim Meyering
81d46d192a (find_bracketed_repeat): Add a cast to suppress a warning. 2000-06-29 11:15:52 +00:00
Jim Meyering
4c27ffdf05 *** empty log message *** 2000-06-29 10:39:57 +00:00
Jim Meyering
86956748b1 (enum): Remove comma from end of enumerator list.
From Gerhard Poul <gpoul@gnu.org
2000-06-29 10:39:41 +00:00
Jim Meyering
ded114511b *** empty log message *** 2000-06-29 10:39:00 +00:00
Jim Meyering
13225e0c76 *** empty log message *** 2000-06-29 08:37:00 +00:00
Jim Meyering
a1fd5e91ff (fsp_to_string) [HAVE_F_FSTYPENAME_IN_STATFS]:
Avoid warning by casting result to `char *' to remove `const'.
2000-06-29 08:30:03 +00:00
Jim Meyering
69b3d52b2a *** empty log message *** 2000-06-28 20:30:59 +00:00
Jim Meyering
27a839a3fa Use stdlib.h, not stdio.h. The latter is not included
by quotearg.c, for which we perform this test.  From Bruno Haible.
2000-06-28 20:29:27 +00:00
Jim Meyering
54b2c4933f *** empty log message *** 2000-06-28 14:06:34 +00:00
Jim Meyering
c93836544c Don't copy `out' into /tmp. 2000-06-28 14:06:30 +00:00
Jim Meyering
457fcbb2ca . 2000-06-27 13:23:13 +00:00
Jim Meyering
0865bd05b4 *** empty log message *** 2000-06-27 13:13:13 +00:00
Jim Meyering
b1b5fb67fc (count_entry): Don't set errno before
invoking savedir, and assume that errno is nonzero if savedir fails.
2000-06-27 13:12:12 +00:00
Jim Meyering
7e2d22e2a6 (copy_dir): Don't set errno before
invoking savedir, and assume that errno is nonzero if savedir fails.
2000-06-27 13:11:36 +00:00
Jim Meyering
e068bafb72 *** empty log message *** 2000-06-27 13:11:00 +00:00
Jim Meyering
53ec884edb (change_dir_mode): Don't set errno before
invoking savedir, and assume that errno is nonzero if savedir fails.
2000-06-27 13:10:50 +00:00
Jim Meyering
7aa50cfb3c (change_dir_owner): Don't set errno before
invoking savedir, and assume that errno is nonzero if savedir fails.
2000-06-27 13:10:24 +00:00
Jim Meyering
db0cd2f7e6 (change_dir_group): Don't set errno before
invoking savedir, and assume that errno is nonzero if savedir fails.
2000-06-27 13:09:57 +00:00
Jim Meyering
3dc875d9bd *** empty log message *** 2000-06-27 11:21:03 +00:00
Jim Meyering
f4e62844cb . 2000-06-27 10:10:13 +00:00
Jim Meyering
738611829c *** empty log message *** 2000-06-27 10:09:54 +00:00
Jim Meyering
4189da9d74 (libfetish_a_SOURCES): Remove readutmp.c. 2000-06-27 10:09:49 +00:00
Jim Meyering
26a158b619 *** empty log message *** 2000-06-27 10:08:15 +00:00
Jim Meyering
f8a79d9a8c (jm_PREREQ_READUTMP): Likewise. If either <utmp.h> or
<utmpx.h> exists, put readutmp.o into LIBOBJS.
2000-06-27 10:08:09 +00:00
Jim Meyering
ae641fdacf (_jm_DECL_HEADERS): Check for utmp.h as well. 2000-06-27 10:01:30 +00:00
Jim Meyering
0a43597bb8 *** empty log message *** 2000-06-27 07:08:52 +00:00
Jim Meyering
211b5731d7 savedir now sets errno on failure and invokes xmalloc to get memory.
Fix a couple of other minor bugs while we're at it.

(<unistd.h>): Do not include; there's no need.
(NAMLEN): Remove macro.
(malloc, realloc): Remove decls.
(stpcpy): Likewise.
("xalloc.h"): Include.
(NAME_SIZE_DEFAULT): New macro.
(savedir): Use xmalloc / xrealloc to allocate memory.
Use NAME_SIZE_DEFAULT if name_size is negative or overflows to zero.
Skip "" directory entries.
Use strlen to calculate directory entry length, since the old method
is rarely used these days and isn't worth supporting.
Don't use a pointer after freeing it.
Check for integer overflow when calculating allocation size.
Use memcpy to copy entries, instead of stpcpy.
Set errno properly when returning NULL.
Check for readdir error.
2000-06-27 07:08:48 +00:00
Jim Meyering
ae34e4466d *** empty log message *** 2000-06-27 06:33:35 +00:00
Jim Meyering
99c1d22a99 (show_dev): Round disk usage percentage up, not to nearest value.
Use integer arithmetic if it's easy.
Fix bug when converting twos-complement negative values to floating point.
2000-06-27 06:33:31 +00:00
Jim Meyering
b07eb28c60 *** empty log message *** 2000-06-26 13:48:40 +00:00
Jim Meyering
b4fd5c459e *** empty log message *** 2000-06-26 13:30:59 +00:00
Jim Meyering
dfaf03f037 *** empty log message *** 2000-06-26 10:55:57 +00:00
Jim Meyering
204a9ee115 [HAVE_STDLIB_H]: Include stdlib.h. 2000-06-26 10:55:18 +00:00
Jim Meyering
43c77218e4 *** empty log message *** 2000-06-26 06:33:22 +00:00
Jim Meyering
9abfcc500a `id -Gn' (invoked by groups) would fail without giving a diagnostic
on malconfigured systems.
(print_user): Give a diagnostic if number->name lookup fails.
(print_group): Likewise.
2000-06-26 06:32:58 +00:00
Jim Meyering
ac4e995ed3 *** empty log message *** 2000-06-25 21:19:41 +00:00
Jim Meyering
d705cb724b (xmalloc, xrealloc): Remove functions.
Include xalloc.h.
Don't include <stdlib.h>.  Don't declare malloc, realloc.
2000-06-25 21:17:32 +00:00
Jim Meyering
e195cd0425 *** empty log message *** 2000-06-25 21:03:05 +00:00
Jim Meyering
0adbb52608 *** empty log message *** 2000-06-25 20:20:28 +00:00
Jim Meyering
c72f18b2c3 (TESTS): Add fail-perm. 2000-06-25 20:20:23 +00:00
Jim Meyering
0a0e82382c *** empty log message *** 2000-06-25 20:19:52 +00:00
Jim Meyering
34591391d1 *** empty log message *** 2000-06-25 20:15:22 +00:00
Jim Meyering
ab50b6880f *** empty log message *** 2000-06-25 15:58:47 +00:00
Jim Meyering
92ead9886c (copy_internal): Don't return return immediately after a
failed copy_dir call -- otherwise, the failure to read a single file
in a source directory would cause the containing destination directory
not to have owner/perms set properly.  Reported by Piotr Kwapulinski.
2000-06-25 15:50:51 +00:00
Jim Meyering
8a900584f1 *** empty log message *** 2000-06-25 15:50:38 +00:00
Jim Meyering
18252dc7fc *** empty log message *** 2000-06-25 15:50:29 +00:00
Jim Meyering
046110aa3f *** empty log message *** 2000-06-25 15:49:21 +00:00
Jim Meyering
a7109e215e *** empty log message *** 2000-06-25 14:15:22 +00:00
Jim Meyering
125499c09f *** empty log message *** 2000-06-25 08:49:02 +00:00
Jim Meyering
ca8a119779 Include stdio.h before wchar.h to work around
Linux header bug when _XOPEN_SOURCE is defined to 500.
2000-06-25 08:48:58 +00:00
Jim Meyering
484752fa80 *** empty log message *** 2000-06-25 06:54:36 +00:00
Jim Meyering
a9fad38c18 (print_unicode_char): Work around ansi2knr deficiency. 2000-06-25 06:54:32 +00:00
Jim Meyering
0d67b070d4 *** empty log message *** 2000-06-24 21:05:11 +00:00
Jim Meyering
402a8fdd9b If the compile-test says
strerror_r doesn't work, then resort to a `run'-test that works on
BeOS and segfaults on DEC Unix.
2000-06-24 21:04:44 +00:00
Jim Meyering
d488baf54a check for decl unconditionally 2000-06-24 14:03:10 +00:00
Jim Meyering
806c3e7fb8 . 2000-06-24 12:25:39 +00:00
Jim Meyering
102a04f2aa . 2000-06-24 12:21:52 +00:00
Jim Meyering
c66b857850 *** empty log message *** 2000-06-24 12:05:18 +00:00
Jim Meyering
f89094c7de Revive this file -- to try out an experimental
version of AC_FUNC_STRERROR_R that may work even on BeOS, a system
for which strerror does return char*, but which lacks a conveniently
accessible declaration of the function.
2000-06-24 12:05:08 +00:00
Jim Meyering
790705a7c1 *** empty log message *** 2000-06-24 12:01:29 +00:00
Jim Meyering
5061035e88 [!HAVE_DECL_STRERROR_R]: Declare strerror_r. 2000-06-24 12:01:03 +00:00
Jim Meyering
a2d975a44d Lots of minor rewording and grammar correction.
From Brian Youmans.
2000-06-24 11:53:51 +00:00
Jim Meyering
4604a7892b *** empty log message *** 2000-06-24 11:52:38 +00:00
Jim Meyering
4434e513bc *** empty log message *** 2000-06-24 07:38:05 +00:00
Jim Meyering
39f35a55d3 tweak copyright 2000-06-24 07:37:55 +00:00
Jim Meyering
a6e6a1e05b (sysv_sum_file): Avoid overflowing 32-bit accumulator
on files larger than 256 MB.
2000-06-24 07:37:44 +00:00
Jim Meyering
1cc0f0d268 . 2000-06-24 07:36:54 +00:00
Jim Meyering
a674a3c010 *** empty log message *** 2000-06-24 07:36:14 +00:00
Jim Meyering
fad24ae80d *** empty log message *** 2000-06-24 07:18:29 +00:00
Jim Meyering
d7ad628832 *** empty log message *** 2000-06-24 07:13:07 +00:00
Jim Meyering
dc53d8e807 *** empty log message *** 2000-06-24 07:12:56 +00:00
Jim Meyering
fff7bfc374 . 2000-06-23 21:09:12 +00:00
Jim Meyering
957ec50ac0 *** empty log message *** 2000-06-23 21:06:45 +00:00
Jim Meyering
fef29da8fb Include <wctype.h> after <wchar.h>,
for Solaris 2.5.
(mbrtowc, mbstate_t): Define substitutes if
HAVE_MBRTOWC && HAVE_WCHAR_H && !HAVE_MBSTATE_T_OBJECT.
(iswprint): Define to 1 if !defined iswprint && !HAVE_ISWPRINT,
not if ! (HAVE_MBRTOWC && HAVE_WCHAR_H).
2000-06-23 21:05:50 +00:00
Jim Meyering
284905fbb9 *** empty log message *** 2000-06-23 21:03:06 +00:00
Jim Meyering
266d043345 *** empty log message *** 2000-06-23 21:02:23 +00:00
Jim Meyering
a78edc50b8 (jm_PREREQ_QUOTEARG): Use AC_MBSTATE_T_OBJECT. Add check for iswprint. 2000-06-23 21:02:15 +00:00
Jim Meyering
f2d46d3970 New file, defining AC_MBSTATE_T_OBJECT. 2000-06-23 21:00:53 +00:00
Jim Meyering
085cdb43ed *** empty log message *** 2000-06-23 14:03:02 +00:00
Jim Meyering
6273f25d7d *** empty log message *** 2000-06-23 13:50:42 +00:00
Jim Meyering
1a5bab10b7 Add missing AC_MSG_RESULT.
Reported by Bruno Haible.
2000-06-23 13:49:17 +00:00
Jim Meyering
4e56a001c6 s/AC_MSG_CHECKING/AC_CHECKING/.
Suggestion from Bruno Haible.
2000-06-23 13:43:41 +00:00
Jim Meyering
cd64b836fc *** empty log message *** 2000-06-22 17:10:56 +00:00
Jim Meyering
62e3f1f1ef (main): Correct a comment. 2000-06-22 17:10:51 +00:00
Jim Meyering
1407c2894a *** empty log message *** 2000-06-21 20:23:21 +00:00
Jim Meyering
5e3ab81b7a (AC_REPLACE_FUNCS): Add getpass. 2000-06-21 20:23:14 +00:00
Jim Meyering
c514878446 ansideclify 2000-06-21 20:21:03 +00:00
Jim Meyering
9f0aa11144 New file, from Bruno Haible. Required for BeOS. 2000-06-21 20:20:27 +00:00
Jim Meyering
50f86c9fe7 *** empty log message *** 2000-06-21 20:16:10 +00:00
Jim Meyering
978bf5f750 (xgetcwd): If the required pathname length is smaller
than 1024, return a memory chunk of least possible size, instead
of size PATH_MAX + 2. In the loop, increment the size proportionally.
Use free/xmalloc instead of xrealloc to avoid copying for very long paths.
2000-06-21 20:16:03 +00:00
Jim Meyering
0c3c6ef55e *** empty log message *** 2000-06-21 14:47:04 +00:00
Jim Meyering
0ce8428a9d *** empty log message *** 2000-06-21 13:00:54 +00:00
Jim Meyering
fc71e28b65 (canon_host): Use malloc and memcpy to copy an
address, not strdup.  Include <stdlib.h> and don't declare free().
2000-06-21 13:00:49 +00:00
Jim Meyering
d32395693a *** empty log message *** 2000-06-21 12:56:40 +00:00
Jim Meyering
bb6ebcc333 (path_concat): Don't access dir[-1] if dir is the empty string. 2000-06-21 12:56:33 +00:00
Jim Meyering
08cd18bc45 include getstr.h 2000-06-21 09:56:42 +00:00
Jim Meyering
c60941056f *** empty log message *** 2000-06-21 09:21:52 +00:00
Jim Meyering
ddcbe0decc (libfetish_a_SOURCES): Add getstr.c.
(noinst_HEADERS): Add getstr.h.
2000-06-21 09:21:22 +00:00
Jim Meyering
6b01706633 (getstr): Remove private (and out of date) version of this function.
(cut_fields): Adjust caller to use the just-extended one in ../lib.
2000-06-21 09:20:40 +00:00
Jim Meyering
791fddaac0 *** empty log message *** 2000-06-21 09:20:23 +00:00
Jim Meyering
468b38dfad *** empty log message *** 2000-06-21 09:16:21 +00:00
Jim Meyering
912179f001 (getstr): Move into a separate file. 2000-06-21 09:12:30 +00:00
Jim Meyering
b41ca587a1 copyright date 2000-06-21 09:10:32 +00:00
Jim Meyering
671fdfa887 *** empty log message *** 2000-06-21 09:09:57 +00:00
Jim Meyering
b865bd0619 New file, extracted from getline.c, with the following
changes: new parameter, delim2; both delim[12] parameters have type
`int', not `char'.  The latter would lose with 8-bit delimiters.
2000-06-21 09:09:22 +00:00
Jim Meyering
7b6e7a7341 *** empty log message *** 2000-06-21 09:02:48 +00:00
Jim Meyering
75d9e7ca5c New test for that. 2000-06-21 09:02:42 +00:00
Jim Meyering
e1e0683c82 (valid_options): Don't segfault on `stty erase -'. 2000-06-21 07:29:03 +00:00
Jim Meyering
4be8db746e *** empty log message *** 2000-06-21 07:28:13 +00:00
Jim Meyering
20deee54fc *** empty log message *** 2000-06-20 06:55:04 +00:00
Jim Meyering
2ed1f74efe *** empty log message *** 2000-06-20 06:46:41 +00:00
Jim Meyering
b1c4d0148a (main): Fix off-by-argc test, so +N-style options are recognized once again.
Reported by Geoff Keunning.
Fix typo in diagnostic: s/compare/skip/.
2000-06-20 06:46:28 +00:00
Jim Meyering
700b4bde5e *** empty log message *** 2000-06-20 06:44:21 +00:00
Jim Meyering
759740c7e2 *** empty log message *** 2000-06-19 09:50:25 +00:00
Jim Meyering
6574dd60d9 (AC_REPLACE_FUNCS): Remove mkdir. 2000-06-19 09:50:20 +00:00
Jim Meyering
f4bfd0cb38 . 2000-06-19 09:48:46 +00:00
Jim Meyering
243036c5fb [HAVE_NLIST_H] (NLIST_STRUCT): Define. 2000-06-19 07:25:01 +00:00
Jim Meyering
5debbcc139 revert last change 2000-06-19 07:19:41 +00:00
Jim Meyering
5b728e9bad *** empty log message *** 2000-06-19 06:55:11 +00:00
Jim Meyering
a49d66ffdf . 2000-06-19 06:51:58 +00:00
Jim Meyering
fa168b1e06 *** empty log message *** 2000-06-18 18:17:03 +00:00
Jim Meyering
570ad2486a Include memory.h, string.h, and/or strings.h as needed.
(this snippet comes from src/system.h).
2000-06-18 18:16:54 +00:00
Jim Meyering
1b63505cf9 *** empty log message *** 2000-06-18 18:08:15 +00:00
Jim Meyering
5a14292fa3 (jm_AC_FUNC_LINK_FOLLOWS_SYMLINK): Change the
`checking whether...' message to be consistent with that of the
lstat test.
2000-06-18 18:07:51 +00:00
Jim Meyering
47f6723289 . 2000-06-18 17:47:39 +00:00
Jim Meyering
890e86b6f9 s/NLIST_STRUCT/HAVE_NLIST_H/. Remove big
multi-platform `#ifndef NLIST_STRUCT' block.
2000-06-18 06:17:54 +00:00
Jim Meyering
24c39da8d3 *** empty log message *** 2000-06-17 19:24:59 +00:00
Jim Meyering
4d8f97fea7 Don't fail (just exit 77) if strip doesn't work.
Add canonical trap/mkdir/cd, plus exit portability cruft.
2000-06-17 19:24:39 +00:00
Jim Meyering
a6ef8dfbab . 2000-06-17 18:47:21 +00:00
Jim Meyering
cb06271257 . 2000-06-17 18:46:57 +00:00
Jim Meyering
bb03de1c1d . 2000-06-17 18:46:16 +00:00
Jim Meyering
005d0a41ea *** empty log message *** 2000-06-17 18:35:44 +00:00
Jim Meyering
b657cf747d s/AM_FUNC_GETLOADAVG/AC_FUNC_GETLOADAVG/ 2000-06-17 18:34:33 +00:00
Jim Meyering
89f447ce9f (AM_FUNC_GETLOADAVG): Replace with AC_FUNC_GETLOADAVG
from autoconf, and tweak the latter to accept an optional argument.
2000-06-17 18:33:50 +00:00
Jim Meyering
e6588db39b *** empty log message *** 2000-06-17 18:31:59 +00:00
Jim Meyering
ad0f6161db (jm_GLIBC21): Define GLIBC21 for Makefiles, not for C. 2000-06-17 18:31:51 +00:00
Jim Meyering
eea83d97cb *** empty log message *** 2000-06-16 12:51:33 +00:00
Jim Meyering
ff5aea354f (adjust_value): New function.
(human_readable_inexact): Apply rounding style even when
printing approximate values.
2000-06-16 12:51:28 +00:00
Jim Meyering
a6b9441450 (print_size): Round disk usage up. 2000-06-16 12:50:27 +00:00
Jim Meyering
78362b9aa4 (print_dir, gobble_file, print_long_format, print_file_name_and_frills):
Round disk usage up.
2000-06-16 12:49:52 +00:00
Jim Meyering
f570d032b4 (df_readable): New arg for rounding style.
Round negative numbers correctly.
(show_dev): Round disk usage up and disk free space down.
2000-06-16 12:49:20 +00:00
Jim Meyering
0e2ebc67e2 *** empty log message *** 2000-06-16 12:48:22 +00:00
Jim Meyering
2795faa36f (copy_reg): Give a slightly better diagnostic. 2000-06-16 12:47:36 +00:00
Jim Meyering
90d6a55246 *** empty log message *** 2000-06-15 19:46:54 +00:00
Jim Meyering
998ec04ca6 . 2000-06-15 13:21:12 +00:00
Jim Meyering
bbf6278831 *** empty log message *** 2000-06-15 12:50:53 +00:00
Jim Meyering
c659fb7125 *** empty log message *** 2000-06-15 12:47:46 +00:00
Jim Meyering
cbb9845165 *** empty log message *** 2000-06-15 12:43:28 +00:00
Jim Meyering
59845523f3 *** empty log message *** 2000-06-15 12:21:20 +00:00
Jim Meyering
fbc3c192c1 (human_readable_inexact): Allow an input block
size that is not a multiple of the output block size, and vice versa.
2000-06-15 12:21:10 +00:00
Jim Meyering
862fc25f11 *** empty log message *** 2000-06-15 12:11:18 +00:00
Jim Meyering
8591cce725 tweak comment 2000-06-15 12:11:14 +00:00
Jim Meyering
e18cb636a8 Add tests for getdate.y fix. 2000-06-15 12:10:15 +00:00
Jim Meyering
474a9f7a56 *** empty log message *** 2000-06-15 07:58:06 +00:00
Jim Meyering
b7aa5f3206 (get_date): Apply relative times after time zone indicator, not before. 2000-06-15 07:57:58 +00:00
Jim Meyering
c787140255 *** empty log message *** 2000-06-14 19:44:39 +00:00
Jim Meyering
94c7b9bcfc *** empty log message *** 2000-06-14 17:06:40 +00:00
Jim Meyering
b8264a299d (framework_failure): Initialize this instead of test_failure. 2000-06-14 16:53:36 +00:00
Jim Meyering
26ceb4bc22 *** empty log message *** 2000-06-14 07:43:46 +00:00
Jim Meyering
80530f9ebf . 2000-06-13 09:19:08 +00:00
Jim Meyering
ab6ddc13f2 (all-local): Depend on lstat.c and stat.c. 2000-06-13 09:18:30 +00:00
Jim Meyering
e784cd8520 *** empty log message *** 2000-06-13 09:08:50 +00:00
Jim Meyering
54e57758aa [!HAVE_DECL_FREE]: Declare free in lstat.c. 2000-06-13 09:08:47 +00:00
Jim Meyering
787e2d6289 *** empty log message *** 2000-06-13 09:06:10 +00:00
Jim Meyering
b198a20555 Include <stdlib.h> in lstat, to declare "free". 2000-06-13 09:05:16 +00:00
Jim Meyering
54ab4a172f *** empty log message *** 2000-06-12 08:42:18 +00:00
Jim Meyering
1af3ad04de Clean up.
Be careful to remove temp directory upon interrupt.
2000-06-12 08:42:08 +00:00
Jim Meyering
0eaacfd00a remove RM 2000-06-12 08:34:00 +00:00
Jim Meyering
5c063f91ff . 2000-06-12 08:20:46 +00:00
Jim Meyering
bf6f52d7f5 . 2000-06-12 08:19:36 +00:00
Jim Meyering
132f9c716e *** empty log message *** 2000-06-12 08:13:10 +00:00
Jim Meyering
b89b71f63e . 2000-06-12 07:42:01 +00:00
Jim Meyering
675538e965 *** empty log message *** 2000-06-12 06:59:30 +00:00
Jim Meyering
14e29d814e *** empty log message *** 2000-06-12 06:10:28 +00:00
Jim Meyering
5bdf244d0d (TESTS): Add diag. 2000-06-12 06:10:23 +00:00
Jim Meyering
3e9e02727b (main): Give the correct diagnostic when using the
--target-dir=DIR option, but no arguments.
Patch from Michael Stone.  Reported by herbert@gondor.apana.org.au.
2000-06-12 06:09:32 +00:00
Jim Meyering
9af1ed39b5 *** empty log message *** 2000-06-12 06:07:42 +00:00
Jim Meyering
32dd0d64b9 *** empty log message *** 2000-06-12 06:01:06 +00:00
Jim Meyering
66fcd6e2eb *** empty log message *** 2000-06-12 05:51:16 +00:00
Jim Meyering
d4f4a5c5f1 *** empty log message *** 2000-06-09 23:59:51 +00:00
Jim Meyering
9a684a5b1f *** empty log message *** 2000-06-09 23:28:57 +00:00
Jim Meyering
9fea42bfd6 . 2000-06-09 23:28:54 +00:00
Jim Meyering
e29c5e38f8 Typo-fixes and some clean-up from Brian Youmans. 2000-06-09 22:59:04 +00:00
Jim Meyering
3c1a0b9db7 tweak references after Brian's changes 2000-06-08 20:17:59 +00:00
Jim Meyering
14a2802aba A few typos and minor formatting fixes. 2000-06-08 17:01:51 +00:00
Jim Meyering
736995d606 (Multiple Changes): Fix typo. 2000-06-08 16:56:30 +00:00
Jim Meyering
5cce6821e1 *** empty log message *** 2000-06-06 21:42:04 +00:00
Jim Meyering
ced45c88d4 . 2000-06-06 21:40:56 +00:00
Jim Meyering
b810bd54a0 *** empty log message *** 2000-06-06 20:30:59 +00:00
Jim Meyering
179f99492b (AC_SYS_LARGEFILE_FLAGS,
AC_SYS_LARGEFILE_SPACE_APPEND): Remove.
(AC_SYS_LARGEFILE_TEST_INCLUDES): New macro.
(AC_SYS_LARGEFILE_MACRO_VALUE): Change arguments from
CODE-TO-SET-DEFAULT to VALUE, INCLUDES, FUNCTION-BODY.
All uses changed.
Instead of inspecting the output of getconf, try to compile the
test program without and with the macro definition.
(AC_SYS_LARGEFILE): Do not require AC_CANONICAL_HOST or check
for getconf.  Instead, check for the needed flags by compiling
test programs.
2000-06-06 20:30:34 +00:00
Jim Meyering
a605579011 (alpha_subdir): Factor out `gnu/fetish'. 2000-06-06 20:09:35 +00:00
Jim Meyering
0c0c2d5f40 *** empty log message *** 2000-06-04 21:58:42 +00:00
Jim Meyering
55babc7fe1 *** empty log message *** 2000-06-04 13:28:45 +00:00
Jim Meyering
1f07d34ed2 Include <config.h> if HAVE_CONFIG_H. 2000-06-04 13:20:20 +00:00
Jim Meyering
8e2e012dc9 . 2000-06-04 08:13:25 +00:00
Jim Meyering
3962d775bf Put kludge in if-then...fi block. 2000-06-04 07:30:07 +00:00
Jim Meyering
1faa6a399a *** empty log message *** 2000-06-04 06:53:32 +00:00
Jim Meyering
98a1d5e72a (show_point) [HAVE_REALPATH && !HAVE_RESOLVEPATH]:
Cast undeclared `realpath' to char* to avoid warning.
2000-06-04 06:51:46 +00:00
Jim Meyering
985cf06296 (getugroups): Cast -1 to gid_t, for systems like
SunOS4.1.4 for which gid_t is an unsigned type.
2000-06-04 06:47:31 +00:00
Jim Meyering
377d7cdb85 *** empty log message *** 2000-06-04 06:41:13 +00:00
Jim Meyering
86c8226819 move vmp decl back out to the scope where it belongs 2000-06-03 22:09:03 +00:00
Jim Meyering
e5f1a12c6b *** empty log message *** 2000-06-03 21:47:48 +00:00
Jim Meyering
c588f96c37 [!HAVE_DECL_MEMCHR]: Declare memchr. 2000-06-03 21:47:37 +00:00
Jim Meyering
51cee2cf8d *** empty log message *** 2000-06-03 12:41:19 +00:00
Jim Meyering
b0619089c9 (jm_PREREQ_HUMAN): Use []-quoted list in AC_CHECK_DECLS,
now that autoconf requires that.
2000-06-03 12:40:56 +00:00
Jim Meyering
e78fd6ee39 *** empty log message *** 2000-06-03 12:22:37 +00:00
Jim Meyering
2e8629e442 Add a kludge to make autoheader emit the required
#undefs.  E.g., #undef HAVE_DECL_FERROR_UNLOCKED.
Use []-quoted list in AC_CHECK_DECLS, now that autoconf requires that.
2000-06-03 12:22:33 +00:00
Jim Meyering
111cdb39c3 . 2000-06-03 08:34:45 +00:00
Jim Meyering
1b306b070e (install-exec-local): On systems with glibc-2.1 or
newer, don't install charset.alias.
2000-06-03 08:34:34 +00:00
Jim Meyering
70ac95bbb2 Change the Linux/glibc rules so they become empty on glibc-2.1 or newer. 2000-06-03 08:34:18 +00:00
Jim Meyering
43585ddb5e *** empty log message *** 2000-06-03 08:33:04 +00:00
Jim Meyering
410cb32814 Add comment to AC_DEFINE_UNQUOTED use. 2000-06-03 08:29:33 +00:00
Jim Meyering
ea146bfd07 . 2000-06-03 08:26:05 +00:00
Jim Meyering
534576fad0 Use jm_GLIBC21. 2000-06-03 08:25:33 +00:00
Jim Meyering
6f7ac74eb3 New file. From Bruno Haible. 2000-06-03 08:23:54 +00:00
Jim Meyering
f6639dbe36 *** empty log message *** 2000-06-03 08:19:42 +00:00
Jim Meyering
f29147b4a1 *** empty log message *** 2000-06-03 08:18:18 +00:00
Jim Meyering
757e85d993 *** empty log message *** 2000-06-03 08:15:24 +00:00
Jim Meyering
b662dfc657 Allow -v as synonym for --verbose, to be consistent with other fileutils. 2000-06-03 08:11:08 +00:00
Jim Meyering
8cb9b753c5 Allow -v as synonym for --verbose, to be consistent with other fileutils. 2000-06-03 08:10:37 +00:00
Jim Meyering
2d5e52c70d (usage): Document that -v is a synonym for --verbose. 2000-06-03 08:09:53 +00:00
Jim Meyering
4eb4f8c624 *** empty log message *** 2000-06-02 21:49:50 +00:00
Jim Meyering
59ee5c9f35 *** empty log message *** 2000-06-02 11:54:35 +00:00
Jim Meyering
209099c9d9 Back out last change. Instead, do this...
(read_filesystem_list) [MOUNTED_VMOUNT]: Set the me_dummy
member using the same `ignore'-testing code.
2000-06-02 11:20:47 +00:00
Jim Meyering
8f245c6f2c (ME_DUMMY): Add `autofs' to the list of ignored fs_type strings.
From Mark D. Roth.
2000-06-02 11:20:30 +00:00
Jim Meyering
8208033b86 *** empty log message *** 2000-05-29 21:06:20 +00:00
Jim Meyering
afa54698c9 Adapt to fit new semantics of `cp -d'. 2000-05-29 21:05:22 +00:00
Jim Meyering
a4791b30ea *** empty log message *** 2000-05-29 21:05:13 +00:00
Jim Meyering
f06a2374fd Allow `cp -d -u' to copy one symlink onto another that's identical.
(copy_internal): Change the || to ^ in the big sameness
test, so copying one symlink onto another, identical one doesn't fail here.
If the symlink call fails, don't report the failure if the destination
already exists and is a symlink pointing to the proper name.
2000-05-29 21:05:07 +00:00
Jim Meyering
ff9eb12809 . 2000-05-29 20:44:25 +00:00
Jim Meyering
472729831e (TESTS): Add slink-2-slink. 2000-05-29 20:44:03 +00:00
Jim Meyering
4fc0af40aa *** empty log message *** 2000-05-29 20:41:10 +00:00
Jim Meyering
11c6d21d52 (read_filesystem_list) [MOUNTED_VMOUNT]: Ignore mounts
with the `ignore' attribute.  Based on a patch from Mark D. Roth.
2000-05-29 16:23:45 +00:00
Jim Meyering
ab2c79328e *** empty log message *** 2000-05-29 16:23:04 +00:00
Jim Meyering
40acdda1b3 . 2000-05-29 16:22:03 +00:00
Jim Meyering
ad435461eb *** empty log message *** 2000-05-29 16:20:07 +00:00
Jim Meyering
8b59f3a9e5 *** empty log message *** 2000-05-29 15:43:12 +00:00
Jim Meyering
1a0017092d . 2000-05-28 21:29:14 +00:00
Jim Meyering
769aaffc24 bump serial number 2000-05-28 21:28:05 +00:00
Jim Meyering
2981d74992 (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Rename from
jm_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK.
2000-05-28 21:27:04 +00:00
Jim Meyering
5ccb8ddd83 *** empty log message *** 2000-05-28 21:24:54 +00:00
Jim Meyering
6aff8653fe (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Rename from
jm_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK.
2000-05-28 21:24:42 +00:00
Jim Meyering
42cfd00757 . 2000-05-28 21:21:42 +00:00
Jim Meyering
3cec0fda7b *** empty log message *** 2000-05-28 17:36:36 +00:00
Jim Meyering
4957557813 s/jm_FUNC_STRERROR_R/AC_FUNC_STRERROR_R/. 2000-05-28 16:49:22 +00:00
Jim Meyering
619bbd4ce6 . 2000-05-28 16:48:25 +00:00
Jim Meyering
15a9b83bdd . 2000-05-27 21:26:50 +00:00
Jim Meyering
d73513786d Arrange to call close_stdout upon exit.
Don't close stdout explicitly.
(usage): Add missing backslash at end of line.
(write_header): Remove now-unused COMMENT parameter.
Update all callers.
2000-05-27 21:17:39 +00:00
Jim Meyering
8ccf29f7fe Arrange to call close_stdout upon exit.
Don't close stdout explicitly.  Replace uses of global constant,
output_desc, with uses of STDOUT_FILENO.
2000-05-27 21:14:26 +00:00
Jim Meyering
c8afcbe2e7 *** empty log message *** 2000-05-26 21:39:19 +00:00
Jim Meyering
37cbfc8c6b Use $cross_compiling', not $ac_cv_prog_cc_cross'. 2000-05-26 21:39:16 +00:00
Jim Meyering
40b91250bc *** empty log message *** 2000-05-25 07:14:22 +00:00
Jim Meyering
87da84ba81 (close_stdout_wrapper): Don't dereference NULL pointer.
From Bob Proulx.
2000-05-25 07:14:13 +00:00
Jim Meyering
8b45419759 *** empty log message *** 2000-05-24 07:50:18 +00:00
Jim Meyering
9ca281e5b3 Use []-quoted list in AC_CHECK_MEMBERS, now that autoconf requires that. 2000-05-24 07:50:05 +00:00
Jim Meyering
d2586a214a Use []-quoted list in AC_CHECK_MEMBERS, now that autoconf requires that. 2000-05-24 07:49:38 +00:00
Jim Meyering
429093f9ad (jm_LIB_CHECK): Use []-quoted list in
AC_CHECK_MEMBERS, now that autoconf requires that.
2000-05-24 07:49:09 +00:00
Jim Meyering
35aaf0b09d (jm_PREREQ_READUTMP): Use []-quoted list in
AC_CHECK_MEMBERS, now that autoconf requires that.
2000-05-24 07:48:04 +00:00
Jim Meyering
3ed09573d7 (jm_CHECK_DECLS): Use []-quoted list in AC_CHECK_DECLS,
now that autoconf requires that.
2000-05-24 07:46:55 +00:00
Jim Meyering
449fa131d6 (head_file): Use STDIN_FILENO in place of `0'.
(main): Likewise.
2000-05-24 07:10:12 +00:00
Jim Meyering
0de83d1d81 *** empty log message *** 2000-05-23 21:14:40 +00:00
Jim Meyering
2aeb21d67a Add traps to clean up.
Correct broken running-as-root test.
2000-05-23 21:14:33 +00:00
Jim Meyering
dfdfbc22b3 Exit 77 when run as root. Reported by Andreas Schwab. 2000-05-23 21:13:28 +00:00
Jim Meyering
5f3b8f3038 . 2000-05-23 08:42:18 +00:00
Jim Meyering
f29de82520 . 2000-05-22 22:08:15 +00:00
Jim Meyering
1117d0586a *** empty log message *** 2000-05-22 22:07:29 +00:00
Jim Meyering
36595ef3f7 Require jm_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK. 2000-05-22 08:35:36 +00:00
Jim Meyering
b8c130d091 Remove old, now-unnecessary `#ifdef __MSDOS__' block. 2000-05-22 06:24:50 +00:00
Jim Meyering
b5431fdfdf *** empty log message *** 2000-05-21 07:14:41 +00:00
Jim Meyering
24f2bd8c9f Arrange to call close_stdout upon exit. Don't close stdout explicitly. 2000-05-20 22:06:38 +00:00
Jim Meyering
ac81803363 Arrange to call close_stdout upon exit. Don't close stdout explicitly. 2000-05-20 22:04:40 +00:00
Jim Meyering
b2c7c6055d Arrange to call close_stdout upon exit. Don't close stdout explicitly. 2000-05-20 22:04:16 +00:00
Jim Meyering
c75dc9689e Arrange to call close_stdout upon exit. Don't close stdout explicitly. 2000-05-20 22:03:55 +00:00
Jim Meyering
02f7878928 Arrange to call close_stdout upon exit. Don't close stdout explicitly.
(but set exit status and file name, too)
2000-05-20 22:03:12 +00:00
Jim Meyering
a311f0eac5 . 2000-05-20 21:48:55 +00:00
Jim Meyering
482aa7fc64 *** empty log message *** 2000-05-20 15:49:03 +00:00
Jim Meyering
8985201718 *** empty log message *** 2000-05-20 15:46:52 +00:00
Jim Meyering
7de6407b72 *** empty log message *** 2000-05-20 15:45:10 +00:00
Jim Meyering
579105347d *** empty log message *** 2000-05-20 15:43:44 +00:00
Jim Meyering
039c76fc63 *** empty log message *** 2000-05-20 15:39:13 +00:00
Jim Meyering
8f8938e366 add format args to match new %lu directives 2000-05-20 15:37:26 +00:00
Jim Meyering
15ecc0f435 tweak warning diagnostic 2000-05-20 12:41:13 +00:00
Jim Meyering
b34c9d22e4 *** empty log message *** 2000-05-20 09:46:19 +00:00
Jim Meyering
97b943feb3 (jm_PREREQ_HUMAN): New macro.
(jm_PREREQ): Use it.
2000-05-20 09:46:14 +00:00
Jim Meyering
836e28186c (TESTS): Add i-2. 2000-05-20 09:45:08 +00:00
Jim Meyering
91d525cd50 *** empty log message *** 2000-05-20 09:44:46 +00:00
Jim Meyering
586b7bf510 *** empty log message *** 2000-05-20 09:44:20 +00:00
Jim Meyering
d0cc040dd8 *** empty log message *** 2000-05-20 09:43:40 +00:00
Jim Meyering
358c9c706a *** empty log message *** 2000-05-20 09:35:13 +00:00
Jim Meyering
dd19256dcd . 2000-05-20 09:31:14 +00:00
Jim Meyering
8fad3eb9e0 . 2000-05-20 09:30:01 +00:00
Jim Meyering
1adc899668 . 2000-05-20 09:24:29 +00:00
Jim Meyering
de4a1fe053 *** empty log message *** 2000-05-20 09:23:48 +00:00
Jim Meyering
5c34a06b45 (struct File_spec) [have_device, st_dev]: New members 2000-05-20 09:23:41 +00:00
Jim Meyering
f5fb72e12c Save device number as well as inode number for each directory.
(struct active_dir_ent) [st_dev]: New member.
[st_ino]: Rename from `inum'.
(make_active_dir_ent) [device]: New parameter.
(hash_compare_active_dir_ents): Compare using SAME_INODE macro.
(fspec_init_common): New function, factored out.
(fspec_init_file): Initialize have_device member.
(fspec_get_full_mode): Remove parameter.  Update caller.
Set have_device and st_dev members.
2000-05-20 09:23:27 +00:00
Jim Meyering
8fd90d4b2b add RUN_EXPENSIVE_TESTS junk 2000-05-20 09:09:18 +00:00
Jim Meyering
d402b210ea don't use $test 2000-05-20 08:52:03 +00:00
Jim Meyering
619ffb2bff fail if final rm fails 2000-05-20 08:48:39 +00:00
Jim Meyering
abd2b295f2 Clean up. 2000-05-20 08:42:44 +00:00
Jim Meyering
396069fce5 reorder so as not to use `head -c N' 2000-05-20 08:11:51 +00:00
Jim Meyering
a5c0da5365 (LC_ALL): Set it unconditionally. 2000-05-19 22:37:45 +00:00
Jim Meyering
bc009f5b5f warn the user it will take a while 2000-05-19 07:12:09 +00:00
Jim Meyering
5c136d939e put hash at the end of the list 2000-05-19 07:10:09 +00:00
Jim Meyering
b55a5cc86c (rm): Combine adjacent fputc and fprintf. 2000-05-18 21:10:55 +00:00
Jim Meyering
4d453f5691 remove some parens from some cpp lines 2000-05-18 14:56:42 +00:00
Jim Meyering
9d67112156 (remove_dir): Detect (and fail upon) attempt to subvert a running `rm -r'.
Reported by Morten Welinder.
2000-05-18 14:49:34 +00:00
Jim Meyering
c880f6f9e0 . 2000-05-18 14:28:09 +00:00
Jim Meyering
8469888ca2 *** empty log message *** 2000-05-18 14:26:19 +00:00
Jim Meyering
83616b114e (TESTS): Add hash. 2000-05-18 14:26:00 +00:00
Jim Meyering
f01f28a92a *** empty log message *** 2000-05-18 14:24:58 +00:00
Jim Meyering
ba798c5998 *** empty log message *** 2000-05-18 11:12:39 +00:00
Jim Meyering
aa78add2de (hash_rehash): Fix a nasty bug: copy the free entry list
back, too, since it may have been modified by allocate_entry.
(hash_delete): Rewrite not to use both(!) the assignment operator
and the comma operator in an if-expression.
2000-05-18 11:06:39 +00:00
Jim Meyering
3cf14979b7 *** empty log message *** 2000-05-17 12:21:02 +00:00
Jim Meyering
1ca5f870b6 tweak comment 2000-05-17 12:19:39 +00:00
Jim Meyering
1cd58148cd *** empty log message *** 2000-05-16 14:42:22 +00:00
Jim Meyering
a4f0b7b42e <sys/stat.h>, <sys/types.h>, <unistd.h>, (STDOUT_FILENO):
Remove; no longer needed.
"quotearg.h": Add include.
(file_name): Do not bother to explicitly initialize to NULL; it's less
efficient on some hosts.
(close_stdout_status): Remove test as to whether stdout was already
closed; it breaks for the case "echo x | sort >&-".
Quote file name colons.
Do not assume that _("write error") lacks format strings.
2000-05-16 14:36:55 +00:00
Jim Meyering
71f60a998c *** empty log message *** 2000-05-15 20:42:08 +00:00
Jim Meyering
f13c5ee9ce (do_link): Use complete strings in diagnostics so they
are easier to translate.  Reported by Michel Robitaille.
(main): Drop support for the case in which S_ISLNK wasn't defined.
It was broken in any case.
2000-05-15 20:41:52 +00:00
Jim Meyering
6385fbd99a *** empty log message *** 2000-05-15 10:22:01 +00:00
Jim Meyering
73417841eb (close_stdout_set_file_name): Declare. 2000-05-15 10:21:56 +00:00
Jim Meyering
dba50eec49 (close_stdout_set_file_name): New function.
(close_stdout_status): Use new file-scoped global.
Return right away if fstat says the stdout file descriptor is invalid.
2000-05-15 10:21:25 +00:00
Jim Meyering
3400cc7f78 . 2000-05-15 08:00:19 +00:00
Jim Meyering
3c5405d298 *** empty log message *** 2000-05-15 07:18:44 +00:00
Jim Meyering
be72ac078c Set LC_ALL to `C' to avoid failure when the
current locale is not C (POSIX).  From Matthew Clarke.
2000-05-15 07:18:38 +00:00
Jim Meyering
6d38725e21 *** empty log message *** 2000-05-15 07:18:17 +00:00
Jim Meyering
4e5d2ac6d2 *** empty log message *** 2000-05-15 07:11:30 +00:00
Jim Meyering
cbd2839f1d (version_etc_copyright): Update the copyright string
that goes into all --version output.
2000-05-15 07:11:16 +00:00
Jim Meyering
a3ac01b48d (test_vector): Skip the %c test on SunOS4 systems.
Suggested by Paul Eggert.  Reported by Volker Borchert.
2000-05-15 07:08:38 +00:00
Jim Meyering
00df9725bb *** empty log message *** 2000-05-13 06:51:51 +00:00
Jim Meyering
81b16373ae Arrange to call close_stdout only upon exit. 2000-05-13 06:49:53 +00:00
Jim Meyering
47827e2ec2 Include closeout.h.
(usage): Don't call close_stdout here.
(close_stdout_wrapper): New, kludgey, function and file-scoped global.
(main): Register it with atexit.
2000-05-13 06:46:55 +00:00
Jim Meyering
68c6a5d828 *** empty log message *** 2000-05-12 22:39:10 +00:00
Jim Meyering
30c412049f Detect and report write failure of --help/--version. 2000-05-12 22:38:58 +00:00
Jim Meyering
f2d53500ae *** empty log message *** 2000-05-12 20:40:47 +00:00
Jim Meyering
fc64ba37d4 (copy_internal): Fix force and interactive tests. 2000-05-12 20:40:39 +00:00
Jim Meyering
a5c02a198b Unlike for mv, -i doesn't cancel the effect of -f
and -f doesn't cancel the effect of -i.
(main) ['f']: Don't reset `x.interactive'.
['i']: Don't reset `x.force'.
2000-05-12 20:39:34 +00:00
Jim Meyering
12bf65f915 Interpret as decimal, even if number starts with 0. 2000-05-12 20:31:39 +00:00
Jim Meyering
48ebc7d0b7 *** empty log message *** 2000-05-12 20:30:28 +00:00
Jim Meyering
b0fd0aa567 (string_to_integer): Restrict base to 10. 2000-05-12 20:30:22 +00:00
Jim Meyering
a1eab797d0 test new option 2000-05-12 08:56:03 +00:00
Jim Meyering
7f0b022e0d *** empty log message *** 2000-05-12 08:55:43 +00:00
Jim Meyering
1224b48d7f New option: --first-only
(anonymous enum) [CONVERT_FIRST_ONLY_OPTION]: Define.
(long_options): Add `first-only'.
(main): Handle new option.
2000-05-12 08:55:13 +00:00
Jim Meyering
3b8a52ccbe *** empty log message *** 2000-05-11 09:19:40 +00:00
Jim Meyering
605768d957 make the new tests a little smaller 2000-05-11 08:30:09 +00:00
Jim Meyering
45dcf53e6e New tests. 2000-05-11 08:28:51 +00:00
Jim Meyering
3f0c7988cf *** empty log message *** 2000-05-11 08:24:49 +00:00
Jim Meyering
51dbb91fdd *** empty log message *** 2000-05-11 07:24:35 +00:00
Jim Meyering
9590fbf43c (usage): Don't call close_stdout_status directly,
since that didn't cover --version output.
(main): Instead, call close_stdout_set_status and arrange to
call close_stdout via atexit.
2000-05-11 07:24:05 +00:00
Jim Meyering
5a3d9df9a1 (usage): Don't call close_stdout_status directly,
since that didn't cover --version output.
(main): Instead, call close_stdout_set_status and arrange to
call close_stdout via atexit.
2000-05-11 07:23:42 +00:00
Jim Meyering
70e5178bde (usage): Don't call close_stdout directly, since that
didn't cover --version output.
(main):  Arrange to call close_stdout via atexit, instead.
2000-05-11 07:21:33 +00:00
Jim Meyering
c693c5940b . 2000-05-11 07:17:36 +00:00
Jim Meyering
8c8e4286b5 append in subshell so we don't see this diagnostic:
./remove: t-shred.11626/file: Permission denied
2000-05-10 22:33:06 +00:00
Jim Meyering
ce8cf50e0a . 2000-05-10 16:40:30 +00:00
Jim Meyering
4071f9dcd5 (close_stdout_set_status): Declare. 2000-05-10 16:39:53 +00:00
Jim Meyering
ebd41d46d8 [default_exit_status]: New file-scoped variable.
(close_stdout_set_status): New function.
2000-05-10 16:39:35 +00:00
Jim Meyering
a210d7d35c Include sys/types.h in shred.c before including
sys/stat.h or system.h.  From John David Anglin.
2000-05-09 20:27:54 +00:00
Jim Meyering
b9c210715c back out last change -- the two should be separate 2000-05-09 20:27:11 +00:00
Jim Meyering
101160bdf9 *** empty log message *** 2000-05-09 20:26:04 +00:00
Jim Meyering
5c4406f731 Include sys/types.h in shred.c before including
sys/stat.h or system.h.  From John David Anglin.
2000-05-09 20:25:58 +00:00
Jim Meyering
721557bb21 *** empty log message *** 2000-05-09 12:37:47 +00:00
Jim Meyering
d7f56af947 *** empty log message *** 2000-05-09 11:00:13 +00:00
Jim Meyering
17bd8fb7fa *** empty log message *** 2000-05-09 06:32:31 +00:00
Jim Meyering
babf9bb7ac (case_GETOPT_VERSION_CHAR): Don't call close_stdout. 2000-05-09 06:32:24 +00:00
Jim Meyering
28ee33a9d8 *** empty log message *** 2000-05-09 05:50:09 +00:00
Jim Meyering
e90fed0bf7 renamed to libintl.m4 2000-05-09 05:44:51 +00:00
Jim Meyering
41a1348544 renamed from gettext.m4 2000-05-09 05:44:51 +00:00
Jim Meyering
2f925e9403 *** empty log message *** 2000-05-08 16:54:55 +00:00
Jim Meyering
1068a0005a Don't use touch in root test. Instead, append to
the test file, since now touch operates even on files which deny owner
write access.
2000-05-08 16:53:36 +00:00
Jim Meyering
cf197bb14a *** empty log message *** 2000-05-08 12:16:11 +00:00
Jim Meyering
34b63c88da *** empty log message *** 2000-05-08 12:01:46 +00:00
Jim Meyering
2fd73df635 . 2000-05-08 11:59:34 +00:00
Jim Meyering
31f5c39ace . 2000-05-08 10:10:26 +00:00
Jim Meyering
aa1ddd2e7d Don't include closeout.h.
(parse_long_options): Don't call close_stdout for --version.
2000-05-08 10:09:28 +00:00
Jim Meyering
fca7b20092 . 2000-05-07 21:11:59 +00:00
Jim Meyering
a90650cd3a *** empty log message *** 2000-05-07 21:03:19 +00:00
Jim Meyering
03faf39b22 Use UTC0, not just UTC, required for alphaev56-dec-osf4.0f. 2000-05-07 21:02:56 +00:00
Jim Meyering
acd3390874 *** empty log message *** 2000-05-07 15:02:30 +00:00
Jim Meyering
c263f45884 . 2000-05-07 15:00:48 +00:00
Jim Meyering
a41b145094 *** empty log message *** 2000-05-07 15:00:20 +00:00
Jim Meyering
661f74698e Include "closeout.h".
(usage): Call close_stdout just before exit.
2000-05-07 15:00:12 +00:00
Jim Meyering
c6b0fefde1 Include "closeout.h".
(main): Call atexit with close_stdout.
2000-05-07 14:57:52 +00:00
Jim Meyering
2d4fd1ab6e Include "closeout.h".
(main): Call atexit with close_stdout.
2000-05-07 14:57:24 +00:00
Jim Meyering
c4d7de4d1c (usage): Call close_stdout_status. 2000-05-07 14:57:03 +00:00
Jim Meyering
7942b60d47 Include "closeout.h".
(main): Call atexit with close_stdout.
2000-05-07 14:56:12 +00:00
Jim Meyering
c6bd79ad34 Include "closeout.h".
(main): Call atexit with close_stdout.
2000-05-07 14:55:15 +00:00
Jim Meyering
52150ef51d Include "closeout.h".
(main): Call atexit with close_stdout.
2000-05-07 14:54:43 +00:00
Jim Meyering
071e5e3b25 Include "closeout.h".
(main): Call atexit with close_stdout.
2000-05-07 14:53:15 +00:00
Jim Meyering
21f7f8fb60 Include "closeout.h".
(main): Call atexit with close_stdout.
2000-05-07 14:52:54 +00:00
Jim Meyering
1a898f0449 Include "closeout.h".
(main): Call atexit with close_stdout.
2000-05-07 14:52:16 +00:00
Jim Meyering
ab241ac3be Include "closeout.h".
(main): Call atexit with close_stdout.
2000-05-07 14:51:49 +00:00
Jim Meyering
d3683509b3 Include "closeout.h".
(main): Call atexit with close_stdout.
2000-05-07 14:51:07 +00:00
Jim Meyering
ddb8aa8b9f (usage): Call close_stdout_status. 2000-05-07 14:50:39 +00:00
Jim Meyering
73ed5ed51e Include "closeout.h".
(main): Call atexit with close_stdout.
2000-05-07 14:49:06 +00:00
Jim Meyering
a3d40a9447 Include "closeout.h".
(main): Call atexit with close_stdout.
2000-05-07 14:48:25 +00:00
Jim Meyering
309c1c3e47 Include "closeout.h".
(usage): Call close_stdout just before exit.
2000-05-07 14:47:44 +00:00
Jim Meyering
72bdac7271 Include "closeout.h".
(main): Call atexit with close_stdout.
2000-05-07 14:46:33 +00:00
Jim Meyering
f1013a1535 Include "closeout.h".
(main): Call atexit with close_stdout.
Remove explicit close_stdout.
2000-05-07 14:46:11 +00:00
Jim Meyering
e1133c7a28 Include "closeout.h".
(usage): Call close_stdout just before exit.
2000-05-07 14:41:19 +00:00
Jim Meyering
011b92f1c9 *** empty log message *** 2000-05-07 07:17:22 +00:00
Jim Meyering
5aa90a9946 ($Test::env{'rfc822-1'}): Add TZ=UTC. 2000-05-07 07:17:17 +00:00
Jim Meyering
c610f47650 . 2000-05-06 15:51:29 +00:00
Jim Meyering
d9e1e1dbd2 *** empty log message *** 2000-05-06 15:51:15 +00:00
Jim Meyering
b700e5cdfe *** empty log message *** 2000-05-06 15:45:33 +00:00
Jim Meyering
a83332dcd2 Undefine __strnlen and strnlen.
[!weak_alias]: Define __strnlen to strnlen.
2000-05-06 15:45:30 +00:00
Jim Meyering
20d55109b5 *** empty log message *** 2000-05-06 14:38:04 +00:00
Jim Meyering
95fad10ba3 (AC_REPLACE_FUNCS): Add strnlen. 2000-05-06 14:37:59 +00:00
Jim Meyering
e580f2a576 *** empty log message *** 2000-05-06 14:36:00 +00:00
Jim Meyering
0a63562cfa AC_REPLACE_FUNCS(atexit). 2000-05-06 14:35:16 +00:00
Jim Meyering
55b7281ec2 *** empty log message *** 2000-05-06 14:33:56 +00:00
Jim Meyering
b00705596d remove ifdef 2000-05-06 14:33:46 +00:00
Jim Meyering
6507fa63ce New file, from libiberty. 2000-05-06 14:33:22 +00:00
Jim Meyering
e074cde09b *** empty log message *** 2000-05-06 14:31:38 +00:00
Jim Meyering
9b6eb98d41 (EEXIST): Remove now-unused definition.
(ENOTEMPTY): Likewise.
(errno_rmdir_non_empty): Rewrite to use RMDIR_ERRNO_NOT_EMPTY,
which is determined by the autoconf test in m4/rmdir-errno.m4..
2000-05-06 14:31:32 +00:00
Jim Meyering
72efca1195 *** empty log message *** 2000-05-06 14:25:40 +00:00
Jim Meyering
884af44da8 (fetish_FUNC_RMDIR_NOTEMPTY): New macro and file. 2000-05-06 14:25:18 +00:00
Jim Meyering
c2a761780e Require fetish_FUNC_RMDIR_NOTEMPTY. 2000-05-06 14:25:07 +00:00
Jim Meyering
2c1ae1f436 . 2000-05-06 14:14:14 +00:00
Jim Meyering
ed0f130ea1 *** empty log message *** 2000-05-06 14:03:27 +00:00
Jim Meyering
a23b2bb948 (jm_FUNC_NANOSLEEP): Save and restore LIBS around
AC_SEARCH_LIBS call for nanosleep.
(LIB_NANOSLEEP): Set and AC_SUBST.
2000-05-06 14:03:19 +00:00
Jim Meyering
669034433d *** empty log message *** 2000-05-06 14:01:46 +00:00
Jim Meyering
97df7c4729 (AC_SYS_LARGEFILE): Define _XOPEN_SOURCE to
be 500, instead of _GNU_SOURCE to be 1, to work around glibc
2.1.3 bug.  This avoids a clash when files like regex.c define
_GNU_SOURCE.
2000-05-06 14:01:39 +00:00
Jim Meyering
6206ee75ea *** empty log message *** 2000-05-06 13:47:44 +00:00
Jim Meyering
6b54234726 (get_charset_aliases): Use malloc, realloc and memcpy
instead of xmalloc, xrealloc, path_concat.
(locale_charset): Treat empty environment variables as absent.
(DIRECTORY_SEPARATOR, ISSLASH): New macros.
2000-05-06 13:47:38 +00:00
Jim Meyering
c141f3a34e (main): Warn about arguments, don't fail.
(usage): Call close_stdout_status from here as well as from main.
2000-05-06 13:18:00 +00:00
Jim Meyering
3140984fab Include "closeout.h".
(main): Call close_stdout.
2000-05-05 21:55:32 +00:00
Jim Meyering
19c397acdc Include "closeout.h".
(main): Call close_stdout.
2000-05-05 21:53:41 +00:00
Jim Meyering
80b5341cb8 Include "closeout.h".
(main): Call close_stdout.
2000-05-05 21:52:22 +00:00
Jim Meyering
f2fde491db Include "closeout.h".
(main): Call close_stdout.
2000-05-05 21:51:02 +00:00
Jim Meyering
e1c98ab3fb Include "closeout.h".
(main): Call close_stdout.
2000-05-05 21:49:44 +00:00
Jim Meyering
be9e62c6e0 *** empty log message *** 2000-05-05 21:42:20 +00:00
Jim Meyering
df9a764cbd *** empty log message *** 2000-05-05 21:41:53 +00:00
Jim Meyering
3684b16708 Exit nonzero upon write failure.
Include "closeout.h".
(main): Call close_stdout.
Reported by Ian Jackson via Michael Stone.
2000-05-05 21:41:29 +00:00
Jim Meyering
7dad7fd5c6 *** empty log message *** 2000-05-05 21:41:11 +00:00
Jim Meyering
856071f1da *** empty log message *** 2000-05-05 21:41:03 +00:00
Jim Meyering
ff1e216579 *** empty log message *** 2000-05-05 16:33:33 +00:00
Jim Meyering
554b19b9d1 (jm_MACROS): Save and restore LIBS around AC_SEARCH_LIBS call for clock_gettime.
(LIB_CLOCK_GETTIME): Set and AC_SUBST.
2000-05-05 16:33:26 +00:00
Jim Meyering
98e69d378e *** empty log message *** 2000-05-05 16:10:41 +00:00
Jim Meyering
00c483746f remove commented-out m4_default clause 2000-05-05 16:10:22 +00:00
Jim Meyering
7d4bd8f671 Update from autoconf. 2000-05-05 16:10:03 +00:00
Jim Meyering
46b48d2e0e *** empty log message *** 2000-05-05 15:05:09 +00:00
Jim Meyering
87a766e71a *** empty log message *** 2000-05-05 11:39:31 +00:00
Jim Meyering
5d65fd5e99 su doesn't work on Solaris2.6.
When checking for struct spwd.sp_pwdp, also include
<shadow.h>.  Reported by Dragos Harabor.
2000-05-05 11:39:25 +00:00
Jim Meyering
6a4a7cfe00 *** empty log message *** 2000-05-05 11:38:34 +00:00
Jim Meyering
2961a41dc3 (my-distcheck): Remove spurious blank line.
Remove $(DEPDIR) *after* making distclean, not before.
2000-05-04 09:33:34 +00:00
Jim Meyering
a0f78c6a82 *** empty log message *** 2000-05-04 07:19:34 +00:00
Jim Meyering
3e5e4aa3ac update from glibc -- solely white space changes 2000-05-04 07:19:24 +00:00
Jim Meyering
f4d3d21b14 *** empty log message *** 2000-05-04 07:13:40 +00:00
Jim Meyering
6a0899b4b6 filter through cppi 2000-05-04 07:12:59 +00:00
Jim Meyering
3d21ae4853 Update from glibc. 2000-05-04 07:12:43 +00:00
Jim Meyering
6405a85879 *** empty log message *** 2000-05-04 07:06:49 +00:00
Jim Meyering
91aee8ad4d Update from glibc. 2000-05-04 07:06:42 +00:00
Jim Meyering
3c13ac6c36 Update from glibc. 2000-05-04 06:41:26 +00:00
Jim Meyering
0605601f99 *** empty log message *** 2000-05-04 06:36:10 +00:00
Jim Meyering
c8fa96131e update from glibc 2000-05-04 06:35:49 +00:00
Jim Meyering
cea745beaa New file, from glibc. 2000-05-04 06:34:23 +00:00
Jim Meyering
647d5e6a70 *** empty log message *** 2000-05-04 05:35:04 +00:00
Jim Meyering
b53fe736bc Update from glibc. 2000-05-04 05:34:55 +00:00
Jim Meyering
f7fcc8c622 *** empty log message *** 2000-05-03 11:12:54 +00:00
Jim Meyering
be579a52e7 During ls, set LANGUAGE (for GNU gettext)
and LC_ALL (for systems which look at LC_MESSAGES).
2000-05-03 11:10:32 +00:00
Jim Meyering
c2262fcd90 use rm, not $RM 2000-05-03 11:09:07 +00:00
Jim Meyering
93e3e3a5a8 Define LC_ALL instead of LANG, in case the user has
LC_CTYPE or LC_ALL set. Define it and LANGUAGE before the first "sort" call.
2000-05-03 11:07:51 +00:00
Jim Meyering
92d235c21a Remove declaration of strndup. 2000-05-03 08:40:33 +00:00
Jim Meyering
900011c7de *** empty log message *** 2000-05-03 08:39:29 +00:00
Jim Meyering
0cb358268d *** empty log message *** 2000-05-03 08:37:57 +00:00
Jim Meyering
e6d69926e6 (!HAVE_DECL_STRNDUP): Declare strndup. 2000-05-03 08:37:40 +00:00
Jim Meyering
7e3bd1d897 *** empty log message *** 2000-05-03 08:37:11 +00:00
Jim Meyering
cd8042a77c (AC_CHECK_DECLS): Add strndup. 2000-05-03 08:37:03 +00:00
Jim Meyering
44bdb2f05a *** empty log message *** 2000-05-03 08:30:24 +00:00
Jim Meyering
38a059bf64 (AC_SYS_LARGEFILE): Define _GNU_SOURCE if
this is needed to make ftello visible (e.g. glibc 2.1.3).  Use
compile-time test, rather than inspecting host and OS, to
decide whether to define _LARGEFILE_SOURCE.
2000-05-03 08:30:18 +00:00
Jim Meyering
950eba9ba0 . 2000-05-02 14:07:39 +00:00
Jim Meyering
5fdc4f4666 *** empty log message *** 2000-05-02 06:57:00 +00:00
Jim Meyering
4c69db64f2 don't hard-code `rm' 2000-05-02 06:56:31 +00:00
Jim Meyering
acd9c429c0 (usage): Add the answer to `How do I remove a file named -f?' 2000-05-02 06:55:49 +00:00
Jim Meyering
e0263e15f1 *** empty log message *** 2000-05-01 14:59:21 +00:00
Jim Meyering
cb58624cef (full_write): Remove `FIXME' part of comment. 2000-05-01 14:40:08 +00:00
Jim Meyering
c488f85c66 *** empty log message *** 2000-05-01 14:15:17 +00:00
Jim Meyering
aa435d9982 *** empty log message *** 2000-05-01 14:10:38 +00:00
Jim Meyering
624dd54796 (change_attributes): Don't remove the destination file upon failure. 2000-05-01 14:09:19 +00:00
Jim Meyering
ef34c8704c [checked in with intention to back out...]
(change_attributes): Unlink the destination file
if either of the chown or the chmod calls fails.  Don't even attempt
the chmod if the chown fails.
Suggestion from Marc Olzheim.
2000-05-01 13:55:09 +00:00
Jim Meyering
b0d42f0a5c . 2000-05-01 11:40:52 +00:00
Jim Meyering
3491fe9797 *** empty log message *** 2000-05-01 08:36:29 +00:00
Jim Meyering
951abbe274 Use AC_MSG_CHECKING instead of obsolete AC_CHECKING. 2000-05-01 08:36:13 +00:00
Jim Meyering
392dd7af09 fix typos 2000-05-01 08:32:35 +00:00
Jim Meyering
9561e02b6a *** empty log message *** 2000-05-01 08:29:38 +00:00
Jim Meyering
e6bf5ecaf8 (jm_LIST_MOUNTED_FILESYSTEMS): Add BeOS support.
Based on a patch from Bruno Haible.
2000-05-01 08:29:28 +00:00
Jim Meyering
e511c84abe (read_filesystem_list): Add BeOS support. 2000-05-01 08:03:33 +00:00
Jim Meyering
cc5b8b2e79 (jm_LIST_MOUNTED_FILESYSTEMS): Add BeOS support. 2000-05-01 07:58:34 +00:00
Jim Meyering
56b16d84df *** empty log message *** 2000-04-30 21:48:27 +00:00
Jim Meyering
034fbbd8ac (O_NOCTTY): Define if not defined already.
(touch): Add O_NOCTTY to the flags passed to open.
2000-04-30 21:48:23 +00:00
Jim Meyering
a65db32955 . 2000-04-30 16:25:54 +00:00
Jim Meyering
72d2131b0e . 2000-04-30 16:25:30 +00:00
Jim Meyering
2edc7371bc *** empty log message *** 2000-04-30 16:25:24 +00:00
Jim Meyering
5e7a7d23f5 . 2000-04-30 16:24:00 +00:00
Jim Meyering
d0e30069c0 *** empty log message *** 2000-04-30 16:20:57 +00:00
Jim Meyering
9a7f0b1542 tweak comment 2000-04-30 16:19:57 +00:00
Jim Meyering
9a909400ba Detect and terminate upon write failure. 2000-04-30 16:19:06 +00:00
Jim Meyering
9e60f6cc06 alphabetize 2000-04-30 11:19:35 +00:00
Jim Meyering
721b2cb881 *** empty log message *** 2000-04-29 10:18:29 +00:00
Jim Meyering
b958bd6f2b [LSTAT_FOLLOWS_SLASHED_SYMLINK] (lstat): Define to rpl_lstat. 2000-04-29 10:17:42 +00:00
Jim Meyering
8e3be9e25c use an all-symbolic mode string 2000-04-29 09:37:44 +00:00
Jim Meyering
d6254a86bf *** empty log message *** 2000-04-29 09:25:58 +00:00
Jim Meyering
cf251ff75b Declare strdup only if it's not defined. 2000-04-29 09:25:09 +00:00
Jim Meyering
f79c0f977e *** empty log message *** 2000-04-29 08:44:40 +00:00
Jim Meyering
16d019fb86 *** empty log message *** 2000-04-29 08:44:11 +00:00
Jim Meyering
8d8135769a *** empty log message *** 2000-04-28 16:50:24 +00:00
Jim Meyering
8b37ad9c5b [HAVE_LIMITS_H]: Include limits.h before regex.h to avoid
redefinition warning on some systems (HPUX).  Otherwise, regex.h is
included first, then limits.h is included by locale.h by libintl.h.
From John David Anglin.
2000-04-28 16:49:38 +00:00
Jim Meyering
c249f854de *** empty log message *** 2000-04-27 12:27:08 +00:00
Jim Meyering
4954d34c14 (pop_dir): Remove through_symlink arg; use null cwd
for that purpose instead.
(count_entry): Also save the directory if we're saving more
than one level.
Fix file descriptor and memory leak when chdir fails.
2000-04-27 12:23:59 +00:00
Jim Meyering
e9c9e0f9e5 . 2000-04-27 12:19:38 +00:00
Jim Meyering
01a1964a1c *** empty log message *** 2000-04-27 12:17:43 +00:00
Jim Meyering
063bdf481b *** empty log message *** 2000-04-27 12:15:23 +00:00
Jim Meyering
cc9a042dfd . 2000-04-27 12:13:20 +00:00
Jim Meyering
a105fb3c17 *** empty log message *** 2000-04-27 12:13:11 +00:00
Jim Meyering
c0e74f9b48 *** empty log message *** 2000-04-27 12:12:42 +00:00
Jim Meyering
f5e968f6cd fix typo 2000-04-27 12:10:38 +00:00
Jim Meyering
fa3bb4033b *** empty log message *** 2000-04-27 12:09:44 +00:00
Jim Meyering
455d9ad4ed Use mkdir, not $MKDIR. 2000-04-27 12:08:59 +00:00
Jim Meyering
375abb3590 (TESTS_ENVIRONMENT): Set PATH, not MKDIR. 2000-04-27 12:08:19 +00:00
Jim Meyering
a3e7716e04 *** empty log message *** 2000-04-27 08:31:18 +00:00
Jim Meyering
c500f8c996 *** empty log message *** 2000-04-27 06:47:05 +00:00
Jim Meyering
a3029aba6b tweak comment 2000-04-27 06:46:13 +00:00
Jim Meyering
56b185d9b3 *** empty log message *** 2000-04-27 06:44:20 +00:00
Jim Meyering
5bb0a21123 *** empty log message *** 2000-04-27 06:36:05 +00:00
Jim Meyering
8a6dd8bf13 *** empty log message *** 2000-04-27 06:34:07 +00:00
Jim Meyering
758eab108f *** empty log message *** 2000-04-27 06:30:59 +00:00
Jim Meyering
862b31c48a (TESTS): Add special-1. 2000-04-27 06:30:26 +00:00
Jim Meyering
30eb4cf648 *** empty log message *** 2000-04-26 21:59:34 +00:00
Jim Meyering
29f4f9a5ac *** empty log message *** 2000-04-26 21:59:01 +00:00
Jim Meyering
d3057155d5 *** empty log message *** 2000-04-26 12:55:48 +00:00
Jim Meyering
8735a6823f *** empty log message *** 2000-04-26 12:54:26 +00:00
Jim Meyering
d89bb4e01a *** empty log message *** 2000-04-26 12:52:54 +00:00
Jim Meyering
0cd61ad840 *** empty log message *** 2000-04-26 12:43:19 +00:00
Jim Meyering
5aeb94aeb4 Rename global: s/path_mode/create_parents/.
(main): No longer perform explicit chmod when creating
parent directories, since make_path now does the chmod.
2000-04-26 12:43:12 +00:00
Jim Meyering
2f4177fa6b . 2000-04-26 12:36:49 +00:00
Jim Meyering
eddd846acb (S_IRWXUGO): Define.
(make_path): Always perform explicit chmod if MODE specifies any
of the `special' permission bits.
2000-04-26 12:36:43 +00:00
Jim Meyering
84013f9573 *** empty log message *** 2000-04-19 15:36:15 +00:00
Jim Meyering
98f5206a61 [__BEOS__]: Ignore O_BINARY and O_TEXT. 2000-04-19 15:36:05 +00:00
Jim Meyering
58be6ceff4 *** empty log message *** 2000-04-18 17:28:34 +00:00
Jim Meyering
97a6cf3999 add comment 2000-04-18 13:41:26 +00:00
Jim Meyering
40f30dc54b *** empty log message *** 2000-04-18 13:40:29 +00:00
Jim Meyering
833f309376 [!getpagesize && HAVE_OS_H && B_PAGE_SIZE]: Define getpagesize.
For BeOS.  Based on a patch from Bruno Haible.
2000-04-18 13:40:25 +00:00
Jim Meyering
72b3b743fe *** empty log message *** 2000-04-18 13:35:22 +00:00
Jim Meyering
0952a8a7bc (jm_PREREQ_GETPAGESIZE): New macro.
(jm_PREREQ): Use it.
2000-04-18 13:35:18 +00:00
Jim Meyering
be7efadaf2 *** empty log message *** 2000-04-17 11:39:36 +00:00
Jim Meyering
d2caf6a98c (my_strftime) [strftime]: Declare strftime here, since the definition
of it to rpl_strftime also defined-away the system's declaration.
2000-04-17 11:39:26 +00:00
Jim Meyering
c2981f6507 . 2000-04-17 11:26:33 +00:00
Jim Meyering
14aece6661 *** empty log message *** 2000-04-17 09:56:02 +00:00
Jim Meyering
eddd7f971f Get it right :-)
(jm_CHECK_ALL_TYPES) [_GNU_SOURCE]: Emit the
actual #define via AH_VERBATIM.  Don't need separate AC_DEFINE.
Suggestion from Akim Demaille.
2000-04-17 09:55:53 +00:00
Jim Meyering
df85b33ee3 Accept new option: --from=CURRENT_OWNER:CURRENT_GROUP.
(enum) [FROM_OPTION]: New member.
(long_options): New getopt spec.
(change_file_owner): Add old_user, old_group parameters.  Use them.
(change_dir_owner): Likewise.
(usage): Describe.
(main): New case.
2000-04-17 08:19:52 +00:00
Jim Meyering
d37e7835f9 Don't remove support for --max-consecutive-size-changes just yet... 2000-04-17 06:49:07 +00:00
Jim Meyering
d6df2d8561 *** empty log message *** 2000-04-16 16:28:46 +00:00
Jim Meyering
db01eaed39 (tail invocation): Remove description. 2000-04-16 16:03:44 +00:00
Jim Meyering
a423a1374f Remove option: --max-consecutive-size-changes=N.
Doesn't seem useful.
(usage): Remove description.
2000-04-16 16:03:34 +00:00
Jim Meyering
56dc5651a4 *** empty log message *** 2000-04-16 13:51:27 +00:00
Jim Meyering
c559eefb84 New option: --strip-trailing-slashes.
(enum) [STRIP_TRAILING_SLASHES_OPTION]: New member.
(remove_trailing_slashes): New global.
(long_opts): New getopt spec.
(usage): Describe.
(do_copy): Strip trailing slashes on SOURCE names only if the new
option has been specified.
(main): New case.
2000-04-16 13:51:22 +00:00
Jim Meyering
517e8a6bc2 (TESTS): Add symlink-slash. 2000-04-16 13:49:22 +00:00
Jim Meyering
88a6b99b8d *** empty log message *** 2000-04-16 13:48:38 +00:00
Jim Meyering
125de05913 add comment 2000-04-16 12:16:03 +00:00
Jim Meyering
496e09185a . 2000-04-15 22:04:06 +00:00
Jim Meyering
757de7fe90 *** empty log message *** 2000-04-15 21:58:37 +00:00
Jim Meyering
bb53ccc5e9 Use C' to denote so-called contiguous' files, the same way that tar does.
* filemode.c (S_ISCTG) [!S_ISCTG && S_IFCTG]: Define.
(ftypelet): Use S_ISCTG.
2000-04-15 21:54:46 +00:00
Jim Meyering
9fc7c63a5a *** empty log message *** 2000-04-15 21:48:58 +00:00
Jim Meyering
10acebe2cb tweak copyright date 2000-04-14 16:12:16 +00:00
Jim Meyering
d02b8ea082 *** empty log message *** 2000-04-14 15:42:02 +00:00
Jim Meyering
a71d7cdd14 (jm_CHECK_ALL_TYPES) [_GNU_SOURCE]: Use the one-arg form
of AC_DEFINE.  Otherwise, the #ifndef in AH_VERBATIM gets clobbered.
2000-04-14 15:41:06 +00:00
Jim Meyering
2e469b088b Shorten #ifdef HAVE_...' to #if HAVE_...' and
remove unnecessary uses of `defined' (aesthetics).
2000-04-14 12:41:05 +00:00
Jim Meyering
d5066f22eb *** empty log message *** 2000-04-13 08:37:57 +00:00
Jim Meyering
9ac210f6a7 . 2000-04-13 08:34:47 +00:00
Jim Meyering
a3c2775889 . 2000-04-13 08:16:13 +00:00
Jim Meyering
7ae95c0ff8 *** empty log message *** 2000-04-13 08:15:07 +00:00
Jim Meyering
12ec89c0e3 (jm_CHECK_ALL_TYPES) [_GNU_SOURCE]: Use new AH_VERBATIM
to insert required #ifndef into config.h.in.
Suggestion from Akim Demaille.
2000-04-13 08:15:01 +00:00
Jim Meyering
6157486144 *** empty log message *** 2000-04-12 16:03:53 +00:00
Jim Meyering
4add54834d (AM_FUNC_GETLOADAVG): Use AC_CHECK_HEADERS, not
`AC_CHECK_HEADER' to check for locale.h.  Thanks to a report from
Christian Krackowizer.
2000-04-12 16:03:20 +00:00
Jim Meyering
f03b3e48ea (usage): Tweak --help output. Suggestions from Karl Berry. 2000-04-12 09:50:20 +00:00
Jim Meyering
50a68130a3 *** empty log message *** 2000-04-12 06:21:06 +00:00
Jim Meyering
088ab165c7 *** empty log message *** 2000-04-12 06:19:55 +00:00
Jim Meyering
b08487e513 (_GNU_SOURCE): Define.
(AC_SYS_LARGEFILE): Require.
(AM_C_PROTOTYPES): Require.
2000-04-12 06:19:45 +00:00
Jim Meyering
29d6a0aa75 *** empty log message *** 2000-04-11 09:27:38 +00:00
Jim Meyering
85846c1ba1 use bc in example, not dc 2000-04-10 09:20:49 +00:00
Jim Meyering
42b1404b54 . 2000-04-10 07:09:24 +00:00
Jim Meyering
9516237211 *** empty log message *** 2000-04-09 18:15:46 +00:00
Jim Meyering
b518fdab61 *** empty log message *** 2000-04-09 09:14:05 +00:00
Jim Meyering
290fd86565 Include constants.texi.
(tail invocation): Use `@value's instead of referring to the
output of `tail --help'.
2000-04-09 09:13:42 +00:00
Jim Meyering
b6d1fca450 (usage): Clarify descriptions of the --max-* options.
From Karl Berry.
2000-04-09 09:10:36 +00:00
Jim Meyering
844f0224f0 *** empty log message *** 2000-04-09 07:41:18 +00:00
Jim Meyering
e3d82c6734 *** empty log message *** 2000-04-09 07:35:39 +00:00
Jim Meyering
d219e87e72 . 2000-04-09 07:33:52 +00:00
Jim Meyering
545a2cbc66 *** empty log message *** 2000-04-09 07:33:30 +00:00
Jim Meyering
e6701bae6d Use the "C" locale when using --rfc-822 (-R), as
required by rfc822.  Before, in the de_DE locale, date would
print the German weekday and month abbreviations.
2000-04-09 07:33:25 +00:00
Jim Meyering
0145667581 Add test for rfc822 format and foreign locale settings. 2000-04-08 21:45:25 +00:00
Jim Meyering
a641eab06a *** empty log message *** 2000-04-08 19:36:46 +00:00
Jim Meyering
7beb8ac8aa *** empty log message *** 2000-04-08 19:35:38 +00:00
Jim Meyering
8debb843b6 (factor): Use a better example 2000-04-08 19:28:49 +00:00
Jim Meyering
c908124639 Document the ln=target directive. 2000-04-08 19:04:00 +00:00
Jim Meyering
5c7059a33a Add support for "ln=target" in the LS_COLORS variable,
to colorize links as for the file/directory pointed to.
2000-04-08 19:03:29 +00:00
Jim Meyering
6c60fb0a7a *** empty log message *** 2000-04-08 06:46:32 +00:00
Jim Meyering
650ea2e0b4 Document that while the --backup option takes an
optional argument, the -b option accepts none.
(main): Use `backup type' in call to xget_version, not the
now-deprecated `--version-control'.
2000-04-08 06:46:20 +00:00
Jim Meyering
ca59fb27c2 Document that while the --backup option takes an
optional argument, the -b option accepts none.
(main): Use `backup type' in call to xget_version, not the
now-deprecated `--version-control'.
2000-04-08 06:45:48 +00:00
Jim Meyering
19aa1f8a25 . 2000-04-08 06:44:35 +00:00
Jim Meyering
4cfab8f932 *** empty log message *** 2000-04-08 06:34:06 +00:00
Jim Meyering
edcc5eb997 (charset.alias): Use t-$@, not $@-t so the DOS 8.3
names don't conflict.  Reported by Eli Zaretskii.
2000-04-08 06:34:02 +00:00
Jim Meyering
437a783072 . 2000-04-08 06:31:38 +00:00
Jim Meyering
9a16820c87 *** empty log message *** 2000-04-07 09:41:51 +00:00
Jim Meyering
6b0a7a91d4 (print_unicode_char): Avoid triggering Solaris iconv bug.
Deal with the different error behaviour of Irix iconv.
2000-04-07 09:41:38 +00:00
Jim Meyering
4259b70042 Move inclusion of errno.h so it follows that of sys/types.h,
to work around system header problems on AIX 3.2.5.  From Bruno Haible.
2000-04-07 09:24:18 +00:00
Jim Meyering
5cb8c8c0a0 . 2000-04-07 08:45:27 +00:00
Jim Meyering
043d1c865c add a node for hostid 2000-04-06 19:27:04 +00:00
Jim Meyering
9394a8280f . 2000-04-06 13:39:07 +00:00
Jim Meyering
c846dbf402 *** empty log message *** 2000-04-06 06:56:05 +00:00
Jim Meyering
826dcda9c4 (AC_SYS_LARGEFILE_FLAGS): Don't use -n32 on
IRIX if the installer said otherwise.
2000-04-06 06:55:14 +00:00
Jim Meyering
31ecd03e51 fix two typos. Duh 2000-04-05 15:22:04 +00:00
Jim Meyering
0fcc2606dd *** empty log message *** 2000-04-05 15:16:27 +00:00
Jim Meyering
bea19ce09c [!HAVE_UTMPX_H] (headers): Include <utmp.h>.
(jm_CHECK_DECLS): Add getutent to the list of functions.
(_jm_DECL_HEADERS): Add utmpx.h.
2000-04-05 15:14:28 +00:00
Jim Meyering
4208ee3490 Declare strdup. 2000-04-05 15:08:11 +00:00
Jim Meyering
f7cfce8952 [HAVE_UTMPX_H && !HAVE_DECL_GETUTENT]: Declare getutent. 2000-04-05 15:05:54 +00:00
Jim Meyering
ff9b9b202c Include sys/types.h before sys/stat.h.
Required for ultrix4.3.
2000-04-05 15:00:11 +00:00
Jim Meyering
594b06988b (canon_host): Declare strdup. Required for ultrix4.3. 2000-04-05 14:57:36 +00:00
Jim Meyering
faf92299a0 *** empty log message *** 2000-04-05 14:57:07 +00:00
Jim Meyering
98dd4a3867 . 2000-04-05 12:44:02 +00:00
Jim Meyering
8661f4d615 *** empty log message *** 2000-04-05 12:25:13 +00:00
Jim Meyering
7354c6077f Back out the 2000-04-02 change.
Instead of that change, simply undefine putenv in the test program.
2000-04-05 12:13:59 +00:00
Jim Meyering
48c6dffe80 Back out the 2000-04-02 change. 2000-04-05 11:50:48 +00:00
Jim Meyering
cc7186a919 *** empty log message *** 2000-04-04 20:18:42 +00:00
Jim Meyering
5c1001fdc5 *** empty log message *** 2000-04-04 20:15:42 +00:00
Jim Meyering
6803a71d89 *** empty log message *** 2000-04-04 20:14:16 +00:00
Jim Meyering
534deab287 *** empty log message *** 2000-04-04 12:58:57 +00:00
Jim Meyering
b9db9921b8 Be more DOS 8.3-friendly.
* ref-add.sin: Renamed from ref-add.sed.in.
* ref-del.sin: Renamed from ref-del.sed.in.
* Makefile.am: Reflect renaming.
2000-04-04 12:58:49 +00:00
Jim Meyering
c36284c505 renamed to ref-del.sin 2000-04-04 12:50:59 +00:00
Jim Meyering
a1eb481256 renamed from ref-del.sed.in 2000-04-04 12:50:59 +00:00
Jim Meyering
26bcc7757c renamed to ref-add.sin 2000-04-04 12:50:44 +00:00
Jim Meyering
6dd8936868 renamed from ref-add.sed.in 2000-04-04 12:50:44 +00:00
Jim Meyering
32ff553652 Use a temporary file name that won't clash with `charset.alias'
in the DOS 8.3 name space.

(charset_tmp): Define.
(install-exec-local): Use $(charset_tmp) instead of $(charset_alias)-t.
(uninstall-local): Likewise.
Reported by Eli Zaretskii.
2000-04-04 12:47:19 +00:00
Jim Meyering
7fc37fe5ec Split a long line and tweak for font-lock mode. 2000-04-04 07:59:24 +00:00
Jim Meyering
655b4e6409 *** empty log message *** 2000-04-04 07:59:08 +00:00
Jim Meyering
0fe3b0fe41 Split a long line and tweak for font-lock mode. 2000-04-04 07:58:21 +00:00
Jim Meyering
92f6a5cd8e Split a long line and tweak for font-lock mode. 2000-04-04 07:55:37 +00:00
Jim Meyering
dfddef17ac *** empty log message *** 2000-04-03 19:35:28 +00:00
Jim Meyering
d10be8f4db Fix typo in comment. 2000-04-03 19:35:24 +00:00
Jim Meyering
1461770971 . 2000-04-03 12:56:15 +00:00
Jim Meyering
1f665cff54 *** empty log message *** 2000-04-03 12:18:37 +00:00
Jim Meyering
e287f40259 *** empty log message *** 2000-04-03 08:06:02 +00:00
Jim Meyering
af404ff8ce *** empty log message *** 2000-04-03 07:48:11 +00:00
Jim Meyering
1ce828da28 (AC_CHECK_HEADERS): Add langinfo.h (moved here from
textutils/configure.in).  Suggestion from Paul Eggert.
(AC_CHECK_FUNCS): Add nl_langinfo.  (also from textutils/configure.in)
2000-04-03 07:48:06 +00:00
Jim Meyering
073977f69f (AC_CHECK_HEADERS): Remove langinfo.h -- put it in codeset instead.
(AC_CHECK_FUNCS): Likewise for nl_langinfo.
2000-04-03 07:46:51 +00:00
Jim Meyering
5ca6863e97 Include <langinfo.h> if it exists.
(DATE_FMT_LANGINFO): New macro.
(show_date): Use it to get the locale-specific default format for
"date" if it exists.
2000-04-03 07:38:41 +00:00
Jim Meyering
afe1e8e126 *** empty log message *** 2000-04-03 07:32:07 +00:00
Jim Meyering
5641f6257f (_jm_STRFTIME_PREREQS): Check for strftime,
since strftime.c uses HAVE_STRFTIME to decide whether to use
the underlying strftime.
2000-04-03 07:31:59 +00:00
Jim Meyering
ce3986e75a *** empty log message *** 2000-04-03 07:26:43 +00:00
Jim Meyering
f4d87ce11c (AC_CHECK_FUNCS): Add nl_langinfo. (also from textutils/configure.in) 2000-04-03 07:26:38 +00:00
Jim Meyering
8ecf5893e6 *** empty log message *** 2000-04-03 07:25:23 +00:00
Jim Meyering
321402c5a8 *** empty log message *** 2000-04-03 07:20:44 +00:00
Jim Meyering
3ce4615d65 (AC_CHECK_HEADERS): Add langinfo.h (moved here from textutils/configure.in). 2000-04-03 07:20:38 +00:00
Jim Meyering
0d5a8f6bb7 *** empty log message *** 2000-04-03 07:10:21 +00:00
Jim Meyering
dda6851673 (my_strftime): Make sure we call the system
strftime, not ourselves, when invoking the underlying strftime.
2000-04-03 07:09:38 +00:00
Jim Meyering
3feb52cde7 *** empty log message *** 2000-04-03 06:24:31 +00:00
Jim Meyering
096f314e1d (jm_FUNC_GNU_STRFTIME): Set TZ environment
variable in the shell rather than using putenv, which isn't
portable.  This avoids the configure-time inter-test dependency
on the potentially-renamed putenv function.
2000-04-03 06:24:20 +00:00
Jim Meyering
f22bce320b *** empty log message *** 2000-04-02 21:00:30 +00:00
Jim Meyering
527fd8d7d2 (jm_CHECK_ALL_TYPES): Include <sys/stat.h>
before checking struct stat.st_blksize, so that
HAVE_STRUCT_STAT_ST_BLKSIZE is defined correctly.
2000-04-02 21:00:24 +00:00
Jim Meyering
f016b20824 *** empty log message *** 2000-03-25 21:18:57 +00:00
Jim Meyering
251caade33 . 2000-03-25 18:33:17 +00:00
Jim Meyering
7d06f9cd1e back out last change 2000-03-25 18:26:47 +00:00
Jim Meyering
e23fcf2db0 *** empty log message *** 2000-03-24 09:07:18 +00:00
Jim Meyering
b217f05541 (jm_MACROS): Invoke `AC_CONFIG_AUX_DIR(.)' to work
around bug that made cvs-automake complain it couldn't find lib/depcomp.
2000-03-24 09:07:12 +00:00
Jim Meyering
8c0a8b888f . 2000-03-24 08:50:13 +00:00
Jim Meyering
b896219d87 . 2000-03-24 06:40:29 +00:00
Jim Meyering
eb42da51bb Output a line containing "Packages using this file". 2000-03-24 06:40:23 +00:00
Jim Meyering
d808469d48 *** empty log message *** 2000-03-24 06:39:31 +00:00
Jim Meyering
a0fc5566dd *** empty log message *** 2000-03-24 06:39:01 +00:00
Jim Meyering
e0ca9372fc (EXTRA_DIST): Add ref-add.sed.in and ref-del.sed.in.
(charset_alias): Define.
(install-exec-local): Factor out common code.
(uninstall-local): Split lines longer than 80.
(ref-add.sed, ref-del.sed): Remove rules... (do the following instead)
(SUFFIXES): Define.
(.sed.in.sed): New rule.  Don't redirect directly to $@.
(CLEANFILES): Add ref-add.sed and ref-del.sed.
2000-03-24 05:54:46 +00:00
Jim Meyering
a8bc6aee1c (install-exec-local, uninstall-local, ref-add.sed, ref-del.sed): New rules.
From Bruno.
2000-03-24 05:46:01 +00:00
Jim Meyering
355fad3e85 *** empty log message *** 2000-03-22 21:46:50 +00:00
Jim Meyering
b1a90bfff4 tiny tweak 2000-03-19 19:01:23 +00:00
Jim Meyering
100cfd502c *** empty log message *** 2000-03-19 19:00:17 +00:00
Jim Meyering
fc6d3b5995 a little more chroot help 2000-03-19 18:59:24 +00:00
Jim Meyering
5cb40b6726 add simple chroot example 2000-03-19 17:57:16 +00:00
Jim Meyering
784f0940b8 *** empty log message *** 2000-03-19 17:44:47 +00:00
Jim Meyering
3cb1bf80e0 *** empty log message *** 2000-03-19 17:44:23 +00:00
Jim Meyering
137c01c9a8 fix typos (dates not the same) 2000-03-19 17:43:30 +00:00
Jim Meyering
4433751d7a fix typos from
ceder@lysator.liu.se (Per Cederqvist)
2000-03-19 17:43:01 +00:00
Jim Meyering
a13954f7a6 *** empty log message *** 2000-03-19 16:25:47 +00:00
Jim Meyering
98b6b3780b *** empty log message *** 2000-03-18 16:55:05 +00:00
Jim Meyering
11f11947b5 (print_uptime): Use `buf' only if fgets succeeds. 2000-03-18 16:54:18 +00:00
Jim Meyering
01c42af175 . 2000-03-17 21:26:31 +00:00
Jim Meyering
00a6ef7e2e (<string.h>): Include only #if HAVE_STRING_H.
Otherwise, include <strings.h>
2000-03-17 19:34:16 +00:00
Jim Meyering
03bc0dd04d (utf8_wctomb): New function.
(print_unicode_char): Pass the Unicode character to iconv in UTF-8
format instead of in UCS-4 with platform dependent endianness.
2000-03-17 19:32:27 +00:00
Jim Meyering
4587e728aa *** empty log message *** 2000-03-17 15:23:06 +00:00
Jim Meyering
40847a559f *** empty log message *** 2000-03-12 20:09:53 +00:00
Jim Meyering
4c1d48cbfc *** empty log message *** 2000-03-12 20:08:01 +00:00
Jim Meyering
2b195e22bd *** empty log message *** 2000-03-12 20:07:39 +00:00
Jim Meyering
eb31b32e80 Merge from textutils.
(O_BINARY, O_TEXT): Define if necessary.
(SET_BINARY, SET_BINARY2): Define.
(DEV_BSIZE): Define to BBSIZE if appropriate.
2000-03-12 20:07:17 +00:00
Jim Meyering
83a446e62a *** empty log message *** 2000-03-12 20:04:35 +00:00
Jim Meyering
fb190362cc describe seq gotcha re FP arith 2000-03-12 17:54:52 +00:00
Jim Meyering
d21d0a4c04 *** empty log message *** 2000-03-12 17:31:57 +00:00
Jim Meyering
5e62fc320b (usage): Correct --help output. 2000-03-12 17:31:52 +00:00
Jim Meyering
7386ed8bd1 *** empty log message *** 2000-03-12 17:31:33 +00:00
Jim Meyering
ff9b51c885 . 2000-03-12 06:39:40 +00:00
Jim Meyering
85f656db4c . 2000-03-11 22:06:31 +00:00
Jim Meyering
63229c0a0d . 2000-03-11 16:30:59 +00:00
Jim Meyering
10cec9669d *** empty log message *** 2000-03-11 16:18:05 +00:00
Jim Meyering
9370e7d2a8 Set the default TZ value to UTC0, not UTC.
The latter didn't have any effect on alphaev56-dec-osf4.0f.
2000-03-11 16:17:25 +00:00
Jim Meyering
3b89449b19 *** empty log message *** 2000-03-11 11:21:41 +00:00
Jim Meyering
010641f8b7 Make the message more like that in the similar touch and shred tests. 2000-03-10 11:56:25 +00:00
Jim Meyering
527dcb236a *** empty log message *** 2000-03-10 11:53:29 +00:00
Jim Meyering
55746a425e Accommodate SunOS-NFS-mounting-OpenBSD mkfifo
bug and `exit 77' if the fifo cannot be created.
Report and suggestion from Volker Borchert.
2000-03-10 11:53:22 +00:00
Jim Meyering
41d063607c *** empty log message *** 2000-03-10 11:40:29 +00:00
Jim Meyering
113a192da5 *** empty log message *** 2000-03-10 09:09:34 +00:00
Jim Meyering
293d7ffa73 *** empty log message *** 2000-03-10 09:09:08 +00:00
Jim Meyering
a63b8f03f4 Look for getspnam in -lgen, too. 2000-03-10 09:08:53 +00:00
Jim Meyering
ff1b77a70a *** empty log message *** 2000-03-08 14:50:11 +00:00
Jim Meyering
7157c29ee8 (savedir): Work even if directory size is
negative; this can happen with some screwy NFS configurations.
2000-03-08 14:50:05 +00:00
Jim Meyering
45b3b0a96d . 2000-03-08 10:41:04 +00:00
Jim Meyering
b65f84bf94 tweak indentation 2000-03-07 20:06:03 +00:00
Jim Meyering
9ebf9199a4 (get_charset_aliases): Don't try to free file_name
if it's NULL (because we ran out of memory).  From Bruno Haible.
2000-03-06 11:19:23 +00:00
Jim Meyering
a688ad3b57 *** empty log message *** 2000-03-06 06:21:08 +00:00
Jim Meyering
57bb2e656e (struct buffer.newline_free): New member.
(initbuf, findlines): Set it.
(fillbuf): Do not double the size of a full buffer to append a newline
unless the buffer is known to be newline free.
2000-03-06 06:20:59 +00:00
Jim Meyering
12ad88f5c1 *** empty log message *** 2000-03-05 10:39:50 +00:00
Jim Meyering
8f717f92aa *** empty log message *** 2000-03-05 10:39:33 +00:00
Jim Meyering
fac78c4d0c *** empty log message *** 2000-03-05 10:37:53 +00:00
Jim Meyering
0d672bf048 *** empty log message *** 2000-03-05 10:27:29 +00:00
Jim Meyering
b7d59be6a4 ("path-concat.h"): Include.
(get_charset_aliases): Use path_concat instead of ANSI string
concatenation.
2000-03-05 10:27:22 +00:00
Jim Meyering
7206cd3b01 *** empty log message *** 2000-03-05 10:22:03 +00:00
Jim Meyering
aca3853e18 (PARAMS): Define.
Use it to guard prototype.
2000-03-05 10:21:58 +00:00
Jim Meyering
93be9a66d7 . 2000-03-05 06:53:08 +00:00
Jim Meyering
edaeb62db6 *** empty log message *** 2000-03-05 06:52:33 +00:00
Jim Meyering
e89ea03496 . 2000-03-04 21:14:51 +00:00
Jim Meyering
cd740223b3 (uninstall-local): Uncomment this rule so `make distcheck' works once again. 2000-03-04 21:10:21 +00:00
Jim Meyering
a82d3db454 *** empty log message *** 2000-03-04 20:15:07 +00:00
Jim Meyering
cea52734ee (install-exec-local): Create $(libdir) before installing into it. 2000-03-04 20:15:03 +00:00
Jim Meyering
b52c000d3b *** empty log message *** 2000-03-04 18:17:12 +00:00
Jim Meyering
31d214cd3a *** empty log message *** 2000-03-04 18:16:39 +00:00
Jim Meyering
54d12f7edd Once we encounter a file that is not of IS_TAILABLE_FILE_TYPE,
marke it as such and ignore it forever after.
(struct File_spec): New member.
(recheck): Initialize new member.
(tail_file): Likewise.
(tail_forever): Skip the file if it's marked as ignorable.
2000-03-04 18:16:21 +00:00
Jim Meyering
f600c4d144 *** empty log message *** 2000-03-04 14:31:34 +00:00
Jim Meyering
049ca98c74 Don't get failed assertion for `tail -f directory'.
Revert most of 1999-10-20 change.  Instead, ...
(IS_TAILABLE_FILE_TYPE): Define to produce similar result.
(recheck): Use it here.
(tail_file): Use it here.
2000-03-04 14:31:29 +00:00
Jim Meyering
7b2d50e3af . 2000-03-04 12:53:49 +00:00
Jim Meyering
e099a4b5ed . 2000-03-04 12:53:29 +00:00
Jim Meyering
29d3ba4a7b Include "unicodeio.h".
(usage): Mention \u and \U directives. \x outputs a byte, not a
character.
(print_esc): Implement \u and \U.
2000-03-04 12:52:35 +00:00
Jim Meyering
28334dafe4 (<errno.h>): Include it.
(errno): Declare if not defined.
2000-03-04 12:35:47 +00:00
Jim Meyering
45758bf193 . 2000-03-04 12:23:14 +00:00
Jim Meyering
8cad33941c . 2000-03-04 12:22:47 +00:00
Jim Meyering
fd6c956d13 *** empty log message *** 2000-03-04 12:22:45 +00:00
Jim Meyering
bb72a58753 *** empty log message *** 2000-03-04 12:22:14 +00:00
Jim Meyering
be7c99efe2 *** empty log message *** 2000-03-04 12:19:57 +00:00
Jim Meyering
1999eb9197 copyright 2000-03-04 12:14:57 +00:00
Jim Meyering
8221bfd7cc *** empty log message *** 2000-03-04 08:11:22 +00:00
Jim Meyering
1a8f8ca40c (jm_CHECK_ALL_TYPES): Require AC_C_VOLATILE, for lib/localcharset.c. 2000-03-04 08:11:18 +00:00
Jim Meyering
634dad84ba Add Bruno's comment justifying use of volatile. 2000-03-04 07:57:35 +00:00
Jim Meyering
871812bcec New version, incorporating remarks from a linux
i18n mailing list.  From Bruno Haible.
2000-03-04 07:53:33 +00:00
Jim Meyering
14b2e25723 *** empty log message *** 2000-03-03 21:48:23 +00:00
Jim Meyering
2f8ecdbb34 *** empty log message *** 2000-03-03 21:48:02 +00:00
Jim Meyering
26963dfc15 Make it so stty's rprnt attribute works on HPUX 10.20.
[CREPRINT && !CRPRNT] (CRPRNT): Define.
(control_info): Recognize HPUX's CREPRINT.
2000-03-03 21:47:59 +00:00
Jim Meyering
449de5e30c . 2000-03-03 12:28:28 +00:00
Jim Meyering
aa077d5438 *** empty log message *** 2000-03-03 12:24:11 +00:00
Jim Meyering
1a371e5119 Make sure re_compile_pattern accepts patterns like `{1'. 2000-03-03 12:23:47 +00:00
Jim Meyering
c1fcde2307 *** empty log message *** 2000-03-03 12:21:32 +00:00
Jim Meyering
e219c94cdf *** empty log message *** 2000-03-03 08:25:29 +00:00
Jim Meyering
fdd07a7508 . 2000-03-03 08:25:13 +00:00
Jim Meyering
2c43f8c612 (fillbuf): Move declaration of local, cc, into scope of
`while' loop where it's used.
2000-03-03 08:24:16 +00:00
Jim Meyering
8e1e6d357a Big performance improvement when sorting many small files,
building on a suggestion by Charles Randall.

(fillbuf): Skip memmove if it would be a no-op,
as many memmove implementations are slow in that case.
Don't examine leftover bytes for eolchar, since they may be left
over from a previous file, and we want to read from this file.

(sort): At end of file, if there is more input and buffer room,
concatenate the next input file.
2000-03-03 08:18:48 +00:00
Jim Meyering
8b8685ef31 *** empty log message *** 2000-03-03 08:12:51 +00:00
Jim Meyering
326489aecd *** empty log message *** 2000-03-03 08:05:27 +00:00
Jim Meyering
d2b51acd38 (EXTRA_DIST): Add config.charset. 2000-03-02 15:28:23 +00:00
Jim Meyering
b9a2465910 wrap lines and reformat @examples a little to avoid
`Overfull \hbox ... too wide' warnings
2000-03-02 12:33:06 +00:00
Jim Meyering
c82129a317 make example narrower to avoid `Overfull \hbox ... too wide' warning 2000-03-02 12:30:39 +00:00
Jim Meyering
68773fe3f1 *** empty log message *** 2000-03-02 12:24:21 +00:00
Jim Meyering
b1307f5aff (printf invocation): Describe new unicode syntax.
From Bruno Haible.
2000-03-02 12:24:00 +00:00
Jim Meyering
3af9591bb8 *** empty log message *** 2000-03-02 09:44:56 +00:00
Jim Meyering
169f13cd05 Require AC_HEADER_TIME before the cache check so
the messages come out on separate lines.
2000-03-02 09:44:43 +00:00
Jim Meyering
18341ac6a9 *** empty log message *** 2000-03-02 09:09:08 +00:00
Jim Meyering
b79b91615f . 2000-03-02 09:09:02 +00:00
Jim Meyering
cae99570f4 (jm_FUNC_GLIBC_UNLOCKED_IO): Use AC_CHECK_DECLS, rather than jm_CHECK_DECLARATIONS. 2000-03-02 09:08:32 +00:00
Jim Meyering
00ede118ac *** empty log message *** 2000-03-02 09:05:33 +00:00
Jim Meyering
62bef312ad (AC_CHECK_DECLS): Add getlogin, ttyname, and geteuid. 2000-03-02 09:05:28 +00:00
Jim Meyering
e1bf326a99 (getlogin, ttyname, geteuid): Declare them here, if needed. 2000-03-02 09:04:06 +00:00
Jim Meyering
ddfcfb0da3 . 2000-03-02 07:38:57 +00:00
Jim Meyering
5624900715 (show_point): Ignore shortcuts based on path
prefixes that are loop file system mount points, since they
yield undesirable output.
2000-03-02 07:30:36 +00:00
Jim Meyering
de85b5f902 (DEFS): Add -DLIBDIR=...
(libfetish_a_SOURCES): Add localcharset.c and unicodeio.c.
(noinst_HEADERS): Add unicodeio.h.
(all-local, install-exec-local, charset.alias): New targets.
2000-03-01 13:26:04 +00:00
Jim Meyering
d38bf8ccf7 *** empty log message *** 2000-03-01 13:23:53 +00:00
Jim Meyering
b451be06d5 *** empty log message *** 2000-03-01 13:23:47 +00:00
Jim Meyering
8d1e103424 New file from Bruno. 2000-03-01 13:23:41 +00:00
Jim Meyering
77ec117299 New file from Bruno.
filter through cppi
2000-03-01 13:22:57 +00:00
Jim Meyering
ce4a63537c New file from Bruno.
One portability tweak:
guard inclusion of stddef.h.
2000-03-01 13:22:35 +00:00
Jim Meyering
578156186d Guard some #includes with `#if HAVE_...'. 2000-03-01 13:21:23 +00:00
Jim Meyering
e2915cc17d new file, from Bruno 2000-03-01 13:11:05 +00:00
Jim Meyering
edd988b3cc Describe eq-wid-2 failure conditions. 2000-03-01 12:53:37 +00:00
Jim Meyering
296fe5d782 . 2000-03-01 12:51:07 +00:00
Jim Meyering
13b113c1f3 *** empty log message *** 2000-03-01 12:50:28 +00:00
Jim Meyering
883cd6c62d . 2000-03-01 12:49:12 +00:00
Jim Meyering
172290c201 (get_width_format): Fix portability problem with -0' vs. 0'. 2000-03-01 12:31:16 +00:00
Jim Meyering
1679d72fee . 2000-03-01 12:29:00 +00:00
Jim Meyering
317732f3d9 . 2000-03-01 12:27:54 +00:00
Jim Meyering
fc1d2abff1 (decode_switches): Remove `e' from getopt_long's list of
option characters.  Reported by John Summerfield.
2000-02-29 15:22:16 +00:00
Jim Meyering
8078034c5b *** empty log message *** 2000-02-29 07:32:27 +00:00
Jim Meyering
747c6d4b60 (make_blank): Add an explicit cast to `unsigned char *'
to placate HPUX's C compiler.  Reported by Bob Proulx.
2000-02-29 07:32:23 +00:00
Jim Meyering
d29f838428 split a long line 2000-02-29 06:34:25 +00:00
Jim Meyering
464232e6bb *** empty log message *** 2000-02-28 20:45:33 +00:00
Jim Meyering
76d10c457c (ALERT_CHAR): New macro.
(quotearg_buffer_restyled): Use it.
2000-02-28 20:45:28 +00:00
Jim Meyering
6631abaa8b *** empty log message *** 2000-02-28 07:23:06 +00:00
Jim Meyering
4507236cbe Use ginstall, not install. 2000-02-28 07:23:00 +00:00
Jim Meyering
2b8209bca8 . 2000-02-27 19:05:50 +00:00
Jim Meyering
a98c656b54 *** empty log message *** 2000-02-27 18:53:50 +00:00
Jim Meyering
e43759db0c Guard declaration of strtoull also with `&& HAVE_UNSIGNED_LONG_LONG'. 2000-02-27 18:50:31 +00:00
Jim Meyering
507d0aa278 Fix typo in decl of strtoul: s/long long/long/.
Guard declaration of strtoull also with `&& HAVE_UNSIGNED_LONG_LONG'.
2000-02-27 18:49:10 +00:00
Jim Meyering
86845e9bfe Fix typo in decl of strtoul: s/long long/long/. 2000-02-27 18:45:29 +00:00
Jim Meyering
633c0745b9 *** empty log message *** 2000-02-27 18:04:10 +00:00
Jim Meyering
5bea77e1af Guard inclusion of stdlib.h with #if HAVE_STDLIB_H', not #if STDC_HEADERS'.
Declare malloc if needed.
2000-02-27 18:04:00 +00:00
Jim Meyering
4fef810c37 use double quotes, not single quotes around syntax-error-evoking string 2000-02-27 17:54:25 +00:00
Jim Meyering
7717354351 *** empty log message *** 2000-02-27 17:53:36 +00:00
Jim Meyering
07ab5fec9a Add getenv to the list. 2000-02-27 17:53:31 +00:00
Jim Meyering
8cf07d2253 *** empty log message *** 2000-02-27 17:42:26 +00:00
Jim Meyering
aadde40206 Use #if !HAVE_DECL...' instead of #ifndef HAVE_DECL..'
now that autoconf always defines the HAVE_DECL_ symbols.

Arrange for cpp to fail if the configure-time
declaration check was not run.
2000-02-27 17:41:20 +00:00
Jim Meyering
aee6c49887 Arrange for cpp to fail if the configure-time
declaration check was not run.
2000-02-27 17:40:53 +00:00
Jim Meyering
8041fd5301 Use #if !HAVE_DECL...' instead of #ifndef HAVE_DECL..'
now that autoconf always defines the HAVE_DECL_ symbols.

Arrange for cpp to fail if the configure-time
declaration check was not run.
2000-02-27 17:40:24 +00:00
Jim Meyering
7a80c0cacc Use #if !HAVE_DECL...' instead of #ifndef HAVE_DECL..'
now that autoconf always defines the HAVE_DECL_ symbols.

Arrange for cpp to fail if the configure-time
declaration check was not run.
2000-02-27 17:39:52 +00:00
Jim Meyering
c2f3af37bb Use #if !HAVE_DECL...' instead of #ifndef HAVE_DECL...'
now that autoconf always defines the HAVE_DECL_ symbols.
2000-02-27 17:26:39 +00:00
Jim Meyering
fe56d629d1 . 2000-02-27 15:43:43 +00:00
Jim Meyering
6c5f00186d *** empty log message *** 2000-02-27 15:06:19 +00:00
Jim Meyering
27acd938a1 *** empty log message *** 2000-02-27 15:01:34 +00:00
Jim Meyering
dda6c3fdc4 (install_file_to_path): Always use install_file_in_file.
Based on a patch from Adam Klein via Michael Stone.
2000-02-27 15:01:21 +00:00
Jim Meyering
9d343b0852 *** empty log message *** 2000-02-27 15:00:31 +00:00
Jim Meyering
36aea8162f *** empty log message *** 2000-02-27 14:52:45 +00:00
Jim Meyering
fb0afad994 *** empty log message *** 2000-02-27 14:39:48 +00:00
Jim Meyering
847ee5a3bd (TESTS): Add create-leading. 2000-02-27 14:39:19 +00:00
Jim Meyering
649349a300 *** empty log message *** 2000-02-27 14:35:07 +00:00
Jim Meyering
759591ae51 *** empty log message *** 2000-02-27 14:27:13 +00:00
Jim Meyering
bb8bb211a1 Put cedilla on `c' in author's name. 2000-02-27 13:58:12 +00:00
Jim Meyering
47322c2a8e (TESTS_ENVIRONMENT): Add PATH. Remove cruft. 2000-02-27 13:18:24 +00:00
Jim Meyering
e86141f400 Clean up. 2000-02-27 13:17:12 +00:00
Jim Meyering
8ebde9b0bb *** empty log message *** 2000-02-27 11:29:13 +00:00
Jim Meyering
47eed28390 *** empty log message *** 2000-02-27 11:28:47 +00:00
Jim Meyering
72bd5150fd *** empty log message *** 2000-02-27 11:27:38 +00:00
Jim Meyering
a8223df329 . 2000-02-27 11:26:07 +00:00
Jim Meyering
7c0e2db49b . 2000-02-27 11:23:22 +00:00
Jim Meyering
1f6347114a *** empty log message *** 2000-02-27 11:23:11 +00:00
Jim Meyering
9c1810823d *** empty log message *** 2000-02-27 11:19:40 +00:00
Jim Meyering
f25e10f24d (parse_user_spec): If there is no :' but there is a .',
then first look up the entire `.'-containing string as a login name.
2000-02-27 11:13:16 +00:00
Jim Meyering
9bb4588551 *** empty log message *** 2000-02-26 22:19:54 +00:00
Jim Meyering
678d98c083 . 2000-02-26 21:34:58 +00:00
Jim Meyering
b0952dd045 Don't make the success of the test depend on the
order in which directory entries are processed.
Reported by Andreas Schwab.
2000-02-26 21:34:41 +00:00
Jim Meyering
20552b01be whoops. Add commas in parenthesized list of functions in call
to AC_CHECK_DECLS.
2000-02-26 21:28:10 +00:00
Jim Meyering
1b136ab2e9 *** empty log message *** 2000-02-23 15:24:57 +00:00
Jim Meyering
d682521386 Now that we have the new AC_CHECK_DECLS, use it in place of my hack. 2000-02-23 15:24:51 +00:00
Jim Meyering
fb50c4895a Handle two-digit years with leading zeros correctly.
(textint): New typedef.
(parser_control): Member year changed from int to textint.
All uses changed.
(YYSTYPE): Removed; replaced by %union with int and textint members.
(tDAY, tDAY_UNIT, tDAYZONE, tHOUR_UNIT, tID, tLOCAL_ZONE, tMERIDIAN,
tMINUTE_UNIT, tMONTH, tMONTH_UNIT tSEC_UNIT, tSNUMBER, tUNUMBER,
tYEAR_UNIT, tZONE, o_merid): Now of type <intval>.
(tSNUMBER, tUNUMBER): Now of type <textintval>.
(date, number, to_year): Use width of number in digits, not its value,
to determine whether it's a 2-digit year, or a 2-digit time.
(yylex): Store number of digits of numeric tokens.
Reported by John Kendall.

(parser_control): Changed from struct parser_control to typedef (for
consistency).  All uses changed.

(tID): Removed; not used.
(yylex): Return '?' for unknown identifiers, rather than (unused) tID.
2000-02-22 20:16:07 +00:00
Jim Meyering
29e2ec8676 *** empty log message *** 2000-02-22 20:14:57 +00:00
Jim Meyering
f8845967cf *** empty log message *** 2000-02-22 20:14:37 +00:00
Jim Meyering
a849cac5b5 fix typo 2000-02-22 20:13:38 +00:00
Jim Meyering
d63f6d17dd (datevtime-1): New test. 2000-02-22 20:12:08 +00:00
Jim Meyering
979ea98a3e *** empty log message *** 2000-02-15 21:04:09 +00:00
Jim Meyering
4dbf0a39a6 *** empty log message *** 2000-02-15 13:18:05 +00:00
Jim Meyering
6a7e32b137 (pop_dir): New function.
(count_entry): Factor out common code (pop_dir), and call the new
function instead.
Move declaration of global, `stat_buf' into this function.
(du_files): Don't stat `.' or call save_cwd, since count_entry
never returns with a changed working directory.
2000-02-15 13:17:36 +00:00
Jim Meyering
63444750ac *** empty log message *** 2000-02-15 13:08:08 +00:00
Jim Meyering
4c1158bac0 merge fileutils, textutils, sh-utils 2000-02-15 13:06:07 +00:00
Jim Meyering
43b2179550 *** empty log message *** 2000-02-15 07:58:20 +00:00
Jim Meyering
ec940f653c . 2000-02-14 23:27:25 +00:00
Jim Meyering
7c270275fe adapted from changes to grep getpagesize.h
by Martin P.J. Zinser <zinser@decus.de>.
2000-02-14 20:15:32 +00:00
Jim Meyering
09ce6f34a1 *** empty log message *** 2000-02-13 09:07:08 +00:00
Jim Meyering
999a14a6a5 . 2000-02-13 08:47:09 +00:00
Jim Meyering
64a7649926 *** empty log message *** 2000-02-13 08:24:10 +00:00
Jim Meyering
0d96fcf423 (run_tests): Discard stderr.
Reverse diff args, so `expected' is last, as in mk-script.
2000-02-13 08:23:58 +00:00
Jim Meyering
658207b433 . 2000-02-12 17:08:06 +00:00
Jim Meyering
1f1f9fe885 . 2000-02-12 17:07:21 +00:00
Jim Meyering
40e6e7a44e *** empty log message *** 2000-02-12 17:06:52 +00:00
Jim Meyering
77dfc82293 (run_tests): Invoke `diff' when differences are found. 2000-02-12 17:06:04 +00:00
Jim Meyering
5813e98ace *** empty log message *** 2000-02-12 10:42:19 +00:00
Jim Meyering
b8cf92fee6 *** empty log message *** 2000-02-12 10:41:48 +00:00
Jim Meyering
31ef40d60b <libintl.h>: Include.
(_ and N_): Define.
(parse_user_spec): Mark translatable strings.
2000-02-12 10:41:37 +00:00
Jim Meyering
66a4b0e7a3 add FIXME comments for use of atoi 2000-02-12 10:11:54 +00:00
Jim Meyering
3d9c2a6c35 (ISDIGIT): Define it.
(isdigit): Remove definition.
(is_number): Use ISDIGIT, not isdigit.
2000-02-12 10:10:40 +00:00
Jim Meyering
282fa27b51 *** empty log message *** 2000-02-12 08:58:36 +00:00
Jim Meyering
04d0388df4 (usage): Mention only :', and not .' as the separator. 2000-02-12 08:57:50 +00:00
Jim Meyering
d89210720b (main): Count the stat'able arguments.
Print the header line only if there is at least one valid argument.
Reported by Andy Longton <alongton@metamark.com>
2000-02-11 10:08:28 +00:00
Jim Meyering
1347ab3fa2 *** empty log message *** 2000-02-11 10:08:00 +00:00
Jim Meyering
35d44548fb Invoke `diff' when differences are found. 2000-02-10 17:45:12 +00:00
Jim Meyering
269c31af34 *** empty log message *** 2000-02-10 09:38:52 +00:00
Jim Meyering
afc2960851 #undef nanosleep.
(rpl_nanosleep): Rename from nanosleep.
2000-02-10 09:38:43 +00:00
Jim Meyering
d9aece69b3 Don't include config.h.
Remove prototype from declaration of nanosleep.
(PARAMS): Remove now-unneeded definition.
2000-02-10 09:38:31 +00:00
Jim Meyering
d31f3e34a6 *** empty log message *** 2000-02-10 09:34:03 +00:00
Jim Meyering
260ff68425 (jm_FUNC_NANOSLEEP): Rename replacement function from
gnu_nanosleep to rpl_nanosleep.
2000-02-10 09:33:52 +00:00
Jim Meyering
ddee3f420c *** empty log message *** 2000-02-09 19:41:28 +00:00
Jim Meyering
8b7a023ff1 Exit 77 if we can't set up the framework (Volker Borchert reported
that this test would fail because mknod failed when run on SunOS4.1.4
using NFS-mounted disk from an OpenBSD system).
2000-02-09 19:41:15 +00:00
Jim Meyering
31c3ae1545 (framework_failure): Use $null and $dir in place of literals in `here' script. 2000-02-09 19:36:13 +00:00
Jim Meyering
55e5a84fed *** empty log message *** 2000-02-09 12:00:16 +00:00
Jim Meyering
35d017aa1d *** empty log message *** 2000-02-09 11:58:17 +00:00
Jim Meyering
99c95d35e9 *** empty log message *** 2000-02-09 11:58:05 +00:00
Jim Meyering
40a4ab97fe (jm_LIB_CHECK): Fix typo: check for sp_pwdp in
struct spwd, rather than in struct passwd.  Reported by G. Queri.
2000-02-09 11:57:55 +00:00
Jim Meyering
03062f0904 *** empty log message *** 2000-02-09 11:57:15 +00:00
Jim Meyering
d6181296dd (correct_password): Correct HAVE_STRUCT_* name in #if guard
to go along with corrected autoconf test:  Reported by G Queri.
2000-02-09 11:57:01 +00:00
Jim Meyering
e2cc35f086 bump serial number 2000-02-08 15:37:44 +00:00
Jim Meyering
5e3d1430e3 *** empty log message *** 2000-02-08 15:33:45 +00:00
Jim Meyering
9951c9f723 *** empty log message *** 2000-02-08 15:33:32 +00:00
Jim Meyering
2781381e83 (AM_FUNC_GETLOADAVG): Remove now-unnecessary use of changequote. 2000-02-08 15:32:39 +00:00
Jim Meyering
035e61e595 bump #serial to 108 2000-02-08 15:30:47 +00:00
Jim Meyering
345ed2f0c4 (AM_GNU_GETTEXT): Quote square brackets with [' and ]'
and remove uses of `changequote'.
2000-02-08 15:29:26 +00:00
Jim Meyering
c52336c440 (AC_SYS_LARGEFILE_FLAGS): Quote square brackets with [' and ]'
and remove uses of `changequote'.
2000-02-08 15:21:11 +00:00
Jim Meyering
9936c270a7 (jm_AC_FUNC_MEMCMP): Remove now-unnecessary use of changequote.
Add `int' for main.
2000-02-08 15:16:42 +00:00
Jim Meyering
0c0a8f7180 (jm_FUNC_READDIR): Remove now-unnecessary uses of changequote. 2000-02-08 15:11:36 +00:00
Jim Meyering
dfd37e9e59 (jm_INCLUDED_REGEX): Remove now-unnecessary uses of changequote. 2000-02-08 15:08:26 +00:00
Jim Meyering
58d3cbbc5c (jm_FUNC_GNU_STRFTIME): Remove now-unnecessary uses of changequote. 2000-02-08 15:07:10 +00:00
Jim Meyering
6b239bb039 *** empty log message *** 2000-02-05 15:54:27 +00:00
Jim Meyering
2e18b62d99 *** empty log message *** 2000-02-05 09:54:33 +00:00
Jim Meyering
7392a5fd49 . 2000-02-05 09:53:35 +00:00
Jim Meyering
e413127dd4 *** empty log message *** 2000-02-05 09:49:06 +00:00
Jim Meyering
fa183ca836 . 2000-02-05 09:48:31 +00:00
Jim Meyering
ab4923e01e *** empty log message *** 2000-02-05 09:25:45 +00:00
Jim Meyering
2ffef0cd25 *** empty log message *** 2000-02-05 09:17:15 +00:00
Jim Meyering
80862b8fb4 *** empty log message *** 2000-02-05 08:49:08 +00:00
Jim Meyering
6cf7855da7 Use UT_USER in place of hard-coded `->ut_name' here, too. 2000-02-05 08:48:55 +00:00
Jim Meyering
5d716e440a bump serial number 2000-02-05 08:16:53 +00:00
Jim Meyering
05073cdf67 *** empty log message *** 2000-02-05 08:16:26 +00:00
Jim Meyering
a6ac5e555f (jm_CHECK_ALL_TYPES): Require most macros.
Remove explicit use of AC_HEADER_TIME.  It is required by
jm_CHECK_TYPE_STRUCT_TIMESPEC.  Using AC_HEADER_TIME and
`AC_REQUIRE'ing jm_CHECK_TYPE_STRUCT_TIMESPEC provoked a but
in autoconf whereby the expansion of the latter ended up preceding
the expansion of its prerequisite, AC_HEADER_TIME.
Reported by Volker Borchert.
2000-02-05 08:16:13 +00:00
Jim Meyering
5c67c91bb1 . 2000-02-05 08:10:05 +00:00
Jim Meyering
70bf2ee07d *** empty log message *** 2000-02-05 06:07:46 +00:00
Jim Meyering
e40b2aea74 (copy_internal): Don't allow mv to move a directory onto
a non-directory.  Reported by Brian Kimball via Michael Stone.
2000-02-05 06:02:23 +00:00
Jim Meyering
980db8d94b *** empty log message *** 2000-02-05 06:01:34 +00:00
Jim Meyering
3f4d9d2baf *** empty log message *** 2000-02-03 16:52:01 +00:00
Jim Meyering
2e35cf88d4 *** empty log message *** 2000-02-03 16:51:37 +00:00
Jim Meyering
3b85a5c102 Remove MV/RM-setting code, now that those vars aren't used. 2000-02-03 16:48:37 +00:00
Jim Meyering
03885c59b5 (TESTS): Add dir-file. 2000-02-03 16:47:05 +00:00
Jim Meyering
47fe4e2b81 *** empty log message *** 2000-02-03 16:46:16 +00:00
Jim Meyering
afed58448d *** empty log message *** 2000-02-03 16:44:05 +00:00
Jim Meyering
83b7332303 *** empty log message *** 2000-02-03 16:40:42 +00:00
Jim Meyering
b1a7c1d3f6 *** empty log message *** 2000-02-03 12:21:15 +00:00
Jim Meyering
07730c119b (read_utmp): Guard with `#ifdef UTMP_NAME_FUNCTION',
rather than with `#if HAVE_UTMPNAME'.
2000-02-03 12:20:59 +00:00
Jim Meyering
ce286ec9da *** empty log message *** 2000-02-03 12:19:41 +00:00
Jim Meyering
40f2b94df5 (jm_PREREQ_READUTMP): Check for utmpxname. 2000-02-03 12:19:05 +00:00
Jim Meyering
e03663fafd (O_NDELAY): Define to 0 if not defined.
(O_NONBLOCK): Define to O_NDELAY if not defined.
(touch): Open with O_NONBLOCK, so one can touch a fifo without hanging.
Reported by Eric G. Miller via Michael Stone.
2000-02-03 12:16:47 +00:00
Jim Meyering
6d94f760a2 *** empty log message *** 2000-02-02 22:17:51 +00:00
Jim Meyering
10ababf6b2 (jm_PREREQ_ADDEXT): Fix typo that resulted in no
definition of HAVE_PATHCONF: s/AC_CHECK_FUNC/AC_CHECK_FUNCS/.
2000-02-02 22:17:35 +00:00
Jim Meyering
faae41a3ef tell user that we're about to sleep 2000-02-02 14:04:40 +00:00
Jim Meyering
177daedd5e sheesh 2000-02-02 14:03:56 +00:00
Jim Meyering
aeedb315dd *** empty log message *** 2000-02-02 14:00:14 +00:00
Jim Meyering
93d0c6c472 *** empty log message *** 2000-02-02 13:59:43 +00:00
Jim Meyering
7138e43074 (TESTS): Add fifo. 2000-02-02 13:59:30 +00:00
Jim Meyering
84b2bdcb3a (UT_USER): Add parens. From Andreas Schwab. 2000-02-01 16:23:30 +00:00
Jim Meyering
787ee99d38 *** empty log message *** 2000-02-01 13:29:57 +00:00
Jim Meyering
b8293a0364 *** empty log message *** 2000-02-01 12:05:41 +00:00
Jim Meyering
5e8af70e24 *** empty log message *** 2000-02-01 10:52:32 +00:00
Jim Meyering
d8c942fdef change ." to .\" 2000-02-01 10:34:35 +00:00
Jim Meyering
715f1c67f9 *** empty log message *** 2000-01-31 22:42:59 +00:00
Jim Meyering
ffb0e90647 *** empty log message *** 2000-01-31 22:42:34 +00:00
Jim Meyering
cf4a419332 (jm_CHECK_DECLS): Add nanosleep to the list of
functions.  Add the time.h and sys/time.h headers along with the
AC_REQUIRE'ment of AC_HEADER_TIME.
2000-01-31 22:39:54 +00:00
Jim Meyering
490bf3d6e9 (nanosleep): Guard declaration with `#if ! HAVE_DECL_NANOSLEEP'. 2000-01-31 22:38:04 +00:00
Jim Meyering
6ce0ab6d40 *** empty log message *** 2000-01-31 19:38:05 +00:00
Jim Meyering
70ac08368a fix typo. sheesh 2000-01-31 08:42:45 +00:00
Jim Meyering
26310e4984 *** empty log message *** 2000-01-31 08:38:18 +00:00
Jim Meyering
6b43446a33 Use UT_USER in place of hard-coded `->ut_name' here, too. 2000-01-31 08:38:07 +00:00
Jim Meyering
c3a1a2a912 *** empty log message *** 2000-01-31 08:36:51 +00:00
Jim Meyering
348f0efabe *** empty log message *** 2000-01-31 08:27:58 +00:00
Jim Meyering
5b2acd8d30 (ISASCII): Add #undef and move definition to follow
inclusion of wctype.h to work around solaris2.6 namespace pollution.
(ISPRINT): Likewise.
2000-01-31 08:27:51 +00:00
Jim Meyering
488aef7301 *** empty log message *** 2000-01-30 22:24:11 +00:00
Jim Meyering
be1784cf31 (correct_password): Guard with `HAVE_GETSPNAM && HAVE_STRUCT_PASSWD_SP_PWDP',
rather than just `#ifdef HAVE_SHADOW_H'.
2000-01-30 22:23:58 +00:00
452 changed files with 33108 additions and 14825 deletions

View File

@@ -25,3 +25,8 @@ all:
@exit 1
endif
# Tell version 3.79 and up of GNU make to not build goals in this
# directory in parallel. This is necessary in case someone tries to
# build multiple targets on one command line.
.NOTPARALLEL:

View File

@@ -11,10 +11,15 @@ maintainer-check:
$(MAKE) distcheck
$(MAKE) my-distcheck
prev-version := $(shell echo $(VERSION)|tr a-z Xa-y)
prev_version_file = .prev-version
THIS_VERSION_REGEXP = $(subst .,\.,$(VERSION))
PREV_VERSION := $(shell cat $(prev_version_file))
PREV_VERSION_REGEXP := $(shell echo $(PREV_VERSION)|sed 's/\./\\./g')
tag-package = $(shell echo "$(PACKAGE)" | tr a-z A-Z)
tag-this-version = $(subst .,_,$(VERSION))
tag-prev-version = $(subst .,_,$(prev-version))
tag-prev-version = $(subst .,_,$(PREV_VERSION))
this-cvs-tag = $(tag-package)-$(tag-this-version)
prev-cvs-tag = $(tag-package)-$(tag-prev-version)
@@ -25,6 +30,9 @@ po-check:
diff -u $@-1 $@-2
rm -f $@-1 $@-2
# Do not save the original name or timestamp in the .tar.gz file.
GZIP_ENV = --no-name
# 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.
@@ -49,7 +57,6 @@ null_AM_MAKEFLAGS = \
t=./=test
my-distcheck: writable-files po-check
-rm -rf $(t)
mkdir $(t)
GZIP=$(GZIP) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz
@@ -61,8 +68,8 @@ my-distcheck: writable-files po-check
AM_MAKEFLAGS='$(null_AM_MAKEFLAGS)' \
&& $(MAKE) dvi \
&& $(MAKE) check \
&& rm -rf $(DEPDIR) \
&& $(MAKE) distclean
&& $(MAKE) distclean \
&& rm -rf $(DEPDIR)
cd $(t) && mv $(distdir) $(distdir).old \
&& $(AMTAR) -zxf ../$(distdir).tar.gz
diff -ur $(t)/$(distdir).old $(t)/$(distdir)
@@ -71,24 +78,20 @@ my-distcheck: writable-files po-check
echo "$(distdir).tar.gz is ready for distribution"; \
echo "========================"
THIS_VERSION_REGEXP = $(subst .,\.,$(VERSION))
# FIXME: this works only for Gnits-style test releases.
PREV_VERSION := $(shell echo $(VERSION)|tr b-z a-y|sed 's/a$$//')
PREV_VERSION_REGEXP := $(shell echo $(PREV_VERSION)|sed 's/\./\\./g')
v = Version
a_host = alpha.gnu.org
b_host = freefriends.org
a_host=alpha.gnu.org
b_host=tug.org
alpha_subdir = gnu/fetish
a_url_dir = $(alpha_subdir)
b_url_dir = $(alpha_subdir)
a_url_dir=gnu/fetish
b_url_dir=gnu/fetish
a_real_dir=/fs/share/ftp/gnu/fetish
b_real_dir=/home/ftp/pub/gnu/fetish
a_real_dir = /fs/share/ftp/$(alpha_subdir)
b_real_dir = fetish-ftp
url_dir_list = $(foreach x,a b,ftp://$($(x)_host)/$($(x)_url_dir))
md5 = $(shell md5sum < $(distdir).tar.gz|sed 's/ -//')
sha1 = $(shell sha1sum < $(distdir).tar.gz|sed 's/ -//')
rel-check:
tarz=/tmp/rel-check-tarz-$$$$; \
@@ -119,17 +122,20 @@ announcement: NEWS ChangeLog $(distdir).tar.gz
echo " $$url/$(xd-delta)"; \
done; \
echo; \
echo "Here are the MD5 and SHA1 signatures for the .tar.gz file"; \
echo; \
echo "$(md5) $(distdir).tar.gz"; \
echo "$(sha1) $(distdir).tar.gz"; \
echo; \
echo NEWS:; \
sed -n "/$(THIS_VERSION_REGEXP)/,/$(PREV_VERSION_REGEXP)/p" NEWS \
sed -n "/$(THIS_VERSION_REGEXP)/,/^\[$(PREV_VERSION_REGEXP)/p" NEWS \
| grep -v '^\['; \
echo; \
echo ChangeLog entries:; \
find . -name ChangeLog \
find . -name ChangeLog -maxdepth 2 \
| xargs cvs diff -up -r$(prev-cvs-tag) -rHEAD \
| sed -n 's/^+//p' \
| perl -ne 'm!^\+\+ (\./)?! or print,next;' \
| perl -ne 'm!^\+\+ (\./)?! or print,next;' \
-e 'print "\n"."*"x70 ."\n"; s///; print; print "*"x70 ."\n"'; \
)
@@ -142,6 +148,17 @@ writable-files:
done; \
test "$$fail" && exit 1 || :
WGET = wget
ftp-gnu = ftp://ftp.gnu.org/gnu
automake_repo=:pserver:anoncvs@anoncvs.cygnus.com:/cvs/automake
.PHONY: wget-update
wget-update:
$(WGET) $(ftp-gnu)/texinfo/texinfo.tex -O $(srcdir)/doc/texinfo.tex
$(WGET) $(ftp-gnu)/config/config.guess -O $(srcdir)/config.guess
$(WGET) $(ftp-gnu)/config/config.sub -O $(srcdir)/config.sub
cvs -d $(automake_repo) co -p automake/depcomp > depcomp
alpha: writable-files po-check
$(MAKE) cvs-dist
$(MAKE) -s announcement > /tmp/announce-$(distdir)
@@ -151,9 +168,11 @@ alpha: writable-files po-check
&& xdelta delta -9 $(prev-tgz) $(distdir).tar.gz $(xd-delta) || :
ln $(release-archive-dir)/$(xd-delta) .
chmod a-w $(release-archive-dir)/$(xd-delta)
echo $(VERSION) > $(prev_version_file)
cvs ci -m. $(prev_version_file)
@echo =====================================
@echo =====================================
@echo 'scp $(xd-delta) $(distdir).tar.gz \'
@echo 'rsync -e ssh --pro -av $(xd-delta) $(distdir).tar.gz \'
@echo ' $(b_host):$(b_real_dir)'
@echo '# send the /tmp/announcement e-mail'
@echo =====================================

408
THANKS
View File

@@ -1,108 +1,302 @@
This is just a start at listing e-mail addresses of contributors.
The rest of the addresses are still in the ChangeLog.
These people have contributed to the GNU fileutils, textutils,
and/or sh-utils packages. Some have reported problems, others have
contributed improvements to the documentation, actual code, and even
complete programs. Those contributions are described in the ChangeLog
files. If your name has been left out, if you'd rather not be listed,
or if you'd prefer a different address be used, please let me know.
Some old names and addresses are still in the ChangeLog.
Achim Blumensath: blume@corona.oche.de
aldomel: aldomel@ix.netcom.com
Alen Muzinic: zveki@fly.cc.fer.hr
Akim Demaille: demaille@inf.enst.fr
Alain Magloire: alain@qnx.com
Alexey Solovyov: alekso@math.uu.se
Andreas Jaeger: jaeger@gnu.org
Andreas Schwab: schwab@suse.de
Andres Soolo: andres@soolo.matti.ee
Andrew Dalke: dalke@bioreason.com
Andrew Tridgell: tridge@samba.org
Andries Brouwer: Andries.Brouwer@cwi.nl
Arne Henrik Juul: arnej@imf.unit.no
Bauke Jan Douma: bjdouma@xs4all.nl
Bengt Martensson: bengt@mathematik.uni-Bremen.de
Bernd Leibing: bernd.leibing@rz.uni-ulm.de
Bernhard Rosenkraenzer: bero@redhat.de
Bjorn Helgaas: helgaas@rsn.hp.com
Bob McCracken: kerouac@ravenet.com
Bob Proulx: rwp@fc.hp.com
Brendan O'Dea: bod@compusol.com.au
Charles Karney: karney@pppl.gov
Chip Salzenberg: chip@valinux.com
Chris Yeo: cyeo@biking.org
Christian von Roques: roques@pond.sub.org
Colin Plumb: colin@nyx.net
David Godfrey: dave@delta.demon.co.uk
Dirk Lattermann: dlatt@t-online.de
Don Parsons: dparsons@synapse.kent.edu
Eirik Fuller: eirik@netcom.com
Eli Zaretskii: eliz@is.elta.co.il
Emile LeBlanc: leblanc@math.toronto.edu
François Pinard: pinard@iro.umontreal.ca
Galen Hazelwood: galenh@micron.net
Germano Leichsenring: germano@jedi.cs.kobe-u.ac.jp
Göran Uddeborg: goeran@uddeborg.pp.se
Greg McGary: gkm@eng.ascend.com
Gabor Z. Papp: gzp@gzp.org.hu
H. J. Lu: hjl@valinux.com
Holger Berger: hberger@ess.nec.de
Hugh Daniel: hugh@xanadu.com
James: james@albion.glarp.com
James Antill: jmanti%essex.ac.uk@seralph21.essex.ac.uk
James Sneeringer: jvs@ocslink.com
James Tanis: jtt@soscorp.com
Jamie Lokier: jamie@imbolc.ucc.ie
Janos Farkas: chexum@shadow.banki.hu
Jesse Thilo: jgt2@eecs.lehigh.edu
Joakim Rosqvist: dvljrt@cs.umu.se
Joe Orton: joe@orton.demon.co.uk
Johan Danielsson: joda@pdc.kth.se
John Bley: jbb6@acpub.duke.edu
John Gatewood Ham: zappaman@alphabox.compsci.buu.ac.th
John Gotts: jgotts@umich.edu
Jürgen Fluk: louis@dachau.marco.de
jvogel: jvogel@linkny.com
Kalle Olavi Niemitalo: tosi@stekt.oulu.fi
Karl Heuer: kwzh@gnu.org
Kjetil Torgrim Homme: kjetilho@ifi.uio.no
Larry McVoy: lm@sgi.com
Lars Hecking: lhecking@nmrc.ucc.ie
Lorne Baker: lbaker@nitro.avint.net
Marcus Daniels: marcus@sysc.pdx.edu
Mark A. Thomas: thommark@access.digex.net
Mark Harris: mark@monitor.designacc.com
Mark Kettenis: kettenis@phys.uva.nl
Martin Mitchell: martin@debian.org
Marty Leisner: leisner@sdsp.mc.xerox.com
Masami Takikawa: takikawm@CS.ORST.EDU
Matthew S. Levine: mslevine@theory.lcs.mit.edu
Matthew Swift: swift@alum.mit.edu
Matthias Urlichs: smurf@noris.de
Michiel Bacchiani: bacchian@raven.bu.edu
Michael ???:michael@roka.net
Michael Veksler: mveksler@techunix.technion.ac.il
Michael Stone: mstone@debian.org
Miles Bader: miles@gnu.ai.mit.edu
Nelson H. F. Beebe: beebe@math.utah.edu
Noel Cragg: noel@red-bean.com
Olav Morkrid: olav@funcom.com
Per Kristian Hove: perhov@math.ntnu.no
Peter Eriksson: peter@ifm.liu.se
Peter Moulder: reiter@netspace.net.au
Peter Samuelson: psamuels@sampo.creighton.edu
Paul Eggert: eggert@twinsun.com
Paul Slootman: paul@debian.org
Philippe De Muyter: phdm@macqel.be
Rainer Orth: ro@TechFak.Uni-Bielefeld.DE
Richard Braakman: dark@xs4all.nl
Ross Ridge: rridge@calum.csclub.uwaterloo.ca
Sami Farin: sfarin@ratol.fi
Santiago Vila Doncel: sanvila@unex.es
Scott Lurndal: slurn@griffin.engr.sgi.com
Stuart Kemp: skemp@peter.bmc.com
Thomas Bushnell, n/BSG: thomas@gnu.ai.mit.edu
Ton Hospel: thospel@mail.dma.be
Torbjorn Lindgren: tl@funcom.no
Torsten Landschoff: torsten@pclab.ifg.uni-kiel.de
Tony Leneis: tony@plaza.ds.adp.com
Ulrich Drepper: drepper@cygnus.com
Vin Shelton: acs@alumni.princeton.edu
Volker Borchert: bt@teknon.de
Wayne Stewart: wstewa@atl.com
Wichert Akkerman: wichert@cistron.nl
William Bader: william@nscs.fast.net
Achim Blumensath blume@corona.oche.de
Adam Klein aklein@debian.org
Akim Demaille demaille@inf.enst.fr
Alain Magloire alain@qnx.com
Alan Iwi iwi@atm.ox.ac.uk
Alberto Accomazzi alberto@cfa0.harvard.edu
aldomel aldomel@ix.netcom.com
Alen Muzinic zveki@fly.cc.fer.hr
Alexandre Duret-Lutz duret_g@epita.fr
Alexey Solovyov alekso@math.uu.se
Andre Novaes Cunha Andre.Cunha@br.global-one.net
Andreas Gruenbacher ag@bestbits.at
Andreas Jaeger jaeger@gnu.org
Andreas Luik luik@isa.de
Andreas Schwab schwab@suse.de
Andreas Stolcke stolcke@ICSI.Berkeley.EDU
Andres Soolo andres@soolo.matti.ee
Andrew Burgess aab@cichlid.com
Andrew Dalke dalke@bioreason.com
Andrew Tridgell tridge@samba.org
Andries Brouwer Andries.Brouwer@cwi.nl
Andy Longton alongton@metamark.com
Antonio Rendas ajrendas@yahoo.com
Ariel Faigon ariel@cthulhu.engr.sgi.com
Arne H. Juul arnej@solan.unit.no
Arne Henrik Juul arnej@imf.unit.no
Arthur Pool pool@commerce.uq.edu.au
Austin Donnelly Austin.Donnelly@cl.cam.ac.uk
Axel Kittenberger Anshil@gmx.net
Bauke Jan Douma bjdouma@xs4all.nl
Bengt Martensson bengt@mathematik.uni-Bremen.de
Bernd Leibing bernd.leibing@rz.uni-ulm.de
Bernhard Rosenkraenzer bero@redhat.de
Bill Peters peters@gaffel.as.arizona.edu
Bjorn Helgaas helgaas@rsn.hp.com
Bob McCracken kerouac@ravenet.com
Bob Proulx rwp@fc.hp.com
Branden Robinson branden@necrotic.deadbeast.net
Brendan O'Dea bod@compusol.com.au
Brian Kimball bfk@footbag.org
Brian Youmans 3diff@gnu.org
Bruno Haible haible@clisp.cons.org
Carl Johnson carlj@cjlinux.home.org
Carl Lowenstein cdl@mpl.UCSD.EDU
Carlos Canau Carlos.Canau@relay.puug.pt
Charles Karney karney@pppl.gov
Charles Randall crandall@matchlogic.com
Chip Salzenberg chip@valinux.com
Chris Sylvain csylvain@umm.edu
Chris Yeo cyeo@biking.org
Christi Alice Scarborough christi@chiark.greenend.org.uk
Christian Krackowizer ckrackowiz@std.schuler-ag.com
Christian Rose menthos@menthos.com
Christian von Roques roques@pond.sub.org
Chuck Hedrick hedrick@klinzhai.rutgers.edu
Clark Morgan cmorgan@aracnet.com
Colin Plumb colin@nyx.net
Collin Rogowski collin@rogowski.de
Dan Hagerty hag@gnu.ai.it.edu
Dan Pascu dan@services.iiruc.ro
Daniel Bergstrom noa@melody.se
Darren Salt ds@youmustbejoking.demon.co.uk
David Dyck dcd@tc.fluke.COM
David Godfrey dave@delta.demon.co.uk
David Luyer david_luyer@pacific.net.au
Dennis Henriksen opus@flamingo.osrl.dk
Derek Clegg dclegg@next.com
Dick Streefland dick_streefland@tasking.com
Dirk Lattermann dlatt@t-online.de
Dirk-Jan Faber djfaber@snow.nl
Don Parsons dparsons@synapse.kent.edu
Donni Erpel donald@appc11.gsi.de
Doug McLaren dougmc@comco.com
Dragos Harabor dharabor@us.oracle.com
Ed Avis epa98@doc.ic.ac.uk
Edzer Pebesma Edzer.Pebesma@rivm.nl
Eirik Fuller eirik@hackrat.com
Eivind eivindt@multinet.no
Eli Zaretskii eliz@is.elta.co.il
Emile LeBlanc leblanc@math.toronto.edu
Eric Backus ericb@lsid.hp.com
Eric G. Miller egm2@jps.net
Erik Bennett bennett@cvo.oneworld.com
Erik Corry erik@kroete2.freinet.de
Felix Lee flee@teleport.com
Fletcher Mattox fletcher@cs.utexas.edu
Florin Iucha fiucha@hsys.mic.ro
Frank Adler fadler@allesklar.de
Frank T Lofaro ftlofaro@snooks.Egr.UNLV.EDU
François Pinard pinard@iro.umontreal.ca
Fred Fish fnf@ninemoons.com
Gabor Z. Papp gzp@gzp.org.hu
Galen Hazelwood galenh@micron.net
Gary Anderson ganderson@clark.net
Gaël Quéri gqueri@mail.dotcom.fr
Geoff Kuenning geoff@cs.hmc.edu
Geoff Odhner geoff@franklin.com
Gerhard Poul gpoul@gnu.org
Germano Leichsenring germano@jedi.cs.kobe-u.ac.jp
GOTO Masanori gotom@debian.or.jp
Greg Louis glouis@dynamicro.on.ca
Greg McGary gkm@gnu.org
Greg Troxel gdt@bbn.com
Greg Wooledge gawooledge@sherwin.com
Gregory Leblanc gleblanc@cu-portland.edu
Göran Uddeborg goeran@uddeborg.pp.se
H. J. Lu hjl@valinux.com
Hans Verkuil hans@wyst.hobby.nl
Harry Liu rliu@lek.ugcs.caltech.edu
Herbert Xu herbert@gondor.apana.org.au
Holger Berger hberger@ess.nec.de
Hugh Daniel hugh@xanadu.com
Ian Jackson ijackson@chiark.greenend.org.uk
Ian Lance Taylor ian@cygnus.com
Ian Turner vectro@pipeline.com
James james@albion.glarp.com
James Antill jmanti%essex.ac.uk@seralph21.essex.ac.uk
James Sneeringer jvs@ocslink.com
James Tanis jtt@soscorp.com
James Youngman james+usenet@free-lunch.demon.co.uk
Jamie Lokier jamie@imbolc.ucc.ie
Jan Fedak J.Fedak@sh.cvut.cz
Jan Nieuwenhuizen janneke@gnu.org
Janos Farkas chexum@shadow.banki.hu
Jarkko Hietaniemi jhi@epsilon.hut.fi
Jeff Moore jbm@mordor.com
Jeff Sheinberg jeffsh@erols.com
Jens Schmidt jms@jsds.hamburg.com
Jerome Abela abela@hsc.fr
Jesse Thilo jgt2@eecs.lehigh.edu
Jie Xu xuj@iag.net
Jim Blandy jimb@cyclic.com
Jim Dennis jimd@starshine.org
Joakim Rosqvist dvljrt@cs.umu.se
Jochen Hein jochen@jochen.org
Joe Orton joe@orton.demon.co.uk
Johan Danielsson joda@pdc.kth.se
John Bley jbb6@acpub.duke.edu
John David Anglin dave.anglin@nrc.ca
John Gatewood Ham zappaman@alphabox.compsci.buu.ac.th
John Gotts jgotts@umich.edu
John Kendall kendall@capps.com
John Kodis kodis@acm.org
John Murphy jam@philabs.research.philips.com
John Roll john@panic.harvard.edu
John Salmon johns@mullet.anu.edu.au
John Summerfield summer@OS2.ami.com.au
Joost van Baal joostvb@xs4all.nl
Joseph S. Myers jsm28@cam.ac.uk
Jungshik Shin jshin@pantheon.yale.edu
Jürgen Fluk louis@dachau.marco.de
jvogel jvogel@linkny.com
Kai-Uwe Rommel rommel@informatik.tu-muenchen.de
Kai Henningsen kai@debian.org
Kalle Olavi Niemitalo tosi@stekt.oulu.fi
Kamal Paul Nigam Kamal_Paul_Nigam@gs35.sp.cs.cmu.edu
Karl Eichwalder keichwa@gmx.net
Karl Heuer kwzh@gnu.org
Karl-Michael Schneider schneide@phil.uni-passau.de
Karsten Thygesen karthy@kom.auc.dk
Kaveh R. Ghazi ghazi@caip.rutgers.edu
Keith Owens kaos@audio.apana.org.au
Ken Pizzini kenp@halcyon.com
Kjetil Torgrim Homme kjetilho@ifi.uio.no
Kristoffer Rose kris@diku.dk
Larry McVoy lm@sgi.com
Lars Hecking lhecking@nmrc.ucc.ie
Lehti Rami rammer@cs.tut.fi
Leonard N. Zubkoff lnz@dandelion.com
Lorne Baker lbaker@nitro.avint.net
M. P. Suzuki mpsuzuki@hiroshima-u.ac.jp
Maciej Kwapulinski pikpok@univ.gda.pl
Manas Garg manas@cygsoft.com
Manfred Hollstein manfred@s-direktnet.de
Marc Boucher marc@mbsi.ca
Marc Olzheim marcolz@stack.nl
Marco Franzen Marco.Franzen@Thyron.com
Marcus Daniels marcus@ee.pdx.edu
Mark A. Thomas thommark@access.digex.net
Mark D. Roth roth@uiuc.edu
Mark Harris mark@monitor.designacc.com
Mark Hewitt mhewitt@armature.com
Mark Kettenis kettenis@phys.uva.nl
Mark Nudelman marknu@flash.net
Mark W. Eichin eichin@cygnus.com
Markus Demleitner msdemlei@auriga.ari.uni-heidelberg.de
Martin martin@dresden.nacamar.de
Martin Gallant martyg@goodbit.net
Martin Hippe martin.hippe@schlund.de
Martin Mitchell martin@debian.org
Martin P.J. Zinser zinser@decus.de
Marty Leisner leisner@sdsp.mc.xerox.com
Masami Takikawa takikawm@CS.ORST.EDU
Mate Wierdl mw@moni.msci.memphis.edu
Matej Vela mvela@public.srce.hr
Matt Perry matt@primefactor.com
Matthew Braun matthew@ans.net
Matthew Clarke Matthew_Clarke@mindlink.bc.ca
Matthew S. Levine mslevine@theory.lcs.mit.edu
Matthew Swift swift@alum.mit.edu
Mattias Wadenstein maswan@acc.umu.se
Matthias Urlichs smurf@noris.de
Meelis Roos mroos@tartu.cyber.ee
Michael ??? michael@roka.net
Michael Deutschmann michael@talamasca.ocis.net
Michael Hasselberg mikelh@zonta.ping.de
Michael Hohn hohn@math.utah.edu
Michael J. Croghan mcroghan@usatoday.com
Michael Stone mstone@debian.org
Michael Stutz stutz@dsl.org
Michael Veksler mveksler@techunix.technion.ac.il
Michel Robitaille robitail@IRO.UMontreal.CA
Michiel Bacchiani bacchian@raven.bu.edu
Miles Bader miles@gnu.ai.mit.edu
Minh Tran-Le tranle@intellicorp.com
Morten Welinder terra@diku.dk
Nelson H. F. Beebe beebe@math.utah.edu
Niklas Edmundsson nikke@acc.umu.se
Noah Friedman friedman@splode.com
Noel Cragg noel@red-bean.com
Olav Morkrid olav@funcom.com
Ørn E. Hansen oehansen@daimi.aau.dk
Paul Eggert eggert@twinsun.com
Paul Nevai nevai@ops.mps.ohio-state.edu
Paul Sauer paul@alexa.com
Paul Slootman paul@debian.org
Per Cederqvist ceder@lysator.liu.se
Per Kristian Hove perhov@math.ntnu.no
Peter Eriksson peter@ifm.liu.se
Peter Moulder reiter@netspace.net.au
Peter Samuelson psamuels@sampo.creighton.edu
Peter Seebach seebs@taniemarie.solon.com
Phil Richards phil.richards@vf.vodafone.co.uk
Philippe De Muyter phdm@macqel.be
Philippe Schnoebelen Philippe.Schnoebelen@imag.fr
Piergiorgio Sartor sartor@sony.de
Piotr Kwapulinski kwap@univ.gda.pl
Prashant TR tr@eth.net
Rainer Orth ro@TechFak.Uni-Bielefeld.DE
Ralf W. Stephan stephan@tmt.de
Ralph Loader loader@maths.ox.ac.uk
Raul Miller moth@magenta.com
Richard Braakman dark@xs4all.nl
Richard J. Rauenzahn rrauenza@hairball.cup.hp.com
Richard Sharman rsharman@magmacom.com
Rick Sladkey jrs@world.std.com
Rik Faith faith@cs.unc.edu
Risto Kankkunen kankkune@lingsoft.fi
Robert H. de Vries robert@and.nl
Rogier Wolff R.E.Wolff@BitWizard.nl
Ronald F. Guilmette rfg@netcom.com
Ross Alexander r.alexander@auckland.ac.nz
Ross Paterson rap@doc.ic.ac.uk
Ross Ridge rridge@calum.csclub.uwaterloo.ca
Sami Farin sfarin@ratol.fi
Samuli Karkkainen Samuli.Karkkainen@hut.fi
Sander van Malssen svm@kozmix.ow.nl
Santiago Vila Doncel sanvila@unex.es
Savochkin Andrey Vladimirovich saw@msu.ru
Scott Lurndal slurn@griffin.engr.sgi.com
Stephen Gildea gildea@x.org
Stephen Smoogen ??????????
Steve McConnel steve@acadcomp.sil.org
Stuart Kemp skemp@peter.bmc.com
Tadayoshi Funaba tadf@kt.rim.or.jp
Theodore Ts'o tytso@rsts-11.mit.edu
Thomas Bushnell thomas@gnu.ai.mit.edu
Thomas Quinot thomas@Cuivre.FR.EU.ORG
Tim Smithers mouse@dmouse.com.au
Tim Waugh twaugh@redhat
Todd A. Jacobs tjacobs@codegnome.org
Tom Quinn trq@dionysos.thphys.ox.ac.uk
Ton Hospel thospel@mail.dma.be
Tony Leneis tony@plaza.ds.adp.com
Tony Robinson ajr@eng.cam.ac.uk
Torbjorn Granlund tege@nada.kth.se
Torbjorn Lindgren tl@funcom.no
Torsten Landschoff torsten@pclab.ifg.uni-kiel.de
Ulrich Drepper drepper@gnu.org
Urs Thuermann urs@isnogud.escape.de
Vesselin Atanasov vesselin@bgnet.bg
Vin Shelton acs@alumni.princeton.edu
Volker Borchert bt@teknon.de
Wayne Stewart wstewa@atl.com
Wenjun Zheng zwj@yahoo.com
Werner Almesberger Werner.Almesberger@epfl.ch
Wichert Akkerman wichert@cistron.nl
Will Edgington wedgingt@acm.org
William Bader william@nscs.fast.net
William Dowling will@franklin.com
William Lewis wiml@omnigroup.com
Wolfram Kleff kleff@cs.uni-bonn.de
Won-kyu Park wkpark@chem.skku.ac.kr
Zvi Har'El rl@math.technion.ac.il

View File

@@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4a from Makefile.am
# Makefile.in generated automatically by automake 1.4b from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000
# 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.
@@ -31,8 +32,6 @@ mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
@@ -57,6 +56,8 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
@SET_MAKE@
host_alias = @host_alias@
host_triplet = @host@
AMDEP = @AMDEP@
@@ -71,9 +72,10 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GNU_PACKAGE = @GNU_PACKAGE@
@@ -85,7 +87,11 @@ INTLDEPS = @INTLDEPS@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
LIB_CRYPT = @LIB_CRYPT@
LIB_NANOSLEEP = @LIB_NANOSLEEP@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
@@ -98,6 +104,8 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SEQ_LIBM = @SEQ_LIBM@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
@@ -142,18 +150,20 @@ all: all-redirect
$(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)
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(srcdir)/version.texi: stamp-vti
$(srcdir)/version.texi: $(srcdir)/stamp-vti
@:
$(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
@(set `$(SHELL) $(srcdir)/mdate-sh $(srcdir)/fileutils.texi`; \
echo "@set UPDATED $$1 $$2 $$3"; \
echo "@set UPDATED-MONTH $$2 $$3"; \
echo "@set EDITION $(VERSION)"; \
echo "@set VERSION $(VERSION)") > vti.tmp
@cmp -s vti.tmp $(srcdir)/version.texi \
|| (echo "Updating $(srcdir)/version.texi"; \
cp vti.tmp $(srcdir)/version.texi)
@@ -170,8 +180,8 @@ distclean-vti:
maintainer-clean-vti:
-rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
fileutils.info: fileutils.texi version.texi
fileutils.dvi: fileutils.texi version.texi
fileutils.info: fileutils.texi $(srcdir)/version.texi
fileutils.dvi: fileutils.texi $(srcdir)/version.texi
DVIPS = dvips
@@ -266,7 +276,6 @@ dist-info: $(INFO_DEPS)
d=$(srcdir); \
for file in `CDPATH=: && cd $$d && eval echo $$base*`; do \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done; \
done
@@ -300,11 +309,12 @@ distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pR $$d/$$file $(distdir); \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info

View File

@@ -30,27 +30,32 @@ or a week from Sunday, with feelings of helpless confusion. @dots{}
--- Robert Grudin, @cite{Time and the Art of Living}.
@end quotation
This section describes the textual date representations that GNU
This section describes the textual date representations that @sc{gnu}
programs accept. These are the strings you, as a user, can supply as
arguments to the various programs. The C interface (via the
@code{getdate} function) is not described here.
@cindex beginning of time, for Unix
@cindex epoch, for Unix
Although the date syntax here can represent any possible time since zero
A.D., computer integers are not big enough for such a (comparatively)
long time. The earliest date semantically allowed on Unix systems is
midnight, 1 January 1970 UCT.
@cindex beginning of time, for @sc{posix}
@cindex epoch, for @sc{posix}
Although the date syntax here can represent any possible time since the
year zero, computer integers often cannot represent such a wide range of
time. On @sc{posix} systems, the clock starts at 1970-01-01 00:00:00
@sc{utc}: @sc{posix} does not require support for times before the
@sc{posix} Epoch and times far in the future. Traditional Unix systems
have 32-bit signed @code{time_t} and can represent times from 1901-12-13
20:45:52 through 2038-01-19 03:14:07 @sc{utc}. Systems with 64-bit
signed @code{time_t} can represent all the times in the known
lifetime of the universe.
@menu
* General date syntax:: Common rules.
* Calendar date item:: 19 Dec 1994.
* Time of day item:: 9:20pm.
* Time zone item:: EST, DST, BST, UTC, ...
* Day of week item:: Monday and others.
* Relative item in date strings:: next tuesday, 2 years ago.
* Calendar date items:: 19 Dec 1994.
* Time of day items:: 9:20pm.
* Time zone items:: @sc{est}, @sc{pdt}, @sc{gmt}, ...
* Day of week items:: Monday and others.
* Relative items in date strings:: next tuesday, 2 years ago.
* Pure numbers in date strings:: 19931219, 1440.
* Authors of getdate:: Bellovin, Salz, Berets, et al.
* Authors of getdate:: Bellovin, Eggert, Salz, Berets, et al.
@end menu
@@ -103,8 +108,8 @@ nested. Hyphens not followed by a digit are currently ignored. Leading
zeros on numbers are ignored.
@node Calendar date item
@section Calendar date item
@node Calendar date items
@section Calendar date items
@cindex calendar date item
@@ -113,13 +118,14 @@ specified differently, depending on whether the month is specified
numerically or literally. All these strings specify the same calendar date:
@example
1970-09-17 # ISO 8601.
70-9-17 # Assume 19xx for 69 through 99, 20xx for 00 through 68.
70-09-17 # Leading zeros are ignored.
9/17/72 # Common U.S. writing.
1972-09-24 # @sc{iso} 8601.
72-9-24 # Assume 19xx for 69 through 99,
# 20xx for 00 through 68.
72-09-24 # Leading zeros are ignored.
9/24/72 # Common U.S. writing.
24 September 1972
24 Sept 72 # September has a special abbreviation.
24 Sep 72 # Three-letter abbreviations always allowed.
24 Sept 72 # September has a special abbreviation.
24 Sep 72 # Three-letter abbreviations always allowed.
Sep 24, 1972
24-sep-72
24sep72
@@ -129,15 +135,15 @@ The year can also be omitted. In this case, the last specified year is
used, or the current year if none. For example:
@example
9/17
sep 17
9/24
sep 24
@end example
Here are the rules.
@cindex ISO 8601 date format
@cindex date format, ISO 8601
For numeric months, the ISO 8601 format
@cindex @sc{iso} 8601 date format
@cindex date format, @sc{iso} 8601
For numeric months, the @sc{iso} 8601 format
@samp{@var{year}-@var{month}-@var{day}} is allowed, where @var{year} is
any positive number, @var{month} is a number between 01 and 12, and
@var{day} is a number between 01 and 31. A leading zero must be present
@@ -173,8 +179,8 @@ Or, omitting the year:
@end example
@node Time of day item
@section Time of day item
@node Time of day items
@section Time of day items
@cindex time of day item
@@ -185,7 +191,7 @@ day. Here are some examples, all of which represent the same time:
20:02:0
20:02
8:02pm
20:02-0500 # In EST (Eastern U.S. Standard Time).
20:02-0500 # In @sc{est} (U.S. Eastern Standard Time).
@end example
More generally, the time of the day may be given as
@@ -205,6 +211,9 @@ or @samp{p.m.}), @var{hour} is restricted to run from 1 to 12, and
indicates the first half of the day, @samp{pm} indicates the second
half of the day. In this notation, 12 is the predecessor of 1:
midnight is @samp{12am} while noon is @samp{12pm}.
(This is the zero-oriented interpretation of @samp{12am} and @samp{12pm},
as opposed to the old tradition derived from Latin
which uses @samp{12m} for noon and @samp{12pm} for midnight.)
@cindex time zone correction
@cindex minutes, time zone correction by
@@ -213,138 +222,37 @@ expressed as @samp{@var{s}@var{hh}@var{mm}}, where @var{s} is @samp{+}
or @samp{-}, @var{hh} is a number of zone hours and @var{mm} is a number
of zone minutes. When a time zone correction is given this way, it
forces interpretation of the time relative to
Coordinated Universal Time (UTC), overriding any previous
Coordinated Universal Time (@sc{utc}), overriding any previous
specification for the time zone or the local time zone. The @var{minute}
part of the time of the day may not be elided when a time zone correction
is used. This is the only way to specify a time zone correction by
is used. This is the best way to specify a time zone correction by
fractional parts of an hour.
Either @samp{am}/@samp{pm} or a time zone correction may be specified,
but not both.
@node Time zone item
@section Time zone item
@node Time zone items
@section Time zone items
@cindex time zone item
A @dfn{time zone item} specifies an international time zone, indicated by
a small set of letters. They are supported for backward compatibility reasons,
but they are not recommended because they are ambiguous in practice:
for example, the abbreviation @samp{EST} has different meanings in
Australia and the United States. Any included period is ignored. Military
time zone designations use a single letter. Currently, only integral
zone hours may be represented in a time zone item. See the previous
section for a finer control over the time zone correction.
A @dfn{time zone item} specifies an international time zone, indicated
by a small set of letters, e.g., @samp{UTC} for Coordinated Universal
Time. Any included periods are ignored. By following a
non-daylight-saving time zone by the string @samp{DST} in a separate
word (that is, separated by some white space), the corresponding
daylight saving time zone may be specified.
Here are many non-daylight-saving-time time zones, indexed by the zone
hour value.
@table @asis
@item -1200
@samp{Y} for militaries.
@item -1100
@samp{X} for militaries.
@item -1000
@samp{W} for militaries.
@item -0900
@samp{V} for militaries.
@item -0800
@samp{PST} for Pacific Standard, and
@samp{U} for militaries.
@item -0700
@samp{MST} for Mountain Standard, and
@samp{T} for militaries.
@item -0600
@samp{CST} for Central Standard, and
@samp{S} for militaries.
@item -0500
@samp{EST} for Eastern Standard, and
@samp{R} for militaries.
@item -0400
@samp{AST} for Atlantic Standard, and
@samp{Q} for militaries.
@item -0300
@samp{P} for militaries.
@item -0200
@samp{O} for militaries.
@item -0100
@samp{N} for militaries.
@item +0000
@cindex Greenwich Mean Time
@cindex Coordinated Universal Time
@cindex Universal Coordinated Time
@cindex Universal Time (Coordinated)
@samp{GMT} for Greenwich Mean,
@samp{UT} for Universal,
@samp{UTC} for Coordinated Universal,
@samp{WET} for Western European, and
@samp{Z} for ISO 8601 and militaries.
@item +0100
@samp{A} for militaries,
@samp{CET} for Central European,
@samp{MET} for Midden Europesche Tijd (Dutch), and
@samp{MEZ} for Mittel-Europ@"aische Zeit (German).
@item +0200
@samp{B} for militaries, and
@samp{EET} for Eastern European.
@item +0300
@samp{C} for militaries.
@item +0400
@samp{D} for militaries.
@item +0500
@samp{E} for militaries.
@item +0600
@samp{F} for militaries.
@item +0700
@samp{G} for militaries.
@item +0800
@samp{H} for militaries.
@item +0900
@samp{I} for militaries, and
@samp{JST} for Japan Standard.
@item +1000
@samp{GST} for Guam Standard, and
@samp{K} for militaries.
@item +1100
@samp{L} for militaries.
@item +1200
@samp{M} for militaries, and
@samp{NZST} for New Zealand Standard.
@end table
@cindex daylight-saving time
Here are many daylight-saving time (DST) time zones,
indexed by the zone hour value. Also, by
following a non-DST time zone by the string @samp{DST} in a separate word
(that is, separated by some whitespace), the corresponding DST time zone
may be specified.
@table @asis
@item -0700
@samp{PDT} for Pacific Daylight.
@item -0600
@samp{MDT} for Mountain Daylight.
@item -0500
@samp{CDT} for Central Daylight.
@item -0400
@samp{EDT} for Eastern Daylight.
@item -0300
@samp{ADT} for Atlantic Daylight.
@item +0100
@samp{BST} for British Summer, and
@samp{WEST} for Western European Summer.
@item +0200
@samp{CEST} for Central European Summer,
@samp{MEST} for Midden Europesche S. Tijd (Dutch), and
@samp{MESZ} for Mittel-Europ@"aische Sommerzeit (German).
@item +1300
@samp{NZDT} for New Zealand Daylight.
@end table
Time zone items are obsolescent and are not recommended, because they
are ambiguous; for example, @samp{EST} has a different meaning in
Australia than in the United States. Instead, it's better to use
unambiguous numeric time zone corrections like @samp{-0500}, as
described in the previous section.
@node Day of week item
@section Day of week item
@node Day of week items
@section Day of week items
@cindex day of week item
@@ -370,8 +278,8 @@ the day that @var{day} by itself would represent.
A comma following a day of the week item is ignored.
@node Relative item in date strings
@section Relative item in date strings
@node Relative items in date strings
@section Relative items in date strings
@cindex relative items in date strings
@cindex displacement of dates
@@ -408,7 +316,7 @@ The unit of time may be preceded by a multiplier, given as an optionally
signed number. Unsigned numbers are taken as positively signed. No
number at all implies 1 for a multiplier. Following a relative item by
the string @samp{ago} is equivalent to preceding the unit by a
multiplicator with value @math{-1}.
multiplier with value @math{-1}.
@findex day @r{in date strings}
@findex tomorrow @r{in date strings}
@@ -423,14 +331,14 @@ one day in the past (equivalent to @samp{day ago}).
The strings @samp{now} or @samp{today} are relative items corresponding
to zero-valued time displacement, these strings come from the fact
a zero-valued time displacement represents the current time when not
otherwise change by previous items. They may be used to stress other
otherwise changed by previous items. They may be used to stress other
items, like in @samp{12:00 today}. The string @samp{this} also has
the meaning of a zero-valued time displacement, but is preferred in
date strings like @samp{this thursday}.
When a relative item makes the resulting date to cross the boundary
between DST and non-DST (or vice-versa), the hour is adjusted according
to the local time.
When a relative item causes the resulting date to cross a boundary
where the clocks were adjusted, typically for daylight-saving time,
the resulting date and time are adjusted accordingly.
@node Pure numbers in date strings
@@ -438,11 +346,11 @@ to the local time.
@cindex pure numbers in date strings
The precise intepretation of a pure decimal number is dependent of
the context in the date string.
The precise interpretation of a pure decimal number depends
on the context in the date string.
If the decimal number is of the form @var{yyyy}@var{mm}@var{dd} and no
other calendar date item (@pxref{Calendar date item}) appears before it
other calendar date item (@pxref{Calendar date items}) appears before it
in the date string, then @var{yyyy} is read as the year, @var{mm} as the
month number and @var{dd} as the day of the month, for the specified
calendar date.
@@ -467,13 +375,14 @@ year.
@cindex Berets, Jim
@cindex MacKenzie, David
@cindex Meyering, Jim
@cindex Eggert, Paul
@code{getdate} was originally implemented by Steven M. Bellovin
(@email{smb@@research.att.com}) while at the University of North Carolina
at Chapel Hill. The code was later tweaked by a couple of people on
Usenet, then completely overhauled by Rich $alz (@email{rsalz@@bbn.com})
and Jim Berets (@email{jberets@@bbn.com}) in August, 1990. Various
revisions for the GNU system were made by David MacKenzie, Jim Meyering,
and others.
revisions for the @sc{gnu} system were made by David MacKenzie, Jim Meyering,
Paul Eggert and others.
@cindex Pinard, F.
@cindex Berry, K.

View File

@@ -69,11 +69,12 @@ matter what group the user who creates them is in.
@cindex sticky
@cindex swap space, saving text image in
@cindex text image, saving in swap space
@cindex append-only directories
@cindex restricted deletion flag
save the program's text image on the swap device so it will load more
quickly when run (called the @dfn{sticky bit}). For directories on some
systems, prevent users from removing files that they do not own in the
directory; this is called making the directory @dfn{append-only}.
systems, prevent users from removing or renaming a file in a directory
unless they own the file or the directory; this is called the
@dfn{restriction deletion flag} for the directory.
@end enumerate
@node Symbolic Modes
@@ -118,7 +119,7 @@ format:
@noindent
The spaces between the three parts above are shown for readability only;
symbolic modes can not contain spaces.
symbolic modes cannot contain spaces.
The @var{users} part tells which users' access to the file is changed.
It consists of one or more of the following letters (or it can be empty;
@@ -276,18 +277,8 @@ o+t
Remember that the special permissions only affect files that are
executable, plus, on some systems, directories (on which they have
different meanings; @pxref{Mode Structure}). Using @samp{a}
in the @var{users} part of a symbolic mode does not cause the special
permissions to be affected; thus,
@example
a+s
@end example
@noindent
has @emph{no effect}. You must use @samp{u}, @samp{g}, and @samp{o}
explicitly to affect the special permissions. Also, the
combinations @samp{u+t}, @samp{g+t}, and @samp{o+s} have no effect.
different meanings; @pxref{Mode Structure}).
Also, the combinations @samp{u+t}, @samp{g+t}, and @samp{o+s} have no effect.
The @samp{=} operator is not very useful with special permissions; for
example, the mode:
@@ -342,7 +333,7 @@ og+rX-w
gives users other than the owner of the file read permission and, if
it is a directory or if someone already had execute permission
to it, gives them execute permission; and it also denies them write
permission to it file. It does not affect the permission that the
permission to the file. It does not affect the permission that the
owner of the file has for it. The above mode is equivalent to
the two modes:
@@ -437,7 +428,7 @@ This number is always interpreted in octal; you do not have to add a
leading 0, as you do in C. Mode 0055 is the same as mode 55.
A numeric mode is usually shorter than the corresponding symbolic
mode, but it is limited in that it can not take into account a file's
mode, but it is limited in that it cannot take into account a file's
previous permissions; it can only set them absolutely.
On most systems, the permissions granted to the user,

View File

@@ -34,6 +34,7 @@ START-INFO-DIR-ENTRY
* factor: (sh-utils)factor invocation. Print prime factors
* false: (sh-utils)false invocation. Do nothing, unsuccessfully.
* groups: (sh-utils)groups invocation. Print group names a user is in.
* hostid: (sh-utils)hostid invocation. Print numeric host identifier.
* hostname: (sh-utils)hostname invocation. Print or set system name.
* id: (sh-utils)id invocation. Print real/effective uid/gid.
* logname: (sh-utils)logname invocation. Print current login name.
@@ -63,7 +64,7 @@ END-INFO-DIR-ENTRY
@ifinfo
This file documents the GNU shell utilities.
Copyright (C) 1994, 95, 96 Free Software Foundation, Inc.
Copyright (C) 1994, 1995, 1996, 2000 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -95,7 +96,7 @@ by the Foundation.
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1994, 95, 96 Free Software Foundation, Inc.
Copyright @copyright{} 1994, 1995, 1996, 2000 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -320,6 +321,21 @@ the @var{format} string.
and @samp{\xhhh} as a hexadecimal number (if @var{hhh} is 1 to 3 hex
digits) specifying a character to print.
@kindex \uhhhh
@kindex \Uhhhhhhhh
@code{printf} interprets two character syntaxes introduced in ISO C 99:
@samp{\u} for 16-bit Unicode characters, specified as 4 hex digits
@var{hhhh}, and @samp{\U} for 32-bit Unicode characters, specified as 8 hex
digits @var{hhhhhhhh}. @code{printf} outputs the Unicode characters
according to the LC_CTYPE part of the current locale, i.e. depending
on the values of the environment variables @code{LC_ALL}, @code{LC_CTYPE},
@code{LANG}.
The processing of @samp{\u} and @samp{\U} requires a full-featured
@code{iconv} facility. It is activated on systems with glibc 2.2 (or newer),
or when @code{libiconv} is installed prior to the sh-utils. Otherwise the
use of @samp{\u} and @samp{\U} will give an error message.
@kindex \c
An additional escape, @samp{\c}, causes @code{printf} to produce no
further output.
@@ -327,6 +343,43 @@ further output.
The only options are a lone @samp{--help} or
@samp{--version}. @xref{Common options}.
The Unicode character syntaxes are useful for writing strings in a locale
independent way. For example, a string containing the Euro currency symbol
@example
$ /usr/local/bin/printf '\u20AC 14.95'
@end example
@noindent
will be output correctly in all locales supporting the Euro symbol
(ISO-8859-15, UTF-8, and others). Similarly, a Chinese string
@example
$ /usr/local/bin/printf '\u4e2d\u6587'
@end example
@noindent
will be output correctly in all Chinese locales (GB2312, BIG5, UTF-8, etc).
Note that in these examples, the full pathname of @code{printf} has been
given, to distinguish it from the GNU @code{bash} builtin function
@code{printf}.
For larger strings, you don't need to look up the hexadecimal code
values of each character one by one. ASCII characters mixed with \u
escape sequences is also known as the JAVA source file encoding. You can
use GNU recode 3.5c (or newer) to convert strings to this encoding. Here
is how to convert a piece of text into a shell script which will output
this text in a locale-independent way:
@smallexample
$ LC_CTYPE=zh_CN.big5 /usr/local/bin/printf \
'\u4e2d\u6587\n' > sample.txt
$ recode BIG5..JAVA < sample.txt \
| sed -e "s|^|/usr/local/bin/printf '|" -e "s|$|\\\\n'|" \
> sample.sh
@end smallexample
@node yes invocation
@section @code{yes}: Print a string until interrupted
@@ -706,7 +759,7 @@ True if either @var{expr1} or @var{expr2} is true.
@code{expr} evaluates an expression and writes the result on standard
output. Each token of the expression must be a separate argument.
Operands are either numbers or strings. @code{expr} coerces
Operands are either numbers or strings. @code{expr} converts
anything appearing in an operand position to an integer or a string
depending on the operation being applied to it.
@@ -752,7 +805,7 @@ the next sections).
@cindex pattern matching
@cindex regular expression matching
@cindex matching patterns
Perform pattern matching. The arguments are coerced to strings and the
Perform pattern matching. The arguments are converted to strings and the
second is considered to be a (basic, a la GNU @code{grep}) regular
expression, with a @code{^} implicitly prepended. The first argument is
then matched against this regular expression.
@@ -833,7 +886,7 @@ the connectives (next section) have higher.
@kindex -
@cindex addition
@cindex subtraction
Addition and subtraction. Both arguments are coerced to numbers;
Addition and subtraction. Both arguments are converted to numbers;
an error occurs if this cannot be done.
@item * / %
@@ -843,7 +896,7 @@ an error occurs if this cannot be done.
@cindex multiplication
@cindex division
@cindex remainder
Multiplication, division, remainder. Both arguments are coerced to
Multiplication, division, remainder. Both arguments are converted to
numbers; an error occurs if this cannot be done.
@end table
@@ -885,9 +938,9 @@ Return its first argument if neither argument is null or 0, otherwise
@kindex >=
@cindex comparison operators
Compare the arguments and return 1 if the relation is true, 0 otherwise.
@code{==} is a synonym for @code{=}. @code{expr} first tries to coerce
@code{==} is a synonym for @code{=}. @code{expr} first tries to convert
both arguments to numbers and do a numeric comparison; if either
coercion fails, it does a lexicographic comparison.
conversion fails, it does a lexicographic comparison.
@end table
@@ -1569,9 +1622,10 @@ values.
Same as:
@c This is too long to write inline.
@example
cread -ignbrk brkint -inlcr -igncr icrnl -ixoff -iuclc -ixany
imaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel
nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl
cread -ignbrk brkint -inlcr -igncr icrnl -ixoff
-iuclc -ixany imaxbel opost -olcuc -ocrnl onlcr
-onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0
ff0 isig icanon iexten echo echoe echok -echonl
-noflsh -xcase -tostop -echoprt echoctl echoke
@end example
@noindent and also sets all special characters to their default values.
@@ -1587,9 +1641,9 @@ May be negated. If negated, same as @code{raw}.
@opindex raw
Same as:
@example
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr
-icrnl -ixon -ixoff -iuclc -ixany -imaxbel -opost -isig -icanon
-xcase min 1 time 0
-ignbrk -brkint -ignpar -parmrk -inpck -istrip
-inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany
-imaxbel -opost -isig -icanon -xcase min 1 time 0
@end example
@noindent May be negated. If negated, same as @code{cooked}.
@@ -1733,7 +1787,7 @@ the time value has expired, when @code{-icanon} is set.
@item time @var{n}
@opindex time
Set the number of tenths of a second before reads time out if the min
Set the number of tenths of a second before reads time out if the minimum
number of characters have not been read, when @code{-icanon} is set.
@item ispeed @var{n}
@@ -1759,7 +1813,7 @@ Tell the kernel that the terminal has @var{n} columns. Non-POSIX.
@vindex LINES
@vindex COLUMNS
Print the number of rows and columns that the kernel thinks the
terminal has. (Systems that don't support rows and cols in the kernel
terminal has. (Systems that don't support rows and columns in the kernel
typically use the environment variables @env{LINES} and @env{COLUMNS}
instead; however, GNU @code{stty} does not know anything about them.)
Non-POSIX.
@@ -1774,6 +1828,8 @@ Print the terminal speed.
@item @var{n}
@cindex baud rate, setting
@c FIXME: Is this still true that the baud rate can't be set
@c higher than 38400?
Set the input and output speeds to @var{n}. @var{n} can be one
of: 0 50 75 110 134 134.5 150 200 300 600 1200 1800 2400 4800 9600
19200 38400 @code{exta} @code{extb}. @code{exta} is the same as
@@ -2131,6 +2187,7 @@ information.
* date invocation:: Print or set system date and time.
* uname invocation:: Print system information.
* hostname invocation:: Print or set system name.
* hostid invocation:: Print numeric host identifier.
@end menu
@@ -2147,7 +2204,7 @@ format of the @samp{%c} directive (described below). Synopses:
@example
date [@var{option}]@dots{} [+@var{format}]
date [-u|--utc|--universal] @c this avoids a newline in the output
[ @var{MMDDhhmm}[[@var{CC}]@var{YY}][.@var{ss}] ]
[ MMDDhhmm[[CC]YY][.ss] ]
@end example
@findex strftime @r{and @code{date}}
@@ -2203,7 +2260,7 @@ Note that this value is the number of seconds between the epoch
and the current date as defined by the localtime system call.
It isn't changed by the @samp{--date} option.
@item %S
second (00@dots{}61)
second (00@dots{}60)
@item %T
time, 24-hour (hh:mm:ss)
@item %X
@@ -2345,7 +2402,7 @@ zone.
The argument must consist entirely of digits, which have the following
meaning:
@table @var
@table @samp
@item MM
month
@item DD
@@ -2424,16 +2481,14 @@ Append the hours, minutes, and seconds.
@end table
If showing any time terms, then include the time zone using the format
@samp{%z}. If @samp{--utc} is also specified, use @samp{%Z} in place of
@samp{%z}.
@item -R
@itemx --rfc-822
@opindex -R
@opindex --rfc-822
Display the time and date using the RFC-822-specified
Display the time and date using the RFC-822-conforming
format, @samp{%a, %_d %b %Y %H:%M:%S %z}.
If @samp{--utc} is also specified, use @samp{GMT} in place of @samp{%z}.
@item -r @var{file}
@itemx --reference=@var{file}
@@ -2446,7 +2501,7 @@ time of @var{file}, instead of the current time and date.
@itemx --set=@var{datestr}
@opindex -s
@opindex --set
Set the time and date to @var{datestr}, See @samp{-d} above.
Set the time and date to @var{datestr}. See @samp{-d} above.
@item -u
@itemx --utc
@@ -2454,11 +2509,16 @@ Set the time and date to @var{datestr}, See @samp{-d} above.
@opindex -u
@opindex --utc
@opindex --universal
@cindex coordinated universal time
@cindex Coordinated Universal Time
@cindex UTC
@cindex Greenwich Mean Time
Print or set the time and date in Universal Coordinated Time instead of
in local (wall clock) time.
@cindex GMT
Use Coordinated Universal Time (@sc{utc}) by operating as if the
@env{TZ} environment variable was set to the string @samp{UTC0}.
Normally, @command{date} operates in the time zone indicated by
@env{TZ}, or the system default if @env{TZ} is not set. Coordinated
Universal Time is often called ``Greenwich Mean Time'' (@sc{gmt}) for
historical reasons.
@end table
@@ -2536,7 +2596,7 @@ To convert a date string to the number of seconds since the epoch
the @samp{%s} format. That can be useful in sorting and/or graphing
and/or comparing data by date. The following command outputs the
number of the seconds since the epoch for the time one second later
than the epoch, but in time zone five hours later (Cambridge, Massachusetts),
than the epoch, but in a time zone five hours later (Cambridge, Massachusetts),
thus a total of five hours and one second after the epoch:
@example
@@ -2545,7 +2605,7 @@ date --date='1970-01-01 00:00:01 UTC +5 hours' +%s
@end example
Suppose you had @emph{not} specified time zone information in the example above.
Then, date would have used your computer's idea of the time zone when
Then, @code{date} would have used your computer's idea of the time zone when
interpreting the string. Here's what you would get if you were in
Greenwich, England:
@@ -2665,7 +2725,6 @@ Print the operating system version.
@end table
@node hostname invocation
@section @code{hostname}: Print or set system name
@@ -2688,6 +2747,29 @@ The only options are @samp{--help} and @samp{--version}. @xref{Common
options}.
@node hostid invocation
@section @code{hostid}: Print numeric host identifier.
@pindex hostid
@cindex printing the host identifier
@code{hostid} prints the numeric identifier of the current host
in hexadecimal. This command accepts no arguments.
The only options are @samp{--help} and @samp{--version}.
@xref{Common options}.
For example, here's what it prints on one system I use:
@example
$ hostid
1bac013d
@end example
On that system, the 32-bit quantity happens to be closely
related to the system's Internet address, but that isn't always
the case.
@node Modified command invocation
@chapter Modified command invocation
@@ -2734,6 +2816,34 @@ variable or @code{/bin/sh} if not set, invoked with the @samp{-i} option.
The only options are @samp{--help} and @samp{--version}. @xref{Common
options}.
Here are a few tips to help avoid common problems in using chroot.
To start with a simple example, make @var{command} refer to a statically
linked binary. If you were to use a dynamically linked executable, then
you'd have to arrange to have the shared libraries in the right place under
your new root directory.
For example, if you create a statically linked `ls' executable,
and put it in /tmp/empty, you can run this command as root:
@example
$ chroot /tmp/empty /ls -Rl /
@end example
Then you'll see output like this:
@example
/:
total 1023
-rwxr-xr-x 1 0 0 1041745 Aug 16 11:17 ls
@end example
If you want to use a dynamically linked executable, say @code{bash},
then first run @samp{ldd bash} to see what shared objects it needs.
Then, in addition to copying the actual binary, also copy the listed
files to the required positions under your intended new root directory.
Finally, if the executable requires any other files (e.g., data, state,
device files), copy them into place, too.
@node env invocation
@section @code{env}: Run a command in a modified environment
@@ -2851,7 +2961,7 @@ nohup @var{command} [@var{arg}]@dots{}
@flindex nohup.out
@code{nohup} increases the scheduling priority of @var{command} by 5, so
it has a slightly smaller change to run. If standard output is a terminal,
it has a slightly smaller chance to run. If standard output is a terminal,
it and standard error are redirected so that they are appended to the
file @file{nohup.out}; if that cannot be written to, they are appended
to the file @file{$HOME/nohup.out}. If that cannot be written to, the
@@ -3100,12 +3210,13 @@ options}.
The algorithm it uses is not very sophisticated, so for some inputs
@code{factor} runs for a long time. The hardest numbers to factor are
the products of large primes. Factoring the square of the largest 32-bit
prime number takes over 10 minutes of CPU time on a 400MHz Pentium II.
the products of large primes. Factoring the product of the two largest 32-bit
prime numbers takes over 10 minutes of CPU time on a 400MHz Pentium II.
@example
$ factor `echo '4294967291^2'|bc`
18446744030759878681: 4294967291 4294967291
$ p=`echo '4294967279 * 4294967291'|bc`
$ factor $p
18446743979220271189: 4294967279 4294967291
@end example
In contrast, @code{factor} factors the largest 64-bit number in just
@@ -3126,13 +3237,13 @@ $ factor `echo '2^64-1'|bc`
@code{seq} prints a sequence of numbers to standard output. Synopses:
@example
seq [@var{option}]@dots{} [@var{first} [@var{step}]] @var{last}@dots{}
seq [@var{option}]@dots{} [@var{first} [@var{increment}]] @var{last}@dots{}
@end example
@code{seq} prints the numbers from @var{first} to @var{last} by
@var{step}. By default, @var{first} and @var{step} are both 1, and each
number is printed on its own line. All numbers can be reals, not just
integers.
@var{increment}. By default, @var{first} and @var{increment} are both 1,
and each number is printed on its own line. All numbers can be reals,
not just integers.
The program accepts the following options. Also see @ref{Common options}.
@@ -3143,7 +3254,7 @@ The program accepts the following options. Also see @ref{Common options}.
@opindex --format=@var{format}
@cindex formatting of numbers in @code{seq}
Print all numbers using @var{format}; default @samp{%g}.
@var{format} must contain exactly one of the standarding floating point
@var{format} must contain exactly one of the floating point
output formats @samp{%e}, @samp{%f}, or @samp{%g}.
@item -s @var{string}
@@ -3220,6 +3331,35 @@ FFFFFFFF
100000000
@end example
Be careful when using @code{seq} with a fractional @var{increment},
otherwise you may see surprising results. Most people would expect to
see @code{0.3} printed as the last number in this example:
@example
$ seq -s' ' 0 .1 .3
0 0.1 0.2
@end example
But that doesn't happen on most systems because @code{seq} is
implemented using binary floating point arithmetic (via the C
@code{double} type) -- which means some decimal numbers like @code{.1}
cannot be represented exactly. That in turn means some nonintuitive
conditions like @code{.1 * 3 > .3} will end up being true.
To work around that in the above example, use a slightly larger number as
the @var{last} value:
@example
$ seq -s' ' 0 .1 .31
0 0.1 0.2 0.3
@end example
In general, when using an @var{increment} with a fractional part, where
(@var{last} - @var{first}) / @var{increment} is (mathematically) a whole
number, specify a slightly larger (or smaller, if @var{increment} is negative)
value for @var{last} to ensure that @var{last} is the final value printed
by seq.
@node Index
@unnumbered Index

View File

@@ -3,9 +3,9 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
\def\texinfoversion{1999-09-25.10}
\def\texinfoversion{2000-12-11.07}
%
% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
% Free Software Foundation, Inc.
%
% This texinfo.tex file is free software; you can redistribute it and/or
@@ -214,6 +214,9 @@
\normalturnoffactive % \ in index entries must not stay \, e.g., if
% the page break happens to be in the middle of an example.
\shipout\vbox{%
% Do this early so pdf references go to the beginning of the page.
\ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi
%
\ifcropmarks \vbox to \outervsize\bgroup
\hsize = \outerhsize
\vskip-\topandbottommargin
@@ -243,8 +246,6 @@
\unvbox\footlinebox
\fi
%
\ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi
%
\ifcropmarks
\egroup % end of \vbox\bgroup
\hfil\egroup % end of (centering) \line\bgroup
@@ -687,16 +688,54 @@ where each line of input produces a line of output.}
\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount
\leftline{\hskip\leftskip{\rm#1}}}}
% @inmargin{TEXT} puts TEXT in the margin next to the current paragraph.
\def\inmargin#1{%
\strut\vadjust{\nobreak\kern-\strutdepth
\vtop to \strutdepth{\baselineskip\strutdepth\vss
\llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}}
% @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current
% paragraph. For more general purposes, use the \margin insertion
% class. WHICH is `l' or `r'.
%
\newskip\inmarginspacing \inmarginspacing=1cm
\def\strutdepth{\dp\strutbox}
%\hbox{{\rm#1}}\hfil\break}}
%
\def\doinmargin#1#2{\strut\vadjust{%
\nobreak
\kern-\strutdepth
\vtop to \strutdepth{%
\baselineskip=\strutdepth
\vss
% if you have multiple lines of stuff to put here, you'll need to
% make the vbox yourself of the appropriate size.
\ifx#1l%
\llap{\ignorespaces #2\hskip\inmarginspacing}%
\else
\rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}%
\fi
\null
}%
}}
\def\inleftmargin{\doinmargin l}
\def\inrightmargin{\doinmargin r}
%
% @inmargin{TEXT [, RIGHT-TEXT]}
% (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;
% else use TEXT for both).
%
\def\inmargin#1{\parseinmargin #1,,\finish}
\def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.
\setbox0 = \hbox{\ignorespaces #2}%
\ifdim\wd0 > 0pt
\def\lefttext{#1}% have both texts
\def\righttext{#2}%
\else
\def\lefttext{#1}% have only one text
\def\righttext{#1}%
\fi
%
\ifodd\pageno
\def\temp{\inleftmargin\lefttext}%
\else
\def\temp{\inrightmargin\righttext}%
\fi
\temp
}
% @include file insert text of that file as input.
% Allow normal characters that we make active in the argument (a file name).
@@ -891,7 +930,7 @@ where each line of input produces a line of output.}
\fi}
\def\pdfmkdest#1{\pdfdest name{#1@} xyz}
\def\pdfmkpgn#1{#1@}
\let\linkcolor = \Cyan
\let\linkcolor = \Blue % was Cyan, but that seems light?
\def\endlink{\Black\pdfendlink}
% Adding outlines to PDF; macros for calculating structure of outlines
% come from Petr Olsak
@@ -906,7 +945,8 @@ where each line of input produces a line of output.}
\closein 1
\indexnofonts
\def\tt{}
% thanh's hack / proper braces in bookmarks
\let\_ = \normalunderscore
% Thanh's hack / proper braces in bookmarks
\edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
\edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
%
@@ -1670,7 +1710,10 @@ where each line of input produces a line of output.}
}
% Subroutines used in generating headings
% Produces Day Month Year style of output.
% This produces Day Month Year style of output.
% Only define if not already defined, in case a txi-??.tex file has set
% up a different format (e.g., txi-cs.tex does this).
\ifx\today\undefined
\def\today{%
\number\day\space
\ifcase\month
@@ -1679,6 +1722,7 @@ where each line of input produces a line of output.}
\or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
\fi
\space\number\year}
\fi
% @settitle line... specifies the title of the document, for headings.
% It generates no output of its own.
@@ -2587,42 +2631,48 @@ width0pt\relax} \fi
}
% @defindex foo == \newindex{foo}
%
\def\defindex{\parsearg\newindex}
% Define @defcodeindex, like @defindex except put all entries in @code.
%
\def\defcodeindex{\parsearg\newcodeindex}
%
\def\newcodeindex#1{%
\iflinks
\expandafter\newwrite \csname#1indfile\endcsname
\openout \csname#1indfile\endcsname \jobname.#1
\fi
\expandafter\xdef\csname#1index\endcsname{%
\noexpand\docodeindex{#1}}
\noexpand\docodeindex{#1}}%
}
\def\defcodeindex{\parsearg\newcodeindex}
% @synindex foo bar makes index foo feed into index bar.
% Do this instead of @defindex foo if you don't want it as a separate index.
% The \closeout helps reduce unnecessary open files; the limit on the
% Acorn RISC OS is a mere 16 files.
\def\synindex#1 #2 {%
\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
\expandafter\closeout\csname#1indfile\endcsname
\expandafter\let\csname#1indfile\endcsname=\synindexfoo
\expandafter\xdef\csname#1index\endcsname{% define \xxxindex
\noexpand\doindex{#2}}%
}
%
% @syncodeindex foo bar similar, but put all entries made for index foo
% inside @code.
\def\syncodeindex#1 #2 {%
\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
\expandafter\closeout\csname#1indfile\endcsname
\expandafter\let\csname#1indfile\endcsname=\synindexfoo
\expandafter\xdef\csname#1index\endcsname{% define \xxxindex
\noexpand\docodeindex{#2}}%
%
\def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
\def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
% #1 is \doindex or \docodeindex, #2 the index getting redefined (foo),
% #3 the target index (bar).
\def\dosynindex#1#2#3{%
% Only do \closeout if we haven't already done it, else we'll end up
% closing the target index.
\expandafter \ifx\csname donesynindex#2\endcsname \undefined
% The \closeout helps reduce unnecessary open files; the limit on the
% Acorn RISC OS is a mere 16 files.
\expandafter\closeout\csname#2indfile\endcsname
\expandafter\let\csname\donesynindex#2\endcsname = 1
\fi
% redefine \fooindfile:
\expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
\expandafter\let\csname#2indfile\endcsname=\temp
% redefine \fooindex:
\expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}%
}
% Define \doindex, the driver for all \fooindex macros.
@@ -3149,7 +3199,6 @@ width0pt\relax} \fi
%
% Double the \vsize as well. (We don't need a separate register here,
% since nobody clobbers \vsize.)
\advance\vsize by -\ht\partialpage
\vsize = 2\vsize
}
@@ -3163,6 +3212,7 @@ width0pt\relax} \fi
% previous page.
\dimen@ = \vsize
\divide\dimen@ by 2
\advance\dimen@ by -\ht\partialpage
%
% box0 will be the left-hand column, box2 the right.
\setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
@@ -3170,15 +3220,18 @@ width0pt\relax} \fi
\unvbox255
\penalty\outputpenalty
}
%
% Re-output the contents of the output page -- any previous material,
% followed by the two boxes we just split, in box0 and box2.
\def\pagesofar{%
% Re-output the contents of the output page -- any previous material,
% followed by the two boxes we just split, in box0 and box2.
\unvbox\partialpage
%
\hsize = \doublecolumnhsize
\wd0=\hsize \wd2=\hsize
\hbox to\pagewidth{\box0\hfil\box2}%
}
%
% All done with double columns.
\def\enddoublecolumns{%
\output = {%
% Split the last of the double-column material. Leave it on the
@@ -3203,8 +3256,9 @@ width0pt\relax} \fi
% \endgroup where \vsize got restored).
\pagegoal = \vsize
}
%
% Called at the end of the double column material.
\def\balancecolumns{%
% Called at the end of the double column material.
\setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
\dimen@ = \ht0
\advance\dimen@ by \topskip
@@ -4265,6 +4319,7 @@ width0pt\relax} \fi
\gobble
}
% @quotation does normal linebreaking (hence we can't use \nonfillstart)
% and narrows the margins.
%
@@ -4287,6 +4342,158 @@ width0pt\relax} \fi
}
% LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
% If we want to allow any <char> as delimiter,
% we need the curly braces so that makeinfo sees the @verb command, eg:
% `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org
%
% [Knuth]: Donald Ervin Knuth, 1996. The TeXbook.
%
% [Knuth] p. 344; only we need to do '@' too
\def\dospecials{%
\do\ \do\\\do\@\do\{\do\}\do\$\do\&%
\do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~}
%
% [Knuth] p. 380
\def\uncatcodespecials{%
\def\do##1{\catcode`##1=12}\dospecials}
%
% [Knuth] pp. 380,381,391
% Disable Spanish ligatures ?` and !` of \tt font
\begingroup
\catcode`\`=\active\gdef`{\relax\lq}
\endgroup
%
% Setup for the @verb command.
%
% Eight spaces for a tab
\begingroup
\catcode`\^^I=\active
\gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }}
\endgroup
%
\def\setupverb{%
\tt % easiest (and conventionally used) font for verbatim
\def\par{\leavevmode\endgraf}%
\catcode`\`=\active
\tabeightspaces
% Respect line breaks,
% print special symbols as themselves, and
% make each space count
% must do in this order:
\obeylines \uncatcodespecials \sepspaces
}
% Setup for the @verbatim environment
%
% Real tab expansion
\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
%
\def\starttabbox{\setbox0=\hbox\bgroup}
\begingroup
\catcode`\^^I=\active
\gdef\tabexpand{%
\catcode`\^^I=\active
\def^^I{\leavevmode\egroup
\dimen0=\wd0 % the width so far, or since the previous tab
\divide\dimen0 by\tabw
\multiply\dimen0 by\tabw % compute previous multiple of \tabw
\advance\dimen0 by\tabw % advance to next multiple of \tabw
\wd0=\dimen0 \box0 \starttabbox
}%
}
\endgroup
\def\setupverbatim{%
% Easiest (and conventionally used) font for verbatim
\tt
\def\par{\leavevmode\egroup\box0\endgraf}%
\catcode`\`=\active
\tabexpand
% Respect line breaks,
% print special symbols as themselves, and
% make each space count
% must do in this order:
\obeylines \uncatcodespecials \sepspaces
\everypar{\starttabbox}%
}
% Do the @verb magic: verbatim text is quoted by unique
% delimiter characters. Before first delimiter expect a
% right brace, after last delimiter expect closing brace:
%
% \def\doverb'{'<char>#1<char>'}'{#1}
%
% [Knuth] p. 382; only eat outer {}
\begingroup
\catcode`[=1\catcode`]=2\catcode`\{=12\catcode`\}=12
\gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next]
\endgroup
%
\def\verb{\begingroup\setupverb\doverb}
%
%
% Do the @verbatim magic: define the macro \doverbatim so that
% the (first) argument ends when '@end verbatim' is reached, ie:
%
% \def\doverbatim#1@end verbatim{#1}
%
% For Texinfo it's a lot easier than for LaTeX,
% because texinfo's \verbatim doesn't stop at '\end{verbatim}':
% we need not redefine '\', '{' and '}'
%
% Inspired by LaTeX's verbatim command set [latex.ltx]
%% Include LaTeX hack for completeness -- never know
%% \begingroup
%% \catcode`|=0 \catcode`[=1
%% \catcode`]=2\catcode`\{=12\catcode`\}=12\catcode`\ =\active
%% \catcode`\\=12|gdef|doverbatim#1@end verbatim[
%% #1|endgroup|def|Everbatim[]|end[verbatim]]
%% |endgroup
\begingroup
\catcode`\ =\active
\gdef\doverbatim#1@end verbatim{#1\end{verbatim}}
\endgroup
%
\def\verbatim{%
\def\Everbatim{\nonfillfinish\endgroup}%
\begingroup
\nonfillstart
\advance\leftskip by -\defbodyindent
\begingroup\setupverbatim\doverbatim
}
% @verbatiminclude FILE - insert text of file in verbatim environment.
%
% Allow normal characters that we make active in the argument (a file name).
\def\verbatiminclude{%
\begingroup
\catcode`\\=12
\catcode`~=12
\catcode`^=12
\catcode`_=12
\catcode`|=12
\catcode`<=12
\catcode`>=12
\catcode`+=12
\parsearg\doverbatiminclude
}
\def\setupverbatiminclude{%
\begingroup
\nonfillstart
\advance\leftskip by -\defbodyindent
\begingroup\setupverbatim
}
%
\def\doverbatiminclude#1{%
% Restore active chars for included file.
\endgroup
\begingroup
\def\thisfile{#1}%
\expandafter\expandafter\setupverbatiminclude\input\thisfile
\endgroup\nonfillfinish\endgroup
}
\message{defuns,}
% @defun etc.
@@ -4710,7 +4917,8 @@ width0pt\relax} \fi
\def\deftypeivarheader#1#2#3{%
\dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index
\begingroup
\defname{#3}{\putwordInstanceVariableof\ \code{#1}}%
\defname{\defheaderxcond#2\relax$$$#3}
{\putwordInstanceVariableof\ \code{#1}}%
\defvarargs{#3}%
\endgroup
}
@@ -5794,7 +6002,7 @@ should work if nowhere else does.}
% Use @afourwide to print on European A4 paper in wide format.
\def\afourwide{%
\afourpaper
\internalpagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}%
\internalpagesizes{6.5in}{9.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}%
%
\globaldefs = 0
}

File diff suppressed because it is too large Load Diff

View File

@@ -6,4 +6,5 @@ getopt1.c
md5.h
obstack.h
regex.h
regex.c
getpagesize.h

View File

@@ -1,8 +1,11 @@
.deps
Makefile
charset.alias
getdate.c
getdate.tab.c
lstat.c
ref-add.sed
ref-del.sed
safe-lstat.c
safe-lstat.h
safe-stat.c

View File

@@ -184,3 +184,46 @@ p n
up
p len
q
complete b user
complete b user
complete b pars
b parse_user_spec
r a.b
n
n
p u
n
p u
n
r -r .aa > k
pwd
q
b main
r
b get_date
c
n
p tm
n
p tm
n
p pc
n
p tm
n
p tm
n
p delta
n
p Start
q
b dir_name
r
n
p slash
n
n
n
p slash
p slash - path + 1
q

File diff suppressed because it is too large Load Diff

View File

@@ -5,35 +5,40 @@ AUTOMAKE_OPTIONS = ../src/ansi2knr
noinst_LIBRARIES = libfetish.a
INCLUDES = -I.. -I$(srcdir) -I../intl
DEFS = -DLIBDIR=\"$(libdir)\" @DEFS@
libfetish_a_SOURCES = \
getdate.y posixtm.c addext.c argmatch.c backupfile.c basename.c \
canon-host.c closeout.c dirname.c exclude.c filemode.c diacrit.c \
full-write.c getopt.c getopt1.c getugroups.c hard-locale.c hash.c \
human.c idcache.c isdir.c linebuffer.c long-options.c makepath.c \
md5.c memcasecmp.c memcoll.c modechange.c path-concat.c \
quotearg.c readtokens.c readutmp.c safe-read.c same.c save-cwd.c \
savedir.c stripslash.c userspec.c version-etc.c xgetcwd.c xgethostname.c \
xmalloc.c xstrdup.c xstrtod.c xstrtol.c xstrtoul.c xstrtoumax.c yesno.c
canon-host.c closeout.c diacrit.c dirname.c exclude.c filemode.c \
full-write.c getopt.c getopt1.c getstr.c getugroups.c hard-locale.c hash.c \
human.c idcache.c isdir.c linebuffer.c localcharset.c long-options.c \
makepath.c mbswidth.c md5.c memcasecmp.c memcoll.c modechange.c \
path-concat.c physmem.c \
quote.c quotearg.c readtokens.c safe-read.c same.c save-cwd.c \
savedir.c sha.c stripslash.c unicodeio.c userspec.c version-etc.c xgetcwd.c \
xgethostname.c xmalloc.c xstrdup.c xstrtod.c xstrtol.c xstrtoul.c \
xstrtoumax.c yesno.c
libfetish_a_LIBADD = @LIBOBJS@ @ALLOCA@
libfetish_a_DEPENDENCIES = $(libfetish_a_LIBADD)
noinst_HEADERS = \
argmatch.h backupfile.h bumpalloc.h closeout.h diacrit.h dirname.h error.h \
exclude.h filemode.h fnmatch.h fsusage.h getdate.h getline.h getopt.h \
getpagesize.h group-member.h hard-locale.h hash.h human.h lchown.h \
linebuffer.h long-options.h md5.h memcasecmp.h memcoll.h \
makepath.h modechange.h mountlist.h nanosleep.h obstack.h \
path-concat.h pathmax.h posixtm.h quotearg.h readtokens.h \
readutmp.h regex.h safe-read.h same.h save-cwd.h savedir.h \
strverscmp.h version-etc.h xalloc.h xstrtod.h xstrtol.h
exclude.h filemode.h fnmatch.h __fpending.h fsusage.h \
getdate.h getline.h getopt.h \
getstr.h getpagesize.h group-member.h hard-locale.h hash.h human.h lchown.h \
linebuffer.h long-options.h mbswidth.h md5.h memcasecmp.h memcoll.h \
makepath.h mbswidth.h modechange.h mountlist.h nanosleep.h obstack.h \
path-concat.h pathmax.h physmem.h posixtm.h \
quote.h quotearg.h readtokens.h \
readutmp.h regex.h safe-read.h same.h save-cwd.h savedir.h sha.h \
strverscmp.h unicodeio.h version-etc.h xalloc.h xstrtod.h xstrtol.h
BUILT_SOURCES = getdate.c lstat.c stat.c
MAINTAINERCLEANFILES = $(BUILT_SOURCES)
DISTCLEANFILES = lstat.c stat.c
EXTRA_DIST = xstat.in
EXTRA_DIST = xstat.in config.charset ref-add.sin ref-del.sin
lstat.c: xstat.in
sed \
-e '/@IGNORE@/d' \
@@ -51,3 +56,52 @@ stat.c: xstat.in
-e '/@BEGIN_LSTAT_ONLY@/,/@END_LSTAT_ONLY@/d' \
$(srcdir)/xstat.in > $@-t
mv $@-t $@
# The following is needed in order to install a simple file in $(libdir)
# which is shared with other installed packages. We use a list of referencing
# packages so that "make uninstall" will remove the file if and only if it
# is not used by another installed package.
# On systems with glibc-2.1 or newer, the file is redundant, therefore we
# avoid installing it.
all-local: charset.alias ref-add.sed ref-del.sed lstat.c stat.c
charset_alias = $(DESTDIR)$(libdir)/charset.alias
charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
install-exec-local: all-local
$(mkinstalldirs) $(DESTDIR)$(libdir)
if test -f $(charset_alias); then \
sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
$(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
rm -f $(charset_tmp) ; \
else \
if test @GLIBC21@ = no; then \
sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
$(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
rm -f $(charset_tmp) ; \
fi ; \
fi
uninstall-local: all-local
if test -f $(charset_alias); then \
sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
if grep '^# Packages using this file: $$' $(charset_tmp) \
> /dev/null; then \
rm -f $(charset_alias); \
else \
$(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
fi; \
rm -f $(charset_tmp); \
fi
charset.alias: config.charset
$(SHELL) $(srcdir)/config.charset '@host@' > t-$@
mv t-$@ $@
SUFFIXES = .sed .sin
.sin.sed:
sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > $@-t
mv $@-t $@
CLEANFILES = charset.alias ref-add.sed ref-del.sed

View File

@@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4a from Makefile.am
# Makefile.in generated automatically by automake 1.4b from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000
# 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.
@@ -31,8 +32,6 @@ mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
@@ -57,6 +56,8 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
@SET_MAKE@
host_alias = @host_alias@
host_triplet = @host@
AMDEP = @AMDEP@
@@ -71,9 +72,10 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GNU_PACKAGE = @GNU_PACKAGE@
@@ -85,7 +87,11 @@ INTLDEPS = @INTLDEPS@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
LIB_CRYPT = @LIB_CRYPT@
LIB_NANOSLEEP = @LIB_NANOSLEEP@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +105,8 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SEQ_LIBM = @SEQ_LIBM@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
@@ -113,16 +121,19 @@ AUTOMAKE_OPTIONS = ../src/ansi2knr
noinst_LIBRARIES = libfetish.a
INCLUDES = -I.. -I$(srcdir) -I../intl
DEFS = -DLIBDIR=\"$(libdir)\" @DEFS@
libfetish_a_SOURCES = \
getdate.y posixtm.c addext.c argmatch.c backupfile.c basename.c \
canon-host.c closeout.c dirname.c exclude.c filemode.c diacrit.c \
full-write.c getopt.c getopt1.c getugroups.c hard-locale.c hash.c \
human.c idcache.c isdir.c linebuffer.c long-options.c makepath.c \
md5.c memcasecmp.c memcoll.c modechange.c path-concat.c \
quotearg.c readtokens.c readutmp.c safe-read.c same.c save-cwd.c \
savedir.c stripslash.c userspec.c version-etc.c xgetcwd.c xgethostname.c \
xmalloc.c xstrdup.c xstrtod.c xstrtol.c xstrtoul.c xstrtoumax.c yesno.c
canon-host.c closeout.c diacrit.c dirname.c exclude.c filemode.c \
full-write.c getopt.c getopt1.c getstr.c getugroups.c hard-locale.c hash.c \
human.c idcache.c isdir.c linebuffer.c localcharset.c long-options.c \
makepath.c mbswidth.c md5.c memcasecmp.c memcoll.c modechange.c \
path-concat.c physmem.c \
quote.c quotearg.c readtokens.c safe-read.c same.c save-cwd.c \
savedir.c sha.c stripslash.c unicodeio.c userspec.c version-etc.c xgetcwd.c \
xgethostname.c xmalloc.c xstrdup.c xstrtod.c xstrtol.c xstrtoul.c \
xstrtoumax.c yesno.c
libfetish_a_LIBADD = @LIBOBJS@ @ALLOCA@
@@ -130,28 +141,35 @@ libfetish_a_DEPENDENCIES = $(libfetish_a_LIBADD)
noinst_HEADERS = \
argmatch.h backupfile.h bumpalloc.h closeout.h diacrit.h dirname.h error.h \
exclude.h filemode.h fnmatch.h fsusage.h getdate.h getline.h getopt.h \
getpagesize.h group-member.h hard-locale.h hash.h human.h lchown.h \
linebuffer.h long-options.h md5.h memcasecmp.h memcoll.h \
makepath.h modechange.h mountlist.h nanosleep.h obstack.h \
path-concat.h pathmax.h posixtm.h quotearg.h readtokens.h \
readutmp.h regex.h safe-read.h same.h save-cwd.h savedir.h \
strverscmp.h version-etc.h xalloc.h xstrtod.h xstrtol.h
exclude.h filemode.h fnmatch.h __fpending.h fsusage.h \
getdate.h getline.h getopt.h \
getstr.h getpagesize.h group-member.h hard-locale.h hash.h human.h lchown.h \
linebuffer.h long-options.h mbswidth.h md5.h memcasecmp.h memcoll.h \
makepath.h mbswidth.h modechange.h mountlist.h nanosleep.h obstack.h \
path-concat.h pathmax.h physmem.h posixtm.h \
quote.h quotearg.h readtokens.h \
readutmp.h regex.h safe-read.h same.h save-cwd.h savedir.h sha.h \
strverscmp.h unicodeio.h version-etc.h xalloc.h xstrtod.h xstrtol.h
BUILT_SOURCES = getdate.c lstat.c stat.c
MAINTAINERCLEANFILES = $(BUILT_SOURCES)
DISTCLEANFILES = lstat.c stat.c
EXTRA_DIST = xstat.in
EXTRA_DIST = xstat.in config.charset ref-add.sin ref-del.sin
charset_alias = $(DESTDIR)$(libdir)/charset.alias
charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
SUFFIXES = .sed .sin
CLEANFILES = charset.alias ref-add.sed ref-del.sed
subdir = lib
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
DEFS = @DEFS@ -I. -I$(srcdir) -I..
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
@@ -159,14 +177,16 @@ ANSI2KNR = ../src/ansi2knr
libfetish_a_AR = $(AR) cru
am_libfetish_a_OBJECTS = getdate$U.o posixtm$U.o addext$U.o \
argmatch$U.o backupfile$U.o basename$U.o canon-host$U.o closeout$U.o \
dirname$U.o exclude$U.o filemode$U.o diacrit$U.o full-write$U.o \
getopt$U.o getopt1$U.o getugroups$U.o hard-locale$U.o hash$U.o \
human$U.o idcache$U.o isdir$U.o linebuffer$U.o long-options$U.o \
makepath$U.o md5$U.o memcasecmp$U.o memcoll$U.o modechange$U.o \
path-concat$U.o quotearg$U.o readtokens$U.o readutmp$U.o safe-read$U.o \
same$U.o save-cwd$U.o savedir$U.o stripslash$U.o userspec$U.o \
version-etc$U.o xgetcwd$U.o xgethostname$U.o xmalloc$U.o xstrdup$U.o \
xstrtod$U.o xstrtol$U.o xstrtoul$U.o xstrtoumax$U.o yesno$U.o
diacrit$U.o dirname$U.o exclude$U.o filemode$U.o full-write$U.o \
getopt$U.o getopt1$U.o getstr$U.o getugroups$U.o hard-locale$U.o \
hash$U.o human$U.o idcache$U.o isdir$U.o linebuffer$U.o \
localcharset$U.o long-options$U.o makepath$U.o mbswidth$U.o md5$U.o \
memcasecmp$U.o memcoll$U.o modechange$U.o path-concat$U.o physmem$U.o \
quote$U.o quotearg$U.o readtokens$U.o safe-read$U.o same$U.o \
save-cwd$U.o savedir$U.o sha$U.o stripslash$U.o unicodeio$U.o \
userspec$U.o version-etc$U.o xgetcwd$U.o xgethostname$U.o xmalloc$U.o \
xstrdup$U.o xstrtod$U.o xstrtol$U.o xstrtoul$U.o xstrtoumax$U.o \
yesno$U.o
libfetish_a_OBJECTS = $(am_libfetish_a_OBJECTS)
AR = ar
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -176,66 +196,72 @@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DIST_SOURCES = $(libfetish_a_SOURCES)
HEADERS = $(noinst_HEADERS)
DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in TODO \
alloca.c chown.c dup2.c error.c error.h euidaccess.c fileblocks.c \
fnmatch.c fsusage.c ftruncate.c getdate.c getgroups.c gethostname.c \
getline.c getloadavg.c getusershell.c group-member.c lchown.c malloc.c \
memchr.c memcmp.c memcpy.c memmove.c memset.c mkdir.c mktime.c \
mountlist.c nanosleep.c obstack.c obstack.h putenv.c realloc.c regex.c \
depcomp = $(SHELL) $(top_srcdir)/depcomp
DEP_FILES = @AMDEP@ $(DEPDIR)/__fpending.Po $(DEPDIR)/addext$U.Po \
$(DEPDIR)/alloca.Po $(DEPDIR)/argmatch$U.Po $(DEPDIR)/atexit.Po \
$(DEPDIR)/backupfile$U.Po $(DEPDIR)/basename$U.Po \
$(DEPDIR)/canon-host$U.Po $(DEPDIR)/chown.Po $(DEPDIR)/closeout$U.Po \
$(DEPDIR)/diacrit$U.Po $(DEPDIR)/dirname$U.Po $(DEPDIR)/dup2.Po \
$(DEPDIR)/error.Po $(DEPDIR)/euidaccess.Po $(DEPDIR)/exclude$U.Po \
$(DEPDIR)/fileblocks.Po $(DEPDIR)/filemode$U.Po $(DEPDIR)/fnmatch.Po \
$(DEPDIR)/fsusage.Po $(DEPDIR)/ftruncate.Po $(DEPDIR)/full-write$U.Po \
$(DEPDIR)/getdate$U.Po $(DEPDIR)/getgroups.Po $(DEPDIR)/gethostname.Po \
$(DEPDIR)/getline.Po $(DEPDIR)/getloadavg.Po $(DEPDIR)/getopt$U.Po \
$(DEPDIR)/getopt1$U.Po $(DEPDIR)/getpass.Po $(DEPDIR)/getstr$U.Po \
$(DEPDIR)/getugroups$U.Po $(DEPDIR)/getusershell.Po \
$(DEPDIR)/group-member.Po $(DEPDIR)/hard-locale$U.Po \
$(DEPDIR)/hash$U.Po $(DEPDIR)/human$U.Po $(DEPDIR)/idcache$U.Po \
$(DEPDIR)/isdir$U.Po $(DEPDIR)/lchown.Po $(DEPDIR)/linebuffer$U.Po \
$(DEPDIR)/localcharset$U.Po $(DEPDIR)/long-options$U.Po \
$(DEPDIR)/lstat.Po $(DEPDIR)/makepath$U.Po $(DEPDIR)/malloc.Po \
$(DEPDIR)/mbswidth$U.Po $(DEPDIR)/md5$U.Po $(DEPDIR)/memcasecmp$U.Po \
$(DEPDIR)/memchr.Po $(DEPDIR)/memcmp.Po $(DEPDIR)/memcoll$U.Po \
$(DEPDIR)/memcpy.Po $(DEPDIR)/memmove.Po $(DEPDIR)/memrchr.Po \
$(DEPDIR)/memset.Po $(DEPDIR)/mktime.Po $(DEPDIR)/modechange$U.Po \
$(DEPDIR)/mountlist.Po $(DEPDIR)/nanosleep.Po $(DEPDIR)/obstack.Po \
$(DEPDIR)/path-concat$U.Po $(DEPDIR)/physmem$U.Po \
$(DEPDIR)/posixtm$U.Po $(DEPDIR)/putenv.Po $(DEPDIR)/quote$U.Po \
$(DEPDIR)/quotearg$U.Po $(DEPDIR)/readtokens$U.Po $(DEPDIR)/readutmp.Po \
$(DEPDIR)/realloc.Po $(DEPDIR)/regex.Po $(DEPDIR)/rename.Po \
$(DEPDIR)/rmdir.Po $(DEPDIR)/rpmatch.Po $(DEPDIR)/safe-read$U.Po \
$(DEPDIR)/same$U.Po $(DEPDIR)/save-cwd$U.Po $(DEPDIR)/savedir$U.Po \
$(DEPDIR)/sha$U.Po $(DEPDIR)/stat.Po $(DEPDIR)/stime.Po \
$(DEPDIR)/stpcpy.Po $(DEPDIR)/strcasecmp.Po $(DEPDIR)/strcspn.Po \
$(DEPDIR)/strdup.Po $(DEPDIR)/strftime.Po $(DEPDIR)/stripslash$U.Po \
$(DEPDIR)/strncasecmp.Po $(DEPDIR)/strndup.Po $(DEPDIR)/strnlen.Po \
$(DEPDIR)/strpbrk.Po $(DEPDIR)/strstr.Po $(DEPDIR)/strtod.Po \
$(DEPDIR)/strtol.Po $(DEPDIR)/strtoul.Po $(DEPDIR)/strtoull.Po \
$(DEPDIR)/strtoumax.Po $(DEPDIR)/strverscmp.Po $(DEPDIR)/unicodeio$U.Po \
$(DEPDIR)/userspec$U.Po $(DEPDIR)/utime.Po $(DEPDIR)/version-etc$U.Po \
$(DEPDIR)/xgetcwd$U.Po $(DEPDIR)/xgethostname$U.Po \
$(DEPDIR)/xmalloc$U.Po $(DEPDIR)/xstrdup$U.Po $(DEPDIR)/xstrtod$U.Po \
$(DEPDIR)/xstrtol$U.Po $(DEPDIR)/xstrtoul$U.Po \
$(DEPDIR)/xstrtoumax$U.Po $(DEPDIR)/yesno$U.Po
DIST_COMMON = README $(noinst_HEADERS) ChangeLog Makefile.am \
Makefile.in TODO __fpending.c alloca.c atexit.c chown.c dup2.c error.c \
error.h euidaccess.c fileblocks.c fnmatch.c fsusage.c ftruncate.c \
getdate.c getgroups.c gethostname.c getline.c getloadavg.c getpass.c \
getusershell.c group-member.c lchown.c malloc.c memchr.c memcmp.c \
memcpy.c memmove.c memrchr.c memset.c mktime.c mountlist.c nanosleep.c \
obstack.c obstack.h putenv.c readutmp.c realloc.c regex.c rename.c \
rmdir.c rpmatch.c stime.c stpcpy.c strcasecmp.c strcspn.c strdup.c \
strftime.c strncasecmp.c strndup.c strpbrk.c strstr.c strtod.c strtol.c \
strtoul.c strtoull.c strtoumax.c strverscmp.c utime.c
strftime.c strncasecmp.c strndup.c strnlen.c strpbrk.c strstr.c \
strtod.c strtol.c strtoul.c strtoull.c strtoumax.c strverscmp.c utime.c
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
GZIP_ENV = --best
depcomp = $(SHELL) $(top_srcdir)/depcomp
DEP_FILES = @AMDEP@ $(DEPDIR)/addext$U.Po $(DEPDIR)/alloca.Po \
$(DEPDIR)/argmatch$U.Po $(DEPDIR)/backupfile$U.Po \
$(DEPDIR)/basename$U.Po $(DEPDIR)/canon-host$U.Po $(DEPDIR)/chown.Po \
$(DEPDIR)/closeout$U.Po $(DEPDIR)/diacrit$U.Po $(DEPDIR)/dirname$U.Po \
$(DEPDIR)/dup2.Po $(DEPDIR)/error.Po $(DEPDIR)/euidaccess.Po \
$(DEPDIR)/exclude$U.Po $(DEPDIR)/fileblocks.Po $(DEPDIR)/filemode$U.Po \
$(DEPDIR)/fnmatch.Po $(DEPDIR)/fsusage.Po $(DEPDIR)/ftruncate.Po \
$(DEPDIR)/full-write$U.Po $(DEPDIR)/getdate$U.Po $(DEPDIR)/getgroups.Po \
$(DEPDIR)/gethostname.Po $(DEPDIR)/getline.Po $(DEPDIR)/getloadavg.Po \
$(DEPDIR)/getopt$U.Po $(DEPDIR)/getopt1$U.Po $(DEPDIR)/getugroups$U.Po \
$(DEPDIR)/getusershell.Po $(DEPDIR)/group-member.Po \
$(DEPDIR)/hard-locale$U.Po $(DEPDIR)/hash$U.Po $(DEPDIR)/human$U.Po \
$(DEPDIR)/idcache$U.Po $(DEPDIR)/isdir$U.Po $(DEPDIR)/lchown.Po \
$(DEPDIR)/linebuffer$U.Po $(DEPDIR)/long-options$U.Po \
$(DEPDIR)/lstat.Po $(DEPDIR)/makepath$U.Po $(DEPDIR)/malloc.Po \
$(DEPDIR)/md5$U.Po $(DEPDIR)/memcasecmp$U.Po $(DEPDIR)/memchr.Po \
$(DEPDIR)/memcmp.Po $(DEPDIR)/memcoll$U.Po $(DEPDIR)/memcpy.Po \
$(DEPDIR)/memmove.Po $(DEPDIR)/memset.Po $(DEPDIR)/mkdir.Po \
$(DEPDIR)/mktime.Po $(DEPDIR)/modechange$U.Po $(DEPDIR)/mountlist.Po \
$(DEPDIR)/nanosleep.Po $(DEPDIR)/obstack.Po $(DEPDIR)/path-concat$U.Po \
$(DEPDIR)/posixtm$U.Po $(DEPDIR)/putenv.Po $(DEPDIR)/quotearg$U.Po \
$(DEPDIR)/readtokens$U.Po $(DEPDIR)/readutmp$U.Po $(DEPDIR)/realloc.Po \
$(DEPDIR)/regex.Po $(DEPDIR)/rmdir.Po $(DEPDIR)/rpmatch.Po \
$(DEPDIR)/safe-read$U.Po $(DEPDIR)/same$U.Po $(DEPDIR)/save-cwd$U.Po \
$(DEPDIR)/savedir$U.Po $(DEPDIR)/stat.Po $(DEPDIR)/stime.Po \
$(DEPDIR)/stpcpy.Po $(DEPDIR)/strcasecmp.Po $(DEPDIR)/strcspn.Po \
$(DEPDIR)/strdup.Po $(DEPDIR)/strftime.Po $(DEPDIR)/stripslash$U.Po \
$(DEPDIR)/strncasecmp.Po $(DEPDIR)/strndup.Po $(DEPDIR)/strpbrk.Po \
$(DEPDIR)/strstr.Po $(DEPDIR)/strtod.Po $(DEPDIR)/strtol.Po \
$(DEPDIR)/strtoul.Po $(DEPDIR)/strtoull.Po $(DEPDIR)/strtoumax.Po \
$(DEPDIR)/strverscmp.Po $(DEPDIR)/userspec$U.Po $(DEPDIR)/utime.Po \
$(DEPDIR)/version-etc$U.Po $(DEPDIR)/xgetcwd$U.Po \
$(DEPDIR)/xgethostname$U.Po $(DEPDIR)/xmalloc$U.Po \
$(DEPDIR)/xstrdup$U.Po $(DEPDIR)/xstrtod$U.Po $(DEPDIR)/xstrtol$U.Po \
$(DEPDIR)/xstrtoul$U.Po $(DEPDIR)/xstrtoumax$U.Po $(DEPDIR)/yesno$U.Po
SOURCES = $(libfetish_a_SOURCES)
OBJECTS = $(am_libfetish_a_OBJECTS)
all: all-redirect
.SUFFIXES:
.SUFFIXES: .c .o .y
.SUFFIXES: .sed .sin .c .o .y
$(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)
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
@@ -278,12 +304,16 @@ libfetish.a: $(libfetish_a_OBJECTS) $(libfetish_a_DEPENDENCIES)
-rm -f libfetish.a
$(libfetish_a_AR) libfetish.a $(libfetish_a_OBJECTS) $(libfetish_a_LIBADD)
$(RANLIB) libfetish.a
__fpending_.c: __fpending.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/__fpending.c; then echo $(srcdir)/__fpending.c; else echo __fpending.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > __fpending_.c
addext_.c: addext.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/addext.c; then echo $(srcdir)/addext.c; else echo addext.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > addext_.c
alloca_.c: alloca.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/alloca.c; then echo $(srcdir)/alloca.c; else echo alloca.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > alloca_.c
argmatch_.c: argmatch.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/argmatch.c; then echo $(srcdir)/argmatch.c; else echo argmatch.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > argmatch_.c
atexit_.c: atexit.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/atexit.c; then echo $(srcdir)/atexit.c; else echo atexit.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > atexit_.c
backupfile_.c: backupfile.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/backupfile.c; then echo $(srcdir)/backupfile.c; else echo backupfile.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > backupfile_.c
basename_.c: basename.c $(ANSI2KNR)
@@ -332,6 +362,10 @@ getopt_.c: getopt.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt.c; then echo $(srcdir)/getopt.c; else echo getopt.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt_.c
getopt1_.c: getopt1.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt1.c; then echo $(srcdir)/getopt1.c; else echo getopt1.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt1_.c
getpass_.c: getpass.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getpass.c; then echo $(srcdir)/getpass.c; else echo getpass.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getpass_.c
getstr_.c: getstr.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getstr.c; then echo $(srcdir)/getstr.c; else echo getstr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getstr_.c
getugroups_.c: getugroups.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getugroups.c; then echo $(srcdir)/getugroups.c; else echo getugroups.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getugroups_.c
getusershell_.c: getusershell.c $(ANSI2KNR)
@@ -352,6 +386,8 @@ lchown_.c: lchown.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lchown.c; then echo $(srcdir)/lchown.c; else echo lchown.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > lchown_.c
linebuffer_.c: linebuffer.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/linebuffer.c; then echo $(srcdir)/linebuffer.c; else echo linebuffer.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > linebuffer_.c
localcharset_.c: localcharset.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/localcharset.c; then echo $(srcdir)/localcharset.c; else echo localcharset.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > localcharset_.c
long-options_.c: long-options.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/long-options.c; then echo $(srcdir)/long-options.c; else echo long-options.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > long-options_.c
lstat_.c: lstat.c $(ANSI2KNR)
@@ -360,6 +396,8 @@ makepath_.c: makepath.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/makepath.c; then echo $(srcdir)/makepath.c; else echo makepath.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > makepath_.c
malloc_.c: malloc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/malloc.c; then echo $(srcdir)/malloc.c; else echo malloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > malloc_.c
mbswidth_.c: mbswidth.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/mbswidth.c; then echo $(srcdir)/mbswidth.c; else echo mbswidth.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > mbswidth_.c
md5_.c: md5.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/md5.c; then echo $(srcdir)/md5.c; else echo md5.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > md5_.c
memcasecmp_.c: memcasecmp.c $(ANSI2KNR)
@@ -374,10 +412,10 @@ memcpy_.c: memcpy.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memcpy.c; then echo $(srcdir)/memcpy.c; else echo memcpy.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memcpy_.c
memmove_.c: memmove.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memmove.c; then echo $(srcdir)/memmove.c; else echo memmove.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memmove_.c
memrchr_.c: memrchr.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memrchr.c; then echo $(srcdir)/memrchr.c; else echo memrchr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memrchr_.c
memset_.c: memset.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memset.c; then echo $(srcdir)/memset.c; else echo memset.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memset_.c
mkdir_.c: mkdir.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/mkdir.c; then echo $(srcdir)/mkdir.c; else echo mkdir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > mkdir_.c
mktime_.c: mktime.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/mktime.c; then echo $(srcdir)/mktime.c; else echo mktime.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > mktime_.c
modechange_.c: modechange.c $(ANSI2KNR)
@@ -390,10 +428,14 @@ obstack_.c: obstack.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/obstack.c; then echo $(srcdir)/obstack.c; else echo obstack.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > obstack_.c
path-concat_.c: path-concat.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/path-concat.c; then echo $(srcdir)/path-concat.c; else echo path-concat.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > path-concat_.c
physmem_.c: physmem.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/physmem.c; then echo $(srcdir)/physmem.c; else echo physmem.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > physmem_.c
posixtm_.c: posixtm.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/posixtm.c; then echo $(srcdir)/posixtm.c; else echo posixtm.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > posixtm_.c
putenv_.c: putenv.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/putenv.c; then echo $(srcdir)/putenv.c; else echo putenv.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > putenv_.c
quote_.c: quote.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/quote.c; then echo $(srcdir)/quote.c; else echo quote.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > quote_.c
quotearg_.c: quotearg.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/quotearg.c; then echo $(srcdir)/quotearg.c; else echo quotearg.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > quotearg_.c
readtokens_.c: readtokens.c $(ANSI2KNR)
@@ -404,6 +446,8 @@ realloc_.c: realloc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/realloc.c; then echo $(srcdir)/realloc.c; else echo realloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > realloc_.c
regex_.c: regex.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/regex.c; then echo $(srcdir)/regex.c; else echo regex.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > regex_.c
rename_.c: rename.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/rename.c; then echo $(srcdir)/rename.c; else echo rename.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > rename_.c
rmdir_.c: rmdir.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/rmdir.c; then echo $(srcdir)/rmdir.c; else echo rmdir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > rmdir_.c
rpmatch_.c: rpmatch.c $(ANSI2KNR)
@@ -416,6 +460,8 @@ save-cwd_.c: save-cwd.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/save-cwd.c; then echo $(srcdir)/save-cwd.c; else echo save-cwd.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > save-cwd_.c
savedir_.c: savedir.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/savedir.c; then echo $(srcdir)/savedir.c; else echo savedir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > savedir_.c
sha_.c: sha.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/sha.c; then echo $(srcdir)/sha.c; else echo sha.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > sha_.c
stat_.c: stat.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stat.c; then echo $(srcdir)/stat.c; else echo stat.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stat_.c
stime_.c: stime.c $(ANSI2KNR)
@@ -436,6 +482,8 @@ strncasecmp_.c: strncasecmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strncasecmp.c; then echo $(srcdir)/strncasecmp.c; else echo strncasecmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strncasecmp_.c
strndup_.c: strndup.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strndup.c; then echo $(srcdir)/strndup.c; else echo strndup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strndup_.c
strnlen_.c: strnlen.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strnlen.c; then echo $(srcdir)/strnlen.c; else echo strnlen.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strnlen_.c
strpbrk_.c: strpbrk.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strpbrk.c; then echo $(srcdir)/strpbrk.c; else echo strpbrk.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strpbrk_.c
strstr_.c: strstr.c $(ANSI2KNR)
@@ -452,6 +500,8 @@ strtoumax_.c: strtoumax.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strtoumax.c; then echo $(srcdir)/strtoumax.c; else echo strtoumax.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strtoumax_.c
strverscmp_.c: strverscmp.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strverscmp.c; then echo $(srcdir)/strverscmp.c; else echo strverscmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strverscmp_.c
unicodeio_.c: unicodeio.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/unicodeio.c; then echo $(srcdir)/unicodeio.c; else echo unicodeio.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > unicodeio_.c
userspec_.c: userspec.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/userspec.c; then echo $(srcdir)/userspec.c; else echo userspec.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > userspec_.c
utime_.c: utime.c $(ANSI2KNR)
@@ -476,24 +526,26 @@ xstrtoumax_.c: xstrtoumax.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrtoumax.c; then echo $(srcdir)/xstrtoumax.c; else echo xstrtoumax.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrtoumax_.c
yesno_.c: yesno.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/yesno.c; then echo $(srcdir)/yesno.c; else echo yesno.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > yesno_.c
addext_.o alloca_.o argmatch_.o backupfile_.o basename_.o canon-host_.o \
chown_.o closeout_.o diacrit_.o dirname_.o dup2_.o error_.o \
euidaccess_.o exclude_.o fileblocks_.o filemode_.o fnmatch_.o \
fsusage_.o ftruncate_.o full-write_.o getdate_.o getgroups_.o \
gethostname_.o getline_.o getloadavg_.o getopt_.o getopt1_.o \
getugroups_.o getusershell_.o group-member_.o hard-locale_.o hash_.o \
human_.o idcache_.o isdir_.o lchown_.o linebuffer_.o long-options_.o \
lstat_.o makepath_.o malloc_.o md5_.o memcasecmp_.o memchr_.o memcmp_.o \
memcoll_.o memcpy_.o memmove_.o memset_.o mkdir_.o mktime_.o \
modechange_.o mountlist_.o nanosleep_.o obstack_.o path-concat_.o \
posixtm_.o putenv_.o quotearg_.o readtokens_.o readutmp_.o realloc_.o \
regex_.o rmdir_.o rpmatch_.o safe-read_.o same_.o save-cwd_.o \
savedir_.o stat_.o stime_.o stpcpy_.o strcasecmp_.o strcspn_.o \
strdup_.o strftime_.o stripslash_.o strncasecmp_.o strndup_.o \
strpbrk_.o strstr_.o strtod_.o strtol_.o strtoul_.o strtoull_.o \
strtoumax_.o strverscmp_.o userspec_.o utime_.o version-etc_.o \
xgetcwd_.o xgethostname_.o xmalloc_.o xstrdup_.o xstrtod_.o xstrtol_.o \
xstrtoul_.o xstrtoumax_.o yesno_.o : $(ANSI2KNR)
__fpending_.o addext_.o alloca_.o argmatch_.o atexit_.o backupfile_.o \
basename_.o canon-host_.o chown_.o closeout_.o diacrit_.o dirname_.o \
dup2_.o error_.o euidaccess_.o exclude_.o fileblocks_.o filemode_.o \
fnmatch_.o fsusage_.o ftruncate_.o full-write_.o getdate_.o \
getgroups_.o gethostname_.o getline_.o getloadavg_.o getopt_.o \
getopt1_.o getpass_.o getstr_.o getugroups_.o getusershell_.o \
group-member_.o hard-locale_.o hash_.o human_.o idcache_.o isdir_.o \
lchown_.o linebuffer_.o localcharset_.o long-options_.o lstat_.o \
makepath_.o malloc_.o mbswidth_.o md5_.o memcasecmp_.o memchr_.o \
memcmp_.o memcoll_.o memcpy_.o memmove_.o memrchr_.o memset_.o \
mktime_.o modechange_.o mountlist_.o nanosleep_.o obstack_.o \
path-concat_.o physmem_.o posixtm_.o putenv_.o quote_.o quotearg_.o \
readtokens_.o readutmp_.o realloc_.o regex_.o rename_.o rmdir_.o \
rpmatch_.o safe-read_.o same_.o save-cwd_.o savedir_.o sha_.o stat_.o \
stime_.o stpcpy_.o strcasecmp_.o strcspn_.o strdup_.o strftime_.o \
stripslash_.o strncasecmp_.o strndup_.o strnlen_.o strpbrk_.o strstr_.o \
strtod_.o strtol_.o strtoul_.o strtoull_.o strtoumax_.o strverscmp_.o \
unicodeio_.o userspec_.o utime_.o version-etc_.o xgetcwd_.o \
xgethostname_.o xmalloc_.o xstrdup_.o xstrtod_.o xstrtol_.o xstrtoul_.o \
xstrtoumax_.o yesno_.o : $(ANSI2KNR)
.y.c:
$(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*.c
if test -f y.tab.h; then \
@@ -510,7 +562,7 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -f$$here/ID $$unique $(LISP)
mkid -fID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
@@ -525,6 +577,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $$here
mostlyclean-tags:
clean-tags:
@@ -534,23 +591,11 @@ distclean-tags:
maintainer-clean-tags:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pR $$d/$$file $(distdir); \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
@AMDEP@include $(DEPDIR)/__fpending.Po
@AMDEP@include $(DEPDIR)/addext$U.Po
@AMDEP@include $(DEPDIR)/alloca.Po
@AMDEP@include $(DEPDIR)/argmatch$U.Po
@AMDEP@include $(DEPDIR)/atexit.Po
@AMDEP@include $(DEPDIR)/backupfile$U.Po
@AMDEP@include $(DEPDIR)/basename$U.Po
@AMDEP@include $(DEPDIR)/canon-host$U.Po
@@ -575,6 +620,8 @@ distdir: $(DISTFILES)
@AMDEP@include $(DEPDIR)/getloadavg.Po
@AMDEP@include $(DEPDIR)/getopt$U.Po
@AMDEP@include $(DEPDIR)/getopt1$U.Po
@AMDEP@include $(DEPDIR)/getpass.Po
@AMDEP@include $(DEPDIR)/getstr$U.Po
@AMDEP@include $(DEPDIR)/getugroups$U.Po
@AMDEP@include $(DEPDIR)/getusershell.Po
@AMDEP@include $(DEPDIR)/group-member.Po
@@ -585,10 +632,12 @@ distdir: $(DISTFILES)
@AMDEP@include $(DEPDIR)/isdir$U.Po
@AMDEP@include $(DEPDIR)/lchown.Po
@AMDEP@include $(DEPDIR)/linebuffer$U.Po
@AMDEP@include $(DEPDIR)/localcharset$U.Po
@AMDEP@include $(DEPDIR)/long-options$U.Po
@AMDEP@include $(DEPDIR)/lstat.Po
@AMDEP@include $(DEPDIR)/makepath$U.Po
@AMDEP@include $(DEPDIR)/malloc.Po
@AMDEP@include $(DEPDIR)/mbswidth$U.Po
@AMDEP@include $(DEPDIR)/md5$U.Po
@AMDEP@include $(DEPDIR)/memcasecmp$U.Po
@AMDEP@include $(DEPDIR)/memchr.Po
@@ -596,27 +645,31 @@ distdir: $(DISTFILES)
@AMDEP@include $(DEPDIR)/memcoll$U.Po
@AMDEP@include $(DEPDIR)/memcpy.Po
@AMDEP@include $(DEPDIR)/memmove.Po
@AMDEP@include $(DEPDIR)/memrchr.Po
@AMDEP@include $(DEPDIR)/memset.Po
@AMDEP@include $(DEPDIR)/mkdir.Po
@AMDEP@include $(DEPDIR)/mktime.Po
@AMDEP@include $(DEPDIR)/modechange$U.Po
@AMDEP@include $(DEPDIR)/mountlist.Po
@AMDEP@include $(DEPDIR)/nanosleep.Po
@AMDEP@include $(DEPDIR)/obstack.Po
@AMDEP@include $(DEPDIR)/path-concat$U.Po
@AMDEP@include $(DEPDIR)/physmem$U.Po
@AMDEP@include $(DEPDIR)/posixtm$U.Po
@AMDEP@include $(DEPDIR)/putenv.Po
@AMDEP@include $(DEPDIR)/quote$U.Po
@AMDEP@include $(DEPDIR)/quotearg$U.Po
@AMDEP@include $(DEPDIR)/readtokens$U.Po
@AMDEP@include $(DEPDIR)/readutmp$U.Po
@AMDEP@include $(DEPDIR)/readutmp.Po
@AMDEP@include $(DEPDIR)/realloc.Po
@AMDEP@include $(DEPDIR)/regex.Po
@AMDEP@include $(DEPDIR)/rename.Po
@AMDEP@include $(DEPDIR)/rmdir.Po
@AMDEP@include $(DEPDIR)/rpmatch.Po
@AMDEP@include $(DEPDIR)/safe-read$U.Po
@AMDEP@include $(DEPDIR)/same$U.Po
@AMDEP@include $(DEPDIR)/save-cwd$U.Po
@AMDEP@include $(DEPDIR)/savedir$U.Po
@AMDEP@include $(DEPDIR)/sha$U.Po
@AMDEP@include $(DEPDIR)/stat.Po
@AMDEP@include $(DEPDIR)/stime.Po
@AMDEP@include $(DEPDIR)/stpcpy.Po
@@ -627,6 +680,7 @@ distdir: $(DISTFILES)
@AMDEP@include $(DEPDIR)/stripslash$U.Po
@AMDEP@include $(DEPDIR)/strncasecmp.Po
@AMDEP@include $(DEPDIR)/strndup.Po
@AMDEP@include $(DEPDIR)/strnlen.Po
@AMDEP@include $(DEPDIR)/strpbrk.Po
@AMDEP@include $(DEPDIR)/strstr.Po
@AMDEP@include $(DEPDIR)/strtod.Po
@@ -635,6 +689,7 @@ distdir: $(DISTFILES)
@AMDEP@include $(DEPDIR)/strtoull.Po
@AMDEP@include $(DEPDIR)/strtoumax.Po
@AMDEP@include $(DEPDIR)/strverscmp.Po
@AMDEP@include $(DEPDIR)/unicodeio$U.Po
@AMDEP@include $(DEPDIR)/userspec$U.Po
@AMDEP@include $(DEPDIR)/utime.Po
@AMDEP@include $(DEPDIR)/version-etc$U.Po
@@ -663,8 +718,23 @@ maintainer-clean-depend:
@AMDEP@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c -o $@ $<
$(COMPILE) -c -o $@ `test -f $< || echo '$(srcdir)/'`$<
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
info-am:
info: info-am
dvi-am:
@@ -673,7 +743,10 @@ check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
all-recursive-am: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-recursive
install-exec-am: install-exec-local
install-exec: install-exec-am
install-data-am:
@@ -682,9 +755,9 @@ install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am:
uninstall-am: uninstall-local
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(HEADERS)
all-am: Makefile $(LIBRARIES) $(HEADERS) all-local
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
@@ -694,6 +767,7 @@ installdirs:
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
@@ -734,11 +808,12 @@ clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-kr distclean-kr clean-kr \
maintainer-clean-kr tags mostlyclean-tags distclean-tags clean-tags \
maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
check-am installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all install-strip installdirs mostlyclean-generic \
maintainer-clean-tags mostlyclean-depend distclean-depend clean-depend \
maintainer-clean-depend distdir info-am info dvi-am dvi check check-am \
installcheck-am installcheck all-recursive-am install-exec-local \
install-exec-am install-exec install-data-am install-data install-am \
install uninstall-local uninstall-am uninstall all-local all-redirect \
all-am all install-strip installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
@@ -760,6 +835,47 @@ stat.c: xstat.in
$(srcdir)/xstat.in > $@-t
mv $@-t $@
# The following is needed in order to install a simple file in $(libdir)
# which is shared with other installed packages. We use a list of referencing
# packages so that "make uninstall" will remove the file if and only if it
# is not used by another installed package.
# On systems with glibc-2.1 or newer, the file is redundant, therefore we
# avoid installing it.
all-local: charset.alias ref-add.sed ref-del.sed lstat.c stat.c
install-exec-local: all-local
$(mkinstalldirs) $(DESTDIR)$(libdir)
if test -f $(charset_alias); then \
sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
$(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
rm -f $(charset_tmp) ; \
else \
if test @GLIBC21@ = no; then \
sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
$(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
rm -f $(charset_tmp) ; \
fi ; \
fi
uninstall-local: all-local
if test -f $(charset_alias); then \
sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
if grep '^# Packages using this file: $$' $(charset_tmp) \
> /dev/null; then \
rm -f $(charset_alias); \
else \
$(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
fi; \
rm -f $(charset_tmp); \
fi
charset.alias: config.charset
$(SHELL) $(srcdir)/config.charset '@host@' > t-$@
mv t-$@ $@
.sin.sed:
sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > $@-t
mv $@-t $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

6
lib/README Normal file
View File

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

30
lib/__fpending.c Normal file
View File

@@ -0,0 +1,30 @@
/* __fpending.c -- return the number of pending output bytes on a stream
Copyright (C) 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Jim Meyering. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include "__fpending.h"
size_t
__fpending (FILE *fp)
{
return PENDING_OUTPUT_N_BYTES;
}

18
lib/__fpending.h Normal file
View File

@@ -0,0 +1,18 @@
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#if HAVE_STDIO_EXT_H
# include <stdio_ext.h>
#endif
#include <sys/types.h>
#ifndef HAVE_DECL___FPENDING
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL___FPENDING
size_t __fpending (FILE *);
#endif

14
lib/atexit.c Normal file
View File

@@ -0,0 +1,14 @@
/* Wrapper to implement ANSI C's atexit using SunOS's on_exit. */
/* This function is in the public domain. --Mike Stump. */
#include "config.h"
int
atexit(f)
void (*f)();
{
/* If the system doesn't provide a definition for atexit, use on_exit
if the system provides that. */
on_exit (f, 0);
return 0;
}

View File

@@ -1,5 +1,5 @@
/* backupfile.c -- make Emacs style backup file names
Copyright (C) 1990-1997, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1990-1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -58,16 +58,24 @@
# define CLOSEDIR(d) closedir (d)
#endif
#if STDC_HEADERS
#if HAVE_STDLIB_H
# include <stdlib.h>
#else
char *malloc ();
#endif
#ifndef HAVE_DECL_GETENV
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_GETENV
char *getenv ();
#endif
#ifndef HAVE_DECL_MALLOC
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_MALLOC
char *malloc ();
#endif
char *base_name PARAMS ((char const *));
#if HAVE_DIRENT_H || HAVE_NDIR_H || HAVE_SYS_DIR_H || HAVE_SYS_NDIR_H

View File

@@ -1,5 +1,5 @@
/* basename.c -- return the last element in a path
Copyright (C) 1990, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1990, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,6 +19,9 @@
# include <config.h>
#endif
#include <stdio.h>
#include <assert.h>
#ifndef FILESYSTEM_PREFIX_LEN
# define FILESYSTEM_PREFIX_LEN(Filename) 0
#endif
@@ -61,5 +64,8 @@ base_name (char const *name)
if (*base == '\0' && ISSLASH (*name) && all_slashes)
--base;
/* Make sure the last byte is not a slash. */
assert (all_slashes || !ISSLASH (*(p - 1)));
return (char *) base;
}

View File

@@ -1,5 +1,5 @@
/* BUMP_ALLOC macro - increase table allocation by one element.
Copyright (C) 1990, 1991, 1993, 1998 Free Software Foundation, Inc.
Copyright (C) 1990, 1991, 1993, 1998, 2000 Free Software Foundation, Inc.
François Pinard <pinard@iro.umontreal.ca>, 1990.
This program is free software; you can redistribute it and/or modify
@@ -25,8 +25,8 @@
`-------------------------------------------------------------------------*/
/* 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.
management. This implies that the program will abort with a "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

View File

@@ -1,6 +1,6 @@
/* Host name canonicalization
Copyright (C) 1995, 1999 Free Software Foundation, Inc.
Copyright (C) 1995, 1999, 2000 Free Software Foundation, Inc.
Written by Miles Bader <miles@gnu.ai.mit.edu>
@@ -26,6 +26,9 @@
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifdef HAVE_STRING_H
# include <string.h>
#endif
@@ -43,7 +46,9 @@
# include <arpa/inet.h>
#endif
void free ();
#ifndef strdup
char *strdup ();
#endif
/* Returns the canonical hostname associated with HOST (allocated in a static
buffer), or 0 if it can't be determined. */
@@ -77,11 +82,12 @@ canon_host (const char *host)
directly to gethostbyaddr because on some systems he->h_addr
is located in a static library buffer that is reused in the
gethostbyaddr call. Make a copy and use that instead. */
char *h_addr_copy = strdup (he->h_addr);
char *h_addr_copy = (char *) malloc (he->h_length);
if (h_addr_copy == NULL)
he = NULL;
else
{
memcpy (h_addr_copy, he->h_addr, he->h_length);
he = gethostbyaddr (h_addr_copy, he->h_length, he->h_addrtype);
free (h_addr_copy);
}

View File

@@ -1,5 +1,5 @@
/* closeout.c - close standard output
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -33,14 +33,37 @@
# define EXIT_FAILURE 1
#endif
#include <stdio.h>
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#include <stdio.h>
#include "closeout.h"
#include "error.h"
#include "quotearg.h"
#include "__fpending.h"
static int default_exit_status = EXIT_FAILURE;
static const char *file_name;
/* Set the value to be used for the exit status when close_stdout is called.
This is useful when it is not convenient to call close_stdout_status,
e.g., when close_stdout is called via atexit. */
void
close_stdout_set_status (int status)
{
default_exit_status = status;
}
/* Set the file name to be reported in the event an error is detected
by close_stdout_status. */
void
close_stdout_set_file_name (const char *file)
{
file_name = file;
}
/* Close standard output, exiting with status STATUS on failure.
If a program writes *anything* to stdout, that program should `fflush'
@@ -64,18 +87,31 @@ extern int errno;
It's important to detect such failures and exit nonzero because many
tools (most notably `make' and other build-management systems) depend
on being able to detect failure in other tools via their exit status. */
void
close_stdout_status (int status)
{
if (ferror (stdout))
error (status, 0, _("write error"));
int e = ferror (stdout) ? 0 : -1;
if (__fpending (stdout) == 0)
return;
if (fclose (stdout) != 0)
error (status, errno, _("write error"));
e = errno;
if (0 <= e)
{
char const *write_error = _("write error");
if (file_name)
error (status, e, "%s: %s", quotearg_colon (file_name), write_error);
else
error (status, e, "%s", write_error);
}
}
/* Close standard output, exiting with status EXIT_FAILURE on failure. */
void
close_stdout (void)
{
close_stdout_status (EXIT_FAILURE);
close_stdout_status (default_exit_status);
}

View File

@@ -1,10 +1,17 @@
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
#ifndef CLOSEOUT_H
# define CLOSEOUT_H 1
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
void close_stdout_set_status PARAMS ((int status));
void close_stdout_set_file_name PARAMS ((const char *file));
void close_stdout PARAMS ((void));
void close_stdout_status PARAMS ((int status));
#endif

234
lib/config.charset Executable file
View File

@@ -0,0 +1,234 @@
#! /bin/sh
# Output a system dependent table of character encoding aliases.
#
# Copyright (C) 2000 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.
#
# The table consists of lines of the form
# ALIAS CANONICAL
#
# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
# ALIAS is compared in a case sensitive way.
#
# CANONICAL is the GNU canonical name for this character encoding.
# It must be an encoding supported by libiconv. Support by GNU libc is
# also desirable. CANONICAL is case insensitive. Usually an upper case
# MIME charset name is preferred.
# The current list of GNU canonical charset names is as follows.
#
# name used by which systems a MIME name?
# ASCII, ANSI_X3.4-1968 glibc solaris freebsd
# ISO-8859-1 glibc aix hpux irix osf solaris freebsd yes
# ISO-8859-2 glibc aix hpux irix solaris freebsd yes
# ISO-8859-3 glibc yes
# ISO-8859-4 solaris yes
# ISO-8859-5 glibc aix hpux irix solaris yes
# ISO-8859-6 glibc aix hpux solaris yes
# ISO-8859-7 glibc aix hpux irix osf solaris yes
# ISO-8859-8 glibc aix hpux solaris yes
# ISO-8859-9 glibc aix hpux irix osf solaris yes
# ISO-8859-13 glibc
# ISO-8859-15 glibc aix solaris freebsd
# KOI8-R glibc solaris freebsd yes
# KOI8-U glibc yes
# CP850 aix osf
# CP856 aix
# CP866 freebsd
# CP874 win32
# CP922 aix
# CP932 aix win32
# CP943 aix
# CP949 win32
# CP950 win32
# CP1046 aix
# CP1124 aix
# CP1129 aix
# CP1250 win32
# CP1251 glibc win32
# CP1252 aix win32
# CP1253 win32
# CP1254 win32
# CP1255 win32
# CP1256 win32
# CP1257 win32
# GB2312 glibc aix hpux irix solaris yes
# EUC-JP glibc aix hpux irix solaris yes
# EUC-KR glibc aix hpux irix solaris yes
# EUC-TW glibc aix hpux irix solaris
# BIG5 glibc aix hpux solaris yes
# BIG5HKSCS glibc
# GBK aix win32
# GB18030 glibc
# SJIS hpux solaris
# JOHAB glibc win32
# TIS-620 glibc aix hpux solaris
# VISCII glibc yes
# HP-ROMAN8 hpux
# HP-ARABIC8 hpux
# HP-GREEK8 hpux
# HP-HEBREW8 hpux
# HP-TURKISH8 hpux
# HP-KANA8 hpux
# UTF-8 glibc aix hpux solaris yes
#
# Note: Names which are not marked as being a MIME name should not be used in
# Internet protocols for information interchange (mail, news, etc.).
#
# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
# must understand both names and treat them as equivalent.
#
# The first argument passed to this file is the canonical host specification,
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
host="$1"
os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
echo "# This file contains a table of character encoding aliases,"
echo "# suitable for operating system '${os}'."
echo "# It was automatically generated from config.charset."
# List of references, updated during installation:
echo "# Packages using this file: "
case "$os" in
linux* | *-gnu*)
# With glibc-2.1 or newer, we don't need any canonicalization,
# because glibc has iconv and both glibc and libiconv support all
# GNU canonical names directly. Therefore, the Makefile does not
# need to install the alias file at all.
# The following applies only to glibc-2.0.x and older libcs.
echo "ISO_646.IRV:1983 ASCII"
;;
aix*)
echo "ISO8859-1 ISO-8859-1"
echo "ISO8859-2 ISO-8859-2"
echo "ISO8859-5 ISO-8859-5"
echo "ISO8859-6 ISO-8859-6"
echo "ISO8859-7 ISO-8859-7"
echo "ISO8859-8 ISO-8859-8"
echo "ISO8859-9 ISO-8859-9"
echo "ISO8859-15 ISO-8859-15"
echo "IBM-850 CP850"
echo "IBM-856 CP856"
echo "IBM-921 ISO-8859-13"
echo "IBM-922 CP922"
echo "IBM-932 CP932"
echo "IBM-943 CP943"
echo "IBM-1046 CP1046"
echo "IBM-1124 CP1124"
echo "IBM-1129 CP1129"
echo "IBM-1252 CP1252"
echo "IBM-eucCN GB2312"
echo "IBM-eucJP EUC-JP"
echo "IBM-eucKR EUC-KR"
echo "IBM-eucTW EUC-TW"
echo "big5 BIG5"
echo "GBK GBK"
echo "TIS-620 TIS-620"
echo "UTF-8 UTF-8"
;;
hpux*)
echo "iso88591 ISO-8859-1"
echo "iso88592 ISO-8859-2"
echo "iso88595 ISO-8859-5"
echo "iso88596 ISO-8859-6"
echo "iso88597 ISO-8859-7"
echo "iso88598 ISO-8859-8"
echo "iso88599 ISO-8859-9"
echo "iso885915 ISO-8859-15"
echo "roman8 HP-ROMAN8"
echo "arabic8 HP-ARABIC8"
echo "greek8 HP-GREEK8"
echo "hebrew8 HP-HEBREW8"
echo "turkish8 HP-TURKISH8"
echo "kana8 HP-KANA8"
echo "tis620 TIS-620"
echo "big5 BIG5"
echo "eucJP EUC-JP"
echo "eucKR EUC-KR"
echo "eucTW EUC-TW"
echo "hp15CN GB2312"
#echo "ccdc ?" # what is this?
echo "SJIS SJIS"
echo "utf8 UTF-8"
;;
irix*)
echo "ISO8859-1 ISO-8859-1"
echo "ISO8859-2 ISO-8859-2"
echo "ISO8859-5 ISO-8859-5"
echo "ISO8859-7 ISO-8859-7"
echo "ISO8859-9 ISO-8859-9"
echo "eucCN GB2312"
echo "eucJP EUC-JP"
echo "eucKR EUC-KR"
echo "eucTW EUC-TW"
;;
osf*)
echo "ISO8859-1 ISO-8859-1"
echo "ISO8859-7 ISO-8859-7"
echo "ISO8859-9 ISO-8859-9"
echo "cp850 CP850"
;;
solaris*)
echo "646 ASCII"
echo "ISO8859-1 ISO-8859-1"
echo "ISO8859-2 ISO-8859-2"
echo "ISO8859-4 ISO-8859-4"
echo "ISO8859-5 ISO-8859-5"
echo "ISO8859-6 ISO-8859-6"
echo "ISO8859-7 ISO-8859-7"
echo "ISO8859-8 ISO-8859-8"
echo "ISO8859-9 ISO-8859-9"
echo "ISO8859-15 ISO-8859-15"
echo "koi8-r KOI8-R"
echo "BIG5 BIG5"
echo "gb2312 GB2312"
echo "cns11643 EUC-TW"
echo "5601 EUC-KR"
echo "eucJP EUC-JP"
echo "PCK SJIS"
echo "TIS620.2533 TIS-620"
#echo "sun_eu_greek ?" # what is this?
echo "UTF-8 UTF-8"
;;
freebsd*)
# FreeBSD 3.3 doesn't have nl_langinfo(CODESET); therefore
# localcharset.c falls back to using the full locale name
# from the environment variables.
echo "C ASCII"
echo "US-ASCII ASCII"
for l in lt_LN; do
echo "$l.ASCII ASCII"
done
for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT lt_LN \
nl_BE nl_NL no_NO pt_PT sv_SE; do
echo "$l.ISO_8859-1 ISO-8859-1"
echo "$l.DIS_8859-15 ISO-8859-15"
done
for l in hr_HR hu_HU lt_LN pl_PL sl_SI; do
echo "$l.ISO_8859-2 ISO-8859-2"
done
for l in ru_RU ru_SU; do
echo "$l.KOI8-R KOI8-R"
echo "$l.CP866 CP866"
done
;;
beos*)
# BeOS has a single locale, and it has UTF-8 encoding.
echo "C UTF-8"
;;
esac

View File

@@ -1,5 +1,5 @@
/* Diacritics processing for a few character codes.
Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
Copyright (C) 1990, 1991, 1992, 1993, 2000 Free Software Foundation, Inc.
François Pinard <pinard@iro.umontreal.ca>, 1988.
All this file is a temporary hack, waiting for locales in GNU.
@@ -38,7 +38,7 @@ const char diacrit_base[256] =
'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
'x', 'y', 'z', 0, 0, 0, 0, 0,
#ifdef MSDOS
#ifdef __MSDOS__
'C', 'u', 'e', 'a', 'a', 'a', 'a', 'c',
'e', 'e', 'e', 'i', 'i', 'i', 'A', 'A',
@@ -57,7 +57,7 @@ const char diacrit_base[256] =
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
#else /* not MSDOS */
#else
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
@@ -76,7 +76,7 @@ const char diacrit_base[256] =
0, 'n', 'o', 'o', 'o', 'o', 'o', 0,
'o', 'u', 'u', 'u', 'u', 'y', 0, 'y',
#endif /* not MSDOS */
#endif
};
/*------------------------------------------------------------------------.
@@ -106,7 +106,7 @@ const char diacrit_diac[256] =
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 6, 0,
#ifdef MSDOS
#ifdef __MSDOS__
7, 5, 2, 4, 5, 3, 8, 7,
4, 5, 3, 5, 4, 3, 5, 8,
@@ -125,7 +125,7 @@ const char diacrit_diac[256] =
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
#else /* not MSDOS */
#else
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
@@ -144,5 +144,5 @@ const char diacrit_diac[256] =
0, 6, 3, 2, 4, 6, 5, 0,
9, 3, 2, 4, 5, 2, 0, 0,
#endif /* not MSDOS */
#endif
};

View File

@@ -13,4 +13,3 @@ extern const char diacrit_diac[]; /* diacritic code for each character */
/* Returns a diacritic code for CHAR. CHAR is known to be alphabetic. */
#define todiac(Char) (diacrit_diac[(unsigned char) (Char)])

View File

@@ -1,5 +1,5 @@
/* dirname.c -- return all but the last element in a path
Copyright (C) 1990, 1998 Free Software Foundation, Inc.
Copyright (C) 1990, 1998, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -32,49 +32,158 @@ char *malloc ();
# define strrchr rindex
# endif
#endif
#include <assert.h>
#ifndef HAVE_DECL_MEMRCHR
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_MEMRCHR
void *memrchr ();
#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. */
#ifndef FILESYSTEM_PREFIX_LEN
# define FILESYSTEM_PREFIX_LEN(Filename) 0
#endif
char *
dir_name (const char *path)
#ifndef ISSLASH
# define ISSLASH(C) ((C) == '/')
#endif
#define BACKSLASH_IS_PATH_SEPARATOR ISSLASH ('\\')
/* Return the length of `dirname (PATH)' and set *RESULT to point
to PATH or to `"."', as appropriate. Works properly even if
there are trailing slashes (by effectively ignoring them).
WARNING: This function doesn't work for cwd-relative names like
`a:foo' that are specified with a drive-letter prefix. That case
is handled in the caller. */
static size_t
dir_name_r (char const *path, char const **result)
{
char *newpath;
char *slash;
int length; /* Length of result, not including NUL. */
char const *slash;
size_t length; /* Length of result, not including NUL. */
slash = strrchr (path, '/');
if (BACKSLASH_IS_PATH_SEPARATOR)
{
char const *b = strrchr (path, '\\');
if (b && slash < b)
slash = b;
}
/* If the last byte of PATH is a slash, decrement SLASH until it's
pointing at the leftmost in a sequence of trailing slashes. */
if (slash && slash[1] == 0)
{
while (path < slash && ISSLASH (slash[-1]))
{
--slash;
}
if (path < slash)
{
size_t len = slash - path;
slash = memrchr (path, '/', len);
if (BACKSLASH_IS_PATH_SEPARATOR)
{
char const *b = memrchr (path, '\\', len);
if (b && slash < b)
slash = b;
}
}
}
if (slash == 0)
{
/* File is in the current directory. */
path = ".";
length = 1;
length = FILESYSTEM_PREFIX_LEN (path);
if (length == 0)
{
path = ".";
length = 1;
}
}
else
{
/* Remove any trailing slashes from the result. */
#ifdef MSDOS
char *lim = (path[0] >= 'A' && path[0] <= 'z' && path[1] == ':')
? path + 2 : path;
/* Remove any trailing slashes from the result. If we have a
canonicalized "d:/path", leave alone the root case "d:/". */
char const *lim = path + FILESYSTEM_PREFIX_LEN (path);
/* If canonicalized "d:/path", leave alone the root case "d:/". */
while (slash > lim && *slash == '/')
while (lim < slash && ISSLASH (*slash))
--slash;
#else
while (slash > path && *slash == '/')
--slash;
#endif
length = slash - path + 1;
}
newpath = (char *) malloc (length + 1);
*result = path;
return length;
}
/* Return the leading directories part of PATH,
allocated with malloc. If out of memory, return 0.
Works properly even if there are trailing slashes
(by effectively ignoring them). */
char *
dir_name (char const *path)
{
char const *result;
size_t length = dir_name_r (path, &result);
int append_dot = (length && length == FILESYSTEM_PREFIX_LEN (newpath));
char *newpath = (char *) malloc (length + append_dot + 1);
if (newpath == 0)
return 0;
strncpy (newpath, path, length);
strncpy (newpath, result, length);
/* If PATH is "d:foo", return "d:.", the CWD on drive d: */
if (append_dot)
newpath[length++] = '.';
newpath[length] = 0;
return newpath;
}
#ifdef TEST_DIRNAME
/*
Run the test like this (expect no output):
gcc -DHAVE_CONFIG_H -DTEST_DIRNAME -I.. -O -Wall memrchr.c dirname.c
sed -n '/^BEGIN-DATA$/,/^END-DATA$/p' dirname.c|grep -v DATA|./a.out
BEGIN-DATA
foo//// .
bar/foo//// bar
foo/ .
/ /
. .
a .
END-DATA
*/
# define MAX_BUFF_LEN 1024
# include <stdio.h>
# include <stdlib.h>
int
main ()
{
char buff[MAX_BUFF_LEN + 1];
buff[MAX_BUFF_LEN] = 0;
while (fgets (buff, MAX_BUFF_LEN, stdin) && buff[0])
{
char path[MAX_BUFF_LEN];
char expected_result[MAX_BUFF_LEN];
char const *result;
sscanf (buff, "%s %s", path, expected_result);
result = dir_name (path);
if (strcmp (result, expected_result))
printf ("%s: got %s, expected %s\n", path, result, expected_result);
}
exit (0);
}
#endif

View File

@@ -1,5 +1,5 @@
/* Error handler for noninteractive utilities
Copyright (C) 1990-2000 Free Software Foundation, Inc.
Copyright (C) 1990-1998, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in /gd/gnu/lib.
@@ -26,6 +26,9 @@
#endif
#include <stdio.h>
#if HAVE_LIBINTL_H
# include <libintl.h>
#endif
#if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC
# if __STDC__
@@ -49,6 +52,13 @@ void exit ();
#include "error.h"
#ifndef HAVE_DECL_STRERROR_R
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_STRERROR_R
char *strerror_r ();
#endif
#ifndef _
# define _(String) String
#endif
@@ -76,6 +86,11 @@ unsigned int error_message_count;
# define error __error
# define error_at_line __error_at_line
# ifdef USE_IN_LIBIO
# include <libio/iolibio.h>
# define fflush(s) _IO_fflush (s)
# endif
#else /* not _LIBC */
/* The calling program should define program_name and set it to the

70
lib/fatal.c Normal file
View File

@@ -0,0 +1,70 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/* FIXME: define EXIT_FAILURE */
#include <stdio.h>
#if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC
# if __STDC__
# include <stdarg.h>
# define VA_START(args, lastarg) va_start(args, lastarg)
# else
# include <varargs.h>
# define VA_START(args, lastarg) va_start(args)
# endif
#else
# define va_alist a1, a2, a3, a4, a5, a6, a7, a8
# define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8;
#endif
#if STDC_HEADERS || _LIBC
# include <stdlib.h>
# include <string.h>
#else
void exit ();
#endif
#ifdef _LIBC
# define program_name program_invocation_name
#else /* not _LIBC */
/* The calling program should define program_name and set it to the
name of the executing program. */
extern char *program_name;
#endif
#include "fatal.h"
/* Like error, but always exit with EXIT_FAILURE. */
void
#if defined VA_START && __STDC__
fatal (int errnum, const char *message, ...)
#else
fatal (errnum, message, va_alist)
int errnum;
char *message;
va_dcl
#endif
{
#ifdef VA_START
va_list args;
#endif
if (error_print_progname)
(*error_print_progname) ();
else
{
fflush (stdout);
fprintf (stderr, "%s: ", program_name);
}
#ifdef VA_START
VA_START (args, message);
error (EXIT_FAILURE, errnum, message, args);
va_end (args);
#else
error (EXIT_FAILURE, errnum, message, a1, a2, a3, a4, a5, a6, a7, a8);
#endif
}

68
lib/fatal.h Normal file
View File

@@ -0,0 +1,68 @@
#include "error.h"
/* FIXME: this is all from ansidecl. better to simply swipe
that file from egcs/include and include it from here. */
/* Using MACRO(x,y) in cpp #if conditionals does not work with some
older preprocessors. Thus we can't define something like this:
#define HAVE_GCC_VERSION(MAJOR, MINOR) \
(__GNUC__ > (MAJOR) || (__GNUC__ == (MAJOR) && __GNUC_MINOR__ >= (MINOR)))
and then test "#if HAVE_GCC_VERSION(2,7)".
So instead we use the macro below and test it against specific values. */
/* This macro simplifies testing whether we are using gcc, and if it
is of a particular minimum version. (Both major & minor numbers are
significant.) This macro will evaluate to 0 if we are not using
gcc at all. */
#ifndef GCC_VERSION
# define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
#endif /* GCC_VERSION */
/* Define macros for some gcc attributes. This permits us to use the
macros freely, and know that they will come into play for the
version of gcc in which they are supported. */
#if (GCC_VERSION < 2007)
# define __attribute__(x)
#endif
/* Attribute __malloc__ on functions was valid as of gcc 2.96. */
#ifndef ATTRIBUTE_MALLOC
# if (GCC_VERSION >= 2096)
# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
# else
# define ATTRIBUTE_MALLOC
# endif /* GNUC >= 2.96 */
#endif /* ATTRIBUTE_MALLOC */
/* Attributes on labels were valid as of gcc 2.93. */
#ifndef ATTRIBUTE_UNUSED_LABEL
# if (GCC_VERSION >= 2093)
# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED
# else
# define ATTRIBUTE_UNUSED_LABEL
# endif /* GNUC >= 2.93 */
#endif /* ATTRIBUTE_UNUSED_LABEL */
#ifndef ATTRIBUTE_UNUSED
# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
#endif /* ATTRIBUTE_UNUSED */
#ifndef ATTRIBUTE_NORETURN
# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
#endif /* ATTRIBUTE_NORETURN */
#ifndef ATTRIBUTE_PRINTF
# define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
# define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2)
# define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3)
# define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4)
# define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5)
# define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6)
#endif /* ATTRIBUTE_PRINTF */
extern void fatal (int errnum, const char *format, ...)
ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF_2;

View File

@@ -1,5 +1,5 @@
/* filemode.c -- make a string describing file modes
Copyright (C) 1985, 1990, 1993, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1985, 1990, 1993, 1998-2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
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
@@ -80,37 +80,42 @@
# undef S_ISSOCK
#endif /* STAT_MACROS_BROKEN. */
#if !defined(S_ISBLK) && defined(S_IFBLK)
#if !defined S_ISBLK && defined S_IFBLK
# define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
#endif
#if !defined(S_ISCHR) && defined(S_IFCHR)
#if !defined S_ISCHR && defined S_IFCHR
# define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
#endif
#if !defined(S_ISDIR) && defined(S_IFDIR)
#if !defined S_ISDIR && defined S_IFDIR
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif
#if !defined(S_ISREG) && defined(S_IFREG)
#if !defined S_ISREG && defined S_IFREG
# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
#endif
#if !defined(S_ISFIFO) && defined(S_IFIFO)
#if !defined S_ISFIFO && defined S_IFIFO
# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
#endif
#if !defined(S_ISLNK) && defined(S_IFLNK)
#if !defined S_ISLNK && defined S_IFLNK
# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
#endif
#if !defined(S_ISSOCK) && defined(S_IFSOCK)
#if !defined S_ISSOCK && defined S_IFSOCK
# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
#endif
#if !defined(S_ISMPB) && defined(S_IFMPB) /* V7 */
#if !defined S_ISMPB && defined S_IFMPB /* V7 */
# define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB)
# define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC)
#endif
#if !defined(S_ISNWK) && defined(S_IFNWK) /* HP/UX */
#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 */
#if !defined S_ISDOOR && defined S_IFDOOR /* Solaris 2.5 and up */
# define S_ISDOOR(m) (((m) & S_IFMT) == S_IFDOOR)
#endif
#if !defined S_ISCTG && defined S_IFCTG /* MassComp */
# define S_ISCTG(m) (((m) & S_IFMT) == S_IFCTG)
#endif
/* Set the 's' and 't' flags in file attributes string CHARS,
according to the file mode BITS. */
@@ -156,11 +161,13 @@ setst (mode_t bits, char *chars)
'D' for doors
'b' for block special files
'c' for character special files
'n' for network special files
'm' for multiplexor files
'M' for an off-line (regular) file
'l' for symbolic links
's' for sockets
'p' for fifos
'C' for contigous data files
'-' for regular files
'?' for any other file type. */
@@ -201,6 +208,10 @@ ftypelet (mode_t bits)
if (S_ISDOOR (bits))
return 'D';
#endif
#ifdef S_ISCTG
if (S_ISCTG (bits))
return 'C';
#endif
/* The following two tests are for Cray DMF (Data Migration
Facility), which is a HSM file system. A migrated file has a

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1993, 1996, 1997 Free Software Foundation, Inc.
/* Copyright 1991, 1992, 1993, 1996, 1997, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -27,30 +27,18 @@
#include <fnmatch.h>
#include <ctype.h>
#if defined STDC_HEADERS || !defined isascii
# define IN_CTYPE_DOMAIN(c) 1
#else
# define IN_CTYPE_DOMAIN(c) isascii (c)
#endif
/* Comment out all this code if we are using the GNU C Library, and are not
actually compiling the library itself. This code is part of the GNU C
Library, but also included in many other GNU distributions. Compiling
and linking in this code is a waste when using the GNU C library
(especially if it is a shared library). Rather than having every GNU
program understand `configure --with-gnu-libc' and omit the object files,
it is simpler to just do this in the source for each such file. */
#if defined _LIBC || !defined __GNU_LIBRARY__
#define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper (c))
# if defined STDC_HEADERS || !defined isascii
# define ISASCII(c) 1
# else
# define ISASCII(c) isascii(c)
# endif
# define ISUPPER(c) (ISASCII (c) && isupper (c))
# ifndef errno
#ifndef errno
extern int errno;
# endif
#endif
/* Match STRING against the filename pattern PATTERN, returning zero if
it matches, nonzero if not. */
@@ -61,7 +49,9 @@ fnmatch (const char *pattern, const char *string, int flags)
register char c;
/* Note that this evaluates C many times. */
# define FOLD(c) ((flags & FNM_CASEFOLD) && ISUPPER (c) ? tolower (c) : (c))
#define FOLD(c) ((flags & FNM_CASEFOLD) && ISUPPER ((unsigned char) (c)) \
? tolower ((unsigned char) (c)) \
: (c))
while ((c = *p++) != '\0')
{
@@ -99,13 +89,10 @@ fnmatch (const char *pattern, const char *string, int flags)
for (c = *p++; c == '?' || c == '*'; c = *p++)
{
if ((flags & FNM_FILE_NAME) && *n == '/')
/* A slash does not match a wildcard under FNM_FILE_NAME. */
return FNM_NOMATCH;
else if (c == '?')
if (c == '?')
{
/* A ? needs to match one character. */
if (*n == '\0')
if (*n == '\0' || (*n == '/' && (flags & FNM_FILE_NAME)))
/* There isn't another character; no match. */
return FNM_NOMATCH;
else
@@ -117,7 +104,13 @@ fnmatch (const char *pattern, const char *string, int flags)
}
if (c == '\0')
return 0;
{
if ((flags & (FNM_FILE_NAME | FNM_LEADING_DIR)) == FNM_FILE_NAME)
for (; *n != '\0'; n++)
if (*n == '/')
return FNM_NOMATCH;
return 0;
}
{
char c1 = (!(flags & FNM_NOESCAPE) && c == '\\') ? *p : c;
@@ -126,6 +119,8 @@ fnmatch (const char *pattern, const char *string, int flags)
if ((c == '[' || FOLD (*n) == c1) &&
fnmatch (p, n, flags & ~FNM_PERIOD) == 0)
return 0;
else if (*n == '/' && (flags & FNM_FILE_NAME))
break;
return FNM_NOMATCH;
}
@@ -231,7 +226,5 @@ fnmatch (const char *pattern, const char *string, int flags)
return FNM_NOMATCH;
# undef FOLD
#undef FOLD
}
#endif /* _LIBC or not __GNU_LIBRARY__. */

View File

@@ -1,5 +1,5 @@
/* full-write.c -- an interface to write that retries after interrupts
Copyright (C) 1993, 1994, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1993, 1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -45,10 +45,11 @@ full_write (int desc, const char *ptr, size_t len)
while (len > 0)
{
int written = write (desc, ptr, len);
/* FIXME: write on my slackware Linux 1.2.13 returns zero when
/* write on an old Slackware Linux 1.2.13 returns zero when
I try to write more data than there is room on a floppy disk.
This puts dd into an infinite loop. Reproduce with
dd if=/dev/zero of=/dev/fd0. */
dd if=/dev/zero of=/dev/fd0. If you have this problem,
consider upgrading to a newer kernel. */
if (written < 0)
{
#ifdef EINTR

View File

@@ -86,6 +86,14 @@
#define HOUR(x) ((x) * 60)
/* An integer value, and the number of digits in its textual
representation. */
typedef struct
{
int value;
int digits;
} textint;
/* An entry in the lexical lookup table. */
typedef struct
{
@@ -98,7 +106,7 @@ typedef struct
enum { MERam, MERpm, MER24 };
/* Information passed to and from the parser. */
struct parser_control
typedef struct
{
/* The input string remaining to be parsed. */
const char *input;
@@ -119,7 +127,7 @@ struct parser_control
int meridian;
/* Gregorian year, month, day, hour, minutes, and seconds. */
int year;
textint year;
int month;
int day;
int hour;
@@ -144,12 +152,11 @@ struct parser_control
/* Table of local time zone abbrevations, terminated by a null entry. */
table local_time_zone_table[3];
};
} parser_control;
#define PC (* (struct parser_control *) parm)
#define PC (* (parser_control *) parm)
#define YYLEX_PARAM parm
#define YYPARSE_PARAM parm
#define YYSTYPE int
static int yyerror ();
static int yylex ();
@@ -162,9 +169,20 @@ static int yylex ();
/* This grammar has 13 shift/reduce conflicts. */
%expect 13
%token tAGO tDAY tDAY_UNIT tDAYZONE tDST tHOUR_UNIT tID
%token tLOCAL_ZONE tMERIDIAN tMINUTE_UNIT tMONTH tMONTH_UNIT
%token tSEC_UNIT tSNUMBER tUNUMBER tYEAR_UNIT tZONE
%union
{
int intval;
textint textintval;
}
%token tAGO tDST
%token <intval> tDAY tDAY_UNIT tDAYZONE tHOUR_UNIT tLOCAL_ZONE tMERIDIAN
%token <intval> tMINUTE_UNIT tMONTH tMONTH_UNIT tSEC_UNIT tYEAR_UNIT tZONE
%token <textintval> tSNUMBER tUNUMBER
%type <intval> o_merid
%%
@@ -192,41 +210,41 @@ item:
time:
tUNUMBER tMERIDIAN
{
PC.hour = $1;
PC.hour = $1.value;
PC.minutes = 0;
PC.seconds = 0;
PC.meridian = $2;
}
| tUNUMBER ':' tUNUMBER o_merid
{
PC.hour = $1;
PC.minutes = $3;
PC.hour = $1.value;
PC.minutes = $3.value;
PC.seconds = 0;
PC.meridian = $4;
}
| tUNUMBER ':' tUNUMBER tSNUMBER
{
PC.hour = $1;
PC.minutes = $3;
PC.hour = $1.value;
PC.minutes = $3.value;
PC.meridian = MER24;
PC.zones_seen++;
PC.time_zone = $4 % 100 + ($4 / 100) * 60;
PC.time_zone = $4.value % 100 + ($4.value / 100) * 60;
}
| tUNUMBER ':' tUNUMBER ':' tUNUMBER o_merid
{
PC.hour = $1;
PC.minutes = $3;
PC.seconds = $5;
PC.hour = $1.value;
PC.minutes = $3.value;
PC.seconds = $5.value;
PC.meridian = $6;
}
| tUNUMBER ':' tUNUMBER ':' tUNUMBER tSNUMBER
{
PC.hour = $1;
PC.minutes = $3;
PC.seconds = $5;
PC.hour = $1.value;
PC.minutes = $3.value;
PC.seconds = $5.value;
PC.meridian = MER24;
PC.zones_seen++;
PC.time_zone = $6 % 100 + ($6 / 100) * 60;
PC.time_zone = $6.value % 100 + ($6.value / 100) * 60;
}
;
@@ -259,7 +277,7 @@ day:
}
| tUNUMBER tDAY
{
PC.day_ordinal = $1;
PC.day_ordinal = $1.value;
PC.day_number = $2;
}
;
@@ -267,25 +285,26 @@ day:
date:
tUNUMBER '/' tUNUMBER
{
PC.month = $1;
PC.day = $3;
PC.month = $1.value;
PC.day = $3.value;
}
| tUNUMBER '/' tUNUMBER '/' tUNUMBER
{
/* Interpret as YYYY/MM/DD if 1000 <= $1, otherwise as MM/DD/YY.
/* Interpret as YYYY/MM/DD if the first value has 4 or more digits,
otherwise as MM/DD/YY.
The goal in recognizing YYYY/MM/DD is solely to support legacy
machine-generated dates like those in an RCS log listing. If
you want portability, use the ISO 8601 format. */
if (1000 <= $1)
if (4 <= $1.digits)
{
PC.year = $1;
PC.month = $3;
PC.day = $5;
PC.month = $3.value;
PC.day = $5.value;
}
else
{
PC.month = $1;
PC.day = $3;
PC.month = $1.value;
PC.day = $3.value;
PC.year = $5;
}
}
@@ -293,36 +312,37 @@ date:
{
/* ISO 8601 format. YYYY-MM-DD. */
PC.year = $1;
PC.month = -$2;
PC.day = -$3;
PC.month = -$2.value;
PC.day = -$3.value;
}
| tUNUMBER tMONTH tSNUMBER
{
/* e.g. 17-JUN-1992. */
PC.day = $1;
PC.day = $1.value;
PC.month = $2;
PC.year = -$3;
PC.year.value = -$3.value;
PC.year.digits = $3.digits;
}
| tMONTH tUNUMBER
{
PC.month = $1;
PC.day = $2;
PC.day = $2.value;
}
| tMONTH tUNUMBER ',' tUNUMBER
{
PC.month = $1;
PC.day = $2;
PC.day = $2.value;
PC.year = $4;
}
| tUNUMBER tMONTH
{
PC.day = $1.value;
PC.month = $2;
PC.day = $1;
}
| tUNUMBER tMONTH tUNUMBER
{
PC.day = $1.value;
PC.month = $2;
PC.day = $1;
PC.year = $3;
}
;
@@ -342,39 +362,39 @@ rel:
relunit:
tUNUMBER tYEAR_UNIT
{ PC.rel_year += $1 * $2; }
{ PC.rel_year += $1.value * $2; }
| tSNUMBER tYEAR_UNIT
{ PC.rel_year += $1 * $2; }
{ PC.rel_year += $1.value * $2; }
| tYEAR_UNIT
{ PC.rel_year += $1; }
| tUNUMBER tMONTH_UNIT
{ PC.rel_month += $1 * $2; }
{ PC.rel_month += $1.value * $2; }
| tSNUMBER tMONTH_UNIT
{ PC.rel_month += $1 * $2; }
{ PC.rel_month += $1.value * $2; }
| tMONTH_UNIT
{ PC.rel_month += $1; }
| tUNUMBER tDAY_UNIT
{ PC.rel_day += $1 * $2; }
{ PC.rel_day += $1.value * $2; }
| tSNUMBER tDAY_UNIT
{ PC.rel_day += $1 * $2; }
{ PC.rel_day += $1.value * $2; }
| tDAY_UNIT
{ PC.rel_day += $1; }
{ PC.rel_day += $1 }
| tUNUMBER tHOUR_UNIT
{ PC.rel_hour += $1 * $2; }
{ PC.rel_hour += $1.value * $2; }
| tSNUMBER tHOUR_UNIT
{ PC.rel_hour += $1 * $2; }
{ PC.rel_hour += $1.value * $2; }
| tHOUR_UNIT
{ PC.rel_hour += $1; }
{ PC.rel_hour += $1 }
| tUNUMBER tMINUTE_UNIT
{ PC.rel_minutes += $1 * $2; }
{ PC.rel_minutes += $1.value * $2; }
| tSNUMBER tMINUTE_UNIT
{ PC.rel_minutes += $1 * $2; }
{ PC.rel_minutes += $1.value * $2; }
| tMINUTE_UNIT
{ PC.rel_minutes += $1; }
{ PC.rel_minutes += $1 }
| tUNUMBER tSEC_UNIT
{ PC.rel_seconds += $1 * $2; }
{ PC.rel_seconds += $1.value * $2; }
| tSNUMBER tSEC_UNIT
{ PC.rel_seconds += $1 * $2; }
{ PC.rel_seconds += $1.value * $2; }
| tSEC_UNIT
{ PC.rel_seconds += $1; }
;
@@ -382,29 +402,31 @@ relunit:
number:
tUNUMBER
{
if (PC.dates_seen && ! PC.rels_seen && (PC.times_seen || 100 <= $1))
if (PC.dates_seen
&& ! PC.rels_seen && (PC.times_seen || 2 < $1.digits))
PC.year = $1;
else
{
if (10000 < $1)
if (4 < $1.digits)
{
PC.dates_seen++;
PC.day = $1 % 100;
PC.month = ($1 / 100) % 100;
PC.year = $1 / 10000;
PC.day = $1.value % 100;
PC.month = ($1.value / 100) % 100;
PC.year.value = $1.value / 10000;
PC.year.digits = $1.digits - 4;
}
else
{
PC.times_seen++;
if ($1 < 100)
if ($1.digits <= 2)
{
PC.hour = $1;
PC.hour = $1.value;
PC.minutes = 0;
}
else
{
PC.hour = $1 / 100;
PC.minutes = $1 % 100;
PC.hour = $1.value / 100;
PC.minutes = $1.value % 100;
}
PC.seconds = 0;
PC.meridian = MER24;
@@ -632,23 +654,23 @@ to_hour (int hours, int meridian)
}
static int
to_year (int year)
to_year (textint textyear)
{
int year = textyear.value;
if (year < 0)
year = -year;
/* XPG4 suggests that years 00-68 map to 2000-2068, and
years 69-99 map to 1969-1999. */
if (year < 69)
year += 2000;
else if (year < 100)
year += 1900;
if (textyear.digits == 2)
year += year < 69 ? 2000 : 1900;
return year;
}
static table const *
lookup_zone (struct parser_control const *pc, char const *name)
lookup_zone (parser_control const *pc, char const *name)
{
table const *tp;
@@ -692,7 +714,7 @@ tm_diff (struct tm const *a, struct tm const *b)
#endif /* ! HAVE_TM_GMTOFF */
static table const *
lookup_word (struct parser_control const *pc, char *word)
lookup_word (parser_control const *pc, char *word)
{
char *p;
char *q;
@@ -761,7 +783,7 @@ lookup_word (struct parser_control const *pc, char *word)
}
static int
yylex (YYSTYPE *lvalp, struct parser_control *pc)
yylex (YYSTYPE *lvalp, parser_control *pc)
{
unsigned char c;
int count;
@@ -773,21 +795,30 @@ yylex (YYSTYPE *lvalp, struct parser_control *pc)
if (ISDIGIT (c) || c == '-' || c == '+')
{
char const *p;
int sign;
int value;
if (c == '-' || c == '+')
{
sign = c == '-' ? -1 : 1;
if (! ISDIGIT (*++pc->input))
c = *++pc->input;
if (! ISDIGIT (c))
/* skip the '-' sign */
continue;
}
else
sign = 0;
for (*lvalp = 0; ISDIGIT (c = *pc->input++);)
*lvalp = 10 * *lvalp + (c - '0');
pc->input--;
if (sign < 0)
*lvalp = - *lvalp;
p = pc->input;
value = 0;
do
{
value = 10 * value + c - '0';
c = *++p;
}
while (ISDIGIT (c));
lvalp->textintval.value = sign < 0 ? -value : value;
lvalp->textintval.digits = p - pc->input;
pc->input = p;
return sign ? tSNUMBER : tUNUMBER;
}
@@ -808,8 +839,8 @@ yylex (YYSTYPE *lvalp, struct parser_control *pc)
*p = '\0';
tp = lookup_word (pc, buff);
if (! tp)
return tID;
*lvalp = tp->value;
return '?';
lvalp->intval = tp->value;
return tp->type;
}
@@ -848,13 +879,14 @@ get_date (const char *p, const time_t *now)
struct tm *tmp = localtime (&Start);
struct tm tm;
struct tm tm0;
struct parser_control pc;
parser_control pc;
if (! tmp)
return -1;
pc.input = p;
pc.year = tmp->tm_year + TM_YEAR_BASE;
pc.year.value = tmp->tm_year + TM_YEAR_BASE;
pc.year.digits = 4;
pc.month = tmp->tm_mon + 1;
pc.day = tmp->tm_mday;
pc.hour = tmp->tm_hour;
@@ -955,9 +987,6 @@ get_date (const char *p, const time_t *now)
{
tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
}
tm.tm_hour += pc.rel_hour;
tm.tm_min += pc.rel_minutes;
tm.tm_sec += pc.rel_seconds;
/* Let mktime deduce tm_isdst if we have an absolute time stamp,
or if the relative time stamp mentions days, months, or years. */
@@ -1029,6 +1058,29 @@ get_date (const char *p, const time_t *now)
Start -= delta;
}
/* Add relative hours, minutes, and seconds. Ignore leap seconds;
i.e. "+ 10 minutes" means 600 seconds, even if one of them is a
leap second. Typically this is not what the user wants, but it's
too hard to do it the other way, because the time zone indicator
must be applied before relative times, and if mktime is applied
again the time zone will be lost. */
{
time_t t0 = Start;
long d1 = 60 * 60 * (long) pc.rel_hour;
time_t t1 = t0 + d1;
long d2 = 60 * (long) pc.rel_minutes;
time_t t2 = t1 + d2;
int d3 = pc.rel_seconds;
time_t t3 = t2 + d3;
if ((d1 / (60 * 60) ^ pc.rel_hour)
| (d2 / 60 ^ pc.rel_minutes)
| ((t0 + d1 < t0) ^ (d1 < 0))
| ((t1 + d2 < t1) ^ (d2 < 0))
| ((t2 + d3 < t2) ^ (d3 < 0)))
return -1;
Start = t3;
}
return Start;
}

View File

@@ -1,6 +1,6 @@
/* getline.c -- Replacement for GNU C library function getline
Copyright (C) 1993, 1996, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1993, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
@@ -39,105 +39,19 @@ getline (char **lineptr, size_t *n, FILE *stream)
return getdelim (lineptr, n, '\n', stream);
}
#else /* ! have getdelim */
# define NDEBUG
# include <assert.h>
# if STDC_HEADERS
# include <stdlib.h>
# else
char *malloc (), *realloc ();
# endif
/* Always add at least this many bytes when extending the buffer. */
# define MIN_CHUNK 64
/* Read up to (and including) a TERMINATOR from STREAM into *LINEPTR
+ OFFSET (and null-terminate it). *LINEPTR is a pointer returned from
malloc (or NULL), pointing to *N characters of space. It is realloc'd
as necessary. Return the number of characters read (not including the
null terminator), or -1 on error or EOF. */
int
getstr (char **lineptr, size_t *n, FILE *stream, char terminator, size_t offset)
{
int nchars_avail; /* Allocated but unused chars in *LINEPTR. */
char *read_pos; /* Where we're reading into *LINEPTR. */
int ret;
if (!lineptr || !n || !stream)
return -1;
if (!*lineptr)
{
*n = MIN_CHUNK;
*lineptr = malloc (*n);
if (!*lineptr)
return -1;
}
nchars_avail = *n - offset;
read_pos = *lineptr + offset;
for (;;)
{
register int c = getc (stream);
/* We always want at least one char left in the buffer, since we
always (unless we get an error while reading the first char)
NUL-terminate the line buffer. */
assert(*n - nchars_avail == read_pos - *lineptr);
if (nchars_avail < 2)
{
if (*n > MIN_CHUNK)
*n *= 2;
else
*n += MIN_CHUNK;
nchars_avail = *n + *lineptr - read_pos;
*lineptr = realloc (*lineptr, *n);
if (!*lineptr)
return -1;
read_pos = *n - nchars_avail + *lineptr;
assert(*n - nchars_avail == read_pos - *lineptr);
}
if (c == EOF || ferror (stream))
{
/* Return partial line, if any. */
if (read_pos == *lineptr)
return -1;
else
break;
}
*read_pos++ = c;
nchars_avail--;
if (c == terminator)
/* Return the line. */
break;
}
/* Done - NUL terminate and return the number of chars read. */
*read_pos = '\0';
ret = read_pos - (*lineptr + offset);
return ret;
}
# include "getstr.h"
int
getline (char **lineptr, size_t *n, FILE *stream)
{
return getstr (lineptr, n, stream, '\n', 0);
return getstr (lineptr, n, stream, '\n', 0, 0);
}
int
getdelim (char **lineptr, size_t *n, int delimiter, FILE *stream)
{
return getstr (lineptr, n, stream, delimiter, 0);
return getstr (lineptr, n, stream, delimiter, 0, 0);
}
#endif

View File

@@ -308,6 +308,12 @@ extern int errno;
# define LDAV_CVT(n) (((double) (n)) / FSCALE)
# endif
# ifndef NLIST_STRUCT
# if HAVE_NLIST_H
# define NLIST_STRUCT
# endif
# endif
/* VAX C can't handle multi-line #ifs, or lines longer that 256 characters. */
# ifndef NLIST_STRUCT

View File

@@ -2,7 +2,7 @@
NOTE: The canonical source of this file is maintained with the GNU
C Library. Bugs can be reported to bug-glibc@gnu.org.
Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
@@ -27,13 +27,13 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#else
# if !defined __STDC__ || !__STDC__
#endif
#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
@@ -75,11 +75,12 @@
#endif
#ifndef _
/* This is for other GNU distributions with internationalized messages.
When compiling libc, the _ macro is predefined. */
# ifdef HAVE_LIBINTL_H
/* This is for other GNU distributions with internationalized messages. */
# if defined HAVE_LIBINTL_H || defined _LIBC
# include <libintl.h>
# define _(msgid) gettext (msgid)
# ifndef _
# define _(msgid) gettext (msgid)
# endif
# else
# define _(msgid) (msgid)
# endif
@@ -515,6 +516,13 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
int *longind;
int long_only;
{
int print_errors = opterr;
if (optstring[0] == ':')
print_errors = 0;
if (argc < 1)
return -1;
optarg = NULL;
if (optind == 0 || !__getopt_initialized)
@@ -664,14 +672,17 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
pfound = p;
indfound = option_index;
}
else
else if (long_only
|| pfound->has_arg != p->has_arg
|| pfound->flag != p->flag
|| pfound->val != p->val)
/* Second or later nonexact match found. */
ambig = 1;
}
if (ambig && !exact)
{
if (opterr)
if (print_errors)
fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
argv[0], argv[optind]);
nextchar += strlen (nextchar);
@@ -692,7 +703,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
optarg = nameend + 1;
else
{
if (opterr)
if (print_errors)
{
if (argv[optind - 1][1] == '-')
/* --option */
@@ -718,7 +729,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
optarg = argv[optind++];
else
{
if (opterr)
if (print_errors)
fprintf (stderr,
_("%s: option `%s' requires an argument\n"),
argv[0], argv[optind - 1]);
@@ -745,7 +756,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (!long_only || argv[optind][1] == '-'
|| my_index (optstring, *nextchar) == NULL)
{
if (opterr)
if (print_errors)
{
if (argv[optind][1] == '-')
/* --option */
@@ -775,7 +786,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (temp == NULL || c == ':')
{
if (opterr)
if (print_errors)
{
if (posixly_correct)
/* 1003.2 specifies the format of this message. */
@@ -809,7 +820,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
}
else if (optind == argc)
{
if (opterr)
if (print_errors)
{
/* 1003.2 specifies the format of this message. */
fprintf (stderr, _("%s: option requires an argument -- %c\n"),
@@ -858,7 +869,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
}
if (ambig && !exact)
{
if (opterr)
if (print_errors)
fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
argv[0], argv[optind]);
nextchar += strlen (nextchar);
@@ -876,7 +887,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
optarg = nameend + 1;
else
{
if (opterr)
if (print_errors)
fprintf (stderr, _("\
%s: option `-W %s' doesn't allow an argument\n"),
argv[0], pfound->name);
@@ -891,7 +902,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
optarg = argv[optind++];
else
{
if (opterr)
if (print_errors)
fprintf (stderr,
_("%s: option `%s' requires an argument\n"),
argv[0], argv[optind - 1]);
@@ -938,12 +949,12 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
}
else if (optind == argc)
{
if (opterr)
if (print_errors)
{
/* 1003.2 specifies the format of this message. */
fprintf (stderr,
_("%s: option requires an argument -- %c\n"),
argv[0], c);
_("%s: option requires an argument -- %c\n"),
argv[0], c);
}
optopt = c;
if (optstring[0] == ':')

View File

@@ -20,7 +20,10 @@
#ifdef HAVE_CONFIG_H
#include <config.h>
#else
#endif
#include "getopt.h"
#if !defined __STDC__ || !__STDC__
/* This is a separate conditional since some stdc systems
reject `defined (const)'. */
@@ -28,9 +31,6 @@
#define const
#endif
#endif
#endif
#include "getopt.h"
#include <stdio.h>

View File

@@ -2,34 +2,48 @@
#ifndef HAVE_GETPAGESIZE
#ifdef VMS
#define getpagesize() 512
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
# include <unistd.h>
#endif
#ifdef _SC_PAGESIZE
#define getpagesize() sysconf(_SC_PAGESIZE)
#else
#if !defined getpagesize && defined _SC_PAGESIZE
# if !(defined VMS && __VMS_VER < 70000000)
# define getpagesize() sysconf (_SC_PAGESIZE)
# endif
#endif
#include <sys/param.h>
#if !defined getpagesize && defined VMS
# ifdef __ALPHA
# define getpagesize() 8192
# else
# define getpagesize() 512
# endif
#endif
#ifdef EXEC_PAGESIZE
#define getpagesize() EXEC_PAGESIZE
#else
#ifdef NBPG
#define getpagesize() NBPG * CLSIZE
#ifndef CLSIZE
#define CLSIZE 1
#endif /* no CLSIZE */
#else /* no NBPG */
#ifdef NBPC
#define getpagesize() NBPC
#endif /* NBPC */
#endif /* no NBPG */
#endif /* no EXEC_PAGESIZE */
#endif /* no _SC_PAGESIZE */
/* This is for BeOS. */
#if !defined getpagesize && HAVE_OS_H
# include <OS.h>
# if defined B_PAGE_SIZE
# define getpagesize() B_PAGE_SIZE
# endif
#endif
#ifndef getpagesize
# include <sys/param.h>
# ifdef EXEC_PAGESIZE
# define getpagesize() EXEC_PAGESIZE
# else
# ifdef NBPG
# ifndef CLSIZE
# define CLSIZE 1
# endif
# define getpagesize() (NBPG * CLSIZE)
# else
# ifdef NBPC
# define getpagesize() NBPC
# endif
# endif
# endif
#endif
#endif /* not HAVE_GETPAGESIZE */

101
lib/getpass.c Normal file
View File

@@ -0,0 +1,101 @@
/* Copyright (C) 1992,93,94,95,96,97,98,99,2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include "getline.h"
/* It is desirable to use this bit on systems that have it.
The only bit of terminal state we want to twiddle is echoing, which is
done in software; there is no need to change the state of the terminal
hardware. */
#ifndef TCSASOFT
# define TCSASOFT 0
#endif
char *
getpass (const char *prompt)
{
FILE *in, *out;
struct termios s, t;
int tty_changed;
static char *buf;
static size_t bufsize;
ssize_t nread;
/* Try to write to and read from the terminal if we can.
If we can't open the terminal, use stderr and stdin. */
in = fopen ("/dev/tty", "w+");
if (in == NULL)
{
in = stdin;
out = stderr;
}
else
out = in;
/* Turn echoing off if it is on now. */
if (tcgetattr (fileno (in), &t) == 0)
{
/* Save the old one. */
s = t;
/* Tricky, tricky. */
t.c_lflag &= ~(ECHO|ISIG);
tty_changed = (tcsetattr (fileno (in), TCSAFLUSH|TCSASOFT, &t) == 0);
}
else
tty_changed = 0;
/* Write the prompt. */
fputs (prompt, out);
fflush (out);
/* Read the password. */
nread = getline (&buf, &bufsize, in);
if (buf != NULL)
{
if (nread < 0)
buf[0] = '\0';
else if (buf[nread - 1] == '\n')
{
/* Remove the newline. */
buf[nread - 1] = '\0';
if (tty_changed)
/* Write the newline that was not echoed. */
putc ('\n', out);
}
}
/* Restore the original setting. */
if (tty_changed)
(void) tcsetattr (fileno (in), TCSAFLUSH|TCSASOFT, &s);
if (in != stdin)
/* We opened the terminal; now close it. */
fclose (in);
return buf;
}

114
lib/getstr.c Normal file
View File

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

19
lib/getstr.h Normal file
View File

@@ -0,0 +1,19 @@
#ifndef GETSTR_H_
# define GETSTR_H_ 1
# include <stdio.h>
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
int
getstr PARAMS ((char **lineptr, size_t *n, FILE *stream,
int delim1, int delim2,
size_t offset));
#endif

View File

@@ -1,5 +1,5 @@
/* getugroups.c -- return a list of the groups a user is in
Copyright (C) 1990, 1991, 1998, 1999 Free Software Foundation.
Copyright (C) 1990, 1991, 1998, 1999, 2000 Free Software Foundation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -57,7 +57,7 @@ getugroups (int maxcount, GETGROUPS_T *grouplist, char *username, gid_t gid)
register char **cp;
register int count = 0;
if (gid != -1)
if (gid != (gid_t) -1)
{
if (maxcount != 0)
grouplist[count] = gid;

View File

@@ -1,5 +1,5 @@
/* getusershell.c -- Return names of valid user shells.
Copyright (C) 1991, 1997 Free Software Foundation, Inc.
Copyright (C) 1991, 1997, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -22,12 +22,21 @@
#endif
#ifndef SHELLS_FILE
# ifndef __DJGPP__
/* File containing a list of nonrestricted shells, one per line. */
# define SHELLS_FILE "/etc/shells"
# define SHELLS_FILE "/etc/shells"
# else
/* This is a horrible kludge. Isn't there a better way? */
# define SHELLS_FILE "/dev/env/DJDIR/etc/shells"
# endif
#endif
#include <stdio.h>
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#include <ctype.h>
#include "xalloc.h"
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define IN_CTYPE_DOMAIN(c) 1
@@ -37,20 +46,19 @@
#define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (c))
#ifdef STDC_HEADERS
# include <stdlib.h>
#else
char *malloc ();
char *realloc ();
#endif
char *xstrdup ();
static int readname ();
#if ! defined ADDITIONAL_DEFAULT_SHELLS && defined __MSDOS__
# define ADDITIONAL_DEFAULT_SHELLS \
"c:/dos/command.com", "c:/windows/command.com", "c:/command.com",
#else
# define ADDITIONAL_DEFAULT_SHELLS /* empty */
#endif
/* List of shells to use if the shells file is missing. */
static char const* const default_shells[] =
{
ADDITIONAL_DEFAULT_SHELLS
"/bin/sh", "/bin/csh", "/usr/bin/sh", "/usr/bin/csh", NULL
};
@@ -108,10 +116,8 @@ void
setusershell ()
{
default_index = 0;
if (shellstream == NULL)
shellstream = fopen (SHELLS_FILE, "r");
else
fseek (shellstream, 0L, 0);
if (shellstream)
rewind (shellstream);
}
/* Close the shells file. */
@@ -126,39 +132,6 @@ endusershell ()
}
}
/* Allocate N bytes of memory dynamically, with error checking. */
static char *
xmalloc (n)
unsigned n;
{
char *p;
p = malloc (n);
if (p == 0)
{
fprintf (stderr, "virtual memory exhausted\n");
exit (1);
}
return p;
}
/* Reallocate space P to size N, with error checking. */
static char *
xrealloc (p, n)
char *p;
unsigned n;
{
p = realloc (p, n);
if (p == 0)
{
fprintf (stderr, "virtual memory exhausted\n");
exit (1);
}
return p;
}
/* Read a line from STREAM, removing any newline at the end.
Place the result in *NAME, which is malloc'd
and/or realloc'd as necessary and can start out NULL,

View File

@@ -1,5 +1,5 @@
/* getversion.c -- select backup filename type
Copyright (C) 1990, 1998 Free Software Foundation, Inc.
Copyright (C) 1990, 1998, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@@ -1,5 +1,5 @@
/* hash - hashing table processing.
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
Written by Jim Meyering, 1992.
This program is free software; you can redistribute it and/or modify
@@ -35,9 +35,16 @@ typedef enum {false = 0, true = 1} bool;
#include <stdio.h>
#include <assert.h>
#ifndef HAVE_DECL_FREE
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_FREE
void free ();
#endif
#ifndef HAVE_DECL_MALLOC
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_MALLOC
char *malloc ();
#endif
@@ -256,11 +263,12 @@ hash_get_first (const Hash_table *table)
return bucket->data;
assert (0);
return NULL;
}
/* Return the user data for the entry following ENTRY, where ENTRY has been
returned by a previous call to either `hash_get_first' or `hash_get_next'.
Return NULL if there is no more entries. */
Return NULL if there are no more entries. */
void *
hash_get_next (const Hash_table *table, const void *entry)
@@ -277,7 +285,7 @@ hash_get_next (const Hash_table *table, const void *entry)
return cursor->next->data;
/* Find first entry in any subsequent bucket. */
for (; bucket < table->bucket_limit; bucket++)
while (++bucket < table->bucket_limit)
if (bucket->data)
return bucket->data;
@@ -415,7 +423,7 @@ is_prime (unsigned long candidate)
divisor++;
}
return candidate % divisor != 0;
return (candidate % divisor ? true : false);
}
/* Round a given CANDIDATE number up to the nearest prime, and return that
@@ -716,7 +724,7 @@ hash_find_entry (Hash_table *table, const void *entry,
if (bucket->data == NULL)
return NULL;
/* Check if then entry is found as the bucket head. */
/* See if the entry is the first in the bucket. */
if ((*table->comparator) (entry, bucket->data))
{
void *data = bucket->data;
@@ -847,6 +855,7 @@ hash_rehash (Hash_table *table, unsigned candidate)
table->bucket_limit = new_table->bucket_limit;
table->n_buckets = new_table->n_buckets;
table->n_buckets_used = new_table->n_buckets_used;
table->free_entry_list = new_table->free_entry_list;
/* table->n_entries already holds its value. */
#if USE_OBSTACK
table->entry_stack = new_table->entry_stack;
@@ -936,7 +945,8 @@ hash_delete (Hash_table *table, const void *entry)
void *data;
struct hash_entry *bucket;
if (data = hash_find_entry (table, entry, &bucket, true), !data)
data = hash_find_entry (table, entry, &bucket, true);
if (!data)
return NULL;
table->n_entries--;

View File

@@ -1,5 +1,5 @@
/* human.c -- print human readable file size
Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -44,6 +44,9 @@
#endif
#ifndef HAVE_DECL_GETENV
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_GETENV
char *getenv ();
#endif
@@ -73,6 +76,23 @@ static const char suffixes[] =
'Y' /* Yotta */
};
/* If INEXACT_STYLE is not human_round_to_even, and if easily
possible, adjust VALUE according to the style. */
static double
adjust_value (enum human_inexact_style inexact_style, double value)
{
/* Do not use the floor or ceil functions, as that would mean
linking with the standard math library, which is a porting pain.
So leave the value alone if it is too large to easily round. */
if (inexact_style != human_round_to_even && value < (uintmax_t) -1)
{
uintmax_t u = value;
value = u + (inexact_style == human_ceiling && u != value);
}
return value;
}
/* Like human_readable_inexact, except always round to even. */
char *
human_readable (uintmax_t n, char *buf,
@@ -87,9 +107,8 @@ human_readable (uintmax_t n, char *buf,
N is expressed in units of FROM_BLOCK_SIZE. FROM_BLOCK_SIZE must
be nonnegative.
If OUTPUT_BLOCK_SIZE is positive, use units of OUTPUT_BLOCK_SIZE in
the output number. OUTPUT_BLOCK_SIZE must be a multiple of
FROM_BLOCK_SIZE or vice versa.
OUTPUT_BLOCK_SIZE must be nonzero. If it is positive, use units of
OUTPUT_BLOCK_SIZE in the output number.
Use INEXACT_STYLE to determine whether to take the ceiling or floor
of any result that cannot be expressed exactly.
@@ -145,57 +164,58 @@ human_readable_inexact (uintmax_t n, char *buf,
/* Adjust AMT out of FROM_BLOCK_SIZE units and into TO_BLOCK_SIZE units. */
if (to_block_size <= from_block_size)
{
int multiplier = from_block_size / to_block_size;
amt = n * multiplier;
{
int multiplier;
int divisor;
int r2;
int r10;
if (to_block_size <= from_block_size
? (from_block_size % to_block_size != 0
|| (multiplier = from_block_size / to_block_size,
(amt = n * multiplier) / multiplier != n))
: (from_block_size == 0
|| to_block_size % from_block_size != 0
|| (divisor = to_block_size / from_block_size,
r10 = (n % divisor) * 10,
r2 = (r10 % divisor) * 2,
amt = n / divisor,
tenths = r10 / divisor,
rounding = r2 < divisor ? 0 < r2 : 2 + (divisor < r2),
0)))
{
/* Either the result cannot be computed easily using uintmax_t,
or from_block_size is zero. Fall back on floating point.
FIXME: This can yield answers that are slightly off. */
if (amt / multiplier != n)
{
/* Overflow occurred during multiplication. We should use
multiple precision arithmetic here, but we'll be lazy and
resort to floating point. This can yield answers that
are slightly off. In practice it is quite rare to
overflow uintmax_t, so this is good enough for now. */
double damt = n * (from_block_size / (double) to_block_size);
double damt = n * (double) multiplier;
if (! base)
sprintf (buf, "%.0f", adjust_value (inexact_style, damt));
else
{
double e = 1;
power = 0;
if (! base)
sprintf (buf, "%.0f", damt);
else
{
double e = 1;
power = 0;
do
{
e *= base;
power++;
}
while (e * base <= damt && power < sizeof suffixes - 1);
do
{
e *= base;
power++;
}
while (e * base <= damt && power < sizeof suffixes - 1);
damt /= e;
damt /= e;
sprintf (buf, "%.1f%c", damt, suffixes[power]);
if (4 < strlen (buf))
sprintf (buf, "%.0f%c", damt, suffixes[power]);
}
return buf;
}
}
else if (from_block_size == 0)
amt = 0;
else
{
int divisor = to_block_size / from_block_size;
int r10 = (n % divisor) * 10;
int r2 = (r10 % divisor) * 2;
amt = n / divisor;
tenths = r10 / divisor;
rounding = r2 < divisor ? 0 < r2 : 2 + (divisor < r2);
}
sprintf (buf, "%.1f%c", adjust_value (inexact_style, damt),
suffixes[power]);
if (4 < strlen (buf))
sprintf (buf, "%.0f%c",
adjust_value (inexact_style, damt * 10) / 10,
suffixes[power]);
}
return buf;
}
}
/* Use power of BASE notation if adjusted AMT is large enough. */

262
lib/localcharset.c Normal file
View File

@@ -0,0 +1,262 @@
/* Determine a canonical name for the current locale's character encoding.
Copyright (C) 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
/* Written by Bruno Haible <haible@clisp.cons.org>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if HAVE_STDDEF_H
# include <stddef.h>
#endif
#include <stdio.h>
#if HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#if defined _WIN32 || defined __WIN32__
# undef WIN32 /* avoid warning on mingw32 */
# define WIN32
#endif
#ifndef WIN32
# if HAVE_LANGINFO_CODESET
# include <langinfo.h>
# else
# if HAVE_SETLOCALE
# include <locale.h>
# endif
# endif
#else /* WIN32 */
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
#endif
#ifndef DIRECTORY_SEPARATOR
# define DIRECTORY_SEPARATOR '/'
#endif
#ifndef ISSLASH
# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
#endif
/* The following static variable is declared 'volatile' to avoid a
possible multithread problem in the function get_charset_aliases. If we
are running in a threaded environment, and if two threads initialize
'charset_aliases' simultaneously, both will produce the same value,
and everything will be ok if the two assignments to 'charset_aliases'
are atomic. But I don't know what will happen if the two assignments mix. */
/* Pointer to the contents of the charset.alias file, if it has already been
read, else NULL. Its format is:
ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */
static char * volatile charset_aliases;
/* Return a pointer to the contents of the charset.alias file. */
static const char *
get_charset_aliases ()
{
char *cp;
cp = charset_aliases;
if (cp == NULL)
{
#ifndef WIN32
FILE *fp;
const char *dir = LIBDIR;
const char *base = "charset.alias";
char *file_name;
/* Concatenate dir and base into freshly allocated file_name. */
{
size_t dir_len = strlen (dir);
size_t base_len = strlen (base);
int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
if (file_name != NULL)
{
memcpy (file_name, dir, dir_len);
if (add_slash)
file_name[dir_len] = DIRECTORY_SEPARATOR;
memcpy (file_name + dir_len + add_slash, base, base_len + 1);
}
}
if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL)
/* Out of memory or file not found, treat it as empty. */
cp = "";
else
{
/* Parse the file's contents. */
int c;
char buf1[50+1];
char buf2[50+1];
char *res_ptr = NULL;
size_t res_size = 0;
size_t l1, l2;
for (;;)
{
c = getc (fp);
if (c == EOF)
break;
if (c == '\n' || c == ' ' || c == '\t')
continue;
if (c == '#')
{
/* Skip comment, to end of line. */
do
c = getc (fp);
while (!(c == EOF || c == '\n'));
if (c == EOF)
break;
continue;
}
ungetc (c, fp);
if (fscanf(fp, "%50s %50s", buf1, buf2) < 2)
break;
l1 = strlen (buf1);
l2 = strlen (buf2);
if (res_size == 0)
{
res_size = l1 + 1 + l2 + 1;
res_ptr = malloc (res_size + 1);
}
else
{
res_size += l1 + 1 + l2 + 1;
res_ptr = realloc (res_ptr, res_size + 1);
}
if (res_ptr == NULL)
{
/* Out of memory. */
res_size = 0;
break;
}
strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
strcpy (res_ptr + res_size - (l2 + 1), buf2);
}
fclose (fp);
if (res_size == 0)
cp = "";
else
{
*(res_ptr + res_size) = '\0';
cp = res_ptr;
}
}
if (file_name != NULL)
free (file_name);
#else /* WIN32 */
/* To avoid the troubles of installing a separate file in the same
directory as the DLL and of retrieving the DLL's directory at
runtime, simply inline the aliases here. */
cp = "CP936" "\0" "GBK" "\0"
"CP1361" "\0" "JOHAB" "\0";
#endif
charset_aliases = cp;
}
return cp;
}
/* Determine the current locale's character encoding, and canonicalize it
into one of the canonical names listed in config.charset.
The result must not be freed; it is statically allocated.
If the canonical name cannot be determined, the result is a non-canonical
name or NULL. */
#ifdef STATIC
STATIC
#endif
const char *
locale_charset ()
{
const char *codeset;
const char *aliases;
#ifndef WIN32
# if HAVE_LANGINFO_CODESET
/* Most systems support nl_langinfo (CODESET) nowadays. */
codeset = nl_langinfo (CODESET);
# else
/* On old systems which lack it, use setlocale and getenv. */
const char *locale = NULL;
# if HAVE_SETLOCALE
locale = setlocale (LC_CTYPE, NULL);
# endif
if (locale == NULL || locale[0] == '\0')
{
locale = getenv ("LC_ALL");
if (locale == NULL || locale[0] == '\0')
{
locale = getenv ("LC_CTYPE");
if (locale == NULL || locale[0] == '\0')
locale = getenv ("LANG");
}
}
/* On some old systems, one used to set locale = "iso8859_1". On others,
you set it to "language_COUNTRY.charset". In any case, we resolve it
through the charset.alias file. */
codeset = locale;
# endif
#else /* WIN32 */
static char buf[2 + 10 + 1];
/* Win32 has a function returning the locale's codepage as a number. */
sprintf (buf, "CP%u", GetACP ());
codeset = buf;
#endif
if (codeset != NULL && codeset[0] != '\0')
{
/* Resolve alias. */
for (aliases = get_charset_aliases ();
*aliases != '\0';
aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
if (!strcmp (codeset, aliases))
{
codeset = aliases + strlen (aliases) + 1;
break;
}
}
return codeset;
}

View File

@@ -1,5 +1,5 @@
/* Utility to accept --help and --version options as unobtrusively as possible.
Copyright (C) 1993, 1994, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1993, 1994, 1998, 1999, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,7 +23,10 @@
#include <stdio.h>
#include <getopt.h>
#include "closeout.h"
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#include "long-options.h"
#include "version-etc.h"
@@ -71,8 +74,6 @@ parse_long_options (int argc,
case 'v':
version_etc (stdout, command_name, package, version, authors);
close_stdout (); /* FIXME: output failure exit status
should be settable via an arg. */
exit (0);
default:

View File

@@ -1,5 +1,5 @@
/* makepath.c -- Ensure that a directory path exists.
Copyright (C) 1990, 1997, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1990, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -50,6 +50,10 @@ char *alloca ();
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif
#ifndef S_IRWXUGO
# define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO)
#endif
#if STDC_HEADERS
# include <stdlib.h>
#endif
@@ -110,13 +114,9 @@ extern int errno;
# define _(Text) Text
#endif
#ifdef __MSDOS__
typedef int uid_t;
typedef int gid_t;
#endif
#include "save-cwd.h"
#include "error.h"
#include "quote.h"
void strip_trailing_slashes ();
@@ -148,10 +148,10 @@ void strip_trailing_slashes ();
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. */
Note that if DIR already exists, this function returns zero
(indicating success) and sets *CREATED_DIR_P to zero. */
static int
int
make_dir (const char *dir, const char *dirpath, mode_t mode, int *created_dir_p)
{
int fail = 0;
@@ -174,12 +174,13 @@ make_dir (const char *dir, const char *dirpath, mode_t mode, int *created_dir_p)
if (stat (dir, &stats))
{
error (0, saved_errno, _("cannot create directory `%s'"), dirpath);
error (0, saved_errno, _("cannot create directory %s"),
quote (dirpath));
fail = 1;
}
else 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"), quote (dirpath));
fail = 1;
}
else
@@ -308,7 +309,7 @@ make_path (const char *argpath,
if (newly_created_dir)
{
if (verbose_fmt_string)
error (0, 0, verbose_fmt_string, dirpath);
error (0, 0, verbose_fmt_string, quote (dirpath));
if ((owner != (uid_t) -1 || group != (gid_t) -1)
&& chown (basename_dir, owner, group)
@@ -317,7 +318,8 @@ make_path (const char *argpath,
#endif
)
{
error (0, errno, "%s", dirpath);
error (0, errno, _("cannot change owner and/or group of %s"),
quote (dirpath));
CLEANUP;
return 1;
}
@@ -338,7 +340,8 @@ 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"),
quote (dirpath));
CLEANUP;
return 1;
}
@@ -367,7 +370,7 @@ make_path (const char *argpath,
umask (oldmask);
if (verbose_fmt_string != NULL)
error (0, 0, verbose_fmt_string, dirpath);
error (0, 0, verbose_fmt_string, quote (dirpath));
if (owner != (uid_t) -1 || group != (gid_t) -1)
{
@@ -377,18 +380,24 @@ make_path (const char *argpath,
#endif
)
{
error (0, errno, _("cannot chown %s"), dirpath);
retval = 1;
}
/* chown may have turned off some permission bits we wanted. */
if ((mode & (S_ISUID | S_ISGID | S_ISVTX))
&& chmod (basename_dir, mode))
{
error (0, errno, _("cannot chmod %s"), dirpath);
error (0, errno, _("cannot change owner and/or group of %s"),
quote (dirpath));
retval = 1;
}
}
/* The above chown may have turned off some permission bits in MODE.
Another reason we may have to use chmod here is that mkdir(2) is
required to honor only the file permission bits. In particular,
it need not honor the `special' bits, so if MODE includes any
special bits, set them here. */
if ((mode & ~S_IRWXUGO)
&& chmod (basename_dir, mode))
{
error (0, errno, _("cannot change permissions of %s"), quote (dirpath));
retval = 1;
}
CLEANUP_CWD;
/* If the mode for leading directories didn't include owner "wx"
@@ -399,7 +408,8 @@ make_path (const char *argpath,
*(p->dirname_end) = '\0';
if (chmod (dirpath, parent_mode))
{
error (0, errno, "%s", dirpath);
error (0, errno, "cannot change permissions of %s",
quote (dirpath));
retval = 1;
}
}
@@ -412,7 +422,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"), quote (dirpath));
return 1;
}
@@ -431,12 +441,14 @@ make_path (const char *argpath,
#endif
)
{
error (0, errno, "%s", dirpath);
error (0, errno, _("cannot change owner and/or group of %s"),
quote (dirpath));
retval = 1;
}
if (chmod (dirpath, mode))
{
error (0, errno, "%s", dirpath);
error (0, errno, _("cannot change permissions of %s"),
quote (dirpath));
retval = 1;
}
}

View File

@@ -14,3 +14,9 @@ make_path PARAMS ((const char *_argpath,
gid_t _group,
int _preserve_existing,
const char *_verbose_fmt_string));
int
make_dir PARAMS ((const char *dir,
const char *dirpath,
mode_t mode,
int *created_dir_p));

213
lib/mbswidth.c Normal file
View File

@@ -0,0 +1,213 @@
/* Determine the number of screen columns needed for a string.
Copyright (C) 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Bruno Haible <haible@clisp.cons.org>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/* Get MB_LEN_MAX. */
#if HAVE_LIMITS_H
# include <limits.h>
#endif
/* Get MB_CUR_MAX. */
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#if HAVE_STRING_H
# include <string.h>
#endif
/* Get isprint(). */
#include <ctype.h>
/* Get mbstate_t, mbrtowc(), mbsinit(), wcwidth(). */
#if HAVE_WCHAR_H
# include <wchar.h>
#endif
/* Get iswprint(). */
#if HAVE_WCTYPE_H
# include <wctype.h>
#endif
#if !defined iswprint && !HAVE_ISWPRINT
# define iswprint(wc) 1
#endif
/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */
#if HAVE_MBRTOWC && defined mbstate_t
# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
# define mbsinit(ps) 1
#endif
#ifndef HAVE_DECL_WCWIDTH
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_WCWIDTH
int wcwidth ();
#endif
#ifndef wcwidth
# if !HAVE_WCWIDTH
/* wcwidth doesn't exist, so assume all printable characters have
width 1. */
# define wcwidth(wc) ((wc) == 0 ? 0 : iswprint (wc) ? 1 : -1)
# endif
#endif
/* Get ISPRINT. */
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define IN_CTYPE_DOMAIN(c) 1
#else
# define IN_CTYPE_DOMAIN(c) isascii(c)
#endif
/* Undefine to protect against the definition in wctype.h of solaris2.6. */
#undef ISPRINT
#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c))
#include "mbswidth.h"
/* Returns the number of columns needed to represent the multibyte
character string pointed to by STRING. If a non-printable character
occurs, -1 is returned, unless MBSW_ACCEPT_UNPRINTABLE is specified.
With flags = 0, this is the multibyte analogon of the wcswidth function. */
int
mbswidth (const char *string, int flags)
{
return mbsnwidth (string, strlen (string), flags);
}
/* Returns the number of columns needed to represent the multibyte
character string pointed to by STRING of length NBYTES. If a
non-printable character occurs, -1 is returned, unless
MBSW_ACCEPT_UNPRINTABLE is specified. */
int
mbsnwidth (const char *string, size_t nbytes, int flags)
{
const char *p = string;
const char *plimit = p + nbytes;
int width;
width = 0;
#if HAVE_MBRTOWC && (MB_LEN_MAX > 1)
if (MB_CUR_MAX > 1)
{
while (p < plimit)
switch (*p)
{
case ' ': case '!': case '"': case '#': case '%':
case '&': case '\'': case '(': case ')': case '*':
case '+': case ',': case '-': case '.': case '/':
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
case ':': case ';': case '<': case '=': case '>':
case '?':
case 'A': case 'B': case 'C': case 'D': case 'E':
case 'F': case 'G': case 'H': case 'I': case 'J':
case 'K': case 'L': case 'M': case 'N': case 'O':
case 'P': case 'Q': case 'R': case 'S': case 'T':
case 'U': case 'V': case 'W': case 'X': case 'Y':
case 'Z':
case '[': case '\\': case ']': case '^': case '_':
case 'a': case 'b': case 'c': case 'd': case 'e':
case 'f': case 'g': case 'h': case 'i': case 'j':
case 'k': case 'l': case 'm': case 'n': case 'o':
case 'p': case 'q': case 'r': case 's': case 't':
case 'u': case 'v': case 'w': case 'x': case 'y':
case 'z': case '{': case '|': case '}': case '~':
/* These characters are printable ASCII characters. */
p++;
width++;
break;
default:
/* If we have a multibyte sequence, scan it up to its end. */
{
mbstate_t mbstate;
memset (&mbstate, 0, sizeof mbstate);
do
{
wchar_t wc;
size_t bytes;
int w;
bytes = mbrtowc (&wc, p, plimit - p, &mbstate);
if (bytes == (size_t) -1)
/* An invalid multibyte sequence was encountered. */
{
if (flags & MBSW_ACCEPT_INVALID)
{
p++;
width++;
break;
}
else
return -1;
}
if (bytes == (size_t) -2)
/* An incomplete multibyte character at the end. */
{
if (flags & MBSW_ACCEPT_INVALID)
{
p = plimit;
width++;
break;
}
else
return -1;
}
if (bytes == 0)
/* A null wide character was encountered. */
bytes = 1;
w = wcwidth (wc);
if (w >= 0)
/* A printable multibyte character. */
width += w;
else
/* An unprintable multibyte character. */
if (flags & MBSW_ACCEPT_UNPRINTABLE)
width += 1;
else
return -1;
p += bytes;
}
while (! mbsinit (&mbstate));
}
break;
}
return width;
}
#endif
while (p < plimit)
{
unsigned char c = (unsigned char) *p++;
if ((flags & MBSW_ACCEPT_UNPRINTABLE) || ISPRINT (c))
width++;
else
return -1;
}
return width;
}

41
lib/mbswidth.h Normal file
View File

@@ -0,0 +1,41 @@
/* Determine the number of screen columns needed for a string.
Copyright (C) 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef PARAMS
# if defined PROTOTYPES || defined __STDC__
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
/* Optional flags to influence mbswidth/mbsnwidth behavior. */
/* If this bit is set, assume invalid characters have width 0.
Otherwise, return -1 upon finding an invalid or incomplete character. */
#define MBSW_ACCEPT_INVALID 1
/* If this bit is set, assume unprintable characters have width 1.
Otherwise, return -1 upon finding a non-printable character. */
#define MBSW_ACCEPT_UNPRINTABLE 2
/* Returns the number of screen columns needed for STRING. */
extern int mbswidth PARAMS ((const char *string, int flags));
/* Returns the number of screen columns needed for the NBYTES bytes
starting at BUF. */
extern int mbsnwidth PARAMS ((const char *buf, size_t nbytes, int flags));

View File

@@ -304,19 +304,16 @@ md5_process_block (buffer, len, ctx)
{ \
a += FF (b, c, d) + (*cwp++ = SWAP (*words)) + T; \
++words; \
CYCLIC (a, s); \
a = rol (a, s); \
a += b; \
} \
while (0)
/* It is unfortunate that C does not provide an operator for
cyclic rotation. Hope the C compiler is smart enough. */
#define CYCLIC(w, s) (w = (w << s) | (w >> (32 - s)))
/* Before we start, one word to the strange constants.
They are defined in RFC 1321 as
T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64
T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64, or
perl -e 'foreach(1..64){printf "0x%08x\n", int (4294967296 * abs (sin $_))}'
*/
/* Round 1. */
@@ -345,7 +342,7 @@ md5_process_block (buffer, len, ctx)
do \
{ \
a += f (b, c, d) + correct_words[k] + T; \
CYCLIC (a, s); \
a = rol (a, s); \
a += b; \
} \
while (0)

View File

@@ -143,4 +143,19 @@ extern int md5_stream __P ((FILE *stream, void *resblock));
digest. */
extern void *md5_buffer __P ((const char *buffer, size_t len, void *resblock));
/* The following is from gnupg-1.0.2's cipher/bithelp.h. */
/* Rotate a 32 bit integer by n bytes */
#if defined __GNUC__ && defined __i386__
static inline md5_uint32
rol(md5_uint32 x, int n)
{
__asm__("roll %%cl,%0"
:"=r" (x)
:"0" (x),"c" (n));
return x;
}
#else
# define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) )
#endif
#endif

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1993, 1997, 1999 Free Software Foundation, Inc.
/* Copyright (C) 1991,93,96,97,99,2000 Free Software Foundation, Inc.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
with help from Dan Sahlin (dan@sics.se) and
commentary by Jim Blandy (jimb@ai.mit.edu);
@@ -34,11 +34,18 @@ USA. */
# define __ptr_t char *
#endif /* C++ or ANSI C. */
#if defined (_LIBC)
#if defined _LIBC
# include <string.h>
# include <memcopy.h>
#else
# define reg_char char
#endif
#if defined (HAVE_LIMITS_H) || defined (_LIBC)
#if HAVE_STDLIB_H || defined _LIBC
# include <stdlib.h>
#endif
#if HAVE_LIMITS_H || defined _LIBC
# include <limits.h>
#endif
@@ -49,21 +56,28 @@ USA. */
#endif
#include <sys/types.h>
#if HAVE_BP_SYM_H || defined _LIBC
# include <bp-sym.h>
#else
# define BP_SYM(sym) sym
#endif
#undef memchr
#undef __memchr
/* Search no more than N bytes of S for C. */
__ptr_t
memchr (s, c, n)
__memchr (s, c_in, n)
const __ptr_t s;
int c;
int c_in;
size_t n;
{
const unsigned char *char_ptr;
const unsigned long int *longword_ptr;
unsigned long int longword, magic_bits, charmask;
unsigned reg_char c;
c = (unsigned char) c;
c = (unsigned char) c_in;
/* Handle the first few characters by reading one character at a time.
Do this until CHAR_PTR is aligned on a longword boundary. */
@@ -197,3 +211,6 @@ memchr (s, c, n)
return 0;
}
#ifdef weak_alias
weak_alias (__memchr, BP_SYM (memchr))
#endif

View File

@@ -49,6 +49,11 @@
#ifdef _LIBC
# include <memcopy.h>
# include <endian.h>
# if __BYTE_ORDER == __BIG_ENDIAN
# define WORDS_BIGENDIAN
# endif
#else /* Not in the GNU C library. */

View File

@@ -21,6 +21,8 @@
# include <config.h>
#endif
#include <sys/types.h>
#if HAVE_STRING_H
# include <string.h>
#endif

209
lib/memrchr.c Normal file
View File

@@ -0,0 +1,209 @@
/* memrchr -- find the last occurrence of a byte in a memory block
Copyright (C) 1991, 93, 96, 97, 99, 2000 Free Software Foundation, Inc.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
with help from Dan Sahlin (dan@sics.se) and
commentary by Jim Blandy (jimb@ai.mit.edu);
adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
and implemented by Roland McGrath (roland@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.
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.
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>
#endif
#include <stdlib.h>
#undef __ptr_t
#if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
# define __ptr_t void *
#else /* Not C++ or ANSI C. */
# define __ptr_t char *
#endif /* C++ or ANSI C. */
#if defined (_LIBC)
# include <string.h>
# include <memcopy.h>
#else
# define reg_char char
#endif
#if defined (HAVE_LIMITS_H) || defined (_LIBC)
# include <limits.h>
#endif
#define LONG_MAX_32_BITS 2147483647
#ifndef LONG_MAX
# define LONG_MAX LONG_MAX_32_BITS
#endif
#include <sys/types.h>
#undef __memrchr
#undef memrchr
#ifndef weak_alias
# define __memrchr memrchr
#endif
/* Search no more than N bytes of S for C. */
__ptr_t
__memrchr (s, c_in, n)
const __ptr_t s;
int c_in;
size_t n;
{
const unsigned char *char_ptr;
const unsigned long int *longword_ptr;
unsigned long int longword, magic_bits, charmask;
unsigned reg_char c;
c = (unsigned char) c_in;
/* Handle the last few characters by reading one character at a time.
Do this until CHAR_PTR is aligned on a longword boundary. */
for (char_ptr = (const unsigned char *) s + n;
n > 0 && ((unsigned long int) char_ptr
& (sizeof (longword) - 1)) != 0;
--n)
if (*--char_ptr == c)
return (__ptr_t) char_ptr;
/* All these elucidatory comments refer to 4-byte longwords,
but the theory applies equally well to 8-byte longwords. */
longword_ptr = (unsigned long int *) char_ptr;
/* Bits 31, 24, 16, and 8 of this number are zero. Call these bits
the "holes." Note that there is a hole just to the left of
each byte, with an extra at the end:
bits: 01111110 11111110 11111110 11111111
bytes: AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD
The 1-bits make sure that carries propagate to the next 0-bit.
The 0-bits provide holes for carries to fall into. */
if (sizeof (longword) != 4 && sizeof (longword) != 8)
abort ();
#if LONG_MAX <= LONG_MAX_32_BITS
magic_bits = 0x7efefeff;
#else
magic_bits = ((unsigned long int) 0x7efefefe << 32) | 0xfefefeff;
#endif
/* Set up a longword, each of whose bytes is C. */
charmask = c | (c << 8);
charmask |= charmask << 16;
#if LONG_MAX > LONG_MAX_32_BITS
charmask |= charmask << 32;
#endif
/* Instead of the traditional loop which tests each character,
we will test a longword at a time. The tricky part is testing
if *any of the four* bytes in the longword in question are zero. */
while (n >= sizeof (longword))
{
/* We tentatively exit the loop if adding MAGIC_BITS to
LONGWORD fails to change any of the hole bits of LONGWORD.
1) Is this safe? Will it catch all the zero bytes?
Suppose there is a byte with all zeros. Any carry bits
propagating from its left will fall into the hole at its
least significant bit and stop. Since there will be no
carry from its most significant bit, the LSB of the
byte to the left will be unchanged, and the zero will be
detected.
2) Is this worthwhile? Will it ignore everything except
zero bytes? Suppose every byte of LONGWORD has a bit set
somewhere. There will be a carry into bit 8. If bit 8
is set, this will carry into bit 16. If bit 8 is clear,
one of bits 9-15 must be set, so there will be a carry
into bit 16. Similarly, there will be a carry into bit
24. If one of bits 24-30 is set, there will be a carry
into bit 31, so all of the hole bits will be changed.
The one misfire occurs when bits 24-30 are clear and bit
31 is set; in this case, the hole at bit 31 is not
changed. If we had access to the processor carry flag,
we could close this loophole by putting the fourth hole
at bit 32!
So it ignores everything except 128's, when they're aligned
properly.
3) But wait! Aren't we looking for C, not zero?
Good point. So what we do is XOR LONGWORD with a longword,
each of whose bytes is C. This turns each byte that is C
into a zero. */
longword = *--longword_ptr ^ charmask;
/* Add MAGIC_BITS to LONGWORD. */
if ((((longword + magic_bits)
/* Set those bits that were unchanged by the addition. */
^ ~longword)
/* Look at only the hole bits. If any of the hole bits
are unchanged, most likely one of the bytes was a
zero. */
& ~magic_bits) != 0)
{
/* Which of the bytes was C? If none of them were, it was
a misfire; continue the search. */
const unsigned char *cp = (const unsigned char *) longword_ptr;
#if LONG_MAX > 2147483647
if (cp[7] == c)
return (__ptr_t) &cp[7];
if (cp[6] == c)
return (__ptr_t) &cp[6];
if (cp[5] == c)
return (__ptr_t) &cp[5];
if (cp[4] == c)
return (__ptr_t) &cp[4];
#endif
if (cp[3] == c)
return (__ptr_t) &cp[3];
if (cp[2] == c)
return (__ptr_t) &cp[2];
if (cp[1] == c)
return (__ptr_t) &cp[1];
if (cp[0] == c)
return (__ptr_t) cp;
}
n -= sizeof (longword);
}
char_ptr = (const unsigned char *) longword_ptr;
while (n-- > 0)
{
if (*--char_ptr == c)
return (__ptr_t) char_ptr;
}
return 0;
}
#ifdef weak_alias
weak_alias (__memrchr, memrchr)
#endif

View File

@@ -1,108 +0,0 @@
/* BSD compatible make directory function for System V
Copyright (C) 1988, 1990, 1998 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#if STAT_MACROS_BROKEN
# undef S_ISDIR
#endif
#if !defined(S_ISDIR) && defined(S_IFDIR)
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif
#ifndef S_IRWXU
# define S_IRWXU 0700
#endif
#ifndef S_IRWXG
# define S_IRWXG 0070
#endif
#ifndef S_IRWXO
# define S_IRWXO 0007
#endif
/* mkdir adapted from GNU tar. */
/* Make directory DPATH, with permission mode DMODE.
Written by Robert Rother, Mariah Corporation, August 1985
(sdcsvax!rmr or rmr@uscd). If you want it, it's yours.
Severely hacked over by John Gilmore to make a 4.2BSD compatible
subroutine. 11Mar86; hoptoad!gnu
Modified by rmtodd@uokmax 6-28-87 -- when making an already existing dir,
subroutine didn't return EEXIST. It does now. */
int
mkdir (const char *dpath, mode_t dmode)
{
pid_t cpid;
mode_t mode;
int status;
struct stat statbuf;
if (stat (dpath, &statbuf) == 0)
{
errno = EEXIST; /* stat worked, so it already exists. */
return -1;
}
/* If stat fails for a reason other than non-existence, return error. */
if (errno != ENOENT)
return -1;
cpid = fork ();
switch (cpid)
{
case -1: /* Cannot fork. */
return -1; /* errno is already set. */
case 0: /* Child process. */
/* Cheap hack to set mode of new directory. Since this child
process is going away anyway, we zap its umask.
This won't suffice to set SUID, SGID, etc. on this
directory, so the parent process calls chmod afterward. */
mode = umask (0); /* Get current umask. */
/* Set for mkdir. */
umask (mode | ((S_IRWXU | S_IRWXG | S_IRWXO) & ~dmode));
execl ("/bin/mkdir", "mkdir", dpath, (char *) 0);
_exit (1);
default: /* Parent process. */
/* Wait for kid to finish. */
while (wait (&status) != cpid)
/* Do nothing. */ ;
if (status)
{
/* /bin/mkdir failed. */
errno = EIO;
return -1;
}
return chmod (dpath, dmode);
}
}

View File

@@ -1,5 +1,5 @@
/* modechange.c -- file mode manipulation
Copyright (C) 1989, 1990, 1997-2000 Free Software Foundation, Inc.
Copyright (C) 1989, 1990, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -50,50 +50,65 @@ char *malloc ();
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif
/* The traditional octal values corresponding to each mode bit. */
#define SUID 04000
#define SGID 02000
#define SVTX 01000
#define RUSR 00400
#define WUSR 00200
#define XUSR 00100
#define RGRP 00040
#define WGRP 00020
#define XGRP 00010
#define ROTH 00004
#define WOTH 00002
#define XOTH 00001
#define ALLM 07777 /* all octal mode bits */
#ifndef S_ISUID
# define S_ISUID 04000
# define S_ISUID SUID
#endif
#ifndef S_ISGID
# define S_ISGID 04000
# define S_ISGID SGID
#endif
#ifndef S_ISVTX
# define S_ISVTX 01000
# define S_ISVTX SVTX
#endif
#ifndef S_IRUSR
# define S_IRUSR 0400
# define S_IRUSR RUSR
#endif
#ifndef S_IWUSR
# define S_IWUSR 0200
# define S_IWUSR WUSR
#endif
#ifndef S_IXUSR
# define S_IXUSR 0100
# define S_IXUSR XUSR
#endif
#ifndef S_IRGRP
# define S_IRGRP 0040
# define S_IRGRP RGRP
#endif
#ifndef S_IWGRP
# define S_IWGRP 0020
# define S_IWGRP WGRP
#endif
#ifndef S_IXGRP
# define S_IXGRP 0010
# define S_IXGRP XGRP
#endif
#ifndef S_IROTH
# define S_IROTH 0004
# define S_IROTH ROTH
#endif
#ifndef S_IWOTH
# define S_IWOTH 0002
# define S_IWOTH WOTH
#endif
#ifndef S_IXOTH
# define S_IXOTH 0001
# define S_IXOTH XOTH
#endif
#ifndef S_IRWXU
# define S_IRWXU 0700
# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR)
#endif
#ifndef S_IRWXG
# define S_IRWXG 0070
# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP)
#endif
#ifndef S_IRWXO
# define S_IRWXO 0007
# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH)
#endif
/* All the mode bits that can be affected by chmod. */
@@ -157,8 +172,7 @@ mode_compile (const char *mode_string, unsigned int masked_ops)
{
struct mode_change *head; /* First element of the linked list. */
struct mode_change *tail; /* An element of the linked list. */
uintmax_t mode_value; /* The mode value, if octal. */
char *string_end; /* Pointer to end of parsed value. */
unsigned long octal_value; /* The mode value, if octal. */
mode_t umask_value; /* The umask value (surprise). */
head = NULL;
@@ -166,12 +180,34 @@ mode_compile (const char *mode_string, unsigned int masked_ops)
tail = NULL;
#endif
if (xstrtoumax (mode_string, &string_end, 8, &mode_value, "") == LONGINT_OK)
if (xstrtoul (mode_string, NULL, 8, &octal_value, "") == LONGINT_OK)
{
struct mode_change *p;
if (mode_value != (mode_value & CHMOD_MODE_BITS))
mode_t mode;
if (octal_value != (octal_value & ALLM))
return MODE_INVALID;
p = make_node_op_equals ((mode_t) mode_value);
/* Help the compiler optimize the usual case where mode_t uses
the traditional octal representation. */
mode = ((S_ISUID == SUID && S_ISGID == SGID && S_ISVTX == SVTX
&& S_IRUSR == RUSR && S_IWUSR == WUSR && S_IXUSR == XUSR
&& S_IRGRP == RGRP && S_IWGRP == WGRP && S_IXGRP == XGRP
&& S_IROTH == ROTH && S_IWOTH == WOTH && S_IXOTH == XOTH)
? octal_value
: ((octal_value & SUID ? S_ISUID : 0)
| (octal_value & SGID ? S_ISGID : 0)
| (octal_value & SVTX ? S_ISVTX : 0)
| (octal_value & RUSR ? S_IRUSR : 0)
| (octal_value & WUSR ? S_IWUSR : 0)
| (octal_value & XUSR ? S_IXUSR : 0)
| (octal_value & RGRP ? S_IRGRP : 0)
| (octal_value & WGRP ? S_IWGRP : 0)
| (octal_value & XGRP ? S_IXGRP : 0)
| (octal_value & ROTH ? S_IROTH : 0)
| (octal_value & WOTH ? S_IWOTH : 0)
| (octal_value & XOTH ? S_IXOTH : 0)));
p = make_node_op_equals (mode);
if (p == NULL)
return MODE_MEMORY_EXHAUSTED;
mode_append_entry (&head, &tail, p);
@@ -393,7 +429,7 @@ mode_adjust (mode_t oldmode, const struct mode_change *changes)
/* In order to change only `u', `g', or `o' permissions,
or some combination thereof, clear unselected bits.
This can not be done in mode_compile because the value
This cannot be done in mode_compile because the value
to which the `changes->affected' mask is applied depends
on the old mode of each file. */
value &= changes->affected;

View File

@@ -1,5 +1,5 @@
/* mountlist.c -- return a list of mounted filesystems
Copyright (C) 1991, 1992, 1997, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1991, 1992, 1997-2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -40,7 +40,6 @@ char *strstr ();
char *xmalloc ();
char *xrealloc ();
char *xstrdup ();
void error ();
#include <errno.h>
#ifndef errno
@@ -85,6 +84,11 @@ extern int errno;
# include <sys/fs_types.h>
#endif
#ifdef MOUNTED_FS_STAT_DEV /* BeOS. */
# include <fs_info.h>
# include <dirent.h>
#endif
#ifdef MOUNTED_FREAD /* SVR2. */
# include <mnttab.h>
#endif
@@ -256,7 +260,7 @@ static char *
fsp_to_string (const struct statfs *fsp)
{
# if defined HAVE_F_FSTYPENAME_IN_STATFS
return fsp->f_fstypename;
return (char *) (fsp->f_fstypename);
# else
return fstype_to_string (fsp->f_type);
# endif
@@ -413,6 +417,111 @@ read_filesystem_list (int need_fs_type)
}
#endif /* MOUNTED_GETMNT. */
#if defined (MOUNTED_FS_STAT_DEV) /* BeOS */
{
/* The next_dev() and fs_stat_dev() system calls give the list of
all filesystems, including the information returned by statvfs()
(fs type, total blocks, free blocks etc.), but without the mount
point. But on BeOS all filesystems except / are mounted in the
rootfs, directly under /.
The directory name of the mount point is often, but not always,
identical to the volume name of the device.
We therefore get the list of subdirectories of /, and the list
of all filesystems, and match the two lists. */
DIR *dirp;
struct rootdir_entry
{
char *name;
dev_t dev;
ino_t ino;
struct rootdir_entry *next;
};
struct rootdir_entry *rootdir_list;
struct rootdir_entry **rootdir_tail;
int32 pos;
dev_t dev;
fs_info fi;
/* All volumes are mounted in the rootfs, directly under /. */
rootdir_list = NULL;
rootdir_tail = &rootdir_list;
dirp = opendir ("/");
if (dirp)
{
struct dirent *d;
while ((d = readdir (dirp)) != NULL)
{
char *name;
struct stat statbuf;
if (strcmp (d->d_name, "..") == 0)
continue;
if (strcmp (d->d_name, ".") == 0)
name = xstrdup ("/");
else
{
name = xmalloc (1 + strlen (d->d_name) + 1);
name[0] = '/';
strcpy (name + 1, d->d_name);
}
if (lstat (name, &statbuf) >= 0 && S_ISDIR (statbuf.st_mode))
{
struct rootdir_entry *re;
re = (struct rootdir_entry *) xmalloc (sizeof (struct rootdir_entry));
re->name = name;
re->dev = statbuf.st_dev;
re->ino = statbuf.st_ino;
/* Add to the linked list. */
*rootdir_tail = re;
rootdir_tail = &re->next;
}
else
free (name);
}
closedir (dirp);
}
*rootdir_tail = NULL;
for (pos = 0; (dev = next_dev (&pos)) >= 0; )
if (fs_stat_dev (dev, &fi) >= 0)
{
/* Note: fi.dev == dev. */
struct rootdir_entry *re;
for (re = rootdir_list; re; re = re->next)
if (re->dev == fi.dev && re->ino == fi.root)
break;
me = (struct mount_entry *) xmalloc (sizeof (struct mount_entry));
me->me_devname = xstrdup (fi.device_name[0] != '\0' ? fi.device_name : fi.fsh_name);
me->me_mountdir = xstrdup (re != NULL ? re->name : fi.fsh_name);
me->me_type = xstrdup (fi.fsh_name);
me->me_dev = fi.dev;
me->me_dummy = 0;
me->me_remote = (fi.flags & B_FS_IS_SHARED) != 0;
/* Add to the linked list. */
*mtail = me;
mtail = &me->me_next;
}
*mtail = NULL;
while (rootdir_list != NULL)
{
struct rootdir_entry *re = rootdir_list;
rootdir_list = re->next;
free (re->name);
free (re);
}
}
#endif /* MOUNTED_FS_STAT_DEV */
#if defined (MOUNTED_GETFSSTAT) /* __alpha running OSF_1 */
{
int numsys, counter, bufsize;
@@ -615,6 +724,8 @@ read_filesystem_list (int need_fs_type)
for (thisent = entries; thisent < entries + bufsize;
thisent += vmp->vmt_length)
{
char *options, *ignore;
vmp = (struct vmount *) thisent;
me = (struct mount_entry *) xmalloc (sizeof (struct mount_entry));
if (vmp->vmt_flags & MNT_REMOTE)
@@ -638,7 +749,12 @@ read_filesystem_list (int need_fs_type)
}
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);
options = thisent + vmp->vmt_data[VMT_ARGS].vmt_off;
ignore = strstr (options, "ignore");
me->me_dummy = (ignore
&& (ignore == options || ignore[-1] == ',')
&& (ignore[sizeof "ignore" - 1] == ','
|| ignore[sizeof "ignore" - 1] == '\0'));
me->me_dev = (dev_t) -1; /* vmt_fsid might be the info we want. */
/* Add to the linked list. */

View File

@@ -1,5 +1,5 @@
/* mountlist.h -- declarations for list of mounted filesystems
Copyright (C) 1991, 1992, 1998 Free Software Foundation, Inc.
Copyright (C) 1991, 1992, 1998, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -39,7 +39,10 @@ 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"))
(!strcmp (fs_type, "auto") \
|| !strcmp (fs_type, "autofs") \
/* for Irix 6.5 */ \
|| !strcmp (fs_type, "ignore"))
#endif
#ifndef ME_REMOTE

View File

@@ -18,6 +18,11 @@
/* written by Jim Meyering */
#include <config.h>
/* Undefine nanosleep here so any prototype is not redefined to be a
prototype for rpl_nanosleep. (they'd conflict e.g., on alpha-dec-osf3.2) */
#undef nanosleep
#include <stdio.h>
#include <sys/types.h>
#include <signal.h>
@@ -31,6 +36,13 @@ extern int errno;
# include <unistd.h>
#endif
/* Some systems (MSDOS) don't have SIGCONT.
Using SIGTERM here turns the signal-handling code below
into a no-op on such systems. */
#ifndef SIGCONT
# define SIGCONT SIGTERM
#endif
#include "nanosleep.h"
static int suspended;
@@ -58,8 +70,8 @@ my_usleep (const struct timespec *ts_delay)
/* FIXME: comment */
int
nanosleep (const struct timespec *requested_delay,
struct timespec *remaining_delay)
rpl_nanosleep (const struct timespec *requested_delay,
struct timespec *remaining_delay)
{
#ifdef SA_NOCLDSTOP
struct sigaction oldact, newact;

View File

@@ -17,17 +17,7 @@
#if ! defined NANOSLEEP_H
# define NANOSLEEP_H
# if HAVE_CONFIG_H
# include <config.h>
# endif
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
/* You must include config.h before including this file. */
# include <sys/types.h>
# if TIME_WITH_SYS_TIME
@@ -50,8 +40,10 @@ struct timespec
};
# endif
int
nanosleep PARAMS ((const struct timespec *requested_delay,
struct timespec *remaining_delay));
# if ! HAVE_DECL_NANOSLEEP
/* Don't specify a prototype here. Some systems (e.g., OSF) declare
nanosleep with a conflicting one (const-less first parameter). */
int nanosleep ();
# endif
#endif

View File

@@ -1,5 +1,5 @@
/* obstack.c - subroutines used implicitly by object stack macros
Copyright (C) 1988,89,90,91,92,93,94,96 Free Software Foundation, Inc.
Copyright (C) 1988-1994,96,97,98,99,2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in /gd/gnu/lib.
@@ -19,6 +19,10 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "obstack.h"
/* NOTE BEFORE MODIFYING THIS FILE: This version number must be
@@ -37,60 +41,62 @@
#include <stdio.h> /* Random thing to get __GNU_LIBRARY__. */
#if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1
#include <gnu-versions.h>
#if _GNU_OBSTACK_INTERFACE_VERSION == OBSTACK_INTERFACE_VERSION
#define ELIDE_CODE
#endif
# include <gnu-versions.h>
# if _GNU_OBSTACK_INTERFACE_VERSION == OBSTACK_INTERFACE_VERSION
# define ELIDE_CODE
# endif
#endif
#ifndef ELIDE_CODE
#if defined (__STDC__) && __STDC__
#define POINTER void *
#else
#define POINTER char *
#endif
# if defined (__STDC__) && __STDC__
# define POINTER void *
# else
# define POINTER char *
# endif
/* Determine default alignment. */
struct fooalign {char x; double d;};
#define DEFAULT_ALIGNMENT \
# define DEFAULT_ALIGNMENT \
((PTR_INT_TYPE) ((char *) &((struct fooalign *) 0)->d - (char *) 0))
/* If malloc were really smart, it would round addresses to DEFAULT_ALIGNMENT.
But in fact it might be less smart and round addresses to as much as
DEFAULT_ROUNDING. So we prepare for it to do that. */
union fooround {long x; double d;};
#define DEFAULT_ROUNDING (sizeof (union fooround))
# define DEFAULT_ROUNDING (sizeof (union fooround))
/* When we copy a long block of data, this is the unit to do it with.
On some machines, copying successive ints does not work;
in such a case, redefine COPYING_UNIT to `long' (if that works)
or `char' as a last resort. */
#ifndef COPYING_UNIT
#define COPYING_UNIT int
#endif
# ifndef COPYING_UNIT
# define COPYING_UNIT int
# endif
/* The functions allocating more room by calling `obstack_chunk_alloc'
jump to the handler pointed to by `obstack_alloc_failed_handler'.
This variable by default points to the internal function
This can be set to a user defined function which should either
abort gracefully or use longjump - but shouldn't return. This
variable by default points to the internal function
`print_and_abort'. */
#if defined (__STDC__) && __STDC__
# if defined (__STDC__) && __STDC__
static void print_and_abort (void);
void (*obstack_alloc_failed_handler) (void) = print_and_abort;
#else
# else
static void print_and_abort ();
void (*obstack_alloc_failed_handler) () = print_and_abort;
#endif
# endif
/* Exit value used when `print_and_abort' is used. */
#if defined __GNU_LIBRARY__ || defined HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifndef EXIT_FAILURE
#define EXIT_FAILURE 1
#endif
# if defined __GNU_LIBRARY__ || defined HAVE_STDLIB_H
# include <stdlib.h>
# endif
# ifndef EXIT_FAILURE
# define EXIT_FAILURE 1
# endif
int obstack_exit_failure = EXIT_FAILURE;
/* The non-GNU-C macros copy the obstack into this global variable
@@ -104,33 +110,33 @@ struct obstack *_obstack;
For free, do not use ?:, since some compilers, like the MIPS compilers,
do not allow (expr) ? void : void. */
#if defined (__STDC__) && __STDC__
#define CALL_CHUNKFUN(h, size) \
# if defined (__STDC__) && __STDC__
# define CALL_CHUNKFUN(h, size) \
(((h) -> use_extra_arg) \
? (*(h)->chunkfun) ((h)->extra_arg, (size)) \
: (*(struct _obstack_chunk *(*) (long)) (h)->chunkfun) ((size)))
#define CALL_FREEFUN(h, old_chunk) \
# define CALL_FREEFUN(h, old_chunk) \
do { \
if ((h) -> use_extra_arg) \
(*(h)->freefun) ((h)->extra_arg, (old_chunk)); \
else \
(*(void (*) (void *)) (h)->freefun) ((old_chunk)); \
} while (0)
#else
#define CALL_CHUNKFUN(h, size) \
# else
# define CALL_CHUNKFUN(h, size) \
(((h) -> use_extra_arg) \
? (*(h)->chunkfun) ((h)->extra_arg, (size)) \
: (*(struct _obstack_chunk *(*) ()) (h)->chunkfun) ((size)))
#define CALL_FREEFUN(h, old_chunk) \
# define CALL_FREEFUN(h, old_chunk) \
do { \
if ((h) -> use_extra_arg) \
(*(h)->freefun) ((h)->extra_arg, (old_chunk)); \
else \
(*(void (*) ()) (h)->freefun) ((old_chunk)); \
} while (0)
#endif
# endif
/* Initialize an obstack H for use. Specify chunk size SIZE (0 means default).
@@ -138,27 +144,26 @@ struct obstack *_obstack;
CHUNKFUN is the function to use to allocate chunks,
and FREEFUN the function to free them.
Return nonzero if successful, zero if out of memory.
To recover from an out of memory error,
free up some memory, then call this again. */
Return nonzero if successful, calls obstack_alloc_failed_handler if
allocation fails. */
int
_obstack_begin (h, size, alignment, chunkfun, freefun)
struct obstack *h;
int size;
int alignment;
#if defined (__STDC__) && __STDC__
# if defined (__STDC__) && __STDC__
POINTER (*chunkfun) (long);
void (*freefun) (void *);
#else
# else
POINTER (*chunkfun) ();
void (*freefun) ();
#endif
# endif
{
register struct _obstack_chunk *chunk; /* points to new chunk */
if (alignment == 0)
alignment = DEFAULT_ALIGNMENT;
alignment = (int) DEFAULT_ALIGNMENT;
if (size == 0)
/* Default size is what GNU malloc can fit in a 4096-byte block. */
{
@@ -176,13 +181,13 @@ _obstack_begin (h, size, alignment, chunkfun, freefun)
size = 4096 - extra;
}
#if defined (__STDC__) && __STDC__
# if defined (__STDC__) && __STDC__
h->chunkfun = (struct _obstack_chunk * (*)(void *, long)) chunkfun;
h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
#else
# else
h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun;
h->freefun = freefun;
#endif
# endif
h->chunk_size = size;
h->alignment_mask = alignment - 1;
h->use_extra_arg = 0;
@@ -205,19 +210,19 @@ _obstack_begin_1 (h, size, alignment, chunkfun, freefun, arg)
struct obstack *h;
int size;
int alignment;
#if defined (__STDC__) && __STDC__
# if defined (__STDC__) && __STDC__
POINTER (*chunkfun) (POINTER, long);
void (*freefun) (POINTER, POINTER);
#else
# else
POINTER (*chunkfun) ();
void (*freefun) ();
#endif
# endif
POINTER arg;
{
register struct _obstack_chunk *chunk; /* points to new chunk */
if (alignment == 0)
alignment = DEFAULT_ALIGNMENT;
alignment = (int) DEFAULT_ALIGNMENT;
if (size == 0)
/* Default size is what GNU malloc can fit in a 4096-byte block. */
{
@@ -235,13 +240,13 @@ _obstack_begin_1 (h, size, alignment, chunkfun, freefun, arg)
size = 4096 - extra;
}
#if defined(__STDC__) && __STDC__
# if defined(__STDC__) && __STDC__
h->chunkfun = (struct _obstack_chunk * (*)(void *,long)) chunkfun;
h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
#else
# else
h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun;
h->freefun = freefun;
#endif
# endif
h->chunk_size = size;
h->alignment_mask = alignment - 1;
h->extra_arg = arg;
@@ -274,12 +279,13 @@ _obstack_newchunk (h, length)
register struct _obstack_chunk *old_chunk = h->chunk;
register struct _obstack_chunk *new_chunk;
register long new_size;
register int obj_size = h->next_free - h->object_base;
register int i;
int already;
register long obj_size = h->next_free - h->object_base;
register long i;
long already;
char *object_base;
/* Compute size for new chunk. */
new_size = (obj_size + length) + (obj_size >> 3) + 100;
new_size = (obj_size + length) + (obj_size >> 3) + h->alignment_mask + 100;
if (new_size < h->chunk_size)
new_size = h->chunk_size;
@@ -291,6 +297,11 @@ _obstack_newchunk (h, length)
new_chunk->prev = old_chunk;
new_chunk->limit = h->chunk_limit = (char *) new_chunk + new_size;
/* Compute an aligned object_base in the new chunk */
object_base =
__INT_TO_PTR ((__PTR_TO_INT (new_chunk->contents) + h->alignment_mask)
& ~ (h->alignment_mask));
/* Move the existing object to the new chunk.
Word at a time is fast and is safe if the object
is sufficiently aligned. */
@@ -298,7 +309,7 @@ _obstack_newchunk (h, length)
{
for (i = obj_size / sizeof (COPYING_UNIT) - 1;
i >= 0; i--)
((COPYING_UNIT *)new_chunk->contents)[i]
((COPYING_UNIT *)object_base)[i]
= ((COPYING_UNIT *)h->object_base)[i];
/* We used to copy the odd few remaining bytes as one extra COPYING_UNIT,
but that can cross a page boundary on a machine
@@ -309,7 +320,7 @@ _obstack_newchunk (h, length)
already = 0;
/* Copy remaining bytes one by one. */
for (i = already; i < obj_size; i++)
new_chunk->contents[i] = h->object_base[i];
object_base[i] = h->object_base[i];
/* If the object just copied was the only data in OLD_CHUNK,
free that chunk and remove it from the chain.
@@ -320,7 +331,7 @@ _obstack_newchunk (h, length)
CALL_FREEFUN (h, old_chunk);
}
h->object_base = new_chunk->contents;
h->object_base = object_base;
h->next_free = h->object_base + obj_size;
/* The new chunk certainly contains no empty object yet. */
h->maybe_empty_object = 0;
@@ -330,11 +341,11 @@ _obstack_newchunk (h, length)
This is here for debugging.
If you use it in a program, you are probably losing. */
#if defined (__STDC__) && __STDC__
# if defined (__STDC__) && __STDC__
/* Suppress -Wmissing-prototypes warning. We don't want to declare this in
obstack.h because it is just for debugging. */
int _obstack_allocated_p (struct obstack *h, POINTER obj);
#endif
# endif
int
_obstack_allocated_p (h, obj)
@@ -359,7 +370,7 @@ _obstack_allocated_p (h, obj)
/* Free objects in obstack H, including OBJ and everything allocate
more recently than OBJ. If OBJ is zero, free everything in H. */
#undef obstack_free
# undef obstack_free
/* This function has two names with identical definitions.
This is the first one, called from non-ANSI code. */
@@ -445,32 +456,37 @@ _obstack_memory_used (h)
}
/* Define the error handler. */
#ifndef _
# ifdef HAVE_LIBINTL_H
# include <libintl.h>
# ifndef _
# define _(Str) gettext (Str)
# ifndef _
# if defined HAVE_LIBINTL_H || defined _LIBC
# include <libintl.h>
# ifndef _
# define _(Str) gettext (Str)
# endif
# else
# define _(Str) (Str)
# endif
# else
# define _(Str) (Str)
# endif
#endif
# if defined _LIBC && defined USE_IN_LIBIO
# include <libio/iolibio.h>
# define fputs(s, f) _IO_fputs (s, f)
# endif
static void
print_and_abort ()
{
fputs (_("memory exhausted\n"), stderr);
fputs (_("memory exhausted"), stderr);
fputc ('\n', stderr);
exit (obstack_exit_failure);
}
#if 0
# if 0
/* These are now turned off because the applications do not use it
and it uses bcopy via obstack_grow, which causes trouble on sysV. */
/* Now define the functional versions of the obstack macros.
Define them to simply use the corresponding macros to do the job. */
#if defined (__STDC__) && __STDC__
# if defined (__STDC__) && __STDC__
/* These function definitions do not work with non-ANSI preprocessors;
they won't pass through the macro names in parentheses. */
@@ -508,20 +524,20 @@ int (obstack_make_room) (obstack, length)
return obstack_make_room (obstack, length);
}
void (obstack_grow) (obstack, pointer, length)
void (obstack_grow) (obstack, data, length)
struct obstack *obstack;
POINTER pointer;
const POINTER data;
int length;
{
obstack_grow (obstack, pointer, length);
obstack_grow (obstack, data, length);
}
void (obstack_grow0) (obstack, pointer, length)
void (obstack_grow0) (obstack, data, length)
struct obstack *obstack;
POINTER pointer;
const POINTER data;
int length;
{
obstack_grow0 (obstack, pointer, length);
obstack_grow0 (obstack, data, length);
}
void (obstack_1grow) (obstack, character)
@@ -565,24 +581,24 @@ POINTER (obstack_alloc) (obstack, length)
return obstack_alloc (obstack, length);
}
POINTER (obstack_copy) (obstack, pointer, length)
POINTER (obstack_copy) (obstack, address, length)
struct obstack *obstack;
POINTER pointer;
const POINTER address;
int length;
{
return obstack_copy (obstack, pointer, length);
return obstack_copy (obstack, address, length);
}
POINTER (obstack_copy0) (obstack, pointer, length)
POINTER (obstack_copy0) (obstack, address, length)
struct obstack *obstack;
POINTER pointer;
const POINTER address;
int length;
{
return obstack_copy0 (obstack, pointer, length);
return obstack_copy0 (obstack, address, length);
}
#endif /* __STDC__ */
# endif /* __STDC__ */
#endif /* 0 */
# endif /* 0 */
#endif /* !ELIDE_CODE */

View File

@@ -1,10 +1,11 @@
/* obstack.h - object stack macros
Copyright (C) 1988,89,90,91,92,93,94,96,97 Free Software Foundation, Inc.
Copyright (C) 1988,89,90,91,92,93,94,96,97,98,99 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.
Bugs can be reported to bug-glibc@gnu.org.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -13,11 +14,11 @@
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.
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
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
@@ -118,45 +119,39 @@ extern "C" {
may ignore the byte-within-word field of the pointer. */
#ifndef __PTR_TO_INT
#define __PTR_TO_INT(P) ((P) - (char *) 0)
# define __PTR_TO_INT(P) ((P) - (char *) 0)
#endif
#ifndef __INT_TO_PTR
#define __INT_TO_PTR(P) ((P) + (char *) 0)
# define __INT_TO_PTR(P) ((P) + (char *) 0)
#endif
/* We need the type of the resulting object. In ANSI C it is ptrdiff_t
but in traditional C it is usually long. If we are in ANSI C and
don't already have ptrdiff_t get it. */
/* We need the type of the resulting object. If __PTRDIFF_TYPE__ is
defined, as with GNU C, use that; that way we don't pollute the
namespace with <stddef.h>'s symbols. Otherwise, if <stddef.h> is
available, include it and use ptrdiff_t. In traditional C, long is
the best that we can do. */
#if defined (__STDC__) && __STDC__ && ! defined (offsetof)
#if defined (__GNUC__) && defined (IN_GCC)
/* On Next machine, the system's stddef.h screws up if included
after we have defined just ptrdiff_t, so include all of stddef.h.
Otherwise, define just ptrdiff_t, which is all we need. */
#ifndef __NeXT__
#define __need_ptrdiff_t
#endif
#endif
#include <stddef.h>
#endif
#if defined (__STDC__) && __STDC__
#define PTR_INT_TYPE ptrdiff_t
#ifdef __PTRDIFF_TYPE__
# define PTR_INT_TYPE __PTRDIFF_TYPE__
#else
#define PTR_INT_TYPE long
# ifdef HAVE_STDDEF_H
# include <stddef.h>
# define PTR_INT_TYPE ptrdiff_t
# else
# define PTR_INT_TYPE long
# endif
#endif
#if defined (_LIBC) || defined (HAVE_STRING_H)
#include <string.h>
#define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
#if defined _LIBC || defined HAVE_STRING_H
# include <string.h>
# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
#else
#ifdef memcpy
#define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
#else
#define _obstack_memcpy(To, From, N) bcopy ((From), (To), (N))
#endif
# ifdef memcpy
# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
# else
# define _obstack_memcpy(To, From, N) bcopy ((From), (To), (N))
# endif
#endif
struct _obstack_chunk /* Lives at front of each chunk. */
@@ -175,7 +170,7 @@ struct obstack /* control current object in current chunk */
char *chunk_limit; /* address of char after current chunk */
PTR_INT_TYPE temp; /* Temporary for some macros. */
int alignment_mask; /* Mask of alignment for each object. */
#if defined (__STDC__) && __STDC__
#if defined __STDC__ && __STDC__
/* These prototypes vary based on `use_extra_arg', and we use
casts to the prototypeless function type in all assignments,
but having prototypes here quiets -Wstrict-prototypes. */
@@ -199,7 +194,7 @@ struct obstack /* control current object in current chunk */
/* Declare the external functions we use; they are in obstack.c. */
#if defined (__STDC__) && __STDC__
#if defined __STDC__ && __STDC__
extern void _obstack_newchunk (struct obstack *, int);
extern void _obstack_free (struct obstack *, void *);
extern int _obstack_begin (struct obstack *, int, int,
@@ -216,7 +211,7 @@ extern int _obstack_begin_1 ();
extern int _obstack_memory_used ();
#endif
#if defined (__STDC__) && __STDC__
#if defined __STDC__ && __STDC__
/* Do the function-declarations after the structs
but before defining the macros. */
@@ -225,18 +220,18 @@ void obstack_init (struct obstack *obstack);
void * obstack_alloc (struct obstack *obstack, int size);
void * obstack_copy (struct obstack *obstack, void *address, int size);
void * obstack_copy0 (struct obstack *obstack, void *address, int size);
void * obstack_copy (struct obstack *obstack, const void *address, int size);
void * obstack_copy0 (struct obstack *obstack, const void *address, int size);
void obstack_free (struct obstack *obstack, void *block);
void obstack_blank (struct obstack *obstack, int size);
void obstack_grow (struct obstack *obstack, void *data, int size);
void obstack_grow0 (struct obstack *obstack, void *data, int size);
void obstack_grow (struct obstack *obstack, const void *data, int size);
void obstack_grow0 (struct obstack *obstack, const void *data, int size);
void obstack_1grow (struct obstack *obstack, int data_char);
void obstack_ptr_grow (struct obstack *obstack, void *data);
void obstack_ptr_grow (struct obstack *obstack, const void *data);
void obstack_int_grow (struct obstack *obstack, int data);
void * obstack_finish (struct obstack *obstack);
@@ -246,7 +241,7 @@ int obstack_object_size (struct obstack *obstack);
int obstack_room (struct obstack *obstack);
void obstack_make_room (struct obstack *obstack, int size);
void obstack_1grow_fast (struct obstack *obstack, int data_char);
void obstack_ptr_grow_fast (struct obstack *obstack, void *data);
void obstack_ptr_grow_fast (struct obstack *obstack, const void *data);
void obstack_int_grow_fast (struct obstack *obstack, int data);
void obstack_blank_fast (struct obstack *obstack, int size);
@@ -262,9 +257,10 @@ int obstack_memory_used (struct obstack *obstack);
so we do not declare them. */
/* Error handler called when `obstack_chunk_alloc' failed to allocate
more memory. This can be set to a user defined function. The
default action is to print a message and abort. */
#if defined (__STDC__) && __STDC__
more memory. This can be set to a user defined function which
should either abort gracefully or use longjump - but shouldn't
return. The default action is to print a message and abort. */
#if defined __STDC__ && __STDC__
extern void (*obstack_alloc_failed_handler) (void);
#else
extern void (*obstack_alloc_failed_handler) ();
@@ -293,53 +289,60 @@ extern int obstack_exit_failure;
/* To prevent prototype warnings provide complete argument list in
standard C version. */
#if defined (__STDC__) && __STDC__
#if defined __STDC__ && __STDC__
#define obstack_init(h) \
_obstack_begin ((h), 0, 0, \
(void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free)
# define obstack_init(h) \
_obstack_begin ((h), 0, 0, \
(void *(*) (long)) obstack_chunk_alloc, \
(void (*) (void *)) obstack_chunk_free)
#define obstack_begin(h, size) \
_obstack_begin ((h), (size), 0, \
(void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free)
# define obstack_begin(h, size) \
_obstack_begin ((h), (size), 0, \
(void *(*) (long)) obstack_chunk_alloc, \
(void (*) (void *)) obstack_chunk_free)
#define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
_obstack_begin ((h), (size), (alignment), \
(void *(*) (long)) (chunkfun), (void (*) (void *)) (freefun))
# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
_obstack_begin ((h), (size), (alignment), \
(void *(*) (long)) (chunkfun), \
(void (*) (void *)) (freefun))
#define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
_obstack_begin_1 ((h), (size), (alignment), \
(void *(*) (void *, long)) (chunkfun), \
# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
_obstack_begin_1 ((h), (size), (alignment), \
(void *(*) (void *, long)) (chunkfun), \
(void (*) (void *, void *)) (freefun), (arg))
#define obstack_chunkfun(h, newchunkfun) \
# define obstack_chunkfun(h, newchunkfun) \
((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun))
#define obstack_freefun(h, newfreefun) \
# define obstack_freefun(h, newfreefun) \
((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun))
#else
#define obstack_init(h) \
_obstack_begin ((h), 0, 0, \
(void *(*) ()) obstack_chunk_alloc, (void (*) ()) obstack_chunk_free)
# define obstack_init(h) \
_obstack_begin ((h), 0, 0, \
(void *(*) ()) obstack_chunk_alloc, \
(void (*) ()) obstack_chunk_free)
#define obstack_begin(h, size) \
_obstack_begin ((h), (size), 0, \
(void *(*) ()) obstack_chunk_alloc, (void (*) ()) obstack_chunk_free)
# define obstack_begin(h, size) \
_obstack_begin ((h), (size), 0, \
(void *(*) ()) obstack_chunk_alloc, \
(void (*) ()) obstack_chunk_free)
#define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
_obstack_begin ((h), (size), (alignment), \
(void *(*) ()) (chunkfun), (void (*) ()) (freefun))
# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
_obstack_begin ((h), (size), (alignment), \
(void *(*) ()) (chunkfun), \
(void (*) ()) (freefun))
#define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
_obstack_begin_1 ((h), (size), (alignment), \
(void *(*) ()) (chunkfun), (void (*) ()) (freefun), (arg))
# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
_obstack_begin_1 ((h), (size), (alignment), \
(void *(*) ()) (chunkfun), \
(void (*) ()) (freefun), (arg))
#define obstack_chunkfun(h, newchunkfun) \
# define obstack_chunkfun(h, newchunkfun) \
((h) -> chunkfun = (struct _obstack_chunk *(*)()) (newchunkfun))
#define obstack_freefun(h, newfreefun) \
# define obstack_freefun(h, newfreefun) \
((h) -> freefun = (void (*)()) (newfreefun))
#endif
@@ -350,30 +353,30 @@ extern int obstack_exit_failure;
#define obstack_memory_used(h) _obstack_memory_used (h)
#if defined (__GNUC__) && defined (__STDC__) && __STDC__
#if defined __GNUC__ && defined __STDC__ && __STDC__
/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
does not implement __extension__. But that compiler doesn't define
__GNUC_MINOR__. */
#if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
#define __extension__
#endif
# if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
# define __extension__
# endif
/* For GNU C, if not -traditional,
we can define these macros to compute all args only once
without using a global variable.
Also, we can avoid using the `temp' slot, to make faster code. */
#define obstack_object_size(OBSTACK) \
# define obstack_object_size(OBSTACK) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
(unsigned) (__o->next_free - __o->object_base); })
#define obstack_room(OBSTACK) \
# define obstack_room(OBSTACK) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
(unsigned) (__o->chunk_limit - __o->next_free); })
#define obstack_make_room(OBSTACK,length) \
# define obstack_make_room(OBSTACK,length) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
int __len = (length); \
@@ -381,33 +384,33 @@ __extension__ \
_obstack_newchunk (__o, __len); \
(void) 0; })
#define obstack_empty_p(OBSTACK) \
# define obstack_empty_p(OBSTACK) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
(__o->chunk->prev == 0 && __o->next_free - __o->chunk->contents == 0); })
#define obstack_grow(OBSTACK,where,length) \
# define obstack_grow(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
int __len = (length); \
if (__o->next_free + __len > __o->chunk_limit) \
_obstack_newchunk (__o, __len); \
_obstack_memcpy (__o->next_free, (char *) (where), __len); \
_obstack_memcpy (__o->next_free, (where), __len); \
__o->next_free += __len; \
(void) 0; })
#define obstack_grow0(OBSTACK,where,length) \
# define obstack_grow0(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
int __len = (length); \
if (__o->next_free + __len + 1 > __o->chunk_limit) \
_obstack_newchunk (__o, __len + 1); \
_obstack_memcpy (__o->next_free, (char *) (where), __len); \
_obstack_memcpy (__o->next_free, (where), __len); \
__o->next_free += __len; \
*(__o->next_free)++ = 0; \
(void) 0; })
#define obstack_1grow(OBSTACK,datum) \
# define obstack_1grow(OBSTACK,datum) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + 1 > __o->chunk_limit) \
@@ -415,30 +418,33 @@ __extension__ \
*(__o->next_free)++ = (datum); \
(void) 0; })
/* These assume that the obstack alignment is good enough for pointers or ints,
and that the data added so far to the current object
/* These assume that the obstack alignment is good enough for pointers
or ints, and that the data added so far to the current object
shares that much alignment. */
#define obstack_ptr_grow(OBSTACK,datum) \
# define obstack_ptr_grow(OBSTACK,datum) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + sizeof (void *) > __o->chunk_limit) \
_obstack_newchunk (__o, sizeof (void *)); \
*((void **)__o->next_free)++ = ((void *)datum); \
*((void **)__o->next_free)++ = (datum); \
(void) 0; })
#define obstack_int_grow(OBSTACK,datum) \
# define obstack_int_grow(OBSTACK,datum) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + sizeof (int) > __o->chunk_limit) \
_obstack_newchunk (__o, sizeof (int)); \
*((int *)__o->next_free)++ = ((int)datum); \
*((int *)__o->next_free)++ = (datum); \
(void) 0; })
#define obstack_ptr_grow_fast(h,aptr) (*((void **) (h)->next_free)++ = (void *)aptr)
#define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
# define obstack_ptr_grow_fast(h,aptr) \
(*((void **) (h)->next_free)++ = (aptr))
#define obstack_blank(OBSTACK,length) \
# define obstack_int_grow_fast(h,aint) \
(*((int *) (h)->next_free)++ = (aint))
# define obstack_blank(OBSTACK,length) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
int __len = (length); \
@@ -447,19 +453,19 @@ __extension__ \
__o->next_free += __len; \
(void) 0; })
#define obstack_alloc(OBSTACK,length) \
# define obstack_alloc(OBSTACK,length) \
__extension__ \
({ struct obstack *__h = (OBSTACK); \
obstack_blank (__h, (length)); \
obstack_finish (__h); })
#define obstack_copy(OBSTACK,where,length) \
# define obstack_copy(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__h = (OBSTACK); \
obstack_grow (__h, (where), (length)); \
obstack_finish (__h); })
#define obstack_copy0(OBSTACK,where,length) \
# define obstack_copy0(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__h = (OBSTACK); \
obstack_grow0 (__h, (where), (length)); \
@@ -467,7 +473,7 @@ __extension__ \
/* The local variable is named __o1 to avoid a name conflict
when obstack_blank is called. */
#define obstack_finish(OBSTACK) \
# define obstack_finish(OBSTACK) \
__extension__ \
({ struct obstack *__o1 = (OBSTACK); \
void *value; \
@@ -483,23 +489,23 @@ __extension__ \
__o1->object_base = __o1->next_free; \
value; })
#define obstack_free(OBSTACK, OBJ) \
# define obstack_free(OBSTACK, OBJ) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
void *__obj = (OBJ); \
if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit) \
__o->next_free = __o->object_base = __obj; \
__o->next_free = __o->object_base = (char *)__obj; \
else (obstack_free) (__o, __obj); })
#else /* not __GNUC__ or not __STDC__ */
#define obstack_object_size(h) \
# define obstack_object_size(h) \
(unsigned) ((h)->next_free - (h)->object_base)
#define obstack_room(h) \
# define obstack_room(h) \
(unsigned) ((h)->chunk_limit - (h)->next_free)
#define obstack_empty_p(h) \
# define obstack_empty_p(h) \
((h)->chunk->prev == 0 && (h)->next_free - (h)->chunk->contents == 0)
/* Note that the call to _obstack_newchunk is enclosed in (..., 0)
@@ -508,60 +514,63 @@ __extension__ \
Casting the third operand to void was tried before,
but some compilers won't accept it. */
#define obstack_make_room(h,length) \
# define obstack_make_room(h,length) \
( (h)->temp = (length), \
(((h)->next_free + (h)->temp > (h)->chunk_limit) \
? (_obstack_newchunk ((h), (h)->temp), 0) : 0))
#define obstack_grow(h,where,length) \
# define obstack_grow(h,where,length) \
( (h)->temp = (length), \
(((h)->next_free + (h)->temp > (h)->chunk_limit) \
? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
_obstack_memcpy ((h)->next_free, (char *) (where), (h)->temp), \
_obstack_memcpy ((h)->next_free, (where), (h)->temp), \
(h)->next_free += (h)->temp)
#define obstack_grow0(h,where,length) \
# define obstack_grow0(h,where,length) \
( (h)->temp = (length), \
(((h)->next_free + (h)->temp + 1 > (h)->chunk_limit) \
? (_obstack_newchunk ((h), (h)->temp + 1), 0) : 0), \
_obstack_memcpy ((h)->next_free, (char *) (where), (h)->temp), \
_obstack_memcpy ((h)->next_free, (where), (h)->temp), \
(h)->next_free += (h)->temp, \
*((h)->next_free)++ = 0)
#define obstack_1grow(h,datum) \
# define obstack_1grow(h,datum) \
( (((h)->next_free + 1 > (h)->chunk_limit) \
? (_obstack_newchunk ((h), 1), 0) : 0), \
(*((h)->next_free)++ = (datum)))
#define obstack_ptr_grow(h,datum) \
# define obstack_ptr_grow(h,datum) \
( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \
? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \
(*((char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = ((char *) datum)))
(*((const char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = (datum)))
#define obstack_int_grow(h,datum) \
# define obstack_int_grow(h,datum) \
( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \
? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \
(*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = ((int) datum)))
(*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = (datum)))
#define obstack_ptr_grow_fast(h,aptr) (*((char **) (h)->next_free)++ = (char *) aptr)
#define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
# define obstack_ptr_grow_fast(h,aptr) \
(*((const char **) (h)->next_free)++ = (aptr))
#define obstack_blank(h,length) \
# define obstack_int_grow_fast(h,aint) \
(*((int *) (h)->next_free)++ = (aint))
# define obstack_blank(h,length) \
( (h)->temp = (length), \
(((h)->chunk_limit - (h)->next_free < (h)->temp) \
? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
((h)->next_free += (h)->temp))
#define obstack_alloc(h,length) \
# define obstack_alloc(h,length) \
(obstack_blank ((h), (length)), obstack_finish ((h)))
#define obstack_copy(h,where,length) \
# define obstack_copy(h,where,length) \
(obstack_grow ((h), (where), (length)), obstack_finish ((h)))
#define obstack_copy0(h,where,length) \
# define obstack_copy0(h,where,length) \
(obstack_grow0 ((h), (where), (length)), obstack_finish ((h)))
#define obstack_finish(h) \
# define obstack_finish(h) \
( ((h)->next_free == (h)->object_base \
? (((h)->maybe_empty_object = 1), 0) \
: 0), \
@@ -575,21 +584,21 @@ __extension__ \
(h)->object_base = (h)->next_free, \
__INT_TO_PTR ((h)->temp))
#if defined (__STDC__) && __STDC__
#define obstack_free(h,obj) \
# if defined __STDC__ && __STDC__
# define obstack_free(h,obj) \
( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
(((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
? (int) ((h)->next_free = (h)->object_base \
= (h)->temp + (char *) (h)->chunk) \
: (((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0), 0)))
#else
#define obstack_free(h,obj) \
# else
# define obstack_free(h,obj) \
( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
(((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
? (int) ((h)->next_free = (h)->object_base \
= (h)->temp + (char *) (h)->chunk) \
: (_obstack_free ((h), (h)->temp + (char *) (h)->chunk), 0)))
#endif
# endif
#endif /* not __GNUC__ or not __STDC__ */

View File

@@ -1,5 +1,5 @@
/* path-concat.c -- concatenate two arbitrary pathnames
Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -26,12 +26,34 @@
#endif
#include <stdio.h>
#if HAVE_STRING_H
# include <string.h>
#endif
#include <sys/types.h>
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#else
# if HAVE_STRINGS_H
# include <strings.h>
# endif
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#ifndef HAVE_DECL_MALLOC
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_MALLOC
char *malloc ();
#endif
#ifndef strdup
char *strdup ();
#endif
#ifndef DIRECTORY_SEPARATOR
# define DIRECTORY_SEPARATOR '/'
@@ -83,10 +105,13 @@ path_concat (const char *dir, const char *base, char **base_in_result)
p = mempcpy (p_concat, dir, dir_len);
if (ISSLASH (*(p - 1)) && ISSLASH(*base))
--p;
else if (!ISSLASH (*(p - 1)) && !ISSLASH(*base))
*p++ = DIRECTORY_SEPARATOR;
if (dir_len > 0)
{
if (ISSLASH (*(p - 1)) && ISSLASH(*base))
--p;
else if (!ISSLASH (*(p - 1)) && !ISSLASH(*base))
*p++ = DIRECTORY_SEPARATOR;
}
if (base_in_result)
*base_in_result = p;

58
lib/physmem.c Normal file
View File

@@ -0,0 +1,58 @@
/* Calculate the size of physical memory.
Copyright 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Paul Eggert. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include "physmem.h"
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
/* Return the total amount of physical memory. */
double
physmem_total (void)
{
#if defined _SC_PHYS_PAGES && defined _SC_PAGESIZE
double pages = sysconf (_SC_PHYS_PAGES);
double pagesize = sysconf (_SC_PAGESIZE);
if (0 <= pages && 0 <= pagesize)
return pages * pagesize;
#endif
/* Guess 64 MB. It's probably an older host, so guess small. */
return 64 * 1024 * 1024;
}
/* Return the amount of physical memory available. */
double
physmem_available (void)
{
#if defined _SC_AVPHYS_PAGES && defined _SC_PAGESIZE
double pages = sysconf (_SC_AVPHYS_PAGES);
double pagesize = sysconf (_SC_PAGESIZE);
if (0 <= pages && 0 <= pagesize)
return pages * pagesize;
#endif
/* Guess 25% of physical memory. */
return physmem_total () / 4;
}

19
lib/physmem.h Normal file
View File

@@ -0,0 +1,19 @@
#ifndef PHYSMEM_H_
# define PHYSMEM_H_ 1
# if HAVE_CONFIG_H
# include <config.h>
# endif
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
double physmem_total PARAMS ((void));
double physmem_available PARAMS ((void));
#endif /* PHYSMEM_H_ */

View File

@@ -1,5 +1,5 @@
/* Parse dates for touch and date.
Copyright (C) 1989, 1990, 1991, 1998 Free Software Foundation Inc.
Copyright (C) 1989, 1990, 1991, 1998, 2000 Free Software Foundation Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,6 +23,9 @@
#endif
#include <stdio.h>
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#include <sys/types.h>
#if HAVE_STRING_H
# include <string.h>

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1994, 1997, 1998 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1994, 1997, 1998, 2000 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C
Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu.
@@ -17,14 +17,16 @@
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include <errno.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
/* Include errno.h *after* sys/types.h to work around header problems
on AIX 3.2.5. */
#include <errno.h>
/* 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). */

28
lib/quote.c Normal file
View File

@@ -0,0 +1,28 @@
/* Written by Paul Eggert <eggert@twinsun.com> */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if HAVE_STDDEF_H
# include <stddef.h> /* For the definition of size_t on windows w/MSVC. */
#endif
#include <sys/types.h>
#include <quotearg.h>
#include <quote.h>
/* Return an unambiguous printable representated, allocated in slot N,
for NAME, suitable for diagnostics. */
char const *
quote_n (int n, char const *name)
{
return quotearg_n_style (n, locale_quoting_style, name);
}
/* Return an unambiguous printable representation of NAME, suitable
for diagnostics. */
char const *
quote (char const *name)
{
return quote_n (0, name);
}

12
lib/quote.h Normal file
View File

@@ -0,0 +1,12 @@
/* prototypes for quote.c */
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
char const *quote_n PARAMS ((int n, char const *name));
char const *quote PARAMS ((char const *name));

View File

@@ -1,5 +1,5 @@
/* quotearg.c - quote arguments for output
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -21,17 +21,14 @@
# include <config.h>
#endif
#if HAVE_STDDEF_H
# include <stddef.h> /* For the definition of size_t on windows w/MSVC. */
#endif
#include <sys/types.h>
#include <quotearg.h>
#include <xalloc.h>
#include <ctype.h>
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define ISASCII(c) 1
#else
# define ISASCII(c) isascii (c)
#endif
#define ISPRINT(c) (ISASCII (c) && isprint (c))
#if ENABLE_NLS
# include <libintl.h>
@@ -39,6 +36,7 @@
#else
# define _(text) text
#endif
#define N_(text) text
#if HAVE_LIMITS_H
# include <limits.h>
@@ -50,6 +48,12 @@
# define UCHAR_MAX ((unsigned char) -1)
#endif
#if HAVE_C_BACKSLASH_A
# define ALERT_CHAR '\a'
#else
# define ALERT_CHAR '\7'
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
@@ -58,21 +62,48 @@
# include <string.h>
#endif
#if HAVE_WCTYPE_H
# include <wctype.h>
#if HAVE_WCHAR_H
# include <wchar.h>
#endif
#if HAVE_MBRTOWC && HAVE_WCHAR_H
# include <wchar.h>
#if HAVE_MBRTOWC
size_t mbrtowc ();
# ifdef mbstate_t
# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
# define mbsinit(ps) 1
# endif
#else
# define iswprint(wc) 1
# define mbrtowc(pwc, s, n, ps) 1
/* Disable multibyte processing entirely. Since MB_CUR_MAX is 1, the
other macros are defined only for documentation and to satisfy C
syntax. */
# undef MB_CUR_MAX
# define MB_CUR_MAX 1
# define mbrtowc(pwc, s, n, ps) ((*(pwc) = *(s)) != 0)
# define mbsinit(ps) 1
# define mbstate_t int
# define iswprint(wc) ISPRINT ((unsigned char) (wc))
#endif
#ifndef iswprint
# if HAVE_WCTYPE_H
# include <wctype.h>
# endif
# if !defined iswprint && !HAVE_ISWPRINT
# define iswprint(wc) 1
# endif
#endif
#define INT_BITS (sizeof (int) * CHAR_BIT)
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define IN_CTYPE_DOMAIN(c) 1
#else
# define IN_CTYPE_DOMAIN(c) isascii(c)
#endif
/* Undefine to protect against the definition in wctype.h of solaris2.6. */
#undef ISPRINT
#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c))
struct quoting_options
{
/* Basic quoting style. */
@@ -80,8 +111,7 @@ struct quoting_options
/* Quote the characters indicated by this bit vector even if the
quoting style would not normally require them to be quoted. */
int quote_these_too[((UCHAR_MAX + 1) / INT_BITS
+ ((UCHAR_MAX + 1) % INT_BITS != 0))];
int quote_these_too[(UCHAR_MAX / INT_BITS) + 1];
};
/* Names of quoting styles. */
@@ -93,6 +123,7 @@ char const *const quoting_style_args[] =
"c",
"escape",
"locale",
"clocale",
0
};
@@ -104,7 +135,8 @@ enum quoting_style const quoting_style_vals[] =
shell_always_quoting_style,
c_quoting_style,
escape_quoting_style,
locale_quoting_style
locale_quoting_style,
clocale_quoting_style
};
/* The default quoting options. */
@@ -153,6 +185,17 @@ set_char_quoting (struct quoting_options *o, char c, int i)
return r;
}
/* MSGID approximates a quotation mark. Return its translation if it
has one; otherwise, return either it or "\"", depending on S. */
static char const *
gettext_quote (char const *msgid, enum quoting_style s)
{
char const *translation = _(msgid);
if (translation == msgid && s == clocale_quoting_style)
translation = "\"";
return translation;
}
/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
argument ARG (of size ARGSIZE), using QUOTING_STYLE and the
non-quoting-style part of O to control quoting.
@@ -177,6 +220,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
char const *quote_string = 0;
size_t quote_string_len = 0;
int backslash_escapes = 0;
int unibyte_locale = MB_CUR_MAX == 1;
#define STORE(c) \
do \
@@ -201,11 +245,31 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
break;
case locale_quoting_style:
for (quote_string = _("`"); *quote_string; quote_string++)
STORE (*quote_string);
backslash_escapes = 1;
quote_string = _("'");
quote_string_len = strlen (quote_string);
case clocale_quoting_style:
{
/* Get translations for open and closing quotation marks.
The message catalog should translate "`" to a left
quotation mark suitable for the locale, and similarly for
"'". If the catalog has no translation,
locale_quoting_style quotes `like this', and
clocale_quoting_style quotes "like this".
For example, an American English Unicode locale should
translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
MARK). A British English Unicode locale should instead
translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. */
char const *left = gettext_quote (N_("`"), quoting_style);
char const *right = gettext_quote (N_("'"), quoting_style);
for (quote_string = left; *quote_string; quote_string++)
STORE (*quote_string);
backslash_escapes = 1;
quote_string = right;
quote_string_len = strlen (quote_string);
}
break;
case shell_always_quoting_style:
@@ -261,9 +325,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
}
break;
#if HAVE_C_BACKSLASH_A
case '\a': esc = 'a'; goto c_escape;
#endif
case ALERT_CHAR: esc = 'a'; goto c_escape;
case '\b': esc = 'b'; goto c_escape;
case '\f': esc = 'f'; goto c_escape;
case '\n': esc = 'n'; goto c_and_shell_escape;
@@ -344,57 +406,59 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
we can't easily escape single characters within it. */
{
/* Length of multibyte sequence found so far. */
size_t m = 0;
size_t m;
int printable = 1;
mbstate_t mbstate;
memset (&mbstate, 0, sizeof mbstate);
int printable;
if (argsize == (size_t) -1)
argsize = strlen (arg);
do
if (unibyte_locale)
{
wchar_t w;
size_t bytes = mbrtowc (&w, &arg[i + m],
argsize - (i + m), &mbstate);
if (bytes == 0)
break;
else if (bytes == (size_t) -1)
{
printable = 0;
break;
}
else if (bytes == (size_t) -2)
{
printable = 0;
while (i + m < argsize && arg[i + m])
m++;
break;
}
else
{
if (! iswprint (w))
printable = 0;
m += bytes;
}
m = 1;
printable = ISPRINT (c);
}
while (! mbsinit (&mbstate));
if (m <= 1)
else
{
/* Escape a unibyte character like a multibyte
sequence if using backslash escapes, and if the
character is not printable. */
m = backslash_escapes && ! ISPRINT (c);
printable = 0;
mbstate_t mbstate;
memset (&mbstate, 0, sizeof mbstate);
m = 0;
printable = 1;
if (argsize == (size_t) -1)
argsize = strlen (arg);
do
{
wchar_t w;
size_t bytes = mbrtowc (&w, &arg[i + m],
argsize - (i + m), &mbstate);
if (bytes == 0)
break;
else if (bytes == (size_t) -1)
{
printable = 0;
break;
}
else if (bytes == (size_t) -2)
{
printable = 0;
while (i + m < argsize && arg[i + m])
m++;
break;
}
else
{
if (! iswprint (w))
printable = 0;
m += bytes;
}
}
while (! mbsinit (&mbstate));
}
if (m)
if (1 < m || (backslash_escapes && ! printable))
{
/* Output a multibyte sequence, or an escaped
unprintable unibyte character. */
size_t imax = i + m - 1;
size_t ilim = i + m;
for (;;)
{
@@ -405,7 +469,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
STORE ('0' + ((c >> 3) & 7));
c = '0' + (c & 7);
}
if (i == imax)
if (ilim <= i + 1)
break;
STORE (c);
c = arg[++i];
@@ -462,18 +526,23 @@ 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 is deliberately declared with type `int'
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 const *options)
{
static unsigned int nslots;
static struct slotvec
/* Preallocate a slot 0 buffer, so that the caller can always quote
one small component of a "memory exhausted" message in slot 0. */
static char slot0[256];
static unsigned int nslots = 1;
struct slotvec
{
size_t size;
char *val;
} *slotvec;
};
static struct slotvec slotvec0 = {sizeof slot0, slot0};
static struct slotvec *slotvec = &slotvec0;
if (nslots <= n)
{
@@ -481,6 +550,11 @@ quotearg_n_options (int n, char const *arg,
size_t s = n1 * sizeof (struct slotvec);
if (! (0 < n1 && n1 == s / sizeof (struct slotvec)))
abort ();
if (slotvec == &slotvec0)
{
slotvec = (struct slotvec *) xmalloc (sizeof (struct slotvec));
*slotvec = slotvec0;
}
slotvec = (struct slotvec *) xrealloc (slotvec, s);
memset (slotvec + nslots, 0, (n1 - nslots) * sizeof (struct slotvec));
nslots = n;
@@ -494,7 +568,7 @@ quotearg_n_options (int n, char const *arg,
if (size <= qsize)
{
slotvec[n].size = size = qsize + 1;
slotvec[n].val = val = xrealloc (val, size);
slotvec[n].val = val = xrealloc (val == slot0 ? 0 : val, size);
quotearg_buffer (val, size, arg, (size_t) -1, options);
}

View File

@@ -1,5 +1,5 @@
/* quotearg.h - quote arguments for output
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -25,7 +25,8 @@ enum quoting_style
shell_always_quoting_style, /* --quoting-style=shell-always */
c_quoting_style, /* --quoting-style=c */
escape_quoting_style, /* --quoting-style=escape */
locale_quoting_style /* --quoting-style=locale */
locale_quoting_style, /* --quoting-style=locale */
clocale_quoting_style /* --quoting-style=clocale */
};
/* For now, --quoting-style=literal is the default, but this may change. */

View File

@@ -21,6 +21,7 @@
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
# include <string.h>
@@ -57,7 +58,7 @@ extract_trimmed_name (const STRUCT_UTMP *ut)
the number of entries, and return zero. If there is any error,
return non-zero and don't modify the parameters. */
#if HAVE_UTMPNAME
#ifdef UTMP_NAME_FUNCTION
int
read_utmp (const char *filename, int *n_entries, STRUCT_UTMP **utmp_buf)
@@ -129,4 +130,4 @@ read_utmp (const char *filename, int *n_entries, STRUCT_UTMP **utmp_buf)
return 0;
}
#endif /* HAVE_UTMPNAME */
#endif

View File

@@ -31,32 +31,43 @@
# include <sys/types.h>
# ifdef HAVE_UTMPX_H
# ifdef HAVE_UTMP_H
/* HPUX 10.20 needs utmp.h, for the definition of e.g., UTMP_FILE. */
# include <utmp.h>
# endif
# include <utmpx.h>
# define UTMP_STRUCT_NAME utmpx
# define UT_TIME_MEMBER(UT_PTR) ((UT_PTR)->ut_tv.tv_sec)
# define SET_UTMP_ENT setutxent
# define GET_UTMP_ENT getutxent
# define END_UTMP_ENT endutxent
# define UTMP_NAME_FUNCTION utmpxname
# ifdef HAVE_UTMPXNAME
# define UTMP_NAME_FUNCTION utmpxname
# endif
# else
# include <utmp.h>
# if !HAVE_DECL_GETUTENT
struct utmp *getutent();
# endif
# define UTMP_STRUCT_NAME utmp
# define UT_TIME_MEMBER(UT_PTR) ((UT_PTR)->ut_time)
# define SET_UTMP_ENT setutent
# define GET_UTMP_ENT getutent
# define END_UTMP_ENT endutent
# define UTMP_NAME_FUNCTION utmpname
# ifdef HAVE_UTMPNAME
# define UTMP_NAME_FUNCTION utmpname
# endif
# endif
/* Accessor macro for the member named ut_user or ut_name. */
# ifdef HAVE_UTMPX_H
# if HAVE_STRUCT_UTMPX_UT_USER
# define UT_USER(Utmp) Utmp->ut_user
# define UT_USER(Utmp) ((Utmp)->ut_user)
# endif
# if HAVE_STRUCT_UTMPX_UT_NAME
# undef UT_USER
# define UT_USER(Utmp) Utmp->ut_name
# define UT_USER(Utmp) ((Utmp)->ut_name)
# endif
# else

31
lib/ref-add.sin Normal file
View File

@@ -0,0 +1,31 @@
# Add this package to a list of references stored in a text file.
#
# Copyright (C) 2000 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.
#
# Written by Bruno Haible <haible@clisp.cons.org>.
#
/^# Packages using this file: / {
s/# Packages using this file://
ta
:a
s/ @PACKAGE@ / @PACKAGE@ /
tb
s/ $/ @PACKAGE@ /
:b
s/^/# Packages using this file:/
}

26
lib/ref-del.sin Normal file
View File

@@ -0,0 +1,26 @@
# Remove this package from a list of references stored in a text file.
#
# Copyright (C) 2000 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.
#
# Written by Bruno Haible <haible@clisp.cons.org>.
#
/^# Packages using this file: / {
s/# Packages using this file://
s/ @PACKAGE@ / /
s/^/# Packages using this file:/
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
/* 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,98 Free Software Foundation, Inc.
Copyright (C) 1985,1989-1993,1995-1998, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in /gd/gnu/lib.
@@ -221,13 +221,13 @@ extern reg_syntax_t re_syntax_options;
(_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
#define RE_SYNTAX_POSIX_EXTENDED \
(_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
| RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \
| RE_NO_BK_PARENS | RE_NO_BK_VBAR \
| RE_UNMATCHED_RIGHT_PAREN_ORD)
(_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
| RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \
| RE_NO_BK_PARENS | RE_NO_BK_VBAR \
| RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD)
/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS
replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */
/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is
removed and RE_NO_BK_REFS is added. */
#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \
(_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
| RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \
@@ -513,13 +513,31 @@ extern int re_exec _RE_ARGS ((const char *));
# endif
#endif
/* GCC 2.95 and later have "__restrict"; C99 compilers have
"restrict", and "configure" may have defined "restrict". */
#ifndef __restrict
# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__))
# if defined restrict || 199901L <= __STDC_VERSION__
# define __restrict restrict
# else
# define __restrict
# endif
# endif
#endif
/* For now unconditionally define __restrict_arr to expand to nothing.
Ideally we would have a test for the compiler which allows defining
it to restrict. */
#define __restrict_arr
/* POSIX compatibility. */
extern int regcomp _RE_ARGS ((regex_t *__preg, const char *__pattern,
extern int regcomp _RE_ARGS ((regex_t *__restrict __preg,
const char *__restrict __pattern,
int __cflags));
extern int regexec _RE_ARGS ((const regex_t *__preg,
const char *__string, size_t __nmatch,
regmatch_t __pmatch[], int __eflags));
extern int regexec _RE_ARGS ((const regex_t *__restrict __preg,
const char *__restrict __string, size_t __nmatch,
regmatch_t __pmatch[__restrict_arr],
int __eflags));
extern size_t regerror _RE_ARGS ((int __errcode, const regex_t *__preg,
char *__errbuf, size_t __errbuf_size));

68
lib/rename.c Normal file
View File

@@ -0,0 +1,68 @@
/* Work around the bug in some systems whereby rename fails when the source
path has a trailing slash. The rename from SunOS 4.1.1_U1 has this bug.
Copyright (C) 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* written by Volker Borchert */
#include <config.h>
#include <stdio.h>
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#if HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#include <xalloc.h>
#ifndef HAVE_DECL_FREE
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_FREE
void free ();
#endif
void strip_trailing_slashes ();
/* Rename the file SRC_PATH to DST_PATH, removing any trailing
slashes from SRC_PATH. Needed for SunOS 4.1.1_U1. */
int
rpl_rename (const char *src_path, const char *dst_path)
{
char *src_temp;
int ret_val;
size_t s_len = strlen (src_path);
if (s_len && src_path[s_len - 1] == '/')
{
src_temp = xstrdup (src_path);
strip_trailing_slashes (src_temp);
}
else
src_temp = (char *) src_path;
ret_val = rename (src_temp, dst_path);
if (src_temp != src_path)
free (src_temp);
return ret_val;
}

View File

@@ -1,6 +1,6 @@
/* Determine whether string value is affirmation or negative response
according to current locale's data.
Copyright (C) 1996, 1998 Free Software Foundation, Inc.
Copyright (C) 1996, 1998, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -31,6 +31,9 @@
#if ENABLE_NLS
# include <sys/types.h>
# if HAVE_LIMITS_H
# include <limits.h>
# endif
# include <regex.h>
# include <libintl.h>
# define _(Text) gettext (Text)

View File

@@ -36,9 +36,16 @@
extern int errno;
#endif
#if HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#include "same.h"
#include "dirname.h"
#include "error.h"
#include "xalloc.h"
#if ENABLE_NLS
# include <libintl.h>
@@ -50,6 +57,9 @@ extern int errno;
#define STREQ(a, b) (strcmp ((a), (b)) == 0)
#ifndef HAVE_DECL_FREE
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_FREE
void free ();
#endif
@@ -72,7 +82,7 @@ same_name (const char *source, const char *dest)
source_dirname = dir_name (source);
dest_dirname = dir_name (dest);
if (source_dirname == NULL || dest_dirname == NULL)
error (1, 0, _("virtual memory exhausted"));
xalloc_die ();
if (stat (source_dirname, &source_dir_stats))
{

View File

@@ -42,6 +42,10 @@
extern int errno;
#endif
#ifndef O_DIRECTORY
# define O_DIRECTORY 0
#endif
#include "save-cwd.h"
#include "error.h"
@@ -67,7 +71,7 @@ save_cwd (struct saved_cwd *cwd)
if (have_working_fchdir)
{
#if HAVE_FCHDIR
cwd->desc = open (".", O_RDONLY);
cwd->desc = open (".", O_RDONLY | O_DIRECTORY);
if (cwd->desc < 0)
{
error (0, errno, "cannot open current directory");

View File

@@ -23,16 +23,15 @@
#include <sys/types.h>
#if HAVE_UNISTD_H
# include <unistd.h>
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#if HAVE_DIRENT_H
# include <dirent.h>
# define NAMLEN(dirent) strlen((dirent)->d_name)
#else
# define dirent direct
# define NAMLEN(dirent) (dirent)->d_namlen
# if HAVE_SYS_NDIR_H
# include <sys/ndir.h>
# endif
@@ -54,26 +53,25 @@
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <string.h>
#else
char *malloc ();
char *realloc ();
#endif
#ifndef NULL
# define NULL 0
#endif
#ifndef stpcpy
char *stpcpy ();
#endif
#include "savedir.h"
#include "xalloc.h"
/* Return a freshly allocated string containing the filenames
in directory DIR, separated by '\0' characters;
the end is marked by two '\0' characters in a row.
NAME_SIZE is the number of bytes to initially allocate
for the string; it will be enlarged as needed.
Return NULL if DIR cannot be opened or if out of memory. */
Use NAME_SIZE == -1 if you do not know the size.
Return NULL (setting errno) if DIR cannot be opened, read, or closed. */
#ifndef NAME_SIZE_DEFAULT
# define NAME_SIZE_DEFAULT 512
#endif
char *
savedir (const char *dir, off_t name_size)
@@ -81,56 +79,58 @@ savedir (const char *dir, off_t name_size)
DIR *dirp;
struct dirent *dp;
char *name_space;
char *namep;
size_t allocated = name_size; /* Overflow is checked indirectly below. */
size_t used = 0;
int save_errno;
dirp = opendir (dir);
if (dirp == NULL)
return NULL;
/* Be sure name_size is at least `1' so there's room for
the final NUL byte. */
name_size += !name_size;
/* Use the default if the size is not known. Be sure "allocated"
is at least `1' so there's room for the final NUL byte.
Do not simply test name_size <= 0, because the initialization
of "allocated" might have overflowed. */
if (name_size < 0 || allocated == 0)
allocated = NAME_SIZE_DEFAULT;
name_space = (char *) malloc (name_size);
if (name_space == NULL)
{
closedir (dirp);
return NULL;
}
namep = name_space;
name_space = xmalloc (allocated);
errno = 0;
while ((dp = readdir (dirp)) != NULL)
{
/* Skip "." and ".." (some NFS filesystems' directories lack them). */
if (dp->d_name[0] != '.'
|| (dp->d_name[1] != '\0'
&& (dp->d_name[1] != '.' || dp->d_name[2] != '\0')))
/* Skip "", ".", and "..". "" is returned by at least one buggy
implementation: Solaris 2.4 readdir on NFS filesystems. */
char const *entry = dp->d_name;
if (entry[entry[0] != '.' ? 0 : entry[1] != '.' ? 1 : 2] != '\0')
{
off_t size_needed = (namep - name_space) + NAMLEN (dp) + 2;
if (size_needed > name_size)
size_t entry_size = strlen (entry) + 1;
if (used + entry_size < used)
xalloc_die ();
if (allocated <= used + entry_size)
{
char *new_name_space;
while (size_needed > name_size)
name_size += 1024;
new_name_space = realloc (name_space, name_size);
if (new_name_space == NULL)
do
{
closedir (dirp);
return NULL;
if (2 * allocated < allocated)
xalloc_die ();
allocated *= 2;
}
namep += new_name_space - name_space;
name_space = new_name_space;
while (allocated <= used + entry_size);
name_space = xrealloc (name_space, allocated);
}
namep = stpcpy (namep, dp->d_name) + 1;
memcpy (name_space + used, entry, entry_size);
used += entry_size;
}
}
*namep = '\0';
if (CLOSEDIR (dirp))
name_space[used] = '\0';
save_errno = errno;
if (CLOSEDIR (dirp) != 0)
save_errno = errno;
if (save_errno != 0)
{
free (name_space);
errno = save_errno;
return NULL;
}
return name_space;

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 1992, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1992, 1995, 2000 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
@@ -35,7 +35,7 @@ USA. */
#endif
#ifndef HAVE_GNU_LD
# define __environ environ
# define __environ environ
#endif
int

376
lib/sha.c Normal file
View File

@@ -0,0 +1,376 @@
/* sha.c - Functions to compute the SHA1 hash (message-digest) of files
or blocks of memory. Complies to the NIST specification FIPS-180-1.
Copyright (C) 2000 Scott G. Miller
Credits:
Robert Klep <robert@ilse.nl> -- Expansion function fix
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#if STDC_HEADERS || defined _LIBC
# include <stdlib.h>
# include <string.h>
#else
# ifndef HAVE_MEMCPY
# define memcpy(d, s, n) bcopy ((s), (d), (n))
# endif
#endif
#include "md5.h"
#include "sha.h"
/*
Not-swap is a macro that does an endian swap on architectures that are
big-endian, as SHA needs some data in a little-endian format
*/
#ifdef WORDS_BIGENDIAN
# define NOTSWAP(n) (n)
# define SWAP(n) \
(((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
#else
# define NOTSWAP(n) \
(((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
# define SWAP(n) (n)
#endif
/* This array contains the bytes used to pad the buffer to the next
64-byte boundary. (RFC 1321, 3.1: Step 1) */
static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ };
/*
Takes a pointer to a 160 bit block of data (five 32 bit ints) and
intializes it to the start constants of the SHA1 algorithm. This
must be called before using hash in the call to sha_hash
*/
void
sha_init_ctx (struct sha_ctx *ctx)
{
ctx->A = 0x67452301;
ctx->B = 0xefcdab89;
ctx->C = 0x98badcfe;
ctx->D = 0x10325476;
ctx->E = 0xc3d2e1f0;
ctx->total[0] = ctx->total[1] = 0;
ctx->buflen = 0;
}
/* Put result from CTX in first 20 bytes following RESBUF. The result
must be in little endian byte order.
IMPORTANT: On some systems it is required that RESBUF is correctly
aligned for a 32 bits value. */
void *
sha_read_ctx (const struct sha_ctx *ctx, void *resbuf)
{
((md5_uint32 *) resbuf)[0] = NOTSWAP (ctx->A);
((md5_uint32 *) resbuf)[1] = NOTSWAP (ctx->B);
((md5_uint32 *) resbuf)[2] = NOTSWAP (ctx->C);
((md5_uint32 *) resbuf)[3] = NOTSWAP (ctx->D);
((md5_uint32 *) resbuf)[4] = NOTSWAP (ctx->E);
return resbuf;
}
/* Process the remaining bytes in the internal buffer and the usual
prolog according to the standard and write the result to RESBUF.
IMPORTANT: On some systems it is required that RESBUF is correctly
aligned for a 32 bits value. */
void *
sha_finish_ctx (struct sha_ctx *ctx, void *resbuf)
{
/* Take yet unprocessed bytes into account. */
md5_uint32 bytes = ctx->buflen;
size_t pad;
/* Now count remaining bytes. */
ctx->total[0] += bytes;
if (ctx->total[0] < bytes)
++ctx->total[1];
pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes;
memcpy (&ctx->buffer[bytes], fillbuf, pad);
/* Put the 64-bit file length in *bits* at the end of the buffer. */
*(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = NOTSWAP (ctx->total[0] << 3);
*(md5_uint32 *) &ctx->buffer[bytes + pad] = NOTSWAP ((ctx->total[1] << 3) |
(ctx->total[0] >> 29));
/* Process last bytes. */
sha_process_block (ctx->buffer, bytes + pad + 8, ctx);
return sha_read_ctx (ctx, resbuf);
}
/* Compute SHA1 message digest for bytes read from STREAM. The
resulting message digest number will be written into the 16 bytes
beginning at RESBLOCK. */
int
sha_stream (FILE *stream, void *resblock)
{
/* Important: BLOCKSIZE must be a multiple of 64. */
#define BLOCKSIZE 4096
struct sha_ctx ctx;
char buffer[BLOCKSIZE + 72];
size_t sum;
/* Initialize the computation context. */
sha_init_ctx (&ctx);
/* Iterate over full file contents. */
while (1)
{
/* We read the file in blocks of BLOCKSIZE bytes. One call of the
computation function processes the whole buffer so that with the
next round of the loop another block can be read. */
size_t n;
sum = 0;
/* Read block. Take care for partial reads. */
do
{
n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
sum += n;
}
while (sum < BLOCKSIZE && n != 0);
if (n == 0 && ferror (stream))
return 1;
/* If end of file is reached, end the loop. */
if (n == 0)
break;
/* Process buffer with BLOCKSIZE bytes. Note that
BLOCKSIZE % 64 == 0
*/
sha_process_block (buffer, BLOCKSIZE, &ctx);
}
/* Add the last bytes if necessary. */
if (sum > 0)
sha_process_bytes (buffer, sum, &ctx);
/* Construct result in desired memory. */
sha_finish_ctx (&ctx, resblock);
return 0;
}
/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The
result is always in little endian byte order, so that a byte-wise
output yields to the wanted ASCII representation of the message
digest. */
void *
sha_buffer (const char *buffer, size_t len, void *resblock)
{
struct sha_ctx ctx;
/* Initialize the computation context. */
sha_init_ctx (&ctx);
/* Process whole buffer but last len % 64 bytes. */
sha_process_bytes (buffer, len, &ctx);
/* Put result in desired memory area. */
return sha_finish_ctx (&ctx, resblock);
}
void
sha_process_bytes (const void *buffer, size_t len, struct sha_ctx *ctx)
{
/* When we already have some bits in our internal buffer concatenate
both inputs first. */
if (ctx->buflen != 0)
{
size_t left_over = ctx->buflen;
size_t add = 128 - left_over > len ? len : 128 - left_over;
memcpy (&ctx->buffer[left_over], buffer, add);
ctx->buflen += add;
if (left_over + add > 64)
{
sha_process_block (ctx->buffer, (left_over + add) & ~63, ctx);
/* The regions in the following copy operation cannot overlap. */
memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
(left_over + add) & 63);
ctx->buflen = (left_over + add) & 63;
}
buffer = (const char *) buffer + add;
len -= add;
}
/* Process available complete blocks. */
if (len > 64)
{
sha_process_block (buffer, len & ~63, ctx);
buffer = (const char *) buffer + (len & ~63);
len &= 63;
}
/* Move remaining bytes in internal buffer. */
if (len > 0)
{
memcpy (ctx->buffer, buffer, len);
ctx->buflen = len;
}
}
/* --- Code below is the primary difference between md5.c and sha.c --- */
/* SHA1 round constants */
#define K1 0x5a827999L
#define K2 0x6ed9eba1L
#define K3 0x8f1bbcdcL
#define K4 0xca62c1d6L
/* Round functions. Note that F2 is the same as F4. */
#define F1(B,C,D) ( D ^ ( B & ( C ^ D ) ) )
#define F2(B,C,D) (B ^ C ^ D)
#define F3(B,C,D) ( ( B & C ) | ( D & ( B | C ) ) )
#define F4(B,C,D) (B ^ C ^ D)
/* Process LEN bytes of BUFFER, accumulating context into CTX.
It is assumed that LEN % 64 == 0.
Most of this code comes from GnuPG's cipher/sha1.c. */
void
sha_process_block (const void *buffer, size_t len, struct sha_ctx *ctx)
{
const md5_uint32 *words = buffer;
size_t nwords = len / sizeof (md5_uint32);
const md5_uint32 *endp = words + nwords;
md5_uint32 x[16];
md5_uint32 a = ctx->A;
md5_uint32 b = ctx->B;
md5_uint32 c = ctx->C;
md5_uint32 d = ctx->D;
md5_uint32 e = ctx->E;
/* First increment the byte count. RFC 1321 specifies the possible
length of the file up to 2^64 bits. Here we only compute the
number of bytes. Do a double word increment. */
ctx->total[0] += len;
if (ctx->total[0] < len)
++ctx->total[1];
#define M(I) ( tm = x[I&0x0f] ^ x[(I-14)&0x0f] \
^ x[(I-8)&0x0f] ^ x[(I-3)&0x0f] \
, (x[I&0x0f] = rol(tm, 1)) )
#define R(A,B,C,D,E,F,K,M) do { E += rol( A, 5 ) \
+ F( B, C, D ) \
+ K \
+ M; \
B = rol( B, 30 ); \
} while(0)
while (words < endp)
{
md5_uint32 tm;
int t;
/* FIXME: see sha1.c for a better implementation. */
for (t = 0; t < 16; t++)
{
x[t] = NOTSWAP (*words);
words++;
}
R( a, b, c, d, e, F1, K1, x[ 0] );
R( e, a, b, c, d, F1, K1, x[ 1] );
R( d, e, a, b, c, F1, K1, x[ 2] );
R( c, d, e, a, b, F1, K1, x[ 3] );
R( b, c, d, e, a, F1, K1, x[ 4] );
R( a, b, c, d, e, F1, K1, x[ 5] );
R( e, a, b, c, d, F1, K1, x[ 6] );
R( d, e, a, b, c, F1, K1, x[ 7] );
R( c, d, e, a, b, F1, K1, x[ 8] );
R( b, c, d, e, a, F1, K1, x[ 9] );
R( a, b, c, d, e, F1, K1, x[10] );
R( e, a, b, c, d, F1, K1, x[11] );
R( d, e, a, b, c, F1, K1, x[12] );
R( c, d, e, a, b, F1, K1, x[13] );
R( b, c, d, e, a, F1, K1, x[14] );
R( a, b, c, d, e, F1, K1, x[15] );
R( e, a, b, c, d, F1, K1, M(16) );
R( d, e, a, b, c, F1, K1, M(17) );
R( c, d, e, a, b, F1, K1, M(18) );
R( b, c, d, e, a, F1, K1, M(19) );
R( a, b, c, d, e, F2, K2, M(20) );
R( e, a, b, c, d, F2, K2, M(21) );
R( d, e, a, b, c, F2, K2, M(22) );
R( c, d, e, a, b, F2, K2, M(23) );
R( b, c, d, e, a, F2, K2, M(24) );
R( a, b, c, d, e, F2, K2, M(25) );
R( e, a, b, c, d, F2, K2, M(26) );
R( d, e, a, b, c, F2, K2, M(27) );
R( c, d, e, a, b, F2, K2, M(28) );
R( b, c, d, e, a, F2, K2, M(29) );
R( a, b, c, d, e, F2, K2, M(30) );
R( e, a, b, c, d, F2, K2, M(31) );
R( d, e, a, b, c, F2, K2, M(32) );
R( c, d, e, a, b, F2, K2, M(33) );
R( b, c, d, e, a, F2, K2, M(34) );
R( a, b, c, d, e, F2, K2, M(35) );
R( e, a, b, c, d, F2, K2, M(36) );
R( d, e, a, b, c, F2, K2, M(37) );
R( c, d, e, a, b, F2, K2, M(38) );
R( b, c, d, e, a, F2, K2, M(39) );
R( a, b, c, d, e, F3, K3, M(40) );
R( e, a, b, c, d, F3, K3, M(41) );
R( d, e, a, b, c, F3, K3, M(42) );
R( c, d, e, a, b, F3, K3, M(43) );
R( b, c, d, e, a, F3, K3, M(44) );
R( a, b, c, d, e, F3, K3, M(45) );
R( e, a, b, c, d, F3, K3, M(46) );
R( d, e, a, b, c, F3, K3, M(47) );
R( c, d, e, a, b, F3, K3, M(48) );
R( b, c, d, e, a, F3, K3, M(49) );
R( a, b, c, d, e, F3, K3, M(50) );
R( e, a, b, c, d, F3, K3, M(51) );
R( d, e, a, b, c, F3, K3, M(52) );
R( c, d, e, a, b, F3, K3, M(53) );
R( b, c, d, e, a, F3, K3, M(54) );
R( a, b, c, d, e, F3, K3, M(55) );
R( e, a, b, c, d, F3, K3, M(56) );
R( d, e, a, b, c, F3, K3, M(57) );
R( c, d, e, a, b, F3, K3, M(58) );
R( b, c, d, e, a, F3, K3, M(59) );
R( a, b, c, d, e, F4, K4, M(60) );
R( e, a, b, c, d, F4, K4, M(61) );
R( d, e, a, b, c, F4, K4, M(62) );
R( c, d, e, a, b, F4, K4, M(63) );
R( b, c, d, e, a, F4, K4, M(64) );
R( a, b, c, d, e, F4, K4, M(65) );
R( e, a, b, c, d, F4, K4, M(66) );
R( d, e, a, b, c, F4, K4, M(67) );
R( c, d, e, a, b, F4, K4, M(68) );
R( b, c, d, e, a, F4, K4, M(69) );
R( a, b, c, d, e, F4, K4, M(70) );
R( e, a, b, c, d, F4, K4, M(71) );
R( d, e, a, b, c, F4, K4, M(72) );
R( c, d, e, a, b, F4, K4, M(73) );
R( b, c, d, e, a, F4, K4, M(74) );
R( a, b, c, d, e, F4, K4, M(75) );
R( e, a, b, c, d, F4, K4, M(76) );
R( d, e, a, b, c, F4, K4, M(77) );
R( c, d, e, a, b, F4, K4, M(78) );
R( b, c, d, e, a, F4, K4, M(79) );
a = ctx->A += a;
b = ctx->B += b;
c = ctx->C += c;
d = ctx->D += d;
e = ctx->E += e;
}
}

75
lib/sha.h Normal file
View File

@@ -0,0 +1,75 @@
/* sha.h - Declaration of functions and datatypes for SHA1 sum computing
library functions.
Copyright (C) 1999, Scott G. Miller
*/
#ifndef _SHA_H
# define _SHA_H 1
# include <stdio.h>
# include "md5.h"
/* Structure to save state of computation between the single steps. */
struct sha_ctx
{
md5_uint32 A;
md5_uint32 B;
md5_uint32 C;
md5_uint32 D;
md5_uint32 E;
md5_uint32 total[2];
md5_uint32 buflen;
char buffer[128];
};
/* Starting with the result of former calls of this function (or the
initialization function update the context for the next LEN bytes
starting at BUFFER.
It is necessary that LEN is a multiple of 64!!! */
extern void sha_process_block __P ((const void *buffer, size_t len,
struct sha_ctx *ctx));
/* Starting with the result of former calls of this function (or the
initialization function update the context for the next LEN bytes
starting at BUFFER.
It is NOT required that LEN is a multiple of 64. */
extern void sha_process_bytes __P((const void *buffer, size_t len,
struct sha_ctx *ctx));
/* Initialize structure containing state of computation. */
extern void sha_init_ctx __P ((struct sha_ctx *ctx));
/* Process the remaining bytes in the buffer and put result from CTX
in first 16 bytes following RESBUF. The result is always in little
endian byte order, so that a byte-wise output yields to the wanted
ASCII representation of the message digest.
IMPORTANT: On some systems it is required that RESBUF is correctly
aligned for a 32 bits value. */
extern void *sha_finish_ctx __P ((struct sha_ctx *ctx, void *resbuf));
/* Put result from CTX in first 16 bytes following RESBUF. The result is
always in little endian byte order, so that a byte-wise output yields
to the wanted ASCII representation of the message digest.
IMPORTANT: On some systems it is required that RESBUF is correctly
aligned for a 32 bits value. */
extern void *sha_read_ctx __P ((const struct sha_ctx *ctx, void *resbuf));
/* Compute MD5 message digest for bytes read from STREAM. The
resulting message digest number will be written into the 16 bytes
beginning at RESBLOCK. */
extern int sha_stream __P ((FILE *stream, void *resblock));
/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The
result is always in little endian byte order, so that a byte-wise
output yields to the wanted ASCII representation of the message
digest. */
extern void *sha_buffer __P ((const char *buffer, size_t len, void *resblock));
#endif

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc.
/* Copyright (C) 1991-1999, 2000 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
@@ -98,8 +98,8 @@ extern char *tzname[];
# define L_(Str) L##Str
# define NLW(Sym) _NL_W##Sym
# define MEMCPY(d, s, n) wmemcpy (d, s, n)
# define STRLEN(s) wcslen (s)
# define MEMCPY(d, s, n) __wmemcpy (d, s, n)
# define STRLEN(s) __wcslen (s)
#else
# define CHAR_T char
@@ -289,7 +289,7 @@ static const CHAR_T zeroes[16] = /* "0000000000000000" */
else if (to_uppcase) \
memcpy_uppcase (p, (s), _n); \
else \
MEMCPY ((PTR) p, (PTR) (s), _n))
MEMCPY ((PTR) p, (const PTR) (s), _n))
#ifdef COMPILE_WIDE
# define widen(os, ws, l) \
@@ -457,8 +457,7 @@ static CHAR_T const month_name[][10] =
return _strftime_copytm (s, maxsize, format, &tmcopy ut_argument);
}
# undef my_strftime
# define my_strftime(S, Maxsize, Format, Tp) \
_strftime_copytm (S, Maxsize, Format, Tp)
# define my_strftime _strftime_copytm
#endif
@@ -516,6 +515,9 @@ my_strftime (s, maxsize, format, tp ut_argument)
size_t i = 0;
CHAR_T *p = s;
const CHAR_T *f;
#if DO_MULTIBYTE && !defined COMPILE_WIDE
const char *format_end = NULL;
#endif
zone = NULL;
#if HAVE_TM_ZONE
@@ -608,10 +610,15 @@ my_strftime (s, maxsize, format, tp ut_argument)
{
mbstate_t mbstate = mbstate_zero;
size_t len = 0;
size_t fsize;
if (! format_end)
format_end = f + strlen (f) + 1;
fsize = format_end - f;
do
{
size_t bytes = mbrlen (f + len, (size_t) -1, &mbstate);
size_t bytes = mbrlen (f + len, fsize - len, &mbstate);
if (bytes == 0)
break;
@@ -752,6 +759,11 @@ my_strftime (s, maxsize, format, tp ut_argument)
case L_('b'):
case L_('h'): /* POSIX.2 extension. */
if (change_case)
{
to_uppcase = 1;
to_lowcase = 0;
}
if (modifier != 0)
goto bad_format;
#if defined _NL_CURRENT || !HAVE_STRFTIME
@@ -781,10 +793,11 @@ my_strftime (s, maxsize, format, tp ut_argument)
goto bad_format;
#ifdef _NL_CURRENT
if (! (modifier == 'E'
&& (*(subfmt = (CHAR_T *) _NL_CURRENT (LC_TIME,
NLW(ERA_D_T_FMT)))
&& (*(subfmt =
(const CHAR_T *) _NL_CURRENT (LC_TIME,
NLW(ERA_D_T_FMT)))
!= '\0')))
subfmt = (CHAR_T *) _NL_CURRENT (LC_TIME, NLW(D_T_FMT));
subfmt = (const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(D_T_FMT));
#else
# if HAVE_STRFTIME
goto underlying_strftime;
@@ -796,8 +809,10 @@ my_strftime (s, maxsize, format, tp ut_argument)
subformat:
{
CHAR_T *old_start = p;
size_t len = my_strftime (NULL, (size_t) -1, subfmt, tp);
add (len, my_strftime (p, maxsize - i, subfmt, tp));
size_t len = my_strftime (NULL, (size_t) -1, subfmt,
tp ut_argument);
add (len, my_strftime (p, maxsize - i, subfmt,
tp ut_argument));
if (to_uppcase)
while (old_start < p)
@@ -817,6 +832,14 @@ my_strftime (s, maxsize, format, tp ut_argument)
char *u = ufmt;
char ubuf[1024]; /* enough for any single format in practice */
size_t len;
/* Make sure we're calling the actual underlying strftime.
In some cases, config.h contains something like
"#define strftime rpl_strftime". */
# ifdef strftime
# undef strftime
size_t strftime ();
# endif
*u++ = '%';
if (modifier != 0)
*u++ = modifier;
@@ -840,7 +863,7 @@ my_strftime (s, maxsize, format, tp ut_argument)
if (era)
{
# ifdef COMPILE_WIDE
size_t len = wcslen (era->era_wname);
size_t len = __wcslen (era->era_wname);
cpy (len, era->era_wname);
# else
size_t len = strlen (era->era_name);
@@ -865,10 +888,10 @@ my_strftime (s, maxsize, format, tp ut_argument)
goto bad_format;
#ifdef _NL_CURRENT
if (! (modifier == L_('E')
&& (*(subfmt = (CHAR_T *)_NL_CURRENT (LC_TIME,
NLW(ERA_D_FMT)))
&& (*(subfmt =
(const CHAR_T *)_NL_CURRENT (LC_TIME, NLW(ERA_D_FMT)))
!= L_('\0'))))
subfmt = (CHAR_T *) _NL_CURRENT (LC_TIME, NLW(D_FMT));
subfmt = (const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(D_FMT));
goto subformat;
#else
# if HAVE_STRFTIME
@@ -1051,8 +1074,9 @@ my_strftime (s, maxsize, format, tp ut_argument)
case L_('r'): /* POSIX.2 extension. */
#ifdef _NL_CURRENT
if (*(subfmt = (CHAR_T *) _NL_CURRENT (LC_TIME,
NLW(T_FMT_AMPM))) == L_('\0'))
if (*(subfmt = (const CHAR_T *) _NL_CURRENT (LC_TIME,
NLW(T_FMT_AMPM)))
== L_('\0'))
#endif
subfmt = L_("%I:%M:%S %p");
goto subformat;
@@ -1107,10 +1131,10 @@ my_strftime (s, maxsize, format, tp ut_argument)
goto bad_format;
#ifdef _NL_CURRENT
if (! (modifier == L_('E')
&& (*(subfmt = (CHAR_T *) _NL_CURRENT (LC_TIME,
NLW(ERA_T_FMT)))
&& (*(subfmt =
(const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(ERA_T_FMT)))
!= L_('\0'))))
subfmt = (CHAR_T *) _NL_CURRENT (LC_TIME, NLW(T_FMT));
subfmt = (const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(T_FMT));
goto subformat;
#else
# if HAVE_STRFTIME

View File

@@ -19,12 +19,16 @@
# include <config.h>
#endif
#if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
#if STDC_HEADERS || HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#ifndef ISSLASH
# define ISSLASH(C) ((C) == '/')
#endif
/* Remove trailing slashes from PATH.
This is useful when using filename completion from a shell that
adds a "/" after directory names (such as tcsh and bash), because
@@ -37,6 +41,6 @@ strip_trailing_slashes (char *path)
int last;
last = strlen (path) - 1;
while (last > 0 && path[last] == '/')
while (0 < last && ISSLASH (path[last]))
path[last--] = '\0';
}

View File

@@ -1,21 +1,21 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -24,22 +24,39 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include <stdio.h>
#include <sys/types.h>
#ifdef STDC_HEADERS
# include <string.h>
#if defined _LIBC || defined STDC_HEADERS
# include <stdlib.h>
# include <string.h>
#else
char *malloc ();
#endif
/* Duplicate S, returning an identical malloc'd string. */
#ifndef HAVE_DECL_STRNLEN
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_STRNLEN
size_t strnlen ();
#endif
#undef __strndup
#undef strndup
#ifndef weak_alias
# define __strndup strndup
#endif
char *
strndup (const char *s, size_t n)
__strndup (const char *s, size_t n)
{
char *new = malloc (n + 1);
size_t len = strnlen (s, n);
char *new = malloc (len + 1);
if (new == NULL)
return NULL;
new[n] = '\0';
return (char *) memcpy (new, s, n);
new[len] = '\0';
return (char *) memcpy (new, s, len);
}
#ifdef weak_alias
weak_alias (__strndup, strndup)
#endif

58
lib/strnlen.c Normal file
View File

@@ -0,0 +1,58 @@
/* Find the length of STRING, but scan at most MAXLEN characters.
Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#else
# include <strings.h>
#endif
#ifndef HAVE_DECL_MEMCHR
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_MEMCHR
char *memchr ();
#endif
#undef __strnlen
#undef strnlen
#ifndef weak_alias
# define __strnlen strnlen
#endif
/* Find the length of STRING, but scan at most MAXLEN characters.
If no '\0' terminator is found in that many characters, return MAXLEN. */
size_t
__strnlen (const char *string, size_t maxlen)
{
const char *end = memchr (string, '\0', maxlen);
return end ? end - string : maxlen;
}
#ifdef weak_alias
weak_alias (__strnlen, strnlen)
#endif

View File

@@ -28,11 +28,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
# include <config.h>
#endif
#include <string.h>
#if defined _LIBC || defined HAVE_STRING_H
# include <string.h>
#endif
#include <sys/types.h>
typedef unsigned chartype;
#undef strstr
char *
strstr (const char *phaystack, const char *pneedle)
{
@@ -105,7 +109,7 @@ jin: a = *++haystack;
}
while (*rhaystack == a);
needle = rneedle; /* took the register-poor aproach */
needle = rneedle; /* took the register-poor approach */
if (a == '\0')
break;

View File

@@ -38,10 +38,16 @@
#endif
#ifndef HAVE_DECL_STRTOUL
unsigned long long strtoul PARAMS ((char const *, char **, int));
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_STRTOUL
unsigned long strtoul PARAMS ((char const *, char **, int));
#endif
#ifndef HAVE_DECL_STRTOULL
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_STRTOULL && HAVE_UNSIGNED_LONG_LONG
unsigned long long strtoull PARAMS ((char const *, char **, int));
#endif

View File

@@ -1,7 +1,7 @@
/* Compare strings while treating digits characters numerically.
Copyright (C) 1997, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jean-Francois Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
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
@@ -26,7 +26,7 @@
#include <ctype.h>
/* states: S_N: normal, S_I: comparing integral part, S_F: comparing
Fractional parts, S_Z: idem but with leading Zeroes only */
fractional parts, S_Z: idem but with leading Zeroes only */
#define S_N 0x0
#define S_I 0x4
#define S_F 0x8
@@ -36,6 +36,7 @@
#define CMP 2
#define LEN 3
/* ISDIGIT differs from isdigit, as follows:
- Its arg may be any int or unsigned int; it need not be an unsigned char.
- It's guaranteed to evaluate its argument exactly once.
@@ -46,13 +47,20 @@
host does not conform to Posix. */
#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
#undef __strverscmp
#undef strverscmp
#ifndef weak_alias
# define __strverscmp strverscmp
#endif
/* Compare S1 and S2 as strings holding indices/version numbers,
returning less than, equal to or greater than zero if S1 is less than,
equal to or greater than S2 (for more info, see the texinfo doc).
*/
int
strverscmp (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;
@@ -120,3 +128,6 @@ strverscmp (const char *s1, const char *s2)
return state;
}
}
#ifdef weak_alias
weak_alias (__strverscmp, strverscmp)
#endif

202
lib/unicodeio.c Normal file
View File

@@ -0,0 +1,202 @@
/* Unicode character output to streams with locale dependent encoding.
Copyright (C) 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
/* Written by Bruno Haible <haible@clisp.cons.org>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if HAVE_STDDEF_H
# include <stddef.h>
#endif
#include <stdio.h>
#if HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#if HAVE_ICONV
# include <iconv.h>
#endif
#include <error.h>
#if ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#endif
#include "unicodeio.h"
/* When we pass a Unicode character to iconv(), we must pass it in a
suitable encoding. The standardized Unicode encodings are
UTF-8, UCS-2, UCS-4, UTF-16, UTF-16BE, UTF-16LE, UTF-7.
UCS-2 supports only characters up to \U0000FFFF.
UTF-16 and variants support only characters up to \U0010FFFF.
UTF-7 is way too complex and not supported by glibc-2.1.
UCS-4 specification leaves doubts about endianness and byte order
mark. glibc currently interprets it as big endian without byte order
mark, but this is not backed by an RFC.
So we use UTF-8. It supports characters up to \U7FFFFFFF and is
unambiguously defined. */
/* Stores the UTF-8 representation of the Unicode character wc in r[0..5].
Returns the number of bytes stored, or -1 if wc is out of range. */
static int
utf8_wctomb (unsigned char *r, unsigned int wc)
{
int count;
if (wc < 0x80)
count = 1;
else if (wc < 0x800)
count = 2;
else if (wc < 0x10000)
count = 3;
else if (wc < 0x200000)
count = 4;
else if (wc < 0x4000000)
count = 5;
else if (wc <= 0x7fffffff)
count = 6;
else
return -1;
switch (count)
{
/* Note: code falls through cases! */
case 6: r[5] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x4000000;
case 5: r[4] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x200000;
case 4: r[3] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x10000;
case 3: r[2] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x800;
case 2: r[1] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0xc0;
case 1: r[0] = wc;
}
return count;
}
/* Luckily, the encoding's name is platform independent. */
#define UTF8_NAME "UTF-8"
/* Outputs the Unicode character CODE to the output stream STREAM.
Assumes that the locale doesn't change between two calls. */
void
print_unicode_char (FILE *stream, unsigned int code)
{
static int initialized;
static int is_utf8;
#if HAVE_ICONV
static iconv_t utf8_to_local;
#endif
char inbuf[6];
int count;
if (!initialized)
{
extern const char *locale_charset PARAMS ((void));
const char *charset = locale_charset ();
is_utf8 = (charset != NULL && !strcmp (charset, UTF8_NAME));
#if HAVE_ICONV
if (!is_utf8)
{
utf8_to_local = (charset != NULL
? iconv_open (charset, UTF8_NAME)
: (iconv_t)(-1));
if (utf8_to_local == (iconv_t)(-1))
{
/* For an unknown encoding, assume ASCII. */
utf8_to_local = iconv_open ("ASCII", UTF8_NAME);
if (utf8_to_local == (iconv_t)(-1))
error (1, 0,
_("cannot output U+%04X: iconv function not usable"),
code);
}
}
#endif
initialized = 1;
}
/* Convert the character to UTF-8. */
count = utf8_wctomb ((unsigned char *) inbuf, code);
if (count < 0)
error (1, 0, _("U+%04X: character out of range"), code);
if (is_utf8)
{
fwrite (inbuf, 1, count, stream);
}
else
{
#if HAVE_ICONV
char outbuf[25];
const char *inptr;
size_t inbytesleft;
char *outptr;
size_t outbytesleft;
size_t res;
inptr = inbuf;
inbytesleft = count;
outptr = outbuf;
outbytesleft = sizeof (outbuf);
/* Convert the character from UTF-8 to the locale's charset. */
res = iconv (utf8_to_local,
(ICONV_CONST char **)&inptr, &inbytesleft,
&outptr, &outbytesleft);
if (inbytesleft > 0 || res == (size_t)(-1)
/* Irix iconv() inserts a NUL byte if it cannot convert. */
# if !defined _LIBICONV_VERSION && (defined sgi || defined __sgi)
|| (res > 0 && code != 0 && outptr - outbuf == 1 && *outbuf == '\0')
# endif
)
error (1, res == (size_t)(-1) ? errno : 0,
_("cannot convert U+%04X to local character set"), code);
/* Avoid glibc-2.1 bug and Solaris 2.7 bug. */
# if defined _LIBICONV_VERSION \
|| !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
/* Get back to the initial shift state. */
res = iconv (utf8_to_local, NULL, NULL, &outptr, &outbytesleft);
if (res == (size_t)(-1))
error (1, errno, _("cannot convert U+%04X to local character set"),
code);
# endif
fwrite (outbuf, 1, outptr - outbuf, stream);
#else
error (1, 0, _("cannot output U+%04X: iconv function not available"),
code);
#endif
}
}

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