merge coreutils 8.4
added nproc to the image git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36275 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -44,7 +44,7 @@ SYSTEM_BIN = "[" addattr alert arp base64 basename bash bc beep bootman bzip2
|
||||
listport listres listsem listusb ln locate logger login logname ls lsindex
|
||||
mail2mbox makebootable mbox2mail md5sum merge message mimeset mkdos mkdir
|
||||
mkfifo mkfs mkindex modifiers mount mount_nfs mountvolume mv
|
||||
netcat netstat nl nohup
|
||||
netcat netstat nl nohup nproc
|
||||
od open
|
||||
passwd paste patch pathchk pc ping play playfile playsound playwav pr prio
|
||||
printenv printf profile ps ptx pwd
|
||||
|
||||
+547
-590
File diff suppressed because it is too large
Load Diff
@@ -46,11 +46,12 @@ md5sum: Ulrich Drepper, Scott Miller, David Madore
|
||||
mkdir: David MacKenzie
|
||||
mkfifo: David MacKenzie
|
||||
mknod: David MacKenzie
|
||||
mktemp: Jim Meyering
|
||||
mktemp: Jim Meyering, Eric Blake
|
||||
mv: Mike Parker, David MacKenzie, Jim Meyering
|
||||
nice: David MacKenzie
|
||||
nl: Scott Bartram, David MacKenzie
|
||||
nohup: Jim Meyering
|
||||
nproc: Giuseppe Scrivano
|
||||
od: Jim Meyering
|
||||
paste: David M. Ihnat, David MacKenzie
|
||||
pathchk: Paul Eggert, David MacKenzie, Jim Meyering
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -11609,7 +11609,7 @@
|
||||
|
||||
-----
|
||||
|
||||
Copyright (C) 2002, 2003, 2004, 2005, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002-2005, 2009-2010 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without
|
||||
modification, are permitted provided the copyright notice
|
||||
|
||||
@@ -4033,7 +4033,7 @@
|
||||
|
||||
-----
|
||||
|
||||
Copyright (C) 2006, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2006, 2009-2010 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without
|
||||
modification, are permitted provided the copyright notice
|
||||
|
||||
@@ -4015,7 +4015,7 @@
|
||||
|
||||
-----
|
||||
|
||||
Copyright (C) 2007, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without
|
||||
modification, are permitted provided the copyright notice
|
||||
|
||||
@@ -372,7 +372,7 @@
|
||||
|
||||
-----
|
||||
|
||||
Copyright (C) 2008-2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008-2010 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without
|
||||
modification, are permitted provided the copyright notice
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
# It is necessary if you want to build targets usually of interest
|
||||
# only to the maintainer.
|
||||
|
||||
# Copyright (C) 2001, 2003, 2006-2009 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001, 2003, 2006-2010 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
-19
@@ -2,7 +2,7 @@ Installation Instructions
|
||||
*************************
|
||||
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
|
||||
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
@@ -69,6 +69,10 @@ of `autoconf'.
|
||||
|
||||
5. Optionally, type `make installcheck' to repeat any self-tests, but
|
||||
this time using the binaries in their final installed location.
|
||||
This target does not install anything. Running this target as a
|
||||
regular user, particularly if the prior `make install' required
|
||||
root privileges, verifies that the installation completed
|
||||
correctly.
|
||||
|
||||
6. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'. To also remove the
|
||||
@@ -141,7 +145,7 @@ Installation Names
|
||||
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||
can specify an installation prefix other than `/usr/local' by giving
|
||||
`configure' the option `--prefix=PREFIX', where PREFIX must be an
|
||||
absolute path.
|
||||
absolute file name.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
@@ -155,7 +159,7 @@ kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them. In general, the
|
||||
default for these options is expressed in terms of `${prefix}', so that
|
||||
specifying just `--prefix' will affect all of the other directory
|
||||
specifications.
|
||||
specifications that were not explicitly provided.
|
||||
|
||||
The most portable way to affect installation locations is to pass the
|
||||
correct locations to `configure'; however, many packages provide one or
|
||||
@@ -165,28 +169,25 @@ having to reconfigure or recompile.
|
||||
|
||||
The first method involves providing an override variable for each
|
||||
affected directory. For example, `make install
|
||||
prefix=/path/to/alternate' will choose an alternate location, as well as
|
||||
influencing all other directory configuration variables that were
|
||||
expressed in terms of `${prefix}' (or, put another way, all directories
|
||||
specified during `configure' but not in terms of the common prefix must
|
||||
each be overridden at install time for the entire installation to be
|
||||
relocated). The approach of makefile variable overrides for each
|
||||
directory variable is required by the GNU Coding Standards, and ideally
|
||||
causes no recompilation. However, some platforms have known
|
||||
limitations with the semantics of shared libraries that end up
|
||||
requiring recompilation when using this method, particularly noticeable
|
||||
in packages that use GNU Libtool.
|
||||
prefix=/alternate/directory' will choose an alternate location for all
|
||||
directory configuration variables that were expressed in terms of
|
||||
`${prefix}'. Any directories that were specified during `configure',
|
||||
but not in terms of `${prefix}', must each be overridden at install
|
||||
time for the entire installation to be relocated. The approach of
|
||||
makefile variable overrides for each directory variable is required by
|
||||
the GNU Coding Standards, and ideally causes no recompilation.
|
||||
However, some platforms have known limitations with the semantics of
|
||||
shared libraries that end up requiring recompilation when using this
|
||||
method, particularly noticeable in packages that use GNU Libtool.
|
||||
|
||||
The second method involves providing the `DESTDIR' variable. For
|
||||
example, `make install DESTDIR=/path/to/alternate' will prepend
|
||||
`/path/to/alternate' before all installation paths. The approach of
|
||||
example, `make install DESTDIR=/alternate/directory' will prepend
|
||||
`/alternate/directory' before all installation names. The approach of
|
||||
`DESTDIR' overrides is not required by the GNU Coding Standards, and
|
||||
does not work on platforms that have drive letters. On the other hand,
|
||||
it does better at avoiding recompilation issues, and works well even
|
||||
when some directory options were not specified in terms of `${prefix}'
|
||||
at `configure' time. For packages which support `DESTDIR', the
|
||||
variable should remain undefined during `configure' and `make all', and
|
||||
only be specified during `make install'.
|
||||
at `configure' time.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Make coreutils. -*-Makefile-*-
|
||||
|
||||
# Copyright (C) 1990, 1993-2009 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1990, 1993-2010 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
|
||||
@@ -47,6 +47,8 @@ syntax_check_exceptions = \
|
||||
.x-sc_po_check \
|
||||
.x-sc_program_name \
|
||||
.x-sc_prohibit_atoi_atof \
|
||||
.x-sc_prohibit_fail_0 \
|
||||
.x-sc_prohibit_magic_number_exit \
|
||||
.x-sc_prohibit_stat_st_blocks \
|
||||
.x-sc_prohibit_strcmp \
|
||||
.x-sc_prohibit_tab_based_indentation \
|
||||
|
||||
+262
-119
@@ -17,7 +17,7 @@
|
||||
|
||||
# Make coreutils. -*-Makefile-*-
|
||||
|
||||
# Copyright (C) 1990, 1993-2009 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1990, 1993-2010 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
|
||||
@@ -74,35 +74,40 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/cloexec.m4 $(top_srcdir)/m4/close-stream.m4 \
|
||||
$(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/closein.m4 \
|
||||
$(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \
|
||||
$(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/cycle-check.m4 \
|
||||
$(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \
|
||||
$(top_srcdir)/m4/dirent-safer.m4 $(top_srcdir)/m4/dirent_h.m4 \
|
||||
$(top_srcdir)/m4/dirfd.m4 $(top_srcdir)/m4/dirname.m4 \
|
||||
$(top_srcdir)/m4/dos.m4 $(top_srcdir)/m4/double-slash-root.m4 \
|
||||
$(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \
|
||||
$(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \
|
||||
$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/euidaccess-stat.m4 \
|
||||
$(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/ctype.m4 \
|
||||
$(top_srcdir)/m4/cycle-check.m4 $(top_srcdir)/m4/d-ino.m4 \
|
||||
$(top_srcdir)/m4/d-type.m4 $(top_srcdir)/m4/dirent-safer.m4 \
|
||||
$(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \
|
||||
$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
|
||||
$(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
|
||||
$(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
|
||||
$(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
|
||||
$(top_srcdir)/m4/euidaccess-stat.m4 \
|
||||
$(top_srcdir)/m4/euidaccess.m4 $(top_srcdir)/m4/exclude.m4 \
|
||||
$(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/exponentd.m4 \
|
||||
$(top_srcdir)/m4/exponentf.m4 $(top_srcdir)/m4/exponentl.m4 \
|
||||
$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fchdir.m4 \
|
||||
$(top_srcdir)/m4/fclose.m4 $(top_srcdir)/m4/fcntl-safer.m4 \
|
||||
$(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fd-reopen.m4 \
|
||||
$(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/fflush.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/float_h.m4 \
|
||||
$(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fopen.m4 \
|
||||
$(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fpieee.m4 \
|
||||
$(top_srcdir)/m4/fprintftime.m4 $(top_srcdir)/m4/fpurge.m4 \
|
||||
$(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/frexp.m4 \
|
||||
$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/faccessat.m4 \
|
||||
$(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \
|
||||
$(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \
|
||||
$(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
|
||||
$(top_srcdir)/m4/fd-reopen.m4 $(top_srcdir)/m4/fdopendir.m4 \
|
||||
$(top_srcdir)/m4/fflush.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/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
|
||||
$(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpending.m4 \
|
||||
$(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/fprintftime.m4 \
|
||||
$(top_srcdir)/m4/fpurge.m4 $(top_srcdir)/m4/freading.m4 \
|
||||
$(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/frexp.m4 \
|
||||
$(top_srcdir)/m4/frexpl.m4 $(top_srcdir)/m4/fseeko.m4 \
|
||||
$(top_srcdir)/m4/fstypename.m4 $(top_srcdir)/m4/fsusage.m4 \
|
||||
$(top_srcdir)/m4/ftello.m4 $(top_srcdir)/m4/ftruncate.m4 \
|
||||
$(top_srcdir)/m4/fts.m4 $(top_srcdir)/m4/getaddrinfo.m4 \
|
||||
$(top_srcdir)/m4/fsync.m4 $(top_srcdir)/m4/ftello.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 \
|
||||
$(top_srcdir)/m4/getdtablesize.m4 \
|
||||
$(top_srcdir)/m4/getgroups.m4 $(top_srcdir)/m4/gethostname.m4 \
|
||||
$(top_srcdir)/m4/gethrxtime.m4 $(top_srcdir)/m4/getline.m4 \
|
||||
$(top_srcdir)/m4/getloadavg.m4 $(top_srcdir)/m4/getndelim2.m4 \
|
||||
@@ -126,24 +131,27 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
|
||||
$(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
|
||||
$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
|
||||
$(top_srcdir)/m4/isapipe.m4 $(top_srcdir)/m4/isnand.m4 \
|
||||
$(top_srcdir)/m4/isnanf.m4 $(top_srcdir)/m4/isnanl.m4 \
|
||||
$(top_srcdir)/m4/jm-macros.m4 $(top_srcdir)/m4/jm-winsz1.m4 \
|
||||
$(top_srcdir)/m4/jm-winsz2.m4 $(top_srcdir)/m4/lchmod.m4 \
|
||||
$(top_srcdir)/m4/isapipe.m4 $(top_srcdir)/m4/isblank.m4 \
|
||||
$(top_srcdir)/m4/isnand.m4 $(top_srcdir)/m4/isnanf.m4 \
|
||||
$(top_srcdir)/m4/isnanl.m4 $(top_srcdir)/m4/jm-macros.m4 \
|
||||
$(top_srcdir)/m4/jm-winsz1.m4 $(top_srcdir)/m4/jm-winsz2.m4 \
|
||||
$(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/lchmod.m4 \
|
||||
$(top_srcdir)/m4/lchown.m4 $(top_srcdir)/m4/ldexpl.m4 \
|
||||
$(top_srcdir)/m4/lib-check.m4 $(top_srcdir)/m4/lib-ignore.m4 \
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/link-follow.m4 \
|
||||
$(top_srcdir)/m4/link.m4 $(top_srcdir)/m4/localcharset.m4 \
|
||||
$(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
|
||||
$(top_srcdir)/m4/locale-tr.m4 $(top_srcdir)/m4/locale-zh.m4 \
|
||||
$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
|
||||
$(top_srcdir)/m4/ls-mntd-fs.m4 $(top_srcdir)/m4/lseek.m4 \
|
||||
$(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \
|
||||
$(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \
|
||||
$(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mbchar.m4 \
|
||||
$(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrlen.m4 \
|
||||
$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \
|
||||
$(top_srcdir)/m4/link.m4 $(top_srcdir)/m4/linkat.m4 \
|
||||
$(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \
|
||||
$(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-tr.m4 \
|
||||
$(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \
|
||||
$(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/long-options.m4 \
|
||||
$(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/ls-mntd-fs.m4 \
|
||||
$(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/lstat.m4 \
|
||||
$(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \
|
||||
$(top_srcdir)/m4/manywarnings.m4 $(top_srcdir)/m4/math_h.m4 \
|
||||
$(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \
|
||||
$(top_srcdir)/m4/mbrlen.m4 $(top_srcdir)/m4/mbrtowc.m4 \
|
||||
$(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbslen.m4 \
|
||||
$(top_srcdir)/m4/mbsrtowcs.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 \
|
||||
@@ -152,34 +160,34 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
|
||||
$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/memxfrm.m4 \
|
||||
$(top_srcdir)/m4/mgetgroups.m4 $(top_srcdir)/m4/mkancesdirs.m4 \
|
||||
$(top_srcdir)/m4/mkdir-p.m4 $(top_srcdir)/m4/mkdir-slash.m4 \
|
||||
$(top_srcdir)/m4/mkdir-p.m4 $(top_srcdir)/m4/mkdir.m4 \
|
||||
$(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \
|
||||
$(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
|
||||
$(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/mountlist.m4 \
|
||||
$(top_srcdir)/m4/mpsort.m4 $(top_srcdir)/m4/multiarch.m4 \
|
||||
$(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/netdb_h.m4 \
|
||||
$(top_srcdir)/m4/netinet_in_h.m4 $(top_srcdir)/m4/nls.m4 \
|
||||
$(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/open.m4 \
|
||||
$(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \
|
||||
$(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/perror.m4 \
|
||||
$(top_srcdir)/m4/physmem.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/posixtm.m4 \
|
||||
$(top_srcdir)/m4/posixver.m4 $(top_srcdir)/m4/prereq.m4 \
|
||||
$(top_srcdir)/m4/printf-frexp.m4 \
|
||||
$(top_srcdir)/m4/netinet_in_h.m4 \
|
||||
$(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
|
||||
$(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nproc.m4 \
|
||||
$(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \
|
||||
$(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perl.m4 \
|
||||
$(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/physmem.m4 \
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/posix-shell.m4 \
|
||||
$(top_srcdir)/m4/posixtm.m4 $(top_srcdir)/m4/posixver.m4 \
|
||||
$(top_srcdir)/m4/prereq.m4 $(top_srcdir)/m4/printf-frexp.m4 \
|
||||
$(top_srcdir)/m4/printf-frexpl.m4 $(top_srcdir)/m4/printf.m4 \
|
||||
$(top_srcdir)/m4/priv-set.m4 $(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/m4/putenv.m4 $(top_srcdir)/m4/quote.m4 \
|
||||
$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/read-file.m4 \
|
||||
$(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readtokens.m4 \
|
||||
$(top_srcdir)/m4/readutmp.m4 $(top_srcdir)/m4/realloc.m4 \
|
||||
$(top_srcdir)/m4/regex.m4 \
|
||||
$(top_srcdir)/m4/rename-dest-slash.m4 \
|
||||
$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir-errno.m4 \
|
||||
$(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/root-dev-ino.m4 \
|
||||
$(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/safe-read.m4 \
|
||||
$(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/same.m4 \
|
||||
$(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
|
||||
$(top_srcdir)/m4/savewd.m4 $(top_srcdir)/m4/select.m4 \
|
||||
$(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/remove.m4 \
|
||||
$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \
|
||||
$(top_srcdir)/m4/root-dev-ino.m4 $(top_srcdir)/m4/rpmatch.m4 \
|
||||
$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
|
||||
$(top_srcdir)/m4/same.m4 $(top_srcdir)/m4/save-cwd.m4 \
|
||||
$(top_srcdir)/m4/savedir.m4 $(top_srcdir)/m4/savewd.m4 \
|
||||
$(top_srcdir)/m4/select.m4 \
|
||||
$(top_srcdir)/m4/selinux-context-h.m4 \
|
||||
$(top_srcdir)/m4/selinux-selinux-h.m4 \
|
||||
$(top_srcdir)/m4/servent.m4 $(top_srcdir)/m4/setenv.m4 \
|
||||
@@ -193,38 +201,45 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \
|
||||
$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/st_dm_mode.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/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
|
||||
$(top_srcdir)/m4/stdint_h.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/stpncpy.m4 $(top_srcdir)/m4/strcspn.m4 \
|
||||
$(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \
|
||||
$(top_srcdir)/m4/strftime.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/stat.m4 $(top_srcdir)/m4/stdarg.m4 \
|
||||
$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
|
||||
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.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/stpncpy.m4 \
|
||||
$(top_srcdir)/m4/strcspn.m4 $(top_srcdir)/m4/strdup.m4 \
|
||||
$(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.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/strsignal.m4 \
|
||||
$(top_srcdir)/m4/strstr.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_ioctl_h.m4 \
|
||||
$(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/symlinkat.m4 \
|
||||
$(top_srcdir)/m4/sys_ioctl_h.m4 \
|
||||
$(top_srcdir)/m4/sys_select_h.m4 \
|
||||
$(top_srcdir)/m4/sys_socket_h.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/sys_utsname_h.m4 $(top_srcdir)/m4/tempname.m4 \
|
||||
$(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
|
||||
$(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \
|
||||
$(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tls.m4 \
|
||||
$(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.m4 \
|
||||
$(top_srcdir)/m4/ungetc.m4 $(top_srcdir)/m4/unicodeio.m4 \
|
||||
$(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \
|
||||
$(top_srcdir)/m4/unlink-busy.m4 $(top_srcdir)/m4/unlinkdir.m4 \
|
||||
$(top_srcdir)/m4/uname.m4 $(top_srcdir)/m4/ungetc.m4 \
|
||||
$(top_srcdir)/m4/unicodeio.m4 $(top_srcdir)/m4/unistd-safer.m4 \
|
||||
$(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink-busy.m4 \
|
||||
$(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \
|
||||
$(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/uptime.m4 \
|
||||
$(top_srcdir)/m4/userspec.m4 $(top_srcdir)/m4/utimbuf.m4 \
|
||||
$(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \
|
||||
$(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
|
||||
$(top_srcdir)/m4/userspec.m4 $(top_srcdir)/m4/usleep.m4 \
|
||||
$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimecmp.m4 \
|
||||
$(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes.m4 \
|
||||
$(top_srcdir)/m4/vasnprintf.m4 \
|
||||
$(top_srcdir)/m4/vasprintf-posix.m4 \
|
||||
$(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
|
||||
$(top_srcdir)/m4/vfprintf-posix.m4 \
|
||||
$(top_srcdir)/m4/vprintf-posix.m4 $(top_srcdir)/m4/warnings.m4 \
|
||||
$(top_srcdir)/m4/vprintf-posix.m4 \
|
||||
$(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
|
||||
$(top_srcdir)/m4/wchar.m4 $(top_srcdir)/m4/wchar_t.m4 \
|
||||
$(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctob.m4 \
|
||||
$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wcwidth.m4 \
|
||||
@@ -235,7 +250,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrndup.m4 \
|
||||
$(top_srcdir)/m4/xstrtod.m4 $(top_srcdir)/m4/xstrtol.m4 \
|
||||
$(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/m4/yesno.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/yield.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 \
|
||||
@@ -246,7 +261,7 @@ CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
@@ -263,9 +278,10 @@ RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
||||
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
||||
distdir dist dist-all distcheck
|
||||
cscope distdir dist dist-all distcheck
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
CSCOPE = cscope
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
@@ -274,6 +290,7 @@ am__remove_distdir = \
|
||||
{ test ! -d "$(distdir)" \
|
||||
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr "$(distdir)"; }; }
|
||||
am__post_remove_distdir = $(am__remove_distdir)
|
||||
am__relativize = \
|
||||
dir0=`pwd`; \
|
||||
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||
@@ -301,6 +318,7 @@ am__relativize = \
|
||||
reldir="$$dir2"
|
||||
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.xz
|
||||
GZIP_ENV = --best
|
||||
DIST_TARGETS = dist-xz dist-gzip
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
@@ -309,7 +327,6 @@ ALLOCA_H = @ALLOCA_H@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
|
||||
ARPA_INET_H = @ARPA_INET_H@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
@@ -329,7 +346,6 @@ CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_POSIX2_VERSION = @DEFAULT_POSIX2_VERSION@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DIRENT_H = @DIRENT_H@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
@@ -342,7 +358,6 @@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
|
||||
EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
|
||||
ERRNO_H = @ERRNO_H@
|
||||
EXEEXT = @EXEEXT@
|
||||
FCNTL_H = @FCNTL_H@
|
||||
FLOAT_H = @FLOAT_H@
|
||||
FNMATCH_H = @FNMATCH_H@
|
||||
GETADDRINFO_LIB = @GETADDRINFO_LIB@
|
||||
@@ -360,6 +375,7 @@ GNULIB_ATOLL = @GNULIB_ATOLL@
|
||||
GNULIB_BIND = @GNULIB_BIND@
|
||||
GNULIB_BTOWC = @GNULIB_BTOWC@
|
||||
GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
|
||||
GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
|
||||
GNULIB_CEILF = @GNULIB_CEILF@
|
||||
GNULIB_CEILL = @GNULIB_CEILL@
|
||||
GNULIB_CHOWN = @GNULIB_CHOWN@
|
||||
@@ -369,6 +385,7 @@ GNULIB_DIRFD = @GNULIB_DIRFD@
|
||||
GNULIB_DPRINTF = @GNULIB_DPRINTF@
|
||||
GNULIB_DUP2 = @GNULIB_DUP2@
|
||||
GNULIB_DUP3 = @GNULIB_DUP3@
|
||||
GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
|
||||
GNULIB_ENVIRON = @GNULIB_ENVIRON@
|
||||
GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
|
||||
GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
|
||||
@@ -376,6 +393,7 @@ GNULIB_FCHDIR = @GNULIB_FCHDIR@
|
||||
GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
|
||||
GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
|
||||
GNULIB_FCLOSE = @GNULIB_FCLOSE@
|
||||
GNULIB_FCNTL = @GNULIB_FCNTL@
|
||||
GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
|
||||
GNULIB_FFLUSH = @GNULIB_FFLUSH@
|
||||
GNULIB_FLOORF = @GNULIB_FLOORF@
|
||||
@@ -396,15 +414,18 @@ GNULIB_FSYNC = @GNULIB_FSYNC@
|
||||
GNULIB_FTELL = @GNULIB_FTELL@
|
||||
GNULIB_FTELLO = @GNULIB_FTELLO@
|
||||
GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
|
||||
GNULIB_FUTIMENS = @GNULIB_FUTIMENS@
|
||||
GNULIB_FWRITE = @GNULIB_FWRITE@
|
||||
GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@
|
||||
GNULIB_GETCWD = @GNULIB_GETCWD@
|
||||
GNULIB_GETDELIM = @GNULIB_GETDELIM@
|
||||
GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
|
||||
GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
|
||||
GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
|
||||
GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
|
||||
GNULIB_GETLINE = @GNULIB_GETLINE@
|
||||
GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
|
||||
GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
|
||||
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
|
||||
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
|
||||
GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
|
||||
@@ -417,6 +438,7 @@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
|
||||
GNULIB_INET_NTOP = @GNULIB_INET_NTOP@
|
||||
GNULIB_INET_PTON = @GNULIB_INET_PTON@
|
||||
GNULIB_IOCTL = @GNULIB_IOCTL@
|
||||
GNULIB_ISBLANK = @GNULIB_ISBLANK@
|
||||
GNULIB_ISFINITE = @GNULIB_ISFINITE@
|
||||
GNULIB_ISINF = @GNULIB_ISINF@
|
||||
GNULIB_ISNAN = @GNULIB_ISNAN@
|
||||
@@ -427,6 +449,7 @@ GNULIB_LCHMOD = @GNULIB_LCHMOD@
|
||||
GNULIB_LCHOWN = @GNULIB_LCHOWN@
|
||||
GNULIB_LDEXPL = @GNULIB_LDEXPL@
|
||||
GNULIB_LINK = @GNULIB_LINK@
|
||||
GNULIB_LINKAT = @GNULIB_LINKAT@
|
||||
GNULIB_LISTEN = @GNULIB_LISTEN@
|
||||
GNULIB_LSEEK = @GNULIB_LSEEK@
|
||||
GNULIB_LSTAT = @GNULIB_LSTAT@
|
||||
@@ -457,10 +480,15 @@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
|
||||
GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
|
||||
GNULIB_MKDIRAT = @GNULIB_MKDIRAT@
|
||||
GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
|
||||
GNULIB_MKFIFO = @GNULIB_MKFIFO@
|
||||
GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@
|
||||
GNULIB_MKNOD = @GNULIB_MKNOD@
|
||||
GNULIB_MKNODAT = @GNULIB_MKNODAT@
|
||||
GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
|
||||
GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
|
||||
GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
|
||||
GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
|
||||
GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
|
||||
GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
|
||||
GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
|
||||
GNULIB_OPEN = @GNULIB_OPEN@
|
||||
@@ -468,6 +496,7 @@ GNULIB_OPENAT = @GNULIB_OPENAT@
|
||||
GNULIB_PERROR = @GNULIB_PERROR@
|
||||
GNULIB_PIPE2 = @GNULIB_PIPE2@
|
||||
GNULIB_POPEN = @GNULIB_POPEN@
|
||||
GNULIB_PREAD = @GNULIB_PREAD@
|
||||
GNULIB_PRINTF = @GNULIB_PRINTF@
|
||||
GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
|
||||
GNULIB_PUTC = @GNULIB_PUTC@
|
||||
@@ -479,9 +508,13 @@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
|
||||
GNULIB_READLINK = @GNULIB_READLINK@
|
||||
GNULIB_READLINKAT = @GNULIB_READLINKAT@
|
||||
GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
|
||||
GNULIB_REALPATH = @GNULIB_REALPATH@
|
||||
GNULIB_RECV = @GNULIB_RECV@
|
||||
GNULIB_RECVFROM = @GNULIB_RECVFROM@
|
||||
GNULIB_REMOVE = @GNULIB_REMOVE@
|
||||
GNULIB_RENAME = @GNULIB_RENAME@
|
||||
GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
|
||||
GNULIB_RMDIR = @GNULIB_RMDIR@
|
||||
GNULIB_ROUND = @GNULIB_ROUND@
|
||||
GNULIB_ROUNDF = @GNULIB_ROUNDF@
|
||||
GNULIB_ROUNDL = @GNULIB_ROUNDL@
|
||||
@@ -501,6 +534,7 @@ GNULIB_SLEEP = @GNULIB_SLEEP@
|
||||
GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
|
||||
GNULIB_SOCKET = @GNULIB_SOCKET@
|
||||
GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
|
||||
GNULIB_STAT = @GNULIB_STAT@
|
||||
GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
|
||||
GNULIB_STPCPY = @GNULIB_STPCPY@
|
||||
GNULIB_STPNCPY = @GNULIB_STPNCPY@
|
||||
@@ -521,14 +555,19 @@ GNULIB_STRTOLL = @GNULIB_STRTOLL@
|
||||
GNULIB_STRTOULL = @GNULIB_STRTOULL@
|
||||
GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
|
||||
GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
|
||||
GNULIB_SYMLINK = @GNULIB_SYMLINK@
|
||||
GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
|
||||
GNULIB_TRUNC = @GNULIB_TRUNC@
|
||||
GNULIB_TRUNCF = @GNULIB_TRUNCF@
|
||||
GNULIB_TRUNCL = @GNULIB_TRUNCL@
|
||||
GNULIB_UNAME = @GNULIB_UNAME@
|
||||
GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
|
||||
GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
|
||||
GNULIB_UNLINK = @GNULIB_UNLINK@
|
||||
GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
|
||||
GNULIB_UNSETENV = @GNULIB_UNSETENV@
|
||||
GNULIB_USLEEP = @GNULIB_USLEEP@
|
||||
GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@
|
||||
GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
|
||||
GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
|
||||
GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
|
||||
@@ -537,6 +576,7 @@ GNULIB_VPRINTF = @GNULIB_VPRINTF@
|
||||
GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
|
||||
GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
|
||||
GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
|
||||
GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
|
||||
GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
|
||||
GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
|
||||
GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
|
||||
@@ -550,6 +590,8 @@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@
|
||||
HAVE_ATOLL = @HAVE_ATOLL@
|
||||
HAVE_BTOWC = @HAVE_BTOWC@
|
||||
HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
|
||||
HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
|
||||
HAVE_CHOWN = @HAVE_CHOWN@
|
||||
HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
|
||||
HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
|
||||
HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
|
||||
@@ -600,51 +642,69 @@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
|
||||
HAVE_FACCESSAT = @HAVE_FACCESSAT@
|
||||
HAVE_FCHMODAT = @HAVE_FCHMODAT@
|
||||
HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
|
||||
HAVE_FCNTL = @HAVE_FCNTL@
|
||||
HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
|
||||
HAVE_FSEEKO = @HAVE_FSEEKO@
|
||||
HAVE_FSTATAT = @HAVE_FSTATAT@
|
||||
HAVE_FSYNC = @HAVE_FSYNC@
|
||||
HAVE_FTELLO = @HAVE_FTELLO@
|
||||
HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
|
||||
HAVE_FUTIMENS = @HAVE_FUTIMENS@
|
||||
HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@
|
||||
HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
|
||||
HAVE_GETGROUPS = @HAVE_GETGROUPS@
|
||||
HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
|
||||
HAVE_GETLOGIN = @HAVE_GETLOGIN@
|
||||
HAVE_GETOPT_H = @HAVE_GETOPT_H@
|
||||
HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
|
||||
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
|
||||
HAVE_GETUSERSHELL = @HAVE_GETUSERSHELL@
|
||||
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
|
||||
HAVE_ISBLANK = @HAVE_ISBLANK@
|
||||
HAVE_ISNAND = @HAVE_ISNAND@
|
||||
HAVE_ISNANF = @HAVE_ISNANF@
|
||||
HAVE_ISNANL = @HAVE_ISNANL@
|
||||
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
|
||||
HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
|
||||
HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
|
||||
HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
|
||||
HAVE_LCHMOD = @HAVE_LCHMOD@
|
||||
HAVE_LCHOWN = @HAVE_LCHOWN@
|
||||
HAVE_LINK = @HAVE_LINK@
|
||||
HAVE_LINKAT = @HAVE_LINKAT@
|
||||
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
|
||||
HAVE_LSTAT = @HAVE_LSTAT@
|
||||
HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
|
||||
HAVE_MBRLEN = @HAVE_MBRLEN@
|
||||
HAVE_MBRTOWC = @HAVE_MBRTOWC@
|
||||
HAVE_MBSINIT = @HAVE_MBSINIT@
|
||||
HAVE_MBSLEN = @HAVE_MBSLEN@
|
||||
HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
|
||||
HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
|
||||
HAVE_MEMPCPY = @HAVE_MEMPCPY@
|
||||
HAVE_MKDIRAT = @HAVE_MKDIRAT@
|
||||
HAVE_MKDTEMP = @HAVE_MKDTEMP@
|
||||
HAVE_MKFIFO = @HAVE_MKFIFO@
|
||||
HAVE_MKFIFOAT = @HAVE_MKFIFOAT@
|
||||
HAVE_MKNOD = @HAVE_MKNOD@
|
||||
HAVE_MKNODAT = @HAVE_MKNODAT@
|
||||
HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
|
||||
HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
|
||||
HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
|
||||
HAVE_NETDB_H = @HAVE_NETDB_H@
|
||||
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
|
||||
HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
|
||||
HAVE_OPENAT = @HAVE_OPENAT@
|
||||
HAVE_OS_H = @HAVE_OS_H@
|
||||
HAVE_PIPE2 = @HAVE_PIPE2@
|
||||
HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
|
||||
HAVE_PREAD = @HAVE_PREAD@
|
||||
HAVE_RANDOM_H = @HAVE_RANDOM_H@
|
||||
HAVE_RANDOM_R = @HAVE_RANDOM_R@
|
||||
HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
|
||||
HAVE_READLINK = @HAVE_READLINK@
|
||||
HAVE_READLINKAT = @HAVE_READLINKAT@
|
||||
HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
|
||||
HAVE_REALPATH = @HAVE_REALPATH@
|
||||
HAVE_RENAMEAT = @HAVE_RENAMEAT@
|
||||
HAVE_RPMATCH = @HAVE_RPMATCH@
|
||||
HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
|
||||
HAVE_SCANDIR = @HAVE_SCANDIR@
|
||||
@@ -671,6 +731,7 @@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
|
||||
HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
|
||||
HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@
|
||||
HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
|
||||
HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@
|
||||
HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
|
||||
HAVE_SYMLINK = @HAVE_SYMLINK@
|
||||
HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
|
||||
@@ -683,11 +744,15 @@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@
|
||||
HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
|
||||
HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
|
||||
HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
|
||||
HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@
|
||||
HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
|
||||
HAVE_UNAME = @HAVE_UNAME@
|
||||
HAVE_UNISTD_H = @HAVE_UNISTD_H@
|
||||
HAVE_UNLINKAT = @HAVE_UNLINKAT@
|
||||
HAVE_UNSETENV = @HAVE_UNSETENV@
|
||||
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
|
||||
HAVE_USLEEP = @HAVE_USLEEP@
|
||||
HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
|
||||
HAVE_VASPRINTF = @HAVE_VASPRINTF@
|
||||
HAVE_VDPRINTF = @HAVE_VDPRINTF@
|
||||
HAVE_WCHAR_H = @HAVE_WCHAR_H@
|
||||
@@ -699,12 +764,15 @@ 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_XLOCALE_H = @HAVE_XLOCALE_H@
|
||||
HAVE__BOOL = @HAVE__BOOL@
|
||||
HELP2MAN = @HELP2MAN@
|
||||
HOSTENT_LIB = @HOSTENT_LIB@
|
||||
ICONV_H = @ICONV_H@
|
||||
INCLUDE_NEXT = @INCLUDE_NEXT@
|
||||
INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
|
||||
INET_NTOP_LIB = @INET_NTOP_LIB@
|
||||
INET_PTON_LIB = @INET_PTON_LIB@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
@@ -715,17 +783,20 @@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@
|
||||
INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
INTTYPES_H = @INTTYPES_H@
|
||||
KMEM_GROUP = @KMEM_GROUP@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBCOREUTILS_LIBDEPS = @LIBCOREUTILS_LIBDEPS@
|
||||
LIBCOREUTILS_LTLIBDEPS = @LIBCOREUTILS_LTLIBDEPS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBMULTITHREAD = @LIBMULTITHREAD@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBPTH = @LIBPTH@
|
||||
LIBPTH_PREFIX = @LIBPTH_PREFIX@
|
||||
LIBS = @LIBS@
|
||||
LIBSOCKET = @LIBSOCKET@
|
||||
LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
|
||||
LIBTHREAD = @LIBTHREAD@
|
||||
LIB_ACL = @LIB_ACL@
|
||||
LIB_CAP = @LIB_CAP@
|
||||
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
|
||||
@@ -746,7 +817,10 @@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@
|
||||
LOCALE_ZH_CN = @LOCALE_ZH_CN@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
LTLIBPTH = @LTLIBPTH@
|
||||
LTLIBTHREAD = @LTLIBTHREAD@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MAN = @MAN@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
@@ -758,15 +832,20 @@ NETDB_H = @NETDB_H@
|
||||
NETINET_IN_H = @NETINET_IN_H@
|
||||
NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_H = @NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
|
||||
@@ -779,19 +858,25 @@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
|
||||
NEXT_CTYPE_H = @NEXT_CTYPE_H@
|
||||
NEXT_DIRENT_H = @NEXT_DIRENT_H@
|
||||
NEXT_ERRNO_H = @NEXT_ERRNO_H@
|
||||
NEXT_FCNTL_H = @NEXT_FCNTL_H@
|
||||
NEXT_FLOAT_H = @NEXT_FLOAT_H@
|
||||
NEXT_GETOPT_H = @NEXT_GETOPT_H@
|
||||
NEXT_ICONV_H = @NEXT_ICONV_H@
|
||||
NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
|
||||
NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
|
||||
NEXT_LOCALE_H = @NEXT_LOCALE_H@
|
||||
NEXT_MATH_H = @NEXT_MATH_H@
|
||||
NEXT_NETDB_H = @NEXT_NETDB_H@
|
||||
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
|
||||
NEXT_SELINUX_SELINUX_H = @NEXT_SELINUX_SELINUX_H@
|
||||
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
|
||||
NEXT_STDARG_H = @NEXT_STDARG_H@
|
||||
NEXT_STDDEF_H = @NEXT_STDDEF_H@
|
||||
@@ -804,6 +889,7 @@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@
|
||||
NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
|
||||
NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
|
||||
NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
|
||||
NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@
|
||||
NEXT_TIME_H = @NEXT_TIME_H@
|
||||
NEXT_UNISTD_H = @NEXT_UNISTD_H@
|
||||
NEXT_WCHAR_H = @NEXT_WCHAR_H@
|
||||
@@ -831,15 +917,21 @@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
|
||||
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
|
||||
RANLIB = @RANLIB@
|
||||
REPLACE_BTOWC = @REPLACE_BTOWC@
|
||||
REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
|
||||
REPLACE_CEILF = @REPLACE_CEILF@
|
||||
REPLACE_CEILL = @REPLACE_CEILL@
|
||||
REPLACE_CHOWN = @REPLACE_CHOWN@
|
||||
REPLACE_CLOSE = @REPLACE_CLOSE@
|
||||
REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@
|
||||
REPLACE_DPRINTF = @REPLACE_DPRINTF@
|
||||
REPLACE_DUP = @REPLACE_DUP@
|
||||
REPLACE_DUP2 = @REPLACE_DUP2@
|
||||
REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
|
||||
REPLACE_FCHDIR = @REPLACE_FCHDIR@
|
||||
REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
|
||||
REPLACE_FCLOSE = @REPLACE_FCLOSE@
|
||||
REPLACE_FCNTL = @REPLACE_FCNTL@
|
||||
REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
|
||||
REPLACE_FFLUSH = @REPLACE_FFLUSH@
|
||||
REPLACE_FLOORF = @REPLACE_FLOORF@
|
||||
REPLACE_FLOORL = @REPLACE_FLOORL@
|
||||
@@ -851,10 +943,13 @@ REPLACE_FREXP = @REPLACE_FREXP@
|
||||
REPLACE_FREXPL = @REPLACE_FREXPL@
|
||||
REPLACE_FSEEK = @REPLACE_FSEEK@
|
||||
REPLACE_FSEEKO = @REPLACE_FSEEKO@
|
||||
REPLACE_FSTAT = @REPLACE_FSTAT@
|
||||
REPLACE_FSTATAT = @REPLACE_FSTATAT@
|
||||
REPLACE_FTELL = @REPLACE_FTELL@
|
||||
REPLACE_FTELLO = @REPLACE_FTELLO@
|
||||
REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
|
||||
REPLACE_GETCWD = @REPLACE_GETCWD@
|
||||
REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
|
||||
REPLACE_GETLINE = @REPLACE_GETLINE@
|
||||
REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
|
||||
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
|
||||
@@ -869,6 +964,7 @@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
|
||||
REPLACE_LCHOWN = @REPLACE_LCHOWN@
|
||||
REPLACE_LDEXPL = @REPLACE_LDEXPL@
|
||||
REPLACE_LINK = @REPLACE_LINK@
|
||||
REPLACE_LINKAT = @REPLACE_LINKAT@
|
||||
REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
|
||||
REPLACE_LSEEK = @REPLACE_LSEEK@
|
||||
REPLACE_LSTAT = @REPLACE_LSTAT@
|
||||
@@ -881,26 +977,40 @@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
|
||||
REPLACE_MEMCHR = @REPLACE_MEMCHR@
|
||||
REPLACE_MEMMEM = @REPLACE_MEMMEM@
|
||||
REPLACE_MKDIR = @REPLACE_MKDIR@
|
||||
REPLACE_MKFIFO = @REPLACE_MKFIFO@
|
||||
REPLACE_MKNOD = @REPLACE_MKNOD@
|
||||
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
|
||||
REPLACE_MKTIME = @REPLACE_MKTIME@
|
||||
REPLACE_NAN = @REPLACE_NAN@
|
||||
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
|
||||
REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
|
||||
REPLACE_NULL = @REPLACE_NULL@
|
||||
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
|
||||
REPLACE_OPEN = @REPLACE_OPEN@
|
||||
REPLACE_OPENAT = @REPLACE_OPENAT@
|
||||
REPLACE_OPENDIR = @REPLACE_OPENDIR@
|
||||
REPLACE_PERROR = @REPLACE_PERROR@
|
||||
REPLACE_POPEN = @REPLACE_POPEN@
|
||||
REPLACE_PREAD = @REPLACE_PREAD@
|
||||
REPLACE_PRINTF = @REPLACE_PRINTF@
|
||||
REPLACE_PUTENV = @REPLACE_PUTENV@
|
||||
REPLACE_READLINK = @REPLACE_READLINK@
|
||||
REPLACE_REALPATH = @REPLACE_REALPATH@
|
||||
REPLACE_REMOVE = @REPLACE_REMOVE@
|
||||
REPLACE_RENAME = @REPLACE_RENAME@
|
||||
REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
|
||||
REPLACE_RMDIR = @REPLACE_RMDIR@
|
||||
REPLACE_ROUND = @REPLACE_ROUND@
|
||||
REPLACE_ROUNDF = @REPLACE_ROUNDF@
|
||||
REPLACE_ROUNDL = @REPLACE_ROUNDL@
|
||||
REPLACE_SELECT = @REPLACE_SELECT@
|
||||
REPLACE_SETENV = @REPLACE_SETENV@
|
||||
REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
|
||||
REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
|
||||
REPLACE_SLEEP = @REPLACE_SLEEP@
|
||||
REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
|
||||
REPLACE_SPRINTF = @REPLACE_SPRINTF@
|
||||
REPLACE_STAT = @REPLACE_STAT@
|
||||
REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
|
||||
REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
|
||||
REPLACE_STRDUP = @REPLACE_STRDUP@
|
||||
@@ -911,8 +1021,14 @@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
|
||||
REPLACE_STRSTR = @REPLACE_STRSTR@
|
||||
REPLACE_STRTOD = @REPLACE_STRTOD@
|
||||
REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
|
||||
REPLACE_SYMLINK = @REPLACE_SYMLINK@
|
||||
REPLACE_TIMEGM = @REPLACE_TIMEGM@
|
||||
REPLACE_TRUNCL = @REPLACE_TRUNCL@
|
||||
REPLACE_UNLINK = @REPLACE_UNLINK@
|
||||
REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
|
||||
REPLACE_UNSETENV = @REPLACE_UNSETENV@
|
||||
REPLACE_USLEEP = @REPLACE_USLEEP@
|
||||
REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@
|
||||
REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
|
||||
REPLACE_VDPRINTF = @REPLACE_VDPRINTF@
|
||||
REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
|
||||
@@ -926,7 +1042,6 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
|
||||
REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
|
||||
REPLACE_WRITE = @REPLACE_WRITE@
|
||||
SELINUX_CONTEXT_H = @SELINUX_CONTEXT_H@
|
||||
SELINUX_SELINUX_H = @SELINUX_SELINUX_H@
|
||||
SEQ_LIBM = @SEQ_LIBM@
|
||||
SERVENT_LIB = @SERVENT_LIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
@@ -938,10 +1053,8 @@ STDBOOL_H = @STDBOOL_H@
|
||||
STDDEF_H = @STDDEF_H@
|
||||
STDINT_H = @STDINT_H@
|
||||
STRIP = @STRIP@
|
||||
SYS_IOCTL_H = @SYS_IOCTL_H@
|
||||
SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@
|
||||
SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
|
||||
SYS_SELECT_H = @SYS_SELECT_H@
|
||||
SYS_SOCKET_H = @SYS_SOCKET_H@
|
||||
SYS_TIME_H = @SYS_TIME_H@
|
||||
SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
|
||||
@@ -955,9 +1068,7 @@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOC
|
||||
USE_ACL = @USE_ACL@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
VOID_UNSETENV = @VOID_UNSETENV@
|
||||
WARN_CFLAGS = @WARN_CFLAGS@
|
||||
WCHAR_H = @WCHAR_H@
|
||||
WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
|
||||
WCTYPE_H = @WCTYPE_H@
|
||||
WERROR_CFLAGS = @WERROR_CFLAGS@
|
||||
@@ -967,6 +1078,7 @@ XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
YACC = @YACC@
|
||||
YFLAGS = @YFLAGS@
|
||||
YIELD_LIB = @YIELD_LIB@
|
||||
abs_aux_dir = @abs_aux_dir@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
@@ -1054,6 +1166,8 @@ syntax_check_exceptions = \
|
||||
.x-sc_po_check \
|
||||
.x-sc_program_name \
|
||||
.x-sc_prohibit_atoi_atof \
|
||||
.x-sc_prohibit_fail_0 \
|
||||
.x-sc_prohibit_magic_number_exit \
|
||||
.x-sc_prohibit_stat_st_blocks \
|
||||
.x-sc_prohibit_strcmp \
|
||||
.x-sc_prohibit_tab_based_indentation \
|
||||
@@ -1144,7 +1258,7 @@ $(am__aclocal_m4_deps):
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
@@ -1169,7 +1283,7 @@ $(RECURSIVE_TARGETS):
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
@@ -1206,6 +1320,10 @@ ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
cscopelist-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
@@ -1269,8 +1387,32 @@ GTAGS:
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
cscope: cscope.files
|
||||
test ! -s cscope.files \
|
||||
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
|
||||
|
||||
clean-cscope:
|
||||
-rm -f cscope.files
|
||||
|
||||
cscope.files: clean-cscope cscopelist-recursive cscopelist
|
||||
|
||||
cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP)'; \
|
||||
case "$(srcdir)" in \
|
||||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||
esac; \
|
||||
for i in $$list; do \
|
||||
if test -f "$$i"; then \
|
||||
echo "$(subdir)/$$i"; \
|
||||
else \
|
||||
echo "$$sdir/$$i"; \
|
||||
fi; \
|
||||
done >> $(top_builddir)/cscope.files
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
@@ -1336,43 +1478,43 @@ distdir: $(DISTFILES)
|
||||
top_distdir="$(top_distdir)" distdir="$(distdir)" \
|
||||
dist-hook
|
||||
-test -n "$(am__skip_mode_fix)" \
|
||||
|| find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||
|| find "$(distdir)" -type d ! -perm -755 \
|
||||
-exec chmod u+rwx,go+rx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r "$(distdir)"
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-lzma: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
|
||||
$(am__remove_distdir)
|
||||
$(am__post_remove_distdir)
|
||||
dist-xz: distdir
|
||||
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
|
||||
$(am__remove_distdir)
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__remove_distdir)
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__remove_distdir)
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
|
||||
$(am__remove_distdir)
|
||||
dist dist-all:
|
||||
$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
@@ -1380,17 +1522,17 @@ dist dist-all: distdir
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.lzma*) \
|
||||
unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
|
||||
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
|
||||
*.tar.xz*) \
|
||||
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
@@ -1428,7 +1570,7 @@ distcheck: dist
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
|
||||
&& cd "$$am__cwd" \
|
||||
|| exit 1
|
||||
$(am__remove_distdir)
|
||||
$(am__post_remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||
@@ -1555,21 +1697,22 @@ ps-am:
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
|
||||
ctags-recursive install install-am install-strip \
|
||||
tags-recursive
|
||||
cscopelist-recursive ctags-recursive install install-am \
|
||||
install-strip tags-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am am--refresh check check-am clean clean-generic \
|
||||
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
|
||||
dist-hook dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
|
||||
distcheck distclean distclean-generic distclean-tags \
|
||||
distcleancheck distdir distuninstallcheck dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
||||
all all-am am--refresh check check-am clean clean-cscope \
|
||||
clean-generic cscope cscopelist cscopelist-recursive ctags \
|
||||
ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-hook \
|
||||
dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \
|
||||
distclean distclean-generic distclean-tags distcleancheck \
|
||||
distdir distuninstallcheck dvi dvi-am html html-am info \
|
||||
info-am install install-am install-data install-data-am \
|
||||
install-dvi install-dvi-am install-exec install-exec-am \
|
||||
install-html install-html-am install-info install-info-am \
|
||||
install-man install-pdf install-pdf-am install-ps \
|
||||
install-ps-am install-strip installcheck installcheck-am \
|
||||
installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||
pdf-am ps ps-am tags tags-recursive uninstall uninstall-am
|
||||
|
||||
|
||||
+279
-2
@@ -1,5 +1,282 @@
|
||||
GNU coreutils NEWS -*- outline -*-
|
||||
|
||||
* Noteworthy changes in release 8.4 (2010-01-13) [stable]
|
||||
|
||||
** Bug fixes
|
||||
|
||||
nproc --all is now guaranteed to be as large as the count
|
||||
of available processors, which may not have been the case
|
||||
on GNU/Linux systems with neither /proc nor /sys available.
|
||||
[bug introduced in coreutils-8.1]
|
||||
|
||||
** Build-related
|
||||
|
||||
Work around a build failure when using buggy <sys/capability.h>.
|
||||
Alternatively, configure with --disable-libcap.
|
||||
|
||||
Compilation would fail on systems using glibc-2.7..2.9 due to changes in
|
||||
gnulib's wchar.h that tickled a bug in at least those versions of glibc's
|
||||
own <wchar.h> header. Now, gnulib works around the bug in those older
|
||||
glibc <wchar.h> headers.
|
||||
|
||||
Building would fail with a link error (cp/copy.o) when XATTR headers
|
||||
were installed without the corresponding library. Now, configure
|
||||
detects that and disables xattr support, as one would expect.
|
||||
|
||||
|
||||
* Noteworthy changes in release 8.3 (2010-01-07) [stable]
|
||||
|
||||
** Bug fixes
|
||||
|
||||
cp -p, install -p, mv, and touch -c could trigger a spurious error
|
||||
message when using new glibc coupled with an old kernel.
|
||||
[bug introduced in coreutils-6.12].
|
||||
|
||||
ls -l --color no longer prints "argetm" in front of dangling
|
||||
symlinks when the 'LINK target' directive was given to dircolors.
|
||||
[bug introduced in fileutils-4.0]
|
||||
|
||||
pr's page header was improperly formatted for long file names.
|
||||
[bug introduced in coreutils-7.2]
|
||||
|
||||
rm -r --one-file-system works once again.
|
||||
The rewrite to make rm use fts introduced a regression whereby
|
||||
a commmand of the above form would fail for all subdirectories.
|
||||
[bug introduced in coreutils-8.0]
|
||||
|
||||
stat -f recognizes more file system types: k-afs, fuseblk, gfs/gfs2, ocfs2,
|
||||
and rpc_pipefs. Also Minix V3 is displayed correctly as minix3, not minux3.
|
||||
[bug introduced in coreutils-8.1]
|
||||
|
||||
tail -f (inotify-enabled) once again works with remote files.
|
||||
The use of inotify with remote files meant that any changes to those
|
||||
files that was not done from the local system would go unnoticed.
|
||||
[bug introduced in coreutils-7.5]
|
||||
|
||||
tail -F (inotify-enabled) would abort when a tailed file is repeatedly
|
||||
renamed-aside and then recreated.
|
||||
[bug introduced in coreutils-7.5]
|
||||
|
||||
tail -F (inotify-enabled) could fail to follow renamed files.
|
||||
E.g., given a "tail -F a b" process, running "mv a b" would
|
||||
make tail stop tracking additions to "b".
|
||||
[bug introduced in coreutils-7.5]
|
||||
|
||||
touch -a and touch -m could trigger bugs in some file systems, such
|
||||
as xfs or ntfs-3g, and fail to update timestamps.
|
||||
[bug introduced in coreutils-8.1]
|
||||
|
||||
wc now prints counts atomically so that concurrent
|
||||
processes will not intersperse their output.
|
||||
[the issue dates back to the initial implementation]
|
||||
|
||||
|
||||
* Noteworthy changes in release 8.2 (2009-12-11) [stable]
|
||||
|
||||
** Bug fixes
|
||||
|
||||
id's use of mgetgroups no longer writes beyond the end of a malloc'd buffer
|
||||
[bug introduced in coreutils-8.1]
|
||||
|
||||
id no longer crashes on systems without supplementary group support.
|
||||
[bug introduced in coreutils-8.1]
|
||||
|
||||
rm once again handles zero-length arguments properly.
|
||||
The rewrite to make rm use fts introduced a regression whereby
|
||||
a command like "rm a '' b" would fail to remove "a" and "b", due to
|
||||
the presence of the empty string argument.
|
||||
[bug introduced in coreutils-8.0]
|
||||
|
||||
sort is now immune to the signal handling of its parent.
|
||||
Specifically sort now doesn't exit with an error message
|
||||
if it uses helper processes for compression and its parent
|
||||
ignores CHLD signals. [bug introduced in coreutils-6.9]
|
||||
|
||||
tail without -f no longer access uninitialized memory
|
||||
[bug introduced in coreutils-7.6]
|
||||
|
||||
timeout is now immune to the signal handling of its parent.
|
||||
Specifically timeout now doesn't exit with an error message
|
||||
if its parent ignores CHLD signals. [bug introduced in coreutils-7.6]
|
||||
|
||||
a user running "make distcheck" in the coreutils source directory,
|
||||
with TMPDIR unset or set to the name of a world-writable directory,
|
||||
and with a malicious user on the same system
|
||||
was vulnerable to arbitrary code execution
|
||||
[bug introduced in coreutils-5.0]
|
||||
|
||||
|
||||
* Noteworthy changes in release 8.1 (2009-11-18) [stable]
|
||||
|
||||
** Bug fixes
|
||||
|
||||
chcon no longer exits immediately just because SELinux is disabled.
|
||||
Even then, chcon may still be useful.
|
||||
[bug introduced in coreutils-8.0]
|
||||
|
||||
chcon, chgrp, chmod, chown and du now diagnose an ostensible directory cycle
|
||||
and arrange to exit nonzero. Before, they would silently ignore the
|
||||
offending directory and all "contents."
|
||||
|
||||
env -u A=B now fails, rather than silently adding A to the
|
||||
environment. Likewise, printenv A=B silently ignores the invalid
|
||||
name. [the bugs date back to the initial implementation]
|
||||
|
||||
ls --color now handles files with capabilities correctly. Previously
|
||||
files with capabilities were often not colored, and also sometimes, files
|
||||
without capabilites were colored in error. [bug introduced in coreutils-7.0]
|
||||
|
||||
md5sum now prints checksums atomically so that concurrent
|
||||
processes will not intersperse their output.
|
||||
This also affected sum, sha1sum, sha224sum, sha384sum and sha512sum.
|
||||
[the bug dates back to the initial implementation]
|
||||
|
||||
mktemp no longer leaves a temporary file behind if it was unable to
|
||||
output the name of the file to stdout.
|
||||
[the bug dates back to the initial implementation]
|
||||
|
||||
nice -n -1 PROGRAM now runs PROGRAM even when its internal setpriority
|
||||
call fails with errno == EACCES.
|
||||
[the bug dates back to the initial implementation]
|
||||
|
||||
nice, nohup, and su now refuse to execute the subsidiary program if
|
||||
they detect write failure in printing an otherwise non-fatal warning
|
||||
message to stderr.
|
||||
|
||||
stat -f recognizes more file system types: afs, cifs, anon-inode FS,
|
||||
btrfs, cgroupfs, cramfs-wend, debugfs, futexfs, hfs, inotifyfs, minux3,
|
||||
nilfs, securityfs, selinux, xenfs
|
||||
|
||||
tail -f (inotify-enabled) now avoids a race condition.
|
||||
Before, any data appended in the tiny interval between the initial
|
||||
read-to-EOF and the inotify watch initialization would be ignored
|
||||
initially (until more data was appended), or forever, if the file
|
||||
were first renamed or unlinked or never modified.
|
||||
[The race was introduced in coreutils-7.5]
|
||||
|
||||
tail -F (inotify-enabled) now consistently tails a file that has been
|
||||
replaced via renaming. That operation provokes either of two sequences
|
||||
of inotify events. The less common sequence is now handled as well.
|
||||
[The bug came with the implementation change in coreutils-7.5]
|
||||
|
||||
timeout now doesn't exit unless the command it is monitoring does,
|
||||
for any specified signal. [bug introduced in coreutils-7.0].
|
||||
|
||||
** Changes in behavior
|
||||
|
||||
chroot, env, nice, and su fail with status 125, rather than 1, on
|
||||
internal error such as failure to parse command line arguments; this
|
||||
is for consistency with stdbuf and timeout, and avoids ambiguity
|
||||
with the invoked command failing with status 1. Likewise, nohup
|
||||
fails with status 125 instead of 127.
|
||||
|
||||
du (due to a change in gnulib's fts) can now traverse NFSv4 automounted
|
||||
directories in which the stat'd device number of the mount point differs
|
||||
during a traversal. Before, it would fail, because such a mismatch would
|
||||
usually represent a serious error or a subversion attempt.
|
||||
|
||||
echo and printf now interpret \e as the Escape character (0x1B).
|
||||
|
||||
rm -f /read-only-fs/nonexistent now succeeds and prints no diagnostic
|
||||
on systems with an unlinkat syscall that sets errno to EROFS in that case.
|
||||
Before, it would fail with a "Read-only file system" diagnostic.
|
||||
Also, "rm /read-only-fs/nonexistent" now reports "file not found" rather
|
||||
than the less precise "Read-only file system" error.
|
||||
|
||||
** New programs
|
||||
|
||||
nproc: Print the number of processing units available to a process.
|
||||
|
||||
** New features
|
||||
|
||||
env and printenv now accept the option --null (-0), as a means to
|
||||
avoid ambiguity with newlines embedded in the environment.
|
||||
|
||||
md5sum --check now also accepts openssl-style checksums.
|
||||
So do sha1sum, sha224sum, sha384sum and sha512sum.
|
||||
|
||||
mktemp now accepts the option --suffix to provide a known suffix
|
||||
after the substitution in the template. Additionally, uses such as
|
||||
"mktemp fileXXXXXX.txt" are able to infer an appropriate --suffix.
|
||||
|
||||
touch now accepts the option --no-dereference (-h), as a means to
|
||||
change symlink timestamps on platforms with enough support.
|
||||
|
||||
|
||||
* Noteworthy changes in release 8.0 (2009-10-06) [beta]
|
||||
|
||||
** Bug fixes
|
||||
|
||||
cp --preserve=xattr and --archive now preserve extended attributes even
|
||||
when the source file doesn't have write access.
|
||||
[bug introduced in coreutils-7.1]
|
||||
|
||||
touch -t [[CC]YY]MMDDhhmm[.ss] now accepts a timestamp string ending in .60,
|
||||
to accommodate leap seconds.
|
||||
[the bug dates back to the initial implementation]
|
||||
|
||||
ls --color now reverts to the color of a base file type consistently
|
||||
when the color of a more specific type is disabled.
|
||||
[bug introduced in coreutils-5.90]
|
||||
|
||||
ls -LR exits with status 2, not 0, when it encounters a cycle
|
||||
|
||||
ls -is is now consistent with ls -lis in ignoring values returned
|
||||
from a failed stat/lstat. For example ls -Lis now prints "?", not "0",
|
||||
for the inode number and allocated size of a dereferenced dangling symlink.
|
||||
|
||||
tail --follow --pid now avoids a race condition where data written
|
||||
just before the process dies might not have been output by tail.
|
||||
Also, tail no longer delays at all when the specified pid is not live.
|
||||
[The race was introduced in coreutils-7.5,
|
||||
and the unnecessary delay was present since textutils-1.22o]
|
||||
|
||||
** Portability
|
||||
|
||||
On Solaris 9, many commands would mistakenly treat file/ the same as
|
||||
file. Now, even on such a system, path resolution obeys the POSIX
|
||||
rules that a trailing slash ensures that the preceeding name is a
|
||||
directory or a symlink to a directory.
|
||||
|
||||
** Changes in behavior
|
||||
|
||||
id no longer prints SELinux " context=..." when the POSIXLY_CORRECT
|
||||
environment variable is set.
|
||||
|
||||
readlink -f now ignores a trailing slash when deciding if the
|
||||
last component (possibly via a dangling symlink) can be created,
|
||||
since mkdir will succeed in that case.
|
||||
|
||||
** New features
|
||||
|
||||
ln now accepts the options --logical (-L) and --physical (-P),
|
||||
added by POSIX 2008. The default behavior is -P on systems like
|
||||
GNU/Linux where link(2) creates hard links to symlinks, and -L on
|
||||
BSD systems where link(2) follows symlinks.
|
||||
|
||||
stat: without -f, a command-line argument of "-" now means standard input.
|
||||
With --file-system (-f), an argument of "-" is now rejected.
|
||||
If you really must operate on a file named "-", specify it as
|
||||
"./-" or use "--" to separate options from arguments.
|
||||
|
||||
** Improvements
|
||||
|
||||
rm: rewrite to use gnulib's fts
|
||||
This makes rm -rf significantly faster (400-500%) in some pathological
|
||||
cases, and slightly slower (20%) in at least one pathological case.
|
||||
|
||||
rm -r deletes deep hierarchies more efficiently. Before, execution time
|
||||
was quadratic in the depth of the hierarchy, now it is merely linear.
|
||||
However, this improvement is not as pronounced as might be expected for
|
||||
very deep trees, because prior to this change, for any relative name
|
||||
length longer than 8KiB, rm -r would sacrifice official conformance to
|
||||
avoid the disproportionate quadratic performance penalty. Leading to
|
||||
another improvement:
|
||||
|
||||
rm -r is now slightly more standards-conformant when operating on
|
||||
write-protected files with relative names longer than 8KiB.
|
||||
|
||||
|
||||
* Noteworthy changes in release 7.6 (2009-09-11) [stable]
|
||||
|
||||
** Bug fixes
|
||||
@@ -2629,10 +2906,10 @@ packages, see ./old/*/NEWS.
|
||||
|
||||
========================================================================
|
||||
|
||||
Copyright (C) 2001-2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001-2010 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.2 or
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the ``GNU Free
|
||||
|
||||
@@ -11,7 +11,7 @@ The programs that can be built with this package are:
|
||||
csplit cut date dd df dir dircolors dirname du echo env expand expr
|
||||
factor false fmt fold groups head hostid hostname id install join kill
|
||||
link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup
|
||||
od paste pathchk pinky pr printenv printf ptx pwd readlink rm rmdir
|
||||
nproc od paste pathchk pinky pr printenv printf ptx pwd readlink rm rmdir
|
||||
runcon seq sha1sum sha224sum sha256sum sha384sum sha512sum shred shuf
|
||||
sleep sort split stat stdbuf stty su sum sync tac tail tee test timeout
|
||||
touch tr true truncate tsort tty uname unexpand uniq unlink uptime users
|
||||
@@ -229,10 +229,10 @@ the address on the last line of --help output.
|
||||
|
||||
========================================================================
|
||||
|
||||
Copyright (C) 1998, 2002-2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 2002-2010 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.2 or
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the ``GNU Free
|
||||
|
||||
@@ -52,6 +52,7 @@ Andy Longton [email protected]
|
||||
Anthony Thyssen [email protected]
|
||||
Antonio Rendas [email protected]
|
||||
Ariel Faigon [email protected]
|
||||
Arjan Opmeer [email protected]
|
||||
Arne H. Juul [email protected]
|
||||
Arne Henrik Juul [email protected]
|
||||
Arnold Robbins [email protected]
|
||||
@@ -66,8 +67,9 @@ Barry Kelly http://barrkel.blogspot.com/
|
||||
Bauke Jan Douma [email protected]
|
||||
Ben Elliston [email protected]
|
||||
Ben Harris [email protected]
|
||||
Benjamin Cutler [email protected]
|
||||
Bengt Martensson [email protected]
|
||||
Benjamin Cutler [email protected]
|
||||
Benno Schulenberg [email protected]
|
||||
Bernard Giroud [email protected]
|
||||
Bernd Eckenfels [email protected]
|
||||
Bernd Leibing [email protected]
|
||||
@@ -100,8 +102,10 @@ Carlos Canau [email protected]
|
||||
Charles Karney [email protected]
|
||||
Charles Randall [email protected]
|
||||
Chip Salzenberg [email protected]
|
||||
Chris Clayton [email protected]
|
||||
Chris Faylor [email protected]
|
||||
Chris J. Bednar [email protected]
|
||||
Chris Jones [email protected]
|
||||
Chris Lesniewski [email protected]
|
||||
Chris Sylvain [email protected]
|
||||
Chris Yeo [email protected]
|
||||
@@ -148,6 +152,7 @@ Dawson Engler [email protected]
|
||||
Dean Gaudet [email protected]
|
||||
Deepak Goel [email protected]
|
||||
Denis Excoffier [email protected]
|
||||
Denis McKeon [email protected]
|
||||
Dennis Henriksen [email protected]
|
||||
Dennis Smit [email protected]
|
||||
Derek Clegg [email protected]
|
||||
@@ -209,6 +214,7 @@ Geoff Whale [email protected]
|
||||
Gerald Pfeifer [email protected]
|
||||
Gerhard Poul [email protected]
|
||||
Germano Leichsenring [email protected]
|
||||
Gilles Espinasse [email protected]
|
||||
Glen Lenker [email protected]
|
||||
Göran Uddeborg [email protected]
|
||||
Guochun Shi [email protected]
|
||||
@@ -245,12 +251,14 @@ Ian Turner [email protected]
|
||||
Iida Yosiaki [email protected]
|
||||
Ilya N. Golubev [email protected]
|
||||
Ingo Saitz [email protected]
|
||||
Ivan Labath [email protected]
|
||||
Ivo Timmermans [email protected]
|
||||
James [email protected]
|
||||
James Antill jmanti%[email protected]
|
||||
James Lemley [email protected]
|
||||
James Hunt [email protected]
|
||||
James Ralston [email protected]
|
||||
James R. Van Zandt [email protected]
|
||||
James Sneeringer [email protected]
|
||||
James Tanis [email protected]
|
||||
James Youngman [email protected]
|
||||
@@ -260,6 +268,7 @@ Jan Engelhardt [email protected]
|
||||
Jan Fedak [email protected]
|
||||
Jan Moringen [email protected]
|
||||
Jan Nieuwenhuizen [email protected]
|
||||
Jan-Pawel Wrozstinski [email protected]
|
||||
Janos Farkas [email protected]
|
||||
Jarkko Hietaniemi [email protected]
|
||||
Jarod Wilson [email protected]
|
||||
@@ -294,6 +303,7 @@ John Kodis [email protected]
|
||||
John Murphy [email protected]
|
||||
John Roll [email protected]
|
||||
John Salmon [email protected]
|
||||
John Stanley [email protected]
|
||||
John Summerfield [email protected]
|
||||
Jon Peatfield [email protected]
|
||||
Joost van Baal [email protected]
|
||||
@@ -328,12 +338,14 @@ Kirk Kelsey [email protected]
|
||||
Kristin E Thomas [email protected]
|
||||
Kjetil Torgrim Homme [email protected]
|
||||
Kristoffer Rose [email protected]
|
||||
Ladislav Hagara [email protected]
|
||||
Larry McVoy [email protected]
|
||||
Lars Hecking [email protected]
|
||||
Leah Q [email protected]
|
||||
Lehti Rami [email protected]
|
||||
Leonard N. Zubkoff [email protected]
|
||||
Leonardo Milano [email protected]
|
||||
Lluís Batlle [email protected]
|
||||
Lorne Baker [email protected]
|
||||
Luke Hassell [email protected]
|
||||
Luke Kendall [email protected]
|
||||
@@ -365,6 +377,7 @@ Martin [email protected]
|
||||
Martin Buck [email protected]
|
||||
Martin Gallant [email protected]
|
||||
Martin Hippe [email protected]
|
||||
Martin Jacobs [email protected]
|
||||
Martin Michlmayr [email protected]
|
||||
Martin Mitchell [email protected]
|
||||
Martin P.J. Zinser [email protected]
|
||||
@@ -372,6 +385,7 @@ Marty Leisner [email protected]
|
||||
Masami Takikawa [email protected]
|
||||
Mate Wierdl [email protected]
|
||||
Matej Vela [email protected]
|
||||
Matias A. Fonzo [email protected]
|
||||
Matt Kraai [email protected]
|
||||
Matt Perry [email protected]
|
||||
Matt Pham [email protected]
|
||||
@@ -393,7 +407,7 @@ Max Chang [email protected]
|
||||
Meelis Roos [email protected]
|
||||
Michael [email protected]
|
||||
Michael ??? [email protected]
|
||||
Michael Bacarella [email protected]>
|
||||
Michael Bacarella [email protected]
|
||||
Michael Deutschmann [email protected]
|
||||
Michael Elizabeth Chastain [email protected]
|
||||
Michael Gaughen [email protected]
|
||||
@@ -490,7 +504,7 @@ Ralph Loader [email protected]
|
||||
Raul Miller [email protected]
|
||||
Raúl Núñez de Arenas Coronado [email protected]
|
||||
Reuben Thomas [email protected]
|
||||
Ren Yang [email protected]
|
||||
Yang Ren [email protected]
|
||||
Richard A Downing [email protected]
|
||||
Richard Braakman [email protected]
|
||||
Richard Dawe [email protected]
|
||||
@@ -500,9 +514,11 @@ Richard Sharman [email protected]
|
||||
Rick Sladkey [email protected]
|
||||
Rik Faith [email protected]
|
||||
Risto Kankkunen [email protected]
|
||||
Rob Wortman [email protected]
|
||||
Robert H. de Vries [email protected]
|
||||
Robert Lindgren [email protected]
|
||||
Robert Millan [email protected]
|
||||
Robert Schwebel [email protected]
|
||||
Rogier Wolff [email protected]
|
||||
Roland Huebner [email protected]
|
||||
Roland Turner [email protected]
|
||||
@@ -519,6 +535,7 @@ Samuli Karkkainen [email protected]
|
||||
Sander van Malssen [email protected]
|
||||
Santiago Vila Doncel [email protected]
|
||||
Savochkin Andrey Vladimirovich [email protected]
|
||||
Scott Harrison [email protected]
|
||||
Scott Lurndal [email protected]
|
||||
Sébastien Maret [email protected]
|
||||
Sergei Steshenko [email protected]
|
||||
@@ -528,6 +545,7 @@ Solar Designer [email protected]
|
||||
Stanislav Ievlev [email protected]
|
||||
Stavros Passas [email protected]
|
||||
Stéphane Chazelas [email protected]
|
||||
Stéphane Raimbault [email protected]
|
||||
Stephen Depooter [email protected]
|
||||
Stephen Eglen [email protected]
|
||||
Stephen Gildea [email protected]
|
||||
@@ -535,11 +553,13 @@ Stephen Smoogen [email protected]
|
||||
Steve McConnel [email protected]
|
||||
Steve McIntyre [email protected]
|
||||
Steve Ward [email protected]
|
||||
Steven Drake [email protected]
|
||||
Steven G. Johnson [email protected]
|
||||
Steven Mocking [email protected]
|
||||
Steven Parkes [email protected]
|
||||
Steven Schveighoffer [email protected]
|
||||
Steven P Watson [email protected]
|
||||
Stuart Citrin [email protected]
|
||||
Stuart Kemp [email protected]
|
||||
Stuart Shelton [email protected]
|
||||
Sven Joachim [email protected]
|
||||
@@ -608,6 +628,7 @@ Wis Macomson [email protected]
|
||||
Wojciech Purczynski [email protected]
|
||||
Wolfram Kleff [email protected]
|
||||
Won-kyu Park [email protected]
|
||||
Yanko Kaneti [email protected]
|
||||
Yann Dirson [email protected]
|
||||
Zvi Har'El [email protected]
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ http://translationproject.org/team/cs.html
|
||||
http://translationproject.org/team/da.html
|
||||
http://translationproject.org/team/de.html
|
||||
http://translationproject.org/team/el.html
|
||||
http://translationproject.org/team/en.html
|
||||
http://translationproject.org/team/es.html
|
||||
http://translationproject.org/team/et.html
|
||||
http://translationproject.org/team/eu.html
|
||||
@@ -22,6 +23,7 @@ http://translationproject.org/team/id.html
|
||||
http://translationproject.org/team/it.html
|
||||
http://translationproject.org/team/ja.html
|
||||
http://translationproject.org/team/ko.html
|
||||
http://translationproject.org/team/lg.html
|
||||
http://translationproject.org/team/lt.html
|
||||
http://translationproject.org/team/ms.html
|
||||
http://translationproject.org/team/nb.html
|
||||
|
||||
@@ -12,7 +12,6 @@ Modify chmod so that it does not change an inode's st_ctime
|
||||
Discussed more recently on <http://bugs.debian.org/497514>.
|
||||
|
||||
document the following in coreutils.texi:
|
||||
mktemp
|
||||
[
|
||||
pinky
|
||||
|
||||
@@ -60,10 +59,6 @@ Integrate use of sendfile, suggested here:
|
||||
http://mail.gnu.org/archive/html/bug-fileutils/2003-03/msg00030.html
|
||||
I don't plan to do that, since a few tests demonstrate no significant benefit.
|
||||
|
||||
Should printf '\0123' print "\n3"?
|
||||
per report from TAKAI Kousuke on Mar 27
|
||||
http://mail.gnu.org/archive/html/bug-coreutils/2003-03/index.html
|
||||
|
||||
printf: consider adapting builtins/printf.def from bash
|
||||
|
||||
tail: don't use xlseek; it *exits*.
|
||||
@@ -170,7 +165,7 @@ pr's use of nstrftime can make it malloc a very large (up to SIZE_MAX) buffer
|
||||
|
||||
-----
|
||||
|
||||
Copyright (C) 2002-2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002-2010 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
|
||||
|
||||
Vendored
+32
-6
@@ -13,8 +13,8 @@
|
||||
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64.27-5b5d],,
|
||||
[m4_warning([this file was generated for autoconf 2.64.27-5b5d.
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65.23-13e35],,
|
||||
[m4_warning([this file was generated for autoconf 2.65.23-13e35.
|
||||
You have another version of autoconf. It may work, but is not guaranteed to.
|
||||
If you have problems, you may need to regenerate the build system entirely.
|
||||
To do so, use the procedure documented by the package, typically `autoreconf'.])])
|
||||
@@ -1069,6 +1069,7 @@ m4_include([m4/closein.m4])
|
||||
m4_include([m4/closeout.m4])
|
||||
m4_include([m4/codeset.m4])
|
||||
m4_include([m4/config-h.m4])
|
||||
m4_include([m4/ctype.m4])
|
||||
m4_include([m4/cycle-check.m4])
|
||||
m4_include([m4/d-ino.m4])
|
||||
m4_include([m4/d-type.m4])
|
||||
@@ -1091,9 +1092,12 @@ m4_include([m4/exponentd.m4])
|
||||
m4_include([m4/exponentf.m4])
|
||||
m4_include([m4/exponentl.m4])
|
||||
m4_include([m4/extensions.m4])
|
||||
m4_include([m4/faccessat.m4])
|
||||
m4_include([m4/fchdir.m4])
|
||||
m4_include([m4/fclose.m4])
|
||||
m4_include([m4/fcntl-o.m4])
|
||||
m4_include([m4/fcntl-safer.m4])
|
||||
m4_include([m4/fcntl.m4])
|
||||
m4_include([m4/fcntl_h.m4])
|
||||
m4_include([m4/fd-reopen.m4])
|
||||
m4_include([m4/fdopendir.m4])
|
||||
@@ -1111,11 +1115,13 @@ m4_include([m4/fpieee.m4])
|
||||
m4_include([m4/fprintftime.m4])
|
||||
m4_include([m4/fpurge.m4])
|
||||
m4_include([m4/freading.m4])
|
||||
m4_include([m4/freopen.m4])
|
||||
m4_include([m4/frexp.m4])
|
||||
m4_include([m4/frexpl.m4])
|
||||
m4_include([m4/fseeko.m4])
|
||||
m4_include([m4/fstypename.m4])
|
||||
m4_include([m4/fsusage.m4])
|
||||
m4_include([m4/fsync.m4])
|
||||
m4_include([m4/ftello.m4])
|
||||
m4_include([m4/ftruncate.m4])
|
||||
m4_include([m4/fts.m4])
|
||||
@@ -1125,6 +1131,7 @@ m4_include([m4/getcwd-path-max.m4])
|
||||
m4_include([m4/getcwd.m4])
|
||||
m4_include([m4/getdate.m4])
|
||||
m4_include([m4/getdelim.m4])
|
||||
m4_include([m4/getdtablesize.m4])
|
||||
m4_include([m4/getgroups.m4])
|
||||
m4_include([m4/gethostname.m4])
|
||||
m4_include([m4/gethrxtime.m4])
|
||||
@@ -1167,12 +1174,14 @@ m4_include([m4/inttypes-pri.m4])
|
||||
m4_include([m4/inttypes.m4])
|
||||
m4_include([m4/inttypes_h.m4])
|
||||
m4_include([m4/isapipe.m4])
|
||||
m4_include([m4/isblank.m4])
|
||||
m4_include([m4/isnand.m4])
|
||||
m4_include([m4/isnanf.m4])
|
||||
m4_include([m4/isnanl.m4])
|
||||
m4_include([m4/jm-macros.m4])
|
||||
m4_include([m4/jm-winsz1.m4])
|
||||
m4_include([m4/jm-winsz2.m4])
|
||||
m4_include([m4/langinfo_h.m4])
|
||||
m4_include([m4/lchmod.m4])
|
||||
m4_include([m4/lchown.m4])
|
||||
m4_include([m4/ldexpl.m4])
|
||||
@@ -1183,11 +1192,14 @@ m4_include([m4/lib-link.m4])
|
||||
m4_include([m4/lib-prefix.m4])
|
||||
m4_include([m4/link-follow.m4])
|
||||
m4_include([m4/link.m4])
|
||||
m4_include([m4/linkat.m4])
|
||||
m4_include([m4/localcharset.m4])
|
||||
m4_include([m4/locale-fr.m4])
|
||||
m4_include([m4/locale-ja.m4])
|
||||
m4_include([m4/locale-tr.m4])
|
||||
m4_include([m4/locale-zh.m4])
|
||||
m4_include([m4/locale_h.m4])
|
||||
m4_include([m4/lock.m4])
|
||||
m4_include([m4/long-options.m4])
|
||||
m4_include([m4/longlong.m4])
|
||||
m4_include([m4/ls-mntd-fs.m4])
|
||||
@@ -1202,6 +1214,7 @@ m4_include([m4/mbiter.m4])
|
||||
m4_include([m4/mbrlen.m4])
|
||||
m4_include([m4/mbrtowc.m4])
|
||||
m4_include([m4/mbsinit.m4])
|
||||
m4_include([m4/mbslen.m4])
|
||||
m4_include([m4/mbsrtowcs.m4])
|
||||
m4_include([m4/mbstate_t.m4])
|
||||
m4_include([m4/mbswidth.m4])
|
||||
@@ -1219,7 +1232,7 @@ m4_include([m4/memxfrm.m4])
|
||||
m4_include([m4/mgetgroups.m4])
|
||||
m4_include([m4/mkancesdirs.m4])
|
||||
m4_include([m4/mkdir-p.m4])
|
||||
m4_include([m4/mkdir-slash.m4])
|
||||
m4_include([m4/mkdir.m4])
|
||||
m4_include([m4/mkstemp.m4])
|
||||
m4_include([m4/mktime.m4])
|
||||
m4_include([m4/mmap-anon.m4])
|
||||
@@ -1231,8 +1244,10 @@ m4_include([m4/multiarch.m4])
|
||||
m4_include([m4/nanosleep.m4])
|
||||
m4_include([m4/netdb_h.m4])
|
||||
m4_include([m4/netinet_in_h.m4])
|
||||
m4_include([m4/nl_langinfo.m4])
|
||||
m4_include([m4/nls.m4])
|
||||
m4_include([m4/nocrash.m4])
|
||||
m4_include([m4/nproc.m4])
|
||||
m4_include([m4/open.m4])
|
||||
m4_include([m4/openat.m4])
|
||||
m4_include([m4/pathmax.m4])
|
||||
@@ -1258,9 +1273,8 @@ m4_include([m4/readtokens.m4])
|
||||
m4_include([m4/readutmp.m4])
|
||||
m4_include([m4/realloc.m4])
|
||||
m4_include([m4/regex.m4])
|
||||
m4_include([m4/rename-dest-slash.m4])
|
||||
m4_include([m4/remove.m4])
|
||||
m4_include([m4/rename.m4])
|
||||
m4_include([m4/rmdir-errno.m4])
|
||||
m4_include([m4/rmdir.m4])
|
||||
m4_include([m4/root-dev-ino.m4])
|
||||
m4_include([m4/rpmatch.m4])
|
||||
@@ -1294,6 +1308,7 @@ m4_include([m4/ssize_t.m4])
|
||||
m4_include([m4/st_dm_mode.m4])
|
||||
m4_include([m4/stat-prog.m4])
|
||||
m4_include([m4/stat-time.m4])
|
||||
m4_include([m4/stat.m4])
|
||||
m4_include([m4/stdarg.m4])
|
||||
m4_include([m4/stdbool.m4])
|
||||
m4_include([m4/stddef_h.m4])
|
||||
@@ -1314,6 +1329,7 @@ m4_include([m4/strndup.m4])
|
||||
m4_include([m4/strnlen.m4])
|
||||
m4_include([m4/strnumcmp.m4])
|
||||
m4_include([m4/strpbrk.m4])
|
||||
m4_include([m4/strsignal.m4])
|
||||
m4_include([m4/strstr.m4])
|
||||
m4_include([m4/strtod.m4])
|
||||
m4_include([m4/strtoimax.m4])
|
||||
@@ -1322,27 +1338,35 @@ m4_include([m4/strtoll.m4])
|
||||
m4_include([m4/strtoul.m4])
|
||||
m4_include([m4/strtoull.m4])
|
||||
m4_include([m4/strtoumax.m4])
|
||||
m4_include([m4/strverscmp.m4])
|
||||
m4_include([m4/symlink.m4])
|
||||
m4_include([m4/symlinkat.m4])
|
||||
m4_include([m4/sys_ioctl_h.m4])
|
||||
m4_include([m4/sys_select_h.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/sys_utsname_h.m4])
|
||||
m4_include([m4/tempname.m4])
|
||||
m4_include([m4/thread.m4])
|
||||
m4_include([m4/threadlib.m4])
|
||||
m4_include([m4/time_h.m4])
|
||||
m4_include([m4/time_r.m4])
|
||||
m4_include([m4/timespec.m4])
|
||||
m4_include([m4/tls.m4])
|
||||
m4_include([m4/tm_gmtoff.m4])
|
||||
m4_include([m4/tzset.m4])
|
||||
m4_include([m4/uname.m4])
|
||||
m4_include([m4/ungetc.m4])
|
||||
m4_include([m4/unicodeio.m4])
|
||||
m4_include([m4/unistd-safer.m4])
|
||||
m4_include([m4/unistd_h.m4])
|
||||
m4_include([m4/unlink-busy.m4])
|
||||
m4_include([m4/unlink.m4])
|
||||
m4_include([m4/unlinkdir.m4])
|
||||
m4_include([m4/unlocked-io.m4])
|
||||
m4_include([m4/uptime.m4])
|
||||
m4_include([m4/userspec.m4])
|
||||
m4_include([m4/usleep.m4])
|
||||
m4_include([m4/utimbuf.m4])
|
||||
m4_include([m4/utimecmp.m4])
|
||||
m4_include([m4/utimens.m4])
|
||||
@@ -1353,6 +1377,7 @@ m4_include([m4/vasprintf.m4])
|
||||
m4_include([m4/version-etc.m4])
|
||||
m4_include([m4/vfprintf-posix.m4])
|
||||
m4_include([m4/vprintf-posix.m4])
|
||||
m4_include([m4/warn-on-use.m4])
|
||||
m4_include([m4/warnings.m4])
|
||||
m4_include([m4/wchar.m4])
|
||||
m4_include([m4/wchar_t.m4])
|
||||
@@ -1374,3 +1399,4 @@ m4_include([m4/xstrtod.m4])
|
||||
m4_include([m4/xstrtol.m4])
|
||||
m4_include([m4/xvasprintf.m4])
|
||||
m4_include([m4/yesno.m4])
|
||||
m4_include([m4/yield.m4])
|
||||
|
||||
+34
-12
@@ -2,7 +2,7 @@
|
||||
|
||||
# Bootstrap this package from checked-out sources.
|
||||
|
||||
# Copyright (C) 2003-2009 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2003-2010 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
|
||||
@@ -70,6 +70,10 @@ gnulib_modules=
|
||||
# Any gnulib files needed that are not in modules.
|
||||
gnulib_files=
|
||||
|
||||
# A function to be called after everything else in this script.
|
||||
# Override it via your own definition in bootstrap.conf.
|
||||
bootstrap_epilogue() { :; }
|
||||
|
||||
# The command to download all .po files for a specified domain into
|
||||
# a specified directory. Fill in the first %s is the domain name, and
|
||||
# the second with the destination directory. Use rsync's -L and -r
|
||||
@@ -150,12 +154,18 @@ vc_ignore=auto
|
||||
|
||||
# find_tool ENVVAR NAMES...
|
||||
# -------------------------
|
||||
# Search for a required program. Use the value of ENVVAR, if set,
|
||||
# otherwise find the first of the NAMES that can be run (i.e.,
|
||||
# supports --version). If found, set ENVVAR to the program name,
|
||||
# die otherwise.
|
||||
find_tool ()
|
||||
{
|
||||
# Find sha1sum, named gsha1sum on MacPorts.
|
||||
find_tool_envvar=$1
|
||||
shift
|
||||
if eval test x"\$$find_tool_envvar" = x; then
|
||||
find_tool_names=$@
|
||||
eval "find_tool_res=\$$find_tool_envvar"
|
||||
if test x"$find_tool_res" = x; then
|
||||
for i
|
||||
do
|
||||
if ($i --version </dev/null) >/dev/null 2>&1; then
|
||||
@@ -163,16 +173,18 @@ find_tool ()
|
||||
break
|
||||
fi
|
||||
done
|
||||
else
|
||||
find_tool_error_prefix="\$$find_tool_envvar: "
|
||||
fi
|
||||
if test x"$find_tool_res" = x; then
|
||||
echo >&2 "$0: $find_tool_name is required"
|
||||
echo >&2 "$0: one of these is required: $find_tool_names"
|
||||
exit 1
|
||||
fi
|
||||
($find_tool_res --version </dev/null) >/dev/null 2>&1 || {
|
||||
echo >&2 "$0: cannot run $find_tool_res --version"
|
||||
echo >&2 "$0: ${find_tool_error_prefix}cannot run $find_tool_res --version"
|
||||
exit 1
|
||||
}
|
||||
eval "$find_tool_envvar=\"$find_tool_res\""
|
||||
eval "$find_tool_envvar=\$find_tool_res"
|
||||
eval "export $find_tool_envvar"
|
||||
}
|
||||
|
||||
@@ -302,10 +314,20 @@ get_version() {
|
||||
$app --version >/dev/null 2>&1 || return 1
|
||||
|
||||
$app --version 2>&1 |
|
||||
sed -n 's/[^0-9.]*\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/p
|
||||
sed -n '# extract version within line
|
||||
s/.*[v ]\{1,\}\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/
|
||||
t done
|
||||
|
||||
# extract version at start of line
|
||||
s/^\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/
|
||||
t done
|
||||
|
||||
d
|
||||
|
||||
:done
|
||||
#the following essentially does s/5.005/5.5/
|
||||
s/\.0*\([1-9]\)/.\1/g
|
||||
p
|
||||
q'
|
||||
}
|
||||
|
||||
@@ -405,7 +427,7 @@ case ${GNULIB_SRCDIR--} in
|
||||
git_modules_config submodule.gnulib.url >/dev/null; then
|
||||
git submodule init
|
||||
GNULIB_SRCDIR=`cd $GNULIB_SRCDIR && pwd`
|
||||
git config --replace-all submodule.gnulib.url $GNULIB_SRCDIR
|
||||
git_modules_config --replace-all submodule.gnulib.url $GNULIB_SRCDIR
|
||||
echo "$0: getting gnulib files..."
|
||||
git submodule update || exit $?
|
||||
GNULIB_SRCDIR=gnulib
|
||||
@@ -721,6 +743,10 @@ find "$m4_base" "$source_base" \
|
||||
|
||||
# Reconfigure, getting other files.
|
||||
|
||||
# Skip autoheader if it's not needed.
|
||||
grep -E '^[ ]*AC_CONFIG_HEADERS?\>' configure.ac >/dev/null ||
|
||||
AUTOHEADER=true
|
||||
|
||||
for command in \
|
||||
libtool \
|
||||
"${ACLOCAL-aclocal} --force -I m4" \
|
||||
@@ -789,10 +815,6 @@ if test $with_gettext = yes; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# Horrible, coreutils-specific kludges.
|
||||
# Change paths in gnulib-tests/gnulib.mk from "../.." to "..".
|
||||
m=gnulib-tests/gnulib.mk
|
||||
sed 's,\.\./\.\.,..,g' $m > $m-t
|
||||
mv -f $m-t $m
|
||||
bootstrap_epilogue
|
||||
|
||||
echo "$0: done. Now you can run './configure'."
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Bootstrap configuration.
|
||||
|
||||
# Copyright (C) 2006-2009 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2006-2010 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,7 +20,6 @@
|
||||
avoided_gnulib_modules='
|
||||
--avoid=canonicalize-lgpl
|
||||
--avoid=dummy
|
||||
--avoid=lock
|
||||
'
|
||||
|
||||
# These modules are obsolete and can probably be removed soon,
|
||||
@@ -31,7 +30,6 @@ obsolete_gnulib_modules='
|
||||
memcpy
|
||||
memmove
|
||||
memset
|
||||
rename
|
||||
strcspn
|
||||
strtod
|
||||
strtol
|
||||
@@ -73,11 +71,14 @@ gnulib_modules="
|
||||
diacrit
|
||||
dirfd
|
||||
dirname
|
||||
do-release-commit-and-tag
|
||||
dup2
|
||||
environ
|
||||
error
|
||||
euidaccess
|
||||
exclude
|
||||
exitfail
|
||||
faccessat
|
||||
fchdir
|
||||
fcntl
|
||||
fcntl-safer
|
||||
@@ -90,12 +91,14 @@ gnulib_modules="
|
||||
fnmatch-gnu
|
||||
fopen-safer
|
||||
fprintftime
|
||||
freopen
|
||||
freopen-safer
|
||||
fseeko
|
||||
fsusage
|
||||
fsync
|
||||
ftello
|
||||
ftruncate
|
||||
fts
|
||||
gendocs
|
||||
getdate
|
||||
getgroups
|
||||
gethrxtime
|
||||
@@ -113,6 +116,7 @@ gnulib_modules="
|
||||
git-version-gen
|
||||
gitlog-to-changelog
|
||||
gnu-make
|
||||
gnu-web-doc-update
|
||||
gnumakefile
|
||||
gnupload
|
||||
group-member
|
||||
@@ -126,12 +130,14 @@ gnulib_modules="
|
||||
inttostr
|
||||
inttypes
|
||||
isapipe
|
||||
isblank
|
||||
lchmod
|
||||
lchown
|
||||
lib-ignore
|
||||
linebuffer
|
||||
link
|
||||
link-follow
|
||||
linkat
|
||||
long-options
|
||||
lstat
|
||||
maintainer-makefile
|
||||
@@ -154,6 +160,7 @@ gnulib_modules="
|
||||
modechange
|
||||
mountlist
|
||||
mpsort
|
||||
nproc
|
||||
obstack
|
||||
pathmax
|
||||
perl
|
||||
@@ -176,9 +183,9 @@ gnulib_modules="
|
||||
readutmp
|
||||
realloc
|
||||
regex
|
||||
rename-dest-slash
|
||||
remove
|
||||
rename
|
||||
rmdir
|
||||
rmdir-errno
|
||||
root-dev-ino
|
||||
rpmatch
|
||||
safe-read
|
||||
@@ -197,20 +204,22 @@ gnulib_modules="
|
||||
stdlib-safer
|
||||
stpcpy
|
||||
stpncpy
|
||||
strdup
|
||||
strdup-posix
|
||||
strftime
|
||||
strpbrk
|
||||
strsignal
|
||||
strtoimax
|
||||
strtoumax
|
||||
strverscmp
|
||||
symlink
|
||||
sys_stat
|
||||
timespec
|
||||
tzset
|
||||
uname
|
||||
unicodeio
|
||||
unistd-safer
|
||||
unlink-busy
|
||||
unlinkdir
|
||||
unlocked-io
|
||||
unsetenv
|
||||
update-copyright
|
||||
uptime
|
||||
useless-if-before-free
|
||||
@@ -222,7 +231,6 @@ gnulib_modules="
|
||||
verify
|
||||
verror
|
||||
version-etc-fsf
|
||||
warnings
|
||||
wcwidth
|
||||
winsz-ioctl
|
||||
winsz-termios
|
||||
@@ -235,6 +243,7 @@ gnulib_modules="
|
||||
xnanosleep
|
||||
xprintf
|
||||
xprintf-posix
|
||||
xreadlink
|
||||
xstrtod
|
||||
xstrtoimax
|
||||
xstrtol
|
||||
@@ -291,7 +300,6 @@ if test $gettext_external = 1; then
|
||||
m4/glibc2.m4
|
||||
m4/intdiv0.m4
|
||||
m4/lcmessage.m4
|
||||
m4/lock.m4
|
||||
m4/uintmax_t.m4
|
||||
m4/ulonglong.m4
|
||||
m4/visibility.m4
|
||||
@@ -302,8 +310,8 @@ gnulib_tool_option_extras="--tests-base=$bt/gnulib-tests --with-tests"
|
||||
|
||||
# Build prerequisites
|
||||
buildreq="\
|
||||
autoconf 2.61
|
||||
automake 1.11
|
||||
autoconf 2.62
|
||||
automake 1.11.1
|
||||
autopoint -
|
||||
bison -
|
||||
gettext -
|
||||
@@ -318,3 +326,11 @@ tar -
|
||||
|
||||
# Automake requires that ChangeLog exist.
|
||||
touch ChangeLog || exit 1
|
||||
|
||||
bootstrap_epilogue()
|
||||
{
|
||||
# Change paths in gnulib-tests/gnulib.mk from "../.." to "..".
|
||||
m=gnulib-tests/gnulib.mk
|
||||
sed 's,\.\./\.\.,..,g' $m > $m-t
|
||||
mv -f $m-t $m
|
||||
}
|
||||
|
||||
Vendored
+8408
-2803
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-2009 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1991, 1993-2010 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
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
dnl Written by Jim Meyering.
|
||||
|
||||
AC_PREREQ([2.61])
|
||||
AC_PREREQ([2.62])
|
||||
|
||||
# Make inter-release version strings look like, e.g., v6.9-219-g58ddd, which
|
||||
# indicates that it is built from the 219th delta (in _some_ repository)
|
||||
@@ -32,7 +32,7 @@ AC_CONFIG_SRCDIR([src/ls.c])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
AC_CONFIG_HEADERS([lib/config.h:lib/config.hin])
|
||||
|
||||
AM_INIT_AUTOMAKE([1.11 dist-xz color-tests parallel-tests])
|
||||
AM_INIT_AUTOMAKE([1.11.1 dist-xz color-tests parallel-tests])
|
||||
AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
|
||||
|
||||
AC_PROG_CC_STDC
|
||||
@@ -101,14 +101,12 @@ if test "$gl_gcc_warnings" = yes; then
|
||||
gl_WARN_ADD([-Wno-pointer-sign]) # Too many warnings for now
|
||||
gl_WARN_ADD([-Wno-unused-parameter]) # Too many warnings for now
|
||||
|
||||
# Offenders in pre-fts remove.c; FIXME: remove upon remove.c rewrite
|
||||
gl_WARN_ADD([-Wno-jump-misses-init])
|
||||
|
||||
# In spite of excluding -Wlogical-op above, it is enabled, as of
|
||||
# gcc 4.5.0 20090517, and it provokes warnings in cat.c, dd.c, truncate.c
|
||||
gl_WARN_ADD([-Wno-logical-op])
|
||||
|
||||
gl_WARN_ADD([-fdiagnostics-show-option])
|
||||
gl_WARN_ADD([-funit-at-a-time])
|
||||
|
||||
AC_SUBST([WARN_CFLAGS])
|
||||
|
||||
@@ -116,13 +114,21 @@ if test "$gl_gcc_warnings" = yes; then
|
||||
AC_DEFINE([_FORTIFY_SOURCE], [2],
|
||||
[enable compile-time and run-time bounds-checking, and some warnings])
|
||||
AC_DEFINE([GNULIB_PORTCHECK], [1], [enable some gnulib portability checks])
|
||||
|
||||
# We use a slightly smaller set of warning options for lib/.
|
||||
# Remove the following and save the result in GNULIB_WARN_CFLAGS.
|
||||
nw=
|
||||
nw="$nw -Wuninitialized"
|
||||
nw="$nw -Wunused-macros"
|
||||
nw="$nw -Wmissing-prototypes"
|
||||
nw="$nw -Wold-style-definition"
|
||||
gl_MANYWARN_COMPLEMENT([GNULIB_WARN_CFLAGS], [$WARN_CFLAGS], [$nw])
|
||||
AC_SUBST([GNULIB_WARN_CFLAGS])
|
||||
fi
|
||||
|
||||
AC_FUNC_FORK
|
||||
|
||||
optional_bin_progs=
|
||||
AC_CHECK_FUNCS([uname],
|
||||
gl_ADD_PROG([optional_bin_progs], [uname]))
|
||||
AC_CHECK_FUNCS([chroot],
|
||||
gl_ADD_PROG([optional_bin_progs], [chroot]))
|
||||
AC_CHECK_FUNCS([gethostid],
|
||||
@@ -423,8 +429,10 @@ CONFIG_STATUS_DEPENDENCIES='$(top_srcdir)/src/Makefile.am'
|
||||
AC_SUBST([CONFIG_STATUS_DEPENDENCIES])
|
||||
############################################################################
|
||||
|
||||
# As long as "grep 'PRI[diouxX]' po/*.pot" reports matches in
|
||||
# translatable strings, we must use need-formatstring-macros here.
|
||||
AM_GNU_GETTEXT([external], [need-formatstring-macros])
|
||||
AM_GNU_GETTEXT_VERSION([0.15])
|
||||
AM_GNU_GETTEXT_VERSION([0.17])
|
||||
|
||||
# For a test of uniq: it uses the $LOCALE_FR envvar.
|
||||
gt_LOCALE_FR
|
||||
|
||||
@@ -2002,7 +2002,7 @@
|
||||
|
||||
-----
|
||||
|
||||
Copyright (C) 2001-2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001-2010 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without
|
||||
modification, are permitted provided the copyright notice
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Make coreutils documentation. -*-Makefile-*-
|
||||
|
||||
# Copyright (C) 1995-1998, 2001-2009 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1995-1998, 2001-2010 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,13 +30,12 @@ EXTRA_DIST = perm.texi getdate.texi constants.texi fdl.texi
|
||||
AM_MAKEINFOFLAGS = --no-split
|
||||
|
||||
constants.texi: $(top_srcdir)/src/tail.c $(top_srcdir)/src/shred.c
|
||||
LC_ALL=C \
|
||||
sed -n -e 's/^#define \(DEFAULT_MAX[_A-Z]*\) \(.*\)/@set \1 \2/p' \
|
||||
$(top_srcdir)/src/tail.c > t-$@
|
||||
LC_ALL=C \
|
||||
sed -n -e 's/.*\(DEFAULT_PASSES\)[ =]* \([0-9]*\).*/@set SHRED_\1 \2/p'\
|
||||
$(top_srcdir)/src/shred.c >> t-$@
|
||||
mv t-$@ $@
|
||||
$(AM_V_GEN)LC_ALL=C; export LC_ALL; \
|
||||
{ sed -n -e 's/^#define \(DEFAULT_MAX[_A-Z]*\) \(.*\)/@set \1 \2/p' \
|
||||
$(top_srcdir)/src/tail.c && \
|
||||
sed -n -e 's/.*\(DEFAULT_PASSES\)[ =]* \([0-9]*\).*/@set SHRED_\1 \2/p'\
|
||||
$(top_srcdir)/src/shred.c; } > t-$@ \
|
||||
&& mv t-$@ $@
|
||||
|
||||
MAINTAINERCLEANFILES = constants.texi
|
||||
|
||||
@@ -48,8 +47,10 @@ _W = (^|[^A-Za-z0-9_])
|
||||
W_ = ([^A-Za-z0-9_]|$$)
|
||||
|
||||
syntax_checks = \
|
||||
sc-avoid-builtin \
|
||||
sc-avoid-io \
|
||||
sc-avoid-non-zero \
|
||||
sc-avoid-path \
|
||||
sc-avoid-timezone \
|
||||
sc-avoid-zeroes \
|
||||
sc-exponent-grouping \
|
||||
@@ -70,9 +71,18 @@ check-texinfo: $(syntax_checks)
|
||||
$(PERL) -e 1 2> /dev/null && { $(PERL) -ne \
|
||||
'/\bPOSIX\b/ && !/\@acronym{POSIX}/ && !/^\* / || /{posix}/ and print,exit 1' \
|
||||
$(srcdir)/*.texi 2> /dev/null || fail=1; }; \
|
||||
$(EGREP) -i '$(_W)builtins?$(W_)' $(srcdir)/*.texi && fail=1; \
|
||||
exit $$fail
|
||||
|
||||
sc-avoid-builtin:
|
||||
$(AM_V_GEN)$(EGREP) -i '$(_W)builtins?$(W_)' $(srcdir)/*.texi \
|
||||
&& exit 1 || :
|
||||
|
||||
sc-avoid-path:
|
||||
$(AM_V_GEN)fail=0; \
|
||||
$(EGREP) -i '$(_W)path(name)?s?$(W_)' $(srcdir)/*.texi \
|
||||
| $(EGREP) -v 'search path|@vindex PATH$$|@env[{]PATH[}]' && fail=1; \
|
||||
| $(EGREP) -v \
|
||||
'PATH=|path search|search path|@vindex PATH$$|@env[{]PATH[}]' \
|
||||
&& fail=1; \
|
||||
exit $$fail
|
||||
|
||||
# Use `time zone', not `timezone'.
|
||||
|
||||
+246
-104
@@ -17,7 +17,7 @@
|
||||
|
||||
# Make coreutils documentation. -*-Makefile-*-
|
||||
|
||||
# Copyright (C) 1995-1998, 2001-2009 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1995-1998, 2001-2010 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
|
||||
@@ -69,35 +69,40 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/cloexec.m4 $(top_srcdir)/m4/close-stream.m4 \
|
||||
$(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/closein.m4 \
|
||||
$(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \
|
||||
$(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/cycle-check.m4 \
|
||||
$(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \
|
||||
$(top_srcdir)/m4/dirent-safer.m4 $(top_srcdir)/m4/dirent_h.m4 \
|
||||
$(top_srcdir)/m4/dirfd.m4 $(top_srcdir)/m4/dirname.m4 \
|
||||
$(top_srcdir)/m4/dos.m4 $(top_srcdir)/m4/double-slash-root.m4 \
|
||||
$(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \
|
||||
$(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \
|
||||
$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/euidaccess-stat.m4 \
|
||||
$(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/ctype.m4 \
|
||||
$(top_srcdir)/m4/cycle-check.m4 $(top_srcdir)/m4/d-ino.m4 \
|
||||
$(top_srcdir)/m4/d-type.m4 $(top_srcdir)/m4/dirent-safer.m4 \
|
||||
$(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \
|
||||
$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
|
||||
$(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
|
||||
$(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
|
||||
$(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
|
||||
$(top_srcdir)/m4/euidaccess-stat.m4 \
|
||||
$(top_srcdir)/m4/euidaccess.m4 $(top_srcdir)/m4/exclude.m4 \
|
||||
$(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/exponentd.m4 \
|
||||
$(top_srcdir)/m4/exponentf.m4 $(top_srcdir)/m4/exponentl.m4 \
|
||||
$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fchdir.m4 \
|
||||
$(top_srcdir)/m4/fclose.m4 $(top_srcdir)/m4/fcntl-safer.m4 \
|
||||
$(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fd-reopen.m4 \
|
||||
$(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/fflush.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/float_h.m4 \
|
||||
$(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fopen.m4 \
|
||||
$(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fpieee.m4 \
|
||||
$(top_srcdir)/m4/fprintftime.m4 $(top_srcdir)/m4/fpurge.m4 \
|
||||
$(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/frexp.m4 \
|
||||
$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/faccessat.m4 \
|
||||
$(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \
|
||||
$(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \
|
||||
$(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
|
||||
$(top_srcdir)/m4/fd-reopen.m4 $(top_srcdir)/m4/fdopendir.m4 \
|
||||
$(top_srcdir)/m4/fflush.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/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
|
||||
$(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpending.m4 \
|
||||
$(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/fprintftime.m4 \
|
||||
$(top_srcdir)/m4/fpurge.m4 $(top_srcdir)/m4/freading.m4 \
|
||||
$(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/frexp.m4 \
|
||||
$(top_srcdir)/m4/frexpl.m4 $(top_srcdir)/m4/fseeko.m4 \
|
||||
$(top_srcdir)/m4/fstypename.m4 $(top_srcdir)/m4/fsusage.m4 \
|
||||
$(top_srcdir)/m4/ftello.m4 $(top_srcdir)/m4/ftruncate.m4 \
|
||||
$(top_srcdir)/m4/fts.m4 $(top_srcdir)/m4/getaddrinfo.m4 \
|
||||
$(top_srcdir)/m4/fsync.m4 $(top_srcdir)/m4/ftello.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 \
|
||||
$(top_srcdir)/m4/getdtablesize.m4 \
|
||||
$(top_srcdir)/m4/getgroups.m4 $(top_srcdir)/m4/gethostname.m4 \
|
||||
$(top_srcdir)/m4/gethrxtime.m4 $(top_srcdir)/m4/getline.m4 \
|
||||
$(top_srcdir)/m4/getloadavg.m4 $(top_srcdir)/m4/getndelim2.m4 \
|
||||
@@ -121,24 +126,27 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
|
||||
$(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
|
||||
$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
|
||||
$(top_srcdir)/m4/isapipe.m4 $(top_srcdir)/m4/isnand.m4 \
|
||||
$(top_srcdir)/m4/isnanf.m4 $(top_srcdir)/m4/isnanl.m4 \
|
||||
$(top_srcdir)/m4/jm-macros.m4 $(top_srcdir)/m4/jm-winsz1.m4 \
|
||||
$(top_srcdir)/m4/jm-winsz2.m4 $(top_srcdir)/m4/lchmod.m4 \
|
||||
$(top_srcdir)/m4/isapipe.m4 $(top_srcdir)/m4/isblank.m4 \
|
||||
$(top_srcdir)/m4/isnand.m4 $(top_srcdir)/m4/isnanf.m4 \
|
||||
$(top_srcdir)/m4/isnanl.m4 $(top_srcdir)/m4/jm-macros.m4 \
|
||||
$(top_srcdir)/m4/jm-winsz1.m4 $(top_srcdir)/m4/jm-winsz2.m4 \
|
||||
$(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/lchmod.m4 \
|
||||
$(top_srcdir)/m4/lchown.m4 $(top_srcdir)/m4/ldexpl.m4 \
|
||||
$(top_srcdir)/m4/lib-check.m4 $(top_srcdir)/m4/lib-ignore.m4 \
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/link-follow.m4 \
|
||||
$(top_srcdir)/m4/link.m4 $(top_srcdir)/m4/localcharset.m4 \
|
||||
$(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
|
||||
$(top_srcdir)/m4/locale-tr.m4 $(top_srcdir)/m4/locale-zh.m4 \
|
||||
$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
|
||||
$(top_srcdir)/m4/ls-mntd-fs.m4 $(top_srcdir)/m4/lseek.m4 \
|
||||
$(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \
|
||||
$(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \
|
||||
$(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mbchar.m4 \
|
||||
$(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrlen.m4 \
|
||||
$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \
|
||||
$(top_srcdir)/m4/link.m4 $(top_srcdir)/m4/linkat.m4 \
|
||||
$(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \
|
||||
$(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-tr.m4 \
|
||||
$(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \
|
||||
$(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/long-options.m4 \
|
||||
$(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/ls-mntd-fs.m4 \
|
||||
$(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/lstat.m4 \
|
||||
$(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \
|
||||
$(top_srcdir)/m4/manywarnings.m4 $(top_srcdir)/m4/math_h.m4 \
|
||||
$(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \
|
||||
$(top_srcdir)/m4/mbrlen.m4 $(top_srcdir)/m4/mbrtowc.m4 \
|
||||
$(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbslen.m4 \
|
||||
$(top_srcdir)/m4/mbsrtowcs.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 \
|
||||
@@ -147,34 +155,34 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
|
||||
$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/memxfrm.m4 \
|
||||
$(top_srcdir)/m4/mgetgroups.m4 $(top_srcdir)/m4/mkancesdirs.m4 \
|
||||
$(top_srcdir)/m4/mkdir-p.m4 $(top_srcdir)/m4/mkdir-slash.m4 \
|
||||
$(top_srcdir)/m4/mkdir-p.m4 $(top_srcdir)/m4/mkdir.m4 \
|
||||
$(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \
|
||||
$(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
|
||||
$(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/mountlist.m4 \
|
||||
$(top_srcdir)/m4/mpsort.m4 $(top_srcdir)/m4/multiarch.m4 \
|
||||
$(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/netdb_h.m4 \
|
||||
$(top_srcdir)/m4/netinet_in_h.m4 $(top_srcdir)/m4/nls.m4 \
|
||||
$(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/open.m4 \
|
||||
$(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \
|
||||
$(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/perror.m4 \
|
||||
$(top_srcdir)/m4/physmem.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/posixtm.m4 \
|
||||
$(top_srcdir)/m4/posixver.m4 $(top_srcdir)/m4/prereq.m4 \
|
||||
$(top_srcdir)/m4/printf-frexp.m4 \
|
||||
$(top_srcdir)/m4/netinet_in_h.m4 \
|
||||
$(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
|
||||
$(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nproc.m4 \
|
||||
$(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \
|
||||
$(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perl.m4 \
|
||||
$(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/physmem.m4 \
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/posix-shell.m4 \
|
||||
$(top_srcdir)/m4/posixtm.m4 $(top_srcdir)/m4/posixver.m4 \
|
||||
$(top_srcdir)/m4/prereq.m4 $(top_srcdir)/m4/printf-frexp.m4 \
|
||||
$(top_srcdir)/m4/printf-frexpl.m4 $(top_srcdir)/m4/printf.m4 \
|
||||
$(top_srcdir)/m4/priv-set.m4 $(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/m4/putenv.m4 $(top_srcdir)/m4/quote.m4 \
|
||||
$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/read-file.m4 \
|
||||
$(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readtokens.m4 \
|
||||
$(top_srcdir)/m4/readutmp.m4 $(top_srcdir)/m4/realloc.m4 \
|
||||
$(top_srcdir)/m4/regex.m4 \
|
||||
$(top_srcdir)/m4/rename-dest-slash.m4 \
|
||||
$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir-errno.m4 \
|
||||
$(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/root-dev-ino.m4 \
|
||||
$(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/safe-read.m4 \
|
||||
$(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/same.m4 \
|
||||
$(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
|
||||
$(top_srcdir)/m4/savewd.m4 $(top_srcdir)/m4/select.m4 \
|
||||
$(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/remove.m4 \
|
||||
$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \
|
||||
$(top_srcdir)/m4/root-dev-ino.m4 $(top_srcdir)/m4/rpmatch.m4 \
|
||||
$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
|
||||
$(top_srcdir)/m4/same.m4 $(top_srcdir)/m4/save-cwd.m4 \
|
||||
$(top_srcdir)/m4/savedir.m4 $(top_srcdir)/m4/savewd.m4 \
|
||||
$(top_srcdir)/m4/select.m4 \
|
||||
$(top_srcdir)/m4/selinux-context-h.m4 \
|
||||
$(top_srcdir)/m4/selinux-selinux-h.m4 \
|
||||
$(top_srcdir)/m4/servent.m4 $(top_srcdir)/m4/setenv.m4 \
|
||||
@@ -188,38 +196,45 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \
|
||||
$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/st_dm_mode.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/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
|
||||
$(top_srcdir)/m4/stdint_h.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/stpncpy.m4 $(top_srcdir)/m4/strcspn.m4 \
|
||||
$(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \
|
||||
$(top_srcdir)/m4/strftime.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/stat.m4 $(top_srcdir)/m4/stdarg.m4 \
|
||||
$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
|
||||
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.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/stpncpy.m4 \
|
||||
$(top_srcdir)/m4/strcspn.m4 $(top_srcdir)/m4/strdup.m4 \
|
||||
$(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.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/strsignal.m4 \
|
||||
$(top_srcdir)/m4/strstr.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_ioctl_h.m4 \
|
||||
$(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/symlinkat.m4 \
|
||||
$(top_srcdir)/m4/sys_ioctl_h.m4 \
|
||||
$(top_srcdir)/m4/sys_select_h.m4 \
|
||||
$(top_srcdir)/m4/sys_socket_h.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/sys_utsname_h.m4 $(top_srcdir)/m4/tempname.m4 \
|
||||
$(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
|
||||
$(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \
|
||||
$(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tls.m4 \
|
||||
$(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.m4 \
|
||||
$(top_srcdir)/m4/ungetc.m4 $(top_srcdir)/m4/unicodeio.m4 \
|
||||
$(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \
|
||||
$(top_srcdir)/m4/unlink-busy.m4 $(top_srcdir)/m4/unlinkdir.m4 \
|
||||
$(top_srcdir)/m4/uname.m4 $(top_srcdir)/m4/ungetc.m4 \
|
||||
$(top_srcdir)/m4/unicodeio.m4 $(top_srcdir)/m4/unistd-safer.m4 \
|
||||
$(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink-busy.m4 \
|
||||
$(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \
|
||||
$(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/uptime.m4 \
|
||||
$(top_srcdir)/m4/userspec.m4 $(top_srcdir)/m4/utimbuf.m4 \
|
||||
$(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \
|
||||
$(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
|
||||
$(top_srcdir)/m4/userspec.m4 $(top_srcdir)/m4/usleep.m4 \
|
||||
$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimecmp.m4 \
|
||||
$(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes.m4 \
|
||||
$(top_srcdir)/m4/vasnprintf.m4 \
|
||||
$(top_srcdir)/m4/vasprintf-posix.m4 \
|
||||
$(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
|
||||
$(top_srcdir)/m4/vfprintf-posix.m4 \
|
||||
$(top_srcdir)/m4/vprintf-posix.m4 $(top_srcdir)/m4/warnings.m4 \
|
||||
$(top_srcdir)/m4/vprintf-posix.m4 \
|
||||
$(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
|
||||
$(top_srcdir)/m4/wchar.m4 $(top_srcdir)/m4/wchar_t.m4 \
|
||||
$(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctob.m4 \
|
||||
$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wcwidth.m4 \
|
||||
@@ -230,7 +245,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||
$(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrndup.m4 \
|
||||
$(top_srcdir)/m4/xstrtod.m4 $(top_srcdir)/m4/xstrtol.m4 \
|
||||
$(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/m4/yesno.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/yield.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
@@ -239,12 +254,33 @@ CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
AM_V_DVIPS = $(am__v_DVIPS_$(V))
|
||||
am__v_DVIPS_ = $(am__v_DVIPS_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_DVIPS_0 = @echo " DVIPS " $@;
|
||||
AM_V_MAKEINFO = $(am__v_MAKEINFO_$(V))
|
||||
am__v_MAKEINFO_ = $(am__v_MAKEINFO_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_MAKEINFO_0 = @echo " MAKEINFO" $@;
|
||||
AM_V_INFOHTML = $(am__v_INFOHTML_$(V))
|
||||
am__v_INFOHTML_ = $(am__v_INFOHTML_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_INFOHTML_0 = @echo " INFOHTML" $@;
|
||||
AM_V_TEXI2DVI = $(am__v_TEXI2DVI_$(V))
|
||||
am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_TEXI2DVI_0 = @echo " TEXI2DVI" $@;
|
||||
AM_V_TEXI2PDF = $(am__v_TEXI2PDF_$(V))
|
||||
am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_TEXI2PDF_0 = @echo " TEXI2PDF" $@;
|
||||
AM_V_texinfo = $(am__v_texinfo_$(V))
|
||||
am__v_texinfo_ = $(am__v_texinfo_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_texinfo_0 = -q
|
||||
AM_V_texidevnull = $(am__v_texidevnull_$(V))
|
||||
am__v_texidevnull_ = $(am__v_texidevnull_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_texidevnull_0 = > /dev/null
|
||||
INFO_DEPS = $(srcdir)/coreutils.info
|
||||
TEXINFO_TEX = $(top_srcdir)/build-aux/texinfo.tex
|
||||
am__TEXINFO_TEX_DIR = $(top_srcdir)/build-aux
|
||||
@@ -287,7 +323,6 @@ ALLOCA_H = @ALLOCA_H@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
|
||||
ARPA_INET_H = @ARPA_INET_H@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
@@ -307,7 +342,6 @@ CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_POSIX2_VERSION = @DEFAULT_POSIX2_VERSION@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DIRENT_H = @DIRENT_H@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
@@ -320,7 +354,6 @@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
|
||||
EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
|
||||
ERRNO_H = @ERRNO_H@
|
||||
EXEEXT = @EXEEXT@
|
||||
FCNTL_H = @FCNTL_H@
|
||||
FLOAT_H = @FLOAT_H@
|
||||
FNMATCH_H = @FNMATCH_H@
|
||||
GETADDRINFO_LIB = @GETADDRINFO_LIB@
|
||||
@@ -338,6 +371,7 @@ GNULIB_ATOLL = @GNULIB_ATOLL@
|
||||
GNULIB_BIND = @GNULIB_BIND@
|
||||
GNULIB_BTOWC = @GNULIB_BTOWC@
|
||||
GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
|
||||
GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
|
||||
GNULIB_CEILF = @GNULIB_CEILF@
|
||||
GNULIB_CEILL = @GNULIB_CEILL@
|
||||
GNULIB_CHOWN = @GNULIB_CHOWN@
|
||||
@@ -347,6 +381,7 @@ GNULIB_DIRFD = @GNULIB_DIRFD@
|
||||
GNULIB_DPRINTF = @GNULIB_DPRINTF@
|
||||
GNULIB_DUP2 = @GNULIB_DUP2@
|
||||
GNULIB_DUP3 = @GNULIB_DUP3@
|
||||
GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
|
||||
GNULIB_ENVIRON = @GNULIB_ENVIRON@
|
||||
GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
|
||||
GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
|
||||
@@ -354,6 +389,7 @@ GNULIB_FCHDIR = @GNULIB_FCHDIR@
|
||||
GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
|
||||
GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
|
||||
GNULIB_FCLOSE = @GNULIB_FCLOSE@
|
||||
GNULIB_FCNTL = @GNULIB_FCNTL@
|
||||
GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
|
||||
GNULIB_FFLUSH = @GNULIB_FFLUSH@
|
||||
GNULIB_FLOORF = @GNULIB_FLOORF@
|
||||
@@ -374,15 +410,18 @@ GNULIB_FSYNC = @GNULIB_FSYNC@
|
||||
GNULIB_FTELL = @GNULIB_FTELL@
|
||||
GNULIB_FTELLO = @GNULIB_FTELLO@
|
||||
GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
|
||||
GNULIB_FUTIMENS = @GNULIB_FUTIMENS@
|
||||
GNULIB_FWRITE = @GNULIB_FWRITE@
|
||||
GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@
|
||||
GNULIB_GETCWD = @GNULIB_GETCWD@
|
||||
GNULIB_GETDELIM = @GNULIB_GETDELIM@
|
||||
GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
|
||||
GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
|
||||
GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
|
||||
GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
|
||||
GNULIB_GETLINE = @GNULIB_GETLINE@
|
||||
GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
|
||||
GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
|
||||
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
|
||||
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
|
||||
GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
|
||||
@@ -395,6 +434,7 @@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
|
||||
GNULIB_INET_NTOP = @GNULIB_INET_NTOP@
|
||||
GNULIB_INET_PTON = @GNULIB_INET_PTON@
|
||||
GNULIB_IOCTL = @GNULIB_IOCTL@
|
||||
GNULIB_ISBLANK = @GNULIB_ISBLANK@
|
||||
GNULIB_ISFINITE = @GNULIB_ISFINITE@
|
||||
GNULIB_ISINF = @GNULIB_ISINF@
|
||||
GNULIB_ISNAN = @GNULIB_ISNAN@
|
||||
@@ -405,6 +445,7 @@ GNULIB_LCHMOD = @GNULIB_LCHMOD@
|
||||
GNULIB_LCHOWN = @GNULIB_LCHOWN@
|
||||
GNULIB_LDEXPL = @GNULIB_LDEXPL@
|
||||
GNULIB_LINK = @GNULIB_LINK@
|
||||
GNULIB_LINKAT = @GNULIB_LINKAT@
|
||||
GNULIB_LISTEN = @GNULIB_LISTEN@
|
||||
GNULIB_LSEEK = @GNULIB_LSEEK@
|
||||
GNULIB_LSTAT = @GNULIB_LSTAT@
|
||||
@@ -435,10 +476,15 @@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
|
||||
GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
|
||||
GNULIB_MKDIRAT = @GNULIB_MKDIRAT@
|
||||
GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
|
||||
GNULIB_MKFIFO = @GNULIB_MKFIFO@
|
||||
GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@
|
||||
GNULIB_MKNOD = @GNULIB_MKNOD@
|
||||
GNULIB_MKNODAT = @GNULIB_MKNODAT@
|
||||
GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
|
||||
GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
|
||||
GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
|
||||
GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
|
||||
GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
|
||||
GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
|
||||
GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
|
||||
GNULIB_OPEN = @GNULIB_OPEN@
|
||||
@@ -446,6 +492,7 @@ GNULIB_OPENAT = @GNULIB_OPENAT@
|
||||
GNULIB_PERROR = @GNULIB_PERROR@
|
||||
GNULIB_PIPE2 = @GNULIB_PIPE2@
|
||||
GNULIB_POPEN = @GNULIB_POPEN@
|
||||
GNULIB_PREAD = @GNULIB_PREAD@
|
||||
GNULIB_PRINTF = @GNULIB_PRINTF@
|
||||
GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
|
||||
GNULIB_PUTC = @GNULIB_PUTC@
|
||||
@@ -457,9 +504,13 @@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
|
||||
GNULIB_READLINK = @GNULIB_READLINK@
|
||||
GNULIB_READLINKAT = @GNULIB_READLINKAT@
|
||||
GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
|
||||
GNULIB_REALPATH = @GNULIB_REALPATH@
|
||||
GNULIB_RECV = @GNULIB_RECV@
|
||||
GNULIB_RECVFROM = @GNULIB_RECVFROM@
|
||||
GNULIB_REMOVE = @GNULIB_REMOVE@
|
||||
GNULIB_RENAME = @GNULIB_RENAME@
|
||||
GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
|
||||
GNULIB_RMDIR = @GNULIB_RMDIR@
|
||||
GNULIB_ROUND = @GNULIB_ROUND@
|
||||
GNULIB_ROUNDF = @GNULIB_ROUNDF@
|
||||
GNULIB_ROUNDL = @GNULIB_ROUNDL@
|
||||
@@ -479,6 +530,7 @@ GNULIB_SLEEP = @GNULIB_SLEEP@
|
||||
GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
|
||||
GNULIB_SOCKET = @GNULIB_SOCKET@
|
||||
GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
|
||||
GNULIB_STAT = @GNULIB_STAT@
|
||||
GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
|
||||
GNULIB_STPCPY = @GNULIB_STPCPY@
|
||||
GNULIB_STPNCPY = @GNULIB_STPNCPY@
|
||||
@@ -499,14 +551,19 @@ GNULIB_STRTOLL = @GNULIB_STRTOLL@
|
||||
GNULIB_STRTOULL = @GNULIB_STRTOULL@
|
||||
GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
|
||||
GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
|
||||
GNULIB_SYMLINK = @GNULIB_SYMLINK@
|
||||
GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
|
||||
GNULIB_TRUNC = @GNULIB_TRUNC@
|
||||
GNULIB_TRUNCF = @GNULIB_TRUNCF@
|
||||
GNULIB_TRUNCL = @GNULIB_TRUNCL@
|
||||
GNULIB_UNAME = @GNULIB_UNAME@
|
||||
GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
|
||||
GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
|
||||
GNULIB_UNLINK = @GNULIB_UNLINK@
|
||||
GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
|
||||
GNULIB_UNSETENV = @GNULIB_UNSETENV@
|
||||
GNULIB_USLEEP = @GNULIB_USLEEP@
|
||||
GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@
|
||||
GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
|
||||
GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
|
||||
GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
|
||||
@@ -515,6 +572,7 @@ GNULIB_VPRINTF = @GNULIB_VPRINTF@
|
||||
GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
|
||||
GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
|
||||
GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
|
||||
GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
|
||||
GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
|
||||
GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
|
||||
GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
|
||||
@@ -528,6 +586,8 @@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@
|
||||
HAVE_ATOLL = @HAVE_ATOLL@
|
||||
HAVE_BTOWC = @HAVE_BTOWC@
|
||||
HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
|
||||
HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
|
||||
HAVE_CHOWN = @HAVE_CHOWN@
|
||||
HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
|
||||
HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
|
||||
HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
|
||||
@@ -578,51 +638,69 @@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
|
||||
HAVE_FACCESSAT = @HAVE_FACCESSAT@
|
||||
HAVE_FCHMODAT = @HAVE_FCHMODAT@
|
||||
HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
|
||||
HAVE_FCNTL = @HAVE_FCNTL@
|
||||
HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
|
||||
HAVE_FSEEKO = @HAVE_FSEEKO@
|
||||
HAVE_FSTATAT = @HAVE_FSTATAT@
|
||||
HAVE_FSYNC = @HAVE_FSYNC@
|
||||
HAVE_FTELLO = @HAVE_FTELLO@
|
||||
HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
|
||||
HAVE_FUTIMENS = @HAVE_FUTIMENS@
|
||||
HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@
|
||||
HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
|
||||
HAVE_GETGROUPS = @HAVE_GETGROUPS@
|
||||
HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
|
||||
HAVE_GETLOGIN = @HAVE_GETLOGIN@
|
||||
HAVE_GETOPT_H = @HAVE_GETOPT_H@
|
||||
HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
|
||||
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
|
||||
HAVE_GETUSERSHELL = @HAVE_GETUSERSHELL@
|
||||
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
|
||||
HAVE_ISBLANK = @HAVE_ISBLANK@
|
||||
HAVE_ISNAND = @HAVE_ISNAND@
|
||||
HAVE_ISNANF = @HAVE_ISNANF@
|
||||
HAVE_ISNANL = @HAVE_ISNANL@
|
||||
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
|
||||
HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
|
||||
HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
|
||||
HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
|
||||
HAVE_LCHMOD = @HAVE_LCHMOD@
|
||||
HAVE_LCHOWN = @HAVE_LCHOWN@
|
||||
HAVE_LINK = @HAVE_LINK@
|
||||
HAVE_LINKAT = @HAVE_LINKAT@
|
||||
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
|
||||
HAVE_LSTAT = @HAVE_LSTAT@
|
||||
HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
|
||||
HAVE_MBRLEN = @HAVE_MBRLEN@
|
||||
HAVE_MBRTOWC = @HAVE_MBRTOWC@
|
||||
HAVE_MBSINIT = @HAVE_MBSINIT@
|
||||
HAVE_MBSLEN = @HAVE_MBSLEN@
|
||||
HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
|
||||
HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
|
||||
HAVE_MEMPCPY = @HAVE_MEMPCPY@
|
||||
HAVE_MKDIRAT = @HAVE_MKDIRAT@
|
||||
HAVE_MKDTEMP = @HAVE_MKDTEMP@
|
||||
HAVE_MKFIFO = @HAVE_MKFIFO@
|
||||
HAVE_MKFIFOAT = @HAVE_MKFIFOAT@
|
||||
HAVE_MKNOD = @HAVE_MKNOD@
|
||||
HAVE_MKNODAT = @HAVE_MKNODAT@
|
||||
HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
|
||||
HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
|
||||
HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
|
||||
HAVE_NETDB_H = @HAVE_NETDB_H@
|
||||
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
|
||||
HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
|
||||
HAVE_OPENAT = @HAVE_OPENAT@
|
||||
HAVE_OS_H = @HAVE_OS_H@
|
||||
HAVE_PIPE2 = @HAVE_PIPE2@
|
||||
HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
|
||||
HAVE_PREAD = @HAVE_PREAD@
|
||||
HAVE_RANDOM_H = @HAVE_RANDOM_H@
|
||||
HAVE_RANDOM_R = @HAVE_RANDOM_R@
|
||||
HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
|
||||
HAVE_READLINK = @HAVE_READLINK@
|
||||
HAVE_READLINKAT = @HAVE_READLINKAT@
|
||||
HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
|
||||
HAVE_REALPATH = @HAVE_REALPATH@
|
||||
HAVE_RENAMEAT = @HAVE_RENAMEAT@
|
||||
HAVE_RPMATCH = @HAVE_RPMATCH@
|
||||
HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
|
||||
HAVE_SCANDIR = @HAVE_SCANDIR@
|
||||
@@ -649,6 +727,7 @@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
|
||||
HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
|
||||
HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@
|
||||
HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
|
||||
HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@
|
||||
HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
|
||||
HAVE_SYMLINK = @HAVE_SYMLINK@
|
||||
HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
|
||||
@@ -661,11 +740,15 @@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@
|
||||
HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
|
||||
HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
|
||||
HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
|
||||
HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@
|
||||
HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
|
||||
HAVE_UNAME = @HAVE_UNAME@
|
||||
HAVE_UNISTD_H = @HAVE_UNISTD_H@
|
||||
HAVE_UNLINKAT = @HAVE_UNLINKAT@
|
||||
HAVE_UNSETENV = @HAVE_UNSETENV@
|
||||
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
|
||||
HAVE_USLEEP = @HAVE_USLEEP@
|
||||
HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
|
||||
HAVE_VASPRINTF = @HAVE_VASPRINTF@
|
||||
HAVE_VDPRINTF = @HAVE_VDPRINTF@
|
||||
HAVE_WCHAR_H = @HAVE_WCHAR_H@
|
||||
@@ -677,12 +760,15 @@ 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_XLOCALE_H = @HAVE_XLOCALE_H@
|
||||
HAVE__BOOL = @HAVE__BOOL@
|
||||
HELP2MAN = @HELP2MAN@
|
||||
HOSTENT_LIB = @HOSTENT_LIB@
|
||||
ICONV_H = @ICONV_H@
|
||||
INCLUDE_NEXT = @INCLUDE_NEXT@
|
||||
INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
|
||||
INET_NTOP_LIB = @INET_NTOP_LIB@
|
||||
INET_PTON_LIB = @INET_PTON_LIB@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
@@ -693,17 +779,20 @@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@
|
||||
INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
INTTYPES_H = @INTTYPES_H@
|
||||
KMEM_GROUP = @KMEM_GROUP@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBCOREUTILS_LIBDEPS = @LIBCOREUTILS_LIBDEPS@
|
||||
LIBCOREUTILS_LTLIBDEPS = @LIBCOREUTILS_LTLIBDEPS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBMULTITHREAD = @LIBMULTITHREAD@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBPTH = @LIBPTH@
|
||||
LIBPTH_PREFIX = @LIBPTH_PREFIX@
|
||||
LIBS = @LIBS@
|
||||
LIBSOCKET = @LIBSOCKET@
|
||||
LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
|
||||
LIBTHREAD = @LIBTHREAD@
|
||||
LIB_ACL = @LIB_ACL@
|
||||
LIB_CAP = @LIB_CAP@
|
||||
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
|
||||
@@ -724,7 +813,10 @@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@
|
||||
LOCALE_ZH_CN = @LOCALE_ZH_CN@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
LTLIBPTH = @LTLIBPTH@
|
||||
LTLIBTHREAD = @LTLIBTHREAD@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MAN = @MAN@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
@@ -736,15 +828,20 @@ NETDB_H = @NETDB_H@
|
||||
NETINET_IN_H = @NETINET_IN_H@
|
||||
NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_H = @NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
|
||||
@@ -757,19 +854,25 @@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
|
||||
NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
|
||||
NEXT_CTYPE_H = @NEXT_CTYPE_H@
|
||||
NEXT_DIRENT_H = @NEXT_DIRENT_H@
|
||||
NEXT_ERRNO_H = @NEXT_ERRNO_H@
|
||||
NEXT_FCNTL_H = @NEXT_FCNTL_H@
|
||||
NEXT_FLOAT_H = @NEXT_FLOAT_H@
|
||||
NEXT_GETOPT_H = @NEXT_GETOPT_H@
|
||||
NEXT_ICONV_H = @NEXT_ICONV_H@
|
||||
NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
|
||||
NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
|
||||
NEXT_LOCALE_H = @NEXT_LOCALE_H@
|
||||
NEXT_MATH_H = @NEXT_MATH_H@
|
||||
NEXT_NETDB_H = @NEXT_NETDB_H@
|
||||
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
|
||||
NEXT_SELINUX_SELINUX_H = @NEXT_SELINUX_SELINUX_H@
|
||||
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
|
||||
NEXT_STDARG_H = @NEXT_STDARG_H@
|
||||
NEXT_STDDEF_H = @NEXT_STDDEF_H@
|
||||
@@ -782,6 +885,7 @@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@
|
||||
NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
|
||||
NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
|
||||
NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
|
||||
NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@
|
||||
NEXT_TIME_H = @NEXT_TIME_H@
|
||||
NEXT_UNISTD_H = @NEXT_UNISTD_H@
|
||||
NEXT_WCHAR_H = @NEXT_WCHAR_H@
|
||||
@@ -809,15 +913,21 @@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
|
||||
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
|
||||
RANLIB = @RANLIB@
|
||||
REPLACE_BTOWC = @REPLACE_BTOWC@
|
||||
REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
|
||||
REPLACE_CEILF = @REPLACE_CEILF@
|
||||
REPLACE_CEILL = @REPLACE_CEILL@
|
||||
REPLACE_CHOWN = @REPLACE_CHOWN@
|
||||
REPLACE_CLOSE = @REPLACE_CLOSE@
|
||||
REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@
|
||||
REPLACE_DPRINTF = @REPLACE_DPRINTF@
|
||||
REPLACE_DUP = @REPLACE_DUP@
|
||||
REPLACE_DUP2 = @REPLACE_DUP2@
|
||||
REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
|
||||
REPLACE_FCHDIR = @REPLACE_FCHDIR@
|
||||
REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
|
||||
REPLACE_FCLOSE = @REPLACE_FCLOSE@
|
||||
REPLACE_FCNTL = @REPLACE_FCNTL@
|
||||
REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
|
||||
REPLACE_FFLUSH = @REPLACE_FFLUSH@
|
||||
REPLACE_FLOORF = @REPLACE_FLOORF@
|
||||
REPLACE_FLOORL = @REPLACE_FLOORL@
|
||||
@@ -829,10 +939,13 @@ REPLACE_FREXP = @REPLACE_FREXP@
|
||||
REPLACE_FREXPL = @REPLACE_FREXPL@
|
||||
REPLACE_FSEEK = @REPLACE_FSEEK@
|
||||
REPLACE_FSEEKO = @REPLACE_FSEEKO@
|
||||
REPLACE_FSTAT = @REPLACE_FSTAT@
|
||||
REPLACE_FSTATAT = @REPLACE_FSTATAT@
|
||||
REPLACE_FTELL = @REPLACE_FTELL@
|
||||
REPLACE_FTELLO = @REPLACE_FTELLO@
|
||||
REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
|
||||
REPLACE_GETCWD = @REPLACE_GETCWD@
|
||||
REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
|
||||
REPLACE_GETLINE = @REPLACE_GETLINE@
|
||||
REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
|
||||
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
|
||||
@@ -847,6 +960,7 @@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
|
||||
REPLACE_LCHOWN = @REPLACE_LCHOWN@
|
||||
REPLACE_LDEXPL = @REPLACE_LDEXPL@
|
||||
REPLACE_LINK = @REPLACE_LINK@
|
||||
REPLACE_LINKAT = @REPLACE_LINKAT@
|
||||
REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
|
||||
REPLACE_LSEEK = @REPLACE_LSEEK@
|
||||
REPLACE_LSTAT = @REPLACE_LSTAT@
|
||||
@@ -859,26 +973,40 @@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
|
||||
REPLACE_MEMCHR = @REPLACE_MEMCHR@
|
||||
REPLACE_MEMMEM = @REPLACE_MEMMEM@
|
||||
REPLACE_MKDIR = @REPLACE_MKDIR@
|
||||
REPLACE_MKFIFO = @REPLACE_MKFIFO@
|
||||
REPLACE_MKNOD = @REPLACE_MKNOD@
|
||||
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
|
||||
REPLACE_MKTIME = @REPLACE_MKTIME@
|
||||
REPLACE_NAN = @REPLACE_NAN@
|
||||
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
|
||||
REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
|
||||
REPLACE_NULL = @REPLACE_NULL@
|
||||
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
|
||||
REPLACE_OPEN = @REPLACE_OPEN@
|
||||
REPLACE_OPENAT = @REPLACE_OPENAT@
|
||||
REPLACE_OPENDIR = @REPLACE_OPENDIR@
|
||||
REPLACE_PERROR = @REPLACE_PERROR@
|
||||
REPLACE_POPEN = @REPLACE_POPEN@
|
||||
REPLACE_PREAD = @REPLACE_PREAD@
|
||||
REPLACE_PRINTF = @REPLACE_PRINTF@
|
||||
REPLACE_PUTENV = @REPLACE_PUTENV@
|
||||
REPLACE_READLINK = @REPLACE_READLINK@
|
||||
REPLACE_REALPATH = @REPLACE_REALPATH@
|
||||
REPLACE_REMOVE = @REPLACE_REMOVE@
|
||||
REPLACE_RENAME = @REPLACE_RENAME@
|
||||
REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
|
||||
REPLACE_RMDIR = @REPLACE_RMDIR@
|
||||
REPLACE_ROUND = @REPLACE_ROUND@
|
||||
REPLACE_ROUNDF = @REPLACE_ROUNDF@
|
||||
REPLACE_ROUNDL = @REPLACE_ROUNDL@
|
||||
REPLACE_SELECT = @REPLACE_SELECT@
|
||||
REPLACE_SETENV = @REPLACE_SETENV@
|
||||
REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
|
||||
REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
|
||||
REPLACE_SLEEP = @REPLACE_SLEEP@
|
||||
REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
|
||||
REPLACE_SPRINTF = @REPLACE_SPRINTF@
|
||||
REPLACE_STAT = @REPLACE_STAT@
|
||||
REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
|
||||
REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
|
||||
REPLACE_STRDUP = @REPLACE_STRDUP@
|
||||
@@ -889,8 +1017,14 @@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
|
||||
REPLACE_STRSTR = @REPLACE_STRSTR@
|
||||
REPLACE_STRTOD = @REPLACE_STRTOD@
|
||||
REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
|
||||
REPLACE_SYMLINK = @REPLACE_SYMLINK@
|
||||
REPLACE_TIMEGM = @REPLACE_TIMEGM@
|
||||
REPLACE_TRUNCL = @REPLACE_TRUNCL@
|
||||
REPLACE_UNLINK = @REPLACE_UNLINK@
|
||||
REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
|
||||
REPLACE_UNSETENV = @REPLACE_UNSETENV@
|
||||
REPLACE_USLEEP = @REPLACE_USLEEP@
|
||||
REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@
|
||||
REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
|
||||
REPLACE_VDPRINTF = @REPLACE_VDPRINTF@
|
||||
REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
|
||||
@@ -904,7 +1038,6 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
|
||||
REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
|
||||
REPLACE_WRITE = @REPLACE_WRITE@
|
||||
SELINUX_CONTEXT_H = @SELINUX_CONTEXT_H@
|
||||
SELINUX_SELINUX_H = @SELINUX_SELINUX_H@
|
||||
SEQ_LIBM = @SEQ_LIBM@
|
||||
SERVENT_LIB = @SERVENT_LIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
@@ -916,10 +1049,8 @@ STDBOOL_H = @STDBOOL_H@
|
||||
STDDEF_H = @STDDEF_H@
|
||||
STDINT_H = @STDINT_H@
|
||||
STRIP = @STRIP@
|
||||
SYS_IOCTL_H = @SYS_IOCTL_H@
|
||||
SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@
|
||||
SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
|
||||
SYS_SELECT_H = @SYS_SELECT_H@
|
||||
SYS_SOCKET_H = @SYS_SOCKET_H@
|
||||
SYS_TIME_H = @SYS_TIME_H@
|
||||
SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
|
||||
@@ -933,9 +1064,7 @@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOC
|
||||
USE_ACL = @USE_ACL@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
VOID_UNSETENV = @VOID_UNSETENV@
|
||||
WARN_CFLAGS = @WARN_CFLAGS@
|
||||
WCHAR_H = @WCHAR_H@
|
||||
WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
|
||||
WCTYPE_H = @WCTYPE_H@
|
||||
WERROR_CFLAGS = @WERROR_CFLAGS@
|
||||
@@ -945,6 +1074,7 @@ XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
YACC = @YACC@
|
||||
YFLAGS = @YFLAGS@
|
||||
YIELD_LIB = @YIELD_LIB@
|
||||
abs_aux_dir = @abs_aux_dir@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
@@ -1018,8 +1148,10 @@ MAINTAINERCLEANFILES = constants.texi
|
||||
_W = (^|[^A-Za-z0-9_])
|
||||
W_ = ([^A-Za-z0-9_]|$$)
|
||||
syntax_checks = \
|
||||
sc-avoid-builtin \
|
||||
sc-avoid-io \
|
||||
sc-avoid-non-zero \
|
||||
sc-avoid-path \
|
||||
sc-avoid-timezone \
|
||||
sc-avoid-zeroes \
|
||||
sc-exponent-grouping \
|
||||
@@ -1078,7 +1210,7 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
.texi.info:
|
||||
restore=: && backupdir="$(am__leading_dot)am$$$$" && \
|
||||
$(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
|
||||
am__cwd=`pwd` && $(am__cd) $(srcdir) && \
|
||||
rm -rf $$backupdir && mkdir $$backupdir && \
|
||||
if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
|
||||
@@ -1100,18 +1232,18 @@ $(am__aclocal_m4_deps):
|
||||
rm -rf $$backupdir; exit $$rc
|
||||
|
||||
.texi.dvi:
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
$(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2DVI) $<
|
||||
$(TEXI2DVI) $(AM_V_texinfo) $< $(AM_V_texidevnull)
|
||||
|
||||
.texi.pdf:
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
$(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2PDF) $<
|
||||
$(TEXI2PDF) $(AM_V_texinfo) $< $(AM_V_texidevnull)
|
||||
|
||||
.texi.html:
|
||||
rm -rf $(@:.html=.htp)
|
||||
if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
||||
$(AM_V_MAKEINFO)rm -rf $(@:.html=.htp)
|
||||
$(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
||||
-o $(@:.html=.htp) $<; \
|
||||
then \
|
||||
rm -rf $@; \
|
||||
@@ -1146,8 +1278,8 @@ mostlyclean-vti:
|
||||
maintainer-clean-vti:
|
||||
-rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
|
||||
.dvi.ps:
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
$(DVIPS) -o $@ $<
|
||||
$(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
$(DVIPS) $(AM_V_texinfo) -o $@ $<
|
||||
|
||||
uninstall-dvi-am:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@@ -1249,6 +1381,8 @@ TAGS:
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
cscope cscopelist:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
@@ -1478,13 +1612,12 @@ uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
|
||||
|
||||
|
||||
constants.texi: $(top_srcdir)/src/tail.c $(top_srcdir)/src/shred.c
|
||||
LC_ALL=C \
|
||||
sed -n -e 's/^#define \(DEFAULT_MAX[_A-Z]*\) \(.*\)/@set \1 \2/p' \
|
||||
$(top_srcdir)/src/tail.c > t-$@
|
||||
LC_ALL=C \
|
||||
sed -n -e 's/.*\(DEFAULT_PASSES\)[ =]* \([0-9]*\).*/@set SHRED_\1 \2/p'\
|
||||
$(top_srcdir)/src/shred.c >> t-$@
|
||||
mv t-$@ $@
|
||||
$(AM_V_GEN)LC_ALL=C; export LC_ALL; \
|
||||
{ sed -n -e 's/^#define \(DEFAULT_MAX[_A-Z]*\) \(.*\)/@set \1 \2/p' \
|
||||
$(top_srcdir)/src/tail.c && \
|
||||
sed -n -e 's/.*\(DEFAULT_PASSES\)[ =]* \([0-9]*\).*/@set SHRED_\1 \2/p'\
|
||||
$(top_srcdir)/src/shred.c; } > t-$@ \
|
||||
&& mv t-$@ $@
|
||||
|
||||
$(DVIS): $(EXTRA_DIST)
|
||||
$(INFO_DEPS): $(EXTRA_DIST)
|
||||
@@ -1503,9 +1636,18 @@ check-texinfo: $(syntax_checks)
|
||||
$(PERL) -e 1 2> /dev/null && { $(PERL) -ne \
|
||||
'/\bPOSIX\b/ && !/\@acronym{POSIX}/ && !/^\* / || /{posix}/ and print,exit 1' \
|
||||
$(srcdir)/*.texi 2> /dev/null || fail=1; }; \
|
||||
$(EGREP) -i '$(_W)builtins?$(W_)' $(srcdir)/*.texi && fail=1; \
|
||||
exit $$fail
|
||||
|
||||
sc-avoid-builtin:
|
||||
$(AM_V_GEN)$(EGREP) -i '$(_W)builtins?$(W_)' $(srcdir)/*.texi \
|
||||
&& exit 1 || :
|
||||
|
||||
sc-avoid-path:
|
||||
$(AM_V_GEN)fail=0; \
|
||||
$(EGREP) -i '$(_W)path(name)?s?$(W_)' $(srcdir)/*.texi \
|
||||
| $(EGREP) -v 'search path|@vindex PATH$$|@env[{]PATH[}]' && fail=1; \
|
||||
| $(EGREP) -v \
|
||||
'PATH=|path search|search path|@vindex PATH$$|@env[{]PATH[}]' \
|
||||
&& fail=1; \
|
||||
exit $$fail
|
||||
|
||||
# Use `time zone', not `timezone'.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
@c GNU date syntax documentation
|
||||
|
||||
@c Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
@c 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
@c Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
|
||||
@c 2004, 2005, 2006, 2009, 2010 Free Software Foundation, Inc.
|
||||
|
||||
@c Permission is granted to copy, distribute and/or modify this document
|
||||
@c under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@c File mode bits
|
||||
|
||||
@c Copyright (C) 1994, 1996, 1999-2001, 2003-2006,
|
||||
@c 2008-2009 Free Software Foundation, Inc.
|
||||
@c Copyright (C) 1994, 1996, 1999-2001, 2003-2006, 2008-2010 Free Software
|
||||
@c Foundation, Inc.
|
||||
|
||||
@c Permission is granted to copy, distribute and/or modify this document
|
||||
@c under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@set UPDATED 10 September 2009
|
||||
@set UPDATED-MONTH September 2009
|
||||
@set EDITION 7.6
|
||||
@set VERSION 7.6
|
||||
@set UPDATED 3 January 2010
|
||||
@set UPDATED-MONTH January 2010
|
||||
@set EDITION 8.4
|
||||
@set VERSION 8.4
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@set UPDATED 10 September 2009
|
||||
@set UPDATED-MONTH September 2009
|
||||
@set EDITION 7.6
|
||||
@set VERSION 7.6
|
||||
@set UPDATED 3 January 2010
|
||||
@set UPDATED-MONTH January 2010
|
||||
@set EDITION 8.4
|
||||
@set VERSION 8.4
|
||||
|
||||
@@ -8746,7 +8746,7 @@
|
||||
|
||||
-----
|
||||
|
||||
Copyright (C) 2000-2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2000-2010 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without
|
||||
modification, are permitted provided the copyright notice
|
||||
|
||||
@@ -22,6 +22,7 @@ StaticLibrary libfetish.a :
|
||||
backupfile.c
|
||||
base64.c
|
||||
basename.c
|
||||
basename-lgpl.c
|
||||
buffer-lcm.c
|
||||
c-strcasecmp.c
|
||||
c-strtod.c
|
||||
@@ -40,6 +41,7 @@ StaticLibrary libfetish.a :
|
||||
diacrit.c
|
||||
dirchownmod.c
|
||||
dirname.c
|
||||
dirname-lgpl.c
|
||||
dup-safer.c
|
||||
# dup2.c
|
||||
error.c
|
||||
@@ -51,6 +53,7 @@ StaticLibrary libfetish.a :
|
||||
fchmodat.c
|
||||
fchownat.c
|
||||
# fchown-stub.c
|
||||
fcntl.c
|
||||
fd-reopen.c
|
||||
fd-safer.c
|
||||
file-has-acl.c
|
||||
@@ -59,14 +62,17 @@ StaticLibrary libfetish.a :
|
||||
# fileblocks.c
|
||||
filemode.c
|
||||
filenamecat.c
|
||||
filenamecat-lgpl.c
|
||||
filevercmp.c
|
||||
fnmatch.c
|
||||
fopen.c
|
||||
fopen-safer.c
|
||||
fpending.c
|
||||
fprintftime.c
|
||||
freadahead.c
|
||||
freadptr.c
|
||||
freadseek.c
|
||||
freopen-safer.c
|
||||
# fsusage.c
|
||||
# ftruncate.c
|
||||
fts.c
|
||||
@@ -133,11 +139,14 @@ StaticLibrary libfetish.a :
|
||||
modechange.c
|
||||
# mountlist.c
|
||||
nanosleep.c
|
||||
nproc.c
|
||||
# obstack.c
|
||||
offtostr.c
|
||||
open.c
|
||||
open-safer.c
|
||||
openat-die.c
|
||||
openat-proc.c
|
||||
openat-safer.c
|
||||
openat.c
|
||||
opendir-safer.c
|
||||
physmem.c
|
||||
@@ -158,7 +167,6 @@ StaticLibrary libfetish.a :
|
||||
readtokens0.c
|
||||
# realloc.c
|
||||
# regex.c
|
||||
rename-dest-slash.c
|
||||
rename.c
|
||||
root-dev-ino.c
|
||||
# rmdir.c
|
||||
@@ -196,7 +204,6 @@ StaticLibrary libfetish.a :
|
||||
# strtoul.c
|
||||
# strtoull.c
|
||||
# strtoumax.c
|
||||
strverscmp.c
|
||||
# tempname.c
|
||||
time_r.c
|
||||
trim.c
|
||||
@@ -205,7 +212,6 @@ StaticLibrary libfetish.a :
|
||||
uinttostr.c
|
||||
umaxtostr.c
|
||||
unicodeio.c
|
||||
unlinkdir.c
|
||||
unsetenv.c
|
||||
userspec.c
|
||||
# utime.c
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
## Makefile for gnulib/lib -*-Makefile-*-
|
||||
|
||||
# Copyright (C) 1995-2007, 2009 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1995-2007, 2009-2010 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,7 +17,7 @@
|
||||
|
||||
include gnulib.mk
|
||||
|
||||
AM_CFLAGS += $(WARN_CFLAGS) # $(WERROR_CFLAGS)
|
||||
AM_CFLAGS += $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
|
||||
|
||||
libcoreutils_a_SOURCES += \
|
||||
buffer-lcm.c buffer-lcm.h \
|
||||
|
||||
+727
-312
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
/* Internal implementation of access control lists.
|
||||
|
||||
Copyright (C) 2002-2003, 2005-2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002-2003, 2005-2010 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,6 +1,6 @@
|
||||
/* acl.c - access control lists
|
||||
|
||||
Copyright (C) 2002, 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002, 2008-2010 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,6 +1,6 @@
|
||||
/* Return the number of entries in an ACL.
|
||||
|
||||
Copyright (C) 2002-2003, 2005-2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002-2003, 2005-2010 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
|
||||
@@ -37,26 +37,26 @@ acl_entries (acl_t acl)
|
||||
#if HAVE_ACL_FIRST_ENTRY /* Linux, FreeBSD, MacOS X */
|
||||
# if HAVE_ACL_TYPE_EXTENDED /* MacOS X */
|
||||
/* acl_get_entry returns 0 when it successfully fetches an entry,
|
||||
and -1/EINVAL at the end. */
|
||||
and -1/EINVAL at the end. */
|
||||
acl_entry_t ace;
|
||||
int got_one;
|
||||
|
||||
for (got_one = acl_get_entry (acl, ACL_FIRST_ENTRY, &ace);
|
||||
got_one >= 0;
|
||||
got_one = acl_get_entry (acl, ACL_NEXT_ENTRY, &ace))
|
||||
count++;
|
||||
got_one >= 0;
|
||||
got_one = acl_get_entry (acl, ACL_NEXT_ENTRY, &ace))
|
||||
count++;
|
||||
# else /* Linux, FreeBSD */
|
||||
/* acl_get_entry returns 1 when it successfully fetches an entry,
|
||||
and 0 at the end. */
|
||||
and 0 at the end. */
|
||||
acl_entry_t ace;
|
||||
int got_one;
|
||||
|
||||
for (got_one = acl_get_entry (acl, ACL_FIRST_ENTRY, &ace);
|
||||
got_one > 0;
|
||||
got_one = acl_get_entry (acl, ACL_NEXT_ENTRY, &ace))
|
||||
count++;
|
||||
got_one > 0;
|
||||
got_one = acl_get_entry (acl, ACL_NEXT_ENTRY, &ace))
|
||||
count++;
|
||||
if (got_one < 0)
|
||||
return -1;
|
||||
return -1;
|
||||
# endif
|
||||
#else /* IRIX, Tru64 */
|
||||
# if HAVE_ACL_TO_SHORT_TEXT /* IRIX */
|
||||
@@ -65,7 +65,7 @@ acl_entries (acl_t acl)
|
||||
# endif
|
||||
# if HAVE_ACL_FREE_TEXT /* Tru64 */
|
||||
/* Don't use acl_get_entry: it takes only one argument and does not
|
||||
work. */
|
||||
work. */
|
||||
count = acl->acl_num;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
#line 1
|
||||
/* Determine alignment of types.
|
||||
Copyright (C) 2003-2004, 2006, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2003-2004, 2006, 2009-2010 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
|
||||
|
||||
@@ -84,37 +84,37 @@ long i00afunc ();
|
||||
STACK_DIRECTION = 0 => direction of growth unknown */
|
||||
|
||||
# ifndef STACK_DIRECTION
|
||||
# define STACK_DIRECTION 0 /* Direction unknown. */
|
||||
# define STACK_DIRECTION 0 /* Direction unknown. */
|
||||
# endif
|
||||
|
||||
# if STACK_DIRECTION != 0
|
||||
|
||||
# define STACK_DIR STACK_DIRECTION /* Known at compile-time. */
|
||||
# define STACK_DIR STACK_DIRECTION /* Known at compile-time. */
|
||||
|
||||
# else /* STACK_DIRECTION == 0; need run-time code. */
|
||||
|
||||
static int stack_dir; /* 1 or -1 once known. */
|
||||
# define STACK_DIR stack_dir
|
||||
static int stack_dir; /* 1 or -1 once known. */
|
||||
# define STACK_DIR stack_dir
|
||||
|
||||
static void
|
||||
find_stack_direction (void)
|
||||
{
|
||||
static char *addr = NULL; /* Address of first `dummy', once known. */
|
||||
auto char dummy; /* To get stack address. */
|
||||
static char *addr = NULL; /* Address of first `dummy', once known. */
|
||||
auto char dummy; /* To get stack address. */
|
||||
|
||||
if (addr == NULL)
|
||||
{ /* Initial entry. */
|
||||
{ /* Initial entry. */
|
||||
addr = ADDRESS_FUNCTION (dummy);
|
||||
|
||||
find_stack_direction (); /* Recurse once. */
|
||||
find_stack_direction (); /* Recurse once. */
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Second entry. */
|
||||
if (ADDRESS_FUNCTION (dummy) > addr)
|
||||
stack_dir = 1; /* Stack grew upward. */
|
||||
stack_dir = 1; /* Stack grew upward. */
|
||||
else
|
||||
stack_dir = -1; /* Stack grew downward. */
|
||||
stack_dir = -1; /* Stack grew downward. */
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,21 +127,21 @@ find_stack_direction (void)
|
||||
It is very important that sizeof(header) agree with malloc
|
||||
alignment chunk size. The following default should work okay. */
|
||||
|
||||
# ifndef ALIGN_SIZE
|
||||
# define ALIGN_SIZE sizeof(double)
|
||||
# ifndef ALIGN_SIZE
|
||||
# define ALIGN_SIZE sizeof(double)
|
||||
# endif
|
||||
|
||||
typedef union hdr
|
||||
{
|
||||
char align[ALIGN_SIZE]; /* To force sizeof(header). */
|
||||
char align[ALIGN_SIZE]; /* To force sizeof(header). */
|
||||
struct
|
||||
{
|
||||
union hdr *next; /* For chaining headers. */
|
||||
char *deep; /* For stack depth measure. */
|
||||
union hdr *next; /* For chaining headers. */
|
||||
char *deep; /* For stack depth measure. */
|
||||
} h;
|
||||
} header;
|
||||
|
||||
static header *last_alloca_header = NULL; /* -> last alloca header. */
|
||||
static header *last_alloca_header = NULL; /* -> last alloca header. */
|
||||
|
||||
/* Return a pointer to at least SIZE bytes of storage,
|
||||
which will be automatically reclaimed upon exit from
|
||||
@@ -153,11 +153,11 @@ static header *last_alloca_header = NULL; /* -> last alloca header. */
|
||||
void *
|
||||
alloca (size_t size)
|
||||
{
|
||||
auto char probe; /* Probes stack depth: */
|
||||
auto char probe; /* Probes stack depth: */
|
||||
register char *depth = ADDRESS_FUNCTION (probe);
|
||||
|
||||
# if STACK_DIRECTION == 0
|
||||
if (STACK_DIR == 0) /* Unknown growth direction. */
|
||||
if (STACK_DIR == 0) /* Unknown growth direction. */
|
||||
find_stack_direction ();
|
||||
# endif
|
||||
|
||||
@@ -165,7 +165,7 @@ alloca (size_t size)
|
||||
was allocated from deeper in the stack than currently. */
|
||||
|
||||
{
|
||||
register header *hp; /* Traverses linked list. */
|
||||
register header *hp; /* Traverses linked list. */
|
||||
|
||||
# ifdef emacs
|
||||
BLOCK_INPUT;
|
||||
@@ -173,18 +173,18 @@ alloca (size_t size)
|
||||
|
||||
for (hp = last_alloca_header; hp != NULL;)
|
||||
if ((STACK_DIR > 0 && hp->h.deep > depth)
|
||||
|| (STACK_DIR < 0 && hp->h.deep < depth))
|
||||
{
|
||||
register header *np = hp->h.next;
|
||||
|| (STACK_DIR < 0 && hp->h.deep < depth))
|
||||
{
|
||||
register header *np = hp->h.next;
|
||||
|
||||
free (hp); /* Collect garbage. */
|
||||
free (hp); /* Collect garbage. */
|
||||
|
||||
hp = np; /* -> next header. */
|
||||
}
|
||||
hp = np; /* -> next header. */
|
||||
}
|
||||
else
|
||||
break; /* Rest are not deeper. */
|
||||
break; /* Rest are not deeper. */
|
||||
|
||||
last_alloca_header = hp; /* -> last valid storage. */
|
||||
last_alloca_header = hp; /* -> last valid storage. */
|
||||
|
||||
# ifdef emacs
|
||||
UNBLOCK_INPUT;
|
||||
@@ -192,7 +192,7 @@ alloca (size_t size)
|
||||
}
|
||||
|
||||
if (size == 0)
|
||||
return NULL; /* No allocation required. */
|
||||
return NULL; /* No allocation required. */
|
||||
|
||||
/* Allocate combined header + user data storage. */
|
||||
|
||||
@@ -232,10 +232,10 @@ alloca (size_t size)
|
||||
/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */
|
||||
struct stack_control_header
|
||||
{
|
||||
long shgrow:32; /* Number of times stack has grown. */
|
||||
long shaseg:32; /* Size of increments to stack. */
|
||||
long shhwm:32; /* High water mark of stack. */
|
||||
long shsize:32; /* Current size of stack (all segments). */
|
||||
long shgrow:32; /* Number of times stack has grown. */
|
||||
long shaseg:32; /* Size of increments to stack. */
|
||||
long shhwm:32; /* High water mark of stack. */
|
||||
long shsize:32; /* Current size of stack (all segments). */
|
||||
};
|
||||
|
||||
/* The stack segment linkage control information occurs at
|
||||
@@ -247,21 +247,21 @@ struct stack_control_header
|
||||
|
||||
struct stack_segment_linkage
|
||||
{
|
||||
long ss[0200]; /* 0200 overflow words. */
|
||||
long sssize:32; /* Number of words in this segment. */
|
||||
long ssbase:32; /* Offset to stack base. */
|
||||
long ss[0200]; /* 0200 overflow words. */
|
||||
long sssize:32; /* Number of words in this segment. */
|
||||
long ssbase:32; /* Offset to stack base. */
|
||||
long:32;
|
||||
long sspseg:32; /* Offset to linkage control of previous
|
||||
segment of stack. */
|
||||
long sspseg:32; /* Offset to linkage control of previous
|
||||
segment of stack. */
|
||||
long:32;
|
||||
long sstcpt:32; /* Pointer to task common address block. */
|
||||
long sscsnm; /* Private control structure number for
|
||||
microtasking. */
|
||||
long ssusr1; /* Reserved for user. */
|
||||
long ssusr2; /* Reserved for user. */
|
||||
long sstpid; /* Process ID for pid based multi-tasking. */
|
||||
long ssgvup; /* Pointer to multitasking thread giveup. */
|
||||
long sscray[7]; /* Reserved for Cray Research. */
|
||||
long sstcpt:32; /* Pointer to task common address block. */
|
||||
long sscsnm; /* Private control structure number for
|
||||
microtasking. */
|
||||
long ssusr1; /* Reserved for user. */
|
||||
long ssusr2; /* Reserved for user. */
|
||||
long sstpid; /* Process ID for pid based multi-tasking. */
|
||||
long ssgvup; /* Pointer to multitasking thread giveup. */
|
||||
long sscray[7]; /* Reserved for Cray Research. */
|
||||
long ssa0;
|
||||
long ssa1;
|
||||
long ssa2;
|
||||
@@ -285,27 +285,27 @@ struct stack_segment_linkage
|
||||
returned by the STKSTAT library routine. */
|
||||
struct stk_stat
|
||||
{
|
||||
long now; /* Current total stack size. */
|
||||
long maxc; /* Amount of contiguous space which would
|
||||
be required to satisfy the maximum
|
||||
stack demand to date. */
|
||||
long high_water; /* Stack high-water mark. */
|
||||
long overflows; /* Number of stack overflow ($STKOFEN) calls. */
|
||||
long hits; /* Number of internal buffer hits. */
|
||||
long extends; /* Number of block extensions. */
|
||||
long stko_mallocs; /* Block allocations by $STKOFEN. */
|
||||
long underflows; /* Number of stack underflow calls ($STKRETN). */
|
||||
long stko_free; /* Number of deallocations by $STKRETN. */
|
||||
long stkm_free; /* Number of deallocations by $STKMRET. */
|
||||
long segments; /* Current number of stack segments. */
|
||||
long maxs; /* Maximum number of stack segments so far. */
|
||||
long pad_size; /* Stack pad size. */
|
||||
long current_address; /* Current stack segment address. */
|
||||
long current_size; /* Current stack segment size. This
|
||||
number is actually corrupted by STKSTAT to
|
||||
include the fifteen word trailer area. */
|
||||
long initial_address; /* Address of initial segment. */
|
||||
long initial_size; /* Size of initial segment. */
|
||||
long now; /* Current total stack size. */
|
||||
long maxc; /* Amount of contiguous space which would
|
||||
be required to satisfy the maximum
|
||||
stack demand to date. */
|
||||
long high_water; /* Stack high-water mark. */
|
||||
long overflows; /* Number of stack overflow ($STKOFEN) calls. */
|
||||
long hits; /* Number of internal buffer hits. */
|
||||
long extends; /* Number of block extensions. */
|
||||
long stko_mallocs; /* Block allocations by $STKOFEN. */
|
||||
long underflows; /* Number of stack underflow calls ($STKRETN). */
|
||||
long stko_free; /* Number of deallocations by $STKRETN. */
|
||||
long stkm_free; /* Number of deallocations by $STKMRET. */
|
||||
long segments; /* Current number of stack segments. */
|
||||
long maxs; /* Maximum number of stack segments so far. */
|
||||
long pad_size; /* Stack pad size. */
|
||||
long current_address; /* Current stack segment address. */
|
||||
long current_size; /* Current stack segment size. This
|
||||
number is actually corrupted by STKSTAT to
|
||||
include the fifteen word trailer area. */
|
||||
long initial_address; /* Address of initial segment. */
|
||||
long initial_size; /* Size of initial segment. */
|
||||
};
|
||||
|
||||
/* The following structure describes the data structure which trails
|
||||
@@ -314,13 +314,13 @@ struct stk_stat
|
||||
|
||||
struct stk_trailer
|
||||
{
|
||||
long this_address; /* Address of this block. */
|
||||
long this_size; /* Size of this block (does not include
|
||||
this trailer). */
|
||||
long this_address; /* Address of this block. */
|
||||
long this_size; /* Size of this block (does not include
|
||||
this trailer). */
|
||||
long unknown2;
|
||||
long unknown3;
|
||||
long link; /* Address of trailer block of previous
|
||||
segment. */
|
||||
long link; /* Address of trailer block of previous
|
||||
segment. */
|
||||
long unknown5;
|
||||
long unknown6;
|
||||
long unknown7;
|
||||
@@ -358,8 +358,8 @@ i00afunc (long *address)
|
||||
/* Set up the iteration. */
|
||||
|
||||
trailer = (struct stk_trailer *) (status.current_address
|
||||
+ status.current_size
|
||||
- 15);
|
||||
+ status.current_size
|
||||
- 15);
|
||||
|
||||
/* There must be at least one stack segment. Therefore it is
|
||||
a fatal error if "trailer" is null. */
|
||||
@@ -374,10 +374,10 @@ i00afunc (long *address)
|
||||
block = (long *) trailer->this_address;
|
||||
size = trailer->this_size;
|
||||
if (block == 0 || size == 0)
|
||||
abort ();
|
||||
abort ();
|
||||
trailer = (struct stk_trailer *) trailer->link;
|
||||
if ((block <= address) && (address < (block + size)))
|
||||
break;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Set the result to the offset in this segment and add the sizes
|
||||
@@ -393,7 +393,7 @@ i00afunc (long *address)
|
||||
do
|
||||
{
|
||||
if (trailer->this_size <= 0)
|
||||
abort ();
|
||||
abort ();
|
||||
result += trailer->this_size;
|
||||
trailer = (struct stk_trailer *) trailer->link;
|
||||
}
|
||||
@@ -456,7 +456,7 @@ i00afunc (long address)
|
||||
fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl);
|
||||
# endif
|
||||
if (pseg == 0)
|
||||
break;
|
||||
break;
|
||||
stkl = stkl - pseg;
|
||||
ssptr = (struct stack_segment_linkage *) stkl;
|
||||
size = ssptr->sssize;
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
/* -*- buffer-read-only: t -*- vi: set ro: */
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
#line 1
|
||||
/* Memory allocation on the stack.
|
||||
|
||||
Copyright (C) 1995, 1999, 2001, 2002, 2003, 2004, 2006 Free Software
|
||||
Foundation, Inc.
|
||||
Copyright (C) 1995, 1999, 2001-2004, 2006-2010 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)
|
||||
by the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
@@ -21,8 +24,8 @@
|
||||
|
||||
/* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H
|
||||
means there is a real alloca function. */
|
||||
#ifndef _GNULIB_ALLOCA_H
|
||||
# define _GNULIB_ALLOCA_H
|
||||
#ifndef _GL_ALLOCA_H
|
||||
#define _GL_ALLOCA_H
|
||||
|
||||
/* alloca (N) returns a pointer to N bytes of memory
|
||||
allocated on the stack, which will last until the function returns.
|
||||
@@ -43,6 +46,8 @@
|
||||
# elif defined _MSC_VER
|
||||
# include <malloc.h>
|
||||
# define alloca _alloca
|
||||
# elif defined __DECC && defined __VMS
|
||||
# define alloca __ALLOCA
|
||||
# else
|
||||
# include <stddef.h>
|
||||
# ifdef __cplusplus
|
||||
@@ -52,4 +57,4 @@ void *alloca (size_t);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif /* _GNULIB_ALLOCA_H */
|
||||
#endif /* _GL_ALLOCA_H */
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
#line 1
|
||||
/* Memory allocation on the stack.
|
||||
|
||||
Copyright (C) 1995, 1999, 2001-2004, 2006-2008 Free Software
|
||||
Foundation, Inc.
|
||||
Copyright (C) 1995, 1999, 2001-2004, 2006-2010 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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* readlink wrapper to return the link name in malloc'd storage.
|
||||
Unlike xreadlink and xreadlink_with_size, don't ever call exit.
|
||||
|
||||
Copyright (C) 2001, 2003-2007 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001, 2003-2007, 2009-2010 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,16 +22,12 @@
|
||||
|
||||
#include "areadlink.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include <sys/types.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifndef SIZE_MAX
|
||||
# define SIZE_MAX ((size_t) -1)
|
||||
#endif
|
||||
#ifndef SSIZE_MAX
|
||||
# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
|
||||
#endif
|
||||
@@ -61,8 +57,8 @@ areadlink_with_size (char const *file, size_t size)
|
||||
size_t symlink_max = SYMLINK_MAX;
|
||||
size_t INITIAL_LIMIT_BOUND = 8 * 1024;
|
||||
size_t initial_limit = (symlink_max < INITIAL_LIMIT_BOUND
|
||||
? symlink_max + 1
|
||||
: INITIAL_LIMIT_BOUND);
|
||||
? symlink_max + 1
|
||||
: INITIAL_LIMIT_BOUND);
|
||||
|
||||
/* The initial buffer size for the link value. */
|
||||
size_t buf_size = size < initial_limit ? size + 1 : initial_limit;
|
||||
@@ -74,35 +70,35 @@ areadlink_with_size (char const *file, size_t size)
|
||||
char *buffer = malloc (buf_size);
|
||||
|
||||
if (buffer == NULL)
|
||||
return NULL;
|
||||
return NULL;
|
||||
r = readlink (file, buffer, buf_size);
|
||||
link_length = r;
|
||||
|
||||
/* On AIX 5L v5.3 and HP-UX 11i v2 04/09, readlink returns -1
|
||||
with errno == ERANGE if the buffer is too small. */
|
||||
with errno == ERANGE if the buffer is too small. */
|
||||
if (r < 0 && errno != ERANGE)
|
||||
{
|
||||
int saved_errno = errno;
|
||||
free (buffer);
|
||||
errno = saved_errno;
|
||||
return NULL;
|
||||
}
|
||||
{
|
||||
int saved_errno = errno;
|
||||
free (buffer);
|
||||
errno = saved_errno;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (link_length < buf_size)
|
||||
{
|
||||
buffer[link_length] = 0;
|
||||
return buffer;
|
||||
}
|
||||
{
|
||||
buffer[link_length] = 0;
|
||||
return buffer;
|
||||
}
|
||||
|
||||
free (buffer);
|
||||
if (buf_size <= MAXSIZE / 2)
|
||||
buf_size *= 2;
|
||||
buf_size *= 2;
|
||||
else if (buf_size < MAXSIZE)
|
||||
buf_size = MAXSIZE;
|
||||
buf_size = MAXSIZE;
|
||||
else
|
||||
{
|
||||
errno = ENOMEM;
|
||||
return NULL;
|
||||
}
|
||||
{
|
||||
errno = ENOMEM;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
/* areadlink.c -- readlink wrapper to return the link name in malloc'd storage
|
||||
Unlike xreadlink and xreadlink_with_size, don't ever call exit.
|
||||
|
||||
Copyright (C) 2001, 2003-2007, 2009-2010 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 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, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Written by Jim Meyering <[email protected]>
|
||||
and Bruno Haible <bruno@clisp.org>. */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
/* Specification. */
|
||||
#include "areadlink.h"
|
||||
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifndef SSIZE_MAX
|
||||
# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
|
||||
#endif
|
||||
|
||||
/* The initial buffer size for the link value. A power of 2
|
||||
detects arithmetic overflow earlier, but is not required. */
|
||||
enum {
|
||||
INITIAL_BUF_SIZE = 1024
|
||||
};
|
||||
|
||||
/* Call readlink to get the symbolic link value of FILENAME.
|
||||
Return a pointer to that NUL-terminated string in malloc'd storage.
|
||||
If readlink fails, return NULL and set errno.
|
||||
If realloc fails, or if the link value is longer than SIZE_MAX :-),
|
||||
return NULL and set errno to ENOMEM. */
|
||||
|
||||
char *
|
||||
areadlink (char const *filename)
|
||||
{
|
||||
/* Allocate the initial buffer on the stack. This way, in the common
|
||||
case of a symlink of small size, we get away with a single small malloc()
|
||||
instead of a big malloc() followed by a shrinking realloc(). */
|
||||
char initial_buf[INITIAL_BUF_SIZE];
|
||||
|
||||
char *buffer = initial_buf;
|
||||
size_t buf_size = sizeof initial_buf;
|
||||
|
||||
while (1)
|
||||
{
|
||||
/* Attempt to read the link into the current buffer. */
|
||||
ssize_t link_length = readlink (filename, buffer, buf_size);
|
||||
|
||||
/* On AIX 5L v5.3 and HP-UX 11i v2 04/09, readlink returns -1
|
||||
with errno == ERANGE if the buffer is too small. */
|
||||
if (link_length < 0 && errno != ERANGE)
|
||||
{
|
||||
if (buffer != initial_buf)
|
||||
{
|
||||
int saved_errno = errno;
|
||||
free (buffer);
|
||||
errno = saved_errno;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((size_t) link_length < buf_size)
|
||||
{
|
||||
buffer[link_length++] = '\0';
|
||||
|
||||
/* Return it in a chunk of memory as small as possible. */
|
||||
if (buffer == initial_buf)
|
||||
{
|
||||
buffer = (char *) malloc (link_length);
|
||||
if (buffer == NULL)
|
||||
/* errno is ENOMEM. */
|
||||
return NULL;
|
||||
memcpy (buffer, initial_buf, link_length);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Shrink buffer before returning it. */
|
||||
if ((size_t) link_length < buf_size)
|
||||
{
|
||||
char *smaller_buffer = (char *) realloc (buffer, link_length);
|
||||
|
||||
if (smaller_buffer != NULL)
|
||||
buffer = smaller_buffer;
|
||||
}
|
||||
}
|
||||
return buffer;
|
||||
}
|
||||
|
||||
if (buffer != initial_buf)
|
||||
free (buffer);
|
||||
buf_size *= 2;
|
||||
if (SSIZE_MAX < buf_size || (SIZE_MAX / 2 < SSIZE_MAX && buf_size == 0))
|
||||
{
|
||||
errno = ENOMEM;
|
||||
return NULL;
|
||||
}
|
||||
buffer = (char *) malloc (buf_size);
|
||||
if (buffer == NULL)
|
||||
/* errno is ENOMEM. */
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
/* Read symbolic links without size limitation.
|
||||
|
||||
Copyright (C) 2001, 2003, 2004, 2007 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001, 2003-2004, 2007, 2009-2010 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,3 +22,12 @@
|
||||
|
||||
extern char *areadlink (char const *filename);
|
||||
extern char *areadlink_with_size (char const *filename, size_t size_hint);
|
||||
|
||||
#if GNULIB_AREADLINKAT
|
||||
extern char *areadlinkat (int fd, char const *filename);
|
||||
#endif
|
||||
|
||||
#if GNULIB_AREADLINKAT_WITH_SIZE
|
||||
extern char *areadlinkat_with_size (int fd, char const *filename,
|
||||
size_t size_hint);
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
/* areadlinkat.c -- readlinkat wrapper to return malloc'd link name
|
||||
Unlike xreadlinkat, only call exit on failure to change directory.
|
||||
|
||||
Copyright (C) 2001, 2003-2007, 2009-2010 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 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, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Written by Jim Meyering <[email protected]>,
|
||||
and Bruno Haible <bruno@clisp.org>,
|
||||
and Eric Blake <ebb9@byu.net>. */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
/* Specification. */
|
||||
#include "areadlink.h"
|
||||
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifndef SSIZE_MAX
|
||||
# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
|
||||
#endif
|
||||
|
||||
#if HAVE_READLINKAT
|
||||
|
||||
/* The initial buffer size for the link value. A power of 2
|
||||
detects arithmetic overflow earlier, but is not required. */
|
||||
enum {
|
||||
INITIAL_BUF_SIZE = 1024
|
||||
};
|
||||
|
||||
/* Call readlinkat to get the symbolic link value of FILENAME relative to FD.
|
||||
Return a pointer to that NUL-terminated string in malloc'd storage.
|
||||
If readlinkat fails, return NULL and set errno (although failure to
|
||||
change directory will issue a diagnostic and exit).
|
||||
If realloc fails, or if the link value is longer than SIZE_MAX :-),
|
||||
return NULL and set errno to ENOMEM. */
|
||||
|
||||
char *
|
||||
areadlinkat (int fd, char const *filename)
|
||||
{
|
||||
/* Allocate the initial buffer on the stack. This way, in the common
|
||||
case of a symlink of small size, we get away with a single small malloc()
|
||||
instead of a big malloc() followed by a shrinking realloc(). */
|
||||
char initial_buf[INITIAL_BUF_SIZE];
|
||||
|
||||
char *buffer = initial_buf;
|
||||
size_t buf_size = sizeof initial_buf;
|
||||
|
||||
while (1)
|
||||
{
|
||||
/* Attempt to read the link into the current buffer. */
|
||||
ssize_t link_length = readlinkat (fd, filename, buffer, buf_size);
|
||||
|
||||
/* On AIX 5L v5.3 and HP-UX 11i v2 04/09, readlink returns -1
|
||||
with errno == ERANGE if the buffer is too small. */
|
||||
if (link_length < 0 && errno != ERANGE)
|
||||
{
|
||||
if (buffer != initial_buf)
|
||||
{
|
||||
int saved_errno = errno;
|
||||
free (buffer);
|
||||
errno = saved_errno;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((size_t) link_length < buf_size)
|
||||
{
|
||||
buffer[link_length++] = '\0';
|
||||
|
||||
/* Return it in a chunk of memory as small as possible. */
|
||||
if (buffer == initial_buf)
|
||||
{
|
||||
buffer = (char *) malloc (link_length);
|
||||
if (buffer == NULL)
|
||||
/* errno is ENOMEM. */
|
||||
return NULL;
|
||||
memcpy (buffer, initial_buf, link_length);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Shrink buffer before returning it. */
|
||||
if ((size_t) link_length < buf_size)
|
||||
{
|
||||
char *smaller_buffer = (char *) realloc (buffer, link_length);
|
||||
|
||||
if (smaller_buffer != NULL)
|
||||
buffer = smaller_buffer;
|
||||
}
|
||||
}
|
||||
return buffer;
|
||||
}
|
||||
|
||||
if (buffer != initial_buf)
|
||||
free (buffer);
|
||||
buf_size *= 2;
|
||||
if (SSIZE_MAX < buf_size || (SIZE_MAX / 2 < SSIZE_MAX && buf_size == 0))
|
||||
{
|
||||
errno = ENOMEM;
|
||||
return NULL;
|
||||
}
|
||||
buffer = (char *) malloc (buf_size);
|
||||
if (buffer == NULL)
|
||||
/* errno is ENOMEM. */
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
#else /* !HAVE_READLINKAT */
|
||||
|
||||
/* It is more efficient to change directories only once and call
|
||||
areadlink, rather than repeatedly call the replacement
|
||||
readlinkat. */
|
||||
|
||||
# define AT_FUNC_NAME areadlinkat
|
||||
# define AT_FUNC_F1 areadlink
|
||||
# define AT_FUNC_POST_FILE_PARAM_DECLS /* empty */
|
||||
# define AT_FUNC_POST_FILE_ARGS /* empty */
|
||||
# define AT_FUNC_RESULT char *
|
||||
# define AT_FUNC_FAIL NULL
|
||||
# include "at-func.c"
|
||||
# undef AT_FUNC_NAME
|
||||
# undef AT_FUNC_F1
|
||||
# undef AT_FUNC_POST_FILE_PARAM_DECLS
|
||||
# undef AT_FUNC_POST_FILE_ARGS
|
||||
# undef AT_FUNC_RESULT
|
||||
# undef AT_FUNC_FAIL
|
||||
|
||||
#endif /* !HAVE_READLINKAT */
|
||||
@@ -0,0 +1,10 @@
|
||||
/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
|
||||
that the values passed as arguments n, ..., m must be non-NULL pointers.
|
||||
n = 1 stands for the first argument, n = 2 for the second argument etc. */
|
||||
#ifndef _GL_ARG_NONNULL
|
||||
# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
|
||||
# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
|
||||
# else
|
||||
# define _GL_ARG_NONNULL(params)
|
||||
# endif
|
||||
#endif
|
||||
@@ -1,7 +1,7 @@
|
||||
/* argmatch.c -- find a match for a string in an array
|
||||
|
||||
Copyright (C) 1990, 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
Free Software Foundation, Inc.
|
||||
Copyright (C) 1990, 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
|
||||
2009, 2010 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
|
||||
@@ -81,12 +81,12 @@ argmatch_exit_fn argmatch_die = __argmatch_die;
|
||||
|
||||
ptrdiff_t
|
||||
argmatch (const char *arg, const char *const *arglist,
|
||||
const char *vallist, size_t valsize)
|
||||
const char *vallist, size_t valsize)
|
||||
{
|
||||
size_t i; /* Temporary index in ARGLIST. */
|
||||
size_t arglen; /* Length of ARG. */
|
||||
ptrdiff_t matchind = -1; /* Index of first nonexact match. */
|
||||
bool ambiguous = false; /* If true, multiple nonexact match(es). */
|
||||
size_t i; /* Temporary index in ARGLIST. */
|
||||
size_t arglen; /* Length of ARG. */
|
||||
ptrdiff_t matchind = -1; /* Index of first nonexact match. */
|
||||
bool ambiguous = false; /* If true, multiple nonexact match(es). */
|
||||
|
||||
arglen = strlen (arg);
|
||||
|
||||
@@ -94,26 +94,26 @@ argmatch (const char *arg, const char *const *arglist,
|
||||
for (i = 0; arglist[i]; i++)
|
||||
{
|
||||
if (!strncmp (arglist[i], arg, arglen))
|
||||
{
|
||||
if (strlen (arglist[i]) == arglen)
|
||||
/* Exact match found. */
|
||||
return i;
|
||||
else if (matchind == -1)
|
||||
/* First nonexact match found. */
|
||||
matchind = i;
|
||||
else
|
||||
{
|
||||
/* Second nonexact match found. */
|
||||
if (vallist == NULL
|
||||
|| memcmp (vallist + valsize * matchind,
|
||||
vallist + valsize * i, valsize))
|
||||
{
|
||||
/* There is a real ambiguity, or we could not
|
||||
disambiguate. */
|
||||
ambiguous = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
if (strlen (arglist[i]) == arglen)
|
||||
/* Exact match found. */
|
||||
return i;
|
||||
else if (matchind == -1)
|
||||
/* First nonexact match found. */
|
||||
matchind = i;
|
||||
else
|
||||
{
|
||||
/* Second nonexact match found. */
|
||||
if (vallist == NULL
|
||||
|| memcmp (vallist + valsize * matchind,
|
||||
vallist + valsize * i, valsize))
|
||||
{
|
||||
/* There is a real ambiguity, or we could not
|
||||
disambiguate. */
|
||||
ambiguous = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ambiguous)
|
||||
return -2;
|
||||
@@ -130,11 +130,11 @@ void
|
||||
argmatch_invalid (const char *context, const char *value, ptrdiff_t problem)
|
||||
{
|
||||
char const *format = (problem == -1
|
||||
? _("invalid argument %s for %s")
|
||||
: _("ambiguous argument %s for %s"));
|
||||
? _("invalid argument %s for %s")
|
||||
: _("ambiguous argument %s for %s"));
|
||||
|
||||
error (0, 0, format, quotearg_n_style (0, ARGMATCH_QUOTING_STYLE, value),
|
||||
quote_n (1, context));
|
||||
quote_n (1, context));
|
||||
}
|
||||
|
||||
/* List the valid arguments for argmatch.
|
||||
@@ -143,7 +143,7 @@ argmatch_invalid (const char *context, const char *value, ptrdiff_t problem)
|
||||
VALSIZE is the size of the elements of VALLIST */
|
||||
void
|
||||
argmatch_valid (const char *const *arglist,
|
||||
const char *vallist, size_t valsize)
|
||||
const char *vallist, size_t valsize)
|
||||
{
|
||||
size_t i;
|
||||
const char *last_val = NULL;
|
||||
@@ -153,14 +153,14 @@ argmatch_valid (const char *const *arglist,
|
||||
fprintf (stderr, _("Valid arguments are:"));
|
||||
for (i = 0; arglist[i]; i++)
|
||||
if ((i == 0)
|
||||
|| memcmp (last_val, vallist + valsize * i, valsize))
|
||||
|| memcmp (last_val, vallist + valsize * i, valsize))
|
||||
{
|
||||
fprintf (stderr, "\n - `%s'", arglist[i]);
|
||||
last_val = vallist + valsize * i;
|
||||
fprintf (stderr, "\n - `%s'", arglist[i]);
|
||||
last_val = vallist + valsize * i;
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf (stderr, ", `%s'", arglist[i]);
|
||||
fprintf (stderr, ", `%s'", arglist[i]);
|
||||
}
|
||||
putc ('\n', stderr);
|
||||
}
|
||||
@@ -173,9 +173,9 @@ argmatch_valid (const char *const *arglist,
|
||||
|
||||
ptrdiff_t
|
||||
__xargmatch_internal (const char *context,
|
||||
const char *arg, const char *const *arglist,
|
||||
const char *vallist, size_t valsize,
|
||||
argmatch_exit_fn exit_fn)
|
||||
const char *arg, const char *const *arglist,
|
||||
const char *vallist, size_t valsize,
|
||||
argmatch_exit_fn exit_fn)
|
||||
{
|
||||
ptrdiff_t res = argmatch (arg, arglist, vallist, valsize);
|
||||
if (res >= 0)
|
||||
@@ -194,8 +194,8 @@ __xargmatch_internal (const char *context,
|
||||
return the first corresponding argument in ARGLIST */
|
||||
const char *
|
||||
argmatch_to_argument (const char *value,
|
||||
const char *const *arglist,
|
||||
const char *vallist, size_t valsize)
|
||||
const char *const *arglist,
|
||||
const char *vallist, size_t valsize)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
@@ -263,14 +263,14 @@ main (int argc, const char *const *argv)
|
||||
|
||||
if ((cp = getenv ("VERSION_CONTROL")))
|
||||
backup_type = XARGMATCH ("$VERSION_CONTROL", cp,
|
||||
backup_args, backup_vals);
|
||||
backup_args, backup_vals);
|
||||
|
||||
if (argc == 2)
|
||||
backup_type = XARGMATCH (program_name, argv[1],
|
||||
backup_args, backup_vals);
|
||||
backup_args, backup_vals);
|
||||
|
||||
printf ("The version control is `%s'\n",
|
||||
ARGMATCH_TO_ARGUMENT (backup_type, backup_args, backup_vals));
|
||||
ARGMATCH_TO_ARGUMENT (backup_type, backup_args, backup_vals));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* argmatch.h -- definitions and prototypes for argmatch.c
|
||||
|
||||
Copyright (C) 1990, 1998, 1999, 2001, 2002, 2004, 2005 Free Software
|
||||
Foundation, Inc.
|
||||
Copyright (C) 1990, 1998, 1999, 2001, 2002, 2004, 2005, 2009, 2010 Free
|
||||
Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -40,7 +40,7 @@
|
||||
to the same values in VALLIST). */
|
||||
|
||||
ptrdiff_t argmatch (char const *arg, char const *const *arglist,
|
||||
char const *vallist, size_t valsize);
|
||||
char const *vallist, size_t valsize);
|
||||
|
||||
# define ARGMATCH(Arg, Arglist, Vallist) \
|
||||
argmatch (Arg, Arglist, (char const *) (Vallist), sizeof *(Vallist))
|
||||
@@ -54,7 +54,7 @@ extern argmatch_exit_fn argmatch_die;
|
||||
/* Report on stderr why argmatch failed. Report correct values. */
|
||||
|
||||
void argmatch_invalid (char const *context, char const *value,
|
||||
ptrdiff_t problem);
|
||||
ptrdiff_t problem);
|
||||
|
||||
/* Left for compatibility with the old name invalid_arg */
|
||||
|
||||
@@ -66,7 +66,7 @@ void argmatch_invalid (char const *context, char const *value,
|
||||
/* Report on stderr the list of possible arguments. */
|
||||
|
||||
void argmatch_valid (char const *const *arglist,
|
||||
char const *vallist, size_t valsize);
|
||||
char const *vallist, size_t valsize);
|
||||
|
||||
# define ARGMATCH_VALID(Arglist, Vallist) \
|
||||
argmatch_valid (Arglist, (char const *) (Vallist), sizeof *(Vallist))
|
||||
@@ -77,26 +77,26 @@ void argmatch_valid (char const *const *arglist,
|
||||
failure, and exits using the function EXIT_FN. */
|
||||
|
||||
ptrdiff_t __xargmatch_internal (char const *context,
|
||||
char const *arg, char const *const *arglist,
|
||||
char const *vallist, size_t valsize,
|
||||
argmatch_exit_fn exit_fn);
|
||||
char const *arg, char const *const *arglist,
|
||||
char const *vallist, size_t valsize,
|
||||
argmatch_exit_fn exit_fn);
|
||||
|
||||
/* Programmer friendly interface to __xargmatch_internal. */
|
||||
|
||||
# define XARGMATCH(Context, Arg, Arglist, Vallist) \
|
||||
((Vallist) [__xargmatch_internal (Context, Arg, Arglist, \
|
||||
(char const *) (Vallist), \
|
||||
sizeof *(Vallist), \
|
||||
argmatch_die)])
|
||||
# define XARGMATCH(Context, Arg, Arglist, Vallist) \
|
||||
((Vallist) [__xargmatch_internal (Context, Arg, Arglist, \
|
||||
(char const *) (Vallist), \
|
||||
sizeof *(Vallist), \
|
||||
argmatch_die)])
|
||||
|
||||
/* Convert a value into a corresponding argument. */
|
||||
|
||||
char const *argmatch_to_argument (char const *value,
|
||||
char const *const *arglist,
|
||||
char const *vallist, size_t valsize);
|
||||
char const *const *arglist,
|
||||
char const *vallist, size_t valsize);
|
||||
|
||||
# define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist) \
|
||||
argmatch_to_argument (Value, Arglist, \
|
||||
(char const *) (Vallist), sizeof *(Vallist))
|
||||
# define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist) \
|
||||
argmatch_to_argument (Value, Arglist, \
|
||||
(char const *) (Vallist), sizeof *(Vallist))
|
||||
|
||||
#endif /* ARGMATCH_H_ */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Iterate over arguments from argv or --files0-from=FILE
|
||||
Copyright (C) 2008-2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008-2010 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 @@
|
||||
/* Iterate over arguments from argv or --files0-from=FILE
|
||||
Copyright (C) 2008-2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008-2010 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,16 +17,12 @@
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
/* Definition of _GL_ARG_NONNULL. */
|
||||
#include "arg-nonnull.h"
|
||||
|
||||
struct argv_iterator;
|
||||
enum argv_iter_err;
|
||||
|
||||
#undef _ATTRIBUTE_NONNULL_
|
||||
#if __GNUC__ == 3 && __GNUC_MINOR__ >= 3 || 3 < __GNUC__
|
||||
# define _ATTRIBUTE_NONNULL_(m) __attribute__ ((__nonnull__ (m)))
|
||||
#else
|
||||
# define _ATTRIBUTE_NONNULL_(m)
|
||||
#endif
|
||||
|
||||
enum argv_iter_err
|
||||
{
|
||||
AI_ERR_OK = 1,
|
||||
@@ -36,12 +32,12 @@ enum argv_iter_err
|
||||
};
|
||||
|
||||
struct argv_iterator *argv_iter_init_argv (char **argv)
|
||||
_ATTRIBUTE_NONNULL_ (1);
|
||||
_GL_ARG_NONNULL ((1));
|
||||
struct argv_iterator *argv_iter_init_stream (FILE *fp)
|
||||
_ATTRIBUTE_NONNULL_ (1);
|
||||
_GL_ARG_NONNULL ((1));
|
||||
char *argv_iter (struct argv_iterator *, enum argv_iter_err *)
|
||||
_ATTRIBUTE_NONNULL_ (1) _ATTRIBUTE_NONNULL_ (2);
|
||||
_GL_ARG_NONNULL ((1, 2));
|
||||
size_t argv_iter_n_args (struct argv_iterator const *)
|
||||
_ATTRIBUTE_NONNULL_ (1);
|
||||
_GL_ARG_NONNULL ((1));
|
||||
void argv_iter_free (struct argv_iterator *)
|
||||
_ATTRIBUTE_NONNULL_ (1);
|
||||
_GL_ARG_NONNULL ((1));
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#line 1
|
||||
/* A GNU-like <arpa/inet.h>.
|
||||
|
||||
Copyright (C) 2005-2006, 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005-2006, 2008-2010 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,8 +22,11 @@
|
||||
#ifndef _GL_ARPA_INET_H
|
||||
|
||||
/* Gnulib's sys/socket.h is responsible for pulling in winsock2.h etc
|
||||
under MinGW. */
|
||||
#include <sys/socket.h>
|
||||
under MinGW.
|
||||
But avoid namespace pollution on glibc systems. */
|
||||
#ifndef __GLIBC__
|
||||
# include <sys/socket.h>
|
||||
#endif
|
||||
|
||||
#if @HAVE_ARPA_INET_H@
|
||||
|
||||
@@ -41,6 +44,8 @@
|
||||
|
||||
/* The definition of GL_LINK_WARNING is copied here. */
|
||||
|
||||
/* The definition of _GL_ARG_NONNULL is copied here. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -63,7 +68,8 @@ extern "C" {
|
||||
For more details, see the POSIX:2001 specification
|
||||
<http://www.opengroup.org/susv3xsh/inet_ntop.html>. */
|
||||
extern const char *inet_ntop (int af, const void *restrict src,
|
||||
char *restrict dst, socklen_t cnt);
|
||||
char *restrict dst, socklen_t cnt)
|
||||
_GL_ARG_NONNULL ((2, 3));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef inet_ntop
|
||||
@@ -75,13 +81,14 @@ extern const char *inet_ntop (int af, const void *restrict src,
|
||||
|
||||
#if @GNULIB_INET_PTON@
|
||||
# if !@HAVE_DECL_INET_PTON@
|
||||
extern int inet_pton (int af, const char *restrict src, void *restrict dst);
|
||||
extern int inet_pton (int af, const char *restrict src, void *restrict dst)
|
||||
_GL_ARG_NONNULL ((2, 3));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef inet_pton
|
||||
# define inet_pton(af,src,dst) \
|
||||
(GL_LINK_WARNING ("inet_pton is unportable - " \
|
||||
"use gnulib module inet_pton for portability"), \
|
||||
"use gnulib module inet_pton for portability"), \
|
||||
inet_pton (af, src, dst))
|
||||
#endif
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
#line 1
|
||||
/* Formatted output to strings.
|
||||
Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999, 2002, 2006, 2009, 2010 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
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
#line 1
|
||||
/* Formatted output to strings.
|
||||
Copyright (C) 1999, 2002, 2006-2007 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999, 2002, 2006-2007, 2009-2010 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 @@
|
||||
/* Define an at-style functions like fstatat, unlinkat, fchownat, etc.
|
||||
Copyright (C) 2006, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2006, 2009-2010 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
|
||||
@@ -16,16 +16,21 @@
|
||||
|
||||
/* written by Jim Meyering */
|
||||
|
||||
#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
|
||||
#include "openat.h"
|
||||
#include "openat-priv.h"
|
||||
#include "save-cwd.h"
|
||||
|
||||
#ifdef AT_FUNC_USE_F1_COND
|
||||
# define CALL_FUNC(F) \
|
||||
(flag == AT_FUNC_USE_F1_COND \
|
||||
? AT_FUNC_F1 (F AT_FUNC_POST_FILE_ARGS) \
|
||||
# define CALL_FUNC(F) \
|
||||
(flag == AT_FUNC_USE_F1_COND \
|
||||
? AT_FUNC_F1 (F AT_FUNC_POST_FILE_ARGS) \
|
||||
: AT_FUNC_F2 (F AT_FUNC_POST_FILE_ARGS))
|
||||
# define VALIDATE_FLAG(F) \
|
||||
if (flag & ~AT_FUNC_USE_F1_COND) \
|
||||
{ \
|
||||
errno = EINVAL; \
|
||||
return -1; \
|
||||
# define VALIDATE_FLAG(F) \
|
||||
if (flag & ~AT_FUNC_USE_F1_COND) \
|
||||
{ \
|
||||
errno = EINVAL; \
|
||||
return FUNC_FAIL; \
|
||||
}
|
||||
#else
|
||||
# define CALL_FUNC(F) (AT_FUNC_F1 (F AT_FUNC_POST_FILE_ARGS))
|
||||
@@ -38,11 +43,18 @@
|
||||
# define FUNC_RESULT int
|
||||
#endif
|
||||
|
||||
#ifdef AT_FUNC_FAIL
|
||||
# define FUNC_FAIL AT_FUNC_FAIL
|
||||
#else
|
||||
# define FUNC_FAIL -1
|
||||
#endif
|
||||
|
||||
/* Call AT_FUNC_F1 to operate on FILE, which is in the directory
|
||||
open on descriptor FD. If AT_FUNC_USE_F1_COND is defined to a value,
|
||||
AT_FUNC_POST_FILE_PARAM_DECLS must inlude a parameter named flag;
|
||||
call AT_FUNC_F2 if FLAG is 0 or fail if FLAG contains more bits than
|
||||
AT_FUNC_USE_F1_COND. If possible, do it without changing the
|
||||
AT_FUNC_USE_F1_COND. Return int and fail with -1 unless AT_FUNC_RESULT
|
||||
or AT_FUNC_FAIL are defined. If possible, do it without changing the
|
||||
working directory. Otherwise, resort to using save_cwd/fchdir,
|
||||
then AT_FUNC_F?/restore_cwd. If either the save_cwd or the restore_cwd
|
||||
fails, then give a diagnostic and exit nonzero. */
|
||||
@@ -65,36 +77,45 @@ AT_FUNC_NAME (int fd, char const *file AT_FUNC_POST_FILE_PARAM_DECLS)
|
||||
char *proc_file = openat_proc_name (proc_buf, fd, file);
|
||||
if (proc_file)
|
||||
{
|
||||
FUNC_RESULT proc_result = CALL_FUNC (proc_file);
|
||||
int proc_errno = errno;
|
||||
if (proc_file != proc_buf)
|
||||
free (proc_file);
|
||||
/* If the syscall succeeds, or if it fails with an unexpected
|
||||
errno value, then return right away. Otherwise, fall through
|
||||
and resort to using save_cwd/restore_cwd. */
|
||||
if (0 <= proc_result)
|
||||
return proc_result;
|
||||
if (! EXPECTED_ERRNO (proc_errno))
|
||||
{
|
||||
errno = proc_errno;
|
||||
return proc_result;
|
||||
}
|
||||
FUNC_RESULT proc_result = CALL_FUNC (proc_file);
|
||||
int proc_errno = errno;
|
||||
if (proc_file != proc_buf)
|
||||
free (proc_file);
|
||||
/* If the syscall succeeds, or if it fails with an unexpected
|
||||
errno value, then return right away. Otherwise, fall through
|
||||
and resort to using save_cwd/restore_cwd. */
|
||||
if (FUNC_FAIL != proc_result)
|
||||
return proc_result;
|
||||
if (! EXPECTED_ERRNO (proc_errno))
|
||||
{
|
||||
errno = proc_errno;
|
||||
return proc_result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (save_cwd (&saved_cwd) != 0)
|
||||
openat_save_fail (errno);
|
||||
if (0 <= fd && fd == saved_cwd.desc)
|
||||
{
|
||||
/* If saving the working directory collides with the user's
|
||||
requested fd, then the user's fd must have been closed to
|
||||
begin with. */
|
||||
free_cwd (&saved_cwd);
|
||||
errno = EBADF;
|
||||
return FUNC_FAIL;
|
||||
}
|
||||
|
||||
if (fchdir (fd) != 0)
|
||||
{
|
||||
saved_errno = errno;
|
||||
free_cwd (&saved_cwd);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
return FUNC_FAIL;
|
||||
}
|
||||
|
||||
err = CALL_FUNC (file);
|
||||
saved_errno = (err < 0 ? errno : 0);
|
||||
saved_errno = (err == FUNC_FAIL ? errno : 0);
|
||||
|
||||
if (restore_cwd (&saved_cwd) != 0)
|
||||
openat_restore_fail (errno);
|
||||
@@ -107,3 +128,4 @@ AT_FUNC_NAME (int fd, char const *file AT_FUNC_POST_FILE_PARAM_DECLS)
|
||||
}
|
||||
#undef CALL_FUNC
|
||||
#undef FUNC_RESULT
|
||||
#undef FUNC_FAIL
|
||||
|
||||
@@ -0,0 +1,282 @@
|
||||
/* Define an at-style functions like linkat or renameat.
|
||||
Copyright (C) 2006, 2009-2010 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 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, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* written by Jim Meyering and Eric Blake */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "openat-priv.h"
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
|
||||
#include "filenamecat.h"
|
||||
#include "openat.h"
|
||||
#include "same-inode.h"
|
||||
#include "save-cwd.h"
|
||||
|
||||
/* Call FUNC to operate on a pair of files, where FILE1 is relative to FD1,
|
||||
and FILE2 is relative to FD2. If possible, do it without changing the
|
||||
working directory. Otherwise, resort to using save_cwd/fchdir,
|
||||
FUNC, restore_cwd (up to two times). If either the save_cwd or the
|
||||
restore_cwd fails, then give a diagnostic and exit nonzero. */
|
||||
int
|
||||
at_func2 (int fd1, char const *file1,
|
||||
int fd2, char const *file2,
|
||||
int (*func) (char const *file1, char const *file2))
|
||||
{
|
||||
struct saved_cwd saved_cwd;
|
||||
int saved_errno;
|
||||
int err;
|
||||
char *file1_alt;
|
||||
char *file2_alt;
|
||||
struct stat st1;
|
||||
struct stat st2;
|
||||
|
||||
/* There are 16 possible scenarios, based on whether an fd is
|
||||
AT_FDCWD or real, and whether a file is absolute or relative:
|
||||
|
||||
fd1 file1 fd2 file2 action
|
||||
0 cwd abs cwd abs direct call
|
||||
1 cwd abs cwd rel direct call
|
||||
2 cwd abs fd abs direct call
|
||||
3 cwd abs fd rel chdir to fd2
|
||||
4 cwd rel cwd abs direct call
|
||||
5 cwd rel cwd rel direct call
|
||||
6 cwd rel fd abs direct call
|
||||
7 cwd rel fd rel convert file1 to abs, then case 3
|
||||
8 fd abs cwd abs direct call
|
||||
9 fd abs cwd rel direct call
|
||||
10 fd abs fd abs direct call
|
||||
11 fd abs fd rel chdir to fd2
|
||||
12 fd rel cwd abs chdir to fd1
|
||||
13 fd rel cwd rel convert file2 to abs, then case 12
|
||||
14 fd rel fd abs chdir to fd1
|
||||
15a fd1 rel fd1 rel chdir to fd1
|
||||
15b fd1 rel fd2 rel chdir to fd1, then case 7
|
||||
|
||||
Try some optimizations to reduce fd to AT_FDCWD, or to at least
|
||||
avoid converting an absolute name or doing a double chdir. */
|
||||
|
||||
if ((fd1 == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file1))
|
||||
&& (fd2 == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file2)))
|
||||
return func (file1, file2); /* Case 0-2, 4-6, 8-10. */
|
||||
|
||||
/* If /proc/self/fd works, we don't need any stat or chdir. */
|
||||
{
|
||||
char proc_buf1[OPENAT_BUFFER_SIZE];
|
||||
char *proc_file1 = ((fd1 == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file1))
|
||||
? (char *) file1
|
||||
: openat_proc_name (proc_buf1, fd1, file1));
|
||||
if (proc_file1)
|
||||
{
|
||||
char proc_buf2[OPENAT_BUFFER_SIZE];
|
||||
char *proc_file2 = ((fd2 == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file2))
|
||||
? (char *) file2
|
||||
: openat_proc_name (proc_buf2, fd2, file2));
|
||||
if (proc_file2)
|
||||
{
|
||||
int proc_result = func (proc_file1, proc_file2);
|
||||
int proc_errno = errno;
|
||||
if (proc_file1 != proc_buf1 && proc_file1 != file1)
|
||||
free (proc_file1);
|
||||
if (proc_file2 != proc_buf2 && proc_file2 != file2)
|
||||
free (proc_file2);
|
||||
/* If the syscall succeeds, or if it fails with an unexpected
|
||||
errno value, then return right away. Otherwise, fall through
|
||||
and resort to using save_cwd/restore_cwd. */
|
||||
if (0 <= proc_result)
|
||||
return proc_result;
|
||||
if (! EXPECTED_ERRNO (proc_errno))
|
||||
{
|
||||
errno = proc_errno;
|
||||
return proc_result;
|
||||
}
|
||||
}
|
||||
else if (proc_file1 != proc_buf1 && proc_file1 != file1)
|
||||
free (proc_file1);
|
||||
}
|
||||
}
|
||||
|
||||
/* Cases 3, 7, 11-15 remain. Time to normalize directory fds, if
|
||||
possible. */
|
||||
if (IS_ABSOLUTE_FILE_NAME (file1))
|
||||
fd1 = AT_FDCWD; /* Case 11 reduced to 3. */
|
||||
else if (IS_ABSOLUTE_FILE_NAME (file2))
|
||||
fd2 = AT_FDCWD; /* Case 14 reduced to 12. */
|
||||
|
||||
/* Cases 3, 7, 12, 13, 15 remain. */
|
||||
|
||||
if (fd1 == AT_FDCWD) /* Cases 3, 7. */
|
||||
{
|
||||
if (stat (".", &st1) == -1 || fstat (fd2, &st2) == -1)
|
||||
return -1;
|
||||
if (!S_ISDIR (st2.st_mode))
|
||||
{
|
||||
errno = ENOTDIR;
|
||||
return -1;
|
||||
}
|
||||
if (SAME_INODE (st1, st2)) /* Reduced to cases 1, 5. */
|
||||
return func (file1, file2);
|
||||
}
|
||||
else if (fd2 == AT_FDCWD) /* Cases 12, 13. */
|
||||
{
|
||||
if (stat (".", &st2) == -1 || fstat (fd1, &st1) == -1)
|
||||
return -1;
|
||||
if (!S_ISDIR (st1.st_mode))
|
||||
{
|
||||
errno = ENOTDIR;
|
||||
return -1;
|
||||
}
|
||||
if (SAME_INODE (st1, st2)) /* Reduced to cases 4, 5. */
|
||||
return func (file1, file2);
|
||||
}
|
||||
else if (fd1 != fd2) /* Case 15b. */
|
||||
{
|
||||
if (fstat (fd1, &st1) == -1 || fstat (fd2, &st2) == -1)
|
||||
return -1;
|
||||
if (!S_ISDIR (st1.st_mode) || !S_ISDIR (st2.st_mode))
|
||||
{
|
||||
errno = ENOTDIR;
|
||||
return -1;
|
||||
}
|
||||
if (SAME_INODE (st1, st2)) /* Reduced to case 15a. */
|
||||
{
|
||||
fd2 = fd1;
|
||||
if (stat (".", &st1) == 0 && SAME_INODE (st1, st2))
|
||||
return func (file1, file2); /* Further reduced to case 5. */
|
||||
}
|
||||
}
|
||||
else /* Case 15a. */
|
||||
{
|
||||
if (fstat (fd1, &st1) == -1)
|
||||
return -1;
|
||||
if (!S_ISDIR (st1.st_mode))
|
||||
{
|
||||
errno = ENOTDIR;
|
||||
return -1;
|
||||
}
|
||||
if (stat (".", &st2) == 0 && SAME_INODE (st1, st2))
|
||||
return func (file1, file2); /* Reduced to case 5. */
|
||||
}
|
||||
|
||||
/* Cases 3, 7, 12, 13, 15a, 15b remain. With all reductions in
|
||||
place, it is time to start changing directories. */
|
||||
|
||||
if (save_cwd (&saved_cwd) != 0)
|
||||
openat_save_fail (errno);
|
||||
|
||||
if (fd1 != AT_FDCWD && fd2 != AT_FDCWD && fd1 != fd2) /* Case 15b. */
|
||||
{
|
||||
if (fchdir (fd1) != 0)
|
||||
{
|
||||
saved_errno = errno;
|
||||
free_cwd (&saved_cwd);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
}
|
||||
fd1 = AT_FDCWD; /* Reduced to case 7. */
|
||||
}
|
||||
|
||||
/* Cases 3, 7, 12, 13, 15a remain. Convert one relative name to
|
||||
absolute, if necessary. */
|
||||
|
||||
file1_alt = (char *) file1;
|
||||
file2_alt = (char *) file2;
|
||||
|
||||
if (fd1 == AT_FDCWD && !IS_ABSOLUTE_FILE_NAME (file1)) /* Case 7. */
|
||||
{
|
||||
/* It would be nicer to use:
|
||||
file1_alt = file_name_concat (xgetcwd (), file1, NULL);
|
||||
but libraries should not call xalloc_die. */
|
||||
char *cwd = getcwd (NULL, 0);
|
||||
if (!cwd)
|
||||
{
|
||||
saved_errno = errno;
|
||||
free_cwd (&saved_cwd);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
}
|
||||
file1_alt = mfile_name_concat (cwd, file1, NULL);
|
||||
if (!file1_alt)
|
||||
{
|
||||
saved_errno = errno;
|
||||
free (cwd);
|
||||
free_cwd (&saved_cwd);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
}
|
||||
free (cwd); /* Reduced to case 3. */
|
||||
}
|
||||
else if (fd2 == AT_FDCWD && !IS_ABSOLUTE_FILE_NAME (file2)) /* Case 13. */
|
||||
{
|
||||
char *cwd = getcwd (NULL, 0);
|
||||
if (!cwd)
|
||||
{
|
||||
saved_errno = errno;
|
||||
free_cwd (&saved_cwd);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
}
|
||||
file2_alt = mfile_name_concat (cwd, file2, NULL);
|
||||
if (!file2_alt)
|
||||
{
|
||||
saved_errno = errno;
|
||||
free (cwd);
|
||||
free_cwd (&saved_cwd);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
}
|
||||
free (cwd); /* Reduced to case 12. */
|
||||
}
|
||||
|
||||
/* Cases 3, 12, 15a remain. Change to the correct directory. */
|
||||
if (fchdir (fd1 == AT_FDCWD ? fd2 : fd1) != 0)
|
||||
{
|
||||
saved_errno = errno;
|
||||
free_cwd (&saved_cwd);
|
||||
if (file1 != file1_alt)
|
||||
free (file1_alt);
|
||||
else if (file2 != file2_alt)
|
||||
free (file2_alt);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Finally safe to perform the user's function, then clean up. */
|
||||
|
||||
err = func (file1_alt, file2_alt);
|
||||
saved_errno = (err < 0 ? errno : 0);
|
||||
|
||||
if (file1 != file1_alt)
|
||||
free (file1_alt);
|
||||
else if (file2 != file2_alt)
|
||||
free (file2_alt);
|
||||
|
||||
if (restore_cwd (&saved_cwd) != 0)
|
||||
openat_restore_fail (errno);
|
||||
|
||||
free_cwd (&saved_cwd);
|
||||
|
||||
if (saved_errno)
|
||||
errno = saved_errno;
|
||||
return err;
|
||||
}
|
||||
#undef CALL_FUNC
|
||||
#undef FUNC_RESULT
|
||||
@@ -1,8 +1,6 @@
|
||||
/* backupfile.c -- make Emacs style backup file names
|
||||
|
||||
Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 Free Software
|
||||
Foundation, Inc.
|
||||
Copyright (C) 1990-2006, 2009-2010 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
|
||||
@@ -103,18 +101,18 @@ check_extension (char *file, size_t filelen, char e)
|
||||
long name_max;
|
||||
|
||||
/* Temporarily modify the buffer into its parent directory name,
|
||||
invoke pathconf on the directory, and then restore the buffer. */
|
||||
invoke pathconf on the directory, and then restore the buffer. */
|
||||
char tmp[sizeof "."];
|
||||
memcpy (tmp, base, sizeof ".");
|
||||
strcpy (base, ".");
|
||||
errno = 0;
|
||||
name_max = pathconf (file, _PC_NAME_MAX);
|
||||
if (0 <= name_max || errno == 0)
|
||||
{
|
||||
long size = baselen_max = name_max;
|
||||
if (name_max != size)
|
||||
baselen_max = SIZE_MAX;
|
||||
}
|
||||
{
|
||||
long size = baselen_max = name_max;
|
||||
if (name_max != size)
|
||||
baselen_max = SIZE_MAX;
|
||||
}
|
||||
memcpy (base, tmp, sizeof ".");
|
||||
}
|
||||
|
||||
@@ -123,21 +121,21 @@ check_extension (char *file, size_t filelen, char e)
|
||||
/* Live within DOS's 8.3 limit. */
|
||||
char *dot = strchr (base, '.');
|
||||
if (!dot)
|
||||
baselen_max = 8;
|
||||
baselen_max = 8;
|
||||
else
|
||||
{
|
||||
char const *second_dot = strchr (dot + 1, '.');
|
||||
baselen_max = (second_dot
|
||||
? second_dot - base
|
||||
: dot + 1 - base + 3);
|
||||
}
|
||||
{
|
||||
char const *second_dot = strchr (dot + 1, '.');
|
||||
baselen_max = (second_dot
|
||||
? second_dot - base
|
||||
: dot + 1 - base + 3);
|
||||
}
|
||||
}
|
||||
|
||||
if (baselen_max < baselen)
|
||||
{
|
||||
baselen = file + filelen - base;
|
||||
if (baselen_max <= baselen)
|
||||
baselen = baselen_max - 1;
|
||||
baselen = baselen_max - 1;
|
||||
base[baselen] = e;
|
||||
base[baselen + 1] = '\0';
|
||||
}
|
||||
@@ -203,41 +201,41 @@ numbered_backup (char **buffer, size_t buffer_size, size_t filelen)
|
||||
size_t new_buflen;
|
||||
|
||||
if (! REAL_DIR_ENTRY (dp) || _D_EXACT_NAMLEN (dp) < baselen + 4)
|
||||
continue;
|
||||
continue;
|
||||
|
||||
if (memcmp (buf + base_offset, dp->d_name, baselen + 2) != 0)
|
||||
continue;
|
||||
continue;
|
||||
|
||||
p = dp->d_name + baselen + 2;
|
||||
|
||||
/* Check whether this file has a version number and if so,
|
||||
whether it is larger. Use string operations rather than
|
||||
integer arithmetic, to avoid problems with integer overflow. */
|
||||
whether it is larger. Use string operations rather than
|
||||
integer arithmetic, to avoid problems with integer overflow. */
|
||||
|
||||
if (! ('1' <= *p && *p <= '9'))
|
||||
continue;
|
||||
continue;
|
||||
all_9s = (*p == '9');
|
||||
for (versionlen = 1; ISDIGIT (p[versionlen]); versionlen++)
|
||||
all_9s &= (p[versionlen] == '9');
|
||||
all_9s &= (p[versionlen] == '9');
|
||||
|
||||
if (! (p[versionlen] == '~' && !p[versionlen + 1]
|
||||
&& (versionlenmax < versionlen
|
||||
|| (versionlenmax == versionlen
|
||||
&& memcmp (buf + filelen + 2, p, versionlen) <= 0))))
|
||||
continue;
|
||||
&& (versionlenmax < versionlen
|
||||
|| (versionlenmax == versionlen
|
||||
&& memcmp (buf + filelen + 2, p, versionlen) <= 0))))
|
||||
continue;
|
||||
|
||||
/* This directory has the largest version number seen so far.
|
||||
Append this highest numbered extension to the file name,
|
||||
prepending '0' to the number if it is all 9s. */
|
||||
Append this highest numbered extension to the file name,
|
||||
prepending '0' to the number if it is all 9s. */
|
||||
|
||||
versionlenmax = all_9s + versionlen;
|
||||
result = (all_9s ? BACKUP_IS_LONGER : BACKUP_IS_SAME_LENGTH);
|
||||
new_buflen = filelen + 2 + versionlenmax + 1;
|
||||
if (buffer_size <= new_buflen)
|
||||
{
|
||||
buf = xnrealloc (buf, 2, new_buflen);
|
||||
buffer_size = new_buflen * 2;
|
||||
}
|
||||
{
|
||||
buf = xnrealloc (buf, 2, new_buflen);
|
||||
buffer_size = new_buflen * 2;
|
||||
}
|
||||
q = buf + filelen;
|
||||
*q++ = '.';
|
||||
*q++ = '~';
|
||||
@@ -249,7 +247,7 @@ numbered_backup (char **buffer, size_t buffer_size, size_t filelen)
|
||||
|
||||
q += versionlen;
|
||||
while (*--q == '9')
|
||||
*q = '0';
|
||||
*q = '0';
|
||||
++*q;
|
||||
}
|
||||
|
||||
@@ -286,15 +284,15 @@ find_backup_file_name (char const *file, enum backup_type backup_type)
|
||||
switch (numbered_backup (&s, ssize, filelen))
|
||||
{
|
||||
case BACKUP_IS_SAME_LENGTH:
|
||||
return s;
|
||||
return s;
|
||||
|
||||
case BACKUP_IS_LONGER:
|
||||
simple = false;
|
||||
break;
|
||||
simple = false;
|
||||
break;
|
||||
|
||||
case BACKUP_IS_NEW:
|
||||
simple = (backup_type == numbered_existing_backups);
|
||||
break;
|
||||
simple = (backup_type == numbered_existing_backups);
|
||||
break;
|
||||
}
|
||||
|
||||
if (simple)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* backupfile.h -- declarations for making Emacs style backup file names
|
||||
|
||||
Copyright (C) 1990, 1991, 1992, 1997, 1998, 1999, 2003, 2004 Free
|
||||
Software Foundation, Inc.
|
||||
Copyright (C) 1990-1992, 1997-1999, 2003-2004, 2009-2010 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
|
||||
@@ -41,7 +41,7 @@ enum backup_type
|
||||
numbered_backups
|
||||
};
|
||||
|
||||
# define VALID_BACKUP_TYPE(Type) \
|
||||
# define VALID_BACKUP_TYPE(Type) \
|
||||
((unsigned int) (Type) <= numbered_backups)
|
||||
|
||||
extern char const *simple_backup_suffix;
|
||||
|
||||
+164
-164
@@ -2,7 +2,7 @@
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
#line 1
|
||||
/* 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, 2009, 2010 Free Software
|
||||
Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -70,7 +70,7 @@ to_uchar (char ch)
|
||||
terminate the output buffer. */
|
||||
void
|
||||
base64_encode (const char *restrict in, size_t inlen,
|
||||
char *restrict out, size_t outlen)
|
||||
char *restrict out, size_t outlen)
|
||||
{
|
||||
static const char b64str[64] =
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
@@ -79,27 +79,27 @@ base64_encode (const char *restrict in, size_t inlen,
|
||||
{
|
||||
*out++ = b64str[(to_uchar (in[0]) >> 2) & 0x3f];
|
||||
if (!--outlen)
|
||||
break;
|
||||
break;
|
||||
*out++ = b64str[((to_uchar (in[0]) << 4)
|
||||
+ (--inlen ? to_uchar (in[1]) >> 4 : 0))
|
||||
& 0x3f];
|
||||
+ (--inlen ? to_uchar (in[1]) >> 4 : 0))
|
||||
& 0x3f];
|
||||
if (!--outlen)
|
||||
break;
|
||||
break;
|
||||
*out++ =
|
||||
(inlen
|
||||
? b64str[((to_uchar (in[1]) << 2)
|
||||
+ (--inlen ? to_uchar (in[2]) >> 6 : 0))
|
||||
& 0x3f]
|
||||
: '=');
|
||||
(inlen
|
||||
? b64str[((to_uchar (in[1]) << 2)
|
||||
+ (--inlen ? to_uchar (in[2]) >> 6 : 0))
|
||||
& 0x3f]
|
||||
: '=');
|
||||
if (!--outlen)
|
||||
break;
|
||||
break;
|
||||
*out++ = inlen ? b64str[to_uchar (in[2]) & 0x3f] : '=';
|
||||
if (!--outlen)
|
||||
break;
|
||||
break;
|
||||
if (inlen)
|
||||
inlen--;
|
||||
inlen--;
|
||||
if (inlen)
|
||||
in += 3;
|
||||
in += 3;
|
||||
}
|
||||
|
||||
if (outlen)
|
||||
@@ -156,71 +156,71 @@ base64_encode_alloc (const char *in, size_t inlen, char **out)
|
||||
|
||||
IBM C V6 for AIX mishandles "#define B64(x) ...'x'...", so use "_"
|
||||
as the formal parameter rather than "x". */
|
||||
#define B64(_) \
|
||||
((_) == 'A' ? 0 \
|
||||
: (_) == 'B' ? 1 \
|
||||
: (_) == 'C' ? 2 \
|
||||
: (_) == 'D' ? 3 \
|
||||
: (_) == 'E' ? 4 \
|
||||
: (_) == 'F' ? 5 \
|
||||
: (_) == 'G' ? 6 \
|
||||
: (_) == 'H' ? 7 \
|
||||
: (_) == 'I' ? 8 \
|
||||
: (_) == 'J' ? 9 \
|
||||
: (_) == 'K' ? 10 \
|
||||
: (_) == 'L' ? 11 \
|
||||
: (_) == 'M' ? 12 \
|
||||
: (_) == 'N' ? 13 \
|
||||
: (_) == 'O' ? 14 \
|
||||
: (_) == 'P' ? 15 \
|
||||
: (_) == 'Q' ? 16 \
|
||||
: (_) == 'R' ? 17 \
|
||||
: (_) == 'S' ? 18 \
|
||||
: (_) == 'T' ? 19 \
|
||||
: (_) == 'U' ? 20 \
|
||||
: (_) == 'V' ? 21 \
|
||||
: (_) == 'W' ? 22 \
|
||||
: (_) == 'X' ? 23 \
|
||||
: (_) == 'Y' ? 24 \
|
||||
: (_) == 'Z' ? 25 \
|
||||
: (_) == 'a' ? 26 \
|
||||
: (_) == 'b' ? 27 \
|
||||
: (_) == 'c' ? 28 \
|
||||
: (_) == 'd' ? 29 \
|
||||
: (_) == 'e' ? 30 \
|
||||
: (_) == 'f' ? 31 \
|
||||
: (_) == 'g' ? 32 \
|
||||
: (_) == 'h' ? 33 \
|
||||
: (_) == 'i' ? 34 \
|
||||
: (_) == 'j' ? 35 \
|
||||
: (_) == 'k' ? 36 \
|
||||
: (_) == 'l' ? 37 \
|
||||
: (_) == 'm' ? 38 \
|
||||
: (_) == 'n' ? 39 \
|
||||
: (_) == 'o' ? 40 \
|
||||
: (_) == 'p' ? 41 \
|
||||
: (_) == 'q' ? 42 \
|
||||
: (_) == 'r' ? 43 \
|
||||
: (_) == 's' ? 44 \
|
||||
: (_) == 't' ? 45 \
|
||||
: (_) == 'u' ? 46 \
|
||||
: (_) == 'v' ? 47 \
|
||||
: (_) == 'w' ? 48 \
|
||||
: (_) == 'x' ? 49 \
|
||||
: (_) == 'y' ? 50 \
|
||||
: (_) == 'z' ? 51 \
|
||||
: (_) == '0' ? 52 \
|
||||
: (_) == '1' ? 53 \
|
||||
: (_) == '2' ? 54 \
|
||||
: (_) == '3' ? 55 \
|
||||
: (_) == '4' ? 56 \
|
||||
: (_) == '5' ? 57 \
|
||||
: (_) == '6' ? 58 \
|
||||
: (_) == '7' ? 59 \
|
||||
: (_) == '8' ? 60 \
|
||||
: (_) == '9' ? 61 \
|
||||
: (_) == '+' ? 62 \
|
||||
: (_) == '/' ? 63 \
|
||||
#define B64(_) \
|
||||
((_) == 'A' ? 0 \
|
||||
: (_) == 'B' ? 1 \
|
||||
: (_) == 'C' ? 2 \
|
||||
: (_) == 'D' ? 3 \
|
||||
: (_) == 'E' ? 4 \
|
||||
: (_) == 'F' ? 5 \
|
||||
: (_) == 'G' ? 6 \
|
||||
: (_) == 'H' ? 7 \
|
||||
: (_) == 'I' ? 8 \
|
||||
: (_) == 'J' ? 9 \
|
||||
: (_) == 'K' ? 10 \
|
||||
: (_) == 'L' ? 11 \
|
||||
: (_) == 'M' ? 12 \
|
||||
: (_) == 'N' ? 13 \
|
||||
: (_) == 'O' ? 14 \
|
||||
: (_) == 'P' ? 15 \
|
||||
: (_) == 'Q' ? 16 \
|
||||
: (_) == 'R' ? 17 \
|
||||
: (_) == 'S' ? 18 \
|
||||
: (_) == 'T' ? 19 \
|
||||
: (_) == 'U' ? 20 \
|
||||
: (_) == 'V' ? 21 \
|
||||
: (_) == 'W' ? 22 \
|
||||
: (_) == 'X' ? 23 \
|
||||
: (_) == 'Y' ? 24 \
|
||||
: (_) == 'Z' ? 25 \
|
||||
: (_) == 'a' ? 26 \
|
||||
: (_) == 'b' ? 27 \
|
||||
: (_) == 'c' ? 28 \
|
||||
: (_) == 'd' ? 29 \
|
||||
: (_) == 'e' ? 30 \
|
||||
: (_) == 'f' ? 31 \
|
||||
: (_) == 'g' ? 32 \
|
||||
: (_) == 'h' ? 33 \
|
||||
: (_) == 'i' ? 34 \
|
||||
: (_) == 'j' ? 35 \
|
||||
: (_) == 'k' ? 36 \
|
||||
: (_) == 'l' ? 37 \
|
||||
: (_) == 'm' ? 38 \
|
||||
: (_) == 'n' ? 39 \
|
||||
: (_) == 'o' ? 40 \
|
||||
: (_) == 'p' ? 41 \
|
||||
: (_) == 'q' ? 42 \
|
||||
: (_) == 'r' ? 43 \
|
||||
: (_) == 's' ? 44 \
|
||||
: (_) == 't' ? 45 \
|
||||
: (_) == 'u' ? 46 \
|
||||
: (_) == 'v' ? 47 \
|
||||
: (_) == 'w' ? 48 \
|
||||
: (_) == 'x' ? 49 \
|
||||
: (_) == 'y' ? 50 \
|
||||
: (_) == 'z' ? 51 \
|
||||
: (_) == '0' ? 52 \
|
||||
: (_) == '1' ? 53 \
|
||||
: (_) == '2' ? 54 \
|
||||
: (_) == '3' ? 55 \
|
||||
: (_) == '4' ? 56 \
|
||||
: (_) == '5' ? 57 \
|
||||
: (_) == '6' ? 58 \
|
||||
: (_) == '7' ? 59 \
|
||||
: (_) == '8' ? 60 \
|
||||
: (_) == '9' ? 61 \
|
||||
: (_) == '+' ? 62 \
|
||||
: (_) == '/' ? 63 \
|
||||
: -1)
|
||||
|
||||
static const signed char b64[0x100] = {
|
||||
@@ -331,12 +331,12 @@ get_4 (struct base64_decode_context *ctx,
|
||||
{
|
||||
char const *t = *in;
|
||||
if (4 <= in_end - *in && memchr (t, '\n', 4) == NULL)
|
||||
{
|
||||
/* This is the common case: no newline. */
|
||||
*in += 4;
|
||||
*n_non_newline = 4;
|
||||
return (char *) t;
|
||||
}
|
||||
{
|
||||
/* This is the common case: no newline. */
|
||||
*in += 4;
|
||||
*n_non_newline = 4;
|
||||
return (char *) t;
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
@@ -344,13 +344,13 @@ get_4 (struct base64_decode_context *ctx,
|
||||
char const *p = *in;
|
||||
while (p < in_end)
|
||||
{
|
||||
char c = *p++;
|
||||
if (c != '\n')
|
||||
{
|
||||
ctx->buf[ctx->i++] = c;
|
||||
if (ctx->i == 4)
|
||||
break;
|
||||
}
|
||||
char c = *p++;
|
||||
if (c != '\n')
|
||||
{
|
||||
ctx->buf[ctx->i++] = c;
|
||||
if (ctx->i == 4)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
*in = p;
|
||||
@@ -359,12 +359,12 @@ get_4 (struct base64_decode_context *ctx,
|
||||
}
|
||||
}
|
||||
|
||||
#define return_false \
|
||||
do \
|
||||
{ \
|
||||
*outp = out; \
|
||||
return false; \
|
||||
} \
|
||||
#define return_false \
|
||||
do \
|
||||
{ \
|
||||
*outp = out; \
|
||||
return false; \
|
||||
} \
|
||||
while (false)
|
||||
|
||||
/* Decode up to four bytes of base64-encoded data, IN, of length INLEN
|
||||
@@ -375,7 +375,7 @@ get_4 (struct base64_decode_context *ctx,
|
||||
*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 *restrict *outp, size_t *outleft)
|
||||
{
|
||||
char *out = *outp;
|
||||
if (inlen < 2)
|
||||
@@ -387,7 +387,7 @@ decode_4 (char const *restrict in, size_t inlen,
|
||||
if (*outleft)
|
||||
{
|
||||
*out++ = ((b64[to_uchar (in[0])] << 2)
|
||||
| (b64[to_uchar (in[1])] >> 4));
|
||||
| (b64[to_uchar (in[1])] >> 4));
|
||||
--*outleft;
|
||||
}
|
||||
|
||||
@@ -397,43 +397,43 @@ decode_4 (char const *restrict in, size_t inlen,
|
||||
if (in[2] == '=')
|
||||
{
|
||||
if (inlen != 4)
|
||||
return_false;
|
||||
return_false;
|
||||
|
||||
if (in[3] != '=')
|
||||
return_false;
|
||||
return_false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isbase64 (in[2]))
|
||||
return_false;
|
||||
return_false;
|
||||
|
||||
if (*outleft)
|
||||
{
|
||||
*out++ = (((b64[to_uchar (in[1])] << 4) & 0xf0)
|
||||
| (b64[to_uchar (in[2])] >> 2));
|
||||
--*outleft;
|
||||
}
|
||||
{
|
||||
*out++ = (((b64[to_uchar (in[1])] << 4) & 0xf0)
|
||||
| (b64[to_uchar (in[2])] >> 2));
|
||||
--*outleft;
|
||||
}
|
||||
|
||||
if (inlen == 3)
|
||||
return_false;
|
||||
return_false;
|
||||
|
||||
if (in[3] == '=')
|
||||
{
|
||||
if (inlen != 4)
|
||||
return_false;
|
||||
}
|
||||
{
|
||||
if (inlen != 4)
|
||||
return_false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isbase64 (in[3]))
|
||||
return_false;
|
||||
{
|
||||
if (!isbase64 (in[3]))
|
||||
return_false;
|
||||
|
||||
if (*outleft)
|
||||
{
|
||||
*out++ = (((b64[to_uchar (in[2])] << 6) & 0xc0)
|
||||
| b64[to_uchar (in[3])]);
|
||||
--*outleft;
|
||||
}
|
||||
}
|
||||
if (*outleft)
|
||||
{
|
||||
*out++ = (((b64[to_uchar (in[2])] << 6) & 0xc0)
|
||||
| b64[to_uchar (in[3])]);
|
||||
--*outleft;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*outp = out;
|
||||
@@ -460,8 +460,8 @@ decode_4 (char const *restrict in, size_t inlen,
|
||||
|
||||
bool
|
||||
base64_decode_ctx (struct base64_decode_context *ctx,
|
||||
const char *restrict in, size_t inlen,
|
||||
char *restrict out, size_t *outlen)
|
||||
const char *restrict in, size_t inlen,
|
||||
char *restrict out, size_t *outlen)
|
||||
{
|
||||
size_t outleft = *outlen;
|
||||
bool ignore_newlines = ctx != NULL;
|
||||
@@ -479,57 +479,57 @@ base64_decode_ctx (struct base64_decode_context *ctx,
|
||||
{
|
||||
size_t outleft_save = outleft;
|
||||
if (ctx_i == 0 && !flush_ctx)
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
/* 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;
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
/* 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;
|
||||
|
||||
in += 4;
|
||||
inlen -= 4;
|
||||
}
|
||||
}
|
||||
in += 4;
|
||||
inlen -= 4;
|
||||
}
|
||||
}
|
||||
|
||||
if (inlen == 0 && !flush_ctx)
|
||||
break;
|
||||
break;
|
||||
|
||||
/* Handle the common case of 72-byte wrapped lines.
|
||||
This also handles any other multiple-of-4-byte wrapping. */
|
||||
This also handles any other multiple-of-4-byte wrapping. */
|
||||
if (inlen && *in == '\n' && ignore_newlines)
|
||||
{
|
||||
++in;
|
||||
--inlen;
|
||||
continue;
|
||||
}
|
||||
{
|
||||
++in;
|
||||
--inlen;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Restore OUT and OUTLEFT. */
|
||||
out -= outleft_save - outleft;
|
||||
outleft = outleft_save;
|
||||
|
||||
{
|
||||
char const *in_end = in + inlen;
|
||||
char const *non_nl;
|
||||
char const *in_end = in + inlen;
|
||||
char const *non_nl;
|
||||
|
||||
if (ignore_newlines)
|
||||
non_nl = get_4 (ctx, &in, in_end, &inlen);
|
||||
else
|
||||
non_nl = in; /* Might have nl in this case. */
|
||||
if (ignore_newlines)
|
||||
non_nl = get_4 (ctx, &in, in_end, &inlen);
|
||||
else
|
||||
non_nl = in; /* Might have nl in this case. */
|
||||
|
||||
/* 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 and not treating newlines as garbage. */
|
||||
if (inlen == 0 || (inlen < 4 && !flush_ctx && ignore_newlines))
|
||||
{
|
||||
inlen = 0;
|
||||
break;
|
||||
}
|
||||
if (!decode_4 (non_nl, inlen, &out, &outleft))
|
||||
break;
|
||||
/* 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 and not treating newlines as garbage. */
|
||||
if (inlen == 0 || (inlen < 4 && !flush_ctx && ignore_newlines))
|
||||
{
|
||||
inlen = 0;
|
||||
break;
|
||||
}
|
||||
if (!decode_4 (non_nl, inlen, &out, &outleft))
|
||||
break;
|
||||
|
||||
inlen = in_end - in;
|
||||
inlen = in_end - in;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -551,8 +551,8 @@ base64_decode_ctx (struct base64_decode_context *ctx,
|
||||
undefined. */
|
||||
bool
|
||||
base64_decode_alloc_ctx (struct base64_decode_context *ctx,
|
||||
const char *in, size_t inlen, char **out,
|
||||
size_t *outlen)
|
||||
const char *in, size_t inlen, char **out,
|
||||
size_t *outlen)
|
||||
{
|
||||
/* 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.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
#line 1
|
||||
/* base64.h -- Encode binary data using printable characters.
|
||||
Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 2004, 2005, 2006, 2009, 2010 Free Software Foundation, Inc.
|
||||
Written by Simon Josefsson.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -41,24 +41,24 @@ struct base64_decode_context
|
||||
extern bool isbase64 (char ch);
|
||||
|
||||
extern void base64_encode (const char *restrict in, size_t inlen,
|
||||
char *restrict out, size_t outlen);
|
||||
char *restrict out, size_t outlen);
|
||||
|
||||
extern size_t base64_encode_alloc (const char *in, size_t inlen, char **out);
|
||||
|
||||
extern void base64_decode_ctx_init (struct base64_decode_context *ctx);
|
||||
|
||||
extern bool base64_decode_ctx (struct base64_decode_context *ctx,
|
||||
const char *restrict in, size_t inlen,
|
||||
char *restrict out, size_t *outlen);
|
||||
const char *restrict in, size_t inlen,
|
||||
char *restrict out, size_t *outlen);
|
||||
|
||||
extern bool base64_decode_alloc_ctx (struct base64_decode_context *ctx,
|
||||
const char *in, size_t inlen,
|
||||
char **out, size_t *outlen);
|
||||
const char *in, size_t inlen,
|
||||
char **out, size_t *outlen);
|
||||
|
||||
#define base64_decode(in, inlen, out, outlen) \
|
||||
base64_decode_ctx (NULL, in, inlen, out, outlen)
|
||||
base64_decode_ctx (NULL, in, inlen, out, outlen)
|
||||
|
||||
#define base64_decode_alloc(in, inlen, out, outlen) \
|
||||
base64_decode_alloc_ctx (NULL, in, inlen, out, outlen)
|
||||
base64_decode_alloc_ctx (NULL, in, inlen, out, outlen)
|
||||
|
||||
#endif /* BASE64_H */
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
/* basename.c -- return the last element in a file name
|
||||
|
||||
Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2010 Free Software
|
||||
Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 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, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "dirname.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
/* Return the address of the last file name component of NAME. If
|
||||
NAME has no relative file name components because it is a file
|
||||
system root, return the empty string. */
|
||||
|
||||
char *
|
||||
last_component (char const *name)
|
||||
{
|
||||
char const *base = name + FILE_SYSTEM_PREFIX_LEN (name);
|
||||
char const *p;
|
||||
bool saw_slash = false;
|
||||
|
||||
while (ISSLASH (*base))
|
||||
base++;
|
||||
|
||||
for (p = base; *p; p++)
|
||||
{
|
||||
if (ISSLASH (*p))
|
||||
saw_slash = true;
|
||||
else if (saw_slash)
|
||||
{
|
||||
base = p;
|
||||
saw_slash = false;
|
||||
}
|
||||
}
|
||||
|
||||
return (char *) base;
|
||||
}
|
||||
|
||||
/* Return the length of the basename NAME. Typically NAME is the
|
||||
value returned by base_name or last_component. Act like strlen
|
||||
(NAME), except omit all trailing slashes. */
|
||||
|
||||
size_t
|
||||
base_len (char const *name)
|
||||
{
|
||||
size_t len;
|
||||
size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name);
|
||||
|
||||
for (len = strlen (name); 1 < len && ISSLASH (name[len - 1]); len--)
|
||||
continue;
|
||||
|
||||
if (DOUBLE_SLASH_IS_DISTINCT_ROOT && len == 1
|
||||
&& ISSLASH (name[0]) && ISSLASH (name[1]) && ! name[2])
|
||||
return 2;
|
||||
|
||||
if (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && prefix_len
|
||||
&& len == prefix_len && ISSLASH (name[prefix_len]))
|
||||
return prefix_len + 1;
|
||||
|
||||
return len;
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
/* basename.c -- return the last element in a file name
|
||||
|
||||
Copyright (C) 1990, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006 Free
|
||||
Software Foundation, Inc.
|
||||
Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2010 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
|
||||
@@ -24,52 +24,6 @@
|
||||
#include "xalloc.h"
|
||||
#include "xstrndup.h"
|
||||
|
||||
/* Return the address of the last file name component of NAME. If
|
||||
NAME has no relative file name components because it is a file
|
||||
system root, return the empty string. */
|
||||
|
||||
char *
|
||||
last_component (char const *name)
|
||||
{
|
||||
char const *base = name + FILE_SYSTEM_PREFIX_LEN (name);
|
||||
char const *p;
|
||||
bool saw_slash = false;
|
||||
|
||||
while (ISSLASH (*base))
|
||||
base++;
|
||||
|
||||
for (p = base; *p; p++)
|
||||
{
|
||||
if (ISSLASH (*p))
|
||||
saw_slash = true;
|
||||
else if (saw_slash)
|
||||
{
|
||||
base = p;
|
||||
saw_slash = false;
|
||||
}
|
||||
}
|
||||
|
||||
return (char *) base;
|
||||
}
|
||||
|
||||
|
||||
/* In general, we can't use the builtin `basename' function if available,
|
||||
since it has different meanings in different environments.
|
||||
In some environments the builtin `basename' modifies its argument.
|
||||
|
||||
Return the last file name component of NAME, allocated with
|
||||
xmalloc. On systems with drive letters, a leading "./"
|
||||
distinguishes relative names that would otherwise look like a drive
|
||||
letter. Unlike POSIX basename(), NAME cannot be NULL,
|
||||
base_name("") returns "", and the first trailing slash is not
|
||||
stripped.
|
||||
|
||||
If lstat (NAME) would succeed, then { chdir (dir_name (NAME));
|
||||
lstat (base_name (NAME)); } will access the same file. Likewise,
|
||||
if the sequence { chdir (dir_name (NAME));
|
||||
rename (base_name (NAME), "foo"); } succeeds, you have renamed NAME
|
||||
to "foo" in the same directory NAME was in. */
|
||||
|
||||
char *
|
||||
base_name (char const *name)
|
||||
{
|
||||
@@ -102,27 +56,3 @@ base_name (char const *name)
|
||||
/* Finally, copy the basename. */
|
||||
return xstrndup (base, length);
|
||||
}
|
||||
|
||||
/* Return the length of the basename NAME. Typically NAME is the
|
||||
value returned by base_name or last_component. Act like strlen
|
||||
(NAME), except omit all trailing slashes. */
|
||||
|
||||
size_t
|
||||
base_len (char const *name)
|
||||
{
|
||||
size_t len;
|
||||
size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name);
|
||||
|
||||
for (len = strlen (name); 1 < len && ISSLASH (name[len - 1]); len--)
|
||||
continue;
|
||||
|
||||
if (DOUBLE_SLASH_IS_DISTINCT_ROOT && len == 1
|
||||
&& ISSLASH (name[0]) && ISSLASH (name[1]) && ! name[2])
|
||||
return 2;
|
||||
|
||||
if (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && prefix_len
|
||||
&& len == prefix_len && ISSLASH (name[prefix_len]))
|
||||
return prefix_len + 1;
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* bitrotate.h - Rotate bits in integers
|
||||
Copyright (C) 2008, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008, 2009, 2010 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 @@
|
||||
/* Convert unibyte character to wide character.
|
||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||
Written by Bruno Haible <bruno@clisp.org>, 2008.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
@@ -32,7 +32,7 @@ btowc (int c)
|
||||
|
||||
buf[0] = c;
|
||||
if (mbtowc (&wc, buf, 1) >= 0)
|
||||
return wc;
|
||||
return wc;
|
||||
}
|
||||
return WEOF;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* buffer-lcm.c - compute a good buffer size for dealing with two files
|
||||
|
||||
Copyright (C) 2002, 2005, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002, 2005, 2009-2010 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
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#line 1
|
||||
/* Character handling in C locale.
|
||||
|
||||
Copyright 2000-2003, 2006 Free Software Foundation, Inc.
|
||||
Copyright 2000-2003, 2006, 2009-2010 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
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<ctype.h> functions' behaviour depends on the current locale set via
|
||||
setlocale.
|
||||
|
||||
Copyright (C) 2000-2003, 2006, 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2000-2003, 2006, 2008-2010 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
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
#line 1
|
||||
/* Case-insensitive string comparison functions in C locale.
|
||||
Copyright (C) 1995-1996, 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2010 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
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
#line 1
|
||||
/* c-strcasecmp.c -- case insensitive string comparator in C locale
|
||||
Copyright (C) 1998-1999, 2005-2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998-1999, 2005-2006, 2009-2010 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
|
||||
@@ -43,7 +43,7 @@ c_strcasecmp (const char *s1, const char *s2)
|
||||
c2 = c_tolower (*p2);
|
||||
|
||||
if (c1 == '\0')
|
||||
break;
|
||||
break;
|
||||
|
||||
++p1;
|
||||
++p2;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
#line 1
|
||||
/* c-strncasecmp.c -- case insensitive string comparator in C locale
|
||||
Copyright (C) 1998-1999, 2005-2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998-1999, 2005-2006, 2009-2010 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
|
||||
@@ -43,7 +43,7 @@ c_strncasecmp (const char *s1, const char *s2, size_t n)
|
||||
c2 = c_tolower (*p2);
|
||||
|
||||
if (--n == 0 || c1 == '\0')
|
||||
break;
|
||||
break;
|
||||
|
||||
++p1;
|
||||
++p2;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Convert string to double, using the C locale.
|
||||
|
||||
Copyright (C) 2003, 2004, 2006, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2003-2004, 2006, 2009-2010 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,7 +73,7 @@ C_STRTOD (char const *nptr, char **endptr)
|
||||
if (!locale)
|
||||
{
|
||||
if (endptr)
|
||||
*endptr = (char *) nptr;
|
||||
*endptr = (char *) nptr;
|
||||
return 0; /* errno is set here */
|
||||
}
|
||||
|
||||
@@ -87,11 +87,11 @@ C_STRTOD (char const *nptr, char **endptr)
|
||||
{
|
||||
saved_locale = strdup (saved_locale);
|
||||
if (saved_locale == NULL)
|
||||
{
|
||||
if (endptr)
|
||||
*endptr = (char *) nptr;
|
||||
return 0; /* errno is set here */
|
||||
}
|
||||
{
|
||||
if (endptr)
|
||||
*endptr = (char *) nptr;
|
||||
return 0; /* errno is set here */
|
||||
}
|
||||
setlocale (LC_NUMERIC, "C");
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Convert string to double, using the C locale.
|
||||
|
||||
Copyright (C) 2003-2004, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2003-2004, 2009-2010 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,6 +1,6 @@
|
||||
/* calloc() function that is glibc compatible.
|
||||
This wrapper function is required at least on Tru64 UNIX 5.1 and mingw.
|
||||
Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
||||
Copyright (C) 2004-2007, 2009-2010 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
|
||||
@@ -49,13 +49,13 @@ rpl_calloc (size_t n, size_t s)
|
||||
else
|
||||
{
|
||||
/* Defend against buggy calloc implementations that mishandle
|
||||
size_t overflow. */
|
||||
size_t overflow. */
|
||||
size_t bytes = n * s;
|
||||
if (bytes / s != n)
|
||||
{
|
||||
errno = ENOMEM;
|
||||
return NULL;
|
||||
}
|
||||
{
|
||||
errno = ENOMEM;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Host name canonicalization
|
||||
|
||||
Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005-2010 Free Software Foundation, Inc.
|
||||
|
||||
Written by Derek Price <derek@ximbiot.com>.
|
||||
|
||||
@@ -69,11 +69,11 @@ canon_host_r (char const *host, int *cherror)
|
||||
if (!status)
|
||||
{
|
||||
/* http://lists.gnu.org/archive/html/bug-coreutils/2006-09/msg00300.html
|
||||
says Darwin 7.9.0 getaddrinfo returns 0 but sets
|
||||
res->ai_canonname to NULL. */
|
||||
says Darwin 7.9.0 getaddrinfo returns 0 but sets
|
||||
res->ai_canonname to NULL. */
|
||||
retval = strdup (res->ai_canonname ? res->ai_canonname : host);
|
||||
if (!retval && cherror)
|
||||
*cherror = EAI_MEMORY;
|
||||
*cherror = EAI_MEMORY;
|
||||
freeaddrinfo (res);
|
||||
}
|
||||
else if (cherror)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Host name canonicalization
|
||||
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005, 2009-2010 Free Software Foundation, Inc.
|
||||
|
||||
Written by Derek Price <derek@ximbiot.com>
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Return the canonical absolute name of a given file.
|
||||
Copyright (C) 1996-2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996-2010 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
|
||||
@@ -18,34 +18,25 @@
|
||||
|
||||
#include "canonicalize.h"
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#if HAVE_SYS_PARAM_H
|
||||
# include <sys/param.h>
|
||||
#endif
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <stddef.h>
|
||||
|
||||
#include "areadlink.h"
|
||||
#include "file-set.h"
|
||||
#include "filenamecat.h"
|
||||
#include "hash-triple.h"
|
||||
#include "pathmax.h"
|
||||
#include "xalloc.h"
|
||||
#include "xgetcwd.h"
|
||||
|
||||
#ifndef __set_errno
|
||||
# define __set_errno(Val) errno = (Val)
|
||||
#ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT
|
||||
# define DOUBLE_SLASH_IS_DISTINCT_ROOT 0
|
||||
#endif
|
||||
|
||||
#include "pathmax.h"
|
||||
#include "areadlink.h"
|
||||
|
||||
#if !(HAVE_CANONICALIZE_FILE_NAME || GNULIB_CANONICALIZE_LGPL)
|
||||
#if !((HAVE_CANONICALIZE_FILE_NAME && FUNC_REALPATH_WORKS) \
|
||||
|| GNULIB_CANONICALIZE_LGPL)
|
||||
/* Return the canonical absolute name of file NAME. A canonical name
|
||||
does not contain any `.', `..' components nor any repeated file name
|
||||
separators ('/') or symlinks. All components must exist.
|
||||
@@ -54,68 +45,7 @@
|
||||
char *
|
||||
canonicalize_file_name (const char *name)
|
||||
{
|
||||
# if HAVE_RESOLVEPATH
|
||||
|
||||
char *resolved, *extra_buf = NULL;
|
||||
size_t resolved_size;
|
||||
ssize_t resolved_len;
|
||||
|
||||
if (name == NULL)
|
||||
{
|
||||
__set_errno (EINVAL);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (name[0] == '\0')
|
||||
{
|
||||
__set_errno (ENOENT);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* All known hosts with resolvepath (e.g. Solaris 7) don't turn
|
||||
relative names into absolute ones, so prepend the working
|
||||
directory if the file name is not absolute. */
|
||||
if (name[0] != '/')
|
||||
{
|
||||
char *wd;
|
||||
|
||||
if (!(wd = xgetcwd ()))
|
||||
return NULL;
|
||||
|
||||
extra_buf = file_name_concat (wd, name, NULL);
|
||||
name = extra_buf;
|
||||
free (wd);
|
||||
}
|
||||
|
||||
resolved_size = strlen (name);
|
||||
while (1)
|
||||
{
|
||||
resolved_size = 2 * resolved_size + 1;
|
||||
resolved = xmalloc (resolved_size);
|
||||
resolved_len = resolvepath (name, resolved, resolved_size);
|
||||
if (resolved_len < 0)
|
||||
{
|
||||
free (resolved);
|
||||
free (extra_buf);
|
||||
return NULL;
|
||||
}
|
||||
if (resolved_len < resolved_size)
|
||||
break;
|
||||
free (resolved);
|
||||
}
|
||||
|
||||
free (extra_buf);
|
||||
|
||||
/* NUL-terminate the resulting name. */
|
||||
resolved[resolved_len] = '\0';
|
||||
|
||||
return resolved;
|
||||
|
||||
# else
|
||||
|
||||
return canonicalize_filename_mode (name, CAN_EXISTING);
|
||||
|
||||
# endif /* !HAVE_RESOLVEPATH */
|
||||
}
|
||||
#endif /* !HAVE_CANONICALIZE_FILE_NAME */
|
||||
|
||||
@@ -128,12 +58,12 @@ seen_triple (Hash_table **ht, char const *filename, struct stat const *st)
|
||||
{
|
||||
size_t initial_capacity = 7;
|
||||
*ht = hash_initialize (initial_capacity,
|
||||
NULL,
|
||||
triple_hash,
|
||||
triple_compare_ino_str,
|
||||
triple_free);
|
||||
NULL,
|
||||
triple_hash,
|
||||
triple_compare_ino_str,
|
||||
triple_free);
|
||||
if (*ht == NULL)
|
||||
xalloc_die ();
|
||||
xalloc_die ();
|
||||
}
|
||||
|
||||
if (seen_file (*ht, filename, st))
|
||||
@@ -143,7 +73,8 @@ seen_triple (Hash_table **ht, char const *filename, struct stat const *st)
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Return the canonical absolute name of file NAME. A canonical name
|
||||
/* Return the canonical absolute name of file NAME, while treating
|
||||
missing elements according to CAN_MODE. A canonical name
|
||||
does not contain any `.', `..' components nor any repeated file name
|
||||
separators ('/') or symlinks. Whether components must exist
|
||||
or not depends on canonicalize mode. The result is malloc'd. */
|
||||
@@ -157,16 +88,17 @@ canonicalize_filename_mode (const char *name, canonicalize_mode_t can_mode)
|
||||
char const *rname_limit;
|
||||
size_t extra_len = 0;
|
||||
Hash_table *ht = NULL;
|
||||
int saved_errno;
|
||||
|
||||
if (name == NULL)
|
||||
{
|
||||
__set_errno (EINVAL);
|
||||
errno = EINVAL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (name[0] == '\0')
|
||||
{
|
||||
__set_errno (ENOENT);
|
||||
errno = ENOENT;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -174,19 +106,19 @@ canonicalize_filename_mode (const char *name, canonicalize_mode_t can_mode)
|
||||
{
|
||||
rname = xgetcwd ();
|
||||
if (!rname)
|
||||
return NULL;
|
||||
return NULL;
|
||||
dest = strchr (rname, '\0');
|
||||
if (dest - rname < PATH_MAX)
|
||||
{
|
||||
char *p = xrealloc (rname, PATH_MAX);
|
||||
dest = p + (dest - rname);
|
||||
rname = p;
|
||||
rname_limit = rname + PATH_MAX;
|
||||
}
|
||||
{
|
||||
char *p = xrealloc (rname, PATH_MAX);
|
||||
dest = p + (dest - rname);
|
||||
rname = p;
|
||||
rname_limit = rname + PATH_MAX;
|
||||
}
|
||||
else
|
||||
{
|
||||
rname_limit = dest;
|
||||
}
|
||||
{
|
||||
rname_limit = dest;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -194,131 +126,154 @@ canonicalize_filename_mode (const char *name, canonicalize_mode_t can_mode)
|
||||
rname_limit = rname + PATH_MAX;
|
||||
rname[0] = '/';
|
||||
dest = rname + 1;
|
||||
if (DOUBLE_SLASH_IS_DISTINCT_ROOT && name[1] == '/')
|
||||
*dest++ = '/';
|
||||
}
|
||||
|
||||
for (start = name; *start; start = end)
|
||||
{
|
||||
/* Skip sequence of multiple file name separators. */
|
||||
while (*start == '/')
|
||||
++start;
|
||||
++start;
|
||||
|
||||
/* Find end of component. */
|
||||
for (end = start; *end && *end != '/'; ++end)
|
||||
/* Nothing. */;
|
||||
/* Nothing. */;
|
||||
|
||||
if (end - start == 0)
|
||||
break;
|
||||
break;
|
||||
else if (end - start == 1 && start[0] == '.')
|
||||
/* nothing */;
|
||||
/* nothing */;
|
||||
else if (end - start == 2 && start[0] == '.' && start[1] == '.')
|
||||
{
|
||||
/* Back up to previous component, ignore if at root already. */
|
||||
if (dest > rname + 1)
|
||||
while ((--dest)[-1] != '/');
|
||||
}
|
||||
{
|
||||
/* Back up to previous component, ignore if at root already. */
|
||||
if (dest > rname + 1)
|
||||
while ((--dest)[-1] != '/');
|
||||
if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rname + 1
|
||||
&& *dest == '/')
|
||||
dest++;
|
||||
}
|
||||
else
|
||||
{
|
||||
struct stat st;
|
||||
{
|
||||
struct stat st;
|
||||
|
||||
if (dest[-1] != '/')
|
||||
*dest++ = '/';
|
||||
if (dest[-1] != '/')
|
||||
*dest++ = '/';
|
||||
|
||||
if (dest + (end - start) >= rname_limit)
|
||||
{
|
||||
ptrdiff_t dest_offset = dest - rname;
|
||||
size_t new_size = rname_limit - rname;
|
||||
if (dest + (end - start) >= rname_limit)
|
||||
{
|
||||
ptrdiff_t dest_offset = dest - rname;
|
||||
size_t new_size = rname_limit - rname;
|
||||
|
||||
if (end - start + 1 > PATH_MAX)
|
||||
new_size += end - start + 1;
|
||||
else
|
||||
new_size += PATH_MAX;
|
||||
rname = xrealloc (rname, new_size);
|
||||
rname_limit = rname + new_size;
|
||||
if (end - start + 1 > PATH_MAX)
|
||||
new_size += end - start + 1;
|
||||
else
|
||||
new_size += PATH_MAX;
|
||||
rname = xrealloc (rname, new_size);
|
||||
rname_limit = rname + new_size;
|
||||
|
||||
dest = rname + dest_offset;
|
||||
}
|
||||
dest = rname + dest_offset;
|
||||
}
|
||||
|
||||
dest = memcpy (dest, start, end - start);
|
||||
dest += end - start;
|
||||
*dest = '\0';
|
||||
dest = memcpy (dest, start, end - start);
|
||||
dest += end - start;
|
||||
*dest = '\0';
|
||||
|
||||
if (lstat (rname, &st) != 0)
|
||||
{
|
||||
if (can_mode == CAN_EXISTING)
|
||||
goto error;
|
||||
if (can_mode == CAN_ALL_BUT_LAST && *end)
|
||||
goto error;
|
||||
st.st_mode = 0;
|
||||
}
|
||||
if (lstat (rname, &st) != 0)
|
||||
{
|
||||
saved_errno = errno;
|
||||
if (can_mode == CAN_EXISTING)
|
||||
goto error;
|
||||
if (can_mode == CAN_ALL_BUT_LAST)
|
||||
{
|
||||
if (end[strspn (end, "/")] || saved_errno != ENOENT)
|
||||
goto error;
|
||||
continue;
|
||||
}
|
||||
st.st_mode = 0;
|
||||
}
|
||||
|
||||
if (S_ISLNK (st.st_mode))
|
||||
{
|
||||
char *buf;
|
||||
size_t n, len;
|
||||
if (S_ISLNK (st.st_mode))
|
||||
{
|
||||
char *buf;
|
||||
size_t n, len;
|
||||
|
||||
/* Detect loops. We cannot use the cycle-check module here,
|
||||
since it's actually possible to encounter the same symlink
|
||||
more than once in a given traversal. However, encountering
|
||||
the same symlink,NAME pair twice does indicate a loop. */
|
||||
if (seen_triple (&ht, name, &st))
|
||||
{
|
||||
__set_errno (ELOOP);
|
||||
if (can_mode == CAN_MISSING)
|
||||
continue;
|
||||
else
|
||||
goto error;
|
||||
}
|
||||
/* Detect loops. We cannot use the cycle-check module here,
|
||||
since it's actually possible to encounter the same symlink
|
||||
more than once in a given traversal. However, encountering
|
||||
the same symlink,NAME pair twice does indicate a loop. */
|
||||
if (seen_triple (&ht, name, &st))
|
||||
{
|
||||
if (can_mode == CAN_MISSING)
|
||||
continue;
|
||||
saved_errno = ELOOP;
|
||||
goto error;
|
||||
}
|
||||
|
||||
buf = areadlink_with_size (rname, st.st_size);
|
||||
if (!buf)
|
||||
{
|
||||
if (can_mode == CAN_MISSING && errno != ENOMEM)
|
||||
continue;
|
||||
else
|
||||
goto error;
|
||||
}
|
||||
buf = areadlink_with_size (rname, st.st_size);
|
||||
if (!buf)
|
||||
{
|
||||
if (can_mode == CAN_MISSING && errno != ENOMEM)
|
||||
continue;
|
||||
saved_errno = errno;
|
||||
goto error;
|
||||
}
|
||||
|
||||
n = strlen (buf);
|
||||
len = strlen (end);
|
||||
n = strlen (buf);
|
||||
len = strlen (end);
|
||||
|
||||
if (!extra_len)
|
||||
{
|
||||
extra_len =
|
||||
((n + len + 1) > PATH_MAX) ? (n + len + 1) : PATH_MAX;
|
||||
extra_buf = xmalloc (extra_len);
|
||||
}
|
||||
else if ((n + len + 1) > extra_len)
|
||||
{
|
||||
extra_len = n + len + 1;
|
||||
extra_buf = xrealloc (extra_buf, extra_len);
|
||||
}
|
||||
if (!extra_len)
|
||||
{
|
||||
extra_len =
|
||||
((n + len + 1) > PATH_MAX) ? (n + len + 1) : PATH_MAX;
|
||||
extra_buf = xmalloc (extra_len);
|
||||
}
|
||||
else if ((n + len + 1) > extra_len)
|
||||
{
|
||||
extra_len = n + len + 1;
|
||||
extra_buf = xrealloc (extra_buf, extra_len);
|
||||
}
|
||||
|
||||
/* Careful here, end may be a pointer into extra_buf... */
|
||||
memmove (&extra_buf[n], end, len + 1);
|
||||
name = end = memcpy (extra_buf, buf, n);
|
||||
/* Careful here, end may be a pointer into extra_buf... */
|
||||
memmove (&extra_buf[n], end, len + 1);
|
||||
name = end = memcpy (extra_buf, buf, n);
|
||||
|
||||
if (buf[0] == '/')
|
||||
dest = rname + 1; /* It's an absolute symlink */
|
||||
else
|
||||
/* Back up to previous component, ignore if at root already: */
|
||||
if (dest > rname + 1)
|
||||
while ((--dest)[-1] != '/');
|
||||
if (buf[0] == '/')
|
||||
{
|
||||
dest = rname + 1; /* It's an absolute symlink */
|
||||
if (DOUBLE_SLASH_IS_DISTINCT_ROOT && buf[1] == '/')
|
||||
*dest++ = '/';
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Back up to previous component, ignore if at root
|
||||
already: */
|
||||
if (dest > rname + 1)
|
||||
while ((--dest)[-1] != '/');
|
||||
if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rname + 1
|
||||
&& *dest == '/')
|
||||
dest++;
|
||||
}
|
||||
|
||||
free (buf);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!S_ISDIR (st.st_mode) && *end && (can_mode != CAN_MISSING))
|
||||
{
|
||||
errno = ENOTDIR;
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
}
|
||||
free (buf);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!S_ISDIR (st.st_mode) && *end && (can_mode != CAN_MISSING))
|
||||
{
|
||||
saved_errno = ENOTDIR;
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (dest > rname + 1 && dest[-1] == '/')
|
||||
--dest;
|
||||
if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rname + 1 && *dest == '/')
|
||||
dest++;
|
||||
*dest = '\0';
|
||||
if (rname_limit != dest + 1)
|
||||
rname = xrealloc (rname, dest - rname + 1);
|
||||
|
||||
free (extra_buf);
|
||||
if (ht)
|
||||
@@ -330,5 +285,6 @@ error:
|
||||
free (rname);
|
||||
if (ht)
|
||||
hash_free (ht);
|
||||
errno = saved_errno;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Return the canonical absolute name of a given file.
|
||||
Copyright (C) 1996-2007 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996-2007, 2009-2010 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,7 +17,8 @@
|
||||
#ifndef CANONICALIZE_H_
|
||||
# define CANONICALIZE_H_
|
||||
|
||||
# if GNULIB_CANONICALIZE
|
||||
#include <stdlib.h> /* for canonicalize_file_name */
|
||||
|
||||
enum canonicalize_mode_t
|
||||
{
|
||||
/* All components must exist. */
|
||||
@@ -36,17 +37,5 @@ typedef enum canonicalize_mode_t canonicalize_mode_t;
|
||||
whether components must exist depends on the canonicalize_mode_t
|
||||
argument. */
|
||||
char *canonicalize_filename_mode (const char *, canonicalize_mode_t);
|
||||
# endif
|
||||
|
||||
# if HAVE_DECL_CANONICALIZE_FILE_NAME
|
||||
# include <stdlib.h>
|
||||
# else
|
||||
/* Return a malloc'd string containing the canonical absolute name of
|
||||
the named file. If any file name component does not exist or is a
|
||||
symlink to a nonexistent file, return NULL. A canonical name does
|
||||
not contain any `.', `..' components nor any repeated file name
|
||||
separators ('/') or symlinks. */
|
||||
char *canonicalize_file_name (const char *);
|
||||
# endif
|
||||
|
||||
#endif /* !CANONICALIZE_H_ */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* provide a chdir function that tries not to fail due to ENAMETOOLONG
|
||||
Copyright (C) 2004-2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2004-2010 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,19 +20,23 @@
|
||||
|
||||
#include "chdir-long.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "fcntl--.h"
|
||||
|
||||
#ifndef PATH_MAX
|
||||
# error "compile this file only if your system defines PATH_MAX"
|
||||
#endif
|
||||
|
||||
/* The results of openat() in this file are not leaked to any
|
||||
single-threaded code that could use stdio.
|
||||
FIXME - if the kernel ever adds support for multi-thread safety for
|
||||
avoiding standard fds, then we should use openat_safer. */
|
||||
|
||||
struct cd_buf
|
||||
{
|
||||
int fd;
|
||||
@@ -68,7 +72,7 @@ static int
|
||||
cdb_advance_fd (struct cd_buf *cdb, char const *dir)
|
||||
{
|
||||
int new_fd = openat (cdb->fd, dir,
|
||||
O_RDONLY | O_DIRECTORY | O_NOCTTY | O_NONBLOCK);
|
||||
O_RDONLY | O_DIRECTORY | O_NOCTTY | O_NONBLOCK);
|
||||
if (new_fd < 0)
|
||||
return -1;
|
||||
|
||||
@@ -131,27 +135,27 @@ chdir_long (char *dir)
|
||||
code in the following loop cleaner. */
|
||||
if (n_leading_slash == 2)
|
||||
{
|
||||
int err;
|
||||
/* Find next slash.
|
||||
We already know that dir[2] is neither a slash nor '\0'. */
|
||||
char *slash = memchr (dir + 3, '/', dir_end - (dir + 3));
|
||||
if (slash == NULL)
|
||||
{
|
||||
errno = ENAMETOOLONG;
|
||||
return -1;
|
||||
}
|
||||
*slash = '\0';
|
||||
err = cdb_advance_fd (&cdb, dir);
|
||||
*slash = '/';
|
||||
if (err != 0)
|
||||
goto Fail;
|
||||
dir = find_non_slash (slash + 1);
|
||||
int err;
|
||||
/* Find next slash.
|
||||
We already know that dir[2] is neither a slash nor '\0'. */
|
||||
char *slash = memchr (dir + 3, '/', dir_end - (dir + 3));
|
||||
if (slash == NULL)
|
||||
{
|
||||
errno = ENAMETOOLONG;
|
||||
return -1;
|
||||
}
|
||||
*slash = '\0';
|
||||
err = cdb_advance_fd (&cdb, dir);
|
||||
*slash = '/';
|
||||
if (err != 0)
|
||||
goto Fail;
|
||||
dir = find_non_slash (slash + 1);
|
||||
}
|
||||
else if (n_leading_slash)
|
||||
{
|
||||
if (cdb_advance_fd (&cdb, "/") != 0)
|
||||
goto Fail;
|
||||
dir += n_leading_slash;
|
||||
if (cdb_advance_fd (&cdb, "/") != 0)
|
||||
goto Fail;
|
||||
dir += n_leading_slash;
|
||||
}
|
||||
|
||||
assert (*dir != '/');
|
||||
@@ -159,31 +163,31 @@ chdir_long (char *dir)
|
||||
|
||||
while (PATH_MAX <= dir_end - dir)
|
||||
{
|
||||
int err;
|
||||
/* Find a slash that is PATH_MAX or fewer bytes away from dir.
|
||||
I.e. see if there is a slash that will give us a name of
|
||||
length PATH_MAX-1 or less. */
|
||||
char *slash = memrchr (dir, '/', PATH_MAX);
|
||||
if (slash == NULL)
|
||||
{
|
||||
errno = ENAMETOOLONG;
|
||||
return -1;
|
||||
}
|
||||
int err;
|
||||
/* Find a slash that is PATH_MAX or fewer bytes away from dir.
|
||||
I.e. see if there is a slash that will give us a name of
|
||||
length PATH_MAX-1 or less. */
|
||||
char *slash = memrchr (dir, '/', PATH_MAX);
|
||||
if (slash == NULL)
|
||||
{
|
||||
errno = ENAMETOOLONG;
|
||||
return -1;
|
||||
}
|
||||
|
||||
*slash = '\0';
|
||||
assert (slash - dir < PATH_MAX);
|
||||
err = cdb_advance_fd (&cdb, dir);
|
||||
*slash = '/';
|
||||
if (err != 0)
|
||||
goto Fail;
|
||||
*slash = '\0';
|
||||
assert (slash - dir < PATH_MAX);
|
||||
err = cdb_advance_fd (&cdb, dir);
|
||||
*slash = '/';
|
||||
if (err != 0)
|
||||
goto Fail;
|
||||
|
||||
dir = find_non_slash (slash + 1);
|
||||
dir = find_non_slash (slash + 1);
|
||||
}
|
||||
|
||||
if (dir < dir_end)
|
||||
{
|
||||
if (cdb_advance_fd (&cdb, dir) != 0)
|
||||
goto Fail;
|
||||
if (cdb_advance_fd (&cdb, dir) != 0)
|
||||
goto Fail;
|
||||
}
|
||||
|
||||
if (cdb_fchdir (&cdb) != 0)
|
||||
@@ -224,10 +228,10 @@ main (int argc, char *argv[])
|
||||
{
|
||||
int saved_errno = errno;
|
||||
if (feof (stdin))
|
||||
exit (0);
|
||||
exit (0);
|
||||
|
||||
error (EXIT_FAILURE, saved_errno,
|
||||
"reading standard input");
|
||||
"reading standard input");
|
||||
}
|
||||
else if (len == 0)
|
||||
exit (0);
|
||||
@@ -237,12 +241,12 @@ main (int argc, char *argv[])
|
||||
|
||||
if (chdir_long (line) != 0)
|
||||
error (EXIT_FAILURE, errno,
|
||||
"chdir_long failed: %s", line);
|
||||
"chdir_long failed: %s", line);
|
||||
|
||||
if (argc <= 1)
|
||||
{
|
||||
/* Using `pwd' here makes sense only if it is a robust implementation,
|
||||
like the one in coreutils after the 2004-04-19 changes. */
|
||||
like the one in coreutils after the 2004-04-19 changes. */
|
||||
char const *cmd = "pwd";
|
||||
execlp (cmd, (char *) NULL);
|
||||
error (EXIT_FAILURE, errno, "%s", cmd);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* provide a chdir function that tries not to fail due to ENAMETOOLONG
|
||||
Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 2004-2005, 2009-2010 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,7 +20,7 @@
|
||||
#include <limits.h>
|
||||
|
||||
#ifndef PATH_MAX
|
||||
# ifdef MAXPATHLEN
|
||||
# ifdef MAXPATHLEN
|
||||
# define PATH_MAX MAXPATHLEN
|
||||
# endif
|
||||
#endif
|
||||
|
||||
@@ -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-2007, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997, 2004-2007, 2009-2010 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,19 +23,32 @@
|
||||
/* Specification. */
|
||||
#include <unistd.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#if !HAVE_CHOWN
|
||||
|
||||
/* Simple stub that always fails with ENOSYS, for mingw. */
|
||||
int
|
||||
chown (const char *file _GL_UNUSED, uid_t uid _GL_UNUSED,
|
||||
gid_t gid _GL_UNUSED)
|
||||
{
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
}
|
||||
|
||||
#else /* HAVE_CHOWN */
|
||||
|
||||
/* Below we refer to the system's chown(). */
|
||||
#undef 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
|
||||
# undef open
|
||||
# undef close
|
||||
|
||||
/* Provide a more-closely POSIX-conforming version of chown on
|
||||
systems with one or both of the following problems:
|
||||
@@ -46,21 +59,29 @@
|
||||
int
|
||||
rpl_chown (const char *file, uid_t uid, gid_t gid)
|
||||
{
|
||||
#if HAVE_CHOWN
|
||||
struct stat st;
|
||||
bool stat_valid = false;
|
||||
int result;
|
||||
|
||||
# if CHOWN_CHANGE_TIME_BUG
|
||||
if (gid != (gid_t) -1 || uid != (uid_t) -1)
|
||||
{
|
||||
if (stat (file, &st))
|
||||
return -1;
|
||||
stat_valid = true;
|
||||
}
|
||||
# endif
|
||||
|
||||
# if CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE
|
||||
if (gid == (gid_t) -1 || uid == (uid_t) -1)
|
||||
{
|
||||
struct stat file_stats;
|
||||
|
||||
/* Stat file to get id(s) that should remain unchanged. */
|
||||
if (stat (file, &file_stats))
|
||||
return -1;
|
||||
|
||||
if (!stat_valid && stat (file, &st))
|
||||
return -1;
|
||||
if (gid == (gid_t) -1)
|
||||
gid = file_stats.st_gid;
|
||||
|
||||
gid = st.st_gid;
|
||||
if (uid == (uid_t) -1)
|
||||
uid = file_stats.st_uid;
|
||||
uid = st.st_uid;
|
||||
}
|
||||
# endif
|
||||
|
||||
@@ -74,36 +95,62 @@ rpl_chown (const char *file, uid_t uid, gid_t gid)
|
||||
int open_flags = O_NONBLOCK | O_NOCTTY;
|
||||
int fd = open (file, O_RDONLY | open_flags);
|
||||
if (0 <= fd
|
||||
|| (errno == EACCES
|
||||
&& 0 <= (fd = open (file, O_WRONLY | open_flags))))
|
||||
|| (errno == EACCES
|
||||
&& 0 <= (fd = open (file, O_WRONLY | open_flags))))
|
||||
{
|
||||
int result = fchown (fd, uid, gid);
|
||||
int saved_errno = errno;
|
||||
int saved_errno;
|
||||
bool fchown_socket_failure;
|
||||
|
||||
/* POSIX says fchown can fail with errno == EINVAL on sockets,
|
||||
so fall back on chown in that case. */
|
||||
struct stat sb;
|
||||
bool fchown_socket_failure =
|
||||
(result != 0 && saved_errno == EINVAL
|
||||
&& fstat (fd, &sb) == 0 && S_ISFIFO (sb.st_mode));
|
||||
result = fchown (fd, uid, gid);
|
||||
saved_errno = errno;
|
||||
|
||||
close (fd);
|
||||
/* POSIX says fchown can fail with errno == EINVAL on sockets
|
||||
and pipes, so fall back on chown in that case. */
|
||||
fchown_socket_failure =
|
||||
(result != 0 && saved_errno == EINVAL
|
||||
&& fstat (fd, &st) == 0
|
||||
&& (S_ISFIFO (st.st_mode) || S_ISSOCK (st.st_mode)));
|
||||
|
||||
if (! fchown_socket_failure)
|
||||
{
|
||||
errno = saved_errno;
|
||||
return result;
|
||||
}
|
||||
close (fd);
|
||||
|
||||
if (! fchown_socket_failure)
|
||||
{
|
||||
errno = saved_errno;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
else if (errno != EACCES)
|
||||
return -1;
|
||||
}
|
||||
# endif
|
||||
|
||||
return chown (file, uid, gid);
|
||||
# if CHOWN_TRAILING_SLASH_BUG
|
||||
if (!stat_valid)
|
||||
{
|
||||
size_t len = strlen (file);
|
||||
if (len && file[len - 1] == '/' && stat (file, &st))
|
||||
return -1;
|
||||
}
|
||||
# endif
|
||||
|
||||
#else /* !HAVE_CHOWN */
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
#endif
|
||||
result = chown (file, uid, gid);
|
||||
|
||||
# if CHOWN_CHANGE_TIME_BUG
|
||||
if (result == 0 && stat_valid
|
||||
&& (uid == st.st_uid || uid == (uid_t) -1)
|
||||
&& (gid == st.st_gid || gid == (gid_t) -1))
|
||||
{
|
||||
/* No change in ownership, but at least one argument was not -1,
|
||||
so we are required to update ctime. Since chown succeeded,
|
||||
we assume that chmod will do likewise. Fortunately, on all
|
||||
known systems where a 'no-op' chown skips the ctime update, a
|
||||
'no-op' chmod still does the trick. */
|
||||
result = chmod (file, st.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO
|
||||
| S_ISUID | S_ISGID | S_ISVTX));
|
||||
}
|
||||
# endif
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#endif /* HAVE_CHOWN */
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* closexec.c - set or clear the close-on-exec descriptor flag
|
||||
|
||||
Copyright (C) 1991, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 1991, 2004-2006, 2009-2010 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -21,17 +21,24 @@
|
||||
|
||||
#include "cloexec.h"
|
||||
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/* Set the `FD_CLOEXEC' flag of DESC if VALUE is true,
|
||||
or clear the flag if VALUE is false.
|
||||
Return 0 on success, or -1 on error with `errno' set. */
|
||||
Return 0 on success, or -1 on error with `errno' set.
|
||||
|
||||
Note that on MingW, this function does NOT protect DESC from being
|
||||
inherited into spawned children. Instead, either use dup_cloexec
|
||||
followed by closing the original DESC, or use interfaces such as
|
||||
open or pipe2 that accept flags like O_CLOEXEC to create DESC
|
||||
non-inheritable in the first place. */
|
||||
|
||||
int
|
||||
set_cloexec_flag (int desc, bool value)
|
||||
{
|
||||
#if defined F_GETFD && defined F_SETFD
|
||||
#ifdef F_SETFD
|
||||
|
||||
int flags = fcntl (desc, F_GETFD, 0);
|
||||
|
||||
@@ -40,15 +47,37 @@ set_cloexec_flag (int desc, bool value)
|
||||
int newflags = (value ? flags | FD_CLOEXEC : flags & ~FD_CLOEXEC);
|
||||
|
||||
if (flags == newflags
|
||||
|| fcntl (desc, F_SETFD, newflags) != -1)
|
||||
return 0;
|
||||
|| fcntl (desc, F_SETFD, newflags) != -1)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -1;
|
||||
|
||||
#else
|
||||
#else /* !F_SETFD */
|
||||
|
||||
/* Use dup2 to reject invalid file descriptors; the cloexec flag
|
||||
will be unaffected. */
|
||||
if (desc < 0)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
if (dup2 (desc, desc) < 0)
|
||||
/* errno is EBADF here. */
|
||||
return -1;
|
||||
|
||||
/* There is nothing we can do on this kind of platform. Punt. */
|
||||
return 0;
|
||||
|
||||
#endif
|
||||
#endif /* !F_SETFD */
|
||||
}
|
||||
|
||||
|
||||
/* Duplicates a file handle FD, while marking the copy to be closed
|
||||
prior to exec or spawn. Returns -1 and sets errno if FD could not
|
||||
be duplicated. */
|
||||
|
||||
int
|
||||
dup_cloexec (int fd)
|
||||
{
|
||||
return fcntl (fd, F_DUPFD_CLOEXEC, 0);
|
||||
}
|
||||
|
||||
@@ -1,2 +1,38 @@
|
||||
/* closexec.c - set or clear the close-on-exec descriptor flag
|
||||
|
||||
Copyright (C) 2004, 2009-2010 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 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, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
/* Set the `FD_CLOEXEC' flag of DESC if VALUE is true,
|
||||
or clear the flag if VALUE is false.
|
||||
Return 0 on success, or -1 on error with `errno' set.
|
||||
|
||||
Note that on MingW, this function does NOT protect DESC from being
|
||||
inherited into spawned children. Instead, either use dup_cloexec
|
||||
followed by closing the original DESC, or use interfaces such as
|
||||
open or pipe2 that accept flags like O_CLOEXEC to create DESC
|
||||
non-inheritable in the first place. */
|
||||
|
||||
int set_cloexec_flag (int desc, bool value);
|
||||
|
||||
/* Duplicates a file handle FD, while marking the copy to be closed
|
||||
prior to exec or spawn. Returns -1 and sets errno if FD could not
|
||||
be duplicated. */
|
||||
|
||||
int dup_cloexec (int fd);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
#line 1
|
||||
/* Hook for making the close() function extensible.
|
||||
Copyright (C) 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2009, 2010 Free Software Foundation, Inc.
|
||||
Written by Bruno Haible <bruno@clisp.org>, 2009.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify it
|
||||
@@ -69,7 +69,7 @@ register_close_hook (close_hook_fn hook, struct close_hook *link)
|
||||
{
|
||||
/* The link is already in use. */
|
||||
if (link->private_fn != hook)
|
||||
abort ();
|
||||
abort ();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
#line 1
|
||||
/* Hook for making the close() function extensible.
|
||||
Copyright (C) 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2009, 2010 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
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* Close a stream, with nicer error checking than fclose's.
|
||||
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2006, 2007, 2008 Free
|
||||
Software Foundation, Inc.
|
||||
Copyright (C) 1998-2002, 2004, 2006-2010 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
|
||||
@@ -71,7 +70,7 @@ close_stream (FILE *stream)
|
||||
if (prev_fail || (fclose_fail && (some_pending || errno != EBADF)))
|
||||
{
|
||||
if (! fclose_fail)
|
||||
errno = 0;
|
||||
errno = 0;
|
||||
return EOF;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* close replacement.
|
||||
Copyright (C) 2008-2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2008-2010 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,6 +1,6 @@
|
||||
/* Close standard input, rewinding seekable stdin if necessary.
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
Copyright (C) 2007, 2009, 2010 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
|
||||
@@ -86,22 +86,22 @@ close_stdin (void)
|
||||
if (freadahead (stdin) > 0)
|
||||
{
|
||||
/* Only attempt flush if stdin is seekable, as fflush is entitled to
|
||||
fail on non-seekable streams. */
|
||||
fail on non-seekable streams. */
|
||||
if (fseeko (stdin, 0, SEEK_CUR) == 0 && fflush (stdin) != 0)
|
||||
fail = true;
|
||||
fail = true;
|
||||
}
|
||||
if (close_stream (stdin) != 0)
|
||||
fail = true;
|
||||
if (fail)
|
||||
{
|
||||
/* Report failure, but defer exit until after closing stdout,
|
||||
since the failure report should still be flushed. */
|
||||
since the failure report should still be flushed. */
|
||||
char const *close_error = _("error closing file");
|
||||
if (file_name)
|
||||
error (0, errno, "%s: %s", quotearg_colon (file_name),
|
||||
close_error);
|
||||
error (0, errno, "%s: %s", quotearg_colon (file_name),
|
||||
close_error);
|
||||
else
|
||||
error (0, errno, "%s", close_error);
|
||||
error (0, errno, "%s", close_error);
|
||||
}
|
||||
|
||||
close_stdout ();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Close standard input, rewinding seekable stdin if necessary.
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
Copyright (C) 2007, 2009, 2010 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,7 +1,7 @@
|
||||
/* Close standard output and standard error, exiting with a diagnostic on error.
|
||||
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2006, 2008 Free
|
||||
Software Foundation, Inc.
|
||||
Copyright (C) 1998-2002, 2004, 2006, 2008-2010 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
|
||||
@@ -111,10 +111,10 @@ close_stdout (void)
|
||||
{
|
||||
char const *write_error = _("write error");
|
||||
if (file_name)
|
||||
error (0, errno, "%s: %s", quotearg_colon (file_name),
|
||||
write_error);
|
||||
error (0, errno, "%s: %s", quotearg_colon (file_name),
|
||||
write_error);
|
||||
else
|
||||
error (0, errno, "%s", write_error);
|
||||
error (0, errno, "%s", write_error);
|
||||
|
||||
_exit (exit_failure);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* Close standard output and standard error.
|
||||
|
||||
Copyright (C) 1998, 2000, 2003, 2004, 2006, 2008 Free Software Foundation,
|
||||
Inc.
|
||||
Copyright (C) 1998, 2000, 2003-2004, 2006, 2008-2010 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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+277
-75
@@ -33,12 +33,19 @@
|
||||
non-IEEE-754 'long double' values. */
|
||||
#define CHECK_PRINTF_SAFE 1
|
||||
|
||||
/* Define to 1 if chown fails to change ctime when at least one argument was
|
||||
not -1. */
|
||||
/* #undef CHOWN_CHANGE_TIME_BUG */
|
||||
|
||||
/* Define if chown is not POSIX compliant regarding IDs of -1. */
|
||||
#define CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE 1
|
||||
|
||||
/* Define if chown modifies symlinks. */
|
||||
/* #undef CHOWN_MODIFIES_SYMLINK */
|
||||
|
||||
/* Define to 1 if chown mishandles trailing slash. */
|
||||
#define CHOWN_TRAILING_SLASH_BUG 1
|
||||
|
||||
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
|
||||
systems. This function is required for `alloca.c' support on those systems.
|
||||
*/
|
||||
@@ -98,8 +105,12 @@
|
||||
language is requested. */
|
||||
/* #undef ENABLE_NLS */
|
||||
|
||||
/* Define if gnulib's fchdir() replacement is used. */
|
||||
/* #undef FCHDIR_REPLACEMENT */
|
||||
/* Define to 1 if your platform has fchownat, but it cannot perform lchown
|
||||
tasks. */
|
||||
#define FCHOWNAT_NOFOLLOW_BUG 1
|
||||
|
||||
/* Define this to 1 if F_DUPFD behavior does not match POSIX */
|
||||
/* #undef FCNTL_DUPFD_BUGGY */
|
||||
|
||||
/* 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
|
||||
@@ -136,13 +147,31 @@
|
||||
/* Define as the word index where to find the sign of 'float'. */
|
||||
/* #undef FLT_SIGNBIT_WORD */
|
||||
|
||||
/* Define to 1 if fopen() fails to recognize a trailing slash. */
|
||||
#define FOPEN_TRAILING_SLASH_BUG 1
|
||||
|
||||
/* Define to 1 if mkdir mistakenly creates a directory given with a trailing
|
||||
dot component. */
|
||||
/* #undef FUNC_MKDIR_DOT_BUG */
|
||||
|
||||
/* Define to 1 if realpath() can malloc memory, always gives an absolute path,
|
||||
and handles trailing slash correctly. */
|
||||
/* #undef FUNC_REALPATH_WORKS */
|
||||
|
||||
/* Define to 1 if ungetc is broken when used on arbitrary bytes. */
|
||||
#define FUNC_UNGETC_BROKEN 1
|
||||
|
||||
/* Define to 1 if futimesat mishandles a NULL file name. */
|
||||
/* #undef FUTIMESAT_NULL_BUG */
|
||||
|
||||
/* Define to the type of elements in the array set by `getgroups'. Usually
|
||||
this is either `int' or `gid_t'. */
|
||||
#define GETGROUPS_T gid_t
|
||||
|
||||
/* Define this to 1 if getgroups(0,NULL) does not return the number of groups.
|
||||
*/
|
||||
/* #undef GETGROUPS_ZERO_BUG */
|
||||
|
||||
/* Define to 1 if the `getloadavg' function needs to be run setuid or setgid.
|
||||
*/
|
||||
/* #undef GETLOADAVG_PRIVILEGED */
|
||||
@@ -153,18 +182,42 @@
|
||||
/* Define to make the limit macros in <stdint.h> visible. */
|
||||
#define GL_TRIGGER_STDC_LIMIT_MACROS 1
|
||||
|
||||
/* Define to 1 when using the gnulib module areadlinkat. */
|
||||
#define GNULIB_AREADLINKAT 1
|
||||
|
||||
/* Define to 1 when using the gnulib module canonicalize. */
|
||||
#define GNULIB_CANONICALIZE 1
|
||||
|
||||
/* Define to 1 when using the gnulib module cloexec. */
|
||||
#define GNULIB_CLOEXEC 1
|
||||
|
||||
/* Define to 1 when using the gnulib module close-stream. */
|
||||
#define GNULIB_CLOSE_STREAM 1
|
||||
|
||||
/* Define to 1 when using the gnulib module dirent-safer. */
|
||||
#define GNULIB_DIRENT_SAFER 1
|
||||
|
||||
/* Define to 1 when using the gnulib module dirname. */
|
||||
#define GNULIB_DIRNAME 1
|
||||
|
||||
/* Define to 1 when using the gnulib module faccessat. */
|
||||
#define GNULIB_FACCESSAT 1
|
||||
|
||||
/* Define to 1 when using the gnulib module fcntl-safer. */
|
||||
#define GNULIB_FCNTL_SAFER 1
|
||||
|
||||
/* Define to 1 when using the gnulib module fd-safer-flag. */
|
||||
#define GNULIB_FD_SAFER_FLAG 1
|
||||
|
||||
/* Define to 1 when using the gnulib module filenamecat. */
|
||||
#define GNULIB_FILENAMECAT 1
|
||||
|
||||
/* Define to 1 when using the gnulib module fopen-safer. */
|
||||
#define GNULIB_FOPEN_SAFER 1
|
||||
|
||||
/* Define to 1 when using the gnulib module freopen-safer. */
|
||||
#define GNULIB_FREOPEN_SAFER 1
|
||||
|
||||
/* Define to 1 when using the gnulib module fts. */
|
||||
#define GNULIB_FTS 1
|
||||
|
||||
@@ -180,12 +233,18 @@
|
||||
/* Define to 1 when using the gnulib module open. */
|
||||
#define GNULIB_OPEN 1
|
||||
|
||||
/* Define to 1 when using the gnulib module openat-safer. */
|
||||
#define GNULIB_OPENAT_SAFER 1
|
||||
|
||||
/* enable some gnulib portability checks */
|
||||
/* #undef GNULIB_PORTCHECK */
|
||||
|
||||
/* Define to indicate the 'realloc' module. */
|
||||
#define GNULIB_REALLOC_GNU 1
|
||||
|
||||
/* Define to 1 when using the gnulib module stdlib-safer. */
|
||||
#define GNULIB_STDLIB_SAFER 1
|
||||
|
||||
/* Define to 1 when using the gnulib module unistr/u8-uctomb. */
|
||||
#define GNULIB_UNISTR_U8_UCTOMB 1
|
||||
|
||||
@@ -195,6 +254,9 @@
|
||||
/* Define if your system defines TIOCGWINSZ in sys/pty.h. */
|
||||
/* #undef GWINSZ_IN_SYS_PTY */
|
||||
|
||||
/* Define to 1 if you have the `access' function. */
|
||||
#define HAVE_ACCESS 1
|
||||
|
||||
/* Define to 1 if you have the `acl' function. */
|
||||
/* #undef HAVE_ACL */
|
||||
|
||||
@@ -323,8 +385,8 @@
|
||||
the CoreFoundation framework. */
|
||||
/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */
|
||||
|
||||
/* Define to 1 if your system has a working `chown' function. */
|
||||
/* #undef HAVE_CHOWN */
|
||||
/* Define to 1 if you have the `chown' function. */
|
||||
#define HAVE_CHOWN 1
|
||||
|
||||
/* Define to 1 if you have the `chroot' function. */
|
||||
#define HAVE_CHROOT 1
|
||||
@@ -353,6 +415,9 @@
|
||||
libc. */
|
||||
/* #undef HAVE_COPYSIGN_IN_LIBC */
|
||||
|
||||
/* Define to 1 if you have the <ctype.h> header file. */
|
||||
#define HAVE_CTYPE_H 1
|
||||
|
||||
/* FIXME */
|
||||
#define HAVE_C_LINE 1
|
||||
|
||||
@@ -364,10 +429,6 @@
|
||||
*/
|
||||
#define HAVE_DECL_ALARM 1
|
||||
|
||||
/* Define to 1 if you have the declaration of `canonicalize_file_name', and to
|
||||
0 if you don't. */
|
||||
#define HAVE_DECL_CANONICALIZE_FILE_NAME 0
|
||||
|
||||
/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if
|
||||
you don't. */
|
||||
#define HAVE_DECL_CLEARERR_UNLOCKED 1
|
||||
@@ -424,10 +485,6 @@
|
||||
you don't. */
|
||||
#define HAVE_DECL_FREAD_UNLOCKED 0
|
||||
|
||||
/* Define to 1 if you have the declaration of `free', and to 0 if you don't.
|
||||
*/
|
||||
#define HAVE_DECL_FREE 1
|
||||
|
||||
/* Define to 1 if you have the declaration of `freeaddrinfo', and to 0 if you
|
||||
don't. */
|
||||
#define HAVE_DECL_FREEADDRINFO 1
|
||||
@@ -528,26 +585,26 @@
|
||||
don't. */
|
||||
#define HAVE_DECL_ISBLANK 1
|
||||
|
||||
/* Define to 1 if you have the declaration of `lseek', and to 0 if you don't.
|
||||
*/
|
||||
#define HAVE_DECL_LSEEK 1
|
||||
|
||||
/* Define to 1 if you have the declaration of `malloc', and to 0 if you don't.
|
||||
*/
|
||||
#define HAVE_DECL_MALLOC 1
|
||||
|
||||
/* Define to 1 if you have a declaration of mbswidth() in <wchar.h>, and to 0
|
||||
otherwise. */
|
||||
#define HAVE_DECL_MBSWIDTH_IN_WCHAR_H 0
|
||||
|
||||
/* Define to 1 if you have the declaration of `memchr', and to 0 if you don't.
|
||||
*/
|
||||
#define HAVE_DECL_MEMCHR 1
|
||||
|
||||
/* Define to 1 if you have the declaration of `memrchr', and to 0 if you
|
||||
don't. */
|
||||
#define HAVE_DECL_MEMRCHR 0
|
||||
|
||||
/* Define to 1 if you have the declaration of `optreset', and to 0 if you
|
||||
don't. */
|
||||
#define HAVE_DECL_OPTRESET 0
|
||||
|
||||
/* Define to 1 if you have the declaration of `program_invocation_name', and
|
||||
to 0 if you don't. */
|
||||
#define HAVE_DECL_PROGRAM_INVOCATION_NAME 0
|
||||
|
||||
/* Define to 1 if you have the declaration of `program_invocation_short_name',
|
||||
and to 0 if you don't. */
|
||||
#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 0
|
||||
|
||||
/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if
|
||||
you don't. */
|
||||
#define HAVE_DECL_PUTCHAR_UNLOCKED 1
|
||||
@@ -556,10 +613,6 @@
|
||||
don't. */
|
||||
#define HAVE_DECL_PUTC_UNLOCKED 1
|
||||
|
||||
/* Define to 1 if you have the declaration of `realloc', and to 0 if you
|
||||
don't. */
|
||||
#define HAVE_DECL_REALLOC 1
|
||||
|
||||
/* Define to 1 if you have the declaration of `setregid', and to 0 if you
|
||||
don't. */
|
||||
#define HAVE_DECL_SETREGID 1
|
||||
@@ -689,6 +742,9 @@
|
||||
/* Define to 1 if you have the `euidaccess' function. */
|
||||
/* #undef HAVE_EUIDACCESS */
|
||||
|
||||
/* Define to 1 if you have the `faccessat' function. */
|
||||
#define HAVE_FACCESSAT 1
|
||||
|
||||
/* Define to 1 if you have the `fchdir' function. */
|
||||
#define HAVE_FCHDIR 1
|
||||
|
||||
@@ -696,11 +752,14 @@
|
||||
#define HAVE_FCHMOD 1
|
||||
|
||||
/* Define to 1 if you have the `fchmodat' function. */
|
||||
/* #undef HAVE_FCHMODAT */
|
||||
#define HAVE_FCHMODAT 1
|
||||
|
||||
/* Define to 1 if you have the `fchown' function. */
|
||||
#define HAVE_FCHOWN 1
|
||||
|
||||
/* Define to 1 if you have the `fcntl' function. */
|
||||
#define HAVE_FCNTL 1
|
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#define HAVE_FCNTL_H 1
|
||||
|
||||
@@ -708,7 +767,7 @@
|
||||
/* #undef HAVE_FDATASYNC */
|
||||
|
||||
/* Define to 1 if you have the `fdopendir' function. */
|
||||
/* #undef HAVE_FDOPENDIR */
|
||||
#define HAVE_FDOPENDIR 1
|
||||
|
||||
/* Define to 1 if pipes are FIFOs, 0 if sockets. Leave undefined if not known.
|
||||
*/
|
||||
@@ -735,9 +794,15 @@
|
||||
/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
|
||||
#define HAVE_FSEEKO 1
|
||||
|
||||
/* Define to 1 if you have the `fstatat' function. */
|
||||
#define HAVE_FSTATAT 1
|
||||
|
||||
/* Define to 1 if you have the `fstatfs' function. */
|
||||
/* #undef HAVE_FSTATFS */
|
||||
|
||||
/* Define to 1 if you have the `fsync' function. */
|
||||
#define HAVE_FSYNC 1
|
||||
|
||||
/* Define to 1 if you have the <fs_info.h> header file. */
|
||||
#define HAVE_FS_INFO_H 1
|
||||
|
||||
@@ -751,7 +816,7 @@
|
||||
#define HAVE_FUNLOCKFILE 1
|
||||
|
||||
/* Define to 1 if you have the `futimens' function. */
|
||||
/* #undef HAVE_FUTIMENS */
|
||||
#define HAVE_FUTIMENS 1
|
||||
|
||||
/* Define to 1 if you have the `futimes' function. */
|
||||
/* #undef HAVE_FUTIMES */
|
||||
@@ -765,6 +830,12 @@
|
||||
/* Define to 1 if you have the `getdelim' function. */
|
||||
#define HAVE_GETDELIM 1
|
||||
|
||||
/* Define to 1 if you have the `getdtablesize' function. */
|
||||
#define HAVE_GETDTABLESIZE 1
|
||||
|
||||
/* Define to 1 if you have the `getegid' function. */
|
||||
#define HAVE_GETEGID 1
|
||||
|
||||
/* Define to 1 if you have the `getgrouplist' function. */
|
||||
#define HAVE_GETGROUPLIST 1
|
||||
|
||||
@@ -903,6 +974,9 @@
|
||||
/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
|
||||
/* #undef HAVE_LANGINFO_CODESET */
|
||||
|
||||
/* Define to 1 if you have the <langinfo.h> header file. */
|
||||
/* #undef HAVE_LANGINFO_H */
|
||||
|
||||
/* Define if you have <langinfo.h> and nl_langinfo(YESEXPR). */
|
||||
/* #undef HAVE_LANGINFO_YESEXPR */
|
||||
|
||||
@@ -942,6 +1016,12 @@
|
||||
/* Define to 1 if you have the `ypsec' library (-lypsec). */
|
||||
/* #undef HAVE_LIBYPSEC */
|
||||
|
||||
/* Define to 1 if you have the `link' function. */
|
||||
#define HAVE_LINK 1
|
||||
|
||||
/* Define to 1 if you have the `linkat' function. */
|
||||
#define HAVE_LINKAT 1
|
||||
|
||||
/* Define to 1 if you have the `listmntent' function. */
|
||||
/* #undef HAVE_LISTMNTENT */
|
||||
|
||||
@@ -961,6 +1041,9 @@
|
||||
zero-length file name argument. */
|
||||
/* #undef HAVE_LSTAT_EMPTY_STRING_BUG */
|
||||
|
||||
/* Define to 1 if you have the `lutimes' function. */
|
||||
/* #undef HAVE_LUTIMES */
|
||||
|
||||
/* Define to 1 if you have the <machine/hal_sysinfo.h> header file. */
|
||||
/* #undef HAVE_MACHINE_HAL_SYSINFO_H */
|
||||
|
||||
@@ -993,6 +1076,9 @@
|
||||
/* Define to 1 if you have the `mbsinit' function. */
|
||||
#define HAVE_MBSINIT 1
|
||||
|
||||
/* Define to 1 if you have the `mbslen' function. */
|
||||
/* #undef HAVE_MBSLEN */
|
||||
|
||||
/* Define to 1 if you have the `mbsrtowcs' function. */
|
||||
#define HAVE_MBSRTOWCS 1
|
||||
|
||||
@@ -1024,7 +1110,7 @@
|
||||
/* #undef HAVE_MICROUPTIME */
|
||||
|
||||
/* Define to 1 if you have the `mkdirat' function. */
|
||||
/* #undef HAVE_MKDIRAT */
|
||||
#define HAVE_MKDIRAT 1
|
||||
|
||||
/* Define to 1 if you have the `mkfifo' function. */
|
||||
#define HAVE_MKFIFO 1
|
||||
@@ -1047,6 +1133,9 @@
|
||||
/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||
#define HAVE_NETINET_IN_H 1
|
||||
|
||||
/* Define to 1 if you have the `newlocale' function. */
|
||||
/* #undef HAVE_NEWLOCALE */
|
||||
|
||||
/* Define to 1 if you have the `next_dev' function. */
|
||||
#define HAVE_NEXT_DEV 1
|
||||
|
||||
@@ -1069,7 +1158,7 @@
|
||||
/* #undef HAVE_OBSTACK */
|
||||
|
||||
/* Define to 1 if you have the `openat' function. */
|
||||
/* #undef HAVE_OPENAT */
|
||||
#define HAVE_OPENAT 1
|
||||
|
||||
/* Define to 1 if you have the <OS.h> header file. */
|
||||
#define HAVE_OS_H 1
|
||||
@@ -1101,6 +1190,15 @@
|
||||
/* Define to 1 if you have the `pstat_getstatic' function. */
|
||||
/* #undef HAVE_PSTAT_GETSTATIC */
|
||||
|
||||
/* Define to 1 if you have the `pthread_atfork' function. */
|
||||
#define HAVE_PTHREAD_ATFORK 1
|
||||
|
||||
/* Define if the <pthread.h> defines PTHREAD_MUTEX_RECURSIVE. */
|
||||
#define HAVE_PTHREAD_MUTEX_RECURSIVE 1
|
||||
|
||||
/* Define if the POSIX multithreading library has read/write locks. */
|
||||
#define HAVE_PTHREAD_RWLOCK 1
|
||||
|
||||
/* Define to 1 if you have the <pwd.h> header file. */
|
||||
#define HAVE_PWD_H 1
|
||||
|
||||
@@ -1110,9 +1208,21 @@
|
||||
/* Define to 1 if you have the <random.h> header file. */
|
||||
/* #undef HAVE_RANDOM_H */
|
||||
|
||||
/* Define to 1 if environ is declared even after undefining macros. */
|
||||
#define HAVE_RAW_DECL_ENVIRON 1
|
||||
|
||||
/* Define to 1 if fseeko is declared even after undefining macros. */
|
||||
#define HAVE_RAW_DECL_FSEEKO 1
|
||||
|
||||
/* Define to 1 if ftello is declared even after undefining macros. */
|
||||
#define HAVE_RAW_DECL_FTELLO 1
|
||||
|
||||
/* Define to 1 if you have the `readlink' function. */
|
||||
#define HAVE_READLINK 1
|
||||
|
||||
/* Define to 1 if you have the `readlinkat' function. */
|
||||
#define HAVE_READLINKAT 1
|
||||
|
||||
/* Define to 1 if your system has a GNU libc compatible `realloc' function,
|
||||
and to 0 otherwise. */
|
||||
#define HAVE_REALLOC 1
|
||||
@@ -1120,8 +1230,8 @@
|
||||
/* Define if the 'realloc' function is POSIX compliant. */
|
||||
#define HAVE_REALLOC_POSIX 1
|
||||
|
||||
/* Define to 1 if you have the `resolvepath' function. */
|
||||
/* #undef HAVE_RESOLVEPATH */
|
||||
/* Define to 1 if you have the `realpath' function. */
|
||||
#define HAVE_REALPATH 1
|
||||
|
||||
/* Define to 1 if you have the `rmdir' function. */
|
||||
#define HAVE_RMDIR 1
|
||||
@@ -1135,8 +1245,17 @@
|
||||
/* Define to 1 if the system has the type `sa_family_t'. */
|
||||
/* #undef HAVE_SA_FAMILY_T */
|
||||
|
||||
/* Define to 1 if you have the `sched_getaffinity' function. */
|
||||
/* #undef HAVE_SCHED_GETAFFINITY */
|
||||
|
||||
/* Define to 1 if sched_getaffinity has a glibc compatible declaration. */
|
||||
/* #undef HAVE_SCHED_GETAFFINITY_LIKE_GLIBC */
|
||||
|
||||
/* Define to 1 if you have the `sched_getaffinity_np' function. */
|
||||
/* #undef HAVE_SCHED_GETAFFINITY_NP */
|
||||
|
||||
/* Define to 1 if you have the <search.h> header file. */
|
||||
/* #undef HAVE_SEARCH_H */
|
||||
#define HAVE_SEARCH_H 1
|
||||
|
||||
/* Define to 1 if you have the <selinux/context.h> header file. */
|
||||
/* #undef HAVE_SELINUX_CONTEXT_H */
|
||||
@@ -1195,6 +1314,9 @@
|
||||
/* Define to 1 if the system has the type `sigset_t'. */
|
||||
/* #undef HAVE_SIGSET_T */
|
||||
|
||||
/* Define to 1 if you have the `sleep' function. */
|
||||
#define HAVE_SLEEP 1
|
||||
|
||||
/* Define to 1 if you have the `snprintf' function. */
|
||||
#define HAVE_SNPRINTF 1
|
||||
|
||||
@@ -1254,7 +1376,7 @@
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define if you have the strndup() function and it works. */
|
||||
/* Define to 1 if you have the `strndup' function. */
|
||||
#define HAVE_STRNDUP 1
|
||||
|
||||
/* Define to 1 if you have the `strnlen' function. */
|
||||
@@ -1266,6 +1388,9 @@
|
||||
/* Define to 1 if you have the `strpbrk' function. */
|
||||
#define HAVE_STRPBRK 1
|
||||
|
||||
/* Define to 1 if you have the `strsignal' function. */
|
||||
#define HAVE_STRSIGNAL 1
|
||||
|
||||
/* Define to 1 if you have the `strtoimax' function. */
|
||||
#define HAVE_STRTOIMAX 1
|
||||
|
||||
@@ -1427,8 +1552,8 @@
|
||||
/* Define to 1 if `ut_user' is a member of `struct utmp'. */
|
||||
/* #undef HAVE_STRUCT_UTMP_UT_USER */
|
||||
|
||||
/* Define to 1 if you have the `strverscmp' function. */
|
||||
/* #undef HAVE_STRVERSCMP */
|
||||
/* Define to 1 if the system has the type `struct utsname'. */
|
||||
#define HAVE_STRUCT_UTSNAME 1
|
||||
|
||||
/* Define to 1 if you have the `strxfrm' function. */
|
||||
#define HAVE_STRXFRM 1
|
||||
@@ -1440,6 +1565,12 @@
|
||||
/* Define if struct stat has an st_dm_mode member. */
|
||||
/* #undef HAVE_ST_DM_MODE */
|
||||
|
||||
/* Define to 1 if you have the `symlink' function. */
|
||||
#define HAVE_SYMLINK 1
|
||||
|
||||
/* Define to 1 if you have the `symlinkat' function. */
|
||||
#define HAVE_SYMLINKAT 1
|
||||
|
||||
/* Define to 1 if you have the `sync' function. */
|
||||
#define HAVE_SYNC 1
|
||||
|
||||
@@ -1545,6 +1676,9 @@
|
||||
/* Define to 1 if you have the <sys/ucred.h> header file. */
|
||||
/* #undef HAVE_SYS_UCRED_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/utsname.h> header file. */
|
||||
#define HAVE_SYS_UTSNAME_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/vfs.h> header file. */
|
||||
/* #undef HAVE_SYS_VFS_H */
|
||||
|
||||
@@ -1577,7 +1711,7 @@
|
||||
#define HAVE_TM_ZONE 1
|
||||
|
||||
/* Define to 1 if you have the `tsearch' function. */
|
||||
/* #undef HAVE_TSEARCH */
|
||||
#define HAVE_TSEARCH 1
|
||||
|
||||
/* Define to 1 if you don't have `tm_zone' but do have the external array
|
||||
`tzname'. */
|
||||
@@ -1592,14 +1726,20 @@
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to 1 if you have the `unlinkat' function. */
|
||||
#define HAVE_UNLINKAT 1
|
||||
|
||||
/* Define to 1 if you have the `unsetenv' function. */
|
||||
#define HAVE_UNSETENV 1
|
||||
|
||||
/* Define to 1 if the system has the type `unsigned long long int'. */
|
||||
#define HAVE_UNSIGNED_LONG_LONG_INT 1
|
||||
|
||||
/* Define to 1 if you have the `usleep' function. */
|
||||
#define HAVE_USLEEP 1
|
||||
|
||||
/* Define to 1 if you have the `utimensat' function. */
|
||||
/* #undef HAVE_UTIMENSAT */
|
||||
#define HAVE_UTIMENSAT 1
|
||||
|
||||
/* Define to 1 if you have the <utime.h> header file. */
|
||||
#define HAVE_UTIME_H 1
|
||||
@@ -1680,7 +1820,7 @@
|
||||
#define HAVE_WORKING_O_NOATIME 0
|
||||
|
||||
/* Define to 1 if O_NOFOLLOW works. */
|
||||
#define HAVE_WORKING_O_NOFOLLOW 0
|
||||
#define HAVE_WORKING_O_NOFOLLOW 1
|
||||
|
||||
/* Define if utimes works properly. */
|
||||
/* #undef HAVE_WORKING_UTIMES */
|
||||
@@ -1691,6 +1831,9 @@
|
||||
/* Define to 1 if you have the <ws2tcpip.h> header file. */
|
||||
/* #undef HAVE_WS2TCPIP_H */
|
||||
|
||||
/* Define to 1 if you have the <xlocale.h> header file. */
|
||||
/* #undef HAVE_XLOCALE_H */
|
||||
|
||||
/* Define to 1 if the system has the type `_Bool'. */
|
||||
/* #undef HAVE__BOOL */
|
||||
|
||||
@@ -1746,8 +1889,9 @@
|
||||
/* Define as the word index where to find the sign of 'long double'. */
|
||||
/* #undef LDBL_SIGNBIT_WORD */
|
||||
|
||||
/* Define if `link(2)' dereferences symbolic links. */
|
||||
#define LINK_FOLLOWS_SYMLINKS -1
|
||||
/* Define to 1 if `link(2)' dereferences symbolic links, 0 if it creates hard
|
||||
links to symlinks, and -1 if unknown. */
|
||||
#define LINK_FOLLOWS_SYMLINKS 1
|
||||
|
||||
/* FIXME */
|
||||
/* #undef LOCALTIME_CACHE */
|
||||
@@ -1914,7 +2058,7 @@
|
||||
/* #undef PACKAGE_PACKAGER_VERSION */
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "GNU coreutils 7.5"
|
||||
#define PACKAGE_STRING "GNU coreutils 8.4"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "coreutils"
|
||||
@@ -1923,7 +2067,7 @@
|
||||
#define PACKAGE_URL "http://www.gnu.org/software/coreutils/"
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "7.5"
|
||||
#define PACKAGE_VERSION "8.4"
|
||||
|
||||
/* the number of pending output bytes on stream `fp' */
|
||||
#define PENDING_OUTPUT_N_BYTES fp->_IO_write_ptr - fp->_IO_write_base
|
||||
@@ -1948,20 +2092,49 @@
|
||||
/* Define to 1 if the C compiler supports function prototypes. */
|
||||
#define PROTOTYPES 1
|
||||
|
||||
/* Define if the pthread_in_use() detection is hard. */
|
||||
/* #undef PTHREAD_IN_USE_DETECTION_HARD */
|
||||
|
||||
/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
|
||||
'ptrdiff_t'. */
|
||||
#define PTRDIFF_T_SUFFIX l
|
||||
|
||||
/* Define to 1 if readlink fails to recognize a trailing slash. */
|
||||
#define READLINK_TRAILING_SLASH_BUG 1
|
||||
|
||||
/* Define if rename does not work when the destination file exists, as on
|
||||
Windows. */
|
||||
Cygwin 1.5 or Windows. */
|
||||
/* #undef RENAME_DEST_EXISTS_BUG */
|
||||
|
||||
/* Define if rename does not work for source file names with a trailing slash,
|
||||
like the one from SunOS 4.1.1_U1. */
|
||||
/* #undef RENAME_TRAILING_SLASH_BUG */
|
||||
/* Define if rename fails to leave hard links alone, as on NetBSD 1.6 or
|
||||
Cygwin 1.5. */
|
||||
#define RENAME_HARD_LINK_BUG 1
|
||||
|
||||
/* Define to 1 if dup2 returns 0 instead of the target fd. */
|
||||
#define REPLACE_DUP2 0
|
||||
/* Define if rename does not correctly handle slashes on the destination
|
||||
argument, such as on Solaris 10 or NetBSD 1.6. */
|
||||
#define RENAME_TRAILING_SLASH_DEST_BUG 1
|
||||
|
||||
/* Define if rename does not correctly handle slashes on the source argument,
|
||||
such as on Solaris 9 or cygwin 1.5. */
|
||||
#define RENAME_TRAILING_SLASH_SOURCE_BUG 1
|
||||
|
||||
/* Define to 1 if gnulib's fchdir() replacement is used. */
|
||||
/* #undef REPLACE_FCHDIR */
|
||||
|
||||
/* Define to 1 if stat needs help when passed a directory name with a trailing
|
||||
slash */
|
||||
/* #undef REPLACE_FUNC_STAT_DIR */
|
||||
|
||||
/* Define to 1 if stat needs help when passed a file name with a trailing
|
||||
slash */
|
||||
#define REPLACE_FUNC_STAT_FILE 1
|
||||
|
||||
/* Define if nl_langinfo exists but is overridden by gnulib. */
|
||||
/* #undef REPLACE_NL_LANGINFO */
|
||||
|
||||
/* Define to 1 if open() should work around the inability to open a directory.
|
||||
*/
|
||||
/* #undef REPLACE_OPEN_DIRECTORY */
|
||||
|
||||
/* Define this to 1 if strerror is broken. */
|
||||
/* #undef REPLACE_STRERROR */
|
||||
@@ -1971,14 +2144,11 @@
|
||||
|
||||
/* Define if vfprintf is overridden by a POSIX compliant gnulib
|
||||
implementation. */
|
||||
#define REPLACE_VFPRINTF_POSIX 1
|
||||
/* #undef REPLACE_VFPRINTF_POSIX */
|
||||
|
||||
/* Define if vprintf is overridden by a POSIX compliant gnulib implementation.
|
||||
*/
|
||||
#define REPLACE_VPRINTF_POSIX 1
|
||||
|
||||
/* the value to which errno is set when rmdir fails on a nonempty directory */
|
||||
#define RMDIR_ERRNO_NOT_EMPTY -2147459066
|
||||
/* #undef REPLACE_VPRINTF_POSIX */
|
||||
|
||||
/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
|
||||
'sig_atomic_t'. */
|
||||
@@ -2054,6 +2224,9 @@
|
||||
/* FIXME */
|
||||
/* #undef TERMIOS_NEEDS_XOPEN_SOURCE */
|
||||
|
||||
/* Define to 1 if all 'time_t' values fit in a 'long int'. */
|
||||
#define TIME_T_FITS_IN_LONG_INT 1
|
||||
|
||||
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
||||
#define TIME_WITH_SYS_TIME 1
|
||||
|
||||
@@ -2080,16 +2253,43 @@
|
||||
/* Define to nonzero if you want access control list support. */
|
||||
#define USE_ACL 0
|
||||
|
||||
/* Define if the POSIX multithreading library can be used. */
|
||||
#define USE_POSIX_THREADS 1
|
||||
|
||||
/* Define if references to the POSIX multithreading library should be made
|
||||
weak. */
|
||||
/* #undef USE_POSIX_THREADS_WEAK */
|
||||
|
||||
/* Define if the GNU Pth multithreading library can be used. */
|
||||
/* #undef USE_PTH_THREADS */
|
||||
|
||||
/* Define if references to the GNU Pth multithreading library should be made
|
||||
weak. */
|
||||
/* #undef USE_PTH_THREADS_WEAK */
|
||||
|
||||
/* Define if the old Solaris multithreading library can be used. */
|
||||
/* #undef USE_SOLARIS_THREADS */
|
||||
|
||||
/* Define if references to the old Solaris multithreading library should be
|
||||
made weak. */
|
||||
/* #undef USE_SOLARIS_THREADS_WEAK */
|
||||
|
||||
/* Define to 1 if you want getc etc. to use unlocked I/O if available.
|
||||
Unlocked I/O can improve performance in unithreaded apps, but it is not
|
||||
safe for multithreaded apps. */
|
||||
#define USE_UNLOCKED_IO 1
|
||||
|
||||
/* Define if the Win32 multithreading API can be used. */
|
||||
/* #undef USE_WIN32_THREADS */
|
||||
|
||||
/* Define if you want extended attribute support. */
|
||||
#define USE_XATTR 0
|
||||
#define USE_XATTR no
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "7.5"
|
||||
#define VERSION "8.4"
|
||||
|
||||
/* Define to 1 if unsetenv returns void instead of int. */
|
||||
/* #undef VOID_UNSETENV */
|
||||
|
||||
/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
|
||||
'wchar_t'. */
|
||||
@@ -2171,9 +2371,6 @@
|
||||
used. */
|
||||
/* #undef __GETOPT_PREFIX */
|
||||
|
||||
/* Define to rpl_ if the openat replacement function should be used. */
|
||||
#define __OPENAT_PREFIX rpl_
|
||||
|
||||
/* Define like PROTOTYPES; this can be used by system headers. */
|
||||
#define __PROTOTYPES 1
|
||||
|
||||
@@ -2187,14 +2384,14 @@
|
||||
/* Define to rpl_calloc if the replacement function should be used. */
|
||||
#define calloc rpl_calloc
|
||||
|
||||
/* Define to rpl_fchownat if the replacement function should be used. */
|
||||
#define fchownat rpl_fchownat
|
||||
/* Always use our fgetfilecon wrapper. */
|
||||
/* #undef fgetfilecon */
|
||||
|
||||
/* Define to a replacement function name for fnmatch(). */
|
||||
#define fnmatch gnu_fnmatch
|
||||
|
||||
/* Define as rpl_getgroups if getgroups doesn't work right. */
|
||||
/* #undef getgroups */
|
||||
/* Always use our getfilecon wrapper. */
|
||||
/* #undef getfilecon */
|
||||
|
||||
/* Define to a replacement function name for getpass(). */
|
||||
#define getpass gnu_getpass
|
||||
@@ -2230,6 +2427,9 @@
|
||||
# define __GNUC_STDC_INLINE__ 1
|
||||
#endif
|
||||
|
||||
/* Always use our lgetfilecon wrapper. */
|
||||
/* #undef lgetfilecon */
|
||||
|
||||
/* Define to 1 if the compiler is checking for lint. */
|
||||
/* #undef lint */
|
||||
|
||||
@@ -2318,10 +2518,6 @@
|
||||
/* Define to rpl_regfree if the replacement should be used. */
|
||||
/* #undef regfree rpl_regfree */
|
||||
|
||||
/* Define to rpl_rename_dest_slash if the replacement function should be used.
|
||||
*/
|
||||
/* #undef rename */
|
||||
|
||||
/* Define to the equivalent of the C99 'restrict' keyword, or to
|
||||
nothing if this is not supported. Do not define if restrict is
|
||||
supported directly. */
|
||||
@@ -2353,16 +2549,22 @@
|
||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
/* #undef uid_t */
|
||||
|
||||
/* Define as a marker that can be attached to function parameter declarations
|
||||
for parameters that are not used. This helps to reduce warnings, such as
|
||||
from GCC -Wunused-parameter. */
|
||||
/* Define as a marker that can be attached to declarations that might not
|
||||
be used. This helps to reduce warnings, such as from
|
||||
GCC -Wunused-parameter. */
|
||||
#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
|
||||
# define _UNUSED_PARAMETER_ __attribute__ ((__unused__))
|
||||
# define _GL_UNUSED __attribute__ ((__unused__))
|
||||
#else
|
||||
# define _UNUSED_PARAMETER_
|
||||
# define _GL_UNUSED
|
||||
#endif
|
||||
/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name
|
||||
is a misnomer outside of parameter lists. */
|
||||
#define _UNUSED_PARAMETER_ _GL_UNUSED
|
||||
|
||||
|
||||
/* Define to an unsigned 32-bit type if <sys/types.h> lacks this type. */
|
||||
/* #undef useconds_t */
|
||||
|
||||
/* Define as a macro for copying va_list variables. */
|
||||
#if __GNUC__ < 3
|
||||
#define va_copy __va_copy
|
||||
|
||||
@@ -32,12 +32,19 @@
|
||||
non-IEEE-754 'long double' values. */
|
||||
#undef CHECK_PRINTF_SAFE
|
||||
|
||||
/* Define to 1 if chown fails to change ctime when at least one argument was
|
||||
not -1. */
|
||||
#undef CHOWN_CHANGE_TIME_BUG
|
||||
|
||||
/* Define if chown is not POSIX compliant regarding IDs of -1. */
|
||||
#undef CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE
|
||||
|
||||
/* Define if chown modifies symlinks. */
|
||||
#undef CHOWN_MODIFIES_SYMLINK
|
||||
|
||||
/* Define to 1 if chown mishandles trailing slash. */
|
||||
#undef CHOWN_TRAILING_SLASH_BUG
|
||||
|
||||
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
|
||||
systems. This function is required for `alloca.c' support on those systems.
|
||||
*/
|
||||
@@ -97,6 +104,13 @@
|
||||
language is requested. */
|
||||
#undef ENABLE_NLS
|
||||
|
||||
/* Define to 1 if your platform has fchownat, but it cannot perform lchown
|
||||
tasks. */
|
||||
#undef FCHOWNAT_NOFOLLOW_BUG
|
||||
|
||||
/* Define this to 1 if F_DUPFD behavior does not match POSIX */
|
||||
#undef FCNTL_DUPFD_BUGGY
|
||||
|
||||
/* 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. */
|
||||
@@ -135,13 +149,28 @@
|
||||
/* Define to 1 if fopen() fails to recognize a trailing slash. */
|
||||
#undef FOPEN_TRAILING_SLASH_BUG
|
||||
|
||||
/* Define to 1 if mkdir mistakenly creates a directory given with a trailing
|
||||
dot component. */
|
||||
#undef FUNC_MKDIR_DOT_BUG
|
||||
|
||||
/* Define to 1 if realpath() can malloc memory, always gives an absolute path,
|
||||
and handles trailing slash correctly. */
|
||||
#undef FUNC_REALPATH_WORKS
|
||||
|
||||
/* Define to 1 if ungetc is broken when used on arbitrary bytes. */
|
||||
#undef FUNC_UNGETC_BROKEN
|
||||
|
||||
/* Define to 1 if futimesat mishandles a NULL file name. */
|
||||
#undef FUTIMESAT_NULL_BUG
|
||||
|
||||
/* Define to the type of elements in the array set by `getgroups'. Usually
|
||||
this is either `int' or `gid_t'. */
|
||||
#undef GETGROUPS_T
|
||||
|
||||
/* Define this to 1 if getgroups(0,NULL) does not return the number of groups.
|
||||
*/
|
||||
#undef GETGROUPS_ZERO_BUG
|
||||
|
||||
/* Define to 1 if the `getloadavg' function needs to be run setuid or setgid.
|
||||
*/
|
||||
#undef GETLOADAVG_PRIVILEGED
|
||||
@@ -152,21 +181,42 @@
|
||||
/* Define to make the limit macros in <stdint.h> visible. */
|
||||
#undef GL_TRIGGER_STDC_LIMIT_MACROS
|
||||
|
||||
/* Define to 1 when using the gnulib module areadlinkat. */
|
||||
#undef GNULIB_AREADLINKAT
|
||||
|
||||
/* Define to 1 when using the gnulib module canonicalize. */
|
||||
#undef GNULIB_CANONICALIZE
|
||||
|
||||
/* Define to 1 when using the gnulib module cloexec. */
|
||||
#undef GNULIB_CLOEXEC
|
||||
|
||||
/* Define to 1 when using the gnulib module close-stream. */
|
||||
#undef GNULIB_CLOSE_STREAM
|
||||
|
||||
/* Define to 1 when using the gnulib module dirent-safer. */
|
||||
#undef GNULIB_DIRENT_SAFER
|
||||
|
||||
/* Define to 1 when using the gnulib module dirname. */
|
||||
#undef GNULIB_DIRNAME
|
||||
|
||||
/* Define to 1 when using the gnulib module faccessat. */
|
||||
#undef GNULIB_FACCESSAT
|
||||
|
||||
/* Define to 1 when using the gnulib module fcntl-safer. */
|
||||
#undef GNULIB_FCNTL_SAFER
|
||||
|
||||
/* Define to 1 when using the gnulib module fd-safer-flag. */
|
||||
#undef GNULIB_FD_SAFER_FLAG
|
||||
|
||||
/* Define to 1 when using the gnulib module filenamecat. */
|
||||
#undef GNULIB_FILENAMECAT
|
||||
|
||||
/* Define to 1 when using the gnulib module fopen-safer. */
|
||||
#undef GNULIB_FOPEN_SAFER
|
||||
|
||||
/* Define to 1 when using the gnulib module freopen-safer. */
|
||||
#undef GNULIB_FREOPEN_SAFER
|
||||
|
||||
/* Define to 1 when using the gnulib module fts. */
|
||||
#undef GNULIB_FTS
|
||||
|
||||
@@ -194,9 +244,6 @@
|
||||
/* Define to 1 when using the gnulib module stdlib-safer. */
|
||||
#undef GNULIB_STDLIB_SAFER
|
||||
|
||||
/* Define to 1 when using the gnulib module unistd-safer. */
|
||||
#undef GNULIB_UNISTD_SAFER
|
||||
|
||||
/* Define to 1 when using the gnulib module unistr/u8-uctomb. */
|
||||
#undef GNULIB_UNISTR_U8_UCTOMB
|
||||
|
||||
@@ -206,6 +253,9 @@
|
||||
/* Define if your system defines TIOCGWINSZ in sys/pty.h. */
|
||||
#undef GWINSZ_IN_SYS_PTY
|
||||
|
||||
/* Define to 1 if you have the `access' function. */
|
||||
#undef HAVE_ACCESS
|
||||
|
||||
/* Define to 1 if you have the `acl' function. */
|
||||
#undef HAVE_ACL
|
||||
|
||||
@@ -364,6 +414,9 @@
|
||||
libc. */
|
||||
#undef HAVE_COPYSIGN_IN_LIBC
|
||||
|
||||
/* Define to 1 if you have the <ctype.h> header file. */
|
||||
#undef HAVE_CTYPE_H
|
||||
|
||||
/* FIXME */
|
||||
#undef HAVE_C_LINE
|
||||
|
||||
@@ -375,10 +428,6 @@
|
||||
*/
|
||||
#undef HAVE_DECL_ALARM
|
||||
|
||||
/* Define to 1 if you have the declaration of `canonicalize_file_name', and to
|
||||
0 if you don't. */
|
||||
#undef HAVE_DECL_CANONICALIZE_FILE_NAME
|
||||
|
||||
/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if
|
||||
you don't. */
|
||||
#undef HAVE_DECL_CLEARERR_UNLOCKED
|
||||
@@ -435,10 +484,6 @@
|
||||
you don't. */
|
||||
#undef HAVE_DECL_FREAD_UNLOCKED
|
||||
|
||||
/* Define to 1 if you have the declaration of `free', and to 0 if you don't.
|
||||
*/
|
||||
#undef HAVE_DECL_FREE
|
||||
|
||||
/* Define to 1 if you have the declaration of `freeaddrinfo', and to 0 if you
|
||||
don't. */
|
||||
#undef HAVE_DECL_FREEADDRINFO
|
||||
@@ -539,30 +584,26 @@
|
||||
don't. */
|
||||
#undef HAVE_DECL_ISBLANK
|
||||
|
||||
/* Define to 1 if you have the declaration of `lseek', and to 0 if you don't.
|
||||
*/
|
||||
#undef HAVE_DECL_LSEEK
|
||||
|
||||
/* Define to 1 if you have the declaration of `malloc', and to 0 if you don't.
|
||||
*/
|
||||
#undef HAVE_DECL_MALLOC
|
||||
|
||||
/* Define to 1 if you have a declaration of mbswidth() in <wchar.h>, and to 0
|
||||
otherwise. */
|
||||
#undef HAVE_DECL_MBSWIDTH_IN_WCHAR_H
|
||||
|
||||
/* Define to 1 if you have the declaration of `memchr', and to 0 if you don't.
|
||||
*/
|
||||
#undef HAVE_DECL_MEMCHR
|
||||
|
||||
/* Define to 1 if you have the declaration of `memrchr', and to 0 if you
|
||||
don't. */
|
||||
#undef HAVE_DECL_MEMRCHR
|
||||
|
||||
/* Define to 1 if you have the declaration of `optreset', and to 0 if you
|
||||
don't. */
|
||||
#undef HAVE_DECL_OPTRESET
|
||||
|
||||
/* Define to 1 if you have the declaration of `program_invocation_name', and
|
||||
to 0 if you don't. */
|
||||
#undef HAVE_DECL_PROGRAM_INVOCATION_NAME
|
||||
|
||||
/* Define to 1 if you have the declaration of `program_invocation_short_name',
|
||||
and to 0 if you don't. */
|
||||
#undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
|
||||
|
||||
/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if
|
||||
you don't. */
|
||||
#undef HAVE_DECL_PUTCHAR_UNLOCKED
|
||||
@@ -571,10 +612,6 @@
|
||||
don't. */
|
||||
#undef HAVE_DECL_PUTC_UNLOCKED
|
||||
|
||||
/* Define to 1 if you have the declaration of `realloc', and to 0 if you
|
||||
don't. */
|
||||
#undef HAVE_DECL_REALLOC
|
||||
|
||||
/* Define to 1 if you have the declaration of `setregid', and to 0 if you
|
||||
don't. */
|
||||
#undef HAVE_DECL_SETREGID
|
||||
@@ -719,6 +756,9 @@
|
||||
/* Define to 1 if you have the `fchown' function. */
|
||||
#undef HAVE_FCHOWN
|
||||
|
||||
/* Define to 1 if you have the `fcntl' function. */
|
||||
#undef HAVE_FCNTL
|
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#undef HAVE_FCNTL_H
|
||||
|
||||
@@ -753,9 +793,15 @@
|
||||
/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
|
||||
#undef HAVE_FSEEKO
|
||||
|
||||
/* Define to 1 if you have the `fstatat' function. */
|
||||
#undef HAVE_FSTATAT
|
||||
|
||||
/* Define to 1 if you have the `fstatfs' function. */
|
||||
#undef HAVE_FSTATFS
|
||||
|
||||
/* Define to 1 if you have the `fsync' function. */
|
||||
#undef HAVE_FSYNC
|
||||
|
||||
/* Define to 1 if you have the <fs_info.h> header file. */
|
||||
#undef HAVE_FS_INFO_H
|
||||
|
||||
@@ -783,6 +829,12 @@
|
||||
/* Define to 1 if you have the `getdelim' function. */
|
||||
#undef HAVE_GETDELIM
|
||||
|
||||
/* Define to 1 if you have the `getdtablesize' function. */
|
||||
#undef HAVE_GETDTABLESIZE
|
||||
|
||||
/* Define to 1 if you have the `getegid' function. */
|
||||
#undef HAVE_GETEGID
|
||||
|
||||
/* Define to 1 if you have the `getgrouplist' function. */
|
||||
#undef HAVE_GETGROUPLIST
|
||||
|
||||
@@ -921,6 +973,9 @@
|
||||
/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
|
||||
#undef HAVE_LANGINFO_CODESET
|
||||
|
||||
/* Define to 1 if you have the <langinfo.h> header file. */
|
||||
#undef HAVE_LANGINFO_H
|
||||
|
||||
/* Define if you have <langinfo.h> and nl_langinfo(YESEXPR). */
|
||||
#undef HAVE_LANGINFO_YESEXPR
|
||||
|
||||
@@ -963,6 +1018,9 @@
|
||||
/* Define to 1 if you have the `link' function. */
|
||||
#undef HAVE_LINK
|
||||
|
||||
/* Define to 1 if you have the `linkat' function. */
|
||||
#undef HAVE_LINKAT
|
||||
|
||||
/* Define to 1 if you have the `listmntent' function. */
|
||||
#undef HAVE_LISTMNTENT
|
||||
|
||||
@@ -982,6 +1040,9 @@
|
||||
zero-length file name argument. */
|
||||
#undef HAVE_LSTAT_EMPTY_STRING_BUG
|
||||
|
||||
/* Define to 1 if you have the `lutimes' function. */
|
||||
#undef HAVE_LUTIMES
|
||||
|
||||
/* Define to 1 if you have the <machine/hal_sysinfo.h> header file. */
|
||||
#undef HAVE_MACHINE_HAL_SYSINFO_H
|
||||
|
||||
@@ -1014,6 +1075,9 @@
|
||||
/* Define to 1 if you have the `mbsinit' function. */
|
||||
#undef HAVE_MBSINIT
|
||||
|
||||
/* Define to 1 if you have the `mbslen' function. */
|
||||
#undef HAVE_MBSLEN
|
||||
|
||||
/* Define to 1 if you have the `mbsrtowcs' function. */
|
||||
#undef HAVE_MBSRTOWCS
|
||||
|
||||
@@ -1068,6 +1132,9 @@
|
||||
/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||
#undef HAVE_NETINET_IN_H
|
||||
|
||||
/* Define to 1 if you have the `newlocale' function. */
|
||||
#undef HAVE_NEWLOCALE
|
||||
|
||||
/* Define to 1 if you have the `next_dev' function. */
|
||||
#undef HAVE_NEXT_DEV
|
||||
|
||||
@@ -1122,6 +1189,15 @@
|
||||
/* Define to 1 if you have the `pstat_getstatic' function. */
|
||||
#undef HAVE_PSTAT_GETSTATIC
|
||||
|
||||
/* Define to 1 if you have the `pthread_atfork' function. */
|
||||
#undef HAVE_PTHREAD_ATFORK
|
||||
|
||||
/* Define if the <pthread.h> defines PTHREAD_MUTEX_RECURSIVE. */
|
||||
#undef HAVE_PTHREAD_MUTEX_RECURSIVE
|
||||
|
||||
/* Define if the POSIX multithreading library has read/write locks. */
|
||||
#undef HAVE_PTHREAD_RWLOCK
|
||||
|
||||
/* Define to 1 if you have the <pwd.h> header file. */
|
||||
#undef HAVE_PWD_H
|
||||
|
||||
@@ -1131,9 +1207,21 @@
|
||||
/* Define to 1 if you have the <random.h> header file. */
|
||||
#undef HAVE_RANDOM_H
|
||||
|
||||
/* Define to 1 if environ is declared even after undefining macros. */
|
||||
#undef HAVE_RAW_DECL_ENVIRON
|
||||
|
||||
/* Define to 1 if fseeko is declared even after undefining macros. */
|
||||
#undef HAVE_RAW_DECL_FSEEKO
|
||||
|
||||
/* Define to 1 if ftello is declared even after undefining macros. */
|
||||
#undef HAVE_RAW_DECL_FTELLO
|
||||
|
||||
/* Define to 1 if you have the `readlink' function. */
|
||||
#undef HAVE_READLINK
|
||||
|
||||
/* Define to 1 if you have the `readlinkat' function. */
|
||||
#undef HAVE_READLINKAT
|
||||
|
||||
/* Define to 1 if your system has a GNU libc compatible `realloc' function,
|
||||
and to 0 otherwise. */
|
||||
#undef HAVE_REALLOC
|
||||
@@ -1141,8 +1229,8 @@
|
||||
/* Define if the 'realloc' function is POSIX compliant. */
|
||||
#undef HAVE_REALLOC_POSIX
|
||||
|
||||
/* Define to 1 if you have the `resolvepath' function. */
|
||||
#undef HAVE_RESOLVEPATH
|
||||
/* Define to 1 if you have the `realpath' function. */
|
||||
#undef HAVE_REALPATH
|
||||
|
||||
/* Define to 1 if you have the `rmdir' function. */
|
||||
#undef HAVE_RMDIR
|
||||
@@ -1156,6 +1244,15 @@
|
||||
/* Define to 1 if the system has the type `sa_family_t'. */
|
||||
#undef HAVE_SA_FAMILY_T
|
||||
|
||||
/* Define to 1 if you have the `sched_getaffinity' function. */
|
||||
#undef HAVE_SCHED_GETAFFINITY
|
||||
|
||||
/* Define to 1 if sched_getaffinity has a glibc compatible declaration. */
|
||||
#undef HAVE_SCHED_GETAFFINITY_LIKE_GLIBC
|
||||
|
||||
/* Define to 1 if you have the `sched_getaffinity_np' function. */
|
||||
#undef HAVE_SCHED_GETAFFINITY_NP
|
||||
|
||||
/* Define to 1 if you have the <search.h> header file. */
|
||||
#undef HAVE_SEARCH_H
|
||||
|
||||
@@ -1216,6 +1313,9 @@
|
||||
/* Define to 1 if the system has the type `sigset_t'. */
|
||||
#undef HAVE_SIGSET_T
|
||||
|
||||
/* Define to 1 if you have the `sleep' function. */
|
||||
#undef HAVE_SLEEP
|
||||
|
||||
/* Define to 1 if you have the `snprintf' function. */
|
||||
#undef HAVE_SNPRINTF
|
||||
|
||||
@@ -1287,6 +1387,9 @@
|
||||
/* Define to 1 if you have the `strpbrk' function. */
|
||||
#undef HAVE_STRPBRK
|
||||
|
||||
/* Define to 1 if you have the `strsignal' function. */
|
||||
#undef HAVE_STRSIGNAL
|
||||
|
||||
/* Define to 1 if you have the `strtoimax' function. */
|
||||
#undef HAVE_STRTOIMAX
|
||||
|
||||
@@ -1448,8 +1551,8 @@
|
||||
/* Define to 1 if `ut_user' is a member of `struct utmp'. */
|
||||
#undef HAVE_STRUCT_UTMP_UT_USER
|
||||
|
||||
/* Define to 1 if you have the `strverscmp' function. */
|
||||
#undef HAVE_STRVERSCMP
|
||||
/* Define to 1 if the system has the type `struct utsname'. */
|
||||
#undef HAVE_STRUCT_UTSNAME
|
||||
|
||||
/* Define to 1 if you have the `strxfrm' function. */
|
||||
#undef HAVE_STRXFRM
|
||||
@@ -1464,6 +1567,9 @@
|
||||
/* Define to 1 if you have the `symlink' function. */
|
||||
#undef HAVE_SYMLINK
|
||||
|
||||
/* Define to 1 if you have the `symlinkat' function. */
|
||||
#undef HAVE_SYMLINKAT
|
||||
|
||||
/* Define to 1 if you have the `sync' function. */
|
||||
#undef HAVE_SYNC
|
||||
|
||||
@@ -1569,6 +1675,9 @@
|
||||
/* Define to 1 if you have the <sys/ucred.h> header file. */
|
||||
#undef HAVE_SYS_UCRED_H
|
||||
|
||||
/* Define to 1 if you have the <sys/utsname.h> header file. */
|
||||
#undef HAVE_SYS_UTSNAME_H
|
||||
|
||||
/* Define to 1 if you have the <sys/vfs.h> header file. */
|
||||
#undef HAVE_SYS_VFS_H
|
||||
|
||||
@@ -1616,12 +1725,18 @@
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to 1 if you have the `unlinkat' function. */
|
||||
#undef HAVE_UNLINKAT
|
||||
|
||||
/* Define to 1 if you have the `unsetenv' function. */
|
||||
#undef HAVE_UNSETENV
|
||||
|
||||
/* Define to 1 if the system has the type `unsigned long long int'. */
|
||||
#undef HAVE_UNSIGNED_LONG_LONG_INT
|
||||
|
||||
/* Define to 1 if you have the `usleep' function. */
|
||||
#undef HAVE_USLEEP
|
||||
|
||||
/* Define to 1 if you have the `utimensat' function. */
|
||||
#undef HAVE_UTIMENSAT
|
||||
|
||||
@@ -1715,6 +1830,9 @@
|
||||
/* Define to 1 if you have the <ws2tcpip.h> header file. */
|
||||
#undef HAVE_WS2TCPIP_H
|
||||
|
||||
/* Define to 1 if you have the <xlocale.h> header file. */
|
||||
#undef HAVE_XLOCALE_H
|
||||
|
||||
/* Define to 1 if the system has the type `_Bool'. */
|
||||
#undef HAVE__BOOL
|
||||
|
||||
@@ -1973,24 +2091,46 @@
|
||||
/* Define to 1 if the C compiler supports function prototypes. */
|
||||
#undef PROTOTYPES
|
||||
|
||||
/* Define if the pthread_in_use() detection is hard. */
|
||||
#undef PTHREAD_IN_USE_DETECTION_HARD
|
||||
|
||||
/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
|
||||
'ptrdiff_t'. */
|
||||
#undef PTRDIFF_T_SUFFIX
|
||||
|
||||
/* Define to 1 if readlink fails to recognize a trailing slash. */
|
||||
#undef READLINK_TRAILING_SLASH_BUG
|
||||
|
||||
/* Define if rename does not work when the destination file exists, as on
|
||||
Windows. */
|
||||
Cygwin 1.5 or Windows. */
|
||||
#undef RENAME_DEST_EXISTS_BUG
|
||||
|
||||
/* Define if rename does not work for source file names with a trailing slash,
|
||||
like the one from SunOS 4.1.1_U1. */
|
||||
#undef RENAME_TRAILING_SLASH_BUG
|
||||
/* Define if rename fails to leave hard links alone, as on NetBSD 1.6 or
|
||||
Cygwin 1.5. */
|
||||
#undef RENAME_HARD_LINK_BUG
|
||||
|
||||
/* Define to 1 if dup2 returns 0 instead of the target fd. */
|
||||
#undef REPLACE_DUP2
|
||||
/* Define if rename does not correctly handle slashes on the destination
|
||||
argument, such as on Solaris 10 or NetBSD 1.6. */
|
||||
#undef RENAME_TRAILING_SLASH_DEST_BUG
|
||||
|
||||
/* Define if rename does not correctly handle slashes on the source argument,
|
||||
such as on Solaris 9 or cygwin 1.5. */
|
||||
#undef RENAME_TRAILING_SLASH_SOURCE_BUG
|
||||
|
||||
/* Define to 1 if gnulib's fchdir() replacement is used. */
|
||||
#undef REPLACE_FCHDIR
|
||||
|
||||
/* Define to 1 if stat needs help when passed a directory name with a trailing
|
||||
slash */
|
||||
#undef REPLACE_FUNC_STAT_DIR
|
||||
|
||||
/* Define to 1 if stat needs help when passed a file name with a trailing
|
||||
slash */
|
||||
#undef REPLACE_FUNC_STAT_FILE
|
||||
|
||||
/* Define if nl_langinfo exists but is overridden by gnulib. */
|
||||
#undef REPLACE_NL_LANGINFO
|
||||
|
||||
/* Define to 1 if open() should work around the inability to open a directory.
|
||||
*/
|
||||
#undef REPLACE_OPEN_DIRECTORY
|
||||
@@ -2009,9 +2149,6 @@
|
||||
*/
|
||||
#undef REPLACE_VPRINTF_POSIX
|
||||
|
||||
/* the value to which errno is set when rmdir fails on a nonempty directory */
|
||||
#undef RMDIR_ERRNO_NOT_EMPTY
|
||||
|
||||
/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
|
||||
'sig_atomic_t'. */
|
||||
#undef SIG_ATOMIC_T_SUFFIX
|
||||
@@ -2086,6 +2223,9 @@
|
||||
/* FIXME */
|
||||
#undef TERMIOS_NEEDS_XOPEN_SOURCE
|
||||
|
||||
/* Define to 1 if all 'time_t' values fit in a 'long int'. */
|
||||
#undef TIME_T_FITS_IN_LONG_INT
|
||||
|
||||
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
||||
#undef TIME_WITH_SYS_TIME
|
||||
|
||||
@@ -2112,17 +2252,44 @@
|
||||
/* Define to nonzero if you want access control list support. */
|
||||
#undef USE_ACL
|
||||
|
||||
/* Define if the POSIX multithreading library can be used. */
|
||||
#undef USE_POSIX_THREADS
|
||||
|
||||
/* Define if references to the POSIX multithreading library should be made
|
||||
weak. */
|
||||
#undef USE_POSIX_THREADS_WEAK
|
||||
|
||||
/* Define if the GNU Pth multithreading library can be used. */
|
||||
#undef USE_PTH_THREADS
|
||||
|
||||
/* Define if references to the GNU Pth multithreading library should be made
|
||||
weak. */
|
||||
#undef USE_PTH_THREADS_WEAK
|
||||
|
||||
/* Define if the old Solaris multithreading library can be used. */
|
||||
#undef USE_SOLARIS_THREADS
|
||||
|
||||
/* Define if references to the old Solaris multithreading library should be
|
||||
made weak. */
|
||||
#undef USE_SOLARIS_THREADS_WEAK
|
||||
|
||||
/* Define to 1 if you want getc etc. to use unlocked I/O if available.
|
||||
Unlocked I/O can improve performance in unithreaded apps, but it is not
|
||||
safe for multithreaded apps. */
|
||||
#undef USE_UNLOCKED_IO
|
||||
|
||||
/* Define if the Win32 multithreading API can be used. */
|
||||
#undef USE_WIN32_THREADS
|
||||
|
||||
/* Define if you want extended attribute support. */
|
||||
#undef USE_XATTR
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* Define to 1 if unsetenv returns void instead of int. */
|
||||
#undef VOID_UNSETENV
|
||||
|
||||
/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
|
||||
'wchar_t'. */
|
||||
#undef WCHAR_T_SUFFIX
|
||||
@@ -2216,11 +2383,14 @@
|
||||
/* Define to rpl_calloc if the replacement function should be used. */
|
||||
#undef calloc
|
||||
|
||||
/* Always use our fgetfilecon wrapper. */
|
||||
#undef fgetfilecon
|
||||
|
||||
/* Define to a replacement function name for fnmatch(). */
|
||||
#undef fnmatch
|
||||
|
||||
/* Define as rpl_getgroups if getgroups doesn't work right. */
|
||||
#undef getgroups
|
||||
/* Always use our getfilecon wrapper. */
|
||||
#undef getfilecon
|
||||
|
||||
/* Define to a replacement function name for getpass(). */
|
||||
#undef getpass
|
||||
@@ -2256,6 +2426,9 @@
|
||||
# define __GNUC_STDC_INLINE__ 1
|
||||
#endif
|
||||
|
||||
/* Always use our lgetfilecon wrapper. */
|
||||
#undef lgetfilecon
|
||||
|
||||
/* Define to 1 if the compiler is checking for lint. */
|
||||
#undef lint
|
||||
|
||||
@@ -2344,10 +2517,6 @@
|
||||
/* Define to rpl_regfree if the replacement should be used. */
|
||||
#undef regfree
|
||||
|
||||
/* Define to rpl_rename_dest_slash if the replacement function should be used.
|
||||
*/
|
||||
#undef rename
|
||||
|
||||
/* Define to the equivalent of the C99 'restrict' keyword, or to
|
||||
nothing if this is not supported. Do not define if restrict is
|
||||
supported directly. */
|
||||
@@ -2379,16 +2548,22 @@
|
||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
#undef uid_t
|
||||
|
||||
/* Define as a marker that can be attached to function parameter declarations
|
||||
for parameters that are not used. This helps to reduce warnings, such as
|
||||
from GCC -Wunused-parameter. */
|
||||
/* Define as a marker that can be attached to declarations that might not
|
||||
be used. This helps to reduce warnings, such as from
|
||||
GCC -Wunused-parameter. */
|
||||
#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
|
||||
# define _UNUSED_PARAMETER_ __attribute__ ((__unused__))
|
||||
# define _GL_UNUSED __attribute__ ((__unused__))
|
||||
#else
|
||||
# define _UNUSED_PARAMETER_
|
||||
# define _GL_UNUSED
|
||||
#endif
|
||||
/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name
|
||||
is a misnomer outside of parameter lists. */
|
||||
#define _UNUSED_PARAMETER_ _GL_UNUSED
|
||||
|
||||
|
||||
/* Define to an unsigned 32-bit type if <sys/types.h> lacks this type. */
|
||||
#undef useconds_t
|
||||
|
||||
/* Define as a macro for copying va_list variables. */
|
||||
#undef va_copy
|
||||
|
||||
|
||||
@@ -1,25 +1,26 @@
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
#define PREFIX "/usr/local"
|
||||
#define EXEC_PREFIX "/usr/local"
|
||||
#define BINDIR "/usr/local/bin"
|
||||
#define SBINDIR "/usr/local/sbin"
|
||||
#define LIBEXECDIR "/usr/local/libexec"
|
||||
#define DATAROOTDIR "/usr/local/share"
|
||||
#define DATADIR "/usr/local/share"
|
||||
#define SYSCONFDIR "/usr/local/etc"
|
||||
#define SHAREDSTATEDIR "/usr/local/com"
|
||||
#define LOCALSTATEDIR "/usr/local/var"
|
||||
#define INCLUDEDIR "/usr/local/include"
|
||||
#define PREFIX "/boot/common"
|
||||
#define EXEC_PREFIX "/boot/common"
|
||||
#define BINDIR "/boot/common/bin"
|
||||
#define SBINDIR "/boot/common/sbin"
|
||||
#define LIBEXECDIR "/boot/common/libexec"
|
||||
#define DATAROOTDIR "/boot/common/share"
|
||||
#define DATADIR "/boot/common/share"
|
||||
#define SYSCONFDIR "/boot/common/etc"
|
||||
#define SHAREDSTATEDIR "/boot/common/com"
|
||||
#define LOCALSTATEDIR "/boot/common/var"
|
||||
#define INCLUDEDIR "/boot/common/include"
|
||||
#define OLDINCLUDEDIR "/usr/include"
|
||||
#define DOCDIR "/usr/local/share/doc/coreutils"
|
||||
#define INFODIR "/usr/local/share/info"
|
||||
#define HTMLDIR "/usr/local/share/doc/coreutils"
|
||||
#define DVIDIR "/usr/local/share/doc/coreutils"
|
||||
#define PDFDIR "/usr/local/share/doc/coreutils"
|
||||
#define PSDIR "/usr/local/share/doc/coreutils"
|
||||
#define LIBDIR "/usr/local/lib"
|
||||
#define LOCALEDIR "/usr/local/share/locale"
|
||||
#define MANDIR "/usr/local/share/man"
|
||||
#define PKGDATADIR "/usr/local/share/coreutils"
|
||||
#define PKGINCLUDEDIR "/usr/local/include/coreutils"
|
||||
#define PKGLIBDIR "/usr/local/lib/coreutils"
|
||||
#define DOCDIR "/boot/common/share/doc/coreutils"
|
||||
#define INFODIR "/boot/common/share/info"
|
||||
#define HTMLDIR "/boot/common/share/doc/coreutils"
|
||||
#define DVIDIR "/boot/common/share/doc/coreutils"
|
||||
#define PDFDIR "/boot/common/share/doc/coreutils"
|
||||
#define PSDIR "/boot/common/share/doc/coreutils"
|
||||
#define LIBDIR "/boot/common/lib"
|
||||
#define LOCALEDIR "/boot/common/share/locale"
|
||||
#define MANDIR "/boot/common/share/man"
|
||||
#define PKGDATADIR "/boot/common/share/coreutils"
|
||||
#define PKGINCLUDEDIR "/boot/common/include/coreutils"
|
||||
#define PKGLIBDIR "/boot/common/lib/coreutils"
|
||||
#define PKGLIBEXECDIR "/boot/common/libexec/coreutils"
|
||||
|
||||
+160
-160
@@ -1,6 +1,6 @@
|
||||
/* copy-acl.c - copy access control list from one file to another file
|
||||
|
||||
Copyright (C) 2002-2003, 2005-2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002-2003, 2005-2010 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
static int
|
||||
qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
int dest_desc, mode_t mode)
|
||||
int dest_desc, mode_t mode)
|
||||
{
|
||||
#if USE_ACL && HAVE_ACL_GET_FILE
|
||||
/* POSIX 1003.1e (draft 17 -- abandoned) specific version. */
|
||||
@@ -58,9 +58,9 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
if (acl == NULL)
|
||||
{
|
||||
if (ACL_NOT_WELL_SUPPORTED (errno))
|
||||
return qset_acl (dst_name, dest_desc, mode);
|
||||
return qset_acl (dst_name, dest_desc, mode);
|
||||
else
|
||||
return -2;
|
||||
return -2;
|
||||
}
|
||||
|
||||
if (HAVE_ACL_SET_FD && dest_desc != -1)
|
||||
@@ -72,17 +72,17 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
int saved_errno = errno;
|
||||
|
||||
if (ACL_NOT_WELL_SUPPORTED (errno) && !acl_access_nontrivial (acl))
|
||||
{
|
||||
acl_free (acl);
|
||||
return chmod_or_fchmod (dst_name, dest_desc, mode);
|
||||
}
|
||||
{
|
||||
acl_free (acl);
|
||||
return chmod_or_fchmod (dst_name, dest_desc, mode);
|
||||
}
|
||||
else
|
||||
{
|
||||
acl_free (acl);
|
||||
chmod_or_fchmod (dst_name, dest_desc, mode);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
}
|
||||
{
|
||||
acl_free (acl);
|
||||
chmod_or_fchmod (dst_name, dest_desc, mode);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
acl_free (acl);
|
||||
@@ -90,28 +90,28 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
if (mode & (S_ISUID | S_ISGID | S_ISVTX))
|
||||
{
|
||||
/* We did not call chmod so far, and either the mode and the ACL are
|
||||
separate or special bits are to be set which don't fit into ACLs. */
|
||||
separate or special bits are to be set which don't fit into ACLs. */
|
||||
|
||||
if (chmod_or_fchmod (dst_name, dest_desc, mode) != 0)
|
||||
return -1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (S_ISDIR (mode))
|
||||
{
|
||||
acl = acl_get_file (src_name, ACL_TYPE_DEFAULT);
|
||||
if (acl == NULL)
|
||||
return -2;
|
||||
return -2;
|
||||
|
||||
if (acl_set_file (dst_name, ACL_TYPE_DEFAULT, acl))
|
||||
{
|
||||
int saved_errno = errno;
|
||||
{
|
||||
int saved_errno = errno;
|
||||
|
||||
acl_free (acl);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
}
|
||||
acl_free (acl);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
acl_free (acl);
|
||||
acl_free (acl);
|
||||
}
|
||||
return 0;
|
||||
|
||||
@@ -125,14 +125,14 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
/* On MacOS X, acl_get_file (name, ACL_TYPE_ACCESS)
|
||||
and acl_get_file (name, ACL_TYPE_DEFAULT)
|
||||
always return NULL / EINVAL. You have to use
|
||||
acl_get_file (name, ACL_TYPE_EXTENDED)
|
||||
acl_get_file (name, ACL_TYPE_EXTENDED)
|
||||
or acl_get_fd (open (name, ...))
|
||||
to retrieve an ACL.
|
||||
On the other hand,
|
||||
acl_set_file (name, ACL_TYPE_ACCESS, acl)
|
||||
acl_set_file (name, ACL_TYPE_ACCESS, acl)
|
||||
and acl_set_file (name, ACL_TYPE_DEFAULT, acl)
|
||||
have the same effect as
|
||||
acl_set_file (name, ACL_TYPE_EXTENDED, acl):
|
||||
acl_set_file (name, ACL_TYPE_EXTENDED, acl):
|
||||
Each of these calls sets the file's ACL. */
|
||||
|
||||
acl_t acl;
|
||||
@@ -145,9 +145,9 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
if (acl == NULL)
|
||||
{
|
||||
if (ACL_NOT_WELL_SUPPORTED (errno))
|
||||
return qset_acl (dst_name, dest_desc, mode);
|
||||
return qset_acl (dst_name, dest_desc, mode);
|
||||
else
|
||||
return -2;
|
||||
return -2;
|
||||
}
|
||||
|
||||
if (HAVE_ACL_SET_FD && dest_desc != -1)
|
||||
@@ -159,17 +159,17 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
int saved_errno = errno;
|
||||
|
||||
if (ACL_NOT_WELL_SUPPORTED (errno) && !acl_extended_nontrivial (acl))
|
||||
{
|
||||
acl_free (acl);
|
||||
return chmod_or_fchmod (dst_name, dest_desc, mode);
|
||||
}
|
||||
{
|
||||
acl_free (acl);
|
||||
return chmod_or_fchmod (dst_name, dest_desc, mode);
|
||||
}
|
||||
else
|
||||
{
|
||||
acl_free (acl);
|
||||
chmod_or_fchmod (dst_name, dest_desc, mode);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
}
|
||||
{
|
||||
acl_free (acl);
|
||||
chmod_or_fchmod (dst_name, dest_desc, mode);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
acl_free (acl);
|
||||
@@ -189,8 +189,8 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
int ret;
|
||||
acl_t *aclp = NULL;
|
||||
ret = (source_desc < 0
|
||||
? acl_get (src_name, ACL_NO_TRIVIAL, &aclp)
|
||||
: facl_get (source_desc, ACL_NO_TRIVIAL, &aclp));
|
||||
? acl_get (src_name, ACL_NO_TRIVIAL, &aclp)
|
||||
: facl_get (source_desc, ACL_NO_TRIVIAL, &aclp));
|
||||
if (ret != 0 && errno != ENOSYS)
|
||||
return -2;
|
||||
|
||||
@@ -201,16 +201,16 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
if (aclp)
|
||||
{
|
||||
ret = (dest_desc < 0
|
||||
? acl_set (dst_name, aclp)
|
||||
: facl_set (dest_desc, aclp));
|
||||
? acl_set (dst_name, aclp)
|
||||
: facl_set (dest_desc, aclp));
|
||||
if (ret != 0)
|
||||
{
|
||||
int saved_errno = errno;
|
||||
{
|
||||
int saved_errno = errno;
|
||||
|
||||
acl_free (aclp);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
}
|
||||
acl_free (aclp);
|
||||
errno = saved_errno;
|
||||
return -1;
|
||||
}
|
||||
acl_free (aclp);
|
||||
}
|
||||
|
||||
@@ -248,82 +248,82 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
for (;;)
|
||||
{
|
||||
ace_count = (source_desc != -1
|
||||
? facl (source_desc, ACE_GETACLCNT, 0, NULL)
|
||||
: acl (src_name, ACE_GETACLCNT, 0, NULL));
|
||||
? facl (source_desc, ACE_GETACLCNT, 0, NULL)
|
||||
: acl (src_name, ACE_GETACLCNT, 0, NULL));
|
||||
|
||||
if (ace_count < 0)
|
||||
{
|
||||
if (errno == ENOSYS || errno == EINVAL)
|
||||
{
|
||||
ace_count = 0;
|
||||
ace_entries = NULL;
|
||||
break;
|
||||
}
|
||||
else
|
||||
return -2;
|
||||
}
|
||||
{
|
||||
if (errno == ENOSYS || errno == EINVAL)
|
||||
{
|
||||
ace_count = 0;
|
||||
ace_entries = NULL;
|
||||
break;
|
||||
}
|
||||
else
|
||||
return -2;
|
||||
}
|
||||
|
||||
if (ace_count == 0)
|
||||
{
|
||||
ace_entries = NULL;
|
||||
break;
|
||||
}
|
||||
{
|
||||
ace_entries = NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
ace_entries = (ace_t *) malloc (ace_count * sizeof (ace_t));
|
||||
if (ace_entries == NULL)
|
||||
{
|
||||
errno = ENOMEM;
|
||||
return -2;
|
||||
}
|
||||
{
|
||||
errno = ENOMEM;
|
||||
return -2;
|
||||
}
|
||||
|
||||
if ((source_desc != -1
|
||||
? facl (source_desc, ACE_GETACL, ace_count, ace_entries)
|
||||
: acl (src_name, ACE_GETACL, ace_count, ace_entries))
|
||||
== ace_count)
|
||||
break;
|
||||
? facl (source_desc, ACE_GETACL, ace_count, ace_entries)
|
||||
: acl (src_name, ACE_GETACL, ace_count, ace_entries))
|
||||
== ace_count)
|
||||
break;
|
||||
/* Huh? The number of ACL entries changed since the last call.
|
||||
Repeat. */
|
||||
Repeat. */
|
||||
}
|
||||
# endif
|
||||
|
||||
for (;;)
|
||||
{
|
||||
count = (source_desc != -1
|
||||
? facl (source_desc, GETACLCNT, 0, NULL)
|
||||
: acl (src_name, GETACLCNT, 0, NULL));
|
||||
? facl (source_desc, GETACLCNT, 0, NULL)
|
||||
: acl (src_name, GETACLCNT, 0, NULL));
|
||||
|
||||
if (count < 0)
|
||||
{
|
||||
if (errno == ENOSYS || errno == ENOTSUP)
|
||||
{
|
||||
count = 0;
|
||||
entries = NULL;
|
||||
break;
|
||||
}
|
||||
else
|
||||
return -2;
|
||||
}
|
||||
{
|
||||
if (errno == ENOSYS || errno == ENOTSUP)
|
||||
{
|
||||
count = 0;
|
||||
entries = NULL;
|
||||
break;
|
||||
}
|
||||
else
|
||||
return -2;
|
||||
}
|
||||
|
||||
if (count == 0)
|
||||
{
|
||||
entries = NULL;
|
||||
break;
|
||||
}
|
||||
{
|
||||
entries = NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
entries = (aclent_t *) malloc (count * sizeof (aclent_t));
|
||||
if (entries == NULL)
|
||||
{
|
||||
errno = ENOMEM;
|
||||
return -2;
|
||||
}
|
||||
{
|
||||
errno = ENOMEM;
|
||||
return -2;
|
||||
}
|
||||
|
||||
if ((source_desc != -1
|
||||
? facl (source_desc, GETACL, count, entries)
|
||||
: acl (src_name, GETACL, count, entries))
|
||||
== count)
|
||||
break;
|
||||
? facl (source_desc, GETACL, count, entries)
|
||||
: acl (src_name, GETACL, count, entries))
|
||||
== count)
|
||||
break;
|
||||
/* Huh? The number of ACL entries changed since the last call.
|
||||
Repeat. */
|
||||
Repeat. */
|
||||
}
|
||||
|
||||
/* Is there an ACL of either kind? */
|
||||
@@ -339,10 +339,10 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
if (!MODE_INSIDE_ACL)
|
||||
{
|
||||
/* On Cygwin, it is necessary to call chmod before acl, because
|
||||
chmod can change the contents of the ACL (in ways that don't
|
||||
change the allowed accesses, but still visible). */
|
||||
chmod can change the contents of the ACL (in ways that don't
|
||||
change the allowed accesses, but still visible). */
|
||||
if (chmod_or_fchmod (dst_name, dest_desc, mode) != 0)
|
||||
saved_errno = errno;
|
||||
saved_errno = errno;
|
||||
did_chmod = 1;
|
||||
}
|
||||
|
||||
@@ -353,16 +353,16 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
if (count > 0)
|
||||
{
|
||||
ret = (dest_desc != -1
|
||||
? facl (dest_desc, SETACL, count, entries)
|
||||
: acl (dst_name, SETACL, count, entries));
|
||||
? facl (dest_desc, SETACL, count, entries)
|
||||
: acl (dst_name, SETACL, count, entries));
|
||||
if (ret < 0 && saved_errno == 0)
|
||||
{
|
||||
saved_errno = errno;
|
||||
if (errno == ENOSYS && !acl_nontrivial (count, entries))
|
||||
saved_errno = 0;
|
||||
}
|
||||
{
|
||||
saved_errno = errno;
|
||||
if (errno == ENOSYS && !acl_nontrivial (count, entries))
|
||||
saved_errno = 0;
|
||||
}
|
||||
else
|
||||
did_chmod = 1;
|
||||
did_chmod = 1;
|
||||
}
|
||||
free (entries);
|
||||
|
||||
@@ -370,15 +370,15 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
if (ace_count > 0)
|
||||
{
|
||||
ret = (dest_desc != -1
|
||||
? facl (dest_desc, ACE_SETACL, ace_count, ace_entries)
|
||||
: acl (dst_name, ACE_SETACL, ace_count, ace_entries));
|
||||
? facl (dest_desc, ACE_SETACL, ace_count, ace_entries)
|
||||
: acl (dst_name, ACE_SETACL, ace_count, ace_entries));
|
||||
if (ret < 0 && saved_errno == 0)
|
||||
{
|
||||
saved_errno = errno;
|
||||
if ((errno == ENOSYS || errno == EINVAL || errno == ENOTSUP)
|
||||
&& !acl_ace_nontrivial (ace_count, ace_entries))
|
||||
saved_errno = 0;
|
||||
}
|
||||
{
|
||||
saved_errno = errno;
|
||||
if ((errno == ENOSYS || errno == EINVAL || errno == ENOTSUP)
|
||||
&& !acl_ace_nontrivial (ace_count, ace_entries))
|
||||
saved_errno = 0;
|
||||
}
|
||||
}
|
||||
free (ace_entries);
|
||||
# endif
|
||||
@@ -387,13 +387,13 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
&& did_chmod <= ((mode & (S_ISUID | S_ISGID | S_ISVTX)) ? 1 : 0))
|
||||
{
|
||||
/* We did not call chmod so far, and either the mode and the ACL are
|
||||
separate or special bits are to be set which don't fit into ACLs. */
|
||||
separate or special bits are to be set which don't fit into ACLs. */
|
||||
|
||||
if (chmod_or_fchmod (dst_name, dest_desc, mode) != 0)
|
||||
{
|
||||
if (saved_errno == 0)
|
||||
saved_errno = errno;
|
||||
}
|
||||
{
|
||||
if (saved_errno == 0)
|
||||
saved_errno = errno;
|
||||
}
|
||||
}
|
||||
|
||||
if (saved_errno)
|
||||
@@ -414,60 +414,60 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
for (;;)
|
||||
{
|
||||
count = (source_desc != -1
|
||||
? fgetacl (source_desc, 0, NULL)
|
||||
: getacl (src_name, 0, NULL));
|
||||
? fgetacl (source_desc, 0, NULL)
|
||||
: getacl (src_name, 0, NULL));
|
||||
|
||||
if (count < 0)
|
||||
{
|
||||
if (errno == ENOSYS || errno == EOPNOTSUPP)
|
||||
{
|
||||
count = 0;
|
||||
break;
|
||||
}
|
||||
else
|
||||
return -2;
|
||||
}
|
||||
{
|
||||
if (errno == ENOSYS || errno == EOPNOTSUPP)
|
||||
{
|
||||
count = 0;
|
||||
break;
|
||||
}
|
||||
else
|
||||
return -2;
|
||||
}
|
||||
|
||||
if (count == 0)
|
||||
break;
|
||||
break;
|
||||
|
||||
if (count > NACLENTRIES)
|
||||
/* If NACLENTRIES cannot be trusted, use dynamic memory allocation. */
|
||||
abort ();
|
||||
/* If NACLENTRIES cannot be trusted, use dynamic memory allocation. */
|
||||
abort ();
|
||||
|
||||
if ((source_desc != -1
|
||||
? fgetacl (source_desc, count, entries)
|
||||
: getacl (src_name, count, entries))
|
||||
== count)
|
||||
break;
|
||||
? fgetacl (source_desc, count, entries)
|
||||
: getacl (src_name, count, entries))
|
||||
== count)
|
||||
break;
|
||||
/* Huh? The number of ACL entries changed since the last call.
|
||||
Repeat. */
|
||||
Repeat. */
|
||||
}
|
||||
|
||||
if (count == 0)
|
||||
return qset_acl (dst_name, dest_desc, mode);
|
||||
|
||||
ret = (dest_desc != -1
|
||||
? fsetacl (dest_desc, count, entries)
|
||||
: setacl (dst_name, count, entries));
|
||||
? fsetacl (dest_desc, count, entries)
|
||||
: setacl (dst_name, count, entries));
|
||||
if (ret < 0)
|
||||
{
|
||||
int saved_errno = errno;
|
||||
|
||||
if (errno == ENOSYS || errno == EOPNOTSUPP)
|
||||
{
|
||||
struct stat source_statbuf;
|
||||
{
|
||||
struct stat source_statbuf;
|
||||
|
||||
if ((source_desc != -1
|
||||
? fstat (source_desc, &source_statbuf)
|
||||
: stat (src_name, &source_statbuf)) == 0)
|
||||
{
|
||||
if (!acl_nontrivial (count, entries, &source_statbuf))
|
||||
return chmod_or_fchmod (dst_name, dest_desc, mode);
|
||||
}
|
||||
else
|
||||
saved_errno = errno;
|
||||
}
|
||||
if ((source_desc != -1
|
||||
? fstat (source_desc, &source_statbuf)
|
||||
: stat (src_name, &source_statbuf)) == 0)
|
||||
{
|
||||
if (!acl_nontrivial (count, entries, &source_statbuf))
|
||||
return chmod_or_fchmod (dst_name, dest_desc, mode);
|
||||
}
|
||||
else
|
||||
saved_errno = errno;
|
||||
}
|
||||
|
||||
chmod_or_fchmod (dst_name, dest_desc, mode);
|
||||
errno = saved_errno;
|
||||
@@ -477,7 +477,7 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
if (mode & (S_ISUID | S_ISGID | S_ISVTX))
|
||||
{
|
||||
/* We did not call chmod so far, and either the mode and the ACL are
|
||||
separate or special bits are to be set which don't fit into ACLs. */
|
||||
separate or special bits are to be set which don't fit into ACLs. */
|
||||
|
||||
return chmod_or_fchmod (dst_name, dest_desc, mode);
|
||||
}
|
||||
@@ -499,8 +499,8 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
return -2;
|
||||
|
||||
ret = (dest_desc != -1
|
||||
? fchacl (dest_desc, &u.a, u.a.acl_len)
|
||||
: chacl (dst_name, &u.a, u.a.acl_len));
|
||||
? fchacl (dest_desc, &u.a, u.a.acl_len)
|
||||
: chacl (dst_name, &u.a, u.a.acl_len));
|
||||
if (ret < 0)
|
||||
{
|
||||
int saved_errno = errno;
|
||||
@@ -534,7 +534,7 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
|
||||
int
|
||||
copy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
int dest_desc, mode_t mode)
|
||||
int dest_desc, mode_t mode)
|
||||
{
|
||||
int ret = qcopy_acl (src_name, source_desc, dst_name, dest_desc, mode);
|
||||
switch (ret)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Invoke creat, but avoid some glitches.
|
||||
|
||||
Copyright (C) 2005, 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005-2006, 2009-2010 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
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
/* -*- buffer-read-only: t -*- vi: set ro: */
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
#line 1
|
||||
/* A substitute for ISO C99 <ctype.h>, for platforms on which it is incomplete.
|
||||
|
||||
Copyright (C) 2009, 2010 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
|
||||
|
||||
/* Written by Bruno Haible. */
|
||||
|
||||
/*
|
||||
* ISO C 99 <ctype.h> for platforms on which it is incomplete.
|
||||
* <http://www.opengroup.org/onlinepubs/9699919799/basedefs/ctype.h.html>
|
||||
*/
|
||||
|
||||
#ifndef _GL_CTYPE_H
|
||||
|
||||
#if __GNUC__ >= 3
|
||||
#pragma GCC system_header
|
||||
#endif
|
||||
|
||||
/* Include the original <ctype.h>. */
|
||||
/* The include_next requires a split double-inclusion guard. */
|
||||
#include_next <ctype.h>
|
||||
|
||||
#ifndef _GL_CTYPE_H
|
||||
#define _GL_CTYPE_H
|
||||
|
||||
/* The definition of GL_LINK_WARNING is copied here. */
|
||||
/* GL_LINK_WARNING("literal string") arranges to emit the literal string as
|
||||
a linker warning on most glibc systems.
|
||||
We use a linker warning rather than a preprocessor warning, because
|
||||
#warning cannot be used inside macros. */
|
||||
#ifndef GL_LINK_WARNING
|
||||
/* This works on platforms with GNU ld and ELF object format.
|
||||
Testing __GLIBC__ is sufficient for asserting that GNU ld is in use.
|
||||
Testing __ELF__ guarantees the ELF object format.
|
||||
Testing __GNUC__ is necessary for the compound expression syntax. */
|
||||
# if defined __GLIBC__ && defined __ELF__ && defined __GNUC__
|
||||
# define GL_LINK_WARNING(message) \
|
||||
GL_LINK_WARNING1 (__FILE__, __LINE__, message)
|
||||
# define GL_LINK_WARNING1(file, line, message) \
|
||||
GL_LINK_WARNING2 (file, line, message) /* macroexpand file and line */
|
||||
# define GL_LINK_WARNING2(file, line, message) \
|
||||
GL_LINK_WARNING3 (file ":" #line ": warning: " message)
|
||||
# define GL_LINK_WARNING3(message) \
|
||||
({ static const char warning[sizeof (message)] \
|
||||
__attribute__ ((__unused__, \
|
||||
__section__ (".gnu.warning"), \
|
||||
__aligned__ (1))) \
|
||||
= message "\n"; \
|
||||
(void)0; \
|
||||
})
|
||||
# else
|
||||
# define GL_LINK_WARNING(message) ((void) 0)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Return non-zero if c is a blank, i.e. a space or tab character. */
|
||||
#if 1
|
||||
# if !1
|
||||
extern int isblank (int c);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef isblank
|
||||
# define isblank(c) \
|
||||
(GL_LINK_WARNING ("isblank is unportable - " \
|
||||
"use gnulib module isblank for portability"), \
|
||||
isblank (c))
|
||||
#endif
|
||||
|
||||
#endif /* _GL_CTYPE_H */
|
||||
#endif /* _GL_CTYPE_H */
|
||||
@@ -0,0 +1,58 @@
|
||||
/* -*- buffer-read-only: t -*- vi: set ro: */
|
||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||
#line 1
|
||||
/* A substitute for ISO C99 <ctype.h>, for platforms on which it is incomplete.
|
||||
|
||||
Copyright (C) 2009, 2010 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
|
||||
|
||||
/* Written by Bruno Haible. */
|
||||
|
||||
/*
|
||||
* ISO C 99 <ctype.h> for platforms on which it is incomplete.
|
||||
* <http://www.opengroup.org/onlinepubs/9699919799/basedefs/ctype.h.html>
|
||||
*/
|
||||
|
||||
#ifndef _GL_CTYPE_H
|
||||
|
||||
#if __GNUC__ >= 3
|
||||
@PRAGMA_SYSTEM_HEADER@
|
||||
#endif
|
||||
|
||||
/* Include the original <ctype.h>. */
|
||||
/* The include_next requires a split double-inclusion guard. */
|
||||
#@INCLUDE_NEXT@ @NEXT_CTYPE_H@
|
||||
|
||||
#ifndef _GL_CTYPE_H
|
||||
#define _GL_CTYPE_H
|
||||
|
||||
/* The definition of GL_LINK_WARNING is copied here. */
|
||||
|
||||
/* Return non-zero if c is a blank, i.e. a space or tab character. */
|
||||
#if @GNULIB_ISBLANK@
|
||||
# if !@HAVE_ISBLANK@
|
||||
extern int isblank (int c);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef isblank
|
||||
# define isblank(c) \
|
||||
(GL_LINK_WARNING ("isblank is unportable - " \
|
||||
"use gnulib module isblank for portability"), \
|
||||
isblank (c))
|
||||
#endif
|
||||
|
||||
#endif /* _GL_CTYPE_H */
|
||||
#endif /* _GL_CTYPE_H */
|
||||
@@ -1,6 +1,6 @@
|
||||
/* help detect directory cycles efficiently
|
||||
|
||||
Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 2003-2006, 2009-2010 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
|
||||
@@ -70,12 +70,12 @@ cycle_check (struct cycle_check_state *state, struct stat const *sb)
|
||||
if (is_zero_or_power_of_two (++(state->chdir_counter)))
|
||||
{
|
||||
/* On all architectures that we know about, if the counter
|
||||
overflows then there is a directory cycle here somewhere,
|
||||
even if we haven't detected it yet. Typically this happens
|
||||
only after the counter is incremented 2**64 times, so it's a
|
||||
fairly theoretical point. */
|
||||
overflows then there is a directory cycle here somewhere,
|
||||
even if we haven't detected it yet. Typically this happens
|
||||
only after the counter is incremented 2**64 times, so it's a
|
||||
fairly theoretical point. */
|
||||
if (state->chdir_counter == 0)
|
||||
return true;
|
||||
return true;
|
||||
|
||||
state->dev_ino.st_dev = sb->st_dev;
|
||||
state->dev_ino.st_ino = sb->st_ino;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* help detect directory cycles efficiently
|
||||
|
||||
Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 2003-2004, 2006, 2009-2010 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
|
||||
@@ -35,18 +35,18 @@ struct cycle_check_state
|
||||
void cycle_check_init (struct cycle_check_state *state);
|
||||
bool cycle_check (struct cycle_check_state *state, struct stat const *sb);
|
||||
|
||||
# define CYCLE_CHECK_REFLECT_CHDIR_UP(State, SB_dir, SB_subdir) \
|
||||
do \
|
||||
{ \
|
||||
# define CYCLE_CHECK_REFLECT_CHDIR_UP(State, SB_dir, SB_subdir) \
|
||||
do \
|
||||
{ \
|
||||
/* You must call cycle_check at least once before using this macro. */ \
|
||||
if ((State)->chdir_counter == 0) \
|
||||
abort (); \
|
||||
if (SAME_INODE ((State)->dev_ino, SB_subdir)) \
|
||||
{ \
|
||||
(State)->dev_ino.st_dev = (SB_dir).st_dev; \
|
||||
(State)->dev_ino.st_ino = (SB_dir).st_ino; \
|
||||
} \
|
||||
} \
|
||||
if ((State)->chdir_counter == 0) \
|
||||
abort (); \
|
||||
if (SAME_INODE ((State)->dev_ino, SB_subdir)) \
|
||||
{ \
|
||||
(State)->dev_ino.st_dev = (SB_dir).st_dev; \
|
||||
(State)->dev_ino.st_ino = (SB_dir).st_ino; \
|
||||
} \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#endif
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user