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:
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,6 @@
|
||||
# Make coreutils. -*-Makefile-*-
|
||||
|
||||
# Copyright (C) 1990, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
||||
# 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1990, 1993-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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# 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
|
||||
# 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
|
||||
# files -- otherwise, you'd need to have the upcoming version number
|
||||
# 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
@@ -16,8 +16,7 @@
|
||||
|
||||
# Make coreutils. -*-Makefile-*-
|
||||
|
||||
# Copyright (C) 1990, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
||||
# 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1990, 1993-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
|
||||
@@ -83,15 +82,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
|
||||
$(top_srcdir)/m4/euidaccess-stat.m4 \
|
||||
$(top_srcdir)/m4/euidaccess.m4 $(top_srcdir)/m4/exclude.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/fd-reopen.m4 $(top_srcdir)/m4/file-type.m4 \
|
||||
$(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/filemode.m4 \
|
||||
$(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/flexmember.m4 \
|
||||
$(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \
|
||||
$(top_srcdir)/m4/fprintftime.m4 $(top_srcdir)/m4/free.m4 \
|
||||
$(top_srcdir)/m4/fstypename.m4 $(top_srcdir)/m4/fsusage.m4 \
|
||||
$(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/fts.m4 \
|
||||
$(top_srcdir)/m4/getaddrinfo.m4 \
|
||||
$(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fcntl-safer.m4 \
|
||||
$(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fd-reopen.m4 \
|
||||
$(top_srcdir)/m4/file-type.m4 $(top_srcdir)/m4/fileblocks.m4 \
|
||||
$(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/filenamecat.m4 \
|
||||
$(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/fnmatch.m4 \
|
||||
$(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fprintftime.m4 \
|
||||
$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/fstypename.m4 \
|
||||
$(top_srcdir)/m4/fsusage.m4 $(top_srcdir)/m4/ftruncate.m4 \
|
||||
$(top_srcdir)/m4/fts.m4 $(top_srcdir)/m4/getaddrinfo.m4 \
|
||||
$(top_srcdir)/m4/getcwd-abort-bug.m4 \
|
||||
$(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \
|
||||
$(top_srcdir)/m4/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \
|
||||
@@ -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/getugroups.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/group-member.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/ls-mntd-fs.m4 $(top_srcdir)/m4/lstat.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/mbswidth.m4 $(top_srcdir)/m4/md5.m4 \
|
||||
$(top_srcdir)/m4/memcasecmp.m4 $(top_srcdir)/m4/memchr.m4 \
|
||||
$(top_srcdir)/m4/memcmp.m4 $(top_srcdir)/m4/memcoll.m4 \
|
||||
$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
|
||||
$(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
|
||||
$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/memxfrm.m4 \
|
||||
$(top_srcdir)/m4/mkancesdirs.m4 $(top_srcdir)/m4/mkdir-p.m4 \
|
||||
$(top_srcdir)/m4/mkdir-slash.m4 $(top_srcdir)/m4/mkstemp.m4 \
|
||||
$(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \
|
||||
$(top_srcdir)/m4/mountlist.m4 $(top_srcdir)/m4/nanosleep.m4 \
|
||||
$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbscasecmp.m4 \
|
||||
$(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbswidth.m4 \
|
||||
$(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memcasecmp.m4 \
|
||||
$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
|
||||
$(top_srcdir)/m4/memcoll.m4 $(top_srcdir)/m4/memcpy.m4 \
|
||||
$(top_srcdir)/m4/memmove.m4 $(top_srcdir)/m4/mempcpy.m4 \
|
||||
$(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/memset.m4 \
|
||||
$(top_srcdir)/m4/memxfrm.m4 $(top_srcdir)/m4/mkancesdirs.m4 \
|
||||
$(top_srcdir)/m4/mkdir-p.m4 $(top_srcdir)/m4/mkdir-slash.m4 \
|
||||
$(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.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/openat.m4 $(top_srcdir)/m4/pathmax.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/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \
|
||||
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
|
||||
$(top_srcdir)/m4/stdio-safer.m4 \
|
||||
$(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stpcpy.m4 \
|
||||
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strcspn.m4 \
|
||||
$(top_srcdir)/m4/stdio-safer.m4 $(top_srcdir)/m4/stdio_h.m4 \
|
||||
$(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stdlib_h.m4 \
|
||||
$(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcspn.m4 \
|
||||
$(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strftime.m4 \
|
||||
$(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
|
||||
$(top_srcdir)/m4/strnumcmp.m4 $(top_srcdir)/m4/strpbrk.m4 \
|
||||
$(top_srcdir)/m4/strtod.m4 $(top_srcdir)/m4/strtoimax.m4 \
|
||||
$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \
|
||||
$(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
|
||||
$(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/strverscmp.m4 \
|
||||
$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
|
||||
$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strnumcmp.m4 \
|
||||
$(top_srcdir)/m4/strpbrk.m4 $(top_srcdir)/m4/strtod.m4 \
|
||||
$(top_srcdir)/m4/strtoimax.m4 $(top_srcdir)/m4/strtol.m4 \
|
||||
$(top_srcdir)/m4/strtoll.m4 $(top_srcdir)/m4/strtoul.m4 \
|
||||
$(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
|
||||
$(top_srcdir)/m4/strverscmp.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/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.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/utimes-null.m4 $(top_srcdir)/m4/utimes.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/xfts.m4 $(top_srcdir)/m4/xgetcwd.m4 \
|
||||
$(top_srcdir)/m4/xnanosleep.m4 $(top_srcdir)/m4/xreadlink.m4 \
|
||||
$(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtod.m4 \
|
||||
$(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/m4/yesno.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/xnanosleep.m4 $(top_srcdir)/m4/xstrndup.m4 \
|
||||
$(top_srcdir)/m4/xstrtod.m4 $(top_srcdir)/m4/xstrtol.m4 \
|
||||
$(top_srcdir)/m4/yesno.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
@@ -221,10 +224,21 @@ DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ABSOLUTE_DIRENT_H = @ABSOLUTE_DIRENT_H@
|
||||
ABSOLUTE_FCNTL_H = @ABSOLUTE_FCNTL_H@
|
||||
ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
|
||||
ABSOLUTE_NETINET_IN_H = @ABSOLUTE_NETINET_IN_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_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@
|
||||
ALLOCA = @ALLOCA@
|
||||
ALLOCA_H = @ALLOCA_H@
|
||||
@@ -249,6 +263,7 @@ DEFAULT_POSIX2_VERSION = @DEFAULT_POSIX2_VERSION@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DF_PROG = @DF_PROG@
|
||||
DIRENT_H = @DIRENT_H@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
@@ -262,23 +277,103 @@ GETOPT_H = @GETOPT_H@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
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@
|
||||
GREP = @GREP@
|
||||
HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
|
||||
HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
|
||||
HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
|
||||
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
|
||||
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
|
||||
HAVE_DECL_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_STRTOK_R = @HAVE_DECL_STRTOK_R@
|
||||
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_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_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
|
||||
HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
|
||||
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_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_UNISTD_H = @HAVE_UNISTD_H@
|
||||
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@
|
||||
HELP2MAN = @HELP2MAN@
|
||||
INSTALL = @INSTALL@
|
||||
@@ -298,6 +393,7 @@ LIBINTL = @LIBINTL@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIB_ACL = @LIB_ACL@
|
||||
LIB_ACL_TRIVIAL = @LIB_ACL_TRIVIAL@
|
||||
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
|
||||
LIB_CRYPT = @LIB_CRYPT@
|
||||
LIB_EACCESS = @LIB_EACCESS@
|
||||
@@ -332,6 +428,23 @@ PRIPTR_PREFIX = @PRIPTR_PREFIX@
|
||||
PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
|
||||
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
|
||||
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@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
@@ -342,11 +455,15 @@ STDINT_H = @STDINT_H@
|
||||
STRIP = @STRIP@
|
||||
SYS_SOCKET_H = @SYS_SOCKET_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@
|
||||
UNISTD_H = @UNISTD_H@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
WCHAR_H = @WCHAR_H@
|
||||
WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
|
||||
WCTYPE_H = @WCTYPE_H@
|
||||
WINT_T_SUFFIX = @WINT_T_SUFFIX@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
@@ -455,15 +572,15 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --gnits '; \
|
||||
cd $(srcdir) && $(AUTOMAKE) --gnits \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
|
||||
cd $(srcdir) && $(AUTOMAKE) --gnu \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits Makefile'; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnits Makefile
|
||||
$(AUTOMAKE) --gnu Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
@@ -615,12 +732,6 @@ distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@case `sed 15q $(srcdir)/NEWS` in \
|
||||
*"$(VERSION)"*) : ;; \
|
||||
*) \
|
||||
echo "NEWS not updated; not releasing" 1>&2; \
|
||||
exit 1;; \
|
||||
esac
|
||||
$(am__remove_distdir)
|
||||
test -d $(distdir) || mkdir $(distdir)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# This Makefile fragment is shared between the coreutils,
|
||||
# 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
|
||||
## 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
|
||||
GIT = git
|
||||
VC = $(GIT)
|
||||
VC-tag = git-tag -s -m '$(VERSION)'
|
||||
|
||||
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
|
||||
# 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.
|
||||
# Run `changelog-check' last, as previous test may reveal problems requiring
|
||||
# new ChangeLog entries.
|
||||
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) \
|
||||
makefile_path_separator_check \
|
||||
makefile-check check-AUTHORS
|
||||
.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-rules := $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' $(ME))
|
||||
.PHONY: $(syntax-check-rules)
|
||||
|
||||
syntax-check: $(syntax-check-rules)
|
||||
syntax-check: $(local-check)
|
||||
# @grep -nE '# *include <(limits|std(def|arg|bool))\.h>' \
|
||||
# $$(find -type f -name '*.[chly]') && \
|
||||
# { echo '$(ME): found conditional include' 1>&2; \
|
||||
@@ -97,21 +98,17 @@ syntax-check: $(syntax-check-rules)
|
||||
# FIXME: don't allow `#include .strings\.h' anywhere
|
||||
|
||||
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; \
|
||||
exit 1; } || :
|
||||
|
||||
sc_cast_of_x_alloc_return_value:
|
||||
@grep -nE --exclude=$(srcdir)/lib/xalloc.h \
|
||||
--exclude=$(srcdir)/lib/regex.c \
|
||||
'\*\) *x(m|c|re)alloc\>' \
|
||||
$(srcdir)/{lib,src}/*.[chy] && \
|
||||
@grep -nE '\*\) *x(m|c|re)alloc\>' $$($(CVS_LIST_EXCEPT)) && \
|
||||
{ echo '$(ME): don'\''t cast x*alloc return value' 1>&2; \
|
||||
exit 1; } || :
|
||||
|
||||
sc_cast_of_alloca_return_value:
|
||||
@grep -nE '\*\) *alloca\>' \
|
||||
$(srcdir)/src/*.[chy] && \
|
||||
@grep -nE '\*\) *alloca\>' $$($(CVS_LIST_EXCEPT)) && \
|
||||
{ echo '$(ME): don'\''t cast alloca return value' 1>&2; \
|
||||
exit 1; } || :
|
||||
|
||||
@@ -120,18 +117,18 @@ sc_space_tab:
|
||||
{ echo '$(ME): found SPACE-TAB sequence; remove the SPACE' \
|
||||
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.
|
||||
# Instead, use strto* functions.
|
||||
sc_prohibit_atoi_atof:
|
||||
@grep -nE '\<ato([filq]|ll)\>' $$($(CVS_LIST_EXCEPT)) && \
|
||||
{ echo '$(ME): do not use ato''f, ato''i, ato''l, ato''ll, or ato''q' \
|
||||
@grep -nE '\<([fs]?scanf|ato([filq]|ll))\>' $$($(CVS_LIST_EXCEPT)) && \
|
||||
{ echo '$(ME): do not use *scan''f, ato''f, ato''i, ato''l, ato''ll, or ato''q' \
|
||||
1>&2; exit 1; } || :
|
||||
|
||||
# Using EXIT_SUCCESS as the first argument to error is misleading,
|
||||
# since when that parameter is 0, error does not exit. Use `0' instead.
|
||||
sc_error_exit_success:
|
||||
@grep -nF 'error (EXIT_SUCCESS,' \
|
||||
@grep -nF 'error (EXIT_SUCCESS,' \
|
||||
$$(find -type f -name '*.[chly]') && \
|
||||
{ echo '$(ME): found error (EXIT_SUCCESS' 1>&2; \
|
||||
exit 1; } || :
|
||||
@@ -211,7 +208,9 @@ sc_prohibit_jm_in_m4:
|
||||
1>&2; exit 1; } || :
|
||||
|
||||
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' \
|
||||
$$($(CVS_LIST) tests) |sed s,tests,., |sort > $$t1; \
|
||||
sed -n 's, cd \([^ ]*\) .*MAKE..check TESTS=\(.*\),./\1/\2,p' \
|
||||
@@ -220,7 +219,8 @@ sc_root_tests:
|
||||
rm -f $$t1 $$t2; \
|
||||
test "$$diff" \
|
||||
&& { echo 'tests/Makefile.am: missing check-root action'>&2; \
|
||||
exit 1; } || :
|
||||
exit 1; } || :; \
|
||||
fi
|
||||
|
||||
headers_with_interesting_macro_defs = \
|
||||
exit.h \
|
||||
@@ -300,7 +300,7 @@ sc_trailing_blank:
|
||||
# Match lines like the following, but where there is only one space
|
||||
# between the options and the description:
|
||||
# -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:
|
||||
@grep -nE '^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \
|
||||
$$($(CVS_LIST_EXCEPT)) && \
|
||||
@@ -328,7 +328,7 @@ sc_useless_cpp_parens:
|
||||
patch-check:
|
||||
rm -rf src-c89 $@.1 $@.2
|
||||
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
|
||||
if test "$${REGEN_PATCH+set}" = set; then \
|
||||
diff -upr src src-c89 > new-diff || : ; fi
|
||||
@@ -338,8 +338,8 @@ patch-check:
|
||||
$(MAKE) -C src-c89 CFLAGS='-Wdeclaration-after-statement -Werror' \
|
||||
|| msg='compile failure with extra options'; \
|
||||
rm -rf src-c89 $@.1 $@.2; \
|
||||
test $$msg = ok && : || echo "$$msg" 1>&2; \
|
||||
test $$msg = ok
|
||||
test "$$msg" = ok && : || echo "$$msg" 1>&2; \
|
||||
test "$$msg" = ok
|
||||
|
||||
# Ensure that date's --help output stays in sync with the info
|
||||
# documentation for GNU strftime. The only exception is %N,
|
||||
@@ -367,22 +367,22 @@ makefile-check:
|
||||
&& { echo 'Makefile.maint: use $$(...), not @...@' 1>&2; exit 1; } || :
|
||||
|
||||
news-date-check: NEWS
|
||||
today=`date +%Y-%m-%d`; \
|
||||
if head NEWS | grep '^\*.* $(VERSION_REGEXP) ('$$today')' \
|
||||
>/dev/null; then \
|
||||
:; \
|
||||
else \
|
||||
echo "version or today's date is not in NEWS" 1>&2; \
|
||||
exit 1; \
|
||||
today=`date +%Y-%m-%d`; \
|
||||
if head NEWS | grep '^\*.* $(VERSION_REGEXP) ('$$today')' \
|
||||
>/dev/null; then \
|
||||
:; \
|
||||
else \
|
||||
echo "version or today's date is not in NEWS" 1>&2; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
changelog-check:
|
||||
if head ChangeLog | grep 'Version $(VERSION_REGEXP)\.$$' \
|
||||
>/dev/null; then \
|
||||
:; \
|
||||
else \
|
||||
echo "$(VERSION) not in ChangeLog" 1>&2; \
|
||||
exit 1; \
|
||||
if head ChangeLog | grep 'Version $(VERSION_REGEXP)\.$$' \
|
||||
>/dev/null; then \
|
||||
:; \
|
||||
else \
|
||||
echo "$(VERSION) not in ChangeLog" 1>&2; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
m4-check:
|
||||
@@ -400,6 +400,7 @@ po-check:
|
||||
for file in $$($(CVS_LIST_EXCEPT)) lib/*.[ch]; do \
|
||||
case $$file in \
|
||||
djgpp/* | man/*) continue;; \
|
||||
*/c99-to-c89.diff) continue;; \
|
||||
esac; \
|
||||
case $$file in \
|
||||
*.[ch]) \
|
||||
@@ -448,6 +449,7 @@ writable-files:
|
||||
test "$$fail" && exit 1 || :
|
||||
|
||||
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.
|
||||
copyright-check:
|
||||
@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; \
|
||||
exit 1; }; \
|
||||
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.
|
||||
# Abort early if this tag has already been used.
|
||||
vc-tag-check:
|
||||
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 \
|
||||
&& used=yes; \
|
||||
else \
|
||||
@@ -494,7 +502,7 @@ maintainer-distcheck:
|
||||
# checks fail. Also, make sure the NEWS file is up-to-date.
|
||||
# FIXME: use dist-hook/my-dist like distcheck-hook/my-distcheck.
|
||||
vc-dist: $(local-check) cvs-check maintainer-distcheck
|
||||
$(VC) tag $(this-vc-tag)
|
||||
$(VC-tag) $(this-vc-tag)
|
||||
$(MAKE) dist
|
||||
|
||||
# Use this to make sure we don't run these programs when building
|
||||
@@ -506,11 +514,11 @@ null_AM_MAKEFLAGS = \
|
||||
AUTOHEADER=false \
|
||||
MAKEINFO=false
|
||||
|
||||
# Detect format-string/arg-list mismatches that would normally be obscured
|
||||
# by the use of _(). The --disable-nls effectively defines away that macro,
|
||||
# and building with CFLAGS='-Wformat -Werror' causes any format warning to be
|
||||
# treated as a failure. Also, check for shadowing problems with -Wshadow,
|
||||
# and for pointer arithmetic problems with -Wpointer-arith.
|
||||
warn_cflags = -Dlint -O -Werror -Wall -Wformat -Wshadow -Wpointer-arith
|
||||
|
||||
# Use -Wformat -Werror to detect format-string/arg-list mismatches.
|
||||
# Also, check for shadowing problems with -Wshadow, and for pointer
|
||||
# arithmetic problems with -Wpointer-arith.
|
||||
# These CFLAGS are pretty strict. If you build this target, you probably
|
||||
# have to have a recent version of gcc and glibc headers.
|
||||
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
|
||||
cd $(t)/$(distdir) \
|
||||
&& ./configure --disable-nls \
|
||||
&& $(MAKE) CFLAGS='-Werror -Wall -Wformat -Wshadow -Wpointer-arith' \
|
||||
&& $(MAKE) CFLAGS='$(warn_cflags)' \
|
||||
AM_MAKEFLAGS='$(null_AM_MAKEFLAGS)' \
|
||||
&& $(MAKE) dvi \
|
||||
&& $(MAKE) check \
|
||||
@@ -529,11 +537,13 @@ my-distcheck: $(local-check) $(release_archive_dir)/$(prev-tgz)
|
||||
(cd $(t) && mv $(distdir) $(distdir).old \
|
||||
&& $(AMTAR) -zxf - ) < $(distdir).tar.gz
|
||||
diff -ur $(t)/$(distdir).old $(t)/$(distdir)
|
||||
cd $(t)/$(distdir) \
|
||||
&& (cd src && patch -V never --fuzz=0 <c99-to-c89.diff) \
|
||||
&& ./configure --disable-largefile \
|
||||
CFLAGS='-Werror -ansi -pedantic -Wno-long-long' \
|
||||
&& $(MAKE)
|
||||
if test -f $(srcdir)/src/c99-to-c89.diff; then \
|
||||
cd $(t)/$(distdir) \
|
||||
&& (cd src && patch -V never --fuzz=0 <c99-to-c89.diff) \
|
||||
&& ./configure --disable-largefile \
|
||||
CFLAGS='-Werror -ansi -pedantic -Wno-long-long' \
|
||||
&& $(MAKE); \
|
||||
fi
|
||||
-rm -rf $(t)
|
||||
@echo "========================"; \
|
||||
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
|
||||
|
||||
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)
|
||||
@./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) \
|
||||
--package=$(PACKAGE) \
|
||||
--prev=$(PREV_VERSION) \
|
||||
--curr=$(VERSION) \
|
||||
--gpg-key-id=$(gpg_key_ID) \
|
||||
--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. ##
|
||||
@@ -580,7 +596,7 @@ emit_upload_commands:
|
||||
@echo =====================================
|
||||
@echo =====================================
|
||||
@echo "$(srcdir)/build-aux/gnupload $(GNUPLOADFLAGS) \\"
|
||||
@echo " --to $(gnu_rel_host):coreutils \\"
|
||||
@echo " --to $(gnu_rel_host):$(PACKAGE) \\"
|
||||
@echo " $(rel-files)"
|
||||
@echo '# send the /tmp/announcement e-mail'
|
||||
@echo =====================================
|
||||
@@ -590,7 +606,7 @@ $(xd-delta): $(release_archive_dir)/$(prev-tgz) $(distdir).tar.gz
|
||||
xdelta delta -9 $^ $@ || :
|
||||
|
||||
.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 \
|
||||
&& { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \
|
||||
|| { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\
|
||||
|
||||
@@ -1,5 +1,73 @@
|
||||
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]
|
||||
|
||||
** Bug fixes
|
||||
|
||||
@@ -97,6 +97,18 @@ Here is one possible patch to correct the problem:
|
||||
+#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:
|
||||
----------------------
|
||||
|
||||
@@ -150,6 +150,7 @@ Eric Pemente [email protected]
|
||||
Eric S. Raymond [email protected]
|
||||
Erik Bennett [email protected]
|
||||
Erik Corry [email protected]
|
||||
Evan Hunt [email protected]
|
||||
Felix Lee [email protected]
|
||||
Felix Rauch Valenti [email protected]
|
||||
Ferdinand [email protected]
|
||||
@@ -192,6 +193,7 @@ Hans Verkuil [email protected]
|
||||
Harald Dunkel [email protected]
|
||||
Harry Liu [email protected]
|
||||
Harti Brandt [email protected]
|
||||
Harvey Eneman [email protected]
|
||||
Helen Faulkner [email protected]
|
||||
Herbert Xu [email protected]
|
||||
Holger Berger [email protected]
|
||||
@@ -208,6 +210,7 @@ Ivo Timmermans [email protected]
|
||||
James [email protected]
|
||||
James Antill jmanti%[email protected]
|
||||
James Lemley [email protected]
|
||||
James Hunt [email protected]
|
||||
James Sneeringer [email protected]
|
||||
James Tanis [email protected]
|
||||
James Youngman [email protected]
|
||||
@@ -323,11 +326,13 @@ Matt Perry [email protected]
|
||||
Matt Schalit [email protected]
|
||||
Matt Swift [email protected]
|
||||
Matthew Arnison [email protected]
|
||||
Matthew M. Boedicker [email protected]
|
||||
Matthew Braun [email protected]
|
||||
Matthew Clarke [email protected]
|
||||
Matthew S. Levine [email protected]
|
||||
Matthew Smith [email protected]
|
||||
Matthew Swift [email protected]
|
||||
Matthew Woehlke [email protected]
|
||||
Matthias Urlichs [email protected]
|
||||
Matti Aarnio [email protected]
|
||||
Mattias Wadenstein [email protected]
|
||||
@@ -471,6 +476,7 @@ Thomas Hood [email protected]
|
||||
Thomas Luzat [email protected]
|
||||
Thomas M.Ott [email protected]
|
||||
Thomas Quinot [email protected]
|
||||
Thomas Schwinge [email protected]
|
||||
Thomas Wolff [email protected]
|
||||
Tim J. Robbins [email protected]
|
||||
Tim Mooney [email protected]
|
||||
@@ -513,6 +519,7 @@ William Bader [email protected]
|
||||
William Dowling [email protected]
|
||||
William Lewis [email protected]
|
||||
wiregauze [email protected]
|
||||
Wis Macomson [email protected]
|
||||
Wojciech Purczynski [email protected]
|
||||
Wolfram Kleff [email protected]
|
||||
Won-kyu Park [email protected]
|
||||
|
||||
@@ -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.
|
||||
suggestion from Karl Berry
|
||||
|
||||
|
||||
Vendored
+13
-4
@@ -11,8 +11,8 @@
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
m4_if(m4_PACKAGE_VERSION, [2.61],,
|
||||
[m4_fatal([this file was generated for autoconf 2.61.
|
||||
m4_if(m4_PACKAGE_VERSION, [2.61a],,
|
||||
[m4_fatal([this file was generated for autoconf 2.61a.
|
||||
You have another version of autoconf. If you want to use that,
|
||||
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/exitfail.m4])
|
||||
m4_include([m4/extensions.m4])
|
||||
m4_include([m4/fchdir.m4])
|
||||
m4_include([m4/fcntl-safer.m4])
|
||||
m4_include([m4/fcntl_h.m4])
|
||||
m4_include([m4/fd-reopen.m4])
|
||||
@@ -999,6 +1000,7 @@ m4_include([m4/gettimeofday.m4])
|
||||
m4_include([m4/getugroups.m4])
|
||||
m4_include([m4/getusershell.m4])
|
||||
m4_include([m4/glibc21.m4])
|
||||
m4_include([m4/gnulib-common.m4])
|
||||
m4_include([m4/gnulib-comp.m4])
|
||||
m4_include([m4/group-member.m4])
|
||||
m4_include([m4/hard-locale.m4])
|
||||
@@ -1036,6 +1038,7 @@ m4_include([m4/lstat.m4])
|
||||
m4_include([m4/mbchar.m4])
|
||||
m4_include([m4/mbiter.m4])
|
||||
m4_include([m4/mbrtowc.m4])
|
||||
m4_include([m4/mbscasecmp.m4])
|
||||
m4_include([m4/mbstate_t.m4])
|
||||
m4_include([m4/mbswidth.m4])
|
||||
m4_include([m4/md5.m4])
|
||||
@@ -1056,6 +1059,7 @@ m4_include([m4/mkstemp.m4])
|
||||
m4_include([m4/mktime.m4])
|
||||
m4_include([m4/modechange.m4])
|
||||
m4_include([m4/mountlist.m4])
|
||||
m4_include([m4/mpsort.m4])
|
||||
m4_include([m4/nanosleep.m4])
|
||||
m4_include([m4/netinet_in_h.m4])
|
||||
m4_include([m4/nls.m4])
|
||||
@@ -1108,12 +1112,14 @@ m4_include([m4/stdbool.m4])
|
||||
m4_include([m4/stdint.m4])
|
||||
m4_include([m4/stdint_h.m4])
|
||||
m4_include([m4/stdio-safer.m4])
|
||||
m4_include([m4/stdio_h.m4])
|
||||
m4_include([m4/stdlib-safer.m4])
|
||||
m4_include([m4/stdlib_h.m4])
|
||||
m4_include([m4/stpcpy.m4])
|
||||
m4_include([m4/strcase.m4])
|
||||
m4_include([m4/strcspn.m4])
|
||||
m4_include([m4/strdup.m4])
|
||||
m4_include([m4/strftime.m4])
|
||||
m4_include([m4/string_h.m4])
|
||||
m4_include([m4/strndup.m4])
|
||||
m4_include([m4/strnlen.m4])
|
||||
m4_include([m4/strnumcmp.m4])
|
||||
@@ -1128,7 +1134,9 @@ m4_include([m4/strtoumax.m4])
|
||||
m4_include([m4/strverscmp.m4])
|
||||
m4_include([m4/sys_socket_h.m4])
|
||||
m4_include([m4/sys_stat_h.m4])
|
||||
m4_include([m4/sys_time_h.m4])
|
||||
m4_include([m4/tempname.m4])
|
||||
m4_include([m4/time_h.m4])
|
||||
m4_include([m4/time_r.m4])
|
||||
m4_include([m4/timespec.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/vasnprintf.m4])
|
||||
m4_include([m4/vasprintf.m4])
|
||||
m4_include([m4/wchar.m4])
|
||||
m4_include([m4/wchar_t.m4])
|
||||
m4_include([m4/wctype.m4])
|
||||
m4_include([m4/wcwidth.m4])
|
||||
m4_include([m4/wint_t.m4])
|
||||
m4_include([m4/xalloc.m4])
|
||||
m4_include([m4/xfts.m4])
|
||||
m4_include([m4/xgetcwd.m4])
|
||||
m4_include([m4/xnanosleep.m4])
|
||||
m4_include([m4/xreadlink.m4])
|
||||
m4_include([m4/xstrndup.m4])
|
||||
m4_include([m4/xstrtod.m4])
|
||||
m4_include([m4/xstrtol.m4])
|
||||
|
||||
+110
-58
@@ -1,8 +1,8 @@
|
||||
#! /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
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -29,6 +29,11 @@ nl='
|
||||
LC_ALL=C
|
||||
export LC_ALL
|
||||
|
||||
# Temporary directory names.
|
||||
bt='._bootmp'
|
||||
bt_regex=`echo "$bt"| sed 's/\./[.]/g'`
|
||||
bt2=${bt}2
|
||||
|
||||
usage() {
|
||||
echo >&2 "\
|
||||
Usage: $0 [OPTION]...
|
||||
@@ -38,14 +43,14 @@ Options:
|
||||
--gnulib-srcdir=DIRNAME Specify the local directory where gnulib
|
||||
sources reside. Use this if you already
|
||||
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.
|
||||
--copy Copy files instead of creating symbolic links.
|
||||
--force Attempt to bootstrap even if the sources seem
|
||||
not to have been checked out.
|
||||
--skip-po Do not download po files.
|
||||
--cvs-user=USERNAME Set the CVS username to be used when accessing
|
||||
the gnulib repository.
|
||||
--cvs-user=USERNAME Set the username to use when checking out
|
||||
sources from the gnulib repository.
|
||||
|
||||
If the file .bootstrap.conf exists in the current working directory, its
|
||||
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
|
||||
gnulib_name=lib$package
|
||||
|
||||
build_aux=build-aux
|
||||
# Extra files from gnulib, which override files from other sources.
|
||||
gnulib_extra_files='
|
||||
build-aux/announce-gen
|
||||
build-aux/install-sh
|
||||
build-aux/missing
|
||||
build-aux/mdate-sh
|
||||
build-aux/texinfo.tex
|
||||
build-aux/depcomp
|
||||
build-aux/config.guess
|
||||
build-aux/config.sub
|
||||
gnulib_extra_files="
|
||||
$build_aux/install-sh
|
||||
$build_aux/missing
|
||||
$build_aux/mdate-sh
|
||||
$build_aux/texinfo.tex
|
||||
$build_aux/depcomp
|
||||
$build_aux/config.guess
|
||||
$build_aux/config.sub
|
||||
doc/INSTALL
|
||||
'
|
||||
"
|
||||
|
||||
# Other locale categories that need message catalogs.
|
||||
EXTRA_LOCALE_CATEGORIES=
|
||||
@@ -113,7 +119,7 @@ excluded_files=
|
||||
|
||||
# File that should exist in the top directory of a checked out hierarchy,
|
||||
# but not in a distribution tarball.
|
||||
CVS_only_file=README-cvs
|
||||
checkout_only_file=README-hacking
|
||||
|
||||
# Whether to use copies instead of symlinks.
|
||||
copy=false
|
||||
@@ -138,7 +144,7 @@ do
|
||||
--skip-po)
|
||||
SKIP_PO=t;;
|
||||
--force)
|
||||
CVS_only_file=;;
|
||||
checkout_only_file=;;
|
||||
--copy)
|
||||
copy=true;;
|
||||
*)
|
||||
@@ -147,12 +153,42 @@ do
|
||||
esac
|
||||
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
|
||||
exit 1
|
||||
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() {
|
||||
status=$?
|
||||
@@ -246,7 +282,9 @@ case $SKIP_PO in
|
||||
WGET_COMMAND='';;
|
||||
esac
|
||||
|
||||
get_translations po $package || exit
|
||||
if test -d po; then
|
||||
get_translations po $package || exit
|
||||
fi
|
||||
|
||||
if test -d runtime-po; then
|
||||
get_translations runtime-po $package-runtime || exit
|
||||
@@ -315,7 +353,8 @@ cp_mark_as_generated()
|
||||
if test -z "$c1"; then
|
||||
cmp -s "$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
|
||||
# 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}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2" &&
|
||||
cat "$cp_src"
|
||||
sed "s!$bt_regex/!!g" "$cp_src"
|
||||
) > $cp_dst-t &&
|
||||
if cmp -s "$cp_dst-t" "$cp_dst"; then
|
||||
rm -f "$cp_dst-t"
|
||||
@@ -362,7 +401,7 @@ slurp() {
|
||||
done
|
||||
if test $file = Makefile.am; then
|
||||
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 || {
|
||||
echo "$0: Copying $1/$dir/$file to $dir/gnulib.mk ..." &&
|
||||
rm -f $dir/gnulib.mk &&
|
||||
@@ -393,8 +432,12 @@ slurp() {
|
||||
for dot_ig in .cvsignore .gitignore; do
|
||||
ig=$dir/$dot_ig
|
||||
if test -n "$copied" && test -f $ig; then
|
||||
echo "$copied" | sort -u - $ig | cmp -s - $ig ||
|
||||
echo "$copied" | sort -u - $ig -o $ig || exit
|
||||
insert_sorted_if_absent $ig "$copied"
|
||||
# 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
|
||||
done
|
||||
done
|
||||
@@ -402,9 +445,6 @@ slurp() {
|
||||
|
||||
|
||||
# Create boot temporary directories to import from gnulib and gettext.
|
||||
|
||||
bt='.#bootmp'
|
||||
bt2=${bt}2
|
||||
rm -fr $bt $bt2 &&
|
||||
mkdir $bt $bt2 || exit
|
||||
|
||||
@@ -413,9 +453,9 @@ mkdir $bt $bt2 || exit
|
||||
gnulib_tool_options="\
|
||||
--import\
|
||||
--no-changelog\
|
||||
--aux-dir $bt/build-aux\
|
||||
--aux-dir $bt/$build_aux\
|
||||
--doc-base $bt/doc\
|
||||
--lib lib$package\
|
||||
--lib $gnulib_name\
|
||||
--m4-base $bt/m4/\
|
||||
--source-base $bt/lib/\
|
||||
--tests-base $bt/tests\
|
||||
@@ -431,23 +471,34 @@ done
|
||||
|
||||
|
||||
# Import from gettext.
|
||||
with_gettext=yes
|
||||
grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
|
||||
with_gettext=no
|
||||
|
||||
echo "$0: (cd $bt2; autopoint) ..."
|
||||
cp configure.ac $bt2 &&
|
||||
(cd $bt2 && autopoint && rm configure.ac) &&
|
||||
slurp $bt2 $bt || exit
|
||||
if test $with_gettext = yes; then
|
||||
echo "$0: (cd $bt2; autopoint) ..."
|
||||
cp configure.ac $bt2 &&
|
||||
(cd $bt2 && autopoint && rm configure.ac) &&
|
||||
slurp $bt2 $bt || exit
|
||||
|
||||
rm -fr $bt $bt2 || exit
|
||||
rm -fr $bt $bt2 || exit
|
||||
fi
|
||||
|
||||
|
||||
# Reconfigure, getting other files.
|
||||
|
||||
for command in \
|
||||
libtool \
|
||||
'aclocal --force -I m4' \
|
||||
'autoconf --force' \
|
||||
'autoheader --force' \
|
||||
'automake --add-missing --copy --force-missing';
|
||||
do
|
||||
if test "$command" = libtool; then
|
||||
grep '^[ ]*AM_PROG_LIBTOOL\>' configure.ac >/dev/null ||
|
||||
continue
|
||||
command='libtoolize -c -f'
|
||||
fi
|
||||
echo "$0: $command ..."
|
||||
$command || exit
|
||||
done
|
||||
@@ -463,36 +514,37 @@ for file in $gnulib_extra_files; do
|
||||
symlink_to_gnulib $file $dst || exit
|
||||
done
|
||||
|
||||
|
||||
# Create gettext configuration.
|
||||
echo "$0: Creating po/Makevars from po/Makevars.template ..."
|
||||
rm -f po/Makevars
|
||||
sed '
|
||||
/^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
|
||||
/^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
|
||||
/^XGETTEXT_OPTIONS *=/{
|
||||
s/$/ \\/
|
||||
a\
|
||||
'"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
|
||||
}
|
||||
' po/Makevars.template >po/Makevars
|
||||
|
||||
if test -d runtime-po; then
|
||||
# Similarly for runtime-po/Makevars, but not quite the same.
|
||||
rm -f runtime-po/Makevars
|
||||
if test $with_gettext = yes; then
|
||||
# Create gettext configuration.
|
||||
echo "$0: Creating po/Makevars from po/Makevars.template ..."
|
||||
rm -f po/Makevars
|
||||
sed '
|
||||
/^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
|
||||
/^subdir *=.*/s/=.*/= runtime-po/
|
||||
/^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
|
||||
/^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
|
||||
/^XGETTEXT_OPTIONS *=/{
|
||||
s/$/ \\/
|
||||
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.
|
||||
(cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
|
||||
if test -d runtime-po; then
|
||||
# Similarly for runtime-po/Makevars, but not quite the same.
|
||||
rm -f runtime-po/Makevars
|
||||
sed '
|
||||
/^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
|
||||
/^subdir *=.*/s/=.*/= runtime-po/
|
||||
/^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
|
||||
/^XGETTEXT_OPTIONS *=/{
|
||||
s/$/ \\/
|
||||
a\
|
||||
'"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
|
||||
}
|
||||
' <po/Makevars.template >runtime-po/Makevars
|
||||
|
||||
# Copy identical files from po to runtime-po.
|
||||
(cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "$0: done. Now you can run './configure'."
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 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
|
||||
# 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
|
||||
# includes them because of gettext dependencies.
|
||||
# includes them because of gettext and fchdir dependencies.
|
||||
avoided_gnulib_modules='
|
||||
--avoid=lock
|
||||
--avoid=size_max
|
||||
--avoid=xsize
|
||||
--avoid=canonicalize-lgpl
|
||||
'
|
||||
|
||||
# These modules are obsolete and can probably be removed soon,
|
||||
@@ -37,12 +38,14 @@ obsolete_gnulib_modules='
|
||||
gnulib_modules="
|
||||
$avoided_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
|
||||
config-h configmake
|
||||
closeout 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
|
||||
error euidaccess exclude exitfail fchdir fcntl fcntl-safer fdl
|
||||
file-type fileblocks filemode filenamecat fnmatch-gnu
|
||||
fopen-safer
|
||||
fprintftime fsusage ftruncate fts getdate getgroups gethrxtime
|
||||
getline getloadavg getndelim2 getopt getpagesize getpass-gnu
|
||||
gettext gettime gettimeofday getugroups getusershell gnupload
|
||||
@@ -51,20 +54,20 @@ gnulib_modules="
|
||||
lchmod lchown lib-ignore linebuffer link-follow
|
||||
long-options lstat malloc mbswidth md5 memcasecmp mempcpy
|
||||
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
|
||||
realloc regex 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 strftime
|
||||
stat-time stdbool stdlib-safer stpcpy strftime
|
||||
strpbrk strtoimax strtoumax strverscmp sys_stat timespec tzset
|
||||
unicodeio unistd-safer unlink-busy unlinkdir unlocked-io
|
||||
uptime userspec utimecmp utimens vasprintf verify version-etc-fsf
|
||||
wcwidth winsz-ioctl winsz-termios xalloc xgetcwd xgethostname
|
||||
xmemcoll xnanosleep xreadlink xstrtod xstrtoimax xstrtol
|
||||
xstrtold xstrtoumax yesno
|
||||
xmemcoll xnanosleep xreadlink xreadlink-with-size xstrtod xstrtoimax
|
||||
xstrtol xstrtold xstrtoumax yesno
|
||||
"
|
||||
|
||||
# Other locale categories that need message catalogs.
|
||||
@@ -78,17 +81,32 @@ XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
|
||||
--flag=wrapf:1:c-format\\\
|
||||
'
|
||||
|
||||
# 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
|
||||
'
|
||||
# If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]"
|
||||
# appears in configure.ac, exclude some unnecessary files.
|
||||
# Without grep's -E option (not portable enough, pre-configure),
|
||||
# the following test is ugly. Also, this depends on the existence
|
||||
# of configure.ac, not the obsolescent-named configure.in. But if
|
||||
# you're using this infrastructure, you should care about such things.
|
||||
|
||||
gettext_external=0
|
||||
grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null &&
|
||||
gettext_external=1
|
||||
grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null &&
|
||||
gettext_external=1
|
||||
|
||||
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
|
||||
|
||||
Vendored
+13843
-12131
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
# -*- autoconf -*-
|
||||
# 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
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -19,15 +19,15 @@
|
||||
|
||||
dnl Written by Jim Meyering.
|
||||
|
||||
AC_PREREQ(2.60)
|
||||
AC_INIT([GNU coreutils],[6.7],[[email protected]])
|
||||
AC_PREREQ(2.61)
|
||||
AC_INIT([GNU coreutils],[6.9],[[email protected]])
|
||||
AC_CONFIG_SRCDIR(src/ls.c)
|
||||
|
||||
AC_CONFIG_AUX_DIR(build-aux)
|
||||
AC_CONFIG_HEADERS([lib/config.h:lib/config.hin])
|
||||
|
||||
AB_INIT()
|
||||
AM_INIT_AUTOMAKE([1.9.6 gnits dist-bzip2])
|
||||
AM_INIT_AUTOMAKE([1.10 dist-bzip2])
|
||||
|
||||
AC_PROG_CC_STDC
|
||||
AM_PROG_CC_C_O
|
||||
@@ -39,6 +39,8 @@ gl_EARLY
|
||||
gl_INIT
|
||||
coreutils_MACROS
|
||||
|
||||
AC_FUNC_FORK
|
||||
|
||||
AC_CHECK_FUNCS(uname,
|
||||
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS uname\$(EXEEXT)"
|
||||
MAN="$MAN uname.1")
|
||||
|
||||
@@ -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]>
|
||||
|
||||
* perm.texi (Mode Structure): Fix typo: s/setgid/setuid/.
|
||||
|
||||
@@ -78,15 +78,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
|
||||
$(top_srcdir)/m4/euidaccess-stat.m4 \
|
||||
$(top_srcdir)/m4/euidaccess.m4 $(top_srcdir)/m4/exclude.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/fd-reopen.m4 $(top_srcdir)/m4/file-type.m4 \
|
||||
$(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/filemode.m4 \
|
||||
$(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/flexmember.m4 \
|
||||
$(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \
|
||||
$(top_srcdir)/m4/fprintftime.m4 $(top_srcdir)/m4/free.m4 \
|
||||
$(top_srcdir)/m4/fstypename.m4 $(top_srcdir)/m4/fsusage.m4 \
|
||||
$(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/fts.m4 \
|
||||
$(top_srcdir)/m4/getaddrinfo.m4 \
|
||||
$(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fcntl-safer.m4 \
|
||||
$(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fd-reopen.m4 \
|
||||
$(top_srcdir)/m4/file-type.m4 $(top_srcdir)/m4/fileblocks.m4 \
|
||||
$(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/filenamecat.m4 \
|
||||
$(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/fnmatch.m4 \
|
||||
$(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fprintftime.m4 \
|
||||
$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/fstypename.m4 \
|
||||
$(top_srcdir)/m4/fsusage.m4 $(top_srcdir)/m4/ftruncate.m4 \
|
||||
$(top_srcdir)/m4/fts.m4 $(top_srcdir)/m4/getaddrinfo.m4 \
|
||||
$(top_srcdir)/m4/getcwd-abort-bug.m4 \
|
||||
$(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \
|
||||
$(top_srcdir)/m4/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \
|
||||
@@ -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/getugroups.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/group-member.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/ls-mntd-fs.m4 $(top_srcdir)/m4/lstat.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/mbswidth.m4 $(top_srcdir)/m4/md5.m4 \
|
||||
$(top_srcdir)/m4/memcasecmp.m4 $(top_srcdir)/m4/memchr.m4 \
|
||||
$(top_srcdir)/m4/memcmp.m4 $(top_srcdir)/m4/memcoll.m4 \
|
||||
$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
|
||||
$(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
|
||||
$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/memxfrm.m4 \
|
||||
$(top_srcdir)/m4/mkancesdirs.m4 $(top_srcdir)/m4/mkdir-p.m4 \
|
||||
$(top_srcdir)/m4/mkdir-slash.m4 $(top_srcdir)/m4/mkstemp.m4 \
|
||||
$(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \
|
||||
$(top_srcdir)/m4/mountlist.m4 $(top_srcdir)/m4/nanosleep.m4 \
|
||||
$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbscasecmp.m4 \
|
||||
$(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbswidth.m4 \
|
||||
$(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memcasecmp.m4 \
|
||||
$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
|
||||
$(top_srcdir)/m4/memcoll.m4 $(top_srcdir)/m4/memcpy.m4 \
|
||||
$(top_srcdir)/m4/memmove.m4 $(top_srcdir)/m4/mempcpy.m4 \
|
||||
$(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/memset.m4 \
|
||||
$(top_srcdir)/m4/memxfrm.m4 $(top_srcdir)/m4/mkancesdirs.m4 \
|
||||
$(top_srcdir)/m4/mkdir-p.m4 $(top_srcdir)/m4/mkdir-slash.m4 \
|
||||
$(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.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/openat.m4 $(top_srcdir)/m4/pathmax.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/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \
|
||||
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
|
||||
$(top_srcdir)/m4/stdio-safer.m4 \
|
||||
$(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stpcpy.m4 \
|
||||
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strcspn.m4 \
|
||||
$(top_srcdir)/m4/stdio-safer.m4 $(top_srcdir)/m4/stdio_h.m4 \
|
||||
$(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stdlib_h.m4 \
|
||||
$(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcspn.m4 \
|
||||
$(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strftime.m4 \
|
||||
$(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
|
||||
$(top_srcdir)/m4/strnumcmp.m4 $(top_srcdir)/m4/strpbrk.m4 \
|
||||
$(top_srcdir)/m4/strtod.m4 $(top_srcdir)/m4/strtoimax.m4 \
|
||||
$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \
|
||||
$(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
|
||||
$(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/strverscmp.m4 \
|
||||
$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
|
||||
$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strnumcmp.m4 \
|
||||
$(top_srcdir)/m4/strpbrk.m4 $(top_srcdir)/m4/strtod.m4 \
|
||||
$(top_srcdir)/m4/strtoimax.m4 $(top_srcdir)/m4/strtol.m4 \
|
||||
$(top_srcdir)/m4/strtoll.m4 $(top_srcdir)/m4/strtoul.m4 \
|
||||
$(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
|
||||
$(top_srcdir)/m4/strverscmp.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/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.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/utimes-null.m4 $(top_srcdir)/m4/utimes.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/xfts.m4 $(top_srcdir)/m4/xgetcwd.m4 \
|
||||
$(top_srcdir)/m4/xnanosleep.m4 $(top_srcdir)/m4/xreadlink.m4 \
|
||||
$(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtod.m4 \
|
||||
$(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/m4/yesno.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/xnanosleep.m4 $(top_srcdir)/m4/xstrndup.m4 \
|
||||
$(top_srcdir)/m4/xstrtod.m4 $(top_srcdir)/m4/xstrtol.m4 \
|
||||
$(top_srcdir)/m4/yesno.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
@@ -212,10 +216,21 @@ am__vpath_adj = case $$p in \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ABSOLUTE_DIRENT_H = @ABSOLUTE_DIRENT_H@
|
||||
ABSOLUTE_FCNTL_H = @ABSOLUTE_FCNTL_H@
|
||||
ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
|
||||
ABSOLUTE_NETINET_IN_H = @ABSOLUTE_NETINET_IN_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_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@
|
||||
ALLOCA = @ALLOCA@
|
||||
ALLOCA_H = @ALLOCA_H@
|
||||
@@ -240,6 +255,7 @@ DEFAULT_POSIX2_VERSION = @DEFAULT_POSIX2_VERSION@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DF_PROG = @DF_PROG@
|
||||
DIRENT_H = @DIRENT_H@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
@@ -253,23 +269,103 @@ GETOPT_H = @GETOPT_H@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
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@
|
||||
GREP = @GREP@
|
||||
HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
|
||||
HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
|
||||
HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
|
||||
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
|
||||
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
|
||||
HAVE_DECL_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_STRTOK_R = @HAVE_DECL_STRTOK_R@
|
||||
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_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_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
|
||||
HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
|
||||
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_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_UNISTD_H = @HAVE_UNISTD_H@
|
||||
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@
|
||||
HELP2MAN = @HELP2MAN@
|
||||
INSTALL = @INSTALL@
|
||||
@@ -289,6 +385,7 @@ LIBINTL = @LIBINTL@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIB_ACL = @LIB_ACL@
|
||||
LIB_ACL_TRIVIAL = @LIB_ACL_TRIVIAL@
|
||||
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
|
||||
LIB_CRYPT = @LIB_CRYPT@
|
||||
LIB_EACCESS = @LIB_EACCESS@
|
||||
@@ -323,6 +420,23 @@ PRIPTR_PREFIX = @PRIPTR_PREFIX@
|
||||
PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
|
||||
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
|
||||
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@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
@@ -333,11 +447,15 @@ STDINT_H = @STDINT_H@
|
||||
STRIP = @STRIP@
|
||||
SYS_SOCKET_H = @SYS_SOCKET_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@
|
||||
UNISTD_H = @UNISTD_H@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
WCHAR_H = @WCHAR_H@
|
||||
WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
|
||||
WCTYPE_H = @WCTYPE_H@
|
||||
WINT_T_SUFFIX = @WINT_T_SUFFIX@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
@@ -424,9 +542,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits doc/Makefile'; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnits doc/Makefile
|
||||
$(AUTOMAKE) --gnu doc/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -208,6 +208,7 @@ Common Options
|
||||
* Exit status:: Indicating program success or failure.
|
||||
* Backup options:: Backup options
|
||||
* Block size:: Block size
|
||||
* Disambiguating names and IDs:: chgrp and chown owner and group syntax
|
||||
* Random sources:: Sources of random data
|
||||
* Target directory:: Target directory
|
||||
* Trailing slashes:: Trailing slashes
|
||||
@@ -557,8 +558,8 @@ symbolic link to a directory. @xref{Target directory}.
|
||||
@itemx --si
|
||||
@opindex --si
|
||||
@cindex SI output
|
||||
Append an SI-style abbreviation to each size, such as @samp{MB} for
|
||||
megabytes. Powers of 1000 are used, not 1024; @samp{MB} stands for
|
||||
Append an SI-style abbreviation to each size, such as @samp{M} for
|
||||
megabytes. Powers of 1000 are used, not 1024; @samp{M} stands for
|
||||
1,000,000 bytes. This option is equivalent to
|
||||
@option{--block-size=si}. Use the @option{-h} or
|
||||
@option{--human-readable} option if
|
||||
@@ -644,6 +645,7 @@ name.
|
||||
* Exit status:: Indicating program success or failure.
|
||||
* Backup options:: -b -S, 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.
|
||||
* Target directory:: Specifying a target directory, 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
|
||||
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
|
||||
@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
|
||||
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
|
||||
@section Special built-in utilities
|
||||
|
||||
@@ -1845,7 +1891,8 @@ output will be the original data.
|
||||
@opindex -i
|
||||
@opindex --ignore-garbage
|
||||
@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.
|
||||
|
||||
@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
|
||||
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.
|
||||
|
||||
The program accepts the following options. Also see @ref{Common options}.
|
||||
@@ -3337,12 +3388,26 @@ mode:
|
||||
|
||||
@item -c
|
||||
@itemx --check
|
||||
@itemx --check=diagnose-first
|
||||
@opindex -c
|
||||
@opindex --check
|
||||
@cindex checking for sortedness
|
||||
Check whether the given files are already sorted: if they are not all
|
||||
sorted, print an error message and exit with a status of 1.
|
||||
Check whether the given file is already sorted: if it is not all
|
||||
sorted, print a diagnostic containing the first out-of-order line and
|
||||
exit with a status of 1.
|
||||
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
|
||||
@itemx --merge
|
||||
@@ -3396,7 +3461,7 @@ Exit status:
|
||||
|
||||
@display
|
||||
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
|
||||
@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
|
||||
the environment variable.
|
||||
|
||||
|
||||
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
|
||||
fields are specified, global options apply to comparison of entire
|
||||
@@ -3515,26 +3579,16 @@ can change this.
|
||||
@opindex --numeric-sort
|
||||
@cindex numeric sort
|
||||
@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
|
||||
digits possibly separated by thousands separators, optionally followed
|
||||
by a decimal-point character and zero or more digits. A string of
|
||||
no digits is interpreted as @samp{0}. The @env{LC_NUMERIC}
|
||||
by a decimal-point character and zero or more digits. An empty
|
||||
number is treated as @samp{0}. The @env{LC_NUMERIC}
|
||||
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
|
||||
can change this.
|
||||
|
||||
Numeric sort uses what might be considered an unconventional method to
|
||||
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.
|
||||
Comparison is exact; there is no rounding error.
|
||||
|
||||
Neither a leading @samp{+} nor exponential notation is recognized.
|
||||
To compare such strings numerically, use the
|
||||
@@ -3573,6 +3627,18 @@ Other options are:
|
||||
|
||||
@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}]
|
||||
@itemx --key=@var{pos1}[,@var{pos2}]
|
||||
@opindex -k
|
||||
@@ -3580,9 +3646,21 @@ Other options are:
|
||||
@cindex sort field
|
||||
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
|
||||
omitted), @emph{inclusive}. Fields and character positions are numbered
|
||||
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.
|
||||
omitted), @emph{inclusive}.
|
||||
|
||||
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}
|
||||
@itemx --output=@var{output-file}
|
||||
@@ -3686,7 +3764,7 @@ disks and controllers.
|
||||
@cindex uniquifying output
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
obscure cases. The only fix is to add an explicit @option{-b}.
|
||||
|
||||
A position in a sort field specified with the @option{-k}
|
||||
option has the form @samp{@var{f}.@var{c}}, 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. In a start position, an omitted
|
||||
@samp{.@var{c}} stands for the field's first character. In an end
|
||||
position, an omitted or zero @samp{.@var{c}} stands for the field's
|
||||
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.
|
||||
A position in a sort field specified with @option{-k} may 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}
|
||||
is not used, then @option{-k} is typically combined with @option{-b},
|
||||
@option{-g}, @option{-M}, or @option{-n}; otherwise the varying
|
||||
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 POSIXLY_CORRECT
|
||||
@@ -4489,7 +4559,7 @@ Fold lower case letters to upper case for sorting.
|
||||
@table @samp
|
||||
|
||||
@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
|
||||
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
|
||||
@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
|
||||
@itemx --width=@var{cols}
|
||||
@opindex -w
|
||||
@@ -6947,7 +7024,13 @@ and ordinary users
|
||||
may preserve the group ownership of a file only if they happen to be
|
||||
a member of the desired group.
|
||||
@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
|
||||
Preserve in the destination files
|
||||
any links between corresponding source files.
|
||||
@@ -7151,25 +7234,33 @@ bytes (or the size specified with @samp{seek=}).
|
||||
@opindex ibs
|
||||
@cindex block size of input
|
||||
@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}
|
||||
@opindex obs
|
||||
@cindex block size of output
|
||||
@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}
|
||||
@opindex bs
|
||||
@cindex block size
|
||||
Both read and write @var{bytes} bytes at a time. This overrides
|
||||
@samp{ibs} and @samp{obs}.
|
||||
Set both input and output block sizes to @var{bytes}.
|
||||
This makes @command{dd} read and write @var{bytes} per block,
|
||||
overriding any @samp{ibs} and @samp{obs} settings.
|
||||
|
||||
@item cbs=@var{bytes}
|
||||
@opindex cbs
|
||||
@cindex block size of conversion
|
||||
@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}
|
||||
@opindex skip
|
||||
@@ -7346,6 +7437,8 @@ Use non-blocking I/O.
|
||||
@opindex noatime
|
||||
@cindex 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
|
||||
@opindex noctty
|
||||
@@ -8353,15 +8446,23 @@ overridden in this way.
|
||||
@opindex -p
|
||||
@opindex --parents
|
||||
@cindex parent directories, creating
|
||||
Make any missing parent directories for each argument. The file permission
|
||||
bits of parent directories are set to the umask modified by @samp{u+wx}.
|
||||
@xref{Directory Setuid and Setgid}, for how the set-user-ID and
|
||||
set-group-ID bits of parent directories are inherited.
|
||||
Ignore arguments corresponding to existing directories, and do not
|
||||
change their file mode bits.
|
||||
Make any missing parent directories for each argument, setting their
|
||||
file permission bits to the umask modified by @samp{u+wx}. Ignore
|
||||
existing parent directories, and do not change their file permission
|
||||
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 --verbose
|
||||
@itemx --verbose
|
||||
@opindex -v
|
||||
@opindex --verbose
|
||||
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.
|
||||
|
||||
@item -v
|
||||
@item --verbose
|
||||
@itemx --verbose
|
||||
@opindex -v
|
||||
@opindex --verbose
|
||||
@cindex directory deletion, reporting
|
||||
@@ -8727,6 +8828,10 @@ owner nor the group is changed.
|
||||
|
||||
@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.
|
||||
@acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance}) does not
|
||||
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{}
|
||||
@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}.
|
||||
|
||||
@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}
|
||||
environment variable, or by the system default rules if @env{TZ} is
|
||||
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.
|
||||
|
||||
The program accepts the following options. Also see @ref{Common options}.
|
||||
@@ -9372,6 +9481,13 @@ some network mounts), the columns are misaligned.
|
||||
|
||||
@item
|
||||
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
|
||||
|
||||
@optSi
|
||||
@@ -9799,7 +9915,7 @@ $ stat --format=%d:%i / /usr
|
||||
@opindex --printf=@var{format}
|
||||
@cindex output 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.
|
||||
If you want a newline, include @samp{\n} in the @var{format}.
|
||||
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
|
||||
floating point conversion specifications @samp{%a}, @samp{%e},
|
||||
@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
|
||||
@var{last}. If these all use a fixed point decimal representation,
|
||||
@@ -13839,6 +13961,15 @@ decimal representation.
|
||||
|
||||
@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}
|
||||
to perform the conversion:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@set UPDATED 27 October 2006
|
||||
@set UPDATED-MONTH October 2006
|
||||
@set EDITION 6.7
|
||||
@set VERSION 6.7
|
||||
@set UPDATED 22 March 2007
|
||||
@set UPDATED-MONTH March 2007
|
||||
@set EDITION 6.9
|
||||
@set VERSION 6.9
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@set UPDATED 27 October 2006
|
||||
@set UPDATED-MONTH October 2006
|
||||
@set EDITION 6.7
|
||||
@set VERSION 6.7
|
||||
@set UPDATED 22 March 2007
|
||||
@set UPDATED-MONTH March 2007
|
||||
@set EDITION 6.9
|
||||
@set VERSION 6.9
|
||||
|
||||
@@ -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]>
|
||||
|
||||
* Makefile.am (libcoreutils_a_SOURCES): Remove xmemcoll.c and
|
||||
|
||||
@@ -21,6 +21,7 @@ StaticLibrary libfetish.a :
|
||||
base64.c
|
||||
basename.c
|
||||
buffer-lcm.c
|
||||
c-strcasecmp.c
|
||||
c-strtod.c
|
||||
c-strtold.c
|
||||
calloc.c
|
||||
@@ -45,6 +46,7 @@ StaticLibrary libfetish.a :
|
||||
exitfail.c
|
||||
# fchdir-stub.c
|
||||
fchmodat.c
|
||||
fchownat.c
|
||||
# fchown-stub.c
|
||||
fd-reopen.c
|
||||
fd-safer.c
|
||||
@@ -92,6 +94,7 @@ StaticLibrary libfetish.a :
|
||||
# lstat-stub.c
|
||||
# lstat.c
|
||||
# malloc.c
|
||||
mbscasecmp.c
|
||||
mbswidth.c
|
||||
md5.c
|
||||
memcasecmp.c
|
||||
@@ -110,6 +113,7 @@ StaticLibrary libfetish.a :
|
||||
# mkstemp.c
|
||||
mkstemp-safer.c
|
||||
mktime.c
|
||||
mpsort.c
|
||||
modechange.c
|
||||
# mountlist.c
|
||||
nanosleep.c
|
||||
@@ -153,7 +157,6 @@ StaticLibrary libfetish.a :
|
||||
sha512.c
|
||||
sig2str.c
|
||||
# stpcpy.c
|
||||
strcasecmp.c
|
||||
# strcspn.c
|
||||
# strdup.c
|
||||
strftime.c
|
||||
@@ -194,6 +197,7 @@ StaticLibrary libfetish.a :
|
||||
xmemxfrm.c
|
||||
xnanosleep.c
|
||||
xreadlink.c
|
||||
xreadlink-with-size.c
|
||||
xstrndup.c
|
||||
xstrtod.c
|
||||
xstrtoimax.c
|
||||
|
||||
+488
-162
@@ -16,7 +16,7 @@
|
||||
|
||||
# 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
|
||||
# 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.
|
||||
#
|
||||
# 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 \
|
||||
$(srcdir)/Makefile.in $(srcdir)/config.hin $(srcdir)/gnulib.mk \
|
||||
ChangeLog TODO alloca.c euidaccess-stat.c euidaccess-stat.h \
|
||||
fchdir-stub.c fd-reopen.c fd-reopen.h getdate.c memxfrm.c \
|
||||
memxfrm.h rand-isaac.c rand-isaac.h randint.c randint.h \
|
||||
randperm.c randperm.h randread.c randread.h sha256.c sha256.h \
|
||||
sha512.c sha512.h strintcmp.c strnumcmp-in.h strnumcmp.c \
|
||||
strnumcmp.h u64.h xfts.c xfts.h
|
||||
fd-reopen.c fd-reopen.h getdate.c memxfrm.c memxfrm.h \
|
||||
rand-isaac.c rand-isaac.h randint.c randint.h randperm.c \
|
||||
randperm.h randread.c randread.h sha256.c sha256.h sha512.c \
|
||||
sha512.h strintcmp.c strnumcmp-in.h strnumcmp.c strnumcmp.h \
|
||||
u64.h xfts.c xfts.h
|
||||
noinst_PROGRAMS = t-fpending$(EXEEXT)
|
||||
subdir = lib
|
||||
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.m4 $(top_srcdir)/m4/exclude.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/fd-reopen.m4 $(top_srcdir)/m4/file-type.m4 \
|
||||
$(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/filemode.m4 \
|
||||
$(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/flexmember.m4 \
|
||||
$(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \
|
||||
$(top_srcdir)/m4/fprintftime.m4 $(top_srcdir)/m4/free.m4 \
|
||||
$(top_srcdir)/m4/fstypename.m4 $(top_srcdir)/m4/fsusage.m4 \
|
||||
$(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/fts.m4 \
|
||||
$(top_srcdir)/m4/getaddrinfo.m4 \
|
||||
$(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fcntl-safer.m4 \
|
||||
$(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fd-reopen.m4 \
|
||||
$(top_srcdir)/m4/file-type.m4 $(top_srcdir)/m4/fileblocks.m4 \
|
||||
$(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/filenamecat.m4 \
|
||||
$(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/fnmatch.m4 \
|
||||
$(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fprintftime.m4 \
|
||||
$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/fstypename.m4 \
|
||||
$(top_srcdir)/m4/fsusage.m4 $(top_srcdir)/m4/ftruncate.m4 \
|
||||
$(top_srcdir)/m4/fts.m4 $(top_srcdir)/m4/getaddrinfo.m4 \
|
||||
$(top_srcdir)/m4/getcwd-abort-bug.m4 \
|
||||
$(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \
|
||||
$(top_srcdir)/m4/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \
|
||||
@@ -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/getugroups.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/group-member.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/ls-mntd-fs.m4 $(top_srcdir)/m4/lstat.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/mbswidth.m4 $(top_srcdir)/m4/md5.m4 \
|
||||
$(top_srcdir)/m4/memcasecmp.m4 $(top_srcdir)/m4/memchr.m4 \
|
||||
$(top_srcdir)/m4/memcmp.m4 $(top_srcdir)/m4/memcoll.m4 \
|
||||
$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
|
||||
$(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
|
||||
$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/memxfrm.m4 \
|
||||
$(top_srcdir)/m4/mkancesdirs.m4 $(top_srcdir)/m4/mkdir-p.m4 \
|
||||
$(top_srcdir)/m4/mkdir-slash.m4 $(top_srcdir)/m4/mkstemp.m4 \
|
||||
$(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \
|
||||
$(top_srcdir)/m4/mountlist.m4 $(top_srcdir)/m4/nanosleep.m4 \
|
||||
$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbscasecmp.m4 \
|
||||
$(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbswidth.m4 \
|
||||
$(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memcasecmp.m4 \
|
||||
$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
|
||||
$(top_srcdir)/m4/memcoll.m4 $(top_srcdir)/m4/memcpy.m4 \
|
||||
$(top_srcdir)/m4/memmove.m4 $(top_srcdir)/m4/mempcpy.m4 \
|
||||
$(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/memset.m4 \
|
||||
$(top_srcdir)/m4/memxfrm.m4 $(top_srcdir)/m4/mkancesdirs.m4 \
|
||||
$(top_srcdir)/m4/mkdir-p.m4 $(top_srcdir)/m4/mkdir-slash.m4 \
|
||||
$(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.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/openat.m4 $(top_srcdir)/m4/pathmax.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/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \
|
||||
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
|
||||
$(top_srcdir)/m4/stdio-safer.m4 \
|
||||
$(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stpcpy.m4 \
|
||||
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strcspn.m4 \
|
||||
$(top_srcdir)/m4/stdio-safer.m4 $(top_srcdir)/m4/stdio_h.m4 \
|
||||
$(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stdlib_h.m4 \
|
||||
$(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcspn.m4 \
|
||||
$(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strftime.m4 \
|
||||
$(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
|
||||
$(top_srcdir)/m4/strnumcmp.m4 $(top_srcdir)/m4/strpbrk.m4 \
|
||||
$(top_srcdir)/m4/strtod.m4 $(top_srcdir)/m4/strtoimax.m4 \
|
||||
$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \
|
||||
$(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
|
||||
$(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/strverscmp.m4 \
|
||||
$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
|
||||
$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strnumcmp.m4 \
|
||||
$(top_srcdir)/m4/strpbrk.m4 $(top_srcdir)/m4/strtod.m4 \
|
||||
$(top_srcdir)/m4/strtoimax.m4 $(top_srcdir)/m4/strtol.m4 \
|
||||
$(top_srcdir)/m4/strtoll.m4 $(top_srcdir)/m4/strtoul.m4 \
|
||||
$(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
|
||||
$(top_srcdir)/m4/strverscmp.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/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.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/utimes-null.m4 $(top_srcdir)/m4/utimes.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/xfts.m4 $(top_srcdir)/m4/xgetcwd.m4 \
|
||||
$(top_srcdir)/m4/xnanosleep.m4 $(top_srcdir)/m4/xreadlink.m4 \
|
||||
$(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtod.m4 \
|
||||
$(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/m4/yesno.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/xnanosleep.m4 $(top_srcdir)/m4/xstrndup.m4 \
|
||||
$(top_srcdir)/m4/xstrtod.m4 $(top_srcdir)/m4/xstrtol.m4 \
|
||||
$(top_srcdir)/m4/yesno.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
@@ -199,15 +203,17 @@ ARFLAGS = cru
|
||||
libcoreutils_a_AR = $(AR) $(ARFLAGS)
|
||||
am__DEPENDENCIES_1 =
|
||||
am_libcoreutils_a_OBJECTS = allocsa.$(OBJEXT) base64.$(OBJEXT) \
|
||||
diacrit.$(OBJEXT) full-read.$(OBJEXT) full-write.$(OBJEXT) \
|
||||
getdate.$(OBJEXT) hash-pjw.$(OBJEXT) linebuffer.$(OBJEXT) \
|
||||
localcharset.$(OBJEXT) mbswidth.$(OBJEXT) \
|
||||
readtokens0.$(OBJEXT) savewd.$(OBJEXT) strnlen1.$(OBJEXT) \
|
||||
unicodeio.$(OBJEXT) version-etc.$(OBJEXT) \
|
||||
version-etc-fsf.$(OBJEXT) xalloc-die.$(OBJEXT) \
|
||||
xgethostname.$(OBJEXT) xmemcoll.$(OBJEXT) xstrndup.$(OBJEXT) \
|
||||
xstrtoimax.$(OBJEXT) xstrtoumax.$(OBJEXT) buffer-lcm.$(OBJEXT) \
|
||||
xmemxfrm.$(OBJEXT)
|
||||
c-ctype.$(OBJEXT) c-strcasecmp.$(OBJEXT) \
|
||||
c-strncasecmp.$(OBJEXT) diacrit.$(OBJEXT) full-read.$(OBJEXT) \
|
||||
full-write.$(OBJEXT) getdate.$(OBJEXT) hash-pjw.$(OBJEXT) \
|
||||
linebuffer.$(OBJEXT) localcharset.$(OBJEXT) mbchar.$(OBJEXT) \
|
||||
mbscasecmp.$(OBJEXT) mbswidth.$(OBJEXT) readtokens0.$(OBJEXT) \
|
||||
savewd.$(OBJEXT) strnlen1.$(OBJEXT) unicodeio.$(OBJEXT) \
|
||||
version-etc.$(OBJEXT) version-etc-fsf.$(OBJEXT) \
|
||||
xalloc-die.$(OBJEXT) xgethostname.$(OBJEXT) xmemcoll.$(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)
|
||||
LTLIBRARIES = $(noinst_LTLIBRARIES)
|
||||
PROGRAMS = $(noinst_PROGRAMS)
|
||||
@@ -232,10 +238,21 @@ HEADERS = $(noinst_HEADERS)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ABSOLUTE_DIRENT_H = @ABSOLUTE_DIRENT_H@
|
||||
ABSOLUTE_FCNTL_H = @ABSOLUTE_FCNTL_H@
|
||||
ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
|
||||
ABSOLUTE_NETINET_IN_H = @ABSOLUTE_NETINET_IN_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_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@
|
||||
ALLOCA = @ALLOCA@
|
||||
ALLOCA_H = @ALLOCA_H@
|
||||
@@ -260,6 +277,7 @@ DEFAULT_POSIX2_VERSION = @DEFAULT_POSIX2_VERSION@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DF_PROG = @DF_PROG@
|
||||
DIRENT_H = @DIRENT_H@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
@@ -273,23 +291,103 @@ GETOPT_H = @GETOPT_H@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
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@
|
||||
GREP = @GREP@
|
||||
HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
|
||||
HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
|
||||
HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
|
||||
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
|
||||
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
|
||||
HAVE_DECL_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_STRTOK_R = @HAVE_DECL_STRTOK_R@
|
||||
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_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_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
|
||||
HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
|
||||
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_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_UNISTD_H = @HAVE_UNISTD_H@
|
||||
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@
|
||||
HELP2MAN = @HELP2MAN@
|
||||
INSTALL = @INSTALL@
|
||||
@@ -309,6 +407,7 @@ LIBINTL = @LIBINTL@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@ $(POW_LIB)
|
||||
LIB_ACL = @LIB_ACL@
|
||||
LIB_ACL_TRIVIAL = @LIB_ACL_TRIVIAL@
|
||||
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
|
||||
LIB_CRYPT = @LIB_CRYPT@
|
||||
LIB_EACCESS = @LIB_EACCESS@
|
||||
@@ -343,6 +442,23 @@ PRIPTR_PREFIX = @PRIPTR_PREFIX@
|
||||
PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
|
||||
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
|
||||
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@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
@@ -353,11 +469,15 @@ STDINT_H = @STDINT_H@
|
||||
STRIP = @STRIP@
|
||||
SYS_SOCKET_H = @SYS_SOCKET_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@
|
||||
UNISTD_H = @UNISTD_H@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
WCHAR_H = @WCHAR_H@
|
||||
WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
|
||||
WCTYPE_H = @WCTYPE_H@
|
||||
WINT_T_SUFFIX = @WINT_T_SUFFIX@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
@@ -418,78 +538,83 @@ AUTOMAKE_OPTIONS = 1.5 gnits
|
||||
noinst_HEADERS =
|
||||
noinst_LIBRARIES = libcoreutils.a
|
||||
noinst_LTLIBRARIES =
|
||||
EXTRA_DIST = acl.c acl.h alloca.c alloca_.h allocsa.valgrind \
|
||||
argmatch.c argmatch.h atexit.c backupfile.c backupfile.h \
|
||||
c-strtod.c c-strtod.h c-strtod.c c-strtod.h c-strtold.c \
|
||||
calloc.c canon-host.c canon-host.h canonicalize.c \
|
||||
canonicalize.h pathmax.h chdir-long.c chdir-long.h chown.c \
|
||||
fchown-stub.c cloexec.c cloexec.h close-stream.c \
|
||||
close-stream.h closeout.c closeout.h cycle-check.c \
|
||||
cycle-check.h dev-ino.h dirfd.c dirfd.h basename.c dirname.c \
|
||||
dirname.h stripslash.c dup2.c error.c error.h euidaccess.c \
|
||||
euidaccess.h exclude.c exclude.h exitfail.c exitfail.h \
|
||||
fcntl_.h creat-safer.c fcntl--.h fcntl-safer.h open-safer.c \
|
||||
file-type.c file-type.h fileblocks.c filemode.c filemode.h \
|
||||
filenamecat.c filenamecat.h fnmatch.c fnmatch_.h \
|
||||
fnmatch_loop.c fopen-safer.c stdio--.h stdio-safer.h \
|
||||
__fpending.c __fpending.h fprintftime.c fprintftime.h free.c \
|
||||
fsusage.c fsusage.h ftruncate.c fts-cycle.c fts.c fts_.h \
|
||||
gai_strerror.c getaddrinfo.c getaddrinfo.h getcwd.c getcwd.h \
|
||||
getdate.c getdate.h getdelim.c getdelim.h getgroups.c \
|
||||
gethostname.c gethrxtime.c gethrxtime.h xtime.h getline.c \
|
||||
getline.h getloadavg.c getndelim2.c getndelim2.h getopt.c \
|
||||
getopt1.c getopt_.h getopt_int.h getpagesize.h getpass.c \
|
||||
getpass.h gettime.c gettimeofday.c getugroups.c getusershell.c \
|
||||
group-member.c group-member.h hard-locale.c hard-locale.h \
|
||||
hash.c hash.h human.c human.h i-ring.c i-ring.h idcache.c \
|
||||
inet_ntop.c inet_ntop.h intprops.h imaxtostr.c inttostr.c \
|
||||
inttostr.h offtostr.c uinttostr.c umaxtostr.c inttypes_.h \
|
||||
isapipe.c isapipe.h lchmod.h lchown.c lchown.h config.charset \
|
||||
EXTRA_DIST = acl-internal.h acl.c acl.h acl_entries.c file-has-acl.c \
|
||||
alloca.c alloca_.h allocsa.valgrind argmatch.c argmatch.h \
|
||||
atexit.c backupfile.c backupfile.h c-strtod.c c-strtod.h \
|
||||
c-strtod.c c-strtod.h c-strtold.c calloc.c canon-host.c \
|
||||
canon-host.h canonicalize.c canonicalize.h pathmax.h \
|
||||
chdir-long.c chdir-long.h chown.c fchown-stub.c cloexec.c \
|
||||
cloexec.h close-stream.c close-stream.h closeout.c closeout.h \
|
||||
cycle-check.c cycle-check.h dev-ino.h dirfd.c dirfd.h \
|
||||
basename.c dirname.c dirname.h stripslash.c dup2.c error.c \
|
||||
error.h euidaccess.c euidaccess.h exclude.c exclude.h \
|
||||
exitfail.c exitfail.h dirent_.h fchdir.c fcntl_.h \
|
||||
creat-safer.c fcntl--.h fcntl-safer.h open-safer.c file-type.c \
|
||||
file-type.h fileblocks.c filemode.c filemode.h filenamecat.c \
|
||||
filenamecat.h fnmatch.c fnmatch_.h fnmatch_loop.c \
|
||||
fopen-safer.c stdio--.h stdio-safer.h __fpending.c \
|
||||
__fpending.h fprintftime.c fprintftime.h free.c fsusage.c \
|
||||
fsusage.h ftruncate.c fts-cycle.c fts.c fts_.h gai_strerror.c \
|
||||
getaddrinfo.c getaddrinfo.h getcwd.c getdate.c getdate.h \
|
||||
getdelim.c getdelim.h getgroups.c gethostname.c gethrxtime.c \
|
||||
gethrxtime.h xtime.h getline.c getline.h getloadavg.c \
|
||||
getndelim2.c getndelim2.h getopt.c getopt1.c getopt_.h \
|
||||
getopt_int.h getpagesize.h getpass.c getpass.h gettime.c \
|
||||
gettimeofday.c getugroups.c getusershell.c group-member.c \
|
||||
group-member.h hard-locale.c hard-locale.h hash.c hash.h \
|
||||
human.c human.h i-ring.c i-ring.h idcache.c inet_ntop.c \
|
||||
inet_ntop.h intprops.h imaxtostr.c inttostr.c inttostr.h \
|
||||
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 \
|
||||
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 \
|
||||
memmove.c mempcpy.c mempcpy.h memrchr.c memrchr.h memset.c \
|
||||
mkancesdirs.c mkancesdirs.h mkdir.c dirchownmod.c \
|
||||
dirchownmod.h mkdir-p.c mkdir-p.h mkstemp.c mkstemp.h mktime.c \
|
||||
modechange.c modechange.h mountlist.c mountlist.h nanosleep.c \
|
||||
obstack.c obstack.h at-func.c fchmodat.c fstatat.c mkdirat.c \
|
||||
openat-die.c openat-priv.h openat-proc.c openat.c openat.h \
|
||||
pathmax.h physmem.c physmem.h posixtm.c posixtm.h posixver.c \
|
||||
posixver.h putenv.c quote.c quote.h quotearg.c quotearg.h \
|
||||
raise.c readlink.c readtokens.c readtokens.h readutmp.c \
|
||||
readutmp.h realloc.c regcomp.c regex.c regex.h \
|
||||
regex_internal.c regex_internal.h regexec.c rename.c \
|
||||
memmove.c mempcpy.c memrchr.c memset.c mkancesdirs.c \
|
||||
mkancesdirs.h mkdir.c dirchownmod.c dirchownmod.h mkdir-p.c \
|
||||
mkdir-p.h mkstemp.c mktime.c modechange.c modechange.h \
|
||||
mountlist.c mountlist.h mpsort.c mpsort.h nanosleep.c \
|
||||
netinet_in_.h obstack.c obstack.h at-func.c fchmodat.c \
|
||||
fchownat.c fstatat.c mkdirat.c openat-die.c openat-priv.h \
|
||||
openat-proc.c openat.c openat.h pathmax.h physmem.c physmem.h \
|
||||
posixtm.c posixtm.h posixver.c posixver.h putenv.c quote.c \
|
||||
quote.h quotearg.c quotearg.h raise.c readlink.c readtokens.c \
|
||||
readtokens.h readutmp.c readutmp.h realloc.c regcomp.c regex.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 \
|
||||
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 \
|
||||
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 \
|
||||
stat-time.h stdbool_.h stdint_.h mkstemp-safer.c stdlib--.h \
|
||||
stdlib-safer.h stpcpy.c stpcpy.h strcase.h strcasecmp.c \
|
||||
strncasecmp.c strcspn.c strdup.c strdup.h strftime.c \
|
||||
strftime.h strndup.c strndup.h strnlen.c strnlen.h strpbrk.c \
|
||||
strpbrk.h strtod.c strtoimax.c strtol.c strtoll.c strtoul.c \
|
||||
strtoull.c strtoumax.c strverscmp.c strverscmp.h socket_.h \
|
||||
stat_.h tempname.c tempname.h time_r.c time_r.h timespec.h \
|
||||
dup-safer.c fd-safer.c pipe-safer.c unistd--.h unistd-safer.h \
|
||||
unlinkdir.c unlinkdir.h unlocked-io.h inttostr.h userspec.c \
|
||||
userspec.h utime.c utimecmp.c utimecmp.h utimens.c utimens.h \
|
||||
asnprintf.c printf-args.c printf-args.h printf-parse.c \
|
||||
printf-parse.h vasnprintf.c vasnprintf.h asprintf.c \
|
||||
vasprintf.c vasprintf.h xalloc.h xmalloc.c xgetcwd.c xgetcwd.h \
|
||||
xnanosleep.c xnanosleep.h xreadlink.c xreadlink.h xstrtod.c \
|
||||
xstrtod.h xstrtol.c xstrtol.h xstrtoul.c xstrtod.c xstrtod.h \
|
||||
xstrtold.c yesno.c yesno.h
|
||||
BUILT_SOURCES = $(ALLOCA_H) $(ARPA_INET_H) configmake.h $(FCNTL_H) \
|
||||
$(FNMATCH_H) getdate.c $(GETOPT_H) $(INTTYPES_H) \
|
||||
$(NETINET_IN_H) $(STDBOOL_H) $(STDINT_H) $(SYS_SOCKET_H) \
|
||||
$(SYS_STAT_H) $(UNISTD_H)
|
||||
sig2str.c sig2str.h snprintf.c stat-macros.h stat-time.h \
|
||||
stdbool_.h stdint_.h stdio_.h stdlib_.h mkstemp-safer.c \
|
||||
stdlib--.h stdlib-safer.h stpcpy.c strcspn.c strdup.c \
|
||||
strftime.c strftime.h string_.h strndup.c strnlen.c strpbrk.c \
|
||||
strtod.c strtoimax.c strtol.c strtoll.c strtoul.c strtoull.c \
|
||||
strtoumax.c strverscmp.c strverscmp.h socket_.h stat_.h \
|
||||
sys_time_.h tempname.c tempname.h time_.h time_r.c timespec.h \
|
||||
unistd_.h dup-safer.c fd-safer.c pipe-safer.c unistd--.h \
|
||||
unistd-safer.h unlinkdir.c unlinkdir.h unlocked-io.h \
|
||||
inttostr.h userspec.c userspec.h utime.c utimecmp.c utimecmp.h \
|
||||
utimens.c utimens.h asnprintf.c printf-args.c printf-args.h \
|
||||
printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h \
|
||||
asprintf.c vasprintf.c vasprintf.h wchar_.h wctype_.h xalloc.h \
|
||||
xmalloc.c xgetcwd.c xgetcwd.h xnanosleep.c xnanosleep.h \
|
||||
xreadlink.h xreadlink.h xstrtod.c xstrtod.h xstrtol.c \
|
||||
xstrtol.h xstrtoul.c xstrtod.c xstrtod.h xstrtold.c yesno.c \
|
||||
yesno.h
|
||||
BUILT_SOURCES = $(ALLOCA_H) $(ARPA_INET_H) configmake.h $(DIRENT_H) \
|
||||
$(FCNTL_H) $(FNMATCH_H) getdate.c $(GETOPT_H) $(INTTYPES_H) \
|
||||
$(NETINET_IN_H) $(STDBOOL_H) $(STDINT_H) stdio.h stdlib.h \
|
||||
string.h $(SYS_SOCKET_H) $(SYS_STAT_H) $(SYS_TIME_H) time.h \
|
||||
unistd.h $(WCHAR_H) $(WCTYPE_H)
|
||||
SUFFIXES = .sed .sin
|
||||
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 \
|
||||
getopt.h-t inttypes.h inttypes.h-t netinet/in.h netinet/in.h-t \
|
||||
stdbool.h stdbool.h-t stdint.h stdint.h-t sys/socket.h \
|
||||
sys/socket.h-t sys/stat.h sys/stat.h-t unistd.h
|
||||
arpa/inet.h-t dirent.h dirent.h-t fcntl.h fcntl.h-t fnmatch.h \
|
||||
fnmatch.h-t getopt.h getopt.h-t inttypes.h inttypes.h-t \
|
||||
netinet/in.h netinet/in.h-t stdbool.h stdbool.h-t stdint.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
|
||||
CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \
|
||||
ref-del.sed
|
||||
@@ -507,25 +632,28 @@ AM_CPPFLAGS =
|
||||
# "gettextize --intl".
|
||||
#AM_CPPFLAGS += -I$(top_builddir)/intl
|
||||
libcoreutils_a_SOURCES = allocsa.h allocsa.c base64.h base64.c \
|
||||
diacrit.h diacrit.c exit.h full-read.h full-read.c \
|
||||
full-write.h full-write.c getdate.y gettext.h hash-pjw.h \
|
||||
hash-pjw.c linebuffer.h linebuffer.c localcharset.h \
|
||||
localcharset.c mbswidth.h mbswidth.c mbuiter.h readtokens0.h \
|
||||
readtokens0.c savewd.h savewd.c strnlen1.h strnlen1.c \
|
||||
unicodeio.h unicodeio.c verify.h version-etc.h version-etc.c \
|
||||
version-etc-fsf.c wcwidth.h xalloc-die.c xgethostname.h \
|
||||
xgethostname.c xmemcoll.h xmemcoll.c xstrndup.h xstrndup.c \
|
||||
c-ctype.h c-ctype.c c-strcase.h c-strcasecmp.c c-strncasecmp.c \
|
||||
diacrit.h diacrit.c full-read.h full-read.c full-write.h \
|
||||
full-write.c getdate.y gettext.h hash-pjw.h hash-pjw.c \
|
||||
linebuffer.h linebuffer.c localcharset.h localcharset.c \
|
||||
mbchar.c mbscasecmp.c mbswidth.h mbswidth.c mbuiter.h \
|
||||
readtokens0.h readtokens0.c savewd.h savewd.c strnlen1.h \
|
||||
strnlen1.c unicodeio.h unicodeio.c verify.h version-etc.h \
|
||||
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 \
|
||||
xmemxfrm.h
|
||||
libcoreutils_a_LIBADD = $(gl_LIBOBJS) @ALLOCA@ $(LIBOBJS)
|
||||
libcoreutils_a_DEPENDENCIES = $(gl_LIBOBJS) @ALLOCA@ $(LIBOBJS)
|
||||
EXTRA_libcoreutils_a_SOURCES = acl.c alloca.c argmatch.c atexit.c \
|
||||
backupfile.c c-strtod.c c-strtod.c c-strtold.c calloc.c \
|
||||
canon-host.c canonicalize.c chdir-long.c chown.c fchown-stub.c \
|
||||
cloexec.c close-stream.c closeout.c cycle-check.c dirfd.c \
|
||||
basename.c dirname.c stripslash.c dup2.c error.c euidaccess.c \
|
||||
exclude.c exitfail.c creat-safer.c open-safer.c file-type.c \
|
||||
fileblocks.c filemode.c filenamecat.c fnmatch.c fnmatch_loop.c \
|
||||
EXTRA_libcoreutils_a_SOURCES = acl.c acl_entries.c file-has-acl.c \
|
||||
alloca.c argmatch.c atexit.c backupfile.c c-strtod.c \
|
||||
c-strtod.c c-strtold.c calloc.c canon-host.c canonicalize.c \
|
||||
chdir-long.c chown.c fchown-stub.c cloexec.c close-stream.c \
|
||||
closeout.c cycle-check.c dirfd.c basename.c dirname.c \
|
||||
stripslash.c dup2.c error.c euidaccess.c exclude.c exitfail.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 \
|
||||
ftruncate.c fts-cycle.c fts.c gai_strerror.c getaddrinfo.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 \
|
||||
inet_ntop.c imaxtostr.c inttostr.c offtostr.c uinttostr.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 \
|
||||
memcpy.c memmove.c mempcpy.c memrchr.c memset.c mkancesdirs.c \
|
||||
mkdir.c dirchownmod.c mkdir-p.c mkstemp.c mktime.c \
|
||||
modechange.c mountlist.c nanosleep.c obstack.c at-func.c \
|
||||
fchmodat.c fstatat.c mkdirat.c openat-die.c openat-proc.c \
|
||||
openat.c physmem.c posixtm.c posixver.c putenv.c quote.c \
|
||||
quotearg.c raise.c readlink.c readtokens.c readutmp.c \
|
||||
md5.c memcasecmp.c memchr.c memcmp.c memcoll.c memcpy.c \
|
||||
memmove.c mempcpy.c memrchr.c memset.c mkancesdirs.c mkdir.c \
|
||||
dirchownmod.c mkdir-p.c mkstemp.c mktime.c modechange.c \
|
||||
mountlist.c mpsort.c nanosleep.c obstack.c at-func.c \
|
||||
fchmodat.c fchownat.c fstatat.c mkdirat.c openat-die.c \
|
||||
openat-proc.c openat.c physmem.c posixtm.c posixver.c putenv.c \
|
||||
quote.c quotearg.c raise.c readlink.c readtokens.c readutmp.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 \
|
||||
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 \
|
||||
mkstemp-safer.c stpcpy.c strcasecmp.c strncasecmp.c strcspn.c \
|
||||
strdup.c strftime.c strndup.c strnlen.c strpbrk.c strtod.c \
|
||||
strtoimax.c strtol.c strtoll.c strtoul.c strtoull.c \
|
||||
strtoumax.c strverscmp.c tempname.c time_r.c dup-safer.c \
|
||||
fd-safer.c pipe-safer.c unlinkdir.c userspec.c utime.c \
|
||||
utimecmp.c utimens.c asnprintf.c printf-args.c printf-parse.c \
|
||||
vasnprintf.c asprintf.c vasprintf.c xmalloc.c xgetcwd.c \
|
||||
xnanosleep.c xreadlink.c xstrtod.c xstrtol.c xstrtoul.c \
|
||||
xstrtod.c xstrtold.c yesno.c
|
||||
mkstemp-safer.c stpcpy.c strcspn.c strdup.c strftime.c \
|
||||
strndup.c strnlen.c strpbrk.c strtod.c strtoimax.c strtol.c \
|
||||
strtoll.c strtoul.c strtoull.c strtoumax.c strverscmp.c \
|
||||
tempname.c time_r.c dup-safer.c fd-safer.c pipe-safer.c \
|
||||
unlinkdir.c userspec.c utime.c utimecmp.c utimens.c \
|
||||
asnprintf.c printf-args.c printf-parse.c vasnprintf.c \
|
||||
asprintf.c vasprintf.c xmalloc.c xgetcwd.c xnanosleep.c \
|
||||
xstrtod.c xstrtol.c xstrtoul.c xstrtod.c xstrtold.c yesno.c
|
||||
LINK_WARNING_H = $(top_srcdir)/build-aux/link-warning.h
|
||||
charset_alias = $(DESTDIR)$(libdir)/charset.alias
|
||||
charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
|
||||
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)/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)/memxfrm.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)/__fpending.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)/allocsa.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)/basename.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-strtold.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)/exclude.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)/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)/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)/fileblocks.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)/malloc.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)/md5.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)/modechange.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)/obstack.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)/snprintf.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)/strdup.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)/strncasecmp.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)/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)/xmemxfrm.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)/xstrndup.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
|
||||
# doesn't have one.
|
||||
arpa/inet.h:
|
||||
test -d arpa || mkdir arpa
|
||||
@MKDIR_P@ arpa
|
||||
rm -f $@-t $@
|
||||
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
|
||||
echo '#include <sys/socket.h>'; \
|
||||
@@ -1128,6 +1263,17 @@ configmake.h: Makefile
|
||||
} | sed '/""/d' > $@-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
|
||||
# doesn't have one that works with the given compiler.
|
||||
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_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/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_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
|
||||
-e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
|
||||
-e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
|
||||
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
|
||||
< $(srcdir)/inttypes_.h; \
|
||||
} > $@-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
|
||||
# doesn't have one.
|
||||
netinet/in.h:
|
||||
test -d netinet || mkdir netinet
|
||||
@MKDIR_P@ netinet
|
||||
rm -f $@-t $@
|
||||
{ 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
|
||||
mv $@-t $@
|
||||
|
||||
@@ -1240,8 +1393,7 @@ stdbool.h: stdbool_.h
|
||||
stdint.h: stdint_.h
|
||||
rm -f $@-t $@
|
||||
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
|
||||
sed -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
|
||||
-e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
|
||||
sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_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_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
|
||||
@@ -1266,19 +1418,122 @@ stdint.h: stdint_.h
|
||||
} > $@-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
|
||||
# doesn't have one that works with the given compiler.
|
||||
sys/socket.h: socket_.h
|
||||
test -d sys || mkdir sys
|
||||
@MKDIR_P@ sys
|
||||
{ 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
|
||||
mv -f $@-t $@
|
||||
|
||||
# We need the following in order to create <sys/stat.h> when the system
|
||||
# has one that is incomplete.
|
||||
sys/stat.h: stat_.h
|
||||
test -d sys || mkdir sys
|
||||
@MKDIR_P@ sys
|
||||
rm -f $@-t $@
|
||||
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
|
||||
sed -e 's|@''ABSOLUTE_SYS_STAT_H''@|$(ABSOLUTE_SYS_STAT_H)|g' \
|
||||
@@ -1286,12 +1541,83 @@ sys/stat.h: stat_.h
|
||||
} > $@-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
|
||||
# <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 '/* 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
|
||||
@for dir in '' $(MOSTLYCLEANDIRS); do \
|
||||
|
||||
@@ -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
@@ -1,6 +1,6 @@
|
||||
/* 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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -20,97 +20,9 @@
|
||||
|
||||
#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 "error.h"
|
||||
#include "quote.h"
|
||||
|
||||
#include <errno.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
|
||||
#include "acl-internal.h"
|
||||
|
||||
/* If DESC is a valid file descriptor use fchmod to change the
|
||||
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 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
|
||||
a valid file descriptor, use file descriptor operations, else use
|
||||
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);
|
||||
if (acl == NULL)
|
||||
{
|
||||
if (errno == ENOSYS || errno == ENOTSUP)
|
||||
if (ACL_NOT_WELL_SUPPORTED (errno))
|
||||
return set_acl (dst_name, dest_desc, mode);
|
||||
else
|
||||
{
|
||||
@@ -231,7 +80,7 @@ copy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
{
|
||||
int saved_errno = errno;
|
||||
|
||||
if (errno == ENOSYS || errno == ENOTSUP)
|
||||
if (ACL_NOT_WELL_SUPPORTED (errno))
|
||||
{
|
||||
int n = acl_entries (acl);
|
||||
|
||||
@@ -367,7 +216,7 @@ set_acl (char const *name, int desc, mode_t mode)
|
||||
int saved_errno = errno;
|
||||
acl_free (acl);
|
||||
|
||||
if (errno == ENOTSUP || errno == ENOSYS)
|
||||
if (ACL_NOT_WELL_SUPPORTED (errno))
|
||||
{
|
||||
if (chmod_or_fchmod (name, desc, mode) != 0)
|
||||
saved_errno = errno;
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
|
||||
Written by Paul Eggert. */
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#if HAVE_SYS_ACL_H
|
||||
# include <sys/acl.h>
|
||||
#endif
|
||||
@@ -25,6 +27,8 @@
|
||||
# define GETACLCNT ACL_CNT
|
||||
#endif
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
||||
int file_has_acl (char const *, struct stat const *);
|
||||
int copy_acl (char const *, int, 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.
|
||||
Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||
/* Return the number of entries in an ACL.
|
||||
|
||||
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
|
||||
@@ -13,24 +14,26 @@
|
||||
|
||||
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. */
|
||||
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 <string.h>
|
||||
#include "acl-internal.h"
|
||||
|
||||
# else
|
||||
/* Return the number of entries in ACL. */
|
||||
|
||||
/* Get size_t */
|
||||
# include <stddef.h>
|
||||
|
||||
/* Copy N bytes of SRC to DEST, return pointer to bytes after the
|
||||
last written byte. */
|
||||
extern void *mempcpy (void *dest, const void *src, size_t n);
|
||||
|
||||
# endif
|
||||
|
||||
#endif
|
||||
int
|
||||
acl_entries (acl_t acl)
|
||||
{
|
||||
char *t;
|
||||
int entries = 0;
|
||||
char *text = acl_to_text (acl, NULL);
|
||||
if (! text)
|
||||
return -1;
|
||||
for (t = text; *t; t++)
|
||||
entries += (*t == '\n');
|
||||
acl_free (text);
|
||||
return entries;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -106,17 +106,17 @@ enum
|
||||
among all elementary types. */
|
||||
sa_alignment_long = sa_alignof (long),
|
||||
sa_alignment_double = sa_alignof (double),
|
||||
#ifdef HAVE_LONG_LONG_INT
|
||||
#if HAVE_LONG_LONG_INT
|
||||
sa_alignment_longlong = sa_alignof (long long),
|
||||
#endif
|
||||
#ifdef HAVE_LONG_DOUBLE
|
||||
#if HAVE_LONG_DOUBLE
|
||||
sa_alignment_longdouble = sa_alignof (long double),
|
||||
#endif
|
||||
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)
|
||||
#endif
|
||||
#ifdef HAVE_LONG_DOUBLE
|
||||
#if HAVE_LONG_DOUBLE
|
||||
| (sa_alignment_longdouble - 1)
|
||||
#endif
|
||||
) + 1,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* 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.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -34,7 +34,6 @@
|
||||
#define _(msgid) gettext (msgid)
|
||||
|
||||
#include "error.h"
|
||||
#include "exit.h"
|
||||
#include "quotearg.h"
|
||||
#include "quote.h"
|
||||
|
||||
|
||||
@@ -82,6 +82,11 @@
|
||||
of `digit' even when the host does not conform to POSIX. */
|
||||
#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
|
||||
to numbered) backup file name. */
|
||||
char const *simple_backup_suffix = "~";
|
||||
|
||||
+198
-62
@@ -1,5 +1,7 @@
|
||||
/* -*- buffer-read-only: t -*- vi: set ro: */
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
/* 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.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -52,6 +54,8 @@
|
||||
/* Get UCHAR_MAX. */
|
||||
#include <limits.h>
|
||||
|
||||
#include <string.h>
|
||||
|
||||
/* C89 compliant way to cast 'char' to 'unsigned char'. */
|
||||
static inline unsigned char
|
||||
to_uchar (char ch)
|
||||
@@ -300,89 +304,220 @@ isbase64 (char ch)
|
||||
return uchar_in_range (to_uchar (ch)) && 0 <= b64[to_uchar (ch)];
|
||||
}
|
||||
|
||||
/* Decode base64 encoded input array IN of length INLEN to output
|
||||
array OUT that can hold *OUTLEN bytes. 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 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)
|
||||
/* Initialize decode-context buffer, CTX. */
|
||||
void
|
||||
base64_decode_ctx_init (struct base64_decode_context *ctx)
|
||||
{
|
||||
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]))
|
||||
break;
|
||||
|
||||
if (outleft)
|
||||
char const *t = *in;
|
||||
if (4 <= in_end - *in && memchr (t, '\n', 4) == NULL)
|
||||
{
|
||||
*out++ = ((b64[to_uchar (in[0])] << 2)
|
||||
| (b64[to_uchar (in[1])] >> 4));
|
||||
outleft--;
|
||||
/* This is the common case: no newline. */
|
||||
*in += 4;
|
||||
*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)
|
||||
break;
|
||||
if (inlen == 3)
|
||||
return_false;
|
||||
|
||||
if (in[2] == '=')
|
||||
if (in[3] == '=')
|
||||
{
|
||||
if (inlen != 4)
|
||||
break;
|
||||
|
||||
if (in[3] != '=')
|
||||
break;
|
||||
|
||||
return_false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isbase64 (in[2]))
|
||||
break;
|
||||
if (!isbase64 (in[3]))
|
||||
return_false;
|
||||
|
||||
if (outleft)
|
||||
if (*outleft)
|
||||
{
|
||||
*out++ = (((b64[to_uchar (in[1])] << 4) & 0xf0)
|
||||
| (b64[to_uchar (in[2])] >> 2));
|
||||
outleft--;
|
||||
*out++ = (((b64[to_uchar (in[2])] << 6) & 0xc0)
|
||||
| b64[to_uchar (in[3])]);
|
||||
--*outleft;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (inlen == 3)
|
||||
break;
|
||||
*outp = out;
|
||||
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)
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isbase64 (in[3]))
|
||||
/* Save a copy of outleft, in case we need to re-parse this
|
||||
block of four bytes. */
|
||||
outleft_save = outleft;
|
||||
if (!decode_4 (in, inlen, &out, &outleft))
|
||||
break;
|
||||
|
||||
if (outleft)
|
||||
{
|
||||
*out++ = (((b64[to_uchar (in[2])] << 6) & 0xc0)
|
||||
| b64[to_uchar (in[3])]);
|
||||
outleft--;
|
||||
}
|
||||
in += 4;
|
||||
inlen -= 4;
|
||||
}
|
||||
}
|
||||
|
||||
in += 4;
|
||||
inlen -= 4;
|
||||
if (inlen == 0 && !flush_ctx)
|
||||
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;
|
||||
|
||||
if (inlen != 0)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
return inlen == 0;
|
||||
}
|
||||
|
||||
/* 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
|
||||
undefined. */
|
||||
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)
|
||||
{
|
||||
/* This may allocate a few bytes too much, depending on input,
|
||||
but it's not worth the extra CPU time to compute the exact amount.
|
||||
The exact amount is 3 * inlen / 4, minus 1 if the input ends
|
||||
/* This may allocate a few bytes too many, depending on input,
|
||||
but it's not worth the extra CPU time to compute the exact size.
|
||||
The exact size is 3 * inlen / 4, minus 1 if the input ends
|
||||
with "=" and minus another 1 if the input ends with "==".
|
||||
Dividing before multiplying avoids the possibility of overflow. */
|
||||
size_t needlen = 3 * (inlen / 4) + 2;
|
||||
@@ -411,7 +547,7 @@ base64_decode_alloc (const char *in, size_t inlen, char **out,
|
||||
if (!*out)
|
||||
return true;
|
||||
|
||||
if (!base64_decode (in, inlen, *out, &needlen))
|
||||
if (!base64_decode (ctx, in, inlen, *out, &needlen))
|
||||
{
|
||||
free (*out);
|
||||
*out = NULL;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* -*- buffer-read-only: t -*- vi: set ro: */
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
/* base64.h -- Encode binary data using printable characters.
|
||||
Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
Written by Simon Josefsson.
|
||||
@@ -29,6 +31,12 @@
|
||||
integer >= n/k, i.e., the ceiling of n/k. */
|
||||
# define BASE64_LENGTH(inlen) ((((inlen) + 2) / 3) * 4)
|
||||
|
||||
struct base64_decode_context
|
||||
{
|
||||
unsigned int i;
|
||||
char buf[4];
|
||||
};
|
||||
|
||||
extern bool isbase64 (char ch);
|
||||
|
||||
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 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);
|
||||
|
||||
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);
|
||||
|
||||
#endif /* BASE64_H */
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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.
|
||||
Copyright (C) 1995-1996, 2001, 2003, 2005-2006 Free Software Foundation, Inc.
|
||||
/* Case-insensitive string comparison functions in C locale.
|
||||
Copyright (C) 1995-1996, 2001, 2003, 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
|
||||
@@ -15,37 +15,36 @@
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
|
||||
|
||||
#ifndef _STRCASE_H
|
||||
#define _STRCASE_H
|
||||
#ifndef C_STRCASE_H
|
||||
#define C_STRCASE_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. */
|
||||
#include <string.h>
|
||||
|
||||
|
||||
/* 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. 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
|
||||
extern "C" {
|
||||
#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
|
||||
greater than zero if S1 is lexicographically less than, equal to or greater
|
||||
than S2.
|
||||
Note: This function may, in multibyte locales, return 0 for strings of
|
||||
different lengths! */
|
||||
extern int strcasecmp (const char *s1, const char *s2);
|
||||
than S2. */
|
||||
extern int c_strcasecmp (const char *s1, const char *s2);
|
||||
|
||||
/* Compare no more than N characters of strings S1 and S2, ignoring case,
|
||||
returning less than, equal to or greater than zero if S1 is
|
||||
lexicographically less than, equal to or greater than S2.
|
||||
Note: This function can not work correctly in multibyte locales. */
|
||||
#if ! HAVE_DECL_STRNCASECMP
|
||||
extern int strncasecmp (const char *s1, const char *s2, size_t n);
|
||||
#endif
|
||||
lexicographically less than, equal to or greater than S2. */
|
||||
extern int c_strncasecmp (const char *s1, const char *s2, size_t n);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -53,4 +52,4 @@ extern int strncasecmp (const char *s1, const char *s2, size_t n);
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* _STRCASE_H */
|
||||
#endif /* C_STRCASE_H */
|
||||
@@ -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.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -18,20 +18,14 @@
|
||||
#include <config.h>
|
||||
|
||||
/* Specification. */
|
||||
#include "strcase.h"
|
||||
#include "c-strcase.h"
|
||||
|
||||
#include <ctype.h>
|
||||
#include <limits.h>
|
||||
|
||||
#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
|
||||
|
||||
/* 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. */
|
||||
#include "c-ctype.h"
|
||||
|
||||
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 *p2 = (const unsigned char *) s2;
|
||||
@@ -42,8 +36,8 @@ strncasecmp (const char *s1, const char *s2, size_t n)
|
||||
|
||||
do
|
||||
{
|
||||
c1 = TOLOWER (*p1);
|
||||
c2 = TOLOWER (*p2);
|
||||
c1 = c_tolower (*p1);
|
||||
c2 = c_tolower (*p2);
|
||||
|
||||
if (--n == 0 || c1 == '\0')
|
||||
break;
|
||||
@@ -1,6 +1,6 @@
|
||||
/* 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]>.
|
||||
|
||||
@@ -22,8 +22,9 @@
|
||||
|
||||
#include "canon-host.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "getaddrinfo.h"
|
||||
#include "strdup.h"
|
||||
|
||||
/* Store the last error for the single-threaded version of this function. */
|
||||
static int last_cherror;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
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;
|
||||
}
|
||||
|
||||
buf = xreadlink (rname, st.st_size);
|
||||
buf = xreadlink_with_size (rname, st.st_size);
|
||||
if (!buf)
|
||||
{
|
||||
if (can_mode == CAN_MISSING)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -19,7 +19,7 @@
|
||||
#ifndef CANONICALIZE_H_
|
||||
# define CANONICALIZE_H_
|
||||
|
||||
# ifdef PROVIDE_CANONICALIZE_FILENAME_MODE
|
||||
# if GNULIB_CANONICALIZE
|
||||
enum canonicalize_mode_t
|
||||
{
|
||||
/* All components must exist. */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -29,7 +29,6 @@
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "memrchr.h"
|
||||
#include "openat.h"
|
||||
|
||||
#ifndef PATH_MAX
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* provide consistent interface to chown for systems that don't interpret
|
||||
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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -21,18 +21,23 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
/* Disable the definition of chown to rpl_chown (from config.h) in this
|
||||
file. Otherwise, we'd get conflicting prototypes for rpl_chown on
|
||||
most systems. */
|
||||
#undef chown
|
||||
/* Specification. */
|
||||
#include <unistd.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.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
|
||||
systems with one or both of the following problems:
|
||||
- chown doesn't treat an ID of -1 as meaning
|
||||
|
||||
@@ -120,6 +120,9 @@
|
||||
*/
|
||||
/* #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 GNULIB_CLOSE_STREAM 1
|
||||
|
||||
@@ -1767,7 +1770,7 @@
|
||||
#define gl_va_copy(a,b) ((a) = (b))
|
||||
|
||||
/* 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
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
@@ -1782,7 +1785,7 @@
|
||||
/* #undef intmax_t */
|
||||
|
||||
/* 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 major_t unsigned int
|
||||
@@ -1869,7 +1872,7 @@
|
||||
#define regexec rpl_regexec
|
||||
|
||||
/* 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.
|
||||
*/
|
||||
@@ -1895,7 +1898,7 @@
|
||||
/* #undef strtod */
|
||||
|
||||
/* 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. */
|
||||
/* #undef uid_t */
|
||||
|
||||
@@ -1,17 +1,50 @@
|
||||
/* 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>. */
|
||||
#undef ABSOLUTE_FCNTL_H
|
||||
|
||||
/* Define this to an absolute name of <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>. */
|
||||
#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>. */
|
||||
#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. */
|
||||
#undef ARGMATCH_DIE
|
||||
|
||||
@@ -89,6 +122,9 @@
|
||||
/* Define as good substitute value for 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'
|
||||
prefix, define this to compute the length of that prefix, including the
|
||||
colon. */
|
||||
@@ -119,15 +155,24 @@
|
||||
*/
|
||||
#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
|
||||
|
||||
/* Define to 1 when using the gnulib fcntl-safer module. */
|
||||
/* Define to 1 when using the gnulib module 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
|
||||
|
||||
/* Define to 1 when using the gnulib module fts. */
|
||||
#undef GNULIB_FTS
|
||||
|
||||
/* The concatenation of the strings `GNU ', and PACKAGE. */
|
||||
#undef GNU_PACKAGE
|
||||
|
||||
@@ -173,8 +218,8 @@
|
||||
/* Define to 1 if you have the `acl_set_file' function. */
|
||||
#undef HAVE_ACL_SET_FILE
|
||||
|
||||
/* Define to 1 if you have the `acl_to_text' function. */
|
||||
#undef HAVE_ACL_TO_TEXT
|
||||
/* Define to 1 if you have the `acl_trivial' function. */
|
||||
#undef HAVE_ACL_TRIVIAL
|
||||
|
||||
/* Define to 1 if you have the `alarm' function. */
|
||||
#undef HAVE_ALARM
|
||||
@@ -424,10 +469,6 @@
|
||||
*/
|
||||
#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
|
||||
you don't. */
|
||||
#undef HAVE_DECL_PUTCHAR_UNLOCKED
|
||||
@@ -460,10 +501,6 @@
|
||||
don't. */
|
||||
#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
|
||||
don't. */
|
||||
#undef HAVE_DECL_STRNDUP
|
||||
@@ -527,6 +564,9 @@
|
||||
/* Define to 1 if you have the `directio' function. */
|
||||
#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. */
|
||||
#undef HAVE_DIRFD
|
||||
|
||||
@@ -557,6 +597,9 @@
|
||||
/* Define to 1 if you have the `fchmod' function. */
|
||||
#undef HAVE_FCHMOD
|
||||
|
||||
/* Define to 1 if you have the `fchmodat' function. */
|
||||
#undef HAVE_FCHMODAT
|
||||
|
||||
/* Define to 1 if you have the `fchown' function. */
|
||||
#undef HAVE_FCHOWN
|
||||
|
||||
@@ -576,6 +619,9 @@
|
||||
/* Define to 1 if you have the `flockfile' function. */
|
||||
#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. */
|
||||
#undef HAVE_FSEEKO
|
||||
|
||||
@@ -705,9 +751,6 @@
|
||||
/* Define to 1 if you have the `iswctype' function. */
|
||||
#undef HAVE_ISWCTYPE
|
||||
|
||||
/* Define to 1 if you have the `iswprint' function. */
|
||||
#undef HAVE_ISWPRINT
|
||||
|
||||
/* Define to 1 if you have the `iswspace' function. */
|
||||
#undef HAVE_ISWSPACE
|
||||
|
||||
@@ -820,6 +863,9 @@
|
||||
/* Define to 1 if you have the `microuptime' function. */
|
||||
#undef HAVE_MICROUPTIME
|
||||
|
||||
/* Define to 1 if you have the `mkdirat' function. */
|
||||
#undef HAVE_MKDIRAT
|
||||
|
||||
/* Define to 1 if you have the `mkfifo' function. */
|
||||
#undef HAVE_MKFIFO
|
||||
|
||||
@@ -966,6 +1012,9 @@
|
||||
/* Define to 1 if you have the <stdio_ext.h> header file. */
|
||||
#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. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
@@ -994,9 +1043,6 @@
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#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. */
|
||||
#undef HAVE_STRNDUP
|
||||
|
||||
@@ -1082,9 +1128,6 @@
|
||||
/* Define to 1 if `st_spare1' is member of `struct stat'. */
|
||||
#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'. */
|
||||
#undef HAVE_STRUCT_TM_TM_ZONE
|
||||
|
||||
@@ -1252,6 +1295,9 @@
|
||||
/* Define to 1 if you have the <sys/table.h> header file. */
|
||||
#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. */
|
||||
#undef HAVE_SYS_TIME_H
|
||||
|
||||
@@ -1282,9 +1328,8 @@
|
||||
/* Define to 1 if you have the <termios.h> header file. */
|
||||
#undef HAVE_TERMIOS_H
|
||||
|
||||
/* Define to 1 if localtime_r, etc. have the type signatures that POSIX
|
||||
requires. */
|
||||
#undef HAVE_TIME_R_POSIX
|
||||
/* Define to 1 if you have the <time.h> header file. */
|
||||
#undef HAVE_TIME_H
|
||||
|
||||
/* Define if struct tm has the tm_gmtoff member. */
|
||||
#undef HAVE_TM_GMTOFF
|
||||
@@ -1345,6 +1390,12 @@
|
||||
/* Define to 1 if you have the `vasprintf' function. */
|
||||
#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. */
|
||||
#undef HAVE_WCHAR_H
|
||||
|
||||
@@ -1381,6 +1432,9 @@
|
||||
/* Define to 1 if you have the `wmempcpy' function. */
|
||||
#undef HAVE_WMEMPCPY
|
||||
|
||||
/* Define to 1 if `fork' works. */
|
||||
#undef HAVE_WORKING_FORK
|
||||
|
||||
/* Define to 1 if O_NOATIME works. */
|
||||
#undef HAVE_WORKING_O_NOATIME
|
||||
|
||||
@@ -1390,12 +1444,18 @@
|
||||
/* Define if utimes works properly. */
|
||||
#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. */
|
||||
#undef HAVE_WS2TCPIP_H
|
||||
|
||||
/* Define to 1 if the system has the type `_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
|
||||
member named physmem. */
|
||||
#undef HAVE__SYSTEM_CONFIGURATION
|
||||
@@ -1535,9 +1595,6 @@
|
||||
/* Define to 1 if the C compiler supports function 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
|
||||
'ptrdiff_t'. */
|
||||
#undef PTRDIFF_T_SUFFIX
|
||||
@@ -1546,14 +1603,15 @@
|
||||
like the one from SunOS 4.1.1_U1. */
|
||||
#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 */
|
||||
#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
|
||||
'sig_atomic_t'. */
|
||||
#undef SIG_ATOMIC_T_SUFFIX
|
||||
@@ -1633,7 +1691,7 @@
|
||||
#undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC
|
||||
|
||||
/* Define if tzset clobbers localtime's static buffer. */
|
||||
#undef TZSET_CLOBBERS_LOCALTIME_BUFFER
|
||||
#undef TZSET_CLOBBERS_LOCALTIME
|
||||
|
||||
/* Define to 1 for Encore UMAX. */
|
||||
#undef UMAX
|
||||
@@ -1719,16 +1777,10 @@
|
||||
# undef _TANDEM_SOURCE
|
||||
#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
|
||||
used. */
|
||||
#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. */
|
||||
#undef __OPENAT_PREFIX
|
||||
|
||||
@@ -1738,8 +1790,8 @@
|
||||
/* Define to rpl_calloc if the replacement function should be used. */
|
||||
#undef calloc
|
||||
|
||||
/* Define to rpl_chown if the replacement function should be used. */
|
||||
#undef chown
|
||||
/* Define to rpl_fchownat if the replacement function should be used. */
|
||||
#undef fchownat
|
||||
|
||||
/* Define to a replacement function name for fnmatch(). */
|
||||
#undef fnmatch
|
||||
@@ -1756,9 +1808,6 @@
|
||||
/* Define to a replacement function name for 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. */
|
||||
#undef gid_t
|
||||
|
||||
@@ -1810,9 +1859,6 @@
|
||||
/* Define to the name of the strftime replacement function. */
|
||||
#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. */
|
||||
#undef off_t
|
||||
|
||||
@@ -1905,6 +1951,9 @@
|
||||
/* Define as a macro for copying va_list variables. */
|
||||
#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
|
||||
code using `volatile' can become incorrect without. Disable with care. */
|
||||
#undef volatile
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* String copying.
|
||||
Copyright (C) 1995, 2001, 2003 Free Software Foundation, Inc.
|
||||
/* Wrapper around <dirent.h>.
|
||||
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
|
||||
@@ -15,27 +15,28 @@
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
|
||||
|
||||
#ifndef _STPCPY_H
|
||||
#define _STPCPY_H
|
||||
#ifndef _GL_DIRENT_H
|
||||
#define _GL_DIRENT_H
|
||||
|
||||
#if HAVE_STPCPY
|
||||
#include @ABSOLUTE_DIRENT_H@
|
||||
|
||||
/* Get stpcpy() declaration. */
|
||||
#include <string.h>
|
||||
|
||||
#else
|
||||
/* Declare overridden functions. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Copy SRC to DST, returning the address of the terminating '\0' in DST. */
|
||||
extern char *stpcpy (char *dst, const char *src);
|
||||
#if @REPLACE_FCHDIR@
|
||||
# define opendir rpl_opendir
|
||||
extern DIR * opendir (const char *);
|
||||
# define closedir rpl_closedir
|
||||
extern int closedir (DIR *);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _STPCPY_H */
|
||||
#endif /* _GL_DIRENT_H */
|
||||
@@ -48,7 +48,7 @@
|
||||
# endif
|
||||
|
||||
# ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT
|
||||
# define DOUBLE_SLASH_IS_DISTINCT_ROOT 1
|
||||
# define DOUBLE_SLASH_IS_DISTINCT_ROOT 0
|
||||
# endif
|
||||
|
||||
# if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
int
|
||||
dup_safer (int fd)
|
||||
{
|
||||
#ifdef F_DUPFD
|
||||
#if defined F_DUPFD && !defined FCHDIR_REPLACEMENT
|
||||
return fcntl (fd, F_DUPFD, STDERR_FILENO + 1);
|
||||
#else
|
||||
/* fd_safer calls us back, but eventually the recursion unwinds and
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* 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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -20,9 +20,11 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
/* Specification. */
|
||||
#include <unistd.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifndef F_DUPFD
|
||||
static int
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* exclude.c -- exclude file names
|
||||
|
||||
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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -33,7 +33,6 @@
|
||||
|
||||
#include "exclude.h"
|
||||
#include "fnmatch.h"
|
||||
#include "strcase.h"
|
||||
#include "xalloc.h"
|
||||
#include "verify.h"
|
||||
|
||||
@@ -45,13 +44,16 @@
|
||||
#ifndef FNM_CASEFOLD
|
||||
# define FNM_CASEFOLD 0
|
||||
#endif
|
||||
#ifndef FNM_EXTMATCH
|
||||
# define FNM_EXTMATCH 0
|
||||
#endif
|
||||
#ifndef FNM_LEADING_DIR
|
||||
# define FNM_LEADING_DIR 0
|
||||
#endif
|
||||
|
||||
verify (((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS)
|
||||
& (FNM_PATHNAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR
|
||||
| FNM_CASEFOLD))
|
||||
| FNM_CASEFOLD | FNM_EXTMATCH))
|
||||
== 0);
|
||||
|
||||
/* 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))
|
||||
return ((options & FNM_CASEFOLD)
|
||||
? strcasecmp (pattern, f)
|
||||
? mbscasecmp (pattern, f)
|
||||
: strcmp (pattern, f));
|
||||
else
|
||||
else if (! (options & FNM_CASEFOLD))
|
||||
{
|
||||
size_t patlen = strlen (pattern);
|
||||
int r = ((options & FNM_CASEFOLD)
|
||||
? strncasecmp (pattern, f, patlen)
|
||||
: strncmp (pattern, f, patlen));
|
||||
int r = strncmp (pattern, f, patlen);
|
||||
if (! r)
|
||||
{
|
||||
r = f[patlen];
|
||||
@@ -113,6 +113,30 @@ fnmatch_no_wildcards (char const *pattern, char const *f, int options)
|
||||
}
|
||||
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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* 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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <config.h>
|
||||
|
||||
#include "exitfail.h"
|
||||
#include "exit.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
int volatile exit_failure = EXIT_FAILURE;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
@@ -26,6 +26,25 @@
|
||||
#include <unistd.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
|
||||
/* Tru64 spells it `O_DIRECTIO'. */
|
||||
# define O_DIRECT O_DIRECTIO
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -40,15 +40,14 @@
|
||||
#include <string.h>
|
||||
|
||||
#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))
|
||||
|
||||
/* For platform which support the ISO C amendement 1 functionality we
|
||||
support user defined character classes. */
|
||||
#if defined _LIBC || WIDE_CHAR_SUPPORT
|
||||
/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
|
||||
# include <wchar.h>
|
||||
# include <wctype.h>
|
||||
# include <wchar.h>
|
||||
#endif
|
||||
|
||||
/* We need some of the locale data (the collation sequence information)
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
/* 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
|
||||
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. */
|
||||
|
||||
#ifndef _FNMATCH_H
|
||||
# define _FNMATCH_H 1
|
||||
#define _FNMATCH_H 1
|
||||
|
||||
# ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* We #undef these before defining them because some losing systems
|
||||
(HP-UX A.08.07 for example) define these in <unistd.h>. */
|
||||
# undef FNM_PATHNAME
|
||||
# undef FNM_NOESCAPE
|
||||
# undef FNM_PERIOD
|
||||
#undef FNM_PATHNAME
|
||||
#undef FNM_NOESCAPE
|
||||
#undef FNM_PERIOD
|
||||
|
||||
/* Bits set in the FLAGS argument to `fnmatch'. */
|
||||
# define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */
|
||||
# define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */
|
||||
# define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */
|
||||
#define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */
|
||||
#define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */
|
||||
#define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */
|
||||
|
||||
# if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE
|
||||
# define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */
|
||||
# define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */
|
||||
# define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */
|
||||
# define FNM_EXTMATCH (1 << 5) /* Use ksh-like extended matching. */
|
||||
# endif
|
||||
#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE
|
||||
# define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */
|
||||
# define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */
|
||||
# define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */
|
||||
# define FNM_EXTMATCH (1 << 5) /* Use ksh-like extended matching. */
|
||||
#endif
|
||||
|
||||
/* 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
|
||||
`fnmatch'. Since this is not the case here it will never be
|
||||
returned but the conformance test suites still require the symbol
|
||||
to be defined. */
|
||||
# ifdef _XOPEN_SOURCE
|
||||
# define FNM_NOSYS (-1)
|
||||
# endif
|
||||
#ifdef _XOPEN_SOURCE
|
||||
# define FNM_NOSYS (-1)
|
||||
#endif
|
||||
|
||||
/* Match NAME against the file name pattern PATTERN,
|
||||
returning zero if it matches, FNM_NOMATCH if not. */
|
||||
extern int fnmatch (const char *__pattern, const char *__name,
|
||||
int __flags);
|
||||
|
||||
# ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif /* fnmatch.h */
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/* 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
|
||||
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);
|
||||
++p;
|
||||
|
||||
if (c == fn)
|
||||
goto matched;
|
||||
goto normal_bracket;
|
||||
}
|
||||
else if (c == L_('[') && *p == L_(':'))
|
||||
{
|
||||
@@ -494,24 +494,31 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
|
||||
|
||||
idx = 0;
|
||||
elem = hash % table_size;
|
||||
second = hash % (table_size - 2);
|
||||
while (symb_table[2 * elem] != 0)
|
||||
if (symb_table[2 * elem] != 0)
|
||||
{
|
||||
/* 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;
|
||||
}
|
||||
second = hash % (table_size - 2) + 1;
|
||||
|
||||
/* Next entry. */
|
||||
elem += second;
|
||||
do
|
||||
{
|
||||
/* 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)
|
||||
@@ -592,6 +599,12 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
|
||||
if (!is_range && c == fn)
|
||||
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;
|
||||
c = *p++;
|
||||
}
|
||||
@@ -703,25 +716,30 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
|
||||
|
||||
idx = 0;
|
||||
elem = hash % table_size;
|
||||
second = hash % (table_size - 2);
|
||||
while (symb_table[2 * elem] != 0)
|
||||
if (symb_table[2 * elem] != 0)
|
||||
{
|
||||
/* 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;
|
||||
}
|
||||
second = hash % (table_size - 2) + 1;
|
||||
|
||||
/* Next entry. */
|
||||
elem += second;
|
||||
do
|
||||
{
|
||||
/* 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)
|
||||
|
||||
@@ -56,6 +56,11 @@
|
||||
# include "full-read.h"
|
||||
#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
|
||||
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
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
/* Specification. */
|
||||
#include <unistd.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
@@ -21,7 +24,6 @@ ftruncate (int fd, off_t length)
|
||||
|
||||
# include <sys/stat.h>
|
||||
# include <errno.h>
|
||||
# include <unistd.h>
|
||||
|
||||
int
|
||||
ftruncate (int fd, off_t length)
|
||||
@@ -64,7 +66,7 @@ ftruncate (int fd, off_t length)
|
||||
}
|
||||
|
||||
# else /* not F_CHSIZE nor F_FREESP */
|
||||
# if HAVE_CHSIZE
|
||||
# if HAVE_CHSIZE /* native Windows, e.g. mingw */
|
||||
|
||||
int
|
||||
ftruncate (int fd, off_t length)
|
||||
|
||||
+28
-26
@@ -1,6 +1,6 @@
|
||||
/* 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
|
||||
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
|
||||
#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_build (FTS *, int) 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 *)
|
||||
internal_function;
|
||||
|
||||
#if _LGPL_PACKAGE
|
||||
#if GNULIB_FTS
|
||||
# include "fts-cycle.c"
|
||||
#else
|
||||
static bool enter_dir (FTS *fts, FTSENT *ent) { return true; }
|
||||
static void leave_dir (FTS *fts, FTSENT *ent) {}
|
||||
static bool setup_dir (FTS *fts) { return true; }
|
||||
static void free_dir (FTS *fts) {}
|
||||
#else
|
||||
# include "fts-cycle.c"
|
||||
#endif
|
||||
|
||||
#ifndef MAX
|
||||
@@ -236,8 +248,7 @@ fd_ring_clear (I_ring *fd_ring)
|
||||
static void
|
||||
fts_set_stat_required (FTSENT *p, bool required)
|
||||
{
|
||||
if (p->fts_info != FTS_NSOK)
|
||||
abort ();
|
||||
fts_assert (p->fts_info == FTS_NSOK);
|
||||
p->fts_statp->st_size = (required
|
||||
? FTS_STAT_REQUIRED
|
||||
: FTS_NO_STAT_REQUIRED);
|
||||
@@ -274,8 +285,7 @@ internal_function
|
||||
cwd_advance_fd (FTS *sp, int fd, bool chdir_down_one)
|
||||
{
|
||||
int old = sp->fts_cwd_fd;
|
||||
if (old == fd && old != AT_FDCWD)
|
||||
abort ();
|
||||
fts_assert (old != fd || old == AT_FDCWD);
|
||||
|
||||
if (chdir_down_one)
|
||||
{
|
||||
@@ -688,6 +698,7 @@ fts_read (register FTS *sp)
|
||||
/* Move to the next node on this level. */
|
||||
next: tmp = p;
|
||||
if ((p = p->fts_link) != NULL) {
|
||||
sp->fts_cur = p;
|
||||
free(tmp);
|
||||
|
||||
/*
|
||||
@@ -698,7 +709,6 @@ next: tmp = p;
|
||||
if (p->fts_level == FTS_ROOTLEVEL) {
|
||||
if (RESTORE_INITIAL_CWD(sp)) {
|
||||
SET(FTS_STOP);
|
||||
sp->fts_cur = p;
|
||||
return (NULL);
|
||||
}
|
||||
fts_load(sp, p);
|
||||
@@ -728,22 +738,15 @@ name: t = sp->fts_path + NAPPEND(p->fts_parent);
|
||||
*t++ = '/';
|
||||
memmove(t, p->fts_name, p->fts_namelen + 1);
|
||||
check_for_dir:
|
||||
sp->fts_cur = p;
|
||||
if (p->fts_info == FTS_NSOK)
|
||||
{
|
||||
enum Fts_stat need_stat = p->fts_statp->st_size;
|
||||
switch (need_stat)
|
||||
{
|
||||
case FTS_STAT_REQUIRED:
|
||||
p->fts_info = fts_stat(sp, p, false);
|
||||
break;
|
||||
case FTS_NO_STAT_REQUIRED:
|
||||
break;
|
||||
default:
|
||||
abort ();
|
||||
}
|
||||
if (p->fts_statp->st_size == FTS_STAT_REQUIRED)
|
||||
p->fts_info = fts_stat(sp, p, false);
|
||||
else
|
||||
fts_assert (p->fts_statp->st_size == FTS_NO_STAT_REQUIRED);
|
||||
}
|
||||
|
||||
sp->fts_cur = p;
|
||||
if (p->fts_info == FTS_D)
|
||||
{
|
||||
/* Now that P->fts_statp is guaranteed to be valid,
|
||||
@@ -763,6 +766,7 @@ check_for_dir:
|
||||
|
||||
/* Move up to the parent node. */
|
||||
p = tmp->fts_parent;
|
||||
sp->fts_cur = p;
|
||||
free(tmp);
|
||||
|
||||
if (p->fts_level == FTS_ROOTPARENTLEVEL) {
|
||||
@@ -775,8 +779,7 @@ check_for_dir:
|
||||
return (sp->fts_cur = NULL);
|
||||
}
|
||||
|
||||
if (p->fts_info == FTS_NSOK)
|
||||
abort ();
|
||||
fts_assert (p->fts_info != FTS_NSOK);
|
||||
|
||||
/* NUL terminate the file name. */
|
||||
sp->fts_path[p->fts_pathlen] = '\0';
|
||||
@@ -809,7 +812,6 @@ check_for_dir:
|
||||
p->fts_info = p->fts_errno ? FTS_ERR : FTS_DP;
|
||||
if (p->fts_errno == 0)
|
||||
LEAVE_DIR (sp, p, "3");
|
||||
sp->fts_cur = p;
|
||||
return ISSET(FTS_STOP) ? NULL : p;
|
||||
}
|
||||
|
||||
@@ -1345,7 +1347,7 @@ fd_ring_check (FTS const *sp)
|
||||
error (0, errno, "parent: %s", c2);
|
||||
free (cwd);
|
||||
free (c2);
|
||||
abort ();
|
||||
fts_assert (0);
|
||||
}
|
||||
close (cwd_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);
|
||||
}
|
||||
|
||||
#if _LGPL_PACKAGE
|
||||
#if !GNULIB_FTS
|
||||
{
|
||||
/*
|
||||
* Cycle detection is done by brute force when the directory
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* 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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -52,7 +52,6 @@
|
||||
|
||||
# ifdef _LIBC
|
||||
# include <features.h>
|
||||
# define _LGPL_PACKAGE 1
|
||||
# else
|
||||
# undef __THROW
|
||||
# define __THROW
|
||||
@@ -142,7 +141,7 @@ typedef struct {
|
||||
# define FTS_STOP 0x2000 /* (private) unrecoverable error */
|
||||
int fts_options; /* fts_open options, global flags */
|
||||
|
||||
# if !_LGPL_PACKAGE
|
||||
# if GNULIB_FTS
|
||||
union {
|
||||
/* This data structure is used if FTS_TIGHT_CYCLE_CHECK is
|
||||
specified. It records the directories between a starting
|
||||
|
||||
@@ -52,6 +52,7 @@ values[] =
|
||||
{ EAI_SERVICE, N_("Servname not supported for ai_socktype") },
|
||||
{ EAI_SOCKTYPE, N_("ai_socktype not supported") },
|
||||
{ EAI_SYSTEM, N_("System error") },
|
||||
{ EAI_OVERFLOW, N_("Argument buffer too small") },
|
||||
#ifdef __USE_GNU
|
||||
{ EAI_INPROGRESS, N_("Processing request in progress") },
|
||||
{ EAI_CANCELED, N_("Request canceled") },
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Contributed by Simon Josefsson <simon@josefsson.org>.
|
||||
|
||||
@@ -28,9 +28,12 @@
|
||||
/* Get calloc. */
|
||||
#include <stdlib.h>
|
||||
|
||||
/* Get memcpy. */
|
||||
/* Get memcpy, strdup. */
|
||||
#include <string.h>
|
||||
|
||||
/* Get snprintf. */
|
||||
#include <stdio.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "gettext.h"
|
||||
@@ -38,8 +41,6 @@
|
||||
#define N_(String) String
|
||||
|
||||
#include "inet_ntop.h"
|
||||
#include "snprintf.h"
|
||||
#include "strdup.h"
|
||||
|
||||
/* BeOS has AF_INET, but not PF_INET. */
|
||||
#ifndef PF_INET
|
||||
|
||||
@@ -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.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
@@ -18,7 +18,8 @@
|
||||
|
||||
#if !_LIBC
|
||||
# include <config.h>
|
||||
# include "getcwd.h"
|
||||
# include <unistd.h>
|
||||
# include "dirfd.h"
|
||||
#endif
|
||||
|
||||
#include <errno.h>
|
||||
@@ -49,8 +50,6 @@
|
||||
# ifndef mempcpy
|
||||
# define mempcpy __mempcpy
|
||||
# endif
|
||||
#else
|
||||
# include "mempcpy.h"
|
||||
#endif
|
||||
|
||||
#include <limits.h>
|
||||
@@ -97,6 +96,11 @@
|
||||
# define __opendir opendir
|
||||
# define __readdir readdir
|
||||
#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
|
||||
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 used;
|
||||
|
||||
#if HAVE_PARTLY_WORKING_GETCWD && !defined AT_FDCWD
|
||||
#if HAVE_PARTLY_WORKING_GETCWD
|
||||
/* The system getcwd works, except it sometimes fails when it
|
||||
shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT. If
|
||||
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).
|
||||
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
|
||||
dir = getcwd (buf, size);
|
||||
if (dir || (errno != ERANGE && !is_ENAMETOOLONG (errno) && errno != ENOENT))
|
||||
@@ -226,6 +235,8 @@ __getcwd (char *buf, size_t size)
|
||||
dirstream = fdopendir (fd);
|
||||
if (dirstream == NULL)
|
||||
goto lose;
|
||||
/* Reset fd. It may have been closed by fdopendir. */
|
||||
fd = dirfd (dirstream);
|
||||
fd_needs_closing = false;
|
||||
#else
|
||||
dirstream = __opendir (dotlist);
|
||||
@@ -380,7 +391,7 @@ __getcwd (char *buf, size_t size)
|
||||
used = dir + allocated - dirp;
|
||||
memmove (dir, dirp, used);
|
||||
|
||||
if (buf == NULL && size == 0)
|
||||
if (size == 0)
|
||||
/* Ensure that the buffer is only as large as necessary. */
|
||||
buf = realloc (dir, used);
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
/* 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.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -100,6 +100,7 @@
|
||||
#include <config.h>
|
||||
|
||||
#include "getdate.h"
|
||||
#include "timespec.h"
|
||||
|
||||
/* There's no need to extend the stack, so there's no need to involve
|
||||
alloca. */
|
||||
@@ -337,16 +338,16 @@ static long int time_zone_hhmm (textint, long int);
|
||||
|
||||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||
typedef union YYSTYPE
|
||||
{/* Line 198 of yacc.c. */
|
||||
#line 213 "getdate.y"
|
||||
{/* Line 191 of yacc.c. */
|
||||
#line 214 "getdate.y"
|
||||
|
||||
long int intval;
|
||||
textint textintval;
|
||||
struct timespec timespec;
|
||||
relative_time rel;
|
||||
}
|
||||
/* Line 198 of yacc.c. */
|
||||
#line 350 "getdate.c"
|
||||
/* Line 191 of yacc.c. */
|
||||
#line 351 "getdate.c"
|
||||
YYSTYPE;
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||||
@@ -359,7 +360,7 @@ typedef union YYSTYPE
|
||||
/* Copy the second part of user declarations. */
|
||||
|
||||
/* Line 221 of yacc.c. */
|
||||
#line 363 "getdate.c"
|
||||
#line 364 "getdate.c"
|
||||
|
||||
#ifdef short
|
||||
# undef short
|
||||
@@ -671,14 +672,14 @@ static const yytype_int8 yyrhs[] =
|
||||
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
||||
static const yytype_uint16 yyrline[] =
|
||||
{
|
||||
0, 239, 239, 240, 244, 251, 253, 257, 259, 261,
|
||||
263, 265, 267, 269, 273, 281, 289, 299, 306, 318,
|
||||
323, 331, 333, 343, 345, 347, 352, 357, 362, 367,
|
||||
375, 380, 400, 407, 415, 423, 428, 434, 439, 448,
|
||||
458, 471, 473, 475, 477, 479, 481, 483, 485, 487,
|
||||
489, 491, 493, 495, 497, 499, 501, 503, 505, 507,
|
||||
509, 511, 515, 517, 519, 521, 523, 525, 529, 529,
|
||||
532, 533, 538, 539, 544, 582, 583, 589, 590
|
||||
0, 240, 240, 241, 245, 252, 254, 258, 260, 262,
|
||||
264, 266, 268, 270, 274, 282, 290, 300, 307, 319,
|
||||
324, 332, 334, 344, 346, 348, 353, 358, 363, 368,
|
||||
376, 381, 401, 408, 416, 424, 429, 435, 440, 449,
|
||||
459, 472, 474, 476, 478, 480, 482, 484, 486, 488,
|
||||
490, 492, 494, 496, 498, 500, 502, 504, 506, 508,
|
||||
510, 512, 516, 518, 520, 522, 524, 526, 530, 530,
|
||||
533, 534, 539, 540, 545, 583, 584, 590, 591
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -1653,7 +1654,7 @@ yyreduce:
|
||||
{
|
||||
case 4:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 245 "getdate.y"
|
||||
#line 246 "getdate.y"
|
||||
{
|
||||
pc->seconds = (yyvsp[(2) - (2)].timespec);
|
||||
pc->timespec_seen = true;
|
||||
@@ -1662,43 +1663,43 @@ yyreduce:
|
||||
|
||||
case 7:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 258 "getdate.y"
|
||||
#line 259 "getdate.y"
|
||||
{ pc->times_seen++; }
|
||||
break;
|
||||
|
||||
case 8:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 260 "getdate.y"
|
||||
#line 261 "getdate.y"
|
||||
{ pc->local_zones_seen++; }
|
||||
break;
|
||||
|
||||
case 9:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 262 "getdate.y"
|
||||
#line 263 "getdate.y"
|
||||
{ pc->zones_seen++; }
|
||||
break;
|
||||
|
||||
case 10:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 264 "getdate.y"
|
||||
#line 265 "getdate.y"
|
||||
{ pc->dates_seen++; }
|
||||
break;
|
||||
|
||||
case 11:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 266 "getdate.y"
|
||||
#line 267 "getdate.y"
|
||||
{ pc->days_seen++; }
|
||||
break;
|
||||
|
||||
case 12:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 268 "getdate.y"
|
||||
#line 269 "getdate.y"
|
||||
{ pc->rels_seen = true; }
|
||||
break;
|
||||
|
||||
case 14:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 274 "getdate.y"
|
||||
#line 275 "getdate.y"
|
||||
{
|
||||
pc->hour = (yyvsp[(1) - (2)].textintval).value;
|
||||
pc->minutes = 0;
|
||||
@@ -1710,7 +1711,7 @@ yyreduce:
|
||||
|
||||
case 15:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 282 "getdate.y"
|
||||
#line 283 "getdate.y"
|
||||
{
|
||||
pc->hour = (yyvsp[(1) - (4)].textintval).value;
|
||||
pc->minutes = (yyvsp[(3) - (4)].textintval).value;
|
||||
@@ -1722,7 +1723,7 @@ yyreduce:
|
||||
|
||||
case 16:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 290 "getdate.y"
|
||||
#line 291 "getdate.y"
|
||||
{
|
||||
pc->hour = (yyvsp[(1) - (5)].textintval).value;
|
||||
pc->minutes = (yyvsp[(3) - (5)].textintval).value;
|
||||
@@ -1736,7 +1737,7 @@ yyreduce:
|
||||
|
||||
case 17:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 300 "getdate.y"
|
||||
#line 301 "getdate.y"
|
||||
{
|
||||
pc->hour = (yyvsp[(1) - (6)].textintval).value;
|
||||
pc->minutes = (yyvsp[(3) - (6)].textintval).value;
|
||||
@@ -1747,7 +1748,7 @@ yyreduce:
|
||||
|
||||
case 18:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 307 "getdate.y"
|
||||
#line 308 "getdate.y"
|
||||
{
|
||||
pc->hour = (yyvsp[(1) - (7)].textintval).value;
|
||||
pc->minutes = (yyvsp[(3) - (7)].textintval).value;
|
||||
@@ -1760,7 +1761,7 @@ yyreduce:
|
||||
|
||||
case 19:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 319 "getdate.y"
|
||||
#line 320 "getdate.y"
|
||||
{
|
||||
pc->local_isdst = (yyvsp[(1) - (1)].intval);
|
||||
pc->dsts_seen += (0 < (yyvsp[(1) - (1)].intval));
|
||||
@@ -1769,7 +1770,7 @@ yyreduce:
|
||||
|
||||
case 20:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 324 "getdate.y"
|
||||
#line 325 "getdate.y"
|
||||
{
|
||||
pc->local_isdst = 1;
|
||||
pc->dsts_seen += (0 < (yyvsp[(1) - (2)].intval)) + 1;
|
||||
@@ -1778,13 +1779,13 @@ yyreduce:
|
||||
|
||||
case 21:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 332 "getdate.y"
|
||||
#line 333 "getdate.y"
|
||||
{ pc->time_zone = (yyvsp[(1) - (1)].intval); }
|
||||
break;
|
||||
|
||||
case 22:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 334 "getdate.y"
|
||||
#line 335 "getdate.y"
|
||||
{ pc->time_zone = (yyvsp[(1) - (2)].intval);
|
||||
pc->rel.ns += (yyvsp[(2) - (2)].rel).ns;
|
||||
pc->rel.seconds += (yyvsp[(2) - (2)].rel).seconds;
|
||||
@@ -1798,25 +1799,25 @@ yyreduce:
|
||||
|
||||
case 23:
|
||||
/* 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)); }
|
||||
break;
|
||||
|
||||
case 24:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 346 "getdate.y"
|
||||
#line 347 "getdate.y"
|
||||
{ pc->time_zone = (yyvsp[(1) - (1)].intval) + 60; }
|
||||
break;
|
||||
|
||||
case 25:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 348 "getdate.y"
|
||||
#line 349 "getdate.y"
|
||||
{ pc->time_zone = (yyvsp[(1) - (2)].intval) + 60; }
|
||||
break;
|
||||
|
||||
case 26:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 353 "getdate.y"
|
||||
#line 354 "getdate.y"
|
||||
{
|
||||
pc->day_ordinal = 1;
|
||||
pc->day_number = (yyvsp[(1) - (1)].intval);
|
||||
@@ -1825,7 +1826,7 @@ yyreduce:
|
||||
|
||||
case 27:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 358 "getdate.y"
|
||||
#line 359 "getdate.y"
|
||||
{
|
||||
pc->day_ordinal = 1;
|
||||
pc->day_number = (yyvsp[(1) - (2)].intval);
|
||||
@@ -1834,7 +1835,7 @@ yyreduce:
|
||||
|
||||
case 28:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 363 "getdate.y"
|
||||
#line 364 "getdate.y"
|
||||
{
|
||||
pc->day_ordinal = (yyvsp[(1) - (2)].intval);
|
||||
pc->day_number = (yyvsp[(2) - (2)].intval);
|
||||
@@ -1843,7 +1844,7 @@ yyreduce:
|
||||
|
||||
case 29:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 368 "getdate.y"
|
||||
#line 369 "getdate.y"
|
||||
{
|
||||
pc->day_ordinal = (yyvsp[(1) - (2)].textintval).value;
|
||||
pc->day_number = (yyvsp[(2) - (2)].intval);
|
||||
@@ -1852,7 +1853,7 @@ yyreduce:
|
||||
|
||||
case 30:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 376 "getdate.y"
|
||||
#line 377 "getdate.y"
|
||||
{
|
||||
pc->month = (yyvsp[(1) - (3)].textintval).value;
|
||||
pc->day = (yyvsp[(3) - (3)].textintval).value;
|
||||
@@ -1861,7 +1862,7 @@ yyreduce:
|
||||
|
||||
case 31:
|
||||
/* 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,
|
||||
otherwise as MM/DD/YY.
|
||||
@@ -1885,7 +1886,7 @@ yyreduce:
|
||||
|
||||
case 32:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 401 "getdate.y"
|
||||
#line 402 "getdate.y"
|
||||
{
|
||||
/* ISO 8601 format. YYYY-MM-DD. */
|
||||
pc->year = (yyvsp[(1) - (3)].textintval);
|
||||
@@ -1896,7 +1897,7 @@ yyreduce:
|
||||
|
||||
case 33:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 408 "getdate.y"
|
||||
#line 409 "getdate.y"
|
||||
{
|
||||
/* e.g. 17-JUN-1992. */
|
||||
pc->day = (yyvsp[(1) - (3)].textintval).value;
|
||||
@@ -1908,7 +1909,7 @@ yyreduce:
|
||||
|
||||
case 34:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 416 "getdate.y"
|
||||
#line 417 "getdate.y"
|
||||
{
|
||||
/* e.g. JUN-17-1992. */
|
||||
pc->month = (yyvsp[(1) - (3)].intval);
|
||||
@@ -1920,7 +1921,7 @@ yyreduce:
|
||||
|
||||
case 35:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 424 "getdate.y"
|
||||
#line 425 "getdate.y"
|
||||
{
|
||||
pc->month = (yyvsp[(1) - (2)].intval);
|
||||
pc->day = (yyvsp[(2) - (2)].textintval).value;
|
||||
@@ -1929,7 +1930,7 @@ yyreduce:
|
||||
|
||||
case 36:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 429 "getdate.y"
|
||||
#line 430 "getdate.y"
|
||||
{
|
||||
pc->month = (yyvsp[(1) - (4)].intval);
|
||||
pc->day = (yyvsp[(2) - (4)].textintval).value;
|
||||
@@ -1939,7 +1940,7 @@ yyreduce:
|
||||
|
||||
case 37:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 435 "getdate.y"
|
||||
#line 436 "getdate.y"
|
||||
{
|
||||
pc->day = (yyvsp[(1) - (2)].textintval).value;
|
||||
pc->month = (yyvsp[(2) - (2)].intval);
|
||||
@@ -1948,7 +1949,7 @@ yyreduce:
|
||||
|
||||
case 38:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 440 "getdate.y"
|
||||
#line 441 "getdate.y"
|
||||
{
|
||||
pc->day = (yyvsp[(1) - (3)].textintval).value;
|
||||
pc->month = (yyvsp[(2) - (3)].intval);
|
||||
@@ -1958,7 +1959,7 @@ yyreduce:
|
||||
|
||||
case 39:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 449 "getdate.y"
|
||||
#line 450 "getdate.y"
|
||||
{
|
||||
pc->rel.ns -= (yyvsp[(1) - (2)].rel).ns;
|
||||
pc->rel.seconds -= (yyvsp[(1) - (2)].rel).seconds;
|
||||
@@ -1972,7 +1973,7 @@ yyreduce:
|
||||
|
||||
case 40:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 459 "getdate.y"
|
||||
#line 460 "getdate.y"
|
||||
{
|
||||
pc->rel.ns += (yyvsp[(1) - (1)].rel).ns;
|
||||
pc->rel.seconds += (yyvsp[(1) - (1)].rel).seconds;
|
||||
@@ -1986,175 +1987,175 @@ yyreduce:
|
||||
|
||||
case 41:
|
||||
/* 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); }
|
||||
break;
|
||||
|
||||
case 42:
|
||||
/* 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; }
|
||||
break;
|
||||
|
||||
case 43:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 476 "getdate.y"
|
||||
#line 477 "getdate.y"
|
||||
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = 1; }
|
||||
break;
|
||||
|
||||
case 44:
|
||||
/* 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); }
|
||||
break;
|
||||
|
||||
case 45:
|
||||
/* 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; }
|
||||
break;
|
||||
|
||||
case 46:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 482 "getdate.y"
|
||||
#line 483 "getdate.y"
|
||||
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = 1; }
|
||||
break;
|
||||
|
||||
case 47:
|
||||
/* 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); }
|
||||
break;
|
||||
|
||||
case 48:
|
||||
/* 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); }
|
||||
break;
|
||||
|
||||
case 49:
|
||||
/* 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); }
|
||||
break;
|
||||
|
||||
case 50:
|
||||
/* 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); }
|
||||
break;
|
||||
|
||||
case 51:
|
||||
/* 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; }
|
||||
break;
|
||||
|
||||
case 52:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 494 "getdate.y"
|
||||
#line 495 "getdate.y"
|
||||
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = 1; }
|
||||
break;
|
||||
|
||||
case 53:
|
||||
/* 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); }
|
||||
break;
|
||||
|
||||
case 54:
|
||||
/* 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; }
|
||||
break;
|
||||
|
||||
case 55:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 500 "getdate.y"
|
||||
#line 501 "getdate.y"
|
||||
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = 1; }
|
||||
break;
|
||||
|
||||
case 56:
|
||||
/* 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); }
|
||||
break;
|
||||
|
||||
case 57:
|
||||
/* 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; }
|
||||
break;
|
||||
|
||||
case 58:
|
||||
/* 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; }
|
||||
break;
|
||||
|
||||
case 59:
|
||||
/* 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; }
|
||||
break;
|
||||
|
||||
case 60:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 510 "getdate.y"
|
||||
#line 511 "getdate.y"
|
||||
{ (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = 1; }
|
||||
break;
|
||||
|
||||
case 62:
|
||||
/* 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; }
|
||||
break;
|
||||
|
||||
case 63:
|
||||
/* 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; }
|
||||
break;
|
||||
|
||||
case 64:
|
||||
/* 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); }
|
||||
break;
|
||||
|
||||
case 65:
|
||||
/* 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; }
|
||||
break;
|
||||
|
||||
case 66:
|
||||
/* 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; }
|
||||
break;
|
||||
|
||||
case 67:
|
||||
/* 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; }
|
||||
break;
|
||||
|
||||
case 71:
|
||||
/* 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; }
|
||||
break;
|
||||
|
||||
case 73:
|
||||
/* 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; }
|
||||
break;
|
||||
|
||||
case 74:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 545 "getdate.y"
|
||||
#line 546 "getdate.y"
|
||||
{
|
||||
if (pc->dates_seen && ! pc->year.digits
|
||||
&& ! pc->rels_seen && (pc->times_seen || 2 < (yyvsp[(1) - (1)].textintval).digits))
|
||||
@@ -2192,31 +2193,31 @@ yyreduce:
|
||||
|
||||
case 75:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 582 "getdate.y"
|
||||
#line 583 "getdate.y"
|
||||
{ (yyval.intval) = -1; }
|
||||
break;
|
||||
|
||||
case 76:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 584 "getdate.y"
|
||||
#line 585 "getdate.y"
|
||||
{ (yyval.intval) = (yyvsp[(2) - (2)].textintval).value; }
|
||||
break;
|
||||
|
||||
case 77:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 589 "getdate.y"
|
||||
#line 590 "getdate.y"
|
||||
{ (yyval.intval) = MER24; }
|
||||
break;
|
||||
|
||||
case 78:
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 591 "getdate.y"
|
||||
#line 592 "getdate.y"
|
||||
{ (yyval.intval) = (yyvsp[(1) - (1)].intval); }
|
||||
break;
|
||||
|
||||
|
||||
/* Line 1269 of yacc.c. */
|
||||
#line 2220 "getdate.c"
|
||||
#line 2221 "getdate.c"
|
||||
default: break;
|
||||
}
|
||||
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
|
||||
@@ -2428,7 +2429,7 @@ yyreturn:
|
||||
|
||||
|
||||
/* Line 1486 of yacc.c. */
|
||||
#line 594 "getdate.y"
|
||||
#line 595 "getdate.y"
|
||||
|
||||
|
||||
static table const meridian_table[] =
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/* 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
|
||||
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. */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include "timespec.h"
|
||||
#include <time.h>
|
||||
|
||||
bool get_date (struct timespec *, char const *, struct timespec const *);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
%{
|
||||
/* 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.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -35,6 +35,7 @@
|
||||
#include <config.h>
|
||||
|
||||
#include "getdate.h"
|
||||
#include "timespec.h"
|
||||
|
||||
/* There's no need to extend the stack, so there's no need to involve
|
||||
alloca. */
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* 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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
#include "gethrxtime.h"
|
||||
|
||||
#include <sys/time.h>
|
||||
#include "timespec.h"
|
||||
|
||||
/* Get the current time, as a count of the number of nanoseconds since
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
@@ -216,7 +216,7 @@ extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv,
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -42,6 +42,11 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* This is for AmigaOS4.0. */
|
||||
#if !defined getpagesize && defined __amigaos4__
|
||||
# define getpagesize() 2048
|
||||
#endif
|
||||
|
||||
#if !defined getpagesize && HAVE_SYS_PARAM_H
|
||||
# include <sys/param.h>
|
||||
# ifdef EXEC_PAGESIZE
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* 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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -22,6 +22,8 @@
|
||||
|
||||
#include "timespec.h"
|
||||
|
||||
#include <sys/time.h>
|
||||
|
||||
/* Get the system time into *TS. */
|
||||
|
||||
void
|
||||
@@ -36,23 +38,12 @@ gettime (struct timespec *ts)
|
||||
return;
|
||||
# endif
|
||||
|
||||
# if HAVE_GETTIMEOFDAY
|
||||
{
|
||||
struct timeval tv;
|
||||
gettimeofday (&tv, NULL);
|
||||
ts->tv_sec = tv.tv_sec;
|
||||
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
|
||||
}
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
/* Work around the bug in some systems whereby gettimeofday clobbers the
|
||||
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.
|
||||
/* Provide gettimeofday for systems that don't have it or for which it's broken.
|
||||
|
||||
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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -23,29 +21,25 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
/* Disable the definitions of these functions (from config.h)
|
||||
so we can use the library versions here. */
|
||||
#undef gettimeofday
|
||||
#undef gmtime
|
||||
#undef localtime
|
||||
#undef tzset
|
||||
/* Specification. */
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <time.h>
|
||||
|
||||
#if TIME_WITH_SYS_TIME
|
||||
# include <sys/time.h>
|
||||
# include <time.h>
|
||||
#else
|
||||
# if HAVE_SYS_TIME_H
|
||||
# include <sys/time.h>
|
||||
# else
|
||||
# include <time.h>
|
||||
# endif
|
||||
#if HAVE_SYS_TIMEB_H
|
||||
# include <sys/timeb.h>
|
||||
#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
|
||||
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. */
|
||||
|
||||
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);
|
||||
|
||||
if (! localtime_buffer_addr)
|
||||
if (localtime_buffer_addr == &tm_zero_buffer)
|
||||
localtime_buffer_addr = tm;
|
||||
|
||||
return tm;
|
||||
@@ -66,57 +62,81 @@ rpl_localtime (const time_t *timep)
|
||||
|
||||
/* Same as above, since gmtime and localtime use the same buffer. */
|
||||
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);
|
||||
|
||||
if (! localtime_buffer_addr)
|
||||
if (localtime_buffer_addr == &tm_zero_buffer)
|
||||
localtime_buffer_addr = tm;
|
||||
|
||||
return tm;
|
||||
}
|
||||
|
||||
/* This is a wrapper for gettimeofday. It is used only on systems for which
|
||||
gettimeofday clobbers the static buffer used for localtime's result.
|
||||
#endif /* GETTIMEOFDAY_CLOBBERS_LOCALTIME || TZSET_CLOBBERS_LOCALTIME */
|
||||
|
||||
Save and restore the contents of the buffer used for localtime's result
|
||||
around the call to gettimeofday. */
|
||||
|
||||
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. */
|
||||
#if TZSET_CLOBBERS_LOCALTIME
|
||||
/* This is a wrapper for tzset, for systems on which tzset may clobber
|
||||
the static buffer used for localtime's result. */
|
||||
void
|
||||
rpl_tzset (void)
|
||||
tzset (void)
|
||||
{
|
||||
struct tm save;
|
||||
#undef tzset
|
||||
extern void tzset (void);
|
||||
|
||||
if (! localtime_buffer_addr)
|
||||
{
|
||||
time_t t = 0;
|
||||
localtime_buffer_addr = localtime (&t);
|
||||
}
|
||||
|
||||
save = *localtime_buffer_addr;
|
||||
/* Save and restore the contents of the buffer used for localtime's
|
||||
result around the call to tzset. */
|
||||
struct tm save = *localtime_buffer_addr;
|
||||
tzset ();
|
||||
*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
@@ -1,6 +1,6 @@
|
||||
## DO NOT EDIT! GENERATED AUTOMATICALLY!
|
||||
## 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
|
||||
# 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.
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -37,9 +37,9 @@ EXTRA_libcoreutils_a_SOURCES =
|
||||
## 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
|
||||
|
||||
@@ -95,7 +95,7 @@ BUILT_SOURCES += $(ARPA_INET_H)
|
||||
# We need the following in order to create <arpa/inet.h> when the system
|
||||
# doesn't have one.
|
||||
arpa/inet.h:
|
||||
test -d arpa || mkdir arpa
|
||||
@MKDIR_P@ arpa
|
||||
rm -f $@-t $@
|
||||
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
|
||||
echo '#include <sys/socket.h>'; \
|
||||
@@ -130,6 +130,18 @@ libcoreutils_a_SOURCES += base64.h base64.c
|
||||
|
||||
## 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
|
||||
|
||||
|
||||
@@ -352,12 +364,6 @@ EXTRA_libcoreutils_a_SOURCES += exclude.c
|
||||
|
||||
## end gnulib module exclude
|
||||
|
||||
## begin gnulib module exit
|
||||
|
||||
libcoreutils_a_SOURCES += exit.h
|
||||
|
||||
## end gnulib module exit
|
||||
|
||||
## begin gnulib module exitfail
|
||||
|
||||
|
||||
@@ -367,6 +373,28 @@ EXTRA_libcoreutils_a_SOURCES += exitfail.c
|
||||
|
||||
## 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
|
||||
|
||||
BUILT_SOURCES += $(FCNTL_H)
|
||||
@@ -537,7 +565,7 @@ EXTRA_libcoreutils_a_SOURCES += gai_strerror.c getaddrinfo.c
|
||||
## begin gnulib module getcwd
|
||||
|
||||
|
||||
EXTRA_DIST += getcwd.c getcwd.h
|
||||
EXTRA_DIST += 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_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/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_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
|
||||
-e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
|
||||
-e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
|
||||
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
|
||||
< $(srcdir)/inttypes_.h; \
|
||||
} > $@-t
|
||||
mv $@-t $@
|
||||
@@ -852,6 +885,12 @@ libcoreutils_a_SOURCES += linebuffer.h linebuffer.c
|
||||
|
||||
## 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
|
||||
|
||||
libcoreutils_a_SOURCES += localcharset.h localcharset.c
|
||||
@@ -939,13 +978,18 @@ EXTRA_libcoreutils_a_SOURCES += malloc.c
|
||||
|
||||
## begin gnulib module mbchar
|
||||
|
||||
libcoreutils_a_SOURCES += mbchar.c
|
||||
|
||||
EXTRA_DIST += mbchar.c mbchar.h
|
||||
|
||||
EXTRA_libcoreutils_a_SOURCES += mbchar.c
|
||||
EXTRA_DIST += mbchar.h
|
||||
|
||||
## end gnulib module mbchar
|
||||
|
||||
## begin gnulib module mbscasecmp
|
||||
|
||||
libcoreutils_a_SOURCES += mbscasecmp.c
|
||||
|
||||
## end gnulib module mbscasecmp
|
||||
|
||||
## begin gnulib module mbswidth
|
||||
|
||||
libcoreutils_a_SOURCES += mbswidth.h mbswidth.c
|
||||
@@ -1024,7 +1068,7 @@ EXTRA_libcoreutils_a_SOURCES += memmove.c
|
||||
## begin gnulib module mempcpy
|
||||
|
||||
|
||||
EXTRA_DIST += mempcpy.c mempcpy.h
|
||||
EXTRA_DIST += mempcpy.c
|
||||
|
||||
EXTRA_libcoreutils_a_SOURCES += mempcpy.c
|
||||
|
||||
@@ -1033,7 +1077,7 @@ EXTRA_libcoreutils_a_SOURCES += mempcpy.c
|
||||
## begin gnulib module memrchr
|
||||
|
||||
|
||||
EXTRA_DIST += memrchr.c memrchr.h
|
||||
EXTRA_DIST += 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
|
||||
|
||||
|
||||
EXTRA_DIST += mkstemp.c mkstemp.h
|
||||
EXTRA_DIST += mkstemp.c
|
||||
|
||||
EXTRA_libcoreutils_a_SOURCES += mkstemp.c
|
||||
|
||||
@@ -1111,6 +1155,15 @@ EXTRA_libcoreutils_a_SOURCES += mountlist.c
|
||||
|
||||
## 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
|
||||
|
||||
|
||||
@@ -1127,15 +1180,19 @@ BUILT_SOURCES += $(NETINET_IN_H)
|
||||
# We need the following in order to create <netinet/in.h> when the system
|
||||
# doesn't have one.
|
||||
netinet/in.h:
|
||||
test -d netinet || mkdir netinet
|
||||
@MKDIR_P@ netinet
|
||||
rm -f $@-t $@
|
||||
{ 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
|
||||
mv $@-t $@
|
||||
MOSTLYCLEANFILES += netinet/in.h netinet/in.h-t
|
||||
MOSTLYCLEANDIRS += netinet
|
||||
|
||||
EXTRA_DIST += netinet_in_.h
|
||||
|
||||
## end gnulib module netinet_in
|
||||
|
||||
## begin gnulib module obstack
|
||||
@@ -1150,9 +1207,9 @@ EXTRA_libcoreutils_a_SOURCES += obstack.c
|
||||
## 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
|
||||
|
||||
@@ -1419,7 +1476,7 @@ EXTRA_libcoreutils_a_SOURCES += sig2str.c
|
||||
## begin gnulib module snprintf
|
||||
|
||||
|
||||
EXTRA_DIST += snprintf.c snprintf.h
|
||||
EXTRA_DIST += snprintf.c
|
||||
|
||||
EXTRA_libcoreutils_a_SOURCES += snprintf.c
|
||||
|
||||
@@ -1466,8 +1523,7 @@ BUILT_SOURCES += $(STDINT_H)
|
||||
stdint.h: stdint_.h
|
||||
rm -f $@-t $@
|
||||
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
|
||||
sed -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
|
||||
-e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
|
||||
sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_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_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
|
||||
@@ -1497,6 +1553,70 @@ EXTRA_DIST += stdint_.h
|
||||
|
||||
## 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
|
||||
|
||||
|
||||
@@ -1509,21 +1629,12 @@ EXTRA_libcoreutils_a_SOURCES += mkstemp-safer.c
|
||||
## begin gnulib module stpcpy
|
||||
|
||||
|
||||
EXTRA_DIST += stpcpy.c stpcpy.h
|
||||
EXTRA_DIST += stpcpy.c
|
||||
|
||||
EXTRA_libcoreutils_a_SOURCES += stpcpy.c
|
||||
|
||||
## 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
|
||||
|
||||
|
||||
@@ -1536,7 +1647,7 @@ EXTRA_libcoreutils_a_SOURCES += strcspn.c
|
||||
## begin gnulib module strdup
|
||||
|
||||
|
||||
EXTRA_DIST += strdup.c strdup.h
|
||||
EXTRA_DIST += strdup.c
|
||||
|
||||
EXTRA_libcoreutils_a_SOURCES += strdup.c
|
||||
|
||||
@@ -1551,10 +1662,72 @@ EXTRA_libcoreutils_a_SOURCES += strftime.c
|
||||
|
||||
## 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
|
||||
|
||||
|
||||
EXTRA_DIST += strndup.c strndup.h
|
||||
EXTRA_DIST += strndup.c
|
||||
|
||||
EXTRA_libcoreutils_a_SOURCES += strndup.c
|
||||
|
||||
@@ -1563,7 +1736,7 @@ EXTRA_libcoreutils_a_SOURCES += strndup.c
|
||||
## begin gnulib module strnlen
|
||||
|
||||
|
||||
EXTRA_DIST += strnlen.c strnlen.h
|
||||
EXTRA_DIST += strnlen.c
|
||||
|
||||
EXTRA_libcoreutils_a_SOURCES += strnlen.c
|
||||
|
||||
@@ -1578,7 +1751,7 @@ libcoreutils_a_SOURCES += strnlen1.h strnlen1.c
|
||||
## begin gnulib module strpbrk
|
||||
|
||||
|
||||
EXTRA_DIST += strpbrk.c strpbrk.h
|
||||
EXTRA_DIST += 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
|
||||
# doesn't have one that works with the given compiler.
|
||||
sys/socket.h: socket_.h
|
||||
test -d sys || mkdir sys
|
||||
@MKDIR_P@ sys
|
||||
{ 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
|
||||
mv -f $@-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
|
||||
# has one that is incomplete.
|
||||
sys/stat.h: stat_.h
|
||||
test -d sys || mkdir sys
|
||||
@MKDIR_P@ sys
|
||||
rm -f $@-t $@
|
||||
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
|
||||
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
|
||||
|
||||
## 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
|
||||
|
||||
|
||||
@@ -1706,10 +1906,35 @@ EXTRA_libcoreutils_a_SOURCES += tempname.c
|
||||
|
||||
## 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
|
||||
|
||||
|
||||
EXTRA_DIST += time_r.c time_r.h
|
||||
EXTRA_DIST += 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
|
||||
|
||||
BUILT_SOURCES += $(UNISTD_H)
|
||||
BUILT_SOURCES += unistd.h
|
||||
|
||||
# We need the following in order to create an empty placeholder for
|
||||
# <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 '/* Empty placeholder for $@. */'; \
|
||||
} > $@
|
||||
MOSTLYCLEANFILES += unistd.h
|
||||
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 $@
|
||||
MOSTLYCLEANFILES += unistd.h unistd.h-t
|
||||
|
||||
EXTRA_DIST += unistd_.h
|
||||
|
||||
## end gnulib module unistd
|
||||
|
||||
@@ -1839,6 +2084,47 @@ libcoreutils_a_SOURCES += version-etc-fsf.c
|
||||
|
||||
## 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
|
||||
|
||||
libcoreutils_a_SOURCES += wcwidth.h
|
||||
@@ -1892,13 +2178,20 @@ EXTRA_libcoreutils_a_SOURCES += xnanosleep.c
|
||||
|
||||
## begin gnulib module xreadlink
|
||||
|
||||
libcoreutils_a_SOURCES += xreadlink.c
|
||||
|
||||
EXTRA_DIST += xreadlink.c xreadlink.h
|
||||
|
||||
EXTRA_libcoreutils_a_SOURCES += xreadlink.c
|
||||
EXTRA_DIST += xreadlink.h
|
||||
|
||||
## 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
|
||||
|
||||
libcoreutils_a_SOURCES += xstrndup.h xstrndup.c
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* 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.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -25,8 +25,6 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "strdup.h"
|
||||
|
||||
#ifdef __GLIBC__
|
||||
# define GLIBC_VERSION __GLIBC__
|
||||
#else
|
||||
|
||||
@@ -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.
|
||||
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]>."
|
||||
#endif
|
||||
|
||||
/* The definition of GL_LINK_WARNING is copied here. */
|
||||
|
||||
/* 7.8.1 Macros for format specifiers */
|
||||
|
||||
#if ! defined __cplusplus || defined __STDC_FORMAT_MACROS
|
||||
@@ -1034,20 +1036,53 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if !@HAVE_DECL_IMAXABS@
|
||||
#if @GNULIB_IMAXABS@
|
||||
# if !@HAVE_DECL_IMAXABS@
|
||||
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
|
||||
|
||||
#if !@HAVE_DECL_IMAXDIV@
|
||||
#if @GNULIB_IMAXDIV@
|
||||
# if !@HAVE_DECL_IMAXDIV@
|
||||
typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_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
|
||||
|
||||
#if !@HAVE_DECL_STRTOIMAX@
|
||||
#if @GNULIB_STRTOIMAX@
|
||||
# if !@HAVE_DECL_STRTOIMAX@
|
||||
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
|
||||
#if !@HAVE_DECL_STRTOUMAX@
|
||||
|
||||
#if @GNULIB_STRTOUMAX@
|
||||
# if !@HAVE_DECL_STRTOUMAX@
|
||||
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
|
||||
|
||||
/* Don't bother defining or declaring wcstoimax and wcstoumax, since
|
||||
|
||||
@@ -155,132 +155,7 @@
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <wchar.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 <wctype.h>
|
||||
|
||||
#include "wcwidth.h"
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* 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,
|
||||
based on earlier glibc code.
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include <config.h>
|
||||
|
||||
/* Specification. */
|
||||
#include "strcase.h"
|
||||
#include <string.h>
|
||||
|
||||
#include <ctype.h>
|
||||
#include <limits.h>
|
||||
@@ -31,13 +31,13 @@
|
||||
|
||||
#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
|
||||
|
||||
/* 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
|
||||
than S2.
|
||||
/* Compare the character 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.
|
||||
Note: This function may, in multibyte locales, return 0 for strings of
|
||||
different lengths! */
|
||||
int
|
||||
strcasecmp (const char *s1, const char *s2)
|
||||
mbscasecmp (const char *s1, const char *s2)
|
||||
{
|
||||
if (s1 == s2)
|
||||
return 0;
|
||||
@@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -31,26 +31,13 @@
|
||||
#include <ctype.h>
|
||||
|
||||
/* Get mbstate_t, mbrtowc(), mbsinit(). */
|
||||
#if HAVE_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
|
||||
#include <wchar.h>
|
||||
|
||||
/* Get wcwidth(). */
|
||||
#include "wcwidth.h"
|
||||
|
||||
/* Get iswcntrl(). */
|
||||
#if HAVE_WCTYPE_H
|
||||
# include <wctype.h>
|
||||
#endif
|
||||
#if !defined iswcntrl && !HAVE_ISWCNTRL
|
||||
# define iswcntrl(wc) (((wc) & ~0x1f) == 0 || (wc) == 0x7f)
|
||||
#endif
|
||||
#include <wctype.h>
|
||||
|
||||
#ifndef mbsinit
|
||||
# if !HAVE_MBSINIT
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -30,7 +30,7 @@
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
@@ -56,6 +56,6 @@ extern int mbswidth (const char *string, int flags);
|
||||
extern int mbsnwidth (const char *buf, size_t nbytes, int flags);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -73,6 +73,9 @@
|
||||
mbui_reloc (iter, ptrdiff)
|
||||
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.
|
||||
|
||||
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 const char * mbui_cur_ptr (mbui_iterator_t iter);
|
||||
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
|
||||
@@ -89,6 +93,7 @@
|
||||
#include <assert.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
|
||||
<wchar.h>.
|
||||
@@ -182,6 +187,17 @@ mbuiter_multi_reloc (struct mbuiter_multi *iter, ptrdiff_t 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. */
|
||||
typedef struct mbuiter_multi mbui_iterator_t;
|
||||
#define mbui_init(iter, startptr) \
|
||||
@@ -200,4 +216,7 @@ typedef struct mbuiter_multi mbui_iterator_t;
|
||||
/* Relocation. */
|
||||
#define mbui_reloc(iter, ptrdiff) mbuiter_multi_reloc (&iter, ptrdiff)
|
||||
|
||||
/* Copying an iterator. */
|
||||
#define mbui_copy mbuiter_multi_copy
|
||||
|
||||
#endif /* _MBUITER_H */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
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,
|
||||
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
|
||||
|
||||
/* Specification. */
|
||||
#include "mempcpy.h"
|
||||
#include <config.h>
|
||||
|
||||
/* Specification. */
|
||||
#include <string.h>
|
||||
|
||||
/* Copy N bytes of SRC to DEST, return pointer to bytes after the
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* memrchr -- find the last occurrence of a byte in a memory block
|
||||
|
||||
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),
|
||||
with help from Dan Sahlin (dan@sics.se) and
|
||||
@@ -24,14 +24,13 @@
|
||||
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
|
||||
|
||||
#if defined _LIBC
|
||||
# include <string.h>
|
||||
# include <memcopy.h>
|
||||
#else
|
||||
# include <config.h>
|
||||
# include "memrchr.h"
|
||||
# define reg_char char
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include <limits.h>
|
||||
|
||||
#undef __memrchr
|
||||
|
||||
@@ -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
|
||||
@@ -1,7 +1,7 @@
|
||||
/* mkdir-p.c -- Ensure that a directory and its parents exist.
|
||||
|
||||
Copyright (C) 1990, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
Copyright (C) 1990, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005,
|
||||
2006, 2007 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -115,19 +115,24 @@ make_dir_parents (char *dir,
|
||||
|
||||
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
|
||||
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;
|
||||
if (! (owner == (uid_t) -1 && group == (gid_t) -1))
|
||||
mkdir_mode &= S_IRWXU;
|
||||
if (! keep_owner)
|
||||
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)
|
||||
{
|
||||
announce (dir, options);
|
||||
preserve_existing =
|
||||
(owner == (uid_t) -1 && group == (gid_t) -1
|
||||
&& ! ((mode_bits & (S_ISUID | S_ISGID)) | (mode & S_ISVTX)));
|
||||
preserve_existing = keep_owner & keep_special_mode_bits;
|
||||
savewd_chdir_options |=
|
||||
(SAVEWD_CHDIR_NOFOLLOW
|
||||
| (mode & S_IRUSR ? SAVEWD_CHDIR_READABLE : 0));
|
||||
@@ -188,7 +193,7 @@ make_dir_parents (char *dir,
|
||||
(! chdir_failed_unexpectedly ? errno
|
||||
: ! chdir_ok && (mode & S_IXUSR) ? chdir_errno
|
||||
: open_result[1]),
|
||||
_(owner == (uid_t) -1 && group == (gid_t) -1
|
||||
_(keep_owner
|
||||
? "cannot change permissions of %s"
|
||||
: "cannot change owner and permissions of %s"),
|
||||
quote (dir));
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* 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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
#include "stdlib-safer.h"
|
||||
|
||||
#include "mkstemp.h"
|
||||
#include <stdlib.h>
|
||||
#include "unistd-safer.h"
|
||||
|
||||
/* Like mkstemp, but do not return STDIN_FILENO, STDOUT_FILENO, or
|
||||
|
||||
@@ -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 program is free software; you can redistribute it and/or modify
|
||||
@@ -17,14 +17,17 @@
|
||||
|
||||
#if !_LIBC
|
||||
# include <config.h>
|
||||
# include "mkstemp.h"
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#if !_LIBC
|
||||
# include "tempname.h"
|
||||
# define __gen_tempname gen_tempname
|
||||
# define __GT_FILE GT_FILE
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifndef __GT_FILE
|
||||
# define __GT_FILE 0
|
||||
|
||||
@@ -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
|
||||
@@ -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.
|
||||
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.
|
||||
Contributed by Paul Eggert <eggert@twinsun.com>.
|
||||
|
||||
@@ -23,7 +21,7 @@
|
||||
mktime. */
|
||||
/* #define DEBUG 1 */
|
||||
|
||||
#if 1
|
||||
#ifndef _LIBC
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
@@ -34,7 +32,6 @@
|
||||
# define LEAP_SECONDS_POSSIBLE 1
|
||||
#endif
|
||||
|
||||
#include <sys/types.h> /* Some systems define `time_t' here. */
|
||||
#include <time.h>
|
||||
|
||||
#include <limits.h>
|
||||
@@ -143,11 +140,10 @@ const unsigned short int __mon_yday[2][13] =
|
||||
|
||||
|
||||
#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
|
||||
implementations that lack localtime_r or have a nonstandard one.
|
||||
See the gnulib time_r module for one way to implement this. */
|
||||
# include "time_r.h"
|
||||
# undef __localtime_r
|
||||
# define __localtime_r localtime_r
|
||||
# define __mktime_internal mktime_internal
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* mountlist.c -- return a list of mounted file systems
|
||||
|
||||
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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -28,10 +28,6 @@
|
||||
|
||||
#include "xalloc.h"
|
||||
|
||||
#ifndef strstr
|
||||
char *strstr ();
|
||||
#endif
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
#include <fcntl.h>
|
||||
@@ -143,6 +139,16 @@ char *strstr ();
|
||||
# define SIZE_MAX ((size_t) -1)
|
||||
#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
|
||||
# define ME_DUMMY(Fs_name, Fs_type) \
|
||||
(strcmp (Fs_type, "autofs") == 0 \
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
#include <stddef.h>
|
||||
void mpsort (void const **, size_t, int (*) (void const *, void const *));
|
||||
@@ -1,7 +1,7 @@
|
||||
/* Provide a replacement for the POSIX nanosleep function.
|
||||
|
||||
Copyright (C) 1999, 2000, 2002, 2004, 2005, 2006 Free Software
|
||||
Foundation, Inc.
|
||||
Copyright (C) 1999, 2000, 2002, 2004, 2005, 2006, 2007 Free
|
||||
Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -21,9 +21,9 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
/* Undefine nanosleep here so any prototype is not redefined to be a
|
||||
prototype for rpl_nanosleep. (they'd conflict e.g., on alpha-dec-osf3.2) */
|
||||
#undef nanosleep
|
||||
#include <time.h>
|
||||
|
||||
#include "timespec.h"
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
@@ -33,22 +33,12 @@
|
||||
#endif
|
||||
#include <signal.h>
|
||||
|
||||
#if TIME_WITH_SYS_TIME
|
||||
# include <sys/time.h>
|
||||
# include <time.h>
|
||||
#else
|
||||
# if HAVE_SYS_TIME_H
|
||||
# include <sys/time.h>
|
||||
# else
|
||||
# include <time.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#include <sys/time.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
#include "timespec.h"
|
||||
#undef nanosleep
|
||||
|
||||
enum { BILLION = 1000 * 1000 * 1000 };
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Searching in a string.
|
||||
Copyright (C) 2001-2002 Free Software Foundation, Inc.
|
||||
/* Substitute for <netinet/in.h>.
|
||||
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
|
||||
@@ -15,14 +15,23 @@
|
||||
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_STRPBRK
|
||||
#ifndef _GL_NETINET_IN_H
|
||||
#define _GL_NETINET_IN_H
|
||||
|
||||
/* Get strpbrk() declaration. */
|
||||
#include <string.h>
|
||||
#if @HAVE_NETINET_IN_H@
|
||||
|
||||
/* On many platforms, <netinet/in.h> assumes prior inclusion of
|
||||
<sys/types.h>. */
|
||||
|
||||
# include <sys/types.h>
|
||||
# include @ABSOLUTE_NETINET_IN_H@
|
||||
|
||||
#else
|
||||
|
||||
/* Find the first occurrence in S of any character in ACCEPT. */
|
||||
extern char *strpbrk (const char *s, const char *accept);
|
||||
/* A platform that lacks <netinet/in.h>. */
|
||||
|
||||
# include <sys/socket.h>
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _GL_NETINET_IN_H */
|
||||
@@ -34,6 +34,11 @@
|
||||
#include "same-inode.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_NAME_SIZE_BOUND(len) \
|
||||
|
||||
@@ -268,19 +268,3 @@ fdopendir (int fd)
|
||||
#undef AT_FUNC_USE_F1_COND
|
||||
#undef AT_FUNC_POST_FILE_PARAM_DECLS
|
||||
#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"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* Parse dates for touch and date.
|
||||
|
||||
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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -22,21 +22,13 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
#include "posixtm.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.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
|
||||
# include "unlocked-io.h"
|
||||
#endif
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* 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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -22,6 +22,9 @@
|
||||
#ifndef POSIXTM_H_
|
||||
# define POSIXTM_H_
|
||||
|
||||
# include <stdbool.h>
|
||||
# include <time.h>
|
||||
|
||||
/* POSIX Date Syntax flags. */
|
||||
# define PDS_LEADING_YEAR 1
|
||||
# define PDS_TRAILING_YEAR 2
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
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:
|
||||
ap->a.a_ulongint = va_arg (args, unsigned long int);
|
||||
break;
|
||||
#ifdef HAVE_LONG_LONG_INT
|
||||
#if HAVE_LONG_LONG_INT
|
||||
case TYPE_LONGLONGINT:
|
||||
ap->a.a_longlongint = va_arg (args, long long int);
|
||||
break;
|
||||
@@ -67,7 +67,7 @@ printf_fetchargs (va_list args, arguments *a)
|
||||
case TYPE_DOUBLE:
|
||||
ap->a.a_double = va_arg (args, double);
|
||||
break;
|
||||
#ifdef HAVE_LONG_DOUBLE
|
||||
#if HAVE_LONG_DOUBLE
|
||||
case TYPE_LONGDOUBLE:
|
||||
ap->a.a_longdouble = va_arg (args, long double);
|
||||
break;
|
||||
@@ -75,7 +75,7 @@ printf_fetchargs (va_list args, arguments *a)
|
||||
case TYPE_CHAR:
|
||||
ap->a.a_char = va_arg (args, int);
|
||||
break;
|
||||
#ifdef HAVE_WINT_T
|
||||
#if HAVE_WINT_T
|
||||
case TYPE_WIDE_CHAR:
|
||||
/* 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,
|
||||
@@ -94,7 +94,7 @@ printf_fetchargs (va_list args, arguments *a)
|
||||
if (ap->a.a_string == NULL)
|
||||
ap->a.a_string = "(NULL)";
|
||||
break;
|
||||
#ifdef HAVE_WCHAR_T
|
||||
#if HAVE_WCHAR_T
|
||||
case TYPE_WIDE_STRING:
|
||||
ap->a.a_wide_string = va_arg (args, const wchar_t *);
|
||||
/* 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:
|
||||
ap->a.a_count_longint_pointer = va_arg (args, long int *);
|
||||
break;
|
||||
#ifdef HAVE_LONG_LONG_INT
|
||||
#if HAVE_LONG_LONG_INT
|
||||
case TYPE_COUNT_LONGLONGINT_POINTER:
|
||||
ap->a.a_count_longlongint_pointer = va_arg (args, long long int *);
|
||||
break;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user