Compare commits

...

150 Commits

Author SHA1 Message Date
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
124 changed files with 9129 additions and 7406 deletions

338
THANKS
View File

@@ -1,108 +1,236 @@
This is just a start at listing e-mail addresses of contributors.
The rest of the addresses are still in the ChangeLog.
Achim Blumensath: blume@corona.oche.de
aldomel: aldomel@ix.netcom.com
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
Alberto Accomazzi alberto@cfa0.harvard.edu
aldomel aldomel@ix.netcom.com
Alen Muzinic zveki@fly.cc.fer.hr
Alexey Solovyov alekso@math.uu.se
Andre Novaes Cunha Andre.Cunha@br.global-one.net
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 Dalke dalke@bioreason.com
Andrew Tridgell tridge@samba.org
Andries Brouwer Andries.Brouwer@cwi.nl
Andy Longton alongton@metamark.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
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
Brendan O'Dea bod@compusol.com.au
Brian Kimball bfk@footbag.org
Bruno Haible haible@ilog.fr
Carl Johnson carlj@cjlinux.home.org
Carl Lowenstein cdl@mpl.UCSD.EDU
Carlos Canau Carlos.Canau@relay.puug.pt
Charles Karney karney@pppl.gov
Chip Salzenberg chip@valinux.com
Chris Yeo cyeo@biking.org
Christi Alice Scarborough christi@chiark.greenend.org.uk
Christian Krackowizer kra1@technodat.co.at
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
Daniel Bergstrom noa@melody.se
David Dyck dcd@tc.fluke.COM
David Godfrey dave@delta.demon.co.uk
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
Ed Avis epa98@doc.ic.ac.uk
Edzer Pebesma Edzer.Pebesma@rivm.nl
Eirik Fuller eirik@netcom.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 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 Odhner geoff@franklin.com
Germano Leichsenring germano@jedi.cs.kobe-u.ac.jp
Greg McGary gkm@gnu.org
Greg Troxel gdt@bbn.com
Greg Wooledge gawooledge@sherwin.com
Göran Uddeborg goeran@uddeborg.pp.se
H. J. Lu hjl@valinux.com
Hans Verkuil hans@wyst.hobby.nl
Holger Berger hberger@ess.nec.de
Hugh Daniel hugh@xanadu.com
Ian Lance Taylor ian@cygnus.com
Ian Turner vectro@pipeline.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
James james@albion.glarp.com
Jamie Lokier jamie@imbolc.ucc.ie
Janos Farkas chexum@shadow.banki.hu
Jarkko Hietaniemi jhi@epsilon.hut.fi
Jeff Moore jbm@mordor.com
Jens Schmidt jms@jsds.hamburg.com
Jerome Abela abela@hsc.fr
Jesse Thilo jgt2@eecs.lehigh.edu
Jim Blandy jimb@cyclic.com
Jim Dennis jimd@starshine.org
Joakim Rosqvist dvljrt@cs.umu.se
Jochen Hein jochen.hein@delphi.central.de
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
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
Joseph S. Myers jsm28@cam.ac.uk
jvogel jvogel@linkny.com
Jürgen Fluk louis@dachau.marco.de
Kai-Uwe Rommel rommel@informatik.tu-muenchen.de
Kalle Olavi Niemitalo tosi@stekt.oulu.fi
Kamal Paul Nigam Kamal_Paul_Nigam@gs35.sp.cs.cmu.edu
Karl Heuer kwzh@gnu.org
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
Manas Garg manas@cygsoft.com
Manfred Hollstein manfred@s-direktnet.de
Marc Boucher marc@mbsi.ca
Marcus Daniels marcus@ee.pdx.edu
Mark A. Thomas thommark@access.digex.net
Mark Harris mark@monitor.designacc.com
Mark Hewitt mhewitt@armature.com
Mark Kettenis kettenis@phys.uva.nl
Mark W. Eichin eichin@cygnus.com
Markus Demleitner msdemlei@auriga.ari.uni-heidelberg.de
Martin Mitchell martin@debian.org
Martin P.J. Zinser zinser@decus.de
Martin martin@dresden.nacamar.de
Marty Leisner leisner@sdsp.mc.xerox.com
Masami Takikawa takikawm@CS.ORST.EDU
Matej Vela mvela@public.srce.hr
Matthew Braun matthew@ans.net
Matthew S. Levine mslevine@theory.lcs.mit.edu
Matthew Swift swift@alum.mit.edu
Matthias Urlichs smurf@noris.de
Meelis Roos mroos@tartu.cyber.ee
Michael ??? michael@roka.net
Michael Hasselberg mikelh@zonta.ping.de
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
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
Paul Eggert eggert@twinsun.com
Paul Nevai nevai@ops.mps.ohio-state.edu
Paul Slootman paul@debian.org
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
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
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
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
Vin Shelton acs@alumni.princeton.edu
Volker Borchert bt@teknon.de
Wayne Stewart wstewa@atl.com
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
Zvi Har'El rl@math.technion.ac.il
Ørn E. Hansen oehansen@daimi.aau.dk

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
@@ -98,6 +100,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -184,3 +184,14 @@ 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

View File

@@ -1,3 +1,97 @@
2000-02-27 Jim Meyering <meyering@lucent.com>
* strtoumax.c: Fix typo in decl of strtoul: s/long long/long/.
Guard declaration of strtoull also with `&& HAVE_UNSIGNED_LONG_LONG'.
* backupfile.c: Guard inclusion of stdlib.h with `#if HAVE_STDLIB_H',
not `#if STDC_HEADERS'.
Declare malloc if needed.
* backupfile.c: Use `#if !HAVE_DECL...' instead of `#ifndef HAVE_DECL..'
now that autoconf always defines the HAVE_DECL_ symbols.
* human.c: Likewise.
* same.c: Likewise.
* strtoumax.c: Likewise.
* backupfile.c: Arrange for cpp to fail if the configure-time
declaration check was not run.
* hash.c: Likewise.
* human.c: Likewise.
* same.c: Likewise.
* strtoumax.c: Likewise.
* userspec.c (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-18 Paul Eggert <eggert@twinsun.com>
* lib/getdate.y: 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-14 Paul Eggert <eggert@twinsun.com>
* lib/getpagesize.h (getpagesize): Port to VMS for Alpha;
adapted from changes to grep getpagesize.h by Martin P.J. Zinser.
2000-02-12 Jim Meyering <meyering@lucent.com>
* userspec.c (ISDIGIT): Define it.
(isdigit): Remove definition.
(is_number): Use ISDIGIT, not isdigit.
<libintl.h>: Include.
(_ and N_): Define.
(parse_user_spec): Mark translatable strings.
2000-02-10 Jim Meyering <meyering@lucent.com>
With these changes, nanosleep.[ch] are finally enough like the other
lib/* replacement files to compile on a few more losing systems.
* nanosleep.h: Don't include config.h.
Remove prototype from declaration of nanosleep.
(PARAMS): Remove now-unneeded definition.
* nanosleep.c: #undef nanosleep.
(rpl_nanosleep): Rename from nanosleep.
2000-02-03 Jim Meyering <meyering@lucent.com>
* readutmp.c (read_utmp): Guard with `#ifdef UTMP_NAME_FUNCTION',
rather than with `#if HAVE_UTMPNAME'.
2000-02-01 Jim Meyering <meyering@lucent.com>
* readutmp.h (UT_USER): Add parens. From Andreas Schwab.
2000-01-31 Jim Meyering <meyering@lucent.com>
* nanosleep.h (nanosleep): Guard declaration with
`#if ! HAVE_DECL_NANOSLEEP'.
Without this, OFS gets a redeclaration error for rpl_nanosleep, due to
the declaration in that vendor's sys/timers.h.
Reported by Christian Krackowizer.
* quotearg.c (ISASCII): Add #undef and move definition to follow
inclusion of wctype.h to work around solaris2.6 namespace pollution.
(ISPRINT): Likewise.
Reported by Tom Tromey.
2000-01-30 Jim Meyering <meyering@lucent.com>
* readutmp.c (extract_trimmed_name): Use UT_USER instead of hard-coding

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

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

@@ -85,6 +85,14 @@
#define TM_YEAR_BASE 1900
#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 ();
@@ -161,10 +168,21 @@ static int yylex ();
/* This grammar has 13 shift/reduce conflicts. */
%expect 13
%union
{
int intval;
textint textintval;
}
%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
%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;

View File

@@ -2,34 +2,40 @@
#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 */
#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 */

View File

@@ -1,5 +1,5 @@
/* hash - hashing table processing.
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000 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

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

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>
@@ -58,7 +63,7 @@ my_usleep (const struct timespec *ts_delay)
/* FIXME: comment */
int
nanosleep (const struct timespec *requested_delay,
rpl_nanosleep (const struct timespec *requested_delay,
struct timespec *remaining_delay)
{
#ifdef SA_NOCLDSTOP

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

@@ -26,12 +26,6 @@
#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>
@@ -73,6 +67,17 @@
#define INT_BITS (sizeof (int) * CHAR_BIT)
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
/* Undefine to protect against the definition in wctype.h of solaris2.6. */
# undef ISASCII
# define ISASCII(c) 1
#else
# define ISASCII(c) isascii (c)
#endif
/* Undefine to protect against the definition in wctype.h of solaris2.6. */
#undef ISPRINT
#define ISPRINT(c) (ISASCII (c) && isprint (c))
struct quoting_options
{
/* Basic quoting style. */

View File

@@ -57,7 +57,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)

View File

@@ -37,7 +37,9 @@
# 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>
# define UTMP_STRUCT_NAME utmp
@@ -45,18 +47,20 @@
# 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

View File

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

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

View File

@@ -1,5 +1,5 @@
/* userspec.c -- Parse a user and group string.
Copyright (C) 1989-1992, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1989-1992, 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
@@ -57,6 +57,14 @@ char *alloca ();
# include <unistd.h>
#endif
#if ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#endif
#define N_(Text) Text
#ifndef _POSIX_VERSION
struct passwd *getpwnam ();
struct group *getgrnam ();
@@ -83,7 +91,15 @@ struct group *getgrgid ();
} \
while (0)
#define isdigit(c) ((c) >= '0' && (c) <= '9')
/* ISDIGIT differs from isdigit, as follows:
- Its arg may be any int or unsigned int; it need not be an unsigned char.
- It's guaranteed to evaluate its argument exactly once.
- It's typically faster.
Posix 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that
only '0' through '9' are digits. Prefer ISDIGIT to isdigit unless
it's important to use the locale's definition of `digit' even when the
host does not conform to Posix. */
#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
#ifndef strdup
char *strdup ();
@@ -96,7 +112,7 @@ static int
is_number (const char *str)
{
for (; *str; str++)
if (!isdigit (*str))
if (!ISDIGIT (*str))
return 0;
return 1;
}
@@ -104,8 +120,12 @@ is_number (const char *str)
/* Extract from NAME, which has the form "[user][:.][group]",
a USERNAME, UID U, GROUPNAME, and GID G.
Either user or group, or both, must be present.
If the group is omitted but the ":" or "." separator is given,
If the group is omitted but the ":" separator is given,
use the given user's login group.
If SPEC_ARG contains a `:', then use that as the separator, ignoring
any `.'s. If there is no `:', but there is a `.', then first look
up SPEC_ARG as a login name. If that look-up fails, then try again
interpreting the `.' as a separator.
USERNAME and GROUPNAME will be in newly malloc'd memory.
Either one might be NULL instead, indicating that it was not
@@ -117,13 +137,22 @@ const char *
parse_user_spec (const char *spec_arg, uid_t *uid, gid_t *gid,
char **username_arg, char **groupname_arg)
{
static const char *tired = "virtual memory exhausted";
static const char *E_no_memory = N_("virtual memory exhausted");
static const char *E_invalid_user = N_("invalid user");
static const char *E_invalid_group = N_("invalid group");
static const char *E_bad_spec =
N_("cannot get the login group of a numeric UID");
static const char *E_cannot_omit_both =
N_("cannot omit both user and group");
const char *error_msg;
char *spec; /* A copy we can write on. */
struct passwd *pwd;
struct group *grp;
char *g, *u, *separator;
char *groupname;
int maybe_retry = 0;
char *dot = NULL;
error_msg = NULL;
*username_arg = *groupname_arg = NULL;
@@ -131,10 +160,24 @@ parse_user_spec (const char *spec_arg, uid_t *uid, gid_t *gid,
V_STRDUP (spec, spec_arg);
/* Find the separator if there is one. */
/* Find the POSIX `:' separator if there is one. */
separator = strchr (spec, ':');
/* If there is no colon, then see if there's a `.'. */
if (separator == NULL)
separator = strchr (spec, '.');
{
dot = strchr (spec, '.');
/* If there's no colon but there is a `.', then first look up the
whole spec, in case it's an OWNER name that includes a dot.
If that fails, then we'll try again, but interpreting the `.'
as a separator. */
/* FIXME: accepting `.' as the separator is contrary to POSIX.
someday we should drop support for this. */
if (dot)
maybe_retry = 1;
}
retry:
/* Replace separator with a NUL. */
if (separator != NULL)
@@ -149,7 +192,7 @@ parse_user_spec (const char *spec_arg, uid_t *uid, gid_t *gid,
: separator + 1);
if (u == NULL && g == NULL)
return "can not omit both user and group";
return _(E_cannot_omit_both);
#ifdef __DJGPP__
/* Pretend that we are the user U whose group is G. This makes
@@ -167,15 +210,18 @@ parse_user_spec (const char *spec_arg, uid_t *uid, gid_t *gid,
{
if (!is_number (u))
error_msg = "invalid user";
error_msg = _(E_invalid_user);
else
{
int use_login_group;
use_login_group = (separator != NULL && g == NULL);
if (use_login_group)
error_msg = "cannot get the login group of a numeric UID";
error_msg = _(E_bad_spec);
else
*uid = atoi (u);
{
/* FIXME: don't use atoi! */
*uid = atoi (u);
}
}
}
else
@@ -213,9 +259,12 @@ parse_user_spec (const char *spec_arg, uid_t *uid, gid_t *gid,
if (grp == NULL)
{
if (!is_number (g))
error_msg = "invalid group";
error_msg = _(E_invalid_group);
else
*gid = atoi (g);
{
/* FIXME: don't use atoi! */
*gid = atoi (g);
}
}
else
*gid = grp->gr_gid;
@@ -231,7 +280,7 @@ parse_user_spec (const char *spec_arg, uid_t *uid, gid_t *gid,
{
*username_arg = strdup (u);
if (*username_arg == NULL)
error_msg = tired;
error_msg = _(E_no_memory);
}
if (groupname != NULL && error_msg == NULL)
@@ -244,11 +293,19 @@ parse_user_spec (const char *spec_arg, uid_t *uid, gid_t *gid,
free (*username_arg);
*username_arg = NULL;
}
error_msg = tired;
error_msg = _(E_no_memory);
}
}
}
if (error_msg && maybe_retry)
{
maybe_retry = 0;
separator = dot;
error_msg = NULL;
goto retry;
}
return error_msg;
}

View File

@@ -1,3 +1,62 @@
2000-02-27 Jim Meyering <meyering@lucent.com>
* check-decl.m4: Add getenv to the list.
2000-02-23 Jim Meyering <meyering@lucent.com>
* check-decl.m4: Now that we have the new AC_CHECK_DECLS, use it
in place of my hack.
2000-02-10 Jim Meyering <meyering@lucent.com>
* nanosleep.m4 (jm_FUNC_NANOSLEEP): Rename replacement function from
gnu_nanosleep to rpl_nanosleep.
2000-02-09 Jim Meyering <meyering@lucent.com>
* lib-check.m4 (jm_LIB_CHECK): Fix typo: check for sp_pwdp in
struct spwd, rather than in struct passwd. Reported by Gaël Quéri.
2000-02-08 Akim Demaille <akim@epita.fr>
* largefile.m4 (AC_SYS_LARGEFILE_FLAGS): Quote square brackets with
`[' and `]' and remove uses of `changequote'.
(AC_SYS_LARGEFILE_MACRO_VALUE): Likewise.
(AC_SYS_LARGEFILE): Likewise.
* gettext.m4 (AM_GNU_GETTEXT): Likewise.
* strftime.m4 (jm_FUNC_GNU_STRFTIME): Remove now-unnecessary use
of changequote.
* regex.m4 (jm_INCLUDED_REGEX): Likewise.
* readdir.m4 (jm_FUNC_READDIR): Likewise
* memcmp.m4 (jm_AC_FUNC_MEMCMP): Likewise, and add `int' for main.
* getloadavg.m4 (AM_FUNC_GETLOADAVG): Likewise.
2000-02-05 Jim Meyering <meyering@lucent.com>
* jm-macros.m4: (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-03 Jim Meyering <meyering@lucent.com>
* prereq.m4 (jm_PREREQ_READUTMP): Check for utmpxname.
2000-02-02 Jim Meyering <meyering@lucent.com>
* prereq.m4 (jm_PREREQ_ADDEXT): Fix typo that resulted in no
definition of HAVE_PATHCONF: s/AC_CHECK_FUNC/AC_CHECK_FUNCS/.
Reported by Eli Zaretskii.
2000-01-31 Jim Meyering <meyering@lucent.com>
* check-decl.m4 (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-30 Jim Meyering <meyering@lucent.com>
* lib-check.m4: Clean up some kludgy old shadow password tests.

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -1,4 +1,4 @@
#serial 6
#serial 8
dnl This is just a wrapper function to encapsulate this kludge.
dnl Putting it in a separate file like this helps share it between
@@ -6,6 +6,7 @@ dnl different packages.
AC_DEFUN(jm_CHECK_DECLS,
[
AC_REQUIRE([_jm_DECL_HEADERS])
AC_REQUIRE([AC_HEADER_TIME])
headers='
#include <stdio.h>
#if HAVE_STRING_H
@@ -24,27 +25,23 @@ AC_DEFUN(jm_CHECK_DECLS,
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <sys/types.h>
#if TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
'
if test x = y; then
dnl This code is deliberately never run via ./configure.
dnl FIXME: this is a gross hack to make autoheader put entries
dnl for each of these symbols in the config.h.in.
dnl Otherwise, I'd have to update acconfig.h every time I change
dnl this list of functions.
AC_DEFINE(HAVE_DECL_FREE, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_LSEEK, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_MALLOC, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_MEMCHR, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_REALLOC, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_STPCPY, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_STRSTR, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_STRTOUL, 1, [Define if this function is declared.])
AC_DEFINE(HAVE_DECL_STRTOULL, 1, [Define if this function is declared.])
fi
jm_CHECK_DECLARATIONS($headers, free lseek malloc \
memchr realloc stpcpy strstr strtoul strtoull)
AC_CHECK_DECLS((free, getenv, lseek, malloc, memchr, nanosleep,
realloc, stpcpy, strstr, strtoul, strtoull),
, , $headers)
])
dnl FIXME: when autoconf has support for it.
@@ -52,5 +49,5 @@ dnl This is a little helper so we can require these header checks.
AC_DEFUN(_jm_DECL_HEADERS,
[
AC_REQUIRE([AC_HEADER_STDC])
AC_CHECK_HEADERS(memory.h string.h strings.h stdlib.h unistd.h)
AC_CHECK_HEADERS(memory.h string.h strings.h stdlib.h unistd.h sys/time.h)
])

View File

@@ -1,4 +1,4 @@
#serial 4
#serial 5
AC_DEFUN(AM_FUNC_GETLOADAVG,
[ac_have_func=no # yes means we've found a way to get the load average.
@@ -103,9 +103,7 @@ AC_SUBST(NEED_SETGID)dnl
if test $ac_cv_func_getloadavg_setgid = yes; then
AC_CACHE_CHECK(group of /dev/kmem, ac_cv_group_kmem,
changequote(<<, >>)dnl
<<
# On Solaris, /dev/kmem is a symlink. Get info on the real file.
[ # On Solaris, /dev/kmem is a symlink. Get info on the real file.
ac_ls_output=`ls -lgL /dev/kmem 2>/dev/null`
# If we got an error (system does not support symlinks), try without -L.
test -z "$ac_ls_output" && ac_ls_output=`ls -lg /dev/kmem`
@@ -113,8 +111,7 @@ changequote(<<, >>)dnl
| sed -ne 's/[ ][ ]*/ /g;
s/^.[sSrwx-]* *[0-9]* *\([^0-9]*\) *.*/\1/;
/ /s/.* //;p;'`
>>
changequote([, ])dnl
]
)
KMEM_GROUP=$ac_cv_group_kmem
fi

View File

@@ -6,7 +6,7 @@
# but which still want to provide support for the GNU gettext functionality.
# Please note that the actual code is *not* freely available.
# serial 107
# serial 108
AC_PREREQ(2.13) dnl Minimum Autoconf version required.
@@ -303,16 +303,14 @@ strdup __argz_count __argz_stringify __argz_next])
dnl Generate list of files to be processed by xgettext which will
dnl be included in po/Makefile.
test -d po || mkdir po
changequote(, )dnl
case "$srcdir" in
.)
posrcprefix="../" ;;
/* | [A-Za-z]:*)
/* | [[A-Za-z]]:*)
posrcprefix="$srcdir/" ;;
*)
posrcprefix="../$srcdir/" ;;
esac
changequote([, ])dnl
rm -f po/POTFILES
sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
< $srcdir/po/POTFILES.in > po/POTFILES

View File

@@ -1,4 +1,4 @@
#serial 12
#serial 13
dnl Misc type-related macros for fileutils, sh-utils, textutils.
@@ -190,32 +190,31 @@ AC_DEFUN(jm_MACROS,
AC_DEFUN(jm_CHECK_ALL_TYPES,
[
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_BIGENDIAN
AC_PROG_CC_STDC
AC_C_CONST
AC_C_INLINE
AC_C_LONG_DOUBLE
AC_REQUIRE([AC_C_BIGENDIAN])
AC_REQUIRE([AC_PROG_CC_STDC])
AC_REQUIRE([AC_C_CONST])
AC_REQUIRE([AC_C_INLINE])
AC_REQUIRE([AC_C_LONG_DOUBLE])
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_REQUIRE([AC_HEADER_DIRENT])
AC_REQUIRE([AC_HEADER_STDC])
AC_CHECK_MEMBERS((struct stat.st_blksize))
AC_STRUCT_ST_BLOCKS
AC_REQUIRE([AC_STRUCT_ST_BLOCKS])
AC_STRUCT_TM
AC_HEADER_TIME
AC_STRUCT_TIMEZONE
AC_HEADER_STAT
AC_STRUCT_ST_MTIM_NSEC
AC_STRUCT_ST_DM_MODE
AC_REQUIRE([AC_STRUCT_TM])
AC_REQUIRE([AC_STRUCT_TIMEZONE])
AC_REQUIRE([AC_HEADER_STAT])
AC_REQUIRE([AC_STRUCT_ST_MTIM_NSEC])
AC_REQUIRE([AC_STRUCT_ST_DM_MODE])
AC_REQUIRE([jm_CHECK_TYPE_STRUCT_TIMESPEC])
AC_TYPE_GETGROUPS
AC_TYPE_MODE_T
AC_TYPE_OFF_T
AC_TYPE_PID_T
AC_TYPE_SIGNAL
AC_TYPE_SIZE_T
AC_TYPE_UID_T
AC_REQUIRE([AC_TYPE_GETGROUPS])
AC_REQUIRE([AC_TYPE_MODE_T])
AC_REQUIRE([AC_TYPE_OFF_T])
AC_REQUIRE([AC_TYPE_PID_T])
AC_REQUIRE([AC_TYPE_SIGNAL])
AC_REQUIRE([AC_TYPE_SIZE_T])
AC_REQUIRE([AC_TYPE_UID_T])
AC_CHECK_TYPE(ino_t, unsigned long)
dnl This relies on the fact that autoconf 2.14a's implementation of

View File

@@ -1,4 +1,4 @@
#serial 7
#serial 8
dnl By default, many hosts won't let programs access large files;
dnl one must use special compiler options to get large-file access to work.
@@ -20,17 +20,13 @@ AC_DEFUN(AC_SYS_LARGEFILE_FLAGS,
ifelse($1, CFLAGS,
[case "$host_os" in
# HP-UX 10.20 requires -D__STDC_EXT__ with gcc 2.95.1.
changequote(, )dnl
hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)
changequote([, ])dnl
[ hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)]
if test "$GCC" = yes; then
ac_cv_sys_largefile_CFLAGS=-D__STDC_EXT__
fi
;;
# IRIX 6.2 and later require cc -n32.
changequote(, )dnl
irix6.[2-9]* | irix6.1[0-9]* | irix[7-9].* | irix[1-9][0-9]*)
changequote([, ])dnl
[ irix6.[2-9]* | irix6.1[0-9]* | irix[7-9].* | irix[1-9][0-9]*)]
if test "$GCC" != yes; then
ac_cv_sys_largefile_CFLAGS=-n32
fi
@@ -61,17 +57,15 @@ dnl AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, CACHE-VAR, COMMENT, CODE-TO-SET-DEFAUL
AC_DEFUN(AC_SYS_LARGEFILE_MACRO_VALUE,
[AC_CACHE_CHECK([for $1], $2,
[$2=no
changequote(, )dnl
$4
for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do
case "$ac_flag" in
-D$1)
$2=1 ;;
-D$1=*)
$2=`expr " $ac_flag" : '[^=]*=\(.*\)'` ;;
$2=`expr " $ac_flag" : '[[^=]]*=\(.*\)'` ;;
esac
done
changequote([, ])dnl
])
if test "[$]$2" != no; then
AC_DEFINE_UNQUOTED([$1], [$]$2, [$3])
@@ -106,7 +100,7 @@ AC_DEFUN(AC_SYS_LARGEFILE,
[Number of bits in a file offset, on hosts where this is settable.],
[case "$host_os" in
# HP-UX 10.20 and later
hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)
[ hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)]
ac_cv_sys_file_offset_bits=64 ;;
esac])
AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE,
@@ -114,7 +108,7 @@ AC_DEFUN(AC_SYS_LARGEFILE,
[Define to make fseeko etc. visible, on some hosts.],
[case "$host_os" in
# HP-UX 10.20 and later
hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)
[ hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)]
ac_cv_sys_largefile_source=1 ;;
esac])
AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES,
@@ -122,7 +116,7 @@ AC_DEFUN(AC_SYS_LARGEFILE,
[Define for large files, on AIX-style hosts.],
[case "$host_os" in
# AIX 4.2 and later
aix4.[2-9]* | aix4.1[0-9]* | aix[5-9].* | aix[1-9][0-9]*)
[ aix4.[2-9]* | aix4.1[0-9]* | aix[5-9].* | aix[1-9][0-9]*)]
ac_cv_sys_large_files=1 ;;
esac])
fi

View File

@@ -43,7 +43,7 @@ AC_DEFUN(jm_LIB_CHECK,
AC_SEARCH_LIBS(getspnam, [shadow sec])
# Requirements for su.c.
AC_CHECK_MEMBERS((struct passwd.sp_pwdp))
AC_CHECK_MEMBERS((struct spwd.sp_pwdp))
AC_CHECK_FUNCS(getspnam)
AC_CHECK_HEADERS(shadow.h)

View File

@@ -1,13 +1,12 @@
#serial 3
#serial 4
dnl A replacement for autoconf's AC_FUNC_MEMCMP that detects
dnl the losing memcmp on some x86 Next systems.
AC_DEFUN(jm_AC_FUNC_MEMCMP,
[AC_CACHE_CHECK([for working memcmp], jm_cv_func_memcmp_working,
[AC_TRY_RUN(
changequote(<<, >>)dnl
<<
main()
[int
main ()
{
/* Some versions of memcmp are not 8-bit clean. */
char c0 = 0x40, c1 = 0x80, c2 = 0x81;
@@ -32,9 +31,7 @@ main()
}
exit (0);
}
}
>>,
changequote([, ])dnl
}],
jm_cv_func_memcmp_working=yes,
jm_cv_func_memcmp_working=no,
jm_cv_func_memcmp_working=no)])

View File

@@ -1,4 +1,4 @@
#serial 4
#serial 5
dnl From Jim Meyering.
dnl Check for the nanosleep function.
@@ -44,7 +44,7 @@ AC_DEFUN(jm_FUNC_NANOSLEEP,
if test $jm_cv_func_nanosleep_works = no; then
AC_SUBST(LIBOBJS)
LIBOBJS="$LIBOBJS nanosleep.$ac_objext"
AC_DEFINE_UNQUOTED(nanosleep, gnu_nanosleep,
[Define to gnu_nanosleep if the replacement function should be used.])
AC_DEFINE_UNQUOTED(nanosleep, rpl_nanosleep,
[Define to rpl_nanosleep if the replacement function should be used.])
fi
])

View File

@@ -17,7 +17,7 @@ AC_DEFUN(jm_PREREQ_ADDEXT,
[
dnl For addext.c.
AC_SYS_LONG_FILE_NAMES
AC_CHECK_FUNC(pathconf)
AC_CHECK_FUNCS(pathconf)
AC_CHECK_HEADERS(limits.h string.h unistd.h)
])
@@ -50,6 +50,7 @@ AC_DEFUN(jm_PREREQ_READUTMP,
AC_HEADER_STDC
AC_CHECK_HEADERS(string.h utmpx.h sys/param.h)
AC_CHECK_FUNCS(utmpname)
AC_CHECK_FUNCS(utmpxname)
AM_C_PROTOTYPES
utmp_includes="\

View File

@@ -1,4 +1,4 @@
#serial 2
#serial 3
dnl SunOS's readdir is broken in such a way that rm.c has to add extra code
dnl to test whether a NULL return value really means there are no more files
@@ -23,9 +23,7 @@ AC_CACHE_CHECK([for working readdir], jm_cv_func_working_readdir,
ac_clean_files="$ac_clean_files conf-dir"
AC_TRY_RUN(
changequote(<<, >>)dnl
<<
# include <stdio.h>
[# include <stdio.h>
# include <sys/types.h>
# if HAVE_STRING_H
# include <string.h>
@@ -119,9 +117,7 @@ AC_CACHE_CHECK([for working readdir], jm_cv_func_working_readdir,
create_300_file_dir (dir);
remove_dir (dir);
exit (0);
}
>>,
changequote([, ])dnl
}],
jm_cv_func_working_readdir=yes,
jm_cv_func_working_readdir=no,
jm_cv_func_working_readdir=no)])

View File

@@ -1,4 +1,4 @@
#serial 5
#serial 6
dnl Initially derived from code in GNU grep.
dnl Mostly written by Jim Meyering.
@@ -21,9 +21,7 @@ AC_DEFUN(jm_INCLUDED_REGEX,
AC_CACHE_CHECK([for working re_compile_pattern],
jm_cv_func_working_re_compile_pattern,
AC_TRY_RUN(
changequote(<<, >>)dnl
<<
#include <stdio.h>
[#include <stdio.h>
#include <regex.h>
int
main ()
@@ -37,9 +35,7 @@ AC_DEFUN(jm_INCLUDED_REGEX,
/* This should fail with _Invalid character class name_ error. */
exit (s ? 0 : 1);
}
>>,
changequote([, ])dnl
],
jm_cv_func_working_re_compile_pattern=yes,
jm_cv_func_working_re_compile_pattern=no,
dnl When crosscompiling, assume it's broken.

View File

@@ -1,4 +1,4 @@
#serial 8
#serial 9
dnl This macro is intended to be used solely in this file.
dnl These are the prerequisite macros for GNU's strftime.c replacement.
@@ -36,8 +36,7 @@ AC_DEFUN(jm_FUNC_GNU_STRFTIME,
AC_CHECK_HEADERS(sys/time.h)
AC_CACHE_CHECK([for working GNU strftime], jm_cv_func_working_gnu_strftime,
[AC_TRY_RUN(
changequote(<<, >>)dnl
<< /* Ulrich Drepper provided parts of the test program. */
[ /* Ulrich Drepper provided parts of the test program. */
#if STDC_HEADERS
# include <stdlib.h>
#endif
@@ -134,9 +133,7 @@ main ()
CMP ("%z", "+0000"); /* GNU */
exit (n_fail ? 1 : 0);
}
>>,
changequote([, ])dnl
}],
jm_cv_func_working_gnu_strftime=yes,
jm_cv_func_working_gnu_strftime=no,
dnl When crosscompiling, assume strftime is missing or broken.

View File

@@ -1,4 +1,4 @@
[NAME]
chgrp \- change group ownership
[DESCRIPTION]
." Add any additional description here
.\" Add any additional description here

View File

@@ -1,4 +1,4 @@
[NAME]
dircolors \- color setup for ls
[DESCRIPTION]
." Add any additional description here
.\" Add any additional description here

View File

@@ -1,4 +1,4 @@
[NAME]
du \- estimate file space usage
[DESCRIPTION]
." Add any additional description here
.\" Add any additional description here

View File

@@ -1,4 +1,4 @@
[NAME]
ln \- make links between files
[DESCRIPTION]
." Add any additional description here
.\" Add any additional description here

View File

@@ -1,4 +1,4 @@
[NAME]
ls \- list directory contents
[DESCRIPTION]
." Add any additional description here
.\" Add any additional description here

View File

@@ -1,4 +1,4 @@
[NAME]
mkdir \- make directories
[DESCRIPTION]
." Add any additional description here
.\" Add any additional description here

View File

@@ -1,4 +1,4 @@
[NAME]
mkfifo \- make FIFOs (named pipes)
[DESCRIPTION]
." Add any additional description here
.\" Add any additional description here

View File

@@ -1,4 +1,4 @@
[NAME]
mknod \- make block or character special files
[DESCRIPTION]
." Add any additional description here
.\" Add any additional description here

View File

@@ -1,4 +1,4 @@
[NAME]
mv \- move (rename) files
[DESCRIPTION]
." Add any additional description here
.\" Add any additional description here

View File

@@ -1,4 +1,4 @@
[NAME]
rmdir \- remove empty directories
[DESCRIPTION]
." Add any additional description here
.\" Add any additional description here

View File

@@ -1,4 +1,4 @@
[NAME]
shred \- delete a file securely, first overwriting it to hide its contents
[DESCRIPTION]
." Add any additional description here
.\" Add any additional description here

View File

@@ -1,4 +1,4 @@
[NAME]
sync \- flush filesystem buffers
[DESCRIPTION]
." Add any additional description here
.\" Add any additional description here

View File

@@ -1,4 +1,4 @@
[NAME]
touch \- change file timestamps
[DESCRIPTION]
." Add any additional description here
.\" Add any additional description here

View File

@@ -1,4 +1,4 @@
[NAME]
vdir \- list directory contents
[DESCRIPTION]
." Add any additional description here
.\" Add any additional description here

View File

@@ -1,3 +1,108 @@
2000-02-27 Jim Meyering <meyering@lucent.com>
* Version 4.0q.
* src/sys2.h: Guard declaration of strtoull also with
`&& HAVE_UNSIGNED_LONG_LONG'.
* src/sys2.h: Use `#if !HAVE_DECL...' instead of `#ifndef HAVE_DECL...'
now that autoconf always defines the HAVE_DECL_ symbols.
* src/install.c (install_file_to_path): Always use install_file_in_file.
Based on a patch from Adam Klein via Michael Stone.
* tests/install/Makefile.am (TESTS): Add create-leading.
* tests/install/create-leading: New file.
* tests/install/basic-1: Clean up.
* tests/install/Makefile.am (TESTS_ENVIRONMENT): Add PATH. Remove cruft.
2000-02-26 Jim Meyering <meyering@lucent.com>
Tranform the generated src/Makefile.in file so it falls back on
using /bin/rm when necessary. The old rule didn't always work.
This is necessary only on certain losing systems, and because this
package builds an `rm' executable and some people put `.' too
early in their PATH.
* Makefile.am (DISTCLEANFILES): Remove .deps and `FIXME' comment.
(EXTRA_DIST): Add .kludge-stamp.
(.kludge-stamp): New rule.
* src/Makefile.am (AUTOMAKE): Remove definition.
(Makefile.in): Remove dependency on automake-wrap script.
(EXTRA_DIST): Remove automake-wrap.
* src/automake-wrap: Remove file.
* tests/rm/r-2: Don't make the success of the test depend on the
order in which directory entries are processed.
Reported by Andreas Schwab.
2000-02-12 Jim Meyering <meyering@lucent.com>
* po/POTFILES.in: Add lib/userspec.c.
* doc/fileutils.texi (chown invocation): Deprecate use of `.'.
* src/chown.c (usage): Mention only `:', and not `.' as the separator,
since POSIX allows only the former.
Prompted by a report from Manas Garg.
2000-02-11 Jim Meyering <meyering@lucent.com>
* src/df.c (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-10 Jim Meyering <meyering@lucent.com>
Make du work when invoked from an unreadable directory.
* src/du.c (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-09 Jim Meyering <meyering@lucent.com>
* tests/mv/mv-special-1: Use $null and $dir in place of literals
in `here' script.
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-05 Jim Meyering <meyering@lucent.com>
* src/copy.c (copy_internal): Don't allow mv to move a directory onto
a non-directory. Reported by Brian Kimball via Michael Stone.
2000-02-03 Jim Meyering <meyering@lucent.com>
* tests/mv/Makefile.am (TESTS): Add dir-file.
(TESTS_ENVIRONMENT): Remove vestiges of old tests.
* tests/mv/dir-file: New file.
2000-02-02 Jim Meyering <meyering@lucent.com>
* tests/touch/Makefile.am (TESTS): Add fifo.
* tests/touch/fifo (fail): New file.
2000-02-01 Jim Meyering <meyering@lucent.com>
* src/touch.c (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.
* man/*.x: Change ." to .\".
Reported by Andreas Schwab and Brendan O'Dea.
2000-01-31 Jim Meyering <meyering@lucent.com>
* man/Makefile.maint (ginstall_filter): Define.
($(man_MANS)): Use it here so that the install.1 man page refers
to `install', not `ginstall'. Reported by Andreas Schwab.
2000-01-30 Jim Meyering <meyering@lucent.com>
* Version 4.0p.

View File

@@ -1,4 +1,15 @@
Changes in release 4.1:
[4.0q]
* install -D bug is fixed
* chown now works properly when the specified login name contains a period
This is at the expense of always looking up the entire USER.GROUP string
as a login name first, and only then (upon failure) interpreting the `.'
as a separator and looking up `USER'. To avoid the extra getpwnam call,
always use the POSIX-mandated `:' character as the separator.
* `du some-other-dir' no longer fails if it can't open the current directory
* `mv DIR EXISTING-FILE' no longer removes EXISTING-FILE. Now it gets an error
as POSIX says it must.
* touch no longer hangs on fifos
[4.0p]
* various tools: quote multibyte characters correctly in diagnostics
* mv: portability fix for alpha

View File

@@ -1,3 +1,37 @@
2000-02-22 Jim Meyering <meyering@lucent.com>
* tests/date/Test.pm (datevtime-1): New test.
From John Kendall.
2000-02-15 Jim Meyering <meyering@lucent.com>
* man/Makefile.maint ($(man_MANS)): Remove $@-t1.
2000-02-13 Jim Meyering <meyering@lucent.com>
* tests/Fetish.pm (run_tests): Discard stderr.
Reverse diff args, so `expected' is last, as in mk-script.
2000-02-12 Jim Meyering <meyering@lucent.com>
* tests/mk-script: Invoke `diff' when differences are found.
* tests/Fetish.pm (run_tests): Likewise.
2000-02-09 Jim Meyering <meyering@lucent.com>
* src/su.c (correct_password): Correct HAVE_STRUCT_* name in #if guard
to go along with corrected autoconf test: Reported by Gaël Quéri.
2000-02-05 Jim Meyering <meyering@lucent.com>
* Version 2.0f.
* src/who.c: Use UT_USER in place of hard-coded `->ut_name' here, too.
* src/pinky.c: Likewise.
Reported by Tom Tromey and Andreas Schwab.
* src/uptime.c (print_uptime): Likewise.
* src/users.c (list_entries_users): Likewise.
2000-01-30 Jim Meyering <meyering@lucent.com>
* Version 2.0e.

View File

@@ -1,4 +1,6 @@
Changes in release 2.1
[2.0f]
* fix build problems with ut_name vs. ut_user
[2.0e]
* stty: fix long-standing bug that caused test failures on at least HPUX
systems when COLUMNS was set to zero

View File

@@ -1,4 +1,6 @@
Changes in release 2.1
[2.0e]
* configure and portability changes in m4/ and lib/
[2.0d]
* preliminary sort performance improvements
* tsort now works more like the traditional UNIX tsort. Before it would

View File

@@ -1,5 +1,5 @@
/* chown -- change user and group ownership of files
Copyright (C) 89, 90, 91, 1995-1999 Free Software Foundation, Inc.
Copyright (C) 89, 90, 91, 1995-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
@@ -295,8 +295,8 @@ usage (int status)
else
{
printf (_("\
Usage: %s [OPTION]... OWNER[.[GROUP]] FILE...\n\
or: %s [OPTION]... .GROUP FILE...\n\
Usage: %s [OPTION]... OWNER[:[GROUP]] FILE...\n\
or: %s [OPTION]... :GROUP FILE...\n\
or: %s [OPTION]... --reference=RFILE FILE...\n\
"),
program_name, program_name, program_name);
@@ -311,14 +311,14 @@ Change the owner and/or group of each FILE to OWNER and/or GROUP.\n\
ownership of a symlink)\n\
-f, --silent, --quiet suppress most error messages\n\
--reference=RFILE use RFILE's owner and group rather than\n\
the specified OWNER.GROUP values\n\
the specified OWNER:GROUP values\n\
-R, --recursive operate on files and directories recursively\n\
-v, --verbose output a diagnostic for every file processed\n\
--help display this help and exit\n\
--version output version information and exit\n\
\n\
Owner is unchanged if missing. Group is unchanged if missing, but changed\n\
to login group if implied by a period. A colon may replace the period.\n\
to login group if implied by a `:'.\n\
"));
puts (_("\nReport bugs to <bug-fileutils@gnu.org>."));
close_stdout ();

View File

@@ -507,11 +507,23 @@ copy_internal (const char *src_path, const char *dst_path,
return (move_mode ? 1 : 0);
}
/* In move_mode, DEST may not be an existing directory. */
if (move_mode && S_ISDIR (dst_sb.st_mode))
if (move_mode)
{
error (0, 0, _("%s: cannot overwrite directory"), dst_path);
return 1;
/* In move_mode, DEST may not be an existing directory. */
if (S_ISDIR (dst_sb.st_mode))
{
error (0, 0, _("%s: cannot overwrite directory"), dst_path);
return 1;
}
/* Don't allow user to move a directory onto a non-directory. */
if (S_ISDIR (src_sb.st_mode) && !S_ISDIR (dst_sb.st_mode))
{
error (0, 0,
_("cannot move directory onto non-directory: %s -> %s"),
src_path, dst_path);
return 1;
}
}
if (x->backup_type != none && !S_ISDIR (dst_sb.st_mode))

View File

@@ -762,6 +762,7 @@ main (int argc, char **argv)
{
int c;
struct stat *stats IF_LINT (= 0);
int n_valid_args = 0;
program_name = argv[0];
setlocale (LC_ALL, "");
@@ -877,12 +878,18 @@ main (int argc, char **argv)
stats = (struct stat *)
xmalloc ((argc - optind) * sizeof (struct stat));
for (i = optind; i < argc; ++i)
if (stat (argv[i], &stats[i - optind]))
{
error (0, errno, "%s", argv[i]);
exit_status = 1;
argv[i] = NULL;
}
{
if (stat (argv[i], &stats[i - optind]))
{
error (0, errno, "%s", argv[i]);
exit_status = 1;
argv[i] = NULL;
}
else
{
++n_valid_args;
}
}
}
mount_list =
@@ -917,7 +924,9 @@ main (int argc, char **argv)
/* Display explicitly requested empty filesystems. */
show_listed_fs = 1;
print_header ();
if (n_valid_args > 0)
print_header ();
for (i = optind; i < argc; ++i)
if (argv[i])
show_entry (argv[i], &stats[i - optind]);

View File

@@ -145,9 +145,6 @@ static String *path;
/* Pointer to hash structure, used by the hash routines. */
static struct htab *htab;
/* Globally used stat buffer. */
static struct stat stat_buf;
/* A pointer to either lstat or stat, depending on whether
dereferencing of all symbolic links is to be done. */
static int (*xstat) ();
@@ -457,17 +454,41 @@ hash_insert (ino_t ino, dev_t dev)
return hash_insert2 (htab_r, ino, dev);
}
/* Restore the previous working directory or exit.
If THROUGH_SYMLINK is non-zero, simply call `chdir ("..")'. Otherwise,
use CWD and free it. CURR_DIR_NAME is the name of the current directory
and is used solely in failure diagnostics. */
static void
pop_dir (int through_symlink, struct saved_cwd *cwd, const char *curr_dir_name)
{
if (through_symlink)
{
if (restore_cwd (cwd, "..", curr_dir_name))
exit (1);
free_cwd (cwd);
}
else if (chdir ("..") < 0)
{
error (1, errno, _("cannot change to `..' from directory %s"),
curr_dir_name);
}
}
/* Print (if appropriate) the size (in units determined by `output_block_size')
of file or directory ENT. Return the size of ENT in units of 512-byte
blocks. TOP is one for external calls, zero for recursive calls.
LAST_DEV is the device that the parent directory of ENT is on.
DEPTH is the number of levels (in hierarchy) down from a command
line argument. Don't print if DEPTH > max_depth. */
line argument. Don't print if DEPTH > max_depth.
An important invariant is that when this function returns, the current
working directory is the same as when it was called. */
static uintmax_t
count_entry (const char *ent, int top, dev_t last_dev, int depth)
{
uintmax_t size;
struct stat stat_buf;
if (((top && opt_dereference_arguments)
? stat (ent, &stat_buf)
@@ -527,15 +548,7 @@ count_entry (const char *ent, int top, dev_t last_dev, int depth)
if (errno)
{
error (0, errno, "%s", path->text);
if (through_symlink)
{
if (restore_cwd (&cwd, "..", path->text))
exit (1);
free_cwd (&cwd);
}
else if (chdir ("..") < 0)
error (1, errno, _("cannot change to `..' from directory %s"),
path->text);
pop_dir (through_symlink, &cwd, path->text);
exit_status = 1;
return 0;
}
@@ -559,16 +572,7 @@ count_entry (const char *ent, int top, dev_t last_dev, int depth)
}
free (name_space);
if (through_symlink)
{
restore_cwd (&cwd, "..", path->text);
free_cwd (&cwd);
}
else if (chdir ("..") < 0)
{
error (1, errno,
_("cannot change to `..' from directory %s"), path->text);
}
pop_dir (through_symlink, &cwd, path->text);
str_trunc (path, pathlen - 1); /* Remove the "/" we added. */
if (depth <= max_depth || top)
@@ -592,20 +596,8 @@ count_entry (const char *ent, int top, dev_t last_dev, int depth)
static void
du_files (char **files)
{
struct saved_cwd cwd;
ino_t initial_ino; /* Initial directory's inode. */
dev_t initial_dev; /* Initial directory's device. */
int i; /* Index in FILES. */
if (save_cwd (&cwd))
exit (1);
/* Remember the inode and device number of the current directory. */
if (stat (".", &stat_buf))
error (1, errno, _("current directory"));
initial_ino = stat_buf.st_ino;
initial_dev = stat_buf.st_dev;
for (i = 0; files[i]; i++)
{
char *arg;
@@ -631,21 +623,10 @@ du_files (char **files)
hash_reset ();
count_entry (arg, 1, 0, 0);
/* chdir if `count_entry' has changed the working directory. */
if (stat (".", &stat_buf))
error (1, errno, ".");
if (stat_buf.st_ino != initial_ino || stat_buf.st_dev != initial_dev)
{
if (restore_cwd (&cwd, _("starting directory"), NULL))
exit (1);
}
}
if (opt_combined_arguments)
print_size (tot_size, _("total"));
free_cwd (&cwd);
}
int

View File

@@ -1,5 +1,5 @@
/* install - copy files and set attributes
Copyright (C) 89, 90, 91, 1995-1999 Free Software Foundation, Inc.
Copyright (C) 89, 90, 91, 1995-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
@@ -393,7 +393,7 @@ install_file_to_path (const char *from, const char *to,
const struct cp_options *x)
{
char *dest_dir;
int fail;
int fail = 0;
dest_dir = dir_name (to);
@@ -408,14 +408,10 @@ install_file_to_path (const char *from, const char *to,
#define DIR_MODE (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)
fail = make_path (dest_dir, DIR_MODE, DIR_MODE, owner_id, group_id, 0,
(x->verbose ? _("creating directory `%s'") : NULL));
}
if (fail == 0)
fail = install_file_in_dir (from, dest_dir, x);
}
else
{
fail = install_file_in_file (from, to, x);
}
if (fail == 0)
fail = install_file_in_file (from, to, x);
free (dest_dir);

View File

@@ -1,5 +1,5 @@
/* GNU's pinky.
Copyright (C) 1992-1997, 1999 Free Software Foundation, Inc.
Copyright (C) 1992-1997, 1999, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -199,15 +199,15 @@ print_entry (const STRUCT_UTMP *utmp_ent)
last_change = 0;
}
printf ("%-8.*s", (int) sizeof (utmp_ent->ut_name), utmp_ent->ut_name);
printf ("%-8.*s", (int) sizeof (UT_USER (utmp_ent)), UT_USER (utmp_ent));
if (include_fullname)
{
struct passwd *pw;
char name[sizeof (utmp_ent->ut_name) + 1];
char name[sizeof (UT_USER (utmp_ent)) + 1];
strncpy (name, utmp_ent->ut_name, sizeof (utmp_ent->ut_name));
name[sizeof (utmp_ent->ut_name)] = '\0';
strncpy (name, UT_USER (utmp_ent), sizeof (UT_USER (utmp_ent)));
name[sizeof (UT_USER (utmp_ent))] = '\0';
pw = getpwnam (name);
if (pw == NULL)
printf (" %19s", " ???");
@@ -405,7 +405,7 @@ scan_entries (int n, const STRUCT_UTMP *utmp_buf,
while (n--)
{
if (utmp_buf->ut_name[0]
if (UT_USER (utmp_buf)[0]
#ifdef USER_PROCESS
&& utmp_buf->ut_type == USER_PROCESS
#endif
@@ -416,8 +416,8 @@ scan_entries (int n, const STRUCT_UTMP *utmp_buf,
int i;
for (i = 0; i < argc_names; i++)
if (strncmp (utmp_buf->ut_name, argv_names[i],
sizeof (utmp_buf->ut_name)) == 0)
if (strncmp (UT_USER (utmp_buf), argv_names[i],
sizeof (UT_USER (utmp_buf))) == 0)
{
print_entry (utmp_buf);
break;

View File

@@ -275,7 +275,7 @@ static int
correct_password (const struct passwd *pw)
{
char *unencrypted, *encrypted, *correct;
#if HAVE_GETSPNAM && HAVE_STRUCT_PASSWD_SP_PWDP
#if HAVE_GETSPNAM && HAVE_STRUCT_SPWD_SP_PWDP
/* Shadow passwd stuff for SVR3 and maybe other systems. */
struct spwd *sp = getspnam (pw->pw_name);

View File

@@ -261,47 +261,47 @@ char *alloca ();
#define STREQ(a, b) (strcmp ((a), (b)) == 0)
#ifndef HAVE_DECL_FREE
#if !HAVE_DECL_FREE
void free ();
#endif
#ifndef HAVE_DECL_MALLOC
#if !HAVE_DECL_MALLOC
char *malloc ();
#endif
#ifndef HAVE_DECL_MEMCHR
#if !HAVE_DECL_MEMCHR
char *memchr ();
#endif
#ifndef HAVE_DECL_REALLOC
#if !HAVE_DECL_REALLOC
char *realloc ();
#endif
#ifndef HAVE_DECL_STPCPY
#if !HAVE_DECL_STPCPY
# ifndef stpcpy
char *stpcpy ();
# endif
#endif
#ifndef HAVE_DECL_STRSTR
#if !HAVE_DECL_STRSTR
char *strstr ();
#endif
#ifndef HAVE_DECL_GETENV
#if !HAVE_DECL_GETENV
char *getenv ();
#endif
#ifndef HAVE_DECL_LSEEK
#if !HAVE_DECL_LSEEK
off_t lseek ();
#endif
/* This is needed on some AIX systems. */
#ifndef HAVE_DECL_STRTOUL
#if !HAVE_DECL_STRTOUL
unsigned long strtoul ();
#endif
/* This is needed on some AIX systems. */
#ifndef HAVE_DECL_STRTOULL
#if !HAVE_DECL_STRTOULL && HAVE_UNSIGNED_LONG_LONG
unsigned long long strtoull ();
#endif

View File

@@ -1,5 +1,5 @@
/* touch -- change modification and access times of files
Copyright (C) 87, 1989-1991, 1995-1999 Free Software Foundation, Inc.
Copyright (C) 87, 1989-1991, 1995-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,14 @@ time_t time ();
#define CH_ATIME 1
#define CH_MTIME 2
#if !defined O_NDELAY
# define O_NDELAY 0
#endif
#if !defined O_NONBLOCK
# define O_NONBLOCK O_NDELAY
#endif
/* The name by which this program was run. */
char *program_name;
@@ -123,7 +131,7 @@ touch (const char *file)
if (! no_create)
{
/* Try to open FILE, creating it if necessary. */
fd = open (file, O_WRONLY | O_CREAT,
fd = open (file, O_WRONLY | O_CREAT | O_NONBLOCK,
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
if (fd == -1)
open_errno = errno;

View File

@@ -1,5 +1,5 @@
/* GNU's uptime.
Copyright (C) 1992-1999 Free Software Foundation, Inc.
Copyright (C) 1992-2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -79,7 +79,7 @@ print_uptime (int n, const STRUCT_UTMP *this)
ones, also in the process possibly gleaning boottime. */
while (n--)
{
if (this->ut_name[0]
if (UT_USER (this) [0]
#ifdef USER_PROCESS
&& this->ut_type == USER_PROCESS
#endif

View File

@@ -1,5 +1,5 @@
/* GNU's users.
Copyright (C) 1992-1999 Free Software Foundation, Inc.
Copyright (C) 1992-2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -58,7 +58,7 @@ list_entries_users (int n, const STRUCT_UTMP *this)
u = (char **) xmalloc (n * sizeof (u[0]));
for (i = 0; i < n; i++)
{
if (this->ut_name[0]
if (UT_USER (this) [0]
#ifdef USER_PROCESS
&& this->ut_type == USER_PROCESS
#endif

View File

@@ -1,5 +1,5 @@
/* GNU's who.
Copyright (C) 1992-1999 Free Software Foundation, Inc.
Copyright (C) 1992-2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -153,7 +153,7 @@ print_entry (const STRUCT_UTMP *utmp_ent)
last_change = 0;
}
printf ("%-8.*s", (int) sizeof (utmp_ent->ut_name), utmp_ent->ut_name);
printf ("%-8.*s", (int) sizeof (UT_USER (utmp_ent)), UT_USER (utmp_ent));
if (include_mesg)
printf (" %c ", mesg);
printf (" %-8.*s", (int) sizeof (utmp_ent->ut_line), utmp_ent->ut_line);
@@ -219,7 +219,7 @@ list_entries_who (int n, const STRUCT_UTMP *utmp_buf)
entries = 0;
while (n--)
{
if (utmp_buf->ut_name[0]
if (UT_USER (utmp_buf)[0]
#ifdef USER_PROCESS
&& utmp_buf->ut_type == USER_PROCESS
#endif
@@ -261,7 +261,7 @@ scan_entries (int n, const STRUCT_UTMP *utmp_buf)
while (n--)
{
if (utmp_buf->ut_name[0]
if (UT_USER (utmp_buf)[0]
#ifdef USER_PROCESS
&& utmp_buf->ut_type == USER_PROCESS
#endif
@@ -299,7 +299,7 @@ search_entries (int n, const STRUCT_UTMP *utmp_buf, const char *line)
{
while (n--)
{
if (utmp_buf->ut_name[0]
if (UT_USER (utmp_buf)[0]
#ifdef USER_PROCESS
&& utmp_buf->ut_type == USER_PROCESS
#endif

View File

@@ -12,7 +12,7 @@ use FileHandle;
use File::Compare qw(compare);
@ISA = qw(Exporter);
($VERSION = '$Revision: 1.6 $ ') =~ tr/[0-9].//cd;
($VERSION = '$Revision: 1.8 $ ') =~ tr/[0-9].//cd;
@EXPORT = qw (run_tests);
my $debug = $ENV{DEBUG};
@@ -271,7 +271,10 @@ sub run_tests ($$$$$)
if (compare ($expect->{$eo}, $tmp{$eo}))
{
warn "$program_name: test $test_name: std$eo_lower mismatch,"
. " comparing $expect->{$eo} and $tmp{$eo}\n";
. " comparing $tmp{$eo} (actual)"
. " and $expect->{$eo} (expected)\n";
# Ignore any failure, discard stderr.
system "diff -c $tmp{$eo} $expect->{$eo} 2>/dev/null";
$fail = 1;
}
}

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

File diff suppressed because it is too large Load Diff

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -116,6 +116,8 @@ sub test_vector
['regress-1', "-u -d '1996-11-10 0:00:00 +0' $fmt", {},
"1996-11-10 00:00:00", 0],
['datevtime-1', "-d 000909 $fmt", {}, "2000-09-09 00:00:00", 0],
# FIXME: add a lot more...
);

File diff suppressed because it is too large Load Diff

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -1,10 +1,7 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-.
AUTOMAKE_OPTIONS = 1.3 gnits
TESTS = basic-1
TESTS = basic-1 create-leading
EXTRA_DIST = $(TESTS)
TESTS_ENVIRONMENT = \
INSTALL=../../src/ginstall \
LS=../../src/ls \
MKDIR=../../src/mkdir \
RM=../../src/rm
PATH=`pwd`/../../src:$$PATH

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
@@ -110,13 +113,10 @@ l = @l@
AUTOMAKE_OPTIONS = 1.3 gnits
TESTS = basic-1
TESTS = basic-1 create-leading
EXTRA_DIST = $(TESTS)
TESTS_ENVIRONMENT = \
INSTALL=../../src/ginstall \
LS=../../src/ls \
MKDIR=../../src/mkdir \
RM=../../src/rm
PATH=`pwd`/../../src:$$PATH
subdir = tests/install
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

View File

@@ -1,17 +1,12 @@
#! /bin/sh
: ${MKDIR=mkdir}
: ${RM=rm}
: ${INSTALL=install}
: ${LS=ls}
dir=dir
file=file
framework_failure=0
$RM -rf $dir $file || framework_failure=1
$MKDIR -p $dir || framework_failure=1
rm -rf $dir $file || framework_failure=1
mkdir -p $dir || framework_failure=1
echo foo > $file || framework_failure=1
if test $framework_failure = 1; then
@@ -20,7 +15,7 @@ if test $framework_failure = 1; then
fi
fail=0
$INSTALL $file $dir || fail=1
install $file $dir || fail=1
# Make sure the source file still exists.
test -f $file || fail=1
# Make sure the dest file has been created.
@@ -28,15 +23,15 @@ test -f $dir/$file || fail=1
# This test would fail with 3.16s when using versions of strip that
# don't work on read-only files (the one from binutils works fine).
$INSTALL -s -c -m 555 ../../src/dd $dir || fail=1
install -s -c -m 555 ../../src/dd $dir || fail=1
# Make sure the dest file has been created.
test -f $dir/dd || fail=1
# ...and that the permissions are as requested.
set X `$LS -l $dir/dd`
set X `ls -l $dir/dd`
shift
test "$1" = -r-xr-xr-x || fail=1
$RM -rf $dir $file
rm -rf $dir $file
exit $fail

43
tests/install/create-leading Executable file
View File

@@ -0,0 +1,43 @@
#! /bin/sh
# Test -D option.
# Note that the tests below use `ginstall', not install, because
# that's the name of the binary in ../../src.
if test "$VERBOSE" = yes; then
set -x
ginstall --version
fi
pwd=`pwd`
dir=install-D$$
trap "cd $pwd; rm -rf $dir" 0 1 2 3 15
mkdir $dir
unset VERSION_CONTROL SIMPLE_BACKUP_SUFFIX
if test "${VERSION_CONTROL+set}" = set; then
echo '$0: the VERSION_CONTROL envvar is set --' \
' unset it and rerun this test' >&2
exit 1
fi
if test "${SIMPLE_BACKUP_SUFFIX+set}" = set; then
echo '$0: the SIMPLE_BACKUP_SUFFIX envvar is set --' \
' unset it and rerun this test' >&2
>&2
exit 1
fi
fail=0
cd $dir
file=file
echo foo > $file
# Before 4.0q, this would mistakenly create $file, not `dest'
# in no-dir1/no-dir2/.
ginstall -D $file no-dir1/no-dir2/dest || fail=1
test -d no-dir1/no-dir2 || fail=1
test -r no-dir1/no-dir2/dest || fail=1
exit $fail

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -20,634 +20,671 @@ export LANG
$xx -a1 $srcdir/1a.I1 $srcdir/1a.I2 > 1a.O 2> 1a.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 1a failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 1a.O $srcdir/1a.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 1a"; fi ;;
1) $echo "Test 1a failed: files 1a.O and $srcdir/1a.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 1a may have failed." 1>&2;
$echo The command "cmp 1a.O $srcdir/1a.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 1a"; fi;;
1) $echo "Test 1a failed: files 1a.O and $srcdir/1a.X differ" 1>&2
(diff -c 1a.O $srcdir/1a.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 1a may have failed." 1>&2
$echo The command "cmp 1a.O $srcdir/1a.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 1a.E || rm -f 1a.E
$xx -a2 $srcdir/1b.I1 $srcdir/1b.I2 > 1b.O 2> 1b.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 1b failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 1b.O $srcdir/1b.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 1b"; fi ;;
1) $echo "Test 1b failed: files 1b.O and $srcdir/1b.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 1b may have failed." 1>&2;
$echo The command "cmp 1b.O $srcdir/1b.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 1b"; fi;;
1) $echo "Test 1b failed: files 1b.O and $srcdir/1b.X differ" 1>&2
(diff -c 1b.O $srcdir/1b.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 1b may have failed." 1>&2
$echo The command "cmp 1b.O $srcdir/1b.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 1b.E || rm -f 1b.E
$xx -a1 -a2 $srcdir/1c.I1 $srcdir/1c.I2 > 1c.O 2> 1c.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 1c failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 1c.O $srcdir/1c.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 1c"; fi ;;
1) $echo "Test 1c failed: files 1c.O and $srcdir/1c.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 1c may have failed." 1>&2;
$echo The command "cmp 1c.O $srcdir/1c.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 1c"; fi;;
1) $echo "Test 1c failed: files 1c.O and $srcdir/1c.X differ" 1>&2
(diff -c 1c.O $srcdir/1c.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 1c may have failed." 1>&2
$echo The command "cmp 1c.O $srcdir/1c.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 1c.E || rm -f 1c.E
$xx -a1 $srcdir/1d.I1 $srcdir/1d.I2 > 1d.O 2> 1d.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 1d failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 1d.O $srcdir/1d.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 1d"; fi ;;
1) $echo "Test 1d failed: files 1d.O and $srcdir/1d.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 1d may have failed." 1>&2;
$echo The command "cmp 1d.O $srcdir/1d.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 1d"; fi;;
1) $echo "Test 1d failed: files 1d.O and $srcdir/1d.X differ" 1>&2
(diff -c 1d.O $srcdir/1d.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 1d may have failed." 1>&2
$echo The command "cmp 1d.O $srcdir/1d.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 1d.E || rm -f 1d.E
$xx -a2 $srcdir/1e.I1 $srcdir/1e.I2 > 1e.O 2> 1e.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 1e failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 1e.O $srcdir/1e.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 1e"; fi ;;
1) $echo "Test 1e failed: files 1e.O and $srcdir/1e.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 1e may have failed." 1>&2;
$echo The command "cmp 1e.O $srcdir/1e.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 1e"; fi;;
1) $echo "Test 1e failed: files 1e.O and $srcdir/1e.X differ" 1>&2
(diff -c 1e.O $srcdir/1e.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 1e may have failed." 1>&2
$echo The command "cmp 1e.O $srcdir/1e.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 1e.E || rm -f 1e.E
$xx -a2 $srcdir/1f.I1 $srcdir/1f.I2 > 1f.O 2> 1f.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 1f failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 1f.O $srcdir/1f.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 1f"; fi ;;
1) $echo "Test 1f failed: files 1f.O and $srcdir/1f.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 1f may have failed." 1>&2;
$echo The command "cmp 1f.O $srcdir/1f.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 1f"; fi;;
1) $echo "Test 1f failed: files 1f.O and $srcdir/1f.X differ" 1>&2
(diff -c 1f.O $srcdir/1f.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 1f may have failed." 1>&2
$echo The command "cmp 1f.O $srcdir/1f.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 1f.E || rm -f 1f.E
$xx -a1 -e . $srcdir/2a.I1 $srcdir/2a.I2 > 2a.O 2> 2a.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 2a failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 2a.O $srcdir/2a.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 2a"; fi ;;
1) $echo "Test 2a failed: files 2a.O and $srcdir/2a.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 2a may have failed." 1>&2;
$echo The command "cmp 2a.O $srcdir/2a.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 2a"; fi;;
1) $echo "Test 2a failed: files 2a.O and $srcdir/2a.X differ" 1>&2
(diff -c 2a.O $srcdir/2a.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 2a may have failed." 1>&2
$echo The command "cmp 2a.O $srcdir/2a.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 2a.E || rm -f 2a.E
$xx -a1 -e . -o 2.1,2.2,2.3 $srcdir/2b.I1 $srcdir/2b.I2 > 2b.O 2> 2b.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 2b failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 2b.O $srcdir/2b.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 2b"; fi ;;
1) $echo "Test 2b failed: files 2b.O and $srcdir/2b.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 2b may have failed." 1>&2;
$echo The command "cmp 2b.O $srcdir/2b.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 2b"; fi;;
1) $echo "Test 2b failed: files 2b.O and $srcdir/2b.X differ" 1>&2
(diff -c 2b.O $srcdir/2b.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 2b may have failed." 1>&2
$echo The command "cmp 2b.O $srcdir/2b.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 2b.E || rm -f 2b.E
$xx -a1 -e . -o 2.1,2.2,2.3 $srcdir/2c.I1 $srcdir/2c.I2 > 2c.O 2> 2c.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 2c failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 2c.O $srcdir/2c.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 2c"; fi ;;
1) $echo "Test 2c failed: files 2c.O and $srcdir/2c.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 2c may have failed." 1>&2;
$echo The command "cmp 2c.O $srcdir/2c.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 2c"; fi;;
1) $echo "Test 2c failed: files 2c.O and $srcdir/2c.X differ" 1>&2
(diff -c 2c.O $srcdir/2c.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 2c may have failed." 1>&2
$echo The command "cmp 2c.O $srcdir/2c.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 2c.E || rm -f 2c.E
$xx -t: $srcdir/3a.I1 $srcdir/3a.I2 > 3a.O 2> 3a.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 3a failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 3a.O $srcdir/3a.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 3a"; fi ;;
1) $echo "Test 3a failed: files 3a.O and $srcdir/3a.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 3a may have failed." 1>&2;
$echo The command "cmp 3a.O $srcdir/3a.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 3a"; fi;;
1) $echo "Test 3a failed: files 3a.O and $srcdir/3a.X differ" 1>&2
(diff -c 3a.O $srcdir/3a.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 3a may have failed." 1>&2
$echo The command "cmp 3a.O $srcdir/3a.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 3a.E || rm -f 3a.E
$xx -v 1 $srcdir/4a.I1 $srcdir/4a.I2 > 4a.O 2> 4a.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 4a failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 4a.O $srcdir/4a.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 4a"; fi ;;
1) $echo "Test 4a failed: files 4a.O and $srcdir/4a.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 4a may have failed." 1>&2;
$echo The command "cmp 4a.O $srcdir/4a.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 4a"; fi;;
1) $echo "Test 4a failed: files 4a.O and $srcdir/4a.X differ" 1>&2
(diff -c 4a.O $srcdir/4a.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 4a may have failed." 1>&2
$echo The command "cmp 4a.O $srcdir/4a.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 4a.E || rm -f 4a.E
$xx -v 2 $srcdir/4b.I1 $srcdir/4b.I2 > 4b.O 2> 4b.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 4b failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 4b.O $srcdir/4b.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 4b"; fi ;;
1) $echo "Test 4b failed: files 4b.O and $srcdir/4b.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 4b may have failed." 1>&2;
$echo The command "cmp 4b.O $srcdir/4b.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 4b"; fi;;
1) $echo "Test 4b failed: files 4b.O and $srcdir/4b.X differ" 1>&2
(diff -c 4b.O $srcdir/4b.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 4b may have failed." 1>&2
$echo The command "cmp 4b.O $srcdir/4b.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 4b.E || rm -f 4b.E
$xx -v 1 $srcdir/4c.I1 $srcdir/4c.I2 > 4c.O 2> 4c.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 4c failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 4c.O $srcdir/4c.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 4c"; fi ;;
1) $echo "Test 4c failed: files 4c.O and $srcdir/4c.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 4c may have failed." 1>&2;
$echo The command "cmp 4c.O $srcdir/4c.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 4c"; fi;;
1) $echo "Test 4c failed: files 4c.O and $srcdir/4c.X differ" 1>&2
(diff -c 4c.O $srcdir/4c.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 4c may have failed." 1>&2
$echo The command "cmp 4c.O $srcdir/4c.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 4c.E || rm -f 4c.E
$xx -v 2 $srcdir/4d.I1 $srcdir/4d.I2 > 4d.O 2> 4d.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 4d failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 4d.O $srcdir/4d.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 4d"; fi ;;
1) $echo "Test 4d failed: files 4d.O and $srcdir/4d.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 4d may have failed." 1>&2;
$echo The command "cmp 4d.O $srcdir/4d.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 4d"; fi;;
1) $echo "Test 4d failed: files 4d.O and $srcdir/4d.X differ" 1>&2
(diff -c 4d.O $srcdir/4d.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 4d may have failed." 1>&2
$echo The command "cmp 4d.O $srcdir/4d.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 4d.E || rm -f 4d.E
$xx -v 2 $srcdir/4e.I1 $srcdir/4e.I2 > 4e.O 2> 4e.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 4e failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 4e.O $srcdir/4e.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 4e"; fi ;;
1) $echo "Test 4e failed: files 4e.O and $srcdir/4e.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 4e may have failed." 1>&2;
$echo The command "cmp 4e.O $srcdir/4e.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 4e"; fi;;
1) $echo "Test 4e failed: files 4e.O and $srcdir/4e.X differ" 1>&2
(diff -c 4e.O $srcdir/4e.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 4e may have failed." 1>&2
$echo The command "cmp 4e.O $srcdir/4e.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 4e.E || rm -f 4e.E
$xx -a1 -e - -o 1.1 2.2 $srcdir/5a.I1 $srcdir/5a.I2 > 5a.O 2> 5a.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 5a failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 5a.O $srcdir/5a.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 5a"; fi ;;
1) $echo "Test 5a failed: files 5a.O and $srcdir/5a.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 5a may have failed." 1>&2;
$echo The command "cmp 5a.O $srcdir/5a.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 5a"; fi;;
1) $echo "Test 5a failed: files 5a.O and $srcdir/5a.X differ" 1>&2
(diff -c 5a.O $srcdir/5a.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 5a may have failed." 1>&2
$echo The command "cmp 5a.O $srcdir/5a.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 5a.E || rm -f 5a.E
$xx -a1 -e - -o 1.1 2.2 $srcdir/5b.I1 $srcdir/5b.I2 > 5b.O 2> 5b.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 5b failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 5b.O $srcdir/5b.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 5b"; fi ;;
1) $echo "Test 5b failed: files 5b.O and $srcdir/5b.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 5b may have failed." 1>&2;
$echo The command "cmp 5b.O $srcdir/5b.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 5b"; fi;;
1) $echo "Test 5b failed: files 5b.O and $srcdir/5b.X differ" 1>&2
(diff -c 5b.O $srcdir/5b.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 5b may have failed." 1>&2
$echo The command "cmp 5b.O $srcdir/5b.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 5b.E || rm -f 5b.E
$xx -a1 -e - -o 1.1 2.2 $srcdir/5c.I1 $srcdir/5c.I2 > 5c.O 2> 5c.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 5c failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 5c.O $srcdir/5c.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 5c"; fi ;;
1) $echo "Test 5c failed: files 5c.O and $srcdir/5c.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 5c may have failed." 1>&2;
$echo The command "cmp 5c.O $srcdir/5c.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 5c"; fi;;
1) $echo "Test 5c failed: files 5c.O and $srcdir/5c.X differ" 1>&2
(diff -c 5c.O $srcdir/5c.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 5c may have failed." 1>&2
$echo The command "cmp 5c.O $srcdir/5c.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 5c.E || rm -f 5c.E
$xx -a1 -e - -o 1.1 2.2 $srcdir/5d.I1 $srcdir/5d.I2 > 5d.O 2> 5d.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 5d failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 5d.O $srcdir/5d.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 5d"; fi ;;
1) $echo "Test 5d failed: files 5d.O and $srcdir/5d.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 5d may have failed." 1>&2;
$echo The command "cmp 5d.O $srcdir/5d.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 5d"; fi;;
1) $echo "Test 5d failed: files 5d.O and $srcdir/5d.X differ" 1>&2
(diff -c 5d.O $srcdir/5d.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 5d may have failed." 1>&2
$echo The command "cmp 5d.O $srcdir/5d.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 5d.E || rm -f 5d.E
$xx -a2 -e - -o 1.1 2.2 $srcdir/5e.I1 $srcdir/5e.I2 > 5e.O 2> 5e.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 5e failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 5e.O $srcdir/5e.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 5e"; fi ;;
1) $echo "Test 5e failed: files 5e.O and $srcdir/5e.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 5e may have failed." 1>&2;
$echo The command "cmp 5e.O $srcdir/5e.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 5e"; fi;;
1) $echo "Test 5e failed: files 5e.O and $srcdir/5e.X differ" 1>&2
(diff -c 5e.O $srcdir/5e.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 5e may have failed." 1>&2
$echo The command "cmp 5e.O $srcdir/5e.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 5e.E || rm -f 5e.E
$xx -a2 -e - -o 2.2 1.1 $srcdir/5f.I1 $srcdir/5f.I2 > 5f.O 2> 5f.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 5f failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 5f.O $srcdir/5f.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 5f"; fi ;;
1) $echo "Test 5f failed: files 5f.O and $srcdir/5f.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 5f may have failed." 1>&2;
$echo The command "cmp 5f.O $srcdir/5f.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 5f"; fi;;
1) $echo "Test 5f failed: files 5f.O and $srcdir/5f.X differ" 1>&2
(diff -c 5f.O $srcdir/5f.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 5f may have failed." 1>&2
$echo The command "cmp 5f.O $srcdir/5f.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 5f.E || rm -f 5f.E
$xx -a1 -e - -o 2.2 1.1 $srcdir/5g.I1 $srcdir/5g.I2 > 5g.O 2> 5g.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 5g failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 5g.O $srcdir/5g.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 5g"; fi ;;
1) $echo "Test 5g failed: files 5g.O and $srcdir/5g.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 5g may have failed." 1>&2;
$echo The command "cmp 5g.O $srcdir/5g.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 5g"; fi;;
1) $echo "Test 5g failed: files 5g.O and $srcdir/5g.X differ" 1>&2
(diff -c 5g.O $srcdir/5g.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 5g may have failed." 1>&2
$echo The command "cmp 5g.O $srcdir/5g.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 5g.E || rm -f 5g.E
$xx -a1 -e - -o 2.2 1.1 $srcdir/5h.I1 $srcdir/5h.I2 > 5h.O 2> 5h.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 5h failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 5h.O $srcdir/5h.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 5h"; fi ;;
1) $echo "Test 5h failed: files 5h.O and $srcdir/5h.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 5h may have failed." 1>&2;
$echo The command "cmp 5h.O $srcdir/5h.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 5h"; fi;;
1) $echo "Test 5h failed: files 5h.O and $srcdir/5h.X differ" 1>&2
(diff -c 5h.O $srcdir/5h.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 5h may have failed." 1>&2
$echo The command "cmp 5h.O $srcdir/5h.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 5h.E || rm -f 5h.E
$xx -a1 -e - -o 1.1 2.2 $srcdir/5i.I1 $srcdir/5i.I2 > 5i.O 2> 5i.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 5i failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 5i.O $srcdir/5i.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 5i"; fi ;;
1) $echo "Test 5i failed: files 5i.O and $srcdir/5i.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 5i may have failed." 1>&2;
$echo The command "cmp 5i.O $srcdir/5i.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 5i"; fi;;
1) $echo "Test 5i failed: files 5i.O and $srcdir/5i.X differ" 1>&2
(diff -c 5i.O $srcdir/5i.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 5i may have failed." 1>&2
$echo The command "cmp 5i.O $srcdir/5i.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 5i.E || rm -f 5i.E
$xx -a2 -e - -o 2.2 1.1 $srcdir/5j.I1 $srcdir/5j.I2 > 5j.O 2> 5j.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 5j failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 5j.O $srcdir/5j.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 5j"; fi ;;
1) $echo "Test 5j failed: files 5j.O and $srcdir/5j.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 5j may have failed." 1>&2;
$echo The command "cmp 5j.O $srcdir/5j.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 5j"; fi;;
1) $echo "Test 5j failed: files 5j.O and $srcdir/5j.X differ" 1>&2
(diff -c 5j.O $srcdir/5j.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 5j may have failed." 1>&2
$echo The command "cmp 5j.O $srcdir/5j.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 5j.E || rm -f 5j.E
$xx -a2 -e - -o 2.2 1.1 $srcdir/5k.I1 $srcdir/5k.I2 > 5k.O 2> 5k.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 5k failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 5k.O $srcdir/5k.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 5k"; fi ;;
1) $echo "Test 5k failed: files 5k.O and $srcdir/5k.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 5k may have failed." 1>&2;
$echo The command "cmp 5k.O $srcdir/5k.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 5k"; fi;;
1) $echo "Test 5k failed: files 5k.O and $srcdir/5k.X differ" 1>&2
(diff -c 5k.O $srcdir/5k.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 5k may have failed." 1>&2
$echo The command "cmp 5k.O $srcdir/5k.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 5k.E || rm -f 5k.E
$xx -a1 -e - -o 2.2 1.1 $srcdir/5l.I1 $srcdir/5l.I2 > 5l.O 2> 5l.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 5l failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 5l.O $srcdir/5l.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 5l"; fi ;;
1) $echo "Test 5l failed: files 5l.O and $srcdir/5l.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 5l may have failed." 1>&2;
$echo The command "cmp 5l.O $srcdir/5l.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 5l"; fi;;
1) $echo "Test 5l failed: files 5l.O and $srcdir/5l.X differ" 1>&2
(diff -c 5l.O $srcdir/5l.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 5l may have failed." 1>&2
$echo The command "cmp 5l.O $srcdir/5l.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 5l.E || rm -f 5l.E
$xx -a2 -e - -o 2.2 1.1 $srcdir/5m.I1 $srcdir/5m.I2 > 5m.O 2> 5m.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 5m failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 5m.O $srcdir/5m.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 5m"; fi ;;
1) $echo "Test 5m failed: files 5m.O and $srcdir/5m.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 5m may have failed." 1>&2;
$echo The command "cmp 5m.O $srcdir/5m.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 5m"; fi;;
1) $echo "Test 5m failed: files 5m.O and $srcdir/5m.X differ" 1>&2
(diff -c 5m.O $srcdir/5m.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 5m may have failed." 1>&2
$echo The command "cmp 5m.O $srcdir/5m.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 5m.E || rm -f 5m.E
$xx -e - $srcdir/6a.I1 $srcdir/6a.I2 > 6a.O 2> 6a.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 6a failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 6a.O $srcdir/6a.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 6a"; fi ;;
1) $echo "Test 6a failed: files 6a.O and $srcdir/6a.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 6a may have failed." 1>&2;
$echo The command "cmp 6a.O $srcdir/6a.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 6a"; fi;;
1) $echo "Test 6a failed: files 6a.O and $srcdir/6a.X differ" 1>&2
(diff -c 6a.O $srcdir/6a.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 6a may have failed." 1>&2
$echo The command "cmp 6a.O $srcdir/6a.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 6a.E || rm -f 6a.E
$xx -a1 -e - $srcdir/6b.I1 $srcdir/6b.I2 > 6b.O 2> 6b.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 6b failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 6b.O $srcdir/6b.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 6b"; fi ;;
1) $echo "Test 6b failed: files 6b.O and $srcdir/6b.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 6b may have failed." 1>&2;
$echo The command "cmp 6b.O $srcdir/6b.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 6b"; fi;;
1) $echo "Test 6b failed: files 6b.O and $srcdir/6b.X differ" 1>&2
(diff -c 6b.O $srcdir/6b.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 6b may have failed." 1>&2
$echo The command "cmp 6b.O $srcdir/6b.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 6b.E || rm -f 6b.E
$xx -a1 -e - $srcdir/6c.I1 $srcdir/6c.I2 > 6c.O 2> 6c.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 6c failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 6c.O $srcdir/6c.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 6c"; fi ;;
1) $echo "Test 6c failed: files 6c.O and $srcdir/6c.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 6c may have failed." 1>&2;
$echo The command "cmp 6c.O $srcdir/6c.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 6c"; fi;;
1) $echo "Test 6c failed: files 6c.O and $srcdir/6c.X differ" 1>&2
(diff -c 6c.O $srcdir/6c.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 6c may have failed." 1>&2
$echo The command "cmp 6c.O $srcdir/6c.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 6c.E || rm -f 6c.E
$xx -a1 -e . -o 2.7 $srcdir/7a.I1 $srcdir/7a.I2 > 7a.O 2> 7a.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 7a failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 7a.O $srcdir/7a.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 7a"; fi ;;
1) $echo "Test 7a failed: files 7a.O and $srcdir/7a.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 7a may have failed." 1>&2;
$echo The command "cmp 7a.O $srcdir/7a.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 7a"; fi;;
1) $echo "Test 7a failed: files 7a.O and $srcdir/7a.X differ" 1>&2
(diff -c 7a.O $srcdir/7a.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 7a may have failed." 1>&2
$echo The command "cmp 7a.O $srcdir/7a.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 7a.E || rm -f 7a.E
$xx -a1 -e . -o 0,1.2 $srcdir/8a.I1 $srcdir/8a.I2 > 8a.O 2> 8a.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 8a failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 8a.O $srcdir/8a.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 8a"; fi ;;
1) $echo "Test 8a failed: files 8a.O and $srcdir/8a.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 8a may have failed." 1>&2;
$echo The command "cmp 8a.O $srcdir/8a.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 8a"; fi;;
1) $echo "Test 8a failed: files 8a.O and $srcdir/8a.X differ" 1>&2
(diff -c 8a.O $srcdir/8a.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 8a may have failed." 1>&2
$echo The command "cmp 8a.O $srcdir/8a.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 8a.E || rm -f 8a.E
$xx -a1 -a2 -e . -o 0,1.2 $srcdir/8b.I1 $srcdir/8b.I2 > 8b.O 2> 8b.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 8b failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 8b.O $srcdir/8b.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 8b"; fi ;;
1) $echo "Test 8b failed: files 8b.O and $srcdir/8b.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 8b may have failed." 1>&2;
$echo The command "cmp 8b.O $srcdir/8b.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 8b"; fi;;
1) $echo "Test 8b failed: files 8b.O and $srcdir/8b.X differ" 1>&2
(diff -c 8b.O $srcdir/8b.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 8b may have failed." 1>&2
$echo The command "cmp 8b.O $srcdir/8b.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 8b.E || rm -f 8b.E
$xx $srcdir/9a.I1 $srcdir/9a.I2 > 9a.O 2> 9a.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test 9a failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp 9a.O $srcdir/9a.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed 9a"; fi ;;
1) $echo "Test 9a failed: files 9a.O and $srcdir/9a.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test 9a may have failed." 1>&2;
$echo The command "cmp 9a.O $srcdir/9a.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed 9a"; fi;;
1) $echo "Test 9a failed: files 9a.O and $srcdir/9a.X differ" 1>&2
(diff -c 9a.O $srcdir/9a.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test 9a may have failed." 1>&2
$echo The command "cmp 9a.O $srcdir/9a.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s 9a.E || rm -f 9a.E
$xx -t: -1 1 -2 1 $srcdir/trailing-sp.I1 $srcdir/trailing-sp.I2 > trailing-sp.O 2> trailing-sp.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test trailing-sp failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp trailing-sp.O $srcdir/trailing-sp.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed trailing-sp"; fi ;;
1) $echo "Test trailing-sp failed: files trailing-sp.O and $srcdir/trailing-sp.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test trailing-sp may have failed." 1>&2;
$echo The command "cmp trailing-sp.O $srcdir/trailing-sp.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed trailing-sp"; fi;;
1) $echo "Test trailing-sp failed: files trailing-sp.O and $srcdir/trailing-sp.X differ" 1>&2
(diff -c trailing-sp.O $srcdir/trailing-sp.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test trailing-sp may have failed." 1>&2
$echo The command "cmp trailing-sp.O $srcdir/trailing-sp.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s trailing-sp.E || rm -f trailing-sp.E
$xx $srcdir/sp-vs-blank.I1 $srcdir/sp-vs-blank.I2 > sp-vs-blank.O 2> sp-vs-blank.E
code=$?
if test $code != 0 ; then
if test $code != 0; then
$echo "Test sp-vs-blank failed: ../../src/join return code $code differs from expected value 0" 1>&2
errors=`expr $errors + 1`
else
cmp sp-vs-blank.O $srcdir/sp-vs-blank.X > /dev/null 2>&1
case $? in
0) if test "$VERBOSE" ; then $echo "passed sp-vs-blank"; fi ;;
1) $echo "Test sp-vs-blank failed: files sp-vs-blank.O and $srcdir/sp-vs-blank.X differ" 1>&2;
errors=`expr $errors + 1` ;;
2) $echo "Test sp-vs-blank may have failed." 1>&2;
$echo The command "cmp sp-vs-blank.O $srcdir/sp-vs-blank.X" failed. 1>&2 ;
errors=`expr $errors + 1` ;;
0) if test "$VERBOSE"; then $echo "passed sp-vs-blank"; fi;;
1) $echo "Test sp-vs-blank failed: files sp-vs-blank.O and $srcdir/sp-vs-blank.X differ" 1>&2
(diff -c sp-vs-blank.O $srcdir/sp-vs-blank.X) 2> /dev/null
errors=`expr $errors + 1`;;
2) $echo "Test sp-vs-blank may have failed." 1>&2
$echo The command "cmp sp-vs-blank.O $srcdir/sp-vs-blank.X" failed. 1>&2
errors=`expr $errors + 1`;;
esac
fi
test -s sp-vs-blank.E || rm -f sp-vs-blank.E
if test $errors = 0 ; then
if test $errors = 0; then
$echo Passed all 37 tests. 1>&2
else
$echo Failed $errors tests. 1>&2

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -307,18 +307,19 @@ EOF1
print <<EOF;
$e_cmd$cmd
code=\$?
if test \$code != $e_ret_code ; then
if test \$code != $e_ret_code; then
\$echo "Test $t_name failed: $xx return code \$code differs from expected value $e_ret_code" 1>&2
errors=`expr \$errors + 1`
else
cmp $out $exp_name > /dev/null 2>&1
case \$? in
0) if test "\$VERBOSE" ; then \$echo "passed $t_name"; fi ;;
1) \$echo "Test $t_name failed: files $out and $exp_name differ" 1>&2;
errors=`expr \$errors + 1` ;;
2) \$echo "Test $t_name may have failed." 1>&2;
\$echo The command \"cmp $out $exp_name\" failed. 1>&2 ;
errors=`expr \$errors + 1` ;;
0) if test "\$VERBOSE"; then \$echo "passed $t_name"; fi;;
1) \$echo "Test $t_name failed: files $out and $exp_name differ" 1>&2
(diff -c $out $exp_name) 2> /dev/null
errors=`expr \$errors + 1`;;
2) \$echo "Test $t_name may have failed." 1>&2
\$echo The command \"cmp $out $exp_name\" failed. 1>&2
errors=`expr \$errors + 1`;;
esac
fi
test -s $err_output || rm -f $err_output
@@ -326,8 +327,8 @@ EOF
}
}
}
print <<EOF3 ;
if test \$errors = 0 ; then
print <<EOF3
if test \$errors = 0; then
\$echo Passed all $n_tests tests. 1>&2
else
\$echo Failed \$errors tests. 1>&2

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -2,18 +2,10 @@
AUTOMAKE_OPTIONS = 1.3 gnits
TESTS = mv-special-1 into-self into-self-2 into-self-3 backup-is-src \
i-1 hard-link-1 force partition-perm to-symlink
i-1 hard-link-1 force partition-perm to-symlink dir-file
EXTRA_DIST = $(TESTS) setup
TESTS_ENVIRONMENT = \
DF=../../src/df \
LN=../../src/ln \
LS=../../src/ls \
MKDIR=../../src/mkdir \
MKNOD=../../src/mknod \
MV=../../src/mv \
RM=../../src/rm \
TOUCH=../../src/touch \
PERL="@PERL@" \
PATH=`pwd`/../../src:$$PATH \
PROG=mv

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
@@ -111,19 +114,11 @@ l = @l@
AUTOMAKE_OPTIONS = 1.3 gnits
TESTS = mv-special-1 into-self into-self-2 into-self-3 backup-is-src \
i-1 hard-link-1 force partition-perm to-symlink
i-1 hard-link-1 force partition-perm to-symlink dir-file
EXTRA_DIST = $(TESTS) setup
TESTS_ENVIRONMENT = \
DF=../../src/df \
LN=../../src/ln \
LS=../../src/ls \
MKDIR=../../src/mkdir \
MKNOD=../../src/mknod \
MV=../../src/mv \
RM=../../src/rm \
TOUCH=../../src/touch \
PERL="@PERL@" \
PATH=`pwd`/../../src:$$PATH \
PROG=mv

30
tests/mv/dir-file Executable file
View File

@@ -0,0 +1,30 @@
#!/bin/sh
# mv must fail when src and dest are mismatched directory/non-directory.
if test "$VERBOSE" = yes; then
set -x
mv --version
fi
tmp=mv-mismatch-$$
pwd=`pwd`
trap "cd $pwd; rm -rf $tmp" 0 1 2 3 15
framework_failure=0
mkdir $tmp || framework_failure=1
cd $tmp
mkdir -p dir/file || framework_failure=1
> file || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework'
exit 1
fi
fail=0
# These should both fail, but until fileutils-4.0q only the second one did.
mv dir file > /dev/null 2>&1 && fail=1
mv file dir > /dev/null 2>&1 && fail=1
exit $fail

View File

@@ -1,9 +1,6 @@
#!/bin/sh
# move a directory into itself, with a twist
: ${MV=mv}
: ${RM=rm}
if test "$VERBOSE" = yes; then
set -x
mv --version

View File

@@ -18,7 +18,10 @@ touch $dir/a/b/c/file1 $dir/d/e/f/file2 || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework'
exit 1
# exit 77 here to indicate that we couldn't run the test.
# At least running on SunOS 4.1.4, using a directory NFS mounted
# from an OpenBSD system, the above mknod fails.
exit 77
fi
# Make sure we get English translations.
@@ -41,34 +44,34 @@ test -d $other_partition_tmpdir/$dir/a/b/c || fail=1
sed "s,$other_partition_tmpdir,XXX," out > out2
cat > exp <<\EOF
.mv-null -> XXX/.mv-null
removing .mv-null
.mv-dir -> XXX/.mv-dir
.mv-dir/a -> XXX/.mv-dir/a
.mv-dir/a/b -> XXX/.mv-dir/a/b
.mv-dir/a/b/c -> XXX/.mv-dir/a/b/c
.mv-dir/a/b/c/file1 -> XXX/.mv-dir/a/b/c/file1
.mv-dir/d -> XXX/.mv-dir/d
.mv-dir/d/e -> XXX/.mv-dir/d/e
.mv-dir/d/e/f -> XXX/.mv-dir/d/e/f
.mv-dir/d/e/f/file2 -> XXX/.mv-dir/d/e/f/file2
removing all entries of directory .mv-dir
removing all entries of directory .mv-dir/a
removing all entries of directory .mv-dir/a/b
removing all entries of directory .mv-dir/a/b/c
removing .mv-dir/a/b/c/file1
removing the directory itself: .mv-dir/a/b/c
removing the directory itself: .mv-dir/a/b
removing the directory itself: .mv-dir/a
removing all entries of directory .mv-dir/d
removing all entries of directory .mv-dir/d/e
removing all entries of directory .mv-dir/d/e/f
removing .mv-dir/d/e/f/file2
removing the directory itself: .mv-dir/d/e/f
removing the directory itself: .mv-dir/d/e
removing the directory itself: .mv-dir/d
removing the directory itself: .mv-dir
cat > exp <<EOF
$null -> XXX/$null
removing $null
$dir -> XXX/$dir
$dir/a -> XXX/$dir/a
$dir/a/b -> XXX/$dir/a/b
$dir/a/b/c -> XXX/$dir/a/b/c
$dir/a/b/c/file1 -> XXX/$dir/a/b/c/file1
$dir/d -> XXX/$dir/d
$dir/d/e -> XXX/$dir/d/e
$dir/d/e/f -> XXX/$dir/d/e/f
$dir/d/e/f/file2 -> XXX/$dir/d/e/f/file2
removing all entries of directory $dir
removing all entries of directory $dir/a
removing all entries of directory $dir/a/b
removing all entries of directory $dir/a/b/c
removing $dir/a/b/c/file1
removing the directory itself: $dir/a/b/c
removing the directory itself: $dir/a/b
removing the directory itself: $dir/a
removing all entries of directory $dir/d
removing all entries of directory $dir/d/e
removing all entries of directory $dir/d/e/f
removing $dir/d/e/f/file2
removing the directory itself: $dir/d/e/f
removing the directory itself: $dir/d/e
removing the directory itself: $dir/d
removing the directory itself: $dir
EOF
cmp out2 exp || fail=1

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

File diff suppressed because it is too large Load Diff

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -17,7 +17,7 @@ mkdir $tmp $tmp/a $tmp/a/b
> $tmp/a/b/g
# FIXME: if this fails, it's a framework failure
cat <<EOF > $tmp/$test.E
cat <<EOF | sort > $tmp/$test.E
removing all entries of directory $tmp/a
removing all entries of directory $tmp/a/b
removing $tmp/a/b/g
@@ -31,8 +31,10 @@ export LANGUAGE
LANG=C
export LANG
# Note that both the expected output (above) and the actual output lines
# are sorted, because directory entries may be processed in arbitrary order.
fail=0
$RM --verbose -r $tmp/a > $tmp/$test.O || fail=1
$RM --verbose -r $tmp/a | sort > $tmp/$test.O || fail=1
if test -d $tmp/a; then
fail=1

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

View File

@@ -71,6 +71,7 @@ CXXCPP = @CXXCPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@
FESETROUND_LIBM = @FESETROUND_LIBM@
GENCAT = @GENCAT@
GETCONF = @GETCONF@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
@@ -86,6 +87,7 @@ INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
KMEM_GROUP = @KMEM_GROUP@
LIBOBJS = @LIBOBJS@
LIB_CRYPT = @LIB_CRYPT@
MAKEINFO = @MAKEINFO@
MAN = @MAN@
MKINSTALLDIRS = @MKINSTALLDIRS@
@@ -99,6 +101,7 @@ POFILES = @POFILES@
POSUB = @POSUB@
POW_LIBM = @POW_LIBM@
RANLIB = @RANLIB@
SQRT_LIBM = @SQRT_LIBM@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@

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