瀏覽代碼

Migrate to Git

Sergey Poznyakoff 16 年之前
父節點
當前提交
ac6caa71bc
共有 75 個文件被更改,包括 2589 次插入9322 次删除
  1. 0 18
      .cvsignore
  2. 31 0
      .gitignore
  3. 0 0
      ChangeLog.CVS
  4. 13 4
      Makefile.am
  5. 1105 290
      Makefile.in
  6. 0 173
      PORTS
  7. 0 70
      README-cvs
  8. 71 0
      README-hacking
  9. 0 88
      acconfig.h
  10. 0 425
      acinclude.m4
  11. 351 271
      bootstrap
  12. 19 2
      bootstrap.conf
  13. 2 2
      configure.ac
  14. 9 20
      doc/.gitignore
  15. 1 0
      gnulib.modules
  16. 0 287
      lib/.cvsignore
  17. 7 9
      lib/Makefile.am
  18. 0 508
      lib/alloca.c
  19. 0 280
      lib/argmatch.c
  20. 0 9
      lib/basename.h
  21. 0 407
      lib/error.c
  22. 0 267
      lib/exclude.c
  23. 0 43
      lib/exclude.h
  24. 0 385
      lib/fnmatch.c
  25. 0 84
      lib/fnmatch.hin
  26. 0 474
      lib/fnmatch_loop.c
  27. 0 50
      lib/full-read.c
  28. 0 85
      lib/full-write.c
  29. 0 24
      lib/full-write.h
  30. 0 1114
      lib/getdate.y
  31. 0 366
      lib/human.c
  32. 0 46
      lib/human.h
  33. 0 9
      lib/lchown.h
  34. 0 57
      lib/print-copyr.c
  35. 0 9
      lib/print-copyr.h
  36. 0 658
      lib/quotearg.c
  37. 0 100
      lib/quotearg.h
  38. 0 10
      lib/safe-read.h
  39. 0 129
      lib/savedir.c
  40. 0 14
      lib/savedir.h
  41. 0 101
      lib/strtoimax.c
  42. 0 2
      lib/strtoumax.c
  43. 0 263
      lib/unicodeio.c
  44. 0 44
      lib/unicodeio.h
  45. 0 75
      lib/waitpid.c
  46. 0 87
      lib/xalloc.h
  47. 0 79
      lib/xgetcwd.c
  48. 0 116
      lib/xmalloc.c
  49. 0 288
      lib/xstrtol.c
  50. 0 82
      lib/xstrtol.h
  51. 0 23
      m4/c-bs-a.m4
  52. 0 95
      m4/ccstdc.m4
  53. 0 37
      m4/decl.m4
  54. 0 12
      m4/error.m4
  55. 0 24
      m4/fnmatch.m4
  56. 0 53
      m4/getcwd.m4
  57. 0 368
      m4/gettext.m4
  58. 0 32
      m4/inttypes.m4
  59. 0 19
      m4/mbrtowc.m4
  60. 0 29
      m4/mbstate_t.m4
  61. 0 141
      m4/prereq.m4
  62. 0 66
      m4/strerror_r.m4
  63. 0 19
      m4/uintmax_t.m4
  64. 0 41
      m4/xstrtoimax.m4
  65. 0 40
      m4/xstrtoumax.m4
  66. 22 0
      po/.gitignore
  67. 0 196
      po/Makefile.in.in
  68. 17 16
      po/POTFILES.in
  69. 0 6
      scripts/.cvsignore
  70. 0 6
      src/.cvsignore
  71. 1 0
      src/.gitignore
  72. 3 3
      src/Makefile.am
  73. 930 158
      src/Makefile.in
  74. 4 11
      tests/.gitignore
  75. 3 3
      tests/Makefile.am

+ 0 - 18
.cvsignore

@@ -1,18 +0,0 @@
-*.bz2
-*.gz
-*.tar
-.bootstrap
-ABOUT-NLS
-INSTALL
-Makefile
-Makefile.in
-aclocal.m4
-autom4te.cache
-build-aux
-config.*
-configure
-gnulib
-m4
-rmt
-stamp-h1
-tar-[0-9]*

+ 31 - 0
.gitignore

@@ -0,0 +1,31 @@
+*.a
+*.la
+*.lo
+*.o
+*.so
+*~
+.bootstrap
+.deps
+.emacs*
+.libs
+ABOUT-NLS
+ChangeLog
+INSTALL
+Makefile
+Makefile.in
+Make.rules
+aclocal.m4
+autom4te.cache
+config.h
+config.h.in
+config.log
+config.status
+configure
+gnulib
+libtool
+m4
+paxutils
+stamp-h1
+build-aux/
+gnu
+

+ 0 - 0
ChangeLog → ChangeLog.CVS


+ 13 - 4
Makefile.am

@@ -1,7 +1,7 @@
 # Main Makefile for GNU tar.
 # Main Makefile for GNU tar.
 
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2007 Free
-# Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2007,
+# 2009 Free Software Foundation, Inc.
 
 
 ## This program is free software; you can redistribute it and/or modify
 ## 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
 ## it under the terms of the GNU General Public License as published by
@@ -19,13 +19,22 @@
 ## 02110-1301, USA.
 ## 02110-1301, USA.
 
 
 ACLOCAL_AMFLAGS = -I m4
 ACLOCAL_AMFLAGS = -I m4
-EXTRA_DIST = ChangeLog.1 PORTS
-SUBDIRS = doc lib rmt src scripts po tests
+EXTRA_DIST = ChangeLog.1 Make.rules
+SUBDIRS = doc gnu lib rmt src scripts po tests
 
 
 dist-hook: 
 dist-hook: 
+	$(MAKE) changelog_dir=$(distdir) make-ChangeLog
 	-rm -f $(distdir).cpio
 	-rm -f $(distdir).cpio
 	find $(distdir) | cpio -Hcrc -o | \
 	find $(distdir) | cpio -Hcrc -o | \
           GZIP=$(GZIP_ENV) gzip -c > $(distdir).cpio.gz
           GZIP=$(GZIP_ENV) gzip -c > $(distdir).cpio.gz
 
 
 distclean-local:
 distclean-local:
 	-rm -f $(distdir).cpio.gz
 	-rm -f $(distdir).cpio.gz
+
+include Make.rules
+
+gen_start_date = 2009-03-06
+prev_change_log = ChangeLog.CVS
+changelog_dir = .
+
+

+ 1105 - 290
Makefile.in

@@ -1,163 +1,767 @@
-# Makefile.in generated automatically by automake 1.1n from Makefile.am
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
 
 
-# Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Main Makefile for GNU tar.
-# Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
 
 # This program is distributed in the hope that it will be useful,
 # This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
 
 
+@SET_MAKE@
 
 
-SHELL = /bin/sh
+# Main Makefile for GNU tar.
 
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
+# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2007,
+# 2009 Free Software Foundation, Inc.
+
+# This file is part of GNU paxutils
+#
+# Copyright (c) 2009 Free Software Foundation, Inc.
+#
+# Written by Sergey Poznyakoff
+#
+# GNU Paxutils is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 3, or (at your option) any later
+# version.
+#
+# GNU Paxutils is distributed in the hope that it will be useful, but
+# without any warranty; without even the implied warranty of
+# merchantability or fitness for a particular purpose.  see the gnu general
+# public license for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with GNU Paxutils; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# This file is part of GNU paxutils
+#
+# Copyright (c) 2009 Free Software Foundation, Inc.
+#
+# Written by Sergey Poznyakoff
+#
+# GNU Paxutils is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 3, or (at your option) any later
+# version.
+#
+# GNU Paxutils is distributed in the hope that it will be useful, but
+# without any warranty; without even the implied warranty of
+# merchantability or fitness for a particular purpose.  see the gnu general
+# public license for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with GNU Paxutils; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# Define the following variables in order to use the ChangeLog rule below:
+#  prev_change_log  [optional]  Name of the previous ChangeLog file.
+#  gen_start_date   [optional]  Start ChangeLog from this date. 
+#  changelog_dir    [mandatory] Directory where to create ChangeLog
 VPATH = @srcdir@
 VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = .
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = true
-PRE_INSTALL = true
-POST_INSTALL = true
-NORMAL_UNINSTALL = true
-PRE_UNINSTALL = true
-POST_UNINSTALL = true
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Make.rules \
+	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+	$(srcdir)/config.h.in $(top_srcdir)/configure ABOUT-NLS \
+	AUTHORS COPYING ChangeLog INSTALL NEWS THANKS TODO \
+	build-aux/compile build-aux/config.guess \
+	build-aux/config.rpath build-aux/config.sub build-aux/depcomp \
+	build-aux/install-sh build-aux/mdate-sh build-aux/missing \
+	build-aux/texinfo.tex build-aux/ylwrap
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \
+	$(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \
+	$(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \
+	$(top_srcdir)/m4/canonicalize-lgpl.m4 \
+	$(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \
+	$(top_srcdir)/m4/clock_time.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \
+	$(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \
+	$(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \
+	$(top_srcdir)/m4/dirfd.m4 $(top_srcdir)/m4/dirname.m4 \
+	$(top_srcdir)/m4/dos.m4 $(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \
+	$(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exclude.m4 \
+	$(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \
+	$(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \
+	$(top_srcdir)/m4/fcntl-safer.m4 $(top_srcdir)/m4/fcntl_h.m4 \
+	$(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/float_h.m4 \
+	$(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftruncate.m4 \
+	$(top_srcdir)/m4/getcwd-abort-bug.m4 \
+	$(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \
+	$(top_srcdir)/m4/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \
+	$(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
+	$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
+	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \
+	$(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \
+	$(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
+	$(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
+	$(top_srcdir)/m4/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \
+	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \
+	$(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \
+	$(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \
+	$(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \
+	$(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/mbchar.m4 \
+	$(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \
+	$(top_srcdir)/m4/mbscasecmp.m4 $(top_srcdir)/m4/mbsinit.m4 \
+	$(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mempcpy.m4 \
+	$(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdtemp.m4 \
+	$(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \
+	$(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \
+	$(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+	$(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \
+	$(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmt.m4 \
+	$(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
+	$(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \
+	$(top_srcdir)/m4/sleep.m4 $(top_srcdir)/m4/snprintf.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \
+	$(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \
+	$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
+	$(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcase.m4 \
+	$(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strdup.m4 \
+	$(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \
+	$(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtoimax.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \
+	$(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
+	$(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/sys_stat_h.m4 \
+	$(top_srcdir)/m4/sys_time_h.m4 $(top_srcdir)/m4/sysexits.m4 \
+	$(top_srcdir)/m4/system.m4 $(top_srcdir)/m4/tempname.m4 \
+	$(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \
+	$(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \
+	$(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \
+	$(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
+	$(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wcwidth.m4 \
+	$(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xgetcwd.m4 \
+	$(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-dvi-recursive install-exec-recursive \
+	install-html-recursive install-info-recursive \
+	install-pdf-recursive install-ps-recursive install-recursive \
+	installcheck-recursive installdirs-recursive pdf-recursive \
+	ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+  distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+  { test ! -d $(distdir) \
+    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr $(distdir); }; }
+DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 \
+	$(distdir).shar.gz
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
 ACLOCAL = @ACLOCAL@
 ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
 AUTOCONF = @AUTOCONF@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOHEADER = @AUTOHEADER@
+AUTOM4TE = @AUTOM4TE@
 AUTOMAKE = @AUTOMAKE@
 AUTOMAKE = @AUTOMAKE@
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
+AWK = @AWK@
+BACKUP_LIBEXEC_SCRIPTS = @BACKUP_LIBEXEC_SCRIPTS@
+BACKUP_SBIN_SCRIPTS = @BACKUP_SBIN_SCRIPTS@
+BACKUP_SED_COND = @BACKUP_SED_COND@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
 CC = @CC@
 CC = @CC@
-DATADIRNAME = @DATADIRNAME@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFAULT_ARCHIVE = @DEFAULT_ARCHIVE@
+DEFAULT_ARCHIVE_FORMAT = @DEFAULT_ARCHIVE_FORMAT@
+DEFAULT_BLOCKING = @DEFAULT_BLOCKING@
+DEFAULT_QUOTING_STYLE = @DEFAULT_QUOTING_STYLE@
+DEFAULT_RMT_COMMAND = @DEFAULT_RMT_COMMAND@
+DEFAULT_RMT_DIR = @DEFAULT_RMT_DIR@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DIRENT_H = @DIRENT_H@
 ECHO_C = @ECHO_C@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_N = @ECHO_N@
-GENCAT = @GENCAT@
-GMOFILES = @GMOFILES@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
+EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
+ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
+ENOLINK_VALUE = @ENOLINK_VALUE@
+EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
+EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
+ERRNO_H = @ERRNO_H@
+EXEEXT = @EXEEXT@
+FCNTL_H = @FCNTL_H@
+FLOAT_H = @FLOAT_H@
+FNMATCH_H = @FNMATCH_H@
+GETOPT_H = @GETOPT_H@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GLIBC21 = @GLIBC21@
 GMSGFMT = @GMSGFMT@
 GMSGFMT = @GMSGFMT@
-GT_NO = @GT_NO@
-GT_YES = @GT_YES@
-INSTOBJEXT = @INSTOBJEXT@
-INTLDEPS = @INTLDEPS@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_ALPHASORT = @GNULIB_ALPHASORT@
+GNULIB_ATOLL = @GNULIB_ATOLL@
+GNULIB_BTOWC = @GNULIB_BTOWC@
+GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_DIRFD = @GNULIB_DIRFD@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_ENVIRON = @GNULIB_ENVIRON@
+GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FCLOSE = @GNULIB_FCLOSE@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF = @GNULIB_FPRINTF@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FPUTC = @GNULIB_FPUTC@
+GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSYNC = @GNULIB_FSYNC@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
+GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
+GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
+GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
+GNULIB_GETLINE = @GNULIB_GETLINE@
+GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_LCHMOD = @GNULIB_LCHMOD@
+GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LINK = @GNULIB_LINK@
+GNULIB_LSEEK = @GNULIB_LSEEK@
+GNULIB_LSTAT = @GNULIB_LSTAT@
+GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+GNULIB_MBRLEN = @GNULIB_MBRLEN@
+GNULIB_MBRTOWC = @GNULIB_MBRTOWC@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSINIT = @GNULIB_MBSINIT@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_OPEN = @GNULIB_OPEN@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
+GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+GNULIB_STRSTR = @GNULIB_STRSTR@
+GNULIB_STRTOD = @GNULIB_STRTOD@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOLL = @GNULIB_STRTOLL@
+GNULIB_STRTOULL = @GNULIB_STRTOULL@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
+GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
+GNULIB_UNSETENV = @GNULIB_UNSETENV@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
+GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WRITE = @GNULIB_WRITE@
+GREP = @GREP@
+HAVE_ALPHASORT = @HAVE_ALPHASORT@
+HAVE_ATOLL = @HAVE_ATOLL@
+HAVE_BTOWC = @HAVE_BTOWC@
+HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
+HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DPRINTF = @HAVE_DPRINTF@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@
+HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
+HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
+HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_GETUSERSHELL = @HAVE_GETUSERSHELL@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LCHMOD = @HAVE_LCHMOD@
+HAVE_LINK = @HAVE_LINK@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_LSTAT = @HAVE_LSTAT@
+HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+HAVE_MBRLEN = @HAVE_MBRLEN@
+HAVE_MBRTOWC = @HAVE_MBRTOWC@
+HAVE_MBSINIT = @HAVE_MBSINIT@
+HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
+HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_RANDOM_H = @HAVE_RANDOM_H@
+HAVE_RANDOM_R = @HAVE_RANDOM_R@
+HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SETENV = @HAVE_SETENV@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_STRTOD = @HAVE_STRTOD@
+HAVE_STRTOLL = @HAVE_STRTOLL@
+HAVE_STRTOULL = @HAVE_STRTOULL@
+HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
+HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
+HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
+HAVE_SYSEXITS_H = @HAVE_SYSEXITS_H@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
+HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSETENV = @HAVE_UNSETENV@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_VDPRINTF = @HAVE_VDPRINTF@
+HAVE_WCHAR_H = @HAVE_WCHAR_H@
+HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INCLUDE_NEXT = @INCLUDE_NEXT@
+INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@
+INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@
 INTLLIBS = @INTLLIBS@
 INTLLIBS = @INTLLIBS@
-INTLOBJS = @INTLOBJS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
+LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_CLOSE = @LIB_CLOSE@
+LIB_SETSOCKOPT = @LIB_SETSOCKOPT@
+LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+LOCALE_FR = @LOCALE_FR@
+LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
+LOCALE_JA = @LOCALE_JA@
+LOCALE_ZH_CN = @LOCALE_ZH_CN@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
 MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+NEXT_DIRENT_H = @NEXT_DIRENT_H@
+NEXT_ERRNO_H = @NEXT_ERRNO_H@
+NEXT_FCNTL_H = @NEXT_FCNTL_H@
+NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
+NEXT_STDARG_H = @NEXT_STDARG_H@
+NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
+NEXT_STDLIB_H = @NEXT_STDLIB_H@
+NEXT_STRINGS_H = @NEXT_STRINGS_H@
+NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYSEXITS_H = @NEXT_SYSEXITS_H@
+NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
+NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
+NEXT_TIME_H = @NEXT_TIME_H@
+NEXT_UNISTD_H = @NEXT_UNISTD_H@
+NEXT_WCHAR_H = @NEXT_WCHAR_H@
+NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
+OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE = @PACKAGE@
-POFILES = @POFILES@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
 POSUB = @POSUB@
 POSUB = @POSUB@
+PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PU_RMT_PROG = @PU_RMT_PROG@
 RANLIB = @RANLIB@
 RANLIB = @RANLIB@
-RMT = @RMT@
-U = @U@
-USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
+REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_LSTAT = @REPLACE_LSTAT@
+REPLACE_MBRLEN = @REPLACE_MBRLEN@
+REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
+REPLACE_MBSINIT = @REPLACE_MBSINIT@
+REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
+REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
+REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MKDIR = @REPLACE_MKDIR@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
+REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
+REPLACE_OPEN = @REPLACE_OPEN@
+REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRDUP = @REPLACE_STRDUP@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRPTIME = @REPLACE_STRPTIME@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VDPRINTF = @REPLACE_VDPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
+REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
+REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+REPLACE_WRITE = @REPLACE_WRITE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDARG_H = @STDARG_H@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+SYSEXITS_H = @SYSEXITS_H@
+SYS_STAT_H = @SYS_STAT_H@
+SYS_TIME_H = @SYS_TIME_H@
+SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
+TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
+UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
+UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
+UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
 USE_NLS = @USE_NLS@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 VERSION = @VERSION@
+VOID_UNSETENV = @VOID_UNSETENV@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
 YACC = @YACC@
 YACC = @YACC@
-
-AUTOMAKE_OPTIONS = gnits dist-shar
-
-BABYL = rmail/* admin/*/RMAIL
-EXTRA_DIST = AC-PATCHES AM-PATCHES BI-PATCHES PORTS rebox.el
-SUBDIRS = doc lib intl src scripts po tests
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-CONFIG_HEADER_IN = config.h.in
-CONFIG_HEADER_FULL = config.h
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = 
-DIST_COMMON =  README ABOUT-NLS AUTHORS BACKLOG COPYING ChangeLog \
-INSTALL Makefile.am Makefile.in NEWS THANKS TODO acconfig.h \
-acinclude.m4 aclocal.m4 config.h.in configure configure.in install-sh \
-missing mkinstalldirs stamp-h.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP = --best
-default: all
+YFLAGS = @YFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJS = @gltests_LIBOBJS@
+gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+ACLOCAL_AMFLAGS = -I m4
+EXTRA_DIST = ChangeLog.1 Make.rules
+SUBDIRS = doc gnu lib rmt src scripts po tests
+gen_start_date = 2009-03-06
+prev_change_log = ChangeLog.CVS
+changelog_dir = .
+all: config.h
+	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 
 .SUFFIXES:
 .SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnits Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-$(srcdir)/aclocal.m4:  configure.in  acinclude.m4
-	cd $(srcdir) && $(ACLOCAL)
-
-config.status: configure
+am--refresh:
+	@:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(srcdir)/Make.rules $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnits '; \
+	      cd $(srcdir) && $(AUTOMAKE) --gnits  \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits  Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnits  Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    echo ' $(SHELL) ./config.status'; \
+	    $(SHELL) ./config.status;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	$(SHELL) ./config.status --recheck
 	$(SHELL) ./config.status --recheck
-$(srcdir)/configure: configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
-	cd $(srcdir) && $(AUTOCONF)
 
 
-$(CONFIG_HEADER): stamp-h
-stamp-h: $(CONFIG_HEADER_IN) $(top_builddir)/config.status
-	cd $(top_builddir) \
-	  && CONFIG_FILES= CONFIG_HEADERS=$(CONFIG_HEADER_FULL) \
-	     $(SHELL) ./config.status
-	@echo timestamp > stamp-h
-$(srcdir)/$(CONFIG_HEADER_IN): stamp-h.in
-$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+config.h: stamp-h1
+	@if test ! -f $@; then \
+	  rm -f stamp-h1; \
+	  $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
+	else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+	@rm -f stamp-h1
+	cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in:  $(am__configure_deps) 
 	cd $(top_srcdir) && $(AUTOHEADER)
 	cd $(top_srcdir) && $(AUTOHEADER)
-	echo timestamp > $(srcdir)/stamp-h.in
-
-mostlyclean-hdr:
-
-clean-hdr:
+	rm -f stamp-h1
+	touch $@
 
 
 distclean-hdr:
 distclean-hdr:
-	rm -f $(CONFIG_HEADER)
-
-maintainer-clean-hdr:
+	-rm -f config.h stamp-h1
 
 
 # This directory's subdirectories are mostly independent; you can cd
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
 # into them and run `make' without going through this Makefile.
@@ -165,214 +769,425 @@ maintainer-clean-hdr:
 # (1) if the variable is set in `config.status', edit `config.status'
 # (1) if the variable is set in `config.status', edit `config.status'
 #     (which will cause the Makefiles to be regenerated when you run `make');
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 # (2) otherwise, pass the desired values on the `make' command line.
-
-@SET_MAKE@
-
-all-recursive install-data-recursive install-exec-recursive \
-installdirs-recursive install-recursive uninstall-recursive  \
-check-recursive installcheck-recursive info-recursive dvi-recursive \
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
-	@for subdir in $(SUBDIRS); do \
-	  target=`echo $@ | sed s/-recursive//`; \
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
 	  echo "Making $$target in $$subdir"; \
 	  echo "Making $$target in $$subdir"; \
-	  (cd $$subdir && $(MAKE) $$target) \
-	   || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
 	done && test -z "$$fail"
 	done && test -z "$$fail"
 tags-recursive:
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  (cd $$subdir && $(MAKE) tags); \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 	done
 
 
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
 tags: TAGS
 tags: TAGS
 
 
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES)
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
 	tags=; \
 	tags=; \
 	here=`pwd`; \
 	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
 	done; \
 	done; \
-	test -z "$(ETAGS_ARGS)config.h.in$(SOURCES)$(HEADERS)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $(SOURCES) $(HEADERS) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 
 distclean-tags:
 distclean-tags:
-	rm -f TAGS ID
-
-maintainer-clean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 
-distdir = $(PACKAGE)-$(VERSION)
-# This target untars the dist file and tries a VPATH configuration.  Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
-	rm -rf $(distdir)
-	GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz --mode=a+r
-	mkdir $(distdir)/=build
-	mkdir $(distdir)/=inst
-	dc_install_base=`cd $(distdir)/=inst && pwd`; \
-	cd $(distdir)/=build \
-	  && ../configure --with-included-gettext --srcdir=.. --prefix=$$dc_install_base \
-	  && $(MAKE) \
-	  && $(MAKE) dvi \
-	  && $(MAKE) check \
-	  && $(MAKE) install \
-	  && $(MAKE) installcheck \
-	  && $(MAKE) dist
-	rm -rf $(distdir)
-	@echo "========================"; \
-	echo "$(distdir).tar.gz is ready for distribution"; \
-	echo "========================"
-dist: distdir
-	-chmod -R a+r $(distdir)
-	GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz --mode=a+r $(distdir)
-	rm -rf $(distdir)
-dist-shar: distdir
-	-chmod -R a+r $(distdir)
-	rm -rf $(distdir)
-dist-all: distdir
-	-chmod -R a+r $(distdir)
-	GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz --mode=a+r $(distdir)
-	rm -rf $(distdir)
 distdir: $(DISTFILES)
 distdir: $(DISTFILES)
-	@if sed 15q $(srcdir)/NEWS | fgrep -e "$(VERSION)" > /dev/null; then :; else \
+	@case `sed 15q $(srcdir)/NEWS` in \
+	*"$(VERSION)"*) : ;; \
+	*) \
 	  echo "NEWS not updated; not releasing" 1>&2; \
 	  echo "NEWS not updated; not releasing" 1>&2; \
-	  exit 1; \
-	fi
-	rm -rf $(distdir)
-	mkdir $(distdir)
-	-chmod 755 $(distdir)
-	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
-	  test -f $(distdir)/$$file \
-	  || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	  || cp -p $$d/$$file $(distdir)/$$file; \
+	  exit 1;; \
+	esac
+	$(am__remove_distdir)
+	test -d $(distdir) || mkdir $(distdir)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
 	done
 	done
-	for subdir in $(SUBDIRS); do		\
-	  test -d $(distdir)/$$subdir		\
-	  || mkdir $(distdir)/$$subdir		\
-	  || exit 1;				\
-	  chmod 755 $(distdir)/$$subdir;	\
-	  (cd $$subdir && $(MAKE) distdir=../$(distdir)/$$subdir distdir) \
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
 	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+		am__remove_distdir=: \
+		am__skip_length_check=: \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
 	done
 	done
-info: info-recursive
-dvi: dvi-recursive
-check: all-am
-	$(MAKE) check-recursive
-installcheck: installcheck-recursive
-all-recursive-am: $(CONFIG_HEADER)
-	$(MAKE) all-recursive
-
-all-am: Makefile config.h all-local
+	$(MAKE) $(AM_MAKEFLAGS) \
+	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
+	  dist-hook
+	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r $(distdir)
+dist-gzip: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+dist-bzip2: distdir
+	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+	$(am__remove_distdir)
+
+dist-lzma: distdir
+	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
+	$(am__remove_distdir)
+
+dist-tarZ: distdir
+	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+	$(am__remove_distdir)
+dist-shar: distdir
+	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+	$(am__remove_distdir)
 
 
-install-exec: install-exec-recursive
-	@$(NORMAL_INSTALL)
+dist-zip: distdir
+	-rm -f $(distdir).zip
+	zip -rq $(distdir).zip $(distdir)
+	$(am__remove_distdir)
 
 
-install-data: install-data-recursive
-	@$(NORMAL_INSTALL)
+dist dist-all: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+	$(am__remove_distdir)
 
 
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	case '$(DIST_ARCHIVES)' in \
+	*.tar.gz*) \
+	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+	*.tar.bz2*) \
+	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+	*.tar.lzma*) \
+	  unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
+	*.tar.Z*) \
+	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+	*.shar.gz*) \
+	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+	*.zip*) \
+	  unzip $(distdir).zip ;;\
+	esac
+	chmod -R a-w $(distdir); chmod a+w $(distdir)
+	mkdir $(distdir)/_build
+	mkdir $(distdir)/_inst
+	chmod a-w $(distdir)
+	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+	  && cd $(distdir)/_build \
+	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+	        distuninstallcheck \
+	  && chmod -R a-w "$$dc_install_base" \
+	  && ({ \
+	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
+	  && rm -rf "$$dc_destdir" \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist \
+	  && rm -rf $(DIST_ARCHIVES) \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+	$(am__remove_distdir)
+	@(echo "$(distdir) archives ready for distribution: "; \
+	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+	@cd $(distuninstallcheck_dir) \
+	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+	   || { echo "ERROR: files left after uninstall:" ; \
+	        if test -n "$(DESTDIR)"; then \
+	          echo "  (check DESTDIR support)"; \
+	        fi ; \
+	        $(distuninstallcheck_listfiles) ; \
+	        exit 1; } >&2
+distcleancheck: distclean
+	@if test '$(srcdir)' = . ; then \
+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+	  exit 1 ; \
+	fi
+	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+	  || { echo "ERROR: files left in build directory after distclean:" ; \
+	       $(distcleancheck_listfiles) ; \
+	       exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile config.h
+installdirs: installdirs-recursive
+installdirs-am:
 install: install-recursive
 install: install-recursive
-	@:
-
+install-exec: install-exec-recursive
+install-data: install-data-recursive
 uninstall: uninstall-recursive
 uninstall: uninstall-recursive
 
 
-all: all-recursive-am all-am
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 
 
+installcheck: installcheck-recursive
 install-strip:
 install-strip:
-	$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install
-installdirs: installdirs-recursive
-
-
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 mostlyclean-generic:
-	test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
 
 
 clean-generic:
 clean-generic:
-	test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
 
 
 distclean-generic:
 distclean-generic:
-	rm -f Makefile $(DISTCLEANFILES)
-	rm -f config.cache config.log stamp-h
-	test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
 
 
 maintainer-clean-generic:
 maintainer-clean-generic:
-	test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-	test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-mostlyclean-am:  mostlyclean-hdr mostlyclean-tags mostlyclean-generic
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
 
 
-clean-am:  clean-hdr clean-tags clean-generic mostlyclean-am
+clean-am: clean-generic mostlyclean-am
 
 
-distclean-am:  distclean-hdr distclean-tags distclean-generic clean-am
+distclean: distclean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr distclean-local \
+	distclean-tags
 
 
-maintainer-clean-am:  maintainer-clean-hdr maintainer-clean-tags \
-		maintainer-clean-generic distclean-am
+dvi: dvi-recursive
 
 
-mostlyclean:  mostlyclean-recursive mostlyclean-am
+dvi-am:
 
 
-clean:  clean-recursive clean-am
+html: html-recursive
 
 
-distclean:  distclean-recursive distclean-am
-	rm -f config.status
+info: info-recursive
 
 
-maintainer-clean:  maintainer-clean-recursive maintainer-clean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
-	rm -f config.status
-
-.PHONY: default mostlyclean-hdr distclean-hdr clean-hdr \
-maintainer-clean-hdr install-data-recursive uninstall-data-recursive \
-install-exec-recursive uninstall-exec-recursive installdirs-recursive \
-uninstalldirs-recursive all-recursive check-recursive \
-installcheck-recursive info-recursive dvi-recursive \
-mostlyclean-recursive distclean-recursive clean-recursive \
-maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info dvi \
-installcheck all-recursive-am all-am install-exec install-data install \
-uninstall all installdirs mostlyclean-generic distclean-generic \
-clean-generic maintainer-clean-generic clean mostlyclean distclean \
-maintainer-clean
-
-
-all-local: $(CONFIG_HEADER)
-
-id: ID
-
-ID:
-	cd lib && $(MAKE) $@
-	cd src && $(MAKE) $@
-
-dist-zoo: $(DISTFILES)
-	rm -rf $(distdir)
-	mkdir $(distdir)
-	distdir=`cd $(distdir) && pwd` \
-	  && cd $(srcdir) \
-	  && automake --include-deps --output-dir=$$distdir
-	@for file in $(DISTFILES); do		\
-	  test -f $(distdir)/$$file \
-	    || cp -p $(srcdir)/$$file $(distdir)/$$file; \
-	done
-	for subdir in $(SUBDIRS); do		\
-	  test -d $(distdir)/$$subdir		\
-	  || mkdir $(distdir)/$$subdir		\
-	  || exit 1;				\
-	  chmod 777 $(distdir)/$$subdir;	\
-	  (cd $$subdir && $(MAKE) dist) || exit 1; \
-	done
-	@sublist="$(DIST_SUBDIRS)";		\
-	for dir in $$sublist; do		\
-	  echo copying directory $$dir;		\
-	  tar -chf - $$dir | (cd $(distdir) && tar -xBpf -); \
-	done
-	chmod -R a+r $(distdir)
-	find $(distdir) -type f | xargs dosfn
-#	find $(distdir) -type f | xargs recode :ibmpc
-	mv $(distdir) $(PACKAGE)
-	find $(PACKAGE) -type f | zoo ahIq $(PACKAGE).zoo
-	rm -rf $(PACKAGE)
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
 
 
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf $(top_srcdir)/autom4te.cache
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+	install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+	all all-am am--refresh check check-am clean clean-generic \
+	ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
+	dist-hook dist-lzma dist-shar dist-tarZ dist-zip distcheck \
+	distclean distclean-generic distclean-hdr distclean-local \
+	distclean-tags distcleancheck distdir distuninstallcheck dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs installdirs-am \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \
+	uninstall uninstall-am
+
+
+dist-hook: 
+	$(MAKE) changelog_dir=$(distdir) make-ChangeLog
+	-rm -f $(distdir).cpio
+	find $(distdir) | cpio -Hcrc -o | \
+          GZIP=$(GZIP_ENV) gzip -c > $(distdir).cpio.gz
+
+distclean-local:
+	-rm -f $(distdir).cpio.gz
+
+.PHONY: ChangeLog
+ChangeLog: 
+	if test -d .git; then                                              \
+	  cmd=$(top_srcdir)/build-aux/gitlog-to-changelog;                 \
+	  if test -n "$(gen_start_date)"; then                             \
+	    cmd="$$cmd --since=\"$(gen_start_date)\"";                     \
+	  fi;                                                              \
+	  $$cmd |                                                          \
+            sed '/<unknown>$$/d' | fmt -s > $(changelog_dir)/cl-t;         \
+          if test -n "$(prev_change_log)" && test -f "$(prev_change_log)"; \
+	  then                                                             \
+	    cat "$(prev_change_log)" |                                     \
+	      sed '/^Local Variables:/,/^End:/d' >> $(changelog_dir)/cl-t; \
+	  fi;                                                              \
+	  echo "Local Variables:" >> $(changelog_dir)/cl-t;                \
+	  echo "mode: change-log" >> $(changelog_dir)/cl-t;                \
+	  echo "version-control: never"  >> $(changelog_dir)/cl-t;         \
+	  echo "buffer-read-only: t" >> $(changelog_dir)/cl-t;             \
+	  echo "End:" >> $(changelog_dir)/cl-t;                            \
+	  rm -f $(changelog_dir)/ChangeLog;                                \
+	  mv $(changelog_dir)/cl-t $(changelog_dir)/ChangeLog;             \
+	fi
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
 .NOEXPORT:

+ 0 - 173
PORTS

@@ -1,173 +0,0 @@
-Ports of GNU tar and other tars		
-See the end of file for copying conditions.
-
-* Introduction
-
-  Most entries in this file are out of date, unfortunately. Such
-  entries are marked with an `X'. Run grep '^\*\*[^X]' PORTS to
-  extract valid entries.
-  
-  Please write bug-tar@gnu.org if you are aware of various ports of GNU tar
-  to non-GNU and non-Unix systems not listed here, or for corrections.
-  Please provide the goal system, a complete and stable URL, the maintainer
-  name and address, the tar version used as a base, and your comments.
-
-* GNU/Linux and Unix
-
-** Star is a tape archiver similar to tar.
-    <http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/star.html>
-
-* Amiga
-
-**X ftp://ftp.wustl.edu/systems/amiga/aminet/util/arc/GNUtar-1.11.8.lha
-    maintained by Enrico Forestieri <enrico@com.unipr.it>
-    Based on tar 1.11.8.
-
-**X ftp://ftp.ninemoons.com/pub/ade/current/amiga-bin/tar-1.11.8-bin.lha
-    maintained by the ADE group <fnf@fishpond.ninemoons.com>
-    Based on tar 1.11.8, needs ixemul.library.
-
-**X ftp://ftp.wustl.edu/systems/amiga/aminet/util/arc/gnutar.lha
-    maintained by <mscheler@wuarchive.wustl.edu>
-
-* DEC alpha (NT)
-
-**X ftp://ftp.cdrom.com/.20/windows/archiver/tar.zip
-    maintained by Drew Bliss & Geoff Voelker
-
-* DEC VAX (VMS)
-
-**X http://www.lp.se/free/vmstar/
-    maintained by Richard Levitte <levitte@lp.se>
-    This is not GNU tar, but a separate implementation.
-
-**  maintained by William Bader <william@nscs.fast.net>
-    For V4.7.  Based on an old PDtar.  Requires compatible shared libraries
-    to run V5 or V6 executables.
-
-* IBM/PC (DV/X)
-
-**X ftp://qdeck.com/ (?)
-    maintained by David Ronis <ronis@gibbs.chem.mcgill.ca>
-    For Desqview/X.  Everything works besides compression.  Copy of hacked
-    sources available, some of DV/X's programmer's library also needed.
-
-* IBM/PC (MSDOS)
-
-**X http://www.simtel.net/simtel.net/
-    http://www.leo.org/pub/comp/platforms/pc/gnuish (Germany)
-    ftp://ftp.simtel.net/simtelnet/gnu
-    ftp://ftp.leo.org/pub/comp/platforms/pc/gnuish
-    maintained by Darrel Hankerson <hankedr@mail.auburn.edu>
-    You get many GNU tools, not only `tar'.  The GNUish project is described
-    in `gnuish_t.htm'.
-
-** The DJGPP development tools also include some `tar' utilities.
-
-**X ftp://ftp.mcs.com/mcsnet.users/les/dos-gnutar/
-    maintained by Leslie Mikesell <les@mcs.net>
-    Based on tar 1.11.2.  Support for SCSI (via ASPI) and network (rsh over
-    packet driver). No support for win95 long file names.
-
-**X ftp://ftp.wu-wien.ac.at/pub/src/PCmisc/aspi-tar/*
-    maintained by Christoph Splittgerber <chris@orion.sdata.de>
-    Based on tar 1.10.  Support for SCSI (via ASPI).
-
-**X ftp://wuarchive (?)
-    Several DOS version based on PDtar.  John Gilmore <gnu@toad.com> says
-    he has copies of several vintages saved.
-
-**X ftp://ftp.cdrom.com/.14/languages/ada/toolkit/msdos/gtar/gtar.exe
-    ftp://ftp.cdrom.com/.14/languages/ada/toolkit/msdos/gtar/gtar.taz
-    ftp://ftp.cdrom.com/.14/languages/ada/toolkit/msdos/gtar/gtar.zip
-
-**X ftp://ftp.cdrom.com/.4/os2/archiver/tar.zip
-    Based on PDtar.
-
-**X ftp://ftp.cdrom.com/.20/windows/archiver/tar.zip
-    maintained by Drew Bliss & Geoff Voelker
-    GNU tar for NT (intel and Alpha platforms).
-
-** ftp://garbo.uwasa.fi/pc/unix/untgz095.zip
-    maintained by Tillmann Steinbrecher <tst@darmstadt.netsurf.de>
-    The `untgz' program is a fast .tar or .tar.gz (.tgz) extractor.
-
-**X http://people.darmstadt.netsurf.de/tst/tar.htm
-    maintained by Tillmann Steinbrecher <tst@darmstadt.netsurf.de>
-    This is not a `tar' port, but an index of them.
-
-* IBM/PC (OS/2)
-
-**X http://www.leo.org/pub/comp/os/os2/leo/gnu/archiver/gtar254.zip
-    http://www.leo.org/pub/comp/os/os2/leo/gnu/archiver/gtak254.zip
-    maintained by Andreas Kaiser <Andreas.Kaiser@stuttgart.netsurf.de>
-    Version 2.54.  Based on tar 1.10.  The second archive contains SCSI
-    drivers (DAT streamers notably) and rmt-type programs.
-
-* IBM/PC (Win32: Windows 95, NT 3.5 or NT 4.0)
-
-**X ftp://ftp.cygnus.com:~ftp/pub/sac/win32/usersrc/*
-    maintained by Cygnus
-    GNU-Win32 B17.1 distribution.  Download all files, `cat' them together,
-    and `untar' the result.  You get many GNU tools, not only `tar'.
-    Based on tar 1.11.2.
-
-**X ftp://ftp.cdrom.com/.20/windows/archiver/tar.zip
-    maintained by Drew Bliss & Geoff Voelker
-    GNU tar for NT (intel and Alpha platforms).
-
-** ftp://garbo.uwasa.fi/pc/unix/untgz095.zip
-    maintained by Tillmann Steinbrecher <tst@darmstadt.netsurf.de>
-    The `untgz' program is a fast .tar or .tar.gz (.tgz) extractor.
-
-* IBM/PC (Windows 3.1)
-
-**X ftp://ftp.mcs.com/mcsnet.users/les/win-gnutar/
-    maintained by Leslie Mikesell <les@mcs.net>
-    Support for network (rsh over winsock).  No support for win95 long
-    file names.
-
-**X ftp://ftp.gamesdomain.ru/.1/os/windows/programr/tar.zip
-    Based on GNU tar 1.11.2.
-
-* Macintosh
-
-** Paulo Abreu (paulotex at yahoo dot com) did a
-   limited port of GNU tar to Darwin, with support for resource forks
-   and finder info, but this no longer seems to be available.
-
-** There is a tar in Stuffit Expander which is available many places and
-   comes with MacOS.  It creates some spurious files but works on average.
-
-** There is an excellent GNU tar bundled in Tenon MachTen, but it does not
-   seem to be available separately.
-
-
-* Copyright notice
-
-  Copyright (C) 1999, 2001, 2003, 2004, 2007 Free Software Foundation, Inc.
-
-  This file is part of GNU tar.
-
-  GNU tar is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; either version 3, or (at your option)
-  any later version.
-
-  GNU tar is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with GNU tar; see the file COPYING.  If not, write to
-  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-  Boston, MA 02110-1301, USA.
-
-
-Local Variables:
-mode: outline
-paragraph-separate: "[	]*$"
-version-control: never
-End:
-  

+ 0 - 70
README-cvs

@@ -1,70 +0,0 @@
--*- outline -*-
-
-These notes intend to help people working on the CVS version of
-this package.
-
-* Requirements
-
-Only the sources are installed in the CVS repository (to ease the
-maintenance, merges etc.), therefore you will have to get the latest
-stable versions of the maintainer tools we depend upon, including:
-
-- Automake <http://www.gnu.org/software/automake/>
-- Autoconf <http://www.gnu.org/software/autoconf/>
-- Bison <http://www.gnu.org/software/bison/>
-- Gettext <http://www.gnu.org/software/gettext/>
-- Gzip <http://www.gnu.org/software/gzip/>
-- Tar <http://www.gnu.org/software/tar/>
-- Wget <http://www.gnu.org/software/wget/>
-
-As of this writing, the latest stable version of Gzip is 1.2.4 but we
-suggest using test version 1.3.5 (or later, if one becomes available).
-
-Valgrind <http://valgrind.org/> is also highly recommended, if
-Valgrind supports your architecture.
-
-Only building the initial full source tree will be a bit painful,
-later, a plain `cvs update -P && make' should be sufficient.
-
-* First CVS checkout
-
-Obviously, if you are reading these notes, you did manage to check out
-this package from CVS.  The next step is to get other files needed to
-build, which are extracted from other source packages:
-
-	$ ./bootstrap
-
-And there you are!  Just
-
-	$ ./configure
-	$ make
-	$ make check
-
-At this point, there should be no difference between your local copy,
-and the CVS master copy:
-
-	$ cvs diff
-
-should output no difference.
-
-Enjoy!
-
------
-
-Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation,
-Inc.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301, USA.

+ 71 - 0
README-hacking

@@ -0,0 +1,71 @@
+These notes intend to help people working on the Git version of
+this package.
+
+* Requirements
+
+You need the following packages to build the Git version of GNU
+tar.  We do not make any efforts to accommodate older versions of
+these packages, so please make sure that you have the latest stable
+version. 
+
+- Automake <http://www.gnu.org/software/automake/>
+- Autoconf <http://www.gnu.org/software/autoconf/>
+- M4 <http://www.gnu.org/software/m4/>
+- Texinfo <http://www.gnu.org/software/texinfo>
+- Gnulib <http://www.gnu.org/software/gnulib> 
+- Git <http://git.or.cz>
+
+* Bootstrapping
+
+Obviously, if you are reading these notes, you did manage to clone
+tar from Git. The next step is to get other files needed to build,
+which are extracted from other source packages: 
+
+1. Change to the source tree directory
+
+   cd tar
+
+2. Run
+
+   ./bootstrap 
+
+Once done, proceed as described in the file README (section
+INSTALLATION).
+
+Normally you will have to run bootstrap only once. However, if you
+intend to hack on GNU tar, you might need to run it again later. In
+this case, you will probably want to save some time and bandwidth by
+avoiding downloading the same files again. If so, create in GNU tar
+root directory the file named `.bootstrap' with the following
+contents:
+
+   --gnulib-srcdir=$HOME/gnulib
+
+Replace `$HOME/gnulib' with the actual directory where the Gnulib
+sources reside.
+   
+For more information about `bootstrap', run `bootstrap --help'.
+
+
+* Copyright information
+
+ Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
+
+ Permission is granted to anyone to make or distribute verbatim copies
+ of this document as received, in any medium, provided that the
+ copyright notice and this permission notice are preserved,
+ thus giving the recipient permission to redistribute in turn.
+
+ Permission is granted to distribute modified versions
+ of this document, or of portions of it,
+ under the above conditions, provided also that they
+ carry prominent notices stating who last changed them.
+
+^L
+Local Variables:
+mode: outline
+paragraph-separate: "[	^L]*$"
+version-control: never
+End:
+
+

+ 0 - 88
acconfig.h

@@ -1,88 +0,0 @@
-/* Special definitions for GNU tar, processed by autoheader.
-   Copyright © 1994, 1997 Free Software Foundation, Inc.
-   François Pinard <pinard@iro.umontreal.ca>, 1993.
-*/
-
-/* This is unconditionally defined for setting a GNU environment.  */
-#undef _GNU_SOURCE
-
-/* Define to a string giving the full name of the default archive file.  */
-#undef DEFAULT_ARCHIVE
-
-/* Define to a number giving the default blocking size for archives.  */
-#undef DEFAULT_BLOCKING
-
-/* Define to 1 if density may be indicated by [lmh] at end of device.  */
-#undef DENSITY_LETTER
-
-/* Define to a string giving the prefix of the default device, without the
-   part specifying the unit and density.  */
-#undef DEVICE_PREFIX
-
-/* Define to 1 if you lack a 3-argument version of open, and want to
-   emulate it with system calls you do have.  */
-#undef EMUL_OPEN3
-
-/* Define to 1 if NLS is requested.  */
-#undef ENABLE_NLS
-
-/* Define as 1 if you have catgets and don't want to use GNU gettext.  */
-#undef HAVE_CATGETS
-
-/* Define to 1 if you have getgrgid(3).  */
-#undef HAVE_GETGRGID
-
-/* Define to 1 if you have getpwuid(3).  */
-#undef HAVE_GETPWUID
-
-/* Define as 1 if you have gettext and don't want to use GNU gettext.  */
-#undef HAVE_GETTEXT
-
-/* Define if your locale.h file contains LC_MESSAGES.  */
-#undef HAVE_LC_MESSAGES
-
-/* Define to 1 if you have the valloc function.  */
-#undef HAVE_VALLOC
-
-/* Define to 1 if some rsh exists, or if you have <netdb.h>.  */
-#undef HAVE_RTAPELIB
-
-/* Define to 1 if mknod function is available.  */
-#undef HAVE_MKNOD
-
-/* Define to 1 if stpcpy function is available.  */
-#undef HAVE_STPCPY
-
-/* Define if `union wait' is the type of the first arg to wait functions.  */
-#undef HAVE_UNION_WAIT
-
-/* Define to 1 if utime.h exists and declares struct utimbuf.  */
-#undef HAVE_UTIME_H
-
-/* Define to mt_model (v.g., for DG/UX), else to mt_type.  */
-#undef MTIO_CHECK_FIELD
-
-/* Define to the name of the distribution.  */
-#undef PACKAGE
-
-/* Define to 1 if ANSI function prototypes are usable.  */
-#undef PROTOTYPES
-
-/* Define to the full path of your rsh, if any.  */
-#undef REMOTE_SHELL
-
-/* Path to directory containing system wide message catalog sources.  */
-#undef STD_INC_PATH
-
-/* Define to the version of the distribution.  */
-#undef VERSION
-
-/* Define to 1 if using the `glocale' package for message catalogs.  */
-#undef WITH_CATALOGS
-
-/* Define to 1 for better use of the debugging malloc library.  See
-   site ftp.antaire.com in antaire/src, file dmalloc/dmalloc.tar.gz.  */
-#undef WITH_DMALLOC
-
-/* Define to 1 if GNU regex should be used instead of GNU rx.  */
-#undef WITH_REGEX

+ 0 - 425
acinclude.m4

@@ -1,425 +0,0 @@
-## ----------------------------------------- ##
-## Find how to suppress newlines with echo.  ##
-## ----------------------------------------- ##
-
-# Once this macro is called, you may output with no echo in a Makefile or
-# script using:  echo @ECHO_N@ "STRING_TO_OUTPUT@ECHO_C@".
-
-AC_DEFUN(fp_PROG_ECHO,
-[AC_MSG_CHECKING(how to suppress newlines using echo)
-AC_CACHE_VAL(fp_cv_prog_echo_nonl,
-[if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
-  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
-    fp_cv_prog_echo_nonl=no
-  else
-    fp_cv_prog_echo_nonl=option
-  fi
-else
-  fp_cv_prog_echo_nonl=escape
-fi
-])
-AC_MSG_RESULT($fp_cv_prog_echo_nonl)
-case $fp_cv_prog_echo_nonl in
-  no) ECHO_N= ECHO_C= ;;
-  option) ECHO_N=-n ECHO_C= ;;
-  escape) ECHO_N= ECHO_C='\c' ;;
-esac
-AC_SUBST(ECHO_N)dnl
-AC_SUBST(ECHO_C)dnl
-])
-
-## ------------------------------------------- ##
-## Check if --with-included-malloc was given.  ##
-## From Franc,ois Pinard                       ##
-## ------------------------------------------- ##
-
-# In 1992, Michael Bushnell (now Thomas Bushnell <thomas@gnu.ai.mit.edu>)
-# devised a test for avoiding HP/UX malloc and using GNU malloc instead.
-# Bruno Haible <haible@ma2s2.mathematik.uni-karlsruhe.de> recycled this
-# test for CLISP Common LISP and extended it to cover broken mallocs from
-# Sun and SGI.  I (<pinard@iro.umontreal.ca>) reworked it a little so
-# it is independent of config.guess, and overridable by the installer.
-
-# On IRIX 5.2, libc malloc is broken, but the -lmalloc one was usable.
-# So in my packages, I once unconditionally used -lmalloc if it existed.
-# This does not do anymore, because the -lmalloc malloc is broken on
-# Solaris 2.4 to 2.5.1 (alignment is 4 bytes instead of 8 bytes, as
-# reported by John Wells <john@bitsmart.com>).
-
-# Bruno also notes: "HP-UX has two different malloc() implementations.
-# Both are broken.  When used with CLISP, the one in the default libc.a
-# leads to a SIGSEGV, the one in libmalloc.a leads to a SIGBUS.  The SunOS
-# 4.1.1 malloc() breaks when used by CLISP's generational GC.  The IRIX
-# 5.2 malloc() breaks when used by CLISP's generational GC."
-
-# If the installer does not give a preference, we use the included GNU
-# malloc if we have the slightest doubt that malloc could be broken, this
-# includes cross compilation, and *all* HP/UX, SunOS or IRIX systems.
-# It is crude indeed, but I just do not have enough information for truly
-# benchmarking malloc in all cases, but want safe packages nevertheless.
-
-AC_DEFUN(fp_WITH_INCLUDED_MALLOC,
-[AC_MSG_CHECKING(if included GNU malloc is wanted)
-AC_ARG_WITH(included-malloc,
-[  --with-included-malloc  use the GNU malloc which is included here], ,
-[if test $cross_compiling = yes; then
-  withval=yes
-else
-  case `uname -s 2> /dev/null` in
-    HP-UX | SunOS | IRIX* ) withval=yes ;;
-    *) withval=no ;;
-  esac
-fi])
-test "$withval" = yes && LIBOBJS="$LIBOBJS gmalloc.o"
-AC_MSG_RESULT($withval)
-])
-
-## -------------------- ##
-## Macros from Ulrich.  ##
-## -------------------- ##
-
-# Search path for a program which passes the given test.
-# Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-# serial 1
-
-dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
-dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-AC_DEFUN(AM_PATH_PROG_WITH_TEST,
-[# Extract the first word of "$2", so it can be a program name with args.
-set dummy $2; ac_word=[$]2
-AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL(ac_cv_path_$1,
-[case "[$]$1" in
-  /*)
-  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
-  ;;
-  *)
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in ifelse([$5], , $PATH, [$5]); do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      if [$3]; then
-	ac_cv_path_$1="$ac_dir/$ac_word"
-	break
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-dnl If no 4th arg is given, leave the cache variable unset,
-dnl so AC_PATH_PROGS will keep looking.
-ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-])dnl
-  ;;
-esac])dnl
-$1="$ac_cv_path_$1"
-if test -n "[$]$1"; then
-  AC_MSG_RESULT([$]$1)
-else
-  AC_MSG_RESULT(no)
-fi
-AC_SUBST($1)dnl
-])
-
-# Check whether LC_MESSAGES is available in <locale.h>.
-# Ulrich Drepper <drepper@cygnus.com>, 1995.
-
-# serial 1
-
-AC_DEFUN(AM_LC_MESSAGES,
-  [if test $ac_cv_header_locale_h = yes; then
-    AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
-      [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
-       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
-    if test $am_cv_val_LC_MESSAGES = yes; then
-      AC_DEFINE(HAVE_LC_MESSAGES)
-    fi
-  fi])
-
-# Macro to add for using GNU gettext.
-# Ulrich Drepper <drepper@cygnus.com>, 1995.
-
-# serial 1
-
-AC_DEFUN(AM_WITH_NLS,
-  [AC_MSG_CHECKING([whether NLS is requested])
-    dnl Default is enabled NLS
-    AC_ARG_ENABLE(nls,
-      [  --disable-nls           do not use Native Language Support],
-      USE_NLS=$enableval, USE_NLS=yes)
-    AC_MSG_RESULT($USE_NLS)
-    AC_SUBST(USE_NLS)
-
-    USE_INCLUDED_LIBINTL=no
-
-    dnl If we use NLS figure out what method
-    if test "$USE_NLS" = "yes"; then
-      AC_DEFINE(ENABLE_NLS)
-      AC_MSG_CHECKING([whether included gettext is requested])
-      AC_ARG_WITH(included-gettext,
-        [  --with-included-gettext use the GNU gettext library included here],
-        nls_cv_force_use_gnu_gettext=$withval,
-        nls_cv_force_use_gnu_gettext=no)
-      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
-
-      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
-      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
-        dnl User does not insist on using GNU NLS library.  Figure out what
-        dnl to use.  If gettext or catgets are available (in this order) we
-        dnl use this.  Else we have to fall back to GNU NLS library.
-	dnl catgets is only used if permitted by option --with-catgets.
-	nls_cv_header_intl=
-	nls_cv_header_libgt=
-	CATOBJEXT=NONE
-
-	AC_CHECK_HEADER(libintl.h,
-	  [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
-	    [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
-	       gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
-
-	   if test "$gt_cv_func_gettext_libc" != "yes"; then
-	     AC_CHECK_LIB(intl, bindtextdomain,
-	       [AC_CACHE_CHECK([for gettext in libintl],
-		 gt_cv_func_gettext_libintl,
-		 [AC_TRY_LINK([], [return (int) gettext ("")],
-		 gt_cv_func_gettext_libintl=yes,
-		 gt_cv_func_gettext_libintl=no)])])
-	   fi
-
-	   if test "$gt_cv_func_gettext_libc" = "yes" \
-	      || test "$gt_cv_func_gettext_libintl" = "yes"; then
-	      AC_DEFINE(HAVE_GETTEXT)
-	      AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-		[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
-	      if test "$MSGFMT" != "no"; then
-		AC_CHECK_FUNCS(dcgettext)
-		AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-		AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-		  [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
-		AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
-			       return _nl_msg_cat_cntr],
-		  [CATOBJEXT=.gmo
-		   DATADIRNAME=share],
-		  [CATOBJEXT=.mo
-		   DATADIRNAME=lib])
-		INSTOBJEXT=.mo
-	      fi
-	    fi
-	])
-
-        if test "$CATOBJEXT" = "NONE"; then
-	  AC_MSG_CHECKING([whether catgets can be used])
-	  AC_ARG_WITH(catgets,
-	    [  --with-catgets          use catgets functions if available],
-	    nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
-	  AC_MSG_RESULT($nls_cv_use_catgets)
-
-	  if test "$nls_cv_use_catgets" = "yes"; then
-	    dnl No gettext in C library.  Try catgets next.
-	    AC_CHECK_LIB(i, main)
-	    AC_CHECK_FUNC(catgets,
-	      [AC_DEFINE(HAVE_CATGETS)
-	       INTLOBJS="\$(CATOBJS)"
-	       AC_PATH_PROG(GENCAT, gencat, no)dnl
-	       if test "$GENCAT" != "no"; then
-		 AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
-		 if test "$GMSGFMT" = "no"; then
-		   AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
-		    [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
-		 fi
-		 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-		   [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
-		 USE_INCLUDED_LIBINTL=yes
-		 CATOBJEXT=.cat
-		 INSTOBJEXT=.cat
-		 DATADIRNAME=lib
-		 INTLDEPS="../intl/libintl.a"
-		 INTLLIBS=$INTLDEPS
-		 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
-		 nls_cv_header_intl=intl/libintl.h
-		 nls_cv_header_libgt=intl/libgettext.h
-	       fi])
-	  fi
-        fi
-
-        if test "$CATOBJEXT" = "NONE"; then
-	  dnl Neither gettext nor catgets in included in the C library.
-	  dnl Fall back on GNU gettext library.
-	  nls_cv_use_gnu_gettext=yes
-        fi
-      fi
-
-      if test "$nls_cv_use_gnu_gettext" = "yes"; then
-        dnl Mark actions used to generate GNU NLS library.
-        INTLOBJS="\$(GETTOBJS)"
-        AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-	  [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
-        AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-        AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-	  [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
-        AC_SUBST(MSGFMT)
-	USE_INCLUDED_LIBINTL=yes
-        CATOBJEXT=.gmo
-        INSTOBJEXT=.mo
-        DATADIRNAME=share
-	INTLDEPS="../intl/libintl.a"
-	INTLLIBS=$INTLDEPS
-	LIBS=`echo $LIBS | sed -e 's/-lintl//'`
-        nls_cv_header_intl=intl/libintl.h
-        nls_cv_header_libgt=intl/libgettext.h
-      fi
-
-      dnl Test whether we really found GNU xgettext.
-      if test "$XGETTEXT" != ":"; then
-	dnl If it is no GNU xgettext we define it as : so that the
-	dnl Makefiles still can work.
-	if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
-	  : ;
-	else
-	  AC_MSG_RESULT(
-	    [found xgettext programs is not GNU xgettext; ignore it])
-	  XGETTEXT=":"
-	fi
-      fi
-
-      # We need to process the po/ directory.
-      POSUB=po
-    else
-      DATADIRNAME=share
-      nls_cv_header_intl=intl/libintl.h
-      nls_cv_header_libgt=intl/libgettext.h
-    fi
-
-    # If this is used in GNU gettext we have to set USE_NLS to `yes'
-    # because some of the sources are only built for this goal.
-    if test "$PACKAGE" = gettext; then
-      USE_NLS=yes
-      USE_INCLUDED_LIBINTL=yes
-    fi
-
-    dnl These rules are solely for the distribution goal.  While doing this
-    dnl we only have to keep exactly one list of the available catalogs
-    dnl in configure.in.
-    for lang in $ALL_LINGUAS; do
-      GMOFILES="$GMOFILES $lang.gmo"
-      POFILES="$POFILES $lang.po"
-    done
-
-    dnl Make all variables we use known to autoconf.
-    AC_SUBST(USE_INCLUDED_LIBINTL)
-    AC_SUBST(CATALOGS)
-    AC_SUBST(CATOBJEXT)
-    AC_SUBST(DATADIRNAME)
-    AC_SUBST(GMOFILES)
-    AC_SUBST(INSTOBJEXT)
-    AC_SUBST(INTLDEPS)
-    AC_SUBST(INTLLIBS)
-    AC_SUBST(INTLOBJS)
-    AC_SUBST(POFILES)
-    AC_SUBST(POSUB)
-  ])
-
-AC_DEFUN(AM_GNU_GETTEXT,
-  [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-   AC_REQUIRE([AC_PROG_CC])dnl
-   AC_REQUIRE([AC_ISC_POSIX])dnl
-   AC_REQUIRE([AC_PROG_RANLIB])dnl
-   AC_REQUIRE([AC_HEADER_STDC])dnl
-   AC_REQUIRE([AC_C_CONST])dnl
-   AC_REQUIRE([AC_C_INLINE])dnl
-   AC_REQUIRE([AC_TYPE_OFF_T])dnl
-   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
-   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
-   AC_REQUIRE([AC_FUNC_MMAP])dnl
-
-   AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
-unistd.h values.h])
-   AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
-__argz_count __argz_stringify __argz_next])
-
-   if test "${ac_cv_func_stpcpy+set}" != "set"; then
-     AC_CHECK_FUNCS(stpcpy)
-   fi
-   if test "${ac_cv_func_stpcpy}" = "yes"; then
-     AC_DEFINE(HAVE_STPCPY)
-   fi
-
-   AM_LC_MESSAGES
-   AM_WITH_NLS
-
-   if test "x$CATOBJEXT" != "x"; then
-     if test "x$ALL_LINGUAS" = "x"; then
-       LINGUAS=
-     else
-       AC_MSG_CHECKING(for catalogs to be installed)
-       NEW_LINGUAS=
-       for lang in ${LINGUAS=$ALL_LINGUAS}; do
-         case "$ALL_LINGUAS" in
-          *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
-         esac
-       done
-       LINGUAS=$NEW_LINGUAS
-       AC_MSG_RESULT($LINGUAS)
-     fi
-
-     dnl Construct list of names of catalog files to be constructed.
-     if test -n "$LINGUAS"; then
-       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
-     fi
-   fi
-
-   dnl Determine which catalog format we have (if any is needed)
-   dnl For now we know about two different formats:
-   dnl   Linux libc-5 and the normal X/Open format
-   test -d intl || mkdir intl
-   if test "$CATOBJEXT" = ".cat"; then
-     AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
-
-     dnl Transform the SED scripts while copying because some dumb SEDs
-     dnl cannot handle comments.
-     sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
-   fi
-   dnl po2tbl.sed is always needed.
-   sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
-     $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
-
-   dnl In the intl/Makefile.in we have a special dependency which makes
-   dnl only sense for gettext.  We comment this out for non-gettext
-   dnl packages.
-   if test "$PACKAGE" = "gettext"; then
-     GT_NO="#NO#"
-     GT_YES=
-   else
-     GT_NO=
-     GT_YES="#YES#"
-   fi
-   AC_SUBST(GT_NO)
-   AC_SUBST(GT_YES)
-
-   dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
-   dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
-   dnl Try to locate is.
-   MKINSTALLDIRS=
-   if test $ac_aux_dir; then
-     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
-   fi
-   if test -z $MKINSTALLDIRS; then
-     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
-   fi
-   AC_SUBST(MKINSTALLDIRS)
-
-   dnl Generate list of files to be processed by xgettext which will
-   dnl be included in po/Makefile.
-   test -d po || mkdir po
-   if test "x$srcdir" != "x."; then
-     if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
-       posrcprefix="$srcdir/"
-     else
-       posrcprefix="../$srcdir/"
-     fi
-   else
-     posrcprefix="../"
-   fi
-   sed -e "/^#/d" -e "/^\$/d" -e "s,.*,	$posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
-	< $srcdir/po/POTFILES.in > po/POTFILES
-  ])

+ 351 - 271
bootstrap

@@ -1,13 +1,13 @@
 #! /bin/sh
 #! /bin/sh
 
 
-# Bootstrap this package from CVS.
+# Bootstrap this package from checked-out sources.
 
 
-# Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2003-2008, 2009 Free Software Foundation, Inc.
 
 
-# This program is free software; you can redistribute it and/or modify
+# 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
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
 
 
 # This program is distributed in the hope that it will be useful,
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -15,9 +15,7 @@
 # GNU General Public License for more details.
 # GNU General Public License for more details.
 
 
 # You should have received a copy of the GNU General Public License
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
 # Written by Paul Eggert and Sergey Poznyakoff.
 # Written by Paul Eggert and Sergey Poznyakoff.
 
 
@@ -25,10 +23,16 @@ nl='
 '
 '
 
 
 # Ensure file names are sorted consistently across platforms.
 # Ensure file names are sorted consistently across platforms.
-# Also, ensure diagnostics are in English, e.g., "wget --help" below.
 LC_ALL=C
 LC_ALL=C
 export LC_ALL
 export LC_ALL
 
 
+local_gl_dir=gl
+
+# Temporary directory names.
+bt='._bootmp'
+bt_regex=`echo "$bt"| sed 's/\./[.]/g'`
+bt2=${bt}2
+
 usage() {
 usage() {
   echo >&2 "\
   echo >&2 "\
 Usage: $0 [OPTION]...
 Usage: $0 [OPTION]...
@@ -43,73 +47,25 @@ Options:
  --gnulib-srcdir=DIRNAME  Specify the local directory where gnulib
  --gnulib-srcdir=DIRNAME  Specify the local directory where gnulib
                           sources reside.  Use this if you already
                           sources reside.  Use this if you already
                           have gnulib sources on your machine, and
                           have gnulib sources on your machine, and
-                          do not want to waste your bandwidth dowloading
+                          do not want to waste your bandwidth downloading
                           them again.
                           them again.
  --copy                   Copy files instead of creating symbolic links.
  --copy                   Copy files instead of creating symbolic links.
  --force                  Attempt to bootstrap even if the sources seem
  --force                  Attempt to bootstrap even if the sources seem
                           not to have been checked out.
                           not to have been checked out.
  --skip-po                Do not download po files.
  --skip-po                Do not download po files.
- --update-po              Update po files and exit.
- --cvs-user=USERNAME      Set the CVS username to be used when accessing
-                          the paxutils repository.
 
 
-If the file bootstrap.conf exists in the current working directory, its
+If the file $0.conf exists in the same directory as this script, its
 contents are read as shell variables to configure the bootstrap.
 contents are read as shell variables to configure the bootstrap.
 
 
-Local defaults can be provided by placing the file \`.bootstrap' in the
-current working directory.  The file is read after bootstrap.conf, comments
-and empty lines are removed, shell variables expanded and the result is
-prepended to the command line options. 
-
 Running without arguments will suffice in most cases.
 Running without arguments will suffice in most cases.
 "
 "
 }
 }
 
 
-checkout() {
-  if [ ! -d $1 ]; then
-    echo "$0: getting $1 files..."
-
-    case $1 in
-    paxutils)
-      case ${CVS_AUTH-pserver} in
-      pserver)
-        CVS_PREFIX=':pserver:anonymous@';;
-      ssh)
-        CVS_PREFIX="$CVS_USER${CVS_USER+@}";;
-      *)
-        echo "$0: $CVS_AUTH: Unknown CVS access method" >&2
-        exit 1;;
-      esac
-
-      case $CVS_RSH in
-      '') CVS_RSH=ssh; export CVS_RSH;;
-      esac
-
-      CVSURL=${CVS_PREFIX}cvs.savannah.gnu.org:/cvsroot/"$1"
-      ;;
-      
-    gnulib)
-      CVSURL=:pserver:anonymous@pserver.git.sv.gnu.org:/gnulib.git
-      ;;
-      
-    esac
-
-    trap "cleanup $1" 1 2 13 15
-
-    cvs -z3 -q -d $CVSURL co $1 || cleanup $1
-
-    trap - 1 2 13 15
-  fi
-}
-
-cleanup() {
-  status=$?
-  rm -fr $1
-  exit $status
-}
-
 # Configuration.
 # Configuration.
 
 
+# Name of the Makefile.am
+gnulib_mk=gnulib.mk
+
 # List of gnulib modules needed.
 # List of gnulib modules needed.
 gnulib_modules=
 gnulib_modules=
 
 
@@ -126,9 +82,10 @@ po_download_command_format=\
 
 
 extract_package_name='
 extract_package_name='
   /^AC_INIT(/{
   /^AC_INIT(/{
-     /.*,.*,.*,/{
+     /.*,.*,.*, */{
        s///
        s///
        s/[][]//g
        s/[][]//g
+       s/)$//
        p
        p
        q
        q
      }
      }
@@ -141,19 +98,28 @@ extract_package_name='
   }
   }
 '
 '
 package=`sed -n "$extract_package_name" configure.ac` || exit
 package=`sed -n "$extract_package_name" configure.ac` || exit
+gnulib_name=lib$package
+
+build_aux=build-aux
+source_base=lib
+m4_base=m4
+doc_base=doc
+tests_base=tests
 
 
 # Extra files from gnulib, which override files from other sources.
 # Extra files from gnulib, which override files from other sources.
-gnulib_extra_files='
-	build-aux/announce-gen
-	build-aux/install-sh
-	build-aux/missing
-	build-aux/mdate-sh
-	build-aux/texinfo.tex
-	build-aux/depcomp
-	build-aux/config.guess
-	build-aux/config.sub
+gnulib_extra_files="
+	$build_aux/install-sh
+	$build_aux/missing
+	$build_aux/mdate-sh
+	$build_aux/texinfo.tex
+	$build_aux/depcomp
+	$build_aux/config.guess
+	$build_aux/config.sub
 	doc/INSTALL
 	doc/INSTALL
-'
+"
+
+# Additional gnulib-tool options to use.  Use "\newline" to break lines.
+gnulib_tool_option_extras=
 
 
 # Other locale categories that need message catalogs.
 # Other locale categories that need message catalogs.
 EXTRA_LOCALE_CATEGORIES=
 EXTRA_LOCALE_CATEGORIES=
@@ -165,23 +131,38 @@ XGETTEXT_OPTIONS='\\\
  --flag=error:3:c-format --flag=error_at_line:5:c-format\\\
  --flag=error:3:c-format --flag=error_at_line:5:c-format\\\
 '
 '
 
 
+# Package bug report address for gettext files
+MSGID_BUGS_ADDRESS=bug-$package@gnu.org
+
 # Files we don't want to import.
 # Files we don't want to import.
 excluded_files=
 excluded_files=
 
 
 # File that should exist in the top directory of a checked out hierarchy,
 # File that should exist in the top directory of a checked out hierarchy,
 # but not in a distribution tarball.
 # but not in a distribution tarball.
-CVS_only_file=README-cvs
+checkout_only_file=README-hacking
 
 
 # Whether to use copies instead of symlinks.
 # Whether to use copies instead of symlinks.
 copy=false
 copy=false
 
 
+# Set this to '.cvsignore .gitignore' in bootstrap.conf if you want
+# those files to be generated in directories like lib/, m4/, and po/.
+# Or set it to 'auto' to make this script select which to use based
+# on which version control system (if any) is used in the source directory.
+vc_ignore=auto
+
 # Override the default configuration, if necessary.
 # Override the default configuration, if necessary.
-test -r bootstrap.conf && . ./bootstrap.conf
+# Make sure that bootstrap.conf is sourced from the current directory
+# if we were invoked as "sh bootstrap".
+case "$0" in
+  */*) test -r "$0.conf" && . "$0.conf" ;;
+  *) test -r "$0.conf" && . ./"$0.conf" ;;
+esac
+
 
 
-# Read local configuration file
-if [ -r .bootstrap ]; then
-  echo "$0: Reading configuration file .bootstrap"
-  eval set -- "`sed 's/#.*$//;/^$/d' .bootstrap | tr '\n' ' '` $*"
+if test "$vc_ignore" = auto; then
+  vc_ignore=
+  test -d .git && vc_ignore=.gitignore
+  test -d CVS && vc_ignore="$vc_ignore .cvsignore"
 fi
 fi
 
 
 # Translate configuration into internal form.
 # Translate configuration into internal form.
@@ -194,20 +175,14 @@ do
   --help)
   --help)
     usage
     usage
     exit;;
     exit;;
+  --gnulib-srcdir=*)
+    GNULIB_SRCDIR=`expr "X$option" : 'X--gnulib-srcdir=\(.*\)'`;;
   --paxutils-srcdir=*)
   --paxutils-srcdir=*)
     PAXUTILS_SRCDIR=`expr "$option" : '--paxutils-srcdir=\(.*\)'`;;
     PAXUTILS_SRCDIR=`expr "$option" : '--paxutils-srcdir=\(.*\)'`;;
-  --gnulib-srcdir=*)
-    GNULIB_SRCDIR=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;;
-  --cvs-user=*)
-    CVS_USER=`expr "$option" : '--cvs-user=\(.*\)'`;;
-  --skip-po | --no-po) # --no-po is for compatibility with 'tar' tradition.
-    DOWNLOAD_PO=skip;;
-  --update-po=*)
-    DOWNLOAD_PO=`expr "$option" : '--update-po=\(.*\)'`;;
-  --update-po)
-    DOWNLOAD_PO=only;;
+  --skip-po)
+    SKIP_PO=t;;
   --force)
   --force)
-    CVS_only_file=;;
+    checkout_only_file=;;
   --copy)
   --copy)
     copy=true;;
     copy=true;;
   *)
   *)
@@ -216,12 +191,130 @@ do
   esac
   esac
 done
 done
 
 
-if test -n "$CVS_only_file" && test ! -r "$CVS_only_file"; then
+if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
   echo "$0: Bootstrapping from a non-checked-out distribution is risky." >&2
   echo "$0: Bootstrapping from a non-checked-out distribution is risky." >&2
   exit 1
   exit 1
 fi
 fi
 
 
-echo "$0: Bootstrapping CVS $package..."
+# If $STR is not already on a line by itself in $FILE, insert it,
+# sorting the new contents of the file and replacing $FILE with the result.
+insert_sorted_if_absent() {
+  file=$1
+  str=$2
+  test -f $file || touch $file
+  echo "$str" | sort -u - $file | cmp -s - $file \
+    || echo "$str" | sort -u - $file -o $file \
+    || exit 1
+}
+
+# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
+found_aux_dir=no
+grep '^[	 ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \
+    >/dev/null && found_aux_dir=yes
+grep '^[	 ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \
+    >/dev/null && found_aux_dir=yes
+if test $found_aux_dir = no; then
+  echo "$0: expected line not found in configure.ac. Add the following:" >&2
+  echo "  AC_CONFIG_AUX_DIR([$build_aux])" >&2
+  exit 1
+fi
+
+# If $build_aux doesn't exist, create it now, otherwise some bits
+# below will malfunction.  If creating it, also mark it as ignored.
+if test ! -d $build_aux; then
+  mkdir $build_aux
+  for dot_ig in x $vc_ignore; do
+    test $dot_ig = x && continue
+    insert_sorted_if_absent $dot_ig $build_aux
+  done
+fi
+
+echo "$0: Bootstrapping from checked-out $package sources..."
+
+# See if we can use gnulib's git-merge-changelog merge driver.
+if test -d .git && (git --version) >/dev/null 2>/dev/null ; then
+  if git config merge.merge-changelog.driver >/dev/null ; then
+    :
+  elif (git-merge-changelog --version) >/dev/null 2>/dev/null ; then
+    echo "initializing git-merge-changelog driver"
+    git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver'
+    git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B'
+  else
+    echo "consider installing git-merge-changelog from gnulib"
+  fi
+fi
+
+cleanup() {
+  status=$?
+  rm -fr $1
+  exit $status
+}
+
+git_modules_config () {
+  GIT_CONFIG_LOCAL=.gitmodules git config "$@"
+}
+
+# Get paxutils files.
+case ${PAXUTILS_SRCDIR--} in
+-) if [ ! -d paxutils ]; then
+     echo "$0: getting paxutils files..."
+
+     trap "cleanup paxutils" 1 2 13 15
+
+     git clone --depth 1 git://git.sv.gnu.org/paxutils || cleanup paxutils
+
+     trap - 1 2 13 15
+   fi
+   PAXUTILS_SRCDIR=paxutils
+   ;;
+esac
+
+if [ -r $PAXUTILS_SRCDIR/gnulib.modules ]; then
+  gnulib_modules=`
+    (echo "$gnulib_modules"; grep '^[^#]' $PAXUTILS_SRCDIR/gnulib.modules) |
+    sort -u
+  `
+fi
+
+# Get gnulib files.
+
+case ${GNULIB_SRCDIR--} in
+-)
+  if git_modules_config submodule.gnulib.url >/dev/null; then
+    echo "$0: getting gnulib files..."
+    git submodule init || exit $?
+    git submodule update || exit $?
+
+  elif [ ! -d gnulib ]; then
+    echo "$0: getting gnulib files..."
+
+    trap cleanup_gnulib 1 2 13 15
+
+    git clone --help|grep depth > /dev/null && shallow='--depth 2' || shallow=
+    git clone $shallow git://git.sv.gnu.org/gnulib ||
+      "cleanup $1"
+
+    trap - 1 2 13 15
+  fi
+  GNULIB_SRCDIR=gnulib
+  ;;
+*)
+  # Redirect the gnulib submodule to the directory on the command line
+  # if possible.
+  if test -d "$GNULIB_SRCDIR"/.git && \
+	git_modules_config submodule.gnulib.url >/dev/null; then
+    git submodule init
+    GNULIB_SRCDIR=`cd $GNULIB_SRCDIR && pwd`
+    git config --replace-all submodule.gnulib.url $GNULIB_SRCDIR
+    echo "$0: getting gnulib files..."
+    git submodule update || exit $?
+    GNULIB_SRCDIR=gnulib
+  fi
+  ;;
+esac
+
+gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
+<$gnulib_tool || exit
 
 
 # Get translations.
 # Get translations.
 
 
@@ -252,7 +345,7 @@ update_po_files() {
 
 
   langs=`cd $ref_po_dir && echo *.po|sed 's/\.po//g'`
   langs=`cd $ref_po_dir && echo *.po|sed 's/\.po//g'`
   test "$langs" = '*' && langs=x
   test "$langs" = '*' && langs=x
-  for po in `cd $ref_po_dir && echo *.po|sed 's/\.po//g'`; do
+  for po in $langs; do
     case $po in x) continue;; esac
     case $po in x) continue;; esac
     new_po="$ref_po_dir/$po.po"
     new_po="$ref_po_dir/$po.po"
     cksum_file="$ref_po_dir/$po.s1"
     cksum_file="$ref_po_dir/$po.s1"
@@ -265,97 +358,41 @@ update_po_files() {
   done
   done
 }
 }
 
 
-case $DOWNLOAD_PO in
-'skip')
-  ;;
+case $SKIP_PO in
 '')
 '')
   if test -d po; then
   if test -d po; then
     update_po_files po $package || exit
     update_po_files po $package || exit
   fi
   fi
-  ;;
-'only')
-  if test -d po; then
-    update_po_files po $package || exit
-  fi
-  exit
-  ;;
-esac
 
 
-# Get paxutils files.
-
-case ${PAXUTILS_SRCDIR--} in
--) checkout paxutils
-   PAXUTILS_SRCDIR=paxutils
+  if test -d runtime-po; then
+    update_po_files runtime-po $package-runtime || exit
+  fi;;
 esac
 esac
 
 
-if [ -r $PAXUTILS_SRCDIR/gnulib.modules ]; then
-  gnulib_modules=`
-    (echo "$gnulib_modules"; grep '^[^#]' $PAXUTILS_SRCDIR/gnulib.modules) |
-    sort -u
-  `
-fi
-
-ignore_file_list=
-cleanup_ifl() {
-	test -n "$ignore_file_list" && rm -f $ignore_file_list
-}
-
-trap 'cleanup_ifl' 1 2 3 15
+symlink_to_dir()
+{
+  src=$1/$2
+  dst=${3-$2}
 
 
-# ignorefile DIR FILE 
-#  add FILE to the temporary ignorelist in the directory DIR
-ignorefile() {
-  file=$1/.ignore.$$ 
-  echo "$2" >> $file
-  if `echo $ignore_list | grep -qv $file`; then
-    ignore_file_list="$ignore_file_list
-$file"
-  fi
-}  
+  test -f "$src" && {
 
 
-# copy_files srcdir dstdir
-copy_files() {
-  for file in `cat $1/DISTFILES`
-  do
-    case $file in
-    "#*")  continue;;
-    esac
-    dst=`echo $file | sed 's^.*/^^'`
-    if [ $# -eq 3 ]; then
-      case $dst in
-      ${3}*) ;;
-      *) dst=${3}$dst;;
-      esac
+    # If the destination directory doesn't exist, create it.
+    # This is required at least for "lib/uniwidth/cjk.h".
+    dst_dir=`dirname "$dst"`
+    if ! test -d "$dst_dir"; then
+      mkdir -p "$dst_dir"
+
+      # If we've just created a directory like lib/uniwidth,
+      # tell version control system(s) it's ignorable.
+      # FIXME: for now, this does only one level
+      parent=`dirname "$dst_dir"`
+      for dot_ig in x $vc_ignore; do
+	test $dot_ig = x && continue
+	ig=$parent/$dot_ig
+	insert_sorted_if_absent $ig `echo "$dst_dir"|sed 's,.*/,,'`
+      done
     fi
     fi
-    echo "$0: Copying file $1/$file to $2/$dst"
-    cp -p $1/$file $2/$dst
-    ignorefile $2 $dst
-  done
-}
-
-# Get gnulib files.
-
-case ${GNULIB_SRCDIR--} in
--)
-  checkout gnulib
-  GNULIB_SRCDIR=gnulib
-esac
-
-gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
-<$gnulib_tool || exit
-
-ensure_dir_exists()
-{
-  d=`dirname $dst`
-  test -d "$d" || mkdir -p -- "$d"
-}
-
-symlink_to_gnulib()
-{
-  src=$GNULIB_SRCDIR/$1
-  dst=${2-$1}
 
 
-  test -f "$src" && {
     if $copy; then
     if $copy; then
       {
       {
 	test ! -h "$dst" || {
 	test ! -h "$dst" || {
@@ -366,7 +403,6 @@ symlink_to_gnulib()
       test -f "$dst" &&
       test -f "$dst" &&
       cmp -s "$src" "$dst" || {
       cmp -s "$src" "$dst" || {
 	echo "$0: cp -fp $src $dst" &&
 	echo "$0: cp -fp $src $dst" &&
-	ensure_dir_exists $dst &&
 	cp -fp "$src" "$dst"
 	cp -fp "$src" "$dst"
       }
       }
     else
     else
@@ -389,7 +425,6 @@ symlink_to_gnulib()
 	esac
 	esac
 
 
 	echo "$0: ln -fs $dot_dots$src $dst" &&
 	echo "$0: ln -fs $dot_dots$src $dst" &&
-	ensure_dir_exists $dst &&
 	ln -fs "$dot_dots$src" "$dst"
 	ln -fs "$dot_dots$src" "$dst"
       }
       }
     fi
     fi
@@ -402,7 +437,9 @@ cp_mark_as_generated()
   cp_dst=$2
   cp_dst=$2
 
 
   if cmp -s "$cp_src" "$GNULIB_SRCDIR/$cp_dst"; then
   if cmp -s "$cp_src" "$GNULIB_SRCDIR/$cp_dst"; then
-    symlink_to_gnulib "$cp_dst"
+    symlink_to_dir "$GNULIB_SRCDIR" "$cp_dst"
+  elif cmp -s "$cp_src" "$local_gl_dir/$cp_dst"; then
+    symlink_to_dir $local_gl_dir "$cp_dst"
   else
   else
     case $cp_dst in
     case $cp_dst in
       *.[ch])             c1='/* '; c2=' */';;
       *.[ch])             c1='/* '; c2=' */';;
@@ -411,10 +448,20 @@ cp_mark_as_generated()
       *)                  c1=     ; c2=     ;;
       *)                  c1=     ; c2=     ;;
     esac
     esac
 
 
+    # If the destination directory doesn't exist, create it.
+    # This is required at least for "lib/uniwidth/cjk.h".
+    dst_dir=`dirname "$cp_dst"`
+    test -d "$dst_dir" || mkdir -p "$dst_dir"
+
     if test -z "$c1"; then
     if test -z "$c1"; then
       cmp -s "$cp_src" "$cp_dst" || {
       cmp -s "$cp_src" "$cp_dst" || {
+	# Copy the file first to get proper permissions if it
+	# doesn't already exist.  Then overwrite the copy.
 	echo "$0: cp -f $cp_src $cp_dst" &&
 	echo "$0: cp -f $cp_src $cp_dst" &&
-	cp -f "$cp_src" "$cp_dst"
+	rm -f "$cp_dst" &&
+	cp "$cp_src" "$cp_dst-t" &&
+	sed "s!$bt_regex/!!g" "$cp_src" > "$cp_dst-t" &&
+	mv -f "$cp_dst-t" "$cp_dst"
       }
       }
     else
     else
       # Copy the file first to get proper permissions if it
       # Copy the file first to get proper permissions if it
@@ -423,7 +470,7 @@ cp_mark_as_generated()
       (
       (
 	echo "$c1-*- buffer-read-only: t -*- vi: set ro:$c2" &&
 	echo "$c1-*- buffer-read-only: t -*- vi: set ro:$c2" &&
 	echo "${c1}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2" &&
 	echo "${c1}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2" &&
-	cat "$cp_src"
+	sed "s!$bt_regex/!!g" "$cp_src"
       ) > $cp_dst-t &&
       ) > $cp_dst-t &&
       if cmp -s "$cp_dst-t" "$cp_dst"; then
       if cmp -s "$cp_dst-t" "$cp_dst"; then
 	rm -f "$cp_dst-t"
 	rm -f "$cp_dst-t"
@@ -443,7 +490,9 @@ version_controlled_file() {
     grep -F "/$file/" $dir/CVS/Entries 2>/dev/null |
     grep -F "/$file/" $dir/CVS/Entries 2>/dev/null |
 	     grep '^/[^/]*/[0-9]' > /dev/null && found=yes
 	     grep '^/[^/]*/[0-9]' > /dev/null && found=yes
   elif test -d .git; then
   elif test -d .git; then
-    git-rm -n "$dir/$file" > /dev/null 2>&1 && found=yes
+    git rm -n "$dir/$file" > /dev/null 2>&1 && found=yes
+  elif test -d .svn; then
+    svn log -r HEAD "$dir/$file" > /dev/null 2>&1 && found=yes
   else
   else
     echo "$0: no version control for $dir/$file?" >&2
     echo "$0: no version control for $dir/$file?" >&2
   fi
   fi
@@ -454,18 +503,22 @@ slurp() {
   for dir in . `(cd $1 && find * -type d -print)`; do
   for dir in . `(cd $1 && find * -type d -print)`; do
     copied=
     copied=
     sep=
     sep=
-    for file in `ls $1/$dir`; do
+    for file in `ls -a $1/$dir`; do
+      case $file in
+      .|..) continue;;
+      .*) continue;; # FIXME: should all file names starting with "." be ignored?
+      esac
       test -d $1/$dir/$file && continue
       test -d $1/$dir/$file && continue
       for excluded_file in $excluded_files; do
       for excluded_file in $excluded_files; do
 	test "$dir/$file" = "$excluded_file" && continue 2
 	test "$dir/$file" = "$excluded_file" && continue 2
       done
       done
       if test $file = Makefile.am; then
       if test $file = Makefile.am; then
-        copied=$copied${sep}gnulib.mk; sep=$nl
-	remove_intl='/^[^#].*\/intl/s/^/#/;'"s,/$bt,,g"
-        sed "$remove_intl" $1/$dir/$file | cmp -s - $dir/gnulib.mk || {
-	  echo "$0: Copying $1/$dir/$file to $dir/gnulib.mk ..." &&
-	  rm -f $dir/gnulib.mk &&
-	  sed "$remove_intl" $1/$dir/$file >$dir/gnulib.mk
+        copied=$copied${sep}$gnulib_mk; sep=$nl
+	remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g"
+        sed "$remove_intl" $1/$dir/$file | cmp -s - $dir/$gnulib_mk || {
+	  echo "$0: Copying $1/$dir/$file to $dir/$gnulib_mk ..." &&
+	  rm -f $dir/$gnulib_mk &&
+	  sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk
 	}
 	}
       elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
       elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
 	   version_controlled_file $dir $file; then
 	   version_controlled_file $dir $file; then
@@ -489,98 +542,109 @@ slurp() {
       fi || exit
       fi || exit
     done
     done
 
 
-    if test -n "$copied"; then
-      copied="Makefile
-Makefile.in
-$copied"
-      if test -d CVS; then
-	dot_ig=.cvsignore
-      else
-        dor_ig=.gitignore
-      fi
-
+    for dot_ig in x $vc_ignore; do
+      test $dot_ig = x && continue
       ig=$dir/$dot_ig
       ig=$dir/$dot_ig
-      if [ -f $dir/.ignore.$$ ]; then
-         tfile=$dir/.ignore.$$
-      else
-         tfile=
+      if test -n "$copied"; then
+	insert_sorted_if_absent $ig "$copied"
+	# If an ignored file name ends with .in.h, then also add
+	# the name with just ".h".  Many gnulib headers are generated,
+	# e.g., stdint.in.h -> stdint.h, dirent.in.h ->..., etc.
+	# Likewise for .gperf -> .h, .y -> .c, and .sin -> .sed
+	f=`echo "$copied"|sed 's/\.in\.h$/.h/;s/\.sin$/.sed/;s/\.y$/.c/;s/\.gperf$/.h/'`
+	insert_sorted_if_absent $ig "$f"
+
+	# For files like sys_stat.in.h and sys_time.in.h, record as
+	# ignorable the directory we might eventually create: sys/.
+	f=`echo "$copied"|sed 's/sys_.*\.in\.h$/sys/'`
+	insert_sorted_if_absent $ig "$f"
       fi
       fi
-      if test -f $ig; then
-	  echo "$copied" | sort -u - $ig | cmp -s - $ig ||
-	  echo "$copied" | sort -u - $ig $tfile -o $ig
-      else
-          copied="$dot_ig
-$copied"	  
-	  if [ "$dir" = "po" ]; then
-	    copied="LINGUAS
-Makevars
-POTFILES
-*.mo
-*.gmo
-*.po
-remove-potcdate.sed
-stamp-po
-$package.pot
-$copied"
-          fi  
-          echo "$copied" | sort -u - $tfile -o $ig
-      fi || exit
-    fi
+    done
   done
   done
 }
 }
 
 
 
 
 # Create boot temporary directories to import from gnulib and gettext.
 # Create boot temporary directories to import from gnulib and gettext.
-
-bt='.#bootmp'
-bt2=${bt}2
 rm -fr $bt $bt2 &&
 rm -fr $bt $bt2 &&
 mkdir $bt $bt2 || exit
 mkdir $bt $bt2 || exit
 
 
 # Import from gnulib.
 # Import from gnulib.
 
 
-test -d build-aux || {
-  echo "$0: mkdir build-aux ..." &&
-  mkdir build-aux
-} || exit
 gnulib_tool_options="\
 gnulib_tool_options="\
  --import\
  --import\
  --no-changelog\
  --no-changelog\
- --aux-dir $bt/build-aux\
- --doc-base $bt/doc\
- --lib lib$package\
- --m4-base $bt/m4/\
- --source-base $bt/lib/\
- --tests-base $bt/tests\
- --local-dir gl\
+ --aux-dir $bt/$build_aux\
+ --doc-base $bt/$doc_base\
+ --lib $gnulib_name\
+ --m4-base $bt/$m4_base/\
+ --source-base $bt/$source_base/\
+ --tests-base $bt/$tests_base\
+ --local-dir $local_gl_dir\
+ $gnulib_tool_option_extras\
 "
 "
 echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
 echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
 $gnulib_tool $gnulib_tool_options --import $gnulib_modules &&
 $gnulib_tool $gnulib_tool_options --import $gnulib_modules &&
 slurp $bt || exit
 slurp $bt || exit
 
 
 for file in $gnulib_files; do
 for file in $gnulib_files; do
-  symlink_to_gnulib $file || exit
+  symlink_to_dir "$GNULIB_SRCDIR" $file || exit
 done
 done
 
 
 
 
 # Import from gettext.
 # Import from gettext.
+with_gettext=yes
+grep '^[	 ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
+    with_gettext=no
+
+if test $with_gettext = yes; then
+  echo "$0: (cd $bt2; autopoint) ..."
+  cp configure.ac $bt2 &&
+  (cd $bt2 && autopoint && rm configure.ac) &&
+  slurp $bt2 $bt || exit
+fi
+rm -fr $bt $bt2 || exit
 
 
-echo "$0: (cd $bt2; autopoint) ..."
-cp configure.ac $bt2 &&
-(cd $bt2 && autopoint && rm configure.ac) &&
-slurp $bt2 $bt || exit
+# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some
+# gnulib-populated directories.  Such .m4 files would cause aclocal to fail.
+# The following requires GNU find 4.2.3 or newer.  Considering the usual
+# portability constraints of this script, that may seem a very demanding
+# requirement, but it should be ok.  Ignore any failure, which is fine,
+# since this is only a convenience to help developers avoid the relatively
+# unusual case in which a symlinked-to .m4 file is git-removed from gnulib
+# between successive runs of this script.
+find "$m4_base" "$source_base" \
+  -depth \( -name '*.m4' -o -name '*.[ch]' \) \
+  -type l -xtype l -delete > /dev/null 2>&1
 
 
-rm -fr $bt $bt2 || exit
+# copy_files srcdir dstdir
+copy_files() {
+  for file in `cat $1/DISTFILES`
+  do
+    case $file in
+    "#*")  continue;;
+    esac
+    dst=`echo $file | sed 's^.*/^^'`
+    if [ $# -eq 3 ]; then
+      case $dst in
+      ${3}*) ;;
+      *) dst=${3}$dst;;
+      esac
+    fi
+    symlink_to_dir "$1" "$file" "$2/$dst" || exit
+# FIXME    ignorefile $2 $dst
+  done
+}
 
 
 # Import from paxutils
 # Import from paxutils
-copy_files ${PAXUTILS_SRCDIR}/m4 m4
+copy_files ${PAXUTILS_SRCDIR} .
+copy_files ${PAXUTILS_SRCDIR}/am m4
 echo "$0: Creating m4/paxutils.m4"
 echo "$0: Creating m4/paxutils.m4"
 (echo "# This file is generated automatically. Please, do not edit."
 (echo "# This file is generated automatically. Please, do not edit."
  echo "#"
  echo "#"
  echo "AC_DEFUN([${package}_PAXUTILS],["
  echo "AC_DEFUN([${package}_PAXUTILS],["
- cat ${PAXUTILS_SRCDIR}/m4/DISTFILES | sed '/^#/d;s/\(.*\)\.m4/pu_\1/' | tr a-z A-Z
+ cat ${PAXUTILS_SRCDIR}/am/DISTFILES | sed '/^#/d;s/\(.*\)\.m4/pu_\1/' | tr a-z A-Z
  echo "])") > ./m4/paxutils.m4
  echo "])") > ./m4/paxutils.m4
-ignorefile m4 paxutils.m4
+#FIXME ignorefile m4 paxutils.m4
 
 
 if [ -d rmt ]; then
 if [ -d rmt ]; then
    :
    :
@@ -595,59 +659,75 @@ done
 
 
 copy_files ${PAXUTILS_SRCDIR}/paxlib lib pax
 copy_files ${PAXUTILS_SRCDIR}/paxlib lib pax
 
 
+
 # Reconfigure, getting other files.
 # Reconfigure, getting other files.
 
 
 for command in \
 for command in \
+  libtool \
   'aclocal --force -I m4' \
   'aclocal --force -I m4' \
   'autoconf --force' \
   'autoconf --force' \
   'autoheader --force' \
   'autoheader --force' \
   'automake --add-missing --copy --force-missing';
   'automake --add-missing --copy --force-missing';
 do
 do
+  if test "$command" = libtool; then
+    use_libtool=0
+    # We'd like to use grep -E, to see if any of LT_INIT,
+    # AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac,
+    # but that's not portable enough (e.g., for Solaris).
+    grep '^[	 ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \
+      && use_libtool=1
+    grep '^[	 ]*LT_INIT' configure.ac >/dev/null \
+      && use_libtool=1
+    test $use_libtool = 0 \
+      && continue
+    command='libtoolize -c -f'
+  fi
   echo "$0: $command ..."
   echo "$0: $command ..."
   $command || exit
   $command || exit
 done
 done
 
 
 
 
 # Get some extra files from gnulib, overriding existing files.
 # Get some extra files from gnulib, overriding existing files.
-
 for file in $gnulib_extra_files; do
 for file in $gnulib_extra_files; do
   case $file in
   case $file in
   */INSTALL) dst=INSTALL;;
   */INSTALL) dst=INSTALL;;
+  build-aux/*) dst=$build_aux/`expr "$file" : 'build-aux/\(.*\)'`;;
   *) dst=$file;;
   *) dst=$file;;
   esac
   esac
-  symlink_to_gnulib $file $dst || exit
+  symlink_to_dir "$GNULIB_SRCDIR" $file $dst || exit
 done
 done
 
 
-
-# Create gettext configuration.
-echo "$0: Creating po/Makevars from po/Makevars.template ..."
-rm -f po/Makevars
-sed '
-  /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
-  /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
-  /^XGETTEXT_OPTIONS *=/{
-    s/$/ \\/
-    a\
-	'"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
-  }
-' po/Makevars.template >po/Makevars
-
-if test -d runtime-po; then
-  # Similarly for runtime-po/Makevars, but not quite the same.
-  rm -f runtime-po/Makevars
+if test $with_gettext = yes; then
+  # Create gettext configuration.
+  echo "$0: Creating po/Makevars from po/Makevars.template ..."
+  rm -f po/Makevars
   sed '
   sed '
-    /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
-    /^subdir *=.*/s/=.*/= runtime-po/
-    /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
+    /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
+    /^MSGID_BUGS_ADDRESS *=/s/=.*/= '"$MSGID_BUGS_ADDRESS"'/
     /^XGETTEXT_OPTIONS *=/{
     /^XGETTEXT_OPTIONS *=/{
       s/$/ \\/
       s/$/ \\/
       a\
       a\
-	  '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
+	  '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
     }
     }
-  ' <po/Makevars.template >runtime-po/Makevars
+  ' po/Makevars.template >po/Makevars
+
+  if test -d runtime-po; then
+    # Similarly for runtime-po/Makevars, but not quite the same.
+    rm -f runtime-po/Makevars
+    sed '
+      /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
+      /^subdir *=.*/s/=.*/= runtime-po/
+      /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
+      /^XGETTEXT_OPTIONS *=/{
+	s/$/ \\/
+	a\
+	    '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
+      }
+    ' <po/Makevars.template >runtime-po/Makevars
 
 
-  # Copy identical files from po to runtime-po.
-  (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
+    # Copy identical files from po to runtime-po.
+    (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
+  fi
 fi
 fi
-cleanup_ifl
+
 echo "$0: done.  Now you can run './configure'."
 echo "$0: done.  Now you can run './configure'."

+ 19 - 2
bootstrap.conf

@@ -1,6 +1,6 @@
-# Bootstrap configuration.
+# Bootstrap configuration for GNU tar.
 
 
-# Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 
 
 # This program is free software; you can redistribute it and/or modify
 # 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
 # it under the terms of the GNU General Public License as published by
@@ -17,6 +17,9 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301, USA.
 # 02110-1301, USA.
 
 
+source_base=gnu
+gnulib_name=libgnu
+gnulib_mk=Makefile.am
 
 
 # We don't need these modules, even though gnulib-tool mistakenly
 # We don't need these modules, even though gnulib-tool mistakenly
 # includes them because of gettext dependencies.
 # includes them because of gettext dependencies.
@@ -55,3 +58,17 @@ excluded_files='
     m4/ulonglong.m4
     m4/ulonglong.m4
     m4/visibility.m4
     m4/visibility.m4
 '
 '
+
+# Read local configuration file
+if [ -r .bootstrap ]; then
+  echo "$0: Reading configuration file .bootstrap"
+  eval set -- "`sed 's/#.*$//;/^$/d' .bootstrap | tr '\n' ' '` $*"
+fi
+
+test -d m4 || mkdir m4
+test -d $source_base || mkdir $source_base
+
+cat > ChangeLog <<EOT
+This file is a placeholder. It will be replaced with the actual ChangeLog
+by make dist.  Run make ChangeLog if you wish to create it earlier.
+EOT

+ 2 - 2
configure.ac

@@ -21,7 +21,7 @@
 AC_INIT([GNU tar], [1.22], [bug-tar@gnu.org])
 AC_INIT([GNU tar], [1.22], [bug-tar@gnu.org])
 AC_CONFIG_SRCDIR([src/tar.c])
 AC_CONFIG_SRCDIR([src/tar.c])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_AUX_DIR([build-aux])
-AC_CONFIG_HEADERS([config.h:config.hin])
+AC_CONFIG_HEADERS([config.h])
 AC_PREREQ([2.60])
 AC_PREREQ([2.60])
 AM_INIT_AUTOMAKE([1.9 gnits tar-ustar dist-bzip2 dist-shar std-options])
 AM_INIT_AUTOMAKE([1.9 gnits tar-ustar dist-bzip2 dist-shar std-options])
 
 
@@ -48,7 +48,6 @@ AC_CHECK_HEADERS([sys/buf.h], [], [],
 #endif])
 #endif])
 
 
 AC_HEADER_SYS_WAIT
 AC_HEADER_SYS_WAIT
-AM_STDBOOL_H
 
 
 AC_HEADER_DIRENT
 AC_HEADER_DIRENT
 AC_HEADER_MAJOR
 AC_HEADER_MAJOR
@@ -241,6 +240,7 @@ fi
 
 
 AC_OUTPUT([Makefile\
 AC_OUTPUT([Makefile\
            doc/Makefile\
            doc/Makefile\
+	   gnu/Makefile\
            lib/Makefile\
            lib/Makefile\
            po/Makefile.in\
            po/Makefile.in\
            scripts/Makefile\
            scripts/Makefile\

+ 9 - 20
doc/.cvsignore → doc/.gitignore

@@ -1,37 +1,26 @@
-*.stamp
-Makefile
-Makefile.in
-genfile.texi
 getdate.texi
 getdate.texi
-header.texi
-html_chapter
-html_mono
-html_node
+manual
 stamp-vti
 stamp-vti
-tar.at
-tar.ats
 tar.aux
 tar.aux
 tar.cp
 tar.cp
 tar.cps
 tar.cps
-tar.dvi
-tar.ex
-tar.exs
+tar.fl
 tar.fn
 tar.fn
-tar.fns
-tar.html
+tar.info
 tar.info*
 tar.info*
+tar.info-*
 tar.kw
 tar.kw
-tar.kws
 tar.ky
 tar.ky
 tar.log
 tar.log
+tar.mt
 tar.op
 tar.op
-tar.ops
 tar.pdf
 tar.pdf
 tar.pg
 tar.pg
-tar.pgs
-tar.ps
+tar.pr
+tar.t2d
 tar.toc
 tar.toc
 tar.tp
 tar.tp
 tar.vr
 tar.vr
-tar.vrs
 version.texi
 version.texi
+genfile.texi
+header.texi

+ 1 - 0
gnulib.modules

@@ -22,6 +22,7 @@ getopt
 getpagesize
 getpagesize
 gettext
 gettext
 gettime
 gettime
+gitlog-to-changelog
 hash
 hash
 human
 human
 inttypes
 inttypes

+ 0 - 287
lib/.cvsignore

@@ -1,287 +0,0 @@
-.cvsignore
-.deps
-Makefile
-Makefile.in
-alloca.c
-alloca.h
-alloca.in.h
-argmatch.c
-argmatch.h
-argp-ba.c
-argp-eexst.c
-argp-fmtstream.c
-argp-fmtstream.h
-argp-fs-xinl.c
-argp-help.c
-argp-namefrob.h
-argp-parse.c
-argp-pin.c
-argp-pv.c
-argp-pvh.c
-argp-xinl.c
-argp.h
-asnprintf.c
-at-func.c
-backupfile.c
-backupfile.h
-basename.c
-btowc.c
-c-ctype.c
-c-ctype.h
-canonicalize-lgpl.c
-canonicalize.h
-charset.alias
-chdir-long.c
-chdir-long.h
-chown.c
-close-stream.c
-close-stream.h
-close.c
-closeout.c
-closeout.h
-config.charset
-configmake.h
-creat-safer.c
-dirent.h
-dirent.in.h
-dirfd.c
-dirfd.h
-dirname.c
-dirname.h
-dup-safer.c
-dup2.c
-errno.in.h
-error.c
-error.h
-exclude.c
-exclude.h
-exitfail.c
-exitfail.h
-fchdir.c
-fchmodat.c
-fchown-stub.c
-fchownat.c
-fclose.c
-fcntl--.h
-fcntl-safer.h
-fcntl.h
-fcntl.in.h
-fd-safer.c
-fileblocks.c
-float+.h
-float.h
-float.in.h
-fnmatch.c
-fnmatch.h
-fnmatch.in.h
-fnmatch_loop.c
-fpending.c
-fpending.h
-fseeko.c
-fstatat.c
-ftruncate.c
-full-write.c
-full-write.h
-getcwd.c
-getdate.c
-getdate.h
-getdate.y
-getdelim.c
-getline.c
-getopt.c
-getopt.h
-getopt.in.h
-getopt1.c
-getopt_int.h
-getpagesize.c
-getpagesize.h
-gettext.h
-gettime.c
-gettimeofday.c
-gnulib.mk
-hash.c
-hash.h
-human.c
-human.h
-imaxtostr.c
-intprops.h
-inttostr.c
-inttostr.h
-inttypes.h
-inttypes.in.h
-lchown.c
-localcharset.c
-localcharset.h
-lseek.c
-lstat.c
-lstat.h
-malloc.c
-malloca.c
-malloca.h
-malloca.valgrind
-mbchar.c
-mbchar.h
-mbrtowc.c
-mbscasecmp.c
-mbsinit.c
-mbuiter.h
-memchr.c
-mempcpy.c
-memrchr.c
-memset.c
-mkdirat.c
-mkdtemp.c
-mktime.c
-modechange.c
-modechange.h
-obstack.c
-obstack.h
-offtostr.c
-open-safer.c
-open.c
-openat-die.c
-openat-priv.h
-openat-proc.c
-openat.c
-openat.h
-pathmax.h
-paxerror.c
-paxexit.c
-paxlib.h
-paxnames.c
-pipe-safer.c
-printf-args.c
-printf-args.h
-printf-parse.c
-printf-parse.h
-quote.c
-quote.h
-quotearg.c
-quotearg.h
-rawmemchr.c
-rawmemchr.valgrind
-readlink.c
-realloc.c
-ref-add.sed
-ref-add.sin
-ref-del.sed
-ref-del.sin
-regcomp.c
-regex.c
-regex.h
-regex_internal.c
-regex_internal.h
-regexec.c
-rmdir.c
-rmt-command.h
-rmt.h
-rpmatch.c
-rtapelib.c
-safe-read.c
-safe-read.h
-safe-write.c
-safe-write.h
-same-inode.h
-save-cwd.c
-save-cwd.h
-savedir.c
-savedir.h
-setenv.c
-setenv.h
-size_max.h
-sleep.c
-snprintf.c
-stat-macros.h
-stat-time.h
-stdarg.in.h
-stdbool.h
-stdbool.in.h
-stdint.h
-stdint.in.h
-stdio-impl.h
-stdio-write.c
-stdio.h
-stdio.in.h
-stdlib.h
-stdlib.in.h
-stpcpy.c
-strcasecmp.c
-strchrnul.c
-strchrnul.valgrind
-strdup.c
-streq.h
-strerror.c
-string.h
-string.in.h
-strings.in.h
-stripslash.c
-strncasecmp.c
-strndup.c
-strnlen.c
-strnlen1.c
-strnlen1.h
-strtoimax.c
-strtol.c
-strtoll.c
-strtoul.c
-strtoull.c
-strtoumax.c
-sys
-sys_stat.h
-sys_stat.in.h
-sys_time.h
-sys_time.in.h
-sysexits.h
-sysexits.in.h
-system-ioctl.h
-system.h
-tempname.c
-tempname.h
-time.h
-time.in.h
-time_r.c
-timespec.h
-uinttostr.c
-umaxtostr.c
-unistd--.h
-unistd-safer.h
-unistd.h
-unistd.in.h
-unitypes.h
-uniwidth
-uniwidth.h
-unlinkdir.c
-unlinkdir.h
-unlocked-io.h
-unsetenv.c
-utime.c
-utimens.c
-utimens.h
-vasnprintf.c
-vasnprintf.h
-verify.h
-version-etc-fsf.c
-version-etc.c
-version-etc.h
-vsnprintf.c
-w32sock.h
-wchar.h
-wchar.in.h
-wcrtomb.c
-wctype.h
-wctype.in.h
-wcwidth.c
-write.c
-xalloc-die.c
-xalloc.h
-xgetcwd.c
-xgetcwd.h
-xmalloc.c
-xsize.h
-xstrndup.c
-xstrndup.h
-xstrtol-error.c
-xstrtol.c
-xstrtol.h
-xstrtoul.c
-xstrtoumax.c

+ 7 - 9
lib/Makefile.am

@@ -1,7 +1,7 @@
 # Makefile for GNU tar library.			-*- Makefile -*-
 # Makefile for GNU tar library.			-*- Makefile -*-
 
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2004,
 # Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2004,
-# 2005, 2006, 2007 Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
 
 
 # This program is free software; you can redistribute it and/or modify
 # 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
 # it under the terms of the GNU General Public License as published by
@@ -17,19 +17,19 @@
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 # 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 
-include gnulib.mk
-
+noinst_LIBRARIES=libtar.a
 rmt-command.h : Makefile
 rmt-command.h : Makefile
 	rm -f $@-t $@
 	rm -f $@-t $@
 	echo "#ifndef DEFAULT_RMT_COMMAND" >> $@-t
 	echo "#ifndef DEFAULT_RMT_COMMAND" >> $@-t
 	echo "# define DEFAULT_RMT_COMMAND \"$(DEFAULT_RMT_DIR)/`echo rmt | sed '$(transform)'`$(EXEEXT)\"" >> $@-t
 	echo "# define DEFAULT_RMT_COMMAND \"$(DEFAULT_RMT_DIR)/`echo rmt | sed '$(transform)'`$(EXEEXT)\"" >> $@-t
 	echo "#endif" >> $@-t
 	echo "#endif" >> $@-t
 	mv $@-t $@
 	mv $@-t $@
-BUILT_SOURCES += rmt-command.h
-CLEANFILES += rmt-command.h rmt-command.h-t
+BUILT_SOURCES = rmt-command.h
+CLEANFILES = rmt-command.h rmt-command.h-t
+INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu 
 
 
-noinst_HEADERS += system.h system-ioctl.h rmt.h paxlib.h stdopen.h
-libtar_a_SOURCES += \
+noinst_HEADERS = system.h system-ioctl.h rmt.h paxlib.h stdopen.h
+libtar_a_SOURCES = \
   paxerror.c paxexit.c paxlib.h paxnames.c \
   paxerror.c paxexit.c paxlib.h paxnames.c \
   prepargs.c prepargs.h \
   prepargs.c prepargs.h \
   rtapelib.c \
   rtapelib.c \
@@ -37,5 +37,3 @@ libtar_a_SOURCES += \
   stdopen.c stdopen.h \
   stdopen.c stdopen.h \
   system.h system-ioctl.h
   system.h system-ioctl.h
 
 
-libtar_a_LIBADD += $(LIBOBJS)
-libtar_a_DEPENDENCIES += $(LIBOBJS)

+ 0 - 508
lib/alloca.c

@@ -1,508 +0,0 @@
-/* alloca.c -- allocate automatically reclaimed memory
-   (Mostly) portable public-domain implementation -- D A Gwyn
-
-   This implementation of the PWB library alloca function,
-   which is used to allocate space off the run-time stack so
-   that it is automatically reclaimed upon procedure exit,
-   was inspired by discussions with J. Q. Johnson of Cornell.
-   J.Otto Tennant <jot@cray.com> contributed the Cray support.
-
-   There are some preprocessor constants that can
-   be defined when compiling for your specific system, for
-   improved efficiency; however, the defaults should be okay.
-
-   The general concept of this implementation is to keep
-   track of all alloca-allocated blocks, and reclaim any
-   that are found to be deeper in the stack than the current
-   invocation.  This heuristic does not reclaim storage as
-   soon as it becomes invalid, but it will do so eventually.
-
-   As a special case, alloca(0) reclaims storage without
-   allocating any.  It is a good idea to use alloca(0) in
-   your main control loop, etc. to force garbage collection.  */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#if HAVE_STRING_H
-# include <string.h>
-#endif
-#if HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-
-#ifdef emacs
-# include "lisp.h"
-# include "blockinput.h"
-# define xalloc_die() memory_full ()
-# ifdef EMACS_FREE
-#  undef free
-#  define free EMACS_FREE
-# endif
-#else
-# include <xalloc.h>
-#endif
-
-/* If compiling with GCC 2, this file's not needed.  */
-#if !defined (__GNUC__) || __GNUC__ < 2
-
-/* If someone has defined alloca as a macro,
-   there must be some other way alloca is supposed to work.  */
-# ifndef alloca
-
-#  ifdef emacs
-#   ifdef static
-/* actually, only want this if static is defined as ""
-   -- this is for usg, in which emacs must undefine static
-   in order to make unexec workable
-   */
-#    ifndef STACK_DIRECTION
-you
-lose
--- must know STACK_DIRECTION at compile-time
-/* Using #error here is not wise since this file should work for
-   old and obscure compilers.  */
-#    endif /* STACK_DIRECTION undefined */
-#   endif /* static */
-#  endif /* emacs */
-
-/* If your stack is a linked list of frames, you have to
-   provide an "address metric" ADDRESS_FUNCTION macro.  */
-
-#  if defined (CRAY) && defined (CRAY_STACKSEG_END)
-long i00afunc ();
-#   define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg))
-#  else
-#   define ADDRESS_FUNCTION(arg) &(arg)
-#  endif
-
-#  ifndef POINTER_TYPE
-#   ifdef __STDC__
-#    define POINTER_TYPE void
-#   else
-#    define POINTER_TYPE char
-#   endif
-#  endif
-typedef POINTER_TYPE *pointer;
-
-#  ifndef NULL
-#   define NULL 0
-#  endif
-
-/* Define STACK_DIRECTION if you know the direction of stack
-   growth for your system; otherwise it will be automatically
-   deduced at run-time.
-
-   STACK_DIRECTION > 0 => grows toward higher addresses
-   STACK_DIRECTION < 0 => grows toward lower addresses
-   STACK_DIRECTION = 0 => direction of growth unknown  */
-
-#  ifndef STACK_DIRECTION
-#   define STACK_DIRECTION	0	/* Direction unknown.  */
-#  endif
-
-#  if STACK_DIRECTION != 0
-
-#   define STACK_DIR	STACK_DIRECTION	/* Known at compile-time.  */
-
-#  else /* STACK_DIRECTION == 0; need run-time code.  */
-
-static int stack_dir;		/* 1 or -1 once known.  */
-#   define STACK_DIR	stack_dir
-
-static void
-find_stack_direction ()
-{
-  static char *addr = NULL;	/* Address of first `dummy', once known.  */
-  auto char dummy;		/* To get stack address.  */
-
-  if (addr == NULL)
-    {				/* Initial entry.  */
-      addr = ADDRESS_FUNCTION (dummy);
-
-      find_stack_direction ();	/* Recurse once.  */
-    }
-  else
-    {
-      /* Second entry.  */
-      if (ADDRESS_FUNCTION (dummy) > addr)
-	stack_dir = 1;		/* Stack grew upward.  */
-      else
-	stack_dir = -1;		/* Stack grew downward.  */
-    }
-}
-
-#  endif /* STACK_DIRECTION == 0 */
-
-/* An "alloca header" is used to:
-   (a) chain together all alloca'ed blocks;
-   (b) keep track of stack depth.
-
-   It is very important that sizeof(header) agree with malloc
-   alignment chunk size.  The following default should work okay.  */
-
-#  ifndef	ALIGN_SIZE
-#   define ALIGN_SIZE	sizeof(double)
-#  endif
-
-typedef union hdr
-{
-  char align[ALIGN_SIZE];	/* To force sizeof(header).  */
-  struct
-    {
-      union hdr *next;		/* For chaining headers.  */
-      char *deep;		/* For stack depth measure.  */
-    } h;
-} header;
-
-static header *last_alloca_header = NULL;	/* -> last alloca header.  */
-
-/* Return a pointer to at least SIZE bytes of storage,
-   which will be automatically reclaimed upon exit from
-   the procedure that called alloca.  Originally, this space
-   was supposed to be taken from the current stack frame of the
-   caller, but that method cannot be made to work for some
-   implementations of C, for example under Gould's UTX/32.  */
-
-pointer
-alloca (size)
-     size_t size;
-{
-  auto char probe;		/* Probes stack depth: */
-  register char *depth = ADDRESS_FUNCTION (probe);
-
-#  if STACK_DIRECTION == 0
-  if (STACK_DIR == 0)		/* Unknown growth direction.  */
-    find_stack_direction ();
-#  endif
-
-  /* Reclaim garbage, defined as all alloca'd storage that
-     was allocated from deeper in the stack than currently.  */
-
-  {
-    register header *hp;	/* Traverses linked list.  */
-
-#  ifdef emacs
-    BLOCK_INPUT;
-#  endif
-
-    for (hp = last_alloca_header; hp != NULL;)
-      if ((STACK_DIR > 0 && hp->h.deep > depth)
-	  || (STACK_DIR < 0 && hp->h.deep < depth))
-	{
-	  register header *np = hp->h.next;
-
-	  free ((pointer) hp);	/* Collect garbage.  */
-
-	  hp = np;		/* -> next header.  */
-	}
-      else
-	break;			/* Rest are not deeper.  */
-
-    last_alloca_header = hp;	/* -> last valid storage.  */
-
-#  ifdef emacs
-    UNBLOCK_INPUT;
-#  endif
-  }
-
-  if (size == 0)
-    return NULL;		/* No allocation required.  */
-
-  /* Allocate combined header + user data storage.  */
-
-  {
-    /* Address of header.  */
-    register pointer new;
-
-    size_t combined_size = sizeof (header) + size;
-    if (combined_size < sizeof (header))
-      xalloc_die ();
-
-    new = xmalloc (combined_size);
-
-    if (new == 0)
-      abort();
-
-    ((header *) new)->h.next = last_alloca_header;
-    ((header *) new)->h.deep = depth;
-
-    last_alloca_header = (header *) new;
-
-    /* User storage begins just after header.  */
-
-    return (pointer) ((char *) new + sizeof (header));
-  }
-}
-
-#  if defined (CRAY) && defined (CRAY_STACKSEG_END)
-
-#   ifdef DEBUG_I00AFUNC
-#    include <stdio.h>
-#   endif
-
-#   ifndef CRAY_STACK
-#    define CRAY_STACK
-#    ifndef CRAY2
-/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */
-struct stack_control_header
-  {
-    long shgrow:32;		/* Number of times stack has grown.  */
-    long shaseg:32;		/* Size of increments to stack.  */
-    long shhwm:32;		/* High water mark of stack.  */
-    long shsize:32;		/* Current size of stack (all segments).  */
-  };
-
-/* The stack segment linkage control information occurs at
-   the high-address end of a stack segment.  (The stack
-   grows from low addresses to high addresses.)  The initial
-   part of the stack segment linkage control information is
-   0200 (octal) words.  This provides for register storage
-   for the routine which overflows the stack.  */
-
-struct stack_segment_linkage
-  {
-    long ss[0200];		/* 0200 overflow words.  */
-    long sssize:32;		/* Number of words in this segment.  */
-    long ssbase:32;		/* Offset to stack base.  */
-    long:32;
-    long sspseg:32;		/* Offset to linkage control of previous
-				   segment of stack.  */
-    long:32;
-    long sstcpt:32;		/* Pointer to task common address block.  */
-    long sscsnm;		/* Private control structure number for
-				   microtasking.  */
-    long ssusr1;		/* Reserved for user.  */
-    long ssusr2;		/* Reserved for user.  */
-    long sstpid;		/* Process ID for pid based multi-tasking.  */
-    long ssgvup;		/* Pointer to multitasking thread giveup.  */
-    long sscray[7];		/* Reserved for Cray Research.  */
-    long ssa0;
-    long ssa1;
-    long ssa2;
-    long ssa3;
-    long ssa4;
-    long ssa5;
-    long ssa6;
-    long ssa7;
-    long sss0;
-    long sss1;
-    long sss2;
-    long sss3;
-    long sss4;
-    long sss5;
-    long sss6;
-    long sss7;
-  };
-
-#    else /* CRAY2 */
-/* The following structure defines the vector of words
-   returned by the STKSTAT library routine.  */
-struct stk_stat
-  {
-    long now;			/* Current total stack size.  */
-    long maxc;			/* Amount of contiguous space which would
-				   be required to satisfy the maximum
-				   stack demand to date.  */
-    long high_water;		/* Stack high-water mark.  */
-    long overflows;		/* Number of stack overflow ($STKOFEN) calls.  */
-    long hits;			/* Number of internal buffer hits.  */
-    long extends;		/* Number of block extensions.  */
-    long stko_mallocs;		/* Block allocations by $STKOFEN.  */
-    long underflows;		/* Number of stack underflow calls ($STKRETN).  */
-    long stko_free;		/* Number of deallocations by $STKRETN.  */
-    long stkm_free;		/* Number of deallocations by $STKMRET.  */
-    long segments;		/* Current number of stack segments.  */
-    long maxs;			/* Maximum number of stack segments so far.  */
-    long pad_size;		/* Stack pad size.  */
-    long current_address;	/* Current stack segment address.  */
-    long current_size;		/* Current stack segment size.  This
-				   number is actually corrupted by STKSTAT to
-				   include the fifteen word trailer area.  */
-    long initial_address;	/* Address of initial segment.  */
-    long initial_size;		/* Size of initial segment.  */
-  };
-
-/* The following structure describes the data structure which trails
-   any stack segment.  I think that the description in 'asdef' is
-   out of date.  I only describe the parts that I am sure about.  */
-
-struct stk_trailer
-  {
-    long this_address;		/* Address of this block.  */
-    long this_size;		/* Size of this block (does not include
-				   this trailer).  */
-    long unknown2;
-    long unknown3;
-    long link;			/* Address of trailer block of previous
-				   segment.  */
-    long unknown5;
-    long unknown6;
-    long unknown7;
-    long unknown8;
-    long unknown9;
-    long unknown10;
-    long unknown11;
-    long unknown12;
-    long unknown13;
-    long unknown14;
-  };
-
-#    endif /* CRAY2 */
-#   endif /* not CRAY_STACK */
-
-#   ifdef CRAY2
-/* Determine a "stack measure" for an arbitrary ADDRESS.
-   I doubt that "lint" will like this much.  */
-
-static long
-i00afunc (long *address)
-{
-  struct stk_stat status;
-  struct stk_trailer *trailer;
-  long *block, size;
-  long result = 0;
-
-  /* We want to iterate through all of the segments.  The first
-     step is to get the stack status structure.  We could do this
-     more quickly and more directly, perhaps, by referencing the
-     $LM00 common block, but I know that this works.  */
-
-  STKSTAT (&status);
-
-  /* Set up the iteration.  */
-
-  trailer = (struct stk_trailer *) (status.current_address
-				    + status.current_size
-				    - 15);
-
-  /* There must be at least one stack segment.  Therefore it is
-     a fatal error if "trailer" is null.  */
-
-  if (trailer == 0)
-    abort ();
-
-  /* Discard segments that do not contain our argument address.  */
-
-  while (trailer != 0)
-    {
-      block = (long *) trailer->this_address;
-      size = trailer->this_size;
-      if (block == 0 || size == 0)
-	abort ();
-      trailer = (struct stk_trailer *) trailer->link;
-      if ((block <= address) && (address < (block + size)))
-	break;
-    }
-
-  /* Set the result to the offset in this segment and add the sizes
-     of all predecessor segments.  */
-
-  result = address - block;
-
-  if (trailer == 0)
-    {
-      return result;
-    }
-
-  do
-    {
-      if (trailer->this_size <= 0)
-	abort ();
-      result += trailer->this_size;
-      trailer = (struct stk_trailer *) trailer->link;
-    }
-  while (trailer != 0);
-
-  /* We are done.  Note that if you present a bogus address (one
-     not in any segment), you will get a different number back, formed
-     from subtracting the address of the first block.  This is probably
-     not what you want.  */
-
-  return (result);
-}
-
-#   else /* not CRAY2 */
-/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP.
-   Determine the number of the cell within the stack,
-   given the address of the cell.  The purpose of this
-   routine is to linearize, in some sense, stack addresses
-   for alloca.  */
-
-static long
-i00afunc (long address)
-{
-  long stkl = 0;
-
-  long size, pseg, this_segment, stack;
-  long result = 0;
-
-  struct stack_segment_linkage *ssptr;
-
-  /* Register B67 contains the address of the end of the
-     current stack segment.  If you (as a subprogram) store
-     your registers on the stack and find that you are past
-     the contents of B67, you have overflowed the segment.
-
-     B67 also points to the stack segment linkage control
-     area, which is what we are really interested in.  */
-
-  stkl = CRAY_STACKSEG_END ();
-  ssptr = (struct stack_segment_linkage *) stkl;
-
-  /* If one subtracts 'size' from the end of the segment,
-     one has the address of the first word of the segment.
-
-     If this is not the first segment, 'pseg' will be
-     nonzero.  */
-
-  pseg = ssptr->sspseg;
-  size = ssptr->sssize;
-
-  this_segment = stkl - size;
-
-  /* It is possible that calling this routine itself caused
-     a stack overflow.  Discard stack segments which do not
-     contain the target address.  */
-
-  while (!(this_segment <= address && address <= stkl))
-    {
-#    ifdef DEBUG_I00AFUNC
-      fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl);
-#    endif
-      if (pseg == 0)
-	break;
-      stkl = stkl - pseg;
-      ssptr = (struct stack_segment_linkage *) stkl;
-      size = ssptr->sssize;
-      pseg = ssptr->sspseg;
-      this_segment = stkl - size;
-    }
-
-  result = address - this_segment;
-
-  /* If you subtract pseg from the current end of the stack,
-     you get the address of the previous stack segment's end.
-     This seems a little convoluted to me, but I'll bet you save
-     a cycle somewhere.  */
-
-  while (pseg != 0)
-    {
-#    ifdef DEBUG_I00AFUNC
-      fprintf (stderr, "%011o %011o\n", pseg, size);
-#    endif
-      stkl = stkl - pseg;
-      ssptr = (struct stack_segment_linkage *) stkl;
-      size = ssptr->sssize;
-      pseg = ssptr->sspseg;
-      result += size;
-    }
-  return (result);
-}
-
-#   endif /* not CRAY2 */
-#  endif /* CRAY */
-
-# endif /* no alloca */
-#endif /* not GCC version 2 */

+ 0 - 280
lib/argmatch.c

@@ -1,280 +0,0 @@
-/* argmatch.c -- find a match for a string in an array
-
-   Copyright (C) 1990, 1998, 1999, 2001, 2002, 2003 Free Software
-   Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-/* Written by David MacKenzie <djm@ai.mit.edu>
-   Modified by Akim Demaille <demaille@inf.enst.fr> */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-/* Specification.  */
-#include "argmatch.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "gettext.h"
-#define _(msgid) gettext (msgid)
-
-#include "error.h"
-#include "quotearg.h"
-#include "quote.h"
-#include "unlocked-io.h"
-
-/* When reporting an invalid argument, show nonprinting characters
-   by using the quoting style ARGMATCH_QUOTING_STYLE.  Do not use
-   literal_quoting_style.  */
-#ifndef ARGMATCH_QUOTING_STYLE
-# define ARGMATCH_QUOTING_STYLE locale_quoting_style
-#endif
-
-#ifndef EXIT_FAILURE
-# define EXIT_FAILURE 1
-#endif
-
-/* Non failing version of argmatch call this function after failing. */
-#ifndef ARGMATCH_DIE
-# define ARGMATCH_DIE exit (EXIT_FAILURE)
-#endif
-
-#ifdef ARGMATCH_DIE_DECL
-ARGMATCH_DIE_DECL;
-#endif
-
-static void
-__argmatch_die (void)
-{
-  ARGMATCH_DIE;
-}
-
-/* Used by XARGMATCH and XARGCASEMATCH.  See description in argmatch.h.
-   Default to __argmatch_die, but allow caller to change this at run-time. */
-argmatch_exit_fn argmatch_die = __argmatch_die;
-
-
-/* If ARG is an unambiguous match for an element of the
-   null-terminated array ARGLIST, return the index in ARGLIST
-   of the matched element, else -1 if it does not match any element
-   or -2 if it is ambiguous (is a prefix of more than one element).
-
-   If VALLIST is none null, use it to resolve ambiguities limited to
-   synonyms, i.e., for
-     "yes", "yop" -> 0
-     "no", "nope" -> 1
-   "y" is a valid argument, for `0', and "n" for `1'.  */
-
-int
-argmatch (const char *arg, const char *const *arglist,
-	  const char *vallist, size_t valsize)
-{
-  int i;			/* Temporary index in ARGLIST.  */
-  size_t arglen;		/* Length of ARG.  */
-  int matchind = -1;		/* Index of first nonexact match.  */
-  int ambiguous = 0;		/* If nonzero, multiple nonexact match(es).  */
-
-  arglen = strlen (arg);
-
-  /* Test all elements for either exact match or abbreviated matches.  */
-  for (i = 0; arglist[i]; i++)
-    {
-      if (!strncmp (arglist[i], arg, arglen))
-	{
-	  if (strlen (arglist[i]) == arglen)
-	    /* Exact match found.  */
-	    return i;
-	  else if (matchind == -1)
-	    /* First nonexact match found.  */
-	    matchind = i;
-	  else
-	    {
-	      /* Second nonexact match found.  */
-	      if (vallist == NULL
-		  || memcmp (vallist + valsize * matchind,
-			     vallist + valsize * i, valsize))
-		{
-		  /* There is a real ambiguity, or we could not
-		     disambiguate. */
-		  ambiguous = 1;
-		}
-	    }
-	}
-    }
-  if (ambiguous)
-    return -2;
-  else
-    return matchind;
-}
-
-/* Error reporting for argmatch.
-   CONTEXT is a description of the type of entity that was being matched.
-   VALUE is the invalid value that was given.
-   PROBLEM is the return value from argmatch.  */
-
-void
-argmatch_invalid (const char *context, const char *value, int problem)
-{
-  char const *format = (problem == -1
-			? _("invalid argument %s for %s")
-			: _("ambiguous argument %s for %s"));
-
-  error (0, 0, format, quotearg_n_style (0, ARGMATCH_QUOTING_STYLE, value),
-	 quote_n (1, context));
-}
-
-/* List the valid arguments for argmatch.
-   ARGLIST is the same as in argmatch.
-   VALLIST is a pointer to an array of values.
-   VALSIZE is the size of the elements of VALLIST */
-void
-argmatch_valid (const char *const *arglist,
-		const char *vallist, size_t valsize)
-{
-  int i;
-  const char *last_val = NULL;
-
-  /* We try to put synonyms on the same line.  The assumption is that
-     synonyms follow each other */
-  fprintf (stderr, _("Valid arguments are:"));
-  for (i = 0; arglist[i]; i++)
-    if ((i == 0)
-	|| memcmp (last_val, vallist + valsize * i, valsize))
-      {
-	fprintf (stderr, "\n  - `%s'", arglist[i]);
-	last_val = vallist + valsize * i;
-      }
-    else
-      {
-	fprintf (stderr, ", `%s'", arglist[i]);
-      }
-  putc ('\n', stderr);
-}
-
-/* Never failing versions of the previous functions.
-
-   CONTEXT is the context for which argmatch is called (e.g.,
-   "--version-control", or "$VERSION_CONTROL" etc.).  Upon failure,
-   calls the (supposed never to return) function EXIT_FN. */
-
-int
-__xargmatch_internal (const char *context,
-		      const char *arg, const char *const *arglist,
-		      const char *vallist, size_t valsize,
-		      argmatch_exit_fn exit_fn)
-{
-  int res = argmatch (arg, arglist, vallist, valsize);
-  if (res >= 0)
-    /* Success. */
-    return res;
-
-  /* We failed.  Explain why. */
-  argmatch_invalid (context, arg, res);
-  argmatch_valid (arglist, vallist, valsize);
-  (*exit_fn) ();
-
-  return -1; /* To please the compilers. */
-}
-
-/* Look for VALUE in VALLIST, an array of objects of size VALSIZE and
-   return the first corresponding argument in ARGLIST */
-const char *
-argmatch_to_argument (const char *value,
-		      const char *const *arglist,
-		      const char *vallist, size_t valsize)
-{
-  int i;
-
-  for (i = 0; arglist[i]; i++)
-    if (!memcmp (value, vallist + valsize * i, valsize))
-      return arglist[i];
-  return NULL;
-}
-
-#ifdef TEST
-/*
- * Based on "getversion.c" by David MacKenzie <djm@gnu.ai.mit.edu>
- */
-char *program_name;
-extern const char *getenv ();
-
-/* When to make backup files.  */
-enum backup_type
-{
-  /* Never make backups.  */
-  none,
-
-  /* Make simple backups of every file.  */
-  simple,
-
-  /* Make numbered backups of files that already have numbered backups,
-     and simple backups of the others.  */
-  numbered_existing,
-
-  /* Make numbered backups of every file.  */
-  numbered
-};
-
-/* Two tables describing arguments (keys) and their corresponding
-   values */
-static const char *const backup_args[] =
-{
-  "no", "none", "off",
-  "simple", "never",
-  "existing", "nil",
-  "numbered", "t",
-  0
-};
-
-static const enum backup_type backup_vals[] =
-{
-  none, none, none,
-  simple, simple,
-  numbered_existing, numbered_existing,
-  numbered, numbered
-};
-
-int
-main (int argc, const char *const *argv)
-{
-  const char *cp;
-  enum backup_type backup_type = none;
-
-  program_name = (char *) argv[0];
-
-  if (argc > 2)
-    {
-      fprintf (stderr, "Usage: %s [VERSION_CONTROL]\n", program_name);
-      exit (1);
-    }
-
-  if ((cp = getenv ("VERSION_CONTROL")))
-    backup_type = XARGMATCH ("$VERSION_CONTROL", cp,
-			     backup_args, backup_vals);
-
-  if (argc == 2)
-    backup_type = XARGMATCH (program_name, argv[1],
-			     backup_args, backup_vals);
-
-  printf ("The version control is `%s'\n",
-	  ARGMATCH_TO_ARGUMENT (backup_type, backup_args, backup_vals));
-
-  return 0;
-}
-#endif

+ 0 - 9
lib/basename.h

@@ -1,9 +0,0 @@
-#ifndef PARAMS
-# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
-#  define PARAMS(Args) Args
-# else
-#  define PARAMS(Args) ()
-# endif
-#endif
-
-char *base_name PARAMS ((char const *name));

+ 0 - 407
lib/error.c

@@ -1,407 +0,0 @@
-/* Error handler for noninteractive utilities
-   Copyright (C) 1990-1998, 2000, 2001, 2002 Free Software Foundation, Inc.
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-/* Written by David MacKenzie <djm@gnu.ai.mit.edu>.  */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef _LIBC
-# include <libintl.h>
-#else
-# include "gettext.h"
-#endif
-
-#ifdef _LIBC
-# include <wchar.h>
-# define mbsrtowcs __mbsrtowcs
-#endif
-
-#if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC
-# if __STDC__
-#  include <stdarg.h>
-#  define VA_START(args, lastarg) va_start(args, lastarg)
-# else
-#  include <varargs.h>
-#  define VA_START(args, lastarg) va_start(args)
-# endif
-#else
-# define va_alist a1, a2, a3, a4, a5, a6, a7, a8
-# define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8;
-#endif
-
-#if STDC_HEADERS || _LIBC
-# include <stdlib.h>
-# include <string.h>
-#else
-void exit ();
-#endif
-
-#include "error.h"
-
-#if !_LIBC
-# include "unlocked-io.h"
-#endif
-
-#ifndef _
-# define _(String) String
-#endif
-
-/* If NULL, error will flush stdout, then print on stderr the program
-   name, a colon and a space.  Otherwise, error will call this
-   function without parameters instead.  */
-void (*error_print_progname) (
-#if __STDC__ - 0
-			      void
-#endif
-			      );
-
-/* This variable is incremented each time `error' is called.  */
-unsigned int error_message_count;
-
-#ifdef _LIBC
-/* In the GNU C library, there is a predefined variable for this.  */
-
-# define program_name program_invocation_name
-# include <errno.h>
-# include <libio/libioP.h>
-
-/* In GNU libc we want do not want to use the common name `error' directly.
-   Instead make it a weak alias.  */
-extern void __error (int status, int errnum, const char *message, ...)
-     __attribute__ ((__format__ (__printf__, 3, 4)));
-extern void __error_at_line (int status, int errnum, const char *file_name,
-			     unsigned int line_number, const char *message,
-			     ...)
-     __attribute__ ((__format__ (__printf__, 5, 6)));;
-# define error __error
-# define error_at_line __error_at_line
-
-# ifdef USE_IN_LIBIO
-#  include <libio/iolibio.h>
-#  define fflush(s) INTUSE(_IO_fflush) (s)
-#  undef putc
-#  define putc(c, fp) INTUSE(_IO_putc) (c, fp)
-# endif
-
-#else /* not _LIBC */
-
-# if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P
-#  ifndef HAVE_DECL_STRERROR_R
-"this configure-time declaration test was not run"
-#  endif
-char *strerror_r ();
-# endif
-
-/* The calling program should define program_name and set it to the
-   name of the executing program.  */
-extern char *program_name;
-
-# if HAVE_STRERROR_R || defined strerror_r
-#  define __strerror_r strerror_r
-# else
-#  if HAVE_STRERROR
-#   ifndef HAVE_DECL_STRERROR
-"this configure-time declaration test was not run"
-#   endif
-#   if !HAVE_DECL_STRERROR
-char *strerror ();
-#   endif
-#  else
-static char *
-private_strerror (int errnum)
-{
-  extern char *sys_errlist[];
-  extern int sys_nerr;
-
-  if (errnum > 0 && errnum <= sys_nerr)
-    return _(sys_errlist[errnum]);
-  return _("Unknown system error");
-}
-#   define strerror private_strerror
-#  endif /* HAVE_STRERROR */
-# endif	/* HAVE_STRERROR_R || defined strerror_r */
-#endif	/* not _LIBC */
-
-static void
-print_errno_message (int errnum)
-{
-  char const *s;
-
-#if defined HAVE_STRERROR_R || _LIBC
-  char errbuf[1024];
-# if STRERROR_R_CHAR_P || _LIBC
-  s = __strerror_r (errnum, errbuf, sizeof errbuf);
-# else
-  if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0)
-    s = errbuf;
-  else
-    s = 0;
-# endif
-#else
-  s = strerror (errnum);
-#endif
-
-#if !_LIBC
-  if (! s)
-    s = _("Unknown system error");
-#endif
-
-#if _LIBC && USE_IN_LIBIO
-  if (_IO_fwide (stderr, 0) > 0)
-    {
-      __fwprintf (stderr, L": %s", s);
-      return;
-    }
-#endif
-
-  fprintf (stderr, ": %s", s);
-}
-
-#ifdef VA_START
-static void
-error_tail (int status, int errnum, const char *message, va_list args)
-{
-# if HAVE_VPRINTF || _LIBC
-#  if _LIBC && USE_IN_LIBIO
-  if (_IO_fwide (stderr, 0) > 0)
-    {
-#   define ALLOCA_LIMIT	2000
-      size_t len = strlen (message) + 1;
-      wchar_t *wmessage = NULL;
-      mbstate_t st;
-      size_t res;
-      const char *tmp;
-
-      do
-	{
-	  if (len < ALLOCA_LIMIT)
-	    wmessage = (wchar_t *) alloca (len * sizeof (wchar_t));
-	  else
-	    {
-	      if (wmessage != NULL && len / 2 < ALLOCA_LIMIT)
-		wmessage = NULL;
-
-	      wmessage = (wchar_t *) realloc (wmessage,
-					      len * sizeof (wchar_t));
-
-	      if (wmessage == NULL)
-		{
-		  fputws_unlocked (L"out of memory\n", stderr);
-		  return;
-		}
-	    }
-
-	  memset (&st, '\0', sizeof (st));
-	  tmp =message;
-	}
-      while ((res = mbsrtowcs (wmessage, &tmp, len, &st)) == len);
-
-      if (res == (size_t) -1)
-	/* The string cannot be converted.  */
-	wmessage = (wchar_t *) L"???";
-
-      __vfwprintf (stderr, wmessage, args);
-    }
-  else
-#  endif
-    vfprintf (stderr, message, args);
-# else
-  _doprnt (message, args, stderr);
-# endif
-  va_end (args);
-
-  ++error_message_count;
-  if (errnum)
-    print_errno_message (errnum);
-# if _LIBC && USE_IN_LIBIO
-  if (_IO_fwide (stderr, 0) > 0)
-    putwc (L'\n', stderr);
-  else
-# endif
-    putc ('\n', stderr);
-  fflush (stderr);
-  if (status)
-    exit (status);
-}
-#endif
-
-
-/* Print the program name and error message MESSAGE, which is a printf-style
-   format string with optional args.
-   If ERRNUM is nonzero, print its corresponding system error message.
-   Exit with status STATUS if it is nonzero.  */
-/* VARARGS */
-void
-#if defined VA_START && __STDC__
-error (int status, int errnum, const char *message, ...)
-#else
-error (status, errnum, message, va_alist)
-     int status;
-     int errnum;
-     char *message;
-     va_dcl
-#endif
-{
-#ifdef VA_START
-  va_list args;
-#endif
-
-  fflush (stdout);
-#ifdef _LIBC
-# ifdef USE_IN_LIBIO
-  _IO_flockfile (stderr);
-# else
-  __flockfile (stderr);
-# endif
-#endif
-  if (error_print_progname)
-    (*error_print_progname) ();
-  else
-    {
-#if _LIBC && USE_IN_LIBIO
-      if (_IO_fwide (stderr, 0) > 0)
-	__fwprintf (stderr, L"%s: ", program_name);
-      else
-#endif
-	fprintf (stderr, "%s: ", program_name);
-    }
-
-#ifdef VA_START
-  VA_START (args, message);
-  error_tail (status, errnum, message, args);
-#else
-  fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);
-
-  ++error_message_count;
-  if (errnum)
-    print_errno_message (errnum);
-  putc ('\n', stderr);
-  fflush (stderr);
-  if (status)
-    exit (status);
-#endif
-
-#ifdef _LIBC
-# ifdef USE_IN_LIBIO
-  _IO_funlockfile (stderr);
-# else
-  __funlockfile (stderr);
-# endif
-#endif
-}
-
-/* Sometimes we want to have at most one error per line.  This
-   variable controls whether this mode is selected or not.  */
-int error_one_per_line;
-
-void
-#if defined VA_START && __STDC__
-error_at_line (int status, int errnum, const char *file_name,
-	       unsigned int line_number, const char *message, ...)
-#else
-error_at_line (status, errnum, file_name, line_number, message, va_alist)
-     int status;
-     int errnum;
-     const char *file_name;
-     unsigned int line_number;
-     char *message;
-     va_dcl
-#endif
-{
-#ifdef VA_START
-  va_list args;
-#endif
-
-  if (error_one_per_line)
-    {
-      static const char *old_file_name;
-      static unsigned int old_line_number;
-
-      if (old_line_number == line_number
-	  && (file_name == old_file_name
-	      || strcmp (old_file_name, file_name) == 0))
-	/* Simply return and print nothing.  */
-	return;
-
-      old_file_name = file_name;
-      old_line_number = line_number;
-    }
-
-  fflush (stdout);
-#ifdef _LIBC
-# ifdef USE_IN_LIBIO
-  _IO_flockfile (stderr);
-# else
-  __flockfile (stderr);
-# endif
-#endif
-  if (error_print_progname)
-    (*error_print_progname) ();
-  else
-    {
-#if _LIBC && USE_IN_LIBIO
-      if (_IO_fwide (stderr, 0) > 0)
-	__fwprintf (stderr, L"%s: ", program_name);
-      else
-#endif
-	fprintf (stderr, "%s:", program_name);
-    }
-
-  if (file_name != NULL)
-    {
-#if _LIBC && USE_IN_LIBIO
-      if (_IO_fwide (stderr, 0) > 0)
-	__fwprintf (stderr, L"%s:%d: ", file_name, line_number);
-      else
-#endif
-	fprintf (stderr, "%s:%d: ", file_name, line_number);
-    }
-
-#ifdef VA_START
-  VA_START (args, message);
-  error_tail (status, errnum, message, args);
-#else
-  fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);
-
-  ++error_message_count;
-  if (errnum)
-    print_errno_message (errnum);
-  putc ('\n', stderr);
-  fflush (stderr);
-  if (status)
-    exit (status);
-#endif
-
-#ifdef _LIBC
-# ifdef USE_IN_LIBIO
-  _IO_funlockfile (stderr);
-# else
-  __funlockfile (stderr);
-# endif
-#endif
-}
-
-#ifdef _LIBC
-/* Make the weak alias.  */
-# undef error
-# undef error_at_line
-weak_alias (__error, error)
-weak_alias (__error_at_line, error_at_line)
-#endif

+ 0 - 267
lib/exclude.c

@@ -1,267 +0,0 @@
-/* exclude.c -- exclude file names
-
-   Copyright (C) 1992, 1993, 1994, 1997, 1999, 2000, 2001, 2002, 2003 Free
-   Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING.
-   If not, write to the Free Software Foundation,
-   59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-/* Written by Paul Eggert <eggert@twinsun.com>  */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdbool.h>
-
-#include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
-#include <stddef.h>
-#include <stdio.h>
-#if HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-#if HAVE_STRING_H
-# include <string.h>
-#endif
-#if HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-#  include <stdint.h>
-# endif
-#endif
-
-#include "exclude.h"
-#include "fnmatch.h"
-#include "unlocked-io.h"
-#include "xalloc.h"
-
-#ifndef SIZE_MAX
-# define SIZE_MAX ((size_t) -1)
-#endif
-
-/* Verify a requirement at compile-time (unlike assert, which is runtime).  */
-#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; }
-
-/* Non-GNU systems lack these options, so we don't need to check them.  */
-#ifndef FNM_CASEFOLD
-# define FNM_CASEFOLD 0
-#endif
-#ifndef FNM_LEADING_DIR
-# define FNM_LEADING_DIR 0
-#endif
-
-verify (EXCLUDE_macros_do_not_collide_with_FNM_macros,
-	(((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS)
-	  & (FNM_PATHNAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR
-	     | FNM_CASEFOLD))
-	 == 0));
-
-/* An exclude pattern-options pair.  The options are fnmatch options
-   ORed with EXCLUDE_* options.  */
-
-struct patopts
-  {
-    char const *pattern;
-    int options;
-  };
-
-/* An exclude list, of pattern-options pairs.  */
-
-struct exclude
-  {
-    struct patopts *exclude;
-    size_t exclude_alloc;
-    size_t exclude_count;
-  };
-
-/* Return a newly allocated and empty exclude list.  */
-
-struct exclude *
-new_exclude (void)
-{
-  struct exclude *ex = xmalloc (sizeof *ex);
-  ex->exclude_count = 0;
-  ex->exclude_alloc = (1 << 6); /* This must be a power of 2.  */
-  ex->exclude = xmalloc (ex->exclude_alloc * sizeof ex->exclude[0]);
-  return ex;
-}
-
-/* Free the storage associated with an exclude list.  */
-
-void
-free_exclude (struct exclude *ex)
-{
-  free (ex->exclude);
-  free (ex);
-}
-
-/* Return zero if PATTERN matches F, obeying OPTIONS, except that
-   (unlike fnmatch) wildcards are disabled in PATTERN.  */
-
-static int
-fnmatch_no_wildcards (char const *pattern, char const *f, int options)
-{
-  if (! (options & FNM_LEADING_DIR))
-    return ((options & FNM_CASEFOLD)
-	    ? strcasecmp (pattern, f)
-	    : strcmp (pattern, f));
-  else
-    {
-      size_t patlen = strlen (pattern);
-      int r = ((options & FNM_CASEFOLD)
-		? strncasecmp (pattern, f, patlen)
-		: strncmp (pattern, f, patlen));
-      if (! r)
-	{
-	  r = f[patlen];
-	  if (r == '/')
-	    r = 0;
-	}
-      return r;
-    }
-}
-
-/* Return true if EX excludes F.  */
-
-bool
-excluded_filename (struct exclude const *ex, char const *f)
-{
-  size_t exclude_count = ex->exclude_count;
-
-  /* If no options are given, the default is to include.  */
-  if (exclude_count == 0)
-    return false;
-  else
-    {
-      struct patopts const *exclude = ex->exclude;
-      size_t i;
-
-      /* Otherwise, the default is the opposite of the first option.  */
-      bool excluded = !! (exclude[0].options & EXCLUDE_INCLUDE);
-
-      /* Scan through the options, seeing whether they change F from
-	 excluded to included or vice versa.  */
-      for (i = 0;  i < exclude_count;  i++)
-	{
-	  char const *pattern = exclude[i].pattern;
-	  int options = exclude[i].options;
-	  if (excluded == !! (options & EXCLUDE_INCLUDE))
-	    {
-	      int (*matcher) (char const *, char const *, int) =
-		(options & EXCLUDE_WILDCARDS
-		 ? fnmatch
-		 : fnmatch_no_wildcards);
-	      bool matched = ((*matcher) (pattern, f, options) == 0);
-	      char const *p;
-
-	      if (! (options & EXCLUDE_ANCHORED))
-		for (p = f; *p && ! matched; p++)
-		  if (*p == '/' && p[1] != '/')
-		    matched = ((*matcher) (pattern, p + 1, options) == 0);
-
-	      excluded ^= matched;
-	    }
-	}
-
-      return excluded;
-    }
-}
-
-/* Append to EX the exclusion PATTERN with OPTIONS.  */
-
-void
-add_exclude (struct exclude *ex, char const *pattern, int options)
-{
-  struct patopts *patopts;
-
-  if (ex->exclude_alloc <= ex->exclude_count)
-    {
-      size_t s = 2 * ex->exclude_alloc;
-      if (! (0 < s && s <= SIZE_MAX / sizeof ex->exclude[0]))
-	xalloc_die ();
-      ex->exclude_alloc = s;
-      ex->exclude = xrealloc (ex->exclude, s * sizeof ex->exclude[0]);
-    }
-
-  patopts = &ex->exclude[ex->exclude_count++];
-  patopts->pattern = pattern;
-  patopts->options = options;
-}
-
-/* Use ADD_FUNC to append to EX the patterns in FILENAME, each with
-   OPTIONS.  LINE_END terminates each pattern in the file.  Return -1
-   on failure, 0 on success.  */
-
-int
-add_exclude_file (void (*add_func) (struct exclude *, char const *, int),
-		  struct exclude *ex, char const *filename, int options,
-		  char line_end)
-{
-  bool use_stdin = filename[0] == '-' && !filename[1];
-  FILE *in;
-  char *buf;
-  char *p;
-  char const *pattern;
-  char const *lim;
-  size_t buf_alloc = (1 << 10);  /* This must be a power of two.  */
-  size_t buf_count = 0;
-  int c;
-  int e = 0;
-
-  if (use_stdin)
-    in = stdin;
-  else if (! (in = fopen (filename, "r")))
-    return -1;
-
-  buf = xmalloc (buf_alloc);
-
-  while ((c = getc (in)) != EOF)
-    {
-      buf[buf_count++] = c;
-      if (buf_count == buf_alloc)
-	{
-	  buf_alloc *= 2;
-	  if (! buf_alloc)
-	    xalloc_die ();
-	  buf = xrealloc (buf, buf_alloc);
-	}
-    }
-
-  if (ferror (in))
-    e = errno;
-
-  if (!use_stdin && fclose (in) != 0)
-    e = errno;
-
-  buf = xrealloc (buf, buf_count + 1);
-
-  for (pattern = p = buf, lim = buf + buf_count;  p <= lim;  p++)
-    if (p < lim ? *p == line_end : buf < p && p[-1])
-      {
-	*p = '\0';
-	(*add_func) (ex, pattern, options);
-	pattern = p + 1;
-      }
-
-  errno = e;
-  return e ? -1 : 0;
-}

+ 0 - 43
lib/exclude.h

@@ -1,43 +0,0 @@
-/* exclude.h -- declarations for excluding file names
-
-   Copyright (C) 1992, 1993, 1994, 1997, 1999, 2001, 2002, 2003 Free
-   Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING.
-   If not, write to the Free Software Foundation,
-   59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-/* Written by Paul Eggert <eggert@twinsun.com>  */
-
-/* Exclude options, which can be ORed with fnmatch options.  */
-
-/* Patterns must match the start of file names, instead of matching
-   anywhere after a '/'.  */
-#define EXCLUDE_ANCHORED (1 << 30)
-
-/* Include instead of exclude.  */
-#define EXCLUDE_INCLUDE (1 << 29)
-
-/* '?', '*', '[', and '\\' are special in patterns.  Without this
-   option, these characters are ordinary and fnmatch is not used.  */
-#define EXCLUDE_WILDCARDS (1 << 28)
-
-struct exclude;
-
-struct exclude *new_exclude (void);
-void free_exclude (struct exclude *);
-void add_exclude (struct exclude *, char const *, int);
-int add_exclude_file (void (*) (struct exclude *, char const *, int),
-		      struct exclude *, char const *, int, char);
-bool excluded_filename (struct exclude const *, char const *);

+ 0 - 385
lib/fnmatch.c

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

+ 0 - 84
lib/fnmatch.hin

@@ -1,84 +0,0 @@
-/* Copyright (C) 1991, 92, 93, 96, 97, 98 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#ifndef	_FNMATCH_H
-#define	_FNMATCH_H	1
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-#if defined __cplusplus || (defined __STDC__ && __STDC__) || defined WINDOWS32
-# if !defined __GLIBC__ || !defined __P
-#  undef	__P
-#  define __P(protos)	protos
-# endif
-#else /* Not C++ or ANSI C.  */
-# undef	__P
-# define __P(protos)	()
-/* We can get away without defining `const' here only because in this file
-   it is used only inside the prototype for `fnmatch', which is elided in
-   non-ANSI C where `const' is problematical.  */
-#endif /* C++ or ANSI C.  */
-
-#ifndef const
-# if (defined __STDC__ && __STDC__) || defined __cplusplus
-#  define __const	const
-# else
-#  define __const
-# endif
-#endif
-
-/* We #undef these before defining them because some losing systems
-   (HP-UX A.08.07 for example) define these in <unistd.h>.  */
-#undef	FNM_PATHNAME
-#undef	FNM_NOESCAPE
-#undef	FNM_PERIOD
-
-/* Bits set in the FLAGS argument to `fnmatch'.  */
-#define	FNM_PATHNAME	(1 << 0) /* No wildcard can ever match `/'.  */
-#define	FNM_NOESCAPE	(1 << 1) /* Backslashes don't quote special chars.  */
-#define	FNM_PERIOD	(1 << 2) /* Leading `.' is matched only explicitly.  */
-
-#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE
-# define FNM_FILE_NAME	 FNM_PATHNAME	/* Preferred GNU name.  */
-# define FNM_LEADING_DIR (1 << 3)	/* Ignore `/...' after a match.  */
-# define FNM_CASEFOLD	 (1 << 4)	/* Compare without regard to case.  */
-#endif
-
-/* Value returned by `fnmatch' if STRING does not match PATTERN.  */
-#define	FNM_NOMATCH	1
-
-/* This value is returned if the implementation does not support
-   `fnmatch'.  Since this is not the case here it will never be
-   returned but the conformance test suites still require the symbol
-   to be defined.  */
-#ifdef _XOPEN_SOURCE
-# define FNM_NOSYS	(-1)
-#endif
-
-/* Match STRING against the filename pattern PATTERN,
-   returning zero if it matches, FNM_NOMATCH if not.  */
-extern int fnmatch __P ((__const char *__pattern, __const char *__string,
-			 int __flags));
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif /* fnmatch.h */

+ 0 - 474
lib/fnmatch_loop.c

@@ -1,474 +0,0 @@
-/* Copyright (C) 1991-1993, 1996-1999, 2000 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   This library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   This library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with this library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* Match STRING against the filename pattern PATTERN, returning zero if
-   it matches, nonzero if not.  */
-static int FCT (const CHAR *pattern, const CHAR *string,
-		int no_leading_period, int flags) internal_function;
-
-static int
-internal_function
-FCT (pattern, string, no_leading_period, flags)
-     const CHAR *pattern;
-     const CHAR *string;
-     int no_leading_period;
-     int flags;
-{
-  register const CHAR *p = pattern, *n = string;
-  register UCHAR c;
-#ifdef _LIBC
-  const UCHAR *collseq = (const UCHAR *)
-    _NL_CURRENT(LC_COLLATE, CONCAT(_NL_COLLATE_COLLSEQ,SUFFIX));
-# ifdef WIDE_CHAR_VERSION
-  const wint_t *names = (const wint_t *)
-    _NL_CURRENT (LC_COLLATE, _NL_COLLATE_NAMES);
-  size_t size = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_HASH_SIZE);
-  size_t layers = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_HASH_LAYERS);
-# endif
-#endif
-
-  while ((c = *p++) != L('\0'))
-    {
-      c = FOLD (c);
-
-      switch (c)
-	{
-	case L('?'):
-	  if (*n == L('\0'))
-	    return FNM_NOMATCH;
-	  else if (*n == L('/') && (flags & FNM_FILE_NAME))
-	    return FNM_NOMATCH;
-	  else if (*n == L('.') && no_leading_period
-		   && (n == string
-		       || (n[-1] == L('/') && (flags & FNM_FILE_NAME))))
-	    return FNM_NOMATCH;
-	  break;
-
-	case L('\\'):
-	  if (!(flags & FNM_NOESCAPE))
-	    {
-	      c = *p++;
-	      if (c == L('\0'))
-		/* Trailing \ loses.  */
-		return FNM_NOMATCH;
-	      c = FOLD (c);
-	    }
-	  if (FOLD ((UCHAR) *n) != c)
-	    return FNM_NOMATCH;
-	  break;
-
-	case L('*'):
-	  if (*n == L('.') && no_leading_period
-	      && (n == string
-		  || (n[-1] == L('/') && (flags & FNM_FILE_NAME))))
-	    return FNM_NOMATCH;
-
-	  for (c = *p++; c == L('?') || c == L('*'); c = *p++)
-	    {
-	      if (*n == L('/') && (flags & FNM_FILE_NAME))
-		/* A slash does not match a wildcard under FNM_FILE_NAME.  */
-		return FNM_NOMATCH;
-	      else if (c == L('?'))
-		{
-		  /* A ? needs to match one character.  */
-		  if (*n == L('\0'))
-		    /* There isn't another character; no match.  */
-		    return FNM_NOMATCH;
-		  else
-		    /* One character of the string is consumed in matching
-		       this ? wildcard, so *??? won't match if there are
-		       less than three characters.  */
-		    ++n;
-		}
-	    }
-
-	  if (c == L('\0'))
-	    /* The wildcard(s) is/are the last element of the pattern.
-	       If the name is a file name and contains another slash
-	       this does mean it cannot match.  If the FNM_LEADING_DIR
-	       flag is set and exactly one slash is following, we have
-	       a match.  */
-	    {
-	      int result = (flags & FNM_FILE_NAME) == 0 ? 0 : FNM_NOMATCH;
-
-	      if (flags & FNM_FILE_NAME)
-		{
-		  const CHAR *slashp = STRCHR (n, L('/'));
-
-		  if (flags & FNM_LEADING_DIR)
-		    {
-		      if (slashp != NULL
-			  && STRCHR (slashp + 1, L('/')) == NULL)
-			result = 0;
-		    }
-		  else
-		    {
-		      if (slashp == NULL)
-			result = 0;
-		    }
-		}
-
-	      return result;
-	    }
-	  else
-	    {
-	      const CHAR *endp;
-
-	      endp = STRCHRNUL (n, (flags & FNM_FILE_NAME) ? L('/') : L('\0'));
-
-	      if (c == L('['))
-		{
-		  int flags2 = ((flags & FNM_FILE_NAME)
-				? flags : (flags & ~FNM_PERIOD));
-
-		  for (--p; n < endp; ++n)
-		    if (FCT (p, n, (no_leading_period
-				    && (n == string
-					|| (n[-1] == L('/')
-					    && (flags & FNM_FILE_NAME)))),
-			     flags2) == 0)
-		      return 0;
-		}
-	      else if (c == L('/') && (flags & FNM_FILE_NAME))
-		{
-		  while (*n != L('\0') && *n != L('/'))
-		    ++n;
-		  if (*n == L('/')
-		      && (FCT (p, n + 1, flags & FNM_PERIOD, flags) == 0))
-		    return 0;
-		}
-	      else
-		{
-		  int flags2 = ((flags & FNM_FILE_NAME)
-				? flags : (flags & ~FNM_PERIOD));
-
-		  if (c == L('\\') && !(flags & FNM_NOESCAPE))
-		    c = *p;
-		  c = FOLD (c);
-		  for (--p; n < endp; ++n)
-		    if (FOLD ((UCHAR) *n) == c
-			&& (FCT (p, n, (no_leading_period
-					&& (n == string
-					    || (n[-1] == L('/')
-						&& (flags & FNM_FILE_NAME)))),
-				 flags2) == 0))
-		      return 0;
-		}
-	    }
-
-	  /* If we come here no match is possible with the wildcard.  */
-	  return FNM_NOMATCH;
-
-	case L('['):
-	  {
-	    /* Nonzero if the sense of the character class is inverted.  */
-	    static int posixly_correct;
-	    register int not;
-	    CHAR cold;
-
-	    if (posixly_correct == 0)
-	      posixly_correct = getenv ("POSIXLY_CORRECT") != NULL ? 1 : -1;
-
-	    if (*n == L('\0'))
-	      return FNM_NOMATCH;
-
-	    if (*n == L('.') && no_leading_period
-		&& (n == string
-		    || (n[-1] == L('/') && (flags & FNM_FILE_NAME))))
-	      return FNM_NOMATCH;
-
-	    if (*n == L('/') && (flags & FNM_FILE_NAME))
-	      /* `/' cannot be matched.  */
-	      return FNM_NOMATCH;
-
-	    not = (*p == L('!') || (posixly_correct < 0 && *p == L('^')));
-	    if (not)
-	      ++p;
-
-	    c = *p++;
-	    for (;;)
-	      {
-		UCHAR fn = FOLD ((UCHAR) *n);
-
-		if (!(flags & FNM_NOESCAPE) && c == L('\\'))
-		  {
-		    if (*p == L('\0'))
-		      return FNM_NOMATCH;
-		    c = FOLD ((UCHAR) *p);
-		    ++p;
-
-		    if (c == fn)
-		      goto matched;
-		  }
-		else if (c == L('[') && *p == L(':'))
-		  {
-		    /* Leave room for the null.  */
-		    CHAR str[CHAR_CLASS_MAX_LENGTH + 1];
-		    size_t c1 = 0;
-#if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H)
-		    wctype_t wt;
-#endif
-		    const CHAR *startp = p;
-
-		    for (;;)
-		      {
-			if (c1 == CHAR_CLASS_MAX_LENGTH)
-			  /* The name is too long and therefore the pattern
-			     is ill-formed.  */
-			  return FNM_NOMATCH;
-
-			c = *++p;
-			if (c == L(':') && p[1] == L(']'))
-			  {
-			    p += 2;
-			    break;
-			  }
-			if (c < L('a') || c >= L('z'))
-			  {
-			    /* This cannot possibly be a character class name.
-			       Match it as a normal range.  */
-			    p = startp;
-			    c = L('[');
-			    goto normal_bracket;
-			  }
-			str[c1++] = c;
-		      }
-		    str[c1] = L('\0');
-
-#if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H)
-		    wt = IS_CHAR_CLASS (str);
-		    if (wt == 0)
-		      /* Invalid character class name.  */
-		      return FNM_NOMATCH;
-
-		    if (ISWCTYPE (BTOWC ((UCHAR) *n), wt))
-		      goto matched;
-#else
-		    if ((STREQ (str, L("alnum")) && ISALNUM ((UCHAR) *n))
-			|| (STREQ (str, L("alpha")) && ISALPHA ((UCHAR) *n))
-			|| (STREQ (str, L("blank")) && ISBLANK ((UCHAR) *n))
-			|| (STREQ (str, L("cntrl")) && ISCNTRL ((UCHAR) *n))
-			|| (STREQ (str, L("digit")) && ISDIGIT ((UCHAR) *n))
-			|| (STREQ (str, L("graph")) && ISGRAPH ((UCHAR) *n))
-			|| (STREQ (str, L("lower")) && ISLOWER ((UCHAR) *n))
-			|| (STREQ (str, L("print")) && ISPRINT ((UCHAR) *n))
-			|| (STREQ (str, L("punct")) && ISPUNCT ((UCHAR) *n))
-			|| (STREQ (str, L("space")) && ISSPACE ((UCHAR) *n))
-			|| (STREQ (str, L("upper")) && ISUPPER ((UCHAR) *n))
-			|| (STREQ (str, L("xdigit")) && ISXDIGIT ((UCHAR) *n)))
-		      goto matched;
-#endif
-		  }
-		else if (c == L('\0'))
-		  /* [ (unterminated) loses.  */
-		  return FNM_NOMATCH;
-		else
-		  {
-		    c = FOLD (c);
-		  normal_bracket:
-		    if (c == fn)
-		      goto matched;
-
-		    cold = c;
-		    c = *p++;
-
-		    if (c == L('-') && *p != L(']'))
-		      {
-#if _LIBC
-			/* We have to find the collation sequence
-			   value for C.  Collation sequence is nothing
-			   we can regularly access.  The sequence
-			   value is defined by the order in which the
-			   definitions of the collation values for the
-			   various characters appear in the source
-			   file.  A strange concept, nowhere
-			   documented.  */
-			int32_t fseqidx;
-			int32_t lseqidx;
-			UCHAR cend = *p++;
-# ifdef WIDE_CHAR_VERSION
-			size_t cnt;
-# endif
-
-			if (!(flags & FNM_NOESCAPE) && cend == L('\\'))
-			  cend = *p++;
-			if (cend == L('\0'))
-			  return FNM_NOMATCH;
-
-# ifdef WIDE_CHAR_VERSION
-			/* Search in the `names' array for the characters.  */
-			fseqidx = fn % size;
-			cnt = 0;
-			while (names[fseqidx] != fn)
-			  {
-			    if (++cnt == layers)
-			      /* XXX We don't know anything about
-				 the character we are supposed to
-				 match.  This means we are failing.  */
-			      goto range_not_matched;
-
-			    fseqidx += size;
-			  }
-			lseqidx = cold % size;
-			cnt = 0;
-			while (names[lseqidx] != cold)
-			  {
-			    if (++cnt == layers)
-			      {
-				lseqidx = -1;
-				break;
-			      }
-			    lseqidx += size;
-			  }
-# else
-			fseqidx = fn;
-			lseqidx = cold;
-# endif
-
-			/* XXX It is not entirely clear to me how to handle
-			   characters which are not mentioned in the
-			   collation specification.  */
-			if (
-# ifdef WIDE_CHAR_VERSION
-			    lseqidx == -1 ||
-# endif
-			    collseq[lseqidx] <= collseq[fseqidx])
-			  {
-			    /* We have to look at the upper bound.  */
-			    int32_t hseqidx;
-
-			    cend = FOLD (cend);
-# ifdef WIDE_CHAR_VERSION
-			    hseqidx = cend % size;
-			    cnt = 0;
-			    while (names[hseqidx] != cend)
-			      {
-				if (++cnt == layers)
-				  {
-				    /* Hum, no information about the upper
-				       bound.  The matching succeeds if the
-				       lower bound is matched exactly.  */
-				    if (lseqidx == -1 || cold != fn)
-				      goto range_not_matched;
-
-				    goto matched;
-				  }
-			      }
-# else
-			    hseqidx = cend;
-# endif
-
-			    if (
-# ifdef WIDE_CHAR_VERSION
-				(lseqidx == -1
-				 && collseq[fseqidx] == collseq[hseqidx]) ||
-# endif
-				collseq[fseqidx] <= collseq[hseqidx])
-			      goto matched;
-			  }
-# ifdef WIDE_CHAR_VERSION
-		      range_not_matched:
-# endif
-#else
-			/* We use a boring value comparison of the character
-			   values.  This is better than comparing using
-			   `strcoll' since the latter would have surprising
-			   and sometimes fatal consequences.  */
-			UCHAR cend = *p++;
-
-			if (!(flags & FNM_NOESCAPE) && cend == L('\\'))
-			  cend = *p++;
-			if (cend == L('\0'))
-			  return FNM_NOMATCH;
-
-			/* It is a range.  */
-			if (cold <= fc && fc <= c)
-			  goto matched;
-#endif
-
-			c = *p++;
-		      }
-		  }
-
-		if (c == L(']'))
-		  break;
-	      }
-
-	    if (!not)
-	      return FNM_NOMATCH;
-	    break;
-
-	  matched:
-	    /* Skip the rest of the [...] that already matched.  */
-	    while (c != L(']'))
-	      {
-		if (c == L('\0'))
-		  /* [... (unterminated) loses.  */
-		  return FNM_NOMATCH;
-
-		c = *p++;
-		if (!(flags & FNM_NOESCAPE) && c == L('\\'))
-		  {
-		    if (*p == L('\0'))
-		      return FNM_NOMATCH;
-		    /* XXX 1003.2d11 is unclear if this is right.  */
-		    ++p;
-		  }
-		else if (c == L('[') && *p == L(':'))
-		  {
-		    do
-		      if (*++p == L('\0'))
-			return FNM_NOMATCH;
-		    while (*p != L(':') || p[1] == L(']'));
-		    p += 2;
-		    c = *p;
-		  }
-	      }
-	    if (not)
-	      return FNM_NOMATCH;
-	  }
-	  break;
-
-	default:
-	  if (c != FOLD ((UCHAR) *n))
-	    return FNM_NOMATCH;
-	}
-
-      ++n;
-    }
-
-  if (*n == '\0')
-    return 0;
-
-  if ((flags & FNM_LEADING_DIR) && *n == L('/'))
-    /* The FNM_LEADING_DIR flag says that "foo*" matches "foobar/frobozz".  */
-    return 0;
-
-  return FNM_NOMATCH;
-}
-
-#undef FOLD
-#undef CHAR
-#undef UCHAR
-#undef FCT
-#undef STRCHR
-#undef STRCHRNUL
-#undef STRCOLL
-#undef L
-#undef BTOWC
-#undef SUFFIX

+ 0 - 50
lib/full-read.c

@@ -1,50 +0,0 @@
-/* full-read.c -- an interface to read that retries after interrupts
-   Copyright (C) 1993, 1994, 1997, 1999 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-   */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
-
-/* Read LEN bytes at PTR from descriptor DESC, retrying if interrupted.
-   Return the actual number of bytes read, zero for EOF, or negative
-   for an error.  */
-
-ssize_t
-full_read (int desc, char *ptr, size_t len)
-{
-  for (;;)
-    {
-      ssize_t n = read (desc, ptr, len);
-#ifdef EINTR
-      if (n < 0 && errno == EINTR)
-	continue;
-#endif
-      return n;
-    }
-}

+ 0 - 85
lib/full-write.c

@@ -1,85 +0,0 @@
-/* An interface to read and write that retries (if necessary) until complete.
-
-   Copyright (C) 1993, 1994, 1997-2003 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-/* Specification.  */
-#ifdef FULL_READ
-# include "full-read.h"
-#else
-# include "full-write.h"
-#endif
-
-#include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
-
-#ifdef FULL_READ
-# include "safe-read.h"
-# define safe_rw safe_read
-# define full_rw full_read
-# undef const
-# define const /* empty */
-#else
-# include "safe-write.h"
-# define safe_rw safe_write
-# define full_rw full_write
-#endif
-
-#ifdef FULL_READ
-/* Set errno to zero upon EOF.  */
-# define ZERO_BYTE_TRANSFER_ERRNO 0
-#else
-/* Some buggy drivers return 0 when one tries to write beyond
-   a device's end.  (Example: Linux 1.2.13 on /dev/fd0.)
-   Set errno to ENOSPC so they get a sensible diagnostic.  */
-# define ZERO_BYTE_TRANSFER_ERRNO ENOSPC
-#endif
-
-/* Write(read) COUNT bytes at BUF to(from) descriptor FD, retrying if
-   interrupted or if a partial write(read) occurs.  Return the number
-   of bytes transferred.
-   When writing, set errno if fewer than COUNT bytes are written.
-   When reading, if fewer than COUNT bytes are read, you must examine
-   errno to distinguish failure from EOF (errno == 0).  */
-size_t
-full_rw (int fd, const void *buf, size_t count)
-{
-  size_t total = 0;
-  const char *ptr = buf;
-
-  while (count > 0)
-    {
-      size_t n_rw = safe_rw (fd, ptr, count);
-      if (n_rw == (size_t) -1)
-	break;
-      if (n_rw == 0)
-	{
-	  errno = ZERO_BYTE_TRANSFER_ERRNO;
-	  break;
-	}
-      total += n_rw;
-      ptr += n_rw;
-      count -= n_rw;
-    }
-
-  return total;
-}

+ 0 - 24
lib/full-write.h

@@ -1,24 +0,0 @@
-/* An interface to write() that writes all it is asked to write.
-
-   Copyright (C) 2002 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#include <stddef.h>
-
-/* Write COUNT bytes at BUF to descriptor FD, retrying if interrupted
-   or if partial writes occur.  Return the number of bytes successfully
-   written, setting errno if that is less than COUNT.  */
-extern size_t full_write (int fd, const void *buf, size_t count);

+ 0 - 1114
lib/getdate.y

@@ -1,1114 +0,0 @@
-%{
-/* Parse a string into an internal time stamp.
-   Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-/* Originally written by Steven M. Bellovin <smb@research.att.com> while
-   at the University of North Carolina at Chapel Hill.  Later tweaked by
-   a couple of people on Usenet.  Completely overhauled by Rich $alz
-   <rsalz@bbn.com> and Jim Berets <jberets@bbn.com> in August, 1990.
-
-   Modified by Paul Eggert <eggert@twinsun.com> in August 1999 to do
-   the right thing about local DST.  Unlike previous versions, this
-   version is reentrant.  */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <alloca.h>
-
-/* Since the code of getdate.y is not included in the Emacs executable
-   itself, there is no need to #define static in this file.  Even if
-   the code were included in the Emacs executable, it probably
-   wouldn't do any harm to #undef it here; this will only cause
-   problems if we try to write to a static variable, which I don't
-   think this code needs to do.  */
-#ifdef emacs
-# undef static
-#endif
-
-#include <ctype.h>
-
-#if HAVE_STDLIB_H
-# include <stdlib.h> /* for `free'; used by Bison 1.27 */
-#endif
-
-#if STDC_HEADERS || (! defined isascii && ! HAVE_ISASCII)
-# define IN_CTYPE_DOMAIN(c) 1
-#else
-# define IN_CTYPE_DOMAIN(c) isascii (c)
-#endif
-
-#define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (c))
-#define ISALPHA(c) (IN_CTYPE_DOMAIN (c) && isalpha (c))
-#define ISLOWER(c) (IN_CTYPE_DOMAIN (c) && islower (c))
-#define ISDIGIT_LOCALE(c) (IN_CTYPE_DOMAIN (c) && isdigit (c))
-
-/* ISDIGIT differs from ISDIGIT_LOCALE, 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 says that only '0' through '9' are digits.  Prefer ISDIGIT to
-   ISDIGIT_LOCALE unless it's important to use the locale's definition
-   of `digit' even when the host does not conform to POSIX.  */
-#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
-
-#if STDC_HEADERS || HAVE_STRING_H
-# include <string.h>
-#endif
-
-#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
-# define __attribute__(x)
-#endif
-
-#ifndef ATTRIBUTE_UNUSED
-# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
-#endif
-
-#define EPOCH_YEAR 1970
-#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
-{
-  char const *name;
-  int type;
-  int value;
-} table;
-
-/* Meridian: am, pm, or 24-hour style.  */
-enum { MERam, MERpm, MER24 };
-
-/* Information passed to and from the parser.  */
-typedef struct
-{
-  /* The input string remaining to be parsed. */
-  const char *input;
-
-  /* N, if this is the Nth Tuesday.  */
-  int day_ordinal;
-
-  /* Day of week; Sunday is 0.  */
-  int day_number;
-
-  /* tm_isdst flag for the local zone.  */
-  int local_isdst;
-
-  /* Time zone, in minutes east of UTC.  */
-  int time_zone;
-
-  /* Style used for time.  */
-  int meridian;
-
-  /* Gregorian year, month, day, hour, minutes, and seconds.  */
-  textint year;
-  int month;
-  int day;
-  int hour;
-  int minutes;
-  int seconds;
-
-  /* Relative year, month, day, hour, minutes, and seconds.  */
-  int rel_year;
-  int rel_month;
-  int rel_day;
-  int rel_hour;
-  int rel_minutes;
-  int rel_seconds;
-
-  /* Counts of nonterminals of various flavors parsed so far.  */
-  int dates_seen;
-  int days_seen;
-  int local_zones_seen;
-  int rels_seen;
-  int times_seen;
-  int zones_seen;
-
-  /* Table of local time zone abbrevations, terminated by a null entry.  */
-  table local_time_zone_table[3];
-} parser_control;
-
-#define PC (* (parser_control *) parm)
-#define YYLEX_PARAM parm
-#define YYPARSE_PARAM parm
-
-static int yyerror ();
-static int yylex ();
-
-%}
-
-/* We want a reentrant parser.  */
-%pure_parser
-
-/* This grammar has 13 shift/reduce conflicts. */
-%expect 13
-
-%union
-{
-  int intval;
-  textint textintval;
-}
-
-%token tAGO tDST
-
-%token <intval> tDAY tDAY_UNIT tDAYZONE tHOUR_UNIT tLOCAL_ZONE tMERIDIAN
-%token <intval> tMINUTE_UNIT tMONTH tMONTH_UNIT tSEC_UNIT tYEAR_UNIT tZONE
-
-%token <textintval> tSNUMBER tUNUMBER
-
-%type <intval> o_merid
-
-%%
-
-spec:
-    /* empty */
-  | spec item
-  ;
-
-item:
-    time
-      { PC.times_seen++; }
-  | local_zone
-      { PC.local_zones_seen++; }
-  | zone
-      { PC.zones_seen++; }
-  | date
-      { PC.dates_seen++; }
-  | day
-      { PC.days_seen++; }
-  | rel
-      { PC.rels_seen++; }
-  | number
-  ;
-
-time:
-    tUNUMBER tMERIDIAN
-      {
-	PC.hour = $1.value;
-	PC.minutes = 0;
-	PC.seconds = 0;
-	PC.meridian = $2;
-      }
-  | tUNUMBER ':' tUNUMBER o_merid
-      {
-	PC.hour = $1.value;
-	PC.minutes = $3.value;
-	PC.seconds = 0;
-	PC.meridian = $4;
-      }
-  | tUNUMBER ':' tUNUMBER tSNUMBER
-      {
-	PC.hour = $1.value;
-	PC.minutes = $3.value;
-	PC.meridian = MER24;
-	PC.zones_seen++;
-	PC.time_zone = $4.value % 100 + ($4.value / 100) * 60;
-      }
-  | tUNUMBER ':' tUNUMBER ':' tUNUMBER o_merid
-      {
-	PC.hour = $1.value;
-	PC.minutes = $3.value;
-	PC.seconds = $5.value;
-	PC.meridian = $6;
-      }
-  | tUNUMBER ':' tUNUMBER ':' tUNUMBER tSNUMBER
-      {
-	PC.hour = $1.value;
-	PC.minutes = $3.value;
-	PC.seconds = $5.value;
-	PC.meridian = MER24;
-	PC.zones_seen++;
-	PC.time_zone = $6.value % 100 + ($6.value / 100) * 60;
-      }
-  ;
-
-local_zone:
-    tLOCAL_ZONE
-      { PC.local_isdst = $1; }
-  | tLOCAL_ZONE tDST
-      { PC.local_isdst = $1 < 0 ? 1 : $1 + 1; }
-  ;
-
-zone:
-    tZONE
-      { PC.time_zone = $1; }
-  | tDAYZONE
-      { PC.time_zone = $1 + 60; }
-  | tZONE tDST
-      { PC.time_zone = $1 + 60; }
-  ;
-
-day:
-    tDAY
-      {
-	PC.day_ordinal = 1;
-	PC.day_number = $1;
-      }
-  | tDAY ','
-      {
-	PC.day_ordinal = 1;
-	PC.day_number = $1;
-      }
-  | tUNUMBER tDAY
-      {
-	PC.day_ordinal = $1.value;
-	PC.day_number = $2;
-      }
-  ;
-
-date:
-    tUNUMBER '/' tUNUMBER
-      {
-	PC.month = $1.value;
-	PC.day = $3.value;
-      }
-  | tUNUMBER '/' tUNUMBER '/' tUNUMBER
-      {
-	/* 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 (4 <= $1.digits)
-	  {
-	    PC.year = $1;
-	    PC.month = $3.value;
-	    PC.day = $5.value;
-	  }
-	else
-	  {
-	    PC.month = $1.value;
-	    PC.day = $3.value;
-	    PC.year = $5;
-	  }
-      }
-  | tUNUMBER tSNUMBER tSNUMBER
-      {
-	/* ISO 8601 format.  YYYY-MM-DD.  */
-	PC.year = $1;
-	PC.month = -$2.value;
-	PC.day = -$3.value;
-      }
-  | tUNUMBER tMONTH tSNUMBER
-      {
-	/* e.g. 17-JUN-1992.  */
-	PC.day = $1.value;
-	PC.month = $2;
-	PC.year.value = -$3.value;
-	PC.year.digits = $3.digits;
-      }
-  | tMONTH tUNUMBER
-      {
-	PC.month = $1;
-	PC.day = $2.value;
-      }
-  | tMONTH tUNUMBER ',' tUNUMBER
-      {
-	PC.month = $1;
-	PC.day = $2.value;
-	PC.year = $4;
-      }
-  | tUNUMBER tMONTH
-      {
-	PC.day = $1.value;
-	PC.month = $2;
-      }
-  | tUNUMBER tMONTH tUNUMBER
-      {
-	PC.day = $1.value;
-	PC.month = $2;
-	PC.year = $3;
-      }
-  ;
-
-rel:
-    relunit tAGO
-      {
-	PC.rel_seconds = -PC.rel_seconds;
-	PC.rel_minutes = -PC.rel_minutes;
-	PC.rel_hour = -PC.rel_hour;
-	PC.rel_day = -PC.rel_day;
-	PC.rel_month = -PC.rel_month;
-	PC.rel_year = -PC.rel_year;
-      }
-  | relunit
-  ;
-
-relunit:
-    tUNUMBER tYEAR_UNIT
-      { PC.rel_year += $1.value * $2; }
-  | tSNUMBER tYEAR_UNIT
-      { PC.rel_year += $1.value * $2; }
-  | tYEAR_UNIT
-      { PC.rel_year += $1; }
-  | tUNUMBER tMONTH_UNIT
-      { PC.rel_month += $1.value * $2; }
-  | tSNUMBER tMONTH_UNIT
-      { PC.rel_month += $1.value * $2; }
-  | tMONTH_UNIT
-      { PC.rel_month += $1; }
-  | tUNUMBER tDAY_UNIT
-      { PC.rel_day += $1.value * $2; }
-  | tSNUMBER tDAY_UNIT
-      { PC.rel_day += $1.value * $2; }
-  | tDAY_UNIT
-      { PC.rel_day += $1; }
-  | tUNUMBER tHOUR_UNIT
-      { PC.rel_hour += $1.value * $2; }
-  | tSNUMBER tHOUR_UNIT
-      { PC.rel_hour += $1.value * $2; }
-  | tHOUR_UNIT
-      { PC.rel_hour += $1; }
-  | tUNUMBER tMINUTE_UNIT
-      { PC.rel_minutes += $1.value * $2; }
-  | tSNUMBER tMINUTE_UNIT
-      { PC.rel_minutes += $1.value * $2; }
-  | tMINUTE_UNIT
-      { PC.rel_minutes += $1; }
-  | tUNUMBER tSEC_UNIT
-      { PC.rel_seconds += $1.value * $2; }
-  | tSNUMBER tSEC_UNIT
-      { PC.rel_seconds += $1.value * $2; }
-  | tSEC_UNIT
-      { PC.rel_seconds += $1; }
-  ;
-
-number:
-    tUNUMBER
-      {
-	if (PC.dates_seen
-	    && ! PC.rels_seen && (PC.times_seen || 2 < $1.digits))
-	  PC.year = $1;
-	else
-	  {
-	    if (4 < $1.digits)
-	      {
-		PC.dates_seen++;
-		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.digits <= 2)
-		  {
-		    PC.hour = $1.value;
-		    PC.minutes = 0;
-		  }
-		else
-		  {
-		    PC.hour = $1.value / 100;
-		    PC.minutes = $1.value % 100;
-		  }
-		PC.seconds = 0;
-		PC.meridian = MER24;
-	      }
-	  }
-      }
-  ;
-
-o_merid:
-    /* empty */
-      { $$ = MER24; }
-  | tMERIDIAN
-      { $$ = $1; }
-  ;
-
-%%
-
-/* Include this file down here because bison inserts code above which
-   may define-away `const'.  We want the prototype for get_date to have
-   the same signature as the function definition.  */
-#include "getdate.h"
-#include "unlocked-io.h"
-
-#ifndef gmtime
-struct tm *gmtime ();
-#endif
-#ifndef localtime
-struct tm *localtime ();
-#endif
-#ifndef mktime
-time_t mktime ();
-#endif
-
-static table const meridian_table[] =
-{
-  { "AM",   tMERIDIAN, MERam },
-  { "A.M.", tMERIDIAN, MERam },
-  { "PM",   tMERIDIAN, MERpm },
-  { "P.M.", tMERIDIAN, MERpm },
-  { 0, 0, 0 }
-};
-
-static table const dst_table[] =
-{
-  { "DST", tDST, 0 }
-};
-
-static table const month_and_day_table[] =
-{
-  { "JANUARY",	tMONTH,	 1 },
-  { "FEBRUARY",	tMONTH,	 2 },
-  { "MARCH",	tMONTH,	 3 },
-  { "APRIL",	tMONTH,	 4 },
-  { "MAY",	tMONTH,	 5 },
-  { "JUNE",	tMONTH,	 6 },
-  { "JULY",	tMONTH,	 7 },
-  { "AUGUST",	tMONTH,	 8 },
-  { "SEPTEMBER",tMONTH,	 9 },
-  { "SEPT",	tMONTH,	 9 },
-  { "OCTOBER",	tMONTH,	10 },
-  { "NOVEMBER",	tMONTH,	11 },
-  { "DECEMBER",	tMONTH,	12 },
-  { "SUNDAY",	tDAY,	 0 },
-  { "MONDAY",	tDAY,	 1 },
-  { "TUESDAY",	tDAY,	 2 },
-  { "TUES",	tDAY,	 2 },
-  { "WEDNESDAY",tDAY,	 3 },
-  { "WEDNES",	tDAY,	 3 },
-  { "THURSDAY",	tDAY,	 4 },
-  { "THUR",	tDAY,	 4 },
-  { "THURS",	tDAY,	 4 },
-  { "FRIDAY",	tDAY,	 5 },
-  { "SATURDAY",	tDAY,	 6 },
-  { 0, 0, 0 }
-};
-
-static table const time_units_table[] =
-{
-  { "YEAR",	tYEAR_UNIT,	 1 },
-  { "MONTH",	tMONTH_UNIT,	 1 },
-  { "FORTNIGHT",tDAY_UNIT,	14 },
-  { "WEEK",	tDAY_UNIT,	 7 },
-  { "DAY",	tDAY_UNIT,	 1 },
-  { "HOUR",	tHOUR_UNIT,	 1 },
-  { "MINUTE",	tMINUTE_UNIT,	 1 },
-  { "MIN",	tMINUTE_UNIT,	 1 },
-  { "SECOND",	tSEC_UNIT,	 1 },
-  { "SEC",	tSEC_UNIT,	 1 },
-  { 0, 0, 0 }
-};
-
-/* Assorted relative-time words. */
-static table const relative_time_table[] =
-{
-  { "TOMORROW",	tMINUTE_UNIT,	24 * 60 },
-  { "YESTERDAY",tMINUTE_UNIT,	- (24 * 60) },
-  { "TODAY",	tMINUTE_UNIT,	 0 },
-  { "NOW",	tMINUTE_UNIT,	 0 },
-  { "LAST",	tUNUMBER,	-1 },
-  { "THIS",	tUNUMBER,	 0 },
-  { "NEXT",	tUNUMBER,	 1 },
-  { "FIRST",	tUNUMBER,	 1 },
-/*{ "SECOND",	tUNUMBER,	 2 }, */
-  { "THIRD",	tUNUMBER,	 3 },
-  { "FOURTH",	tUNUMBER,	 4 },
-  { "FIFTH",	tUNUMBER,	 5 },
-  { "SIXTH",	tUNUMBER,	 6 },
-  { "SEVENTH",	tUNUMBER,	 7 },
-  { "EIGHTH",	tUNUMBER,	 8 },
-  { "NINTH",	tUNUMBER,	 9 },
-  { "TENTH",	tUNUMBER,	10 },
-  { "ELEVENTH",	tUNUMBER,	11 },
-  { "TWELFTH",	tUNUMBER,	12 },
-  { "AGO",	tAGO,		 1 },
-  { 0, 0, 0 }
-};
-
-/* The time zone table.  This table is necessarily incomplete, as time
-   zone abbreviations are ambiguous; e.g. Australians interpret "EST"
-   as Eastern time in Australia, not as US Eastern Standard Time.
-   You cannot rely on getdate to handle arbitrary time zone
-   abbreviations; use numeric abbreviations like `-0500' instead.  */
-static table const time_zone_table[] =
-{
-  { "GMT",	tZONE,     HOUR ( 0) },	/* Greenwich Mean */
-  { "UT",	tZONE,     HOUR ( 0) },	/* Universal (Coordinated) */
-  { "UTC",	tZONE,     HOUR ( 0) },
-  { "WET",	tZONE,     HOUR ( 0) },	/* Western European */
-  { "WEST",	tDAYZONE,  HOUR ( 0) },	/* Western European Summer */
-  { "BST",	tDAYZONE,  HOUR ( 0) },	/* British Summer */
-  { "ART",	tZONE,	  -HOUR ( 3) },	/* Argentina */
-  { "BRT",	tZONE,	  -HOUR ( 3) },	/* Brazil */
-  { "BRST",	tDAYZONE, -HOUR ( 3) },	/* Brazil Summer */
-  { "NST",	tZONE,	 -(HOUR ( 3) + 30) },	/* Newfoundland Standard */
-  { "NDT",	tDAYZONE,-(HOUR ( 3) + 30) },	/* Newfoundland Daylight */
-  { "AST",	tZONE,    -HOUR ( 4) },	/* Atlantic Standard */
-  { "ADT",	tDAYZONE, -HOUR ( 4) },	/* Atlantic Daylight */
-  { "CLT",	tZONE,    -HOUR ( 4) },	/* Chile */
-  { "CLST",	tDAYZONE, -HOUR ( 4) },	/* Chile Summer */
-  { "EST",	tZONE,    -HOUR ( 5) },	/* Eastern Standard */
-  { "EDT",	tDAYZONE, -HOUR ( 5) },	/* Eastern Daylight */
-  { "CST",	tZONE,    -HOUR ( 6) },	/* Central Standard */
-  { "CDT",	tDAYZONE, -HOUR ( 6) },	/* Central Daylight */
-  { "MST",	tZONE,    -HOUR ( 7) },	/* Mountain Standard */
-  { "MDT",	tDAYZONE, -HOUR ( 7) },	/* Mountain Daylight */
-  { "PST",	tZONE,    -HOUR ( 8) },	/* Pacific Standard */
-  { "PDT",	tDAYZONE, -HOUR ( 8) },	/* Pacific Daylight */
-  { "AKST",	tZONE,    -HOUR ( 9) },	/* Alaska Standard */
-  { "AKDT",	tDAYZONE, -HOUR ( 9) },	/* Alaska Daylight */
-  { "HST",	tZONE,    -HOUR (10) },	/* Hawaii Standard */
-  { "HAST",	tZONE,	  -HOUR (10) },	/* Hawaii-Aleutian Standard */
-  { "HADT",	tDAYZONE, -HOUR (10) },	/* Hawaii-Aleutian Daylight */
-  { "SST",	tZONE,    -HOUR (12) },	/* Samoa Standard */
-  { "WAT",	tZONE,     HOUR ( 1) },	/* West Africa */
-  { "CET",	tZONE,     HOUR ( 1) },	/* Central European */
-  { "CEST",	tDAYZONE,  HOUR ( 1) },	/* Central European Summer */
-  { "MET",	tZONE,     HOUR ( 1) },	/* Middle European */
-  { "MEZ",	tZONE,     HOUR ( 1) },	/* Middle European */
-  { "MEST",	tDAYZONE,  HOUR ( 1) },	/* Middle European Summer */
-  { "MESZ",	tDAYZONE,  HOUR ( 1) },	/* Middle European Summer */
-  { "EET",	tZONE,     HOUR ( 2) },	/* Eastern European */
-  { "EEST",	tDAYZONE,  HOUR ( 2) },	/* Eastern European Summer */
-  { "CAT",	tZONE,	   HOUR ( 2) },	/* Central Africa */
-  { "SAST",	tZONE,	   HOUR ( 2) },	/* South Africa Standard */
-  { "EAT",	tZONE,	   HOUR ( 3) },	/* East Africa */
-  { "MSK",	tZONE,	   HOUR ( 3) },	/* Moscow */
-  { "MSD",	tDAYZONE,  HOUR ( 3) },	/* Moscow Daylight */
-  { "IST",	tZONE,	  (HOUR ( 5) + 30) },	/* India Standard */
-  { "SGT",	tZONE,     HOUR ( 8) },	/* Singapore */
-  { "KST",	tZONE,     HOUR ( 9) },	/* Korea Standard */
-  { "JST",	tZONE,     HOUR ( 9) },	/* Japan Standard */
-  { "GST",	tZONE,     HOUR (10) },	/* Guam Standard */
-  { "NZST",	tZONE,     HOUR (12) },	/* New Zealand Standard */
-  { "NZDT",	tDAYZONE,  HOUR (12) },	/* New Zealand Daylight */
-  { 0, 0, 0  }
-};
-
-/* Military time zone table. */
-static table const military_table[] =
-{
-  { "A", tZONE,	-HOUR ( 1) },
-  { "B", tZONE,	-HOUR ( 2) },
-  { "C", tZONE,	-HOUR ( 3) },
-  { "D", tZONE,	-HOUR ( 4) },
-  { "E", tZONE,	-HOUR ( 5) },
-  { "F", tZONE,	-HOUR ( 6) },
-  { "G", tZONE,	-HOUR ( 7) },
-  { "H", tZONE,	-HOUR ( 8) },
-  { "I", tZONE,	-HOUR ( 9) },
-  { "K", tZONE,	-HOUR (10) },
-  { "L", tZONE,	-HOUR (11) },
-  { "M", tZONE,	-HOUR (12) },
-  { "N", tZONE,	 HOUR ( 1) },
-  { "O", tZONE,	 HOUR ( 2) },
-  { "P", tZONE,	 HOUR ( 3) },
-  { "Q", tZONE,	 HOUR ( 4) },
-  { "R", tZONE,	 HOUR ( 5) },
-  { "S", tZONE,	 HOUR ( 6) },
-  { "T", tZONE,	 HOUR ( 7) },
-  { "U", tZONE,	 HOUR ( 8) },
-  { "V", tZONE,	 HOUR ( 9) },
-  { "W", tZONE,	 HOUR (10) },
-  { "X", tZONE,	 HOUR (11) },
-  { "Y", tZONE,	 HOUR (12) },
-  { "Z", tZONE,	 HOUR ( 0) },
-  { 0, 0, 0 }
-};
-
-
-
-static int
-to_hour (int hours, int meridian)
-{
-  switch (meridian)
-    {
-    case MER24:
-      return 0 <= hours && hours < 24 ? hours : -1;
-    case MERam:
-      return 0 < hours && hours < 12 ? hours : hours == 12 ? 0 : -1;
-    case MERpm:
-      return 0 < hours && hours < 12 ? hours + 12 : hours == 12 ? 12 : -1;
-    default:
-      abort ();
-    }
-  /* NOTREACHED */
-}
-
-static int
-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 (textyear.digits == 2)
-    year += year < 69 ? 2000 : 1900;
-
-  return year;
-}
-
-static table const *
-lookup_zone (parser_control const *pc, char const *name)
-{
-  table const *tp;
-
-  /* Try local zone abbreviations first; they're more likely to be right.  */
-  for (tp = pc->local_time_zone_table; tp->name; tp++)
-    if (strcmp (name, tp->name) == 0)
-      return tp;
-
-  for (tp = time_zone_table; tp->name; tp++)
-    if (strcmp (name, tp->name) == 0)
-      return tp;
-
-  return 0;
-}
-
-#if ! HAVE_TM_GMTOFF
-/* Yield the difference between *A and *B,
-   measured in seconds, ignoring leap seconds.
-   The body of this function is taken directly from the GNU C Library;
-   see src/strftime.c.  */
-static int
-tm_diff (struct tm const *a, struct tm const *b)
-{
-  /* Compute intervening leap days correctly even if year is negative.
-     Take care to avoid int overflow in leap day calculations,
-     but it's OK to assume that A and B are close to each other.  */
-  int a4 = (a->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (a->tm_year & 3);
-  int b4 = (b->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (b->tm_year & 3);
-  int a100 = a4 / 25 - (a4 % 25 < 0);
-  int b100 = b4 / 25 - (b4 % 25 < 0);
-  int a400 = a100 >> 2;
-  int b400 = b100 >> 2;
-  int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400);
-  int years = a->tm_year - b->tm_year;
-  int days = (365 * years + intervening_leap_days
-	      + (a->tm_yday - b->tm_yday));
-  return (60 * (60 * (24 * days + (a->tm_hour - b->tm_hour))
-		+ (a->tm_min - b->tm_min))
-	  + (a->tm_sec - b->tm_sec));
-}
-#endif /* ! HAVE_TM_GMTOFF */
-
-static table const *
-lookup_word (parser_control const *pc, char *word)
-{
-  char *p;
-  char *q;
-  size_t wordlen;
-  table const *tp;
-  int i;
-  int abbrev;
-
-  /* Make it uppercase.  */
-  for (p = word; *p; p++)
-    if (ISLOWER ((unsigned char) *p))
-      *p = toupper ((unsigned char) *p);
-
-  for (tp = meridian_table; tp->name; tp++)
-    if (strcmp (word, tp->name) == 0)
-      return tp;
-
-  /* See if we have an abbreviation for a month. */
-  wordlen = strlen (word);
-  abbrev = wordlen == 3 || (wordlen == 4 && word[3] == '.');
-
-  for (tp = month_and_day_table; tp->name; tp++)
-    if ((abbrev ? strncmp (word, tp->name, 3) : strcmp (word, tp->name)) == 0)
-      return tp;
-
-  if ((tp = lookup_zone (pc, word)))
-    return tp;
-
-  if (strcmp (word, dst_table[0].name) == 0)
-    return dst_table;
-
-  for (tp = time_units_table; tp->name; tp++)
-    if (strcmp (word, tp->name) == 0)
-      return tp;
-
-  /* Strip off any plural and try the units table again. */
-  if (word[wordlen - 1] == 'S')
-    {
-      word[wordlen - 1] = '\0';
-      for (tp = time_units_table; tp->name; tp++)
-	if (strcmp (word, tp->name) == 0)
-	  return tp;
-      word[wordlen - 1] = 'S';	/* For "this" in relative_time_table.  */
-    }
-
-  for (tp = relative_time_table; tp->name; tp++)
-    if (strcmp (word, tp->name) == 0)
-      return tp;
-
-  /* Military time zones. */
-  if (wordlen == 1)
-    for (tp = military_table; tp->name; tp++)
-      if (word[0] == tp->name[0])
-	return tp;
-
-  /* Drop out any periods and try the time zone table again. */
-  for (i = 0, p = q = word; (*p = *q); q++)
-    if (*q == '.')
-      i = 1;
-    else
-      p++;
-  if (i && (tp = lookup_zone (pc, word)))
-    return tp;
-
-  return 0;
-}
-
-static int
-yylex (YYSTYPE *lvalp, parser_control *pc)
-{
-  unsigned char c;
-  int count;
-
-  for (;;)
-    {
-      while (c = *pc->input, ISSPACE (c))
-	pc->input++;
-
-      if (ISDIGIT (c) || c == '-' || c == '+')
-	{
-	  char const *p;
-	  int sign;
-	  int value;
-	  if (c == '-' || c == '+')
-	    {
-	      sign = c == '-' ? -1 : 1;
-	      c = *++pc->input;
-	      if (! ISDIGIT (c))
-		/* skip the '-' sign */
-		continue;
-	    }
-	  else
-	    sign = 0;
-	  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;
-	}
-
-      if (ISALPHA (c))
-	{
-	  char buff[20];
-	  char *p = buff;
-	  table const *tp;
-
-	  do
-	    {
-	      if (p < buff + sizeof buff - 1)
-		*p++ = c;
-	      c = *++pc->input;
-	    }
-	  while (ISALPHA (c) || c == '.');
-
-	  *p = '\0';
-	  tp = lookup_word (pc, buff);
-	  if (! tp)
-	    return '?';
-	  lvalp->intval = tp->value;
-	  return tp->type;
-	}
-
-      if (c != '(')
-	return *pc->input++;
-      count = 0;
-      do
-	{
-	  c = *pc->input++;
-	  if (c == '\0')
-	    return c;
-	  if (c == '(')
-	    count++;
-	  else if (c == ')')
-	    count--;
-	}
-      while (count > 0);
-    }
-}
-
-/* Do nothing if the parser reports an error.  */
-static int
-yyerror (char *s ATTRIBUTE_UNUSED)
-{
-  return 0;
-}
-
-/* Parse a date/time string P.  Return the corresponding time_t value,
-   or (time_t) -1 if there is an error.  P can be an incomplete or
-   relative time specification; if so, use *NOW as the basis for the
-   returned time.  */
-time_t
-get_date (const char *p, const time_t *now)
-{
-  time_t Start = now ? *now : time (0);
-  struct tm *tmp = localtime (&Start);
-  struct tm tm;
-  struct tm tm0;
-  parser_control pc;
-
-  if (! tmp)
-    return -1;
-
-  pc.input = p;
-  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;
-  pc.minutes = tmp->tm_min;
-  pc.seconds = tmp->tm_sec;
-  tm.tm_isdst = tmp->tm_isdst;
-
-  pc.meridian = MER24;
-  pc.rel_seconds = 0;
-  pc.rel_minutes = 0;
-  pc.rel_hour = 0;
-  pc.rel_day = 0;
-  pc.rel_month = 0;
-  pc.rel_year = 0;
-  pc.dates_seen = 0;
-  pc.days_seen = 0;
-  pc.rels_seen = 0;
-  pc.times_seen = 0;
-  pc.local_zones_seen = 0;
-  pc.zones_seen = 0;
-
-#if HAVE_STRUCT_TM_TM_ZONE
-  pc.local_time_zone_table[0].name = tmp->tm_zone;
-  pc.local_time_zone_table[0].type = tLOCAL_ZONE;
-  pc.local_time_zone_table[0].value = tmp->tm_isdst;
-  pc.local_time_zone_table[1].name = 0;
-
-  /* Probe the names used in the next three calendar quarters, looking
-     for a tm_isdst different from the one we already have.  */
-  {
-    int quarter;
-    for (quarter = 1; quarter <= 3; quarter++)
-      {
-	time_t probe = Start + quarter * (90 * 24 * 60 * 60);
-	struct tm *probe_tm = localtime (&probe);
-	if (probe_tm && probe_tm->tm_zone
-	    && probe_tm->tm_isdst != pc.local_time_zone_table[0].value)
-	  {
-	      {
-		pc.local_time_zone_table[1].name = probe_tm->tm_zone;
-		pc.local_time_zone_table[1].type = tLOCAL_ZONE;
-		pc.local_time_zone_table[1].value = probe_tm->tm_isdst;
-		pc.local_time_zone_table[2].name = 0;
-	      }
-	    break;
-	  }
-      }
-  }
-#else
-#if HAVE_TZNAME
-  {
-# ifndef tzname
-    extern char *tzname[];
-# endif
-    int i;
-    for (i = 0; i < 2; i++)
-      {
-	pc.local_time_zone_table[i].name = tzname[i];
-	pc.local_time_zone_table[i].type = tLOCAL_ZONE;
-	pc.local_time_zone_table[i].value = i;
-      }
-    pc.local_time_zone_table[i].name = 0;
-  }
-#else
-  pc.local_time_zone_table[0].name = 0;
-#endif
-#endif
-
-  if (pc.local_time_zone_table[0].name && pc.local_time_zone_table[1].name
-      && ! strcmp (pc.local_time_zone_table[0].name,
-		   pc.local_time_zone_table[1].name))
-    {
-      /* This locale uses the same abbrevation for standard and
-	 daylight times.  So if we see that abbreviation, we don't
-	 know whether it's daylight time.  */
-      pc.local_time_zone_table[0].value = -1;
-      pc.local_time_zone_table[1].name = 0;
-    }
-
-  if (yyparse (&pc) != 0
-      || 1 < pc.times_seen || 1 < pc.dates_seen || 1 < pc.days_seen
-      || 1 < (pc.local_zones_seen + pc.zones_seen)
-      || (pc.local_zones_seen && 1 < pc.local_isdst))
-    return -1;
-
-  tm.tm_year = to_year (pc.year) - TM_YEAR_BASE + pc.rel_year;
-  tm.tm_mon = pc.month - 1 + pc.rel_month;
-  tm.tm_mday = pc.day + pc.rel_day;
-  if (pc.times_seen || (pc.rels_seen && ! pc.dates_seen && ! pc.days_seen))
-    {
-      tm.tm_hour = to_hour (pc.hour, pc.meridian);
-      if (tm.tm_hour < 0)
-	return -1;
-      tm.tm_min = pc.minutes;
-      tm.tm_sec = pc.seconds;
-    }
-  else
-    {
-      tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
-    }
-
-  /* Let mktime deduce tm_isdst if we have an absolute time stamp,
-     or if the relative time stamp mentions days, months, or years.  */
-  if (pc.dates_seen | pc.days_seen | pc.times_seen | pc.rel_day
-      | pc.rel_month | pc.rel_year)
-    tm.tm_isdst = -1;
-
-  /* But if the input explicitly specifies local time with or without
-     DST, give mktime that information.  */
-  if (pc.local_zones_seen)
-    tm.tm_isdst = pc.local_isdst;
-
-  tm0 = tm;
-
-  Start = mktime (&tm);
-
-  if (Start == (time_t) -1)
-    {
-
-      /* Guard against falsely reporting errors near the time_t boundaries
-         when parsing times in other time zones.  For example, if the min
-         time_t value is 1970-01-01 00:00:00 UTC and we are 8 hours ahead
-         of UTC, then the min localtime value is 1970-01-01 08:00:00; if
-         we apply mktime to 1970-01-01 00:00:00 we will get an error, so
-         we apply mktime to 1970-01-02 08:00:00 instead and adjust the time
-         zone by 24 hours to compensate.  This algorithm assumes that
-         there is no DST transition within a day of the time_t boundaries.  */
-      if (pc.zones_seen)
-	{
-	  tm = tm0;
-	  if (tm.tm_year <= EPOCH_YEAR - TM_YEAR_BASE)
-	    {
-	      tm.tm_mday++;
-	      pc.time_zone += 24 * 60;
-	    }
-	  else
-	    {
-	      tm.tm_mday--;
-	      pc.time_zone -= 24 * 60;
-	    }
-	  Start = mktime (&tm);
-	}
-
-      if (Start == (time_t) -1)
-	return Start;
-    }
-
-  if (pc.days_seen && ! pc.dates_seen)
-    {
-      tm.tm_mday += ((pc.day_number - tm.tm_wday + 7) % 7
-		     + 7 * (pc.day_ordinal - (0 < pc.day_ordinal)));
-      tm.tm_isdst = -1;
-      Start = mktime (&tm);
-      if (Start == (time_t) -1)
-	return Start;
-    }
-
-  if (pc.zones_seen)
-    {
-      int delta = pc.time_zone * 60;
-#ifdef HAVE_TM_GMTOFF
-      delta -= tm.tm_gmtoff;
-#else
-      struct tm *gmt = gmtime (&Start);
-      if (! gmt)
-	return -1;
-      delta -= tm_diff (&tm, gmt);
-#endif
-      if ((Start < Start - delta) != (delta < 0))
-	return -1;	/* time_t overflow */
-      Start -= delta;
-    }
-
-  /* Add relative hours, minutes, and seconds.  Ignore leap seconds;
-     i.e. "+ 10 minutes" means 600 seconds, even if one of them is a
-     leap second.  Typically this is not what the user wants, but it's
-     too hard to do it the other way, because the time zone indicator
-     must be applied before relative times, and if mktime is applied
-     again the time zone will be lost.  */
-  {
-    time_t t0 = Start;
-    long d1 = 60 * 60 * (long) pc.rel_hour;
-    time_t t1 = t0 + d1;
-    long d2 = 60 * (long) pc.rel_minutes;
-    time_t t2 = t1 + d2;
-    int d3 = pc.rel_seconds;
-    time_t t3 = t2 + d3;
-    if ((d1 / (60 * 60) ^ pc.rel_hour)
-	| (d2 / 60 ^ pc.rel_minutes)
-	| ((t0 + d1 < t0) ^ (d1 < 0))
-	| ((t1 + d2 < t1) ^ (d2 < 0))
-	| ((t2 + d3 < t2) ^ (d3 < 0)))
-      return -1;
-    Start = t3;
-  }
-
-  return Start;
-}
-
-#if TEST
-
-#include <stdio.h>
-
-int
-main (int ac, char **av)
-{
-  char buff[BUFSIZ];
-  time_t d;
-
-  printf ("Enter date, or blank line to exit.\n\t> ");
-  fflush (stdout);
-
-  buff[BUFSIZ - 1] = 0;
-  while (fgets (buff, BUFSIZ - 1, stdin) && buff[0])
-    {
-      d = get_date (buff, 0);
-      if (d == (time_t) -1)
-	printf ("Bad format - couldn't convert.\n");
-      else
-	printf ("%s", ctime (&d));
-      printf ("\t> ");
-      fflush (stdout);
-    }
-  return 0;
-}
-#endif /* defined TEST */

+ 0 - 366
lib/human.c

@@ -1,366 +0,0 @@
-/* human.c -- print human readable file size
-
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software
-   Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-/* Originally contributed by lm@sgi.com;
-   --si, output block size selection, and large file support
-   added by eggert@twinsun.com.  */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <stdio.h>
-
-#if HAVE_LIMITS_H
-# include <limits.h>
-#endif
-
-#if HAVE_STRING_H
-# include <string.h>
-#else
-# include <strings.h>
-#endif
-
-#ifndef CHAR_BIT
-# define CHAR_BIT 8
-#endif
-#if HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-
-#ifndef HAVE_DECL_GETENV
-"this configure-time declaration test was not run"
-#endif
-#if !HAVE_DECL_GETENV
-char *getenv ();
-#endif
-
-#if ENABLE_NLS
-# include <libintl.h>
-# define _(Text) gettext (Text)
-#else
-# define _(Text) Text
-#endif
-
-#include <argmatch.h>
-#include <error.h>
-#include <xstrtol.h>
-
-#include "human.h"
-
-static const char suffixes[] =
-{
-  0,	/* not used */
-  'K',	/* kibi ('k' for kilo is a special case) */
-  'M',	/* mega or mebi */
-  'G',	/* giga or gibi */
-  'T',	/* tera or tebi */
-  'P',	/* peta or pebi */
-  'E',	/* exa or exbi */
-  'Z',	/* zetta or 2**70 */
-  'Y'	/* yotta or 2**80 */
-};
-
-/* Generate into P[-1] (and possibly P[-2]) the proper suffix for
-   POWER and BASE.  Return the address of the generated suffix.  */
-static char *
-generate_suffix_backwards (char *p, int power, int base)
-{
-  char letter = suffixes[power];
-
-  if (base == 1000)
-    {
-      *--p = 'B';
-      if (power == 1)
-	letter = 'k';
-    }
-
-  *--p = letter;
-  return p;
-}
-
-/* If INEXACT_STYLE is not human_round_to_even, and if easily
-   possible, adjust VALUE according to the style.  */
-static double
-adjust_value (enum human_inexact_style inexact_style, double value)
-{
-  /* Do not use the floor or ceil functions, as that would mean
-     linking with the standard math library, which is a porting pain.
-     So leave the value alone if it is too large to easily round.  */
-  if (inexact_style != human_round_to_even && value < (uintmax_t) -1)
-    {
-      uintmax_t u = value;
-      value = u + (inexact_style == human_ceiling && u != value);
-    }
-
-  return value;
-}
-
-/* Like human_readable_inexact, except always round to even.  */
-char *
-human_readable (uintmax_t n, char *buf,
-		int from_block_size, int output_block_size)
-{
-  return human_readable_inexact (n, buf, from_block_size, output_block_size,
-				 human_round_to_even);
-}
-
-/* Convert N to a human readable format in BUF.
-
-   N is expressed in units of FROM_BLOCK_SIZE.  FROM_BLOCK_SIZE must
-   be nonnegative.
-
-   OUTPUT_BLOCK_SIZE must be nonzero.  If it is positive, use units of
-   OUTPUT_BLOCK_SIZE in the output number.
-
-   Use INEXACT_STYLE to determine whether to take the ceiling or floor
-   of any result that cannot be expressed exactly.
-
-   If OUTPUT_BLOCK_SIZE is negative, use a format like "127K" if
-   possible, using powers of -OUTPUT_BLOCK_SIZE; otherwise, use
-   ordinary decimal format.  Normally -OUTPUT_BLOCK_SIZE is either
-   1000 or 1024; it must be at least 2.  Most people visually process
-   strings of 3-4 digits effectively, but longer strings of digits are
-   more prone to misinterpretation.  Hence, converting to an
-   abbreviated form usually improves readability.  Use a suffix
-   indicating which power is being used.  For example, assuming
-   -OUTPUT_BLOCK_SIZE is 1024, 8500 would be converted to 8.3K,
-   133456345 to 127M, 56990456345 to 53G, and so on.  Numbers smaller
-   than -OUTPUT_BLOCK_SIZE aren't modified.  If -OUTPUT_BLOCK_SIZE is
-   1024, append a "B" after any size letter.  */
-
-char *
-human_readable_inexact (uintmax_t n, char *buf,
-			int from_block_size, int output_block_size,
-			enum human_inexact_style inexact_style)
-{
-  uintmax_t amt;
-  int base;
-  int to_block_size;
-  int tenths = 0;
-  int power;
-  char *p;
-
-  /* 0 means adjusted N == AMT.TENTHS;
-     1 means AMT.TENTHS < adjusted N < AMT.TENTHS + 0.05;
-     2 means adjusted N == AMT.TENTHS + 0.05;
-     3 means AMT.TENTHS + 0.05 < adjusted N < AMT.TENTHS + 0.1.  */
-  int rounding = 0;
-
-  if (output_block_size < 0)
-    {
-      base = -output_block_size;
-      to_block_size = 1;
-    }
-  else
-    {
-      base = 0;
-      to_block_size = output_block_size;
-    }
-
-  p = buf + LONGEST_HUMAN_READABLE;
-  *p = '\0';
-
-#ifdef lint
-  /* Suppress `used before initialized' warning.  */
-  power = 0;
-#endif
-
-  /* Adjust AMT out of FROM_BLOCK_SIZE units and into TO_BLOCK_SIZE units.  */
-
-  {
-    int multiplier;
-    int divisor;
-    int r2;
-    int r10;
-    if (to_block_size <= from_block_size
-	? (from_block_size % to_block_size != 0
-	   || (multiplier = from_block_size / to_block_size,
-	       (amt = n * multiplier) / multiplier != n))
-	: (from_block_size == 0
-	   || to_block_size % from_block_size != 0
-	   || (divisor = to_block_size / from_block_size,
-	       r10 = (n % divisor) * 10,
-	       r2 = (r10 % divisor) * 2,
-	       amt = n / divisor,
-	       tenths = r10 / divisor,
-	       rounding = r2 < divisor ? 0 < r2 : 2 + (divisor < r2),
-	       0)))
-      {
-	/* Either the result cannot be computed easily using uintmax_t,
-	   or from_block_size is zero.  Fall back on floating point.
-	   FIXME: This can yield answers that are slightly off.  */
-
-	double damt = n * (from_block_size / (double) to_block_size);
-
-	if (! base)
-	  sprintf (buf, "%.0f", adjust_value (inexact_style, damt));
-	else
-	  {
-	    char suffix[3];
-	    char const *psuffix;
-	    double e = 1;
-	    power = 0;
-
-	    do
-	      {
-		e *= base;
-		power++;
-	      }
-	    while (e * base <= damt && power < sizeof suffixes - 1);
-
-	    damt /= e;
-
-	    suffix[2] = '\0';
-	    psuffix = generate_suffix_backwards (suffix + 2, power, base);
-	    sprintf (buf, "%.1f%s",
-		     adjust_value (inexact_style, damt), psuffix);
-	    if (4 + (base == 1000) < strlen (buf))
-	      sprintf (buf, "%.0f%s",
-		       adjust_value (inexact_style, damt * 10) / 10, psuffix);
-	  }
-
-	return buf;
-      }
-  }
-
-  /* Use power of BASE notation if adjusted AMT is large enough.  */
-
-  if (base && base <= amt)
-    {
-      power = 0;
-
-      do
-	{
-	  int r10 = (amt % base) * 10 + tenths;
-	  int r2 = (r10 % base) * 2 + (rounding >> 1);
-	  amt /= base;
-	  tenths = r10 / base;
-	  rounding = (r2 < base
-		      ? 0 < r2 + rounding
-		      : 2 + (base < r2 + rounding));
-	  power++;
-	}
-      while (base <= amt && power < sizeof suffixes - 1);
-
-      p = generate_suffix_backwards (p, power, base);
-
-      if (amt < 10)
-	{
-	  if (2 * (1 - (int) inexact_style)
-	      < rounding + (tenths & (inexact_style == human_round_to_even)))
-	    {
-	      tenths++;
-	      rounding = 0;
-
-	      if (tenths == 10)
-		{
-		  amt++;
-		  tenths = 0;
-		}
-	    }
-
-	  if (amt < 10)
-	    {
-	      *--p = '0' + tenths;
-	      *--p = '.';
-	      tenths = rounding = 0;
-	    }
-	}
-    }
-
-  if (inexact_style == human_ceiling
-      ? 0 < tenths + rounding
-      : inexact_style == human_round_to_even
-      ? 5 < tenths + (2 < rounding + (amt & 1))
-      : /* inexact_style == human_floor */ 0)
-    {
-      amt++;
-
-      if (amt == base && power < sizeof suffixes - 1)
-	{
-	  *p = suffixes[power + 1];
-	  *--p = '0';
-	  *--p = '.';
-	  amt = 1;
-	}
-    }
-
-  do
-    *--p = '0' + (int) (amt % 10);
-  while ((amt /= 10) != 0);
-
-  return p;
-}
-
-
-/* The default block size used for output.  This number may change in
-   the future as disks get larger.  */
-#ifndef DEFAULT_BLOCK_SIZE
-# define DEFAULT_BLOCK_SIZE 1024
-#endif
-
-static char const *const block_size_args[] = { "human-readable", "si", 0 };
-static int const block_size_types[] = { -1024, -1000 };
-
-static int
-default_block_size (void)
-{
-  return getenv ("POSIXLY_CORRECT") ? 512 : DEFAULT_BLOCK_SIZE;
-}
-
-static strtol_error
-humblock (char const *spec, int *block_size)
-{
-  int i;
-
-  if (! spec && ! (spec = getenv ("BLOCK_SIZE")))
-    *block_size = default_block_size ();
-  else if (0 <= (i = ARGMATCH (spec, block_size_args, block_size_types)))
-    *block_size = block_size_types[i];
-  else
-    {
-      char *ptr;
-      unsigned long val;
-      strtol_error e = xstrtoul (spec, &ptr, 0, &val, "eEgGkKmMpPtTyYzZ0");
-      if (e != LONGINT_OK)
-	return e;
-      if (*ptr)
-	return LONGINT_INVALID_SUFFIX_CHAR;
-      if ((int) val < 0 || val != (int) val)
-	return LONGINT_OVERFLOW;
-      *block_size = (int) val;
-    }
-
-  return LONGINT_OK;
-}
-
-void
-human_block_size (char const *spec, int report_errors, int *block_size)
-{
-  strtol_error e = humblock (spec, block_size);
-  if (*block_size == 0)
-    {
-      *block_size = default_block_size ();
-      e = LONGINT_INVALID;
-    }
-  if (e != LONGINT_OK && report_errors)
-    STRTOL_FATAL_ERROR (spec, _("block size"), e);
-}

+ 0 - 46
lib/human.h

@@ -1,46 +0,0 @@
-#ifndef HUMAN_H_
-# define HUMAN_H_ 1
-
-# if HAVE_CONFIG_H
-#  include <config.h>
-# endif
-
-# if HAVE_INTTYPES_H
-#  include <inttypes.h>
-# endif
-
-# if HAVE_LIMITS_H
-#  include <limits.h>
-# endif
-# ifndef CHAR_BIT
-#  define CHAR_BIT 8
-# endif
-
-/* A conservative bound on the maximum length of a human-readable string.
-   The output can be the product of the largest uintmax_t and the largest int,
-   so add their sizes before converting to a bound on digits.  */
-# define LONGEST_HUMAN_READABLE ((sizeof (uintmax_t) + sizeof (int)) \
-				 * CHAR_BIT / 3)
-
-# ifndef PARAMS
-#  if defined PROTOTYPES || (defined __STDC__ && __STDC__)
-#   define PARAMS(Args) Args
-#  else
-#   define PARAMS(Args) ()
-#  endif
-# endif
-
-enum human_inexact_style
-{
-  human_floor = -1,
-  human_round_to_even = 0,
-  human_ceiling = 1
-};
-
-char *human_readable PARAMS ((uintmax_t, char *, int, int));
-char *human_readable_inexact PARAMS ((uintmax_t, char *, int, int,
-				      enum human_inexact_style));
-
-void human_block_size PARAMS ((char const *, int, int *));
-
-#endif /* HUMAN_H_ */

+ 0 - 9
lib/lchown.h

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

+ 0 - 57
lib/print-copyr.c

@@ -1,57 +0,0 @@
-/* Print a copyright notice suitable for the current locale.
-   Copyright (C) 2001 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-/* Written by Paul Eggert.  */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "print-copyr.h"
-#include <stdio.h>
-
-#if ENABLE_NLS
-# include "unicodeio.h"
-#else
-# define unicode_to_mb(code, callback, error_callback, callback_arg) \
-    error_callback (code, callback_arg)
-#endif
-
-#define COPYRIGHT_SIGN 0x00A9
-
-/* Print "(C)".  */
-
-static int
-print_parenthesized_c (unsigned int code, void *callback_arg)
-{
-  FILE *stream = callback_arg;
-  return fputs ("(C)", stream);
-}
-
-/* Print "Copyright (C) " followed by NOTICE and then a newline,
-   transliterating "(C)" to an actual copyright sign (C-in-a-circle)
-   if possible.  */
-
-void
-print_copyright (char const *notice)
-{
-  fputs ("Copyright ", stdout);
-  unicode_to_mb (COPYRIGHT_SIGN, print_unicode_char, print_parenthesized_c,
-		 stdout);
-  fputc (' ', stdout);
-  puts (notice);
-}

+ 0 - 9
lib/print-copyr.h

@@ -1,9 +0,0 @@
-# ifndef PARAMS
-#  if PROTOTYPES || (defined (__STDC__) && __STDC__)
-#   define PARAMS(args) args
-#  else
-#   define PARAMS(args) ()
-#  endif
-# endif
-
-void print_copyright PARAMS((char const *));

+ 0 - 658
lib/quotearg.c

@@ -1,658 +0,0 @@
-/* quotearg.c - quote arguments for output
-   Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-/* Written by Paul Eggert <eggert@twinsun.com> */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#if HAVE_STDDEF_H
-# include <stddef.h>  /* For the definition of size_t on windows w/MSVC.  */
-#endif
-#include <sys/types.h>
-#include <quotearg.h>
-#include <xalloc.h>
-
-#include <ctype.h>
-
-#if ENABLE_NLS
-# include <libintl.h>
-# define _(text) gettext (text)
-#else
-# define _(text) text
-#endif
-#define N_(text) text
-
-#if HAVE_LIMITS_H
-# include <limits.h>
-#endif
-#ifndef CHAR_BIT
-# define CHAR_BIT 8
-#endif
-#ifndef SIZE_MAX
-# define SIZE_MAX ((size_t) -1)
-#endif
-#ifndef UCHAR_MAX
-# define UCHAR_MAX ((unsigned char) -1)
-#endif
-#ifndef UINT_MAX
-# define UINT_MAX ((unsigned int) -1)
-#endif
-
-#if HAVE_C_BACKSLASH_A
-# define ALERT_CHAR '\a'
-#else
-# define ALERT_CHAR '\7'
-#endif
-
-#if HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-
-#if HAVE_STRING_H
-# include <string.h>
-#endif
-
-#if HAVE_WCHAR_H
-
-/* BSD/OS 4.1 wchar.h requires FILE and struct tm to be declared.  */
-# include <stdio.h>
-# include <time.h>
-
-# include <wchar.h>
-#endif
-
-#if !HAVE_MBRTOWC
-/* Disable multibyte processing entirely.  Since MB_CUR_MAX is 1, the
-   other macros are defined only for documentation and to satisfy C
-   syntax.  */
-# undef MB_CUR_MAX
-# define MB_CUR_MAX 1
-# define mbrtowc(pwc, s, n, ps) ((*(pwc) = *(s)) != 0)
-# define mbsinit(ps) 1
-# define iswprint(wc) ISPRINT ((unsigned char) (wc))
-#endif
-
-#ifndef iswprint
-# if HAVE_WCTYPE_H
-#  include <wctype.h>
-# endif
-# if !defined iswprint && !HAVE_ISWPRINT
-#  define iswprint(wc) 1
-# endif
-#endif
-
-#define INT_BITS (sizeof (int) * CHAR_BIT)
-
-#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
-# define IN_CTYPE_DOMAIN(c) 1
-#else
-# define IN_CTYPE_DOMAIN(c) isascii(c)
-#endif
-
-/* Undefine to protect against the definition in wctype.h of solaris2.6.   */
-#undef ISPRINT
-#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c))
-
-struct quoting_options
-{
-  /* Basic quoting style.  */
-  enum quoting_style style;
-
-  /* Quote the characters indicated by this bit vector even if the
-     quoting style would not normally require them to be quoted.  */
-  int quote_these_too[(UCHAR_MAX / INT_BITS) + 1];
-};
-
-/* Names of quoting styles.  */
-char const *const quoting_style_args[] =
-{
-  "literal",
-  "shell",
-  "shell-always",
-  "c",
-  "escape",
-  "locale",
-  "clocale",
-  0
-};
-
-/* Correspondences to quoting style names.  */
-enum quoting_style const quoting_style_vals[] =
-{
-  literal_quoting_style,
-  shell_quoting_style,
-  shell_always_quoting_style,
-  c_quoting_style,
-  escape_quoting_style,
-  locale_quoting_style,
-  clocale_quoting_style
-};
-
-/* The default quoting options.  */
-static struct quoting_options default_quoting_options;
-
-/* Allocate a new set of quoting options, with contents initially identical
-   to O if O is not null, or to the default if O is null.
-   It is the caller's responsibility to free the result.  */
-struct quoting_options *
-clone_quoting_options (struct quoting_options *o)
-{
-  struct quoting_options *p
-    = (struct quoting_options *) xmalloc (sizeof (struct quoting_options));
-  *p = *(o ? o : &default_quoting_options);
-  return p;
-}
-
-/* Get the value of O's quoting style.  If O is null, use the default.  */
-enum quoting_style
-get_quoting_style (struct quoting_options *o)
-{
-  return (o ? o : &default_quoting_options)->style;
-}
-
-/* In O (or in the default if O is null),
-   set the value of the quoting style to S.  */
-void
-set_quoting_style (struct quoting_options *o, enum quoting_style s)
-{
-  (o ? o : &default_quoting_options)->style = s;
-}
-
-/* In O (or in the default if O is null),
-   set the value of the quoting options for character C to I.
-   Return the old value.  Currently, the only values defined for I are
-   0 (the default) and 1 (which means to quote the character even if
-   it would not otherwise be quoted).  */
-int
-set_char_quoting (struct quoting_options *o, char c, int i)
-{
-  unsigned char uc = c;
-  int *p = (o ? o : &default_quoting_options)->quote_these_too + uc / INT_BITS;
-  int shift = uc % INT_BITS;
-  int r = (*p >> shift) & 1;
-  *p ^= ((i & 1) ^ r) << shift;
-  return r;
-}
-
-/* MSGID approximates a quotation mark.  Return its translation if it
-   has one; otherwise, return either it or "\"", depending on S.  */
-static char const *
-gettext_quote (char const *msgid, enum quoting_style s)
-{
-  char const *translation = _(msgid);
-  if (translation == msgid && s == clocale_quoting_style)
-    translation = "\"";
-  return translation;
-}
-
-/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
-   argument ARG (of size ARGSIZE), using QUOTING_STYLE and the
-   non-quoting-style part of O to control quoting.
-   Terminate the output with a null character, and return the written
-   size of the output, not counting the terminating null.
-   If BUFFERSIZE is too small to store the output string, return the
-   value that would have been returned had BUFFERSIZE been large enough.
-   If ARGSIZE is -1, use the string length of the argument for ARGSIZE.
-
-   This function acts like quotearg_buffer (BUFFER, BUFFERSIZE, ARG,
-   ARGSIZE, O), except it uses QUOTING_STYLE instead of the quoting
-   style specified by O, and O may not be null.  */
-
-static size_t
-quotearg_buffer_restyled (char *buffer, size_t buffersize,
-			  char const *arg, size_t argsize,
-			  enum quoting_style quoting_style,
-			  struct quoting_options const *o)
-{
-  size_t i;
-  size_t len = 0;
-  char const *quote_string = 0;
-  size_t quote_string_len = 0;
-  int backslash_escapes = 0;
-  int unibyte_locale = MB_CUR_MAX == 1;
-
-#define STORE(c) \
-    do \
-      { \
-	if (len < buffersize) \
-	  buffer[len] = (c); \
-	len++; \
-      } \
-    while (0)
-
-  switch (quoting_style)
-    {
-    case c_quoting_style:
-      STORE ('"');
-      backslash_escapes = 1;
-      quote_string = "\"";
-      quote_string_len = 1;
-      break;
-
-    case escape_quoting_style:
-      backslash_escapes = 1;
-      break;
-
-    case locale_quoting_style:
-    case clocale_quoting_style:
-      {
-	/* Get translations for open and closing quotation marks.
-
-	   The message catalog should translate "`" to a left
-	   quotation mark suitable for the locale, and similarly for
-	   "'".  If the catalog has no translation,
-	   locale_quoting_style quotes `like this', and
-	   clocale_quoting_style quotes "like this".
-
-	   For example, an American English Unicode locale should
-	   translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-	   should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-	   MARK).  A British English Unicode locale should instead
-	   translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
-	   U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.  */
-
-	char const *left = gettext_quote (N_("`"), quoting_style);
-	char const *right = gettext_quote (N_("'"), quoting_style);
-	for (quote_string = left; *quote_string; quote_string++)
-	  STORE (*quote_string);
-	backslash_escapes = 1;
-	quote_string = right;
-	quote_string_len = strlen (quote_string);
-      }
-      break;
-
-    case shell_always_quoting_style:
-      STORE ('\'');
-      quote_string = "'";
-      quote_string_len = 1;
-      break;
-
-    default:
-      break;
-    }
-
-  for (i = 0;  ! (argsize == (size_t) -1 ? arg[i] == '\0' : i == argsize);  i++)
-    {
-      unsigned char c;
-      unsigned char esc;
-
-      if (backslash_escapes
-	  && quote_string_len
-	  && i + quote_string_len <= argsize
-	  && memcmp (arg + i, quote_string, quote_string_len) == 0)
-	STORE ('\\');
-
-      c = arg[i];
-      switch (c)
-	{
-	case '\0':
-	  if (backslash_escapes)
-	    {
-	      STORE ('\\');
-	      STORE ('0');
-	      STORE ('0');
-	      c = '0';
-	    }
-	  break;
-
-	case '?':
-	  switch (quoting_style)
-	    {
-	    case shell_quoting_style:
-	      goto use_shell_always_quoting_style;
-
-	    case c_quoting_style:
-	      if (i + 2 < argsize && arg[i + 1] == '?')
-		switch (arg[i + 2])
-		  {
-		  case '!': case '\'':
-		  case '(': case ')': case '-': case '/':
-		  case '<': case '=': case '>':
-		    /* Escape the second '?' in what would otherwise be
-		       a trigraph.  */
-		    i += 2;
-		    c = arg[i + 2];
-		    STORE ('?');
-		    STORE ('\\');
-		    STORE ('?');
-		    break;
-		  }
-	      break;
-
-	    default:
-	      break;
-	    }
-	  break;
-
-	case ALERT_CHAR: esc = 'a'; goto c_escape;
-	case '\b': esc = 'b'; goto c_escape;
-	case '\f': esc = 'f'; goto c_escape;
-	case '\n': esc = 'n'; goto c_and_shell_escape;
-	case '\r': esc = 'r'; goto c_and_shell_escape;
-	case '\t': esc = 't'; goto c_and_shell_escape;
-	case '\v': esc = 'v'; goto c_escape;
-	case '\\': esc = c; goto c_and_shell_escape;
-
-	c_and_shell_escape:
-	  if (quoting_style == shell_quoting_style)
-	    goto use_shell_always_quoting_style;
-	c_escape:
-	  if (backslash_escapes)
-	    {
-	      c = esc;
-	      goto store_escape;
-	    }
-	  break;
-
-	case '#': case '~':
-	  if (i != 0)
-	    break;
-	  /* Fall through.  */
-	case ' ':
-	case '!': /* special in bash */
-	case '"': case '$': case '&':
-	case '(': case ')': case '*': case ';':
-	case '<': case '>': case '[':
-	case '^': /* special in old /bin/sh, e.g. SunOS 4.1.4 */
-	case '`': case '|':
-	  /* A shell special character.  In theory, '$' and '`' could
-	     be the first bytes of multibyte characters, which means
-	     we should check them with mbrtowc, but in practice this
-	     doesn't happen so it's not worth worrying about.  */
-	  if (quoting_style == shell_quoting_style)
-	    goto use_shell_always_quoting_style;
-	  break;
-
-	case '\'':
-	  switch (quoting_style)
-	    {
-	    case shell_quoting_style:
-	      goto use_shell_always_quoting_style;
-
-	    case shell_always_quoting_style:
-	      STORE ('\'');
-	      STORE ('\\');
-	      STORE ('\'');
-	      break;
-
-	    default:
-	      break;
-	    }
-	  break;
-
-	case '%': case '+': case ',': case '-': case '.': case '/':
-	case '0': case '1': case '2': case '3': case '4': case '5':
-	case '6': case '7': case '8': case '9': case ':': case '=':
-	case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
-	case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
-	case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
-	case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
-	case 'Y': case 'Z': case ']': case '_': case 'a': case 'b':
-	case 'c': case 'd': case 'e': case 'f': case 'g': case 'h':
-	case 'i': case 'j': case 'k': case 'l': case 'm': case 'n':
-	case 'o': case 'p': case 'q': case 'r': case 's': case 't':
-	case 'u': case 'v': case 'w': case 'x': case 'y': case 'z':
-	case '{': case '}':
-	  /* These characters don't cause problems, no matter what the
-	     quoting style is.  They cannot start multibyte sequences.  */
-	  break;
-
-	default:
-	  /* If we have a multibyte sequence, copy it until we reach
-	     its end, find an error, or come back to the initial shift
-	     state.  For C-like styles, if the sequence has
-	     unprintable characters, escape the whole sequence, since
-	     we can't easily escape single characters within it.  */
-	  {
-	    /* Length of multibyte sequence found so far.  */
-	    size_t m;
-
-	    int printable;
-
-	    if (unibyte_locale)
-	      {
-		m = 1;
-		printable = ISPRINT (c);
-	      }
-	    else
-	      {
-		mbstate_t mbstate;
-		memset (&mbstate, 0, sizeof mbstate);
-
-		m = 0;
-		printable = 1;
-		if (argsize == (size_t) -1)
-		  argsize = strlen (arg);
-
-		do
-		  {
-		    wchar_t w;
-		    size_t bytes = mbrtowc (&w, &arg[i + m],
-					    argsize - (i + m), &mbstate);
-		    if (bytes == 0)
-		      break;
-		    else if (bytes == (size_t) -1)
-		      {
-			printable = 0;
-			break;
-		      }
-		    else if (bytes == (size_t) -2)
-		      {
-			printable = 0;
-			while (i + m < argsize && arg[i + m])
-			  m++;
-			break;
-		      }
-		    else
-		      {
-			if (! iswprint (w))
-			  printable = 0;
-			m += bytes;
-		      }
-		  }
-		while (! mbsinit (&mbstate));
-	      }
-
-	    if (1 < m || (backslash_escapes && ! printable))
-	      {
-		/* Output a multibyte sequence, or an escaped
-		   unprintable unibyte character.  */
-		size_t ilim = i + m;
-
-		for (;;)
-		  {
-		    if (backslash_escapes && ! printable)
-		      {
-			STORE ('\\');
-			STORE ('0' + (c >> 6));
-			STORE ('0' + ((c >> 3) & 7));
-			c = '0' + (c & 7);
-		      }
-		    if (ilim <= i + 1)
-		      break;
-		    STORE (c);
-		    c = arg[++i];
-		  }
-
-		goto store_c;
-	      }
-	  }
-	}
-
-      if (! (backslash_escapes
-	     && o->quote_these_too[c / INT_BITS] & (1 << (c % INT_BITS))))
-	goto store_c;
-
-    store_escape:
-      STORE ('\\');
-
-    store_c:
-      STORE (c);
-    }
-
-  if (quote_string)
-    for (; *quote_string; quote_string++)
-      STORE (*quote_string);
-
-  if (len < buffersize)
-    buffer[len] = '\0';
-  return len;
-
- use_shell_always_quoting_style:
-  return quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
-				   shell_always_quoting_style, o);
-}
-
-/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
-   argument ARG (of size ARGSIZE), using O to control quoting.
-   If O is null, use the default.
-   Terminate the output with a null character, and return the written
-   size of the output, not counting the terminating null.
-   If BUFFERSIZE is too small to store the output string, return the
-   value that would have been returned had BUFFERSIZE been large enough.
-   If ARGSIZE is -1, use the string length of the argument for ARGSIZE.  */
-size_t
-quotearg_buffer (char *buffer, size_t buffersize,
-		 char const *arg, size_t argsize,
-		 struct quoting_options const *o)
-{
-  struct quoting_options const *p = o ? o : &default_quoting_options;
-  return quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
-				   p->style, p);
-}
-
-/* Use storage slot N to return a quoted version of argument ARG.
-   ARG is of size ARGSIZE, but if that is -1, ARG is a null-terminated string.
-   OPTIONS specifies the quoting options.
-   The returned value points to static storage that can be
-   reused by the next call to this function with the same value of N.
-   N must be nonnegative.  N is deliberately declared with type "int"
-   to allow for future extensions (using negative values).  */
-static char *
-quotearg_n_options (int n, char const *arg, size_t argsize,
-		    struct quoting_options const *options)
-{
-  /* Preallocate a slot 0 buffer, so that the caller can always quote
-     one small component of a "memory exhausted" message in slot 0.  */
-  static char slot0[256];
-  static unsigned int nslots = 1;
-  unsigned int n0 = n;
-  struct slotvec
-    {
-      size_t size;
-      char *val;
-    };
-  static struct slotvec slotvec0 = {sizeof slot0, slot0};
-  static struct slotvec *slotvec = &slotvec0;
-
-  if (n < 0)
-    abort ();
-
-  if (nslots <= n0)
-    {
-      unsigned int n1 = n0 + 1;
-      size_t s = n1 * sizeof *slotvec;
-
-      if (SIZE_MAX / UINT_MAX <= sizeof *slotvec
-	  && n1 != s / sizeof *slotvec)
-	xalloc_die ();
-
-      if (slotvec == &slotvec0)
-	{
-	  slotvec = (struct slotvec *) xmalloc (sizeof *slotvec);
-	  *slotvec = slotvec0;
-	}
-      slotvec = (struct slotvec *) xrealloc (slotvec, s);
-      memset (slotvec + nslots, 0, (n1 - nslots) * sizeof *slotvec);
-      nslots = n1;
-    }
-
-  {
-    size_t size = slotvec[n].size;
-    char *val = slotvec[n].val;
-    size_t qsize = quotearg_buffer (val, size, arg, argsize, options);
-
-    if (size <= qsize)
-      {
-	slotvec[n].size = size = qsize + 1;
-	slotvec[n].val = val = xrealloc (val == slot0 ? 0 : val, size);
-	quotearg_buffer (val, size, arg, argsize, options);
-      }
-
-    return val;
-  }
-}
-
-char *
-quotearg_n (int n, char const *arg)
-{
-  return quotearg_n_options (n, arg, (size_t) -1, &default_quoting_options);
-}
-
-char *
-quotearg (char const *arg)
-{
-  return quotearg_n (0, arg);
-}
-
-/* Return quoting options for STYLE, with no extra quoting.  */
-static struct quoting_options
-quoting_options_from_style (enum quoting_style style)
-{
-  struct quoting_options o;
-  o.style = style;
-  memset (o.quote_these_too, 0, sizeof o.quote_these_too);
-  return o;
-}
-
-char *
-quotearg_n_style (int n, enum quoting_style s, char const *arg)
-{
-  struct quoting_options const o = quoting_options_from_style (s);
-  return quotearg_n_options (n, arg, (size_t) -1, &o);
-}
-
-char *
-quotearg_n_style_mem (int n, enum quoting_style s,
-		      char const *arg, size_t argsize)
-{
-  struct quoting_options const o = quoting_options_from_style (s);
-  return quotearg_n_options (n, arg, argsize, &o);
-}
-
-char *
-quotearg_style (enum quoting_style s, char const *arg)
-{
-  return quotearg_n_style (0, s, arg);
-}
-
-char *
-quotearg_char (char const *arg, char ch)
-{
-  struct quoting_options options;
-  options = default_quoting_options;
-  set_char_quoting (&options, ch, 1);
-  return quotearg_n_options (0, arg, (size_t) -1, &options);
-}
-
-char *
-quotearg_colon (char const *arg)
-{
-  return quotearg_char (arg, ':');
-}

+ 0 - 100
lib/quotearg.h

@@ -1,100 +0,0 @@
-/* quotearg.h - quote arguments for output
-   Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-/* Written by Paul Eggert <eggert@twinsun.com> */
-
-/* Basic quoting styles.  */
-enum quoting_style
-  {
-    literal_quoting_style,	/* --quoting-style=literal */
-    shell_quoting_style,	/* --quoting-style=shell */
-    shell_always_quoting_style,	/* --quoting-style=shell-always */
-    c_quoting_style,		/* --quoting-style=c */
-    escape_quoting_style	/* --quoting-style=escape */
-  };
-
-/* For now, --quoting-style=literal is the default, but
-   this is planned to change to --quoting-style=shell in the future.  */
-#ifndef DEFAULT_QUOTING_STYLE
-# define DEFAULT_QUOTING_STYLE literal_quoting_style
-#endif
-
-/* Names of quoting styles and their corresponding values.  */
-extern char const *const quoting_style_args[];
-extern enum quoting_style const quoting_style_vals[];
-
-struct quoting_options;
-
-#ifndef PARAMS
-# if defined PROTOTYPES || defined __STDC__
-#  define PARAMS(Args) Args
-# else
-#  define PARAMS(Args) ()
-# endif
-#endif
-
-/* The functions listed below set and use a hidden variable
-   that contains the default quoting style options.  */
-
-/* Allocate a new set of quoting options, with contents initially identical
-   to O if O is not null, or to the default if O is null.
-   It is the caller's responsibility to free the result.  */
-struct quoting_options *clone_quoting_options
-   PARAMS ((struct quoting_options *o));
-
-/* Get the value of O's quoting style.  If O is null, use the default.  */
-enum quoting_style get_quoting_style PARAMS ((struct quoting_options *o));
-
-/* In O (or in the default if O is null),
-   set the value of the quoting style to S.  */
-void set_quoting_style PARAMS ((struct quoting_options *o,
-				enum quoting_style s));
-
-/* In O (or in the default if O is null),
-   set the value of the quoting options for character C to I.
-   Return the old value.  Currently, the only values defined for I are
-   0 (the default) and 1 (which means to quote the character even if
-   it would not otherwise be quoted).  */
-int set_char_quoting PARAMS ((struct quoting_options *o, char c, int i));
-
-/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
-   argument ARG (of size ARGSIZE), using O to control quoting.
-   If O is null, use the default.
-   Terminate the output with a null character, and return the written
-   size of the output, not counting the terminating null.
-   If BUFFERSIZE is too small to store the output string, return the
-   value that would have been returned had BUFFERSIZE been large enough.
-   If ARGSIZE is -1, use the string length of the argument for ARGSIZE.  */
-size_t quotearg_buffer PARAMS ((char *buffer, size_t buffersize,
-				char const *arg, size_t argsize,
-				struct quoting_options const *o));
-
-/* Use storage slot N to return a quoted version of the string ARG.
-   Use the default quoting options.
-   The returned value points to static storage that can be
-   reused by the next call to this function with the same value of N.
-   N must be nonnegative.  */
-char *quotearg_n PARAMS ((unsigned int n, char const *arg));
-
-/* Equivalent to quotearg_n (0, ARG).  */
-char *quotearg PARAMS ((char const *arg));
-
-/* Like quotearg (ARG), except also quote any instances of CH.  */
-char *quotearg_char PARAMS ((char const *arg, char ch));
-
-/* Equivalent to quotearg_char (ARG, ':').  */
-char *quotearg_colon PARAMS ((char const *arg));

+ 0 - 10
lib/safe-read.h

@@ -1,10 +0,0 @@
-#ifndef PARAMS
-# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
-#  define PARAMS(Args) Args
-# else
-#  define PARAMS(Args) ()
-# endif
-#endif
-
-ssize_t full_write PARAMS ((int desc, const char *ptr, size_t len));
-ssize_t safe_read PARAMS ((int desc, void *ptr, size_t len));

+ 0 - 129
lib/savedir.c

@@ -1,129 +0,0 @@
-/* savedir.c -- save the list of files in a directory in a string
-
-   Copyright 1990, 1997, 1998, 1999, 2000, 2001 Free Software
-   Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-/* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
-
-#if HAVE_DIRENT_H
-# include <dirent.h>
-#else
-# define dirent direct
-# if HAVE_SYS_NDIR_H
-#  include <sys/ndir.h>
-# endif
-# if HAVE_SYS_DIR_H
-#  include <sys/dir.h>
-# endif
-# if HAVE_NDIR_H
-#  include <ndir.h>
-# endif
-#endif
-
-#ifdef CLOSEDIR_VOID
-/* Fake a return value. */
-# define CLOSEDIR(d) (closedir (d), 0)
-#else
-# define CLOSEDIR(d) closedir (d)
-#endif
-
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#endif
-#ifndef NULL
-# define NULL 0
-#endif
-
-#include "savedir.h"
-#include "xalloc.h"
-
-/* Return a freshly allocated string containing the filenames
-   in directory DIR, separated by '\0' characters;
-   the end is marked by two '\0' characters in a row.
-   Return NULL (setting errno) if DIR cannot be opened, read, or closed.  */
-
-#ifndef NAME_SIZE_DEFAULT
-# define NAME_SIZE_DEFAULT 512
-#endif
-
-char *
-savedir (const char *dir)
-{
-  DIR *dirp;
-  struct dirent *dp;
-  char *name_space;
-  size_t allocated = NAME_SIZE_DEFAULT;
-  size_t used = 0;
-  int save_errno;
-
-  dirp = opendir (dir);
-  if (dirp == NULL)
-    return NULL;
-
-  name_space = xmalloc (allocated);
-
-  errno = 0;
-  while ((dp = readdir (dirp)) != NULL)
-    {
-      /* Skip "", ".", and "..".  "" is returned by at least one buggy
-         implementation: Solaris 2.4 readdir on NFS filesystems.  */
-      char const *entry = dp->d_name;
-      if (entry[entry[0] != '.' ? 0 : entry[1] != '.' ? 1 : 2] != '\0')
-	{
-	  size_t entry_size = strlen (entry) + 1;
-	  if (used + entry_size < used)
-	    xalloc_die ();
-	  if (allocated <= used + entry_size)
-	    {
-	      do
-		{
-		  if (2 * allocated < allocated)
-		    xalloc_die ();
-		  allocated *= 2;
-		}
-	      while (allocated <= used + entry_size);
-
-	      name_space = xrealloc (name_space, allocated);
-	    }
-	  memcpy (name_space + used, entry, entry_size);
-	  used += entry_size;
-	}
-    }
-  name_space[used] = '\0';
-  save_errno = errno;
-  if (CLOSEDIR (dirp) != 0)
-    save_errno = errno;
-  if (save_errno != 0)
-    {
-      free (name_space);
-      errno = save_errno;
-      return NULL;
-    }
-  return name_space;
-}

+ 0 - 14
lib/savedir.h

@@ -1,14 +0,0 @@
-#if !defined SAVEDIR_H_
-# define SAVEDIR_H_
-
-# ifndef PARAMS
-#  if defined PROTOTYPES || (defined __STDC__ && __STDC__)
-#   define PARAMS(Args) Args
-#  else
-#   define PARAMS(Args) ()
-#  endif
-# endif
-
-char *savedir PARAMS ((const char *dir));
-
-#endif

+ 0 - 101
lib/strtoimax.c

@@ -1,101 +0,0 @@
-/* Convert string representation of a number into an intmax_t value.
-
-   Copyright (C) 1999, 2001 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-/* Written by Paul Eggert. */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-
-#if HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-
-#ifndef PARAMS
-# if defined PROTOTYPES || defined __STDC__
-#  define PARAMS(Args) Args
-# else
-#  define PARAMS(Args) ()
-# endif
-#endif
-
-/* Verify a requirement at compile-time (unlike assert, which is runtime).  */
-#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; }
-
-#ifdef UNSIGNED
-# ifndef HAVE_DECL_STRTOUL
-"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
-
-#else
-
-# ifndef HAVE_DECL_STRTOL
-"this configure-time declaration test was not run"
-# endif
-# if !HAVE_DECL_STRTOL
-long strtol PARAMS ((char const *, char **, int));
-# endif
-# ifndef HAVE_DECL_STRTOLL
-"this configure-time declaration test was not run"
-# endif
-# if !HAVE_DECL_STRTOLL && HAVE_LONG_LONG
-long long strtoll PARAMS ((char const *, char **, int));
-# endif
-#endif
-
-#ifdef UNSIGNED
-# undef HAVE_LONG_LONG
-# define HAVE_LONG_LONG HAVE_UNSIGNED_LONG_LONG
-# define INT uintmax_t
-# define strtoimax strtoumax
-# define strtol strtoul
-# define strtoll strtoull
-#else
-# define INT intmax_t
-#endif
-
-INT
-strtoimax (char const *ptr, char **endptr, int base)
-{
-#if HAVE_LONG_LONG
-  verify (size_is_that_of_long_or_long_long,
-	  (sizeof (INT) == sizeof (long)
-	   || sizeof (INT) == sizeof (long long)));
-
-  if (sizeof (INT) != sizeof (long))
-    return strtoll (ptr, endptr, base);
-#else
-  verify (size_is_that_of_long,
-	  sizeof (INT) == sizeof (long));
-#endif
-
-  return strtol (ptr, endptr, base);
-}

+ 0 - 2
lib/strtoumax.c

@@ -1,2 +0,0 @@
-#define UNSIGNED 1
-#include "strtoimax.c"

+ 0 - 263
lib/unicodeio.c

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

+ 0 - 44
lib/unicodeio.h

@@ -1,44 +0,0 @@
-/* Unicode character output to streams with locale dependent encoding.
-
-   Copyright (C) 2000-2002 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU Library General Public License as published
-   by the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-   USA.  */
-
-#ifndef UNICODEIO_H
-# define UNICODEIO_H
-
-# include <stdio.h>
-
-# ifndef PARAMS
-#  if defined PROTOTYPES || (defined __STDC__ && __STDC__)
-#   define PARAMS(Args) Args
-#  else
-#   define PARAMS(Args) ()
-#  endif
-# endif
-
-/* Outputs the Unicode character CODE to the output stream STREAM.
-   Upon failure, exit if exit_on_error is true, otherwise output a fallback
-   notation.  */
-extern void print_unicode_char PARAMS ((FILE *stream, unsigned int code,
-					int exit_on_error));
-
-/* Simple success callback that outputs the converted string.
-   The STREAM is passed as callback_arg.  */
-extern long fwrite_success_callback PARAMS ((const char *buf, size_t buflen,
-					     void *callback_arg));
-
-#endif

+ 0 - 75
lib/waitpid.c

@@ -1,75 +0,0 @@
-/* Emulate waitpid on systems that just have wait.
-   Copyright 1994, 1995, 1998, 1999, 2007 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING.
-   If not, write to the Free Software Foundation, 
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
-
-#define WAITPID_CHILDREN 8
-static pid_t waited_pid[WAITPID_CHILDREN];
-static int waited_status[WAITPID_CHILDREN];
-
-pid_t
-waitpid (pid_t pid, int *stat_loc, int options)
-{
-  int i;
-  pid_t p;
-
-  if (!options && (pid == -1 || 0 < pid))
-    {
-      /* If we have already waited for this child, return it immediately.  */
-      for (i = 0;  i < WAITPID_CHILDREN;  i++)
-	{
-	  p = waited_pid[i];
-	  if (p && (p == pid || pid == -1))
-	    {
-	      waited_pid[i] = 0;
-	      goto success;
-	    }
-	}
-
-      /* The child has not returned yet; wait for it, accumulating status.  */
-      for (i = 0;  i < WAITPID_CHILDREN;  i++)
-	if (! waited_pid[i])
-	  {
-	    p = wait (&waited_status[i]);
-	    if (p < 0)
-	      return p;
-	    if (p == pid || pid == -1)
-	      goto success;
-	    waited_pid[i] = p;
-	  }
-    }
-
-  /* We cannot emulate this wait call, e.g. because of too many children.  */
-  errno = EINVAL;
-  return -1;
-
-success:
-  if (stat_loc)
-    *stat_loc = waited_status[i];
-  return p;
-}

+ 0 - 87
lib/xalloc.h

@@ -1,87 +0,0 @@
-/* xalloc.h -- malloc with out-of-memory checking
-   Copyright (C) 1990-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
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#ifndef XALLOC_H_
-# define XALLOC_H_
-
-# ifndef PARAMS
-#  if defined PROTOTYPES || (defined __STDC__ && __STDC__)
-#   define PARAMS(Args) Args
-#  else
-#   define PARAMS(Args) ()
-#  endif
-# endif
-
-# ifndef __attribute__
-#  if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
-#   define __attribute__(x)
-#  endif
-# endif
-
-# ifndef ATTRIBUTE_NORETURN
-#  define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-# endif
-
-/* Exit value when the requested amount of memory is not available.
-   It is initialized to EXIT_FAILURE, but the caller may set it to
-   some other value.  */
-extern int xalloc_exit_failure;
-
-/* If this pointer is non-zero, run the specified function upon each
-   allocation failure.  It is initialized to zero. */
-extern void (*xalloc_fail_func) PARAMS ((void));
-
-/* If XALLOC_FAIL_FUNC is undefined or a function that returns, this
-   message is output.  It is translated via gettext.
-   Its value is "memory exhausted".  */
-extern char const xalloc_msg_memory_exhausted[];
-
-/* This function is always triggered when memory is exhausted.  It is
-   in charge of honoring the three previous items.  This is the
-   function to call when one wants the program to die because of a
-   memory allocation failure.  */
-extern void xalloc_die PARAMS ((void)) ATTRIBUTE_NORETURN;
-
-void *xmalloc PARAMS ((size_t n));
-void *xcalloc PARAMS ((size_t n, size_t s));
-void *xrealloc PARAMS ((void *p, size_t n));
-char *xstrdup PARAMS ((const char *str));
-
-# define XMALLOC(Type, N_items) ((Type *) xmalloc (sizeof (Type) * (N_items)))
-# define XCALLOC(Type, N_items) ((Type *) xcalloc (sizeof (Type), (N_items)))
-# define XREALLOC(Ptr, Type, N_items) \
-  ((Type *) xrealloc ((void *) (Ptr), sizeof (Type) * (N_items)))
-
-/* Declare and alloc memory for VAR of type TYPE. */
-# define NEW(Type, Var)  Type *(Var) = XMALLOC (Type, 1)
-
-/* Free VAR only if non NULL. */
-# define XFREE(Var)	\
-   do {                 \
-      if (Var)          \
-        free (Var);     \
-   } while (0)
-
-/* Return a pointer to a malloc'ed copy of the array SRC of NUM elements. */
-# define CCLONE(Src, Num) \
-  (memcpy (xmalloc (sizeof (*Src) * (Num)), (Src), sizeof (*Src) * (Num)))
-
-/* Return a malloc'ed copy of SRC. */
-# define CLONE(Src) CCLONE (Src, 1)
-
-
-#endif /* !XALLOC_H_ */

+ 0 - 79
lib/xgetcwd.c

@@ -1,79 +0,0 @@
-/* xgetcwd.c -- return current directory with unlimited length
-   Copyright (C) 1992, 1996, 2000, 2001 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-/* Written by David MacKenzie <djm@gnu.ai.mit.edu>.  */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
-
-#include <sys/types.h>
-
-#if HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#if HAVE_GETCWD
-char *getcwd ();
-#else
-char *getwd ();
-# define getcwd(Buf, Max) getwd (Buf)
-#endif
-
-#include "xalloc.h"
-
-/* Return the current directory, newly allocated, arbitrarily long.
-   Return NULL and set errno on error. */
-
-char *
-xgetcwd ()
-{
-#if defined __GLIBC__ && __GLIBC__ >= 2
-  return getcwd (NULL, 0);
-#else
-  size_t buf_size = 128;  /* must be a power of 2 */
-  char *buf = NULL;
-
-  while (1)
-    {
-      char *cwd;
-      buf = (char *) xrealloc (buf, buf_size);
-
-      cwd = getcwd (buf, buf_size);
-      if (cwd != NULL)
-	return cwd;
-      if (errno != ERANGE)
-	{
-	  free (buf);
-	  return NULL;
-	}
-
-      buf_size *= 2;
-      if (buf_size == 0)
-	xalloc_die ();
-    }
-#endif
-}

+ 0 - 116
lib/xmalloc.c

@@ -1,116 +0,0 @@
-/* xmalloc.c -- malloc with out of memory checking
-   Copyright (C) 1990-1999, 2000 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-#else
-void *calloc ();
-void *malloc ();
-void *realloc ();
-void free ();
-#endif
-
-#if ENABLE_NLS
-# include <libintl.h>
-# define _(Text) gettext (Text)
-#else
-# define textdomain(Domain)
-# define _(Text) Text
-#endif
-#define N_(Text) Text
-
-#include "error.h"
-#include "xalloc.h"
-
-#ifndef EXIT_FAILURE
-# define EXIT_FAILURE 1
-#endif
-
-#ifndef HAVE_DONE_WORKING_MALLOC_CHECK
-"you must run the autoconf test for a properly working malloc -- see malloc.m4"
-#endif
-
-#ifndef HAVE_DONE_WORKING_REALLOC_CHECK
-"you must run the autoconf test for a properly working realloc --see realloc.m4"
-#endif
-
-/* Exit value when the requested amount of memory is not available.
-   The caller may set it to some other value.  */
-int xalloc_exit_failure = EXIT_FAILURE;
-
-/* If non NULL, call this function when memory is exhausted. */
-void (*xalloc_fail_func) PARAMS ((void)) = 0;
-
-/* If XALLOC_FAIL_FUNC is NULL, or does return, display this message
-   before exiting when memory is exhausted.  Goes through gettext. */
-char const xalloc_msg_memory_exhausted[] = N_("memory exhausted");
-
-void
-xalloc_die (void)
-{
-  if (xalloc_fail_func)
-    (*xalloc_fail_func) ();
-  error (xalloc_exit_failure, 0, "%s", _(xalloc_msg_memory_exhausted));
-  /* The `noreturn' cannot be given to error, since it may return if
-     its first argument is 0.  To help compilers understand the
-     xalloc_die does terminate, call exit. */
-  exit (EXIT_FAILURE);
-}
-
-/* Allocate N bytes of memory dynamically, with error checking.  */
-
-void *
-xmalloc (size_t n)
-{
-  void *p;
-
-  p = malloc (n);
-  if (p == 0)
-    xalloc_die ();
-  return p;
-}
-
-/* Change the size of an allocated block of memory P to N bytes,
-   with error checking.  */
-
-void *
-xrealloc (void *p, size_t n)
-{
-  p = realloc (p, n);
-  if (p == 0)
-    xalloc_die ();
-  return p;
-}
-
-/* Allocate memory for N elements of S bytes, with error checking.  */
-
-void *
-xcalloc (size_t n, size_t s)
-{
-  void *p;
-
-  p = calloc (n, s);
-  if (p == 0)
-    xalloc_die ();
-  return p;
-}

+ 0 - 288
lib/xstrtol.c

@@ -1,288 +0,0 @@
-/* A more useful interface to strtol.
-   Copyright (C) 1995, 1996, 1998-2001 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-/* Written by Jim Meyering. */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#ifndef __strtol
-# define __strtol strtol
-# define __strtol_t long int
-# define __xstrtol xstrtol
-#endif
-
-/* Some pre-ANSI implementations (e.g. SunOS 4)
-   need stderr defined if assertion checking is enabled.  */
-#include <stdio.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-#endif
-
-#if HAVE_STRING_H
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef strchr
-#  define strchr index
-# endif
-#endif
-
-#include <assert.h>
-#include <ctype.h>
-
-#include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
-
-#if HAVE_LIMITS_H
-# include <limits.h>
-#endif
-
-#ifndef CHAR_BIT
-# define CHAR_BIT 8
-#endif
-
-/* The extra casts work around common compiler bugs.  */
-#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
-/* The outer cast is needed to work around a bug in Cray C 5.0.3.0.
-   It is necessary at least when t == time_t.  */
-#define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \
-			      ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) : (t) 0))
-#define TYPE_MAXIMUM(t) (~ (t) 0 - TYPE_MINIMUM (t))
-
-#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
-# define IN_CTYPE_DOMAIN(c) 1
-#else
-# define IN_CTYPE_DOMAIN(c) isascii(c)
-#endif
-
-#define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (c))
-
-#include "xstrtol.h"
-
-#if !HAVE_DECL_STRTOL && !defined strtol
-long int strtol ();
-#endif
-
-#if !HAVE_DECL_STRTOUL && !defined strtoul
-unsigned long int strtoul ();
-#endif
-
-#if !HAVE_DECL_STRTOIMAX && !defined strtoimax
-intmax_t strtoimax ();
-#endif
-
-#if !HAVE_DECL_STRTOUMAX && !defined strtoumax
-uintmax_t strtoumax ();
-#endif
-
-static int
-bkm_scale (__strtol_t *x, int scale_factor)
-{
-  __strtol_t product = *x * scale_factor;
-  if (*x != product / scale_factor)
-    return 1;
-  *x = product;
-  return 0;
-}
-
-static int
-bkm_scale_by_power (__strtol_t *x, int base, int power)
-{
-  while (power--)
-    if (bkm_scale (x, base))
-      return 1;
-
-  return 0;
-}
-
-/* FIXME: comment.  */
-
-strtol_error
-__xstrtol (const char *s, char **ptr, int strtol_base,
-	   __strtol_t *val, const char *valid_suffixes)
-{
-  char *t_ptr;
-  char **p;
-  __strtol_t tmp;
-
-  assert (0 <= strtol_base && strtol_base <= 36);
-
-  p = (ptr ? ptr : &t_ptr);
-
-  if (! TYPE_SIGNED (__strtol_t))
-    {
-      const char *q = s;
-      while (ISSPACE ((unsigned char) *q))
-	++q;
-      if (*q == '-')
-	return LONGINT_INVALID;
-    }
-
-  errno = 0;
-  tmp = __strtol (s, p, strtol_base);
-  if (errno != 0)
-    return LONGINT_OVERFLOW;
-  if (*p == s)
-    return LONGINT_INVALID;
-
-  /* Let valid_suffixes == NULL mean `allow any suffix'.  */
-  /* FIXME: update all callers except the ones that allow suffixes
-     after the number, changing last parameter NULL to `""'.  */
-  if (!valid_suffixes)
-    {
-      *val = tmp;
-      return LONGINT_OK;
-    }
-
-  if (**p != '\0')
-    {
-      int base = 1024;
-      int suffixes = 1;
-      int overflow;
-
-      if (!strchr (valid_suffixes, **p))
-	{
-	  *val = tmp;
-	  return LONGINT_INVALID_SUFFIX_CHAR;
-	}
-
-      if (strchr (valid_suffixes, '0'))
-	{
-	  /* The ``valid suffix'' '0' is a special flag meaning that
-	     an optional second suffix is allowed, which can change
-	     the base, e.g. "100MD" for 100 megabytes decimal.  */
-
-	  switch (p[0][1])
-	    {
-	    case 'B':
-	      suffixes++;
-	      break;
-
-	    case 'D':
-	      base = 1000;
-	      suffixes++;
-	      break;
-	    }
-	}
-
-      switch (**p)
-	{
-	case 'b':
-	  overflow = bkm_scale (&tmp, 512);
-	  break;
-
-	case 'B':
-	  overflow = bkm_scale (&tmp, 1024);
-	  break;
-
-	case 'c':
-	  overflow = 0;
-	  break;
-
-	case 'E': /* Exa */
-	  overflow = bkm_scale_by_power (&tmp, base, 6);
-	  break;
-
-	case 'G': /* Giga */
-	case 'g': /* 'g' is undocumented; for compatibility only */
-	  overflow = bkm_scale_by_power (&tmp, base, 3);
-	  break;
-
-	case 'k': /* kilo */
-	  overflow = bkm_scale_by_power (&tmp, base, 1);
-	  break;
-
-	case 'M': /* Mega */
-	case 'm': /* 'm' is undocumented; for compatibility only */
-	  overflow = bkm_scale_by_power (&tmp, base, 2);
-	  break;
-
-	case 'P': /* Peta */
-	  overflow = bkm_scale_by_power (&tmp, base, 5);
-	  break;
-
-	case 'T': /* Tera */
-	case 't': /* 't' is undocumented; for compatibility only */
-	  overflow = bkm_scale_by_power (&tmp, base, 4);
-	  break;
-
-	case 'w':
-	  overflow = bkm_scale (&tmp, 2);
-	  break;
-
-	case 'Y': /* Yotta */
-	  overflow = bkm_scale_by_power (&tmp, base, 8);
-	  break;
-
-	case 'Z': /* Zetta */
-	  overflow = bkm_scale_by_power (&tmp, base, 7);
-	  break;
-
-	default:
-	  *val = tmp;
-	  return LONGINT_INVALID_SUFFIX_CHAR;
-	  break;
-	}
-
-      if (overflow)
-	return LONGINT_OVERFLOW;
-
-      (*p) += suffixes;
-    }
-
-  *val = tmp;
-  return LONGINT_OK;
-}
-
-#ifdef TESTING_XSTRTO
-
-# include <stdio.h>
-# include "error.h"
-
-char *program_name;
-
-int
-main (int argc, char** argv)
-{
-  strtol_error s_err;
-  int i;
-
-  program_name = argv[0];
-  for (i=1; i<argc; i++)
-    {
-      char *p;
-      __strtol_t val;
-
-      s_err = __xstrtol (argv[i], &p, 0, &val, "bckmw");
-      if (s_err == LONGINT_OK)
-	{
-	  printf ("%s->%lu (%s)\n", argv[i], val, p);
-	}
-      else
-	{
-	  STRTOL_FATAL_ERROR (argv[i], "arg", s_err);
-	}
-    }
-  exit (0);
-}
-
-#endif /* TESTING_XSTRTO */

+ 0 - 82
lib/xstrtol.h

@@ -1,82 +0,0 @@
-/* A more useful interface to strtol.
-   Copyright 1995, 1996, 1998, 1999, 2001 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#ifndef XSTRTOL_H_
-# define XSTRTOL_H_ 1
-
-# if HAVE_INTTYPES_H
-#  include <inttypes.h> /* for uintmax_t */
-# endif
-
-# ifndef PARAMS
-#  if defined PROTOTYPES || (defined __STDC__ && __STDC__)
-#   define PARAMS(Args) Args
-#  else
-#   define PARAMS(Args) ()
-#  endif
-# endif
-
-# ifndef _STRTOL_ERROR
-enum strtol_error
-  {
-    LONGINT_OK, LONGINT_INVALID, LONGINT_INVALID_SUFFIX_CHAR, LONGINT_OVERFLOW
-  };
-typedef enum strtol_error strtol_error;
-# endif
-
-# define _DECLARE_XSTRTOL(name, type) \
-  strtol_error \
-    name PARAMS ((const char *s, char **ptr, int base, \
-		  type *val, const char *valid_suffixes));
-_DECLARE_XSTRTOL (xstrtol, long int)
-_DECLARE_XSTRTOL (xstrtoul, unsigned long int)
-_DECLARE_XSTRTOL (xstrtoimax, intmax_t)
-_DECLARE_XSTRTOL (xstrtoumax, uintmax_t)
-
-# define _STRTOL_ERROR(Exit_code, Str, Argument_type_string, Err)	\
-  do									\
-    {									\
-      switch ((Err))							\
-	{								\
-	case LONGINT_OK:						\
-	  abort ();							\
-									\
-	case LONGINT_INVALID:						\
-	  error ((Exit_code), 0, "invalid %s `%s'",			\
-		 (Argument_type_string), (Str));			\
-	  break;							\
-									\
-	case LONGINT_INVALID_SUFFIX_CHAR:				\
-	  error ((Exit_code), 0, "invalid character following %s in `%s'", \
-		 (Argument_type_string), (Str));			\
-	  break;							\
-									\
-	case LONGINT_OVERFLOW:						\
-	  error ((Exit_code), 0, "%s `%s' too large",			\
-		 (Argument_type_string), (Str));			\
-	  break;							\
-	}								\
-    }									\
-  while (0)
-
-# define STRTOL_FATAL_ERROR(Str, Argument_type_string, Err)		\
-  _STRTOL_ERROR (2, Str, Argument_type_string, Err)
-
-# define STRTOL_FAIL_WARN(Str, Argument_type_string, Err)		\
-  _STRTOL_ERROR (0, Str, Argument_type_string, Err)
-
-#endif /* not XSTRTOL_H_ */

+ 0 - 23
m4/c-bs-a.m4

@@ -1,23 +0,0 @@
-#serial 4
-
-dnl From Paul Eggert.
-
-AC_DEFUN([AC_C_BACKSLASH_A],
-[
-  AC_CACHE_CHECK([whether backslash-a works in strings], ac_cv_c_backslash_a,
-   [AC_TRY_COMPILE([],
-     [
-#if '\a' == 'a'
-      syntax error;
-#endif
-      char buf['\a' == 'a' ? -1 : 1];
-      buf[0] = '\a';
-      return buf[0] != "\a"[0];
-     ],
-     ac_cv_c_backslash_a=yes,
-     ac_cv_c_backslash_a=no)])
-  if test $ac_cv_c_backslash_a = yes; then
-    AC_DEFINE(HAVE_C_BACKSLASH_A, 1,
-      [Define if backslash-a works in C strings.])
-  fi
-])

+ 0 - 95
m4/ccstdc.m4

@@ -1,95 +0,0 @@
-# The following is taken from automake 1.4,
-# except that it prefers the compiler option -Ae to "-Aa -D_HPUX_SOURCE"
-# because only the former supports 64-bit integral types on HP-UX 10.20.
-
-## ----------------------------------------- ##
-## ANSIfy the C compiler whenever possible.  ##
-## From Franc,ois Pinard                     ##
-## ----------------------------------------- ##
-
-# serial 2
-
-# @defmac AC_PROG_CC_STDC
-# @maindex PROG_CC_STDC
-# @ovindex CC
-# If the C compiler in not in ANSI C mode by default, try to add an option
-# to output variable @code{CC} to make it so.  This macro tries various
-# options that select ANSI C on some system or another.  It considers the
-# compiler to be in ANSI C mode if it handles function prototypes correctly.
-#
-# If you use this macro, you should check after calling it whether the C
-# compiler has been set to accept ANSI C; if not, the shell variable
-# @code{am_cv_prog_cc_stdc} is set to @samp{no}.  If you wrote your source
-# code in ANSI C, you can make an un-ANSIfied copy of it by using the
-# program @code{ansi2knr}, which comes with Ghostscript.
-# @end defmac
-
-AC_DEFUN(AM_PROG_CC_STDC,
-[AC_REQUIRE([AC_PROG_CC])
-AC_BEFORE([$0], [AC_C_INLINE])
-AC_BEFORE([$0], [AC_C_CONST])
-dnl Force this before AC_PROG_CPP.  Some cpp's, eg on HPUX, require
-dnl a magic option to avoid problems with ANSI preprocessor commands
-dnl like #elif.
-dnl FIXME: can't do this because then AC_AIX won't work due to a
-dnl circular dependency.
-dnl AC_BEFORE([$0], [AC_PROG_CPP])
-AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
-AC_CACHE_VAL(am_cv_prog_cc_stdc,
-[am_cv_prog_cc_stdc=no
-ac_save_CC="$CC"
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX			-qlanglvl=ansi
-# Ultrix and OSF/1	-std1
-# HP-UX			-Aa -D_HPUX_SOURCE
-# SVR4			-Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  AC_TRY_COMPILE(
-[#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-], [
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-],
-[am_cv_prog_cc_stdc="$ac_arg"; break])
-done
-CC="$ac_save_CC"
-])
-if test -z "$am_cv_prog_cc_stdc"; then
-  AC_MSG_RESULT([none needed])
-else
-  AC_MSG_RESULT($am_cv_prog_cc_stdc)
-fi
-case "x$am_cv_prog_cc_stdc" in
-  x|xno) ;;
-  *) CC="$CC $am_cv_prog_cc_stdc" ;;
-esac
-])

+ 0 - 37
m4/decl.m4

@@ -1,37 +0,0 @@
-#serial 5
-
-AC_DEFUN(jm_CHECK_DECLARATION,
-[
-  AC_MSG_CHECKING([whether $1 is declared])
-  AC_CACHE_VAL(jm_cv_func_decl_$1,
-    [AC_TRY_COMPILE($2,
-      [
-#ifndef $1
-char *(*pfn) = (char *(*)) $1
-#endif
-      ],
-      eval "jm_cv_func_decl_$1=yes",
-      eval "jm_cv_func_decl_$1=no")])
-
-  if eval "test \"`echo '$jm_cv_func_decl_'$1`\" = yes"; then
-    AC_MSG_RESULT(yes)
-    ifelse([$3], , :, [$3])
-  else
-    AC_MSG_RESULT(no)
-    ifelse([$4], , , [$4
-])dnl
-  fi
-])dnl
-
-dnl jm_CHECK_DECLARATIONS(INCLUDES, FUNCTION... [, ACTION-IF-DECLARED
-dnl                       [, ACTION-IF-NOT-DECLARED]])
-AC_DEFUN(jm_CHECK_DECLARATIONS,
-[
-  for jm_func in $2
-  do
-    jm_CHECK_DECLARATION($jm_func, $1,
-    [
-      jm_tr_func=HAVE_DECL_`echo $jm_func | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
-      AC_DEFINE_UNQUOTED($jm_tr_func) $3], $4)dnl
-  done
-])

+ 0 - 12
m4/error.m4

@@ -1,12 +0,0 @@
-#serial 3
-
-dnl FIXME: put these prerequisite-only *.m4 files in a separate
-dnl directory -- otherwise, they'll conflict with existing files.
-
-dnl These are the prerequisite macros for GNU's error.c file.
-AC_DEFUN([jm_PREREQ_ERROR],
-[
-  AC_CHECK_FUNCS(strerror strerror_r vprintf doprnt)
-  AC_FUNC_STRERROR_R
-  AC_HEADER_STDC
-])

+ 0 - 24
m4/fnmatch.m4

@@ -1,24 +0,0 @@
-dnl This is a copy of autoconf 2.13, except we also check that
-dnl FNM_FILE_NAME | FNM_LEADING_DIR works.
-dnl
-undefine([AC_FUNC_FNMATCH])
-AC_DEFUN(AC_FUNC_FNMATCH,
-[AC_CACHE_CHECK(for working GNU-style fnmatch, ac_cv_func_fnmatch_works,
-# Some versions of Solaris, SCO, and the GNU C Library
-# have a broken or incompatible fnmatch.
-# So we run a test program.  If we are cross-compiling, take no chance.
-# Thanks to John Oleynick, Franc,ois Pinard, and Paul Eggert for this test.
-[AC_TRY_RUN([#include <fnmatch.h>
-main() {
-  exit (fnmatch ("a*", "abc", 0) != 0
-	|| fnmatch("d*/*1", "d/s/1", FNM_FILE_NAME) != FNM_NOMATCH
-	|| fnmatch("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR) != 0
-	|| fnmatch("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR) != 0
-	|| fnmatch("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR) != 0);
-}],
-ac_cv_func_fnmatch_works=yes, ac_cv_func_fnmatch_works=no,
-ac_cv_func_fnmatch_works=no)])
-if test $ac_cv_func_fnmatch_works = yes; then
-  AC_DEFINE(HAVE_FNMATCH)
-fi
-])

+ 0 - 53
m4/getcwd.m4

@@ -1,53 +0,0 @@
-# getcwd.m4 - check whether getcwd (NULL, 0) allocates memory for result
-
-# Copyright 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-# Written by Paul Eggert.
-
-AC_DEFUN([AC_FUNC_GETCWD_NULL],
-  [AC_CHECK_HEADERS(stdlib.h unistd.h)
-   AC_CACHE_CHECK([whether getcwd (NULL, 0) allocates memory for result],
-     [ac_cv_func_getcwd_null],
-     [AC_TRY_RUN(
-        [
-#	 ifdef HAVE_STDLIB_H
-#	  include <stdlib.h>
-#	 endif
-#	 ifdef HAVE_UNISTD_H
-#	  include <unistd.h>
-#	 endif
-#	 ifndef getcwd
-	 char *getcwd ();
-#	 endif
-	 int
-	 main ()
-	 {
-	   if (chdir ("/") != 0)
-	     exit (1);
-	   else
-	     {
-	       char *f = getcwd (NULL, 0);
-	       exit (! (f && f[0] == '/' && !f[1]));
-	     }
-	 }],
-	[ac_cv_func_getcwd_null=yes],
-	[ac_cv_func_getcwd_null=no],
-	[ac_cv_func_getcwd_null=no])])
-   if test $ac_cv_func_getcwd_null = yes; then
-     AC_DEFINE(HAVE_GETCWD_NULL, 1,
-	       [Define if getcwd (NULL, 0) allocates memory for result.])
-   fi])

+ 0 - 368
m4/gettext.m4

@@ -1,368 +0,0 @@
-# Macro to add for using GNU gettext.
-# Ulrich Drepper <drepper@cygnus.com>, 1995.
-#
-# This file can be copied and used freely without restrictions.  It can
-# be used in projects which are not available under the GNU General Public
-# License but which still want to provide support for the GNU gettext
-# functionality.
-# Please note that the actual code of GNU gettext is covered by the GNU
-# General Public License and is *not* in the public domain.
-
-# serial 10
-
-dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]).
-dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library
-dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
-dnl    depending on --{enable,disable}-{shared,static} and on the presence of
-dnl    AM-DISABLE-SHARED). Otherwise, a static library
-dnl    $(top_builddir)/intl/libintl.a will be created.
-dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
-dnl    implementations (in libc or libintl) without the ngettext() function
-dnl    will be ignored.
-dnl LIBDIR is used to find the intl libraries.  If empty,
-dnl    the value `$(top_builddir)/intl/' is used.
-dnl
-dnl The result of the configuration is one of three cases:
-dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
-dnl    and used.
-dnl    Catalog format: GNU --> install in $(datadir)
-dnl    Catalog extension: .mo after installation, .gmo in source tree
-dnl 2) GNU gettext has been found in the system's C library.
-dnl    Catalog format: GNU --> install in $(datadir)
-dnl    Catalog extension: .mo after installation, .gmo in source tree
-dnl 3) No internationalization, always use English msgid.
-dnl    Catalog format: none
-dnl    Catalog extension: none
-dnl The use of .gmo is historical (it was needed to avoid overwriting the
-dnl GNU format catalogs when building on a platform with an X/Open gettext),
-dnl but we keep it in order not to force irrelevant filename changes on the
-dnl maintainers.
-dnl
-AC_DEFUN([AM_WITH_NLS],
-  [AC_MSG_CHECKING([whether NLS is requested])
-    dnl Default is enabled NLS
-    AC_ARG_ENABLE(nls,
-      [  --disable-nls           do not use Native Language Support],
-      USE_NLS=$enableval, USE_NLS=yes)
-    AC_MSG_RESULT($USE_NLS)
-    AC_SUBST(USE_NLS)
-
-    BUILD_INCLUDED_LIBINTL=no
-    USE_INCLUDED_LIBINTL=no
-    INTLLIBS=
-
-    dnl If we use NLS figure out what method
-    if test "$USE_NLS" = "yes"; then
-      AC_DEFINE(ENABLE_NLS, 1,
-        [Define to 1 if translation of program messages to the user's native language
-   is requested.])
-      AC_MSG_CHECKING([whether included gettext is requested])
-      AC_ARG_WITH(included-gettext,
-        [  --with-included-gettext use the GNU gettext library included here],
-        nls_cv_force_use_gnu_gettext=$withval,
-        nls_cv_force_use_gnu_gettext=no)
-      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
-
-      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
-      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
-        dnl User does not insist on using GNU NLS library.  Figure out what
-        dnl to use.  If GNU gettext is available we use this.  Else we have
-        dnl to fall back to GNU NLS library.
-	CATOBJEXT=NONE
-
-        dnl Add a version number to the cache macros.
-        define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc])
-        define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl])
-
-	AC_CHECK_HEADER(libintl.h,
-	  [AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
-	    [AC_TRY_LINK([#include <libintl.h>
-extern int _nl_msg_cat_cntr;],
-	       [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
-	       gt_cv_func_gnugettext_libc=yes,
-	       gt_cv_func_gnugettext_libc=no)])
-
-	   if test "$gt_cv_func_gnugettext_libc" != "yes"; then
-	     AC_CACHE_CHECK([for GNU gettext in libintl],
-	       gt_cv_func_gnugettext_libintl,
-	       [gt_save_LIBS="$LIBS"
-		LIBS="$LIBS -lintl $LIBICONV"
-		AC_TRY_LINK([#include <libintl.h>
-extern int _nl_msg_cat_cntr;],
-		  [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
-		  gt_cv_func_gnugettext_libintl=yes,
-		  gt_cv_func_gnugettext_libintl=no)
-		LIBS="$gt_save_LIBS"])
-	   fi
-
-	   dnl If an already present or preinstalled GNU gettext() is found,
-	   dnl use it.  But if this macro is used in GNU gettext, and GNU
-	   dnl gettext is already preinstalled in libintl, we update this
-	   dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
-	   if test "$gt_cv_func_gnugettext_libc" = "yes" \
-	      || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
-		   && test "$PACKAGE" != gettext; }; then
-	     AC_DEFINE(HAVE_GETTEXT, 1,
-               [Define if the GNU gettext() function is already present or preinstalled.])
-
-	     if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
-	       dnl If iconv() is in a separate libiconv library, then anyone
-	       dnl linking with libintl{.a,.so} also needs to link with
-	       dnl libiconv.
-	       INTLLIBS="-lintl $LIBICONV"
-	     fi
-
-	     gt_save_LIBS="$LIBS"
-	     LIBS="$LIBS $INTLLIBS"
-	     AC_CHECK_FUNCS(dcgettext)
-	     LIBS="$gt_save_LIBS"
-
-	     dnl Search for GNU msgfmt in the PATH.
-	     AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-	       [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
-	     AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-
-	     dnl Search for GNU xgettext in the PATH.
-	     AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-	       [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
-
-	     CATOBJEXT=.gmo
-	   fi
-	])
-
-        if test "$CATOBJEXT" = "NONE"; then
-	  dnl GNU gettext is not found in the C library.
-	  dnl Fall back on GNU gettext library.
-	  nls_cv_use_gnu_gettext=yes
-        fi
-      fi
-
-      if test "$nls_cv_use_gnu_gettext" = "yes"; then
-        dnl Mark actions used to generate GNU NLS library.
-        INTLOBJS="\$(GETTOBJS)"
-        AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-	  [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
-        AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-        AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-	  [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
-        AC_SUBST(MSGFMT)
-	BUILD_INCLUDED_LIBINTL=yes
-	USE_INCLUDED_LIBINTL=yes
-        CATOBJEXT=.gmo
-	INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV"
-	LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
-      fi
-
-      dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
-      dnl Test whether we really found GNU msgfmt.
-      if test "$GMSGFMT" != ":"; then
-	dnl If it is no GNU msgfmt we define it as : so that the
-	dnl Makefiles still can work.
-	if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
-	  : ;
-	else
-	  AC_MSG_RESULT(
-	    [found msgfmt program is not GNU msgfmt; ignore it])
-	  GMSGFMT=":"
-	fi
-      fi
-
-      dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
-      dnl Test whether we really found GNU xgettext.
-      if test "$XGETTEXT" != ":"; then
-	dnl If it is no GNU xgettext we define it as : so that the
-	dnl Makefiles still can work.
-	if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
-	  : ;
-	else
-	  AC_MSG_RESULT(
-	    [found xgettext program is not GNU xgettext; ignore it])
-	  XGETTEXT=":"
-	fi
-      fi
-
-      dnl We need to process the po/ directory.
-      POSUB=po
-    fi
-    AC_OUTPUT_COMMANDS(
-     [for ac_file in $CONFIG_FILES; do
-        # Support "outfile[:infile[:infile...]]"
-        case "$ac_file" in
-          *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-        esac
-        # PO directories have a Makefile.in generated from Makefile.in.in.
-        case "$ac_file" in */Makefile.in)
-          # Adjust a relative srcdir.
-          ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-          ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
-          ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
-          # In autoconf-2.13 it is called $ac_given_srcdir.
-          # In autoconf-2.50 it is called $srcdir.
-          test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
-          case "$ac_given_srcdir" in
-            .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
-            /*) top_srcdir="$ac_given_srcdir" ;;
-            *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
-          esac
-          if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
-            rm -f "$ac_dir/POTFILES"
-            test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
-            sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
-            test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
-            sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
-          fi
-          ;;
-        esac
-      done])
-
-
-    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
-    dnl to 'yes' because some of the testsuite requires it.
-    if test "$PACKAGE" = gettext; then
-      BUILD_INCLUDED_LIBINTL=yes
-    fi
-
-    dnl intl/plural.c is generated from intl/plural.y. It requires bison,
-    dnl because plural.y uses bison specific features. It requires at least
-    dnl bison-1.26 because earlier versions generate a plural.c that doesn't
-    dnl compile.
-    dnl bison is only needed for the maintainer (who touches plural.y). But in
-    dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
-    dnl the rule in general Makefile. Now, some people carelessly touch the
-    dnl files or have a broken "make" program, hence the plural.c rule will
-    dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
-    dnl present or too old.
-    AC_CHECK_PROGS([INTLBISON], [bison])
-    if test -z "$INTLBISON"; then
-      ac_verc_fail=yes
-    else
-      dnl Found it, now check the version.
-      AC_MSG_CHECKING([version of bison])
-changequote(<<,>>)dnl
-      ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison .* \([0-9]*\.[0-9.]*\).*$/\1/p'`
-      case $ac_prog_version in
-        '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-        1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
-changequote([,])dnl
-           ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-        *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-      esac
-      AC_MSG_RESULT([$ac_prog_version])
-    fi
-    if test $ac_verc_fail = yes; then
-      INTLBISON=:
-    fi
-
-    dnl These rules are solely for the distribution goal.  While doing this
-    dnl we only have to keep exactly one list of the available catalogs
-    dnl in configure.in.
-    for lang in $ALL_LINGUAS; do
-      GMOFILES="$GMOFILES $lang.gmo"
-      POFILES="$POFILES $lang.po"
-    done
-
-    dnl Make all variables we use known to autoconf.
-    AC_SUBST(BUILD_INCLUDED_LIBINTL)
-    AC_SUBST(USE_INCLUDED_LIBINTL)
-    AC_SUBST(CATALOGS)
-    AC_SUBST(CATOBJEXT)
-    AC_SUBST(GMOFILES)
-    AC_SUBST(INTLLIBS)
-    AC_SUBST(INTLOBJS)
-    AC_SUBST(POFILES)
-    AC_SUBST(POSUB)
-
-    dnl For backward compatibility. Some configure.ins may be using this.
-    nls_cv_header_intl=
-    nls_cv_header_libgt=
-
-    dnl For backward compatibility. Some Makefiles may be using this.
-    DATADIRNAME=share
-    AC_SUBST(DATADIRNAME)
-
-    dnl For backward compatibility. Some Makefiles may be using this.
-    INSTOBJEXT=.mo
-    AC_SUBST(INSTOBJEXT)
-
-    dnl For backward compatibility. Some Makefiles may be using this.
-    GENCAT=gencat
-    AC_SUBST(GENCAT)
-  ])
-
-dnl Usage: Just like AM_WITH_NLS, which see.
-AC_DEFUN([AM_GNU_GETTEXT],
-  [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-   AC_REQUIRE([AC_PROG_CC])dnl
-   AC_REQUIRE([AC_CANONICAL_HOST])dnl
-   AC_REQUIRE([AC_PROG_RANLIB])dnl
-   AC_REQUIRE([AC_ISC_POSIX])dnl
-   AC_REQUIRE([AC_HEADER_STDC])dnl
-   AC_REQUIRE([AC_C_CONST])dnl
-   AC_REQUIRE([AC_C_INLINE])dnl
-   AC_REQUIRE([AC_TYPE_OFF_T])dnl
-   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
-   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
-   AC_REQUIRE([AC_FUNC_MMAP])dnl
-   AC_REQUIRE([jm_GLIBC21])dnl
-
-   AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
-stdlib.h string.h unistd.h sys/param.h])
-   AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \
-getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
-strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
-
-   AM_ICONV
-   AM_LANGINFO_CODESET
-   AM_LC_MESSAGES
-   AM_WITH_NLS([$1],[$2],[$3])
-
-   if test "x$CATOBJEXT" != "x"; then
-     if test "x$ALL_LINGUAS" = "x"; then
-       LINGUAS=
-     else
-       AC_MSG_CHECKING(for catalogs to be installed)
-       NEW_LINGUAS=
-       for presentlang in $ALL_LINGUAS; do
-         useit=no
-         for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
-           # Use the presentlang catalog if desiredlang is
-           #   a. equal to presentlang, or
-           #   b. a variant of presentlang (because in this case,
-           #      presentlang can be used as a fallback for messages
-           #      which are not translated in the desiredlang catalog).
-           case "$desiredlang" in
-             "$presentlang"*) useit=yes;;
-           esac
-         done
-         if test $useit = yes; then
-           NEW_LINGUAS="$NEW_LINGUAS $presentlang"
-         fi
-       done
-       LINGUAS=$NEW_LINGUAS
-       AC_MSG_RESULT($LINGUAS)
-     fi
-
-     dnl Construct list of names of catalog files to be constructed.
-     if test -n "$LINGUAS"; then
-       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
-     fi
-   fi
-
-   dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
-   dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
-   dnl Try to locate is.
-   MKINSTALLDIRS=
-   if test -n "$ac_aux_dir"; then
-     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
-   fi
-   if test -z "$MKINSTALLDIRS"; then
-     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
-   fi
-   AC_SUBST(MKINSTALLDIRS)
-
-   dnl Enable libtool support if the surrounding package wishes it.
-   INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], [])
-   AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
-  ])

+ 0 - 32
m4/inttypes.m4

@@ -1,32 +0,0 @@
-#serial 6
-
-dnl From Paul Eggert.
-
-AC_PREREQ(2.52)
-
-# Define intmax_t to long or long long if <inttypes.h> doesn't define.
-
-AC_DEFUN([jm_AC_TYPE_INTMAX_T],
-[
-  AC_REQUIRE([jm_AC_TYPE_LONG_LONG])
-  AC_CHECK_TYPE(intmax_t, ,
-    [test $ac_cv_type_long_long = yes \
-       && ac_type='long long' \
-       || ac_type='long'
-     AC_DEFINE_UNQUOTED(intmax_t, $ac_type,
-       [Define to widest signed type if <inttypes.h> doesn't define.])])
-])
-
-# Define uintmax_t to unsigned long or unsigned long long
-# if <inttypes.h> doesn't define.
-
-AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
-[
-  AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
-  AC_CHECK_TYPE(uintmax_t, ,
-    [test $ac_cv_type_unsigned_long_long = yes \
-       && ac_type='unsigned long long' \
-       || ac_type='unsigned long'
-     AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
-       [Define to widest unsigned type if <inttypes.h> doesn't define.])])
-])

+ 0 - 19
m4/mbrtowc.m4

@@ -1,19 +0,0 @@
-#serial 1
-
-dnl From Paul Eggert
-
-AC_DEFUN(jm_FUNC_MBRTOWC,
-[
-  AC_MSG_CHECKING([whether mbrtowc and mbstate_t are properly declared])
-  AC_CACHE_VAL(jm_cv_func_mbrtowc,
-    [AC_TRY_LINK(
-       [#include <wchar.h>],
-       [mbstate_t state; return ! (sizeof state && mbrtowc);],
-       [jm_cv_func_mbrtowc=yes],
-       [jm_cv_func_mbrtowc=no])])
-  if test $jm_cv_func_mbrtowc = yes; then
-    AC_MSG_RESULT(yes)
-    AC_DEFINE(HAVE_MBRTOWC, 1,
-      [Define to 1 if mbrtowc and mbstate_t are properly declared.])
-  fi
-])

+ 0 - 29
m4/mbstate_t.m4

@@ -1,29 +0,0 @@
-# serial 9
-
-# From Paul Eggert.
-
-# BeOS 5 has <wchar.h> but does not define mbstate_t,
-# so you can't declare an object of that type.
-# Check for this incompatibility with Standard C.
-
-# Include stdlib.h first, because otherwise this test would fail on Linux
-# (at least glibc-2.1.3) because the "_XOPEN_SOURCE 500" definition elicits
-# a syntax error in wchar.h due to the use of undefined __int32_t.
-
-AC_DEFUN([AC_MBSTATE_T],
-  [
-   AC_CHECK_HEADERS(stdlib.h)
-
-   AC_CACHE_CHECK([for mbstate_t], ac_cv_type_mbstate_t,
-    [AC_TRY_COMPILE([
-#if HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-#include <wchar.h>],
-      [mbstate_t x; return sizeof x;],
-      ac_cv_type_mbstate_t=yes,
-      ac_cv_type_mbstate_t=no)])
-   if test $ac_cv_type_mbstate_t = no; then
-     AC_DEFINE(mbstate_t, int,
-	       [Define to a type if <wchar.h> does not define.])
-   fi])

+ 0 - 141
m4/prereq.m4

@@ -1,141 +0,0 @@
-#serial 21
-
-dnl These are the prerequisite macros for files in the lib/
-dnl directories of the fileutils, sh-utils, and textutils packages.
-
-AC_DEFUN([jm_PREREQ],
-[
-  jm_PREREQ_ADDEXT
-  jm_PREREQ_CANON_HOST
-  jm_PREREQ_DIRNAME
-  jm_PREREQ_ERROR
-  jm_PREREQ_EXCLUDE
-  jm_PREREQ_GETPAGESIZE
-  jm_PREREQ_HASH
-  jm_PREREQ_HUMAN
-  jm_PREREQ_MBSWIDTH
-  jm_PREREQ_MEMCHR
-  jm_PREREQ_QUOTEARG
-  jm_PREREQ_READUTMP
-  jm_PREREQ_REGEX
-  jm_PREREQ_TEMPNAME # called by mkstemp
-])
-
-AC_DEFUN([jm_PREREQ_ADDEXT],
-[
-  dnl For addext.c.
-  AC_SYS_LONG_FILE_NAMES
-  AC_CHECK_FUNCS(pathconf)
-  AC_CHECK_HEADERS(limits.h string.h unistd.h)
-])
-
-AC_DEFUN([jm_PREREQ_CANON_HOST],
-[
-  dnl Add any libraries as early as possible.
-  dnl In particular, inet_ntoa needs -lnsl at least on Solaris5.5.1,
-  dnl so we have to add -lnsl to LIBS before checking for that function.
-  AC_SEARCH_LIBS(gethostbyname, [inet nsl])
-
-  dnl These come from -lnsl on Solaris5.5.1.
-  AC_CHECK_FUNCS(gethostbyname gethostbyaddr inet_ntoa)
-
-  AC_CHECK_FUNCS(gethostbyname gethostbyaddr inet_ntoa)
-  AC_CHECK_HEADERS(unistd.h string.h netdb.h sys/socket.h \
-                   netinet/in.h arpa/inet.h)
-])
-
-AC_DEFUN([jm_PREREQ_DIRNAME],
-[
-  AC_HEADER_STDC
-  AC_CHECK_HEADERS(string.h)
-])
-
-AC_DEFUN([jm_PREREQ_EXCLUDE],
-[
-  jm_FUNC_FNMATCH
-  AC_CHECK_HEADERS(stdbool.h)
-])
-
-AC_DEFUN([jm_PREREQ_GETPAGESIZE],
-[
-  AC_CHECK_FUNCS(getpagesize)
-  AC_CHECK_HEADERS(OS.h unistd.h)
-])
-
-AC_DEFUN([jm_PREREQ_HASH],
-[
-  AC_CHECK_HEADERS(stdlib.h stdbool.h)
-  AC_REQUIRE([jm_CHECK_DECLS])
-])
-
-# If you use human.c, you need the following files:
-# inttypes.m4 ulonglong.m4
-AC_DEFUN([jm_PREREQ_HUMAN],
-[
-  AC_CHECK_HEADERS(limits.h stdlib.h string.h)
-  AC_CHECK_DECLS([getenv])
-  AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])
-])
-
-AC_DEFUN([jm_PREREQ_MEMCHR],
-[
-  AC_CHECK_HEADERS(limits.h stdlib.h bp-sym.h)
-])
-
-AC_DEFUN([jm_PREREQ_QUOTEARG],
-[
-  AC_CHECK_FUNCS(isascii iswprint)
-  jm_FUNC_MBRTOWC
-  AC_CHECK_HEADERS(limits.h stddef.h stdlib.h string.h wchar.h wctype.h)
-  AC_HEADER_STDC
-  AC_C_BACKSLASH_A
-  AC_MBSTATE_T
-  AM_C_PROTOTYPES
-])
-
-AC_DEFUN([jm_PREREQ_READUTMP],
-[
-  AC_HEADER_STDC
-  AC_CHECK_HEADERS(string.h utmp.h utmpx.h sys/param.h)
-  AC_CHECK_FUNCS(utmpname)
-  AC_CHECK_FUNCS(utmpxname)
-  AM_C_PROTOTYPES
-
-  if test $ac_cv_header_utmp_h = yes || test $ac_cv_header_utmpx_h = yes; then
-    utmp_includes="\
-$ac_includes_default
-#ifdef HAVE_UTMPX_H
-# include <utmpx.h>
-#endif
-#ifdef HAVE_UTMP_H
-# include <utmp.h>
-#endif
-"
-    AC_CHECK_MEMBERS([struct utmpx.ut_user],,,[$utmp_includes])
-    AC_CHECK_MEMBERS([struct utmp.ut_user],,,[$utmp_includes])
-    AC_CHECK_MEMBERS([struct utmpx.ut_name],,,[$utmp_includes])
-    AC_CHECK_MEMBERS([struct utmp.ut_name],,,[$utmp_includes])
-    AC_CHECK_MEMBERS([struct utmpx.ut_type],,,[$utmp_includes])
-    AC_CHECK_MEMBERS([struct utmp.ut_type],,,[$utmp_includes])
-    AC_LIBOBJ(readutmp)
-  fi
-])
-
-AC_DEFUN([jm_PREREQ_REGEX],
-[
-  dnl FIXME: Maybe provide a btowc replacement someday: solaris-2.5.1 lacks it.
-  dnl FIXME: Check for wctype and iswctype, and and add -lw if necessary
-  dnl to get them.
-  AC_CHECK_FUNCS(bzero bcopy isascii btowc)
-  AC_CHECK_HEADERS(alloca.h libintl.h wctype.h wchar.h)
-  AC_HEADER_STDC
-  AC_FUNC_ALLOCA
-])
-
-AC_DEFUN([jm_PREREQ_TEMPNAME],
-[
-  AC_HEADER_STDC
-  AC_HEADER_STAT
-  AC_CHECK_HEADERS(fcntl.h sys/time.h stdint.h unistd.h)
-  AC_CHECK_FUNCS(__secure_getenv gettimeofday)
-])

+ 0 - 66
m4/strerror_r.m4

@@ -1,66 +0,0 @@
-#serial 1002
-# Experimental replacement for the function in the latest CVS autoconf.
-# If the compile-test says strerror_r doesn't work, then resort to a
-# `run'-test that works on BeOS and segfaults on DEC Unix.
-# Use with the error.c file in ../lib.
-
-undefine([AC_FUNC_STRERROR_R])
-
-# AC_FUNC_STRERROR_R
-# ------------------
-AC_DEFUN([AC_FUNC_STRERROR_R],
-[AC_CHECK_DECLS([strerror_r])
-AC_CHECK_FUNCS([strerror_r])
-if test $ac_cv_func_strerror_r = yes; then
-  AC_CHECK_HEADERS(string.h)
-  AC_CACHE_CHECK([for working strerror_r],
-                 ac_cv_func_strerror_r_works,
-   [
-    AC_TRY_COMPILE(
-     [
-#       include <stdio.h>
-#       if HAVE_STRING_H
-#        include <string.h>
-#       endif
-     ],
-     [
-       char buf[100];
-       char x = *strerror_r (0, buf, sizeof buf);
-     ],
-     ac_cv_func_strerror_r_works=yes,
-     ac_cv_func_strerror_r_works=no
-    )
-    if test $ac_cv_func_strerror_r_works = no; then
-      # strerror_r seems not to work, but now we have to choose between
-      # systems that have relatively inaccessible declarations for the
-      # function.  BeOS and DEC UNIX 4.0 fall in this category, but the
-      # former has a strerror_r that returns char*, while the latter
-      # has a strerror_r that returns `int'.
-      # This test should segfault on the DEC system.
-      AC_TRY_RUN(
-       [
-#       include <stdio.h>
-#       include <string.h>
-#       include <ctype.h>
-
-	extern char *strerror_r ();
-
-	int
-	main ()
-	{
-	  char buf[100];
-	  char x = *strerror_r (0, buf, sizeof buf);
-	  exit (!isalpha (x));
-	}
-       ],
-       ac_cv_func_strerror_r_works=yes,
-       ac_cv_func_strerror_r_works=no,
-       ac_cv_func_strerror_r_works=no)
-    fi
-  ])
-  if test $ac_cv_func_strerror_r_works = yes; then
-    AC_DEFINE(HAVE_WORKING_STRERROR_R, 1,
-      [Define to 1 if `strerror_r' returns a string.])
-  fi
-fi
-])# AC_FUNC_STRERROR_R

+ 0 - 19
m4/uintmax_t.m4

@@ -1,19 +0,0 @@
-#serial 6
-
-dnl From Paul Eggert.
-
-AC_PREREQ(2.50)
-
-# Define uintmax_t to `unsigned long' or `unsigned long long'
-# if <inttypes.h> does not exist.
-
-AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
-[
-  AC_CHECK_TYPE(uintmax_t, ,
-    [AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
-     test $ac_cv_type_unsigned_long_long = yes \
-       && ac_type='unsigned long long' \
-       || ac_type='unsigned long'
-     AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
-       [Define to the widest unsigned type if standard headers do not declare.])])
-])

+ 0 - 41
m4/xstrtoimax.m4

@@ -1,41 +0,0 @@
-#serial 2
-dnl Cloned from xstrtoumax.m4.  Keep these files in sync.
-
-# autoconf tests required for use of xstrtoimax.c
-
-AC_DEFUN([jm_AC_PREREQ_XSTRTOIMAX],
-[
-  AC_REQUIRE([jm_AC_TYPE_INTMAX_T])
-  AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])
-  AC_REQUIRE([jm_AC_TYPE_LONG_LONG])
-  AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
-  AC_CHECK_DECLS([strtol, strtoul, strtoll, strtoimax, strtoumax])
-  AC_CHECK_HEADERS(limits.h stdlib.h inttypes.h)
-
-  AC_CACHE_CHECK([whether <inttypes.h> defines strtoimax as a macro],
-    jm_cv_func_strtoimax_macro,
-    AC_EGREP_CPP([inttypes_h_defines_strtoimax], [#include <inttypes.h>
-#ifdef strtoimax
- inttypes_h_defines_strtoimax
-#endif],
-      jm_cv_func_strtoimax_macro=yes,
-      jm_cv_func_strtoimax_macro=no))
-
-  if test "$jm_cv_func_strtoimax_macro" != yes; then
-    AC_REPLACE_FUNCS(strtoimax)
-  fi
-
-  dnl Only the replacement strtoimax invokes strtol and strtoll,
-  dnl so we need the replacements only if strtoimax does not exist.
-  case "$jm_cv_func_strtoimax_macro,$ac_cv_func_strtoimax" in
-    no,no)
-      AC_REPLACE_FUNCS(strtol)
-
-      dnl We don't need (and can't compile) the replacement strtoll
-      dnl unless the type `long long' exists.
-      if test "$ac_cv_type_long_long" = yes; then
-	AC_REPLACE_FUNCS(strtoll)
-      fi
-      ;;
-  esac
-])

+ 0 - 40
m4/xstrtoumax.m4

@@ -1,40 +0,0 @@
-#serial 4
-
-# autoconf tests required for use of xstrtoumax.c
-
-AC_DEFUN([jm_AC_PREREQ_XSTRTOUMAX],
-[
-  AC_REQUIRE([jm_AC_TYPE_INTMAX_T])
-  AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])
-  AC_REQUIRE([jm_AC_TYPE_LONG_LONG])
-  AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
-  AC_CHECK_DECLS([strtol, strtoul, strtoull, strtoimax, strtoumax])
-  AC_CHECK_HEADERS(limits.h stdlib.h inttypes.h)
-
-  AC_CACHE_CHECK([whether <inttypes.h> defines strtoumax as a macro],
-    jm_cv_func_strtoumax_macro,
-    AC_EGREP_CPP([inttypes_h_defines_strtoumax], [#include <inttypes.h>
-#ifdef strtoumax
- inttypes_h_defines_strtoumax
-#endif],
-      jm_cv_func_strtoumax_macro=yes,
-      jm_cv_func_strtoumax_macro=no))
-
-  if test "$jm_cv_func_strtoumax_macro" != yes; then
-    AC_REPLACE_FUNCS(strtoumax)
-  fi
-
-  dnl Only the replacement strtoumax invokes strtoul and strtoull,
-  dnl so we need the replacements only if strtoumax does not exist.
-  case "$jm_cv_func_strtoumax_macro,$ac_cv_func_strtoumax" in
-    no,no)
-      AC_REPLACE_FUNCS(strtoul)
-
-      dnl We don't need (and can't compile) the replacement strtoull
-      dnl unless the type `unsigned long long' exists.
-      if test "$ac_cv_type_unsigned_long_long" = yes; then
-	AC_REPLACE_FUNCS(strtoull)
-      fi
-      ;;
-  esac
-])

+ 22 - 0
po/.gitignore

@@ -0,0 +1,22 @@
+*.gmo
+*.mo
+*.po
+.reference
+LINGUAS
+Makefile
+Makefile.in
+Makefile.in.in
+Makevars
+Makevars.template
+POTFILES
+Rules-quot
+boldquot.sed
+en@boldquot.header
+en@quot.header
+insert-header.sed
+insert-header.sin
+quot.sed
+remove-potcdate.sed
+remove-potcdate.sin
+stamp-po
+tar.pot

+ 0 - 196
po/Makefile.in.in

@@ -1,196 +0,0 @@
-# Makefile for program source directory in GNU NLS utilities package.
-# Copyright (C) 1995-1997, 2000, 2001 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-#
-# This file can be copied and used freely without restrictions.  It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
-
-PACKAGE = @PACKAGE@
-VERSION = @VERSION@
-
-# These two variables depend on the location of this directory.
-subdir = po
-top_builddir = ..
-
-SHELL = /bin/sh
-@SET_MAKE@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-datadir = @datadir@
-localedir = $(datadir)/locale
-gettextsrcdir = $(datadir)/gettext/po
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
-
-CC = @CC@
-GMSGFMT = @GMSGFMT@
-MSGFMT = @MSGFMT@
-XGETTEXT = @XGETTEXT@
-MSGMERGE = msgmerge
-
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-CPPFLAGS = @CPPFLAGS@
-
-INCLUDES = -I.. -I$(top_srcdir)/intl
-
-COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
-
-POFILES = @POFILES@
-GMOFILES = @GMOFILES@
-DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
-$(POFILES) $(GMOFILES)
-
-POTFILES = \
-
-CATALOGS = @CATALOGS@
-
-.SUFFIXES:
-.SUFFIXES: .c .o .po .pox .gmo .mo
-
-.c.o:
-	$(COMPILE) $<
-
-.po.pox:
-	$(MAKE) $(PACKAGE).pot
-	$(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
-
-.po.mo:
-	$(MSGFMT) -o $@ $<
-
-.po.gmo:
-	file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
-	  && rm -f $$file && $(GMSGFMT) --statistics -o $$file $<
-
-
-all: all-@USE_NLS@
-
-all-yes: $(CATALOGS)
-all-no:
-
-# Note: Target 'all' must not depend on target '$(srcdir)/$(PACKAGE).pot',
-# otherwise packages like GCC can not be built if only parts of the source
-# have been downloaded.
-
-$(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in
-	$(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
-	  --add-comments --keyword=_ --keyword=N_ \
-	  --files-from=$(srcdir)/POTFILES.in \
-	&& test ! -f $(PACKAGE).po \
-	   || ( rm -f $(srcdir)/$(PACKAGE).pot \
-		&& mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
-
-
-install: install-exec install-data
-install-exec:
-install-data: install-data-@USE_NLS@
-	if test "$(PACKAGE)" = "gettext"; then \
-	  $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
-	  $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
-			  $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
-	else \
-	  : ; \
-	fi
-install-data-no: all
-install-data-yes: all
-	$(mkinstalldirs) $(DESTDIR)$(datadir)
-	@catalogs='$(CATALOGS)'; \
-	for cat in $$catalogs; do \
-	  cat=`basename $$cat`; \
-	  lang=`echo $$cat | sed 's/\.gmo$$//'`; \
-	  dir=$(localedir)/$$lang/LC_MESSAGES; \
-	  $(mkinstalldirs) $(DESTDIR)$$dir; \
-	  if test -r $$cat; then \
-	    $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
-	    echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \
-	  else \
-	    $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
-	    echo "installing $(srcdir)/$$cat as" \
-		 "$(DESTDIR)$$dir/$(PACKAGE).mo"; \
-	  fi; \
-	done
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall:
-	catalogs='$(CATALOGS)'; \
-	for cat in $$catalogs; do \
-	  cat=`basename $$cat`; \
-	  lang=`echo $$cat | sed 's/\.gmo$$//'`; \
-	  rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \
-	done
-	if test "$(PACKAGE)" = "gettext"; then \
-	  rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
-	else \
-	  : ; \
-	fi
-
-check: all
-
-dvi info tags TAGS ID:
-
-mostlyclean:
-	rm -f core core.* *.pox $(PACKAGE).po *.new.po
-	rm -fr *.o
-
-clean: mostlyclean
-
-distclean: clean
-	rm -f Makefile Makefile.in POTFILES *.mo
-
-maintainer-clean: distclean
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
-	rm -f $(GMOFILES)
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir:
-	$(MAKE) update-po
-	@$(MAKE) dist2
-# This is a separate target because 'update-po' must be executed before.
-dist2: $(DISTFILES)
-	dists="$(DISTFILES)"; \
-	for file in $$dists; do \
-	  if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
-	  cp -p $$dir/$$file $(distdir); \
-	done
-
-update-po: Makefile
-	$(MAKE) $(PACKAGE).pot
-	if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
-	cd $(srcdir); \
-	catalogs='$(GMOFILES)'; \
-	for cat in $$catalogs; do \
-	  cat=`basename $$cat`; \
-	  lang=`echo $$cat | sed 's/\.gmo$$//'`; \
-	  echo "$$lang:"; \
-	  if $(MSGMERGE) $$lang.po $(PACKAGE).pot -o $$lang.new.po; then \
-	    mv -f $$lang.new.po $$lang.po; \
-	  else \
-	    echo "msgmerge for $$cat failed!"; \
-	    rm -f $$lang.new.po; \
-	  fi; \
-	done
-	$(MAKE) update-gmo
-
-update-gmo: Makefile $(GMOFILES)
-	@:
-
-Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
-	       $(SHELL) ./config.status
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:

+ 17 - 16
po/POTFILES.in

@@ -19,26 +19,27 @@
 # 02110-1301, USA.
 # 02110-1301, USA.
 
 
 # Library files
 # Library files
-lib/argmatch.c
-lib/argp-help.c
-lib/argp-parse.c
-lib/closeout.c
-lib/error.c
-lib/getopt.c
-lib/obstack.c
-lib/human.c
-lib/obstack.c
-lib/openat-die.c
+gnu/argmatch.c
+gnu/argp-help.c
+gnu/argp-parse.c
+gnu/closeout.c
+gnu/error.c
+gnu/getopt.c
+gnu/obstack.c
+gnu/human.c
+gnu/obstack.c
+gnu/openat-die.c
+gnu/quotearg.c
+gnu/rpmatch.c
+gnu/xalloc-die.c
+gnu/xmalloc.c
+gnu/version-etc.c
+gnu/xalloc-die.c
+
 lib/paxerror.c
 lib/paxerror.c
 lib/paxexit.c
 lib/paxexit.c
 lib/paxnames.c
 lib/paxnames.c
-lib/quotearg.c
-lib/rpmatch.c
 lib/rtapelib.c
 lib/rtapelib.c
-lib/xalloc-die.c
-lib/xmalloc.c
-lib/version-etc.c
-lib/xalloc-die.c
 
 
 rmt/rmt.c
 rmt/rmt.c
 
 

+ 0 - 6
scripts/.cvsignore

@@ -1,6 +0,0 @@
-Makefile.in
-Makefile
-backup.sh
-backup
-restore
-dump-remind

+ 0 - 6
src/.cvsignore

@@ -1,6 +0,0 @@
-.deps
-.gdbinit
-Makefile
-Makefile.in
-rmt
-tar

+ 1 - 0
src/.gitignore

@@ -0,0 +1 @@
+tar

+ 3 - 3
src/Makefile.am

@@ -1,7 +1,7 @@
 # Makefile for GNU tar sources.
 # Makefile for GNU tar sources.
 
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2006,
 # Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2006,
-# 2007 Free Software Foundation, Inc.
+# 2007, 2009 Free Software Foundation, Inc.
 
 
 ## This program is free software; you can redistribute it and/or modify
 ## 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
 ## it under the terms of the GNU General Public License as published by
@@ -41,8 +41,8 @@ tar_SOURCES = \
  update.c\
  update.c\
  utf8.c
  utf8.c
 
 
-INCLUDES = -I$(top_srcdir)/lib -I../ -I../lib
+INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib
 
 
-LDADD = ../lib/libtar.a $(LIBINTL) $(LIBICONV)
+LDADD = ../lib/libtar.a ../gnu/libgnu.a $(LIBINTL) $(LIBICONV)
 
 
 tar_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME)
 tar_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME)

+ 930 - 158
src/Makefile.in

@@ -1,201 +1,973 @@
-# Un*x Makefile for GNU tar program.
-# Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
 
 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
 
 # This program is distributed in the hope that it will be useful,
 # This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
 
 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+@SET_MAKE@
 
 
-#### Start of system configuration section. ####
+# Makefile for GNU tar sources.
 
 
-srcdir = @srcdir@
-VPATH = @srcdir@
+# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2006,
+# 2007, 2009 Free Software Foundation, Inc.
 
 
-# If you use gcc, you should either run the fixincludes script that
-# comes with it or else use gcc with the -traditional option.  Otherwise
-# ioctl calls will be compiled incorrectly on some systems.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = tar$(EXEEXT)
+subdir = src
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in ansi2knr.1 ansi2knr.c
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \
+	$(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \
+	$(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \
+	$(top_srcdir)/m4/canonicalize-lgpl.m4 \
+	$(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \
+	$(top_srcdir)/m4/clock_time.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \
+	$(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \
+	$(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \
+	$(top_srcdir)/m4/dirfd.m4 $(top_srcdir)/m4/dirname.m4 \
+	$(top_srcdir)/m4/dos.m4 $(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \
+	$(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exclude.m4 \
+	$(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \
+	$(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \
+	$(top_srcdir)/m4/fcntl-safer.m4 $(top_srcdir)/m4/fcntl_h.m4 \
+	$(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/float_h.m4 \
+	$(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftruncate.m4 \
+	$(top_srcdir)/m4/getcwd-abort-bug.m4 \
+	$(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \
+	$(top_srcdir)/m4/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \
+	$(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
+	$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
+	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \
+	$(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \
+	$(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
+	$(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
+	$(top_srcdir)/m4/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \
+	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \
+	$(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \
+	$(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \
+	$(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \
+	$(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/mbchar.m4 \
+	$(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \
+	$(top_srcdir)/m4/mbscasecmp.m4 $(top_srcdir)/m4/mbsinit.m4 \
+	$(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mempcpy.m4 \
+	$(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdtemp.m4 \
+	$(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \
+	$(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \
+	$(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+	$(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \
+	$(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmt.m4 \
+	$(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
+	$(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \
+	$(top_srcdir)/m4/sleep.m4 $(top_srcdir)/m4/snprintf.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \
+	$(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \
+	$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
+	$(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcase.m4 \
+	$(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strdup.m4 \
+	$(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \
+	$(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtoimax.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \
+	$(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
+	$(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/sys_stat_h.m4 \
+	$(top_srcdir)/m4/sys_time_h.m4 $(top_srcdir)/m4/sysexits.m4 \
+	$(top_srcdir)/m4/system.m4 $(top_srcdir)/m4/tempname.m4 \
+	$(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \
+	$(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \
+	$(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \
+	$(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
+	$(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wcwidth.m4 \
+	$(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xgetcwd.m4 \
+	$(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS)
+am_tar_OBJECTS = buffer.$(OBJEXT) checkpoint.$(OBJEXT) \
+	compare.$(OBJEXT) create.$(OBJEXT) delete.$(OBJEXT) \
+	extract.$(OBJEXT) xheader.$(OBJEXT) incremen.$(OBJEXT) \
+	list.$(OBJEXT) misc.$(OBJEXT) names.$(OBJEXT) sparse.$(OBJEXT) \
+	suffix.$(OBJEXT) system.$(OBJEXT) tar.$(OBJEXT) \
+	transform.$(OBJEXT) update.$(OBJEXT) utf8.$(OBJEXT)
+tar_OBJECTS = $(am_tar_OBJECTS)
+am__DEPENDENCIES_1 =
+am__DEPENDENCIES_2 = ../lib/libtar.a ../gnu/libgnu.a \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+tar_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(tar_SOURCES)
+DIST_SOURCES = $(tar_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOM4TE = @AUTOM4TE@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BACKUP_LIBEXEC_SCRIPTS = @BACKUP_LIBEXEC_SCRIPTS@
+BACKUP_SBIN_SCRIPTS = @BACKUP_SBIN_SCRIPTS@
+BACKUP_SED_COND = @BACKUP_SED_COND@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
 CC = @CC@
 CC = @CC@
-YACC = @YACC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFAULT_ARCHIVE = @DEFAULT_ARCHIVE@
+DEFAULT_ARCHIVE_FORMAT = @DEFAULT_ARCHIVE_FORMAT@
+DEFAULT_BLOCKING = @DEFAULT_BLOCKING@
+DEFAULT_QUOTING_STYLE = @DEFAULT_QUOTING_STYLE@
+DEFAULT_RMT_COMMAND = @DEFAULT_RMT_COMMAND@
+DEFAULT_RMT_DIR = @DEFAULT_RMT_DIR@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DIRENT_H = @DIRENT_H@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
+EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
+ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
+ENOLINK_VALUE = @ENOLINK_VALUE@
+EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
+EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
+ERRNO_H = @ERRNO_H@
+EXEEXT = @EXEEXT@
+FCNTL_H = @FCNTL_H@
+FLOAT_H = @FLOAT_H@
+FNMATCH_H = @FNMATCH_H@
+GETOPT_H = @GETOPT_H@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_ALPHASORT = @GNULIB_ALPHASORT@
+GNULIB_ATOLL = @GNULIB_ATOLL@
+GNULIB_BTOWC = @GNULIB_BTOWC@
+GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_DIRFD = @GNULIB_DIRFD@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_ENVIRON = @GNULIB_ENVIRON@
+GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FCLOSE = @GNULIB_FCLOSE@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF = @GNULIB_FPRINTF@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FPUTC = @GNULIB_FPUTC@
+GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSYNC = @GNULIB_FSYNC@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
+GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
+GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
+GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
+GNULIB_GETLINE = @GNULIB_GETLINE@
+GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_LCHMOD = @GNULIB_LCHMOD@
+GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LINK = @GNULIB_LINK@
+GNULIB_LSEEK = @GNULIB_LSEEK@
+GNULIB_LSTAT = @GNULIB_LSTAT@
+GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+GNULIB_MBRLEN = @GNULIB_MBRLEN@
+GNULIB_MBRTOWC = @GNULIB_MBRTOWC@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSINIT = @GNULIB_MBSINIT@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_OPEN = @GNULIB_OPEN@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
+GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+GNULIB_STRSTR = @GNULIB_STRSTR@
+GNULIB_STRTOD = @GNULIB_STRTOD@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOLL = @GNULIB_STRTOLL@
+GNULIB_STRTOULL = @GNULIB_STRTOULL@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
+GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
+GNULIB_UNSETENV = @GNULIB_UNSETENV@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
+GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WRITE = @GNULIB_WRITE@
+GREP = @GREP@
+HAVE_ALPHASORT = @HAVE_ALPHASORT@
+HAVE_ATOLL = @HAVE_ATOLL@
+HAVE_BTOWC = @HAVE_BTOWC@
+HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
+HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DPRINTF = @HAVE_DPRINTF@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@
+HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
+HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
+HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_GETUSERSHELL = @HAVE_GETUSERSHELL@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LCHMOD = @HAVE_LCHMOD@
+HAVE_LINK = @HAVE_LINK@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_LSTAT = @HAVE_LSTAT@
+HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+HAVE_MBRLEN = @HAVE_MBRLEN@
+HAVE_MBRTOWC = @HAVE_MBRTOWC@
+HAVE_MBSINIT = @HAVE_MBSINIT@
+HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
+HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_RANDOM_H = @HAVE_RANDOM_H@
+HAVE_RANDOM_R = @HAVE_RANDOM_R@
+HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SETENV = @HAVE_SETENV@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_STRTOD = @HAVE_STRTOD@
+HAVE_STRTOLL = @HAVE_STRTOLL@
+HAVE_STRTOULL = @HAVE_STRTOULL@
+HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
+HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
+HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
+HAVE_SYSEXITS_H = @HAVE_SYSEXITS_H@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
+HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSETENV = @HAVE_UNSETENV@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_VDPRINTF = @HAVE_VDPRINTF@
+HAVE_WCHAR_H = @HAVE_WCHAR_H@
+HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INCLUDE_NEXT = @INCLUDE_NEXT@
+INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
 INSTALL = @INSTALL@
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_DATA = @INSTALL_DATA@
-
-# Things you might add to DEFS:
-# -DSTDC_HEADERS	If you have ANSI C headers and libraries.
-# -DHAVE_UNISTD_H	If you have unistd.h.
-# -DHAVE_STRING_H	If you don't have ANSI C headers but have string.h.
-# -DHAVE_LIMITS_H	If you have limits.h.
-# -DBSD42		If you have sys/dir.h (unless you use -DPOSIX),
-#			sys/file.h, and st_blocks in `struct stat'.
-# -DDIRENT		If you have dirent.h.
-# -DSYSNDIR		Old Xenix systems (sys/ndir.h).
-# -DSYSDIR		Old BSD systems (sys/dir.h).
-# -DNDIR		Old System V systems (ndir.h).
-# -DMAJOR_IN_MKDEV	If major, minor, makedev defined in sys/mkdev.h.
-# -DMAJOR_IN_SYSMACROS	If major, minor, makedev defined in sys/sysmacros.h.
-# -DRETSIGTYPE=int	If your signal handlers return int, not void.
-# -DHAVE_SYS_MTIO_H	If you have sys/mtio.h (magtape ioctls).
-# -DHAVE_SYS_GENTAPE_H	If you have sys/gentape.h (ISC magtape ioctls).
-# -DHAVE_NETDB_H	To use rexec for remote tape operations
-#			instead of forking rsh or remsh.
-# -DNO_REMOTE		If you have neither a remote shell nor rexec.
-# -DHAVE_VPRINTF	If you have vprintf function.
-# -DHAVE_DOPRNT		If you have _doprnt function (but lack vprintf).
-# -DHAVE_FTIME		If you have ftime system call.
-# -DHAVE_STRSTR		If you have strstr function.
-# -DHAVE_VALLOC		If you have valloc function.
-# -DHAVE_MKDIR		If you have mkdir and rmdir system calls.
-# -DHAVE_MKNOD		If you have mknod system call.
-# -DHAVE_RENAME 	If you have rename system call.
-# -DHAVE_GETCWD		If not POSIX.1 but have getcwd function.
-# -DHAVE_FTRUNCATE	If you have ftruncate system call.
-# -DV7			On Version 7 Unix (not tested in a long time).
-# -DEMUL_OPEN3		If you lack a 3-argument version of open, and want
-#			to emulate it with system calls you do have.
-# -DNO_OPEN3		If you lack the 3-argument open and want to
-#			disable the tar -k option instead of emulating open.
-# -DXENIX		If you have sys/inode.h and need it to be included.
-
-DEF_AR_FILE = @DEF_AR_FILE@
-DEFBLOCKING = 20
-DEFS = @DEFS@ -DDEF_AR_FILE=\"$(DEF_AR_FILE)\" -DDEFBLOCKING=$(DEFBLOCKING)
-
-# Set this to rtapelib.o unless you defined NO_REMOTE, in which case
-# make it empty.
-RTAPELIB = @RTAPELIB@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@
+INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
+LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBS = @LIBS@
+LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_CLOSE = @LIB_CLOSE@
+LIB_SETSOCKOPT = @LIB_SETSOCKOPT@
+LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+LOCALE_FR = @LOCALE_FR@
+LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
+LOCALE_JA = @LOCALE_JA@
+LOCALE_ZH_CN = @LOCALE_ZH_CN@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+NEXT_DIRENT_H = @NEXT_DIRENT_H@
+NEXT_ERRNO_H = @NEXT_ERRNO_H@
+NEXT_FCNTL_H = @NEXT_FCNTL_H@
+NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
+NEXT_STDARG_H = @NEXT_STDARG_H@
+NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
+NEXT_STDLIB_H = @NEXT_STDLIB_H@
+NEXT_STRINGS_H = @NEXT_STRINGS_H@
+NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYSEXITS_H = @NEXT_SYSEXITS_H@
+NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
+NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
+NEXT_TIME_H = @NEXT_TIME_H@
+NEXT_UNISTD_H = @NEXT_UNISTD_H@
+NEXT_WCHAR_H = @NEXT_WCHAR_H@
+NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PU_RMT_PROG = @PU_RMT_PROG@
+RANLIB = @RANLIB@
+REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
+REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_LSTAT = @REPLACE_LSTAT@
+REPLACE_MBRLEN = @REPLACE_MBRLEN@
+REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
+REPLACE_MBSINIT = @REPLACE_MBSINIT@
+REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
+REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
+REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MKDIR = @REPLACE_MKDIR@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
+REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
+REPLACE_OPEN = @REPLACE_OPEN@
+REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRDUP = @REPLACE_STRDUP@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRPTIME = @REPLACE_STRPTIME@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VDPRINTF = @REPLACE_VDPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
+REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
+REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+REPLACE_WRITE = @REPLACE_WRITE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDARG_H = @STDARG_H@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+SYSEXITS_H = @SYSEXITS_H@
+SYS_STAT_H = @SYS_STAT_H@
+SYS_TIME_H = @SYS_TIME_H@
+SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
+TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
+UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
+UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
+UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+VOID_UNSETENV = @VOID_UNSETENV@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+YACC = @YACC@
+YFLAGS = @YFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJS = @gltests_LIBOBJS@
+gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+noinst_HEADERS = arith.h common.h tar.h
+tar_SOURCES = \
+ buffer.c\
+ checkpoint.c\
+ compare.c\
+ create.c\
+ delete.c\
+ extract.c\
+ xheader.c\
+ incremen.c\
+ list.c\
+ misc.c\
+ names.c\
+ sparse.c\
+ suffix.c\
+ system.c\
+ tar.c\
+ transform.c\
+ update.c\
+ utf8.c
+
+INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib
+LDADD = ../lib/libtar.a ../gnu/libgnu.a $(LIBINTL) $(LIBICONV)
+tar_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits  src/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnits  src/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	  ; then \
+	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+	  else :; fi; \
+	done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
+	done
+
+clean-binPROGRAMS:
+	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+installcheck-binPROGRAMS: $(bin_PROGRAMS)
+	bad=0; pid=$$$$; list="$(bin_PROGRAMS)"; for p in $$list; do \
+	  case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
+	   *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
+	  esac; \
+	  f=`echo "$$p" | \
+	     sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  for opt in --help --version; do \
+	    if "$(DESTDIR)$(bindir)/$$f" $$opt >c$${pid}_.out \
+	         2>c$${pid}_.err </dev/null \
+		 && test -n "`cat c$${pid}_.out`" \
+		 && test -z "`cat c$${pid}_.err`"; then :; \
+	    else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
+	  done; \
+	done; rm -f c$${pid}_.???; exit $$bad
+tar$(EXEEXT): $(tar_OBJECTS) $(tar_DEPENDENCIES) 
+	@rm -f tar$(EXEEXT)
+	$(LINK) $(tar_OBJECTS) $(tar_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buffer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/checkpoint.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compare.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/delete.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extract.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/incremen.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/names.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sparse.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/suffix.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/system.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tar.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/transform.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/update.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf8.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xheader.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(HEADERS)
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
 
 
-CFLAGS = -g
-LDFLAGS = -g
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 
 
-prefix = /usr/local
-exec_prefix = $(prefix)
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
 
 
-# Prefix for each installed program, normally empty or `g'.
-binprefix = 
+clean-generic:
 
 
-# The directory to install tar in.
-bindir = $(exec_prefix)/bin
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
 
 
-# Where to put the rmt executable.
-libdir = $(exec_prefix)/lib
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
 
 
-# The directory to install the info files in.
-infodir = $(prefix)/info
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
 
 
-#### End of system configuration section. ####
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
 
 
-SHELL = /bin/sh
+dvi: dvi-am
 
 
-SRC1 =	tar.c create.c extract.c buffer.c getoldopt.c update.c gnu.c mangle.c
-SRC2 =  version.c list.c names.c diffarch.c port.c fnmatch.c getopt.c malloc.c
-SRC3 =  getopt1.c regex.c getdate.y getdate.c alloca.c
-SRCS =	$(SRC1) $(SRC2) $(SRC3)
-OBJ1 =	tar.o create.o extract.o buffer.o getoldopt.o update.o gnu.o mangle.o
-OBJ2 =	version.o list.o names.o diffarch.o port.o fnmatch.o getopt.o @MALLOC@
-OBJ3 =  getopt1.o regex.o getdate.o $(RTAPELIB) @ALLOCA@
-OBJS =	$(OBJ1) $(OBJ2) $(OBJ3)
-AUX =   README INSTALL NEWS COPYING ChangeLog Makefile.in makefile.pc \
-	configure configure.in mkinstalldirs \
-	tar.h fnmatch.h pathmax.h port.h open3.h getopt.h regex.h \
-	rmt.h rmt.c rtapelib.c \
-	msd_dir.h msd_dir.c tcexparg.c \
-	level-0 level-1 backup-specs dump-remind testpad.c getpagesize.h
-#	tar.texinfo tar.info* texinfo.tex
+dvi-am:
 
 
-all:	@PROGS@ 
-# tar.info
+html: html-am
 
 
-.c.o:
-	$(CC) -c $(CPPFLAGS) $(DEFS) -I. -I$(srcdir) $(CFLAGS) $<
+info: info-am
 
 
-tar:	$(OBJS)
-	$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
+info-am:
 
 
-rmt:	rmt.c
-	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(srcdir)/rmt.c $(LIBS)
+install-data-am:
 
 
-tar.info: tar.texinfo
-	makeinfo $(srcdir)/tar.texinfo
+install-dvi: install-dvi-am
 
 
-install: all installdirs
-	$(INSTALL_PROGRAM) tar $(bindir)/$(binprefix)tar
-	-test ! -f rmt || $(INSTALL_PROGRAM) rmt $(libdir)/rmt
-#	for file in $(srcdir)/tar.info*; \
-#	do $(INSTALL_DATA) $$file $(infodir)/$$file; \
-#	done
+install-exec-am: install-binPROGRAMS
 
 
-uninstall:
-	rm -f $(bindir)/$(binprefix)tar	$(infodir)/tar.info*
-	-rm -f $(libdir)/rmt
+install-html: install-html-am
 
 
-installdirs:
-	$(SHELL) ${srcdir}/mkinstalldirs $(bindir) $(libdir) $(infodir)
+install-info: install-info-am
+
+install-man:
 
 
-Makefile: Makefile.in config.status
-	$(SHELL) config.status
-config.status: configure
-	$(SHELL) config.status --recheck
-configure: configure.in
-	cd $(srcdir); autoconf
+install-pdf: install-pdf-am
 
 
-$(OBJS): tar.h pathmax.h port.h testpad.h
-regex.o buffer.o tar.o: regex.h
-tar.o fnmatch.o: fnmatch.h
+install-ps: install-ps-am
 
 
-getdate.c: getdate.y
-	$(YACC) $(srcdir)/getdate.y
-	mv y.tab.c getdate.c
-# getdate.y has 8 shift/reduce conflicts.
+installcheck-am: installcheck-binPROGRAMS
 
 
-testpad.h: testpad
-	./testpad
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
 
 
-testpad: testpad.o
-	$(CC) -o $@ testpad.o
+mostlyclean: mostlyclean-am
 
 
-TAGS:	$(SRCS)
-	etags $(SRCS)
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
 
 
-clean:
-	rm -f *.o tar rmt testpad testpad.h core
+pdf: pdf-am
 
 
-mostlyclean: clean
+pdf-am:
 
 
-distclean: clean
-	rm -f Makefile config.status
+ps: ps-am
 
 
-realclean: distclean
-	rm -f TAGS *.info* getdate.c y.tab.c
+ps-am:
 
 
-shar: $(SRCS) $(AUX)
-	shar $(SRCS) $(AUX) | gzip > tar-`sed -e '/version_string/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c`.shar.z
+uninstall-am: uninstall-binPROGRAMS
 
 
-dist: $(SRCS) $(AUX)
-	echo tar-`sed -e '/version_string/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c` > .fname
-	-rm -rf `cat .fname`
-	mkdir `cat .fname`
-	for file in $(SRCS) $(AUX); do \
-          ln $$file `cat .fname` || cp $$file `cat .fname`; done
-	tar chzf `cat .fname`.tar.z `cat .fname`
-	-rm -rf `cat .fname` .fname
+.MAKE: install-am install-strip
 
 
-tar.zoo: $(SRCS) $(AUX)
-	-rm -rf tmp.dir
-	-mkdir tmp.dir
-	-rm tar.zoo
-	for X in $(SRCS) $(AUX) ; do echo $$X ; sed 's/$$/
/' $$X > tmp.dir/$$X ; done
-	cd tmp.dir ; zoo aM ../tar.zoo *
-	-rm -rf tmp.dir
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+	clean-generic ctags distclean distclean-compile \
+	distclean-generic distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-binPROGRAMS \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installcheck-binPROGRAMS \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+	ps ps-am tags uninstall uninstall-am uninstall-binPROGRAMS
 
 
-# Prevent GNU make v3 from overflowing arg limit on SysV.
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
 .NOEXPORT:

+ 4 - 11
tests/.cvsignore → tests/.gitignore

@@ -1,17 +1,10 @@
-*.bz2
-*.gz
-*.tar
-*.gtar
-.deps
-Makefile
-Makefile.in
-argcv.c
-argcv.h
 atconfig
 atconfig
 atlocal
 atlocal
-genfile
-genfile.c
 package.m4
 package.m4
 testsuite
 testsuite
 testsuite.dir
 testsuite.dir
 testsuite.log
 testsuite.log
+argcv.c
+argcv.h
+genfile.c
+genfile

+ 3 - 3
tests/Makefile.am

@@ -1,7 +1,7 @@
 # Makefile for GNU tar regression tests.
 # Makefile for GNU tar regression tests.
 
 
 # Copyright (C) 1996, 1997, 1999, 2000, 2001, 2003, 2004, 2005, 
 # Copyright (C) 1996, 1997, 1999, 2000, 2001, 2003, 2004, 2005, 
-# 2006, 2007 Free Software Foundation, Inc.
+# 2006, 2007, 2009 Free Software Foundation, Inc.
 
 
 # François Pinard <pinard@iro.umontreal.ca>, 1988.
 # François Pinard <pinard@iro.umontreal.ca>, 1988.
 # Sergey Poznyakoff <gray@mirddin.farlep.net>, 2004.
 # Sergey Poznyakoff <gray@mirddin.farlep.net>, 2004.
@@ -161,6 +161,6 @@ check_PROGRAMS = genfile
 genfile_SOURCES = genfile.c argcv.c argcv.h
 genfile_SOURCES = genfile.c argcv.c argcv.h
 
 
 localedir = $(datadir)/locale
 localedir = $(datadir)/locale
-INCLUDES = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/src
+INCLUDES = -I$(top_srcdir)/gnu -I../gnu -I$(top_srcdir)/gnu -I$(top_srcdir)/lib
 AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\"
 AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\"
-LDADD = ../lib/libtar.a $(LIBINTL) $(LIB_CLOCK_GETTIME)
+LDADD = ../gnu/libgnu.a $(LIBINTL) $(LIB_CLOCK_GETTIME)