merging coreutils-6.9 into trunk

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23131 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval
2007-12-16 18:32:10 +00:00
parent 1d1b561b4b
commit 28fab8364b
302 changed files with 23538 additions and 15620 deletions
File diff suppressed because it is too large Load Diff
+1 -2
View File
@@ -1,7 +1,6 @@
# Make coreutils. -*-Makefile-*- # Make coreutils. -*-Makefile-*-
# Copyright (C) 1990, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, # Copyright (C) 1990, 1993-2007 Free Software Foundation, Inc.
# 2001, 2002, 2003, 2004, 2005, 2006 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
+6 -2
View File
@@ -1,5 +1,5 @@
# Customize Makefile.maint. -*- makefile -*- # Customize Makefile.maint. -*- makefile -*-
# Copyright (C) 2003-2006 Free Software Foundation, Inc. # Copyright (C) 2003-2007 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
@@ -33,4 +33,8 @@ gpg_key_ID = D333CBA1
# Exclude changelog-check here so that there's less churn in ChangeLog # Exclude changelog-check here so that there's less churn in ChangeLog
# files -- otherwise, you'd need to have the upcoming version number # files -- otherwise, you'd need to have the upcoming version number
# at the top of the file for each `make distcheck' run. # at the top of the file for each `make distcheck' run.
local-checks-to-skip = changelog-check local-checks-to-skip = changelog-check strftime-check
# The local directory containing the checked-out copy of gnulib used in
# this release. Used solely to get a date for the "announcement" target.
gnulib_dir = /gnulib
+160 -49
View File
@@ -16,8 +16,7 @@
# Make coreutils. -*-Makefile-*- # Make coreutils. -*-Makefile-*-
# Copyright (C) 1990, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, # Copyright (C) 1990, 1993-2007 Free Software Foundation, Inc.
# 2001, 2002, 2003, 2004, 2005, 2006 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
@@ -83,15 +82,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
$(top_srcdir)/m4/euidaccess-stat.m4 \ $(top_srcdir)/m4/euidaccess-stat.m4 \
$(top_srcdir)/m4/euidaccess.m4 $(top_srcdir)/m4/exclude.m4 \ $(top_srcdir)/m4/euidaccess.m4 $(top_srcdir)/m4/exclude.m4 \
$(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \
$(top_srcdir)/m4/fcntl-safer.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fcntl-safer.m4 \
$(top_srcdir)/m4/fd-reopen.m4 $(top_srcdir)/m4/file-type.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fd-reopen.m4 \
$(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/filemode.m4 \ $(top_srcdir)/m4/file-type.m4 $(top_srcdir)/m4/fileblocks.m4 \
$(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/flexmember.m4 \ $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/filenamecat.m4 \
$(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/fnmatch.m4 \
$(top_srcdir)/m4/fprintftime.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fprintftime.m4 \
$(top_srcdir)/m4/fstypename.m4 $(top_srcdir)/m4/fsusage.m4 \ $(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/fstypename.m4 \
$(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/fts.m4 \ $(top_srcdir)/m4/fsusage.m4 $(top_srcdir)/m4/ftruncate.m4 \
$(top_srcdir)/m4/getaddrinfo.m4 \ $(top_srcdir)/m4/fts.m4 $(top_srcdir)/m4/getaddrinfo.m4 \
$(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \
$(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.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/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \
@@ -103,6 +102,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \ $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
$(top_srcdir)/m4/getugroups.m4 \ $(top_srcdir)/m4/getugroups.m4 \
$(top_srcdir)/m4/getusershell.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/getusershell.m4 $(top_srcdir)/m4/glibc21.m4 \
$(top_srcdir)/m4/gnulib-common.m4 \
$(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \
$(top_srcdir)/m4/group-member.m4 \ $(top_srcdir)/m4/group-member.m4 \
$(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/hash.m4 \ $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/hash.m4 \
@@ -123,17 +123,18 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
$(top_srcdir)/m4/longdouble.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/longdouble.m4 $(top_srcdir)/m4/longlong.m4 \
$(top_srcdir)/m4/ls-mntd-fs.m4 $(top_srcdir)/m4/lstat.m4 \ $(top_srcdir)/m4/ls-mntd-fs.m4 $(top_srcdir)/m4/lstat.m4 \
$(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \ $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \
$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbscasecmp.m4 \
$(top_srcdir)/m4/mbswidth.m4 $(top_srcdir)/m4/md5.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbswidth.m4 \
$(top_srcdir)/m4/memcasecmp.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memcasecmp.m4 \
$(top_srcdir)/m4/memcmp.m4 $(top_srcdir)/m4/memcoll.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \ $(top_srcdir)/m4/memcoll.m4 $(top_srcdir)/m4/memcpy.m4 \
$(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/memmove.m4 $(top_srcdir)/m4/mempcpy.m4 \
$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/memxfrm.m4 \ $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/memset.m4 \
$(top_srcdir)/m4/mkancesdirs.m4 $(top_srcdir)/m4/mkdir-p.m4 \ $(top_srcdir)/m4/memxfrm.m4 $(top_srcdir)/m4/mkancesdirs.m4 \
$(top_srcdir)/m4/mkdir-slash.m4 $(top_srcdir)/m4/mkstemp.m4 \ $(top_srcdir)/m4/mkdir-p.m4 $(top_srcdir)/m4/mkdir-slash.m4 \
$(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \ $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \
$(top_srcdir)/m4/mountlist.m4 $(top_srcdir)/m4/nanosleep.m4 \ $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/mountlist.m4 \
$(top_srcdir)/m4/mpsort.m4 $(top_srcdir)/m4/nanosleep.m4 \
$(top_srcdir)/m4/netinet_in_h.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/netinet_in_h.m4 $(top_srcdir)/m4/nls.m4 \
$(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \
$(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/physmem.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/physmem.m4 \
@@ -160,18 +161,20 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
$(top_srcdir)/m4/stat-prog.m4 $(top_srcdir)/m4/stat-time.m4 \ $(top_srcdir)/m4/stat-prog.m4 $(top_srcdir)/m4/stat-time.m4 \
$(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.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/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
$(top_srcdir)/m4/stdio-safer.m4 \ $(top_srcdir)/m4/stdio-safer.m4 $(top_srcdir)/m4/stdio_h.m4 \
$(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stpcpy.m4 \ $(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stdlib_h.m4 \
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strcspn.m4 \ $(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcspn.m4 \
$(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strftime.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strftime.m4 \
$(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
$(top_srcdir)/m4/strnumcmp.m4 $(top_srcdir)/m4/strpbrk.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strnumcmp.m4 \
$(top_srcdir)/m4/strtod.m4 $(top_srcdir)/m4/strtoimax.m4 \ $(top_srcdir)/m4/strpbrk.m4 $(top_srcdir)/m4/strtod.m4 \
$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \ $(top_srcdir)/m4/strtoimax.m4 $(top_srcdir)/m4/strtol.m4 \
$(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \ $(top_srcdir)/m4/strtoll.m4 $(top_srcdir)/m4/strtoul.m4 \
$(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
$(top_srcdir)/m4/strverscmp.m4 \
$(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/tempname.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.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/time_r.m4 $(top_srcdir)/m4/timespec.m4 \
$(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.m4 \ $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.m4 \
$(top_srcdir)/m4/unicodeio.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unicodeio.m4 $(top_srcdir)/m4/unistd-safer.m4 \
@@ -182,13 +185,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
$(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \ $(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \
$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/utimes.m4 \ $(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/utimes.m4 \
$(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \ $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \
$(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcwidth.m4 \ $(top_srcdir)/m4/wchar.m4 $(top_srcdir)/m4/wchar_t.m4 \
$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wcwidth.m4 \
$(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \
$(top_srcdir)/m4/xfts.m4 $(top_srcdir)/m4/xgetcwd.m4 \ $(top_srcdir)/m4/xfts.m4 $(top_srcdir)/m4/xgetcwd.m4 \
$(top_srcdir)/m4/xnanosleep.m4 $(top_srcdir)/m4/xreadlink.m4 \ $(top_srcdir)/m4/xnanosleep.m4 $(top_srcdir)/m4/xstrndup.m4 \
$(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtod.m4 \ $(top_srcdir)/m4/xstrtod.m4 $(top_srcdir)/m4/xstrtol.m4 \
$(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/m4/yesno.m4 \ $(top_srcdir)/m4/yesno.m4 $(top_srcdir)/configure.ac
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4) $(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@@ -221,10 +224,21 @@ DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
GZIP_ENV = --best GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print
ABSOLUTE_DIRENT_H = @ABSOLUTE_DIRENT_H@
ABSOLUTE_FCNTL_H = @ABSOLUTE_FCNTL_H@ ABSOLUTE_FCNTL_H = @ABSOLUTE_FCNTL_H@
ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@ ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
ABSOLUTE_NETINET_IN_H = @ABSOLUTE_NETINET_IN_H@
ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@ ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
ABSOLUTE_STDIO_H = @ABSOLUTE_STDIO_H@
ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
ABSOLUTE_SYS_SOCKET_H = @ABSOLUTE_SYS_SOCKET_H@
ABSOLUTE_SYS_STAT_H = @ABSOLUTE_SYS_STAT_H@ ABSOLUTE_SYS_STAT_H = @ABSOLUTE_SYS_STAT_H@
ABSOLUTE_SYS_TIME_H = @ABSOLUTE_SYS_TIME_H@
ABSOLUTE_TIME_H = @ABSOLUTE_TIME_H@
ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@ ALLOCA = @ALLOCA@
ALLOCA_H = @ALLOCA_H@ ALLOCA_H = @ALLOCA_H@
@@ -249,6 +263,7 @@ DEFAULT_POSIX2_VERSION = @DEFAULT_POSIX2_VERSION@
DEFS = @DEFS@ DEFS = @DEFS@
DEPDIR = @DEPDIR@ DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@ DF_PROG = @DF_PROG@
DIRENT_H = @DIRENT_H@
ECHO_C = @ECHO_C@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
@@ -262,23 +277,103 @@ GETOPT_H = @GETOPT_H@
GLIBC21 = @GLIBC21@ GLIBC21 = @GLIBC21@
GMSGFMT = @GMSGFMT@ GMSGFMT = @GMSGFMT@
GMSGFMT_015 = @GMSGFMT_015@ GMSGFMT_015 = @GMSGFMT_015@
GNULIB_CHOWN = @GNULIB_CHOWN@
GNULIB_DUP2 = @GNULIB_DUP2@
GNULIB_FCHDIR = @GNULIB_FCHDIR@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
GNULIB_GETCWD = @GNULIB_GETCWD@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
GNULIB_IMAXABS = @GNULIB_IMAXABS@
GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
GNULIB_MBSCHR = @GNULIB_MBSCHR@
GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
GNULIB_MBSLEN = @GNULIB_MBSLEN@
GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
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_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
GNULIB_READLINK = @GNULIB_READLINK@
GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
GNULIB_STPCPY = @GNULIB_STPCPY@
GNULIB_STPNCPY = @GNULIB_STPNCPY@
GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
GNULIB_STRDUP = @GNULIB_STRDUP@
GNULIB_STRNDUP = @GNULIB_STRNDUP@
GNULIB_STRNLEN = @GNULIB_STRNLEN@
GNULIB_STRPBRK = @GNULIB_STRPBRK@
GNULIB_STRSEP = @GNULIB_STRSEP@
GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
GNU_PACKAGE = @GNU_PACKAGE@ GNU_PACKAGE = @GNU_PACKAGE@
GREP = @GREP@ GREP = @GREP@
HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
HAVE_DUP2 = @HAVE_DUP2@
HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_MEMPCPY = @HAVE_MEMPCPY@
HAVE_MKDTEMP = @HAVE_MKDTEMP@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_READLINK = @HAVE_READLINK@
HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
HAVE_STDINT_H = @HAVE_STDINT_H@ 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_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
HAVE_UNISTD_H = @HAVE_UNISTD_H@
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
HAVE_WINT_T = @HAVE_WINT_T@
HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
HAVE__BOOL = @HAVE__BOOL@ HAVE__BOOL = @HAVE__BOOL@
HELP2MAN = @HELP2MAN@ HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
@@ -298,6 +393,7 @@ LIBINTL = @LIBINTL@
LIBOBJS = @LIBOBJS@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@ LIBS = @LIBS@
LIB_ACL = @LIB_ACL@ LIB_ACL = @LIB_ACL@
LIB_ACL_TRIVIAL = @LIB_ACL_TRIVIAL@
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
LIB_CRYPT = @LIB_CRYPT@ LIB_CRYPT = @LIB_CRYPT@
LIB_EACCESS = @LIB_EACCESS@ LIB_EACCESS = @LIB_EACCESS@
@@ -332,6 +428,23 @@ PRIPTR_PREFIX = @PRIPTR_PREFIX@
PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
RANLIB = @RANLIB@ RANLIB = @RANLIB@
REPLACE_CHOWN = @REPLACE_CHOWN@
REPLACE_FCHDIR = @REPLACE_FCHDIR@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_GETCWD = @REPLACE_GETCWD@
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
REPLACE_PRINTF = @REPLACE_PRINTF@
REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
REPLACE_SPRINTF = @REPLACE_SPRINTF@
REPLACE_STRPTIME = @REPLACE_STRPTIME@
REPLACE_TIMEGM = @REPLACE_TIMEGM@
REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
REPLACE_VPRINTF = @REPLACE_VPRINTF@
REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
SEQ_LIBM = @SEQ_LIBM@ SEQ_LIBM = @SEQ_LIBM@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
@@ -342,11 +455,15 @@ STDINT_H = @STDINT_H@
STRIP = @STRIP@ STRIP = @STRIP@
SYS_SOCKET_H = @SYS_SOCKET_H@ SYS_SOCKET_H = @SYS_SOCKET_H@
SYS_STAT_H = @SYS_STAT_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@
U = @U@ U = @U@
UNISTD_H = @UNISTD_H@
USE_NLS = @USE_NLS@ USE_NLS = @USE_NLS@
VERSION = @VERSION@ VERSION = @VERSION@
WCHAR_H = @WCHAR_H@
WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
WCTYPE_H = @WCTYPE_H@
WINT_T_SUFFIX = @WINT_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@
XGETTEXT = @XGETTEXT@ XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_015 = @XGETTEXT_015@
@@ -455,15 +572,15 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \ @for dep in $?; do \
case '$(am__configure_deps)' in \ case '$(am__configure_deps)' in \
*$$dep*) \ *$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --gnits '; \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
cd $(srcdir) && $(AUTOMAKE) --gnits \ cd $(srcdir) && $(AUTOMAKE) --gnu \
&& exit 0; \ && exit 0; \
exit 1;; \ exit 1;; \
esac; \ esac; \
done; \ done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits Makefile'; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
cd $(top_srcdir) && \ cd $(top_srcdir) && \
$(AUTOMAKE) --gnits Makefile $(AUTOMAKE) --gnu Makefile
.PRECIOUS: Makefile .PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \ @case '$?' in \
@@ -615,12 +732,6 @@ distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES) distdir: $(DISTFILES)
@case `sed 15q $(srcdir)/NEWS` in \
*"$(VERSION)"*) : ;; \
*) \
echo "NEWS not updated; not releasing" 1>&2; \
exit 1;; \
esac
$(am__remove_distdir) $(am__remove_distdir)
test -d $(distdir) || mkdir $(distdir) test -d $(distdir) || mkdir $(distdir)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+72 -56
View File
@@ -2,7 +2,7 @@
# This Makefile fragment is shared between the coreutils, # This Makefile fragment is shared between the coreutils,
# CPPI, Bison, and Autoconf. # CPPI, Bison, and Autoconf.
## Copyright (C) 2001-2006 Free Software Foundation, Inc. ## Copyright (C) 2001-2007 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
@@ -32,6 +32,7 @@ GZIP_ENV = '--no-name --best $(gzip_rsyncable)'
CVS = cvs CVS = cvs
GIT = git GIT = git
VC = $(GIT) VC = $(GIT)
VC-tag = git-tag -s -m '$(VERSION)'
CVS_LIST = build-aux/vc-list-files CVS_LIST = build-aux/vc-list-files
@@ -68,23 +69,23 @@ export LC_ALL = C
# in system.h. E.g. today I removed from tail.c a useless definition of # in system.h. E.g. today I removed from tail.c a useless definition of
# ENOSYS. It was useless because system.h ensures it's defined. # ENOSYS. It was useless because system.h ensures it's defined.
# Collect the names of rules starting with `sc_'.
syntax-check-rules := $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' $(ME))
.PHONY: $(syntax-check-rules)
# Checks that don't require cvs. # Checks that don't require cvs.
# Run `changelog-check' last, as previous test may reveal problems requiring # Run `changelog-check' last, as previous test may reveal problems requiring
# new ChangeLog entries. # new ChangeLog entries.
local-checks-available = \ local-checks-available = \
po-check copyright-check writable-files m4-check author_mark_check \ po-check copyright-check m4-check author_mark_check \
changelog-check patch-check strftime-check $(syntax-check-rules) \ changelog-check patch-check strftime-check $(syntax-check-rules) \
makefile_path_separator_check \ makefile_path_separator_check \
makefile-check check-AUTHORS makefile-check check-AUTHORS
.PHONY: $(local-checks-available) .PHONY: $(local-checks-available)
local-check = $(filter-out $(local-checks-to-skip), $(local-checks-available)) local-check := $(filter-out $(local-checks-to-skip), $(local-checks-available))
# Collect the names of rules starting with `sc_'. syntax-check: $(local-check)
syntax-check-rules := $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' $(ME))
.PHONY: $(syntax-check-rules)
syntax-check: $(syntax-check-rules)
# @grep -nE '# *include <(limits|std(def|arg|bool))\.h>' \ # @grep -nE '# *include <(limits|std(def|arg|bool))\.h>' \
# $$(find -type f -name '*.[chly]') && \ # $$(find -type f -name '*.[chly]') && \
# { echo '$(ME): found conditional include' 1>&2; \ # { echo '$(ME): found conditional include' 1>&2; \
@@ -97,21 +98,17 @@ syntax-check: $(syntax-check-rules)
# FIXME: don't allow `#include .strings\.h' anywhere # FIXME: don't allow `#include .strings\.h' anywhere
sc_cast_of_argument_to_free: sc_cast_of_argument_to_free:
@grep -nE '\<free \(\(' $(srcdir)/{lib,src}/*.[chly] && \ @grep -nE '\<free \(\(' $$($(CVS_LIST_EXCEPT)) && \
{ echo '$(ME): don'\''t cast free argument' 1>&2; \ { echo '$(ME): don'\''t cast free argument' 1>&2; \
exit 1; } || : exit 1; } || :
sc_cast_of_x_alloc_return_value: sc_cast_of_x_alloc_return_value:
@grep -nE --exclude=$(srcdir)/lib/xalloc.h \ @grep -nE '\*\) *x(m|c|re)alloc\>' $$($(CVS_LIST_EXCEPT)) && \
--exclude=$(srcdir)/lib/regex.c \
'\*\) *x(m|c|re)alloc\>' \
$(srcdir)/{lib,src}/*.[chy] && \
{ echo '$(ME): don'\''t cast x*alloc return value' 1>&2; \ { echo '$(ME): don'\''t cast x*alloc return value' 1>&2; \
exit 1; } || : exit 1; } || :
sc_cast_of_alloca_return_value: sc_cast_of_alloca_return_value:
@grep -nE '\*\) *alloca\>' \ @grep -nE '\*\) *alloca\>' $$($(CVS_LIST_EXCEPT)) && \
$(srcdir)/src/*.[chy] && \
{ echo '$(ME): don'\''t cast alloca return value' 1>&2; \ { echo '$(ME): don'\''t cast alloca return value' 1>&2; \
exit 1; } || : exit 1; } || :
@@ -120,18 +117,18 @@ sc_space_tab:
{ echo '$(ME): found SPACE-TAB sequence; remove the SPACE' \ { echo '$(ME): found SPACE-TAB sequence; remove the SPACE' \
1>&2; exit 1; } || : 1>&2; exit 1; } || :
# Don't use the old ato* functions in `real' code. # Don't use *scanf or the old ato* functions in `real' code.
# They provide no error checking mechanism. # They provide no error checking mechanism.
# Instead, use strto* functions. # Instead, use strto* functions.
sc_prohibit_atoi_atof: sc_prohibit_atoi_atof:
@grep -nE '\<ato([filq]|ll)\>' $$($(CVS_LIST_EXCEPT)) && \ @grep -nE '\<([fs]?scanf|ato([filq]|ll))\>' $$($(CVS_LIST_EXCEPT)) && \
{ echo '$(ME): do not use ato''f, ato''i, ato''l, ato''ll, or ato''q' \ { echo '$(ME): do not use *scan''f, ato''f, ato''i, ato''l, ato''ll, or ato''q' \
1>&2; exit 1; } || : 1>&2; exit 1; } || :
# Using EXIT_SUCCESS as the first argument to error is misleading, # Using EXIT_SUCCESS as the first argument to error is misleading,
# since when that parameter is 0, error does not exit. Use `0' instead. # since when that parameter is 0, error does not exit. Use `0' instead.
sc_error_exit_success: sc_error_exit_success:
@grep -nF 'error (EXIT_SUCCESS,' \ @grep -nF 'error (EXIT_SUCCESS,' \
$$(find -type f -name '*.[chly]') && \ $$(find -type f -name '*.[chly]') && \
{ echo '$(ME): found error (EXIT_SUCCESS' 1>&2; \ { echo '$(ME): found error (EXIT_SUCCESS' 1>&2; \
exit 1; } || : exit 1; } || :
@@ -211,7 +208,9 @@ sc_prohibit_jm_in_m4:
1>&2; exit 1; } || : 1>&2; exit 1; } || :
sc_root_tests: sc_root_tests:
@t1=sc-root.expected; t2=sc-root.actual; \ @if test -d tests \
&& grep check-root tests/Makefile.am>/dev/null 2>&1; then \
t1=sc-root.expected; t2=sc-root.actual; \
grep -nl '^PRIV_CHECK_ARG=require-root' \ grep -nl '^PRIV_CHECK_ARG=require-root' \
$$($(CVS_LIST) tests) |sed s,tests,., |sort > $$t1; \ $$($(CVS_LIST) tests) |sed s,tests,., |sort > $$t1; \
sed -n 's, cd \([^ ]*\) .*MAKE..check TESTS=\(.*\),./\1/\2,p' \ sed -n 's, cd \([^ ]*\) .*MAKE..check TESTS=\(.*\),./\1/\2,p' \
@@ -220,7 +219,8 @@ sc_root_tests:
rm -f $$t1 $$t2; \ rm -f $$t1 $$t2; \
test "$$diff" \ test "$$diff" \
&& { echo 'tests/Makefile.am: missing check-root action'>&2; \ && { echo 'tests/Makefile.am: missing check-root action'>&2; \
exit 1; } || : exit 1; } || :; \
fi
headers_with_interesting_macro_defs = \ headers_with_interesting_macro_defs = \
exit.h \ exit.h \
@@ -300,7 +300,7 @@ sc_trailing_blank:
# Match lines like the following, but where there is only one space # Match lines like the following, but where there is only one space
# between the options and the description: # between the options and the description:
# -D, --all-repeated[=delimit-method] print all duplicate lines\n # -D, --all-repeated[=delimit-method] print all duplicate lines\n
longopt_re = --[a-z][0-9A-Za-z-]*(\[=[0-9A-Za-z-]*\])? longopt_re = --[a-z][0-9A-Za-z-]*(\[?=[0-9A-Za-z-]*\]?)?
sc_two_space_separator_in_usage: sc_two_space_separator_in_usage:
@grep -nE '^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \ @grep -nE '^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \
$$($(CVS_LIST_EXCEPT)) && \ $$($(CVS_LIST_EXCEPT)) && \
@@ -328,7 +328,7 @@ sc_useless_cpp_parens:
patch-check: patch-check:
rm -rf src-c89 $@.1 $@.2 rm -rf src-c89 $@.1 $@.2
cp -a src src-c89 cp -a src src-c89
(cd src-c89; patch -V never --fuzz=0) < src/c99-to-c89.diff \ (cd src-c89; patch -p2 -V never --fuzz=0) < src/c99-to-c89.diff \
> $@.1 2>&1 > $@.1 2>&1
if test "$${REGEN_PATCH+set}" = set; then \ if test "$${REGEN_PATCH+set}" = set; then \
diff -upr src src-c89 > new-diff || : ; fi diff -upr src src-c89 > new-diff || : ; fi
@@ -338,8 +338,8 @@ patch-check:
$(MAKE) -C src-c89 CFLAGS='-Wdeclaration-after-statement -Werror' \ $(MAKE) -C src-c89 CFLAGS='-Wdeclaration-after-statement -Werror' \
|| msg='compile failure with extra options'; \ || msg='compile failure with extra options'; \
rm -rf src-c89 $@.1 $@.2; \ rm -rf src-c89 $@.1 $@.2; \
test $$msg = ok && : || echo "$$msg" 1>&2; \ test "$$msg" = ok && : || echo "$$msg" 1>&2; \
test $$msg = ok test "$$msg" = ok
# Ensure that date's --help output stays in sync with the info # Ensure that date's --help output stays in sync with the info
# documentation for GNU strftime. The only exception is %N, # documentation for GNU strftime. The only exception is %N,
@@ -367,22 +367,22 @@ makefile-check:
&& { echo 'Makefile.maint: use $$(...), not @...@' 1>&2; exit 1; } || : && { echo 'Makefile.maint: use $$(...), not @...@' 1>&2; exit 1; } || :
news-date-check: NEWS news-date-check: NEWS
today=`date +%Y-%m-%d`; \ today=`date +%Y-%m-%d`; \
if head NEWS | grep '^\*.* $(VERSION_REGEXP) ('$$today')' \ if head NEWS | grep '^\*.* $(VERSION_REGEXP) ('$$today')' \
>/dev/null; then \ >/dev/null; then \
:; \ :; \
else \ else \
echo "version or today's date is not in NEWS" 1>&2; \ echo "version or today's date is not in NEWS" 1>&2; \
exit 1; \ exit 1; \
fi fi
changelog-check: changelog-check:
if head ChangeLog | grep 'Version $(VERSION_REGEXP)\.$$' \ if head ChangeLog | grep 'Version $(VERSION_REGEXP)\.$$' \
>/dev/null; then \ >/dev/null; then \
:; \ :; \
else \ else \
echo "$(VERSION) not in ChangeLog" 1>&2; \ echo "$(VERSION) not in ChangeLog" 1>&2; \
exit 1; \ exit 1; \
fi fi
m4-check: m4-check:
@@ -400,6 +400,7 @@ po-check:
for file in $$($(CVS_LIST_EXCEPT)) lib/*.[ch]; do \ for file in $$($(CVS_LIST_EXCEPT)) lib/*.[ch]; do \
case $$file in \ case $$file in \
djgpp/* | man/*) continue;; \ djgpp/* | man/*) continue;; \
*/c99-to-c89.diff) continue;; \
esac; \ esac; \
case $$file in \ case $$file in \
*.[ch]) \ *.[ch]) \
@@ -448,6 +449,7 @@ writable-files:
test "$$fail" && exit 1 || : test "$$fail" && exit 1 || :
v_etc_file = lib/version-etc.c v_etc_file = lib/version-etc.c
sample-test = tests/sample-test
# Make sure that the copyright date in $(v_etc_file) is up to date. # Make sure that the copyright date in $(v_etc_file) is up to date.
copyright-check: copyright-check:
@if test -f $(v_etc_file); then \ @if test -f $(v_etc_file); then \
@@ -456,13 +458,19 @@ copyright-check:
|| { echo 'out of date copyright in $(v_etc_file); update it' 1>&2; \ || { echo 'out of date copyright in $(v_etc_file); update it' 1>&2; \
exit 1; }; \ exit 1; }; \
fi fi
@if test -f $(sample-test); then \
grep '# Copyright (C) '$$(date +%Y)' Free' $(sample-test) \
>/dev/null \
|| { echo 'out of date copyright in $(sample-test); update it' 1>&2; \
exit 1; }; \
fi
# Sanity checks with the repository. # Sanity checks with the repository.
# Abort early if this tag has already been used. # Abort early if this tag has already been used.
vc-tag-check: vc-tag-check:
used=no; \ used=no; \
if $(VC) --help | grep CVS; then \ if $(VC) --help | grep CVS; then \
$(CVS) -n log -h README|grep -e $(this-vc-tag): >/dev/null \ $(CVS) -n log -h README|grep -e $(this-vc-tag): >/dev/null \
&& used=yes; \ && used=yes; \
else \ else \
@@ -494,7 +502,7 @@ maintainer-distcheck:
# checks fail. Also, make sure the NEWS file is up-to-date. # checks fail. Also, make sure the NEWS file is up-to-date.
# FIXME: use dist-hook/my-dist like distcheck-hook/my-distcheck. # FIXME: use dist-hook/my-dist like distcheck-hook/my-distcheck.
vc-dist: $(local-check) cvs-check maintainer-distcheck vc-dist: $(local-check) cvs-check maintainer-distcheck
$(VC) tag $(this-vc-tag) $(VC-tag) $(this-vc-tag)
$(MAKE) dist $(MAKE) dist
# Use this to make sure we don't run these programs when building # Use this to make sure we don't run these programs when building
@@ -506,11 +514,11 @@ null_AM_MAKEFLAGS = \
AUTOHEADER=false \ AUTOHEADER=false \
MAKEINFO=false MAKEINFO=false
# Detect format-string/arg-list mismatches that would normally be obscured warn_cflags = -Dlint -O -Werror -Wall -Wformat -Wshadow -Wpointer-arith
# by the use of _(). The --disable-nls effectively defines away that macro,
# and building with CFLAGS='-Wformat -Werror' causes any format warning to be # Use -Wformat -Werror to detect format-string/arg-list mismatches.
# treated as a failure. Also, check for shadowing problems with -Wshadow, # Also, check for shadowing problems with -Wshadow, and for pointer
# and for pointer arithmetic problems with -Wpointer-arith. # arithmetic problems with -Wpointer-arith.
# These CFLAGS are pretty strict. If you build this target, you probably # These CFLAGS are pretty strict. If you build this target, you probably
# have to have a recent version of gcc and glibc headers. # have to have a recent version of gcc and glibc headers.
TMPDIR ?= /tmp TMPDIR ?= /tmp
@@ -521,7 +529,7 @@ my-distcheck: $(local-check) $(release_archive_dir)/$(prev-tgz)
GZIP=$(GZIP_ENV) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz GZIP=$(GZIP_ENV) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz
cd $(t)/$(distdir) \ cd $(t)/$(distdir) \
&& ./configure --disable-nls \ && ./configure --disable-nls \
&& $(MAKE) CFLAGS='-Werror -Wall -Wformat -Wshadow -Wpointer-arith' \ && $(MAKE) CFLAGS='$(warn_cflags)' \
AM_MAKEFLAGS='$(null_AM_MAKEFLAGS)' \ AM_MAKEFLAGS='$(null_AM_MAKEFLAGS)' \
&& $(MAKE) dvi \ && $(MAKE) dvi \
&& $(MAKE) check \ && $(MAKE) check \
@@ -529,11 +537,13 @@ my-distcheck: $(local-check) $(release_archive_dir)/$(prev-tgz)
(cd $(t) && mv $(distdir) $(distdir).old \ (cd $(t) && mv $(distdir) $(distdir).old \
&& $(AMTAR) -zxf - ) < $(distdir).tar.gz && $(AMTAR) -zxf - ) < $(distdir).tar.gz
diff -ur $(t)/$(distdir).old $(t)/$(distdir) diff -ur $(t)/$(distdir).old $(t)/$(distdir)
cd $(t)/$(distdir) \ if test -f $(srcdir)/src/c99-to-c89.diff; then \
&& (cd src && patch -V never --fuzz=0 <c99-to-c89.diff) \ cd $(t)/$(distdir) \
&& ./configure --disable-largefile \ && (cd src && patch -V never --fuzz=0 <c99-to-c89.diff) \
CFLAGS='-Werror -ansi -pedantic -Wno-long-long' \ && ./configure --disable-largefile \
&& $(MAKE) CFLAGS='-Werror -ansi -pedantic -Wno-long-long' \
&& $(MAKE); \
fi
-rm -rf $(t) -rm -rf $(t)
@echo "========================"; \ @echo "========================"; \
echo "$(distdir).tar.gz is ready for distribution"; \ echo "$(distdir).tar.gz is ready for distribution"; \
@@ -555,16 +565,22 @@ prev-tgz = $(PACKAGE)-$(PREV_VERSION).tar.gz
xd-delta = $(PACKAGE)-$(PREV_VERSION)-$(VERSION).xdelta xd-delta = $(PACKAGE)-$(PREV_VERSION)-$(VERSION).xdelta
rel-files = $(xd-delta) $(DIST_ARCHIVES) rel-files = $(xd-delta) $(DIST_ARCHIVES)
# Approximate the date of last gnulib "update" by the ChangeLog file's
# mtime, and provide that date in the announcement.
announcement: NEWS ChangeLog $(rel-files) announcement: NEWS ChangeLog $(rel-files)
@./build-aux/announce-gen \ @cl_date=$$(stat --printf @%Y $(gnulib_dir)/ChangeLog); \
utc_date=$$(date -u --date $$cl_date '+%Y-%m-%d %T %z'); \
./build-aux/announce-gen \
--release-type=$(RELEASE_TYPE) \ --release-type=$(RELEASE_TYPE) \
--package=$(PACKAGE) \ --package=$(PACKAGE) \
--prev=$(PREV_VERSION) \ --prev=$(PREV_VERSION) \
--curr=$(VERSION) \ --curr=$(VERSION) \
--gpg-key-id=$(gpg_key_ID) \ --gpg-key-id=$(gpg_key_ID) \
--news=NEWS \ --news=NEWS \
$(addprefix --url-dir=, $(url_dir_list)) \ --bootstrap-tools=autoconf,automake,bison,gnulib \
--gnulib-snapshot-time-stamp="$$utc_date" \
$(addprefix --url-dir=, $(url_dir_list))
## ---------------- ## ## ---------------- ##
## Updating files. ## ## Updating files. ##
@@ -580,7 +596,7 @@ emit_upload_commands:
@echo ===================================== @echo =====================================
@echo ===================================== @echo =====================================
@echo "$(srcdir)/build-aux/gnupload $(GNUPLOADFLAGS) \\" @echo "$(srcdir)/build-aux/gnupload $(GNUPLOADFLAGS) \\"
@echo " --to $(gnu_rel_host):coreutils \\" @echo " --to $(gnu_rel_host):$(PACKAGE) \\"
@echo " $(rel-files)" @echo " $(rel-files)"
@echo '# send the /tmp/announcement e-mail' @echo '# send the /tmp/announcement e-mail'
@echo ===================================== @echo =====================================
@@ -590,7 +606,7 @@ $(xd-delta): $(release_archive_dir)/$(prev-tgz) $(distdir).tar.gz
xdelta delta -9 $^ $@ || : xdelta delta -9 $^ $@ || :
.PHONY: alpha beta major .PHONY: alpha beta major
alpha beta major: news-date-check changelog-check $(local-check) alpha beta major: news-date-check changelog-check $(local-check) writable-files
test $@ = major \ test $@ = major \
&& { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \ && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \
|| { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\ || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\
+68
View File
@@ -1,5 +1,73 @@
GNU coreutils NEWS -*- outline -*- GNU coreutils NEWS -*- outline -*-
* Noteworthy changes in release 6.9 (2007-03-22) [stable]
** Bug fixes
cp -x (--one-file-system) would fail to set mount point permissions
The default block size and output format for df -P are now unaffected by
the DF_BLOCK_SIZE, BLOCK_SIZE, and BLOCKSIZE environment variables. It
is still affected by POSIXLY_CORRECT, though.
Using pr -m -s (i.e. merging files, with TAB as the output separator)
no longer inserts extraneous spaces between output columns.
* Noteworthy changes in release 6.8 (2007-02-24) [not-unstable]
** Bug fixes
chgrp, chmod, and chown now honor the --preserve-root option.
Before, they would warn, yet continuing traversing and operating on /.
chmod no longer fails in an environment (e.g., a chroot) with openat
support but with insufficient /proc support.
"cp --parents F/G D" no longer creates a directory D/F when F is not
a directory (and F/G is therefore invalid).
"cp --preserve=mode" would create directories that briefly had
too-generous permissions in some cases. For example, when copying a
directory with permissions 777 the destination directory might
temporarily be setgid on some file systems, which would allow other
users to create subfiles with the same group as the directory. Fix
similar problems with 'install' and 'mv'.
cut no longer dumps core for usage like "cut -f2- f1 f2" with two or
more file arguments. This was due to a double-free bug, introduced
in coreutils-5.3.0.
dd bs= operands now silently override any later ibs= and obs=
operands, as POSIX and tradition require.
"ls -FRL" always follows symbolic links on Linux. Introduced in
coreutils-6.0.
A cross-partition "mv /etc/passwd ~" (by non-root) now prints
a reasonable diagnostic. Before, it would print this:
"mv: cannot remove `/etc/passwd': Not a directory".
pwd and "readlink -e ." no longer fail unnecessarily when a parent
directory is unreadable.
"rm -rf /etc/passwd" (run by non-root) now prints a diagnostic.
Before it would print nothing.
"rm --interactive=never F" no longer prompts for an unwritable F
** New features
sort's new --compress-program=PROG option specifies a compression
program to use when writing and reading temporary files.
This can help save both time and disk space when sorting large inputs.
sort accepts the new option -C, which acts like -c except no diagnostic
is printed. Its --check option now accepts an optional argument, and
--check=quiet and --check=silent are now aliases for -C, while
--check=diagnose-first is an alias for -c or plain --check.
* Noteworthy changes in release 6.7 (2006-12-08) [stable] * Noteworthy changes in release 6.7 (2006-12-08) [stable]
** Bug fixes ** Bug fixes
+12
View File
@@ -97,6 +97,18 @@ Here is one possible patch to correct the problem:
+#ifndef __LP64__ +#ifndef __LP64__
************************
OSF/1 4.0d build failure
------------------------
If you use /usr/bin/make on an OSF/1 4.0d system, it will fail due
to the presence of the "[" target. That version of make appears to
treat "[" as some syntax relating to locks. To work around that,
the best solution is to use GNU make. Otherwise, simply remove
all mention of "[$(EXEEXT)" from src/Makefile.
********************** **********************
Running tests as root: Running tests as root:
---------------------- ----------------------
+7
View File
@@ -150,6 +150,7 @@ Eric Pemente [email protected]
Eric S. Raymond [email protected] Eric S. Raymond [email protected]
Erik Bennett [email protected] Erik Bennett [email protected]
Erik Corry [email protected] Erik Corry [email protected]
Evan Hunt [email protected]
Felix Lee [email protected] Felix Lee [email protected]
Felix Rauch Valenti [email protected] Felix Rauch Valenti [email protected]
Ferdinand [email protected] Ferdinand [email protected]
@@ -192,6 +193,7 @@ Hans Verkuil [email protected]
Harald Dunkel [email protected] Harald Dunkel [email protected]
Harry Liu [email protected] Harry Liu [email protected]
Harti Brandt [email protected] Harti Brandt [email protected]
Harvey Eneman [email protected]
Helen Faulkner [email protected] Helen Faulkner [email protected]
Herbert Xu [email protected] Herbert Xu [email protected]
Holger Berger [email protected] Holger Berger [email protected]
@@ -208,6 +210,7 @@ Ivo Timmermans [email protected]
James [email protected] James [email protected]
James Antill jmanti%[email protected] James Antill jmanti%[email protected]
James Lemley [email protected] James Lemley [email protected]
James Hunt [email protected]
James Sneeringer [email protected] James Sneeringer [email protected]
James Tanis [email protected] James Tanis [email protected]
James Youngman [email protected] James Youngman [email protected]
@@ -323,11 +326,13 @@ Matt Perry [email protected]
Matt Schalit [email protected] Matt Schalit [email protected]
Matt Swift [email protected] Matt Swift [email protected]
Matthew Arnison [email protected] Matthew Arnison [email protected]
Matthew M. Boedicker [email protected]
Matthew Braun [email protected] Matthew Braun [email protected]
Matthew Clarke [email protected] Matthew Clarke [email protected]
Matthew S. Levine [email protected] Matthew S. Levine [email protected]
Matthew Smith [email protected] Matthew Smith [email protected]
Matthew Swift [email protected] Matthew Swift [email protected]
Matthew Woehlke [email protected]
Matthias Urlichs [email protected] Matthias Urlichs [email protected]
Matti Aarnio [email protected] Matti Aarnio [email protected]
Mattias Wadenstein [email protected] Mattias Wadenstein [email protected]
@@ -471,6 +476,7 @@ Thomas Hood [email protected]
Thomas Luzat [email protected] Thomas Luzat [email protected]
Thomas M.Ott [email protected] Thomas M.Ott [email protected]
Thomas Quinot [email protected] Thomas Quinot [email protected]
Thomas Schwinge [email protected]
Thomas Wolff [email protected] Thomas Wolff [email protected]
Tim J. Robbins [email protected] Tim J. Robbins [email protected]
Tim Mooney [email protected] Tim Mooney [email protected]
@@ -513,6 +519,7 @@ William Bader [email protected]
William Dowling [email protected] William Dowling [email protected]
William Lewis [email protected] William Lewis [email protected]
wiregauze [email protected] wiregauze [email protected]
Wis Macomson [email protected]
Wojciech Purczynski [email protected] Wojciech Purczynski [email protected]
Wolfram Kleff [email protected] Wolfram Kleff [email protected]
Won-kyu Park [email protected] Won-kyu Park [email protected]
+9
View File
@@ -1,3 +1,12 @@
stty.c:
use xstrtoul, not sscanf
printf:
Now that gnulib supports *printf("%a"), import one of the
*printf-posix modules so that printf(1) will support %a even on
platforms where the native *printf(3) is deficient.
Suggestion form Eric Blake.
strip: add an option to specify the program used to strip binaries. strip: add an option to specify the program used to strip binaries.
suggestion from Karl Berry suggestion from Karl Berry
+13 -4
View File
@@ -11,8 +11,8 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
m4_if(m4_PACKAGE_VERSION, [2.61],, m4_if(m4_PACKAGE_VERSION, [2.61a],,
[m4_fatal([this file was generated for autoconf 2.61. [m4_fatal([this file was generated for autoconf 2.61a.
You have another version of autoconf. If you want to use that, You have another version of autoconf. If you want to use that,
you should regenerate the build system entirely.], [63])]) you should regenerate the build system entirely.], [63])])
@@ -962,6 +962,7 @@ m4_include([m4/euidaccess.m4])
m4_include([m4/exclude.m4]) m4_include([m4/exclude.m4])
m4_include([m4/exitfail.m4]) m4_include([m4/exitfail.m4])
m4_include([m4/extensions.m4]) m4_include([m4/extensions.m4])
m4_include([m4/fchdir.m4])
m4_include([m4/fcntl-safer.m4]) m4_include([m4/fcntl-safer.m4])
m4_include([m4/fcntl_h.m4]) m4_include([m4/fcntl_h.m4])
m4_include([m4/fd-reopen.m4]) m4_include([m4/fd-reopen.m4])
@@ -999,6 +1000,7 @@ m4_include([m4/gettimeofday.m4])
m4_include([m4/getugroups.m4]) m4_include([m4/getugroups.m4])
m4_include([m4/getusershell.m4]) m4_include([m4/getusershell.m4])
m4_include([m4/glibc21.m4]) m4_include([m4/glibc21.m4])
m4_include([m4/gnulib-common.m4])
m4_include([m4/gnulib-comp.m4]) m4_include([m4/gnulib-comp.m4])
m4_include([m4/group-member.m4]) m4_include([m4/group-member.m4])
m4_include([m4/hard-locale.m4]) m4_include([m4/hard-locale.m4])
@@ -1036,6 +1038,7 @@ m4_include([m4/lstat.m4])
m4_include([m4/mbchar.m4]) m4_include([m4/mbchar.m4])
m4_include([m4/mbiter.m4]) m4_include([m4/mbiter.m4])
m4_include([m4/mbrtowc.m4]) m4_include([m4/mbrtowc.m4])
m4_include([m4/mbscasecmp.m4])
m4_include([m4/mbstate_t.m4]) m4_include([m4/mbstate_t.m4])
m4_include([m4/mbswidth.m4]) m4_include([m4/mbswidth.m4])
m4_include([m4/md5.m4]) m4_include([m4/md5.m4])
@@ -1056,6 +1059,7 @@ m4_include([m4/mkstemp.m4])
m4_include([m4/mktime.m4]) m4_include([m4/mktime.m4])
m4_include([m4/modechange.m4]) m4_include([m4/modechange.m4])
m4_include([m4/mountlist.m4]) m4_include([m4/mountlist.m4])
m4_include([m4/mpsort.m4])
m4_include([m4/nanosleep.m4]) m4_include([m4/nanosleep.m4])
m4_include([m4/netinet_in_h.m4]) m4_include([m4/netinet_in_h.m4])
m4_include([m4/nls.m4]) m4_include([m4/nls.m4])
@@ -1108,12 +1112,14 @@ m4_include([m4/stdbool.m4])
m4_include([m4/stdint.m4]) m4_include([m4/stdint.m4])
m4_include([m4/stdint_h.m4]) m4_include([m4/stdint_h.m4])
m4_include([m4/stdio-safer.m4]) m4_include([m4/stdio-safer.m4])
m4_include([m4/stdio_h.m4])
m4_include([m4/stdlib-safer.m4]) m4_include([m4/stdlib-safer.m4])
m4_include([m4/stdlib_h.m4])
m4_include([m4/stpcpy.m4]) m4_include([m4/stpcpy.m4])
m4_include([m4/strcase.m4])
m4_include([m4/strcspn.m4]) m4_include([m4/strcspn.m4])
m4_include([m4/strdup.m4]) m4_include([m4/strdup.m4])
m4_include([m4/strftime.m4]) m4_include([m4/strftime.m4])
m4_include([m4/string_h.m4])
m4_include([m4/strndup.m4]) m4_include([m4/strndup.m4])
m4_include([m4/strnlen.m4]) m4_include([m4/strnlen.m4])
m4_include([m4/strnumcmp.m4]) m4_include([m4/strnumcmp.m4])
@@ -1128,7 +1134,9 @@ m4_include([m4/strtoumax.m4])
m4_include([m4/strverscmp.m4]) m4_include([m4/strverscmp.m4])
m4_include([m4/sys_socket_h.m4]) m4_include([m4/sys_socket_h.m4])
m4_include([m4/sys_stat_h.m4]) m4_include([m4/sys_stat_h.m4])
m4_include([m4/sys_time_h.m4])
m4_include([m4/tempname.m4]) m4_include([m4/tempname.m4])
m4_include([m4/time_h.m4])
m4_include([m4/time_r.m4]) m4_include([m4/time_r.m4])
m4_include([m4/timespec.m4]) m4_include([m4/timespec.m4])
m4_include([m4/tm_gmtoff.m4]) m4_include([m4/tm_gmtoff.m4])
@@ -1149,14 +1157,15 @@ m4_include([m4/utimes-null.m4])
m4_include([m4/utimes.m4]) m4_include([m4/utimes.m4])
m4_include([m4/vasnprintf.m4]) m4_include([m4/vasnprintf.m4])
m4_include([m4/vasprintf.m4]) m4_include([m4/vasprintf.m4])
m4_include([m4/wchar.m4])
m4_include([m4/wchar_t.m4]) m4_include([m4/wchar_t.m4])
m4_include([m4/wctype.m4])
m4_include([m4/wcwidth.m4]) m4_include([m4/wcwidth.m4])
m4_include([m4/wint_t.m4]) m4_include([m4/wint_t.m4])
m4_include([m4/xalloc.m4]) m4_include([m4/xalloc.m4])
m4_include([m4/xfts.m4]) m4_include([m4/xfts.m4])
m4_include([m4/xgetcwd.m4]) m4_include([m4/xgetcwd.m4])
m4_include([m4/xnanosleep.m4]) m4_include([m4/xnanosleep.m4])
m4_include([m4/xreadlink.m4])
m4_include([m4/xstrndup.m4]) m4_include([m4/xstrndup.m4])
m4_include([m4/xstrtod.m4]) m4_include([m4/xstrtod.m4])
m4_include([m4/xstrtol.m4]) m4_include([m4/xstrtol.m4])
+110 -58
View File
@@ -1,8 +1,8 @@
#! /bin/sh #! /bin/sh
# Bootstrap this package from CVS. # Bootstrap this package from checked-out sources.
# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # Copyright (C) 2003, 2004, 2005, 2006, 2007 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
@@ -29,6 +29,11 @@ nl='
LC_ALL=C LC_ALL=C
export LC_ALL export LC_ALL
# 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]...
@@ -38,14 +43,14 @@ 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.
--cvs-user=USERNAME Set the CVS username to be used when accessing --cvs-user=USERNAME Set the username to use when checking out
the gnulib repository. sources from the gnulib repository.
If the file .bootstrap.conf exists in the current working directory, its If the file .bootstrap.conf exists in the current working directory, its
contents are read as shell variables to configure the bootstrap. contents are read as shell variables to configure the bootstrap.
@@ -84,19 +89,20 @@ 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
# Extra files from gnulib, which override files from other sources. # Extra files from gnulib, which override files from other sources.
gnulib_extra_files=' gnulib_extra_files="
build-aux/announce-gen $build_aux/install-sh
build-aux/install-sh $build_aux/missing
build-aux/missing $build_aux/mdate-sh
build-aux/mdate-sh $build_aux/texinfo.tex
build-aux/texinfo.tex $build_aux/depcomp
build-aux/depcomp $build_aux/config.guess
build-aux/config.guess $build_aux/config.sub
build-aux/config.sub
doc/INSTALL doc/INSTALL
' "
# Other locale categories that need message catalogs. # Other locale categories that need message catalogs.
EXTRA_LOCALE_CATEGORIES= EXTRA_LOCALE_CATEGORIES=
@@ -113,7 +119,7 @@ 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
@@ -138,7 +144,7 @@ do
--skip-po) --skip-po)
SKIP_PO=t;; SKIP_PO=t;;
--force) --force)
CVS_only_file=;; checkout_only_file=;;
--copy) --copy)
copy=true;; copy=true;;
*) *)
@@ -147,12 +153,42 @@ 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
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.
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 ig in .cvsignore .gitignore; do
test -f $ig && insert_sorted_if_absent $ig $build_aux
done
fi
echo "$0: Bootstrapping from checked-out $package sources..."
cleanup_gnulib() { cleanup_gnulib() {
status=$? status=$?
@@ -246,7 +282,9 @@ case $SKIP_PO in
WGET_COMMAND='';; WGET_COMMAND='';;
esac esac
get_translations po $package || exit if test -d po; then
get_translations po $package || exit
fi
if test -d runtime-po; then if test -d runtime-po; then
get_translations runtime-po $package-runtime || exit get_translations runtime-po $package-runtime || exit
@@ -315,7 +353,8 @@ cp_mark_as_generated()
if test -z "$c1"; then if test -z "$c1"; then
cmp -s "$cp_src" "$cp_dst" || { cmp -s "$cp_src" "$cp_dst" || {
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" &&
sed "s!$bt_regex/!!g" "$cp_src" > "$cp_dst"
} }
else else
# Copy the file first to get proper permissions if it # Copy the file first to get proper permissions if it
@@ -324,7 +363,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"
@@ -362,7 +401,7 @@ slurp() {
done done
if test $file = Makefile.am; then if test $file = Makefile.am; then
copied=$copied${sep}gnulib.mk; sep=$nl copied=$copied${sep}gnulib.mk; sep=$nl
remove_intl='/^[^#].*\/intl/s/^/#/' remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g"
sed "$remove_intl" $1/$dir/$file | cmp -s - $dir/gnulib.mk || { sed "$remove_intl" $1/$dir/$file | cmp -s - $dir/gnulib.mk || {
echo "$0: Copying $1/$dir/$file to $dir/gnulib.mk ..." && echo "$0: Copying $1/$dir/$file to $dir/gnulib.mk ..." &&
rm -f $dir/gnulib.mk && rm -f $dir/gnulib.mk &&
@@ -393,8 +432,12 @@ slurp() {
for dot_ig in .cvsignore .gitignore; do for dot_ig in .cvsignore .gitignore; do
ig=$dir/$dot_ig ig=$dir/$dot_ig
if test -n "$copied" && test -f $ig; then if test -n "$copied" && test -f $ig; then
echo "$copied" | sort -u - $ig | cmp -s - $ig || insert_sorted_if_absent $ig "$copied"
echo "$copied" | sort -u - $ig -o $ig || exit # If an ignored file name ends with _.h, then also add
# the name with just ".h". Many gnulib headers are generated,
# e.g., stdint_.h -> stdint.h, dirent_.h ->..., etc.
f=`echo "$copied"|sed 's/_\.h$/.h/'`
insert_sorted_if_absent $ig "$f"
fi fi
done done
done done
@@ -402,9 +445,6 @@ slurp() {
# 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
@@ -413,9 +453,9 @@ mkdir $bt $bt2 || exit
gnulib_tool_options="\ gnulib_tool_options="\
--import\ --import\
--no-changelog\ --no-changelog\
--aux-dir $bt/build-aux\ --aux-dir $bt/$build_aux\
--doc-base $bt/doc\ --doc-base $bt/doc\
--lib lib$package\ --lib $gnulib_name\
--m4-base $bt/m4/\ --m4-base $bt/m4/\
--source-base $bt/lib/\ --source-base $bt/lib/\
--tests-base $bt/tests\ --tests-base $bt/tests\
@@ -431,23 +471,34 @@ done
# Import from gettext. # Import from gettext.
with_gettext=yes
grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
with_gettext=no
echo "$0: (cd $bt2; autopoint) ..." if test $with_gettext = yes; then
cp configure.ac $bt2 && echo "$0: (cd $bt2; autopoint) ..."
(cd $bt2 && autopoint && rm configure.ac) && cp configure.ac $bt2 &&
slurp $bt2 $bt || exit (cd $bt2 && autopoint && rm configure.ac) &&
slurp $bt2 $bt || exit
rm -fr $bt $bt2 || exit rm -fr $bt $bt2 || exit
fi
# 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
grep '^[ ]*AM_PROG_LIBTOOL\>' configure.ac >/dev/null ||
continue
command='libtoolize -c -f'
fi
echo "$0: $command ..." echo "$0: $command ..."
$command || exit $command || exit
done done
@@ -463,36 +514,37 @@ for file in $gnulib_extra_files; do
symlink_to_gnulib $file $dst || exit symlink_to_gnulib $file $dst || exit
done done
if test $with_gettext = yes; then
# Create gettext configuration. # Create gettext configuration.
echo "$0: Creating po/Makevars from po/Makevars.template ..." echo "$0: Creating po/Makevars from po/Makevars.template ..."
rm -f po/Makevars 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
sed ' sed '
/^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/ /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
/^subdir *=.*/s/=.*/= runtime-po/
/^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/ /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
/^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
# Copy identical files from po to runtime-po. if test -d runtime-po; then
(cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po) # 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)
fi
fi fi
echo "$0: done. Now you can run './configure'." echo "$0: done. Now you can run './configure'."
+41 -23
View File
@@ -1,6 +1,6 @@
# Bootstrap configuration. # Bootstrap configuration.
# Copyright (C) 2006 Free Software Foundation, Inc. # Copyright (C) 2006, 2007 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,11 +19,12 @@
# 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 and fchdir dependencies.
avoided_gnulib_modules=' avoided_gnulib_modules='
--avoid=lock --avoid=lock
--avoid=size_max --avoid=size_max
--avoid=xsize --avoid=xsize
--avoid=canonicalize-lgpl
' '
# These modules are obsolete and can probably be removed soon, # These modules are obsolete and can probably be removed soon,
@@ -37,12 +38,14 @@ obsolete_gnulib_modules='
gnulib_modules=" gnulib_modules="
$avoided_gnulib_modules $avoided_gnulib_modules
$obsolete_gnulib_modules $obsolete_gnulib_modules
acl alloca argmatch assert backupfile base64 c-strtod acl alloca announce-gen argmatch assert backupfile base64
c-strcase c-strtod
c-strtold calloc canon-host canonicalize chown cloexec c-strtold calloc canon-host canonicalize chown cloexec
config-h configmake config-h configmake
closeout cycle-check d-ino d-type diacrit dirfd dirname dup2 closeout cycle-check d-ino d-type diacrit dirfd dirname dup2
error euidaccess exclude exitfail fcntl fcntl-safer fdl file-type error euidaccess exclude exitfail fchdir fcntl fcntl-safer fdl
fileblocks filemode filenamecat fnmatch-gnu fopen-safer file-type fileblocks filemode filenamecat fnmatch-gnu
fopen-safer
fprintftime fsusage ftruncate fts getdate getgroups gethrxtime fprintftime fsusage ftruncate fts getdate getgroups gethrxtime
getline getloadavg getndelim2 getopt getpagesize getpass-gnu getline getloadavg getndelim2 getopt getpagesize getpass-gnu
gettext gettime gettimeofday getugroups getusershell gnupload gettext gettime gettimeofday getugroups getusershell gnupload
@@ -51,20 +54,20 @@ gnulib_modules="
lchmod lchown lib-ignore linebuffer link-follow lchmod lchown lib-ignore linebuffer link-follow
long-options lstat malloc mbswidth md5 memcasecmp mempcpy long-options lstat malloc mbswidth md5 memcasecmp mempcpy
memrchr mkancesdirs mkdir mkdir-p mkstemp mktime modechange memrchr mkancesdirs mkdir mkdir-p mkstemp mktime modechange
mountlist obstack pathmax perl physmem posixtm posixver putenv mountlist mpsort obstack pathmax perl physmem posixtm posixver putenv
quote quotearg raise readlink readtokens readtokens0 readutmp quote quotearg raise readlink readtokens readtokens0 readutmp
realloc regex rename-dest-slash rmdir rmdir-errno realloc regex rename-dest-slash rmdir rmdir-errno
root-dev-ino root-dev-ino
rpmatch rpmatch
safe-read same safe-read same
save-cwd savedir savewd settime sha1 sig2str ssize_t stat-macros save-cwd savedir savewd settime sha1 sig2str ssize_t stat-macros
stat-time stdbool stdlib-safer stpcpy strcase strftime stat-time stdbool stdlib-safer stpcpy strftime
strpbrk strtoimax strtoumax strverscmp sys_stat timespec tzset strpbrk strtoimax strtoumax strverscmp sys_stat timespec tzset
unicodeio unistd-safer unlink-busy unlinkdir unlocked-io unicodeio unistd-safer unlink-busy unlinkdir unlocked-io
uptime userspec utimecmp utimens vasprintf verify version-etc-fsf uptime userspec utimecmp utimens vasprintf verify version-etc-fsf
wcwidth winsz-ioctl winsz-termios xalloc xgetcwd xgethostname wcwidth winsz-ioctl winsz-termios xalloc xgetcwd xgethostname
xmemcoll xnanosleep xreadlink xstrtod xstrtoimax xstrtol xmemcoll xnanosleep xreadlink xreadlink-with-size xstrtod xstrtoimax
xstrtold xstrtoumax yesno xstrtol xstrtold xstrtoumax yesno
" "
# Other locale categories that need message catalogs. # Other locale categories that need message catalogs.
@@ -78,17 +81,32 @@ XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
--flag=wrapf:1:c-format\\\ --flag=wrapf:1:c-format\\\
' '
# Gettext supplies these files, but we don't need them since # If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]"
# we don't have an intl subdirectory. # appears in configure.ac, exclude some unnecessary files.
excluded_files=' # Without grep's -E option (not portable enough, pre-configure),
m4/glibc2.m4 # the following test is ugly. Also, this depends on the existence
m4/intdiv0.m4 # of configure.ac, not the obsolescent-named configure.in. But if
m4/lcmessage.m4 # you're using this infrastructure, you should care about such things.
m4/lock.m4
m4/printf-posix.m4 gettext_external=0
m4/size_max.m4 grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null &&
m4/uintmax_t.m4 gettext_external=1
m4/ulonglong.m4 grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null &&
m4/visibility.m4 gettext_external=1
m4/xsize.m4
' if test $gettext_external = 1; then
# Gettext supplies these files, but we don't need them since
# we don't have an intl subdirectory.
excluded_files='
m4/glibc2.m4
m4/intdiv0.m4
m4/lcmessage.m4
m4/lock.m4
m4/printf-posix.m4
m4/size_max.m4
m4/uintmax_t.m4
m4/ulonglong.m4
m4/visibility.m4
m4/xsize.m4
'
fi
+13843 -12131
View File
File diff suppressed because it is too large Load Diff
+6 -4
View File
@@ -1,7 +1,7 @@
# -*- autoconf -*- # -*- autoconf -*-
# Process this file with autoconf to produce a configure script. # Process this file with autoconf to produce a configure script.
# Copyright (C) 1991, 1993-2006 Free Software Foundation, Inc. # Copyright (C) 1991, 1993-2007 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,15 +19,15 @@
dnl Written by Jim Meyering. dnl Written by Jim Meyering.
AC_PREREQ(2.60) AC_PREREQ(2.61)
AC_INIT([GNU coreutils],[6.7],[[email protected]]) AC_INIT([GNU coreutils],[6.9],[[email protected]])
AC_CONFIG_SRCDIR(src/ls.c) AC_CONFIG_SRCDIR(src/ls.c)
AC_CONFIG_AUX_DIR(build-aux) AC_CONFIG_AUX_DIR(build-aux)
AC_CONFIG_HEADERS([lib/config.h:lib/config.hin]) AC_CONFIG_HEADERS([lib/config.h:lib/config.hin])
AB_INIT() AB_INIT()
AM_INIT_AUTOMAKE([1.9.6 gnits dist-bzip2]) AM_INIT_AUTOMAKE([1.10 dist-bzip2])
AC_PROG_CC_STDC AC_PROG_CC_STDC
AM_PROG_CC_C_O AM_PROG_CC_C_O
@@ -39,6 +39,8 @@ gl_EARLY
gl_INIT gl_INIT
coreutils_MACROS coreutils_MACROS
AC_FUNC_FORK
AC_CHECK_FUNCS(uname, AC_CHECK_FUNCS(uname,
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS uname\$(EXEEXT)" OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS uname\$(EXEEXT)"
MAN="$MAN uname.1") MAN="$MAN uname.1")
+75
View File
@@ -1,3 +1,78 @@
2007-03-21 Eric Blake <[email protected]>
* coreutils.texi (md5sum invocation): Document escapes in output
format. Reported by Armijn Hemel.
2007-03-15 Paul Eggert <[email protected]>
Fix manual in response to bug reports by Dan Jacobson.
* coreutils.texi (sort invocation): Explain numeric sorts better.
Compress self-congratulation into a simple "comparison is exact"
notice; the --general-numeric-sort option already explains the
tradeoffs.
(seq invocation): Add example of -f.
2007-03-12 Jim Meyering <[email protected]>
* coreutils.texi (cp invocation): Mention that --preserve=timestamps
doesn't preserve time stamps on symbolic links.
Reported by Polo Talnir in <https://bugzilla.redhat.com/230866>.
2007-02-27 Paul Eggert <[email protected]>
* coreutils.texi (df invocation): With -P, the default block size
and output format is not affected by DF_BLOCK_SIZE, BLOCK_SIZE, or
BLOCKSIZE.
2007-01-30 Paul Eggert <[email protected]>
* coreutils.texi
(Input processing in ptx, mkdir invocation, rmdir invocation):
@item -> @itemx to fix some typos.
2007-01-30 Paul Eggert <[email protected]>
* coreutils.texi (mkdir invocation): Say how to set the file
permission bits of a parent directory with mkdir -p.
2007-01-29 Jim Meyering <[email protected]>
Document new syntax: "chown +0:+287 file", "chgrp +99 file"
* coreutils.texi (Disambiguating names and IDs): New section.
(chown invocation, chgrp invocation): Mention the new syntax
with an xref to the new section.
2007-01-19 Jim Meyering <[email protected]>
* coreutils.texi (ls: General output formatting): Mention the
workarounds to accommodate the Apple Terminal bug.
2007-01-04 Jim Meyering <[email protected]>
* coreutils.texi (base64 invocation): When decoding, newlines
are always accepted.
2007-01-03 Jim Meyering <[email protected]>
Document what the ".0" in e.g., "-k 2,3.0" means, and...
* coreutils.texi (sort invocation): ... that it can be applied to the
field-end spec, but not the field-start one. Patch from Evan Hunt.
2006-12-21 Jim Meyering <[email protected]>
* coreutils.texi (dd invocation): Improve the documentation
for bs, ibs, obs, and cbs. Suggestion from Dan Jacobson.
Patch by Olivier Delhomme.
(dd invocation): Add to the description of cbs.
(dd invocation): Specify that bs=N overrides only any
_preceding_ ibs and obs settings. Spotted by Andreas Schwab.
2006-12-14 Jim Meyering <[email protected]>
* coreutils.texi: Remove two doubled words.
(Treating / specially): With --preserve-root, chgrp and chown
will not modify "/", even through a symlink.
2006-11-28 Jim Meyering <[email protected]> 2006-11-28 Jim Meyering <[email protected]>
* perm.texi (Mode Structure): Fix typo: s/setgid/setuid/. * perm.texi (Mode Structure): Fix typo: s/setgid/setuid/.
+157 -39
View File
@@ -78,15 +78,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
$(top_srcdir)/m4/euidaccess-stat.m4 \ $(top_srcdir)/m4/euidaccess-stat.m4 \
$(top_srcdir)/m4/euidaccess.m4 $(top_srcdir)/m4/exclude.m4 \ $(top_srcdir)/m4/euidaccess.m4 $(top_srcdir)/m4/exclude.m4 \
$(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \
$(top_srcdir)/m4/fcntl-safer.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fcntl-safer.m4 \
$(top_srcdir)/m4/fd-reopen.m4 $(top_srcdir)/m4/file-type.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fd-reopen.m4 \
$(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/filemode.m4 \ $(top_srcdir)/m4/file-type.m4 $(top_srcdir)/m4/fileblocks.m4 \
$(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/flexmember.m4 \ $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/filenamecat.m4 \
$(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/fnmatch.m4 \
$(top_srcdir)/m4/fprintftime.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fprintftime.m4 \
$(top_srcdir)/m4/fstypename.m4 $(top_srcdir)/m4/fsusage.m4 \ $(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/fstypename.m4 \
$(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/fts.m4 \ $(top_srcdir)/m4/fsusage.m4 $(top_srcdir)/m4/ftruncate.m4 \
$(top_srcdir)/m4/getaddrinfo.m4 \ $(top_srcdir)/m4/fts.m4 $(top_srcdir)/m4/getaddrinfo.m4 \
$(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \
$(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.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/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \
@@ -98,6 +98,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \ $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
$(top_srcdir)/m4/getugroups.m4 \ $(top_srcdir)/m4/getugroups.m4 \
$(top_srcdir)/m4/getusershell.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/getusershell.m4 $(top_srcdir)/m4/glibc21.m4 \
$(top_srcdir)/m4/gnulib-common.m4 \
$(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \
$(top_srcdir)/m4/group-member.m4 \ $(top_srcdir)/m4/group-member.m4 \
$(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/hash.m4 \ $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/hash.m4 \
@@ -118,17 +119,18 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
$(top_srcdir)/m4/longdouble.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/longdouble.m4 $(top_srcdir)/m4/longlong.m4 \
$(top_srcdir)/m4/ls-mntd-fs.m4 $(top_srcdir)/m4/lstat.m4 \ $(top_srcdir)/m4/ls-mntd-fs.m4 $(top_srcdir)/m4/lstat.m4 \
$(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \ $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \
$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbscasecmp.m4 \
$(top_srcdir)/m4/mbswidth.m4 $(top_srcdir)/m4/md5.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbswidth.m4 \
$(top_srcdir)/m4/memcasecmp.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memcasecmp.m4 \
$(top_srcdir)/m4/memcmp.m4 $(top_srcdir)/m4/memcoll.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \ $(top_srcdir)/m4/memcoll.m4 $(top_srcdir)/m4/memcpy.m4 \
$(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/memmove.m4 $(top_srcdir)/m4/mempcpy.m4 \
$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/memxfrm.m4 \ $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/memset.m4 \
$(top_srcdir)/m4/mkancesdirs.m4 $(top_srcdir)/m4/mkdir-p.m4 \ $(top_srcdir)/m4/memxfrm.m4 $(top_srcdir)/m4/mkancesdirs.m4 \
$(top_srcdir)/m4/mkdir-slash.m4 $(top_srcdir)/m4/mkstemp.m4 \ $(top_srcdir)/m4/mkdir-p.m4 $(top_srcdir)/m4/mkdir-slash.m4 \
$(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \ $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \
$(top_srcdir)/m4/mountlist.m4 $(top_srcdir)/m4/nanosleep.m4 \ $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/mountlist.m4 \
$(top_srcdir)/m4/mpsort.m4 $(top_srcdir)/m4/nanosleep.m4 \
$(top_srcdir)/m4/netinet_in_h.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/netinet_in_h.m4 $(top_srcdir)/m4/nls.m4 \
$(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \
$(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/physmem.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/physmem.m4 \
@@ -155,18 +157,20 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
$(top_srcdir)/m4/stat-prog.m4 $(top_srcdir)/m4/stat-time.m4 \ $(top_srcdir)/m4/stat-prog.m4 $(top_srcdir)/m4/stat-time.m4 \
$(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.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/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
$(top_srcdir)/m4/stdio-safer.m4 \ $(top_srcdir)/m4/stdio-safer.m4 $(top_srcdir)/m4/stdio_h.m4 \
$(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stpcpy.m4 \ $(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stdlib_h.m4 \
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strcspn.m4 \ $(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcspn.m4 \
$(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strftime.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strftime.m4 \
$(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
$(top_srcdir)/m4/strnumcmp.m4 $(top_srcdir)/m4/strpbrk.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strnumcmp.m4 \
$(top_srcdir)/m4/strtod.m4 $(top_srcdir)/m4/strtoimax.m4 \ $(top_srcdir)/m4/strpbrk.m4 $(top_srcdir)/m4/strtod.m4 \
$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \ $(top_srcdir)/m4/strtoimax.m4 $(top_srcdir)/m4/strtol.m4 \
$(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \ $(top_srcdir)/m4/strtoll.m4 $(top_srcdir)/m4/strtoul.m4 \
$(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
$(top_srcdir)/m4/strverscmp.m4 \
$(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/tempname.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.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/time_r.m4 $(top_srcdir)/m4/timespec.m4 \
$(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.m4 \ $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.m4 \
$(top_srcdir)/m4/unicodeio.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unicodeio.m4 $(top_srcdir)/m4/unistd-safer.m4 \
@@ -177,13 +181,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
$(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \ $(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \
$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/utimes.m4 \ $(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/utimes.m4 \
$(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \ $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \
$(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcwidth.m4 \ $(top_srcdir)/m4/wchar.m4 $(top_srcdir)/m4/wchar_t.m4 \
$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wcwidth.m4 \
$(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \
$(top_srcdir)/m4/xfts.m4 $(top_srcdir)/m4/xgetcwd.m4 \ $(top_srcdir)/m4/xfts.m4 $(top_srcdir)/m4/xgetcwd.m4 \
$(top_srcdir)/m4/xnanosleep.m4 $(top_srcdir)/m4/xreadlink.m4 \ $(top_srcdir)/m4/xnanosleep.m4 $(top_srcdir)/m4/xstrndup.m4 \
$(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtod.m4 \ $(top_srcdir)/m4/xstrtod.m4 $(top_srcdir)/m4/xstrtol.m4 \
$(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/m4/yesno.m4 \ $(top_srcdir)/m4/yesno.m4 $(top_srcdir)/configure.ac
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4) $(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d mkinstalldirs = $(install_sh) -d
@@ -212,10 +216,21 @@ am__vpath_adj = case $$p in \
esac; esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ABSOLUTE_DIRENT_H = @ABSOLUTE_DIRENT_H@
ABSOLUTE_FCNTL_H = @ABSOLUTE_FCNTL_H@ ABSOLUTE_FCNTL_H = @ABSOLUTE_FCNTL_H@
ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@ ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
ABSOLUTE_NETINET_IN_H = @ABSOLUTE_NETINET_IN_H@
ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@ ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
ABSOLUTE_STDIO_H = @ABSOLUTE_STDIO_H@
ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
ABSOLUTE_SYS_SOCKET_H = @ABSOLUTE_SYS_SOCKET_H@
ABSOLUTE_SYS_STAT_H = @ABSOLUTE_SYS_STAT_H@ ABSOLUTE_SYS_STAT_H = @ABSOLUTE_SYS_STAT_H@
ABSOLUTE_SYS_TIME_H = @ABSOLUTE_SYS_TIME_H@
ABSOLUTE_TIME_H = @ABSOLUTE_TIME_H@
ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@ ALLOCA = @ALLOCA@
ALLOCA_H = @ALLOCA_H@ ALLOCA_H = @ALLOCA_H@
@@ -240,6 +255,7 @@ DEFAULT_POSIX2_VERSION = @DEFAULT_POSIX2_VERSION@
DEFS = @DEFS@ DEFS = @DEFS@
DEPDIR = @DEPDIR@ DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@ DF_PROG = @DF_PROG@
DIRENT_H = @DIRENT_H@
ECHO_C = @ECHO_C@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
@@ -253,23 +269,103 @@ GETOPT_H = @GETOPT_H@
GLIBC21 = @GLIBC21@ GLIBC21 = @GLIBC21@
GMSGFMT = @GMSGFMT@ GMSGFMT = @GMSGFMT@
GMSGFMT_015 = @GMSGFMT_015@ GMSGFMT_015 = @GMSGFMT_015@
GNULIB_CHOWN = @GNULIB_CHOWN@
GNULIB_DUP2 = @GNULIB_DUP2@
GNULIB_FCHDIR = @GNULIB_FCHDIR@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
GNULIB_GETCWD = @GNULIB_GETCWD@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
GNULIB_IMAXABS = @GNULIB_IMAXABS@
GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
GNULIB_MBSCHR = @GNULIB_MBSCHR@
GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
GNULIB_MBSLEN = @GNULIB_MBSLEN@
GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
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_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
GNULIB_READLINK = @GNULIB_READLINK@
GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
GNULIB_STPCPY = @GNULIB_STPCPY@
GNULIB_STPNCPY = @GNULIB_STPNCPY@
GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
GNULIB_STRDUP = @GNULIB_STRDUP@
GNULIB_STRNDUP = @GNULIB_STRNDUP@
GNULIB_STRNLEN = @GNULIB_STRNLEN@
GNULIB_STRPBRK = @GNULIB_STRPBRK@
GNULIB_STRSEP = @GNULIB_STRSEP@
GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
GNU_PACKAGE = @GNU_PACKAGE@ GNU_PACKAGE = @GNU_PACKAGE@
GREP = @GREP@ GREP = @GREP@
HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
HAVE_DUP2 = @HAVE_DUP2@
HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_MEMPCPY = @HAVE_MEMPCPY@
HAVE_MKDTEMP = @HAVE_MKDTEMP@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_READLINK = @HAVE_READLINK@
HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
HAVE_STDINT_H = @HAVE_STDINT_H@ 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_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
HAVE_UNISTD_H = @HAVE_UNISTD_H@
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
HAVE_WINT_T = @HAVE_WINT_T@
HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
HAVE__BOOL = @HAVE__BOOL@ HAVE__BOOL = @HAVE__BOOL@
HELP2MAN = @HELP2MAN@ HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
@@ -289,6 +385,7 @@ LIBINTL = @LIBINTL@
LIBOBJS = @LIBOBJS@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@ LIBS = @LIBS@
LIB_ACL = @LIB_ACL@ LIB_ACL = @LIB_ACL@
LIB_ACL_TRIVIAL = @LIB_ACL_TRIVIAL@
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
LIB_CRYPT = @LIB_CRYPT@ LIB_CRYPT = @LIB_CRYPT@
LIB_EACCESS = @LIB_EACCESS@ LIB_EACCESS = @LIB_EACCESS@
@@ -323,6 +420,23 @@ PRIPTR_PREFIX = @PRIPTR_PREFIX@
PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
RANLIB = @RANLIB@ RANLIB = @RANLIB@
REPLACE_CHOWN = @REPLACE_CHOWN@
REPLACE_FCHDIR = @REPLACE_FCHDIR@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_GETCWD = @REPLACE_GETCWD@
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
REPLACE_PRINTF = @REPLACE_PRINTF@
REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
REPLACE_SPRINTF = @REPLACE_SPRINTF@
REPLACE_STRPTIME = @REPLACE_STRPTIME@
REPLACE_TIMEGM = @REPLACE_TIMEGM@
REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
REPLACE_VPRINTF = @REPLACE_VPRINTF@
REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
SEQ_LIBM = @SEQ_LIBM@ SEQ_LIBM = @SEQ_LIBM@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
@@ -333,11 +447,15 @@ STDINT_H = @STDINT_H@
STRIP = @STRIP@ STRIP = @STRIP@
SYS_SOCKET_H = @SYS_SOCKET_H@ SYS_SOCKET_H = @SYS_SOCKET_H@
SYS_STAT_H = @SYS_STAT_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@
U = @U@ U = @U@
UNISTD_H = @UNISTD_H@
USE_NLS = @USE_NLS@ USE_NLS = @USE_NLS@
VERSION = @VERSION@ VERSION = @VERSION@
WCHAR_H = @WCHAR_H@
WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
WCTYPE_H = @WCTYPE_H@
WINT_T_SUFFIX = @WINT_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@
XGETTEXT = @XGETTEXT@ XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_015 = @XGETTEXT_015@
@@ -424,9 +542,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \ exit 1;; \
esac; \ esac; \
done; \ done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits doc/Makefile'; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
cd $(top_srcdir) && \ cd $(top_srcdir) && \
$(AUTOMAKE) --gnits doc/Makefile $(AUTOMAKE) --gnu doc/Makefile
.PRECIOUS: Makefile .PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \ @case '$?' in \
File diff suppressed because it is too large Load Diff
+191 -60
View File
@@ -208,6 +208,7 @@ Common Options
* Exit status:: Indicating program success or failure. * Exit status:: Indicating program success or failure.
* Backup options:: Backup options * Backup options:: Backup options
* Block size:: Block size * Block size:: Block size
* Disambiguating names and IDs:: chgrp and chown owner and group syntax
* Random sources:: Sources of random data * Random sources:: Sources of random data
* Target directory:: Target directory * Target directory:: Target directory
* Trailing slashes:: Trailing slashes * Trailing slashes:: Trailing slashes
@@ -557,8 +558,8 @@ symbolic link to a directory. @xref{Target directory}.
@itemx --si @itemx --si
@opindex --si @opindex --si
@cindex SI output @cindex SI output
Append an SI-style abbreviation to each size, such as @samp{MB} for Append an SI-style abbreviation to each size, such as @samp{M} for
megabytes. Powers of 1000 are used, not 1024; @samp{MB} stands for megabytes. Powers of 1000 are used, not 1024; @samp{M} stands for
1,000,000 bytes. This option is equivalent to 1,000,000 bytes. This option is equivalent to
@option{--block-size=si}. Use the @option{-h} or @option{--block-size=si}. Use the @option{-h} or
@option{--human-readable} option if @option{--human-readable} option if
@@ -644,6 +645,7 @@ name.
* Exit status:: Indicating program success or failure. * Exit status:: Indicating program success or failure.
* Backup options:: -b -S, in some programs. * Backup options:: -b -S, in some programs.
* Block size:: BLOCK_SIZE and --block-size, in some programs. * Block size:: BLOCK_SIZE and --block-size, in some programs.
* Disambiguating names and IDs:: chgrp and chown owner and group syntax
* Random sources:: --random-source, in some programs. * Random sources:: --random-source, in some programs.
* Target directory:: Specifying a target directory, in some programs. * Target directory:: Specifying a target directory, in some programs.
* Trailing slashes:: --strip-trailing-slashes, in some programs. * Trailing slashes:: --strip-trailing-slashes, in some programs.
@@ -924,6 +926,46 @@ set. The @option{-h} or @option{--human-readable} option is equivalent to
@option{--block-size=human-readable}. The @option{--si} option is @option{--block-size=human-readable}. The @option{--si} option is
equivalent to @option{--block-size=si}. equivalent to @option{--block-size=si}.
@node Disambiguating names and IDs
@section chown and chgrp: Disambiguating user names and IDs
@cindex user names, disambiguating
@cindex user IDs, disambiguating
@cindex group names, disambiguating
@cindex group IDs, disambiguating
@cindex disambiguating group names and IDs
Since the @var{owner} and @var{group} arguments to @command{chown} and
@command{chgrp} may be specified as names or numeric IDs, there is an
apparent ambiguity.
What if a user or group @emph{name} is a string of digits?
@footnote{Using a number as a user name is common in some environments.}
Should the command interpret it as a user name or as an ID?
@acronym{POSIX} requires that @command{chown} and @command{chgrp}
first attempt to resolve the specified string as a name, and
only once that fails, then try to interpret it as an ID.
This is troublesome when you want to specify a numeric ID, say 42,
and it must work even in a pathological situation where
@samp{42} is a user name that maps to some other user ID, say 1000.
Simply invoking @code{chown 42 F}, will set @file{F}s owner ID to
1000---not what you intended.
GNU @command{chown} and @command{chgrp} provide a way to work around this,
that at the same time may result in a significant performance improvement
by eliminating a database look-up.
Simply precede each numeric user ID and/or group ID with a @samp{+},
in order to force its interpretation as an integer:
@example
chown +42 F
chgrp +$numeric_group_id another-file
chown +0:+0 /
@end example
GNU @command{chown} and @command{chgrp}
skip the name look-up process for each @samp{+}-prefixed string,
because a string containing @samp{+} is never a valid user or group name.
This syntax is accepted on most common Unix systems, but not on Solaris 10.
@node Random sources @node Random sources
@section Sources of random data @section Sources of random data
@@ -1158,6 +1200,10 @@ to operate recursively on @file{/}, so they default to
option makes them safer for most purposes. For convenience you can option makes them safer for most purposes. For convenience you can
specify @option{--preserve-root} in an alias or in a shell function. specify @option{--preserve-root} in an alias or in a shell function.
Note that the @option{--preserve-root} option also ensures
that @command{chgrp} and @command{chown} do not modify @file{/}
even when dereferencing a symlink pointing to @file{/}.
@node Special built-in utilities @node Special built-in utilities
@section Special built-in utilities @section Special built-in utilities
@@ -1845,7 +1891,8 @@ output will be the original data.
@opindex -i @opindex -i
@opindex --ignore-garbage @opindex --ignore-garbage
@cindex Ignore garbage in base64 stream @cindex Ignore garbage in base64 stream
During decoding, ignore unrecognized characters (including newline), When decoding, newlines are always accepted.
During decoding, ignore unrecognized bytes,
to permit distorted data to be decoded. to permit distorted data to be decoded.
@end table @end table
@@ -3156,6 +3203,10 @@ md5sum [@var{option}]@dots{} [@var{file}]@dots{}
For each @var{file}, @samp{md5sum} outputs the MD5 checksum, a flag For each @var{file}, @samp{md5sum} outputs the MD5 checksum, a flag
indicating a binary or text input file, and the file name. indicating a binary or text input file, and the file name.
If @var{file} contains a backslash or newline, the
line is started with a backslash, and each problematic character in
the file name is escaped with a backslash, making the output
unambiguous even in the presence of arbitrary file names.
If @var{file} is omitted or specified as @samp{-}, standard input is read. If @var{file} is omitted or specified as @samp{-}, standard input is read.
The program accepts the following options. Also see @ref{Common options}. The program accepts the following options. Also see @ref{Common options}.
@@ -3337,12 +3388,26 @@ mode:
@item -c @item -c
@itemx --check @itemx --check
@itemx --check=diagnose-first
@opindex -c @opindex -c
@opindex --check @opindex --check
@cindex checking for sortedness @cindex checking for sortedness
Check whether the given files are already sorted: if they are not all Check whether the given file is already sorted: if it is not all
sorted, print an error message and exit with a status of 1. sorted, print a diagnostic containing the first out-of-order line and
exit with a status of 1.
Otherwise, exit successfully. Otherwise, exit successfully.
At most one input file can be given.
@item -C
@itemx --check=quiet
@itemx --check=silent
@opindex -c
@opindex --check
@cindex checking for sortedness
Exit successfully if the given file is already sorted, and
exit with status 1 otherwise.
At most one input file can be given.
This is like @option{-c}, except it does not print a diagnostic.
@item -m @item -m
@itemx --merge @itemx --merge
@@ -3396,7 +3461,7 @@ Exit status:
@display @display
0 if no error occurred 0 if no error occurred
1 if invoked with @option{-c} and the input is not properly sorted 1 if invoked with @option{-c} or @option{-C} and the input is not sorted
2 if an error occurred 2 if an error occurred
@end display @end display
@@ -3406,7 +3471,6 @@ value as the directory for temporary files instead of @file{/tmp}. The
@option{--temporary-directory} (@option{-T}) option in turn overrides @option{--temporary-directory} (@option{-T}) option in turn overrides
the environment variable. the environment variable.
The following options affect the ordering of output lines. They may be The following options affect the ordering of output lines. They may be
specified globally or as part of a specific key field. If no key specified globally or as part of a specific key field. If no key
fields are specified, global options apply to comparison of entire fields are specified, global options apply to comparison of entire
@@ -3515,26 +3579,16 @@ can change this.
@opindex --numeric-sort @opindex --numeric-sort
@cindex numeric sort @cindex numeric sort
@vindex LC_NUMERIC @vindex LC_NUMERIC
Sort numerically: the number begins each line; specifically, it consists Sort numerically. The number begins each line and consists
of optional blanks, an optional @samp{-} sign, and zero or more of optional blanks, an optional @samp{-} sign, and zero or more
digits possibly separated by thousands separators, optionally followed digits possibly separated by thousands separators, optionally followed
by a decimal-point character and zero or more digits. A string of by a decimal-point character and zero or more digits. An empty
no digits is interpreted as @samp{0}. The @env{LC_NUMERIC} number is treated as @samp{0}. The @env{LC_NUMERIC}
locale specifies the decimal-point character and thousands separator. locale specifies the decimal-point character and thousands separator.
By default a blank is a space or a tab, but the @env{LC_CTYPE} locale By default a blank is a space or a tab, but the @env{LC_CTYPE} locale
can change this. can change this.
Numeric sort uses what might be considered an unconventional method to Comparison is exact; there is no rounding error.
compare strings representing floating point numbers. Rather than first
converting each string to the C @code{double} type and then comparing
those values, @command{sort} aligns the decimal-point characters in the
two strings and compares the strings a character at a time. One benefit
of using this approach is its speed. In practice this is much more
efficient than performing the two corresponding string-to-double (or
even string-to-integer) conversions and then comparing doubles. In
addition, there is no corresponding loss of precision. Converting each
string to @code{double} before comparison would limit precision to about
16 digits on most systems.
Neither a leading @samp{+} nor exponential notation is recognized. Neither a leading @samp{+} nor exponential notation is recognized.
To compare such strings numerically, use the To compare such strings numerically, use the
@@ -3573,6 +3627,18 @@ Other options are:
@table @samp @table @samp
@item --compress-program=@var{prog}
Compress any temporary files with the program @var{prog}.
With no arguments, @var{prog} must compress standard input to standard
output, and when given the @option{-d} option it must decompress
standard input to standard output.
Terminate with an error if @var{prog} exits with nonzero status.
Whitespace and the backslash character should not appear in
@var{prog}; they are reserved for future use.
@item -k @var{pos1}[,@var{pos2}] @item -k @var{pos1}[,@var{pos2}]
@itemx --key=@var{pos1}[,@var{pos2}] @itemx --key=@var{pos1}[,@var{pos2}]
@opindex -k @opindex -k
@@ -3580,9 +3646,21 @@ Other options are:
@cindex sort field @cindex sort field
Specify a sort field that consists of the part of the line between Specify a sort field that consists of the part of the line between
@var{pos1} and @var{pos2} (or the end of the line, if @var{pos2} is @var{pos1} and @var{pos2} (or the end of the line, if @var{pos2} is
omitted), @emph{inclusive}. Fields and character positions are numbered omitted), @emph{inclusive}.
starting with 1. So to sort on the second field, you'd use
@option{--key=2,2} (@option{-k 2,2}). See below for more examples. Each @var{pos} has the form @samp{@var{f}[.@var{c}][@var{opts}]},
where @var{f} is the number of the field to use, and @var{c} is the number
of the first character from the beginning of the field. Fields and character
positions are numbered starting with 1; a character position of zero in
@var{pos2} indicates the field's last character. If @samp{.@var{c}} is
omitted from @var{pos1}, it defaults to 1 (the beginning of the field);
if omitted from @var{pos2}, it defaults to 0 (the end of the field).
@var{opts} are ordering options, allowing individual keys to be sorted
according to different rules; see below for details. Keys can span
multiple fields.
Example: To sort on the second field, use @option{--key=2,2}
(@option{-k 2,2}). See below for more examples.
@item -o @var{output-file} @item -o @var{output-file}
@itemx --output=@var{output-file} @itemx --output=@var{output-file}
@@ -3686,7 +3764,7 @@ disks and controllers.
@cindex uniquifying output @cindex uniquifying output
Normally, output only the first of a sequence of lines that compare Normally, output only the first of a sequence of lines that compare
equal. For the @option{--check} (@option{-c}) option, equal. For the @option{--check} (@option{-c} or @option{-C}) option,
check that no pair of consecutive lines compares equal. check that no pair of consecutive lines compares equal.
This option also disables the default last-resort comparison. This option also disables the default last-resort comparison.
@@ -3721,29 +3799,21 @@ consistency, @option{-M} has been changed in the same way. This may
affect the meaning of character positions in field specifications in affect the meaning of character positions in field specifications in
obscure cases. The only fix is to add an explicit @option{-b}. obscure cases. The only fix is to add an explicit @option{-b}.
A position in a sort field specified with the @option{-k} A position in a sort field specified with @option{-k} may have any
option has the form @samp{@var{f}.@var{c}}, where @var{f} is the number of the option letters @samp{Mbdfinr} appended to it, in which case the
of the field to use and @var{c} is the number of the first character global ordering options are not used for that particular field. The
from the beginning of the field. In a start position, an omitted @option{-b} option may be independently attached to either or both of
@samp{.@var{c}} stands for the field's first character. In an end the start and end positions of a field specification, and if it is
position, an omitted or zero @samp{.@var{c}} stands for the field's inherited from the global options it will be attached to both.
last character. If the start field falls after the end of the line
or after the end field, the field is empty. If the
@option{-b} option was specified, the @samp{.@var{c}} part of a field
specification is counted from the first nonblank character of the field.
A sort key position may also have any of the option letters @samp{Mbdfinr}
appended to it, in which case the global ordering options are not used
for that particular field. The @option{-b} option may be independently
attached to either or both of the start and
end positions of a field specification, and if it is inherited
from the global options it will be attached to both.
If input lines can contain leading or adjacent blanks and @option{-t} If input lines can contain leading or adjacent blanks and @option{-t}
is not used, then @option{-k} is typically combined with @option{-b}, is not used, then @option{-k} is typically combined with @option{-b},
@option{-g}, @option{-M}, or @option{-n}; otherwise the varying @option{-g}, @option{-M}, or @option{-n}; otherwise the varying
numbers of leading blanks in fields can cause confusing results. numbers of leading blanks in fields can cause confusing results.
Keys can span multiple fields. If the start position in a sort field specifier falls after the end of
the line or after the end field, the field is empty. If the @option{-b}
option was specified, the @samp{.@var{c}} part of a field specification
is counted from the first nonblank character of the field.
@vindex _POSIX2_VERSION @vindex _POSIX2_VERSION
@vindex POSIXLY_CORRECT @vindex POSIXLY_CORRECT
@@ -4489,7 +4559,7 @@ Fold lower case letters to upper case for sorting.
@table @samp @table @samp
@item -b @var{file} @item -b @var{file}
@item --break-file=@var{file} @itemx --break-file=@var{file}
This option provides an alternative (to @option{-W}) method of describing This option provides an alternative (to @option{-W}) method of describing
which characters make up words. It introduces the name of a which characters make up words. It introduces the name of a
@@ -6410,6 +6480,13 @@ Assume that each tab stop is @var{cols} columns wide. The default is 8.
@command{ls} uses tabs where possible in the output, for efficiency. If @command{ls} uses tabs where possible in the output, for efficiency. If
@var{cols} is zero, do not use tabs at all. @var{cols} is zero, do not use tabs at all.
@c FIXME: remove in 2009, if Apple Terminal has been fixed for long enough.
Some terminal emulators (at least Apple Terminal 1.5 (133) from Mac OS X 10.4.8)
do not properly align columns to the right of a TAB following a
non-@acronym{ASCII} byte. If you use such a terminal emulator, use the
@option{-T0} option or put @code{TABSIZE=0} in your environment to tell
@command{ls} to align using spaces, not tabs.
@item -w @item -w
@itemx --width=@var{cols} @itemx --width=@var{cols}
@opindex -w @opindex -w
@@ -6947,7 +7024,13 @@ and ordinary users
may preserve the group ownership of a file only if they happen to be may preserve the group ownership of a file only if they happen to be
a member of the desired group. a member of the desired group.
@itemx timestamps @itemx timestamps
Preserve the times of last access and last modification. Preserve the times of last access and last modification, when possible.
In general, it is not possible to preserve these attributes
when the affected file is a symbolic link.
However, FreeBSD now provides the @code{lutimes} function, which makes
it possibile even for symbolic links. However, this implementation does
not yet take advantage of that.
@c FIXME: once we provide lutimes support, update the above.
@itemx links @itemx links
Preserve in the destination files Preserve in the destination files
any links between corresponding source files. any links between corresponding source files.
@@ -7151,25 +7234,33 @@ bytes (or the size specified with @samp{seek=}).
@opindex ibs @opindex ibs
@cindex block size of input @cindex block size of input
@cindex input block size @cindex input block size
Read @var{bytes} bytes at a time. Set the input block size to @var{bytes}.
This makes @command{dd} read @var{bytes} per block.
@item obs=@var{bytes} @item obs=@var{bytes}
@opindex obs @opindex obs
@cindex block size of output @cindex block size of output
@cindex output block size @cindex output block size
Write @var{bytes} bytes at a time. Set the output block size to @var{bytes}.
This makes @command{dd} write @var{bytes} per block.
@item bs=@var{bytes} @item bs=@var{bytes}
@opindex bs @opindex bs
@cindex block size @cindex block size
Both read and write @var{bytes} bytes at a time. This overrides Set both input and output block sizes to @var{bytes}.
@samp{ibs} and @samp{obs}. This makes @command{dd} read and write @var{bytes} per block,
overriding any @samp{ibs} and @samp{obs} settings.
@item cbs=@var{bytes} @item cbs=@var{bytes}
@opindex cbs @opindex cbs
@cindex block size of conversion @cindex block size of conversion
@cindex conversion block size @cindex conversion block size
Convert @var{bytes} bytes at a time. @cindex fixed-length records, converting to variable-length
@cindex variable-length records, converting to fixed-length
Set the conversion block size to @var{bytes}.
When converting variable-length records to fixed-length ones
(@option{conv=block}) or the reverse (@option{conv=unblock}),
use @var{bytes} as the fixed record length.
@item skip=@var{blocks} @item skip=@var{blocks}
@opindex skip @opindex skip
@@ -7346,6 +7437,8 @@ Use non-blocking I/O.
@opindex noatime @opindex noatime
@cindex access time @cindex access time
Do not update the file's access time. Do not update the file's access time.
Some older file systems silently ignore this flag, so it is a good
idea to test it on your files before relying on it.
@item noctty @item noctty
@opindex noctty @opindex noctty
@@ -8353,15 +8446,23 @@ overridden in this way.
@opindex -p @opindex -p
@opindex --parents @opindex --parents
@cindex parent directories, creating @cindex parent directories, creating
Make any missing parent directories for each argument. The file permission Make any missing parent directories for each argument, setting their
bits of parent directories are set to the umask modified by @samp{u+wx}. file permission bits to the umask modified by @samp{u+wx}. Ignore
@xref{Directory Setuid and Setgid}, for how the set-user-ID and existing parent directories, and do not change their file permission
set-group-ID bits of parent directories are inherited. bits.
Ignore arguments corresponding to existing directories, and do not
change their file mode bits. To set the file permission bits of any newly-created parent
directories to a value that includes @samp{u+wx}, you can set the
umask before invoking @command{mkdir}. For example, if the shell
command @samp{(umask u=rwx,go=rx; mkdir -p P/Q)} creates the parent
@file{P} it sets the parent's permission bits to @samp{u=rwx,go=rx}.
To set a parent's special mode bits as well, you can invoke
@command{chmod} after @command{mkdir}. @xref{Directory Setuid and
Setgid}, for how the set-user-ID and set-group-ID bits of
newly-created parent directories are inherited.
@item -v @item -v
@item --verbose @itemx --verbose
@opindex -v @opindex -v
@opindex --verbose @opindex --verbose
Print a message for each created directory. This is most useful with Print a message for each created directory. This is most useful with
@@ -8608,7 +8709,7 @@ a failure does not evoke a diagnostic and does not cause @command{rmdir} to
exit unsuccessfully. exit unsuccessfully.
@item -v @item -v
@item --verbose @itemx --verbose
@opindex -v @opindex -v
@opindex --verbose @opindex --verbose
@cindex directory deletion, reporting @cindex directory deletion, reporting
@@ -8727,6 +8828,10 @@ owner nor the group is changed.
@end table @end table
If @var{owner} or @var{group} is intended to represent a numeric user
or group ID, then you may specify it with a leading @samp{+}.
@xref{Disambiguating names and IDs}.
Some older scripts may still use @samp{.} in place of the @samp{:} separator. Some older scripts may still use @samp{.} in place of the @samp{:} separator.
@acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance}) does not @acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance}) does not
require support for that, but for backward compatibility @acronym{GNU} require support for that, but for backward compatibility @acronym{GNU}
@@ -8902,6 +9007,10 @@ or to the group of an existing reference file. Synopsis:
chgrp [@var{option}]@dots{} @{@var{group} | --reference=@var{ref_file}@} @var{file}@dots{} chgrp [@var{option}]@dots{} @{@var{group} | --reference=@var{ref_file}@} @var{file}@dots{}
@end example @end example
If @var{group} is intended to represent a
numeric group ID, then you may specify it with a leading @samp{+}.
@xref{Disambiguating names and IDs}.
The program accepts the following options. Also see @ref{Common options}. The program accepts the following options. Also see @ref{Common options}.
@table @samp @table @samp
@@ -9151,7 +9260,7 @@ operations, for a user to change the ctime field to a user-specified value.
Time stamps assume the time zone rules specified by the @env{TZ} Time stamps assume the time zone rules specified by the @env{TZ}
environment variable, or by the system default rules if @env{TZ} is environment variable, or by the system default rules if @env{TZ} is
not set. @xref{TZ Variable,, Specifying the Time Zone with @env{TZ}, not set. @xref{TZ Variable,, Specifying the Time Zone with @env{TZ},
libc, The GNU C Library}. You can avoid avoid ambiguities during libc, The GNU C Library}. You can avoid ambiguities during
daylight saving transitions by using @sc{utc} time stamps. daylight saving transitions by using @sc{utc} time stamps.
The program accepts the following options. Also see @ref{Common options}. The program accepts the following options. Also see @ref{Common options}.
@@ -9372,6 +9481,13 @@ some network mounts), the columns are misaligned.
@item @item
The labels in the header output line are changed to conform to @acronym{POSIX}. The labels in the header output line are changed to conform to @acronym{POSIX}.
@item
The default block size and output format are unaffected by the
@env{DF_BLOCK_SIZE}, @env{BLOCK_SIZE} and @env{BLOCKSIZE} environment
variables. However, the default block size is still affected by
@env{POSIXLY_CORRECT}: it is 512 if @env{POSIXLY_CORRECT} is set, 1024
otherwise. @xref{Block size}.
@end enumerate @end enumerate
@optSi @optSi
@@ -9799,7 +9915,7 @@ $ stat --format=%d:%i / /usr
@opindex --printf=@var{format} @opindex --printf=@var{format}
@cindex output format @cindex output format
Use @var{format} rather than the default format. Use @var{format} rather than the default format.
Like like @option{--format}, but interpret backslash escapes, Like @option{--format}, but interpret backslash escapes,
and do not output a mandatory trailing newline. and do not output a mandatory trailing newline.
If you want a newline, include @samp{\n} in the @var{format}. If you want a newline, include @samp{\n} in the @var{format}.
Here's how you would use @option{--printf} to print the device Here's how you would use @option{--printf} to print the device
@@ -13817,6 +13933,12 @@ Print all numbers using @var{format}.
@var{format} must contain exactly one of the @samp{printf}-style @var{format} must contain exactly one of the @samp{printf}-style
floating point conversion specifications @samp{%a}, @samp{%e}, floating point conversion specifications @samp{%a}, @samp{%e},
@samp{%f}, @samp{%g}, @samp{%A}, @samp{%E}, @samp{%F}, @samp{%G}. @samp{%f}, @samp{%g}, @samp{%A}, @samp{%E}, @samp{%F}, @samp{%G}.
The @samp{%} may be followed by zero or more flags taken from the set
@samp{-+#0 '}, then an optional width containing one or more digits,
then an optional precision consisting of a @samp{.} followed by zero
or more digits. @var{format} may also contain any number of @samp{%%}
conversion specifications. All conversion specifications have the
same meaning as with @samp{printf}.
The default format is derived from @var{first}, @var{step}, and The default format is derived from @var{first}, @var{step}, and
@var{last}. If these all use a fixed point decimal representation, @var{last}. If these all use a fixed point decimal representation,
@@ -13839,6 +13961,15 @@ decimal representation.
@end table @end table
You can get finer-grained control over output with @option{-f}:
@example
$ seq -f '(%9.2E)' -9e5 1.1e6 1.3e6
(-9.00E+05)
( 2.00E+05)
( 1.30E+06)
@end example
If you want hexadecimal integer output, you can use @command{printf} If you want hexadecimal integer output, you can use @command{printf}
to perform the conversion: to perform the conversion:
+4 -4
View File
@@ -1,4 +1,4 @@
@set UPDATED 27 October 2006 @set UPDATED 22 March 2007
@set UPDATED-MONTH October 2006 @set UPDATED-MONTH March 2007
@set EDITION 6.7 @set EDITION 6.9
@set VERSION 6.7 @set VERSION 6.9
+4 -4
View File
@@ -1,4 +1,4 @@
@set UPDATED 27 October 2006 @set UPDATED 22 March 2007
@set UPDATED-MONTH October 2006 @set UPDATED-MONTH March 2007
@set EDITION 6.7 @set EDITION 6.9
@set VERSION 6.7 @set VERSION 6.9
+49
View File
@@ -1,3 +1,52 @@
2007-03-20 Jim Meyering <[email protected]>
Fix a typo in the handling of %x and %X.
* vasnprintf.c (VASNPRINTF): When adding 2 to buffer length,
don't double it.
2007-03-04 Jim Meyering <[email protected]>
* vasnprintf.c (VASNPRINTF): Add missing semicolon.
2007-03-02 Jim Meyering <[email protected]>
* vasnprintf.c (VASNPRINTF): Remove cast of alloca return value.
2007-03-01 Jim Meyering <[email protected]>
Merge in changes from gnulib:
* vasnprintf.c: Add a comment explaining why coreutils has its own
version of this file.
Include <stdint.h>.
(SIZE_MAX): Remove definition (now, stdint.h covers that).
(EOVERFLOW): Remove definition (now done via the eoverflow module).
Update some #ifdef to #if.
Use HAVE_LONG_LONG_INT, not HAVE_LONG_LONG.
* printf-parse.c: Likewise.
2007-02-28 Jim Meyering <[email protected]>
* tsearch.c: Remove unused file.
2007-02-23 Jim Meyering <[email protected]>
* randperm.c (randperm_new): Comment: say that this function
returns a pointer to malloc'd storage.
2007-02-18 Jim Meyering <[email protected]>
* xfts.c: Include <stdlib.h> rather than exit.h, now that stdlib.h
is guaranteed to provide a valid definition of EXIT_FAILURE.
2007-01-19 Jim Meyering <[email protected]>
* .cvsignore, .gitignore: Add sys, as well as more
bootstrap-inserted file names.
2007-01-14 Jim Meyering <[email protected]>
* fchdir-stub.c: Remove file. No longer needed.
2006-12-03 Jim Meyering <[email protected]> 2006-12-03 Jim Meyering <[email protected]>
* Makefile.am (libcoreutils_a_SOURCES): Remove xmemcoll.c and * Makefile.am (libcoreutils_a_SOURCES): Remove xmemcoll.c and
+5 -1
View File
@@ -21,6 +21,7 @@ StaticLibrary libfetish.a :
base64.c base64.c
basename.c basename.c
buffer-lcm.c buffer-lcm.c
c-strcasecmp.c
c-strtod.c c-strtod.c
c-strtold.c c-strtold.c
calloc.c calloc.c
@@ -45,6 +46,7 @@ StaticLibrary libfetish.a :
exitfail.c exitfail.c
# fchdir-stub.c # fchdir-stub.c
fchmodat.c fchmodat.c
fchownat.c
# fchown-stub.c # fchown-stub.c
fd-reopen.c fd-reopen.c
fd-safer.c fd-safer.c
@@ -92,6 +94,7 @@ StaticLibrary libfetish.a :
# lstat-stub.c # lstat-stub.c
# lstat.c # lstat.c
# malloc.c # malloc.c
mbscasecmp.c
mbswidth.c mbswidth.c
md5.c md5.c
memcasecmp.c memcasecmp.c
@@ -110,6 +113,7 @@ StaticLibrary libfetish.a :
# mkstemp.c # mkstemp.c
mkstemp-safer.c mkstemp-safer.c
mktime.c mktime.c
mpsort.c
modechange.c modechange.c
# mountlist.c # mountlist.c
nanosleep.c nanosleep.c
@@ -153,7 +157,6 @@ StaticLibrary libfetish.a :
sha512.c sha512.c
sig2str.c sig2str.c
# stpcpy.c # stpcpy.c
strcasecmp.c
# strcspn.c # strcspn.c
# strdup.c # strdup.c
strftime.c strftime.c
@@ -194,6 +197,7 @@ StaticLibrary libfetish.a :
xmemxfrm.c xmemxfrm.c
xnanosleep.c xnanosleep.c
xreadlink.c xreadlink.c
xreadlink-with-size.c
xstrndup.c xstrndup.c
xstrtod.c xstrtod.c
xstrtoimax.c xstrtoimax.c
+488 -162
View File
@@ -16,7 +16,7 @@
# Copyright (C) 1995-2006 Free Software Foundation, Inc. # Copyright (C) 1995-2006 Free Software Foundation, Inc.
# Copyright (C) 2004-2006 Free Software Foundation, Inc. # Copyright (C) 2004-2007 Free Software Foundation, Inc.
# #
# This file is free software, distributed under the terms of the GNU # This file is free software, distributed under the terms of the GNU
# General Public License. As a special exception to the GNU General # General Public License. As a special exception to the GNU General
@@ -25,7 +25,7 @@
# the same distribution terms as the rest of that program. # the same distribution terms as the rest of that program.
# #
# Generated by gnulib-tool. # Generated by gnulib-tool.
# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libcoreutils --source-base=.#bootmp/lib --m4-base=.#bootmp/m4 --doc-base=.#bootmp/doc --aux-dir=.#bootmp/build-aux --avoid=lock --avoid=size_max --avoid=xsize --no-libtool --macro-prefix=gl acl alloca argmatch assert atexit backupfile base64 c-strtod c-strtold calloc canon-host canonicalize chown cloexec closeout config-h configmake cycle-check d-ino d-type diacrit dirfd dirname dup2 error euidaccess exclude exitfail fcntl fcntl-safer fdl file-type fileblocks filemode filenamecat fnmatch-gnu fopen-safer fprintftime free fsusage ftruncate fts getdate getgroups gethrxtime getline getloadavg getndelim2 getopt getpagesize getpass-gnu gettext gettime gettimeofday getugroups getusershell gnupload group-member hard-locale hash hash-pjw host-os human idcache inttostr inttypes isapipe lchmod lchown lib-ignore linebuffer link-follow long-options lstat malloc mbswidth md5 memcasecmp memchr memcmp memcpy memmove mempcpy memrchr memset mkancesdirs mkdir mkdir-p mkstemp mktime modechange mountlist obstack pathmax perl physmem posixtm posixver putenv quote quotearg raise readlink readtokens readtokens0 readutmp realloc regex rename rename-dest-slash rmdir rmdir-errno root-dev-ino rpmatch safe-read same save-cwd savedir savewd settime sha1 sig2str ssize_t stat-macros stat-time stdbool stdlib-safer stpcpy strcase strcspn strftime strpbrk strtod strtoimax strtol strtoumax strverscmp sys_stat timespec tzset unicodeio unistd-safer unlink-busy unlinkdir unlocked-io uptime userspec utime utimecmp utimens vasprintf verify version-etc-fsf wcwidth winsz-ioctl winsz-termios xalloc xgetcwd xgethostname xmemcoll xnanosleep xreadlink xstrtod xstrtoimax xstrtol xstrtold xstrtoumax yesno # Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libcoreutils --source-base=lib --m4-base=m4 --doc-base=doc --aux-dir=build-aux --avoid=lock --avoid=size_max --avoid=xsize --avoid=canonicalize-lgpl --no-libtool --macro-prefix=gl acl alloca announce-gen argmatch assert atexit backupfile base64 c-strcase c-strtod c-strtold calloc canon-host canonicalize chown cloexec closeout config-h configmake cycle-check d-ino d-type diacrit dirfd dirname dup2 error euidaccess exclude exitfail fchdir fcntl fcntl-safer fdl file-type fileblocks filemode filenamecat fnmatch-gnu fopen-safer fprintftime free fsusage ftruncate fts getdate getgroups gethrxtime getline getloadavg getndelim2 getopt getpagesize getpass-gnu gettext gettime gettimeofday getugroups getusershell gnupload group-member hard-locale hash hash-pjw host-os human idcache inttostr inttypes isapipe lchmod lchown lib-ignore linebuffer link-follow long-options lstat malloc mbswidth md5 memcasecmp memchr memcmp memcpy memmove mempcpy memrchr memset mkancesdirs mkdir mkdir-p mkstemp mktime modechange mountlist mpsort obstack pathmax perl physmem posixtm posixver putenv quote quotearg raise readlink readtokens readtokens0 readutmp realloc regex rename rename-dest-slash rmdir rmdir-errno root-dev-ino rpmatch safe-read same save-cwd savedir savewd settime sha1 sig2str ssize_t stat-macros stat-time stdbool stdlib-safer stpcpy strcspn strftime strpbrk strtod strtoimax strtol strtoumax strverscmp sys_stat timespec tzset unicodeio unistd-safer unlink-busy unlinkdir unlocked-io uptime userspec utime utimecmp utimens vasprintf verify version-etc-fsf wcwidth winsz-ioctl winsz-termios xalloc xgetcwd xgethostname xmemcoll xnanosleep xreadlink xreadlink-with-size xstrtod xstrtoimax xstrtol xstrtold xstrtoumax yesno
@@ -51,11 +51,11 @@ host_triplet = @host@
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.hin $(srcdir)/gnulib.mk \ $(srcdir)/Makefile.in $(srcdir)/config.hin $(srcdir)/gnulib.mk \
ChangeLog TODO alloca.c euidaccess-stat.c euidaccess-stat.h \ ChangeLog TODO alloca.c euidaccess-stat.c euidaccess-stat.h \
fchdir-stub.c fd-reopen.c fd-reopen.h getdate.c memxfrm.c \ fd-reopen.c fd-reopen.h getdate.c memxfrm.c memxfrm.h \
memxfrm.h rand-isaac.c rand-isaac.h randint.c randint.h \ rand-isaac.c rand-isaac.h randint.c randint.h randperm.c \
randperm.c randperm.h randread.c randread.h sha256.c sha256.h \ randperm.h randread.c randread.h sha256.c sha256.h sha512.c \
sha512.c sha512.h strintcmp.c strnumcmp-in.h strnumcmp.c \ sha512.h strintcmp.c strnumcmp-in.h strnumcmp.c strnumcmp.h \
strnumcmp.h u64.h xfts.c xfts.h u64.h xfts.c xfts.h
noinst_PROGRAMS = t-fpending$(EXEEXT) noinst_PROGRAMS = t-fpending$(EXEEXT)
subdir = lib subdir = lib
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -82,15 +82,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
$(top_srcdir)/m4/euidaccess-stat.m4 \ $(top_srcdir)/m4/euidaccess-stat.m4 \
$(top_srcdir)/m4/euidaccess.m4 $(top_srcdir)/m4/exclude.m4 \ $(top_srcdir)/m4/euidaccess.m4 $(top_srcdir)/m4/exclude.m4 \
$(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \
$(top_srcdir)/m4/fcntl-safer.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fcntl-safer.m4 \
$(top_srcdir)/m4/fd-reopen.m4 $(top_srcdir)/m4/file-type.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fd-reopen.m4 \
$(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/filemode.m4 \ $(top_srcdir)/m4/file-type.m4 $(top_srcdir)/m4/fileblocks.m4 \
$(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/flexmember.m4 \ $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/filenamecat.m4 \
$(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/fnmatch.m4 \
$(top_srcdir)/m4/fprintftime.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fprintftime.m4 \
$(top_srcdir)/m4/fstypename.m4 $(top_srcdir)/m4/fsusage.m4 \ $(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/fstypename.m4 \
$(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/fts.m4 \ $(top_srcdir)/m4/fsusage.m4 $(top_srcdir)/m4/ftruncate.m4 \
$(top_srcdir)/m4/getaddrinfo.m4 \ $(top_srcdir)/m4/fts.m4 $(top_srcdir)/m4/getaddrinfo.m4 \
$(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \
$(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.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/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \
@@ -102,6 +102,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \ $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
$(top_srcdir)/m4/getugroups.m4 \ $(top_srcdir)/m4/getugroups.m4 \
$(top_srcdir)/m4/getusershell.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/getusershell.m4 $(top_srcdir)/m4/glibc21.m4 \
$(top_srcdir)/m4/gnulib-common.m4 \
$(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \
$(top_srcdir)/m4/group-member.m4 \ $(top_srcdir)/m4/group-member.m4 \
$(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/hash.m4 \ $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/hash.m4 \
@@ -122,17 +123,18 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
$(top_srcdir)/m4/longdouble.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/longdouble.m4 $(top_srcdir)/m4/longlong.m4 \
$(top_srcdir)/m4/ls-mntd-fs.m4 $(top_srcdir)/m4/lstat.m4 \ $(top_srcdir)/m4/ls-mntd-fs.m4 $(top_srcdir)/m4/lstat.m4 \
$(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \ $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \
$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbscasecmp.m4 \
$(top_srcdir)/m4/mbswidth.m4 $(top_srcdir)/m4/md5.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbswidth.m4 \
$(top_srcdir)/m4/memcasecmp.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memcasecmp.m4 \
$(top_srcdir)/m4/memcmp.m4 $(top_srcdir)/m4/memcoll.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \ $(top_srcdir)/m4/memcoll.m4 $(top_srcdir)/m4/memcpy.m4 \
$(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/memmove.m4 $(top_srcdir)/m4/mempcpy.m4 \
$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/memxfrm.m4 \ $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/memset.m4 \
$(top_srcdir)/m4/mkancesdirs.m4 $(top_srcdir)/m4/mkdir-p.m4 \ $(top_srcdir)/m4/memxfrm.m4 $(top_srcdir)/m4/mkancesdirs.m4 \
$(top_srcdir)/m4/mkdir-slash.m4 $(top_srcdir)/m4/mkstemp.m4 \ $(top_srcdir)/m4/mkdir-p.m4 $(top_srcdir)/m4/mkdir-slash.m4 \
$(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \ $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \
$(top_srcdir)/m4/mountlist.m4 $(top_srcdir)/m4/nanosleep.m4 \ $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/mountlist.m4 \
$(top_srcdir)/m4/mpsort.m4 $(top_srcdir)/m4/nanosleep.m4 \
$(top_srcdir)/m4/netinet_in_h.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/netinet_in_h.m4 $(top_srcdir)/m4/nls.m4 \
$(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \
$(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/physmem.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/physmem.m4 \
@@ -159,18 +161,20 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
$(top_srcdir)/m4/stat-prog.m4 $(top_srcdir)/m4/stat-time.m4 \ $(top_srcdir)/m4/stat-prog.m4 $(top_srcdir)/m4/stat-time.m4 \
$(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.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/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
$(top_srcdir)/m4/stdio-safer.m4 \ $(top_srcdir)/m4/stdio-safer.m4 $(top_srcdir)/m4/stdio_h.m4 \
$(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stpcpy.m4 \ $(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stdlib_h.m4 \
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strcspn.m4 \ $(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcspn.m4 \
$(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strftime.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strftime.m4 \
$(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
$(top_srcdir)/m4/strnumcmp.m4 $(top_srcdir)/m4/strpbrk.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strnumcmp.m4 \
$(top_srcdir)/m4/strtod.m4 $(top_srcdir)/m4/strtoimax.m4 \ $(top_srcdir)/m4/strpbrk.m4 $(top_srcdir)/m4/strtod.m4 \
$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \ $(top_srcdir)/m4/strtoimax.m4 $(top_srcdir)/m4/strtol.m4 \
$(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \ $(top_srcdir)/m4/strtoll.m4 $(top_srcdir)/m4/strtoul.m4 \
$(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
$(top_srcdir)/m4/strverscmp.m4 \
$(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/tempname.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.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/time_r.m4 $(top_srcdir)/m4/timespec.m4 \
$(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.m4 \ $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.m4 \
$(top_srcdir)/m4/unicodeio.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unicodeio.m4 $(top_srcdir)/m4/unistd-safer.m4 \
@@ -181,13 +185,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
$(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \ $(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \
$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/utimes.m4 \ $(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/utimes.m4 \
$(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \ $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \
$(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcwidth.m4 \ $(top_srcdir)/m4/wchar.m4 $(top_srcdir)/m4/wchar_t.m4 \
$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wcwidth.m4 \
$(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \
$(top_srcdir)/m4/xfts.m4 $(top_srcdir)/m4/xgetcwd.m4 \ $(top_srcdir)/m4/xfts.m4 $(top_srcdir)/m4/xgetcwd.m4 \
$(top_srcdir)/m4/xnanosleep.m4 $(top_srcdir)/m4/xreadlink.m4 \ $(top_srcdir)/m4/xnanosleep.m4 $(top_srcdir)/m4/xstrndup.m4 \
$(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtod.m4 \ $(top_srcdir)/m4/xstrtod.m4 $(top_srcdir)/m4/xstrtol.m4 \
$(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/m4/yesno.m4 \ $(top_srcdir)/m4/yesno.m4 $(top_srcdir)/configure.ac
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4) $(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d mkinstalldirs = $(install_sh) -d
@@ -199,15 +203,17 @@ ARFLAGS = cru
libcoreutils_a_AR = $(AR) $(ARFLAGS) libcoreutils_a_AR = $(AR) $(ARFLAGS)
am__DEPENDENCIES_1 = am__DEPENDENCIES_1 =
am_libcoreutils_a_OBJECTS = allocsa.$(OBJEXT) base64.$(OBJEXT) \ am_libcoreutils_a_OBJECTS = allocsa.$(OBJEXT) base64.$(OBJEXT) \
diacrit.$(OBJEXT) full-read.$(OBJEXT) full-write.$(OBJEXT) \ c-ctype.$(OBJEXT) c-strcasecmp.$(OBJEXT) \
getdate.$(OBJEXT) hash-pjw.$(OBJEXT) linebuffer.$(OBJEXT) \ c-strncasecmp.$(OBJEXT) diacrit.$(OBJEXT) full-read.$(OBJEXT) \
localcharset.$(OBJEXT) mbswidth.$(OBJEXT) \ full-write.$(OBJEXT) getdate.$(OBJEXT) hash-pjw.$(OBJEXT) \
readtokens0.$(OBJEXT) savewd.$(OBJEXT) strnlen1.$(OBJEXT) \ linebuffer.$(OBJEXT) localcharset.$(OBJEXT) mbchar.$(OBJEXT) \
unicodeio.$(OBJEXT) version-etc.$(OBJEXT) \ mbscasecmp.$(OBJEXT) mbswidth.$(OBJEXT) readtokens0.$(OBJEXT) \
version-etc-fsf.$(OBJEXT) xalloc-die.$(OBJEXT) \ savewd.$(OBJEXT) strnlen1.$(OBJEXT) unicodeio.$(OBJEXT) \
xgethostname.$(OBJEXT) xmemcoll.$(OBJEXT) xstrndup.$(OBJEXT) \ version-etc.$(OBJEXT) version-etc-fsf.$(OBJEXT) \
xstrtoimax.$(OBJEXT) xstrtoumax.$(OBJEXT) buffer-lcm.$(OBJEXT) \ xalloc-die.$(OBJEXT) xgethostname.$(OBJEXT) xmemcoll.$(OBJEXT) \
xmemxfrm.$(OBJEXT) xreadlink.$(OBJEXT) xreadlink-with-size.$(OBJEXT) \
xstrndup.$(OBJEXT) xstrtoimax.$(OBJEXT) xstrtoumax.$(OBJEXT) \
buffer-lcm.$(OBJEXT) xmemxfrm.$(OBJEXT)
libcoreutils_a_OBJECTS = $(am_libcoreutils_a_OBJECTS) libcoreutils_a_OBJECTS = $(am_libcoreutils_a_OBJECTS)
LTLIBRARIES = $(noinst_LTLIBRARIES) LTLIBRARIES = $(noinst_LTLIBRARIES)
PROGRAMS = $(noinst_PROGRAMS) PROGRAMS = $(noinst_PROGRAMS)
@@ -232,10 +238,21 @@ HEADERS = $(noinst_HEADERS)
ETAGS = etags ETAGS = etags
CTAGS = ctags CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ABSOLUTE_DIRENT_H = @ABSOLUTE_DIRENT_H@
ABSOLUTE_FCNTL_H = @ABSOLUTE_FCNTL_H@ ABSOLUTE_FCNTL_H = @ABSOLUTE_FCNTL_H@
ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@ ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
ABSOLUTE_NETINET_IN_H = @ABSOLUTE_NETINET_IN_H@
ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@ ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
ABSOLUTE_STDIO_H = @ABSOLUTE_STDIO_H@
ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
ABSOLUTE_SYS_SOCKET_H = @ABSOLUTE_SYS_SOCKET_H@
ABSOLUTE_SYS_STAT_H = @ABSOLUTE_SYS_STAT_H@ ABSOLUTE_SYS_STAT_H = @ABSOLUTE_SYS_STAT_H@
ABSOLUTE_SYS_TIME_H = @ABSOLUTE_SYS_TIME_H@
ABSOLUTE_TIME_H = @ABSOLUTE_TIME_H@
ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@ ALLOCA = @ALLOCA@
ALLOCA_H = @ALLOCA_H@ ALLOCA_H = @ALLOCA_H@
@@ -260,6 +277,7 @@ DEFAULT_POSIX2_VERSION = @DEFAULT_POSIX2_VERSION@
DEFS = @DEFS@ DEFS = @DEFS@
DEPDIR = @DEPDIR@ DEPDIR = @DEPDIR@
DF_PROG = @DF_PROG@ DF_PROG = @DF_PROG@
DIRENT_H = @DIRENT_H@
ECHO_C = @ECHO_C@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
@@ -273,23 +291,103 @@ GETOPT_H = @GETOPT_H@
GLIBC21 = @GLIBC21@ GLIBC21 = @GLIBC21@
GMSGFMT = @GMSGFMT@ GMSGFMT = @GMSGFMT@
GMSGFMT_015 = @GMSGFMT_015@ GMSGFMT_015 = @GMSGFMT_015@
GNULIB_CHOWN = @GNULIB_CHOWN@
GNULIB_DUP2 = @GNULIB_DUP2@
GNULIB_FCHDIR = @GNULIB_FCHDIR@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
GNULIB_GETCWD = @GNULIB_GETCWD@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
GNULIB_IMAXABS = @GNULIB_IMAXABS@
GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
GNULIB_MBSCHR = @GNULIB_MBSCHR@
GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
GNULIB_MBSLEN = @GNULIB_MBSLEN@
GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
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_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
GNULIB_READLINK = @GNULIB_READLINK@
GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
GNULIB_STPCPY = @GNULIB_STPCPY@
GNULIB_STPNCPY = @GNULIB_STPNCPY@
GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
GNULIB_STRDUP = @GNULIB_STRDUP@
GNULIB_STRNDUP = @GNULIB_STRNDUP@
GNULIB_STRNLEN = @GNULIB_STRNLEN@
GNULIB_STRPBRK = @GNULIB_STRPBRK@
GNULIB_STRSEP = @GNULIB_STRSEP@
GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
GNU_PACKAGE = @GNU_PACKAGE@ GNU_PACKAGE = @GNU_PACKAGE@
GREP = @GREP@ GREP = @GREP@
HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
HAVE_DUP2 = @HAVE_DUP2@
HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_MEMPCPY = @HAVE_MEMPCPY@
HAVE_MKDTEMP = @HAVE_MKDTEMP@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_READLINK = @HAVE_READLINK@
HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
HAVE_STDINT_H = @HAVE_STDINT_H@ 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_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
HAVE_UNISTD_H = @HAVE_UNISTD_H@
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
HAVE_WINT_T = @HAVE_WINT_T@
HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
HAVE__BOOL = @HAVE__BOOL@ HAVE__BOOL = @HAVE__BOOL@
HELP2MAN = @HELP2MAN@ HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
@@ -309,6 +407,7 @@ LIBINTL = @LIBINTL@
LIBOBJS = @LIBOBJS@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@ $(POW_LIB) LIBS = @LIBS@ $(POW_LIB)
LIB_ACL = @LIB_ACL@ LIB_ACL = @LIB_ACL@
LIB_ACL_TRIVIAL = @LIB_ACL_TRIVIAL@
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
LIB_CRYPT = @LIB_CRYPT@ LIB_CRYPT = @LIB_CRYPT@
LIB_EACCESS = @LIB_EACCESS@ LIB_EACCESS = @LIB_EACCESS@
@@ -343,6 +442,23 @@ PRIPTR_PREFIX = @PRIPTR_PREFIX@
PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
RANLIB = @RANLIB@ RANLIB = @RANLIB@
REPLACE_CHOWN = @REPLACE_CHOWN@
REPLACE_FCHDIR = @REPLACE_FCHDIR@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_GETCWD = @REPLACE_GETCWD@
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
REPLACE_PRINTF = @REPLACE_PRINTF@
REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
REPLACE_SPRINTF = @REPLACE_SPRINTF@
REPLACE_STRPTIME = @REPLACE_STRPTIME@
REPLACE_TIMEGM = @REPLACE_TIMEGM@
REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
REPLACE_VPRINTF = @REPLACE_VPRINTF@
REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
SEQ_LIBM = @SEQ_LIBM@ SEQ_LIBM = @SEQ_LIBM@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
@@ -353,11 +469,15 @@ STDINT_H = @STDINT_H@
STRIP = @STRIP@ STRIP = @STRIP@
SYS_SOCKET_H = @SYS_SOCKET_H@ SYS_SOCKET_H = @SYS_SOCKET_H@
SYS_STAT_H = @SYS_STAT_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@
U = @U@ U = @U@
UNISTD_H = @UNISTD_H@
USE_NLS = @USE_NLS@ USE_NLS = @USE_NLS@
VERSION = @VERSION@ VERSION = @VERSION@
WCHAR_H = @WCHAR_H@
WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
WCTYPE_H = @WCTYPE_H@
WINT_T_SUFFIX = @WINT_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@
XGETTEXT = @XGETTEXT@ XGETTEXT = @XGETTEXT@
XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_015 = @XGETTEXT_015@
@@ -418,78 +538,83 @@ AUTOMAKE_OPTIONS = 1.5 gnits
noinst_HEADERS = noinst_HEADERS =
noinst_LIBRARIES = libcoreutils.a noinst_LIBRARIES = libcoreutils.a
noinst_LTLIBRARIES = noinst_LTLIBRARIES =
EXTRA_DIST = acl.c acl.h alloca.c alloca_.h allocsa.valgrind \ EXTRA_DIST = acl-internal.h acl.c acl.h acl_entries.c file-has-acl.c \
argmatch.c argmatch.h atexit.c backupfile.c backupfile.h \ alloca.c alloca_.h allocsa.valgrind argmatch.c argmatch.h \
c-strtod.c c-strtod.h c-strtod.c c-strtod.h c-strtold.c \ atexit.c backupfile.c backupfile.h c-strtod.c c-strtod.h \
calloc.c canon-host.c canon-host.h canonicalize.c \ c-strtod.c c-strtod.h c-strtold.c calloc.c canon-host.c \
canonicalize.h pathmax.h chdir-long.c chdir-long.h chown.c \ canon-host.h canonicalize.c canonicalize.h pathmax.h \
fchown-stub.c cloexec.c cloexec.h close-stream.c \ chdir-long.c chdir-long.h chown.c fchown-stub.c cloexec.c \
close-stream.h closeout.c closeout.h cycle-check.c \ cloexec.h close-stream.c close-stream.h closeout.c closeout.h \
cycle-check.h dev-ino.h dirfd.c dirfd.h basename.c dirname.c \ cycle-check.c cycle-check.h dev-ino.h dirfd.c dirfd.h \
dirname.h stripslash.c dup2.c error.c error.h euidaccess.c \ basename.c dirname.c dirname.h stripslash.c dup2.c error.c \
euidaccess.h exclude.c exclude.h exitfail.c exitfail.h \ error.h euidaccess.c euidaccess.h exclude.c exclude.h \
fcntl_.h creat-safer.c fcntl--.h fcntl-safer.h open-safer.c \ exitfail.c exitfail.h dirent_.h fchdir.c fcntl_.h \
file-type.c file-type.h fileblocks.c filemode.c filemode.h \ creat-safer.c fcntl--.h fcntl-safer.h open-safer.c file-type.c \
filenamecat.c filenamecat.h fnmatch.c fnmatch_.h \ file-type.h fileblocks.c filemode.c filemode.h filenamecat.c \
fnmatch_loop.c fopen-safer.c stdio--.h stdio-safer.h \ filenamecat.h fnmatch.c fnmatch_.h fnmatch_loop.c \
__fpending.c __fpending.h fprintftime.c fprintftime.h free.c \ fopen-safer.c stdio--.h stdio-safer.h __fpending.c \
fsusage.c fsusage.h ftruncate.c fts-cycle.c fts.c fts_.h \ __fpending.h fprintftime.c fprintftime.h free.c fsusage.c \
gai_strerror.c getaddrinfo.c getaddrinfo.h getcwd.c getcwd.h \ fsusage.h ftruncate.c fts-cycle.c fts.c fts_.h gai_strerror.c \
getdate.c getdate.h getdelim.c getdelim.h getgroups.c \ getaddrinfo.c getaddrinfo.h getcwd.c getdate.c getdate.h \
gethostname.c gethrxtime.c gethrxtime.h xtime.h getline.c \ getdelim.c getdelim.h getgroups.c gethostname.c gethrxtime.c \
getline.h getloadavg.c getndelim2.c getndelim2.h getopt.c \ gethrxtime.h xtime.h getline.c getline.h getloadavg.c \
getopt1.c getopt_.h getopt_int.h getpagesize.h getpass.c \ getndelim2.c getndelim2.h getopt.c getopt1.c getopt_.h \
getpass.h gettime.c gettimeofday.c getugroups.c getusershell.c \ getopt_int.h getpagesize.h getpass.c getpass.h gettime.c \
group-member.c group-member.h hard-locale.c hard-locale.h \ gettimeofday.c getugroups.c getusershell.c group-member.c \
hash.c hash.h human.c human.h i-ring.c i-ring.h idcache.c \ group-member.h hard-locale.c hard-locale.h hash.c hash.h \
inet_ntop.c inet_ntop.h intprops.h imaxtostr.c inttostr.c \ human.c human.h i-ring.c i-ring.h idcache.c inet_ntop.c \
inttostr.h offtostr.c uinttostr.c umaxtostr.c inttypes_.h \ inet_ntop.h intprops.h imaxtostr.c inttostr.c inttostr.h \
isapipe.c isapipe.h lchmod.h lchown.c lchown.h config.charset \ offtostr.c uinttostr.c umaxtostr.c inttypes_.h isapipe.c \
isapipe.h lchmod.h lchown.c lchown.h config.charset \
ref-add.sin ref-del.sin long-options.c long-options.h lstat.c \ ref-add.sin ref-del.sin long-options.c long-options.h lstat.c \
lstat.h malloc.c mbchar.c mbchar.h md5.c md5.h memcasecmp.c \ lstat.h malloc.c mbchar.h md5.c md5.h memcasecmp.c \
memcasecmp.h memchr.c memcmp.c memcoll.c memcoll.h memcpy.c \ memcasecmp.h memchr.c memcmp.c memcoll.c memcoll.h memcpy.c \
memmove.c mempcpy.c mempcpy.h memrchr.c memrchr.h memset.c \ memmove.c mempcpy.c memrchr.c memset.c mkancesdirs.c \
mkancesdirs.c mkancesdirs.h mkdir.c dirchownmod.c \ mkancesdirs.h mkdir.c dirchownmod.c dirchownmod.h mkdir-p.c \
dirchownmod.h mkdir-p.c mkdir-p.h mkstemp.c mkstemp.h mktime.c \ mkdir-p.h mkstemp.c mktime.c modechange.c modechange.h \
modechange.c modechange.h mountlist.c mountlist.h nanosleep.c \ mountlist.c mountlist.h mpsort.c mpsort.h nanosleep.c \
obstack.c obstack.h at-func.c fchmodat.c fstatat.c mkdirat.c \ netinet_in_.h obstack.c obstack.h at-func.c fchmodat.c \
openat-die.c openat-priv.h openat-proc.c openat.c openat.h \ fchownat.c fstatat.c mkdirat.c openat-die.c openat-priv.h \
pathmax.h physmem.c physmem.h posixtm.c posixtm.h posixver.c \ openat-proc.c openat.c openat.h pathmax.h physmem.c physmem.h \
posixver.h putenv.c quote.c quote.h quotearg.c quotearg.h \ posixtm.c posixtm.h posixver.c posixver.h putenv.c quote.c \
raise.c readlink.c readtokens.c readtokens.h readutmp.c \ quote.h quotearg.c quotearg.h raise.c readlink.c readtokens.c \
readutmp.h realloc.c regcomp.c regex.c regex.h \ readtokens.h readutmp.c readutmp.h realloc.c regcomp.c regex.c \
regex_internal.c regex_internal.h regexec.c rename.c \ regex.h regex_internal.c regex_internal.h regexec.c rename.c \
rename-dest-slash.c rmdir.c root-dev-ino.c root-dev-ino.h \ rename-dest-slash.c rmdir.c root-dev-ino.c root-dev-ino.h \
rpmatch.c safe-read.c safe-read.h safe-write.c safe-write.h \ rpmatch.c safe-read.c safe-read.h safe-write.c safe-write.h \
same.c same.h same-inode.h save-cwd.c save-cwd.h savedir.c \ same.c same.h same-inode.h save-cwd.c save-cwd.h savedir.c \
savedir.h setenv.c setenv.h unsetenv.c settime.c sha1.c sha1.h \ savedir.h setenv.c setenv.h unsetenv.c settime.c sha1.c sha1.h \
sig2str.c sig2str.h snprintf.c snprintf.h stat-macros.h \ sig2str.c sig2str.h snprintf.c stat-macros.h stat-time.h \
stat-time.h stdbool_.h stdint_.h mkstemp-safer.c stdlib--.h \ stdbool_.h stdint_.h stdio_.h stdlib_.h mkstemp-safer.c \
stdlib-safer.h stpcpy.c stpcpy.h strcase.h strcasecmp.c \ stdlib--.h stdlib-safer.h stpcpy.c strcspn.c strdup.c \
strncasecmp.c strcspn.c strdup.c strdup.h strftime.c \ strftime.c strftime.h string_.h strndup.c strnlen.c strpbrk.c \
strftime.h strndup.c strndup.h strnlen.c strnlen.h strpbrk.c \ strtod.c strtoimax.c strtol.c strtoll.c strtoul.c strtoull.c \
strpbrk.h strtod.c strtoimax.c strtol.c strtoll.c strtoul.c \ strtoumax.c strverscmp.c strverscmp.h socket_.h stat_.h \
strtoull.c strtoumax.c strverscmp.c strverscmp.h socket_.h \ sys_time_.h tempname.c tempname.h time_.h time_r.c timespec.h \
stat_.h tempname.c tempname.h time_r.c time_r.h timespec.h \ unistd_.h dup-safer.c fd-safer.c pipe-safer.c unistd--.h \
dup-safer.c fd-safer.c pipe-safer.c unistd--.h unistd-safer.h \ unistd-safer.h unlinkdir.c unlinkdir.h unlocked-io.h \
unlinkdir.c unlinkdir.h unlocked-io.h inttostr.h userspec.c \ inttostr.h userspec.c userspec.h utime.c utimecmp.c utimecmp.h \
userspec.h utime.c utimecmp.c utimecmp.h utimens.c utimens.h \ utimens.c utimens.h asnprintf.c printf-args.c printf-args.h \
asnprintf.c printf-args.c printf-args.h printf-parse.c \ printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h \
printf-parse.h vasnprintf.c vasnprintf.h asprintf.c \ asprintf.c vasprintf.c vasprintf.h wchar_.h wctype_.h xalloc.h \
vasprintf.c vasprintf.h xalloc.h xmalloc.c xgetcwd.c xgetcwd.h \ xmalloc.c xgetcwd.c xgetcwd.h xnanosleep.c xnanosleep.h \
xnanosleep.c xnanosleep.h xreadlink.c xreadlink.h xstrtod.c \ xreadlink.h xreadlink.h xstrtod.c xstrtod.h xstrtol.c \
xstrtod.h xstrtol.c xstrtol.h xstrtoul.c xstrtod.c xstrtod.h \ xstrtol.h xstrtoul.c xstrtod.c xstrtod.h xstrtold.c yesno.c \
xstrtold.c yesno.c yesno.h yesno.h
BUILT_SOURCES = $(ALLOCA_H) $(ARPA_INET_H) configmake.h $(FCNTL_H) \ BUILT_SOURCES = $(ALLOCA_H) $(ARPA_INET_H) configmake.h $(DIRENT_H) \
$(FNMATCH_H) getdate.c $(GETOPT_H) $(INTTYPES_H) \ $(FCNTL_H) $(FNMATCH_H) getdate.c $(GETOPT_H) $(INTTYPES_H) \
$(NETINET_IN_H) $(STDBOOL_H) $(STDINT_H) $(SYS_SOCKET_H) \ $(NETINET_IN_H) $(STDBOOL_H) $(STDINT_H) stdio.h stdlib.h \
$(SYS_STAT_H) $(UNISTD_H) string.h $(SYS_SOCKET_H) $(SYS_STAT_H) $(SYS_TIME_H) time.h \
unistd.h $(WCHAR_H) $(WCTYPE_H)
SUFFIXES = .sed .sin SUFFIXES = .sed .sin
MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t arpa/inet.h \ MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t arpa/inet.h \
arpa/inet.h-t fcntl.h fcntl.h-t fnmatch.h fnmatch.h-t getopt.h \ arpa/inet.h-t dirent.h dirent.h-t fcntl.h fcntl.h-t fnmatch.h \
getopt.h-t inttypes.h inttypes.h-t netinet/in.h netinet/in.h-t \ fnmatch.h-t getopt.h getopt.h-t inttypes.h inttypes.h-t \
stdbool.h stdbool.h-t stdint.h stdint.h-t sys/socket.h \ netinet/in.h netinet/in.h-t stdbool.h stdbool.h-t stdint.h \
sys/socket.h-t sys/stat.h sys/stat.h-t unistd.h stdint.h-t stdio.h stdio.h-t stdlib.h stdlib.h-t string.h \
string.h-t sys/socket.h sys/socket.h-t sys/stat.h sys/stat.h-t \
sys/time.h sys/time.h-t time.h time.h-t unistd.h unistd.h-t \
wchar.h wchar.h-t wctype.h wctype.h-t
MOSTLYCLEANDIRS = arpa netinet sys sys MOSTLYCLEANDIRS = arpa netinet sys sys
CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \ CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \
ref-del.sed ref-del.sed
@@ -507,25 +632,28 @@ AM_CPPFLAGS =
# "gettextize --intl". # "gettextize --intl".
#AM_CPPFLAGS += -I$(top_builddir)/intl #AM_CPPFLAGS += -I$(top_builddir)/intl
libcoreutils_a_SOURCES = allocsa.h allocsa.c base64.h base64.c \ libcoreutils_a_SOURCES = allocsa.h allocsa.c base64.h base64.c \
diacrit.h diacrit.c exit.h full-read.h full-read.c \ c-ctype.h c-ctype.c c-strcase.h c-strcasecmp.c c-strncasecmp.c \
full-write.h full-write.c getdate.y gettext.h hash-pjw.h \ diacrit.h diacrit.c full-read.h full-read.c full-write.h \
hash-pjw.c linebuffer.h linebuffer.c localcharset.h \ full-write.c getdate.y gettext.h hash-pjw.h hash-pjw.c \
localcharset.c mbswidth.h mbswidth.c mbuiter.h readtokens0.h \ linebuffer.h linebuffer.c localcharset.h localcharset.c \
readtokens0.c savewd.h savewd.c strnlen1.h strnlen1.c \ mbchar.c mbscasecmp.c mbswidth.h mbswidth.c mbuiter.h \
unicodeio.h unicodeio.c verify.h version-etc.h version-etc.c \ readtokens0.h readtokens0.c savewd.h savewd.c strnlen1.h \
version-etc-fsf.c wcwidth.h xalloc-die.c xgethostname.h \ strnlen1.c unicodeio.h unicodeio.c verify.h version-etc.h \
xgethostname.c xmemcoll.h xmemcoll.c xstrndup.h xstrndup.c \ version-etc.c version-etc-fsf.c wcwidth.h xalloc-die.c \
xgethostname.h xgethostname.c xmemcoll.h xmemcoll.c \
xreadlink.c xreadlink-with-size.c xstrndup.h xstrndup.c \
xstrtoimax.c xstrtoumax.c buffer-lcm.c buffer-lcm.h xmemxfrm.c \ xstrtoimax.c xstrtoumax.c buffer-lcm.c buffer-lcm.h xmemxfrm.c \
xmemxfrm.h xmemxfrm.h
libcoreutils_a_LIBADD = $(gl_LIBOBJS) @ALLOCA@ $(LIBOBJS) libcoreutils_a_LIBADD = $(gl_LIBOBJS) @ALLOCA@ $(LIBOBJS)
libcoreutils_a_DEPENDENCIES = $(gl_LIBOBJS) @ALLOCA@ $(LIBOBJS) libcoreutils_a_DEPENDENCIES = $(gl_LIBOBJS) @ALLOCA@ $(LIBOBJS)
EXTRA_libcoreutils_a_SOURCES = acl.c alloca.c argmatch.c atexit.c \ EXTRA_libcoreutils_a_SOURCES = acl.c acl_entries.c file-has-acl.c \
backupfile.c c-strtod.c c-strtod.c c-strtold.c calloc.c \ alloca.c argmatch.c atexit.c backupfile.c c-strtod.c \
canon-host.c canonicalize.c chdir-long.c chown.c fchown-stub.c \ c-strtod.c c-strtold.c calloc.c canon-host.c canonicalize.c \
cloexec.c close-stream.c closeout.c cycle-check.c dirfd.c \ chdir-long.c chown.c fchown-stub.c cloexec.c close-stream.c \
basename.c dirname.c stripslash.c dup2.c error.c euidaccess.c \ closeout.c cycle-check.c dirfd.c basename.c dirname.c \
exclude.c exitfail.c creat-safer.c open-safer.c file-type.c \ stripslash.c dup2.c error.c euidaccess.c exclude.c exitfail.c \
fileblocks.c filemode.c filenamecat.c fnmatch.c fnmatch_loop.c \ fchdir.c creat-safer.c open-safer.c file-type.c fileblocks.c \
filemode.c filenamecat.c fnmatch.c fnmatch_loop.c \
fopen-safer.c __fpending.c fprintftime.c free.c fsusage.c \ fopen-safer.c __fpending.c fprintftime.c free.c fsusage.c \
ftruncate.c fts-cycle.c fts.c gai_strerror.c getaddrinfo.c \ ftruncate.c fts-cycle.c fts.c gai_strerror.c getaddrinfo.c \
getcwd.c getdelim.c getgroups.c gethostname.c gethrxtime.c \ getcwd.c getdelim.c getgroups.c gethostname.c gethrxtime.c \
@@ -534,26 +662,26 @@ EXTRA_libcoreutils_a_SOURCES = acl.c alloca.c argmatch.c atexit.c \
group-member.c hard-locale.c hash.c human.c i-ring.c idcache.c \ group-member.c hard-locale.c hash.c human.c i-ring.c idcache.c \
inet_ntop.c imaxtostr.c inttostr.c offtostr.c uinttostr.c \ inet_ntop.c imaxtostr.c inttostr.c offtostr.c uinttostr.c \
umaxtostr.c isapipe.c lchown.c long-options.c lstat.c malloc.c \ umaxtostr.c isapipe.c lchown.c long-options.c lstat.c malloc.c \
mbchar.c md5.c memcasecmp.c memchr.c memcmp.c memcoll.c \ md5.c memcasecmp.c memchr.c memcmp.c memcoll.c memcpy.c \
memcpy.c memmove.c mempcpy.c memrchr.c memset.c mkancesdirs.c \ memmove.c mempcpy.c memrchr.c memset.c mkancesdirs.c mkdir.c \
mkdir.c dirchownmod.c mkdir-p.c mkstemp.c mktime.c \ dirchownmod.c mkdir-p.c mkstemp.c mktime.c modechange.c \
modechange.c mountlist.c nanosleep.c obstack.c at-func.c \ mountlist.c mpsort.c nanosleep.c obstack.c at-func.c \
fchmodat.c fstatat.c mkdirat.c openat-die.c openat-proc.c \ fchmodat.c fchownat.c fstatat.c mkdirat.c openat-die.c \
openat.c physmem.c posixtm.c posixver.c putenv.c quote.c \ openat-proc.c openat.c physmem.c posixtm.c posixver.c putenv.c \
quotearg.c raise.c readlink.c readtokens.c readutmp.c \ quote.c quotearg.c raise.c readlink.c readtokens.c readutmp.c \
realloc.c regcomp.c regex.c regex_internal.c regexec.c \ realloc.c regcomp.c regex.c regex_internal.c regexec.c \
rename.c rename-dest-slash.c rmdir.c root-dev-ino.c rpmatch.c \ rename.c rename-dest-slash.c rmdir.c root-dev-ino.c rpmatch.c \
safe-read.c safe-write.c same.c save-cwd.c savedir.c setenv.c \ safe-read.c safe-write.c same.c save-cwd.c savedir.c setenv.c \
unsetenv.c settime.c sha1.c sig2str.c snprintf.c \ unsetenv.c settime.c sha1.c sig2str.c snprintf.c \
mkstemp-safer.c stpcpy.c strcasecmp.c strncasecmp.c strcspn.c \ mkstemp-safer.c stpcpy.c strcspn.c strdup.c strftime.c \
strdup.c strftime.c strndup.c strnlen.c strpbrk.c strtod.c \ strndup.c strnlen.c strpbrk.c strtod.c strtoimax.c strtol.c \
strtoimax.c strtol.c strtoll.c strtoul.c strtoull.c \ strtoll.c strtoul.c strtoull.c strtoumax.c strverscmp.c \
strtoumax.c strverscmp.c tempname.c time_r.c dup-safer.c \ tempname.c time_r.c dup-safer.c fd-safer.c pipe-safer.c \
fd-safer.c pipe-safer.c unlinkdir.c userspec.c utime.c \ unlinkdir.c userspec.c utime.c utimecmp.c utimens.c \
utimecmp.c utimens.c asnprintf.c printf-args.c printf-parse.c \ asnprintf.c printf-args.c printf-parse.c vasnprintf.c \
vasnprintf.c asprintf.c vasprintf.c xmalloc.c xgetcwd.c \ asprintf.c vasprintf.c xmalloc.c xgetcwd.c xnanosleep.c \
xnanosleep.c xreadlink.c xstrtod.c xstrtol.c xstrtoul.c \ xstrtod.c xstrtol.c xstrtoul.c xstrtod.c xstrtold.c yesno.c
xstrtod.c xstrtold.c yesno.c LINK_WARNING_H = $(top_srcdir)/build-aux/link-warning.h
charset_alias = $(DESTDIR)$(libdir)/charset.alias charset_alias = $(DESTDIR)$(libdir)/charset.alias
charset_tmp = $(DESTDIR)$(libdir)/charset.tmp charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
AM_CFLAGS = $(WARNING_CFLAGS) $(WERROR_CFLAGS) AM_CFLAGS = $(WARNING_CFLAGS) $(WERROR_CFLAGS)
@@ -640,7 +768,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/euidaccess-stat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/euidaccess-stat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/fchdir-stub.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/fd-reopen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/fd-reopen.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/memxfrm.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/memxfrm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rand-isaac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rand-isaac.Po@am__quote@
@@ -654,6 +781,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/xfts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/xfts.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/__fpending.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/__fpending.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acl_entries.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloca.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloca.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/allocsa.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/allocsa.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argmatch.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argmatch.Po@am__quote@
@@ -665,6 +793,9 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base64.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base64.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buffer-lcm.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buffer-lcm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-ctype.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strcasecmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strncasecmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strtod.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strtod.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strtold.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strtold.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calloc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calloc.Po@am__quote@
@@ -687,9 +818,12 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/euidaccess.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/euidaccess.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exclude.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exclude.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown-stub.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown-stub.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-safer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-safer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-has-acl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-type.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-type.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileblocks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileblocks.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filemode.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filemode.Po@am__quote@
@@ -742,6 +876,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbchar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbchar.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbscasecmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbswidth.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbswidth.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memcasecmp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memcasecmp.Po@am__quote@
@@ -762,6 +897,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mktime.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mktime.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modechange.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modechange.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mountlist.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mountlist.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpsort.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nanosleep.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nanosleep.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obstack.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obstack.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/offtostr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/offtostr.Po@am__quote@
@@ -805,12 +941,10 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sig2str.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sig2str.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snprintf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snprintf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stpcpy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stpcpy.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasecmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcspn.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcspn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strdup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strdup.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strftime.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strftime.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strncasecmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strndup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strndup.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Po@am__quote@
@@ -846,6 +980,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmemcoll.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmemcoll.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmemxfrm.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmemxfrm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xnanosleep.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xnanosleep.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xreadlink-with-size.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xreadlink.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xreadlink.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrndup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrndup.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtod.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtod.Po@am__quote@
@@ -1071,7 +1206,7 @@ alloca.h: alloca_.h
# We need the following in order to create <arpa/inet.h> when the system # We need the following in order to create <arpa/inet.h> when the system
# doesn't have one. # doesn't have one.
arpa/inet.h: arpa/inet.h:
test -d arpa || mkdir arpa @MKDIR_P@ arpa
rm -f $@-t $@ rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
echo '#include <sys/socket.h>'; \ echo '#include <sys/socket.h>'; \
@@ -1128,6 +1263,17 @@ configmake.h: Makefile
} | sed '/""/d' > $@-t } | sed '/""/d' > $@-t
mv $@-t $@ mv $@-t $@
# We need the following in order to create <dirent.h> when the system
# doesn't have one that works with the given compiler.
dirent.h: dirent_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's|@''ABSOLUTE_DIRENT_H''@|$(ABSOLUTE_DIRENT_H)|g' \
-e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
< $(srcdir)/dirent_.h; \
} > $@-t
mv $@-t $@
# We need the following in order to create <fcntl.h> when the system # We need the following in order to create <fcntl.h> when the system
# doesn't have one that works with the given compiler. # doesn't have one that works with the given compiler.
fcntl.h: fcntl_.h fcntl.h: fcntl_.h
@@ -1165,10 +1311,15 @@ inttypes.h: inttypes_.h
-e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
-e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
-e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \
-e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \
-e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \
-e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \
-e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \
-e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \
-e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
-e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
-e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
< $(srcdir)/inttypes_.h; \ < $(srcdir)/inttypes_.h; \
} > $@-t } > $@-t
mv $@-t $@ mv $@-t $@
@@ -1219,10 +1370,12 @@ charset.alias: config.charset
# We need the following in order to create <netinet/in.h> when the system # We need the following in order to create <netinet/in.h> when the system
# doesn't have one. # doesn't have one.
netinet/in.h: netinet/in.h:
test -d netinet || mkdir netinet @MKDIR_P@ netinet
rm -f $@-t $@ rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
echo '#include <sys/socket.h>'; \ sed -e 's|@''ABSOLUTE_NETINET_IN_H''@|$(ABSOLUTE_NETINET_IN_H)|g' \
-e 's|@''HAVE_NETINET_IN_H''@|$(HAVE_NETINET_IN_H)|g' \
< $(srcdir)/netinet_in_.h; \
} > $@-t } > $@-t
mv $@-t $@ mv $@-t $@
@@ -1240,8 +1393,7 @@ stdbool.h: stdbool_.h
stdint.h: stdint_.h stdint.h: stdint_.h
rm -f $@-t $@ rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
-e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
-e 's|@''ABSOLUTE_STDINT_H''@|$(ABSOLUTE_STDINT_H)|g' \ -e 's|@''ABSOLUTE_STDINT_H''@|$(ABSOLUTE_STDINT_H)|g' \
-e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
-e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
@@ -1266,19 +1418,122 @@ stdint.h: stdint_.h
} > $@-t } > $@-t
mv $@-t $@ mv $@-t $@
# We need the following in order to create <stdio.h> when the system
# doesn't have one that works with the given compiler.
stdio.h: stdio_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
sed -e 's|@''ABSOLUTE_STDIO_H''@|$(ABSOLUTE_STDIO_H)|g' \
-e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \
-e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \
-e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \
-e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \
-e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \
-e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \
-e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \
-e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \
-e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \
-e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \
-e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \
-e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \
-e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \
-e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \
-e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \
-e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \
-e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \
-e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
< $(srcdir)/stdio_.h; \
} > $@-t
mv $@-t $@
# We need the following in order to create <stdlib.h> when the system
# doesn't have one that works with the given compiler.
stdlib.h: stdlib_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
sed -e 's|@''ABSOLUTE_STDLIB_H''@|$(ABSOLUTE_STDLIB_H)|g' \
-e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
-e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
-e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
-e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
-e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
-e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
< $(srcdir)/stdlib_.h; \
} > $@-t
mv $@-t $@
# We need the following in order to create <string.h> when the system
# doesn't have one that works with the given compiler.
string.h: string_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
sed -e 's|@''ABSOLUTE_STRING_H''@|$(ABSOLUTE_STRING_H)|g' \
-e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
-e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
-e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
-e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \
-e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \
-e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \
-e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \
-e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \
-e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \
-e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \
-e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
-e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
-e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
-e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
-e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
-e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
-e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
-e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
-e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
-e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
-e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
-e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \
-e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \
-e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \
-e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
-e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
-e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
-e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
-e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
-e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
-e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
-e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \
-e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \
-e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \
-e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \
-e 's|@''HAVE_STRNDUP''@|$(HAVE_STRNDUP)|g' \
-e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \
-e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \
-e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \
-e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
-e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
-e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
< $(srcdir)/string_.h; \
} > $@-t
mv $@-t $@
# We need the following in order to create <sys/socket.h> when the system # We need the following in order to create <sys/socket.h> when the system
# doesn't have one that works with the given compiler. # doesn't have one that works with the given compiler.
sys/socket.h: socket_.h sys/socket.h: socket_.h
test -d sys || mkdir sys @MKDIR_P@ sys
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
cat $(srcdir)/socket_.h; \ sed -e 's|@''ABSOLUTE_SYS_SOCKET_H''@|$(ABSOLUTE_SYS_SOCKET_H)|g' \
-e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \
-e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
-e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
< $(srcdir)/socket_.h; \
} > $@-t } > $@-t
mv -f $@-t $@ mv -f $@-t $@
# We need the following in order to create <sys/stat.h> when the system # We need the following in order to create <sys/stat.h> when the system
# has one that is incomplete. # has one that is incomplete.
sys/stat.h: stat_.h sys/stat.h: stat_.h
test -d sys || mkdir sys @MKDIR_P@ sys
rm -f $@-t $@ rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's|@''ABSOLUTE_SYS_STAT_H''@|$(ABSOLUTE_SYS_STAT_H)|g' \ sed -e 's|@''ABSOLUTE_SYS_STAT_H''@|$(ABSOLUTE_SYS_STAT_H)|g' \
@@ -1286,12 +1541,83 @@ sys/stat.h: stat_.h
} > $@-t } > $@-t
mv $@-t $@ mv $@-t $@
# We need the following in order to create <sys/time.h> when the system
# doesn't have one that works with the given compiler.
sys/time.h: sys_time_.h
@MKDIR_P@ sys
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
-e 's|@''ABSOLUTE_SYS_TIME_H''@|$(ABSOLUTE_SYS_TIME_H)|g' \
-e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \
-e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \
< $(srcdir)/sys_time_.h; \
} > $@-t
mv $@-t $@
# We need the following in order to create <time.h> when the system
# doesn't have one that works with the given compiler.
time.h: time_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
sed -e 's|@ABSOLUTE_TIME_H''@|$(ABSOLUTE_TIME_H)|g' \
-e 's|@REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \
-e 's|@REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
-e 's|@REPLACE_STRPTIME''@|$(REPLACE_STRPTIME)|g' \
-e 's|@REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \
-e 's|@SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
-e 's|@TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
< $(srcdir)/time_.h; \
} > $@-t
mv $@-t $@
# We need the following in order to create an empty placeholder for # We need the following in order to create an empty placeholder for
# <unistd.h> when the system doesn't have one. # <unistd.h> when the system doesn't have one.
unistd.h: unistd.h: unistd_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
echo '/* Empty placeholder for $@. */'; \ sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
} > $@ -e 's|@''ABSOLUTE_UNISTD_H''@|$(ABSOLUTE_UNISTD_H)|g' \
-e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
-e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
-e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
-e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
-e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
-e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
-e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
-e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
-e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
-e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
-e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
-e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
-e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
-e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
< $(srcdir)/unistd_.h; \
} > $@-t
mv $@-t $@
# We need the following in order to create <wchar.h> when the system
# version does not work standalone.
wchar.h: wchar_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's|@''ABSOLUTE_WCHAR_H''@|$(ABSOLUTE_WCHAR_H)|g' \
< $(srcdir)/wchar_.h; \
} > $@-t
mv $@-t $@
# We need the following in order to create <wctype.h> when the system
# doesn't have one that works with the given compiler.
wctype.h: wctype_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
-e 's|@''ABSOLUTE_WCTYPE_H''@|$(ABSOLUTE_WCTYPE_H)|g' \
-e 's/@''HAVE_WCTYPE_CTMP_BUG''@/$(HAVE_WCTYPE_CTMP_BUG)/g' \
-e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
< $(srcdir)/wctype_.h; \
} > $@-t
mv $@-t $@
mostlyclean-local: mostlyclean-generic mostlyclean-local: mostlyclean-generic
@for dir in '' $(MOSTLYCLEANDIRS); do \ @for dir in '' $(MOSTLYCLEANDIRS); do \
+86
View File
@@ -0,0 +1,86 @@
/* Internal implementation of access control lists.
Copyright (C) 2002, 2003, 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Written by Paul Eggert and Andreas Gruenbacher. */
#include <config.h>
#include "acl.h"
#include <stdbool.h>
#include <stdlib.h>
#ifdef HAVE_ACL_LIBACL_H
# include <acl/libacl.h>
#endif
#include "error.h"
#include "quote.h"
#include <errno.h>
#ifndef ENOSYS
# define ENOSYS (-1)
#endif
#ifndef ENOTSUP
# define ENOTSUP (-1)
#endif
#include "gettext.h"
#define _(msgid) gettext (msgid)
#ifndef HAVE_FCHMOD
# define HAVE_FCHMOD false
# define fchmod(fd, mode) (-1)
#endif
#ifndef MIN_ACL_ENTRIES
# define MIN_ACL_ENTRIES 4
#endif
/* POSIX 1003.1e (draft 17) */
#ifndef HAVE_ACL_GET_FD
# define HAVE_ACL_GET_FD false
# define acl_get_fd(fd) (NULL)
#endif
/* POSIX 1003.1e (draft 17) */
#ifndef HAVE_ACL_SET_FD
# define HAVE_ACL_SET_FD false
# define acl_set_fd(fd, acl) (-1)
#endif
/* Linux-specific */
#ifndef HAVE_ACL_EXTENDED_FILE
# define HAVE_ACL_EXTENDED_FILE false
# define acl_extended_file(name) (-1)
#endif
/* Linux-specific */
#ifndef HAVE_ACL_FROM_MODE
# define HAVE_ACL_FROM_MODE false
# define acl_from_mode(mode) (NULL)
#endif
#define ACL_NOT_WELL_SUPPORTED(Errno) \
((Errno) == ENOTSUP || (Errno) == ENOSYS || (Errno) == EINVAL)
/* Define a replacement for acl_entries if needed. */
#if USE_ACL && HAVE_ACL_GET_FILE && HAVE_ACL_FREE && !HAVE_ACL_ENTRIES
# define acl_entries rpl_acl_entries
int acl_entries (acl_t);
#endif
+5 -156
View File
@@ -1,6 +1,6 @@
/* acl.c - access control lists /* acl.c - access control lists
Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. Copyright (C) 2002, 2003, 2005, 2006, 2007 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
@@ -20,97 +20,9 @@
#include <config.h> #include <config.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#ifndef S_ISLNK
# define S_ISLNK(Mode) 0
#endif
#ifdef HAVE_ACL_LIBACL_H
# include <acl/libacl.h>
#endif
#include "acl.h" #include "acl.h"
#include "error.h"
#include "quote.h"
#include <errno.h> #include "acl-internal.h"
#ifndef ENOSYS
# define ENOSYS (-1)
#endif
#ifndef ENOTSUP
# define ENOTSUP (-1)
#endif
#if ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# define _(Text) Text
#endif
#ifndef HAVE_FCHMOD
# define HAVE_FCHMOD false
# define fchmod(fd, mode) (-1)
#endif
/* POSIX 1003.1e (draft 17) */
#ifndef HAVE_ACL_GET_FD
# define HAVE_ACL_GET_FD false
# define acl_get_fd(fd) (NULL)
#endif
/* POSIX 1003.1e (draft 17) */
#ifndef HAVE_ACL_SET_FD
# define HAVE_ACL_SET_FD false
# define acl_set_fd(fd, acl) (-1)
#endif
/* Linux-specific */
#ifndef HAVE_ACL_EXTENDED_FILE
# define HAVE_ACL_EXTENDED_FILE false
# define acl_extended_file(name) (-1)
#endif
/* Linux-specific */
#ifndef HAVE_ACL_FROM_MODE
# define HAVE_ACL_FROM_MODE false
# define acl_from_mode(mode) (NULL)
#endif
/* We detect the presence of POSIX 1003.1e (draft 17 -- abandoned) support
by checking for HAVE_ACL_GET_FILE, HAVE_ACL_SET_FILE, and HAVE_ACL_FREE.
Systems that have acl_get_file, acl_set_file, and acl_free must also
have acl_to_text, acl_from_text, and acl_delete_def_file (all defined
in the draft); systems that don't would hit #error statements here. */
#if USE_ACL && HAVE_ACL_GET_FILE && !HAVE_ACL_ENTRIES
# ifndef HAVE_ACL_TO_TEXT
# error Must have acl_to_text (see POSIX 1003.1e draft 17).
# endif
/* Return the number of entries in ACL. Linux implements acl_entries
as a more efficient extension than using this workaround. */
static int
acl_entries (acl_t acl)
{
char *text = acl_to_text (acl, NULL), *t;
int entries;
if (text == NULL)
return -1;
for (entries = 0, t = text; ; t++, entries++) {
t = strchr (t, '\n');
if (t == NULL)
break;
}
acl_free (text);
return entries;
}
#endif
/* If DESC is a valid file descriptor use fchmod to change the /* If DESC is a valid file descriptor use fchmod to change the
file's mode to MODE on systems that have fchown. On systems file's mode to MODE on systems that have fchown. On systems
@@ -126,69 +38,6 @@ chmod_or_fchmod (const char *name, int desc, mode_t mode)
return chmod (name, mode); return chmod (name, mode);
} }
/* Return 1 if NAME has a nontrivial access control list, 0 if
NAME only has no or a base access control list, and -1 on
error. SB must be set to the stat buffer of FILE. */
int
file_has_acl (char const *name, struct stat const *sb)
{
#if USE_ACL && HAVE_ACL && defined GETACLCNT
/* This implementation should work on recent-enough versions of HP-UX,
Solaris, and Unixware. */
# ifndef MIN_ACL_ENTRIES
# define MIN_ACL_ENTRIES 4
# endif
if (! S_ISLNK (sb->st_mode))
{
int n = acl (name, GETACLCNT, 0, NULL);
return n < 0 ? (errno == ENOSYS ? 0 : -1) : (MIN_ACL_ENTRIES < n);
}
#elif USE_ACL && HAVE_ACL_GET_FILE && HAVE_ACL_FREE
/* POSIX 1003.1e (draft 17 -- abandoned) specific version. */
if (! S_ISLNK (sb->st_mode))
{
int ret;
if (HAVE_ACL_EXTENDED_FILE)
ret = acl_extended_file (name);
else
{
acl_t acl = acl_get_file (name, ACL_TYPE_ACCESS);
if (acl)
{
ret = (3 < acl_entries (acl));
acl_free (acl);
if (ret == 0 && S_ISDIR (sb->st_mode))
{
acl = acl_get_file (name, ACL_TYPE_DEFAULT);
if (acl)
{
ret = (0 < acl_entries (acl));
acl_free (acl);
}
else
ret = -1;
}
}
else
ret = -1;
}
if (ret < 0)
return (errno == ENOSYS || errno == ENOTSUP) ? 0 : -1;
return ret;
}
#endif
/* FIXME: Add support for AIX, Irix, and Tru64. Please see Samba's
source/lib/sysacls.c file for fix-related ideas. */
return 0;
}
/* Copy access control lists from one file to another. If SOURCE_DESC is /* Copy access control lists from one file to another. If SOURCE_DESC is
a valid file descriptor, use file descriptor operations, else use a valid file descriptor, use file descriptor operations, else use
filename based operations on SRC_NAME. Likewise for DEST_DESC and filename based operations on SRC_NAME. Likewise for DEST_DESC and
@@ -214,7 +63,7 @@ copy_acl (const char *src_name, int source_desc, const char *dst_name,
acl = acl_get_file (src_name, ACL_TYPE_ACCESS); acl = acl_get_file (src_name, ACL_TYPE_ACCESS);
if (acl == NULL) if (acl == NULL)
{ {
if (errno == ENOSYS || errno == ENOTSUP) if (ACL_NOT_WELL_SUPPORTED (errno))
return set_acl (dst_name, dest_desc, mode); return set_acl (dst_name, dest_desc, mode);
else else
{ {
@@ -231,7 +80,7 @@ copy_acl (const char *src_name, int source_desc, const char *dst_name,
{ {
int saved_errno = errno; int saved_errno = errno;
if (errno == ENOSYS || errno == ENOTSUP) if (ACL_NOT_WELL_SUPPORTED (errno))
{ {
int n = acl_entries (acl); int n = acl_entries (acl);
@@ -367,7 +216,7 @@ set_acl (char const *name, int desc, mode_t mode)
int saved_errno = errno; int saved_errno = errno;
acl_free (acl); acl_free (acl);
if (errno == ENOTSUP || errno == ENOSYS) if (ACL_NOT_WELL_SUPPORTED (errno))
{ {
if (chmod_or_fchmod (name, desc, mode) != 0) if (chmod_or_fchmod (name, desc, mode) != 0)
saved_errno = errno; saved_errno = errno;
+4
View File
@@ -18,6 +18,8 @@
Written by Paul Eggert. */ Written by Paul Eggert. */
#include <sys/types.h>
#if HAVE_SYS_ACL_H #if HAVE_SYS_ACL_H
# include <sys/acl.h> # include <sys/acl.h>
#endif #endif
@@ -25,6 +27,8 @@
# define GETACLCNT ACL_CNT # define GETACLCNT ACL_CNT
#endif #endif
#include <sys/stat.h>
int file_has_acl (char const *, struct stat const *); int file_has_acl (char const *, struct stat const *);
int copy_acl (char const *, int, char const *, int, mode_t); int copy_acl (char const *, int, char const *, int, mode_t);
int set_acl (char const *, int, mode_t); int set_acl (char const *, int, mode_t);
@@ -1,5 +1,6 @@
/* Copy memory area and return pointer after last written byte. /* Return the number of entries in an ACL.
Copyright (C) 2003, 2004 Free Software Foundation, Inc.
Copyright (C) 2002, 2003, 2005, 2006, 2007 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
@@ -13,24 +14,26 @@
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, along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef mempcpy Written by Paul Eggert and Andreas Gruenbacher. */
# if HAVE_MEMPCPY #include <config.h>
/* Get mempcpy() declaration. */ #include "acl-internal.h"
# include <string.h>
# else /* Return the number of entries in ACL. */
/* Get size_t */ int
# include <stddef.h> acl_entries (acl_t acl)
{
/* Copy N bytes of SRC to DEST, return pointer to bytes after the char *t;
last written byte. */ int entries = 0;
extern void *mempcpy (void *dest, const void *src, size_t n); char *text = acl_to_text (acl, NULL);
if (! text)
# endif return -1;
for (t = text; *t; t++)
#endif entries += (*t == '\n');
acl_free (text);
return entries;
}
+5 -5
View File
@@ -1,5 +1,5 @@
/* Safe automatic memory allocation. /* Safe automatic memory allocation.
Copyright (C) 2003-2006 Free Software Foundation, Inc. Copyright (C) 2003-2007 Free Software Foundation, Inc.
Written by Bruno Haible <[email protected]>, 2003. Written by Bruno Haible <[email protected]>, 2003.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
@@ -106,17 +106,17 @@ enum
among all elementary types. */ among all elementary types. */
sa_alignment_long = sa_alignof (long), sa_alignment_long = sa_alignof (long),
sa_alignment_double = sa_alignof (double), sa_alignment_double = sa_alignof (double),
#ifdef HAVE_LONG_LONG_INT #if HAVE_LONG_LONG_INT
sa_alignment_longlong = sa_alignof (long long), sa_alignment_longlong = sa_alignof (long long),
#endif #endif
#ifdef HAVE_LONG_DOUBLE #if HAVE_LONG_DOUBLE
sa_alignment_longdouble = sa_alignof (long double), sa_alignment_longdouble = sa_alignof (long double),
#endif #endif
sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1) sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1)
#ifdef HAVE_LONG_LONG_INT #if HAVE_LONG_LONG_INT
| (sa_alignment_longlong - 1) | (sa_alignment_longlong - 1)
#endif #endif
#ifdef HAVE_LONG_DOUBLE #if HAVE_LONG_DOUBLE
| (sa_alignment_longdouble - 1) | (sa_alignment_longdouble - 1)
#endif #endif
) + 1, ) + 1,
+1 -2
View File
@@ -1,6 +1,6 @@
/* argmatch.c -- find a match for a string in an array /* argmatch.c -- find a match for a string in an array
Copyright (C) 1990, 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006 Copyright (C) 1990, 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc. 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
@@ -34,7 +34,6 @@
#define _(msgid) gettext (msgid) #define _(msgid) gettext (msgid)
#include "error.h" #include "error.h"
#include "exit.h"
#include "quotearg.h" #include "quotearg.h"
#include "quote.h" #include "quote.h"
+5
View File
@@ -82,6 +82,11 @@
of `digit' even when the host does not conform to POSIX. */ of `digit' even when the host does not conform to POSIX. */
#define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
/* The results of opendir() in this file are not used with dirfd and fchdir,
therefore save some unnecessary work in fchdir.c. */
#undef opendir
#undef closedir
/* The extension added to file names to produce a simple (as opposed /* The extension added to file names to produce a simple (as opposed
to numbered) backup file name. */ to numbered) backup file name. */
char const *simple_backup_suffix = "~"; char const *simple_backup_suffix = "~";
+198 -62
View File
@@ -1,5 +1,7 @@
/* -*- buffer-read-only: t -*- vi: set ro: */
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
/* base64.c -- Encode binary data using printable characters. /* base64.c -- Encode binary data using printable characters.
Copyright (C) 1999, 2000, 2001, 2004, 2005, 2006 Free Software Copyright (C) 1999, 2000, 2001, 2004, 2005, 2006, 2007 Free Software
Foundation, Inc. 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
@@ -52,6 +54,8 @@
/* Get UCHAR_MAX. */ /* Get UCHAR_MAX. */
#include <limits.h> #include <limits.h>
#include <string.h>
/* C89 compliant way to cast 'char' to 'unsigned char'. */ /* C89 compliant way to cast 'char' to 'unsigned char'. */
static inline unsigned char static inline unsigned char
to_uchar (char ch) to_uchar (char ch)
@@ -300,89 +304,220 @@ isbase64 (char ch)
return uchar_in_range (to_uchar (ch)) && 0 <= b64[to_uchar (ch)]; return uchar_in_range (to_uchar (ch)) && 0 <= b64[to_uchar (ch)];
} }
/* Decode base64 encoded input array IN of length INLEN to output /* Initialize decode-context buffer, CTX. */
array OUT that can hold *OUTLEN bytes. Return true if decoding was void
successful, i.e. if the input was valid base64 data, false base64_decode_ctx_init (struct base64_decode_context *ctx)
otherwise. If *OUTLEN is too small, as many bytes as possible will
be written to OUT. On return, *OUTLEN holds the length of decoded
bytes in OUT. Note that as soon as any non-alphabet characters are
encountered, decoding is stopped and false is returned. This means
that, when applicable, you must remove any line terminators that is
part of the data stream before calling this function. */
bool
base64_decode (const char *restrict in, size_t inlen,
char *restrict out, size_t *outlen)
{ {
size_t outleft = *outlen; ctx->i = 0;
}
while (inlen >= 2) /* If CTX->i is 0 or 4, there are four or more bytes in [*IN..IN_END), and
none of those four is a newline, then return *IN. Otherwise, copy up to
4 - CTX->i non-newline bytes from that range into CTX->buf, starting at
index CTX->i and setting CTX->i to reflect the number of bytes copied,
and return CTX->buf. In either case, advance *IN to point to the byte
after the last one processed, and set *N_NON_NEWLINE to the number of
verified non-newline bytes accessible through the returned pointer. */
static inline char *
get_4 (struct base64_decode_context *ctx,
char const *restrict *in, char const *restrict in_end,
size_t *n_non_newline)
{
if (ctx->i == 4)
ctx->i = 0;
if (ctx->i == 0)
{ {
if (!isbase64 (in[0]) || !isbase64 (in[1])) char const *t = *in;
break; if (4 <= in_end - *in && memchr (t, '\n', 4) == NULL)
if (outleft)
{ {
*out++ = ((b64[to_uchar (in[0])] << 2) /* This is the common case: no newline. */
| (b64[to_uchar (in[1])] >> 4)); *in += 4;
outleft--; *n_non_newline = 4;
return (char *) t;
}
}
{
/* Copy non-newline bytes into BUF. */
char const *p = *in;
while (p < in_end)
{
char c = *p++;
if (c != '\n')
{
ctx->buf[ctx->i++] = c;
if (ctx->i == 4)
break;
}
}
*in = p;
*n_non_newline = ctx->i;
return ctx->buf;
}
}
#define return_false \
do \
{ \
*outp = out; \
return false; \
} \
while (false)
/* Decode up to four bytes of base64-encoded data, IN, of length INLEN
into the output buffer, *OUT, of size *OUTLEN bytes. Return true if
decoding is successful, false otherwise. If *OUTLEN is too small,
as many bytes as possible are written to *OUT. On return, advance
*OUT to point to the byte after the last one written, and decrement
*OUTLEN to reflect the number of bytes remaining in *OUT. */
static inline bool
decode_4 (char const *restrict in, size_t inlen,
char *restrict *outp, size_t *outleft)
{
char *out = *outp;
if (inlen < 2)
return false;
if (!isbase64 (in[0]) || !isbase64 (in[1]))
return false;
if (*outleft)
{
*out++ = ((b64[to_uchar (in[0])] << 2)
| (b64[to_uchar (in[1])] >> 4));
--*outleft;
}
if (inlen == 2)
return_false;
if (in[2] == '=')
{
if (inlen != 4)
return_false;
if (in[3] != '=')
return_false;
}
else
{
if (!isbase64 (in[2]))
return_false;
if (*outleft)
{
*out++ = (((b64[to_uchar (in[1])] << 4) & 0xf0)
| (b64[to_uchar (in[2])] >> 2));
--*outleft;
} }
if (inlen == 2) if (inlen == 3)
break; return_false;
if (in[2] == '=') if (in[3] == '=')
{ {
if (inlen != 4) if (inlen != 4)
break; return_false;
if (in[3] != '=')
break;
} }
else else
{ {
if (!isbase64 (in[2])) if (!isbase64 (in[3]))
break; return_false;
if (outleft) if (*outleft)
{ {
*out++ = (((b64[to_uchar (in[1])] << 4) & 0xf0) *out++ = (((b64[to_uchar (in[2])] << 6) & 0xc0)
| (b64[to_uchar (in[2])] >> 2)); | b64[to_uchar (in[3])]);
outleft--; --*outleft;
} }
}
}
if (inlen == 3) *outp = out;
break; return true;
}
if (in[3] == '=') /* Decode base64-encoded input array IN of length INLEN to output array
OUT that can hold *OUTLEN bytes. The input data may be interspersed
with newlines. Return true if decoding was successful, i.e. if the
input was valid base64 data, false otherwise. If *OUTLEN is too
small, as many bytes as possible will be written to OUT. On return,
*OUTLEN holds the length of decoded bytes in OUT. Note that as soon
as any non-alphabet, non-newline character is encountered, decoding
is stopped and false is returned. If INLEN is zero, then process
only whatever data is stored in CTX.
Initially, CTX must have been initialized via base64_decode_ctx_init.
Subsequent calls to this function must reuse whatever state is recorded
in that buffer. It is necessary for when a quadruple of base64 input
bytes spans two input buffers. */
bool
base64_decode (struct base64_decode_context *ctx,
const char *restrict in, size_t inlen,
char *restrict out, size_t *outlen)
{
size_t outleft = *outlen;
bool flush_ctx = inlen == 0;
while (true)
{
size_t outleft_save = outleft;
if (ctx->i == 0 && !flush_ctx)
{
while (true)
{ {
if (inlen != 4) /* Save a copy of outleft, in case we need to re-parse this
break; block of four bytes. */
} outleft_save = outleft;
else if (!decode_4 (in, inlen, &out, &outleft))
{
if (!isbase64 (in[3]))
break; break;
if (outleft) in += 4;
{ inlen -= 4;
*out++ = (((b64[to_uchar (in[2])] << 6) & 0xc0)
| b64[to_uchar (in[3])]);
outleft--;
}
} }
} }
in += 4; if (inlen == 0 && !flush_ctx)
inlen -= 4; break;
/* Handle the common case of 72-byte wrapped lines.
This also handles any other multiple-of-4-byte wrapping. */
if (inlen && *in == '\n')
{
++in;
--inlen;
continue;
}
/* Restore OUT and OUTLEFT. */
out -= outleft_save - outleft;
outleft = outleft_save;
{
char const *in_end = in + inlen;
char const *non_nl = get_4 (ctx, &in, in_end, &inlen);
/* If the input is empty or consists solely of newlines (0 non-newlines),
then we're done. Likewise if there are fewer than 4 bytes when not
flushing context. */
if (inlen == 0 || (inlen < 4 && !flush_ctx))
{
inlen = 0;
break;
}
if (!decode_4 (non_nl, inlen, &out, &outleft))
break;
inlen = in_end - in;
}
} }
*outlen -= outleft; *outlen -= outleft;
if (inlen != 0) return inlen == 0;
return false;
return true;
} }
/* Allocate an output buffer in *OUT, and decode the base64 encoded /* Allocate an output buffer in *OUT, and decode the base64 encoded
@@ -397,12 +532,13 @@ base64_decode (const char *restrict in, size_t inlen,
input was invalid, in which case *OUT is NULL and *OUTLEN is input was invalid, in which case *OUT is NULL and *OUTLEN is
undefined. */ undefined. */
bool bool
base64_decode_alloc (const char *in, size_t inlen, char **out, base64_decode_alloc (struct base64_decode_context *ctx,
const char *in, size_t inlen, char **out,
size_t *outlen) size_t *outlen)
{ {
/* This may allocate a few bytes too much, depending on input, /* This may allocate a few bytes too many, depending on input,
but it's not worth the extra CPU time to compute the exact amount. but it's not worth the extra CPU time to compute the exact size.
The exact amount is 3 * inlen / 4, minus 1 if the input ends The exact size is 3 * inlen / 4, minus 1 if the input ends
with "=" and minus another 1 if the input ends with "==". with "=" and minus another 1 if the input ends with "==".
Dividing before multiplying avoids the possibility of overflow. */ Dividing before multiplying avoids the possibility of overflow. */
size_t needlen = 3 * (inlen / 4) + 2; size_t needlen = 3 * (inlen / 4) + 2;
@@ -411,7 +547,7 @@ base64_decode_alloc (const char *in, size_t inlen, char **out,
if (!*out) if (!*out)
return true; return true;
if (!base64_decode (in, inlen, *out, &needlen)) if (!base64_decode (ctx, in, inlen, *out, &needlen))
{ {
free (*out); free (*out);
*out = NULL; *out = NULL;
+13 -2
View File
@@ -1,3 +1,5 @@
/* -*- buffer-read-only: t -*- vi: set ro: */
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
/* base64.h -- Encode binary data using printable characters. /* base64.h -- Encode binary data using printable characters.
Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
Written by Simon Josefsson. Written by Simon Josefsson.
@@ -29,6 +31,12 @@
integer >= n/k, i.e., the ceiling of n/k. */ integer >= n/k, i.e., the ceiling of n/k. */
# define BASE64_LENGTH(inlen) ((((inlen) + 2) / 3) * 4) # define BASE64_LENGTH(inlen) ((((inlen) + 2) / 3) * 4)
struct base64_decode_context
{
unsigned int i;
char buf[4];
};
extern bool isbase64 (char ch); extern bool isbase64 (char ch);
extern void base64_encode (const char *restrict in, size_t inlen, extern void base64_encode (const char *restrict in, size_t inlen,
@@ -36,10 +44,13 @@ extern void base64_encode (const char *restrict in, size_t inlen,
extern size_t base64_encode_alloc (const char *in, size_t inlen, char **out); extern size_t base64_encode_alloc (const char *in, size_t inlen, char **out);
extern bool base64_decode (const char *restrict in, size_t inlen, extern void base64_decode_ctx_init (struct base64_decode_context *ctx);
extern bool base64_decode (struct base64_decode_context *ctx,
const char *restrict in, size_t inlen,
char *restrict out, size_t *outlen); char *restrict out, size_t *outlen);
extern bool base64_decode_alloc (const char *in, size_t inlen, extern bool base64_decode_alloc (struct base64_decode_context *ctx,
const char *in, size_t inlen,
char **out, size_t *outlen); char **out, size_t *outlen);
#endif /* BASE64_H */ #endif /* BASE64_H */
+396
View File
@@ -0,0 +1,396 @@
/* Character handling in C locale.
Copyright 2000-2003, 2006 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#include <config.h>
/* Specification. */
#define NO_C_CTYPE_MACROS
#include "c-ctype.h"
/* The function isascii is not locale dependent. Its use in EBCDIC is
questionable. */
bool
c_isascii (int c)
{
return (c >= 0x00 && c <= 0x7f);
}
bool
c_isalnum (int c)
{
#if C_CTYPE_CONSECUTIVE_DIGITS \
&& C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
#if C_CTYPE_ASCII
return ((c >= '0' && c <= '9')
|| ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z'));
#else
return ((c >= '0' && c <= '9')
|| (c >= 'A' && c <= 'Z')
|| (c >= 'a' && c <= 'z'));
#endif
#else
switch (c)
{
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
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 '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':
return 1;
default:
return 0;
}
#endif
}
bool
c_isalpha (int c)
{
#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
#if C_CTYPE_ASCII
return ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z');
#else
return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'));
#endif
#else
switch (c)
{
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 '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':
return 1;
default:
return 0;
}
#endif
}
bool
c_isblank (int c)
{
return (c == ' ' || c == '\t');
}
bool
c_iscntrl (int c)
{
#if C_CTYPE_ASCII
return ((c & ~0x1f) == 0 || c == 0x7f);
#else
switch (c)
{
case ' ': case '!': case '"': case '#': case '$': case '%':
case '&': case '\'': case '(': case ')': case '*': case '+':
case ',': case '-': case '.': case '/':
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
case ':': case ';': case '<': case '=': case '>': case '?':
case '@':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
case '[': case '\\': case ']': case '^': case '_': case '`':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
case '{': case '|': case '}': case '~':
return 0;
default:
return 1;
}
#endif
}
bool
c_isdigit (int c)
{
#if C_CTYPE_CONSECUTIVE_DIGITS
return (c >= '0' && c <= '9');
#else
switch (c)
{
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
return 1;
default:
return 0;
}
#endif
}
bool
c_islower (int c)
{
#if C_CTYPE_CONSECUTIVE_LOWERCASE
return (c >= 'a' && c <= 'z');
#else
switch (c)
{
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':
return 1;
default:
return 0;
}
#endif
}
bool
c_isgraph (int c)
{
#if C_CTYPE_ASCII
return (c >= '!' && c <= '~');
#else
switch (c)
{
case '!': case '"': case '#': case '$': case '%': case '&':
case '\'': case '(': case ')': case '*': case '+': case ',':
case '-': case '.': case '/':
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
case ':': case ';': case '<': case '=': case '>': case '?':
case '@':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
case '[': case '\\': case ']': case '^': case '_': case '`':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
case '{': case '|': case '}': case '~':
return 1;
default:
return 0;
}
#endif
}
bool
c_isprint (int c)
{
#if C_CTYPE_ASCII
return (c >= ' ' && c <= '~');
#else
switch (c)
{
case ' ': case '!': case '"': case '#': case '$': case '%':
case '&': case '\'': case '(': case ')': case '*': case '+':
case ',': case '-': case '.': case '/':
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
case ':': case ';': case '<': case '=': case '>': case '?':
case '@':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
case '[': case '\\': case ']': case '^': case '_': case '`':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
case '{': case '|': case '}': case '~':
return 1;
default:
return 0;
}
#endif
}
bool
c_ispunct (int c)
{
#if C_CTYPE_ASCII
return ((c >= '!' && c <= '~')
&& !((c >= '0' && c <= '9')
|| ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z')));
#else
switch (c)
{
case '!': case '"': case '#': case '$': case '%': case '&':
case '\'': case '(': case ')': case '*': case '+': case ',':
case '-': case '.': case '/':
case ':': case ';': case '<': case '=': case '>': case '?':
case '@':
case '[': case '\\': case ']': case '^': case '_': case '`':
case '{': case '|': case '}': case '~':
return 1;
default:
return 0;
}
#endif
}
bool
c_isspace (int c)
{
return (c == ' ' || c == '\t'
|| c == '\n' || c == '\v' || c == '\f' || c == '\r');
}
bool
c_isupper (int c)
{
#if C_CTYPE_CONSECUTIVE_UPPERCASE
return (c >= 'A' && c <= 'Z');
#else
switch (c)
{
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':
return 1;
default:
return 0;
}
#endif
}
bool
c_isxdigit (int c)
{
#if C_CTYPE_CONSECUTIVE_DIGITS \
&& C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
#if C_CTYPE_ASCII
return ((c >= '0' && c <= '9')
|| ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'F'));
#else
return ((c >= '0' && c <= '9')
|| (c >= 'A' && c <= 'F')
|| (c >= 'a' && c <= 'f'));
#endif
#else
switch (c)
{
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
return 1;
default:
return 0;
}
#endif
}
int
c_tolower (int c)
{
#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
return (c >= 'A' && c <= 'Z' ? c - 'A' + 'a' : c);
#else
switch (c)
{
case 'A': return 'a';
case 'B': return 'b';
case 'C': return 'c';
case 'D': return 'd';
case 'E': return 'e';
case 'F': return 'f';
case 'G': return 'g';
case 'H': return 'h';
case 'I': return 'i';
case 'J': return 'j';
case 'K': return 'k';
case 'L': return 'l';
case 'M': return 'm';
case 'N': return 'n';
case 'O': return 'o';
case 'P': return 'p';
case 'Q': return 'q';
case 'R': return 'r';
case 'S': return 's';
case 'T': return 't';
case 'U': return 'u';
case 'V': return 'v';
case 'W': return 'w';
case 'X': return 'x';
case 'Y': return 'y';
case 'Z': return 'z';
default: return c;
}
#endif
}
int
c_toupper (int c)
{
#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
return (c >= 'a' && c <= 'z' ? c - 'a' + 'A' : c);
#else
switch (c)
{
case 'a': return 'A';
case 'b': return 'B';
case 'c': return 'C';
case 'd': return 'D';
case 'e': return 'E';
case 'f': return 'F';
case 'g': return 'G';
case 'h': return 'H';
case 'i': return 'I';
case 'j': return 'J';
case 'k': return 'K';
case 'l': return 'L';
case 'm': return 'M';
case 'n': return 'N';
case 'o': return 'O';
case 'p': return 'P';
case 'q': return 'Q';
case 'r': return 'R';
case 's': return 'S';
case 't': return 'T';
case 'u': return 'U';
case 'v': return 'V';
case 'w': return 'W';
case 'x': return 'X';
case 'y': return 'Y';
case 'z': return 'Z';
default: return c;
}
#endif
}
+280
View File
@@ -0,0 +1,280 @@
/* Character handling in C locale.
These functions work like the corresponding functions in <ctype.h>,
except that they have the C (POSIX) locale hardwired, whereas the
<ctype.h> functions' behaviour depends on the current locale set via
setlocale.
Copyright (C) 2000-2003, 2006 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef C_CTYPE_H
#define C_CTYPE_H
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
/* The functions defined in this file assume the "C" locale and a character
set without diacritics (ASCII-US or EBCDIC-US or something like that).
Even if the "C" locale on a particular system is an extension of the ASCII
character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it
is ISO-8859-1), the functions in this file recognize only the ASCII
characters. */
/* Check whether the ASCII optimizations apply. */
/* ANSI C89 (and ISO C99 5.2.1.3 too) already guarantees that
'0', '1', ..., '9' have consecutive integer values. */
#define C_CTYPE_CONSECUTIVE_DIGITS 1
#if ('A' <= 'Z') \
&& ('A' + 1 == 'B') && ('B' + 1 == 'C') && ('C' + 1 == 'D') \
&& ('D' + 1 == 'E') && ('E' + 1 == 'F') && ('F' + 1 == 'G') \
&& ('G' + 1 == 'H') && ('H' + 1 == 'I') && ('I' + 1 == 'J') \
&& ('J' + 1 == 'K') && ('K' + 1 == 'L') && ('L' + 1 == 'M') \
&& ('M' + 1 == 'N') && ('N' + 1 == 'O') && ('O' + 1 == 'P') \
&& ('P' + 1 == 'Q') && ('Q' + 1 == 'R') && ('R' + 1 == 'S') \
&& ('S' + 1 == 'T') && ('T' + 1 == 'U') && ('U' + 1 == 'V') \
&& ('V' + 1 == 'W') && ('W' + 1 == 'X') && ('X' + 1 == 'Y') \
&& ('Y' + 1 == 'Z')
#define C_CTYPE_CONSECUTIVE_UPPERCASE 1
#endif
#if ('a' <= 'z') \
&& ('a' + 1 == 'b') && ('b' + 1 == 'c') && ('c' + 1 == 'd') \
&& ('d' + 1 == 'e') && ('e' + 1 == 'f') && ('f' + 1 == 'g') \
&& ('g' + 1 == 'h') && ('h' + 1 == 'i') && ('i' + 1 == 'j') \
&& ('j' + 1 == 'k') && ('k' + 1 == 'l') && ('l' + 1 == 'm') \
&& ('m' + 1 == 'n') && ('n' + 1 == 'o') && ('o' + 1 == 'p') \
&& ('p' + 1 == 'q') && ('q' + 1 == 'r') && ('r' + 1 == 's') \
&& ('s' + 1 == 't') && ('t' + 1 == 'u') && ('u' + 1 == 'v') \
&& ('v' + 1 == 'w') && ('w' + 1 == 'x') && ('x' + 1 == 'y') \
&& ('y' + 1 == 'z')
#define C_CTYPE_CONSECUTIVE_LOWERCASE 1
#endif
#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
&& ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
&& ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
&& ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
&& ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
&& ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
&& ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
&& ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
&& ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
&& ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
&& ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
&& ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
&& ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
&& ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
&& ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
&& ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
&& ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
&& ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
&& ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)
/* The character set is ASCII or one of its variants or extensions, not EBCDIC.
Testing the value of '\n' and '\r' is not relevant. */
#define C_CTYPE_ASCII 1
#endif
/* Function declarations. */
extern bool c_isascii (int c); /* not locale dependent */
extern bool c_isalnum (int c);
extern bool c_isalpha (int c);
extern bool c_isblank (int c);
extern bool c_iscntrl (int c);
extern bool c_isdigit (int c);
extern bool c_islower (int c);
extern bool c_isgraph (int c);
extern bool c_isprint (int c);
extern bool c_ispunct (int c);
extern bool c_isspace (int c);
extern bool c_isupper (int c);
extern bool c_isxdigit (int c);
extern int c_tolower (int c);
extern int c_toupper (int c);
#if defined __GNUC__ && defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ && !defined NO_C_CTYPE_MACROS
/* ASCII optimizations. */
#undef c_isascii
#define c_isascii(c) \
({ int __c = (c); \
(__c >= 0x00 && __c <= 0x7f); \
})
#if C_CTYPE_CONSECUTIVE_DIGITS \
&& C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
#if C_CTYPE_ASCII
#undef c_isalnum
#define c_isalnum(c) \
({ int __c = (c); \
((__c >= '0' && __c <= '9') \
|| ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z')); \
})
#else
#undef c_isalnum
#define c_isalnum(c) \
({ int __c = (c); \
((__c >= '0' && __c <= '9') \
|| (__c >= 'A' && __c <= 'Z') \
|| (__c >= 'a' && __c <= 'z')); \
})
#endif
#endif
#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
#if C_CTYPE_ASCII
#undef c_isalpha
#define c_isalpha(c) \
({ int __c = (c); \
((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z'); \
})
#else
#undef c_isalpha
#define c_isalpha(c) \
({ int __c = (c); \
((__c >= 'A' && __c <= 'Z') || (__c >= 'a' && __c <= 'z')); \
})
#endif
#endif
#undef c_isblank
#define c_isblank(c) \
({ int __c = (c); \
(__c == ' ' || __c == '\t'); \
})
#if C_CTYPE_ASCII
#undef c_iscntrl
#define c_iscntrl(c) \
({ int __c = (c); \
((__c & ~0x1f) == 0 || __c == 0x7f); \
})
#endif
#if C_CTYPE_CONSECUTIVE_DIGITS
#undef c_isdigit
#define c_isdigit(c) \
({ int __c = (c); \
(__c >= '0' && __c <= '9'); \
})
#endif
#if C_CTYPE_CONSECUTIVE_LOWERCASE
#undef c_islower
#define c_islower(c) \
({ int __c = (c); \
(__c >= 'a' && __c <= 'z'); \
})
#endif
#if C_CTYPE_ASCII
#undef c_isgraph
#define c_isgraph(c) \
({ int __c = (c); \
(__c >= '!' && __c <= '~'); \
})
#endif
#if C_CTYPE_ASCII
#undef c_isprint
#define c_isprint(c) \
({ int __c = (c); \
(__c >= ' ' && __c <= '~'); \
})
#endif
#if C_CTYPE_ASCII
#undef c_ispunct
#define c_ispunct(c) \
({ int _c = (c); \
(c_isgraph (_c) && ! c_isalnum (_c)); \
})
#endif
#undef c_isspace
#define c_isspace(c) \
({ int __c = (c); \
(__c == ' ' || __c == '\t' \
|| __c == '\n' || __c == '\v' || __c == '\f' || __c == '\r'); \
})
#if C_CTYPE_CONSECUTIVE_UPPERCASE
#undef c_isupper
#define c_isupper(c) \
({ int __c = (c); \
(__c >= 'A' && __c <= 'Z'); \
})
#endif
#if C_CTYPE_CONSECUTIVE_DIGITS \
&& C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
#if C_CTYPE_ASCII
#undef c_isxdigit
#define c_isxdigit(c) \
({ int __c = (c); \
((__c >= '0' && __c <= '9') \
|| ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'F')); \
})
#else
#undef c_isxdigit
#define c_isxdigit(c) \
({ int __c = (c); \
((__c >= '0' && __c <= '9') \
|| (__c >= 'A' && __c <= 'F') \
|| (__c >= 'a' && __c <= 'f')); \
})
#endif
#endif
#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
#undef c_tolower
#define c_tolower(c) \
({ int __c = (c); \
(__c >= 'A' && __c <= 'Z' ? __c - 'A' + 'a' : __c); \
})
#undef c_toupper
#define c_toupper(c) \
({ int __c = (c); \
(__c >= 'a' && __c <= 'z' ? __c - 'a' + 'A' : __c); \
})
#endif
#endif /* optimizing for speed */
#ifdef __cplusplus
}
#endif
#endif /* C_CTYPE_H */
@@ -1,5 +1,5 @@
/* Case-insensitive string comparison functions. /* Case-insensitive string comparison functions in C locale.
Copyright (C) 1995-1996, 2001, 2003, 2005-2006 Free Software Foundation, Inc. Copyright (C) 1995-1996, 2001, 2003, 2005 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
@@ -15,37 +15,36 @@
along with this program; if not, write to the Free Software Foundation, along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef _STRCASE_H #ifndef C_STRCASE_H
#define _STRCASE_H #define C_STRCASE_H
#include <stddef.h> #include <stddef.h>
/* Include header files with a possibly conflicting declarations of strcasecmp
before we define it as a macro, so that they will be no-ops if included
after strcasecmp is defined as a macro. */ /* The functions defined in this file assume the "C" locale and a character
#include <string.h> set without diacritics (ASCII-US or EBCDIC-US or something like that).
Even if the "C" locale on a particular system is an extension of the ASCII
character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it
is ISO-8859-1), the functions in this file recognize only the ASCII
characters. More precisely, one of the string arguments must be an ASCII
string; the other one can also contain non-ASCII characters (but then
the comparison result will be nonzero). */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/* No known system has a strcasecmp() function that works correctly in
multibyte locales. Therefore we use our version always. */
#define strcasecmp rpl_strcasecmp
/* Compare strings S1 and S2, ignoring case, returning less than, equal to or /* Compare strings S1 and S2, ignoring case, returning less than, equal to or
greater than zero if S1 is lexicographically less than, equal to or greater greater than zero if S1 is lexicographically less than, equal to or greater
than S2. than S2. */
Note: This function may, in multibyte locales, return 0 for strings of extern int c_strcasecmp (const char *s1, const char *s2);
different lengths! */
extern int strcasecmp (const char *s1, const char *s2);
/* Compare no more than N characters of strings S1 and S2, ignoring case, /* Compare no more than N characters of strings S1 and S2, ignoring case,
returning less than, equal to or greater than zero if S1 is returning less than, equal to or greater than zero if S1 is
lexicographically less than, equal to or greater than S2. lexicographically less than, equal to or greater than S2. */
Note: This function can not work correctly in multibyte locales. */ extern int c_strncasecmp (const char *s1, const char *s2, size_t n);
#if ! HAVE_DECL_STRNCASECMP
extern int strncasecmp (const char *s1, const char *s2, size_t n);
#endif
#ifdef __cplusplus #ifdef __cplusplus
@@ -53,4 +52,4 @@ extern int strncasecmp (const char *s1, const char *s2, size_t n);
#endif #endif
#endif /* _STRCASE_H */ #endif /* C_STRCASE_H */
+57
View File
@@ -0,0 +1,57 @@
/* c-strcasecmp.c -- case insensitive string comparator in C locale
Copyright (C) 1998-1999, 2005-2006 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#include <config.h>
/* Specification. */
#include "c-strcase.h"
#include <limits.h>
#include "c-ctype.h"
int
c_strcasecmp (const char *s1, const char *s2)
{
register const unsigned char *p1 = (const unsigned char *) s1;
register const unsigned char *p2 = (const unsigned char *) s2;
unsigned char c1, c2;
if (p1 == p2)
return 0;
do
{
c1 = c_tolower (*p1);
c2 = c_tolower (*p2);
if (c1 == '\0')
break;
++p1;
++p2;
}
while (c1 == c2);
if (UCHAR_MAX <= INT_MAX)
return c1 - c2;
else
/* On machines where 'char' and 'int' are types of the same size, the
difference of two 'unsigned char' values - including the sign bit -
doesn't fit in an 'int'. */
return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
}
@@ -1,4 +1,4 @@
/* strncasecmp.c -- case insensitive string comparator /* c-strncasecmp.c -- case insensitive string comparator in C locale
Copyright (C) 1998-1999, 2005-2006 Free Software Foundation, Inc. Copyright (C) 1998-1999, 2005-2006 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
@@ -18,20 +18,14 @@
#include <config.h> #include <config.h>
/* Specification. */ /* Specification. */
#include "strcase.h" #include "c-strcase.h"
#include <ctype.h>
#include <limits.h> #include <limits.h>
#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch)) #include "c-ctype.h"
/* Compare no more than N bytes of strings S1 and S2,
ignoring case, returning less than, equal to or
greater than zero if S1 is lexicographically less
than, equal to or greater than S2. */
int int
strncasecmp (const char *s1, const char *s2, size_t n) c_strncasecmp (const char *s1, const char *s2, size_t n)
{ {
register const unsigned char *p1 = (const unsigned char *) s1; register const unsigned char *p1 = (const unsigned char *) s1;
register const unsigned char *p2 = (const unsigned char *) s2; register const unsigned char *p2 = (const unsigned char *) s2;
@@ -42,8 +36,8 @@ strncasecmp (const char *s1, const char *s2, size_t n)
do do
{ {
c1 = TOLOWER (*p1); c1 = c_tolower (*p1);
c2 = TOLOWER (*p2); c2 = c_tolower (*p2);
if (--n == 0 || c1 == '\0') if (--n == 0 || c1 == '\0')
break; break;
+3 -2
View File
@@ -1,6 +1,6 @@
/* Host name canonicalization /* Host name canonicalization
Copyright (C) 2005, 2006 Free Software Foundation, Inc. Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
Written by Derek Price <[email protected]>. Written by Derek Price <[email protected]>.
@@ -22,8 +22,9 @@
#include "canon-host.h" #include "canon-host.h"
#include <string.h>
#include "getaddrinfo.h" #include "getaddrinfo.h"
#include "strdup.h"
/* Store the last error for the single-threaded version of this function. */ /* Store the last error for the single-threaded version of this function. */
static int last_cherror; static int last_cherror;
+2 -2
View File
@@ -1,5 +1,5 @@
/* Return the canonical absolute name of a given file. /* Return the canonical absolute name of a given file.
Copyright (C) 1996-2006 Free Software Foundation, Inc. Copyright (C) 1996-2007 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
@@ -246,7 +246,7 @@ canonicalize_filename_mode (const char *name, canonicalize_mode_t can_mode)
goto error; goto error;
} }
buf = xreadlink (rname, st.st_size); buf = xreadlink_with_size (rname, st.st_size);
if (!buf) if (!buf)
{ {
if (can_mode == CAN_MISSING) if (can_mode == CAN_MISSING)
+2 -2
View File
@@ -1,5 +1,5 @@
/* Return the canonical absolute name of a given file. /* Return the canonical absolute name of a given file.
Copyright (C) 1996-2006 Free Software Foundation, Inc. Copyright (C) 1996-2007 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,7 +19,7 @@
#ifndef CANONICALIZE_H_ #ifndef CANONICALIZE_H_
# define CANONICALIZE_H_ # define CANONICALIZE_H_
# ifdef PROVIDE_CANONICALIZE_FILENAME_MODE # if GNULIB_CANONICALIZE
enum canonicalize_mode_t enum canonicalize_mode_t
{ {
/* All components must exist. */ /* All components must exist. */
+1 -2
View File
@@ -1,5 +1,5 @@
/* provide a chdir function that tries not to fail due to ENAMETOOLONG /* provide a chdir function that tries not to fail due to ENAMETOOLONG
Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. Copyright (C) 2004, 2005, 2006, 2007 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
@@ -29,7 +29,6 @@
#include <stdio.h> #include <stdio.h>
#include <assert.h> #include <assert.h>
#include "memrchr.h"
#include "openat.h" #include "openat.h"
#ifndef PATH_MAX #ifndef PATH_MAX
+11 -6
View File
@@ -1,7 +1,7 @@
/* provide consistent interface to chown for systems that don't interpret /* provide consistent interface to chown for systems that don't interpret
an ID of -1 as meaning `don't change the corresponding ID'. an ID of -1 as meaning `don't change the corresponding ID'.
Copyright (C) 1997, 2004, 2005, 2006 Free Software Foundation, Inc. Copyright (C) 1997, 2004, 2005, 2006, 2007 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
@@ -21,18 +21,23 @@
#include <config.h> #include <config.h>
/* Disable the definition of chown to rpl_chown (from config.h) in this /* Specification. */
file. Otherwise, we'd get conflicting prototypes for rpl_chown on #include <unistd.h>
most systems. */
#undef chown
#include <stdbool.h> #include <stdbool.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h> #include <fcntl.h>
#include <errno.h> #include <errno.h>
/* Below we refer to the system's chown(). */
#undef chown
/* The results of open() in this file are not used with fchdir,
therefore save some unnecessary work in fchdir.c. */
#undef open
#undef close
/* Provide a more-closely POSIX-conforming version of chown on /* Provide a more-closely POSIX-conforming version of chown on
systems with one or both of the following problems: systems with one or both of the following problems:
- chown doesn't treat an ID of -1 as meaning - chown doesn't treat an ID of -1 as meaning
+7 -4
View File
@@ -120,6 +120,9 @@
*/ */
/* #undef GETLOADAVG_PRIVILEGED */ /* #undef GETLOADAVG_PRIVILEGED */
/* Define to 1 when using the gnulib module canonicalize. */
#define GNULIB_CANONICALIZE 1
/* Define to 1 when using the gnulib close-stream module. */ /* Define to 1 when using the gnulib close-stream module. */
#define GNULIB_CLOSE_STREAM 1 #define GNULIB_CLOSE_STREAM 1
@@ -1767,7 +1770,7 @@
#define gl_va_copy(a,b) ((a) = (b)) #define gl_va_copy(a,b) ((a) = (b))
/* Define to rpl_gmtime if the replacement function should be used. */ /* Define to rpl_gmtime if the replacement function should be used. */
#define gmtime rpl_gmtime /* #undef gmtime rpl_gmtime */
/* Define to `__inline__' or `__inline' if that's what the C compiler /* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */ calls it, or to nothing if 'inline' is not supported under any name. */
@@ -1782,7 +1785,7 @@
/* #undef intmax_t */ /* #undef intmax_t */
/* Define to rpl_localtime if the replacement function should be used. */ /* Define to rpl_localtime if the replacement function should be used. */
#define localtime rpl_localtime /* #undef localtime rpl_localtime */
/* Define to `unsigned int' if <sys/types.h> does not define. */ /* Define to `unsigned int' if <sys/types.h> does not define. */
#define major_t unsigned int #define major_t unsigned int
@@ -1869,7 +1872,7 @@
#define regexec rpl_regexec #define regexec rpl_regexec
/* Define to rpl_regfree if the replacement should be used. */ /* Define to rpl_regfree if the replacement should be used. */
#define regfree rpl_regfree /* #undef regfree rpl_regfree */
/* Define to rpl_rename_dest_slash if the replacement function should be used. /* Define to rpl_rename_dest_slash if the replacement function should be used.
*/ */
@@ -1895,7 +1898,7 @@
/* #undef strtod */ /* #undef strtod */
/* Define to rpl_tzset if the wrapper function should be used. */ /* Define to rpl_tzset if the wrapper function should be used. */
#define tzset rpl_tzset /* #undef tzset rpl_tzset */
/* Define to `int' if <sys/types.h> doesn't define. */ /* Define to `int' if <sys/types.h> doesn't define. */
/* #undef uid_t */ /* #undef uid_t */
+97 -48
View File
@@ -1,17 +1,50 @@
/* lib/config.hin. Generated from configure.ac by autoheader. */ /* lib/config.hin. Generated from configure.ac by autoheader. */
/* Define this to an absolute name of <dirent.h>. */
#undef ABSOLUTE_DIRENT_H
/* Define this to an absolute name of <fcntl.h>. */ /* Define this to an absolute name of <fcntl.h>. */
#undef ABSOLUTE_FCNTL_H #undef ABSOLUTE_FCNTL_H
/* Define this to an absolute name of <inttypes.h>. */ /* Define this to an absolute name of <inttypes.h>. */
#undef ABSOLUTE_INTTYPES_H #undef ABSOLUTE_INTTYPES_H
/* Define this to an absolute name of <netinet/in.h>. */
#undef ABSOLUTE_NETINET_IN_H
/* Define this to an absolute name of <stdint.h>. */ /* Define this to an absolute name of <stdint.h>. */
#undef ABSOLUTE_STDINT_H #undef ABSOLUTE_STDINT_H
/* Define this to an absolute name of <stdio.h>. */
#undef ABSOLUTE_STDIO_H
/* Define this to an absolute name of <stdlib.h>. */
#undef ABSOLUTE_STDLIB_H
/* Define this to an absolute name of <string.h>. */
#undef ABSOLUTE_STRING_H
/* Define this to an absolute name of <sys/socket.h>. */
#undef ABSOLUTE_SYS_SOCKET_H
/* Define this to an absolute name of <sys/stat.h>. */ /* Define this to an absolute name of <sys/stat.h>. */
#undef ABSOLUTE_SYS_STAT_H #undef ABSOLUTE_SYS_STAT_H
/* Define this to an absolute name of <sys/time.h>. */
#undef ABSOLUTE_SYS_TIME_H
/* Define this to an absolute name of <time.h>. */
#undef ABSOLUTE_TIME_H
/* Define this to an absolute name of <unistd.h>. */
#undef ABSOLUTE_UNISTD_H
/* Define this to an absolute name of <wchar.h>. */
#undef ABSOLUTE_WCHAR_H
/* Define this to an absolute name of <wctype.h>. */
#undef ABSOLUTE_WCTYPE_H
/* Define to the function xargmatch calls on failures. */ /* Define to the function xargmatch calls on failures. */
#undef ARGMATCH_DIE #undef ARGMATCH_DIE
@@ -89,6 +122,9 @@
/* Define as good substitute value for EOVERFLOW. */ /* Define as good substitute value for EOVERFLOW. */
#undef EOVERFLOW #undef EOVERFLOW
/* Define if gnulib's fchdir() replacement is used. */
#undef FCHDIR_REPLACEMENT
/* Define on systems for which file names may have a so-called `drive letter' /* Define on systems for which file names may have a so-called `drive letter'
prefix, define this to compute the length of that prefix, including the prefix, define this to compute the length of that prefix, including the
colon. */ colon. */
@@ -119,15 +155,24 @@
*/ */
#undef GETLOADAVG_PRIVILEGED #undef GETLOADAVG_PRIVILEGED
/* Define to 1 when using the gnulib close-stream module. */ /* Define if gettimeofday clobbers the localtime buffer. */
#undef GETTIMEOFDAY_CLOBBERS_LOCALTIME
/* Define to 1 when using the gnulib module canonicalize. */
#undef GNULIB_CANONICALIZE
/* Define to 1 when using the gnulib module close-stream. */
#undef GNULIB_CLOSE_STREAM #undef GNULIB_CLOSE_STREAM
/* Define to 1 when using the gnulib fcntl-safer module. */ /* Define to 1 when using the gnulib module fcntl-safer. */
#undef GNULIB_FCNTL_SAFER #undef GNULIB_FCNTL_SAFER
/* Define to 1 when using the gnulib fopen-safer module. */ /* Define to 1 when using the gnulib module fopen-safer. */
#undef GNULIB_FOPEN_SAFER #undef GNULIB_FOPEN_SAFER
/* Define to 1 when using the gnulib module fts. */
#undef GNULIB_FTS
/* The concatenation of the strings `GNU ', and PACKAGE. */ /* The concatenation of the strings `GNU ', and PACKAGE. */
#undef GNU_PACKAGE #undef GNU_PACKAGE
@@ -173,8 +218,8 @@
/* Define to 1 if you have the `acl_set_file' function. */ /* Define to 1 if you have the `acl_set_file' function. */
#undef HAVE_ACL_SET_FILE #undef HAVE_ACL_SET_FILE
/* Define to 1 if you have the `acl_to_text' function. */ /* Define to 1 if you have the `acl_trivial' function. */
#undef HAVE_ACL_TO_TEXT #undef HAVE_ACL_TRIVIAL
/* Define to 1 if you have the `alarm' function. */ /* Define to 1 if you have the `alarm' function. */
#undef HAVE_ALARM #undef HAVE_ALARM
@@ -424,10 +469,6 @@
*/ */
#undef HAVE_DECL_MKDIR #undef HAVE_DECL_MKDIR
/* Define to 1 if you have the declaration of `nanosleep', and to 0 if you
don't. */
#undef HAVE_DECL_NANOSLEEP
/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if /* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if
you don't. */ you don't. */
#undef HAVE_DECL_PUTCHAR_UNLOCKED #undef HAVE_DECL_PUTCHAR_UNLOCKED
@@ -460,10 +501,6 @@
don't. */ don't. */
#undef HAVE_DECL_STRMODE #undef HAVE_DECL_STRMODE
/* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you
don't. */
#undef HAVE_DECL_STRNCASECMP
/* Define to 1 if you have the declaration of `strndup', and to 0 if you /* Define to 1 if you have the declaration of `strndup', and to 0 if you
don't. */ don't. */
#undef HAVE_DECL_STRNDUP #undef HAVE_DECL_STRNDUP
@@ -527,6 +564,9 @@
/* Define to 1 if you have the `directio' function. */ /* Define to 1 if you have the `directio' function. */
#undef HAVE_DIRECTIO #undef HAVE_DIRECTIO
/* Define to 1 if you have the <dirent.h> header file. */
#undef HAVE_DIRENT_H
/* Define to 1 if you have the `dirfd' function. */ /* Define to 1 if you have the `dirfd' function. */
#undef HAVE_DIRFD #undef HAVE_DIRFD
@@ -557,6 +597,9 @@
/* Define to 1 if you have the `fchmod' function. */ /* Define to 1 if you have the `fchmod' function. */
#undef HAVE_FCHMOD #undef HAVE_FCHMOD
/* Define to 1 if you have the `fchmodat' function. */
#undef HAVE_FCHMODAT
/* Define to 1 if you have the `fchown' function. */ /* Define to 1 if you have the `fchown' function. */
#undef HAVE_FCHOWN #undef HAVE_FCHOWN
@@ -576,6 +619,9 @@
/* Define to 1 if you have the `flockfile' function. */ /* Define to 1 if you have the `flockfile' function. */
#undef HAVE_FLOCKFILE #undef HAVE_FLOCKFILE
/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK
/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
#undef HAVE_FSEEKO #undef HAVE_FSEEKO
@@ -705,9 +751,6 @@
/* Define to 1 if you have the `iswctype' function. */ /* Define to 1 if you have the `iswctype' function. */
#undef HAVE_ISWCTYPE #undef HAVE_ISWCTYPE
/* Define to 1 if you have the `iswprint' function. */
#undef HAVE_ISWPRINT
/* Define to 1 if you have the `iswspace' function. */ /* Define to 1 if you have the `iswspace' function. */
#undef HAVE_ISWSPACE #undef HAVE_ISWSPACE
@@ -820,6 +863,9 @@
/* Define to 1 if you have the `microuptime' function. */ /* Define to 1 if you have the `microuptime' function. */
#undef HAVE_MICROUPTIME #undef HAVE_MICROUPTIME
/* Define to 1 if you have the `mkdirat' function. */
#undef HAVE_MKDIRAT
/* Define to 1 if you have the `mkfifo' function. */ /* Define to 1 if you have the `mkfifo' function. */
#undef HAVE_MKFIFO #undef HAVE_MKFIFO
@@ -966,6 +1012,9 @@
/* Define to 1 if you have the <stdio_ext.h> header file. */ /* Define to 1 if you have the <stdio_ext.h> header file. */
#undef HAVE_STDIO_EXT_H #undef HAVE_STDIO_EXT_H
/* Define to 1 if you have the <stdio.h> header file. */
#undef HAVE_STDIO_H
/* Define to 1 if you have the <stdlib.h> header file. */ /* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H #undef HAVE_STDLIB_H
@@ -994,9 +1043,6 @@
/* Define to 1 if you have the <string.h> header file. */ /* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H #undef HAVE_STRING_H
/* Define to 1 if you have the `strncasecmp' function. */
#undef HAVE_STRNCASECMP
/* Define if you have the strndup() function and it works. */ /* Define if you have the strndup() function and it works. */
#undef HAVE_STRNDUP #undef HAVE_STRNDUP
@@ -1082,9 +1128,6 @@
/* Define to 1 if `st_spare1' is member of `struct stat'. */ /* Define to 1 if `st_spare1' is member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_SPARE1 #undef HAVE_STRUCT_STAT_ST_SPARE1
/* Define if struct timespec is declared in <time.h>. */
#undef HAVE_STRUCT_TIMESPEC
/* Define to 1 if `tm_zone' is member of `struct tm'. */ /* Define to 1 if `tm_zone' is member of `struct tm'. */
#undef HAVE_STRUCT_TM_TM_ZONE #undef HAVE_STRUCT_TM_TM_ZONE
@@ -1252,6 +1295,9 @@
/* Define to 1 if you have the <sys/table.h> header file. */ /* Define to 1 if you have the <sys/table.h> header file. */
#undef HAVE_SYS_TABLE_H #undef HAVE_SYS_TABLE_H
/* Define to 1 if you have the <sys/timeb.h> header file. */
#undef HAVE_SYS_TIMEB_H
/* Define to 1 if you have the <sys/time.h> header file. */ /* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H #undef HAVE_SYS_TIME_H
@@ -1282,9 +1328,8 @@
/* Define to 1 if you have the <termios.h> header file. */ /* Define to 1 if you have the <termios.h> header file. */
#undef HAVE_TERMIOS_H #undef HAVE_TERMIOS_H
/* Define to 1 if localtime_r, etc. have the type signatures that POSIX /* Define to 1 if you have the <time.h> header file. */
requires. */ #undef HAVE_TIME_H
#undef HAVE_TIME_R_POSIX
/* Define if struct tm has the tm_gmtoff member. */ /* Define if struct tm has the tm_gmtoff member. */
#undef HAVE_TM_GMTOFF #undef HAVE_TM_GMTOFF
@@ -1345,6 +1390,12 @@
/* Define to 1 if you have the `vasprintf' function. */ /* Define to 1 if you have the `vasprintf' function. */
#undef HAVE_VASPRINTF #undef HAVE_VASPRINTF
/* Define to 1 if you have the `vfork' function. */
#undef HAVE_VFORK
/* Define to 1 if you have the <vfork.h> header file. */
#undef HAVE_VFORK_H
/* Define to 1 if you have the <wchar.h> header file. */ /* Define to 1 if you have the <wchar.h> header file. */
#undef HAVE_WCHAR_H #undef HAVE_WCHAR_H
@@ -1381,6 +1432,9 @@
/* Define to 1 if you have the `wmempcpy' function. */ /* Define to 1 if you have the `wmempcpy' function. */
#undef HAVE_WMEMPCPY #undef HAVE_WMEMPCPY
/* Define to 1 if `fork' works. */
#undef HAVE_WORKING_FORK
/* Define to 1 if O_NOATIME works. */ /* Define to 1 if O_NOATIME works. */
#undef HAVE_WORKING_O_NOATIME #undef HAVE_WORKING_O_NOATIME
@@ -1390,12 +1444,18 @@
/* Define if utimes works properly. */ /* Define if utimes works properly. */
#undef HAVE_WORKING_UTIMES #undef HAVE_WORKING_UTIMES
/* Define to 1 if `vfork' works. */
#undef HAVE_WORKING_VFORK
/* Define to 1 if you have the <ws2tcpip.h> header file. */ /* Define to 1 if you have the <ws2tcpip.h> header file. */
#undef HAVE_WS2TCPIP_H #undef HAVE_WS2TCPIP_H
/* Define to 1 if the system has the type `_Bool'. */ /* Define to 1 if the system has the type `_Bool'. */
#undef HAVE__BOOL #undef HAVE__BOOL
/* Define to 1 if you have the `_ftime' function. */
#undef HAVE__FTIME
/* Define to 1 if you have the external variable, _system_configuration with a /* Define to 1 if you have the external variable, _system_configuration with a
member named physmem. */ member named physmem. */
#undef HAVE__SYSTEM_CONFIGURATION #undef HAVE__SYSTEM_CONFIGURATION
@@ -1535,9 +1595,6 @@
/* Define to 1 if the C compiler supports function prototypes. */ /* Define to 1 if the C compiler supports function prototypes. */
#undef PROTOTYPES #undef PROTOTYPES
/* Define to 1 to provide canonicalize_filename_mode. */
#undef PROVIDE_CANONICALIZE_FILENAME_MODE
/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
'ptrdiff_t'. */ 'ptrdiff_t'. */
#undef PTRDIFF_T_SUFFIX #undef PTRDIFF_T_SUFFIX
@@ -1546,14 +1603,15 @@
like the one from SunOS 4.1.1_U1. */ like the one from SunOS 4.1.1_U1. */
#undef RENAME_TRAILING_SLASH_BUG #undef RENAME_TRAILING_SLASH_BUG
/* Define if vasnprintf exists but is overridden by gnulib. */
#undef REPLACE_VASNPRINTF
/* Define if vasprintf exists but is overridden by gnulib. */
#undef REPLACE_VASPRINTF
/* the value to which errno is set when rmdir fails on a nonempty directory */ /* the value to which errno is set when rmdir fails on a nonempty directory */
#undef RMDIR_ERRNO_NOT_EMPTY #undef RMDIR_ERRNO_NOT_EMPTY
/* Define to 1 if the `setvbuf' function takes the buffering type as its
second argument and the buffer pointer as the third, as on System V before
release 3. */
#undef SETVBUF_REVERSED
/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
'sig_atomic_t'. */ 'sig_atomic_t'. */
#undef SIG_ATOMIC_T_SUFFIX #undef SIG_ATOMIC_T_SUFFIX
@@ -1633,7 +1691,7 @@
#undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC #undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC
/* Define if tzset clobbers localtime's static buffer. */ /* Define if tzset clobbers localtime's static buffer. */
#undef TZSET_CLOBBERS_LOCALTIME_BUFFER #undef TZSET_CLOBBERS_LOCALTIME
/* Define to 1 for Encore UMAX. */ /* Define to 1 for Encore UMAX. */
#undef UMAX #undef UMAX
@@ -1719,16 +1777,10 @@
# undef _TANDEM_SOURCE # undef _TANDEM_SOURCE
#endif #endif
/* Define to rpl_ if the getcwd replacement function should be used. */
#undef __GETCWD_PREFIX
/* Define to rpl_ if the getopt replacement functions and variables should be /* Define to rpl_ if the getopt replacement functions and variables should be
used. */ used. */
#undef __GETOPT_PREFIX #undef __GETOPT_PREFIX
/* Define to rpl_ if the mkstemp replacement function should be used. */
#undef __MKSTEMP_PREFIX
/* Define to rpl_ if the openat replacement function should be used. */ /* Define to rpl_ if the openat replacement function should be used. */
#undef __OPENAT_PREFIX #undef __OPENAT_PREFIX
@@ -1738,8 +1790,8 @@
/* Define to rpl_calloc if the replacement function should be used. */ /* Define to rpl_calloc if the replacement function should be used. */
#undef calloc #undef calloc
/* Define to rpl_chown if the replacement function should be used. */ /* Define to rpl_fchownat if the replacement function should be used. */
#undef chown #undef fchownat
/* Define to a replacement function name for fnmatch(). */ /* Define to a replacement function name for fnmatch(). */
#undef fnmatch #undef fnmatch
@@ -1756,9 +1808,6 @@
/* Define to a replacement function name for getpass(). */ /* Define to a replacement function name for getpass(). */
#undef getpass #undef getpass
/* Define to rpl_gettimeofday if the replacement function should be used. */
#undef gettimeofday
/* Define to `int' if <sys/types.h> doesn't define. */ /* Define to `int' if <sys/types.h> doesn't define. */
#undef gid_t #undef gid_t
@@ -1810,9 +1859,6 @@
/* Define to the name of the strftime replacement function. */ /* Define to the name of the strftime replacement function. */
#undef my_strftime #undef my_strftime
/* Define to rpl_nanosleep if the replacement function should be used. */
#undef nanosleep
/* Define to `long int' if <sys/types.h> does not define. */ /* Define to `long int' if <sys/types.h> does not define. */
#undef off_t #undef off_t
@@ -1905,6 +1951,9 @@
/* Define as a macro for copying va_list variables. */ /* Define as a macro for copying va_list variables. */
#undef va_copy #undef va_copy
/* Define as `fork' if `vfork' does not work. */
#undef vfork
/* Define to empty if the keyword `volatile' does not work. Warning: valid /* Define to empty if the keyword `volatile' does not work. Warning: valid
code using `volatile' can become incorrect without. Disable with care. */ code using `volatile' can become incorrect without. Disable with care. */
#undef volatile #undef volatile
@@ -1,5 +1,5 @@
/* String copying. /* Wrapper around <dirent.h>.
Copyright (C) 1995, 2001, 2003 Free Software Foundation, Inc. Copyright (C) 2006-2007 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
@@ -15,27 +15,28 @@
along with this program; if not, write to the Free Software Foundation, along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef _STPCPY_H #ifndef _GL_DIRENT_H
#define _STPCPY_H #define _GL_DIRENT_H
#if HAVE_STPCPY #include @ABSOLUTE_DIRENT_H@
/* Get stpcpy() declaration. */
#include <string.h>
#else /* Declare overridden functions. */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ #if @REPLACE_FCHDIR@
extern char *stpcpy (char *dst, const char *src); # define opendir rpl_opendir
extern DIR * opendir (const char *);
# define closedir rpl_closedir
extern int closedir (DIR *);
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif
#endif /* _STPCPY_H */ #endif /* _GL_DIRENT_H */
+1 -1
View File
@@ -48,7 +48,7 @@
# endif # endif
# ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT # ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT
# define DOUBLE_SLASH_IS_DISTINCT_ROOT 1 # define DOUBLE_SLASH_IS_DISTINCT_ROOT 0
# endif # endif
# if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE # if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE
+1 -1
View File
@@ -35,7 +35,7 @@
int int
dup_safer (int fd) dup_safer (int fd)
{ {
#ifdef F_DUPFD #if defined F_DUPFD && !defined FCHDIR_REPLACEMENT
return fcntl (fd, F_DUPFD, STDERR_FILENO + 1); return fcntl (fd, F_DUPFD, STDERR_FILENO + 1);
#else #else
/* fd_safer calls us back, but eventually the recursion unwinds and /* fd_safer calls us back, but eventually the recursion unwinds and
+4 -2
View File
@@ -1,6 +1,6 @@
/* Duplicate an open file descriptor to a specified file descriptor. /* Duplicate an open file descriptor to a specified file descriptor.
Copyright (C) 1999, 2004, 2005, 2006 Free Software Foundation, Inc. Copyright (C) 1999, 2004, 2005, 2006, 2007 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
@@ -20,9 +20,11 @@
#include <config.h> #include <config.h>
/* Specification. */
#include <unistd.h>
#include <errno.h> #include <errno.h>
#include <fcntl.h> #include <fcntl.h>
#include <unistd.h>
#ifndef F_DUPFD #ifndef F_DUPFD
static int static int
+32 -8
View File
@@ -1,7 +1,7 @@
/* exclude.c -- exclude file names /* exclude.c -- exclude file names
Copyright (C) 1992, 1993, 1994, 1997, 1999, 2000, 2001, 2002, 2003, Copyright (C) 1992, 1993, 1994, 1997, 1999, 2000, 2001, 2002, 2003,
2004, 2005, 2006 Free Software Foundation, Inc. 2004, 2005, 2006, 2007 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
@@ -33,7 +33,6 @@
#include "exclude.h" #include "exclude.h"
#include "fnmatch.h" #include "fnmatch.h"
#include "strcase.h"
#include "xalloc.h" #include "xalloc.h"
#include "verify.h" #include "verify.h"
@@ -45,13 +44,16 @@
#ifndef FNM_CASEFOLD #ifndef FNM_CASEFOLD
# define FNM_CASEFOLD 0 # define FNM_CASEFOLD 0
#endif #endif
#ifndef FNM_EXTMATCH
# define FNM_EXTMATCH 0
#endif
#ifndef FNM_LEADING_DIR #ifndef FNM_LEADING_DIR
# define FNM_LEADING_DIR 0 # define FNM_LEADING_DIR 0
#endif #endif
verify (((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS) verify (((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS)
& (FNM_PATHNAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR & (FNM_PATHNAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR
| FNM_CASEFOLD)) | FNM_CASEFOLD | FNM_EXTMATCH))
== 0); == 0);
/* An exclude pattern-options pair. The options are fnmatch options /* An exclude pattern-options pair. The options are fnmatch options
@@ -97,14 +99,12 @@ fnmatch_no_wildcards (char const *pattern, char const *f, int options)
{ {
if (! (options & FNM_LEADING_DIR)) if (! (options & FNM_LEADING_DIR))
return ((options & FNM_CASEFOLD) return ((options & FNM_CASEFOLD)
? strcasecmp (pattern, f) ? mbscasecmp (pattern, f)
: strcmp (pattern, f)); : strcmp (pattern, f));
else else if (! (options & FNM_CASEFOLD))
{ {
size_t patlen = strlen (pattern); size_t patlen = strlen (pattern);
int r = ((options & FNM_CASEFOLD) int r = strncmp (pattern, f, patlen);
? strncasecmp (pattern, f, patlen)
: strncmp (pattern, f, patlen));
if (! r) if (! r)
{ {
r = f[patlen]; r = f[patlen];
@@ -113,6 +113,30 @@ fnmatch_no_wildcards (char const *pattern, char const *f, int options)
} }
return r; return r;
} }
else
{
/* Walk through a copy of F, seeing whether P matches any prefix
of F.
FIXME: This is an O(N**2) algorithm; it should be O(N).
Also, the copy should not be necessary. However, fixing this
will probably involve a change to the mbs* API. */
char *fcopy = xstrdup (f);
char *p;
int r;
for (p = fcopy; ; *p++ = '/')
{
p = strchr (p, '/');
if (p)
*p = '\0';
r = mbscasecmp (pattern, fcopy);
if (!p || r <= 0)
break;
}
free (fcopy);
return r;
}
} }
bool bool
+3 -2
View File
@@ -1,6 +1,6 @@
/* Failure exit status /* Failure exit status
Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. Copyright (C) 2002, 2003, 2005, 2006, 2007 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
@@ -20,6 +20,7 @@
#include <config.h> #include <config.h>
#include "exitfail.h" #include "exitfail.h"
#include "exit.h"
#include <stdlib.h>
int volatile exit_failure = EXIT_FAILURE; int volatile exit_failure = EXIT_FAILURE;
-14
View File
@@ -1,14 +0,0 @@
#include <config.h>
#include <sys/types.h>
#include <errno.h>
/* A trivial substitute for `fchdir'.
DJGPP 2.03 and earlier don't have `fchdir'. */
int
fchdir (int fd)
{
errno = ENOSYS;
return -1;
}
+279
View File
@@ -0,0 +1,279 @@
/* fchdir replacement.
Copyright (C) 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#include <config.h>
/* Specification. */
#include <unistd.h>
#include <errno.h>
#include <fcntl.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include "canonicalize.h"
#include "dirfd.h"
/* This replacement assumes that a directory is not renamed while opened
through a file descriptor. */
/* Array of file descriptors opened. If it points to a directory, it stores
info about this directory; otherwise it stores an errno value of ENOTDIR. */
typedef struct
{
char *name; /* Absolute name of the directory, or NULL. */
int saved_errno; /* If name == NULL: The error code describing the failure
reason. */
} dir_info_t;
static dir_info_t *dirs;
static size_t dirs_allocated;
/* Try to ensure dirs has enough room for a slot at index fd. */
static void
ensure_dirs_slot (size_t fd)
{
if (fd >= dirs_allocated)
{
size_t new_allocated;
dir_info_t *new_dirs;
size_t i;
new_allocated = 2 * dirs_allocated + 1;
if (new_allocated <= fd)
new_allocated = fd + 1;
new_dirs =
(dirs != NULL
? (dir_info_t *) realloc (dirs, new_allocated * sizeof (dir_info_t))
: (dir_info_t *) malloc (new_allocated * sizeof (dir_info_t)));
if (new_dirs != NULL)
{
for (i = dirs_allocated; i < new_allocated; i++)
{
new_dirs[i].name = NULL;
new_dirs[i].saved_errno = ENOTDIR;
}
dirs = new_dirs;
dirs_allocated = new_allocated;
}
}
}
/* Override open() and close(), to keep track of the open file descriptors. */
int
close (int fd)
#undef close
{
int retval = close (fd);
if (retval >= 0 && fd >= 0 && fd < dirs_allocated)
{
if (dirs[fd].name != NULL)
free (dirs[fd].name);
dirs[fd].name = NULL;
dirs[fd].saved_errno = ENOTDIR;
}
return retval;
}
int
open (const char *filename, int flags, ...)
#undef open
{
mode_t mode;
int fd;
struct stat statbuf;
mode = 0;
if (flags & O_CREAT)
{
va_list arg;
va_start (arg, flags);
/* If mode_t is narrower than int, use the promoted type (int),
not mode_t. Use sizeof to guess whether mode_t is narrower;
we don't know of any practical counterexamples. */
mode = (sizeof (mode_t) < sizeof (int)
? va_arg (arg, int)
: va_arg (arg, mode_t));
va_end (arg);
}
fd = open (filename, flags, mode);
if (fd >= 0)
{
ensure_dirs_slot (fd);
if (fd < dirs_allocated
&& fstat (fd, &statbuf) >= 0 && S_ISDIR (statbuf.st_mode))
{
dirs[fd].name = canonicalize_file_name (filename);
if (dirs[fd].name == NULL)
dirs[fd].saved_errno = errno;
}
}
return fd;
}
/* Override opendir() and closedir(), to keep track of the open file
descriptors. Needed because there is a function dirfd(). */
int
closedir (DIR *dp)
#undef closedir
{
int fd = dirfd (dp);
int retval = closedir (dp);
if (retval >= 0 && fd >= 0 && fd < dirs_allocated)
{
if (dirs[fd].name != NULL)
free (dirs[fd].name);
dirs[fd].name = NULL;
dirs[fd].saved_errno = ENOTDIR;
}
return retval;
}
DIR *
opendir (const char *filename)
#undef opendir
{
DIR *dp;
dp = opendir (filename);
if (dp != NULL)
{
int fd = dirfd (dp);
if (fd >= 0)
{
ensure_dirs_slot (fd);
if (fd < dirs_allocated)
{
dirs[fd].name = canonicalize_file_name (filename);
if (dirs[fd].name == NULL)
dirs[fd].saved_errno = errno;
}
}
}
return dp;
}
/* Override dup() and dup2(), to keep track of open file descriptors. */
int
dup (int oldfd)
#undef dup
{
int newfd = dup (oldfd);
if (oldfd >= 0 && newfd >= 0)
{
ensure_dirs_slot (newfd);
if (newfd < dirs_allocated)
{
if (oldfd < dirs_allocated)
{
if (dirs[oldfd].name != NULL)
{
dirs[newfd].name = strdup (dirs[oldfd].name);
if (dirs[newfd].name == NULL)
dirs[newfd].saved_errno = ENOMEM;
}
else
{
dirs[newfd].name = NULL;
dirs[newfd].saved_errno = dirs[oldfd].saved_errno;
}
}
else
{
dirs[newfd].name = NULL;
dirs[newfd].saved_errno = ENOMEM;
}
}
}
return newfd;
}
int
dup2 (int oldfd, int newfd)
#undef dup2
{
int retval = dup2 (oldfd, newfd);
if (retval >= 0 && oldfd >= 0 && newfd >= 0 && newfd != oldfd)
{
ensure_dirs_slot (newfd);
if (newfd < dirs_allocated)
{
if (oldfd < dirs_allocated)
{
if (dirs[oldfd].name != NULL)
{
dirs[newfd].name = strdup (dirs[oldfd].name);
if (dirs[newfd].name == NULL)
dirs[newfd].saved_errno = ENOMEM;
}
else
{
dirs[newfd].name = NULL;
dirs[newfd].saved_errno = dirs[oldfd].saved_errno;
}
}
else
{
dirs[newfd].name = NULL;
dirs[newfd].saved_errno = ENOMEM;
}
}
}
return retval;
}
/* Implement fchdir() in terms of chdir(). */
int
fchdir (int fd)
{
if (fd >= 0)
{
if (fd < dirs_allocated)
{
if (dirs[fd].name != NULL)
return chdir (dirs[fd].name);
else
{
errno = dirs[fd].saved_errno;
return -1;
}
}
else
{
errno = ENOMEM;
return -1;
}
}
else
{
errno = EBADF;
return -1;
}
}
+50
View File
@@ -0,0 +1,50 @@
/* This function serves as replacement for a missing fchownat function,
as well as a work around for the fchownat bug in glibc-2.4:
<http://lists.ubuntu.com/archives/ubuntu-users/2006-September/093218.html>
when the buggy fchownat-with-AT_SYMLINK_NOFOLLOW operates on a symlink, it
mistakenly affects the symlink referent, rather than the symlink itself.
Copyright (C) 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
/* written by Jim Meyering */
#include <config.h>
#include "openat.h"
#include <unistd.h>
#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
#include "lchown.h"
#include "save-cwd.h"
#include "openat-priv.h"
/* Replacement for Solaris' function by the same name.
Invoke chown or lchown on file, FILE, using OWNER and GROUP, in the
directory open on descriptor FD. If FLAG is AT_SYMLINK_NOFOLLOW, then
use lchown, otherwise, use chown. If possible, do it without changing
the working directory. Otherwise, resort to using save_cwd/fchdir,
then mkdir/restore_cwd. If either the save_cwd or the restore_cwd
fails, then give a diagnostic and exit nonzero. */
#define AT_FUNC_NAME fchownat
#define AT_FUNC_F1 lchown
#define AT_FUNC_F2 chown
#define AT_FUNC_USE_F1_COND flag == AT_SYMLINK_NOFOLLOW
#define AT_FUNC_POST_FILE_PARAM_DECLS , uid_t owner, gid_t group, int flag
#define AT_FUNC_POST_FILE_ARGS , owner, group
#include "at-func.c"
+19
View File
@@ -26,6 +26,25 @@
#include <unistd.h> #include <unistd.h>
#include @ABSOLUTE_FCNTL_H@ #include @ABSOLUTE_FCNTL_H@
/* Declare overridden functions. */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef FCHDIR_REPLACEMENT
# define open rpl_open
extern int open (const char *, int, ...);
#endif
#ifdef __cplusplus
}
#endif
/* Fix up the O_* macros. */
#if !defined O_DIRECT && defined O_DIRECTIO #if !defined O_DIRECT && defined O_DIRECTIO
/* Tru64 spells it `O_DIRECTIO'. */ /* Tru64 spells it `O_DIRECTIO'. */
# define O_DIRECT O_DIRECTIO # define O_DIRECT O_DIRECTIO
+87
View File
@@ -0,0 +1,87 @@
/* Test whether a file has a nontrivial access control list.
Copyright (C) 2002, 2003, 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Written by Paul Eggert and Andreas Gruenbacher. */
#include <config.h>
#include "acl.h"
#include "acl-internal.h"
/* Return 1 if NAME has a nontrivial access control list, 0 if NAME
only has no or a base access control list, and -1 (setting errno)
on error. SB must be set to the stat buffer of FILE. */
int
file_has_acl (char const *name, struct stat const *sb)
{
if (! S_ISLNK (sb->st_mode))
{
#if USE_ACL && HAVE_ACL_TRIVIAL
/* Solaris 10, which also has NFSv4 and ZFS style ACLs. */
return acl_trivial (name);
#elif USE_ACL && HAVE_ACL && defined GETACLCNT
/* Solaris 2.5 through Solaris 9, and contemporaneous versions of
HP-UX and Unixware. */
int n = acl (name, GETACLCNT, 0, NULL);
return n < 0 ? (errno == ENOSYS ? 0 : -1) : (MIN_ACL_ENTRIES < n);
#elif USE_ACL && HAVE_ACL_GET_FILE && HAVE_ACL_FREE
/* POSIX 1003.1e (draft 17 -- abandoned) specific version. */
int ret;
if (HAVE_ACL_EXTENDED_FILE)
ret = acl_extended_file (name);
else
{
acl_t acl = acl_get_file (name, ACL_TYPE_ACCESS);
if (acl)
{
ret = (3 < acl_entries (acl));
acl_free (acl);
if (ret == 0 && S_ISDIR (sb->st_mode))
{
acl = acl_get_file (name, ACL_TYPE_DEFAULT);
if (acl)
{
ret = (0 < acl_entries (acl));
acl_free (acl);
}
else
ret = -1;
}
}
else
ret = -1;
}
if (ret < 0)
return ACL_NOT_WELL_SUPPORTED (errno) ? 0 : -1;
return ret;
#endif
}
/* FIXME: Add support for AIX, Irix, and Tru64. Please see Samba's
source/lib/sysacls.c file for fix-related ideas. */
return 0;
}
+3 -4
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006 /* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007
Free Software Foundation, Inc. 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
@@ -40,15 +40,14 @@
#include <string.h> #include <string.h>
#define WIDE_CHAR_SUPPORT \ #define WIDE_CHAR_SUPPORT \
(HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC && HAVE_ISWCTYPE \ (HAVE_WCTYPE_H && HAVE_BTOWC && HAVE_ISWCTYPE \
&& HAVE_WMEMCHR && (HAVE_WMEMCPY || HAVE_WMEMPCPY)) && HAVE_WMEMCHR && (HAVE_WMEMCPY || HAVE_WMEMPCPY))
/* For platform which support the ISO C amendement 1 functionality we /* For platform which support the ISO C amendement 1 functionality we
support user defined character classes. */ support user defined character classes. */
#if defined _LIBC || WIDE_CHAR_SUPPORT #if defined _LIBC || WIDE_CHAR_SUPPORT
/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
# include <wchar.h>
# include <wctype.h> # include <wctype.h>
# include <wchar.h>
#endif #endif
/* We need some of the locale data (the collation sequence information) /* We need some of the locale data (the collation sequence information)
+24 -22
View File
@@ -1,5 +1,7 @@
/* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2001, 2002, 2003, /* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2001, 2002, 2003,
2005 Free Software Foundation, Inc. 2005, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
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
@@ -16,48 +18,48 @@
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef _FNMATCH_H #ifndef _FNMATCH_H
# define _FNMATCH_H 1 #define _FNMATCH_H 1
# ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
# endif #endif
/* We #undef these before defining them because some losing systems /* We #undef these before defining them because some losing systems
(HP-UX A.08.07 for example) define these in <unistd.h>. */ (HP-UX A.08.07 for example) define these in <unistd.h>. */
# undef FNM_PATHNAME #undef FNM_PATHNAME
# undef FNM_NOESCAPE #undef FNM_NOESCAPE
# undef FNM_PERIOD #undef FNM_PERIOD
/* Bits set in the FLAGS argument to `fnmatch'. */ /* Bits set in the FLAGS argument to `fnmatch'. */
# define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */ #define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */
# define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */ #define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */
# define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */ #define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */
# if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE #if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE
# define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */ # define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */
# define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */ # define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */
# define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */ # define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */
# define FNM_EXTMATCH (1 << 5) /* Use ksh-like extended matching. */ # define FNM_EXTMATCH (1 << 5) /* Use ksh-like extended matching. */
# endif #endif
/* Value returned by `fnmatch' if STRING does not match PATTERN. */ /* Value returned by `fnmatch' if STRING does not match PATTERN. */
# define FNM_NOMATCH 1 #define FNM_NOMATCH 1
/* This value is returned if the implementation does not support /* This value is returned if the implementation does not support
`fnmatch'. Since this is not the case here it will never be `fnmatch'. Since this is not the case here it will never be
returned but the conformance test suites still require the symbol returned but the conformance test suites still require the symbol
to be defined. */ to be defined. */
# ifdef _XOPEN_SOURCE #ifdef _XOPEN_SOURCE
# define FNM_NOSYS (-1) # define FNM_NOSYS (-1)
# endif #endif
/* Match NAME against the file name pattern PATTERN, /* Match NAME against the file name pattern PATTERN,
returning zero if it matches, FNM_NOMATCH if not. */ returning zero if it matches, FNM_NOMATCH if not. */
extern int fnmatch (const char *__pattern, const char *__name, extern int fnmatch (const char *__pattern, const char *__name,
int __flags); int __flags);
# ifdef __cplusplus #ifdef __cplusplus
} }
# endif #endif
#endif /* fnmatch.h */ #endif /* fnmatch.h */
+54 -36
View File
@@ -1,5 +1,6 @@
/* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006 /* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of the GNU C Library.
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
@@ -233,8 +234,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
c = FOLD ((UCHAR) *p); c = FOLD ((UCHAR) *p);
++p; ++p;
if (c == fn) goto normal_bracket;
goto matched;
} }
else if (c == L_('[') && *p == L_(':')) else if (c == L_('[') && *p == L_(':'))
{ {
@@ -494,24 +494,31 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
idx = 0; idx = 0;
elem = hash % table_size; elem = hash % table_size;
second = hash % (table_size - 2); if (symb_table[2 * elem] != 0)
while (symb_table[2 * elem] != 0)
{ {
/* First compare the hashing value. */ second = hash % (table_size - 2) + 1;
if (symb_table[2 * elem] == hash
&& c1 == extra[symb_table[2 * elem + 1]]
&& memcmp (str,
&extra[symb_table[2 * elem + 1]
+ 1], c1) == 0)
{
/* Yep, this is the entry. */
idx = symb_table[2 * elem + 1];
idx += 1 + extra[idx];
break;
}
/* Next entry. */ do
elem += second; {
/* First compare the hashing value. */
if (symb_table[2 * elem] == hash
&& (c1
== extra[symb_table[2 * elem + 1]])
&& memcmp (str,
&extra[symb_table[2 * elem
+ 1]
+ 1], c1) == 0)
{
/* Yep, this is the entry. */
idx = symb_table[2 * elem + 1];
idx += 1 + extra[idx];
break;
}
/* Next entry. */
elem += second;
}
while (symb_table[2 * elem] != 0);
} }
if (symb_table[2 * elem] != 0) if (symb_table[2 * elem] != 0)
@@ -592,6 +599,12 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
if (!is_range && c == fn) if (!is_range && c == fn)
goto matched; goto matched;
#if _LIBC
/* This is needed if we goto normal_bracket; from
outside of is_seqval's scope. */
is_seqval = false;
#endif
cold = c; cold = c;
c = *p++; c = *p++;
} }
@@ -703,25 +716,30 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
idx = 0; idx = 0;
elem = hash % table_size; elem = hash % table_size;
second = hash % (table_size - 2); if (symb_table[2 * elem] != 0)
while (symb_table[2 * elem] != 0)
{ {
/* First compare the hashing value. */ second = hash % (table_size - 2) + 1;
if (symb_table[2 * elem] == hash
&& (c1
== extra[symb_table[2 * elem + 1]])
&& memcmp (str,
&extra[symb_table[2 * elem + 1]
+ 1], c1) == 0)
{
/* Yep, this is the entry. */
idx = symb_table[2 * elem + 1];
idx += 1 + extra[idx];
break;
}
/* Next entry. */ do
elem += second; {
/* First compare the hashing value. */
if (symb_table[2 * elem] == hash
&& (c1
== extra[symb_table[2 * elem + 1]])
&& memcmp (str,
&extra[symb_table[2 * elem + 1]
+ 1], c1) == 0)
{
/* Yep, this is the entry. */
idx = symb_table[2 * elem + 1];
idx += 1 + extra[idx];
break;
}
/* Next entry. */
elem += second;
}
while (symb_table[2 * elem] != 0);
} }
if (symb_table[2 * elem] != 0) if (symb_table[2 * elem] != 0)
+5
View File
@@ -56,6 +56,11 @@
# include "full-read.h" # include "full-read.h"
#endif #endif
/* The results of open() in this file are not used with fchdir,
therefore save some unnecessary work in fchdir.c. */
#undef open
#undef close
/* Many space usage primitives use all 1 bits to denote a value that is /* Many space usage primitives use all 1 bits to denote a value that is
not applicable or unknown. Propagate this information by returning not applicable or unknown. Propagate this information by returning
a uintmax_t value that is all 1 bits if X is all 1 bits, even if X a uintmax_t value that is all 1 bits if X is all 1 bits, even if X
+4 -2
View File
@@ -3,6 +3,9 @@
#include <config.h> #include <config.h>
/* Specification. */
#include <unistd.h>
#include <sys/types.h> #include <sys/types.h>
#include <fcntl.h> #include <fcntl.h>
@@ -21,7 +24,6 @@ ftruncate (int fd, off_t length)
# include <sys/stat.h> # include <sys/stat.h>
# include <errno.h> # include <errno.h>
# include <unistd.h>
int int
ftruncate (int fd, off_t length) ftruncate (int fd, off_t length)
@@ -64,7 +66,7 @@ ftruncate (int fd, off_t length)
} }
# else /* not F_CHSIZE nor F_FREESP */ # else /* not F_CHSIZE nor F_FREESP */
# if HAVE_CHSIZE # if HAVE_CHSIZE /* native Windows, e.g. mingw */
int int
ftruncate (int fd, off_t length) ftruncate (int fd, off_t length)
+28 -26
View File
@@ -1,6 +1,6 @@
/* Traverse a file hierarchy. /* Traverse a file hierarchy.
Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. Copyright (C) 2004, 2005, 2006, 2007 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
@@ -138,6 +138,18 @@ enum Fts_stat
# define HAVE_OPENAT_SUPPORT 0 # define HAVE_OPENAT_SUPPORT 0
#endif #endif
#ifdef NDEBUG
# define fts_assert(expr) ((void) 0)
#else
# define fts_assert(expr) \
do \
{ \
if (!(expr)) \
abort (); \
} \
while (false)
#endif
static FTSENT *fts_alloc (FTS *, const char *, size_t) internal_function; static FTSENT *fts_alloc (FTS *, const char *, size_t) internal_function;
static FTSENT *fts_build (FTS *, int) internal_function; static FTSENT *fts_build (FTS *, int) internal_function;
static void fts_lfree (FTSENT *) internal_function; static void fts_lfree (FTSENT *) internal_function;
@@ -150,13 +162,13 @@ static unsigned short int fts_stat (FTS *, FTSENT *, bool) internal_function;
static int fts_safe_changedir (FTS *, FTSENT *, int, const char *) static int fts_safe_changedir (FTS *, FTSENT *, int, const char *)
internal_function; internal_function;
#if _LGPL_PACKAGE #if GNULIB_FTS
# include "fts-cycle.c"
#else
static bool enter_dir (FTS *fts, FTSENT *ent) { return true; } static bool enter_dir (FTS *fts, FTSENT *ent) { return true; }
static void leave_dir (FTS *fts, FTSENT *ent) {} static void leave_dir (FTS *fts, FTSENT *ent) {}
static bool setup_dir (FTS *fts) { return true; } static bool setup_dir (FTS *fts) { return true; }
static void free_dir (FTS *fts) {} static void free_dir (FTS *fts) {}
#else
# include "fts-cycle.c"
#endif #endif
#ifndef MAX #ifndef MAX
@@ -236,8 +248,7 @@ fd_ring_clear (I_ring *fd_ring)
static void static void
fts_set_stat_required (FTSENT *p, bool required) fts_set_stat_required (FTSENT *p, bool required)
{ {
if (p->fts_info != FTS_NSOK) fts_assert (p->fts_info == FTS_NSOK);
abort ();
p->fts_statp->st_size = (required p->fts_statp->st_size = (required
? FTS_STAT_REQUIRED ? FTS_STAT_REQUIRED
: FTS_NO_STAT_REQUIRED); : FTS_NO_STAT_REQUIRED);
@@ -274,8 +285,7 @@ internal_function
cwd_advance_fd (FTS *sp, int fd, bool chdir_down_one) cwd_advance_fd (FTS *sp, int fd, bool chdir_down_one)
{ {
int old = sp->fts_cwd_fd; int old = sp->fts_cwd_fd;
if (old == fd && old != AT_FDCWD) fts_assert (old != fd || old == AT_FDCWD);
abort ();
if (chdir_down_one) if (chdir_down_one)
{ {
@@ -688,6 +698,7 @@ fts_read (register FTS *sp)
/* Move to the next node on this level. */ /* Move to the next node on this level. */
next: tmp = p; next: tmp = p;
if ((p = p->fts_link) != NULL) { if ((p = p->fts_link) != NULL) {
sp->fts_cur = p;
free(tmp); free(tmp);
/* /*
@@ -698,7 +709,6 @@ next: tmp = p;
if (p->fts_level == FTS_ROOTLEVEL) { if (p->fts_level == FTS_ROOTLEVEL) {
if (RESTORE_INITIAL_CWD(sp)) { if (RESTORE_INITIAL_CWD(sp)) {
SET(FTS_STOP); SET(FTS_STOP);
sp->fts_cur = p;
return (NULL); return (NULL);
} }
fts_load(sp, p); fts_load(sp, p);
@@ -728,22 +738,15 @@ name: t = sp->fts_path + NAPPEND(p->fts_parent);
*t++ = '/'; *t++ = '/';
memmove(t, p->fts_name, p->fts_namelen + 1); memmove(t, p->fts_name, p->fts_namelen + 1);
check_for_dir: check_for_dir:
sp->fts_cur = p;
if (p->fts_info == FTS_NSOK) if (p->fts_info == FTS_NSOK)
{ {
enum Fts_stat need_stat = p->fts_statp->st_size; if (p->fts_statp->st_size == FTS_STAT_REQUIRED)
switch (need_stat) p->fts_info = fts_stat(sp, p, false);
{ else
case FTS_STAT_REQUIRED: fts_assert (p->fts_statp->st_size == FTS_NO_STAT_REQUIRED);
p->fts_info = fts_stat(sp, p, false);
break;
case FTS_NO_STAT_REQUIRED:
break;
default:
abort ();
}
} }
sp->fts_cur = p;
if (p->fts_info == FTS_D) if (p->fts_info == FTS_D)
{ {
/* Now that P->fts_statp is guaranteed to be valid, /* Now that P->fts_statp is guaranteed to be valid,
@@ -763,6 +766,7 @@ check_for_dir:
/* Move up to the parent node. */ /* Move up to the parent node. */
p = tmp->fts_parent; p = tmp->fts_parent;
sp->fts_cur = p;
free(tmp); free(tmp);
if (p->fts_level == FTS_ROOTPARENTLEVEL) { if (p->fts_level == FTS_ROOTPARENTLEVEL) {
@@ -775,8 +779,7 @@ check_for_dir:
return (sp->fts_cur = NULL); return (sp->fts_cur = NULL);
} }
if (p->fts_info == FTS_NSOK) fts_assert (p->fts_info != FTS_NSOK);
abort ();
/* NUL terminate the file name. */ /* NUL terminate the file name. */
sp->fts_path[p->fts_pathlen] = '\0'; sp->fts_path[p->fts_pathlen] = '\0';
@@ -809,7 +812,6 @@ check_for_dir:
p->fts_info = p->fts_errno ? FTS_ERR : FTS_DP; p->fts_info = p->fts_errno ? FTS_ERR : FTS_DP;
if (p->fts_errno == 0) if (p->fts_errno == 0)
LEAVE_DIR (sp, p, "3"); LEAVE_DIR (sp, p, "3");
sp->fts_cur = p;
return ISSET(FTS_STOP) ? NULL : p; return ISSET(FTS_STOP) ? NULL : p;
} }
@@ -1345,7 +1347,7 @@ fd_ring_check (FTS const *sp)
error (0, errno, "parent: %s", c2); error (0, errno, "parent: %s", c2);
free (cwd); free (cwd);
free (c2); free (c2);
abort (); fts_assert (0);
} }
close (cwd_fd); close (cwd_fd);
cwd_fd = parent_fd; cwd_fd = parent_fd;
@@ -1403,7 +1405,7 @@ err: memset(sbp, 0, sizeof(struct stat));
return (p->fts_level == FTS_ROOTLEVEL ? FTS_D : FTS_DOT); return (p->fts_level == FTS_ROOTLEVEL ? FTS_D : FTS_DOT);
} }
#if _LGPL_PACKAGE #if !GNULIB_FTS
{ {
/* /*
* Cycle detection is done by brute force when the directory * Cycle detection is done by brute force when the directory
+2 -3
View File
@@ -1,6 +1,6 @@
/* Traverse a file hierarchy. /* Traverse a file hierarchy.
Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. Copyright (C) 2004, 2005, 2006, 2007 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
@@ -52,7 +52,6 @@
# ifdef _LIBC # ifdef _LIBC
# include <features.h> # include <features.h>
# define _LGPL_PACKAGE 1
# else # else
# undef __THROW # undef __THROW
# define __THROW # define __THROW
@@ -142,7 +141,7 @@ typedef struct {
# define FTS_STOP 0x2000 /* (private) unrecoverable error */ # define FTS_STOP 0x2000 /* (private) unrecoverable error */
int fts_options; /* fts_open options, global flags */ int fts_options; /* fts_open options, global flags */
# if !_LGPL_PACKAGE # if GNULIB_FTS
union { union {
/* This data structure is used if FTS_TIGHT_CYCLE_CHECK is /* This data structure is used if FTS_TIGHT_CYCLE_CHECK is
specified. It records the directories between a starting specified. It records the directories between a starting
+1
View File
@@ -52,6 +52,7 @@ values[] =
{ EAI_SERVICE, N_("Servname not supported for ai_socktype") }, { EAI_SERVICE, N_("Servname not supported for ai_socktype") },
{ EAI_SOCKTYPE, N_("ai_socktype not supported") }, { EAI_SOCKTYPE, N_("ai_socktype not supported") },
{ EAI_SYSTEM, N_("System error") }, { EAI_SYSTEM, N_("System error") },
{ EAI_OVERFLOW, N_("Argument buffer too small") },
#ifdef __USE_GNU #ifdef __USE_GNU
{ EAI_INPROGRESS, N_("Processing request in progress") }, { EAI_INPROGRESS, N_("Processing request in progress") },
{ EAI_CANCELED, N_("Request canceled") }, { EAI_CANCELED, N_("Request canceled") },
+5 -4
View File
@@ -1,5 +1,5 @@
/* Get address information (partial implementation). /* Get address information (partial implementation).
Copyright (C) 1997, 2001, 2002, 2004, 2005, 2006 Free Software Copyright (C) 1997, 2001, 2002, 2004, 2005, 2006, 2007 Free Software
Foundation, Inc. Foundation, Inc.
Contributed by Simon Josefsson <simon@josefsson.org>. Contributed by Simon Josefsson <simon@josefsson.org>.
@@ -28,9 +28,12 @@
/* Get calloc. */ /* Get calloc. */
#include <stdlib.h> #include <stdlib.h>
/* Get memcpy. */ /* Get memcpy, strdup. */
#include <string.h> #include <string.h>
/* Get snprintf. */
#include <stdio.h>
#include <stdbool.h> #include <stdbool.h>
#include "gettext.h" #include "gettext.h"
@@ -38,8 +41,6 @@
#define N_(String) String #define N_(String) String
#include "inet_ntop.h" #include "inet_ntop.h"
#include "snprintf.h"
#include "strdup.h"
/* BeOS has AF_INET, but not PF_INET. */ /* BeOS has AF_INET, but not PF_INET. */
#ifndef PF_INET #ifndef PF_INET
+18 -7
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991,92,93,94,95,96,97,98,99,2004,2005,2006 Free Software /* Copyright (C) 1991,92,93,94,95,96,97,98,99,2004,2005,2006,2007 Free Software
Foundation, Inc. Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@@ -18,7 +18,8 @@
#if !_LIBC #if !_LIBC
# include <config.h> # include <config.h>
# include "getcwd.h" # include <unistd.h>
# include "dirfd.h"
#endif #endif
#include <errno.h> #include <errno.h>
@@ -49,8 +50,6 @@
# ifndef mempcpy # ifndef mempcpy
# define mempcpy __mempcpy # define mempcpy __mempcpy
# endif # endif
#else
# include "mempcpy.h"
#endif #endif
#include <limits.h> #include <limits.h>
@@ -97,6 +96,11 @@
# define __opendir opendir # define __opendir opendir
# define __readdir readdir # define __readdir readdir
#endif #endif
/* The results of opendir() in this file are not used with dirfd and fchdir,
therefore save some unnecessary recursion in fchdir.c. */
#undef opendir
#undef closedir
/* Get the name of the current working directory, and put it in SIZE /* Get the name of the current working directory, and put it in SIZE
bytes of BUF. Returns NULL if the directory couldn't be determined or bytes of BUF. Returns NULL if the directory couldn't be determined or
@@ -137,13 +141,18 @@ __getcwd (char *buf, size_t size)
size_t allocated = size; size_t allocated = size;
size_t used; size_t used;
#if HAVE_PARTLY_WORKING_GETCWD && !defined AT_FDCWD #if HAVE_PARTLY_WORKING_GETCWD
/* The system getcwd works, except it sometimes fails when it /* The system getcwd works, except it sometimes fails when it
shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT. If shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT. If
AT_FDCWD is not defined, the algorithm below is O(N**2) and this AT_FDCWD is not defined, the algorithm below is O(N**2) and this
is much slower than the system getcwd (at least on GNU/Linux). is much slower than the system getcwd (at least on GNU/Linux).
So trust the system getcwd's results unless they look So trust the system getcwd's results unless they look
suspicious. */ suspicious.
Use the system getcwd even if we have openat support, since the
system getcwd works even when a parent is unreadable, while the
openat-based approach does not. */
# undef getcwd # undef getcwd
dir = getcwd (buf, size); dir = getcwd (buf, size);
if (dir || (errno != ERANGE && !is_ENAMETOOLONG (errno) && errno != ENOENT)) if (dir || (errno != ERANGE && !is_ENAMETOOLONG (errno) && errno != ENOENT))
@@ -226,6 +235,8 @@ __getcwd (char *buf, size_t size)
dirstream = fdopendir (fd); dirstream = fdopendir (fd);
if (dirstream == NULL) if (dirstream == NULL)
goto lose; goto lose;
/* Reset fd. It may have been closed by fdopendir. */
fd = dirfd (dirstream);
fd_needs_closing = false; fd_needs_closing = false;
#else #else
dirstream = __opendir (dotlist); dirstream = __opendir (dotlist);
@@ -380,7 +391,7 @@ __getcwd (char *buf, size_t size)
used = dir + allocated - dirp; used = dir + allocated - dirp;
memmove (dir, dirp, used); memmove (dir, dirp, used);
if (buf == NULL && size == 0) if (size == 0)
/* Ensure that the buffer is only as large as necessary. */ /* Ensure that the buffer is only as large as necessary. */
buf = realloc (dir, used); buf = realloc (dir, used);
-40
View File
@@ -1,40 +0,0 @@
/* Get the working directory, compatibly with the GNU C Library.
Copyright (C) 2004-2005 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
/* Written by Paul Eggert. */
/* Include the headers that might declare getcwd so that they will not
cause confusion if included after this file. */
#include <stdlib.h>
#include <unistd.h>
/* If necessary, systematically rename identifiers so that they do not
collide with the system function. Renaming avoids problems with
some compilers and linkers. */
#ifdef __GETCWD_PREFIX
# undef getcwd
# define __GETCWD_CONCAT(x, y) x ## y
# define __GETCWD_XCONCAT(x, y) __GETCWD_CONCAT (x, y)
# define __GETCWD_ID(y) __GETCWD_XCONCAT (__GETCWD_PREFIX, y)
# define getcwd __GETCWD_ID (getcwd)
/* See the POSIX:2001 specification
<http://www.opengroup.org/susv3xsh/getcwd.html>. */
char *getcwd (char *, size_t);
#endif
+84 -83
View File
@@ -66,7 +66,7 @@
/* Parse a string into an internal time stamp. /* Parse a string into an internal time stamp.
Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2006 Free Software Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
Foundation, Inc. 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
@@ -100,6 +100,7 @@
#include <config.h> #include <config.h>
#include "getdate.h" #include "getdate.h"
#include "timespec.h"
/* There's no need to extend the stack, so there's no need to involve /* There's no need to extend the stack, so there's no need to involve
alloca. */ alloca. */
@@ -337,16 +338,16 @@ static long int time_zone_hhmm (textint, long int);
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE typedef union YYSTYPE
{/* Line 198 of yacc.c. */ {/* Line 191 of yacc.c. */
#line 213 "getdate.y" #line 214 "getdate.y"
long int intval; long int intval;
textint textintval; textint textintval;
struct timespec timespec; struct timespec timespec;
relative_time rel; relative_time rel;
} }
/* Line 198 of yacc.c. */ /* Line 191 of yacc.c. */
#line 350 "getdate.c" #line 351 "getdate.c"
YYSTYPE; YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -359,7 +360,7 @@ typedef union YYSTYPE
/* Copy the second part of user declarations. */ /* Copy the second part of user declarations. */
/* Line 221 of yacc.c. */ /* Line 221 of yacc.c. */
#line 363 "getdate.c" #line 364 "getdate.c"
#ifdef short #ifdef short
# undef short # undef short
@@ -671,14 +672,14 @@ static const yytype_int8 yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] = static const yytype_uint16 yyrline[] =
{ {
0, 239, 239, 240, 244, 251, 253, 257, 259, 261, 0, 240, 240, 241, 245, 252, 254, 258, 260, 262,
263, 265, 267, 269, 273, 281, 289, 299, 306, 318, 264, 266, 268, 270, 274, 282, 290, 300, 307, 319,
323, 331, 333, 343, 345, 347, 352, 357, 362, 367, 324, 332, 334, 344, 346, 348, 353, 358, 363, 368,
375, 380, 400, 407, 415, 423, 428, 434, 439, 448, 376, 381, 401, 408, 416, 424, 429, 435, 440, 449,
458, 471, 473, 475, 477, 479, 481, 483, 485, 487, 459, 472, 474, 476, 478, 480, 482, 484, 486, 488,
489, 491, 493, 495, 497, 499, 501, 503, 505, 507, 490, 492, 494, 496, 498, 500, 502, 504, 506, 508,
509, 511, 515, 517, 519, 521, 523, 525, 529, 529, 510, 512, 516, 518, 520, 522, 524, 526, 530, 530,
532, 533, 538, 539, 544, 582, 583, 589, 590 533, 534, 539, 540, 545, 583, 584, 590, 591
}; };
#endif #endif
@@ -1653,7 +1654,7 @@ yyreduce:
{ {
case 4: case 4:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 245 "getdate.y" #line 246 "getdate.y"
{ {
pc->seconds = (yyvsp[(2) - (2)].timespec); pc->seconds = (yyvsp[(2) - (2)].timespec);
pc->timespec_seen = true; pc->timespec_seen = true;
@@ -1662,43 +1663,43 @@ yyreduce:
case 7: case 7:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 258 "getdate.y" #line 259 "getdate.y"
{ pc->times_seen++; } { pc->times_seen++; }
break; break;
case 8: case 8:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 260 "getdate.y" #line 261 "getdate.y"
{ pc->local_zones_seen++; } { pc->local_zones_seen++; }
break; break;
case 9: case 9:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 262 "getdate.y" #line 263 "getdate.y"
{ pc->zones_seen++; } { pc->zones_seen++; }
break; break;
case 10: case 10:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 264 "getdate.y" #line 265 "getdate.y"
{ pc->dates_seen++; } { pc->dates_seen++; }
break; break;
case 11: case 11:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 266 "getdate.y" #line 267 "getdate.y"
{ pc->days_seen++; } { pc->days_seen++; }
break; break;
case 12: case 12:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 268 "getdate.y" #line 269 "getdate.y"
{ pc->rels_seen = true; } { pc->rels_seen = true; }
break; break;
case 14: case 14:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 274 "getdate.y" #line 275 "getdate.y"
{ {
pc->hour = (yyvsp[(1) - (2)].textintval).value; pc->hour = (yyvsp[(1) - (2)].textintval).value;
pc->minutes = 0; pc->minutes = 0;
@@ -1710,7 +1711,7 @@ yyreduce:
case 15: case 15:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 282 "getdate.y" #line 283 "getdate.y"
{ {
pc->hour = (yyvsp[(1) - (4)].textintval).value; pc->hour = (yyvsp[(1) - (4)].textintval).value;
pc->minutes = (yyvsp[(3) - (4)].textintval).value; pc->minutes = (yyvsp[(3) - (4)].textintval).value;
@@ -1722,7 +1723,7 @@ yyreduce:
case 16: case 16:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 290 "getdate.y" #line 291 "getdate.y"
{ {
pc->hour = (yyvsp[(1) - (5)].textintval).value; pc->hour = (yyvsp[(1) - (5)].textintval).value;
pc->minutes = (yyvsp[(3) - (5)].textintval).value; pc->minutes = (yyvsp[(3) - (5)].textintval).value;
@@ -1736,7 +1737,7 @@ yyreduce:
case 17: case 17:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 300 "getdate.y" #line 301 "getdate.y"
{ {
pc->hour = (yyvsp[(1) - (6)].textintval).value; pc->hour = (yyvsp[(1) - (6)].textintval).value;
pc->minutes = (yyvsp[(3) - (6)].textintval).value; pc->minutes = (yyvsp[(3) - (6)].textintval).value;
@@ -1747,7 +1748,7 @@ yyreduce:
case 18: case 18:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 307 "getdate.y" #line 308 "getdate.y"
{ {
pc->hour = (yyvsp[(1) - (7)].textintval).value; pc->hour = (yyvsp[(1) - (7)].textintval).value;
pc->minutes = (yyvsp[(3) - (7)].textintval).value; pc->minutes = (yyvsp[(3) - (7)].textintval).value;
@@ -1760,7 +1761,7 @@ yyreduce:
case 19: case 19:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 319 "getdate.y" #line 320 "getdate.y"
{ {
pc->local_isdst = (yyvsp[(1) - (1)].intval); pc->local_isdst = (yyvsp[(1) - (1)].intval);
pc->dsts_seen += (0 < (yyvsp[(1) - (1)].intval)); pc->dsts_seen += (0 < (yyvsp[(1) - (1)].intval));
@@ -1769,7 +1770,7 @@ yyreduce:
case 20: case 20:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 324 "getdate.y" #line 325 "getdate.y"
{ {
pc->local_isdst = 1; pc->local_isdst = 1;
pc->dsts_seen += (0 < (yyvsp[(1) - (2)].intval)) + 1; pc->dsts_seen += (0 < (yyvsp[(1) - (2)].intval)) + 1;
@@ -1778,13 +1779,13 @@ yyreduce:
case 21: case 21:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 332 "getdate.y" #line 333 "getdate.y"
{ pc->time_zone = (yyvsp[(1) - (1)].intval); } { pc->time_zone = (yyvsp[(1) - (1)].intval); }
break; break;
case 22: case 22:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 334 "getdate.y" #line 335 "getdate.y"
{ pc->time_zone = (yyvsp[(1) - (2)].intval); { pc->time_zone = (yyvsp[(1) - (2)].intval);
pc->rel.ns += (yyvsp[(2) - (2)].rel).ns; pc->rel.ns += (yyvsp[(2) - (2)].rel).ns;
pc->rel.seconds += (yyvsp[(2) - (2)].rel).seconds; pc->rel.seconds += (yyvsp[(2) - (2)].rel).seconds;
@@ -1798,25 +1799,25 @@ yyreduce:
case 23: case 23:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 344 "getdate.y" #line 345 "getdate.y"
{ pc->time_zone = (yyvsp[(1) - (3)].intval) + time_zone_hhmm ((yyvsp[(2) - (3)].textintval), (yyvsp[(3) - (3)].intval)); } { pc->time_zone = (yyvsp[(1) - (3)].intval) + time_zone_hhmm ((yyvsp[(2) - (3)].textintval), (yyvsp[(3) - (3)].intval)); }
break; break;
case 24: case 24:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 346 "getdate.y" #line 347 "getdate.y"
{ pc->time_zone = (yyvsp[(1) - (1)].intval) + 60; } { pc->time_zone = (yyvsp[(1) - (1)].intval) + 60; }
break; break;
case 25: case 25:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 348 "getdate.y" #line 349 "getdate.y"
{ pc->time_zone = (yyvsp[(1) - (2)].intval) + 60; } { pc->time_zone = (yyvsp[(1) - (2)].intval) + 60; }
break; break;
case 26: case 26:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 353 "getdate.y" #line 354 "getdate.y"
{ {
pc->day_ordinal = 1; pc->day_ordinal = 1;
pc->day_number = (yyvsp[(1) - (1)].intval); pc->day_number = (yyvsp[(1) - (1)].intval);
@@ -1825,7 +1826,7 @@ yyreduce:
case 27: case 27:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 358 "getdate.y" #line 359 "getdate.y"
{ {
pc->day_ordinal = 1; pc->day_ordinal = 1;
pc->day_number = (yyvsp[(1) - (2)].intval); pc->day_number = (yyvsp[(1) - (2)].intval);
@@ -1834,7 +1835,7 @@ yyreduce:
case 28: case 28:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 363 "getdate.y" #line 364 "getdate.y"
{ {
pc->day_ordinal = (yyvsp[(1) - (2)].intval); pc->day_ordinal = (yyvsp[(1) - (2)].intval);
pc->day_number = (yyvsp[(2) - (2)].intval); pc->day_number = (yyvsp[(2) - (2)].intval);
@@ -1843,7 +1844,7 @@ yyreduce:
case 29: case 29:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 368 "getdate.y" #line 369 "getdate.y"
{ {
pc->day_ordinal = (yyvsp[(1) - (2)].textintval).value; pc->day_ordinal = (yyvsp[(1) - (2)].textintval).value;
pc->day_number = (yyvsp[(2) - (2)].intval); pc->day_number = (yyvsp[(2) - (2)].intval);
@@ -1852,7 +1853,7 @@ yyreduce:
case 30: case 30:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 376 "getdate.y" #line 377 "getdate.y"
{ {
pc->month = (yyvsp[(1) - (3)].textintval).value; pc->month = (yyvsp[(1) - (3)].textintval).value;
pc->day = (yyvsp[(3) - (3)].textintval).value; pc->day = (yyvsp[(3) - (3)].textintval).value;
@@ -1861,7 +1862,7 @@ yyreduce:
case 31: case 31:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 381 "getdate.y" #line 382 "getdate.y"
{ {
/* Interpret as YYYY/MM/DD if the first value has 4 or more digits, /* Interpret as YYYY/MM/DD if the first value has 4 or more digits,
otherwise as MM/DD/YY. otherwise as MM/DD/YY.
@@ -1885,7 +1886,7 @@ yyreduce:
case 32: case 32:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 401 "getdate.y" #line 402 "getdate.y"
{ {
/* ISO 8601 format. YYYY-MM-DD. */ /* ISO 8601 format. YYYY-MM-DD. */
pc->year = (yyvsp[(1) - (3)].textintval); pc->year = (yyvsp[(1) - (3)].textintval);
@@ -1896,7 +1897,7 @@ yyreduce:
case 33: case 33:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 408 "getdate.y" #line 409 "getdate.y"
{ {
/* e.g. 17-JUN-1992. */ /* e.g. 17-JUN-1992. */
pc->day = (yyvsp[(1) - (3)].textintval).value; pc->day = (yyvsp[(1) - (3)].textintval).value;
@@ -1908,7 +1909,7 @@ yyreduce:
case 34: case 34:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 416 "getdate.y" #line 417 "getdate.y"
{ {
/* e.g. JUN-17-1992. */ /* e.g. JUN-17-1992. */
pc->month = (yyvsp[(1) - (3)].intval); pc->month = (yyvsp[(1) - (3)].intval);
@@ -1920,7 +1921,7 @@ yyreduce:
case 35: case 35:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 424 "getdate.y" #line 425 "getdate.y"
{ {
pc->month = (yyvsp[(1) - (2)].intval); pc->month = (yyvsp[(1) - (2)].intval);
pc->day = (yyvsp[(2) - (2)].textintval).value; pc->day = (yyvsp[(2) - (2)].textintval).value;
@@ -1929,7 +1930,7 @@ yyreduce:
case 36: case 36:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 429 "getdate.y" #line 430 "getdate.y"
{ {
pc->month = (yyvsp[(1) - (4)].intval); pc->month = (yyvsp[(1) - (4)].intval);
pc->day = (yyvsp[(2) - (4)].textintval).value; pc->day = (yyvsp[(2) - (4)].textintval).value;
@@ -1939,7 +1940,7 @@ yyreduce:
case 37: case 37:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 435 "getdate.y" #line 436 "getdate.y"
{ {
pc->day = (yyvsp[(1) - (2)].textintval).value; pc->day = (yyvsp[(1) - (2)].textintval).value;
pc->month = (yyvsp[(2) - (2)].intval); pc->month = (yyvsp[(2) - (2)].intval);
@@ -1948,7 +1949,7 @@ yyreduce:
case 38: case 38:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 440 "getdate.y" #line 441 "getdate.y"
{ {
pc->day = (yyvsp[(1) - (3)].textintval).value; pc->day = (yyvsp[(1) - (3)].textintval).value;
pc->month = (yyvsp[(2) - (3)].intval); pc->month = (yyvsp[(2) - (3)].intval);
@@ -1958,7 +1959,7 @@ yyreduce:
case 39: case 39:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 449 "getdate.y" #line 450 "getdate.y"
{ {
pc->rel.ns -= (yyvsp[(1) - (2)].rel).ns; pc->rel.ns -= (yyvsp[(1) - (2)].rel).ns;
pc->rel.seconds -= (yyvsp[(1) - (2)].rel).seconds; pc->rel.seconds -= (yyvsp[(1) - (2)].rel).seconds;
@@ -1972,7 +1973,7 @@ yyreduce:
case 40: case 40:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 459 "getdate.y" #line 460 "getdate.y"
{ {
pc->rel.ns += (yyvsp[(1) - (1)].rel).ns; pc->rel.ns += (yyvsp[(1) - (1)].rel).ns;
pc->rel.seconds += (yyvsp[(1) - (1)].rel).seconds; pc->rel.seconds += (yyvsp[(1) - (1)].rel).seconds;
@@ -1986,175 +1987,175 @@ yyreduce:
case 41: case 41:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 472 "getdate.y" #line 473 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = (yyvsp[(1) - (2)].intval); } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = (yyvsp[(1) - (2)].intval); }
break; break;
case 42: case 42:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 474 "getdate.y" #line 475 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = (yyvsp[(1) - (2)].textintval).value; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = (yyvsp[(1) - (2)].textintval).value; }
break; break;
case 43: case 43:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 476 "getdate.y" #line 477 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = 1; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = 1; }
break; break;
case 44: case 44:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 478 "getdate.y" #line 479 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = (yyvsp[(1) - (2)].intval); } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = (yyvsp[(1) - (2)].intval); }
break; break;
case 45: case 45:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 480 "getdate.y" #line 481 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = (yyvsp[(1) - (2)].textintval).value; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = (yyvsp[(1) - (2)].textintval).value; }
break; break;
case 46: case 46:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 482 "getdate.y" #line 483 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = 1; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = 1; }
break; break;
case 47: case 47:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 484 "getdate.y" #line 485 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); }
break; break;
case 48: case 48:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 486 "getdate.y" #line 487 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); }
break; break;
case 49: case 49:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 488 "getdate.y" #line 489 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (1)].intval); } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (1)].intval); }
break; break;
case 50: case 50:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 490 "getdate.y" #line 491 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = (yyvsp[(1) - (2)].intval); } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = (yyvsp[(1) - (2)].intval); }
break; break;
case 51: case 51:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 492 "getdate.y" #line 493 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = (yyvsp[(1) - (2)].textintval).value; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = (yyvsp[(1) - (2)].textintval).value; }
break; break;
case 52: case 52:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 494 "getdate.y" #line 495 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = 1; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = 1; }
break; break;
case 53: case 53:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 496 "getdate.y" #line 497 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = (yyvsp[(1) - (2)].intval); } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = (yyvsp[(1) - (2)].intval); }
break; break;
case 54: case 54:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 498 "getdate.y" #line 499 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = (yyvsp[(1) - (2)].textintval).value; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = (yyvsp[(1) - (2)].textintval).value; }
break; break;
case 55: case 55:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 500 "getdate.y" #line 501 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = 1; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = 1; }
break; break;
case 56: case 56:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 502 "getdate.y" #line 503 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].intval); } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].intval); }
break; break;
case 57: case 57:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 504 "getdate.y" #line 505 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].textintval).value; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].textintval).value; }
break; break;
case 58: case 58:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 506 "getdate.y" #line 507 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].timespec).tv_sec; (yyval.rel).ns = (yyvsp[(1) - (2)].timespec).tv_nsec; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].timespec).tv_sec; (yyval.rel).ns = (yyvsp[(1) - (2)].timespec).tv_nsec; }
break; break;
case 59: case 59:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 508 "getdate.y" #line 509 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].timespec).tv_sec; (yyval.rel).ns = (yyvsp[(1) - (2)].timespec).tv_nsec; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].timespec).tv_sec; (yyval.rel).ns = (yyvsp[(1) - (2)].timespec).tv_nsec; }
break; break;
case 60: case 60:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 510 "getdate.y" #line 511 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = 1; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = 1; }
break; break;
case 62: case 62:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 516 "getdate.y" #line 517 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = (yyvsp[(1) - (2)].textintval).value; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = (yyvsp[(1) - (2)].textintval).value; }
break; break;
case 63: case 63:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 518 "getdate.y" #line 519 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = (yyvsp[(1) - (2)].textintval).value; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = (yyvsp[(1) - (2)].textintval).value; }
break; break;
case 64: case 64:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 520 "getdate.y" #line 521 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); }
break; break;
case 65: case 65:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 522 "getdate.y" #line 523 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = (yyvsp[(1) - (2)].textintval).value; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = (yyvsp[(1) - (2)].textintval).value; }
break; break;
case 66: case 66:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 524 "getdate.y" #line 525 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = (yyvsp[(1) - (2)].textintval).value; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = (yyvsp[(1) - (2)].textintval).value; }
break; break;
case 67: case 67:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 526 "getdate.y" #line 527 "getdate.y"
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].textintval).value; } { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].textintval).value; }
break; break;
case 71: case 71:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 534 "getdate.y" #line 535 "getdate.y"
{ (yyval.timespec).tv_sec = (yyvsp[(1) - (1)].textintval).value; (yyval.timespec).tv_nsec = 0; } { (yyval.timespec).tv_sec = (yyvsp[(1) - (1)].textintval).value; (yyval.timespec).tv_nsec = 0; }
break; break;
case 73: case 73:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 540 "getdate.y" #line 541 "getdate.y"
{ (yyval.timespec).tv_sec = (yyvsp[(1) - (1)].textintval).value; (yyval.timespec).tv_nsec = 0; } { (yyval.timespec).tv_sec = (yyvsp[(1) - (1)].textintval).value; (yyval.timespec).tv_nsec = 0; }
break; break;
case 74: case 74:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 545 "getdate.y" #line 546 "getdate.y"
{ {
if (pc->dates_seen && ! pc->year.digits if (pc->dates_seen && ! pc->year.digits
&& ! pc->rels_seen && (pc->times_seen || 2 < (yyvsp[(1) - (1)].textintval).digits)) && ! pc->rels_seen && (pc->times_seen || 2 < (yyvsp[(1) - (1)].textintval).digits))
@@ -2192,31 +2193,31 @@ yyreduce:
case 75: case 75:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 582 "getdate.y" #line 583 "getdate.y"
{ (yyval.intval) = -1; } { (yyval.intval) = -1; }
break; break;
case 76: case 76:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 584 "getdate.y" #line 585 "getdate.y"
{ (yyval.intval) = (yyvsp[(2) - (2)].textintval).value; } { (yyval.intval) = (yyvsp[(2) - (2)].textintval).value; }
break; break;
case 77: case 77:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 589 "getdate.y" #line 590 "getdate.y"
{ (yyval.intval) = MER24; } { (yyval.intval) = MER24; }
break; break;
case 78: case 78:
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 591 "getdate.y" #line 592 "getdate.y"
{ (yyval.intval) = (yyvsp[(1) - (1)].intval); } { (yyval.intval) = (yyvsp[(1) - (1)].intval); }
break; break;
/* Line 1269 of yacc.c. */ /* Line 1269 of yacc.c. */
#line 2220 "getdate.c" #line 2221 "getdate.c"
default: break; default: break;
} }
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2428,7 +2429,7 @@ yyreturn:
/* Line 1486 of yacc.c. */ /* Line 1486 of yacc.c. */
#line 594 "getdate.y" #line 595 "getdate.y"
static table const meridian_table[] = static table const meridian_table[] =
+3 -2
View File
@@ -1,6 +1,7 @@
/* Parse a string into an internal time stamp. /* Parse a string into an internal time stamp.
Copyright (C) 1995, 1997, 1998, 2003, 2004 Free Software Foundation, Inc. Copyright (C) 1995, 1997, 1998, 2003, 2004, 2007 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 +18,6 @@
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#include <stdbool.h> #include <stdbool.h>
#include "timespec.h" #include <time.h>
bool get_date (struct timespec *, char const *, struct timespec const *); bool get_date (struct timespec *, char const *, struct timespec const *);
+2 -1
View File
@@ -1,7 +1,7 @@
%{ %{
/* Parse a string into an internal time stamp. /* Parse a string into an internal time stamp.
Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2006 Free Software Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
Foundation, Inc. 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
@@ -35,6 +35,7 @@
#include <config.h> #include <config.h>
#include "getdate.h" #include "getdate.h"
#include "timespec.h"
/* There's no need to extend the stack, so there's no need to involve /* There's no need to extend the stack, so there's no need to involve
alloca. */ alloca. */
+2 -1
View File
@@ -1,6 +1,6 @@
/* gethrxtime -- get high resolution real time /* gethrxtime -- get high resolution real time
Copyright (C) 2005, 2006 Free Software Foundation, Inc. Copyright (C) 2005, 2006, 2007 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
@@ -22,6 +22,7 @@
#include "gethrxtime.h" #include "gethrxtime.h"
#include <sys/time.h>
#include "timespec.h" #include "timespec.h"
/* Get the current time, as a count of the number of nanoseconds since /* Get the current time, as a count of the number of nanoseconds since
+3 -3
View File
@@ -1,5 +1,5 @@
/* Declarations for getopt. /* Declarations for getopt.
Copyright (C) 1989-1994,1996-1999,2001,2003,2004,2005,2006 Copyright (C) 1989-1994,1996-1999,2001,2003,2004,2005,2006,2007
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@@ -101,7 +101,7 @@
# endif # endif
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@@ -216,7 +216,7 @@ extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv,
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
+5
View File
@@ -42,6 +42,11 @@
# endif # endif
#endif #endif
/* This is for AmigaOS4.0. */
#if !defined getpagesize && defined __amigaos4__
# define getpagesize() 2048
#endif
#if !defined getpagesize && HAVE_SYS_PARAM_H #if !defined getpagesize && HAVE_SYS_PARAM_H
# include <sys/param.h> # include <sys/param.h>
# ifdef EXEC_PAGESIZE # ifdef EXEC_PAGESIZE
+3 -12
View File
@@ -1,6 +1,6 @@
/* gettime -- get the system clock /* gettime -- get the system clock
Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc. Copyright (C) 2002, 2004, 2005, 2006, 2007 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
@@ -22,6 +22,8 @@
#include "timespec.h" #include "timespec.h"
#include <sys/time.h>
/* Get the system time into *TS. */ /* Get the system time into *TS. */
void void
@@ -36,23 +38,12 @@ gettime (struct timespec *ts)
return; return;
# endif # endif
# if HAVE_GETTIMEOFDAY
{ {
struct timeval tv; struct timeval tv;
gettimeofday (&tv, NULL); gettimeofday (&tv, NULL);
ts->tv_sec = tv.tv_sec; ts->tv_sec = tv.tv_sec;
ts->tv_nsec = tv.tv_usec * 1000; ts->tv_nsec = tv.tv_usec * 1000;
} }
# else
# ifndef OK_TO_USE_1S_CLOCK
# error "Only 1-second nominal clock resolution found. Is that intended?" \
"If so, compile with the -DOK_TO_USE_1S_CLOCK option."
# endif
ts->tv_sec = time (NULL);
ts->tv_nsec = 0;
# endif
#endif #endif
} }
+84 -64
View File
@@ -1,9 +1,7 @@
/* Work around the bug in some systems whereby gettimeofday clobbers the /* Provide gettimeofday for systems that don't have it or for which it's broken.
static buffer that localtime uses for it's return value. The gettimeofday
function from Mac OS X 10.0.4, i.e. Darwin 1.3.7 has this problem.
The tzset replacement is necessary for at least Solaris 2.5, 2.5.1, and 2.6.
Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. Copyright (C) 2001, 2002, 2003, 2005, 2006, 2007 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
@@ -23,29 +21,25 @@
#include <config.h> #include <config.h>
/* Disable the definitions of these functions (from config.h) /* Specification. */
so we can use the library versions here. */ #include <sys/time.h>
#undef gettimeofday
#undef gmtime
#undef localtime
#undef tzset
#include <sys/types.h> #include <time.h>
#if TIME_WITH_SYS_TIME #if HAVE_SYS_TIMEB_H
# include <sys/time.h> # include <sys/timeb.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif #endif
#include <stdlib.h> #if GETTIMEOFDAY_CLOBBERS_LOCALTIME || TZSET_CLOBBERS_LOCALTIME
static struct tm *localtime_buffer_addr; /* Work around the bug in some systems whereby gettimeofday clobbers
the static buffer that localtime uses for its return value. The
gettimeofday function from Mac OS X 10.0.4 (i.e., Darwin 1.3.7) has
this problem. The tzset replacement is necessary for at least
Solaris 2.5, 2.5.1, and 2.6. */
static struct tm tm_zero_buffer;
static struct tm *localtime_buffer_addr = &tm_zero_buffer;
/* This is a wrapper for localtime. It is used only on systems for which /* This is a wrapper for localtime. It is used only on systems for which
gettimeofday clobbers the static buffer used for localtime's result. gettimeofday clobbers the static buffer used for localtime's result.
@@ -54,11 +48,13 @@ static struct tm *localtime_buffer_addr;
localtime uses for its result. */ localtime uses for its result. */
struct tm * struct tm *
rpl_localtime (const time_t *timep) localtime (time_t const *timep)
{ {
#undef localtime
extern struct tm *localtime (time_t const *);
struct tm *tm = localtime (timep); struct tm *tm = localtime (timep);
if (! localtime_buffer_addr) if (localtime_buffer_addr == &tm_zero_buffer)
localtime_buffer_addr = tm; localtime_buffer_addr = tm;
return tm; return tm;
@@ -66,57 +62,81 @@ rpl_localtime (const time_t *timep)
/* Same as above, since gmtime and localtime use the same buffer. */ /* Same as above, since gmtime and localtime use the same buffer. */
struct tm * struct tm *
rpl_gmtime (const time_t *timep) gmtime (time_t const *timep)
{ {
#undef gmtime
extern struct tm *gmtime (time_t const *);
struct tm *tm = gmtime (timep); struct tm *tm = gmtime (timep);
if (! localtime_buffer_addr) if (localtime_buffer_addr == &tm_zero_buffer)
localtime_buffer_addr = tm; localtime_buffer_addr = tm;
return tm; return tm;
} }
/* This is a wrapper for gettimeofday. It is used only on systems for which #endif /* GETTIMEOFDAY_CLOBBERS_LOCALTIME || TZSET_CLOBBERS_LOCALTIME */
gettimeofday clobbers the static buffer used for localtime's result.
Save and restore the contents of the buffer used for localtime's result #if TZSET_CLOBBERS_LOCALTIME
around the call to gettimeofday. */ /* This is a wrapper for tzset, for systems on which tzset may clobber
the static buffer used for localtime's result. */
int
rpl_gettimeofday (struct timeval *tv, struct timezone *tz)
{
struct tm save;
int result;
if (! localtime_buffer_addr)
{
time_t t = 0;
localtime_buffer_addr = localtime (&t);
}
save = *localtime_buffer_addr;
result = gettimeofday (tv, tz);
*localtime_buffer_addr = save;
return result;
}
/* This is a wrapper for tzset. It is used only on systems for which
tzset may clobber the static buffer used for localtime's result.
Save and restore the contents of the buffer used for localtime's
result around the call to tzset. */
void void
rpl_tzset (void) tzset (void)
{ {
struct tm save; #undef tzset
extern void tzset (void);
if (! localtime_buffer_addr) /* Save and restore the contents of the buffer used for localtime's
{ result around the call to tzset. */
time_t t = 0; struct tm save = *localtime_buffer_addr;
localtime_buffer_addr = localtime (&t);
}
save = *localtime_buffer_addr;
tzset (); tzset ();
*localtime_buffer_addr = save; *localtime_buffer_addr = save;
} }
#endif
/* This is a wrapper for gettimeofday. It is used only on systems
that lack this function, or whose implementation of this function
causes problems. */
int
rpl_gettimeofday (struct timeval *restrict tv, void *restrict tz)
{
#undef gettimeofday
#if HAVE_GETTIMEOFDAY
# if GETTIMEOFDAY_CLOBBERS_LOCALTIME
/* Save and restore the contents of the buffer used for localtime's
result around the call to gettimeofday. */
struct tm save = *localtime_buffer_addr;
# endif
int result = gettimeofday (tv, tz);
# if GETTIMEOFDAY_CLOBBERS_LOCALTIME
*localtime_buffer_addr = save;
# endif
return result;
#else
# if HAVE__FTIME
struct _timeb timebuf;
_ftime (&timebuf);
tv->tv_sec = timebuf.time;
tv->tv_usec = timebuf.millitm * 1000;
# else
# if !defined OK_TO_USE_1S_CLOCK
# error "Only 1-second nominal clock resolution found. Is that intended?" \
"If so, compile with the -DOK_TO_USE_1S_CLOCK option."
# endif
tv->tv_sec = time (NULL);
tv->tv_usec = 0;
# endif
return 0;
#endif
}
+344 -51
View File
@@ -1,6 +1,6 @@
## DO NOT EDIT! GENERATED AUTOMATICALLY! ## DO NOT EDIT! GENERATED AUTOMATICALLY!
## Process this file with automake to produce Makefile.in. ## Process this file with automake to produce Makefile.in.
# Copyright (C) 2004-2006 Free Software Foundation, Inc. # Copyright (C) 2004-2007 Free Software Foundation, Inc.
# #
# This file is free software, distributed under the terms of the GNU # This file is free software, distributed under the terms of the GNU
# General Public License. As a special exception to the GNU General # General Public License. As a special exception to the GNU General
@@ -9,7 +9,7 @@
# the same distribution terms as the rest of that program. # the same distribution terms as the rest of that program.
# #
# Generated by gnulib-tool. # Generated by gnulib-tool.
# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libcoreutils --source-base=.#bootmp/lib --m4-base=.#bootmp/m4 --doc-base=.#bootmp/doc --aux-dir=.#bootmp/build-aux --avoid=lock --avoid=size_max --avoid=xsize --no-libtool --macro-prefix=gl acl alloca argmatch assert atexit backupfile base64 c-strtod c-strtold calloc canon-host canonicalize chown cloexec closeout config-h configmake cycle-check d-ino d-type diacrit dirfd dirname dup2 error euidaccess exclude exitfail fcntl fcntl-safer fdl file-type fileblocks filemode filenamecat fnmatch-gnu fopen-safer fprintftime free fsusage ftruncate fts getdate getgroups gethrxtime getline getloadavg getndelim2 getopt getpagesize getpass-gnu gettext gettime gettimeofday getugroups getusershell gnupload group-member hard-locale hash hash-pjw host-os human idcache inttostr inttypes isapipe lchmod lchown lib-ignore linebuffer link-follow long-options lstat malloc mbswidth md5 memcasecmp memchr memcmp memcpy memmove mempcpy memrchr memset mkancesdirs mkdir mkdir-p mkstemp mktime modechange mountlist obstack pathmax perl physmem posixtm posixver putenv quote quotearg raise readlink readtokens readtokens0 readutmp realloc regex rename rename-dest-slash rmdir rmdir-errno root-dev-ino rpmatch safe-read same save-cwd savedir savewd settime sha1 sig2str ssize_t stat-macros stat-time stdbool stdlib-safer stpcpy strcase strcspn strftime strpbrk strtod strtoimax strtol strtoumax strverscmp sys_stat timespec tzset unicodeio unistd-safer unlink-busy unlinkdir unlocked-io uptime userspec utime utimecmp utimens vasprintf verify version-etc-fsf wcwidth winsz-ioctl winsz-termios xalloc xgetcwd xgethostname xmemcoll xnanosleep xreadlink xstrtod xstrtoimax xstrtol xstrtold xstrtoumax yesno # Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libcoreutils --source-base=lib --m4-base=m4 --doc-base=doc --aux-dir=build-aux --avoid=lock --avoid=size_max --avoid=xsize --avoid=canonicalize-lgpl --no-libtool --macro-prefix=gl acl alloca announce-gen argmatch assert atexit backupfile base64 c-strcase c-strtod c-strtold calloc canon-host canonicalize chown cloexec closeout config-h configmake cycle-check d-ino d-type diacrit dirfd dirname dup2 error euidaccess exclude exitfail fchdir fcntl fcntl-safer fdl file-type fileblocks filemode filenamecat fnmatch-gnu fopen-safer fprintftime free fsusage ftruncate fts getdate getgroups gethrxtime getline getloadavg getndelim2 getopt getpagesize getpass-gnu gettext gettime gettimeofday getugroups getusershell gnupload group-member hard-locale hash hash-pjw host-os human idcache inttostr inttypes isapipe lchmod lchown lib-ignore linebuffer link-follow long-options lstat malloc mbswidth md5 memcasecmp memchr memcmp memcpy memmove mempcpy memrchr memset mkancesdirs mkdir mkdir-p mkstemp mktime modechange mountlist mpsort obstack pathmax perl physmem posixtm posixver putenv quote quotearg raise readlink readtokens readtokens0 readutmp realloc regex rename rename-dest-slash rmdir rmdir-errno root-dev-ino rpmatch safe-read same save-cwd savedir savewd settime sha1 sig2str ssize_t stat-macros stat-time stdbool stdlib-safer stpcpy strcspn strftime strpbrk strtod strtoimax strtol strtoumax strverscmp sys_stat timespec tzset unicodeio unistd-safer unlink-busy unlinkdir unlocked-io uptime userspec utime utimecmp utimens vasprintf verify version-etc-fsf wcwidth winsz-ioctl winsz-termios xalloc xgetcwd xgethostname xmemcoll xnanosleep xreadlink xreadlink-with-size xstrtod xstrtoimax xstrtol xstrtold xstrtoumax yesno
AUTOMAKE_OPTIONS = 1.5 gnits AUTOMAKE_OPTIONS = 1.5 gnits
@@ -37,9 +37,9 @@ EXTRA_libcoreutils_a_SOURCES =
## begin gnulib module acl ## begin gnulib module acl
EXTRA_DIST += acl.c acl.h EXTRA_DIST += acl-internal.h acl.c acl.h acl_entries.c file-has-acl.c
EXTRA_libcoreutils_a_SOURCES += acl.c EXTRA_libcoreutils_a_SOURCES += acl.c acl_entries.c file-has-acl.c
## end gnulib module acl ## end gnulib module acl
@@ -95,7 +95,7 @@ BUILT_SOURCES += $(ARPA_INET_H)
# We need the following in order to create <arpa/inet.h> when the system # We need the following in order to create <arpa/inet.h> when the system
# doesn't have one. # doesn't have one.
arpa/inet.h: arpa/inet.h:
test -d arpa || mkdir arpa @MKDIR_P@ arpa
rm -f $@-t $@ rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
echo '#include <sys/socket.h>'; \ echo '#include <sys/socket.h>'; \
@@ -130,6 +130,18 @@ libcoreutils_a_SOURCES += base64.h base64.c
## end gnulib module base64 ## end gnulib module base64
## begin gnulib module c-ctype
libcoreutils_a_SOURCES += c-ctype.h c-ctype.c
## end gnulib module c-ctype
## begin gnulib module c-strcase
libcoreutils_a_SOURCES += c-strcase.h c-strcasecmp.c c-strncasecmp.c
## end gnulib module c-strcase
## begin gnulib module c-strtod ## begin gnulib module c-strtod
@@ -352,12 +364,6 @@ EXTRA_libcoreutils_a_SOURCES += exclude.c
## end gnulib module exclude ## end gnulib module exclude
## begin gnulib module exit
libcoreutils_a_SOURCES += exit.h
## end gnulib module exit
## begin gnulib module exitfail ## begin gnulib module exitfail
@@ -367,6 +373,28 @@ EXTRA_libcoreutils_a_SOURCES += exitfail.c
## end gnulib module exitfail ## end gnulib module exitfail
## begin gnulib module fchdir
BUILT_SOURCES += $(DIRENT_H)
# We need the following in order to create <dirent.h> when the system
# doesn't have one that works with the given compiler.
dirent.h: dirent_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's|@''ABSOLUTE_DIRENT_H''@|$(ABSOLUTE_DIRENT_H)|g' \
-e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
< $(srcdir)/dirent_.h; \
} > $@-t
mv $@-t $@
MOSTLYCLEANFILES += dirent.h dirent.h-t
EXTRA_DIST += dirent_.h fchdir.c
EXTRA_libcoreutils_a_SOURCES += fchdir.c
## end gnulib module fchdir
## begin gnulib module fcntl ## begin gnulib module fcntl
BUILT_SOURCES += $(FCNTL_H) BUILT_SOURCES += $(FCNTL_H)
@@ -537,7 +565,7 @@ EXTRA_libcoreutils_a_SOURCES += gai_strerror.c getaddrinfo.c
## begin gnulib module getcwd ## begin gnulib module getcwd
EXTRA_DIST += getcwd.c getcwd.h EXTRA_DIST += getcwd.c
EXTRA_libcoreutils_a_SOURCES += getcwd.c EXTRA_libcoreutils_a_SOURCES += getcwd.c
@@ -808,10 +836,15 @@ inttypes.h: inttypes_.h
-e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
-e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
-e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \
-e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \
-e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \
-e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \
-e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \
-e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \
-e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
-e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
-e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
< $(srcdir)/inttypes_.h; \ < $(srcdir)/inttypes_.h; \
} > $@-t } > $@-t
mv $@-t $@ mv $@-t $@
@@ -852,6 +885,12 @@ libcoreutils_a_SOURCES += linebuffer.h linebuffer.c
## end gnulib module linebuffer ## end gnulib module linebuffer
## begin gnulib module link-warning
LINK_WARNING_H=$(top_srcdir)/build-aux/link-warning.h
## end gnulib module link-warning
## begin gnulib module localcharset ## begin gnulib module localcharset
libcoreutils_a_SOURCES += localcharset.h localcharset.c libcoreutils_a_SOURCES += localcharset.h localcharset.c
@@ -939,13 +978,18 @@ EXTRA_libcoreutils_a_SOURCES += malloc.c
## begin gnulib module mbchar ## begin gnulib module mbchar
libcoreutils_a_SOURCES += mbchar.c
EXTRA_DIST += mbchar.c mbchar.h EXTRA_DIST += mbchar.h
EXTRA_libcoreutils_a_SOURCES += mbchar.c
## end gnulib module mbchar ## end gnulib module mbchar
## begin gnulib module mbscasecmp
libcoreutils_a_SOURCES += mbscasecmp.c
## end gnulib module mbscasecmp
## begin gnulib module mbswidth ## begin gnulib module mbswidth
libcoreutils_a_SOURCES += mbswidth.h mbswidth.c libcoreutils_a_SOURCES += mbswidth.h mbswidth.c
@@ -1024,7 +1068,7 @@ EXTRA_libcoreutils_a_SOURCES += memmove.c
## begin gnulib module mempcpy ## begin gnulib module mempcpy
EXTRA_DIST += mempcpy.c mempcpy.h EXTRA_DIST += mempcpy.c
EXTRA_libcoreutils_a_SOURCES += mempcpy.c EXTRA_libcoreutils_a_SOURCES += mempcpy.c
@@ -1033,7 +1077,7 @@ EXTRA_libcoreutils_a_SOURCES += mempcpy.c
## begin gnulib module memrchr ## begin gnulib module memrchr
EXTRA_DIST += memrchr.c memrchr.h EXTRA_DIST += memrchr.c
EXTRA_libcoreutils_a_SOURCES += memrchr.c EXTRA_libcoreutils_a_SOURCES += memrchr.c
@@ -1078,7 +1122,7 @@ EXTRA_libcoreutils_a_SOURCES += dirchownmod.c mkdir-p.c
## begin gnulib module mkstemp ## begin gnulib module mkstemp
EXTRA_DIST += mkstemp.c mkstemp.h EXTRA_DIST += mkstemp.c
EXTRA_libcoreutils_a_SOURCES += mkstemp.c EXTRA_libcoreutils_a_SOURCES += mkstemp.c
@@ -1111,6 +1155,15 @@ EXTRA_libcoreutils_a_SOURCES += mountlist.c
## end gnulib module mountlist ## end gnulib module mountlist
## begin gnulib module mpsort
EXTRA_DIST += mpsort.c mpsort.h
EXTRA_libcoreutils_a_SOURCES += mpsort.c
## end gnulib module mpsort
## begin gnulib module nanosleep ## begin gnulib module nanosleep
@@ -1127,15 +1180,19 @@ BUILT_SOURCES += $(NETINET_IN_H)
# We need the following in order to create <netinet/in.h> when the system # We need the following in order to create <netinet/in.h> when the system
# doesn't have one. # doesn't have one.
netinet/in.h: netinet/in.h:
test -d netinet || mkdir netinet @MKDIR_P@ netinet
rm -f $@-t $@ rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
echo '#include <sys/socket.h>'; \ sed -e 's|@''ABSOLUTE_NETINET_IN_H''@|$(ABSOLUTE_NETINET_IN_H)|g' \
-e 's|@''HAVE_NETINET_IN_H''@|$(HAVE_NETINET_IN_H)|g' \
< $(srcdir)/netinet_in_.h; \
} > $@-t } > $@-t
mv $@-t $@ mv $@-t $@
MOSTLYCLEANFILES += netinet/in.h netinet/in.h-t MOSTLYCLEANFILES += netinet/in.h netinet/in.h-t
MOSTLYCLEANDIRS += netinet MOSTLYCLEANDIRS += netinet
EXTRA_DIST += netinet_in_.h
## end gnulib module netinet_in ## end gnulib module netinet_in
## begin gnulib module obstack ## begin gnulib module obstack
@@ -1150,9 +1207,9 @@ EXTRA_libcoreutils_a_SOURCES += obstack.c
## begin gnulib module openat ## begin gnulib module openat
EXTRA_DIST += at-func.c fchmodat.c fstatat.c mkdirat.c openat-die.c openat-priv.h openat-proc.c openat.c openat.h EXTRA_DIST += at-func.c fchmodat.c fchownat.c fstatat.c mkdirat.c openat-die.c openat-priv.h openat-proc.c openat.c openat.h
EXTRA_libcoreutils_a_SOURCES += at-func.c fchmodat.c fstatat.c mkdirat.c openat-die.c openat-proc.c openat.c EXTRA_libcoreutils_a_SOURCES += at-func.c fchmodat.c fchownat.c fstatat.c mkdirat.c openat-die.c openat-proc.c openat.c
## end gnulib module openat ## end gnulib module openat
@@ -1419,7 +1476,7 @@ EXTRA_libcoreutils_a_SOURCES += sig2str.c
## begin gnulib module snprintf ## begin gnulib module snprintf
EXTRA_DIST += snprintf.c snprintf.h EXTRA_DIST += snprintf.c
EXTRA_libcoreutils_a_SOURCES += snprintf.c EXTRA_libcoreutils_a_SOURCES += snprintf.c
@@ -1466,8 +1523,7 @@ BUILT_SOURCES += $(STDINT_H)
stdint.h: stdint_.h stdint.h: stdint_.h
rm -f $@-t $@ rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
-e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
-e 's|@''ABSOLUTE_STDINT_H''@|$(ABSOLUTE_STDINT_H)|g' \ -e 's|@''ABSOLUTE_STDINT_H''@|$(ABSOLUTE_STDINT_H)|g' \
-e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
-e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
@@ -1497,6 +1553,70 @@ EXTRA_DIST += stdint_.h
## end gnulib module stdint ## end gnulib module stdint
## begin gnulib module stdio
BUILT_SOURCES += stdio.h
# We need the following in order to create <stdio.h> when the system
# doesn't have one that works with the given compiler.
stdio.h: stdio_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
sed -e 's|@''ABSOLUTE_STDIO_H''@|$(ABSOLUTE_STDIO_H)|g' \
-e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \
-e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \
-e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \
-e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \
-e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \
-e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \
-e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \
-e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \
-e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \
-e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \
-e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \
-e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \
-e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \
-e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \
-e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \
-e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \
-e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \
-e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
< $(srcdir)/stdio_.h; \
} > $@-t
mv $@-t $@
MOSTLYCLEANFILES += stdio.h stdio.h-t
EXTRA_DIST += stdio_.h
## end gnulib module stdio
## begin gnulib module stdlib
BUILT_SOURCES += stdlib.h
# We need the following in order to create <stdlib.h> when the system
# doesn't have one that works with the given compiler.
stdlib.h: stdlib_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
sed -e 's|@''ABSOLUTE_STDLIB_H''@|$(ABSOLUTE_STDLIB_H)|g' \
-e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
-e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
-e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
-e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
-e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
-e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
< $(srcdir)/stdlib_.h; \
} > $@-t
mv $@-t $@
MOSTLYCLEANFILES += stdlib.h stdlib.h-t
EXTRA_DIST += stdlib_.h
## end gnulib module stdlib
## begin gnulib module stdlib-safer ## begin gnulib module stdlib-safer
@@ -1509,21 +1629,12 @@ EXTRA_libcoreutils_a_SOURCES += mkstemp-safer.c
## begin gnulib module stpcpy ## begin gnulib module stpcpy
EXTRA_DIST += stpcpy.c stpcpy.h EXTRA_DIST += stpcpy.c
EXTRA_libcoreutils_a_SOURCES += stpcpy.c EXTRA_libcoreutils_a_SOURCES += stpcpy.c
## end gnulib module stpcpy ## end gnulib module stpcpy
## begin gnulib module strcase
EXTRA_DIST += strcase.h strcasecmp.c strncasecmp.c
EXTRA_libcoreutils_a_SOURCES += strcasecmp.c strncasecmp.c
## end gnulib module strcase
## begin gnulib module strcspn ## begin gnulib module strcspn
@@ -1536,7 +1647,7 @@ EXTRA_libcoreutils_a_SOURCES += strcspn.c
## begin gnulib module strdup ## begin gnulib module strdup
EXTRA_DIST += strdup.c strdup.h EXTRA_DIST += strdup.c
EXTRA_libcoreutils_a_SOURCES += strdup.c EXTRA_libcoreutils_a_SOURCES += strdup.c
@@ -1551,10 +1662,72 @@ EXTRA_libcoreutils_a_SOURCES += strftime.c
## end gnulib module strftime ## end gnulib module strftime
## begin gnulib module string
BUILT_SOURCES += string.h
# We need the following in order to create <string.h> when the system
# doesn't have one that works with the given compiler.
string.h: string_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
sed -e 's|@''ABSOLUTE_STRING_H''@|$(ABSOLUTE_STRING_H)|g' \
-e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
-e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
-e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
-e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \
-e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \
-e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \
-e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \
-e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \
-e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \
-e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \
-e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
-e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
-e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
-e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
-e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
-e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
-e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
-e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
-e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
-e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
-e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
-e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \
-e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \
-e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \
-e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
-e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
-e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
-e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
-e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
-e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
-e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
-e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \
-e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \
-e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \
-e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \
-e 's|@''HAVE_STRNDUP''@|$(HAVE_STRNDUP)|g' \
-e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \
-e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \
-e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \
-e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
-e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
-e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
< $(srcdir)/string_.h; \
} > $@-t
mv $@-t $@
MOSTLYCLEANFILES += string.h string.h-t
EXTRA_DIST += string_.h
## end gnulib module string
## begin gnulib module strndup ## begin gnulib module strndup
EXTRA_DIST += strndup.c strndup.h EXTRA_DIST += strndup.c
EXTRA_libcoreutils_a_SOURCES += strndup.c EXTRA_libcoreutils_a_SOURCES += strndup.c
@@ -1563,7 +1736,7 @@ EXTRA_libcoreutils_a_SOURCES += strndup.c
## begin gnulib module strnlen ## begin gnulib module strnlen
EXTRA_DIST += strnlen.c strnlen.h EXTRA_DIST += strnlen.c
EXTRA_libcoreutils_a_SOURCES += strnlen.c EXTRA_libcoreutils_a_SOURCES += strnlen.c
@@ -1578,7 +1751,7 @@ libcoreutils_a_SOURCES += strnlen1.h strnlen1.c
## begin gnulib module strpbrk ## begin gnulib module strpbrk
EXTRA_DIST += strpbrk.c strpbrk.h EXTRA_DIST += strpbrk.c
EXTRA_libcoreutils_a_SOURCES += strpbrk.c EXTRA_libcoreutils_a_SOURCES += strpbrk.c
@@ -1664,9 +1837,13 @@ BUILT_SOURCES += $(SYS_SOCKET_H)
# We need the following in order to create <sys/socket.h> when the system # We need the following in order to create <sys/socket.h> when the system
# doesn't have one that works with the given compiler. # doesn't have one that works with the given compiler.
sys/socket.h: socket_.h sys/socket.h: socket_.h
test -d sys || mkdir sys @MKDIR_P@ sys
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
cat $(srcdir)/socket_.h; \ sed -e 's|@''ABSOLUTE_SYS_SOCKET_H''@|$(ABSOLUTE_SYS_SOCKET_H)|g' \
-e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \
-e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
-e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
< $(srcdir)/socket_.h; \
} > $@-t } > $@-t
mv -f $@-t $@ mv -f $@-t $@
MOSTLYCLEANFILES += sys/socket.h sys/socket.h-t MOSTLYCLEANFILES += sys/socket.h sys/socket.h-t
@@ -1683,7 +1860,7 @@ BUILT_SOURCES += $(SYS_STAT_H)
# We need the following in order to create <sys/stat.h> when the system # We need the following in order to create <sys/stat.h> when the system
# has one that is incomplete. # has one that is incomplete.
sys/stat.h: stat_.h sys/stat.h: stat_.h
test -d sys || mkdir sys @MKDIR_P@ sys
rm -f $@-t $@ rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's|@''ABSOLUTE_SYS_STAT_H''@|$(ABSOLUTE_SYS_STAT_H)|g' \ sed -e 's|@''ABSOLUTE_SYS_STAT_H''@|$(ABSOLUTE_SYS_STAT_H)|g' \
@@ -1697,6 +1874,29 @@ EXTRA_DIST += stat_.h
## end gnulib module sys_stat ## end gnulib module sys_stat
## begin gnulib module sys_time
BUILT_SOURCES += $(SYS_TIME_H)
# We need the following in order to create <sys/time.h> when the system
# doesn't have one that works with the given compiler.
sys/time.h: sys_time_.h
@MKDIR_P@ sys
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
-e 's|@''ABSOLUTE_SYS_TIME_H''@|$(ABSOLUTE_SYS_TIME_H)|g' \
-e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \
-e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \
< $(srcdir)/sys_time_.h; \
} > $@-t
mv $@-t $@
MOSTLYCLEANFILES += sys/time.h sys/time.h-t
EXTRA_DIST += sys_time_.h
## end gnulib module sys_time
## begin gnulib module tempname ## begin gnulib module tempname
@@ -1706,10 +1906,35 @@ EXTRA_libcoreutils_a_SOURCES += tempname.c
## end gnulib module tempname ## end gnulib module tempname
## begin gnulib module time
BUILT_SOURCES += time.h
# We need the following in order to create <time.h> when the system
# doesn't have one that works with the given compiler.
time.h: time_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
sed -e 's|@ABSOLUTE_TIME_H''@|$(ABSOLUTE_TIME_H)|g' \
-e 's|@REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \
-e 's|@REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
-e 's|@REPLACE_STRPTIME''@|$(REPLACE_STRPTIME)|g' \
-e 's|@REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \
-e 's|@SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
-e 's|@TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
< $(srcdir)/time_.h; \
} > $@-t
mv $@-t $@
MOSTLYCLEANFILES += time.h time.h-t
EXTRA_DIST += time_.h
## end gnulib module time
## begin gnulib module time_r ## begin gnulib module time_r
EXTRA_DIST += time_r.c time_r.h EXTRA_DIST += time_r.c
EXTRA_libcoreutils_a_SOURCES += time_r.c EXTRA_libcoreutils_a_SOURCES += time_r.c
@@ -1730,15 +1955,35 @@ libcoreutils_a_SOURCES += unicodeio.h unicodeio.c
## begin gnulib module unistd ## begin gnulib module unistd
BUILT_SOURCES += $(UNISTD_H) BUILT_SOURCES += unistd.h
# We need the following in order to create an empty placeholder for # We need the following in order to create an empty placeholder for
# <unistd.h> when the system doesn't have one. # <unistd.h> when the system doesn't have one.
unistd.h: unistd.h: unistd_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
echo '/* Empty placeholder for $@. */'; \ sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
} > $@ -e 's|@''ABSOLUTE_UNISTD_H''@|$(ABSOLUTE_UNISTD_H)|g' \
MOSTLYCLEANFILES += unistd.h -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
-e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
-e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
-e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
-e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
-e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
-e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
-e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
-e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
-e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
-e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
-e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
-e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
-e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
< $(srcdir)/unistd_.h; \
} > $@-t
mv $@-t $@
MOSTLYCLEANFILES += unistd.h unistd.h-t
EXTRA_DIST += unistd_.h
## end gnulib module unistd ## end gnulib module unistd
@@ -1839,6 +2084,47 @@ libcoreutils_a_SOURCES += version-etc-fsf.c
## end gnulib module version-etc-fsf ## end gnulib module version-etc-fsf
## begin gnulib module wchar
BUILT_SOURCES += $(WCHAR_H)
# We need the following in order to create <wchar.h> when the system
# version does not work standalone.
wchar.h: wchar_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's|@''ABSOLUTE_WCHAR_H''@|$(ABSOLUTE_WCHAR_H)|g' \
< $(srcdir)/wchar_.h; \
} > $@-t
mv $@-t $@
MOSTLYCLEANFILES += wchar.h wchar.h-t
EXTRA_DIST += wchar_.h
## end gnulib module wchar
## begin gnulib module wctype
BUILT_SOURCES += $(WCTYPE_H)
# We need the following in order to create <wctype.h> when the system
# doesn't have one that works with the given compiler.
wctype.h: wctype_.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
-e 's|@''ABSOLUTE_WCTYPE_H''@|$(ABSOLUTE_WCTYPE_H)|g' \
-e 's/@''HAVE_WCTYPE_CTMP_BUG''@/$(HAVE_WCTYPE_CTMP_BUG)/g' \
-e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
< $(srcdir)/wctype_.h; \
} > $@-t
mv $@-t $@
MOSTLYCLEANFILES += wctype.h wctype.h-t
EXTRA_DIST += wctype_.h
## end gnulib module wctype
## begin gnulib module wcwidth ## begin gnulib module wcwidth
libcoreutils_a_SOURCES += wcwidth.h libcoreutils_a_SOURCES += wcwidth.h
@@ -1892,13 +2178,20 @@ EXTRA_libcoreutils_a_SOURCES += xnanosleep.c
## begin gnulib module xreadlink ## begin gnulib module xreadlink
libcoreutils_a_SOURCES += xreadlink.c
EXTRA_DIST += xreadlink.c xreadlink.h EXTRA_DIST += xreadlink.h
EXTRA_libcoreutils_a_SOURCES += xreadlink.c
## end gnulib module xreadlink ## end gnulib module xreadlink
## begin gnulib module xreadlink-with-size
libcoreutils_a_SOURCES += xreadlink-with-size.c
EXTRA_DIST += xreadlink.h
## end gnulib module xreadlink-with-size
## begin gnulib module xstrndup ## begin gnulib module xstrndup
libcoreutils_a_SOURCES += xstrndup.h xstrndup.c libcoreutils_a_SOURCES += xstrndup.h xstrndup.c
+1 -3
View File
@@ -1,6 +1,6 @@
/* hard-locale.c -- Determine whether a locale is hard. /* hard-locale.c -- Determine whether a locale is hard.
Copyright (C) 1997, 1998, 1999, 2002, 2003, 2004, 2006 Free Copyright (C) 1997, 1998, 1999, 2002, 2003, 2004, 2006, 2007 Free
Software Foundation, Inc. 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
@@ -25,8 +25,6 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "strdup.h"
#ifdef __GLIBC__ #ifdef __GLIBC__
# define GLIBC_VERSION __GLIBC__ # define GLIBC_VERSION __GLIBC__
#else #else
+40 -5
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 2006 Free Software Foundation, Inc. /* Copyright (C) 2006-2007 Free Software Foundation, Inc.
Written by Paul Eggert, Bruno Haible, Derek Price. Written by Paul Eggert, Bruno Haible, Derek Price.
This file is part of gnulib. This file is part of gnulib.
@@ -42,6 +42,8 @@
# error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to <[email protected]>." # error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to <[email protected]>."
#endif #endif
/* The definition of GL_LINK_WARNING is copied here. */
/* 7.8.1 Macros for format specifiers */ /* 7.8.1 Macros for format specifiers */
#if ! defined __cplusplus || defined __STDC_FORMAT_MACROS #if ! defined __cplusplus || defined __STDC_FORMAT_MACROS
@@ -1034,20 +1036,53 @@
extern "C" { extern "C" {
#endif #endif
#if !@HAVE_DECL_IMAXABS@ #if @GNULIB_IMAXABS@
# if !@HAVE_DECL_IMAXABS@
extern intmax_t imaxabs (intmax_t); extern intmax_t imaxabs (intmax_t);
# endif
#elif defined GNULIB_POSIXCHECK
# undef imaxabs
# define imaxabs(a) \
(GL_LINK_WARNING ("imaxabs is unportable - " \
"use gnulib module imaxabs for portability"), \
imaxabs (a))
#endif #endif
#if !@HAVE_DECL_IMAXDIV@ #if @GNULIB_IMAXDIV@
# if !@HAVE_DECL_IMAXDIV@
typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t;
extern imaxdiv_t imaxdiv (intmax_t, intmax_t); extern imaxdiv_t imaxdiv (intmax_t, intmax_t);
# endif
#elif defined GNULIB_POSIXCHECK
# undef imaxdiv
# define imaxdiv(a,b) \
(GL_LINK_WARNING ("imaxdiv is unportable - " \
"use gnulib module imaxdiv for portability"), \
imaxdiv (a, b))
#endif #endif
#if !@HAVE_DECL_STRTOIMAX@ #if @GNULIB_STRTOIMAX@
# if !@HAVE_DECL_STRTOIMAX@
extern intmax_t strtoimax (const char *, char **, int); extern intmax_t strtoimax (const char *, char **, int);
# endif
#elif defined GNULIB_POSIXCHECK
# undef strtoimax
# define strtoimax(p,e,b) \
(GL_LINK_WARNING ("strtoimax is unportable - " \
"use gnulib module strtoimax for portability"), \
strtoimax (p, e, b))
#endif #endif
#if !@HAVE_DECL_STRTOUMAX@
#if @GNULIB_STRTOUMAX@
# if !@HAVE_DECL_STRTOUMAX@
extern uintmax_t strtoumax (const char *, char **, int); extern uintmax_t strtoumax (const char *, char **, int);
# endif
#elif defined GNULIB_POSIXCHECK
# undef strtoumax
# define strtoumax(p,e,b) \
(GL_LINK_WARNING ("strtoumax is unportable - " \
"use gnulib module strtoumax for portability"), \
strtoumax (p, e, b))
#endif #endif
/* Don't bother defining or declaring wcstoimax and wcstoumax, since /* Don't bother defining or declaring wcstoimax and wcstoumax, since
+1 -126
View File
@@ -155,132 +155,7 @@
#include <stdio.h> #include <stdio.h>
#include <time.h> #include <time.h>
#include <wchar.h> #include <wchar.h>
#include <wctype.h>
/* BeOS 5 has the functions but no <wctype.h>. */
#if HAVE_WCTYPE_H
# include <wctype.h>
#endif
/* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions.
Assume all 12 functions are implemented the same way, or not at all. */
#if !defined iswalnum && !HAVE_ISWCNTRL
static inline int
iswalnum (wint_t wc)
{
return (wc >= 0 && wc < 128
? (wc >= '0' && wc <= '9') || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')
: 0);
}
# define iswalnum iswalnum
#endif
#if !defined iswalpha && !HAVE_ISWCNTRL
static inline int
iswalpha (wint_t wc)
{
return (wc >= 0 && wc < 128
? (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'
: 0);
}
# define iswalpha iswalpha
#endif
#if !defined iswblank && !HAVE_ISWCNTRL
static inline int
iswblank (wint_t wc)
{
return (wc >= 0 && wc < 128
? wc == ' ' || wc == '\t'
: 0);
}
# define iswblank iswblank
#endif
#if !defined iswcntrl && !HAVE_ISWCNTRL
static inline int
iswcntrl (wint_t wc)
{
return (wc >= 0 && wc < 128
? (wc & ~0x1f) == 0 || wc == 0x7f
: 0);
}
# define iswcntrl iswcntrl
#endif
#if !defined iswdigit && !HAVE_ISWCNTRL
static inline int
iswdigit (wint_t wc)
{
return (wc >= '0' && wc <= '9');
}
# define iswdigit iswdigit
#endif
#if !defined iswgraph && !HAVE_ISWCNTRL
static inline int
iswgraph (wint_t wc)
{
return (wc >= 0 && wc < 128
? wc >= '!' && wc <= '~'
: 1);
}
# define iswgraph iswgraph
#endif
#if !defined iswlower && !HAVE_ISWCNTRL
static inline int
iswlower (wint_t wc)
{
return (wc >= 0 && wc < 128
? wc >= 'a' && wc <= 'z'
: 0);
}
# define iswlower iswlower
#endif
#if !defined iswprint && !HAVE_ISWCNTRL
static inline int
iswprint (wint_t wc)
{
return (wc >= 0 && wc < 128
? wc >= ' ' && wc <= '~'
: 1);
}
# define iswprint iswprint
#endif
#if !defined iswpunct && !HAVE_ISWCNTRL
static inline int
iswpunct (wint_t wc)
{
return (wc >= 0 && wc < 128
? wc >= '!' && wc <= '~'
&& !((wc >= '0' && wc <= '9')
|| ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'))
: 1);
}
# define iswpunct iswpunct
#endif
#if !defined iswspace && !HAVE_ISWCNTRL
static inline int
iswspace (wint_t wc)
{
return (wc >= 0 && wc < 128
? wc == ' ' || wc == '\t'
|| wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r'
: 0);
}
# define iswspace iswspace
#endif
#if !defined iswupper && !HAVE_ISWCNTRL
static inline int
iswupper (wint_t wc)
{
return (wc >= 0 && wc < 128
? wc >= 'A' && wc <= 'Z'
: 0);
}
# define iswupper iswupper
#endif
#if !defined iswxdigit && !HAVE_ISWCNTRL
static inline int
iswxdigit (wint_t wc)
{
return (wc >= '0' && wc <= '9') || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F');
}
# define iswxdigit iswxdigit
#endif
#include "wcwidth.h" #include "wcwidth.h"
@@ -1,5 +1,5 @@
/* Case-insensitive string comparison function. /* Case-insensitive string comparison function.
Copyright (C) 1998-1999, 2005-2006 Free Software Foundation, Inc. Copyright (C) 1998-1999, 2005-2007 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2005, Written by Bruno Haible <bruno@clisp.org>, 2005,
based on earlier glibc code. based on earlier glibc code.
@@ -20,7 +20,7 @@
#include <config.h> #include <config.h>
/* Specification. */ /* Specification. */
#include "strcase.h" #include <string.h>
#include <ctype.h> #include <ctype.h>
#include <limits.h> #include <limits.h>
@@ -31,13 +31,13 @@
#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch)) #define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
/* Compare strings S1 and S2, ignoring case, returning less than, equal to or /* Compare the character strings S1 and S2, ignoring case, returning less than,
greater than zero if S1 is lexicographically less than, equal to or greater equal to or greater than zero if S1 is lexicographically less than, equal to
than S2. or greater than S2.
Note: This function may, in multibyte locales, return 0 for strings of Note: This function may, in multibyte locales, return 0 for strings of
different lengths! */ different lengths! */
int int
strcasecmp (const char *s1, const char *s2) mbscasecmp (const char *s1, const char *s2)
{ {
if (s1 == s2) if (s1 == s2)
return 0; return 0;
+3 -16
View File
@@ -1,5 +1,5 @@
/* Determine the number of screen columns needed for a string. /* Determine the number of screen columns needed for a string.
Copyright (C) 2000-2006 Free Software Foundation, Inc. Copyright (C) 2000-2007 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
@@ -31,26 +31,13 @@
#include <ctype.h> #include <ctype.h>
/* Get mbstate_t, mbrtowc(), mbsinit(). */ /* Get mbstate_t, mbrtowc(), mbsinit(). */
#if HAVE_WCHAR_H #include <wchar.h>
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
<wchar.h>.
BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
<wchar.h>. */
# include <stdio.h>
# include <time.h>
# include <wchar.h>
#endif
/* Get wcwidth(). */ /* Get wcwidth(). */
#include "wcwidth.h" #include "wcwidth.h"
/* Get iswcntrl(). */ /* Get iswcntrl(). */
#if HAVE_WCTYPE_H #include <wctype.h>
# include <wctype.h>
#endif
#if !defined iswcntrl && !HAVE_ISWCNTRL
# define iswcntrl(wc) (((wc) & ~0x1f) == 0 || (wc) == 0x7f)
#endif
#ifndef mbsinit #ifndef mbsinit
# if !HAVE_MBSINIT # if !HAVE_MBSINIT
+3 -3
View File
@@ -1,5 +1,5 @@
/* Determine the number of screen columns needed for a string. /* Determine the number of screen columns needed for a string.
Copyright (C) 2000-2004 Free Software Foundation, Inc. Copyright (C) 2000-2004, 2007 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
@@ -30,7 +30,7 @@
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@@ -56,6 +56,6 @@ extern int mbswidth (const char *string, int flags);
extern int mbsnwidth (const char *buf, size_t nbytes, int flags); extern int mbsnwidth (const char *buf, size_t nbytes, int flags);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
+20 -1
View File
@@ -1,5 +1,5 @@
/* Iterating through multibyte strings: macros for multi-byte encodings. /* Iterating through multibyte strings: macros for multi-byte encodings.
Copyright (C) 2001, 2005 Free Software Foundation, Inc. Copyright (C) 2001, 2005, 2007 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
@@ -73,6 +73,9 @@
mbui_reloc (iter, ptrdiff) mbui_reloc (iter, ptrdiff)
relocates iterator when the string is moved by ptrdiff bytes. relocates iterator when the string is moved by ptrdiff bytes.
mbui_copy (&destiter, &srciter)
copies srciter to destiter.
Here are the function prototypes of the macros. Here are the function prototypes of the macros.
extern void mbui_init (mbui_iterator_t iter, const char *startptr); extern void mbui_init (mbui_iterator_t iter, const char *startptr);
@@ -81,6 +84,7 @@
extern mbchar_t mbui_cur (mbui_iterator_t iter); extern mbchar_t mbui_cur (mbui_iterator_t iter);
extern const char * mbui_cur_ptr (mbui_iterator_t iter); extern const char * mbui_cur_ptr (mbui_iterator_t iter);
extern void mbui_reloc (mbui_iterator_t iter, ptrdiff_t ptrdiff); extern void mbui_reloc (mbui_iterator_t iter, ptrdiff_t ptrdiff);
extern void mbui_copy (mbui_iterator_t *new, const mbui_iterator_t *old);
*/ */
#ifndef _MBUITER_H #ifndef _MBUITER_H
@@ -89,6 +93,7 @@
#include <assert.h> #include <assert.h>
#include <stdbool.h> #include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h>
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
<wchar.h>. <wchar.h>.
@@ -182,6 +187,17 @@ mbuiter_multi_reloc (struct mbuiter_multi *iter, ptrdiff_t ptrdiff)
iter->cur.ptr += ptrdiff; iter->cur.ptr += ptrdiff;
} }
static inline void
mbuiter_multi_copy (struct mbuiter_multi *new_iter, const struct mbuiter_multi *old_iter)
{
if ((new_iter->in_shift = old_iter->in_shift))
memcpy (&new_iter->state, &old_iter->state, sizeof (mbstate_t));
else
memset (&new_iter->state, 0, sizeof (mbstate_t));
new_iter->next_done = old_iter->next_done;
mb_copy (&new_iter->cur, &old_iter->cur);
}
/* Iteration macros. */ /* Iteration macros. */
typedef struct mbuiter_multi mbui_iterator_t; typedef struct mbuiter_multi mbui_iterator_t;
#define mbui_init(iter, startptr) \ #define mbui_init(iter, startptr) \
@@ -200,4 +216,7 @@ typedef struct mbuiter_multi mbui_iterator_t;
/* Relocation. */ /* Relocation. */
#define mbui_reloc(iter, ptrdiff) mbuiter_multi_reloc (&iter, ptrdiff) #define mbui_reloc(iter, ptrdiff) mbuiter_multi_reloc (&iter, ptrdiff)
/* Copying an iterator. */
#define mbui_copy mbuiter_multi_copy
#endif /* _MBUITER_H */ #endif /* _MBUITER_H */
+3 -3
View File
@@ -1,5 +1,5 @@
/* Copy memory area and return pointer after last written byte. /* Copy memory area and return pointer after last written byte.
Copyright (C) 2003 Free Software Foundation, Inc. Copyright (C) 2003, 2007 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
@@ -15,9 +15,9 @@
along with this program; if not, write to the Free Software Foundation, along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
/* Specification. */ #include <config.h>
#include "mempcpy.h"
/* Specification. */
#include <string.h> #include <string.h>
/* Copy N bytes of SRC to DEST, return pointer to bytes after the /* Copy N bytes of SRC to DEST, return pointer to bytes after the
+2 -3
View File
@@ -1,7 +1,7 @@
/* memrchr -- find the last occurrence of a byte in a memory block /* memrchr -- find the last occurrence of a byte in a memory block
Copyright (C) 1991, 1993, 1996, 1997, 1999, 2000, 2003, 2004, 2005, Copyright (C) 1991, 1993, 1996, 1997, 1999, 2000, 2003, 2004, 2005,
2006 Free Software Foundation, Inc. 2006, 2007 Free Software Foundation, Inc.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se), Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
with help from Dan Sahlin (dan@sics.se) and with help from Dan Sahlin (dan@sics.se) and
@@ -24,14 +24,13 @@
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#if defined _LIBC #if defined _LIBC
# include <string.h>
# include <memcopy.h> # include <memcopy.h>
#else #else
# include <config.h> # include <config.h>
# include "memrchr.h"
# define reg_char char # define reg_char char
#endif #endif
#include <string.h>
#include <limits.h> #include <limits.h>
#undef __memrchr #undef __memrchr
-27
View File
@@ -1,27 +0,0 @@
/* memrchr -- Find the last occurrence of a byte in a memory block.
Copyright (C) 2005 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#if HAVE_DECL_MEMRCHR
# include <string.h>
#else
# include <stddef.h>
/* Search backwards through a block for a byte (specified as an int). */
void *memrchr (void const *, int, size_t);
#endif
+14 -9
View File
@@ -1,7 +1,7 @@
/* mkdir-p.c -- Ensure that a directory and its parents exist. /* mkdir-p.c -- Ensure that a directory and its parents exist.
Copyright (C) 1990, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006 Copyright (C) 1990, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005,
Free Software Foundation, Inc. 2006, 2007 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
@@ -115,19 +115,24 @@ make_dir_parents (char *dir,
if (0 <= prefix_len) if (0 <= prefix_len)
{ {
/* If the ownership will change, create the directory with /* If the ownership might change, or if the directory will be
writeable to other users and its special mode bits may
change after the directory is created, create it with
more restrictive permissions at first, so unauthorized more restrictive permissions at first, so unauthorized
users cannot nip in before the directory is ready. */ users cannot nip in before the directory is ready. */
bool keep_owner = owner == (uid_t) -1 && group == (gid_t) -1;
bool keep_special_mode_bits =
((mode_bits & (S_ISUID | S_ISGID)) | (mode & S_ISVTX)) == 0;
mode_t mkdir_mode = mode; mode_t mkdir_mode = mode;
if (! (owner == (uid_t) -1 && group == (gid_t) -1)) if (! keep_owner)
mkdir_mode &= S_IRWXU; mkdir_mode &= ~ (S_IRWXG | S_IRWXO);
else if (! keep_special_mode_bits)
mkdir_mode &= ~ (S_IWGRP | S_IWOTH);
if (mkdir (dir + prefix_len, mkdir_mode) == 0) if (mkdir (dir + prefix_len, mkdir_mode) == 0)
{ {
announce (dir, options); announce (dir, options);
preserve_existing = preserve_existing = keep_owner & keep_special_mode_bits;
(owner == (uid_t) -1 && group == (gid_t) -1
&& ! ((mode_bits & (S_ISUID | S_ISGID)) | (mode & S_ISVTX)));
savewd_chdir_options |= savewd_chdir_options |=
(SAVEWD_CHDIR_NOFOLLOW (SAVEWD_CHDIR_NOFOLLOW
| (mode & S_IRUSR ? SAVEWD_CHDIR_READABLE : 0)); | (mode & S_IRUSR ? SAVEWD_CHDIR_READABLE : 0));
@@ -188,7 +193,7 @@ make_dir_parents (char *dir,
(! chdir_failed_unexpectedly ? errno (! chdir_failed_unexpectedly ? errno
: ! chdir_ok && (mode & S_IXUSR) ? chdir_errno : ! chdir_ok && (mode & S_IXUSR) ? chdir_errno
: open_result[1]), : open_result[1]),
_(owner == (uid_t) -1 && group == (gid_t) -1 _(keep_owner
? "cannot change permissions of %s" ? "cannot change permissions of %s"
: "cannot change owner and permissions of %s"), : "cannot change owner and permissions of %s"),
quote (dir)); quote (dir));
+2 -2
View File
@@ -1,6 +1,6 @@
/* Invoke mkstemp, but avoid some glitches. /* Invoke mkstemp, but avoid some glitches.
Copyright (C) 2005, 2006 Free Software Foundation, Inc. Copyright (C) 2005, 2006, 2007 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
@@ -22,7 +22,7 @@
#include "stdlib-safer.h" #include "stdlib-safer.h"
#include "mkstemp.h" #include <stdlib.h>
#include "unistd-safer.h" #include "unistd-safer.h"
/* Like mkstemp, but do not return STDIN_FILENO, STDOUT_FILENO, or /* Like mkstemp, but do not return STDIN_FILENO, STDOUT_FILENO, or
+6 -3
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1998, 1999, 2001, 2005, 2006 Free Software Foundation, Inc. /* Copyright (C) 1998, 1999, 2001, 2005, 2006, 2007 Free Software Foundation, Inc.
This file is derived from the one in the GNU C Library. This file is derived from the one in the GNU C Library.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
@@ -17,14 +17,17 @@
#if !_LIBC #if !_LIBC
# include <config.h> # include <config.h>
# include "mkstemp.h" #endif
#include <stdlib.h>
#if !_LIBC
# include "tempname.h" # include "tempname.h"
# define __gen_tempname gen_tempname # define __gen_tempname gen_tempname
# define __GT_FILE GT_FILE # define __GT_FILE GT_FILE
#endif #endif
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#ifndef __GT_FILE #ifndef __GT_FILE
# define __GT_FILE 0 # define __GT_FILE 0
-31
View File
@@ -1,31 +0,0 @@
/* Create a unique temporary file.
Copyright (C) 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
/* written by Jim Meyering */
#include <stdlib.h>
#include <unistd.h>
#ifdef __MKSTEMP_PREFIX
# define _GL_CONCAT(x, y) x ## y
# define _GL_XCONCAT(x, y) _GL_CONCAT (x, y)
# define __MKSTEMP_ID(y) _GL_XCONCAT (__MKSTEMP_PREFIX, y)
# undef mkstemp
# define mkstemp __MKSTEMP_ID (mkstemp)
int mkstemp (char *);
#endif
+3 -7
View File
@@ -1,7 +1,5 @@
/* -*- buffer-read-only: t -*- vi: set ro: */
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
/* Convert a `struct tm' to a time_t value. /* Convert a `struct tm' to a time_t value.
Copyright (C) 1993-1999, 2002-2005, 2006 Free Software Foundation, Inc. Copyright (C) 1993-1999, 2002-2005, 2006, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Paul Eggert <eggert@twinsun.com>. Contributed by Paul Eggert <eggert@twinsun.com>.
@@ -23,7 +21,7 @@
mktime. */ mktime. */
/* #define DEBUG 1 */ /* #define DEBUG 1 */
#if 1 #ifndef _LIBC
# include <config.h> # include <config.h>
#endif #endif
@@ -34,7 +32,6 @@
# define LEAP_SECONDS_POSSIBLE 1 # define LEAP_SECONDS_POSSIBLE 1
#endif #endif
#include <sys/types.h> /* Some systems define `time_t' here. */
#include <time.h> #include <time.h>
#include <limits.h> #include <limits.h>
@@ -143,11 +140,10 @@ const unsigned short int __mon_yday[2][13] =
#ifndef _LIBC #ifndef _LIBC
/* Portable standalone applications should supply a "time_r.h" that /* Portable standalone applications should supply a <time.h> that
declares a POSIX-compliant localtime_r, for the benefit of older declares a POSIX-compliant localtime_r, for the benefit of older
implementations that lack localtime_r or have a nonstandard one. implementations that lack localtime_r or have a nonstandard one.
See the gnulib time_r module for one way to implement this. */ See the gnulib time_r module for one way to implement this. */
# include "time_r.h"
# undef __localtime_r # undef __localtime_r
# define __localtime_r localtime_r # define __localtime_r localtime_r
# define __mktime_internal mktime_internal # define __mktime_internal mktime_internal
+11 -5
View File
@@ -1,7 +1,7 @@
/* mountlist.c -- return a list of mounted file systems /* mountlist.c -- return a list of mounted file systems
Copyright (C) 1991, 1992, 1997, 1998, 1999, 2000, 2001, 2002, 2003, Copyright (C) 1991, 1992, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
2004, 2005, 2006 Free Software Foundation, Inc. 2004, 2005, 2006, 2007 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
@@ -28,10 +28,6 @@
#include "xalloc.h" #include "xalloc.h"
#ifndef strstr
char *strstr ();
#endif
#include <errno.h> #include <errno.h>
#include <fcntl.h> #include <fcntl.h>
@@ -143,6 +139,16 @@ char *strstr ();
# define SIZE_MAX ((size_t) -1) # define SIZE_MAX ((size_t) -1)
#endif #endif
/* The results of open() in this file are not used with fchdir,
therefore save some unnecessary work in fchdir.c. */
#undef open
#undef close
/* The results of opendir() in this file are not used with dirfd and fchdir,
therefore save some unnecessary work in fchdir.c. */
#undef opendir
#undef closedir
#ifndef ME_DUMMY #ifndef ME_DUMMY
# define ME_DUMMY(Fs_name, Fs_type) \ # define ME_DUMMY(Fs_name, Fs_type) \
(strcmp (Fs_type, "autofs") == 0 \ (strcmp (Fs_type, "autofs") == 0 \
+157
View File
@@ -0,0 +1,157 @@
/* Sort a vector of pointers to data.
Copyright (C) 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
/* Written by Paul Eggert. */
#include <config.h>
#include "mpsort.h"
#include <string.h>
/* The type of qsort-style comparison functions. */
typedef int (*comparison_function) (void const *, void const *);
static void mpsort_with_tmp (void const **restrict, size_t,
void const **restrict, comparison_function);
/* Sort a vector BASE containing N pointers, placing the sorted array
into TMP. Compare pointers with CMP. N must be at least 2. */
static void
mpsort_into_tmp (void const **restrict base, size_t n,
void const **restrict tmp,
comparison_function cmp)
{
size_t n1 = n / 2;
size_t n2 = n - n1;
size_t a = 0;
size_t alim = n1;
size_t b = n1;
size_t blim = n;
void const *ba;
void const *bb;
mpsort_with_tmp (base + n1, n2, tmp, cmp);
mpsort_with_tmp (base, n1, tmp, cmp);
ba = base[a];
bb = base[b];
for (;;)
if (cmp (ba, bb) <= 0)
{
*tmp++ = ba;
a++;
if (a == alim)
{
a = b;
alim = blim;
break;
}
ba = base[a];
}
else
{
*tmp++ = bb;
b++;
if (b == blim)
break;
bb = base[b];
}
memcpy (tmp, base + a, (alim - a) * sizeof *base);
}
/* Sort a vector BASE containing N pointers, in place. Use TMP
(containing N / 2 pointers) for temporary storage. Compare
pointers with CMP. */
static void
mpsort_with_tmp (void const **restrict base, size_t n,
void const **restrict tmp,
comparison_function cmp)
{
if (n <= 2)
{
if (n == 2)
{
void const *p0 = base[0];
void const *p1 = base[1];
if (! (cmp (p0, p1) <= 0))
{
base[0] = p1;
base[1] = p0;
}
}
}
else
{
size_t n1 = n / 2;
size_t n2 = n - n1;
size_t i;
size_t t = 0;
size_t tlim = n1;
size_t b = n1;
size_t blim = n;
void const *bb;
void const *tt;
mpsort_with_tmp (base + n1, n2, tmp, cmp);
if (n1 < 2)
tmp[0] = base[0];
else
mpsort_into_tmp (base, n1, tmp, cmp);
tt = tmp[t];
bb = base[b];
for (i = 0; ; )
if (cmp (tt, bb) <= 0)
{
base[i++] = tt;
t++;
if (t == tlim)
break;
tt = tmp[t];
}
else
{
base[i++] = bb;
b++;
if (b == blim)
{
memcpy (base + i, tmp + t, (tlim - t) * sizeof *base);
break;
}
bb = base[b];
}
}
}
/* Sort a vector BASE containing N pointers, in place. BASE must
contain enough storage to hold N + N / 2 vectors; the trailing
vectors are used for temporaries. Compare pointers with CMP. */
void
mpsort (void const **base, size_t n, comparison_function cmp)
{
mpsort_with_tmp (base, n, base + n, cmp);
}
+2
View File
@@ -0,0 +1,2 @@
#include <stddef.h>
void mpsort (void const **, size_t, int (*) (void const *, void const *));
+7 -17
View File
@@ -1,7 +1,7 @@
/* Provide a replacement for the POSIX nanosleep function. /* Provide a replacement for the POSIX nanosleep function.
Copyright (C) 1999, 2000, 2002, 2004, 2005, 2006 Free Software Copyright (C) 1999, 2000, 2002, 2004, 2005, 2006, 2007 Free
Foundation, Inc. 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
@@ -21,9 +21,9 @@
#include <config.h> #include <config.h>
/* Undefine nanosleep here so any prototype is not redefined to be a #include <time.h>
prototype for rpl_nanosleep. (they'd conflict e.g., on alpha-dec-osf3.2) */
#undef nanosleep #include "timespec.h"
#include <stdbool.h> #include <stdbool.h>
#include <stdio.h> #include <stdio.h>
@@ -33,22 +33,12 @@
#endif #endif
#include <signal.h> #include <signal.h>
#if TIME_WITH_SYS_TIME #include <sys/time.h>
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#include <errno.h> #include <errno.h>
#include <unistd.h> #include <unistd.h>
#include "timespec.h" #undef nanosleep
enum { BILLION = 1000 * 1000 * 1000 }; enum { BILLION = 1000 * 1000 * 1000 };
@@ -1,5 +1,5 @@
/* Searching in a string. /* Substitute for <netinet/in.h>.
Copyright (C) 2001-2002 Free Software Foundation, Inc. Copyright (C) 2007 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
@@ -15,14 +15,23 @@
along with this program; if not, write to the Free Software Foundation, along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#if HAVE_STRPBRK #ifndef _GL_NETINET_IN_H
#define _GL_NETINET_IN_H
/* Get strpbrk() declaration. */ #if @HAVE_NETINET_IN_H@
#include <string.h>
/* On many platforms, <netinet/in.h> assumes prior inclusion of
<sys/types.h>. */
# include <sys/types.h>
# include @ABSOLUTE_NETINET_IN_H@
#else #else
/* Find the first occurrence in S of any character in ACCEPT. */ /* A platform that lacks <netinet/in.h>. */
extern char *strpbrk (const char *s, const char *accept);
# include <sys/socket.h>
#endif #endif
#endif /* _GL_NETINET_IN_H */
+5
View File
@@ -34,6 +34,11 @@
#include "same-inode.h" #include "same-inode.h"
#include "xalloc.h" #include "xalloc.h"
/* The results of open() in this file are not used with fchdir,
therefore save some unnecessary work in fchdir.c. */
#undef open
#undef close
#define PROC_SELF_FD_FORMAT "/proc/self/fd/%d/%s" #define PROC_SELF_FD_FORMAT "/proc/self/fd/%d/%s"
#define PROC_SELF_FD_NAME_SIZE_BOUND(len) \ #define PROC_SELF_FD_NAME_SIZE_BOUND(len) \
-16
View File
@@ -268,19 +268,3 @@ fdopendir (int fd)
#undef AT_FUNC_USE_F1_COND #undef AT_FUNC_USE_F1_COND
#undef AT_FUNC_POST_FILE_PARAM_DECLS #undef AT_FUNC_POST_FILE_PARAM_DECLS
#undef AT_FUNC_POST_FILE_ARGS #undef AT_FUNC_POST_FILE_ARGS
/* Replacement for Solaris' function by the same name.
Invoke chown or lchown on file, FILE, using OWNER and GROUP, in the
directory open on descriptor FD. If FLAG is AT_SYMLINK_NOFOLLOW, then
use lchown, otherwise, use chown. If possible, do it without changing
the working directory. Otherwise, resort to using save_cwd/fchdir,
then mkdir/restore_cwd. If either the save_cwd or the restore_cwd
fails, then give a diagnostic and exit nonzero. */
#define AT_FUNC_NAME fchownat
#define AT_FUNC_F1 lchown
#define AT_FUNC_F2 chown
#define AT_FUNC_USE_F1_COND flag == AT_SYMLINK_NOFOLLOW
#define AT_FUNC_POST_FILE_PARAM_DECLS , uid_t owner, gid_t group, int flag
#define AT_FUNC_POST_FILE_ARGS , owner, group
#include "at-func.c"
+2 -10
View File
@@ -1,7 +1,7 @@
/* Parse dates for touch and date. /* Parse dates for touch and date.
Copyright (C) 1989, 1990, 1991, 1998, 2000, 2001, 2002, 2003, 2004, Copyright (C) 1989, 1990, 1991, 1998, 2000, 2001, 2002, 2003, 2004,
2005, 2006 Free Software Foundation Inc. 2005, 2006, 2007 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
@@ -22,21 +22,13 @@
#include <config.h> #include <config.h>
#include <stdbool.h> #include "posixtm.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <sys/types.h> #include <sys/types.h>
#include <string.h> #include <string.h>
#ifdef TM_IN_SYS_TIME
# include <sys/time.h>
#else
# include <time.h>
#endif
#include "posixtm.h"
#if USE_UNLOCKED_IO #if USE_UNLOCKED_IO
# include "unlocked-io.h" # include "unlocked-io.h"
#endif #endif
+4 -1
View File
@@ -1,6 +1,6 @@
/* Parse dates for touch and date. /* Parse dates for touch and date.
Copyright (C) 1998, 2003, 2005 Free Software Foundation Inc. Copyright (C) 1998, 2003, 2005, 2007 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
@@ -22,6 +22,9 @@
#ifndef POSIXTM_H_ #ifndef POSIXTM_H_
# define POSIXTM_H_ # define POSIXTM_H_
# include <stdbool.h>
# include <time.h>
/* POSIX Date Syntax flags. */ /* POSIX Date Syntax flags. */
# define PDS_LEADING_YEAR 1 # define PDS_LEADING_YEAR 1
# define PDS_TRAILING_YEAR 2 # define PDS_TRAILING_YEAR 2
+6 -6
View File
@@ -1,5 +1,5 @@
/* Decomposed printf argument list. /* Decomposed printf argument list.
Copyright (C) 1999, 2002-2003, 2005-2006 Free Software Foundation, Inc. Copyright (C) 1999, 2002-2003, 2005-2007 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
@@ -56,7 +56,7 @@ printf_fetchargs (va_list args, arguments *a)
case TYPE_ULONGINT: case TYPE_ULONGINT:
ap->a.a_ulongint = va_arg (args, unsigned long int); ap->a.a_ulongint = va_arg (args, unsigned long int);
break; break;
#ifdef HAVE_LONG_LONG_INT #if HAVE_LONG_LONG_INT
case TYPE_LONGLONGINT: case TYPE_LONGLONGINT:
ap->a.a_longlongint = va_arg (args, long long int); ap->a.a_longlongint = va_arg (args, long long int);
break; break;
@@ -67,7 +67,7 @@ printf_fetchargs (va_list args, arguments *a)
case TYPE_DOUBLE: case TYPE_DOUBLE:
ap->a.a_double = va_arg (args, double); ap->a.a_double = va_arg (args, double);
break; break;
#ifdef HAVE_LONG_DOUBLE #if HAVE_LONG_DOUBLE
case TYPE_LONGDOUBLE: case TYPE_LONGDOUBLE:
ap->a.a_longdouble = va_arg (args, long double); ap->a.a_longdouble = va_arg (args, long double);
break; break;
@@ -75,7 +75,7 @@ printf_fetchargs (va_list args, arguments *a)
case TYPE_CHAR: case TYPE_CHAR:
ap->a.a_char = va_arg (args, int); ap->a.a_char = va_arg (args, int);
break; break;
#ifdef HAVE_WINT_T #if HAVE_WINT_T
case TYPE_WIDE_CHAR: case TYPE_WIDE_CHAR:
/* Although ISO C 99 7.24.1.(2) says that wint_t is "unchanged by /* Although ISO C 99 7.24.1.(2) says that wint_t is "unchanged by
default argument promotions", this is not the case in mingw32, default argument promotions", this is not the case in mingw32,
@@ -94,7 +94,7 @@ printf_fetchargs (va_list args, arguments *a)
if (ap->a.a_string == NULL) if (ap->a.a_string == NULL)
ap->a.a_string = "(NULL)"; ap->a.a_string = "(NULL)";
break; break;
#ifdef HAVE_WCHAR_T #if HAVE_WCHAR_T
case TYPE_WIDE_STRING: case TYPE_WIDE_STRING:
ap->a.a_wide_string = va_arg (args, const wchar_t *); ap->a.a_wide_string = va_arg (args, const wchar_t *);
/* A null pointer is an invalid argument for "%ls", but in practice /* A null pointer is an invalid argument for "%ls", but in practice
@@ -128,7 +128,7 @@ printf_fetchargs (va_list args, arguments *a)
case TYPE_COUNT_LONGINT_POINTER: case TYPE_COUNT_LONGINT_POINTER:
ap->a.a_count_longint_pointer = va_arg (args, long int *); ap->a.a_count_longint_pointer = va_arg (args, long int *);
break; break;
#ifdef HAVE_LONG_LONG_INT #if HAVE_LONG_LONG_INT
case TYPE_COUNT_LONGLONGINT_POINTER: case TYPE_COUNT_LONGLONGINT_POINTER:
ap->a.a_count_longlongint_pointer = va_arg (args, long long int *); ap->a.a_count_longlongint_pointer = va_arg (args, long long int *);
break; break;

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