merging coreutils-7.5 into trunk (c89 fixes needed)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32796 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
fb086488a9
commit
b5dc2c1535
@ -76,6 +76,7 @@ sleep: Jim Meyering, Paul Eggert
|
|||||||
sort: Mike Haertel, Paul Eggert
|
sort: Mike Haertel, Paul Eggert
|
||||||
split: Torbjörn Granlund, Richard M. Stallman
|
split: Torbjörn Granlund, Richard M. Stallman
|
||||||
stat: Michael Meskes
|
stat: Michael Meskes
|
||||||
|
stdbuf: Pádraig Brady
|
||||||
stty: David MacKenzie
|
stty: David MacKenzie
|
||||||
su: David MacKenzie
|
su: David MacKenzie
|
||||||
sum: Kayvan Aghaiepour, David MacKenzie
|
sum: Kayvan Aghaiepour, David MacKenzie
|
||||||
|
@ -1,5 +1,883 @@
|
|||||||
|
2009-08-20 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
version 7.5
|
||||||
|
* NEWS: Record release date.
|
||||||
|
|
||||||
|
tests: skip the stdbuf tests when the abs build directory name is bogus
|
||||||
|
* tests/misc/stdbuf: Avoid spurious failure when the directory name
|
||||||
|
from which we'd set LD_PRELOAD contains unsafe characters.
|
||||||
|
|
||||||
|
install: avoid a portability bug when compiling with non-gcc
|
||||||
|
* src/install.c (extra_mode): Be careful to return only a 0 or 1
|
||||||
|
value, since this is a "bool" function, and there are still some
|
||||||
|
compilers for which this is necessary. Without this change,
|
||||||
|
Bernhard Voelker reported that the Forte Developer 7 C 5.4 2002/03/09
|
||||||
|
compiler would produce a malfunctioning "install" binary. Details in
|
||||||
|
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/17710/focus=17760
|
||||||
|
|
||||||
|
2009-08-19 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
tests: make install-C slightly less prone to confusion
|
||||||
|
* tests/install/install-C: Invoke framework_failure, if necessary.
|
||||||
|
|
||||||
|
build: avoid "make dist" failure in man/
|
||||||
|
Now that "make check" no longer builds programs like arch, ...
|
||||||
|
* src/Makefile.am (dist-hook): Depend on $(all_programs), so that the
|
||||||
|
subsequent build in man/ doesn't fail due to lack of a program like
|
||||||
|
arch that is not going to be installed.
|
||||||
|
|
||||||
|
2009-08-18 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
build: update from gnulib
|
||||||
|
* gnulib: Update submodule to latest.
|
||||||
|
|
||||||
|
2009-08-18 Giuseppe Scrivano <gscrivano@gnu.org>
|
||||||
|
|
||||||
|
nl: deprecate --page-increment in favor of --line-increment
|
||||||
|
* NEWS: Mention the change.
|
||||||
|
* doc/coreutils.texi: Document the new --line-increment option.
|
||||||
|
* src/nl.c (struct option): Add --line-increment,
|
||||||
|
(usage): Describe it,
|
||||||
|
(main): Use it.
|
||||||
|
|
||||||
|
2009-08-18 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
tests: stdbuf: fix a bug in test script
|
||||||
|
* tests/misc/stdbuf: Use skip_test_ only after it's defined.
|
||||||
|
Reported by Berhnard Voelker.
|
||||||
|
|
||||||
|
(sc_check-AUTHORS): Rename rule from check-AUTHORS.
|
||||||
|
|
||||||
|
build: perform check-AUTHORS via syntax-check, not via "make check"
|
||||||
|
* src/Makefile.am (check): Don't depend on check-AUTHORS.
|
||||||
|
That check fails on systems for which a program like stdbuf is
|
||||||
|
not built. Instead, move this check to "make syntax-check".
|
||||||
|
(sc_check-AUTHORS): Rename rule from check-AUTHORS.
|
||||||
|
* cfg.mk (sc_check-AUTHORS): New rule.
|
||||||
|
Reported by Berhnard Voelker.
|
||||||
|
|
||||||
|
sort: use more portable initialization syntax
|
||||||
|
* src/sort.c (find_unit_order): Spell out 256-element static
|
||||||
|
initializer, rather than relying on C99 syntax.
|
||||||
|
Required for Forte Developer 7 C 5.4 2002/03/09 on Solaris 10.
|
||||||
|
Reported by Bernhard Voelker.
|
||||||
|
|
||||||
|
2009-08-17 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
build: suppress warnings due to gcc's new -Wjump-misses-init
|
||||||
|
* configure.ac: Ignore -Wjump-misses-init violations in remove.c.
|
||||||
|
|
||||||
|
build: update from gnulib
|
||||||
|
* gnulib: Update submodule to latest.
|
||||||
|
|
||||||
|
2009-08-16 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
tests: tail-2/append-only: don't discard stderr
|
||||||
|
* tests/tail-2/append-only: Don't discard a diagnostic that
|
||||||
|
may help explain why this test fails for some. Details in
|
||||||
|
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/17621/focus=17641
|
||||||
|
|
||||||
|
2009-08-14 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
tests: skip the misc/stdbuf test if stdbuf was not built
|
||||||
|
* tests/misc/stdbuf: Skip this test when stdbuf is not built.
|
||||||
|
Reported by Eric Blake.
|
||||||
|
|
||||||
|
build: use gnulib's getopt-gnu module (getopt is now deprecated)
|
||||||
|
* bootstrap.conf (gnulib_modules): Gnulib's getopt module is now
|
||||||
|
deprecated; use the new, preferred name, getopt-gnu.
|
||||||
|
* gnulib: Update to latest.
|
||||||
|
|
||||||
|
2009-08-14 Pádraig Brady <P@draigBrady.com>
|
||||||
|
|
||||||
|
cp,mv: fix issues with preserving timestamps of copied symlinks
|
||||||
|
* src/copy.c (copy_internal): On systems without utimensat don't
|
||||||
|
use utimens on a symlink, as that would dereference the symlink.
|
||||||
|
* tests/cp/abuse: To work around possible attribute preservation
|
||||||
|
failures breaking the test, use cp -dR rather than cp -a.
|
||||||
|
|
||||||
|
doc: clarify the cp --reflink NEWS
|
||||||
|
* NEWS: Remove the description associated with the removed
|
||||||
|
experimental code which unconditionally tried to reflink() on copy.
|
||||||
|
Also clarify where --reflink works exactly.
|
||||||
|
|
||||||
|
2009-08-13 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
tests: raise ulimit virt-mem limit to avoid new failure
|
||||||
|
* tests/cp/link-heap: Raise limit from 16MB to ~20MB,
|
||||||
|
to avoid spurious failure on rawhide.
|
||||||
|
|
||||||
|
2009-08-13 Pádraig Brady <P@draigBrady.com>
|
||||||
|
|
||||||
|
tail: fix tail -f failure when inotify used
|
||||||
|
* src/tail.c (tail_forever_inotify): Remove the redundant and
|
||||||
|
incorrect error check of the return from inotify_add_watch().
|
||||||
|
Also initialize the wd member of each File_spec to an invalid value.
|
||||||
|
Reported by C de-Avillez.
|
||||||
|
|
||||||
|
dd: fix a signal handling race
|
||||||
|
* src/dd.c (main): Install the signal handlers at startup
|
||||||
|
rather than just before the copy starts. In this way signals
|
||||||
|
received before the copy (like during a slow truncate for e.g.)
|
||||||
|
will be deferred and handled consistently.
|
||||||
|
* THANKS: Add Bernhard's email address.
|
||||||
|
* NEWS: Mention the fix.
|
||||||
|
Reported by Bernhard Voelker.
|
||||||
|
|
||||||
|
2009-08-12 Pádraig Brady <P@draigBrady.com>
|
||||||
|
|
||||||
|
tests: improve one of the tail --pid tests
|
||||||
|
* tests/tail-2/pid: Speed up the test by specifying a
|
||||||
|
timeout of 100ms rather than the default 1s. Also
|
||||||
|
skip the test instead of failing in the unlikely case
|
||||||
|
were the pid required to be missing pid is present.
|
||||||
|
|
||||||
|
2009-08-10 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
nl, pinky: replace uses of strcat
|
||||||
|
* src/nl.c (main): Avoid strcat, on principle. Use stpcpy instead.
|
||||||
|
* src/pinky.c (print_long_entry): Likewise.
|
||||||
|
|
||||||
|
build: update from gnulib, for HOST_NAME_MAX on solaris 10
|
||||||
|
* gnulib: Update submodule to latest.
|
||||||
|
|
||||||
|
2009-08-07 Giuseppe Scrivano <gscrivano@gnu.org>
|
||||||
|
|
||||||
|
cp: accept the --reflink option
|
||||||
|
* NEWS: Mention it.
|
||||||
|
* doc/coreutils.texi (cp invocation): Describe it.
|
||||||
|
* src/copy.h (struct cp_options) [reflink]: New member.
|
||||||
|
* src/copy.c (usage): Describe it.
|
||||||
|
(copy_reg): If reflink is true try to clone the file.
|
||||||
|
(main): Check for --reflink.
|
||||||
|
(cp_option_init): Initialize the new member.
|
||||||
|
* src/install.c (cp_option_init): Initialize the new member.
|
||||||
|
* src/mv.c (cp_option_init): Likewise.
|
||||||
|
* tests/cp/sparse: Add a new test case.
|
||||||
|
|
||||||
|
2009-08-07 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
dd: preserve semantics of O_DIRECT even for final block
|
||||||
|
* src/dd.c: Include "ignore-value.h"
|
||||||
|
(iwrite): When disabling O_DIRECT, try to compensate
|
||||||
|
via POSIX_FADV_DONTNEED and fsync.
|
||||||
|
Suggested by Eric Sandeen.
|
||||||
|
|
||||||
|
2009-08-06 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
maint: move selinux-at module from gl/ to gnulib
|
||||||
|
* gl/lib/selinux-at.c: Remove file.
|
||||||
|
* gl/lib/selinux-at.h: Likewise.
|
||||||
|
* gl/modules/selinux-at: Likewise.
|
||||||
|
* gnulib: update to latest, to get the new module.
|
||||||
|
|
||||||
|
dd: work around buffer length restrictions with oflag=direct (O_DIRECT)
|
||||||
|
dd oflag=direct would fail to copy a file with size that is
|
||||||
|
not a multiple of 512 (destination file system specific)
|
||||||
|
|
||||||
|
* NEWS (Bug fixes): Mention it.
|
||||||
|
* src/dd.c (iwrite): Turn off O_DIRECT for any
|
||||||
|
smaller-than-obs-sized write. Don't bother to restore it.
|
||||||
|
* tests/dd/direct: New test for the above.
|
||||||
|
* tests/Makefile.am (TESTS): Add dd/direct.
|
||||||
|
* doc/coreutils.texi (dd invocation): Mention oflag=direct
|
||||||
|
buffer size restriction.
|
||||||
|
Details in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/17586
|
||||||
|
Reported by Eric Sandeen.
|
||||||
|
|
||||||
|
2009-08-04 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
dd: remove unnecessary #if HAVE_FTRUNCATE
|
||||||
|
* src/dd.c (main): Remove unnecessary cpp directives.
|
||||||
|
Gnulib guarantees that ftruncate is usable.
|
||||||
|
|
||||||
|
cp -pP (and e.g., -a): preserve time stamps on symlinks, too
|
||||||
|
* src/copy.c (utimensat_if_possible): New function.
|
||||||
|
(copy_internal): Remove variable, "preserve_metadata".
|
||||||
|
Replace with "dest_is_symlink". That covers all cases but one:
|
||||||
|
the one in which cp --link has created hard links to non-directories.
|
||||||
|
In that case, there is no need to update attributes of the links.
|
||||||
|
Use utimensat_if_possible, to preserve timestamps of symlinks.
|
||||||
|
* NEWS (New features): Mention this.
|
||||||
|
* tests/Makefile.am (TESTS): Add cp/preserve-slink-time.
|
||||||
|
* tests/cp/preserve-slink-time: New file.
|
||||||
|
* m4/jm-macros.m4 (coreutils_MACROS): Test for utimensat.
|
||||||
|
Reported in http://bugzilla.redhat.com/230866
|
||||||
|
|
||||||
|
2009-08-04 Kamil Dudka <kdudka@redhat.com>
|
||||||
|
|
||||||
|
install runs faster again with SELinux enabled
|
||||||
|
* m4/jm-macros.m4: Pull in SELinux libraries while checking for
|
||||||
|
matchpathcon_init_prefix (). Emit configure warning when not found
|
||||||
|
with SELinux enabled.
|
||||||
|
* NEWS (Bug fixes): Mention it.
|
||||||
|
The bug was introduced in coreutils-7.0 via commit 0647f3eb, 2008-06-02,
|
||||||
|
"accommodate older SELinux which lacks matchpathcon_init_prefix".
|
||||||
|
|
||||||
|
2009-08-04 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
maint: move the update-copyright rule to gnulib's maint.mk
|
||||||
|
* gnulib: Update submodule to get latest maint.mk.
|
||||||
|
* Makefile.am (update-copyright): Remove rule; now it's in maint.mk.
|
||||||
|
* m4/check-decl.m4: Update sole remaining copyright year list.
|
||||||
|
|
||||||
|
2009-07-31 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
build: *really* update to a usable gnulib commit
|
||||||
|
|
||||||
|
build: update to a usable gnulib commit
|
||||||
|
The commit, 5ef90695, 2009-07-29, "maint: move update-copyright
|
||||||
|
to gnulib" recorded a local-only commit.
|
||||||
|
Reported by Pádraig Brady.
|
||||||
|
|
||||||
|
2009-07-30 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
tests: new function: require_openat_support_
|
||||||
|
* tests/rm/inaccessible: Factor out openat-support-detection code...
|
||||||
|
* tests/test-lib.sh (require_openat_support_): ...into this new function.
|
||||||
|
|
||||||
|
tail: tweak indentation
|
||||||
|
* src/tail.c (tail_forever_inotify): Adjust indentation of continued line.
|
||||||
|
|
||||||
|
2009-07-30 Pádraig Brady <P@draigBrady.com>
|
||||||
|
|
||||||
|
tail: properly parse fractional seconds when monitoring a pid
|
||||||
|
* src/tail.c (tail_forever_inotify): The fractional
|
||||||
|
part of the delay was 1000 times too large.
|
||||||
|
* tests/tail-2/pid: Add a test to ensure the
|
||||||
|
timeout happens for this case.
|
||||||
|
|
||||||
|
2009-07-30 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
tests: test for just-fixed tail --pid bug
|
||||||
|
* tests/tail-2/pid: Ensure tail exits successfully when PID dies.
|
||||||
|
|
||||||
|
2009-07-30 Giuseppe Scrivano <gscrivano@gnu.org>
|
||||||
|
|
||||||
|
tail: exit successfully upon watched process death
|
||||||
|
* src/tail.c (tail_forever_inotify): If a PID is specified and the
|
||||||
|
watched process dies, exit with status EXIT_SUCCESS, rather than
|
||||||
|
falling through to an EXIT_FAILURE.
|
||||||
|
|
||||||
|
2009-07-29 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
maint: move update-copyright to gnulib
|
||||||
|
* build-aux/update-copyright: Remove file.
|
||||||
|
* bootstrap.conf (gnulib_modules): Add update-copyright.
|
||||||
|
* gnulib: Update submodule to latest.
|
||||||
|
|
||||||
|
maint: make update-copyright work in yet another case
|
||||||
|
* build-aux/update-copyright: Handle the case in which "\n#"
|
||||||
|
appears between the final year number and the copyright holder name.
|
||||||
|
* m4/lib-check.m4: Update copyright year list.
|
||||||
|
Reported by Joel E. Denny.
|
||||||
|
|
||||||
|
maint: update NEWS
|
||||||
|
* NEWS (New features): Mention it.
|
||||||
|
|
||||||
|
2009-07-29 Giuseppe Scrivano <gscrivano@gnu.org>
|
||||||
|
|
||||||
|
cp: support btrfs' copy-on-write file clone operation
|
||||||
|
* src/copy.c [HAVE_SYS_IOCTL_H]: Include <sys/ioctl.h>.
|
||||||
|
(BTRFS_IOCTL_MAGIC, BTRFS_IOC_CLONE): Define.
|
||||||
|
(clone_file): New function.
|
||||||
|
(copy_reg): Use the btrfs clone operation if possible.
|
||||||
|
|
||||||
|
2009-07-29 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
maint: update sleep.c's copyright year list
|
||||||
|
* src/sleep.c: Update copyright year list to include 2009.
|
||||||
|
* tests/sort-time/rand-gen: Remove long-unused file.
|
||||||
|
* tests/sort-time/README: Likewise.
|
||||||
|
|
||||||
|
2009-07-29 Joel E. Denny <jdenny@clemson.edu>
|
||||||
|
|
||||||
|
maint: improve update-copyright rule
|
||||||
|
* Makefile.am (update-copyright): Relax the selection rule
|
||||||
|
to match any file containing the word "Copyright".
|
||||||
|
Correct the exclusion rule so that it also excludes ChangeLog
|
||||||
|
and COPYING files that are not in the top level directory.
|
||||||
|
|
||||||
|
2009-07-29 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
maint: update-copyright: fix just-introduced bug
|
||||||
|
* build-aux/update-copyright: ... and revert-for-now the
|
||||||
|
change that made this script invoke localtime only once.
|
||||||
|
|
||||||
|
maint: make update-copyright handle more cases
|
||||||
|
* build-aux/update-copyright: Handle cases in which the final
|
||||||
|
year number and copyright holder are on separate lines.
|
||||||
|
Prompted by a report from Joel E. Denny.
|
||||||
|
Also, do not invoke localtime for each line we process.
|
||||||
|
|
||||||
|
2009-07-29 Pádraig Brady <P@draigBrady.com>
|
||||||
|
|
||||||
|
doc: fix the generated HTML index
|
||||||
|
* doc/coreutils.texi: Move the "SELinux context" section
|
||||||
|
down below the "System context" nodes so that the HTML
|
||||||
|
index is generated correctly. Also some extraneous and missing
|
||||||
|
'.' characters were corrected in the index.
|
||||||
|
Reported by Benno Schulenberg.
|
||||||
|
|
||||||
|
2009-07-28 Giuseppe Scrivano <gscrivano@gnu.org>
|
||||||
|
|
||||||
|
tail: use the inotify backend also with --pid=PID
|
||||||
|
* src/tail.c (tail_forever_inotify): When a PID is specified, use
|
||||||
|
select to block for no more than sleep_interval seconds at a time,
|
||||||
|
and check for process death upon timeout.
|
||||||
|
(main): Adapt to new tail_forever_inotify interface.
|
||||||
|
|
||||||
|
2009-07-27 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
tests: new test for bug in ls -1U dir arg ...
|
||||||
|
* tests/misc/ls-misc (multi-arg-U1): New test.
|
||||||
|
|
||||||
|
2009-07-27 Kamil Dudka <kdudka@redhat.com>
|
||||||
|
|
||||||
|
ls -1U dir arg ... now works again
|
||||||
|
* src/ls.c (print_dir): Emit "$dir_name:\n" *before* accumulating (and
|
||||||
|
possibly printing) directory entry names.
|
||||||
|
The bug was introduced in coreutils-7.0 via commit
|
||||||
|
8d974b00, 2008-07-30, "ls -U1 now uses constant memory".
|
||||||
|
Reported by Julian Bradfield.
|
||||||
|
* NEWS (Bug fixes): Mention it.
|
||||||
|
|
||||||
|
2009-07-27 Heikki Orsila <heikki.orsila@iki.fi>
|
||||||
|
|
||||||
|
tr: improve --help's description of --complement (-c)
|
||||||
|
|
||||||
|
2009-07-27 Pádraig Brady <P@draigBrady.com>
|
||||||
|
|
||||||
|
doc: add a sort by line length example
|
||||||
|
* doc/coreutils.texi (sort invocation): Add an example showing how
|
||||||
|
to sort data not directly supported by the sort command.
|
||||||
|
|
||||||
|
doc: mention realpath in the readlink info
|
||||||
|
* doc/coreutils.texi (readlink invocation): Add realpath to the index,
|
||||||
|
and also mention it in the readlink description so people
|
||||||
|
searching for that functionality can easily make the connection.
|
||||||
|
|
||||||
|
2009-07-26 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
build: use a fixed-name temporary in man/Makefile.am
|
||||||
|
* man/Makefile.am (check-x-vs-1): Using a fixed-name temporary file
|
||||||
|
is better than one ending in -$$, because many -$$-suffixed files
|
||||||
|
may accumulate over time.
|
||||||
|
|
||||||
|
2009-07-24 Kamil Dudka <kdudka@redhat.com>
|
||||||
|
|
||||||
|
doc: improve readlink description here, too
|
||||||
|
* doc/coreutils.texi (readlink invocation): Update menus.
|
||||||
|
Add @cindex entries.
|
||||||
|
|
||||||
|
2009-07-24 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
readlink: improve one-line summary: prints canonical file names, too
|
||||||
|
* src/readlink.c (usage): Adjust one-line summary.
|
||||||
|
* man/readlink.x: Likewise.
|
||||||
|
Suggested by Kamil Dudka.
|
||||||
|
|
||||||
|
2009-07-21 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
build: update from gnulib
|
||||||
|
* gnulib: Update submodule to latest.
|
||||||
|
|
||||||
|
2009-07-14 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
doc: point to Guile's ChangeLog-writing guidelines
|
||||||
|
* HACKING (Commit log requirements): Point to Guile's
|
||||||
|
http://www.gnu.org/software/guile/changelogs/guile-changelogs_3.html.
|
||||||
|
Mention that a bit of prose can be welcome.
|
||||||
|
|
||||||
|
2009-07-11 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
tail: adjust type of a local variable
|
||||||
|
* src/tail.c (tail_forever_inotify): Declare "len" to be of type
|
||||||
|
size_t, not ssize_t, since the former is what safe_read returns.
|
||||||
|
|
||||||
|
2009-07-09 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
tests: avoid false-positive cp/link-heap failure
|
||||||
|
* tests/cp/link-heap: Increase address space limit from 14000KB
|
||||||
|
to 16000KB, to avoid failure with Debian unstable's libc6-dev-2.9-19
|
||||||
|
|
||||||
|
build: avoid build warn/failure due to -Wstack-protector
|
||||||
|
* configure.ac: Do not enable -Wstack-protector.
|
||||||
|
Otherwise, at least df.c would provoke a warning.
|
||||||
|
|
||||||
|
2009-07-08 Ondřej Vašík <ovasik@redhat.com>
|
||||||
|
|
||||||
|
copy.c: remove a duplicate expression
|
||||||
|
* src/copy.c (copy_attr_error): remove a redundant expression
|
||||||
|
added in commit e0cf592f, 2009-04-27, "factor out test for errno ...".
|
||||||
|
|
||||||
|
2009-07-08 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
build: update from gnulib
|
||||||
|
* gnulib: Update submodule to latest.
|
||||||
|
|
||||||
|
tail: use size_t for counter and index variables, ...
|
||||||
|
* src/tail.c (any_live_files): ... not "int" or even unsigned int
|
||||||
|
(tail_forever, tail_forever_inotify, main): Likewise.
|
||||||
|
|
||||||
|
tail: declare "file descriptor" variable to be "int", not size_t
|
||||||
|
* src/tail.c (tail_forever_inotify): Use "int", not size_t
|
||||||
|
as the type of a file descriptor variable.
|
||||||
|
|
||||||
|
2009-07-04 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
move argv-iter module to gnulib
|
||||||
|
* gl/lib/argv-iter.c: Remove file.
|
||||||
|
* gl/lib/argv-iter.h: Remove file.
|
||||||
|
* gl/modules/argv-iter: Remove file.
|
||||||
|
* gl/modules/argv-iter-tests: Remove file.
|
||||||
|
* gl/tests/test-argv-iter.c: Remove file.
|
||||||
|
* gnulib: Update submodule, to get argv-iter
|
||||||
|
|
||||||
|
2009-07-04 Giuseppe Scrivano <gscrivano@gnu.org>
|
||||||
|
|
||||||
|
tests: refactor code to use require_proc_pid_status_
|
||||||
|
* tests/tail-2/tail-n0f: Read the process status using the test-lib.sh
|
||||||
|
require_proc_pid_status_ function.
|
||||||
|
|
||||||
|
tests: use the "nobody" user's group as the default group id
|
||||||
|
* tests/chroot/credentials: Use the group id, not its name.
|
||||||
|
* tests/test-lib.sh (NON_ROOT_GROUP): Use the "nobody" user's group in
|
||||||
|
place of "nogroup".
|
||||||
|
|
||||||
|
2009-07-03 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
build: update from gnulib
|
||||||
|
* gnulib: Update submodule to latest.
|
||||||
|
|
||||||
|
2009-07-03 Pádraig Brady <P@draigBrady.com>
|
||||||
|
|
||||||
|
sort: allow SI and IEC units on separate human sort fields
|
||||||
|
* src/sort.c: Store the si_present state per key rather than globally
|
||||||
|
* tests/misc/sort: Add a check that would have previously failed.
|
||||||
|
Also add a test to demonstrate that invalid IEC/SI mixtures are not
|
||||||
|
always noticed when they're not significant to the sort.
|
||||||
|
|
||||||
|
2009-07-03 Giuseppe Scrivano <gscrivano@gnu.org>
|
||||||
|
|
||||||
|
tail: avoid an inotify portability problem in kernels prior to 2.6.21
|
||||||
|
* src/tail.c (tail_forever_inotify): Handle the special case in which
|
||||||
|
an old inotify watcher returns 0. Affects kernels in [2.6.13, 2.6.21).
|
||||||
|
|
||||||
|
2009-07-03 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
tests: tail-2/wait: rename internal file name
|
||||||
|
* tests/tail-2/wait: Rename file from not_accessible to unreadable,
|
||||||
|
since all the test cares about is readability.
|
||||||
|
|
||||||
|
2009-07-03 Giuseppe Scrivano <gscrivano@gnu.org>
|
||||||
|
|
||||||
|
tests: tail-2/wait: don't fail when run as root
|
||||||
|
* tests/tail-2/wait: Ensure that the unreadable file really is not
|
||||||
|
readable before trying to run "tail -f" on it.
|
||||||
|
|
||||||
|
2009-07-03 Pádraig Brady <P@draigBrady.com>
|
||||||
|
|
||||||
|
doc: update the info on sort -b and -k
|
||||||
|
* doc/coreutils.texi (sort invocation): Mention in the description
|
||||||
|
of -b, that the locale can also affect whether blanks are significant.
|
||||||
|
Update the list of ordering options for a --key that cause it
|
||||||
|
to not inherit any global ordering options.
|
||||||
|
Update the list of ordering options that implicitly skip whitespace.
|
||||||
|
|
||||||
|
maint: generalize the development prerequisites docs
|
||||||
|
* README-hacking: Add a little more high level info and
|
||||||
|
merge notes on specific developer prerequisites into README-prereq
|
||||||
|
* README-prereq: Remove the Fedora 8 specific information
|
||||||
|
and generalize the information to be applicable to any system.
|
||||||
|
|
||||||
|
2009-06-29 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
tail: add comments noting potential inotify-related problems
|
||||||
|
* src/tail.c (tail_forever_inotify): Add two FIXME comments.
|
||||||
|
|
||||||
|
2009-06-28 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
maint: bootstrap: merge changes from gnulib
|
||||||
|
* bootstrap: Indent using spaces, not TABs.
|
||||||
|
|
||||||
|
maint: bootstrap: sync submodule usage from gnulib
|
||||||
|
* bootstrap: Config for git submodule use only if .gitmodules exists.
|
||||||
|
|
||||||
|
maint: bootstrap: split a few long lines
|
||||||
|
* bootstrap (found_aux_dir): Avoid lines longer than 80 columns.
|
||||||
|
|
||||||
|
2009-06-27 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
maint: don't change COPYING
|
||||||
|
* COPYING: Don't modify Copyright date list in imported file.
|
||||||
|
This file is one of very few exceptions in that we version-control it,
|
||||||
|
even though its primary source is another package.
|
||||||
|
Spotted by Eric Blake.
|
||||||
|
|
||||||
|
maint: add a rule to automate the annual copyright-year-update process
|
||||||
|
* build-aux/update-copyright: New file.
|
||||||
|
* Makefile.am (changelog_etc): Add update-copyright.
|
||||||
|
(update-copyright): New rule.
|
||||||
|
|
||||||
|
2009-06-27 Pádraig Brady <P@draigBrady.com>
|
||||||
|
|
||||||
|
stdbuf: fix to stop -i option causing an assertion
|
||||||
|
* src/stdbuf.c (main): Fix the array bounds check in the assert
|
||||||
|
* tests/misc/stdbuf: Add a test for all standard streams
|
||||||
|
|
||||||
|
2009-06-25 Pádraig Brady <P@draigBrady.com>
|
||||||
|
|
||||||
|
doc: clarify the tail inotify NEWS
|
||||||
|
* NEWS: Say why inotify was used
|
||||||
|
|
||||||
|
2009-06-23 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
maint: update all Copyright year lists to include 2009
|
||||||
|
|
||||||
|
maint: remove old TODO files
|
||||||
|
* lib/TODO: Remove file.
|
||||||
|
* tests/join/TODO: Likewise.
|
||||||
|
|
||||||
|
doc: README-hacking tweak
|
||||||
|
* README-hacking: Move the "While building..." sentence down
|
||||||
|
to where it belongs.
|
||||||
|
|
||||||
|
tests: tail-2/pid: include more info upon failure
|
||||||
|
* tests/tail-2/pid: Print unexpected $state upon failing.
|
||||||
|
|
||||||
|
2009-06-20 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
doc: typo fix in README-hacking
|
||||||
|
* README-hacking: Fix a typo.
|
||||||
|
Don't make building from a git-cloned tree sound so hard.
|
||||||
|
|
||||||
|
build: update from gnulib (hash module updates; maint.mk tweak)
|
||||||
|
* gnulib: Update submodule to latest.
|
||||||
|
|
||||||
|
2009-06-17 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
doc: fix a typo
|
||||||
|
* doc/coreutils.texi (stdbuf invocation): Insert missing "to".
|
||||||
|
|
||||||
|
2009-06-17 Pádraig Brady <P@draigBrady.com>
|
||||||
|
|
||||||
|
stdbuf: A new program to run a command with modified stdio buffering
|
||||||
|
* AUTHORS: Register as the author.
|
||||||
|
* NEWS: Mention this change.
|
||||||
|
* README: Add stdbuf command to list.
|
||||||
|
* configure.ac: Only enable on ELF systems with GCC.
|
||||||
|
* cfg.mk (sc_system_h_headers): Use VC_LIST_EXCEPT rather than
|
||||||
|
VC_LIST, so we can add an exception, if needed.
|
||||||
|
* .x-sc_system_h_headers: New file. Exempt libstdbuf.c.
|
||||||
|
* Makefile.am (syntax_check_exceptions): Add .x-sc_system_h_headers.
|
||||||
|
* doc/coreutils.texi (stdbuf invocation): Add stdbuf info.
|
||||||
|
* man/.gitignore: Ignore generated manpage.
|
||||||
|
* src/.gitignore: Ignore stdbuf and libstdbuf.so binaries.
|
||||||
|
* man/Makefile.am (stdbuf.1): Add dependency.
|
||||||
|
* man/stdbuf.x: New file with example usage.
|
||||||
|
* po/POTFILES.in: Reference new command and shared library sources.
|
||||||
|
* src/Makefile.am (build_if_possible__progs): Add stdbuf and libstdbuf,
|
||||||
|
(pkglib_PROGRAMS): Reference optional shared lib,
|
||||||
|
(libstdbuf_so_LDADD): Ensure we don't link with non PIC libcoreutils.a.
|
||||||
|
(libstdbuf_so_LDFLAGS): Add -shared GCC option,
|
||||||
|
(libstdbuf_so_CFLAGS): Add -fPIC GCC option.
|
||||||
|
(check-README): Exclude libstbuf.
|
||||||
|
(check-AUTHORS): ditto.
|
||||||
|
(sc_tight_scope): Exclude functions starting with __.
|
||||||
|
* src/libstdbuf.c: The LD_PRELOAD shared library to control buffering.
|
||||||
|
* src/stdbuf.c: New file to setup env variables before execing command.
|
||||||
|
* tests/Makefile.am: Reference new test file.
|
||||||
|
* tests/misc/help-version: Set expected exit codes.
|
||||||
|
* tests/misc/invalid-opt: ditto.
|
||||||
|
* tests/misc/stdbuf: Add 9 tests.
|
||||||
|
|
||||||
|
2009-06-16 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
doc: cp: describe an oddity of combining -H/-L and --preserve=links
|
||||||
|
* doc/coreutils.texi (cp invocation) [-L]: Elaborate.
|
||||||
|
[--preserve=links]: Remove comments saying that we need documentation
|
||||||
|
for just this situation. Provide more explanation and examples.
|
||||||
|
Reported by Brian M. Carlson in http://bugs.debian.org/525048.
|
||||||
|
|
||||||
|
2009-06-15 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
maint: revert last change: we're not ready for "local" in scripts, yet
|
||||||
|
Revert "use a local var: more readable"
|
||||||
|
This reverts commit c0d82452883a10911c9cbc69c84144d99b7e6b08.
|
||||||
|
|
||||||
|
use a local var: more readable
|
||||||
|
|
||||||
|
2009-06-15 Giuseppe Scrivano <gscrivano@gnu.org>
|
||||||
|
|
||||||
|
tail: use inotify if it is available
|
||||||
|
* NEWS: Document the new feature.
|
||||||
|
* m4/jm-macros.m4: Check if inotify is present.
|
||||||
|
* src/tail.c (tail_forever_inotify): New function.
|
||||||
|
(main): Use the inotify-based function, if possible.
|
||||||
|
* tests/Makefile.am: Add new tests for tail.
|
||||||
|
* tests/test-lib.sh (require_proc_pid_status_, get_process_status_):
|
||||||
|
New functions.
|
||||||
|
* tests/tail-2/pid: New file.
|
||||||
|
* tests/tail-2/wait: New file.
|
||||||
|
* tests/tail-2/tail-n0f: Refactor code into the test-lib.sh
|
||||||
|
require_proc_pid_status_ function.
|
||||||
|
|
||||||
|
2009-06-13 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
diag: say "failed to...", rather than "cannot..." in a few diagnostics
|
||||||
|
* src/chroot.c (main): ...it's more precise.
|
||||||
|
* src/nohup.c (main): Likewise.
|
||||||
|
* src/setuidgid.c (main): Likewise.
|
||||||
|
* src/timeout.c (main): Likewise.
|
||||||
|
|
||||||
|
2009-06-13 Cliff Miller <cbm@whatexit.org>
|
||||||
|
|
||||||
|
sort: Ignore fields where end position is before the start position
|
||||||
|
* NEWS: Mention the fix
|
||||||
|
* THANKS: Add Cliff Miller
|
||||||
|
* src/sort.c (keycompare): Ensure lima >= texta
|
||||||
|
* tests/misc/sort: Add 3 corresponding tests
|
||||||
|
|
||||||
|
2009-06-11 Pádraig Brady <P@draigBrady.com>
|
||||||
|
|
||||||
|
tests: ls --color, permissions override hardlink coloring
|
||||||
|
* tests/ls/multihardlink: Add a test case to demonstrate
|
||||||
|
and test this non obvious behavior.
|
||||||
|
|
||||||
|
2009-06-11 Kamil Dudka <kdudka@redhat.com>
|
||||||
|
|
||||||
|
ls --color: do not colorize files with multiple hard links by default
|
||||||
|
* src/ls.c: Rename hl->mh, do not colorize files with multiple
|
||||||
|
hard links by default.
|
||||||
|
* src/dircolors.c: Rename HARDLINK -> MULTIHARDLINK, hl -> mh.
|
||||||
|
* src/dircolors.hin: Do not colorize files with multiple hard links by
|
||||||
|
default.
|
||||||
|
* tests/Makefile.am: Rename the test case accordingly.
|
||||||
|
* tests/ls/multihardlink: Additionally test ls' default behavior
|
||||||
|
and factor out some duplication.
|
||||||
|
* NEWS: Mention the change in behavior.
|
||||||
|
|
||||||
|
2009-06-08 Pádraig Brady <P@draigBrady.com>
|
||||||
|
|
||||||
|
maint: Add a syntax-check to ensure all .x-sc_ files are distributed
|
||||||
|
* Makefile.am: Add a couple of missing entries to
|
||||||
|
syntax_check_exceptions for distribution.
|
||||||
|
* cfg.mk: Add a rule to ensure the syntax_check_exceptions list
|
||||||
|
stays in sync with the .x-sc_* files in the repository.
|
||||||
|
|
||||||
|
2009-06-07 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
build: update from gnulib
|
||||||
|
* gnulib: Update submodule to latest.
|
||||||
|
|
||||||
|
sort: die immediately upon heap allocation failure
|
||||||
|
* src/sort.c (register_proc): Handle hash_insert failure.
|
||||||
|
|
||||||
|
2009-06-04 Mike Frysinger <vapier@gentoo.org>
|
||||||
|
|
||||||
|
dircolors: add screen-256color-bce to TERM list
|
||||||
|
* src/dircolors.hin: Add screen-256color-bce.
|
||||||
|
|
||||||
|
2009-06-03 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
doc: HACKING: minor adjustments, additions
|
||||||
|
* HACKING (Amending...): Remove spurious "-e" used with commit --amend.
|
||||||
|
(log message policy): Mention the 72-column limit.
|
||||||
|
"build:" and "maint:" are common prefixes, these days.
|
||||||
|
|
||||||
|
doc: adjust wording in README-prereq
|
||||||
|
|
||||||
|
dircolors: recognize .xz, .txz, .tbz and .tlz suffixes
|
||||||
|
* src/dircolors.hin: Add .xz, .txz, .tbz and .tlz.
|
||||||
|
|
||||||
|
doc: use newer URL for XZ utils
|
||||||
|
* README-hacking: Use <http://tukaani.org/xz/>
|
||||||
|
* README-prereq: Mention xz, not lzma.
|
||||||
|
|
||||||
|
2009-06-03 Matěj Cepl <mcepl@redhat.com>
|
||||||
|
|
||||||
|
doc: adjust README-prereq instructions
|
||||||
|
* README-prereq: Mention new requirement on automake-1.11,
|
||||||
|
with its new location and updated dependency on autoconf-2.62.
|
||||||
|
Remove the reference to coreutils-7.0 so that this file
|
||||||
|
implicitly refers to the latest or release version of coreutils.
|
||||||
|
Fix and clarify the instructions for updating the $PATH.
|
||||||
|
|
||||||
|
2009-06-02 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
doc: HACKING: mention the GNU Coding Standards
|
||||||
|
* HACKING (Add documentation): Add a link to the GCS.
|
||||||
|
|
||||||
|
build: no longer list gnulib's "memchr" module as obsolete
|
||||||
|
* bootstrap.conf (obsolete_gnulib_modules): Remove memchr from
|
||||||
|
the list, now that it fixes a problem in some modern C libraries.
|
||||||
|
(gnulib_modules): Add it here.
|
||||||
|
|
||||||
|
build: make generated man/*.1 files read-only
|
||||||
|
This should help people notice that they are generated.
|
||||||
|
Note: each file already has a comment to that effect from help2man.
|
||||||
|
* man/Makefile.am (.x.1): Make generated files read-only.
|
||||||
|
Also, don't redirect directly to the target, $@.
|
||||||
|
|
||||||
|
build (man/): use automake's new $(AM_V_GEN) variable
|
||||||
|
* man/Makefile.am (.x.1, check-x-vs-1, check-programs-vs-x):
|
||||||
|
Mark with $(AM_V_GEN), so that automake-1.11 prints
|
||||||
|
"GEN $@" by default (stick with "GEN" in spite of the latter two
|
||||||
|
rules not officially generating anything -- they're just tests).
|
||||||
|
|
||||||
|
chroot: make --groups= work without --userspec=; be more robust
|
||||||
|
* src/chroot.c (set_additional_groups): Add comments.
|
||||||
|
Given an empty or all-comma group list, diagnose it and return nonzero.
|
||||||
|
When more than one group is invalid, diagnose all of them,
|
||||||
|
not just the first.
|
||||||
|
(main): Honor --groups= also when --userspec= is not specified.
|
||||||
|
Now that set_additional_groups consistently diagnoses its failures,
|
||||||
|
don't diagnose it separately here.
|
||||||
|
* tests/chroot/credentials: Do not invoke with an empty group list.
|
||||||
|
|
||||||
|
chroot: don't set bogus user-ID or group-ID for --u=U: or --u=:G
|
||||||
|
* src/chroot.c (main): Initialize both "uid" and "gid". To -1.
|
||||||
|
This also allows one to set the user-ID or primary group-ID to 0,
|
||||||
|
in case it's not that already.
|
||||||
|
* tests/chroot/credentials: Test for the above.
|
||||||
|
|
||||||
|
chroot: set-*-ID failure must provoke nonzero exit before execvp
|
||||||
|
* src/chroot.c (main): Exit upon set-group-ID or set-user-ID failure.
|
||||||
|
|
||||||
|
tests: use "nobody" as the default group name in chroot test
|
||||||
|
* tests/test-lib.sh (NON_ROOT_GROUP): Use "nobody", not "nogroup".
|
||||||
|
|
||||||
|
build: make distcheck rules use --enable-gcc-warnings
|
||||||
|
* dist-check.mk (warn_cflags): Remove definition, now that it's
|
||||||
|
been subsumed by --enable-gcc-warnings.
|
||||||
|
(my-distcheck): Use configure with --enable-gcc-warnings and remove
|
||||||
|
use of $(warn_cflags).
|
||||||
|
|
||||||
|
2009-05-30 Eric Blake <ebb9@byu.net>
|
||||||
|
|
||||||
|
head, tail: make --help less ambiguous
|
||||||
|
* src/head.c (usage): Use -n K, not -n N, to avoid confusion.
|
||||||
|
* src/tail.c (usage): Likewise.
|
||||||
|
* doc/coreutils.texi (head invocation, tail invocation):
|
||||||
|
Likewise.
|
||||||
|
Reported by Christophe Lyon.
|
||||||
|
|
||||||
|
2009-05-26 Michael Speer <knomenet@gmail.com>
|
||||||
|
|
||||||
|
sort: new --human-numeric-sort option to sort KiB MB etc.
|
||||||
|
* NEWS: Document the new option
|
||||||
|
* doc/coreutils.texi (sort invocation): ditto
|
||||||
|
* src/sort.c (main): handle the new --human-numeric-sort option (-h).
|
||||||
|
(human_numcompare): A new function to compare SI and IEC suffixes
|
||||||
|
before falling back to the standard --numeric comparison.
|
||||||
|
(find_unit_order): A new helper function to find the order
|
||||||
|
of magnitude of a number string as determined by its suffix.
|
||||||
|
(check_mixed_SI_IEC): A new helper function to exit with error
|
||||||
|
if both SI and IEC suffixes are presented.
|
||||||
|
* tests/misc/sort: Add 8 tests to test the new functionality.
|
||||||
|
* THANKS: Update
|
||||||
|
|
||||||
|
2009-05-26 Giuseppe Scrivano <gscrivano@gnu.org>
|
||||||
|
|
||||||
|
chroot: accept new options --userspec=U:G and --groups=G1,G2,G3
|
||||||
|
* NEWS: Note chroot's new options.
|
||||||
|
* doc/coreutils.texi: Document them.
|
||||||
|
* src/chroot.c (main): Add support for --userspec and --groups.
|
||||||
|
* tests/Makefile.am (root-tests): Add chroot/credentials.
|
||||||
|
* tests/chroot/credentials: New file.
|
||||||
|
* tests/test-lib.sh: Define NON_ROOT_GROUP to a default value.
|
||||||
|
|
||||||
|
2009-05-18 Pádraig Brady <P@draigBrady.com>
|
||||||
|
|
||||||
|
doc: clarify the operation of the comm -123 parameters
|
||||||
|
* src/comm.c (usage): give more information on the -123 parameters,
|
||||||
|
with examples to show that they can be combined.
|
||||||
|
Addresses <http://savannah.gnu.org/bugs/?24974>.
|
||||||
|
* doc/coreutils.texi (comm invocation): Mention that the
|
||||||
|
column separators are suppressed along with the column.
|
||||||
|
Suggestion from Dan Jacobson.
|
||||||
|
* man/comm.x: Reference other commands that match adjacent lines.
|
||||||
|
* man/join.x: ditto.
|
||||||
|
* man/uniq.x: ditto.
|
||||||
|
|
||||||
|
2009-05-18 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
build: require automake-1.11
|
||||||
|
* bootstrap.conf (buildreq): Require automake-1.11, not 1.10b,
|
||||||
|
for our use of AM_SILENT_RULES.
|
||||||
|
* configure.ac (AM_INIT_AUTOMAKE): Likewise.
|
||||||
|
|
||||||
|
2009-05-17 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
maint: HACKING: mention a few more useful git commands
|
||||||
|
* HACKING (Miscellaneous useful git commands): Add a few.
|
||||||
|
|
||||||
|
build: avoid new "make distcheck" failure with gcc 4.5.0 20090517
|
||||||
|
* dist-check.mk (warn_cflags): Add -Wno-enum-compare.
|
||||||
|
|
||||||
|
build: avoid new warnings from gcc 4.5.0 20090517
|
||||||
|
* configure.ac: Add an explicit -Wno-logical-op,
|
||||||
|
now that not listing -Wlogical-op is insufficient.
|
||||||
|
|
||||||
|
maint: use ARRAY_CARDINALITY more
|
||||||
|
* src/sort.c (main): Use ARRAY_CARDINALITY, rather than open-coding it.
|
||||||
|
* src/factor.c (WHEEL_END): Likewise.
|
||||||
|
* src/csplit.c (main): Likewise.
|
||||||
|
* src/od.c: Likewise,
|
||||||
|
* src/ls.c (main): Likewise.
|
||||||
|
(N_ENTRIES): Remove definition. Use ARRAY_CARDINALITY instead.
|
||||||
|
* src/dircolors.c: Likewise.
|
||||||
|
(array_len): Remove definition.
|
||||||
|
|
||||||
|
build: tr: avoid a warning due to newer gcc's -Wenum-compare
|
||||||
|
* src/tr.c (N_CHAR_CLASSES): Remove anonymous enum definition.
|
||||||
|
(look_up_char_class): Use ARRAY_CARDINALITY, rather than N_CHAR_CLASSES.
|
||||||
|
|
||||||
|
maint: define ARRAY_CARDINALITY in system.h
|
||||||
|
* src/system.h (ARRAY_CARDINALITY): Define if not already defined.
|
||||||
|
|
||||||
|
build: turn off -Wlong-long
|
||||||
|
* configure.ac: With --enable-gcc-warnings, -Wlong-long would
|
||||||
|
cause compilation failure due to inclusion of lib/gethrxtime.h.
|
||||||
|
Initialize "nw".
|
||||||
|
|
||||||
|
2009-05-16 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
maint: cfg.mk: remove now-unnecessary gnulib_dir definition
|
||||||
|
* cfg.mk (gnulib_dir): Remove definition, now that gnulib's
|
||||||
|
maint.mk provides the default we want.
|
||||||
|
* gnulib: Update submodule to latest.
|
||||||
|
|
||||||
|
2009-05-15 Pádraig Brady <P@draigBrady.com>
|
||||||
|
|
||||||
|
tests: fix date-next-dow failure on older systems
|
||||||
|
* tests/misc/date-next-dow: In the strftime call use %Y-%m-%d
|
||||||
|
rather than the newer %F equivalent which is not available
|
||||||
|
on Solaris 8 for example.
|
||||||
|
|
||||||
|
2009-05-14 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
build: update from gnulib, for rename.m4 fix, improved tests, etc.
|
||||||
|
* gnulib: Update submodule to latest.
|
||||||
|
|
||||||
|
maint: README-release: minor improvements
|
||||||
|
* README-release: Mention gnu_ftp_host-{alpha,...} settings in cfg.mk.
|
||||||
|
Now that XZ_OPT is set via maint.mk, don't mention it here.
|
||||||
|
|
||||||
|
2009-05-11 Eric Blake <ebb9@byu.net>
|
||||||
|
|
||||||
|
truncate: fix bug in use of isspace
|
||||||
|
* src/truncate.c (main): Pass unsigned characters to isspace.
|
||||||
|
* NEWS: Mention this.
|
||||||
|
|
||||||
2009-05-07 Jim Meyering <meyering@redhat.com>
|
2009-05-07 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
|
post-release administrivia
|
||||||
|
* NEWS: Add header line for next release.
|
||||||
|
* .prev-version: Record previous version.
|
||||||
|
* cfg.mk (old_NEWS_hash): Auto-update.
|
||||||
|
|
||||||
version 7.4
|
version 7.4
|
||||||
* NEWS (Build-related): Mention make check fixes.
|
* NEWS (Build-related): Mention make check fixes.
|
||||||
|
|
||||||
|
@ -11609,7 +11609,7 @@
|
|||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
Copyright (C) 2002, 2003, 2004, 2005, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Copying and distribution of this file, with or without
|
Copying and distribution of this file, with or without
|
||||||
modification, are permitted provided the copyright notice
|
modification, are permitted provided the copyright notice
|
||||||
|
@ -4033,7 +4033,7 @@
|
|||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Copyright (C) 2006 Free Software Foundation, Inc.
|
Copyright (C) 2006, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Copying and distribution of this file, with or without
|
Copying and distribution of this file, with or without
|
||||||
modification, are permitted provided the copyright notice
|
modification, are permitted provided the copyright notice
|
||||||
|
@ -4015,7 +4015,7 @@
|
|||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc.
|
Copyright (C) 2007, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Copying and distribution of this file, with or without
|
Copying and distribution of this file, with or without
|
||||||
modification, are permitted provided the copyright notice
|
modification, are permitted provided the copyright notice
|
||||||
|
@ -372,7 +372,7 @@
|
|||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
Copyright (C) 2008-2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Copying and distribution of this file, with or without
|
Copying and distribution of this file, with or without
|
||||||
modification, are permitted provided the copyright notice
|
modification, are permitted provided the copyright notice
|
||||||
|
@ -4,8 +4,10 @@ Installation Instructions
|
|||||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
|
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
|
||||||
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is free documentation; the Free Software Foundation gives
|
Copying and distribution of this file, with or without modification,
|
||||||
unlimited permission to copy, distribute and modify it.
|
are permitted in any medium without royalty provided the copyright
|
||||||
|
notice and this notice are preserved. This file is offered as-is,
|
||||||
|
without warranty of any kind.
|
||||||
|
|
||||||
Basic Installation
|
Basic Installation
|
||||||
==================
|
==================
|
||||||
@ -13,7 +15,11 @@ Basic Installation
|
|||||||
Briefly, the shell commands `./configure; make; make install' should
|
Briefly, the shell commands `./configure; make; make install' should
|
||||||
configure, build, and install this package. The following
|
configure, build, and install this package. The following
|
||||||
more-detailed instructions are generic; see the `README' file for
|
more-detailed instructions are generic; see the `README' file for
|
||||||
instructions specific to this package.
|
instructions specific to this package. Some packages provide this
|
||||||
|
`INSTALL' file but do not implement all of the features documented
|
||||||
|
below. The lack of an optional feature in a given package is not
|
||||||
|
necessarily a bug. More recommendations for GNU packages can be found
|
||||||
|
in *note Makefile Conventions: (standards)Makefile Conventions.
|
||||||
|
|
||||||
The `configure' shell script attempts to guess correct values for
|
The `configure' shell script attempts to guess correct values for
|
||||||
various system-dependent variables used during compilation. It uses
|
various system-dependent variables used during compilation. It uses
|
||||||
@ -42,7 +48,7 @@ may remove or edit it.
|
|||||||
you want to change it or regenerate `configure' using a newer version
|
you want to change it or regenerate `configure' using a newer version
|
||||||
of `autoconf'.
|
of `autoconf'.
|
||||||
|
|
||||||
The simplest way to compile this package is:
|
The simplest way to compile this package is:
|
||||||
|
|
||||||
1. `cd' to the directory containing the package's source code and type
|
1. `cd' to the directory containing the package's source code and type
|
||||||
`./configure' to configure the package for your system.
|
`./configure' to configure the package for your system.
|
||||||
@ -53,12 +59,18 @@ The simplest way to compile this package is:
|
|||||||
2. Type `make' to compile the package.
|
2. Type `make' to compile the package.
|
||||||
|
|
||||||
3. Optionally, type `make check' to run any self-tests that come with
|
3. Optionally, type `make check' to run any self-tests that come with
|
||||||
the package.
|
the package, generally using the just-built uninstalled binaries.
|
||||||
|
|
||||||
4. Type `make install' to install the programs and any data files and
|
4. Type `make install' to install the programs and any data files and
|
||||||
documentation.
|
documentation. When installing into a prefix owned by root, it is
|
||||||
|
recommended that the package be configured and built as a regular
|
||||||
|
user, and only the `make install' phase executed with root
|
||||||
|
privileges.
|
||||||
|
|
||||||
5. You can remove the program binaries and object files from the
|
5. Optionally, type `make installcheck' to repeat any self-tests, but
|
||||||
|
this time using the binaries in their final installed location.
|
||||||
|
|
||||||
|
6. You can remove the program binaries and object files from the
|
||||||
source code directory by typing `make clean'. To also remove the
|
source code directory by typing `make clean'. To also remove the
|
||||||
files that `configure' created (so you can compile the package for
|
files that `configure' created (so you can compile the package for
|
||||||
a different kind of computer), type `make distclean'. There is
|
a different kind of computer), type `make distclean'. There is
|
||||||
@ -67,8 +79,15 @@ The simplest way to compile this package is:
|
|||||||
all sorts of other programs in order to regenerate files that came
|
all sorts of other programs in order to regenerate files that came
|
||||||
with the distribution.
|
with the distribution.
|
||||||
|
|
||||||
6. Often, you can also type `make uninstall' to remove the installed
|
7. Often, you can also type `make uninstall' to remove the installed
|
||||||
files again.
|
files again. In practice, not all packages have tested that
|
||||||
|
uninstallation works correctly, even though it is required by the
|
||||||
|
GNU Coding Standards.
|
||||||
|
|
||||||
|
8. Some packages, particularly those that use Automake, provide `make
|
||||||
|
distcheck', which can by used by developers to test that all other
|
||||||
|
targets like `make install' and `make uninstall' work correctly.
|
||||||
|
This target is generally not run by end users.
|
||||||
|
|
||||||
Compilers and Options
|
Compilers and Options
|
||||||
=====================
|
=====================
|
||||||
@ -93,7 +112,8 @@ same time, by placing the object files for each architecture in their
|
|||||||
own directory. To do this, you can use GNU `make'. `cd' to the
|
own directory. To do this, you can use GNU `make'. `cd' to the
|
||||||
directory where you want the object files and executables to go and run
|
directory where you want the object files and executables to go and run
|
||||||
the `configure' script. `configure' automatically checks for the
|
the `configure' script. `configure' automatically checks for the
|
||||||
source code in the directory that `configure' is in and in `..'.
|
source code in the directory that `configure' is in and in `..'. This
|
||||||
|
is known as a "VPATH" build.
|
||||||
|
|
||||||
With a non-GNU `make', it is safer to compile the package for one
|
With a non-GNU `make', it is safer to compile the package for one
|
||||||
architecture at a time in the source code directory. After you have
|
architecture at a time in the source code directory. After you have
|
||||||
@ -120,7 +140,8 @@ Installation Names
|
|||||||
By default, `make install' installs the package's commands under
|
By default, `make install' installs the package's commands under
|
||||||
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||||
can specify an installation prefix other than `/usr/local' by giving
|
can specify an installation prefix other than `/usr/local' by giving
|
||||||
`configure' the option `--prefix=PREFIX'.
|
`configure' the option `--prefix=PREFIX', where PREFIX must be an
|
||||||
|
absolute path.
|
||||||
|
|
||||||
You can specify separate installation prefixes for
|
You can specify separate installation prefixes for
|
||||||
architecture-specific files and architecture-independent files. If you
|
architecture-specific files and architecture-independent files. If you
|
||||||
@ -131,15 +152,49 @@ Documentation and other data files still use the regular prefix.
|
|||||||
In addition, if you use an unusual directory layout you can give
|
In addition, if you use an unusual directory layout you can give
|
||||||
options like `--bindir=DIR' to specify different values for particular
|
options like `--bindir=DIR' to specify different values for particular
|
||||||
kinds of files. Run `configure --help' for a list of the directories
|
kinds of files. Run `configure --help' for a list of the directories
|
||||||
you can set and what kinds of files go in them.
|
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.
|
||||||
|
|
||||||
|
The most portable way to affect installation locations is to pass the
|
||||||
|
correct locations to `configure'; however, many packages provide one or
|
||||||
|
both of the following shortcuts of passing variable assignments to the
|
||||||
|
`make install' command line to change installation locations without
|
||||||
|
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.
|
||||||
|
|
||||||
|
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
|
||||||
|
`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'.
|
||||||
|
|
||||||
|
Optional Features
|
||||||
|
=================
|
||||||
|
|
||||||
If the package supports it, you can cause programs to be installed
|
If the package supports it, you can cause programs to be installed
|
||||||
with an extra prefix or suffix on their names by giving `configure' the
|
with an extra prefix or suffix on their names by giving `configure' the
|
||||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||||
|
|
||||||
Optional Features
|
|
||||||
=================
|
|
||||||
|
|
||||||
Some packages pay attention to `--enable-FEATURE' options to
|
Some packages pay attention to `--enable-FEATURE' options to
|
||||||
`configure', where FEATURE indicates an optional part of the package.
|
`configure', where FEATURE indicates an optional part of the package.
|
||||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||||
@ -152,6 +207,13 @@ find the X include and library files automatically, but if it doesn't,
|
|||||||
you can use the `configure' options `--x-includes=DIR' and
|
you can use the `configure' options `--x-includes=DIR' and
|
||||||
`--x-libraries=DIR' to specify their locations.
|
`--x-libraries=DIR' to specify their locations.
|
||||||
|
|
||||||
|
Some packages offer the ability to configure how verbose the
|
||||||
|
execution of `make' will be. For these packages, running `./configure
|
||||||
|
--enable-silent-rules' sets the default to minimal output, which can be
|
||||||
|
overridden with `make V=1'; while running `./configure
|
||||||
|
--disable-silent-rules' sets the default to verbose, which can be
|
||||||
|
overridden with `make V=0'.
|
||||||
|
|
||||||
Particular systems
|
Particular systems
|
||||||
==================
|
==================
|
||||||
|
|
||||||
@ -288,7 +350,7 @@ operates.
|
|||||||
`configure' can determine that directory automatically.
|
`configure' can determine that directory automatically.
|
||||||
|
|
||||||
`--prefix=DIR'
|
`--prefix=DIR'
|
||||||
Use DIR as the installation prefix. *Note Installation Names::
|
Use DIR as the installation prefix. *note Installation Names::
|
||||||
for more details, including other options available for fine-tuning
|
for more details, including other options available for fine-tuning
|
||||||
the installation locations.
|
the installation locations.
|
||||||
|
|
||||||
|
@ -25,6 +25,7 @@ changelog_etc = \
|
|||||||
ChangeLog-2007 \
|
ChangeLog-2007 \
|
||||||
ChangeLog-2008 \
|
ChangeLog-2008 \
|
||||||
build-aux/ChangeLog-2007 \
|
build-aux/ChangeLog-2007 \
|
||||||
|
build-aux/update-copyright \
|
||||||
doc/ChangeLog-2007 \
|
doc/ChangeLog-2007 \
|
||||||
lib/ChangeLog-2007 \
|
lib/ChangeLog-2007 \
|
||||||
m4/ChangeLog-2007 \
|
m4/ChangeLog-2007 \
|
||||||
@ -40,6 +41,7 @@ changelog_etc = \
|
|||||||
|
|
||||||
syntax_check_exceptions = \
|
syntax_check_exceptions = \
|
||||||
.x-sc_GPL_version \
|
.x-sc_GPL_version \
|
||||||
|
.x-sc_error_message_uppercase \
|
||||||
.x-sc_file_system \
|
.x-sc_file_system \
|
||||||
.x-sc_obsolete_symbols \
|
.x-sc_obsolete_symbols \
|
||||||
.x-sc_po_check \
|
.x-sc_po_check \
|
||||||
@ -48,8 +50,10 @@ syntax_check_exceptions = \
|
|||||||
.x-sc_prohibit_stat_st_blocks \
|
.x-sc_prohibit_stat_st_blocks \
|
||||||
.x-sc_prohibit_strcmp \
|
.x-sc_prohibit_strcmp \
|
||||||
.x-sc_require_config_h \
|
.x-sc_require_config_h \
|
||||||
|
.x-sc_require_config_h_first \
|
||||||
.x-sc_space_tab \
|
.x-sc_space_tab \
|
||||||
.x-sc_sun_os_names \
|
.x-sc_sun_os_names \
|
||||||
|
.x-sc_system_h_headers \
|
||||||
.x-sc_trailing_blank \
|
.x-sc_trailing_blank \
|
||||||
.x-sc_unmarked_diagnostics \
|
.x-sc_unmarked_diagnostics \
|
||||||
.x-sc_useless_cpp_parens
|
.x-sc_useless_cpp_parens
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Makefile.in generated by automake 1.10c from Makefile.am.
|
# Makefile.in generated by automake 1.11a from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
@ -152,7 +152,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
|||||||
$(top_srcdir)/m4/memxfrm.m4 $(top_srcdir)/m4/mgetgroups.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/mkancesdirs.m4 $(top_srcdir)/m4/mkdir-p.m4 \
|
||||||
$(top_srcdir)/m4/mkdir-slash.m4 $(top_srcdir)/m4/mkstemp.m4 \
|
$(top_srcdir)/m4/mkdir-slash.m4 $(top_srcdir)/m4/mkstemp.m4 \
|
||||||
$(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \
|
$(top_srcdir)/m4/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/mountlist.m4 $(top_srcdir)/m4/mpsort.m4 \
|
||||||
$(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.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/netdb_h.m4 $(top_srcdir)/m4/netinet_in_h.m4 \
|
||||||
@ -191,15 +192,16 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
|||||||
$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/st_dm_mode.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/stat-prog.m4 $(top_srcdir)/m4/stat-time.m4 \
|
||||||
$(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \
|
$(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \
|
||||||
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
|
$(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
|
||||||
$(top_srcdir)/m4/stdio-safer.m4 $(top_srcdir)/m4/stdio_h.m4 \
|
$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio-safer.m4 \
|
||||||
$(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stdlib_h.m4 \
|
$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib-safer.m4 \
|
||||||
$(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/stpncpy.m4 \
|
$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/stpcpy.m4 \
|
||||||
$(top_srcdir)/m4/strcspn.m4 $(top_srcdir)/m4/strdup.m4 \
|
$(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strcspn.m4 \
|
||||||
$(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \
|
$(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \
|
||||||
$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
|
$(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \
|
||||||
$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strnumcmp.m4 \
|
$(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
|
||||||
$(top_srcdir)/m4/strpbrk.m4 $(top_srcdir)/m4/strtod.m4 \
|
$(top_srcdir)/m4/strnumcmp.m4 $(top_srcdir)/m4/strpbrk.m4 \
|
||||||
|
$(top_srcdir)/m4/strstr.m4 $(top_srcdir)/m4/strtod.m4 \
|
||||||
$(top_srcdir)/m4/strtoimax.m4 $(top_srcdir)/m4/strtol.m4 \
|
$(top_srcdir)/m4/strtoimax.m4 $(top_srcdir)/m4/strtol.m4 \
|
||||||
$(top_srcdir)/m4/strtoll.m4 $(top_srcdir)/m4/strtoul.m4 \
|
$(top_srcdir)/m4/strtoll.m4 $(top_srcdir)/m4/strtoul.m4 \
|
||||||
$(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
|
$(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
|
||||||
@ -218,7 +220,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
|||||||
$(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \
|
$(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \
|
||||||
$(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
|
$(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
|
||||||
$(top_srcdir)/m4/vasprintf-posix.m4 \
|
$(top_srcdir)/m4/vasprintf-posix.m4 \
|
||||||
$(top_srcdir)/m4/vasprintf.m4 \
|
$(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
|
||||||
$(top_srcdir)/m4/vfprintf-posix.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/warnings.m4 \
|
||||||
$(top_srcdir)/m4/wchar.m4 $(top_srcdir)/m4/wchar_t.m4 \
|
$(top_srcdir)/m4/wchar.m4 $(top_srcdir)/m4/wchar_t.m4 \
|
||||||
@ -342,6 +344,7 @@ FCNTL_H = @FCNTL_H@
|
|||||||
FLOAT_H = @FLOAT_H@
|
FLOAT_H = @FLOAT_H@
|
||||||
FNMATCH_H = @FNMATCH_H@
|
FNMATCH_H = @FNMATCH_H@
|
||||||
GETADDRINFO_LIB = @GETADDRINFO_LIB@
|
GETADDRINFO_LIB = @GETADDRINFO_LIB@
|
||||||
|
GETHOSTNAME_LIB = @GETHOSTNAME_LIB@
|
||||||
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
|
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
|
||||||
GETOPT_H = @GETOPT_H@
|
GETOPT_H = @GETOPT_H@
|
||||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||||
@ -372,6 +375,7 @@ GNULIB_FLOORL = @GNULIB_FLOORL@
|
|||||||
GNULIB_FOPEN = @GNULIB_FOPEN@
|
GNULIB_FOPEN = @GNULIB_FOPEN@
|
||||||
GNULIB_FPRINTF = @GNULIB_FPRINTF@
|
GNULIB_FPRINTF = @GNULIB_FPRINTF@
|
||||||
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
|
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
|
||||||
|
GNULIB_FPURGE = @GNULIB_FPURGE@
|
||||||
GNULIB_FPUTC = @GNULIB_FPUTC@
|
GNULIB_FPUTC = @GNULIB_FPUTC@
|
||||||
GNULIB_FPUTS = @GNULIB_FPUTS@
|
GNULIB_FPUTS = @GNULIB_FPUTS@
|
||||||
GNULIB_FREOPEN = @GNULIB_FREOPEN@
|
GNULIB_FREOPEN = @GNULIB_FREOPEN@
|
||||||
@ -438,6 +442,7 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@
|
|||||||
GNULIB_MBSSPN = @GNULIB_MBSSPN@
|
GNULIB_MBSSPN = @GNULIB_MBSSPN@
|
||||||
GNULIB_MBSSTR = @GNULIB_MBSSTR@
|
GNULIB_MBSSTR = @GNULIB_MBSSTR@
|
||||||
GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
|
GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
|
||||||
|
GNULIB_MEMCHR = @GNULIB_MEMCHR@
|
||||||
GNULIB_MEMMEM = @GNULIB_MEMMEM@
|
GNULIB_MEMMEM = @GNULIB_MEMMEM@
|
||||||
GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
|
GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
|
||||||
GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
|
GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
|
||||||
@ -501,6 +506,7 @@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
|
|||||||
GNULIB_TRUNC = @GNULIB_TRUNC@
|
GNULIB_TRUNC = @GNULIB_TRUNC@
|
||||||
GNULIB_TRUNCF = @GNULIB_TRUNCF@
|
GNULIB_TRUNCF = @GNULIB_TRUNCF@
|
||||||
GNULIB_TRUNCL = @GNULIB_TRUNCL@
|
GNULIB_TRUNCL = @GNULIB_TRUNCL@
|
||||||
|
GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
|
||||||
GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
|
GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
|
||||||
GNULIB_UNSETENV = @GNULIB_UNSETENV@
|
GNULIB_UNSETENV = @GNULIB_UNSETENV@
|
||||||
GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
|
GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
|
||||||
@ -530,6 +536,7 @@ HAVE_DECL_COSL = @HAVE_DECL_COSL@
|
|||||||
HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
|
HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
|
||||||
HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
|
HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
|
||||||
HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
|
HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
|
||||||
|
HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
|
||||||
HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@
|
HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@
|
||||||
HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
|
HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
|
||||||
HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@
|
HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@
|
||||||
@ -605,6 +612,7 @@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
|
|||||||
HAVE_READLINK = @HAVE_READLINK@
|
HAVE_READLINK = @HAVE_READLINK@
|
||||||
HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
|
HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
|
||||||
HAVE_RPMATCH = @HAVE_RPMATCH@
|
HAVE_RPMATCH = @HAVE_RPMATCH@
|
||||||
|
HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
|
||||||
HAVE_SCANDIR = @HAVE_SCANDIR@
|
HAVE_SCANDIR = @HAVE_SCANDIR@
|
||||||
HAVE_SETENV = @HAVE_SETENV@
|
HAVE_SETENV = @HAVE_SETENV@
|
||||||
HAVE_SIGACTION = @HAVE_SIGACTION@
|
HAVE_SIGACTION = @HAVE_SIGACTION@
|
||||||
@ -628,6 +636,7 @@ HAVE_STRTOULL = @HAVE_STRTOULL@
|
|||||||
HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@
|
HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@
|
||||||
HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
|
HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
|
||||||
HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
|
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_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
|
||||||
HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
|
HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
|
||||||
HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
|
HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
|
||||||
@ -646,6 +655,7 @@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
|
|||||||
HAVE_VASPRINTF = @HAVE_VASPRINTF@
|
HAVE_VASPRINTF = @HAVE_VASPRINTF@
|
||||||
HAVE_VDPRINTF = @HAVE_VDPRINTF@
|
HAVE_VDPRINTF = @HAVE_VDPRINTF@
|
||||||
HAVE_WCHAR_H = @HAVE_WCHAR_H@
|
HAVE_WCHAR_H = @HAVE_WCHAR_H@
|
||||||
|
HAVE_WCHAR_T = @HAVE_WCHAR_T@
|
||||||
HAVE_WCRTOMB = @HAVE_WCRTOMB@
|
HAVE_WCRTOMB = @HAVE_WCRTOMB@
|
||||||
HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
|
HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
|
||||||
HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
|
HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
|
||||||
@ -711,6 +721,32 @@ NEED_SETGID = @NEED_SETGID@
|
|||||||
NETDB_H = @NETDB_H@
|
NETDB_H = @NETDB_H@
|
||||||
NETINET_IN_H = @NETINET_IN_H@
|
NETINET_IN_H = @NETINET_IN_H@
|
||||||
NEXT_ARPA_INET_H = @NEXT_ARPA_INET_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_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_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_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_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@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@
|
||||||
|
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_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_DIRENT_H = @NEXT_DIRENT_H@
|
NEXT_DIRENT_H = @NEXT_DIRENT_H@
|
||||||
NEXT_ERRNO_H = @NEXT_ERRNO_H@
|
NEXT_ERRNO_H = @NEXT_ERRNO_H@
|
||||||
NEXT_FCNTL_H = @NEXT_FCNTL_H@
|
NEXT_FCNTL_H = @NEXT_FCNTL_H@
|
||||||
@ -722,6 +758,7 @@ NEXT_NETDB_H = @NEXT_NETDB_H@
|
|||||||
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
|
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
|
||||||
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
|
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
|
||||||
NEXT_STDARG_H = @NEXT_STDARG_H@
|
NEXT_STDARG_H = @NEXT_STDARG_H@
|
||||||
|
NEXT_STDDEF_H = @NEXT_STDDEF_H@
|
||||||
NEXT_STDINT_H = @NEXT_STDINT_H@
|
NEXT_STDINT_H = @NEXT_STDINT_H@
|
||||||
NEXT_STDIO_H = @NEXT_STDIO_H@
|
NEXT_STDIO_H = @NEXT_STDIO_H@
|
||||||
NEXT_STDLIB_H = @NEXT_STDLIB_H@
|
NEXT_STDLIB_H = @NEXT_STDLIB_H@
|
||||||
@ -738,6 +775,7 @@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
|
|||||||
NO_INSTALL_PROGS_DEFAULT = @NO_INSTALL_PROGS_DEFAULT@
|
NO_INSTALL_PROGS_DEFAULT = @NO_INSTALL_PROGS_DEFAULT@
|
||||||
OBJEXT = @OBJEXT@
|
OBJEXT = @OBJEXT@
|
||||||
OPTIONAL_BIN_PROGS = @OPTIONAL_BIN_PROGS@
|
OPTIONAL_BIN_PROGS = @OPTIONAL_BIN_PROGS@
|
||||||
|
OPTIONAL_PKGLIB_PROGS = @OPTIONAL_PKGLIB_PROGS@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
PACKAGE_NAME = @PACKAGE_NAME@
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
@ -762,6 +800,7 @@ REPLACE_CEILL = @REPLACE_CEILL@
|
|||||||
REPLACE_CHOWN = @REPLACE_CHOWN@
|
REPLACE_CHOWN = @REPLACE_CHOWN@
|
||||||
REPLACE_CLOSE = @REPLACE_CLOSE@
|
REPLACE_CLOSE = @REPLACE_CLOSE@
|
||||||
REPLACE_DPRINTF = @REPLACE_DPRINTF@
|
REPLACE_DPRINTF = @REPLACE_DPRINTF@
|
||||||
|
REPLACE_DUP2 = @REPLACE_DUP2@
|
||||||
REPLACE_FCHDIR = @REPLACE_FCHDIR@
|
REPLACE_FCHDIR = @REPLACE_FCHDIR@
|
||||||
REPLACE_FCLOSE = @REPLACE_FCLOSE@
|
REPLACE_FCLOSE = @REPLACE_FCLOSE@
|
||||||
REPLACE_FFLUSH = @REPLACE_FFLUSH@
|
REPLACE_FFLUSH = @REPLACE_FFLUSH@
|
||||||
@ -769,6 +808,7 @@ REPLACE_FLOORF = @REPLACE_FLOORF@
|
|||||||
REPLACE_FLOORL = @REPLACE_FLOORL@
|
REPLACE_FLOORL = @REPLACE_FLOORL@
|
||||||
REPLACE_FOPEN = @REPLACE_FOPEN@
|
REPLACE_FOPEN = @REPLACE_FOPEN@
|
||||||
REPLACE_FPRINTF = @REPLACE_FPRINTF@
|
REPLACE_FPRINTF = @REPLACE_FPRINTF@
|
||||||
|
REPLACE_FPURGE = @REPLACE_FPURGE@
|
||||||
REPLACE_FREOPEN = @REPLACE_FREOPEN@
|
REPLACE_FREOPEN = @REPLACE_FREOPEN@
|
||||||
REPLACE_FREXP = @REPLACE_FREXP@
|
REPLACE_FREXP = @REPLACE_FREXP@
|
||||||
REPLACE_FREXPL = @REPLACE_FREXPL@
|
REPLACE_FREXPL = @REPLACE_FREXPL@
|
||||||
@ -799,11 +839,14 @@ REPLACE_MBSINIT = @REPLACE_MBSINIT@
|
|||||||
REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
|
REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
|
||||||
REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
|
REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
|
||||||
REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
|
REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
|
||||||
|
REPLACE_MEMCHR = @REPLACE_MEMCHR@
|
||||||
REPLACE_MEMMEM = @REPLACE_MEMMEM@
|
REPLACE_MEMMEM = @REPLACE_MEMMEM@
|
||||||
REPLACE_MKDIR = @REPLACE_MKDIR@
|
REPLACE_MKDIR = @REPLACE_MKDIR@
|
||||||
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
|
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
|
||||||
|
REPLACE_MKTIME = @REPLACE_MKTIME@
|
||||||
REPLACE_NAN = @REPLACE_NAN@
|
REPLACE_NAN = @REPLACE_NAN@
|
||||||
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
|
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
|
||||||
|
REPLACE_NULL = @REPLACE_NULL@
|
||||||
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
|
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
|
||||||
REPLACE_OPEN = @REPLACE_OPEN@
|
REPLACE_OPEN = @REPLACE_OPEN@
|
||||||
REPLACE_PERROR = @REPLACE_PERROR@
|
REPLACE_PERROR = @REPLACE_PERROR@
|
||||||
@ -849,10 +892,12 @@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
|
|||||||
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
|
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
|
||||||
STDARG_H = @STDARG_H@
|
STDARG_H = @STDARG_H@
|
||||||
STDBOOL_H = @STDBOOL_H@
|
STDBOOL_H = @STDBOOL_H@
|
||||||
|
STDDEF_H = @STDDEF_H@
|
||||||
STDINT_H = @STDINT_H@
|
STDINT_H = @STDINT_H@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
SYS_IOCTL_H = @SYS_IOCTL_H@
|
SYS_IOCTL_H = @SYS_IOCTL_H@
|
||||||
SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_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_SELECT_H = @SYS_SELECT_H@
|
||||||
SYS_SOCKET_H = @SYS_SOCKET_H@
|
SYS_SOCKET_H = @SYS_SOCKET_H@
|
||||||
SYS_STAT_H = @SYS_STAT_H@
|
SYS_STAT_H = @SYS_STAT_H@
|
||||||
@ -863,6 +908,7 @@ U = @U@
|
|||||||
UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
|
UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
|
||||||
UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
|
UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
|
||||||
UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
|
UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
|
||||||
|
UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
|
||||||
USE_ACL = @USE_ACL@
|
USE_ACL = @USE_ACL@
|
||||||
USE_NLS = @USE_NLS@
|
USE_NLS = @USE_NLS@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
@ -943,6 +989,7 @@ changelog_etc = \
|
|||||||
ChangeLog-2007 \
|
ChangeLog-2007 \
|
||||||
ChangeLog-2008 \
|
ChangeLog-2008 \
|
||||||
build-aux/ChangeLog-2007 \
|
build-aux/ChangeLog-2007 \
|
||||||
|
build-aux/update-copyright \
|
||||||
doc/ChangeLog-2007 \
|
doc/ChangeLog-2007 \
|
||||||
lib/ChangeLog-2007 \
|
lib/ChangeLog-2007 \
|
||||||
m4/ChangeLog-2007 \
|
m4/ChangeLog-2007 \
|
||||||
@ -958,6 +1005,7 @@ changelog_etc = \
|
|||||||
|
|
||||||
syntax_check_exceptions = \
|
syntax_check_exceptions = \
|
||||||
.x-sc_GPL_version \
|
.x-sc_GPL_version \
|
||||||
|
.x-sc_error_message_uppercase \
|
||||||
.x-sc_file_system \
|
.x-sc_file_system \
|
||||||
.x-sc_obsolete_symbols \
|
.x-sc_obsolete_symbols \
|
||||||
.x-sc_po_check \
|
.x-sc_po_check \
|
||||||
@ -966,8 +1014,10 @@ syntax_check_exceptions = \
|
|||||||
.x-sc_prohibit_stat_st_blocks \
|
.x-sc_prohibit_stat_st_blocks \
|
||||||
.x-sc_prohibit_strcmp \
|
.x-sc_prohibit_strcmp \
|
||||||
.x-sc_require_config_h \
|
.x-sc_require_config_h \
|
||||||
|
.x-sc_require_config_h_first \
|
||||||
.x-sc_space_tab \
|
.x-sc_space_tab \
|
||||||
.x-sc_sun_os_names \
|
.x-sc_sun_os_names \
|
||||||
|
.x-sc_system_h_headers \
|
||||||
.x-sc_trailing_blank \
|
.x-sc_trailing_blank \
|
||||||
.x-sc_unmarked_diagnostics \
|
.x-sc_unmarked_diagnostics \
|
||||||
.x-sc_useless_cpp_parens
|
.x-sc_useless_cpp_parens
|
||||||
@ -1308,6 +1358,7 @@ distcheck: dist
|
|||||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) distcheck-hook \
|
&& $(MAKE) $(AM_MAKEFLAGS) distcheck-hook \
|
||||||
|
&& am__cwd=`pwd` \
|
||||||
&& $(am__cd) $(distdir)/_build \
|
&& $(am__cd) $(distdir)/_build \
|
||||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||||
@ -1330,7 +1381,9 @@ distcheck: dist
|
|||||||
&& rm -rf "$$dc_destdir" \
|
&& rm -rf "$$dc_destdir" \
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||||
&& rm -rf $(DIST_ARCHIVES) \
|
&& rm -rf $(DIST_ARCHIVES) \
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
|
||||||
|
&& cd "$$am__cwd" \
|
||||||
|
|| exit 1
|
||||||
$(am__remove_distdir)
|
$(am__remove_distdir)
|
||||||
@(echo "$(distdir) archives ready for distribution: "; \
|
@(echo "$(distdir) archives ready for distribution: "; \
|
||||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||||
|
@ -1,5 +1,67 @@
|
|||||||
GNU coreutils NEWS -*- outline -*-
|
GNU coreutils NEWS -*- outline -*-
|
||||||
|
|
||||||
|
* Noteworthy changes in release 7.5 (2009-08-20) [stable]
|
||||||
|
|
||||||
|
** Bug fixes
|
||||||
|
|
||||||
|
dd's oflag=direct option now works even when the size of the input
|
||||||
|
is not a multiple of e.g., 512 bytes.
|
||||||
|
|
||||||
|
dd now handles signals consistently even when they're received
|
||||||
|
before data copying has started.
|
||||||
|
|
||||||
|
install runs faster again with SELinux enabled
|
||||||
|
[introduced in coreutils-7.0]
|
||||||
|
|
||||||
|
ls -1U (with two or more arguments, at least one a nonempty directory)
|
||||||
|
would print entry names *before* the name of the containing directory.
|
||||||
|
Also fixed incorrect output of ls -1RU and ls -1sU.
|
||||||
|
[introduced in coreutils-7.0]
|
||||||
|
|
||||||
|
sort now correctly ignores fields whose ending position is specified
|
||||||
|
before the start position. Previously in numeric mode the remaining
|
||||||
|
part of the line after the start position was used as the sort key.
|
||||||
|
[This bug appears to have been present in "the beginning".]
|
||||||
|
|
||||||
|
truncate -s failed to skip all whitespace in the option argument in
|
||||||
|
some locales.
|
||||||
|
|
||||||
|
** New programs
|
||||||
|
|
||||||
|
stdbuf: A new program to run a command with modified stdio buffering
|
||||||
|
for its standard streams.
|
||||||
|
|
||||||
|
** Changes in behavior
|
||||||
|
|
||||||
|
ls --color: files with multiple hard links are no longer colored differently
|
||||||
|
by default. That can be enabled by changing the LS_COLORS environment
|
||||||
|
variable. You can control that using the MULTIHARDLINK dircolors input
|
||||||
|
variable which corresponds to the 'mh' LS_COLORS item. Note these variables
|
||||||
|
were renamed from 'HARDLINK' and 'hl' which were available since
|
||||||
|
coreutils-7.1 when this feature was introduced.
|
||||||
|
|
||||||
|
** Deprecated options
|
||||||
|
|
||||||
|
nl --page-increment: deprecated in favor of --line-increment, the new option
|
||||||
|
maintains the previous semantics and the same short option, -i.
|
||||||
|
|
||||||
|
** New features
|
||||||
|
|
||||||
|
chroot now accepts the options --userspec and --groups.
|
||||||
|
|
||||||
|
cp accepts a new option, --reflink: create a lightweight copy
|
||||||
|
using copy-on-write (COW). This is currently only supported within
|
||||||
|
a btrfs file system.
|
||||||
|
|
||||||
|
cp now preserves time stamps on symbolic links, when possible
|
||||||
|
|
||||||
|
sort accepts a new option, --human-numeric-sort (-h): sort numbers
|
||||||
|
while honoring human readable suffixes like KiB and MB etc.
|
||||||
|
|
||||||
|
tail --follow now uses inotify when possible, to be more responsive
|
||||||
|
to file changes and more efficient when monitoring many files.
|
||||||
|
|
||||||
|
|
||||||
* Noteworthy changes in release 7.4 (2009-05-07) [stable]
|
* Noteworthy changes in release 7.4 (2009-05-07) [stable]
|
||||||
|
|
||||||
** Bug fixes
|
** Bug fixes
|
||||||
|
@ -13,9 +13,9 @@ The programs that can be built with this package are:
|
|||||||
link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup
|
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
|
od paste pathchk pinky pr printenv printf ptx pwd readlink rm rmdir
|
||||||
runcon seq sha1sum sha224sum sha256sum sha384sum sha512sum shred shuf
|
runcon seq sha1sum sha224sum sha256sum sha384sum sha512sum shred shuf
|
||||||
sleep sort split stat stty su sum sync tac tail tee test timeout touch tr
|
sleep sort split stat stdbuf stty su sum sync tac tail tee test timeout
|
||||||
true truncate tsort tty uname unexpand uniq unlink uptime users vdir wc who
|
touch tr true truncate tsort tty uname unexpand uniq unlink uptime users
|
||||||
whoami yes
|
vdir wc who whoami yes
|
||||||
|
|
||||||
See the file NEWS for a list of major changes in the current release.
|
See the file NEWS for a list of major changes in the current release.
|
||||||
|
|
||||||
|
@ -75,6 +75,7 @@ Bernd Melchers melchers@cis.fu-berlin.de
|
|||||||
Bernhard Baehr bernhard.baehr@gmx.de
|
Bernhard Baehr bernhard.baehr@gmx.de
|
||||||
Bernhard Gabler bernhard@uni-koblenz.de
|
Bernhard Gabler bernhard@uni-koblenz.de
|
||||||
Bernhard Rosenkraenzer bero@redhat.de
|
Bernhard Rosenkraenzer bero@redhat.de
|
||||||
|
Bernhard Voelker bernhard.voelker@siemens-enterprise.com
|
||||||
Bert Deknuydt Bert.Deknuydt@esat.kuleuven.ac.be
|
Bert Deknuydt Bert.Deknuydt@esat.kuleuven.ac.be
|
||||||
Bert Wesarg bert.wesarg@googlemail.com
|
Bert Wesarg bert.wesarg@googlemail.com
|
||||||
Bill Peters peters@gaffel.as.arizona.edu
|
Bill Peters peters@gaffel.as.arizona.edu
|
||||||
@ -112,6 +113,7 @@ Christophe LYON christophe.lyon@st.com
|
|||||||
Chuck Hedrick hedrick@klinzhai.rutgers.edu
|
Chuck Hedrick hedrick@klinzhai.rutgers.edu
|
||||||
Clark Morgan cmorgan@aracnet.com
|
Clark Morgan cmorgan@aracnet.com
|
||||||
Clement Wang clem.wang@overture.com
|
Clement Wang clem.wang@overture.com
|
||||||
|
Cliff Miller cbm@whatexit.org
|
||||||
Colin Plumb colin@nyx.net
|
Colin Plumb colin@nyx.net
|
||||||
Colin Watson cjw44@riva.ucam.org
|
Colin Watson cjw44@riva.ucam.org
|
||||||
Collin Rogowski collin@rogowski.de
|
Collin Rogowski collin@rogowski.de
|
||||||
@ -276,6 +278,7 @@ Jim Dennis jimd@starshine.org
|
|||||||
Joakim Rosqvist dvljrt@cs.umu.se
|
Joakim Rosqvist dvljrt@cs.umu.se
|
||||||
Jochen Hein jochen@jochen.org
|
Jochen Hein jochen@jochen.org
|
||||||
Joe Orton joe@manyfish.co.uk
|
Joe Orton joe@manyfish.co.uk
|
||||||
|
Joel E. Denny jdenny@clemson.edu
|
||||||
Joerg Sonnenberger joerg@britannica.bec.de
|
Joerg Sonnenberger joerg@britannica.bec.de
|
||||||
Joey Hess joeyh@debian.org
|
Joey Hess joeyh@debian.org
|
||||||
Johan Boule bohan@bohan.dyndns.org
|
Johan Boule bohan@bohan.dyndns.org
|
||||||
@ -299,6 +302,7 @@ Joshua Hudson joshudson@gmail.com
|
|||||||
Josselin Mouette joss@debian.org
|
Josselin Mouette joss@debian.org
|
||||||
Juan F. Codagnone juam@arnet.com.ar
|
Juan F. Codagnone juam@arnet.com.ar
|
||||||
Juan M. Guerrero st001906@hrz1.hrz.tu-darmstadt.de
|
Juan M. Guerrero st001906@hrz1.hrz.tu-darmstadt.de
|
||||||
|
Julian Bradfield jcb@inf.ed.ac.uk
|
||||||
Jungshik Shin jshin@pantheon.yale.edu
|
Jungshik Shin jshin@pantheon.yale.edu
|
||||||
Jürgen Fluk louis@dachau.marco.de
|
Jürgen Fluk louis@dachau.marco.de
|
||||||
Jurriaan thunder7@xs4all.nl
|
Jurriaan thunder7@xs4all.nl
|
||||||
@ -396,6 +400,7 @@ Michael J. Croghan mcroghan@usatoday.com
|
|||||||
Michael McFarland sidlon@yahoo.com
|
Michael McFarland sidlon@yahoo.com
|
||||||
Michael McLagan mmclagan@invlogic.com
|
Michael McLagan mmclagan@invlogic.com
|
||||||
Michael Piefel piefel@informatik.hu-berlin.de
|
Michael Piefel piefel@informatik.hu-berlin.de
|
||||||
|
Michael Speer knomenet@gmail.com
|
||||||
Michael Steffens michael.steffens@s.netic.de
|
Michael Steffens michael.steffens@s.netic.de
|
||||||
Michael Stone mstone@debian.org
|
Michael Stone mstone@debian.org
|
||||||
Michael Stutz stutz@dsl.org
|
Michael Stutz stutz@dsl.org
|
||||||
|
17
src/bin/coreutils/aclocal.m4
vendored
17
src/bin/coreutils/aclocal.m4
vendored
@ -1,4 +1,4 @@
|
|||||||
# generated automatically by aclocal 1.10c -*- Autoconf -*-
|
# generated automatically by aclocal 1.11a -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||||
# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||||
@ -13,8 +13,8 @@
|
|||||||
|
|
||||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63b.42-b26d5],,
|
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64.16-4cdf58],,
|
||||||
[m4_warning([this file was generated for autoconf 2.63b.42-b26d5.
|
[m4_warning([this file was generated for autoconf 2.64.16-4cdf58.
|
||||||
You have another version of autoconf. It may work, but is not guaranteed to.
|
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.
|
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'.])])
|
To do so, use the procedure documented by the package, typically `autoreconf'.])])
|
||||||
@ -31,10 +31,10 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
|
|||||||
# generated from the m4 files accompanying Automake X.Y.
|
# generated from the m4 files accompanying Automake X.Y.
|
||||||
# (This private macro should not be called outside this file.)
|
# (This private macro should not be called outside this file.)
|
||||||
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||||
[am__api_version='1.10c'
|
[am__api_version='1.11a'
|
||||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||||
dnl require some minimum version. Point them to the right macro.
|
dnl require some minimum version. Point them to the right macro.
|
||||||
m4_if([$1], [1.10c], [],
|
m4_if([$1], [1.11a], [],
|
||||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||||
])
|
])
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
|
|||||||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||||
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||||
[AM_AUTOMAKE_VERSION([1.10c])dnl
|
[AM_AUTOMAKE_VERSION([1.11a])dnl
|
||||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||||
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||||
@ -1214,6 +1214,8 @@ m4_include([m4/mkdir-p.m4])
|
|||||||
m4_include([m4/mkdir-slash.m4])
|
m4_include([m4/mkdir-slash.m4])
|
||||||
m4_include([m4/mkstemp.m4])
|
m4_include([m4/mkstemp.m4])
|
||||||
m4_include([m4/mktime.m4])
|
m4_include([m4/mktime.m4])
|
||||||
|
m4_include([m4/mmap-anon.m4])
|
||||||
|
m4_include([m4/mode_t.m4])
|
||||||
m4_include([m4/modechange.m4])
|
m4_include([m4/modechange.m4])
|
||||||
m4_include([m4/mountlist.m4])
|
m4_include([m4/mountlist.m4])
|
||||||
m4_include([m4/mpsort.m4])
|
m4_include([m4/mpsort.m4])
|
||||||
@ -1286,6 +1288,7 @@ m4_include([m4/stat-prog.m4])
|
|||||||
m4_include([m4/stat-time.m4])
|
m4_include([m4/stat-time.m4])
|
||||||
m4_include([m4/stdarg.m4])
|
m4_include([m4/stdarg.m4])
|
||||||
m4_include([m4/stdbool.m4])
|
m4_include([m4/stdbool.m4])
|
||||||
|
m4_include([m4/stddef_h.m4])
|
||||||
m4_include([m4/stdint.m4])
|
m4_include([m4/stdint.m4])
|
||||||
m4_include([m4/stdint_h.m4])
|
m4_include([m4/stdint_h.m4])
|
||||||
m4_include([m4/stdio-safer.m4])
|
m4_include([m4/stdio-safer.m4])
|
||||||
@ -1303,6 +1306,7 @@ m4_include([m4/strndup.m4])
|
|||||||
m4_include([m4/strnlen.m4])
|
m4_include([m4/strnlen.m4])
|
||||||
m4_include([m4/strnumcmp.m4])
|
m4_include([m4/strnumcmp.m4])
|
||||||
m4_include([m4/strpbrk.m4])
|
m4_include([m4/strpbrk.m4])
|
||||||
|
m4_include([m4/strstr.m4])
|
||||||
m4_include([m4/strtod.m4])
|
m4_include([m4/strtod.m4])
|
||||||
m4_include([m4/strtoimax.m4])
|
m4_include([m4/strtoimax.m4])
|
||||||
m4_include([m4/strtol.m4])
|
m4_include([m4/strtol.m4])
|
||||||
@ -1338,6 +1342,7 @@ m4_include([m4/utimes.m4])
|
|||||||
m4_include([m4/vasnprintf.m4])
|
m4_include([m4/vasnprintf.m4])
|
||||||
m4_include([m4/vasprintf-posix.m4])
|
m4_include([m4/vasprintf-posix.m4])
|
||||||
m4_include([m4/vasprintf.m4])
|
m4_include([m4/vasprintf.m4])
|
||||||
|
m4_include([m4/version-etc.m4])
|
||||||
m4_include([m4/vfprintf-posix.m4])
|
m4_include([m4/vfprintf-posix.m4])
|
||||||
m4_include([m4/vprintf-posix.m4])
|
m4_include([m4/vprintf-posix.m4])
|
||||||
m4_include([m4/warnings.m4])
|
m4_include([m4/warnings.m4])
|
||||||
|
@ -106,14 +106,14 @@ tests_base=tests
|
|||||||
|
|
||||||
# Extra files from gnulib, which override files from other sources.
|
# Extra files from gnulib, which override files from other sources.
|
||||||
gnulib_extra_files="
|
gnulib_extra_files="
|
||||||
$build_aux/install-sh
|
$build_aux/install-sh
|
||||||
$build_aux/missing
|
$build_aux/missing
|
||||||
$build_aux/mdate-sh
|
$build_aux/mdate-sh
|
||||||
$build_aux/texinfo.tex
|
$build_aux/texinfo.tex
|
||||||
$build_aux/depcomp
|
$build_aux/depcomp
|
||||||
$build_aux/config.guess
|
$build_aux/config.guess
|
||||||
$build_aux/config.sub
|
$build_aux/config.sub
|
||||||
doc/INSTALL
|
doc/INSTALL
|
||||||
"
|
"
|
||||||
|
|
||||||
# Additional gnulib-tool options to use. Use "\newline" to break lines.
|
# Additional gnulib-tool options to use. Use "\newline" to break lines.
|
||||||
@ -272,10 +272,10 @@ get_version() {
|
|||||||
|
|
||||||
$app --version 2>&1 |
|
$app --version 2>&1 |
|
||||||
sed -n 's/[^0-9.]*\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/p
|
sed -n 's/[^0-9.]*\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/p
|
||||||
t done
|
t done
|
||||||
d
|
d
|
||||||
:done
|
:done
|
||||||
q'
|
q'
|
||||||
}
|
}
|
||||||
|
|
||||||
check_versions() {
|
check_versions() {
|
||||||
@ -313,7 +313,7 @@ print_versions() {
|
|||||||
|
|
||||||
if ! printf "$buildreq" | check_versions; then
|
if ! printf "$buildreq" | check_versions; then
|
||||||
test -f README-prereq &&
|
test -f README-prereq &&
|
||||||
echo "Please see README-prereq for notes on obtaining these prerequisite programs:" >&2
|
echo "See README-prereq for notes on obtaining these prerequisite programs:" >&2
|
||||||
echo
|
echo
|
||||||
print_versions
|
print_versions
|
||||||
exit 1
|
exit 1
|
||||||
@ -342,7 +342,7 @@ cleanup_gnulib() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
git_modules_config () {
|
git_modules_config () {
|
||||||
GIT_CONFIG=.gitmodules git config "$@"
|
test -f .gitmodules && git config --file .gitmodules "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get gnulib files.
|
# Get gnulib files.
|
||||||
@ -371,7 +371,7 @@ case ${GNULIB_SRCDIR--} in
|
|||||||
# Redirect the gnulib submodule to the directory on the command line
|
# Redirect the gnulib submodule to the directory on the command line
|
||||||
# if possible.
|
# if possible.
|
||||||
if test -d "$GNULIB_SRCDIR"/.git && \
|
if test -d "$GNULIB_SRCDIR"/.git && \
|
||||||
git_modules_config submodule.gnulib.url >/dev/null; then
|
git_modules_config submodule.gnulib.url >/dev/null; then
|
||||||
git submodule init
|
git submodule init
|
||||||
GNULIB_SRCDIR=`cd $GNULIB_SRCDIR && pwd`
|
GNULIB_SRCDIR=`cd $GNULIB_SRCDIR && pwd`
|
||||||
git config --replace-all submodule.gnulib.url $GNULIB_SRCDIR
|
git config --replace-all submodule.gnulib.url $GNULIB_SRCDIR
|
||||||
@ -419,10 +419,12 @@ update_po_files() {
|
|||||||
new_po="$ref_po_dir/$po.po"
|
new_po="$ref_po_dir/$po.po"
|
||||||
cksum_file="$ref_po_dir/$po.s1"
|
cksum_file="$ref_po_dir/$po.s1"
|
||||||
if ! test -f "$cksum_file" ||
|
if ! test -f "$cksum_file" ||
|
||||||
! test -f "$po_dir/$po.po" ||
|
! test -f "$po_dir/$po.po" ||
|
||||||
! ${SHA1SUM-sha1sum} -c --status "$cksum_file" < "$new_po" > /dev/null; then
|
! ${SHA1SUM-sha1sum} -c --status "$cksum_file" \
|
||||||
|
< "$new_po" > /dev/null; then
|
||||||
echo "updated $po_dir/$po.po..."
|
echo "updated $po_dir/$po.po..."
|
||||||
cp "$new_po" "$po_dir/$po.po" && ${SHA1SUM-sha1sum} < "$new_po" > "$cksum_file"
|
cp "$new_po" "$po_dir/$po.po" \
|
||||||
|
&& ${SHA1SUM-sha1sum} < "$new_po" > "$cksum_file"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@ -456,45 +458,45 @@ symlink_to_dir()
|
|||||||
# FIXME: for now, this does only one level
|
# FIXME: for now, this does only one level
|
||||||
parent=`dirname "$dst_dir"`
|
parent=`dirname "$dst_dir"`
|
||||||
for dot_ig in x $vc_ignore; do
|
for dot_ig in x $vc_ignore; do
|
||||||
test $dot_ig = x && continue
|
test $dot_ig = x && continue
|
||||||
ig=$parent/$dot_ig
|
ig=$parent/$dot_ig
|
||||||
insert_sorted_if_absent $ig `echo "$dst_dir"|sed 's,.*/,,'`
|
insert_sorted_if_absent $ig `echo "$dst_dir"|sed 's,.*/,,'`
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if $copy; then
|
if $copy; then
|
||||||
{
|
{
|
||||||
test ! -h "$dst" || {
|
test ! -h "$dst" || {
|
||||||
echo "$0: rm -f $dst" &&
|
echo "$0: rm -f $dst" &&
|
||||||
rm -f "$dst"
|
rm -f "$dst"
|
||||||
}
|
}
|
||||||
} &&
|
} &&
|
||||||
test -f "$dst" &&
|
test -f "$dst" &&
|
||||||
cmp -s "$src" "$dst" || {
|
cmp -s "$src" "$dst" || {
|
||||||
echo "$0: cp -fp $src $dst" &&
|
echo "$0: cp -fp $src $dst" &&
|
||||||
cp -fp "$src" "$dst"
|
cp -fp "$src" "$dst"
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
test -h "$dst" &&
|
test -h "$dst" &&
|
||||||
src_ls=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i=$1 &&
|
src_ls=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i=$1 &&
|
||||||
dst_ls=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i=$1 &&
|
dst_ls=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i=$1 &&
|
||||||
test "$src_i" = "$dst_i" || {
|
test "$src_i" = "$dst_i" || {
|
||||||
dot_dots=
|
dot_dots=
|
||||||
case $src in
|
case $src in
|
||||||
/*) ;;
|
/*) ;;
|
||||||
*)
|
*)
|
||||||
case /$dst/ in
|
case /$dst/ in
|
||||||
*//* | */../* | */./* | /*/*/*/*/*/)
|
*//* | */../* | */./* | /*/*/*/*/*/)
|
||||||
echo >&2 "$0: invalid symlink calculation: $src -> $dst"
|
echo >&2 "$0: invalid symlink calculation: $src -> $dst"
|
||||||
exit 1;;
|
exit 1;;
|
||||||
/*/*/*/*/) dot_dots=../../../;;
|
/*/*/*/*/) dot_dots=../../../;;
|
||||||
/*/*/*/) dot_dots=../../;;
|
/*/*/*/) dot_dots=../../;;
|
||||||
/*/*/) dot_dots=../;;
|
/*/*/) dot_dots=../;;
|
||||||
esac;;
|
esac;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
echo "$0: ln -fs $dot_dots$src $dst" &&
|
echo "$0: ln -fs $dot_dots$src $dst" &&
|
||||||
ln -fs "$dot_dots$src" "$dst"
|
ln -fs "$dot_dots$src" "$dst"
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -524,29 +526,29 @@ cp_mark_as_generated()
|
|||||||
|
|
||||||
if test -z "$c1"; then
|
if test -z "$c1"; then
|
||||||
cmp -s "$cp_src" "$cp_dst" || {
|
cmp -s "$cp_src" "$cp_dst" || {
|
||||||
# Copy the file first to get proper permissions if it
|
# Copy the file first to get proper permissions if it
|
||||||
# doesn't already exist. Then overwrite the copy.
|
# doesn't already exist. Then overwrite the copy.
|
||||||
echo "$0: cp -f $cp_src $cp_dst" &&
|
echo "$0: cp -f $cp_src $cp_dst" &&
|
||||||
rm -f "$cp_dst" &&
|
rm -f "$cp_dst" &&
|
||||||
cp "$cp_src" "$cp_dst-t" &&
|
cp "$cp_src" "$cp_dst-t" &&
|
||||||
sed "s!$bt_regex/!!g" "$cp_src" > "$cp_dst-t" &&
|
sed "s!$bt_regex/!!g" "$cp_src" > "$cp_dst-t" &&
|
||||||
mv -f "$cp_dst-t" "$cp_dst"
|
mv -f "$cp_dst-t" "$cp_dst"
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
# Copy the file first to get proper permissions if it
|
# Copy the file first to get proper permissions if it
|
||||||
# doesn't already exist. Then overwrite the copy.
|
# doesn't already exist. Then overwrite the copy.
|
||||||
cp "$cp_src" "$cp_dst-t" &&
|
cp "$cp_src" "$cp_dst-t" &&
|
||||||
(
|
(
|
||||||
echo "$c1-*- buffer-read-only: t -*- vi: set ro:$c2" &&
|
echo "$c1-*- buffer-read-only: t -*- vi: set ro:$c2" &&
|
||||||
echo "${c1}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2" &&
|
echo "${c1}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2" &&
|
||||||
echo '#line 1' &&
|
echo '#line 1' &&
|
||||||
sed "s!$bt_regex/!!g" "$cp_src"
|
sed "s!$bt_regex/!!g" "$cp_src"
|
||||||
) > $cp_dst-t &&
|
) > $cp_dst-t &&
|
||||||
if cmp -s "$cp_dst-t" "$cp_dst"; then
|
if cmp -s "$cp_dst-t" "$cp_dst"; then
|
||||||
rm -f "$cp_dst-t"
|
rm -f "$cp_dst-t"
|
||||||
else
|
else
|
||||||
echo "$0: cp $cp_src $cp_dst # with edits" &&
|
echo "$0: cp $cp_src $cp_dst # with edits" &&
|
||||||
mv -f "$cp_dst-t" "$cp_dst"
|
mv -f "$cp_dst-t" "$cp_dst"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -558,7 +560,7 @@ version_controlled_file() {
|
|||||||
found=no
|
found=no
|
||||||
if test -d CVS; then
|
if test -d CVS; then
|
||||||
grep -F "/$file/" $dir/CVS/Entries 2>/dev/null |
|
grep -F "/$file/" $dir/CVS/Entries 2>/dev/null |
|
||||||
grep '^/[^/]*/[0-9]' > /dev/null && found=yes
|
grep '^/[^/]*/[0-9]' > /dev/null && found=yes
|
||||||
elif test -d .git; then
|
elif test -d .git; then
|
||||||
git rm -n "$dir/$file" > /dev/null 2>&1 && found=yes
|
git rm -n "$dir/$file" > /dev/null 2>&1 && found=yes
|
||||||
elif test -d .svn; then
|
elif test -d .svn; then
|
||||||
@ -580,35 +582,35 @@ slurp() {
|
|||||||
esac
|
esac
|
||||||
test -d $1/$dir/$file && continue
|
test -d $1/$dir/$file && continue
|
||||||
for excluded_file in $excluded_files; do
|
for excluded_file in $excluded_files; do
|
||||||
test "$dir/$file" = "$excluded_file" && continue 2
|
test "$dir/$file" = "$excluded_file" && continue 2
|
||||||
done
|
done
|
||||||
if test $file = Makefile.am; then
|
if test $file = Makefile.am; then
|
||||||
copied=$copied${sep}$gnulib_mk; sep=$nl
|
copied=$copied${sep}$gnulib_mk; sep=$nl
|
||||||
remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g"
|
remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g"
|
||||||
sed "$remove_intl" $1/$dir/$file | cmp - $dir/$gnulib_mk > /dev/null || {
|
sed "$remove_intl" $1/$dir/$file | cmp - $dir/$gnulib_mk > /dev/null || {
|
||||||
echo "$0: Copying $1/$dir/$file to $dir/$gnulib_mk ..." &&
|
echo "$0: Copying $1/$dir/$file to $dir/$gnulib_mk ..." &&
|
||||||
rm -f $dir/$gnulib_mk &&
|
rm -f $dir/$gnulib_mk &&
|
||||||
sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk
|
sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk
|
||||||
}
|
}
|
||||||
elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
|
elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
|
||||||
version_controlled_file $dir $file; then
|
version_controlled_file $dir $file; then
|
||||||
echo "$0: $dir/$file overrides $1/$dir/$file"
|
echo "$0: $dir/$file overrides $1/$dir/$file"
|
||||||
else
|
else
|
||||||
copied=$copied$sep$file; sep=$nl
|
copied=$copied$sep$file; sep=$nl
|
||||||
if test $file = gettext.m4; then
|
if test $file = gettext.m4; then
|
||||||
echo "$0: patching m4/gettext.m4 to remove need for intl/* ..."
|
echo "$0: patching m4/gettext.m4 to remove need for intl/* ..."
|
||||||
rm -f $dir/$file
|
rm -f $dir/$file
|
||||||
sed '
|
sed '
|
||||||
/^AC_DEFUN(\[AM_INTL_SUBDIR],/,/^]/c\
|
/^AC_DEFUN(\[AM_INTL_SUBDIR],/,/^]/c\
|
||||||
AC_DEFUN([AM_INTL_SUBDIR], [
|
AC_DEFUN([AM_INTL_SUBDIR], [
|
||||||
/^AC_DEFUN(\[gt_INTL_SUBDIR_CORE],/,/^]/c\
|
/^AC_DEFUN(\[gt_INTL_SUBDIR_CORE],/,/^]/c\
|
||||||
AC_DEFUN([gt_INTL_SUBDIR_CORE], [])
|
AC_DEFUN([gt_INTL_SUBDIR_CORE], [])
|
||||||
$a\
|
$a\
|
||||||
AC_DEFUN([gl_LOCK_EARLY], [])
|
AC_DEFUN([gl_LOCK_EARLY], [])
|
||||||
' $1/$dir/$file >$dir/$file
|
' $1/$dir/$file >$dir/$file
|
||||||
else
|
else
|
||||||
cp_mark_as_generated $1/$dir/$file $dir/$file
|
cp_mark_as_generated $1/$dir/$file $dir/$file
|
||||||
fi
|
fi
|
||||||
fi || exit
|
fi || exit
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -616,18 +618,18 @@ slurp() {
|
|||||||
test $dot_ig = x && continue
|
test $dot_ig = x && continue
|
||||||
ig=$dir/$dot_ig
|
ig=$dir/$dot_ig
|
||||||
if test -n "$copied"; then
|
if test -n "$copied"; then
|
||||||
insert_sorted_if_absent $ig "$copied"
|
insert_sorted_if_absent $ig "$copied"
|
||||||
# If an ignored file name ends with .in.h, then also add
|
# If an ignored file name ends with .in.h, then also add
|
||||||
# the name with just ".h". Many gnulib headers are generated,
|
# the name with just ".h". Many gnulib headers are generated,
|
||||||
# e.g., stdint.in.h -> stdint.h, dirent.in.h ->..., etc.
|
# e.g., stdint.in.h -> stdint.h, dirent.in.h ->..., etc.
|
||||||
# Likewise for .gperf -> .h, .y -> .c, and .sin -> .sed
|
# Likewise for .gperf -> .h, .y -> .c, and .sin -> .sed
|
||||||
f=`echo "$copied"|sed 's/\.in\.h$/.h/;s/\.sin$/.sed/;s/\.y$/.c/;s/\.gperf$/.h/'`
|
f=`echo "$copied"|sed 's/\.in\.h$/.h/;s/\.sin$/.sed/;s/\.y$/.c/;s/\.gperf$/.h/'`
|
||||||
insert_sorted_if_absent $ig "$f"
|
insert_sorted_if_absent $ig "$f"
|
||||||
|
|
||||||
# For files like sys_stat.in.h and sys_time.in.h, record as
|
# For files like sys_stat.in.h and sys_time.in.h, record as
|
||||||
# ignorable the directory we might eventually create: sys/.
|
# ignorable the directory we might eventually create: sys/.
|
||||||
f=`echo "$copied"|sed 's/sys_.*\.in\.h$/sys/'`
|
f=`echo "$copied"|sed 's/sys_.*\.in\.h$/sys/'`
|
||||||
insert_sorted_if_absent $ig "$f"
|
insert_sorted_if_absent $ig "$f"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
@ -733,7 +735,7 @@ if test $with_gettext = yes; then
|
|||||||
/^XGETTEXT_OPTIONS *=/{
|
/^XGETTEXT_OPTIONS *=/{
|
||||||
s/$/ \\/
|
s/$/ \\/
|
||||||
a\
|
a\
|
||||||
'"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
|
'"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
|
||||||
}
|
}
|
||||||
' po/Makevars.template >po/Makevars
|
' po/Makevars.template >po/Makevars
|
||||||
|
|
||||||
@ -745,9 +747,9 @@ if test $with_gettext = yes; then
|
|||||||
/^subdir *=.*/s/=.*/= runtime-po/
|
/^subdir *=.*/s/=.*/= runtime-po/
|
||||||
/^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
|
/^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
|
||||||
/^XGETTEXT_OPTIONS *=/{
|
/^XGETTEXT_OPTIONS *=/{
|
||||||
s/$/ \\/
|
s/$/ \\/
|
||||||
a\
|
a\
|
||||||
'"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
|
'"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
|
||||||
}
|
}
|
||||||
' <po/Makevars.template >runtime-po/Makevars
|
' <po/Makevars.template >runtime-po/Makevars
|
||||||
|
|
||||||
@ -763,3 +765,7 @@ sed 's,\.\./\.\.,..,g' $m > $m-t
|
|||||||
mv -f $m-t $m
|
mv -f $m-t $m
|
||||||
|
|
||||||
echo "$0: done. Now you can run './configure'."
|
echo "$0: done. Now you can run './configure'."
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# indent-tabs-mode: nil
|
||||||
|
# End:
|
||||||
|
@ -27,7 +27,6 @@ avoided_gnulib_modules='
|
|||||||
# but leave them in for now to minimize changes.
|
# but leave them in for now to minimize changes.
|
||||||
obsolete_gnulib_modules='
|
obsolete_gnulib_modules='
|
||||||
atexit
|
atexit
|
||||||
memchr
|
|
||||||
memcmp
|
memcmp
|
||||||
memcpy
|
memcpy
|
||||||
memmove
|
memmove
|
||||||
@ -103,7 +102,7 @@ gnulib_modules="
|
|||||||
getline
|
getline
|
||||||
getloadavg
|
getloadavg
|
||||||
getndelim2
|
getndelim2
|
||||||
getopt
|
getopt-gnu
|
||||||
getpagesize
|
getpagesize
|
||||||
getpass-gnu
|
getpass-gnu
|
||||||
gettext
|
gettext
|
||||||
@ -141,6 +140,7 @@ gnulib_modules="
|
|||||||
mbsalign
|
mbsalign
|
||||||
mbswidth
|
mbswidth
|
||||||
memcasecmp
|
memcasecmp
|
||||||
|
memchr
|
||||||
memcmp2
|
memcmp2
|
||||||
mempcpy
|
mempcpy
|
||||||
memrchr
|
memrchr
|
||||||
@ -210,6 +210,7 @@ gnulib_modules="
|
|||||||
unlink-busy
|
unlink-busy
|
||||||
unlinkdir
|
unlinkdir
|
||||||
unlocked-io
|
unlocked-io
|
||||||
|
update-copyright
|
||||||
uptime
|
uptime
|
||||||
useless-if-before-free
|
useless-if-before-free
|
||||||
userspec
|
userspec
|
||||||
@ -301,7 +302,7 @@ gnulib_tool_option_extras="--tests-base=$bt/gnulib-tests --with-tests"
|
|||||||
# Build prerequisites
|
# Build prerequisites
|
||||||
buildreq="\
|
buildreq="\
|
||||||
autoconf 2.61
|
autoconf 2.61
|
||||||
automake 1.10b
|
automake 1.11
|
||||||
autopoint -
|
autopoint -
|
||||||
bison -
|
bison -
|
||||||
gettext -
|
gettext -
|
||||||
|
3126
src/bin/coreutils/configure
vendored
3126
src/bin/coreutils/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -32,7 +32,7 @@ AC_CONFIG_SRCDIR([src/ls.c])
|
|||||||
AC_CONFIG_AUX_DIR([build-aux])
|
AC_CONFIG_AUX_DIR([build-aux])
|
||||||
AC_CONFIG_HEADERS([lib/config.h:lib/config.hin])
|
AC_CONFIG_HEADERS([lib/config.h:lib/config.hin])
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([1.10b dist-xz color-tests parallel-tests])
|
AM_INIT_AUTOMAKE([1.11 dist-xz color-tests parallel-tests])
|
||||||
AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
|
AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
|
||||||
|
|
||||||
AC_PROG_CC_STDC
|
AC_PROG_CC_STDC
|
||||||
@ -60,9 +60,11 @@ if test "$gl_gcc_warnings" = yes; then
|
|||||||
gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
|
gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
|
||||||
AC_SUBST([WERROR_CFLAGS])
|
AC_SUBST([WERROR_CFLAGS])
|
||||||
|
|
||||||
# Add many warnings, except some...
|
nw=
|
||||||
|
# This, $nw, is the list of warnings we disable.
|
||||||
nw="$nw -Wdeclaration-after-statement" # too useful to forbid
|
nw="$nw -Wdeclaration-after-statement" # too useful to forbid
|
||||||
nw="$nw -Waggregate-return" # anachronistic
|
nw="$nw -Waggregate-return" # anachronistic
|
||||||
|
nw="$nw -Wlong-long" # C90 is anachronistic (lib/gethrxtime.h)
|
||||||
nw="$nw -Wc++-compat" # We don't care about C++ compilers
|
nw="$nw -Wc++-compat" # We don't care about C++ compilers
|
||||||
nw="$nw -Wundef" # Warns on '#if GNULIB_FOO' etc in gnulib
|
nw="$nw -Wundef" # Warns on '#if GNULIB_FOO' etc in gnulib
|
||||||
nw="$nw -Wtraditional" # Warns on #elif which we use often
|
nw="$nw -Wtraditional" # Warns on #elif which we use often
|
||||||
@ -80,6 +82,7 @@ if test "$gl_gcc_warnings" = yes; then
|
|||||||
nw="$nw -Wnested-externs" # use of XARGMATCH/verify_function__
|
nw="$nw -Wnested-externs" # use of XARGMATCH/verify_function__
|
||||||
nw="$nw -Wswitch-enum" # Too many warnings for now
|
nw="$nw -Wswitch-enum" # Too many warnings for now
|
||||||
nw="$nw -Wswitch-default" # Too many warnings for now
|
nw="$nw -Wswitch-default" # Too many warnings for now
|
||||||
|
nw="$nw -Wstack-protector" # not worth working around
|
||||||
# things I might fix soon:
|
# things I might fix soon:
|
||||||
nw="$nw -Wfloat-equal" # sort.c, seq.c
|
nw="$nw -Wfloat-equal" # sort.c, seq.c
|
||||||
nw="$nw -Wmissing-format-attribute" # copy.c
|
nw="$nw -Wmissing-format-attribute" # copy.c
|
||||||
@ -97,6 +100,14 @@ if test "$gl_gcc_warnings" = yes; then
|
|||||||
gl_WARN_ADD([-Wno-sign-compare]) # Too many warnings for now
|
gl_WARN_ADD([-Wno-sign-compare]) # Too many warnings for now
|
||||||
gl_WARN_ADD([-Wno-pointer-sign]) # Too many warnings for now
|
gl_WARN_ADD([-Wno-pointer-sign]) # Too many warnings for now
|
||||||
gl_WARN_ADD([-Wno-unused-parameter]) # 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([-fdiagnostics-show-option])
|
||||||
|
|
||||||
AC_SUBST([WARN_CFLAGS])
|
AC_SUBST([WARN_CFLAGS])
|
||||||
@ -314,6 +325,19 @@ if test $gl_cv_list_mounted_fs = yes && test $gl_cv_fs_space = yes; then
|
|||||||
gl_ADD_PROG([optional_bin_progs], [df])
|
gl_ADD_PROG([optional_bin_progs], [df])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Limit stdbuf to ELF systems with GCC
|
||||||
|
optional_pkglib_progs=
|
||||||
|
AC_MSG_CHECKING([whether this is an ELF system])
|
||||||
|
AC_EGREP_CPP([yes], [#if __ELF__
|
||||||
|
yes
|
||||||
|
#endif], [elf_sys=yes], [elf_sys=no])
|
||||||
|
AC_MSG_RESULT([$elf_sys])
|
||||||
|
if test "$elf_sys" = "yes" && \
|
||||||
|
test "$GCC" = "yes"; then
|
||||||
|
gl_ADD_PROG([optional_bin_progs], [stdbuf])
|
||||||
|
gl_ADD_PROG([optional_pkglib_progs], [libstdbuf.so])
|
||||||
|
fi
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
mk="$srcdir/src/Makefile.am"
|
mk="$srcdir/src/Makefile.am"
|
||||||
# Extract all literal names from the definition of $(EXTRA_PROGRAMS)
|
# Extract all literal names from the definition of $(EXTRA_PROGRAMS)
|
||||||
@ -386,6 +410,8 @@ MAN=`echo "$MAN"|sed 's/\@<:@\.1//'`
|
|||||||
|
|
||||||
OPTIONAL_BIN_PROGS=`echo "$optional_bin_progs "|sed 's/ /\$(EXEEXT) /g;s/ $//'`
|
OPTIONAL_BIN_PROGS=`echo "$optional_bin_progs "|sed 's/ /\$(EXEEXT) /g;s/ $//'`
|
||||||
AC_SUBST([OPTIONAL_BIN_PROGS])
|
AC_SUBST([OPTIONAL_BIN_PROGS])
|
||||||
|
OPTIONAL_PKGLIB_PROGS=`echo "$optional_pkglib_progs " | sed 's/ $//'`
|
||||||
|
AC_SUBST([OPTIONAL_PKGLIB_PROGS])
|
||||||
NO_INSTALL_PROGS_DEFAULT=$no_install_progs_default
|
NO_INSTALL_PROGS_DEFAULT=$no_install_progs_default
|
||||||
AC_SUBST([NO_INSTALL_PROGS_DEFAULT])
|
AC_SUBST([NO_INSTALL_PROGS_DEFAULT])
|
||||||
|
|
||||||
|
@ -2002,8 +2002,7 @@
|
|||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Copyright (C) 2001, 2003, 2004, 2005, 2006 Free Software
|
Copyright (C) 2001-2009 Free Software Foundation, Inc.
|
||||||
Foundation, Inc.
|
|
||||||
|
|
||||||
Copying and distribution of this file, with or without
|
Copying and distribution of this file, with or without
|
||||||
modification, are permitted provided the copyright notice
|
modification, are permitted provided the copyright notice
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Makefile.in generated by automake 1.10c from Makefile.am.
|
# Makefile.in generated by automake 1.11a from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
@ -147,7 +147,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
|||||||
$(top_srcdir)/m4/memxfrm.m4 $(top_srcdir)/m4/mgetgroups.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/mkancesdirs.m4 $(top_srcdir)/m4/mkdir-p.m4 \
|
||||||
$(top_srcdir)/m4/mkdir-slash.m4 $(top_srcdir)/m4/mkstemp.m4 \
|
$(top_srcdir)/m4/mkdir-slash.m4 $(top_srcdir)/m4/mkstemp.m4 \
|
||||||
$(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \
|
$(top_srcdir)/m4/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/mountlist.m4 $(top_srcdir)/m4/mpsort.m4 \
|
||||||
$(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.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/netdb_h.m4 $(top_srcdir)/m4/netinet_in_h.m4 \
|
||||||
@ -186,15 +187,16 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
|||||||
$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/st_dm_mode.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/stat-prog.m4 $(top_srcdir)/m4/stat-time.m4 \
|
||||||
$(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \
|
$(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \
|
||||||
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
|
$(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
|
||||||
$(top_srcdir)/m4/stdio-safer.m4 $(top_srcdir)/m4/stdio_h.m4 \
|
$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio-safer.m4 \
|
||||||
$(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stdlib_h.m4 \
|
$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib-safer.m4 \
|
||||||
$(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/stpncpy.m4 \
|
$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/stpcpy.m4 \
|
||||||
$(top_srcdir)/m4/strcspn.m4 $(top_srcdir)/m4/strdup.m4 \
|
$(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strcspn.m4 \
|
||||||
$(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \
|
$(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \
|
||||||
$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
|
$(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \
|
||||||
$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strnumcmp.m4 \
|
$(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
|
||||||
$(top_srcdir)/m4/strpbrk.m4 $(top_srcdir)/m4/strtod.m4 \
|
$(top_srcdir)/m4/strnumcmp.m4 $(top_srcdir)/m4/strpbrk.m4 \
|
||||||
|
$(top_srcdir)/m4/strstr.m4 $(top_srcdir)/m4/strtod.m4 \
|
||||||
$(top_srcdir)/m4/strtoimax.m4 $(top_srcdir)/m4/strtol.m4 \
|
$(top_srcdir)/m4/strtoimax.m4 $(top_srcdir)/m4/strtol.m4 \
|
||||||
$(top_srcdir)/m4/strtoll.m4 $(top_srcdir)/m4/strtoul.m4 \
|
$(top_srcdir)/m4/strtoll.m4 $(top_srcdir)/m4/strtoul.m4 \
|
||||||
$(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
|
$(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
|
||||||
@ -213,7 +215,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
|||||||
$(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \
|
$(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \
|
||||||
$(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
|
$(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
|
||||||
$(top_srcdir)/m4/vasprintf-posix.m4 \
|
$(top_srcdir)/m4/vasprintf-posix.m4 \
|
||||||
$(top_srcdir)/m4/vasprintf.m4 \
|
$(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
|
||||||
$(top_srcdir)/m4/vfprintf-posix.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/warnings.m4 \
|
||||||
$(top_srcdir)/m4/wchar.m4 $(top_srcdir)/m4/wchar_t.m4 \
|
$(top_srcdir)/m4/wchar.m4 $(top_srcdir)/m4/wchar_t.m4 \
|
||||||
@ -320,6 +322,7 @@ FCNTL_H = @FCNTL_H@
|
|||||||
FLOAT_H = @FLOAT_H@
|
FLOAT_H = @FLOAT_H@
|
||||||
FNMATCH_H = @FNMATCH_H@
|
FNMATCH_H = @FNMATCH_H@
|
||||||
GETADDRINFO_LIB = @GETADDRINFO_LIB@
|
GETADDRINFO_LIB = @GETADDRINFO_LIB@
|
||||||
|
GETHOSTNAME_LIB = @GETHOSTNAME_LIB@
|
||||||
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
|
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
|
||||||
GETOPT_H = @GETOPT_H@
|
GETOPT_H = @GETOPT_H@
|
||||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||||
@ -350,6 +353,7 @@ GNULIB_FLOORL = @GNULIB_FLOORL@
|
|||||||
GNULIB_FOPEN = @GNULIB_FOPEN@
|
GNULIB_FOPEN = @GNULIB_FOPEN@
|
||||||
GNULIB_FPRINTF = @GNULIB_FPRINTF@
|
GNULIB_FPRINTF = @GNULIB_FPRINTF@
|
||||||
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
|
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
|
||||||
|
GNULIB_FPURGE = @GNULIB_FPURGE@
|
||||||
GNULIB_FPUTC = @GNULIB_FPUTC@
|
GNULIB_FPUTC = @GNULIB_FPUTC@
|
||||||
GNULIB_FPUTS = @GNULIB_FPUTS@
|
GNULIB_FPUTS = @GNULIB_FPUTS@
|
||||||
GNULIB_FREOPEN = @GNULIB_FREOPEN@
|
GNULIB_FREOPEN = @GNULIB_FREOPEN@
|
||||||
@ -416,6 +420,7 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@
|
|||||||
GNULIB_MBSSPN = @GNULIB_MBSSPN@
|
GNULIB_MBSSPN = @GNULIB_MBSSPN@
|
||||||
GNULIB_MBSSTR = @GNULIB_MBSSTR@
|
GNULIB_MBSSTR = @GNULIB_MBSSTR@
|
||||||
GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
|
GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
|
||||||
|
GNULIB_MEMCHR = @GNULIB_MEMCHR@
|
||||||
GNULIB_MEMMEM = @GNULIB_MEMMEM@
|
GNULIB_MEMMEM = @GNULIB_MEMMEM@
|
||||||
GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
|
GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
|
||||||
GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
|
GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
|
||||||
@ -479,6 +484,7 @@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
|
|||||||
GNULIB_TRUNC = @GNULIB_TRUNC@
|
GNULIB_TRUNC = @GNULIB_TRUNC@
|
||||||
GNULIB_TRUNCF = @GNULIB_TRUNCF@
|
GNULIB_TRUNCF = @GNULIB_TRUNCF@
|
||||||
GNULIB_TRUNCL = @GNULIB_TRUNCL@
|
GNULIB_TRUNCL = @GNULIB_TRUNCL@
|
||||||
|
GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
|
||||||
GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
|
GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
|
||||||
GNULIB_UNSETENV = @GNULIB_UNSETENV@
|
GNULIB_UNSETENV = @GNULIB_UNSETENV@
|
||||||
GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
|
GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
|
||||||
@ -508,6 +514,7 @@ HAVE_DECL_COSL = @HAVE_DECL_COSL@
|
|||||||
HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
|
HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
|
||||||
HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
|
HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
|
||||||
HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
|
HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
|
||||||
|
HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
|
||||||
HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@
|
HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@
|
||||||
HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
|
HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
|
||||||
HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@
|
HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@
|
||||||
@ -583,6 +590,7 @@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
|
|||||||
HAVE_READLINK = @HAVE_READLINK@
|
HAVE_READLINK = @HAVE_READLINK@
|
||||||
HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
|
HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
|
||||||
HAVE_RPMATCH = @HAVE_RPMATCH@
|
HAVE_RPMATCH = @HAVE_RPMATCH@
|
||||||
|
HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
|
||||||
HAVE_SCANDIR = @HAVE_SCANDIR@
|
HAVE_SCANDIR = @HAVE_SCANDIR@
|
||||||
HAVE_SETENV = @HAVE_SETENV@
|
HAVE_SETENV = @HAVE_SETENV@
|
||||||
HAVE_SIGACTION = @HAVE_SIGACTION@
|
HAVE_SIGACTION = @HAVE_SIGACTION@
|
||||||
@ -606,6 +614,7 @@ HAVE_STRTOULL = @HAVE_STRTOULL@
|
|||||||
HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@
|
HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@
|
||||||
HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
|
HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
|
||||||
HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
|
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_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
|
||||||
HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
|
HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
|
||||||
HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
|
HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
|
||||||
@ -624,6 +633,7 @@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
|
|||||||
HAVE_VASPRINTF = @HAVE_VASPRINTF@
|
HAVE_VASPRINTF = @HAVE_VASPRINTF@
|
||||||
HAVE_VDPRINTF = @HAVE_VDPRINTF@
|
HAVE_VDPRINTF = @HAVE_VDPRINTF@
|
||||||
HAVE_WCHAR_H = @HAVE_WCHAR_H@
|
HAVE_WCHAR_H = @HAVE_WCHAR_H@
|
||||||
|
HAVE_WCHAR_T = @HAVE_WCHAR_T@
|
||||||
HAVE_WCRTOMB = @HAVE_WCRTOMB@
|
HAVE_WCRTOMB = @HAVE_WCRTOMB@
|
||||||
HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
|
HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
|
||||||
HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
|
HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
|
||||||
@ -689,6 +699,32 @@ NEED_SETGID = @NEED_SETGID@
|
|||||||
NETDB_H = @NETDB_H@
|
NETDB_H = @NETDB_H@
|
||||||
NETINET_IN_H = @NETINET_IN_H@
|
NETINET_IN_H = @NETINET_IN_H@
|
||||||
NEXT_ARPA_INET_H = @NEXT_ARPA_INET_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_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_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_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_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@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@
|
||||||
|
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_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_DIRENT_H = @NEXT_DIRENT_H@
|
NEXT_DIRENT_H = @NEXT_DIRENT_H@
|
||||||
NEXT_ERRNO_H = @NEXT_ERRNO_H@
|
NEXT_ERRNO_H = @NEXT_ERRNO_H@
|
||||||
NEXT_FCNTL_H = @NEXT_FCNTL_H@
|
NEXT_FCNTL_H = @NEXT_FCNTL_H@
|
||||||
@ -700,6 +736,7 @@ NEXT_NETDB_H = @NEXT_NETDB_H@
|
|||||||
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
|
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
|
||||||
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
|
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
|
||||||
NEXT_STDARG_H = @NEXT_STDARG_H@
|
NEXT_STDARG_H = @NEXT_STDARG_H@
|
||||||
|
NEXT_STDDEF_H = @NEXT_STDDEF_H@
|
||||||
NEXT_STDINT_H = @NEXT_STDINT_H@
|
NEXT_STDINT_H = @NEXT_STDINT_H@
|
||||||
NEXT_STDIO_H = @NEXT_STDIO_H@
|
NEXT_STDIO_H = @NEXT_STDIO_H@
|
||||||
NEXT_STDLIB_H = @NEXT_STDLIB_H@
|
NEXT_STDLIB_H = @NEXT_STDLIB_H@
|
||||||
@ -716,6 +753,7 @@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
|
|||||||
NO_INSTALL_PROGS_DEFAULT = @NO_INSTALL_PROGS_DEFAULT@
|
NO_INSTALL_PROGS_DEFAULT = @NO_INSTALL_PROGS_DEFAULT@
|
||||||
OBJEXT = @OBJEXT@
|
OBJEXT = @OBJEXT@
|
||||||
OPTIONAL_BIN_PROGS = @OPTIONAL_BIN_PROGS@
|
OPTIONAL_BIN_PROGS = @OPTIONAL_BIN_PROGS@
|
||||||
|
OPTIONAL_PKGLIB_PROGS = @OPTIONAL_PKGLIB_PROGS@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
PACKAGE_NAME = @PACKAGE_NAME@
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
@ -740,6 +778,7 @@ REPLACE_CEILL = @REPLACE_CEILL@
|
|||||||
REPLACE_CHOWN = @REPLACE_CHOWN@
|
REPLACE_CHOWN = @REPLACE_CHOWN@
|
||||||
REPLACE_CLOSE = @REPLACE_CLOSE@
|
REPLACE_CLOSE = @REPLACE_CLOSE@
|
||||||
REPLACE_DPRINTF = @REPLACE_DPRINTF@
|
REPLACE_DPRINTF = @REPLACE_DPRINTF@
|
||||||
|
REPLACE_DUP2 = @REPLACE_DUP2@
|
||||||
REPLACE_FCHDIR = @REPLACE_FCHDIR@
|
REPLACE_FCHDIR = @REPLACE_FCHDIR@
|
||||||
REPLACE_FCLOSE = @REPLACE_FCLOSE@
|
REPLACE_FCLOSE = @REPLACE_FCLOSE@
|
||||||
REPLACE_FFLUSH = @REPLACE_FFLUSH@
|
REPLACE_FFLUSH = @REPLACE_FFLUSH@
|
||||||
@ -747,6 +786,7 @@ REPLACE_FLOORF = @REPLACE_FLOORF@
|
|||||||
REPLACE_FLOORL = @REPLACE_FLOORL@
|
REPLACE_FLOORL = @REPLACE_FLOORL@
|
||||||
REPLACE_FOPEN = @REPLACE_FOPEN@
|
REPLACE_FOPEN = @REPLACE_FOPEN@
|
||||||
REPLACE_FPRINTF = @REPLACE_FPRINTF@
|
REPLACE_FPRINTF = @REPLACE_FPRINTF@
|
||||||
|
REPLACE_FPURGE = @REPLACE_FPURGE@
|
||||||
REPLACE_FREOPEN = @REPLACE_FREOPEN@
|
REPLACE_FREOPEN = @REPLACE_FREOPEN@
|
||||||
REPLACE_FREXP = @REPLACE_FREXP@
|
REPLACE_FREXP = @REPLACE_FREXP@
|
||||||
REPLACE_FREXPL = @REPLACE_FREXPL@
|
REPLACE_FREXPL = @REPLACE_FREXPL@
|
||||||
@ -777,11 +817,14 @@ REPLACE_MBSINIT = @REPLACE_MBSINIT@
|
|||||||
REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
|
REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
|
||||||
REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
|
REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
|
||||||
REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
|
REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
|
||||||
|
REPLACE_MEMCHR = @REPLACE_MEMCHR@
|
||||||
REPLACE_MEMMEM = @REPLACE_MEMMEM@
|
REPLACE_MEMMEM = @REPLACE_MEMMEM@
|
||||||
REPLACE_MKDIR = @REPLACE_MKDIR@
|
REPLACE_MKDIR = @REPLACE_MKDIR@
|
||||||
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
|
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
|
||||||
|
REPLACE_MKTIME = @REPLACE_MKTIME@
|
||||||
REPLACE_NAN = @REPLACE_NAN@
|
REPLACE_NAN = @REPLACE_NAN@
|
||||||
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
|
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
|
||||||
|
REPLACE_NULL = @REPLACE_NULL@
|
||||||
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
|
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
|
||||||
REPLACE_OPEN = @REPLACE_OPEN@
|
REPLACE_OPEN = @REPLACE_OPEN@
|
||||||
REPLACE_PERROR = @REPLACE_PERROR@
|
REPLACE_PERROR = @REPLACE_PERROR@
|
||||||
@ -827,10 +870,12 @@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
|
|||||||
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
|
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
|
||||||
STDARG_H = @STDARG_H@
|
STDARG_H = @STDARG_H@
|
||||||
STDBOOL_H = @STDBOOL_H@
|
STDBOOL_H = @STDBOOL_H@
|
||||||
|
STDDEF_H = @STDDEF_H@
|
||||||
STDINT_H = @STDINT_H@
|
STDINT_H = @STDINT_H@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
SYS_IOCTL_H = @SYS_IOCTL_H@
|
SYS_IOCTL_H = @SYS_IOCTL_H@
|
||||||
SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_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_SELECT_H = @SYS_SELECT_H@
|
||||||
SYS_SOCKET_H = @SYS_SOCKET_H@
|
SYS_SOCKET_H = @SYS_SOCKET_H@
|
||||||
SYS_STAT_H = @SYS_STAT_H@
|
SYS_STAT_H = @SYS_STAT_H@
|
||||||
@ -841,6 +886,7 @@ U = @U@
|
|||||||
UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
|
UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
|
||||||
UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
|
UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
|
||||||
UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
|
UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
|
||||||
|
UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
|
||||||
USE_ACL = @USE_ACL@
|
USE_ACL = @USE_ACL@
|
||||||
USE_NLS = @USE_NLS@
|
USE_NLS = @USE_NLS@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -105,6 +105,7 @@
|
|||||||
* sort: (coreutils)sort invocation. Sort text files.
|
* sort: (coreutils)sort invocation. Sort text files.
|
||||||
* split: (coreutils)split invocation. Split into fixed-size pieces.
|
* split: (coreutils)split invocation. Split into fixed-size pieces.
|
||||||
* stat: (coreutils)stat invocation. Report file(system) status.
|
* stat: (coreutils)stat invocation. Report file(system) status.
|
||||||
|
* stdbuf: (coreutils)stdbuf invocation. Modify stdio buffering.
|
||||||
* stty: (coreutils)stty invocation. Print/change terminal settings.
|
* stty: (coreutils)stty invocation. Print/change terminal settings.
|
||||||
* su: (coreutils)su invocation. Modify user and group ID.
|
* su: (coreutils)su invocation. Modify user and group ID.
|
||||||
* sum: (coreutils)sum invocation. Print traditional checksum.
|
* sum: (coreutils)sum invocation. Print traditional checksum.
|
||||||
@ -197,7 +198,7 @@ Free Documentation License''.
|
|||||||
* User information:: id logname whoami groups users who
|
* User information:: id logname whoami groups users who
|
||||||
* System context:: date uname hostname hostid uptime
|
* System context:: date uname hostname hostid uptime
|
||||||
* SELinux context:: chcon runcon
|
* SELinux context:: chcon runcon
|
||||||
* Modified command invocation:: chroot env nice nohup su timeout
|
* Modified command invocation:: chroot env nice nohup stdbuf su timeout
|
||||||
* Process control:: kill
|
* Process control:: kill
|
||||||
* Delaying:: sleep
|
* Delaying:: sleep
|
||||||
* Numeric operations:: factor seq
|
* Numeric operations:: factor seq
|
||||||
@ -321,7 +322,7 @@ Special file types
|
|||||||
* mkdir invocation:: Make directories
|
* mkdir invocation:: Make directories
|
||||||
* mkfifo invocation:: Make FIFOs (named pipes)
|
* mkfifo invocation:: Make FIFOs (named pipes)
|
||||||
* mknod invocation:: Make block or character special files
|
* mknod invocation:: Make block or character special files
|
||||||
* readlink invocation:: Print the referent of a symbolic link
|
* readlink invocation:: Print value of a symlink or canonical file name
|
||||||
* rmdir invocation:: Remove empty directories
|
* rmdir invocation:: Remove empty directories
|
||||||
* unlink invocation:: Remove files via unlink syscall
|
* unlink invocation:: Remove files via unlink syscall
|
||||||
|
|
||||||
@ -425,6 +426,7 @@ System context
|
|||||||
* Examples of date:: Examples.
|
* Examples of date:: Examples.
|
||||||
|
|
||||||
SELinux context
|
SELinux context
|
||||||
|
|
||||||
* chcon invocation:: Change SELinux context of file
|
* chcon invocation:: Change SELinux context of file
|
||||||
* runcon invocation:: Run a command in specified SELinux context
|
* runcon invocation:: Run a command in specified SELinux context
|
||||||
|
|
||||||
@ -434,6 +436,7 @@ Modified command invocation
|
|||||||
* env invocation:: Run a command in a modified environment
|
* env invocation:: Run a command in a modified environment
|
||||||
* nice invocation:: Run a command with modified niceness
|
* nice invocation:: Run a command with modified niceness
|
||||||
* nohup invocation:: Run a command immune to hangups
|
* nohup invocation:: Run a command immune to hangups
|
||||||
|
* stdbuf invocation:: Run a command with modified I/O buffering
|
||||||
* su invocation:: Run a command with substitute user and group ID
|
* su invocation:: Run a command with substitute user and group ID
|
||||||
* timeout invocation:: Run a command with a time limit
|
* timeout invocation:: Run a command with a time limit
|
||||||
|
|
||||||
@ -1685,9 +1688,9 @@ Analogous to @option{--body-numbering}.
|
|||||||
Analogous to @option{--body-numbering}.
|
Analogous to @option{--body-numbering}.
|
||||||
|
|
||||||
@item -i @var{number}
|
@item -i @var{number}
|
||||||
@itemx --page-increment=@var{number}
|
@itemx --line-increment=@var{number}
|
||||||
@opindex -i
|
@opindex -i
|
||||||
@opindex --page-increment
|
@opindex --line-increment
|
||||||
Increment line numbers by @var{number} (default 1).
|
Increment line numbers by @var{number} (default 1).
|
||||||
|
|
||||||
@item -l @var{number}
|
@item -l @var{number}
|
||||||
@ -2004,7 +2007,7 @@ address.
|
|||||||
@exitstatus
|
@exitstatus
|
||||||
|
|
||||||
@node base64 invocation
|
@node base64 invocation
|
||||||
@section @command{base64}: Transform data into printable data.
|
@section @command{base64}: Transform data into printable data
|
||||||
|
|
||||||
@pindex base64
|
@pindex base64
|
||||||
@cindex base64 encoding
|
@cindex base64 encoding
|
||||||
@ -2653,22 +2656,22 @@ The program accepts the following options. Also see @ref{Common options}.
|
|||||||
|
|
||||||
@table @samp
|
@table @samp
|
||||||
|
|
||||||
@item -c @var{n}
|
@item -c @var{k}
|
||||||
@itemx --bytes=@var{n}
|
@itemx --bytes=@var{k}
|
||||||
@opindex -c
|
@opindex -c
|
||||||
@opindex --bytes
|
@opindex --bytes
|
||||||
Print the first @var{n} bytes, instead of initial lines.
|
Print the first @var{k} bytes, instead of initial lines.
|
||||||
However, if @var{n} starts with a @samp{-},
|
However, if @var{k} starts with a @samp{-},
|
||||||
print all but the last @var{n} bytes of each file.
|
print all but the last @var{k} bytes of each file.
|
||||||
@multiplierSuffixes{n}
|
@multiplierSuffixes{k}
|
||||||
|
|
||||||
@itemx -n @var{n}
|
@itemx -n @var{k}
|
||||||
@itemx --lines=@var{n}
|
@itemx --lines=@var{k}
|
||||||
@opindex -n
|
@opindex -n
|
||||||
@opindex --lines
|
@opindex --lines
|
||||||
Output the first @var{n} lines.
|
Output the first @var{k} lines.
|
||||||
However, if @var{n} starts with a @samp{-},
|
However, if @var{k} starts with a @samp{-},
|
||||||
print all but the last @var{n} lines of each file.
|
print all but the last @var{k} lines of each file.
|
||||||
Size multiplier suffixes are the same as with the @option{-c} option.
|
Size multiplier suffixes are the same as with the @option{-c} option.
|
||||||
|
|
||||||
@item -q
|
@item -q
|
||||||
@ -2738,14 +2741,14 @@ The program accepts the following options. Also see @ref{Common options}.
|
|||||||
|
|
||||||
@table @samp
|
@table @samp
|
||||||
|
|
||||||
@item -c @var{n}
|
@item -c @var{k}
|
||||||
@itemx --bytes=@var{n}
|
@itemx --bytes=@var{k}
|
||||||
@opindex -c
|
@opindex -c
|
||||||
@opindex --bytes
|
@opindex --bytes
|
||||||
Output the last @var{n} bytes, instead of final lines.
|
Output the last @var{k} bytes, instead of final lines.
|
||||||
However, if @var{n} starts with a @samp{+}, start printing with the
|
However, if @var{k} starts with a @samp{+}, start printing with the
|
||||||
@var{n}th byte from the start of each file, instead of from the end.
|
@var{k}th byte from the start of each file, instead of from the end.
|
||||||
@multiplierSuffixes{n}
|
@multiplierSuffixes{k}
|
||||||
|
|
||||||
@item -f
|
@item -f
|
||||||
@itemx --follow[=@var{how}]
|
@itemx --follow[=@var{how}]
|
||||||
@ -2850,13 +2853,13 @@ number of seconds between when tail prints the last pre-rotation lines
|
|||||||
and when it prints the lines that have accumulated in the new log file.
|
and when it prints the lines that have accumulated in the new log file.
|
||||||
This option is meaningful only when following by name.
|
This option is meaningful only when following by name.
|
||||||
|
|
||||||
@itemx -n @var{n}
|
@itemx -n @var{k}
|
||||||
@itemx --lines=@var{n}
|
@itemx --lines=@var{k}
|
||||||
@opindex -n
|
@opindex -n
|
||||||
@opindex --lines
|
@opindex --lines
|
||||||
Output the last @var{n} lines.
|
Output the last @var{k} lines.
|
||||||
However, if @var{n} starts with a @samp{+}, start printing with the
|
However, if @var{k} starts with a @samp{+}, start printing with the
|
||||||
@var{n}th line from the start of each file, instead of from the end.
|
@var{k}th line from the start of each file, instead of from the end.
|
||||||
Size multiplier suffixes are the same as with the @option{-c} option.
|
Size multiplier suffixes are the same as with the @option{-c} option.
|
||||||
|
|
||||||
@item -q
|
@item -q
|
||||||
@ -3721,7 +3724,9 @@ so portable shell scripts should specify global options first.
|
|||||||
@vindex LC_CTYPE
|
@vindex LC_CTYPE
|
||||||
Ignore leading blanks when finding sort keys in each line.
|
Ignore leading blanks when finding sort keys in each line.
|
||||||
By default a blank is a space or a tab, but the @env{LC_CTYPE} locale
|
By default a blank is a space or a tab, but the @env{LC_CTYPE} locale
|
||||||
can change this.
|
can change this. Note blanks may be ignored by your locale's collating
|
||||||
|
rules, but without this option they will be significant for character
|
||||||
|
positions specified in keys with the @option{-k} option.
|
||||||
|
|
||||||
@item -d
|
@item -d
|
||||||
@itemx --dictionary-order
|
@itemx --dictionary-order
|
||||||
@ -3785,6 +3790,21 @@ Use this option only if there is no alternative; it is much slower than
|
|||||||
@option{--numeric-sort} (@option{-n}) and it can lose information when
|
@option{--numeric-sort} (@option{-n}) and it can lose information when
|
||||||
converting to floating point.
|
converting to floating point.
|
||||||
|
|
||||||
|
@item -h
|
||||||
|
@itemx --human-numeric-sort
|
||||||
|
@itemx --sort=human-numeric
|
||||||
|
@opindex -h
|
||||||
|
@opindex --human-numeric-sort
|
||||||
|
@opindex --sort
|
||||||
|
@cindex human numeric sort
|
||||||
|
@vindex LC_NUMERIC
|
||||||
|
Sort numerically, as per the @option{--numeric-sort} option below, and in
|
||||||
|
addition handle IEC or SI suffixes like MiB, MB etc (@ref{Block size}).
|
||||||
|
Note a mixture of IEC and SI suffixes is not supported and will
|
||||||
|
be flagged as an error. Also the numbers must be abbreviated uniformly.
|
||||||
|
I.E. values with different precisions like 6000K and 5M will be sorted
|
||||||
|
incorrectly.
|
||||||
|
|
||||||
@item -i
|
@item -i
|
||||||
@itemx --ignore-nonprinting
|
@itemx --ignore-nonprinting
|
||||||
@opindex -i
|
@opindex -i
|
||||||
@ -3916,7 +3936,7 @@ according to different rules; see below for details. Keys can span
|
|||||||
multiple fields.
|
multiple fields.
|
||||||
|
|
||||||
Example: To sort on the second field, use @option{--key=2,2}
|
Example: To sort on the second field, use @option{--key=2,2}
|
||||||
(@option{-k 2,2}). See below for more examples.
|
(@option{-k 2,2}). See below for more notes on keys and more examples.
|
||||||
|
|
||||||
@item --batch-size=@var{nmerge}
|
@item --batch-size=@var{nmerge}
|
||||||
@opindex --batch-size
|
@opindex --batch-size
|
||||||
@ -4085,15 +4105,15 @@ affect the meaning of character positions in field specifications in
|
|||||||
obscure cases. The only fix is to add an explicit @option{-b}.
|
obscure cases. The only fix is to add an explicit @option{-b}.
|
||||||
|
|
||||||
A position in a sort field specified with @option{-k} may have any
|
A position in a sort field specified with @option{-k} may have any
|
||||||
of the option letters @samp{Mbdfinr} appended to it, in which case the
|
of the option letters @samp{MbdfghinRrV} appended to it, in which case no
|
||||||
global ordering options are not used for that particular field. The
|
global ordering options are inherited by that particular field. The
|
||||||
@option{-b} option may be independently attached to either or both of
|
@option{-b} option may be independently attached to either or both of
|
||||||
the start and end positions of a field specification, and if it is
|
the start and end positions of a field specification, and if it is
|
||||||
inherited from the global options it will be attached to both.
|
inherited from the global options it will be attached to both.
|
||||||
If input lines can contain leading or adjacent blanks and @option{-t}
|
If input lines can contain leading or adjacent blanks and @option{-t}
|
||||||
is not used, then @option{-k} is typically combined with @option{-b},
|
is not used, then @option{-k} is typically combined with @option{-b} or
|
||||||
@option{-g}, @option{-M}, or @option{-n}; otherwise the varying
|
an option that implicitly ignores leading blanks (@samp{MghnV}) as otherwise
|
||||||
numbers of leading blanks in fields can cause confusing results.
|
the varying numbers of leading blanks in fields can cause confusing results.
|
||||||
|
|
||||||
If the start position in a sort field specifier falls after the end of
|
If the start position in a sort field specifier falls after the end of
|
||||||
the line or after the end field, the field is empty. If the @option{-b}
|
the line or after the end field, the field is empty. If the @option{-b}
|
||||||
@ -4238,6 +4258,17 @@ by the sort operation.
|
|||||||
@c printf 'c\n\nb\n\na\n'|perl -0pe 's/\n\n/\n\0/g'|sort -z|perl -0pe 's/\0/\n/g'
|
@c printf 'c\n\nb\n\na\n'|perl -0pe 's/\n\n/\n\0/g'|sort -z|perl -0pe 's/\0/\n/g'
|
||||||
@c @end example
|
@c @end example
|
||||||
|
|
||||||
|
@item
|
||||||
|
Use the common @acronym{DSU, Decorate Sort Undecorate} idiom to
|
||||||
|
sort lines according to their length.
|
||||||
|
|
||||||
|
@example
|
||||||
|
awk '@{print length, $0@}' /etc/passwd | sort -n | cut -f2- -d' '
|
||||||
|
@end example
|
||||||
|
|
||||||
|
In general this technique can be used to sort data that the @command{sort}
|
||||||
|
command does not support, or is inefficient at, sorting directly.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
Shuffle a list of directories, but preserve the order of files within
|
Shuffle a list of directories, but preserve the order of files within
|
||||||
each directory. For instance, one could use this to generate a music
|
each directory. For instance, one could use this to generate a music
|
||||||
@ -4565,7 +4596,7 @@ Columns are separated by a single TAB character.
|
|||||||
@opindex -2
|
@opindex -2
|
||||||
@opindex -3
|
@opindex -3
|
||||||
The options @option{-1}, @option{-2}, and @option{-3} suppress printing of
|
The options @option{-1}, @option{-2}, and @option{-3} suppress printing of
|
||||||
the corresponding columns. Also see @ref{Common options}.
|
the corresponding columns (and separators). Also see @ref{Common options}.
|
||||||
|
|
||||||
Unlike some other comparison utilities, @command{comm} has an exit
|
Unlike some other comparison utilities, @command{comm} has an exit
|
||||||
status that does not depend on the result of the comparison.
|
status that does not depend on the result of the comparison.
|
||||||
@ -7373,6 +7404,9 @@ Make hard links instead of copies of non-directories.
|
|||||||
@opindex -L
|
@opindex -L
|
||||||
@opindex --dereference
|
@opindex --dereference
|
||||||
Follow symbolic links when copying from them.
|
Follow symbolic links when copying from them.
|
||||||
|
With this option, @command{cp} cannot create a symbolic link.
|
||||||
|
For example, a symlink (to regular file) in the source tree will be copied to
|
||||||
|
a regular file in the destination tree.
|
||||||
|
|
||||||
@item -n
|
@item -n
|
||||||
@itemx --no-clobber
|
@itemx --no-clobber
|
||||||
@ -7420,8 +7454,27 @@ not yet take advantage of that.
|
|||||||
@itemx links
|
@itemx links
|
||||||
Preserve in the destination files
|
Preserve in the destination files
|
||||||
any links between corresponding source files.
|
any links between corresponding source files.
|
||||||
@c Give examples illustrating how hard links are preserved.
|
Note that with @option{-L} or @option{-H}, this option can convert
|
||||||
@c Also, show how soft links map to hard links with -L and -H.
|
symbolic links to hard links. For example,
|
||||||
|
@example
|
||||||
|
$ mkdir c; : > a; ln -s a b; cp -aH a b c; ls -i1 c
|
||||||
|
74161745 a
|
||||||
|
74161745 b
|
||||||
|
@end example
|
||||||
|
@noindent
|
||||||
|
Note the inputs: @file{b} is a symlink to regular file @file{a},
|
||||||
|
yet the files in destination directory, @file{c/}, are hard-linked.
|
||||||
|
Since @option{-a} implies @option{--preserve=links}, and since @option{-H}
|
||||||
|
tells @command{cp} to dereference command line arguments, it sees two files
|
||||||
|
with the same inode number, and preserves the perceived hard link.
|
||||||
|
|
||||||
|
Here is a similar example that exercises @command{cp}'s @option{-L} option:
|
||||||
|
@smallexample
|
||||||
|
$ mkdir b c; (cd b; : > a; ln -s a b); cp -aL b c; ls -i1 c/b
|
||||||
|
74163295 a
|
||||||
|
74163295 b
|
||||||
|
@end smallexample
|
||||||
|
|
||||||
@itemx context
|
@itemx context
|
||||||
Preserve SELinux security context of the file. @command{cp} will fail
|
Preserve SELinux security context of the file. @command{cp} will fail
|
||||||
if the preserving of SELinux security context is not succesful.
|
if the preserving of SELinux security context is not succesful.
|
||||||
@ -7490,6 +7543,15 @@ Also, it is not portable to use @option{-R} to copy symbolic links
|
|||||||
unless you also specify @option{-P}, as @acronym{POSIX} allows
|
unless you also specify @option{-P}, as @acronym{POSIX} allows
|
||||||
implementations that dereference symbolic links by default.
|
implementations that dereference symbolic links by default.
|
||||||
|
|
||||||
|
@item --reflink
|
||||||
|
@opindex --reflink
|
||||||
|
Perform a lightweight, copy-on-write (COW) copy.
|
||||||
|
Copying with this option can succeed only on some relatively new file systems.
|
||||||
|
Once it has succeeded, beware that the source and destination files
|
||||||
|
share the same disk data blocks as long as they remain unmodified.
|
||||||
|
Thus, if a disk I/O error affects data blocks of one of the files,
|
||||||
|
the other suffers the exact same fate.
|
||||||
|
|
||||||
@item --remove-destination
|
@item --remove-destination
|
||||||
@opindex --remove-destination
|
@opindex --remove-destination
|
||||||
Remove each existing destination file before attempting to open it
|
Remove each existing destination file before attempting to open it
|
||||||
@ -7808,6 +7870,10 @@ same time.
|
|||||||
@opindex direct
|
@opindex direct
|
||||||
@cindex direct I/O
|
@cindex direct I/O
|
||||||
Use direct I/O for data, avoiding the buffer cache.
|
Use direct I/O for data, avoiding the buffer cache.
|
||||||
|
Note that the kernel may impose restrictions on read or write buffer sizes.
|
||||||
|
For example, with an ext4 destination file system and a linux-based kernel,
|
||||||
|
using @samp{oflag=direct} will cause writes to fail with @code{EINVAL} if the
|
||||||
|
output buffer size is not a multiple of 512.
|
||||||
|
|
||||||
@item directory
|
@item directory
|
||||||
@opindex directory
|
@opindex directory
|
||||||
@ -8642,7 +8708,7 @@ Besides directories, other special file types include named pipes
|
|||||||
* mkdir invocation:: Make directories.
|
* mkdir invocation:: Make directories.
|
||||||
* mkfifo invocation:: Make FIFOs (named pipes).
|
* mkfifo invocation:: Make FIFOs (named pipes).
|
||||||
* mknod invocation:: Make block or character special files.
|
* mknod invocation:: Make block or character special files.
|
||||||
* readlink invocation:: Print the referent of a symbolic link.
|
* readlink invocation:: Print value of a symlink or canonical file name.
|
||||||
* rmdir invocation:: Remove empty directories.
|
* rmdir invocation:: Remove empty directories.
|
||||||
* unlink invocation:: Remove files via the unlink syscall
|
* unlink invocation:: Remove files via the unlink syscall
|
||||||
@end menu
|
@end menu
|
||||||
@ -9087,10 +9153,14 @@ Set the default SELinux security context to be used for created files.
|
|||||||
|
|
||||||
|
|
||||||
@node readlink invocation
|
@node readlink invocation
|
||||||
@section @command{readlink}: Print the referent of a symbolic link
|
@section @command{readlink}: Print value of a symlink or canonical file name
|
||||||
|
|
||||||
@pindex readlink
|
@pindex readlink
|
||||||
@cindex displaying value of a symbolic link
|
@cindex displaying value of a symbolic link
|
||||||
|
@cindex canonical file name
|
||||||
|
@cindex canonicalize a file name
|
||||||
|
@pindex realpath
|
||||||
|
@findex realpath
|
||||||
|
|
||||||
@command{readlink} may work in one of two supported modes:
|
@command{readlink} may work in one of two supported modes:
|
||||||
|
|
||||||
@ -9170,6 +9240,9 @@ Report error messages.
|
|||||||
|
|
||||||
The @command{readlink} utility first appeared in OpenBSD 2.1.
|
The @command{readlink} utility first appeared in OpenBSD 2.1.
|
||||||
|
|
||||||
|
There is a @command{realpath} command on some systems
|
||||||
|
which operates like @command{readlink} in canonicalize mode.
|
||||||
|
|
||||||
@exitstatus
|
@exitstatus
|
||||||
|
|
||||||
|
|
||||||
@ -13066,186 +13139,14 @@ This section describes commands that print or change system-wide
|
|||||||
information.
|
information.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* arch invocation:: Print machine hardware name.
|
|
||||||
* date invocation:: Print or set system date and time.
|
* date invocation:: Print or set system date and time.
|
||||||
|
* arch invocation:: Print machine hardware name.
|
||||||
* uname invocation:: Print system information.
|
* uname invocation:: Print system information.
|
||||||
* hostname invocation:: Print or set system name.
|
* hostname invocation:: Print or set system name.
|
||||||
* hostid invocation:: Print numeric host identifier.
|
* hostid invocation:: Print numeric host identifier.
|
||||||
* uptime invocation:: Print system uptime and load
|
* uptime invocation:: Print system uptime and load.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node SELinux context
|
|
||||||
@chapter SELinux context
|
|
||||||
|
|
||||||
@cindex SELinux context
|
|
||||||
@cindex SELinux, context
|
|
||||||
@cindex commands for SELinux context
|
|
||||||
|
|
||||||
This section describes commands for operations with SELinux
|
|
||||||
contexts.
|
|
||||||
|
|
||||||
@menu
|
|
||||||
* chcon invocation:: Change SELinux context of file
|
|
||||||
* runcon invocation:: Run a command in specified SELinux context
|
|
||||||
@end menu
|
|
||||||
|
|
||||||
@node chcon invocation
|
|
||||||
@section @command{chcon}: Change SELinux context of file.
|
|
||||||
|
|
||||||
@pindex chcon
|
|
||||||
@cindex changing security context
|
|
||||||
@cindex change SELinux context
|
|
||||||
|
|
||||||
@command{chcon} changes the SELinux security context of the selected files.
|
|
||||||
Synopses:
|
|
||||||
|
|
||||||
@smallexample
|
|
||||||
chcon [@var{option}]@dots{} @var{context} @var{file}@dots{}
|
|
||||||
chcon [@var{option}]@dots{} [-u @var{user}] [-r @var{role}] [-l @var{range}] [-t @var{type}] @var{file}@dots{}
|
|
||||||
chcon [@var{option}]@dots{} --reference=@var{rfile} @var{file}@dots{}
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
Change the SELinux security context of each @var{file} to @var{context}.
|
|
||||||
With @option{--reference}, change the security context of each @var{file}
|
|
||||||
to that of @var{rfile}.
|
|
||||||
|
|
||||||
The program accepts the following options. Also see @ref{Common options}.
|
|
||||||
|
|
||||||
@table @samp
|
|
||||||
|
|
||||||
@item -h
|
|
||||||
@itemx --no-dereference
|
|
||||||
@opindex -h
|
|
||||||
@opindex --no-dereference
|
|
||||||
@cindex no dereference
|
|
||||||
Affect symbolic links instead of any referenced file.
|
|
||||||
|
|
||||||
@item --reference=@var{rfile}
|
|
||||||
@opindex --reference
|
|
||||||
@cindex reference file
|
|
||||||
Use @var{rfile}'s security context rather than specifying a @var{context} value.
|
|
||||||
|
|
||||||
@item -R
|
|
||||||
@itemx --recursive
|
|
||||||
@opindex -R
|
|
||||||
@opindex --recursive
|
|
||||||
Operate on files and directories recursively.
|
|
||||||
|
|
||||||
@choptH
|
|
||||||
@xref{Traversing symlinks}.
|
|
||||||
|
|
||||||
@choptL
|
|
||||||
@xref{Traversing symlinks}.
|
|
||||||
|
|
||||||
@choptP
|
|
||||||
@xref{Traversing symlinks}.
|
|
||||||
|
|
||||||
@item -v
|
|
||||||
@itemx --verbose
|
|
||||||
@opindex -v
|
|
||||||
@opindex --verbose
|
|
||||||
@cindex diagnostic
|
|
||||||
Output a diagnostic for every file processed.
|
|
||||||
|
|
||||||
@item -u @var{user}
|
|
||||||
@itemx --user=@var{user}
|
|
||||||
@opindex -u
|
|
||||||
@opindex --user
|
|
||||||
Set user @var{user} in the target security context.
|
|
||||||
|
|
||||||
@item -r @var{role}
|
|
||||||
@itemx --role=@var{role}
|
|
||||||
@opindex -r
|
|
||||||
@opindex --role
|
|
||||||
Set role @var{role} in the target security context.
|
|
||||||
|
|
||||||
@item -t @var{type}
|
|
||||||
@itemx --type=@var{type}
|
|
||||||
@opindex -t
|
|
||||||
@opindex --type
|
|
||||||
Set type @var{type} in the target security context.
|
|
||||||
|
|
||||||
@item -l @var{range}
|
|
||||||
@itemx --range=@var{range}
|
|
||||||
@opindex -l
|
|
||||||
@opindex --range
|
|
||||||
Set range @var{range} in the target security context.
|
|
||||||
|
|
||||||
@end table
|
|
||||||
|
|
||||||
@exitstatus
|
|
||||||
|
|
||||||
@node runcon invocation
|
|
||||||
@section @command{runcon}: Run a command in specified SELinux context
|
|
||||||
|
|
||||||
@pindex runcon
|
|
||||||
@cindex run with security context
|
|
||||||
|
|
||||||
|
|
||||||
@command{runcon} runs file in specified SELinux security context.
|
|
||||||
|
|
||||||
Synopses:
|
|
||||||
@smallexample
|
|
||||||
runcon @var{context} @var{command} [@var{args}]
|
|
||||||
runcon [ -c ] [-u @var{user}] [-r @var{role}] [-t @var{type}] [-l @var{range}] @var{command} [@var{args}]
|
|
||||||
@end smallexample
|
|
||||||
|
|
||||||
Run @var{command} with completely-specified @var{context}, or with
|
|
||||||
current or transitioned security context modified by one or more of @var{level},
|
|
||||||
@var{role}, @var{type} and @var{user}.
|
|
||||||
|
|
||||||
If none of @option{-c}, @option{-t}, @option{-u}, @option{-r}, or @option{-l}
|
|
||||||
is specified, the first argument is used as the complete context.
|
|
||||||
Any additional arguments after @var{command}
|
|
||||||
are interpreted as arguments to the command.
|
|
||||||
|
|
||||||
With neither @var{context} nor @var{command}, print the current security context.
|
|
||||||
|
|
||||||
The program accepts the following options. Also see @ref{Common options}.
|
|
||||||
|
|
||||||
@table @samp
|
|
||||||
|
|
||||||
@item -c
|
|
||||||
@itemx --compute
|
|
||||||
@opindex -c
|
|
||||||
@opindex --compute
|
|
||||||
Compute process transition context before modifying.
|
|
||||||
|
|
||||||
@item -u @var{user}
|
|
||||||
@itemx --user=@var{user}
|
|
||||||
@opindex -u
|
|
||||||
@opindex --user
|
|
||||||
Set user @var{user} in the target security context.
|
|
||||||
|
|
||||||
@item -r @var{role}
|
|
||||||
@itemx --role=@var{role}
|
|
||||||
@opindex -r
|
|
||||||
@opindex --role
|
|
||||||
Set role @var{role} in the target security context.
|
|
||||||
|
|
||||||
@item -t @var{type}
|
|
||||||
@itemx --type=@var{type}
|
|
||||||
@opindex -t
|
|
||||||
@opindex --type
|
|
||||||
Set type @var{type} in the target security context.
|
|
||||||
|
|
||||||
@item -l @var{range}
|
|
||||||
@itemx --range=@var{range}
|
|
||||||
@opindex -l
|
|
||||||
@opindex --range
|
|
||||||
Set range @var{range} in the target security context.
|
|
||||||
|
|
||||||
@end table
|
|
||||||
|
|
||||||
@cindex exit status of @command{runcon}
|
|
||||||
Exit status:
|
|
||||||
|
|
||||||
@display
|
|
||||||
126 if @var{command} is found but cannot be invoked
|
|
||||||
127 if @command{runcon} itself fails or if @var{command} cannot be found
|
|
||||||
the exit status of @var{command} otherwise
|
|
||||||
@end display
|
|
||||||
|
|
||||||
@node date invocation
|
@node date invocation
|
||||||
@section @command{date}: Print or set system date and time
|
@section @command{date}: Print or set system date and time
|
||||||
|
|
||||||
@ -14053,7 +13954,7 @@ options}.
|
|||||||
|
|
||||||
|
|
||||||
@node hostid invocation
|
@node hostid invocation
|
||||||
@section @command{hostid}: Print numeric host identifier.
|
@section @command{hostid}: Print numeric host identifier
|
||||||
|
|
||||||
@pindex hostid
|
@pindex hostid
|
||||||
@cindex printing the host identifier
|
@cindex printing the host identifier
|
||||||
@ -14107,6 +14008,178 @@ also include processes in the uninterruptible sleep state (that is,
|
|||||||
those processes which are waiting for disk I/O). The Linux kernel
|
those processes which are waiting for disk I/O). The Linux kernel
|
||||||
includes uninterruptible processes.
|
includes uninterruptible processes.
|
||||||
|
|
||||||
|
@node SELinux context
|
||||||
|
@chapter SELinux context
|
||||||
|
|
||||||
|
@cindex SELinux context
|
||||||
|
@cindex SELinux, context
|
||||||
|
@cindex commands for SELinux context
|
||||||
|
|
||||||
|
This section describes commands for operations with SELinux
|
||||||
|
contexts.
|
||||||
|
|
||||||
|
@menu
|
||||||
|
* chcon invocation:: Change SELinux context of file
|
||||||
|
* runcon invocation:: Run a command in specified SELinux context
|
||||||
|
@end menu
|
||||||
|
|
||||||
|
@node chcon invocation
|
||||||
|
@section @command{chcon}: Change SELinux context of file
|
||||||
|
|
||||||
|
@pindex chcon
|
||||||
|
@cindex changing security context
|
||||||
|
@cindex change SELinux context
|
||||||
|
|
||||||
|
@command{chcon} changes the SELinux security context of the selected files.
|
||||||
|
Synopses:
|
||||||
|
|
||||||
|
@smallexample
|
||||||
|
chcon [@var{option}]@dots{} @var{context} @var{file}@dots{}
|
||||||
|
chcon [@var{option}]@dots{} [-u @var{user}] [-r @var{role}] [-l @var{range}] [-t @var{type}] @var{file}@dots{}
|
||||||
|
chcon [@var{option}]@dots{} --reference=@var{rfile} @var{file}@dots{}
|
||||||
|
@end smallexample
|
||||||
|
|
||||||
|
Change the SELinux security context of each @var{file} to @var{context}.
|
||||||
|
With @option{--reference}, change the security context of each @var{file}
|
||||||
|
to that of @var{rfile}.
|
||||||
|
|
||||||
|
The program accepts the following options. Also see @ref{Common options}.
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
|
||||||
|
@item -h
|
||||||
|
@itemx --no-dereference
|
||||||
|
@opindex -h
|
||||||
|
@opindex --no-dereference
|
||||||
|
@cindex no dereference
|
||||||
|
Affect symbolic links instead of any referenced file.
|
||||||
|
|
||||||
|
@item --reference=@var{rfile}
|
||||||
|
@opindex --reference
|
||||||
|
@cindex reference file
|
||||||
|
Use @var{rfile}'s security context rather than specifying a @var{context} value.
|
||||||
|
|
||||||
|
@item -R
|
||||||
|
@itemx --recursive
|
||||||
|
@opindex -R
|
||||||
|
@opindex --recursive
|
||||||
|
Operate on files and directories recursively.
|
||||||
|
|
||||||
|
@choptH
|
||||||
|
@xref{Traversing symlinks}.
|
||||||
|
|
||||||
|
@choptL
|
||||||
|
@xref{Traversing symlinks}.
|
||||||
|
|
||||||
|
@choptP
|
||||||
|
@xref{Traversing symlinks}.
|
||||||
|
|
||||||
|
@item -v
|
||||||
|
@itemx --verbose
|
||||||
|
@opindex -v
|
||||||
|
@opindex --verbose
|
||||||
|
@cindex diagnostic
|
||||||
|
Output a diagnostic for every file processed.
|
||||||
|
|
||||||
|
@item -u @var{user}
|
||||||
|
@itemx --user=@var{user}
|
||||||
|
@opindex -u
|
||||||
|
@opindex --user
|
||||||
|
Set user @var{user} in the target security context.
|
||||||
|
|
||||||
|
@item -r @var{role}
|
||||||
|
@itemx --role=@var{role}
|
||||||
|
@opindex -r
|
||||||
|
@opindex --role
|
||||||
|
Set role @var{role} in the target security context.
|
||||||
|
|
||||||
|
@item -t @var{type}
|
||||||
|
@itemx --type=@var{type}
|
||||||
|
@opindex -t
|
||||||
|
@opindex --type
|
||||||
|
Set type @var{type} in the target security context.
|
||||||
|
|
||||||
|
@item -l @var{range}
|
||||||
|
@itemx --range=@var{range}
|
||||||
|
@opindex -l
|
||||||
|
@opindex --range
|
||||||
|
Set range @var{range} in the target security context.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@exitstatus
|
||||||
|
|
||||||
|
@node runcon invocation
|
||||||
|
@section @command{runcon}: Run a command in specified SELinux context
|
||||||
|
|
||||||
|
@pindex runcon
|
||||||
|
@cindex run with security context
|
||||||
|
|
||||||
|
|
||||||
|
@command{runcon} runs file in specified SELinux security context.
|
||||||
|
|
||||||
|
Synopses:
|
||||||
|
@smallexample
|
||||||
|
runcon @var{context} @var{command} [@var{args}]
|
||||||
|
runcon [ -c ] [-u @var{user}] [-r @var{role}] [-t @var{type}] [-l @var{range}] @var{command} [@var{args}]
|
||||||
|
@end smallexample
|
||||||
|
|
||||||
|
Run @var{command} with completely-specified @var{context}, or with
|
||||||
|
current or transitioned security context modified by one or more of @var{level},
|
||||||
|
@var{role}, @var{type} and @var{user}.
|
||||||
|
|
||||||
|
If none of @option{-c}, @option{-t}, @option{-u}, @option{-r}, or @option{-l}
|
||||||
|
is specified, the first argument is used as the complete context.
|
||||||
|
Any additional arguments after @var{command}
|
||||||
|
are interpreted as arguments to the command.
|
||||||
|
|
||||||
|
With neither @var{context} nor @var{command}, print the current security context.
|
||||||
|
|
||||||
|
The program accepts the following options. Also see @ref{Common options}.
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
|
||||||
|
@item -c
|
||||||
|
@itemx --compute
|
||||||
|
@opindex -c
|
||||||
|
@opindex --compute
|
||||||
|
Compute process transition context before modifying.
|
||||||
|
|
||||||
|
@item -u @var{user}
|
||||||
|
@itemx --user=@var{user}
|
||||||
|
@opindex -u
|
||||||
|
@opindex --user
|
||||||
|
Set user @var{user} in the target security context.
|
||||||
|
|
||||||
|
@item -r @var{role}
|
||||||
|
@itemx --role=@var{role}
|
||||||
|
@opindex -r
|
||||||
|
@opindex --role
|
||||||
|
Set role @var{role} in the target security context.
|
||||||
|
|
||||||
|
@item -t @var{type}
|
||||||
|
@itemx --type=@var{type}
|
||||||
|
@opindex -t
|
||||||
|
@opindex --type
|
||||||
|
Set type @var{type} in the target security context.
|
||||||
|
|
||||||
|
@item -l @var{range}
|
||||||
|
@itemx --range=@var{range}
|
||||||
|
@opindex -l
|
||||||
|
@opindex --range
|
||||||
|
Set range @var{range} in the target security context.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@cindex exit status of @command{runcon}
|
||||||
|
Exit status:
|
||||||
|
|
||||||
|
@display
|
||||||
|
126 if @var{command} is found but cannot be invoked
|
||||||
|
127 if @command{runcon} itself fails or if @var{command} cannot be found
|
||||||
|
the exit status of @var{command} otherwise
|
||||||
|
@end display
|
||||||
|
|
||||||
@node Modified command invocation
|
@node Modified command invocation
|
||||||
@chapter Modified command invocation
|
@chapter Modified command invocation
|
||||||
|
|
||||||
@ -14123,6 +14196,7 @@ user, etc.
|
|||||||
* env invocation:: Modify environment variables.
|
* env invocation:: Modify environment variables.
|
||||||
* nice invocation:: Modify niceness.
|
* nice invocation:: Modify niceness.
|
||||||
* nohup invocation:: Immunize to hangups.
|
* nohup invocation:: Immunize to hangups.
|
||||||
|
* stdbuf invocation:: Modify buffering of standard streams.
|
||||||
* su invocation:: Modify user and group ID.
|
* su invocation:: Modify user and group ID.
|
||||||
* timeout invocation:: Run with time limit.
|
* timeout invocation:: Run with time limit.
|
||||||
@end menu
|
@end menu
|
||||||
@ -14144,7 +14218,7 @@ underlying function is non-privileged due to lack of support in MS-Windows.}
|
|||||||
Synopses:
|
Synopses:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
chroot @var{newroot} [@var{command} [@var{args}]@dots{}]
|
chroot @var{option} @var{newroot} [@var{command} [@var{args}]@dots{}]
|
||||||
chroot @var{option}
|
chroot @var{option}
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@ -14157,8 +14231,25 @@ variable or @command{/bin/sh} if not set, invoked with the @option{-i} option.
|
|||||||
@var{command} must not be a special built-in utility
|
@var{command} must not be a special built-in utility
|
||||||
(@pxref{Special built-in utilities}).
|
(@pxref{Special built-in utilities}).
|
||||||
|
|
||||||
The only options are @option{--help} and @option{--version}. @xref{Common
|
The program accepts the following options. Also see @ref{Common options}.
|
||||||
options}. Options must precede operands.
|
Options must precede operands.
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
|
||||||
|
@itemx --userspec=@var{user}[:@var{group}]
|
||||||
|
@opindex --userspec
|
||||||
|
By default, @var{command} is run with the same credentials
|
||||||
|
as the invoking process.
|
||||||
|
Use this option to run it as a different @var{user} and/or with a
|
||||||
|
different primary @var{group}.
|
||||||
|
|
||||||
|
@itemx --groups=@var{groups}
|
||||||
|
@opindex --groups
|
||||||
|
Use this option to specify the supplementary @var{groups} to be
|
||||||
|
used by the new process.
|
||||||
|
The items in the list (names or numeric IDs) must be separated by commas.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
Here are a few tips to help avoid common problems in using chroot.
|
Here are a few tips to help avoid common problems in using chroot.
|
||||||
To start with a simple example, make @var{command} refer to a statically
|
To start with a simple example, make @var{command} refer to a statically
|
||||||
@ -14469,6 +14560,85 @@ the exit status of @var{command} otherwise
|
|||||||
@end display
|
@end display
|
||||||
|
|
||||||
|
|
||||||
|
@node stdbuf invocation
|
||||||
|
@section @command{stdbuf}: Run a command with modified I/O stream buffering
|
||||||
|
|
||||||
|
@pindex stdbuf
|
||||||
|
@cindex standard streams, buffering
|
||||||
|
@cindex line buffered
|
||||||
|
|
||||||
|
@command{stdbuf} allows one to modify the buffering operations of the
|
||||||
|
three standard I/O streams associated with a program. Synopsis:
|
||||||
|
|
||||||
|
@example
|
||||||
|
stdbuf @var{option}@dots{} @var{command}
|
||||||
|
@end example
|
||||||
|
|
||||||
|
Any additional @var{arg}s are passed as additional arguments to the
|
||||||
|
@var{command}.
|
||||||
|
|
||||||
|
The program accepts the following options. Also see @ref{Common options}.
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
|
||||||
|
@item -i @var{mode}
|
||||||
|
@itemx --input=@var{mode}
|
||||||
|
@opindex -i
|
||||||
|
@opindex --input
|
||||||
|
Adjust the standard input stream buffering.
|
||||||
|
|
||||||
|
@item -o @var{mode}
|
||||||
|
@itemx --output=@var{mode}
|
||||||
|
@opindex -o
|
||||||
|
@opindex --output
|
||||||
|
Adjust the standard output stream buffering.
|
||||||
|
|
||||||
|
@item -e @var{mode}
|
||||||
|
@itemx --error=@var{mode}
|
||||||
|
@opindex -e
|
||||||
|
@opindex --error
|
||||||
|
Adjust the standard error stream buffering.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
The @var{mode} can be specified as follows:
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
|
||||||
|
@item L
|
||||||
|
Set the stream to line buffered mode.
|
||||||
|
In this mode data is coalesced until a newline is output or
|
||||||
|
input is read from any stream attached to a terminal device.
|
||||||
|
This option is invalid with standard input.
|
||||||
|
|
||||||
|
@item 0
|
||||||
|
Disable buffering of the selected stream.
|
||||||
|
In this mode data is output immediately and only the
|
||||||
|
amount of data requested is read from input.
|
||||||
|
|
||||||
|
@item @var{size}
|
||||||
|
Specify the size of the buffer to use in fully buffered mode.
|
||||||
|
@multiplierSuffixesNoBlocks{size}
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
NOTE: If @var{command} adjusts the buffering of its standard streams
|
||||||
|
(@command{tee} does for e.g.) then that will override corresponding settings
|
||||||
|
changed by @command{stdbuf}. Also some filters (like @command{dd} and
|
||||||
|
@command{cat} etc.) don't use streams for I/O, and are thus unaffected
|
||||||
|
by @command{stdbuf} settings.
|
||||||
|
|
||||||
|
@cindex exit status of @command{stdbuf}
|
||||||
|
Exit status:
|
||||||
|
|
||||||
|
@display
|
||||||
|
125 if @command{stdbuf} itself fails
|
||||||
|
126 if @var{command} is found but cannot be invoked
|
||||||
|
127 if @var{command} cannot be found
|
||||||
|
the exit status of @var{command} otherwise
|
||||||
|
@end display
|
||||||
|
|
||||||
|
|
||||||
@node su invocation
|
@node su invocation
|
||||||
@section @command{su}: Run a command with substitute user and group ID
|
@section @command{su}: Run a command with substitute user and group ID
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
@c File mode bits
|
@c File mode bits
|
||||||
|
|
||||||
@c Copyright (C) 1994, 1996, 1999-2001, 2003-2006, 2008
|
@c Copyright (C) 1994, 1996, 1999-2001, 2003-2006,
|
||||||
@c Free Software Foundation, Inc.
|
@c 2008-2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
@c Permission is granted to copy, distribute and/or modify this document
|
@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
|
@c under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
@set UPDATED 5 May 2009
|
@set UPDATED 18 August 2009
|
||||||
@set UPDATED-MONTH May 2009
|
@set UPDATED-MONTH August 2009
|
||||||
@set EDITION 7.4
|
@set EDITION 7.5
|
||||||
@set VERSION 7.4
|
@set VERSION 7.5
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
@set UPDATED 5 May 2009
|
@set UPDATED 18 August 2009
|
||||||
@set UPDATED-MONTH May 2009
|
@set UPDATED-MONTH August 2009
|
||||||
@set EDITION 7.4
|
@set EDITION 7.5
|
||||||
@set VERSION 7.4
|
@set VERSION 7.5
|
||||||
|
@ -8746,8 +8746,7 @@
|
|||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
|
Copyright (C) 2000-2009 Free Software Foundation, Inc.
|
||||||
Software Foundation, Inc.
|
|
||||||
|
|
||||||
Copying and distribution of this file, with or without
|
Copying and distribution of this file, with or without
|
||||||
modification, are permitted provided the copyright notice
|
modification, are permitted provided the copyright notice
|
||||||
|
@ -8,6 +8,7 @@ SubDirCcFlags -DHAVE_CONFIG_H ;
|
|||||||
|
|
||||||
SubDirSysHdrs $(SUBDIR) ;
|
SubDirSysHdrs $(SUBDIR) ;
|
||||||
#SubDirSysHdrs $(SUBDIR) $(DOTDOT) ;
|
#SubDirSysHdrs $(SUBDIR) $(DOTDOT) ;
|
||||||
|
UseLibraryHeaders iconv ;
|
||||||
|
|
||||||
StaticLibrary libfetish.a :
|
StaticLibrary libfetish.a :
|
||||||
# __fpending.c
|
# __fpending.c
|
||||||
@ -179,6 +180,7 @@ StaticLibrary libfetish.a :
|
|||||||
# strcspn.c
|
# strcspn.c
|
||||||
# strdup.c
|
# strdup.c
|
||||||
strftime.c
|
strftime.c
|
||||||
|
striconv.c
|
||||||
strintcmp.c
|
strintcmp.c
|
||||||
stripslash.c
|
stripslash.c
|
||||||
strnlen1.c
|
strnlen1.c
|
||||||
@ -223,6 +225,7 @@ StaticLibrary libfetish.a :
|
|||||||
xmemxfrm.c
|
xmemxfrm.c
|
||||||
xnanosleep.c
|
xnanosleep.c
|
||||||
xprintf.c
|
xprintf.c
|
||||||
|
xstriconv.c
|
||||||
xstrndup.c
|
xstrndup.c
|
||||||
xstrtod.c
|
xstrtod.c
|
||||||
xstrtoimax.c
|
xstrtoimax.c
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Makefile.in generated by automake 1.10c from Makefile.am.
|
# Makefile.in generated by automake 1.11a from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
@ -26,7 +26,7 @@
|
|||||||
# the same distribution terms as the rest of that program.
|
# the same distribution terms as the rest of that program.
|
||||||
#
|
#
|
||||||
# Generated by gnulib-tool.
|
# Generated by gnulib-tool.
|
||||||
# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libcoreutils --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=gnulib-tests --aux-dir=build-aux --with-tests --avoid=canonicalize-lgpl --avoid=dummy --avoid=lock --no-libtool --macro-prefix=gl acl alloca announce-gen areadlink-with-size argmatch argv-iter assert atexit autobuild backupfile base64 c-strcase c-strtod c-strtold calloc canon-host canonicalize chown cloexec closein closeout config-h configmake crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 cycle-check d-ino d-type diacrit dirfd dirname dup2 error euidaccess exclude exitfail fchdir fcntl fcntl-safer fdl file-type fileblocks filemode filenamecat filevercmp fnmatch-gnu fopen-safer fprintftime fseeko fsusage ftello ftruncate fts gendocs getdate getgroups gethrxtime getline getloadavg getndelim2 getopt getpagesize getpass-gnu gettext gettime gettimeofday getugroups getusershell git-version-gen gitlog-to-changelog gnu-make gnumakefile gnupload group-member hard-locale hash hash-pjw host-os human idcache ignore-value inttostr inttypes isapipe lchmod lchown lib-ignore linebuffer link-follow long-options lstat maintainer-makefile malloc manywarnings mbrtowc mbsalign mbswidth memcasecmp memchr memcmp memcmp2 memcpy memmove mempcpy memrchr memset mgetgroups mkancesdirs mkdir mkdir-p mkstemp mktime modechange mountlist mpsort obstack pathmax perl physmem posix-shell posixtm posixver priv-set progname propername putenv quote quotearg raise randint randperm readlink readtokens readtokens0 readutmp realloc regex rename rename-dest-slash rmdir rmdir-errno root-dev-ino rpmatch safe-read same save-cwd savedir savewd selinux-at settime sig2str sigaction ssize_t stat-macros stat-time stdbool stdlib-safer stpcpy stpncpy strcspn strdup strftime strpbrk strtod strtoimax strtol strtoumax strverscmp sys_stat timespec tzset unicodeio unistd-safer unlink-busy unlinkdir unlocked-io uptime useless-if-before-free userspec utimecmp utimens vasprintf-posix vc-list-files verify verror version-etc-fsf warnings wcwidth winsz-ioctl winsz-termios write-any-file xalloc xfreopen xgetcwd xgethostname xmemcoll xnanosleep xprintf xprintf-posix xstrtod xstrtoimax xstrtol xstrtold xstrtoumax yesno
|
# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libcoreutils --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=gnulib-tests --aux-dir=build-aux --with-tests --avoid=canonicalize-lgpl --avoid=dummy --avoid=lock --no-libtool --macro-prefix=gl acl alloca announce-gen areadlink-with-size argmatch argv-iter assert atexit autobuild backupfile base64 c-strcase c-strtod c-strtold calloc canon-host canonicalize chown cloexec closein closeout config-h configmake crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 cycle-check d-ino d-type diacrit dirfd dirname dup2 error euidaccess exclude exitfail fchdir fcntl fcntl-safer fdl file-type fileblocks filemode filenamecat filevercmp fnmatch-gnu fopen-safer fprintftime fseeko fsusage ftello ftruncate fts gendocs getdate getgroups gethrxtime getline getloadavg getndelim2 getopt-gnu getpagesize getpass-gnu gettext gettime gettimeofday getugroups getusershell git-version-gen gitlog-to-changelog gnu-make gnumakefile gnupload group-member hard-locale hash hash-pjw host-os human idcache ignore-value inttostr inttypes isapipe lchmod lchown lib-ignore linebuffer link-follow long-options lstat maintainer-makefile malloc manywarnings mbrtowc mbsalign mbswidth memcasecmp memchr memcmp memcmp2 memcpy memmove mempcpy memrchr memset mgetgroups mkancesdirs mkdir mkdir-p mkstemp mktime modechange mountlist mpsort obstack pathmax perl physmem posix-shell posixtm posixver priv-set progname propername putenv quote quotearg raise randint randperm readlink readtokens readtokens0 readutmp realloc regex rename rename-dest-slash rmdir rmdir-errno root-dev-ino rpmatch safe-read same save-cwd savedir savewd selinux-at settime sig2str sigaction ssize_t stat-macros stat-time stdbool stdlib-safer stpcpy stpncpy strcspn strdup strftime strpbrk strtod strtoimax strtol strtoumax strverscmp sys_stat timespec tzset unicodeio unistd-safer unlink-busy unlinkdir unlocked-io update-copyright uptime useless-if-before-free userspec utimecmp utimens vasprintf-posix vc-list-files verify verror version-etc-fsf warnings wcwidth winsz-ioctl winsz-termios write-any-file xalloc xfreopen xgetcwd xgethostname xmemcoll xnanosleep xprintf xprintf-posix xstrtod xstrtoimax xstrtol xstrtold xstrtoumax yesno
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ build_triplet = @build@
|
|||||||
host_triplet = @host@
|
host_triplet = @host@
|
||||||
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
|
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
|
||||||
$(srcdir)/Makefile.in $(srcdir)/config.hin $(srcdir)/gnulib.mk \
|
$(srcdir)/Makefile.in $(srcdir)/config.hin $(srcdir)/gnulib.mk \
|
||||||
TODO alloca.c euidaccess-stat.c euidaccess-stat.h fd-reopen.c \
|
alloca.c euidaccess-stat.c euidaccess-stat.h fd-reopen.c \
|
||||||
fd-reopen.h getdate.c memxfrm.c memxfrm.h strintcmp.c \
|
fd-reopen.h getdate.c memxfrm.c memxfrm.h strintcmp.c \
|
||||||
strnumcmp-in.h strnumcmp.c strnumcmp.h xfts.c xfts.h
|
strnumcmp-in.h strnumcmp.c strnumcmp.h xfts.c xfts.h
|
||||||
subdir = lib
|
subdir = lib
|
||||||
@ -149,7 +149,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
|||||||
$(top_srcdir)/m4/memxfrm.m4 $(top_srcdir)/m4/mgetgroups.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/mkancesdirs.m4 $(top_srcdir)/m4/mkdir-p.m4 \
|
||||||
$(top_srcdir)/m4/mkdir-slash.m4 $(top_srcdir)/m4/mkstemp.m4 \
|
$(top_srcdir)/m4/mkdir-slash.m4 $(top_srcdir)/m4/mkstemp.m4 \
|
||||||
$(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \
|
$(top_srcdir)/m4/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/mountlist.m4 $(top_srcdir)/m4/mpsort.m4 \
|
||||||
$(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.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/netdb_h.m4 $(top_srcdir)/m4/netinet_in_h.m4 \
|
||||||
@ -188,15 +189,16 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
|||||||
$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/st_dm_mode.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/stat-prog.m4 $(top_srcdir)/m4/stat-time.m4 \
|
||||||
$(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \
|
$(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \
|
||||||
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
|
$(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
|
||||||
$(top_srcdir)/m4/stdio-safer.m4 $(top_srcdir)/m4/stdio_h.m4 \
|
$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio-safer.m4 \
|
||||||
$(top_srcdir)/m4/stdlib-safer.m4 $(top_srcdir)/m4/stdlib_h.m4 \
|
$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib-safer.m4 \
|
||||||
$(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/stpncpy.m4 \
|
$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/stpcpy.m4 \
|
||||||
$(top_srcdir)/m4/strcspn.m4 $(top_srcdir)/m4/strdup.m4 \
|
$(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strcspn.m4 \
|
||||||
$(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \
|
$(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \
|
||||||
$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
|
$(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \
|
||||||
$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strnumcmp.m4 \
|
$(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
|
||||||
$(top_srcdir)/m4/strpbrk.m4 $(top_srcdir)/m4/strtod.m4 \
|
$(top_srcdir)/m4/strnumcmp.m4 $(top_srcdir)/m4/strpbrk.m4 \
|
||||||
|
$(top_srcdir)/m4/strstr.m4 $(top_srcdir)/m4/strtod.m4 \
|
||||||
$(top_srcdir)/m4/strtoimax.m4 $(top_srcdir)/m4/strtol.m4 \
|
$(top_srcdir)/m4/strtoimax.m4 $(top_srcdir)/m4/strtol.m4 \
|
||||||
$(top_srcdir)/m4/strtoll.m4 $(top_srcdir)/m4/strtoul.m4 \
|
$(top_srcdir)/m4/strtoll.m4 $(top_srcdir)/m4/strtoul.m4 \
|
||||||
$(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
|
$(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
|
||||||
@ -215,7 +217,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
|||||||
$(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \
|
$(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \
|
||||||
$(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
|
$(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
|
||||||
$(top_srcdir)/m4/vasprintf-posix.m4 \
|
$(top_srcdir)/m4/vasprintf-posix.m4 \
|
||||||
$(top_srcdir)/m4/vasprintf.m4 \
|
$(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
|
||||||
$(top_srcdir)/m4/vfprintf-posix.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/warnings.m4 \
|
||||||
$(top_srcdir)/m4/wchar.m4 $(top_srcdir)/m4/wchar_t.m4 \
|
$(top_srcdir)/m4/wchar.m4 $(top_srcdir)/m4/wchar_t.m4 \
|
||||||
@ -252,27 +254,27 @@ am_libcoreutils_a_OBJECTS = set-mode-acl.$(OBJEXT) copy-acl.$(OBJEXT) \
|
|||||||
argv-iter.$(OBJEXT) base64.$(OBJEXT) c-ctype.$(OBJEXT) \
|
argv-iter.$(OBJEXT) base64.$(OBJEXT) c-ctype.$(OBJEXT) \
|
||||||
c-strcasecmp.$(OBJEXT) c-strncasecmp.$(OBJEXT) \
|
c-strcasecmp.$(OBJEXT) c-strncasecmp.$(OBJEXT) \
|
||||||
close-hook.$(OBJEXT) diacrit.$(OBJEXT) file-set.$(OBJEXT) \
|
close-hook.$(OBJEXT) diacrit.$(OBJEXT) file-set.$(OBJEXT) \
|
||||||
filevercmp.$(OBJEXT) fpurge.$(OBJEXT) freadahead.$(OBJEXT) \
|
filevercmp.$(OBJEXT) freadahead.$(OBJEXT) freading.$(OBJEXT) \
|
||||||
freading.$(OBJEXT) freadptr.$(OBJEXT) freadseek.$(OBJEXT) \
|
freadptr.$(OBJEXT) freadseek.$(OBJEXT) fseterr.$(OBJEXT) \
|
||||||
fseterr.$(OBJEXT) full-read.$(OBJEXT) full-write.$(OBJEXT) \
|
full-read.$(OBJEXT) full-write.$(OBJEXT) getdate.$(OBJEXT) \
|
||||||
getdate.$(OBJEXT) hash-pjw.$(OBJEXT) hash-triple.$(OBJEXT) \
|
hash-pjw.$(OBJEXT) hash-triple.$(OBJEXT) linebuffer.$(OBJEXT) \
|
||||||
linebuffer.$(OBJEXT) localcharset.$(OBJEXT) malloca.$(OBJEXT) \
|
localcharset.$(OBJEXT) malloca.$(OBJEXT) mbchar.$(OBJEXT) \
|
||||||
mbchar.$(OBJEXT) mbsalign.$(OBJEXT) mbscasecmp.$(OBJEXT) \
|
mbsalign.$(OBJEXT) mbscasecmp.$(OBJEXT) mbslen.$(OBJEXT) \
|
||||||
mbslen.$(OBJEXT) mbsstr.$(OBJEXT) mbswidth.$(OBJEXT) \
|
mbsstr.$(OBJEXT) mbswidth.$(OBJEXT) memchr2.$(OBJEXT) \
|
||||||
memchr2.$(OBJEXT) memcmp2.$(OBJEXT) openat-die.$(OBJEXT) \
|
memcmp2.$(OBJEXT) openat-die.$(OBJEXT) printf-frexp.$(OBJEXT) \
|
||||||
printf-frexp.$(OBJEXT) printf-frexpl.$(OBJEXT) \
|
printf-frexpl.$(OBJEXT) priv-set.$(OBJEXT) progname.$(OBJEXT) \
|
||||||
priv-set.$(OBJEXT) progname.$(OBJEXT) propername.$(OBJEXT) \
|
propername.$(OBJEXT) randint.$(OBJEXT) randperm.$(OBJEXT) \
|
||||||
randint.$(OBJEXT) randperm.$(OBJEXT) randread.$(OBJEXT) \
|
randread.$(OBJEXT) rand-isaac.$(OBJEXT) readtokens0.$(OBJEXT) \
|
||||||
rand-isaac.$(OBJEXT) readtokens0.$(OBJEXT) savewd.$(OBJEXT) \
|
savewd.$(OBJEXT) sockets.$(OBJEXT) striconv.$(OBJEXT) \
|
||||||
striconv.$(OBJEXT) strnlen1.$(OBJEXT) trim.$(OBJEXT) \
|
strnlen1.$(OBJEXT) trim.$(OBJEXT) unicodeio.$(OBJEXT) \
|
||||||
unicodeio.$(OBJEXT) unistr/u8-uctomb.$(OBJEXT) \
|
unistr/u8-uctomb.$(OBJEXT) unistr/u8-uctomb-aux.$(OBJEXT) \
|
||||||
unistr/u8-uctomb-aux.$(OBJEXT) uniwidth/width.$(OBJEXT) \
|
uniwidth/width.$(OBJEXT) verror.$(OBJEXT) \
|
||||||
verror.$(OBJEXT) version-etc.$(OBJEXT) \
|
version-etc.$(OBJEXT) version-etc-fsf.$(OBJEXT) \
|
||||||
version-etc-fsf.$(OBJEXT) xalloc-die.$(OBJEXT) \
|
xalloc-die.$(OBJEXT) xfreopen.$(OBJEXT) xgethostname.$(OBJEXT) \
|
||||||
xfreopen.$(OBJEXT) xgethostname.$(OBJEXT) xmemcoll.$(OBJEXT) \
|
xmemcoll.$(OBJEXT) xprintf.$(OBJEXT) xstriconv.$(OBJEXT) \
|
||||||
xprintf.$(OBJEXT) xstriconv.$(OBJEXT) xstrndup.$(OBJEXT) \
|
xstrndup.$(OBJEXT) xstrtoimax.$(OBJEXT) xstrtoumax.$(OBJEXT) \
|
||||||
xstrtoimax.$(OBJEXT) xstrtoumax.$(OBJEXT) xvasprintf.$(OBJEXT) \
|
xvasprintf.$(OBJEXT) xasprintf.$(OBJEXT) buffer-lcm.$(OBJEXT) \
|
||||||
xasprintf.$(OBJEXT) buffer-lcm.$(OBJEXT) xmemxfrm.$(OBJEXT)
|
xmemxfrm.$(OBJEXT)
|
||||||
libcoreutils_a_OBJECTS = $(am_libcoreutils_a_OBJECTS)
|
libcoreutils_a_OBJECTS = $(am_libcoreutils_a_OBJECTS)
|
||||||
LTLIBRARIES = $(noinst_LTLIBRARIES)
|
LTLIBRARIES = $(noinst_LTLIBRARIES)
|
||||||
DEFAULT_INCLUDES = -I.@am__isrc@
|
DEFAULT_INCLUDES = -I.@am__isrc@
|
||||||
@ -385,6 +387,7 @@ FCNTL_H = @FCNTL_H@
|
|||||||
FLOAT_H = @FLOAT_H@
|
FLOAT_H = @FLOAT_H@
|
||||||
FNMATCH_H = @FNMATCH_H@
|
FNMATCH_H = @FNMATCH_H@
|
||||||
GETADDRINFO_LIB = @GETADDRINFO_LIB@
|
GETADDRINFO_LIB = @GETADDRINFO_LIB@
|
||||||
|
GETHOSTNAME_LIB = @GETHOSTNAME_LIB@
|
||||||
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
|
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
|
||||||
GETOPT_H = @GETOPT_H@
|
GETOPT_H = @GETOPT_H@
|
||||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||||
@ -415,6 +418,7 @@ GNULIB_FLOORL = @GNULIB_FLOORL@
|
|||||||
GNULIB_FOPEN = @GNULIB_FOPEN@
|
GNULIB_FOPEN = @GNULIB_FOPEN@
|
||||||
GNULIB_FPRINTF = @GNULIB_FPRINTF@
|
GNULIB_FPRINTF = @GNULIB_FPRINTF@
|
||||||
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
|
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
|
||||||
|
GNULIB_FPURGE = @GNULIB_FPURGE@
|
||||||
GNULIB_FPUTC = @GNULIB_FPUTC@
|
GNULIB_FPUTC = @GNULIB_FPUTC@
|
||||||
GNULIB_FPUTS = @GNULIB_FPUTS@
|
GNULIB_FPUTS = @GNULIB_FPUTS@
|
||||||
GNULIB_FREOPEN = @GNULIB_FREOPEN@
|
GNULIB_FREOPEN = @GNULIB_FREOPEN@
|
||||||
@ -481,6 +485,7 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@
|
|||||||
GNULIB_MBSSPN = @GNULIB_MBSSPN@
|
GNULIB_MBSSPN = @GNULIB_MBSSPN@
|
||||||
GNULIB_MBSSTR = @GNULIB_MBSSTR@
|
GNULIB_MBSSTR = @GNULIB_MBSSTR@
|
||||||
GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
|
GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
|
||||||
|
GNULIB_MEMCHR = @GNULIB_MEMCHR@
|
||||||
GNULIB_MEMMEM = @GNULIB_MEMMEM@
|
GNULIB_MEMMEM = @GNULIB_MEMMEM@
|
||||||
GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
|
GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
|
||||||
GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
|
GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
|
||||||
@ -544,6 +549,7 @@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
|
|||||||
GNULIB_TRUNC = @GNULIB_TRUNC@
|
GNULIB_TRUNC = @GNULIB_TRUNC@
|
||||||
GNULIB_TRUNCF = @GNULIB_TRUNCF@
|
GNULIB_TRUNCF = @GNULIB_TRUNCF@
|
||||||
GNULIB_TRUNCL = @GNULIB_TRUNCL@
|
GNULIB_TRUNCL = @GNULIB_TRUNCL@
|
||||||
|
GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
|
||||||
GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
|
GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
|
||||||
GNULIB_UNSETENV = @GNULIB_UNSETENV@
|
GNULIB_UNSETENV = @GNULIB_UNSETENV@
|
||||||
GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
|
GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
|
||||||
@ -573,6 +579,7 @@ HAVE_DECL_COSL = @HAVE_DECL_COSL@
|
|||||||
HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
|
HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
|
||||||
HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
|
HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
|
||||||
HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
|
HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
|
||||||
|
HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
|
||||||
HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@
|
HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@
|
||||||
HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
|
HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
|
||||||
HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@
|
HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@
|
||||||
@ -648,6 +655,7 @@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
|
|||||||
HAVE_READLINK = @HAVE_READLINK@
|
HAVE_READLINK = @HAVE_READLINK@
|
||||||
HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
|
HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
|
||||||
HAVE_RPMATCH = @HAVE_RPMATCH@
|
HAVE_RPMATCH = @HAVE_RPMATCH@
|
||||||
|
HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
|
||||||
HAVE_SCANDIR = @HAVE_SCANDIR@
|
HAVE_SCANDIR = @HAVE_SCANDIR@
|
||||||
HAVE_SETENV = @HAVE_SETENV@
|
HAVE_SETENV = @HAVE_SETENV@
|
||||||
HAVE_SIGACTION = @HAVE_SIGACTION@
|
HAVE_SIGACTION = @HAVE_SIGACTION@
|
||||||
@ -671,6 +679,7 @@ HAVE_STRTOULL = @HAVE_STRTOULL@
|
|||||||
HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@
|
HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@
|
||||||
HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
|
HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
|
||||||
HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
|
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_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
|
||||||
HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
|
HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
|
||||||
HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
|
HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
|
||||||
@ -689,6 +698,7 @@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
|
|||||||
HAVE_VASPRINTF = @HAVE_VASPRINTF@
|
HAVE_VASPRINTF = @HAVE_VASPRINTF@
|
||||||
HAVE_VDPRINTF = @HAVE_VDPRINTF@
|
HAVE_VDPRINTF = @HAVE_VDPRINTF@
|
||||||
HAVE_WCHAR_H = @HAVE_WCHAR_H@
|
HAVE_WCHAR_H = @HAVE_WCHAR_H@
|
||||||
|
HAVE_WCHAR_T = @HAVE_WCHAR_T@
|
||||||
HAVE_WCRTOMB = @HAVE_WCRTOMB@
|
HAVE_WCRTOMB = @HAVE_WCRTOMB@
|
||||||
HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
|
HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
|
||||||
HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
|
HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
|
||||||
@ -754,6 +764,32 @@ NEED_SETGID = @NEED_SETGID@
|
|||||||
NETDB_H = @NETDB_H@
|
NETDB_H = @NETDB_H@
|
||||||
NETINET_IN_H = @NETINET_IN_H@
|
NETINET_IN_H = @NETINET_IN_H@
|
||||||
NEXT_ARPA_INET_H = @NEXT_ARPA_INET_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_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_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_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_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@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
|
||||||
|
NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@
|
||||||
|
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_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_DIRENT_H = @NEXT_DIRENT_H@
|
NEXT_DIRENT_H = @NEXT_DIRENT_H@
|
||||||
NEXT_ERRNO_H = @NEXT_ERRNO_H@
|
NEXT_ERRNO_H = @NEXT_ERRNO_H@
|
||||||
NEXT_FCNTL_H = @NEXT_FCNTL_H@
|
NEXT_FCNTL_H = @NEXT_FCNTL_H@
|
||||||
@ -765,6 +801,7 @@ NEXT_NETDB_H = @NEXT_NETDB_H@
|
|||||||
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
|
NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
|
||||||
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
|
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
|
||||||
NEXT_STDARG_H = @NEXT_STDARG_H@
|
NEXT_STDARG_H = @NEXT_STDARG_H@
|
||||||
|
NEXT_STDDEF_H = @NEXT_STDDEF_H@
|
||||||
NEXT_STDINT_H = @NEXT_STDINT_H@
|
NEXT_STDINT_H = @NEXT_STDINT_H@
|
||||||
NEXT_STDIO_H = @NEXT_STDIO_H@
|
NEXT_STDIO_H = @NEXT_STDIO_H@
|
||||||
NEXT_STDLIB_H = @NEXT_STDLIB_H@
|
NEXT_STDLIB_H = @NEXT_STDLIB_H@
|
||||||
@ -781,6 +818,7 @@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
|
|||||||
NO_INSTALL_PROGS_DEFAULT = @NO_INSTALL_PROGS_DEFAULT@
|
NO_INSTALL_PROGS_DEFAULT = @NO_INSTALL_PROGS_DEFAULT@
|
||||||
OBJEXT = @OBJEXT@
|
OBJEXT = @OBJEXT@
|
||||||
OPTIONAL_BIN_PROGS = @OPTIONAL_BIN_PROGS@
|
OPTIONAL_BIN_PROGS = @OPTIONAL_BIN_PROGS@
|
||||||
|
OPTIONAL_PKGLIB_PROGS = @OPTIONAL_PKGLIB_PROGS@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
PACKAGE_NAME = @PACKAGE_NAME@
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
@ -805,6 +843,7 @@ REPLACE_CEILL = @REPLACE_CEILL@
|
|||||||
REPLACE_CHOWN = @REPLACE_CHOWN@
|
REPLACE_CHOWN = @REPLACE_CHOWN@
|
||||||
REPLACE_CLOSE = @REPLACE_CLOSE@
|
REPLACE_CLOSE = @REPLACE_CLOSE@
|
||||||
REPLACE_DPRINTF = @REPLACE_DPRINTF@
|
REPLACE_DPRINTF = @REPLACE_DPRINTF@
|
||||||
|
REPLACE_DUP2 = @REPLACE_DUP2@
|
||||||
REPLACE_FCHDIR = @REPLACE_FCHDIR@
|
REPLACE_FCHDIR = @REPLACE_FCHDIR@
|
||||||
REPLACE_FCLOSE = @REPLACE_FCLOSE@
|
REPLACE_FCLOSE = @REPLACE_FCLOSE@
|
||||||
REPLACE_FFLUSH = @REPLACE_FFLUSH@
|
REPLACE_FFLUSH = @REPLACE_FFLUSH@
|
||||||
@ -812,6 +851,7 @@ REPLACE_FLOORF = @REPLACE_FLOORF@
|
|||||||
REPLACE_FLOORL = @REPLACE_FLOORL@
|
REPLACE_FLOORL = @REPLACE_FLOORL@
|
||||||
REPLACE_FOPEN = @REPLACE_FOPEN@
|
REPLACE_FOPEN = @REPLACE_FOPEN@
|
||||||
REPLACE_FPRINTF = @REPLACE_FPRINTF@
|
REPLACE_FPRINTF = @REPLACE_FPRINTF@
|
||||||
|
REPLACE_FPURGE = @REPLACE_FPURGE@
|
||||||
REPLACE_FREOPEN = @REPLACE_FREOPEN@
|
REPLACE_FREOPEN = @REPLACE_FREOPEN@
|
||||||
REPLACE_FREXP = @REPLACE_FREXP@
|
REPLACE_FREXP = @REPLACE_FREXP@
|
||||||
REPLACE_FREXPL = @REPLACE_FREXPL@
|
REPLACE_FREXPL = @REPLACE_FREXPL@
|
||||||
@ -842,11 +882,14 @@ REPLACE_MBSINIT = @REPLACE_MBSINIT@
|
|||||||
REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
|
REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
|
||||||
REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
|
REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
|
||||||
REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
|
REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
|
||||||
|
REPLACE_MEMCHR = @REPLACE_MEMCHR@
|
||||||
REPLACE_MEMMEM = @REPLACE_MEMMEM@
|
REPLACE_MEMMEM = @REPLACE_MEMMEM@
|
||||||
REPLACE_MKDIR = @REPLACE_MKDIR@
|
REPLACE_MKDIR = @REPLACE_MKDIR@
|
||||||
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
|
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
|
||||||
|
REPLACE_MKTIME = @REPLACE_MKTIME@
|
||||||
REPLACE_NAN = @REPLACE_NAN@
|
REPLACE_NAN = @REPLACE_NAN@
|
||||||
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
|
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
|
||||||
|
REPLACE_NULL = @REPLACE_NULL@
|
||||||
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
|
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
|
||||||
REPLACE_OPEN = @REPLACE_OPEN@
|
REPLACE_OPEN = @REPLACE_OPEN@
|
||||||
REPLACE_PERROR = @REPLACE_PERROR@
|
REPLACE_PERROR = @REPLACE_PERROR@
|
||||||
@ -892,10 +935,12 @@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
|
|||||||
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
|
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
|
||||||
STDARG_H = @STDARG_H@
|
STDARG_H = @STDARG_H@
|
||||||
STDBOOL_H = @STDBOOL_H@
|
STDBOOL_H = @STDBOOL_H@
|
||||||
|
STDDEF_H = @STDDEF_H@
|
||||||
STDINT_H = @STDINT_H@
|
STDINT_H = @STDINT_H@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
SYS_IOCTL_H = @SYS_IOCTL_H@
|
SYS_IOCTL_H = @SYS_IOCTL_H@
|
||||||
SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_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_SELECT_H = @SYS_SELECT_H@
|
||||||
SYS_SOCKET_H = @SYS_SOCKET_H@
|
SYS_SOCKET_H = @SYS_SOCKET_H@
|
||||||
SYS_STAT_H = @SYS_STAT_H@
|
SYS_STAT_H = @SYS_STAT_H@
|
||||||
@ -906,6 +951,7 @@ U = @U@
|
|||||||
UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
|
UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
|
||||||
UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
|
UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
|
||||||
UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
|
UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
|
||||||
|
UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
|
||||||
USE_ACL = @USE_ACL@
|
USE_ACL = @USE_ACL@
|
||||||
USE_NLS = @USE_NLS@
|
USE_NLS = @USE_NLS@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
@ -1001,37 +1047,38 @@ noinst_LTLIBRARIES =
|
|||||||
# mv $@-t $@
|
# mv $@-t $@
|
||||||
#EXTRA_DIST += script.in
|
#EXTRA_DIST += script.in
|
||||||
#MOSTLYCLEANFILES += script script-t
|
#MOSTLYCLEANFILES += script script-t
|
||||||
EXTRA_DIST = acl-internal.h acl.h acl_entries.c alloca.c alloca.in.h \
|
EXTRA_DIST = acl-internal.h acl.h acl_entries.c alignof.h alloca.c \
|
||||||
$(top_srcdir)/build-aux/announce-gen areadlink.h argmatch.c \
|
alloca.in.h $(top_srcdir)/build-aux/announce-gen areadlink.h \
|
||||||
argmatch.h arpa_inet.in.h atexit.c backupfile.c backupfile.h \
|
argmatch.c argmatch.h arpa_inet.in.h atexit.c backupfile.c \
|
||||||
btowc.c c-strtod.c c-strtod.h c-strtod.c c-strtod.h \
|
backupfile.h btowc.c c-strtod.c c-strtod.h c-strtod.c \
|
||||||
c-strtold.c calloc.c calloc.c canon-host.c canon-host.h \
|
c-strtod.h c-strtold.c calloc.c calloc.c canon-host.c \
|
||||||
canonicalize.c canonicalize.h pathmax.h chdir-long.c \
|
canon-host.h canonicalize.c canonicalize.h pathmax.h \
|
||||||
chdir-long.h chown.c fchown-stub.c cloexec.c cloexec.h close.c \
|
chdir-long.c chdir-long.h chown.c fchown-stub.c cloexec.c \
|
||||||
close-hook.h close-stream.c close-stream.h closein.c closein.h \
|
cloexec.h close.c close-hook.h close-stream.c close-stream.h \
|
||||||
closeout.c closeout.h md5.c md5.h sha1.c sha1.h sha256.c \
|
closein.c closein.h closeout.c closeout.h md5.c md5.h sha1.c \
|
||||||
sha256.h sha512.c sha512.h cycle-check.c cycle-check.h \
|
sha1.h sha256.c sha256.h sha512.c sha512.h cycle-check.c \
|
||||||
dev-ino.h dirent.in.h dirfd.c basename.c dirname.c dirname.h \
|
cycle-check.h dev-ino.h dirent.in.h dirfd.c basename.c \
|
||||||
stripslash.c dup2.c errno.in.h error.c error.h euidaccess.c \
|
dirname.c dirname.h stripslash.c dup2.c errno.in.h error.c \
|
||||||
exclude.c exclude.h exitfail.c exitfail.h fchdir.c fclose.c \
|
error.h euidaccess.c exclude.c exclude.h exitfail.c exitfail.h \
|
||||||
fcntl.in.h creat-safer.c fcntl--.h fcntl-safer.h open-safer.c \
|
fchdir.c fclose.c fcntl.in.h creat-safer.c fcntl--.h \
|
||||||
fflush.c stdio-impl.h file-set.h file-type.c file-type.h \
|
fcntl-safer.h open-safer.c fflush.c stdio-impl.h file-set.h \
|
||||||
fileblocks.c filemode.c filemode.h filenamecat.c filenamecat.h \
|
file-type.c file-type.h fileblocks.c filemode.c filemode.h \
|
||||||
filevercmp.h float.in.h fnmatch.c fnmatch.in.h fnmatch_loop.c \
|
filenamecat.c filenamecat.h filevercmp.h float.in.h fnmatch.c \
|
||||||
fopen-safer.c stdio--.h stdio-safer.h fpending.c fpending.h \
|
fnmatch.in.h fnmatch_loop.c fopen-safer.c stdio--.h \
|
||||||
fprintftime.c fprintftime.h fpucw.h fpurge.h stdio-impl.h \
|
stdio-safer.h fpending.c fpending.h fprintftime.c \
|
||||||
freadahead.h stdio-impl.h freading.h stdio-impl.h freadptr.h \
|
fprintftime.h fpucw.h fpurge.c stdio-impl.h freadahead.h \
|
||||||
stdio-impl.h freadseek.h stdio-impl.h frexp.c frexp.c frexpl.c \
|
stdio-impl.h freading.h stdio-impl.h freadptr.h stdio-impl.h \
|
||||||
fseeko.c stdio-impl.h fseterr.h stdio-impl.h fsusage.c \
|
freadseek.h stdio-impl.h frexp.c frexp.c frexpl.c fseeko.c \
|
||||||
fsusage.h ftello.c ftruncate.c fts-cycle.c fts.c fts_.h \
|
stdio-impl.h fseterr.h stdio-impl.h fsusage.c fsusage.h \
|
||||||
|
ftello.c ftruncate.c fts-cycle.c fts.c fts_.h \
|
||||||
$(top_srcdir)/build-aux/gendocs.sh gai_strerror.c \
|
$(top_srcdir)/build-aux/gendocs.sh gai_strerror.c \
|
||||||
getaddrinfo.c getcwd.c getdate.c getdate.h getdelim.c \
|
getaddrinfo.c getcwd.c getdate.c getdate.h getdelim.c \
|
||||||
getgroups.c gethostname.c gethrxtime.c gethrxtime.h xtime.h \
|
getgroups.c gethostname.c w32sock.h gethrxtime.c gethrxtime.h \
|
||||||
getline.c getloadavg.c getndelim2.c getndelim2.h getopt.c \
|
xtime.h getline.c getloadavg.c getndelim2.c getndelim2.h \
|
||||||
getopt.in.h getopt1.c getopt_int.h getpagesize.c getpass.c \
|
getopt.c getopt.in.h getopt1.c getopt_int.h getpagesize.c \
|
||||||
getpass.h $(top_srcdir)/build-aux/config.rpath gettime.c \
|
getpass.c getpass.h $(top_srcdir)/build-aux/config.rpath \
|
||||||
gettimeofday.c getugroups.c getugroups.h getusershell.c \
|
gettime.c gettimeofday.c getugroups.c getugroups.h \
|
||||||
$(top_srcdir)/build-aux/git-version-gen \
|
getusershell.c $(top_srcdir)/build-aux/git-version-gen \
|
||||||
$(top_srcdir)/build-aux/gitlog-to-changelog \
|
$(top_srcdir)/build-aux/gitlog-to-changelog \
|
||||||
$(top_srcdir)/GNUmakefile $(top_srcdir)/build-aux/gnupload \
|
$(top_srcdir)/GNUmakefile $(top_srcdir)/build-aux/gnupload \
|
||||||
group-member.c group-member.h hard-locale.c hard-locale.h \
|
group-member.c group-member.h hard-locale.c hard-locale.h \
|
||||||
@ -1051,9 +1098,10 @@ EXTRA_DIST = acl-internal.h acl.h acl_entries.c alloca.c alloca.in.h \
|
|||||||
lstat.c $(top_srcdir)/maint.mk malloc.c malloc.c malloca.h \
|
lstat.c $(top_srcdir)/maint.mk malloc.c malloc.c malloca.h \
|
||||||
malloca.valgrind math.in.h mbchar.h mbrlen.c mbrtowc.c \
|
malloca.valgrind math.in.h mbchar.h mbrlen.c mbrtowc.c \
|
||||||
mbsinit.c mbsrtowcs-state.c mbsrtowcs.c str-kmp.h memcasecmp.c \
|
mbsinit.c mbsrtowcs-state.c mbsrtowcs.c str-kmp.h memcasecmp.c \
|
||||||
memcasecmp.h memchr.c memcmp.c memcmp2.h memcoll.c memcoll.h \
|
memcasecmp.h memchr.c memchr.valgrind memchr2.valgrind \
|
||||||
memcpy.c memmove.c mempcpy.c memrchr.c memset.c mgetgroups.c \
|
memcmp.c memcmp2.h memcoll.c memcoll.h memcpy.c memmove.c \
|
||||||
mgetgroups.h mkancesdirs.c mkancesdirs.h mkdir.c dirchownmod.c \
|
mempcpy.c memrchr.c memset.c mgetgroups.c mgetgroups.h \
|
||||||
|
mkancesdirs.c mkancesdirs.h mkdir.c dirchownmod.c \
|
||||||
dirchownmod.h mkdir-p.c mkdir-p.h mkstemp.c mktime.c \
|
dirchownmod.h mkdir-p.c mkdir-p.h mkstemp.c mktime.c \
|
||||||
modechange.c modechange.h mountlist.c mountlist.h mpsort.c \
|
modechange.c modechange.h mountlist.c mountlist.h mpsort.c \
|
||||||
mpsort.h nanosleep.c netdb.in.h netinet_in.in.h obstack.c \
|
mpsort.h nanosleep.c netdb.in.h netinet_in.in.h obstack.c \
|
||||||
@ -1071,11 +1119,12 @@ EXTRA_DIST = acl-internal.h acl.h acl_entries.c alloca.c alloca.in.h \
|
|||||||
savedir.h select.c selinux-at.c selinux-at.h setenv.c \
|
savedir.h select.c selinux-at.c selinux-at.h setenv.c \
|
||||||
settime.c sig2str.c sig2str.h sig-handler.h sigaction.c \
|
settime.c sig2str.c sig2str.h sig-handler.h sigaction.c \
|
||||||
signal.in.h float+.h signbitd.c signbitf.c signbitl.c \
|
signal.in.h float+.h signbitd.c signbitf.c signbitl.c \
|
||||||
sigprocmask.c snprintf.c stat-macros.h stat-time.h stdarg.in.h \
|
sigprocmask.c snprintf.c w32sock.h stat-macros.h stat-time.h \
|
||||||
stdbool.in.h stdint.in.h stdio-write.c stdio.in.h stdlib.in.h \
|
stdarg.in.h stdbool.in.h stddef.in.h stdint.in.h stdio-write.c \
|
||||||
mkstemp-safer.c stdlib--.h stdlib-safer.h stpcpy.c stpncpy.c \
|
stdio.in.h stdlib.in.h mkstemp-safer.c stdlib--.h \
|
||||||
strcspn.c strdup.c strdup.c streq.h strerror.c strftime.c \
|
stdlib-safer.h stpcpy.c stpncpy.c strcspn.c strdup.c strdup.c \
|
||||||
strftime.h string.in.h strndup.c strnlen.c strpbrk.c strtod.c \
|
streq.h strerror.c strftime.c strftime.h string.in.h strndup.c \
|
||||||
|
strnlen.c strpbrk.c str-two-way.h strstr.c strtod.c \
|
||||||
strtoimax.c strtol.c strtoll.c strtoul.c strtoull.c \
|
strtoimax.c strtol.c strtoll.c strtoul.c strtoull.c \
|
||||||
strtoumax.c strverscmp.c sys_select.in.h sys_socket.in.h \
|
strtoumax.c strverscmp.c sys_select.in.h sys_socket.in.h \
|
||||||
sys_stat.in.h sys_time.in.h tempname.c tempname.h time.in.h \
|
sys_stat.in.h sys_time.in.h tempname.c tempname.h time.in.h \
|
||||||
@ -1083,6 +1132,7 @@ EXTRA_DIST = acl-internal.h acl.h acl_entries.c alloca.c alloca.in.h \
|
|||||||
fd-safer.c pipe-safer.c unistd--.h unistd-safer.h unistr.h \
|
fd-safer.c pipe-safer.c unistd--.h unistd-safer.h unistr.h \
|
||||||
unitypes.h localcharset.h uniwidth.h uniwidth/cjk.h \
|
unitypes.h localcharset.h uniwidth.h uniwidth/cjk.h \
|
||||||
unlinkdir.c unlinkdir.h unlocked-io.h unsetenv.c \
|
unlinkdir.c unlinkdir.h unlocked-io.h unsetenv.c \
|
||||||
|
$(top_srcdir)/build-aux/update-copyright \
|
||||||
$(top_srcdir)/build-aux/useless-if-before-free inttostr.h \
|
$(top_srcdir)/build-aux/useless-if-before-free inttostr.h \
|
||||||
userspec.c userspec.h utimecmp.c utimecmp.h utimens.c \
|
userspec.c userspec.h utimecmp.c utimecmp.h utimens.c \
|
||||||
utimens.h asnprintf.c float+.h printf-args.c printf-args.h \
|
utimens.h asnprintf.c float+.h printf-args.c printf-args.h \
|
||||||
@ -1100,9 +1150,9 @@ BUILT_SOURCES = $(ALLOCA_H) $(ARPA_INET_H) configmake.h $(DIRENT_H) \
|
|||||||
iconv_open-irix.h iconv_open-osf.h $(INTTYPES_H) math.h \
|
iconv_open-irix.h iconv_open-osf.h $(INTTYPES_H) math.h \
|
||||||
$(NETDB_H) $(NETINET_IN_H) $(SELINUX_SELINUX_H) \
|
$(NETDB_H) $(NETINET_IN_H) $(SELINUX_SELINUX_H) \
|
||||||
$(SELINUX_CONTEXT_H) signal.h $(STDARG_H) $(STDBOOL_H) \
|
$(SELINUX_CONTEXT_H) signal.h $(STDARG_H) $(STDBOOL_H) \
|
||||||
$(STDINT_H) stdio.h stdlib.h string.h $(SYS_SELECT_H) \
|
$(STDDEF_H) $(STDINT_H) stdio.h stdlib.h string.h \
|
||||||
$(SYS_SOCKET_H) $(SYS_STAT_H) $(SYS_TIME_H) time.h unistd.h \
|
$(SYS_SELECT_H) $(SYS_SOCKET_H) $(SYS_STAT_H) $(SYS_TIME_H) \
|
||||||
$(WCHAR_H) $(WCTYPE_H)
|
time.h unistd.h $(WCHAR_H) $(WCTYPE_H)
|
||||||
SUFFIXES = .sed .sin
|
SUFFIXES = .sed .sin
|
||||||
MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t arpa/inet.h \
|
MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t arpa/inet.h \
|
||||||
arpa/inet.h-t dirent.h dirent.h-t errno.h errno.h-t fcntl.h \
|
arpa/inet.h-t dirent.h dirent.h-t errno.h errno.h-t fcntl.h \
|
||||||
@ -1113,11 +1163,11 @@ MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t arpa/inet.h \
|
|||||||
netinet/in.h netinet/in.h-t selinux/selinux.h \
|
netinet/in.h netinet/in.h-t selinux/selinux.h \
|
||||||
selinux/selinux.h-t selinux/context.h selinux/context.h-t \
|
selinux/selinux.h-t selinux/context.h selinux/context.h-t \
|
||||||
signal.h signal.h-t stdarg.h stdarg.h-t stdbool.h stdbool.h-t \
|
signal.h signal.h-t stdarg.h stdarg.h-t stdbool.h stdbool.h-t \
|
||||||
stdint.h stdint.h-t stdio.h stdio.h-t stdlib.h stdlib.h-t \
|
stddef.h stddef.h-t stdint.h stdint.h-t stdio.h stdio.h-t \
|
||||||
string.h string.h-t sys/select.h sys/select.h-t sys/socket.h \
|
stdlib.h stdlib.h-t string.h string.h-t sys/select.h \
|
||||||
sys/socket.h-t sys/stat.h sys/stat.h-t sys/time.h sys/time.h-t \
|
sys/select.h-t sys/socket.h sys/socket.h-t sys/stat.h \
|
||||||
time.h time.h-t unistd.h unistd.h-t wchar.h wchar.h-t wctype.h \
|
sys/stat.h-t sys/time.h sys/time.h-t time.h time.h-t unistd.h \
|
||||||
wctype.h-t
|
unistd.h-t wchar.h wchar.h-t wctype.h wctype.h-t
|
||||||
MOSTLYCLEANDIRS = arpa netinet selinux sys sys sys
|
MOSTLYCLEANDIRS = arpa netinet selinux sys sys sys
|
||||||
CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \
|
CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \
|
||||||
ref-del.sed
|
ref-del.sed
|
||||||
@ -1128,27 +1178,28 @@ AM_CPPFLAGS =
|
|||||||
AM_CFLAGS = $(WARN_CFLAGS) # $(WERROR_CFLAGS)
|
AM_CFLAGS = $(WARN_CFLAGS) # $(WERROR_CFLAGS)
|
||||||
libcoreutils_a_SOURCES = set-mode-acl.c copy-acl.c file-has-acl.c \
|
libcoreutils_a_SOURCES = set-mode-acl.c copy-acl.c file-has-acl.c \
|
||||||
areadlink-with-size.c argv-iter.c argv-iter.h base64.h \
|
areadlink-with-size.c argv-iter.c argv-iter.h base64.h \
|
||||||
base64.c c-ctype.h c-ctype.c c-strcase.h c-strcasecmp.c \
|
base64.c bitrotate.h c-ctype.h c-ctype.c c-strcase.h \
|
||||||
c-strncasecmp.c close-hook.c diacrit.h diacrit.c file-set.c \
|
c-strcasecmp.c c-strncasecmp.c close-hook.c diacrit.h \
|
||||||
filevercmp.c fpurge.c freadahead.c freading.c freadptr.c \
|
diacrit.c file-set.c filevercmp.c freadahead.c freading.c \
|
||||||
freadseek.c fseterr.c full-read.h full-read.c full-write.h \
|
freadptr.c freadseek.c fseterr.c full-read.h full-read.c \
|
||||||
full-write.c getdate.y gettext.h hash-pjw.h hash-pjw.c \
|
full-write.h full-write.c getdate.y gettext.h hash-pjw.h \
|
||||||
hash-triple.c ignore-value.h linebuffer.h linebuffer.c \
|
hash-pjw.c hash-triple.c ignore-value.h linebuffer.h \
|
||||||
localcharset.h localcharset.c malloca.c mbchar.c mbiter.h \
|
linebuffer.c localcharset.h localcharset.c malloca.c mbchar.c \
|
||||||
mbsalign.c mbsalign.h mbscasecmp.c mbslen.c mbsstr.c \
|
mbiter.h mbsalign.c mbsalign.h mbscasecmp.c mbslen.c mbsstr.c \
|
||||||
mbswidth.h mbswidth.c mbuiter.h memchr2.h memchr2.c memcmp2.c \
|
mbswidth.h mbswidth.c mbuiter.h memchr2.h memchr2.c memcmp2.c \
|
||||||
openat-die.c printf-frexp.c printf-frexpl.c priv-set.c \
|
openat-die.c printf-frexp.c printf-frexpl.c priv-set.c \
|
||||||
progname.h progname.c propername.h propername.c randint.c \
|
progname.h progname.c propername.h propername.c randint.c \
|
||||||
randint.h randperm.c randperm.h randread.c randread.h \
|
randint.h randperm.c randperm.h randread.c randread.h \
|
||||||
rand-isaac.c rand-isaac.h readtokens0.h readtokens0.c savewd.h \
|
rand-isaac.c rand-isaac.h readtokens0.h readtokens0.c savewd.h \
|
||||||
savewd.c se-context.in.h se-selinux.in.h size_max.h striconv.h \
|
savewd.c se-context.in.h se-selinux.in.h size_max.h sockets.h \
|
||||||
striconv.c strnlen1.h strnlen1.c trim.c unicodeio.h \
|
sockets.c striconv.h striconv.c strnlen1.h strnlen1.c trim.c \
|
||||||
unicodeio.c unistr/u8-uctomb.c unistr/u8-uctomb-aux.c \
|
unicodeio.h unicodeio.c unistr/u8-uctomb.c \
|
||||||
uniwidth/width.c verify.h verror.h verror.c version-etc.h \
|
unistr/u8-uctomb-aux.c uniwidth/width.c verify.h verror.h \
|
||||||
version-etc.c version-etc-fsf.c xalloc-die.c xfreopen.c \
|
verror.c version-etc.h version-etc.c version-etc-fsf.c \
|
||||||
xfreopen.h xgethostname.h xgethostname.c xmemcoll.h xmemcoll.c \
|
xalloc-die.c xfreopen.c xfreopen.h xgethostname.h \
|
||||||
xprintf.h xprintf.c xsize.h xstriconv.h xstriconv.c xstrndup.h \
|
xgethostname.c xmemcoll.h xmemcoll.c xprintf.h xprintf.c \
|
||||||
xstrndup.c xstrtoimax.c xstrtoumax.c xvasprintf.h xvasprintf.c \
|
xsize.h xstriconv.h xstriconv.c xstrndup.h xstrndup.c \
|
||||||
|
xstrtoimax.c xstrtoumax.c xvasprintf.h xvasprintf.c \
|
||||||
xasprintf.c buffer-lcm.c buffer-lcm.h xmemxfrm.c xmemxfrm.h
|
xasprintf.c buffer-lcm.c buffer-lcm.h xmemxfrm.c xmemxfrm.h
|
||||||
libcoreutils_a_LIBADD = $(gl_LIBOBJS) @ALLOCA@ $(LIBOBJS)
|
libcoreutils_a_LIBADD = $(gl_LIBOBJS) @ALLOCA@ $(LIBOBJS)
|
||||||
libcoreutils_a_DEPENDENCIES = $(gl_LIBOBJS) @ALLOCA@ $(LIBOBJS)
|
libcoreutils_a_DEPENDENCIES = $(gl_LIBOBJS) @ALLOCA@ $(LIBOBJS)
|
||||||
@ -1161,40 +1212,41 @@ EXTRA_libcoreutils_a_SOURCES = acl_entries.c alloca.c argmatch.c \
|
|||||||
stripslash.c dup2.c error.c euidaccess.c exclude.c exitfail.c \
|
stripslash.c dup2.c error.c euidaccess.c exclude.c exitfail.c \
|
||||||
fchdir.c fclose.c creat-safer.c open-safer.c fflush.c \
|
fchdir.c fclose.c creat-safer.c open-safer.c fflush.c \
|
||||||
file-type.c fileblocks.c filemode.c filenamecat.c fnmatch.c \
|
file-type.c fileblocks.c filemode.c filenamecat.c fnmatch.c \
|
||||||
fnmatch_loop.c fopen-safer.c fpending.c fprintftime.c frexp.c \
|
fnmatch_loop.c fopen-safer.c fpending.c fprintftime.c fpurge.c \
|
||||||
frexp.c frexpl.c fseeko.c fsusage.c ftello.c ftruncate.c \
|
frexp.c frexp.c frexpl.c fseeko.c fsusage.c ftello.c \
|
||||||
fts-cycle.c fts.c gai_strerror.c getaddrinfo.c getcwd.c \
|
ftruncate.c fts-cycle.c fts.c gai_strerror.c getaddrinfo.c \
|
||||||
getdelim.c getgroups.c gethostname.c gethrxtime.c getline.c \
|
getcwd.c getdelim.c getgroups.c gethostname.c gethrxtime.c \
|
||||||
getloadavg.c getndelim2.c getopt.c getopt1.c getpagesize.c \
|
getline.c getloadavg.c getndelim2.c getopt.c getopt1.c \
|
||||||
getpass.c gettime.c gettimeofday.c getugroups.c getusershell.c \
|
getpagesize.c getpass.c gettime.c gettimeofday.c getugroups.c \
|
||||||
group-member.c hard-locale.c hash.c human.c i-ring.c \
|
getusershell.c group-member.c hard-locale.c hash.c human.c \
|
||||||
iconv_open.c idcache.c inet_ntop.c imaxtostr.c inttostr.c \
|
i-ring.c iconv_open.c idcache.c inet_ntop.c imaxtostr.c \
|
||||||
offtostr.c uinttostr.c umaxtostr.c isapipe.c isnan.c isnand.c \
|
inttostr.c offtostr.c uinttostr.c umaxtostr.c isapipe.c \
|
||||||
isnan.c isnanf.c isnan.c isnanl.c lchown.c long-options.c \
|
isnan.c isnand.c isnan.c isnanf.c isnan.c isnanl.c lchown.c \
|
||||||
lseek.c lstat.c malloc.c malloc.c mbrlen.c mbrtowc.c mbsinit.c \
|
long-options.c lseek.c lstat.c malloc.c malloc.c mbrlen.c \
|
||||||
mbsrtowcs-state.c mbsrtowcs.c memcasecmp.c memchr.c memcmp.c \
|
mbrtowc.c mbsinit.c mbsrtowcs-state.c mbsrtowcs.c memcasecmp.c \
|
||||||
memcoll.c memcpy.c memmove.c mempcpy.c memrchr.c memset.c \
|
memchr.c memcmp.c memcoll.c memcpy.c memmove.c mempcpy.c \
|
||||||
mgetgroups.c mkancesdirs.c mkdir.c dirchownmod.c mkdir-p.c \
|
memrchr.c memset.c mgetgroups.c mkancesdirs.c mkdir.c \
|
||||||
mkstemp.c mktime.c modechange.c mountlist.c mpsort.c \
|
dirchownmod.c mkdir-p.c mkstemp.c mktime.c modechange.c \
|
||||||
nanosleep.c obstack.c open.c at-func.c fchmodat.c fchownat.c \
|
mountlist.c mpsort.c nanosleep.c obstack.c open.c at-func.c \
|
||||||
fstatat.c mkdirat.c openat-proc.c openat.c physmem.c posixtm.c \
|
fchmodat.c fchownat.c fstatat.c mkdirat.c openat-proc.c \
|
||||||
posixver.c printf-frexp.c putenv.c quote.c quotearg.c raise.c \
|
openat.c physmem.c posixtm.c posixver.c printf-frexp.c \
|
||||||
readlink.c readtokens.c readutmp.c realloc.c realloc.c \
|
putenv.c quote.c quotearg.c raise.c readlink.c readtokens.c \
|
||||||
regcomp.c regex.c regex_internal.c regexec.c rename.c \
|
readutmp.c realloc.c realloc.c regcomp.c regex.c \
|
||||||
rename-dest-slash.c rmdir.c root-dev-ino.c rpmatch.c \
|
regex_internal.c regexec.c rename.c rename-dest-slash.c \
|
||||||
safe-read.c safe-write.c same.c save-cwd.c savedir.c select.c \
|
rmdir.c root-dev-ino.c rpmatch.c safe-read.c safe-write.c \
|
||||||
selinux-at.c setenv.c settime.c sig2str.c sigaction.c \
|
same.c save-cwd.c savedir.c select.c selinux-at.c setenv.c \
|
||||||
signbitd.c signbitf.c signbitl.c sigprocmask.c snprintf.c \
|
settime.c sig2str.c sigaction.c signbitd.c signbitf.c \
|
||||||
stdio-write.c mkstemp-safer.c stpcpy.c stpncpy.c strcspn.c \
|
signbitl.c sigprocmask.c snprintf.c stdio-write.c \
|
||||||
strdup.c strdup.c strerror.c strftime.c strndup.c strnlen.c \
|
mkstemp-safer.c stpcpy.c stpncpy.c strcspn.c strdup.c strdup.c \
|
||||||
strpbrk.c strtod.c strtoimax.c strtol.c strtoll.c strtoul.c \
|
strerror.c strftime.c strndup.c strnlen.c strpbrk.c strstr.c \
|
||||||
strtoull.c strtoumax.c strverscmp.c tempname.c time_r.c \
|
strtod.c strtoimax.c strtol.c strtoll.c strtoul.c strtoull.c \
|
||||||
dup-safer.c fd-safer.c pipe-safer.c unlinkdir.c unsetenv.c \
|
strtoumax.c strverscmp.c tempname.c time_r.c dup-safer.c \
|
||||||
userspec.c utimecmp.c utimens.c asnprintf.c printf-args.c \
|
fd-safer.c pipe-safer.c unlinkdir.c unsetenv.c userspec.c \
|
||||||
printf-parse.c vasnprintf.c asprintf.c vasprintf.c vfprintf.c \
|
utimecmp.c utimens.c asnprintf.c printf-args.c printf-parse.c \
|
||||||
vprintf.c wcrtomb.c wcwidth.c write.c write-any-file.c \
|
vasnprintf.c asprintf.c vasprintf.c vfprintf.c vprintf.c \
|
||||||
xmalloc.c xgetcwd.c xnanosleep.c xstrtod.c xstrtol-error.c \
|
wcrtomb.c wcwidth.c write.c write-any-file.c xmalloc.c \
|
||||||
xstrtol.c xstrtoul.c xstrtod.c xstrtold.c yesno.c
|
xgetcwd.c xnanosleep.c xstrtod.c xstrtol-error.c xstrtol.c \
|
||||||
|
xstrtoul.c xstrtod.c xstrtold.c yesno.c
|
||||||
GPERF = gperf
|
GPERF = gperf
|
||||||
LINK_WARNING_H = $(top_srcdir)/build-aux/link-warning.h
|
LINK_WARNING_H = $(top_srcdir)/build-aux/link-warning.h
|
||||||
charset_alias = $(DESTDIR)$(libdir)/charset.alias
|
charset_alias = $(DESTDIR)$(libdir)/charset.alias
|
||||||
@ -1245,7 +1297,7 @@ stamp-h1: $(srcdir)/config.hin $(top_builddir)/config.status
|
|||||||
@rm -f stamp-h1
|
@rm -f stamp-h1
|
||||||
cd $(top_builddir) && $(SHELL) ./config.status lib/config.h
|
cd $(top_builddir) && $(SHELL) ./config.status lib/config.h
|
||||||
$(srcdir)/config.hin: $(am__configure_deps)
|
$(srcdir)/config.hin: $(am__configure_deps)
|
||||||
$(am__cd) $(top_srcdir) && $(AUTOHEADER)
|
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
|
||||||
rm -f stamp-h1
|
rm -f stamp-h1
|
||||||
touch $@
|
touch $@
|
||||||
|
|
||||||
@ -1521,6 +1573,7 @@ distclean-compile:
|
|||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signbitl.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signbitl.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigprocmask.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigprocmask.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snprintf.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snprintf.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockets.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdio-write.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdio-write.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stpcpy.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stpcpy.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stpncpy.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stpncpy.Po@am__quote@
|
||||||
@ -1534,6 +1587,7 @@ distclean-compile:
|
|||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strpbrk.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strpbrk.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strstr.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtod.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtod.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoimax.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoimax.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtol.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtol.Po@am__quote@
|
||||||
@ -2237,7 +2291,7 @@ math.h: math.in.h
|
|||||||
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
|
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
|
||||||
sed -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \
|
sed -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \
|
||||||
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
||||||
-e 's|@''NEXT_MATH_H''@|$(NEXT_MATH_H)|g' \
|
-e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \
|
||||||
-e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \
|
-e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \
|
||||||
-e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \
|
-e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \
|
||||||
-e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \
|
-e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \
|
||||||
@ -2386,6 +2440,20 @@ stdbool.h: stdbool.in.h
|
|||||||
} > $@-t
|
} > $@-t
|
||||||
mv $@-t $@
|
mv $@-t $@
|
||||||
|
|
||||||
|
# We need the following in order to create <stddef.h> when the system
|
||||||
|
# doesn't have one that works with the given compiler.
|
||||||
|
stddef.h: stddef.in.h
|
||||||
|
rm -f $@-t $@
|
||||||
|
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
|
||||||
|
sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
|
||||||
|
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
||||||
|
-e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
|
||||||
|
-e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
|
||||||
|
-e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
|
||||||
|
< $(srcdir)/stddef.in.h; \
|
||||||
|
} > $@-t
|
||||||
|
mv $@-t $@
|
||||||
|
|
||||||
# We need the following in order to create <stdint.h> when the system
|
# We need the following in order to create <stdint.h> when the system
|
||||||
# doesn't have one that works with the given compiler.
|
# doesn't have one that works with the given compiler.
|
||||||
stdint.h: stdint.in.h
|
stdint.h: stdint.in.h
|
||||||
@ -2451,6 +2519,7 @@ stdio.h: stdio.in.h
|
|||||||
-e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \
|
-e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \
|
||||||
-e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \
|
-e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \
|
||||||
-e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \
|
-e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \
|
||||||
|
-e 's|@''GNULIB_FPURGE''@|$(GNULIB_FPURGE)|g' \
|
||||||
-e 's|@''GNULIB_FCLOSE''@|$(GNULIB_FCLOSE)|g' \
|
-e 's|@''GNULIB_FCLOSE''@|$(GNULIB_FCLOSE)|g' \
|
||||||
-e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \
|
-e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \
|
||||||
-e 's|@''GNULIB_PUTC''@|$(GNULIB_PUTC)|g' \
|
-e 's|@''GNULIB_PUTC''@|$(GNULIB_PUTC)|g' \
|
||||||
@ -2488,6 +2557,8 @@ stdio.h: stdio.in.h
|
|||||||
-e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \
|
-e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \
|
||||||
-e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \
|
-e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \
|
||||||
-e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \
|
-e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \
|
||||||
|
-e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \
|
||||||
|
-e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \
|
||||||
-e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \
|
-e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \
|
||||||
-e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \
|
-e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \
|
||||||
-e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \
|
-e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \
|
||||||
@ -2570,6 +2641,7 @@ string.h: string.in.h
|
|||||||
-e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
|
-e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
|
||||||
-e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
|
-e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
|
||||||
-e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
|
-e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
|
||||||
|
-e 's|@''GNULIB_MEMCHR''@|$(GNULIB_MEMCHR)|g' \
|
||||||
-e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
|
-e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
|
||||||
-e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
|
-e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
|
||||||
-e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
|
-e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
|
||||||
@ -2606,6 +2678,7 @@ string.h: string.in.h
|
|||||||
-e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \
|
-e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \
|
||||||
-e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
|
-e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
|
||||||
-e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
|
-e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
|
||||||
|
-e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
|
||||||
-e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
|
-e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
|
||||||
-e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
|
-e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
|
||||||
-e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
|
-e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
|
||||||
@ -2661,6 +2734,8 @@ sys/socket.h: sys_socket.in.h
|
|||||||
-e 's|@''GNULIB_SHUTDOWN''@|$(GNULIB_SHUTDOWN)|g' \
|
-e 's|@''GNULIB_SHUTDOWN''@|$(GNULIB_SHUTDOWN)|g' \
|
||||||
-e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
|
-e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
|
||||||
-e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
|
-e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
|
||||||
|
-e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \
|
||||||
|
-e 's|@''HAVE_SA_FAMILY_T''@|$(HAVE_SA_FAMILY_T)|g' \
|
||||||
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
|
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
|
||||||
< $(srcdir)/sys_socket.in.h; \
|
< $(srcdir)/sys_socket.in.h; \
|
||||||
} > $@-t
|
} > $@-t
|
||||||
@ -2711,6 +2786,7 @@ time.h: time.in.h
|
|||||||
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
||||||
-e 's|@NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \
|
-e 's|@NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \
|
||||||
-e 's|@REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \
|
-e 's|@REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \
|
||||||
|
-e 's|@REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \
|
||||||
-e 's|@REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
|
-e 's|@REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
|
||||||
-e 's|@REPLACE_STRPTIME''@|$(REPLACE_STRPTIME)|g' \
|
-e 's|@REPLACE_STRPTIME''@|$(REPLACE_STRPTIME)|g' \
|
||||||
-e 's|@REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \
|
-e 's|@REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \
|
||||||
@ -2749,6 +2825,7 @@ unistd.h: unistd.in.h
|
|||||||
-e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
|
-e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
|
||||||
-e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
|
-e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
|
||||||
-e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
|
-e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
|
||||||
|
-e 's|@''GNULIB_UNISTD_H_GETOPT''@|$(GNULIB_UNISTD_H_GETOPT)|g' \
|
||||||
-e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \
|
-e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \
|
||||||
-e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \
|
-e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \
|
||||||
-e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
|
-e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
|
||||||
@ -2769,6 +2846,7 @@ unistd.h: unistd.in.h
|
|||||||
-e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
|
-e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
|
||||||
-e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
|
-e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
|
||||||
-e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
|
-e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
|
||||||
|
-e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
|
||||||
-e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
|
-e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
|
||||||
-e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
|
-e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
|
||||||
-e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
|
-e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
|
||||||
@ -2776,6 +2854,7 @@ unistd.h: unistd.in.h
|
|||||||
-e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
|
-e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
|
||||||
-e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \
|
-e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \
|
||||||
-e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \
|
-e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \
|
||||||
|
-e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \
|
||||||
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
|
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
|
||||||
< $(srcdir)/unistd.in.h; \
|
< $(srcdir)/unistd.in.h; \
|
||||||
} > $@-t
|
} > $@-t
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
Things to do to hash.c:
|
|
||||||
|
|
||||||
Always use curly braces around statements in if/else/while/do/etc.
|
|
||||||
that span more than a line -- even around multiline simple statements
|
|
||||||
or single-line simple statements preceded by a comment line.
|
|
||||||
|
|
||||||
Never have lines longer than 80 chars.
|
|
||||||
|
|
||||||
Remove ^L characters. We don't want/need such crutches.
|
|
||||||
Get a good (smart) pagination filter. I have one (a perl script)
|
|
||||||
that usually does a decent job for me -- I called it something
|
|
||||||
like stdc-print and think I sent you an early verison.
|
|
||||||
|
|
||||||
I don't like the name `cursor'. I much prefer short names
|
|
||||||
like `p' for index variables. I doubt I'll change all of them,
|
|
||||||
but thought you should know why some will probably end up changing.
|
|
||||||
|
|
||||||
#define USE_OBSTACK somewhere
|
|
||||||
|
|
||||||
Fix this comment. Depending on system and application...
|
|
||||||
Mention fragmentation.
|
|
||||||
+#if USE_OBSTACK
|
|
||||||
+ /* Whenever obstacks are used, it is possible to allocate all overflowed
|
|
||||||
+ entries into a single stack, so they all can be freed in a single
|
|
||||||
+ operation. It is not clear if the speedup is worth the trouble. */
|
|
||||||
+ struct obstack entry_stack;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
|
|
||||||
assert (bucket_limit - bucket == n_buckets) ?
|
|
||||||
|
|
||||||
remove.c: s/done/successful or ok
|
|
||||||
|
|
||||||
|
|
||||||
-----
|
|
||||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
Copying and distribution of this file, with or without
|
|
||||||
modification, are permitted provided the copyright notice
|
|
||||||
and this notice are preserved.
|
|
56
src/bin/coreutils/lib/alignof.h
Normal file
56
src/bin/coreutils/lib/alignof.h
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
/* -*- buffer-read-only: t -*- vi: set ro: */
|
||||||
|
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||||
|
#line 1
|
||||||
|
/* Determine alignment of types.
|
||||||
|
Copyright (C) 2003-2004, 2006, 2009 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. */
|
||||||
|
|
||||||
|
#ifndef _ALIGNOF_H
|
||||||
|
#define _ALIGNOF_H
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
/* Determine the alignment of a structure slot (field) of a given type,
|
||||||
|
at compile time. Note that the result depends on the ABI.
|
||||||
|
Note: The result cannot be used as a value for an 'enum' constant,
|
||||||
|
due to bugs in HP-UX 10.20 cc and AIX 3.2.5 xlc. */
|
||||||
|
#if defined __cplusplus
|
||||||
|
template <class type> struct alignof_helper { char __slot1; type __slot2; };
|
||||||
|
# define alignof_slot(type) offsetof (alignof_helper<type>, __slot2)
|
||||||
|
#else
|
||||||
|
# define alignof_slot(type) offsetof (struct { char __slot1; type __slot2; }, __slot2)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Determine the good alignment of a object of the given type at compile time.
|
||||||
|
Note that this is not necessarily the same as alignof_slot(type).
|
||||||
|
For example, with GNU C on x86 platforms: alignof_type(double) = 8, but
|
||||||
|
- when -malign-double is not specified: alignof_slot(double) = 4,
|
||||||
|
- when -malign-double is specified: alignof_slot(double) = 8.
|
||||||
|
Note: The result cannot be used as a value for an 'enum' constant,
|
||||||
|
due to bugs in HP-UX 10.20 cc and AIX 3.2.5 xlc. */
|
||||||
|
#if defined __GNUC__
|
||||||
|
# define alignof_type __alignof__
|
||||||
|
#else
|
||||||
|
# define alignof_type alignof_slot
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* alignof is an alias for alignof_slot semantics, since that's what most
|
||||||
|
callers need.
|
||||||
|
Note: The result cannot be used as a value for an 'enum' constant,
|
||||||
|
due to bugs in HP-UX 10.20 cc and AIX 3.2.5 xlc. */
|
||||||
|
#define alignof alignof_slot
|
||||||
|
|
||||||
|
#endif /* _ALIGNOF_H */
|
@ -1,5 +1,5 @@
|
|||||||
/* Iterate over arguments from argv or --files0-from=FILE
|
/* Iterate over arguments from argv or --files0-from=FILE
|
||||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
Copyright (C) 2008-2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -109,9 +109,3 @@ argv_iter_free (struct argv_iterator *ai)
|
|||||||
free (ai->tok);
|
free (ai->tok);
|
||||||
free (ai);
|
free (ai);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Local variables:
|
|
||||||
* indent-tabs-mode: nil
|
|
||||||
* End:
|
|
||||||
*/
|
|
||||||
|
126
src/bin/coreutils/lib/bitrotate.h
Normal file
126
src/bin/coreutils/lib/bitrotate.h
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
/* bitrotate.h - Rotate bits in integers
|
||||||
|
Copyright (C) 2008, 2009 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 Simon Josefsson <simon@josefsson.org>, 2008. */
|
||||||
|
|
||||||
|
#ifndef _GL_BITROTATE_H
|
||||||
|
#define _GL_BITROTATE_H
|
||||||
|
|
||||||
|
#include <limits.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
#ifdef UINT64_MAX
|
||||||
|
/* Given an unsigned 64-bit argument X, return the value corresponding
|
||||||
|
to rotating the bits N steps to the left. N must be between 1 and
|
||||||
|
63 inclusive. */
|
||||||
|
static inline uint64_t
|
||||||
|
rotl64 (uint64_t x, int n)
|
||||||
|
{
|
||||||
|
return ((x << n) | (x >> (64 - n))) & UINT64_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Given an unsigned 64-bit argument X, return the value corresponding
|
||||||
|
to rotating the bits N steps to the right. N must be between 1 to
|
||||||
|
63 inclusive.*/
|
||||||
|
static inline uint64_t
|
||||||
|
rotr64 (uint64_t x, int n)
|
||||||
|
{
|
||||||
|
return ((x >> n) | (x << (64 - n))) & UINT64_MAX;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Given an unsigned 32-bit argument X, return the value corresponding
|
||||||
|
to rotating the bits N steps to the left. N must be between 1 and
|
||||||
|
31 inclusive. */
|
||||||
|
static inline uint32_t
|
||||||
|
rotl32 (uint32_t x, int n)
|
||||||
|
{
|
||||||
|
return ((x << n) | (x >> (32 - n))) & UINT32_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Given an unsigned 32-bit argument X, return the value corresponding
|
||||||
|
to rotating the bits N steps to the right. N must be between 1 to
|
||||||
|
31 inclusive.*/
|
||||||
|
static inline uint32_t
|
||||||
|
rotr32 (uint32_t x, int n)
|
||||||
|
{
|
||||||
|
return ((x >> n) | (x << (32 - n))) & UINT32_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Given a size_t argument X, return the value corresponding
|
||||||
|
to rotating the bits N steps to the left. N must be between 1 and
|
||||||
|
(CHAR_BIT * sizeof (size_t) - 1) inclusive. */
|
||||||
|
static inline size_t
|
||||||
|
rotl_sz (size_t x, int n)
|
||||||
|
{
|
||||||
|
return ((x << n) | (x >> ((CHAR_BIT * sizeof x) - n))) & SIZE_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Given a size_t argument X, return the value corresponding
|
||||||
|
to rotating the bits N steps to the right. N must be between 1 to
|
||||||
|
(CHAR_BIT * sizeof (size_t) - 1) inclusive. */
|
||||||
|
static inline size_t
|
||||||
|
rotr_sz (size_t x, int n)
|
||||||
|
{
|
||||||
|
return ((x >> n) | (x << ((CHAR_BIT * sizeof x) - n))) & SIZE_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Given an unsigned 16-bit argument X, return the value corresponding
|
||||||
|
to rotating the bits N steps to the left. N must be between 1 to
|
||||||
|
15 inclusive, but on most relevant targets N can also be 0 and 16
|
||||||
|
because 'int' is at least 32 bits and the arguments must widen
|
||||||
|
before shifting. */
|
||||||
|
static inline uint16_t
|
||||||
|
rotl16 (uint16_t x, int n)
|
||||||
|
{
|
||||||
|
return ((x << n) | (x >> (16 - n))) & UINT16_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Given an unsigned 16-bit argument X, return the value corresponding
|
||||||
|
to rotating the bits N steps to the right. N must be in 1 to 15
|
||||||
|
inclusive, but on most relevant targets N can also be 0 and 16
|
||||||
|
because 'int' is at least 32 bits and the arguments must widen
|
||||||
|
before shifting. */
|
||||||
|
static inline uint16_t
|
||||||
|
rotr16 (uint16_t x, int n)
|
||||||
|
{
|
||||||
|
return ((x >> n) | (x << (16 - n))) & UINT16_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Given an unsigned 8-bit argument X, return the value corresponding
|
||||||
|
to rotating the bits N steps to the left. N must be between 1 to 7
|
||||||
|
inclusive, but on most relevant targets N can also be 0 and 8
|
||||||
|
because 'int' is at least 32 bits and the arguments must widen
|
||||||
|
before shifting. */
|
||||||
|
static inline uint8_t
|
||||||
|
rotl8 (uint8_t x, int n)
|
||||||
|
{
|
||||||
|
return ((x << n) | (x >> (8 - n))) & UINT8_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Given an unsigned 8-bit argument X, return the value corresponding
|
||||||
|
to rotating the bits N steps to the right. N must be in 1 to 7
|
||||||
|
inclusive, but on most relevant targets N can also be 0 and 8
|
||||||
|
because 'int' is at least 32 bits and the arguments must widen
|
||||||
|
before shifting. */
|
||||||
|
static inline uint8_t
|
||||||
|
rotr8 (uint8_t x, int n)
|
||||||
|
{
|
||||||
|
return ((x >> n) | (x << (8 - n))) & UINT8_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* _GL_BITROTATE_H */
|
@ -1,6 +1,6 @@
|
|||||||
/* buffer-lcm.c - compute a good buffer size for dealing with two files
|
/* buffer-lcm.c - compute a good buffer size for dealing with two files
|
||||||
|
|
||||||
Copyright (C) 2002, 2005 Free Software Foundation, Inc.
|
Copyright (C) 2002, 2005, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -167,6 +167,9 @@
|
|||||||
/* Define to 1 when using the gnulib module fts. */
|
/* Define to 1 when using the gnulib module fts. */
|
||||||
#undef GNULIB_FTS
|
#undef GNULIB_FTS
|
||||||
|
|
||||||
|
/* Define to 1 when using the gnulib module getopt-gnu. */
|
||||||
|
#undef GNULIB_GETOPT_GNU
|
||||||
|
|
||||||
/* Define to 1 when using the gnulib module ioctl. */
|
/* Define to 1 when using the gnulib module ioctl. */
|
||||||
#undef GNULIB_IOCTL
|
#undef GNULIB_IOCTL
|
||||||
|
|
||||||
@ -356,6 +359,10 @@
|
|||||||
*/
|
*/
|
||||||
#undef HAVE_DCGETTEXT
|
#undef HAVE_DCGETTEXT
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `alarm', and to 0 if you don't.
|
||||||
|
*/
|
||||||
|
#undef HAVE_DECL_ALARM
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `canonicalize_file_name', and to
|
/* Define to 1 if you have the declaration of `canonicalize_file_name', and to
|
||||||
0 if you don't. */
|
0 if you don't. */
|
||||||
#undef HAVE_DECL_CANONICALIZE_FILE_NAME
|
#undef HAVE_DECL_CANONICALIZE_FILE_NAME
|
||||||
@ -843,6 +850,12 @@
|
|||||||
*/
|
*/
|
||||||
#undef HAVE_INLINE
|
#undef HAVE_INLINE
|
||||||
|
|
||||||
|
/* Define to 1 if you have usable inotify support. */
|
||||||
|
#undef HAVE_INOTIFY
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `inotify_init' function. */
|
||||||
|
#undef HAVE_INOTIFY_INIT
|
||||||
|
|
||||||
/* Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>. */
|
/* Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>. */
|
||||||
#undef HAVE_INTMAX_T
|
#undef HAVE_INTMAX_T
|
||||||
|
|
||||||
@ -960,6 +973,10 @@
|
|||||||
/* Define if the 'malloc' function is POSIX compliant. */
|
/* Define if the 'malloc' function is POSIX compliant. */
|
||||||
#undef HAVE_MALLOC_POSIX
|
#undef HAVE_MALLOC_POSIX
|
||||||
|
|
||||||
|
/* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including
|
||||||
|
config.h and <sys/mman.h>. */
|
||||||
|
#undef HAVE_MAP_ANONYMOUS
|
||||||
|
|
||||||
/* Define to 1 if you have the `matchpathcon_init_prefix' function. */
|
/* Define to 1 if you have the `matchpathcon_init_prefix' function. */
|
||||||
#undef HAVE_MATCHPATHCON_INIT_PREFIX
|
#undef HAVE_MATCHPATHCON_INIT_PREFIX
|
||||||
|
|
||||||
@ -1014,6 +1031,9 @@
|
|||||||
/* Define to 1 if you have the <mntent.h> header file. */
|
/* Define to 1 if you have the <mntent.h> header file. */
|
||||||
#undef HAVE_MNTENT_H
|
#undef HAVE_MNTENT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `mprotect' function. */
|
||||||
|
#undef HAVE_MPROTECT
|
||||||
|
|
||||||
/* Define to 1 if you have the `nanotime' function. */
|
/* Define to 1 if you have the `nanotime' function. */
|
||||||
#undef HAVE_NANOTIME
|
#undef HAVE_NANOTIME
|
||||||
|
|
||||||
@ -1111,6 +1131,9 @@
|
|||||||
/* Define to 1 if you have run the test for working tzset. */
|
/* Define to 1 if you have run the test for working tzset. */
|
||||||
#undef HAVE_RUN_TZSET_TEST
|
#undef HAVE_RUN_TZSET_TEST
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `sa_family_t'. */
|
||||||
|
#undef HAVE_SA_FAMILY_T
|
||||||
|
|
||||||
/* Define to 1 if you have the <search.h> header file. */
|
/* Define to 1 if you have the <search.h> header file. */
|
||||||
#undef HAVE_SEARCH_H
|
#undef HAVE_SEARCH_H
|
||||||
|
|
||||||
@ -1183,6 +1206,9 @@
|
|||||||
/* Define to 1 if stdbool.h conforms to C99. */
|
/* Define to 1 if stdbool.h conforms to C99. */
|
||||||
#undef HAVE_STDBOOL_H
|
#undef HAVE_STDBOOL_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stddef.h> header file. */
|
||||||
|
#undef HAVE_STDDEF_H
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdint.h> header file. */
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
#undef HAVE_STDINT_H
|
#undef HAVE_STDINT_H
|
||||||
|
|
||||||
@ -1264,137 +1290,140 @@
|
|||||||
headers. */
|
headers. */
|
||||||
#undef HAVE_STRUCT_DIRENT_D_TYPE
|
#undef HAVE_STRUCT_DIRENT_D_TYPE
|
||||||
|
|
||||||
/* Define to 1 if `struct fsstat' is a member of `f_fstypename'. */
|
/* Define to 1 if `f_fstypename' is a member of `struct fsstat'. */
|
||||||
#undef HAVE_STRUCT_FSSTAT_F_FSTYPENAME
|
#undef HAVE_STRUCT_FSSTAT_F_FSTYPENAME
|
||||||
|
|
||||||
/* Define to 1 if `struct nlist' is a member of `n_un.n_name'. */
|
/* Define to 1 if `n_un.n_name' is a member of `struct nlist'. */
|
||||||
#undef HAVE_STRUCT_NLIST_N_UN_N_NAME
|
#undef HAVE_STRUCT_NLIST_N_UN_N_NAME
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `struct random_data'. */
|
/* Define to 1 if the system has the type `struct random_data'. */
|
||||||
#undef HAVE_STRUCT_RANDOM_DATA
|
#undef HAVE_STRUCT_RANDOM_DATA
|
||||||
|
|
||||||
/* Define to 1 if `struct sigaction' is a member of `sa_sigaction'. */
|
/* Define to 1 if `sa_sigaction' is a member of `struct sigaction'. */
|
||||||
#undef HAVE_STRUCT_SIGACTION_SA_SIGACTION
|
#undef HAVE_STRUCT_SIGACTION_SA_SIGACTION
|
||||||
|
|
||||||
/* Define to 1 if `struct sockaddr' is a member of `sa_len'. */
|
/* Define to 1 if `sa_len' is a member of `struct sockaddr'. */
|
||||||
#undef HAVE_STRUCT_SOCKADDR_SA_LEN
|
#undef HAVE_STRUCT_SOCKADDR_SA_LEN
|
||||||
|
|
||||||
/* Define to 1 if `struct spwd' is a member of `sp_pwdp'. */
|
/* Define to 1 if the system has the type `struct sockaddr_storage'. */
|
||||||
|
#undef HAVE_STRUCT_SOCKADDR_STORAGE
|
||||||
|
|
||||||
|
/* Define to 1 if `sp_pwdp' is a member of `struct spwd'. */
|
||||||
#undef HAVE_STRUCT_SPWD_SP_PWDP
|
#undef HAVE_STRUCT_SPWD_SP_PWDP
|
||||||
|
|
||||||
/* Define to 1 if `struct statfs' is a member of `f_fstypename'. */
|
/* Define to 1 if `f_fstypename' is a member of `struct statfs'. */
|
||||||
#undef HAVE_STRUCT_STATFS_F_FSTYPENAME
|
#undef HAVE_STRUCT_STATFS_F_FSTYPENAME
|
||||||
|
|
||||||
/* Define to 1 if `struct statfs' is a member of `f_namelen'. */
|
/* Define to 1 if `f_namelen' is a member of `struct statfs'. */
|
||||||
#undef HAVE_STRUCT_STATFS_F_NAMELEN
|
#undef HAVE_STRUCT_STATFS_F_NAMELEN
|
||||||
|
|
||||||
/* Define to 1 if `struct statfs' is a member of `f_type'. */
|
/* Define to 1 if `f_type' is a member of `struct statfs'. */
|
||||||
#undef HAVE_STRUCT_STATFS_F_TYPE
|
#undef HAVE_STRUCT_STATFS_F_TYPE
|
||||||
|
|
||||||
/* Define to 1 if `struct statvfs' is a member of `f_basetype'. */
|
/* Define to 1 if `f_basetype' is a member of `struct statvfs'. */
|
||||||
#undef HAVE_STRUCT_STATVFS_F_BASETYPE
|
#undef HAVE_STRUCT_STATVFS_F_BASETYPE
|
||||||
|
|
||||||
/* Define to 1 if `struct statvfs' is a member of `f_fstypename'. */
|
/* Define to 1 if `f_fstypename' is a member of `struct statvfs'. */
|
||||||
#undef HAVE_STRUCT_STATVFS_F_FSTYPENAME
|
#undef HAVE_STRUCT_STATVFS_F_FSTYPENAME
|
||||||
|
|
||||||
/* Define to 1 if `struct statvfs' is a member of `f_namemax'. */
|
/* Define to 1 if `f_namemax' is a member of `struct statvfs'. */
|
||||||
#undef HAVE_STRUCT_STATVFS_F_NAMEMAX
|
#undef HAVE_STRUCT_STATVFS_F_NAMEMAX
|
||||||
|
|
||||||
/* Define to 1 if `struct statvfs' is a member of `f_type'. */
|
/* Define to 1 if `f_type' is a member of `struct statvfs'. */
|
||||||
#undef HAVE_STRUCT_STATVFS_F_TYPE
|
#undef HAVE_STRUCT_STATVFS_F_TYPE
|
||||||
|
|
||||||
/* Define to 1 if `struct stat' is a member of `st_atimensec'. */
|
/* Define to 1 if `st_atimensec' is a member of `struct stat'. */
|
||||||
#undef HAVE_STRUCT_STAT_ST_ATIMENSEC
|
#undef HAVE_STRUCT_STAT_ST_ATIMENSEC
|
||||||
|
|
||||||
/* Define to 1 if `struct stat' is a member of `st_atimespec.tv_nsec'. */
|
/* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */
|
||||||
#undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
|
#undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
|
||||||
|
|
||||||
/* Define to 1 if `struct stat' is a member of `st_atim.st__tim.tv_nsec'. */
|
/* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */
|
||||||
#undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
|
#undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
|
||||||
|
|
||||||
/* Define to 1 if `struct stat' is a member of `st_atim.tv_nsec'. */
|
/* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */
|
||||||
#undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
|
#undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
|
||||||
|
|
||||||
/* Define to 1 if `struct stat' is a member of `st_author'. */
|
/* Define to 1 if `st_author' is a member of `struct stat'. */
|
||||||
#undef HAVE_STRUCT_STAT_ST_AUTHOR
|
#undef HAVE_STRUCT_STAT_ST_AUTHOR
|
||||||
|
|
||||||
/* Define to 1 if `struct stat' is a member of `st_birthtimensec'. */
|
/* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */
|
||||||
#undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
|
#undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
|
||||||
|
|
||||||
/* Define to 1 if `struct stat' is a member of `st_birthtimespec.tv_nsec'. */
|
/* Define to 1 if `st_birthtimespec.tv_nsec' is a member of `struct stat'. */
|
||||||
#undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
|
#undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
|
||||||
|
|
||||||
/* Define to 1 if `struct stat' is a member of `st_birthtim.tv_nsec'. */
|
/* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */
|
||||||
#undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
|
#undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
|
||||||
|
|
||||||
/* Define to 1 if `struct stat' is a member of `st_blocks'. */
|
/* Define to 1 if `st_blocks' is a member of `struct stat'. */
|
||||||
#undef HAVE_STRUCT_STAT_ST_BLOCKS
|
#undef HAVE_STRUCT_STAT_ST_BLOCKS
|
||||||
|
|
||||||
/* Define to 1 if `struct tm' is a member of `tm_zone'. */
|
/* Define to 1 if `tm_zone' is a member of `struct tm'. */
|
||||||
#undef HAVE_STRUCT_TM_TM_ZONE
|
#undef HAVE_STRUCT_TM_TM_ZONE
|
||||||
|
|
||||||
/* Define if struct utimbuf is declared -- usually in <utime.h>. Some systems
|
/* Define if struct utimbuf is declared -- usually in <utime.h>. Some systems
|
||||||
have utime.h but don't declare the struct anywhere. */
|
have utime.h but don't declare the struct anywhere. */
|
||||||
#undef HAVE_STRUCT_UTIMBUF
|
#undef HAVE_STRUCT_UTIMBUF
|
||||||
|
|
||||||
/* Define to 1 if `struct utmpx' is a member of `ut_exit'. */
|
/* Define to 1 if `ut_exit' is a member of `struct utmpx'. */
|
||||||
#undef HAVE_STRUCT_UTMPX_UT_EXIT
|
#undef HAVE_STRUCT_UTMPX_UT_EXIT
|
||||||
|
|
||||||
/* Define to 1 if `struct utmpx' is a member of `ut_exit.e_exit'. */
|
/* Define to 1 if `ut_exit.e_exit' is a member of `struct utmpx'. */
|
||||||
#undef HAVE_STRUCT_UTMPX_UT_EXIT_E_EXIT
|
#undef HAVE_STRUCT_UTMPX_UT_EXIT_E_EXIT
|
||||||
|
|
||||||
/* Define to 1 if `struct utmpx' is a member of `ut_exit.e_termination'. */
|
/* Define to 1 if `ut_exit.e_termination' is a member of `struct utmpx'. */
|
||||||
#undef HAVE_STRUCT_UTMPX_UT_EXIT_E_TERMINATION
|
#undef HAVE_STRUCT_UTMPX_UT_EXIT_E_TERMINATION
|
||||||
|
|
||||||
/* Define to 1 if `struct utmpx' is a member of `ut_exit.ut_exit'. */
|
/* Define to 1 if `ut_exit.ut_exit' is a member of `struct utmpx'. */
|
||||||
#undef HAVE_STRUCT_UTMPX_UT_EXIT_UT_EXIT
|
#undef HAVE_STRUCT_UTMPX_UT_EXIT_UT_EXIT
|
||||||
|
|
||||||
/* Define to 1 if `struct utmpx' is a member of `ut_exit.ut_termination'. */
|
/* Define to 1 if `ut_exit.ut_termination' is a member of `struct utmpx'. */
|
||||||
#undef HAVE_STRUCT_UTMPX_UT_EXIT_UT_TERMINATION
|
#undef HAVE_STRUCT_UTMPX_UT_EXIT_UT_TERMINATION
|
||||||
|
|
||||||
/* Define to 1 if `struct utmpx' is a member of `ut_id'. */
|
/* Define to 1 if `ut_id' is a member of `struct utmpx'. */
|
||||||
#undef HAVE_STRUCT_UTMPX_UT_ID
|
#undef HAVE_STRUCT_UTMPX_UT_ID
|
||||||
|
|
||||||
/* Define to 1 if `struct utmpx' is a member of `ut_name'. */
|
/* Define to 1 if `ut_name' is a member of `struct utmpx'. */
|
||||||
#undef HAVE_STRUCT_UTMPX_UT_NAME
|
#undef HAVE_STRUCT_UTMPX_UT_NAME
|
||||||
|
|
||||||
/* Define to 1 if `struct utmpx' is a member of `ut_pid'. */
|
/* Define to 1 if `ut_pid' is a member of `struct utmpx'. */
|
||||||
#undef HAVE_STRUCT_UTMPX_UT_PID
|
#undef HAVE_STRUCT_UTMPX_UT_PID
|
||||||
|
|
||||||
/* Define to 1 if `struct utmpx' is a member of `ut_type'. */
|
/* Define to 1 if `ut_type' is a member of `struct utmpx'. */
|
||||||
#undef HAVE_STRUCT_UTMPX_UT_TYPE
|
#undef HAVE_STRUCT_UTMPX_UT_TYPE
|
||||||
|
|
||||||
/* Define to 1 if `struct utmpx' is a member of `ut_user'. */
|
/* Define to 1 if `ut_user' is a member of `struct utmpx'. */
|
||||||
#undef HAVE_STRUCT_UTMPX_UT_USER
|
#undef HAVE_STRUCT_UTMPX_UT_USER
|
||||||
|
|
||||||
/* Define to 1 if `struct utmp' is a member of `ut_exit'. */
|
/* Define to 1 if `ut_exit' is a member of `struct utmp'. */
|
||||||
#undef HAVE_STRUCT_UTMP_UT_EXIT
|
#undef HAVE_STRUCT_UTMP_UT_EXIT
|
||||||
|
|
||||||
/* Define to 1 if `struct utmp' is a member of `ut_exit.e_exit'. */
|
/* Define to 1 if `ut_exit.e_exit' is a member of `struct utmp'. */
|
||||||
#undef HAVE_STRUCT_UTMP_UT_EXIT_E_EXIT
|
#undef HAVE_STRUCT_UTMP_UT_EXIT_E_EXIT
|
||||||
|
|
||||||
/* Define to 1 if `struct utmp' is a member of `ut_exit.e_termination'. */
|
/* Define to 1 if `ut_exit.e_termination' is a member of `struct utmp'. */
|
||||||
#undef HAVE_STRUCT_UTMP_UT_EXIT_E_TERMINATION
|
#undef HAVE_STRUCT_UTMP_UT_EXIT_E_TERMINATION
|
||||||
|
|
||||||
/* Define to 1 if `struct utmp' is a member of `ut_exit.ut_exit'. */
|
/* Define to 1 if `ut_exit.ut_exit' is a member of `struct utmp'. */
|
||||||
#undef HAVE_STRUCT_UTMP_UT_EXIT_UT_EXIT
|
#undef HAVE_STRUCT_UTMP_UT_EXIT_UT_EXIT
|
||||||
|
|
||||||
/* Define to 1 if `struct utmp' is a member of `ut_exit.ut_termination'. */
|
/* Define to 1 if `ut_exit.ut_termination' is a member of `struct utmp'. */
|
||||||
#undef HAVE_STRUCT_UTMP_UT_EXIT_UT_TERMINATION
|
#undef HAVE_STRUCT_UTMP_UT_EXIT_UT_TERMINATION
|
||||||
|
|
||||||
/* Define to 1 if `struct utmp' is a member of `ut_id'. */
|
/* Define to 1 if `ut_id' is a member of `struct utmp'. */
|
||||||
#undef HAVE_STRUCT_UTMP_UT_ID
|
#undef HAVE_STRUCT_UTMP_UT_ID
|
||||||
|
|
||||||
/* Define to 1 if `struct utmp' is a member of `ut_name'. */
|
/* Define to 1 if `ut_name' is a member of `struct utmp'. */
|
||||||
#undef HAVE_STRUCT_UTMP_UT_NAME
|
#undef HAVE_STRUCT_UTMP_UT_NAME
|
||||||
|
|
||||||
/* Define to 1 if `struct utmp' is a member of `ut_pid'. */
|
/* Define to 1 if `ut_pid' is a member of `struct utmp'. */
|
||||||
#undef HAVE_STRUCT_UTMP_UT_PID
|
#undef HAVE_STRUCT_UTMP_UT_PID
|
||||||
|
|
||||||
/* Define to 1 if `struct utmp' is a member of `ut_type'. */
|
/* Define to 1 if `ut_type' is a member of `struct utmp'. */
|
||||||
#undef HAVE_STRUCT_UTMP_UT_TYPE
|
#undef HAVE_STRUCT_UTMP_UT_TYPE
|
||||||
|
|
||||||
/* Define to 1 if `struct utmp' is a member of `ut_user'. */
|
/* Define to 1 if `ut_user' is a member of `struct utmp'. */
|
||||||
#undef HAVE_STRUCT_UTMP_UT_USER
|
#undef HAVE_STRUCT_UTMP_UT_USER
|
||||||
|
|
||||||
/* Define to 1 if you have the `strverscmp' function. */
|
/* Define to 1 if you have the `strverscmp' function. */
|
||||||
@ -1452,6 +1481,9 @@
|
|||||||
/* Define to 1 if you have the <sys/loadavg.h> header file. */
|
/* Define to 1 if you have the <sys/loadavg.h> header file. */
|
||||||
#undef HAVE_SYS_LOADAVG_H
|
#undef HAVE_SYS_LOADAVG_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/mman.h> header file. */
|
||||||
|
#undef HAVE_SYS_MMAN_H
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/mntent.h> header file. */
|
/* Define to 1 if you have the <sys/mntent.h> header file. */
|
||||||
#undef HAVE_SYS_MNTENT_H
|
#undef HAVE_SYS_MNTENT_H
|
||||||
|
|
||||||
@ -1680,6 +1712,9 @@
|
|||||||
/* Define to 1 if you have the `__fsetlocking' function. */
|
/* Define to 1 if you have the `__fsetlocking' function. */
|
||||||
#undef HAVE___FSETLOCKING
|
#undef HAVE___FSETLOCKING
|
||||||
|
|
||||||
|
/* Define HOST_NAME_MAX when <limits.h> does not define it. */
|
||||||
|
#undef HOST_NAME_MAX
|
||||||
|
|
||||||
/* The host operating system. */
|
/* The host operating system. */
|
||||||
#undef HOST_OPERATING_SYSTEM
|
#undef HOST_OPERATING_SYSTEM
|
||||||
|
|
||||||
@ -1734,6 +1769,9 @@
|
|||||||
/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */
|
/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */
|
||||||
#undef MALLOC_0_IS_NONNULL
|
#undef MALLOC_0_IS_NONNULL
|
||||||
|
|
||||||
|
/* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */
|
||||||
|
#undef MAP_ANONYMOUS
|
||||||
|
|
||||||
/* Define if the mbrtowc function has the NULL string argument bug. */
|
/* Define if the mbrtowc function has the NULL string argument bug. */
|
||||||
#undef MBRTOWC_NULL_ARG_BUG
|
#undef MBRTOWC_NULL_ARG_BUG
|
||||||
|
|
||||||
@ -1850,6 +1888,9 @@
|
|||||||
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
|
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
|
||||||
#undef NO_MINUS_C_MINUS_O
|
#undef NO_MINUS_C_MINUS_O
|
||||||
|
|
||||||
|
/* Define to 1 if the nlist n_name member is a pointer */
|
||||||
|
#undef N_NAME_POINTER
|
||||||
|
|
||||||
/* Define to 1 if open() fails to recognize a trailing slash. */
|
/* Define to 1 if open() fails to recognize a trailing slash. */
|
||||||
#undef OPEN_TRAILING_SLASH_BUG
|
#undef OPEN_TRAILING_SLASH_BUG
|
||||||
|
|
||||||
@ -1862,6 +1903,15 @@
|
|||||||
/* Define to the full name of this package. */
|
/* Define to the full name of this package. */
|
||||||
#undef PACKAGE_NAME
|
#undef PACKAGE_NAME
|
||||||
|
|
||||||
|
/* String identifying the packager of this software */
|
||||||
|
#undef PACKAGE_PACKAGER
|
||||||
|
|
||||||
|
/* Packager info for bug reports (URL/e-mail/...) */
|
||||||
|
#undef PACKAGE_PACKAGER_BUG_REPORTS
|
||||||
|
|
||||||
|
/* Packager-specific version information */
|
||||||
|
#undef PACKAGE_PACKAGER_VERSION
|
||||||
|
|
||||||
/* Define to the full name and version of this package. */
|
/* Define to the full name and version of this package. */
|
||||||
#undef PACKAGE_STRING
|
#undef PACKAGE_STRING
|
||||||
|
|
||||||
@ -1890,6 +1940,10 @@
|
|||||||
/* Define if <inttypes.h> exists and defines unusable PRI* macros. */
|
/* Define if <inttypes.h> exists and defines unusable PRI* macros. */
|
||||||
#undef PRI_MACROS_BROKEN
|
#undef PRI_MACROS_BROKEN
|
||||||
|
|
||||||
|
/* Define to the type that is the result of default argument promotions of
|
||||||
|
type mode_t. */
|
||||||
|
#undef PROMOTED_MODE_T
|
||||||
|
|
||||||
/* Define to 1 if the C compiler supports function prototypes. */
|
/* Define to 1 if the C compiler supports function prototypes. */
|
||||||
#undef PROTOTYPES
|
#undef PROTOTYPES
|
||||||
|
|
||||||
@ -1905,6 +1959,9 @@
|
|||||||
like the one from SunOS 4.1.1_U1. */
|
like the one from SunOS 4.1.1_U1. */
|
||||||
#undef RENAME_TRAILING_SLASH_BUG
|
#undef RENAME_TRAILING_SLASH_BUG
|
||||||
|
|
||||||
|
/* Define to 1 if dup2 returns 0 instead of the target fd. */
|
||||||
|
#undef REPLACE_DUP2
|
||||||
|
|
||||||
/* Define this to 1 if strerror is broken. */
|
/* Define this to 1 if strerror is broken. */
|
||||||
#undef REPLACE_STRERROR
|
#undef REPLACE_STRERROR
|
||||||
|
|
||||||
@ -1928,7 +1985,9 @@
|
|||||||
|
|
||||||
/* Define as the maximum value of type 'size_t', if the system doesn't define
|
/* Define as the maximum value of type 'size_t', if the system doesn't define
|
||||||
it. */
|
it. */
|
||||||
#undef SIZE_MAX
|
#ifndef SIZE_MAX
|
||||||
|
# undef SIZE_MAX
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
|
/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
|
||||||
'size_t'. */
|
'size_t'. */
|
||||||
@ -2191,9 +2250,6 @@
|
|||||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||||
#undef minor_t
|
#undef minor_t
|
||||||
|
|
||||||
/* Define to rpl_mktime if the replacement function should be used. */
|
|
||||||
#undef mktime
|
|
||||||
|
|
||||||
/* Define to `int' if <sys/types.h> does not define. */
|
/* Define to `int' if <sys/types.h> does not define. */
|
||||||
#undef mode_t
|
#undef mode_t
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
/* Duplicate an open file descriptor to a specified file descriptor.
|
/* Duplicate an open file descriptor to a specified file descriptor.
|
||||||
|
|
||||||
Copyright (C) 1999, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
Copyright (C) 1999, 2004, 2005, 2006, 2007, 2009 Free Software
|
||||||
|
Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -25,7 +26,45 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
|
||||||
#ifndef F_DUPFD
|
#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
|
||||||
|
/* Get declarations of the Win32 API functions. */
|
||||||
|
# define WIN32_LEAN_AND_MEAN
|
||||||
|
# include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if REPLACE_DUP2
|
||||||
|
|
||||||
|
# undef dup2
|
||||||
|
|
||||||
|
int
|
||||||
|
rpl_dup2 (int fd, int desired_fd)
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
|
||||||
|
/* If fd is closed, mingw hangs on dup2 (fd, fd). If fd is open,
|
||||||
|
dup2 (fd, fd) returns 0, but all further attempts to use fd in
|
||||||
|
future dup2 calls will hang. */
|
||||||
|
if (fd == desired_fd)
|
||||||
|
{
|
||||||
|
if ((HANDLE) _get_osfhandle (fd) == INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
errno = EBADF;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return fd;
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
result = dup2 (fd, desired_fd);
|
||||||
|
if (result == 0)
|
||||||
|
result = desired_fd;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
#else /* !REPLACE_DUP2 */
|
||||||
|
|
||||||
|
/* On older platforms, dup2 did not exist. */
|
||||||
|
|
||||||
|
# ifndef F_DUPFD
|
||||||
static int
|
static int
|
||||||
dupfd (int fd, int desired_fd)
|
dupfd (int fd, int desired_fd)
|
||||||
{
|
{
|
||||||
@ -41,7 +80,7 @@ dupfd (int fd, int desired_fd)
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
int
|
int
|
||||||
dup2 (int fd, int desired_fd)
|
dup2 (int fd, int desired_fd)
|
||||||
@ -49,9 +88,10 @@ dup2 (int fd, int desired_fd)
|
|||||||
if (fd == desired_fd)
|
if (fd == desired_fd)
|
||||||
return fd;
|
return fd;
|
||||||
close (desired_fd);
|
close (desired_fd);
|
||||||
#ifdef F_DUPFD
|
# ifdef F_DUPFD
|
||||||
return fcntl (fd, F_DUPFD, desired_fd);
|
return fcntl (fd, F_DUPFD, desired_fd);
|
||||||
#else
|
# else
|
||||||
return dupfd (fd, desired_fd);
|
return dupfd (fd, desired_fd);
|
||||||
#endif
|
# endif
|
||||||
}
|
}
|
||||||
|
#endif /* !REPLACE_DUP2 */
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#line 1
|
#line 1
|
||||||
/* A POSIX-like <errno.h>.
|
/* A POSIX-like <errno.h>.
|
||||||
|
|
||||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
Copyright (C) 2008-2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -148,6 +148,11 @@
|
|||||||
# define GNULIB_defined_ENOTSUP 1
|
# define GNULIB_defined_ENOTSUP 1
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifndef ESTALE
|
||||||
|
# define ESTALE 2009
|
||||||
|
# define GNULIB_defined_ESTALE 1
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifndef ECANCELED
|
# ifndef ECANCELED
|
||||||
# define ECANCELED 2008
|
# define ECANCELED 2008
|
||||||
# define GNULIB_defined_ECANCELED 1
|
# define GNULIB_defined_ECANCELED 1
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Error handler for noninteractive utilities
|
/* Error handler for noninteractive utilities
|
||||||
Copyright (C) 1990-1998, 2000-2007 Free Software Foundation, Inc.
|
Copyright (C) 1990-1998, 2000-2007, 2009 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
@ -85,6 +85,8 @@ extern void __error_at_line (int status, int errnum, const char *file_name,
|
|||||||
|
|
||||||
#else /* not _LIBC */
|
#else /* not _LIBC */
|
||||||
|
|
||||||
|
# include <fcntl.h>
|
||||||
|
|
||||||
# if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P
|
# if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P
|
||||||
# ifndef HAVE_DECL_STRERROR_R
|
# ifndef HAVE_DECL_STRERROR_R
|
||||||
"this configure-time declaration test was not run"
|
"this configure-time declaration test was not run"
|
||||||
@ -236,6 +238,12 @@ error (int status, int errnum, const char *message, ...)
|
|||||||
0);
|
0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !_LIBC && defined F_GETFL
|
||||||
|
/* POSIX states that fflush (stdout) after fclose is unspecified; it
|
||||||
|
is safe in glibc, but not on all other platforms. fflush (NULL)
|
||||||
|
is always defined, but too draconian. */
|
||||||
|
if (0 <= fcntl (1, F_GETFL))
|
||||||
|
#endif
|
||||||
fflush (stdout);
|
fflush (stdout);
|
||||||
#ifdef _LIBC
|
#ifdef _LIBC
|
||||||
_IO_flockfile (stderr);
|
_IO_flockfile (stderr);
|
||||||
@ -295,6 +303,12 @@ error_at_line (int status, int errnum, const char *file_name,
|
|||||||
0);
|
0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !_LIBC && defined F_GETFL
|
||||||
|
/* POSIX states that fflush (stdout) after fclose is unspecified; it
|
||||||
|
is safe in glibc, but not on all other platforms. fflush (NULL)
|
||||||
|
is always defined, but too draconian. */
|
||||||
|
if (0 <= fcntl (1, F_GETFL))
|
||||||
|
#endif
|
||||||
fflush (stdout);
|
fflush (stdout);
|
||||||
#ifdef _LIBC
|
#ifdef _LIBC
|
||||||
_IO_flockfile (stderr);
|
_IO_flockfile (stderr);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
This function is probably useful only for choosing whether to issue
|
This function is probably useful only for choosing whether to issue
|
||||||
a prompt in an implementation of POSIX-specified rm.
|
a prompt in an implementation of POSIX-specified rm.
|
||||||
|
|
||||||
Copyright (C) 2005, 2006 Free Software Foundation, Inc.
|
Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* exclude.c -- exclude file names
|
/* exclude.c -- exclude file names
|
||||||
|
|
||||||
Copyright (C) 1992, 1993, 1994, 1997, 1999, 2000, 2001, 2002, 2003,
|
Copyright (C) 1992, 1993, 1994, 1997, 1999, 2000, 2001, 2002, 2003,
|
||||||
2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -16,7 +16,10 @@
|
|||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
/* Written by Paul Eggert <eggert@twinsun.com> */
|
/* Written by Paul Eggert <eggert@twinsun.com>
|
||||||
|
and Sergey Poznyakoff <gray@gnu.org>.
|
||||||
|
Thanks to Phil Proudman <phil@proudman51.freeserve.co.uk>
|
||||||
|
for improvement suggestions. */
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
@ -30,6 +33,8 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "exclude.h"
|
#include "exclude.h"
|
||||||
|
#include "hash.h"
|
||||||
|
#include "mbuiter.h"
|
||||||
#include "fnmatch.h"
|
#include "fnmatch.h"
|
||||||
#include "xalloc.h"
|
#include "xalloc.h"
|
||||||
#include "verify.h"
|
#include "verify.h"
|
||||||
@ -54,6 +59,14 @@ verify (((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS)
|
|||||||
| FNM_CASEFOLD | FNM_EXTMATCH))
|
| FNM_CASEFOLD | FNM_EXTMATCH))
|
||||||
== 0);
|
== 0);
|
||||||
|
|
||||||
|
|
||||||
|
/* Exclusion patterns are grouped into a singly-linked list of
|
||||||
|
"exclusion segments". Each segment represents a set of patterns
|
||||||
|
that can be matches using the same algorithm. Non-wildcard
|
||||||
|
patterns are kept in hash tables, to speed up searches. Wildcard
|
||||||
|
patterns are stored as arrays of patterns. */
|
||||||
|
|
||||||
|
|
||||||
/* An exclude pattern-options pair. The options are fnmatch options
|
/* An exclude pattern-options pair. The options are fnmatch options
|
||||||
ORed with EXCLUDE_* options. */
|
ORed with EXCLUDE_* options. */
|
||||||
|
|
||||||
@ -63,15 +76,63 @@ struct patopts
|
|||||||
int options;
|
int options;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* An exclude list, of pattern-options pairs. */
|
/* An array of pattern-options pairs. */
|
||||||
|
|
||||||
struct exclude
|
struct exclude_pattern
|
||||||
{
|
{
|
||||||
struct patopts *exclude;
|
struct patopts *exclude;
|
||||||
size_t exclude_alloc;
|
size_t exclude_alloc;
|
||||||
size_t exclude_count;
|
size_t exclude_count;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum exclude_type
|
||||||
|
{
|
||||||
|
exclude_hash, /* a hash table of excluded names */
|
||||||
|
exclude_pattern /* an array of exclude patterns */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct exclude_segment
|
||||||
|
{
|
||||||
|
struct exclude_segment *next; /* next segment in list */
|
||||||
|
enum exclude_type type; /* type of this segment */
|
||||||
|
int options; /* common options for this segment */
|
||||||
|
union
|
||||||
|
{
|
||||||
|
Hash_table *table; /* for type == exclude_hash */
|
||||||
|
struct exclude_pattern pat; /* for type == exclude_pattern */
|
||||||
|
} v;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* The exclude structure keeps a singly-linked list of exclude segments */
|
||||||
|
struct exclude
|
||||||
|
{
|
||||||
|
struct exclude_segment *head, *tail;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Return true if str has wildcard characters */
|
||||||
|
bool
|
||||||
|
fnmatch_pattern_has_wildcards (const char *str, int options)
|
||||||
|
{
|
||||||
|
char *cset = "\\?*[]";
|
||||||
|
if (options & FNM_NOESCAPE)
|
||||||
|
cset++;
|
||||||
|
while (*str)
|
||||||
|
{
|
||||||
|
size_t n = strcspn (str, cset);
|
||||||
|
if (str[n] == 0)
|
||||||
|
break;
|
||||||
|
else if (str[n] == '\\')
|
||||||
|
{
|
||||||
|
str += n + 1;
|
||||||
|
if (*str)
|
||||||
|
str++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/* Return a newly allocated and empty exclude list. */
|
/* Return a newly allocated and empty exclude list. */
|
||||||
|
|
||||||
struct exclude *
|
struct exclude *
|
||||||
@ -80,12 +141,122 @@ new_exclude (void)
|
|||||||
return xzalloc (sizeof *new_exclude ());
|
return xzalloc (sizeof *new_exclude ());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Free the storage associated with an exclude list. */
|
/* Calculate the hash of string. */
|
||||||
|
static size_t
|
||||||
|
string_hasher (void const *data, size_t n_buckets)
|
||||||
|
{
|
||||||
|
char const *p = data;
|
||||||
|
return hash_string (p, n_buckets);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ditto, for case-insensitive hashes */
|
||||||
|
static size_t
|
||||||
|
string_hasher_ci (void const *data, size_t n_buckets)
|
||||||
|
{
|
||||||
|
char const *p = data;
|
||||||
|
mbui_iterator_t iter;
|
||||||
|
size_t value = 0;
|
||||||
|
|
||||||
|
for (mbui_init (iter, p); mbui_avail (iter); mbui_advance (iter))
|
||||||
|
{
|
||||||
|
mbchar_t m = mbui_cur (iter);
|
||||||
|
wchar_t wc;
|
||||||
|
|
||||||
|
if (m.wc_valid)
|
||||||
|
wc = towlower (m.wc);
|
||||||
|
else
|
||||||
|
wc = *m.ptr;
|
||||||
|
|
||||||
|
value = (value * 31 + wc) % n_buckets;
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* compare two strings for equality */
|
||||||
|
static bool
|
||||||
|
string_compare (void const *data1, void const *data2)
|
||||||
|
{
|
||||||
|
char const *p1 = data1;
|
||||||
|
char const *p2 = data2;
|
||||||
|
return strcmp (p1, p2) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* compare two strings for equality, case-insensitive */
|
||||||
|
static bool
|
||||||
|
string_compare_ci (void const *data1, void const *data2)
|
||||||
|
{
|
||||||
|
char const *p1 = data1;
|
||||||
|
char const *p2 = data2;
|
||||||
|
return mbscasecmp (p1, p2) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
string_free (void *data)
|
||||||
|
{
|
||||||
|
free (data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Create new exclude segment of given TYPE and OPTIONS, and attach it
|
||||||
|
to the tail of list in EX */
|
||||||
|
struct exclude_segment *
|
||||||
|
new_exclude_segment (struct exclude *ex, enum exclude_type type, int options)
|
||||||
|
{
|
||||||
|
struct exclude_segment *sp = xzalloc (sizeof (struct exclude_segment));
|
||||||
|
sp->type = type;
|
||||||
|
sp->options = options;
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case exclude_pattern:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case exclude_hash:
|
||||||
|
sp->v.table = hash_initialize (0, NULL,
|
||||||
|
(options & FNM_CASEFOLD) ?
|
||||||
|
string_hasher_ci
|
||||||
|
: string_hasher,
|
||||||
|
(options & FNM_CASEFOLD) ?
|
||||||
|
string_compare_ci
|
||||||
|
: string_compare,
|
||||||
|
string_free);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (ex->tail)
|
||||||
|
ex->tail->next = sp;
|
||||||
|
else
|
||||||
|
ex->head = sp;
|
||||||
|
ex->tail = sp;
|
||||||
|
return sp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Free a single exclude segment */
|
||||||
|
static void
|
||||||
|
free_exclude_segment (struct exclude_segment *seg)
|
||||||
|
{
|
||||||
|
switch (seg->type)
|
||||||
|
{
|
||||||
|
case exclude_pattern:
|
||||||
|
free (seg->v.pat.exclude);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case exclude_hash:
|
||||||
|
hash_free (seg->v.table);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
free (seg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Free the storage associated with an exclude list. */
|
||||||
void
|
void
|
||||||
free_exclude (struct exclude *ex)
|
free_exclude (struct exclude *ex)
|
||||||
{
|
{
|
||||||
free (ex->exclude);
|
struct exclude_segment *seg;
|
||||||
|
for (seg = ex->head; seg; )
|
||||||
|
{
|
||||||
|
struct exclude_segment *next = seg->next;
|
||||||
|
free_exclude_segment (seg);
|
||||||
|
seg = next;
|
||||||
|
}
|
||||||
free (ex);
|
free (ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,36 +326,113 @@ exclude_fnmatch (char const *pattern, char const *f, int options)
|
|||||||
return matched;
|
return matched;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return true if the exclude_pattern segment SEG excludes F. */
|
||||||
|
|
||||||
|
bool
|
||||||
|
excluded_file_pattern_p (struct exclude_segment const *seg, char const *f)
|
||||||
|
{
|
||||||
|
size_t exclude_count = seg->v.pat.exclude_count;
|
||||||
|
struct patopts const *exclude = seg->v.pat.exclude;
|
||||||
|
size_t i;
|
||||||
|
bool excluded = !! (exclude[0].options & EXCLUDE_INCLUDE);
|
||||||
|
|
||||||
|
/* Scan through the options, until they change excluded */
|
||||||
|
for (i = 0; i < exclude_count; i++)
|
||||||
|
{
|
||||||
|
char const *pattern = exclude[i].pattern;
|
||||||
|
int options = exclude[i].options;
|
||||||
|
if (excluded != exclude_fnmatch (pattern, f, options))
|
||||||
|
return !excluded;
|
||||||
|
}
|
||||||
|
return excluded;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Return true if the exclude_hash segment SEG excludes F.
|
||||||
|
BUFFER is an auxiliary storage of the same length as F (with nul
|
||||||
|
terminator included) */
|
||||||
|
bool
|
||||||
|
excluded_file_name_p (struct exclude_segment const *seg, char const *f,
|
||||||
|
char *buffer)
|
||||||
|
{
|
||||||
|
int options = seg->options;
|
||||||
|
bool excluded = !! (options & EXCLUDE_INCLUDE);
|
||||||
|
Hash_table *table = seg->v.table;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
/* initialize the pattern */
|
||||||
|
strcpy (buffer, f);
|
||||||
|
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
if (hash_lookup (table, buffer))
|
||||||
|
return !excluded;
|
||||||
|
if (options & FNM_LEADING_DIR)
|
||||||
|
{
|
||||||
|
char *p = strrchr (buffer, '/');
|
||||||
|
if (p)
|
||||||
|
{
|
||||||
|
*p = 0;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(options & EXCLUDE_ANCHORED))
|
||||||
|
{
|
||||||
|
f = strchr (f, '/');
|
||||||
|
if (f)
|
||||||
|
f++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
while (f);
|
||||||
|
return excluded;
|
||||||
|
}
|
||||||
|
|
||||||
/* Return true if EX excludes F. */
|
/* Return true if EX excludes F. */
|
||||||
|
|
||||||
bool
|
bool
|
||||||
excluded_file_name (struct exclude const *ex, char const *f)
|
excluded_file_name (struct exclude const *ex, char const *f)
|
||||||
{
|
{
|
||||||
size_t exclude_count = ex->exclude_count;
|
struct exclude_segment *seg;
|
||||||
|
bool excluded;
|
||||||
|
char *filename = NULL;
|
||||||
|
|
||||||
/* If no options are given, the default is to include. */
|
/* If no patterns are given, the default is to include. */
|
||||||
if (exclude_count == 0)
|
if (!ex->head)
|
||||||
return false;
|
return false;
|
||||||
else
|
|
||||||
|
/* Otherwise, the default is the opposite of the first option. */
|
||||||
|
excluded = !! (ex->head->options & EXCLUDE_INCLUDE);
|
||||||
|
/* Scan through the segments, seeing whether they change status from
|
||||||
|
excluded to included or vice versa. */
|
||||||
|
for (seg = ex->head; seg; seg = seg->next)
|
||||||
{
|
{
|
||||||
struct patopts const *exclude = ex->exclude;
|
bool rc;
|
||||||
size_t i;
|
|
||||||
|
|
||||||
/* Otherwise, the default is the opposite of the first option. */
|
switch (seg->type)
|
||||||
bool excluded = !! (exclude[0].options & EXCLUDE_INCLUDE);
|
|
||||||
|
|
||||||
/* Scan through the options, seeing whether they change F from
|
|
||||||
excluded to included or vice versa. */
|
|
||||||
for (i = 0; i < exclude_count; i++)
|
|
||||||
{
|
{
|
||||||
char const *pattern = exclude[i].pattern;
|
case exclude_pattern:
|
||||||
int options = exclude[i].options;
|
rc = excluded_file_pattern_p (seg, f);
|
||||||
if (excluded == !! (options & EXCLUDE_INCLUDE))
|
break;
|
||||||
excluded ^= exclude_fnmatch (pattern, f, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
return excluded;
|
case exclude_hash:
|
||||||
|
if (!filename)
|
||||||
|
filename = xmalloc (strlen (f) + 1);
|
||||||
|
rc = excluded_file_name_p (seg, f, filename);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (rc != excluded)
|
||||||
|
{
|
||||||
|
excluded = rc;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
free (filename);
|
||||||
|
return excluded;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Append to EX the exclusion PATTERN with OPTIONS. */
|
/* Append to EX the exclusion PATTERN with OPTIONS. */
|
||||||
@ -192,15 +440,46 @@ excluded_file_name (struct exclude const *ex, char const *f)
|
|||||||
void
|
void
|
||||||
add_exclude (struct exclude *ex, char const *pattern, int options)
|
add_exclude (struct exclude *ex, char const *pattern, int options)
|
||||||
{
|
{
|
||||||
struct patopts *patopts;
|
struct exclude_segment *seg;
|
||||||
|
|
||||||
if (ex->exclude_count == ex->exclude_alloc)
|
if ((options & EXCLUDE_WILDCARDS)
|
||||||
ex->exclude = x2nrealloc (ex->exclude, &ex->exclude_alloc,
|
&& fnmatch_pattern_has_wildcards (pattern, options))
|
||||||
sizeof *ex->exclude);
|
{
|
||||||
|
struct exclude_pattern *pat;
|
||||||
|
struct patopts *patopts;
|
||||||
|
|
||||||
patopts = &ex->exclude[ex->exclude_count++];
|
if (ex->tail && ex->tail->type == exclude_pattern
|
||||||
patopts->pattern = pattern;
|
&& ((ex->tail->options & EXCLUDE_INCLUDE) ==
|
||||||
patopts->options = options;
|
(options & EXCLUDE_INCLUDE)))
|
||||||
|
seg = ex->tail;
|
||||||
|
else
|
||||||
|
seg = new_exclude_segment (ex, exclude_pattern, options);
|
||||||
|
|
||||||
|
pat = &seg->v.pat;
|
||||||
|
if (pat->exclude_count == pat->exclude_alloc)
|
||||||
|
pat->exclude = x2nrealloc (pat->exclude, &pat->exclude_alloc,
|
||||||
|
sizeof *pat->exclude);
|
||||||
|
patopts = &pat->exclude[pat->exclude_count++];
|
||||||
|
patopts->pattern = pattern;
|
||||||
|
patopts->options = options;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
char *str, *p;
|
||||||
|
#define EXCLUDE_HASH_FLAGS (EXCLUDE_INCLUDE|EXCLUDE_ANCHORED|\
|
||||||
|
FNM_LEADING_DIR|FNM_CASEFOLD)
|
||||||
|
if (ex->tail && ex->tail->type == exclude_hash
|
||||||
|
&& ((ex->tail->options & EXCLUDE_HASH_FLAGS) ==
|
||||||
|
(options & EXCLUDE_HASH_FLAGS)))
|
||||||
|
seg = ex->tail;
|
||||||
|
else
|
||||||
|
seg = new_exclude_segment (ex, exclude_hash, options);
|
||||||
|
|
||||||
|
str = xstrdup (pattern);
|
||||||
|
p = hash_insert (seg->v.table, str);
|
||||||
|
if (p != str)
|
||||||
|
free (str);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Use ADD_FUNC to append to EX the patterns in FILE_NAME, each with
|
/* Use ADD_FUNC to append to EX the patterns in FILE_NAME, each with
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* exclude.h -- declarations for excluding file names
|
/* exclude.h -- declarations for excluding file names
|
||||||
|
|
||||||
Copyright (C) 1992, 1993, 1994, 1997, 1999, 2001, 2002, 2003, 2005,
|
Copyright (C) 1992, 1993, 1994, 1997, 1999, 2001, 2002, 2003, 2005,
|
||||||
2006 Free Software Foundation, Inc.
|
2006, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -16,7 +16,8 @@
|
|||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
/* Written by Paul Eggert <eggert@twinsun.com> */
|
/* Written by Paul Eggert <eggert@twinsun.com>
|
||||||
|
and Sergey Poznyakoff <gray@gnu.org> */
|
||||||
|
|
||||||
/* Exclude options, which can be ORed with fnmatch options. */
|
/* Exclude options, which can be ORed with fnmatch options. */
|
||||||
|
|
||||||
@ -33,6 +34,8 @@
|
|||||||
|
|
||||||
struct exclude;
|
struct exclude;
|
||||||
|
|
||||||
|
bool fnmatch_pattern_has_wildcards (const char *, int);
|
||||||
|
|
||||||
struct exclude *new_exclude (void);
|
struct exclude *new_exclude (void);
|
||||||
void free_exclude (struct exclude *);
|
void free_exclude (struct exclude *);
|
||||||
void add_exclude (struct exclude *, char const *, int);
|
void add_exclude (struct exclude *, char const *, int);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* fchdir replacement.
|
/* fchdir replacement.
|
||||||
Copyright (C) 2006-2008 Free Software Foundation, Inc.
|
Copyright (C) 2006-2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -172,13 +172,19 @@ rpl_dup (int oldfd)
|
|||||||
return newfd;
|
return newfd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Our <unistd.h> replacement overrides dup2 twice; be sure to pick
|
||||||
|
the one we want. */
|
||||||
|
#if REPLACE_DUP2
|
||||||
|
# undef dup2
|
||||||
|
# define dup2 rpl_dup2
|
||||||
|
#endif
|
||||||
|
|
||||||
int
|
int
|
||||||
rpl_dup2 (int oldfd, int newfd)
|
rpl_dup2_fchdir (int oldfd, int newfd)
|
||||||
#undef dup2
|
|
||||||
{
|
{
|
||||||
int retval = dup2 (oldfd, newfd);
|
int retval = dup2 (oldfd, newfd);
|
||||||
|
|
||||||
if (retval >= 0 && oldfd >= 0 && newfd >= 0 && newfd != oldfd)
|
if (retval >= 0 && newfd != oldfd)
|
||||||
{
|
{
|
||||||
ensure_dirs_slot (newfd);
|
ensure_dirs_slot (newfd);
|
||||||
if (newfd < dirs_allocated)
|
if (newfd < dirs_allocated)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Invoke open, but return either a desired file descriptor or -1.
|
/* Invoke open, but return either a desired file descriptor or -1.
|
||||||
|
|
||||||
Copyright (C) 2005, 2006, 2008 Free Software Foundation, Inc.
|
Copyright (C) 2005, 2006, 2008-2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Invoke open, but return either a desired file descriptor or -1.
|
/* Invoke open, but return either a desired file descriptor or -1.
|
||||||
|
|
||||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
Copyright (C) 2005, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "freading.h"
|
#include "freading.h"
|
||||||
#include "fpurge.h"
|
|
||||||
|
|
||||||
#include "stdio-impl.h"
|
#include "stdio-impl.h"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* -*- buffer-read-only: t -*- vi: set ro: */
|
/* -*- buffer-read-only: t -*- vi: set ro: */
|
||||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||||
#line 1
|
#line 1
|
||||||
/* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007
|
/* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2009
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
@ -92,7 +92,7 @@ extern int fnmatch (const char *pattern, const char *string, int flags);
|
|||||||
# define isblank(c) ((c) == ' ' || (c) == '\t')
|
# define isblank(c) ((c) == ' ' || (c) == '\t')
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# define STREQ(s1, s2) ((strcmp (s1, s2) == 0))
|
# define STREQ(s1, s2) (strcmp (s1, s2) == 0)
|
||||||
|
|
||||||
# if defined _LIBC || WIDE_CHAR_SUPPORT
|
# if defined _LIBC || WIDE_CHAR_SUPPORT
|
||||||
/* The GNU C library provides support for user-defined character classes
|
/* The GNU C library provides support for user-defined character classes
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
/* Specification. */
|
/* Specification. */
|
||||||
#include "fpurge.h"
|
#include <stdio.h>
|
||||||
|
|
||||||
#if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >= 7 */
|
#if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >= 7 */
|
||||||
# include <stdio_ext.h>
|
# include <stdio_ext.h>
|
||||||
@ -35,7 +35,7 @@ fpurge (FILE *fp)
|
|||||||
/* The __fpurge function does not have a return value. */
|
/* The __fpurge function does not have a return value. */
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
#elif HAVE_FPURGE /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X */
|
#elif HAVE_FPURGE /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin 1.7 */
|
||||||
|
|
||||||
/* Call the system's fpurge function. */
|
/* Call the system's fpurge function. */
|
||||||
# undef fpurge
|
# undef fpurge
|
||||||
@ -49,7 +49,7 @@ fpurge (FILE *fp)
|
|||||||
<stdio.h> on BSD systems says:
|
<stdio.h> on BSD systems says:
|
||||||
"The following always hold: if _flags & __SRD, _w is 0."
|
"The following always hold: if _flags & __SRD, _w is 0."
|
||||||
If this invariant is not fulfilled and the stream is read-write but
|
If this invariant is not fulfilled and the stream is read-write but
|
||||||
currently writing, subsequent putc or fputc calls will write directly
|
currently reading, subsequent putc or fputc calls will write directly
|
||||||
into the buffer, although they shouldn't be allowed to. */
|
into the buffer, although they shouldn't be allowed to. */
|
||||||
if ((fp_->_flags & __SRD) != 0)
|
if ((fp_->_flags & __SRD) != 0)
|
||||||
fp_->_w = 0;
|
fp_->_w = 0;
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
/* Flushing buffers of a FILE stream.
|
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 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/>. */
|
|
||||||
|
|
||||||
#ifndef _GL_FPURGE_H
|
|
||||||
#define _GL_FPURGE_H
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Discard all pending buffered I/O on the stream STREAM.
|
|
||||||
STREAM must not be wide-character oriented.
|
|
||||||
Return 0 if successful. Upon error, return -1 and set errno. */
|
|
||||||
#if HAVE_FPURGE
|
|
||||||
# define fpurge rpl_fpurge
|
|
||||||
#endif
|
|
||||||
extern int fpurge (FILE *stream);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _GL_FPURGE_H */
|
|
@ -82,7 +82,7 @@ rpl_fseeko (FILE *fp, off_t offset, int whence)
|
|||||||
&& ((fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) == 0
|
&& ((fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) == 0
|
||||||
|| fp->__bufpos == fp->__bufread))
|
|| fp->__bufpos == fp->__bufread))
|
||||||
#elif defined __QNX__ /* QNX */
|
#elif defined __QNX__ /* QNX */
|
||||||
if ((fp->_Mode & _MWRITE ? fp->_Next == fp->_Buf : fp->_Next == fp->_Rend)
|
if ((fp->_Mode & 0x2000 /* _MWRITE */ ? fp->_Next == fp->_Buf : fp->_Next == fp->_Rend)
|
||||||
&& fp->_Rback == fp->_Back + sizeof (fp->_Back)
|
&& fp->_Rback == fp->_Back + sizeof (fp->_Back)
|
||||||
&& fp->_Rsave == NULL)
|
&& fp->_Rsave == NULL)
|
||||||
#elif defined __MINT__ /* Atari FreeMiNT */
|
#elif defined __MINT__ /* Atari FreeMiNT */
|
||||||
|
@ -932,7 +932,9 @@ next: tmp = p;
|
|||||||
SET(FTS_STOP);
|
SET(FTS_STOP);
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
free_dir(sp);
|
||||||
fts_load(sp, p);
|
fts_load(sp, p);
|
||||||
|
setup_dir(sp);
|
||||||
goto check_for_dir;
|
goto check_for_dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
/* A Bison parser, made by GNU Bison 2.4. */
|
/* A Bison parser, made by GNU Bison 2.4.1. */
|
||||||
|
|
||||||
/* Skeleton implementation for Bison's Yacc-like parsers in C
|
/* Skeleton implementation for Bison's Yacc-like parsers in C
|
||||||
|
|
||||||
@ -46,7 +46,7 @@
|
|||||||
#define YYBISON 1
|
#define YYBISON 1
|
||||||
|
|
||||||
/* Bison version. */
|
/* Bison version. */
|
||||||
#define YYBISON_VERSION "2.4"
|
#define YYBISON_VERSION "2.4.1"
|
||||||
|
|
||||||
/* Skeleton name. */
|
/* Skeleton name. */
|
||||||
#define YYSKELETON_NAME "yacc.c"
|
#define YYSKELETON_NAME "yacc.c"
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||||
#line 1
|
#line 1
|
||||||
/* getdelim.c --- Implementation of replacement getdelim function.
|
/* getdelim.c --- Implementation of replacement getdelim function.
|
||||||
Copyright (C) 1994, 1996, 1997, 1998, 2001, 2003, 2005, 2006, 2007, 2008 Free
|
Copyright (C) 1994, 1996, 1997, 1998, 2001, 2003, 2005, 2006, 2007,
|
||||||
Software Foundation, Inc.
|
2008, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or
|
This program is free software; you can redistribute it and/or
|
||||||
modify it under the terms of the GNU General Public License as
|
modify it under the terms of the GNU General Public License as
|
||||||
@ -27,12 +27,10 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
#include <stdint.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#ifndef SIZE_MAX
|
|
||||||
# define SIZE_MAX ((size_t) -1)
|
|
||||||
#endif
|
|
||||||
#ifndef SSIZE_MAX
|
#ifndef SSIZE_MAX
|
||||||
# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
|
# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* gethostname emulation for SysV and POSIX.1.
|
/* gethostname emulation for SysV and POSIX.1.
|
||||||
|
|
||||||
Copyright (C) 1992, 2003, 2006, 2008 Free Software Foundation, Inc.
|
Copyright (C) 1992, 2003, 2006, 2008, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -15,10 +15,14 @@
|
|||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
/* David MacKenzie <djm@gnu.ai.mit.edu> */
|
/* David MacKenzie <djm@gnu.ai.mit.edu>
|
||||||
|
Windows port by Simon Josefsson <simon@josefsson.org> */
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
|
#if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__)
|
||||||
|
/* Unix API. */
|
||||||
|
|
||||||
/* Specification. */
|
/* Specification. */
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
@ -54,3 +58,47 @@ gethostname (char *name, size_t len)
|
|||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
/* Native Windows API. Which primitive to choose?
|
||||||
|
- gethostname() requires linking with -lws2_32.
|
||||||
|
- GetComputerName() does not return the right kind of hostname.
|
||||||
|
- GetComputerNameEx(ComputerNameDnsHostname,...) returns the right hostname,
|
||||||
|
but it is hard to use portably:
|
||||||
|
- It requires defining _WIN32_WINNT to at least 0x0500.
|
||||||
|
- With mingw, it also requires
|
||||||
|
"#define GetComputerNameEx GetComputerNameExA".
|
||||||
|
- With older versions of mingw, none of the declarations are present at
|
||||||
|
all, not even of the enum value ComputerNameDnsHostname.
|
||||||
|
So we use gethostname(). Linking with -lws2_32 is the least evil. */
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
/* Get winsock2.h. */
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
/* Get INT_MAX. */
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
/* Get set_winsock_errno. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
#include "sockets.h"
|
||||||
|
|
||||||
|
#undef gethostname
|
||||||
|
|
||||||
|
int
|
||||||
|
rpl_gethostname (char *name, size_t len)
|
||||||
|
{
|
||||||
|
int r;
|
||||||
|
|
||||||
|
if (len > INT_MAX)
|
||||||
|
len = INT_MAX;
|
||||||
|
gl_sockets_startup (SOCKETS_1_1);
|
||||||
|
r = gethostname (name, (int) len);
|
||||||
|
if (r < 0)
|
||||||
|
set_winsock_errno ();
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -44,8 +44,8 @@
|
|||||||
otherwise, no load average is available.
|
otherwise, no load average is available.
|
||||||
HAVE_NLIST_H nlist.h is available. NLIST_STRUCT defaults
|
HAVE_NLIST_H nlist.h is available. NLIST_STRUCT defaults
|
||||||
to this.
|
to this.
|
||||||
NLIST_STRUCT Include nlist.h, not a.out.h, and
|
NLIST_STRUCT Include nlist.h, not a.out.h.
|
||||||
the nlist n_name element is a pointer,
|
N_NAME_POINTER The nlist n_name element is a pointer,
|
||||||
not an array.
|
not an array.
|
||||||
HAVE_STRUCT_NLIST_N_UN_N_NAME `n_un.n_name' is member of `struct nlist'.
|
HAVE_STRUCT_NLIST_N_UN_N_NAME `n_un.n_name' is member of `struct nlist'.
|
||||||
LINUX_LDAV_FILE [__linux__, __CYGWIN__]: File containing
|
LINUX_LDAV_FILE [__linux__, __CYGWIN__]: File containing
|
||||||
@ -900,7 +900,7 @@ getloadavg (double loadavg[], int nelem)
|
|||||||
if (offset == 0)
|
if (offset == 0)
|
||||||
{
|
{
|
||||||
# ifndef sgi
|
# ifndef sgi
|
||||||
# ifndef NLIST_STRUCT
|
# if ! defined NLIST_STRUCT || ! defined N_NAME_POINTER
|
||||||
strcpy (nl[0].n_name, LDAV_SYMBOL);
|
strcpy (nl[0].n_name, LDAV_SYMBOL);
|
||||||
strcpy (nl[1].n_name, "");
|
strcpy (nl[1].n_name, "");
|
||||||
# else /* NLIST_STRUCT */
|
# else /* NLIST_STRUCT */
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#line 1
|
#line 1
|
||||||
/* Provide gettimeofday for systems that don't have it or for which it's broken.
|
/* Provide gettimeofday for systems that don't have it or for which it's broken.
|
||||||
|
|
||||||
Copyright (C) 2001, 2002, 2003, 2005, 2006, 2007 Free Software
|
Copyright (C) 2001, 2002, 2003, 2005, 2006, 2007, 2009 Free Software
|
||||||
Foundation, Inc.
|
Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
@ -114,7 +114,7 @@ rpl_gettimeofday (struct timeval *restrict tv, void *restrict tz)
|
|||||||
struct tm save = *localtime_buffer_addr;
|
struct tm save = *localtime_buffer_addr;
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
int result = gettimeofday (tv, tz);
|
int result = gettimeofday (tv, (struct timezone *) tz);
|
||||||
|
|
||||||
# if GETTIMEOFDAY_CLOBBERS_LOCALTIME
|
# if GETTIMEOFDAY_CLOBBERS_LOCALTIME
|
||||||
*localtime_buffer_addr = save;
|
*localtime_buffer_addr = save;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* getugroups.c -- return a list of the groups a user is in
|
/* getugroups.c -- return a list of the groups a user is in
|
||||||
|
|
||||||
Copyright (C) 1990, 1991, 1998-2000, 2003-2008 Free Software Foundation.
|
Copyright (C) 1990, 1991, 1998-2000, 2003-2009 Free Software Foundation.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -36,7 +36,7 @@ struct group *getgrent (void);
|
|||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#define STREQ(s1, s2) ((strcmp (s1, s2) == 0))
|
#define STREQ(s1, s2) (strcmp (s1, s2) == 0)
|
||||||
|
|
||||||
/* Like `getgroups', but for user USERNAME instead of for the current
|
/* Like `getgroups', but for user USERNAME instead of for the current
|
||||||
process. Store at most MAXCOUNT group IDs in the GROUPLIST array.
|
process. Store at most MAXCOUNT group IDs in the GROUPLIST array.
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
# the same distribution terms as the rest of that program.
|
# the same distribution terms as the rest of that program.
|
||||||
#
|
#
|
||||||
# Generated by gnulib-tool.
|
# Generated by gnulib-tool.
|
||||||
# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libcoreutils --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=gnulib-tests --aux-dir=build-aux --with-tests --avoid=canonicalize-lgpl --avoid=dummy --avoid=lock --no-libtool --macro-prefix=gl acl alloca announce-gen areadlink-with-size argmatch argv-iter assert atexit autobuild backupfile base64 c-strcase c-strtod c-strtold calloc canon-host canonicalize chown cloexec closein closeout config-h configmake crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 cycle-check d-ino d-type diacrit dirfd dirname dup2 error euidaccess exclude exitfail fchdir fcntl fcntl-safer fdl file-type fileblocks filemode filenamecat filevercmp fnmatch-gnu fopen-safer fprintftime fseeko fsusage ftello ftruncate fts gendocs getdate getgroups gethrxtime getline getloadavg getndelim2 getopt getpagesize getpass-gnu gettext gettime gettimeofday getugroups getusershell git-version-gen gitlog-to-changelog gnu-make gnumakefile gnupload group-member hard-locale hash hash-pjw host-os human idcache ignore-value inttostr inttypes isapipe lchmod lchown lib-ignore linebuffer link-follow long-options lstat maintainer-makefile malloc manywarnings mbrtowc mbsalign mbswidth memcasecmp memchr memcmp memcmp2 memcpy memmove mempcpy memrchr memset mgetgroups mkancesdirs mkdir mkdir-p mkstemp mktime modechange mountlist mpsort obstack pathmax perl physmem posix-shell posixtm posixver priv-set progname propername putenv quote quotearg raise randint randperm readlink readtokens readtokens0 readutmp realloc regex rename rename-dest-slash rmdir rmdir-errno root-dev-ino rpmatch safe-read same save-cwd savedir savewd selinux-at settime sig2str sigaction ssize_t stat-macros stat-time stdbool stdlib-safer stpcpy stpncpy strcspn strdup strftime strpbrk strtod strtoimax strtol strtoumax strverscmp sys_stat timespec tzset unicodeio unistd-safer unlink-busy unlinkdir unlocked-io uptime useless-if-before-free userspec utimecmp utimens vasprintf-posix vc-list-files verify verror version-etc-fsf warnings wcwidth winsz-ioctl winsz-termios write-any-file xalloc xfreopen xgetcwd xgethostname xmemcoll xnanosleep xprintf xprintf-posix xstrtod xstrtoimax xstrtol xstrtold xstrtoumax yesno
|
# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libcoreutils --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=gnulib-tests --aux-dir=build-aux --with-tests --avoid=canonicalize-lgpl --avoid=dummy --avoid=lock --no-libtool --macro-prefix=gl acl alloca announce-gen areadlink-with-size argmatch argv-iter assert atexit autobuild backupfile base64 c-strcase c-strtod c-strtold calloc canon-host canonicalize chown cloexec closein closeout config-h configmake crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 cycle-check d-ino d-type diacrit dirfd dirname dup2 error euidaccess exclude exitfail fchdir fcntl fcntl-safer fdl file-type fileblocks filemode filenamecat filevercmp fnmatch-gnu fopen-safer fprintftime fseeko fsusage ftello ftruncate fts gendocs getdate getgroups gethrxtime getline getloadavg getndelim2 getopt-gnu getpagesize getpass-gnu gettext gettime gettimeofday getugroups getusershell git-version-gen gitlog-to-changelog gnu-make gnumakefile gnupload group-member hard-locale hash hash-pjw host-os human idcache ignore-value inttostr inttypes isapipe lchmod lchown lib-ignore linebuffer link-follow long-options lstat maintainer-makefile malloc manywarnings mbrtowc mbsalign mbswidth memcasecmp memchr memcmp memcmp2 memcpy memmove mempcpy memrchr memset mgetgroups mkancesdirs mkdir mkdir-p mkstemp mktime modechange mountlist mpsort obstack pathmax perl physmem posix-shell posixtm posixver priv-set progname propername putenv quote quotearg raise randint randperm readlink readtokens readtokens0 readutmp realloc regex rename rename-dest-slash rmdir rmdir-errno root-dev-ino rpmatch safe-read same save-cwd savedir savewd selinux-at settime sig2str sigaction ssize_t stat-macros stat-time stdbool stdlib-safer stpcpy stpncpy strcspn strdup strftime strpbrk strtod strtoimax strtol strtoumax strverscmp sys_stat timespec tzset unicodeio unistd-safer unlink-busy unlinkdir unlocked-io update-copyright uptime useless-if-before-free userspec utimecmp utimens vasprintf-posix vc-list-files verify verror version-etc-fsf warnings wcwidth winsz-ioctl winsz-termios write-any-file xalloc xfreopen xgetcwd xgethostname xmemcoll xnanosleep xprintf xprintf-posix xstrtod xstrtoimax xstrtol xstrtold xstrtoumax yesno
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects
|
AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects
|
||||||
|
|
||||||
@ -46,6 +46,13 @@ EXTRA_libcoreutils_a_SOURCES += acl_entries.c
|
|||||||
|
|
||||||
## end gnulib module acl
|
## end gnulib module acl
|
||||||
|
|
||||||
|
## begin gnulib module alignof
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += alignof.h
|
||||||
|
|
||||||
|
## end gnulib module alignof
|
||||||
|
|
||||||
## begin gnulib module alloca
|
## begin gnulib module alloca
|
||||||
|
|
||||||
|
|
||||||
@ -157,6 +164,12 @@ libcoreutils_a_SOURCES += base64.h base64.c
|
|||||||
|
|
||||||
## end gnulib module base64
|
## end gnulib module base64
|
||||||
|
|
||||||
|
## begin gnulib module bitrotate
|
||||||
|
|
||||||
|
libcoreutils_a_SOURCES += bitrotate.h
|
||||||
|
|
||||||
|
## end gnulib module bitrotate
|
||||||
|
|
||||||
## begin gnulib module btowc
|
## begin gnulib module btowc
|
||||||
|
|
||||||
|
|
||||||
@ -728,9 +741,10 @@ EXTRA_DIST += fpucw.h
|
|||||||
|
|
||||||
## begin gnulib module fpurge
|
## begin gnulib module fpurge
|
||||||
|
|
||||||
libcoreutils_a_SOURCES += fpurge.c
|
|
||||||
|
|
||||||
EXTRA_DIST += fpurge.h stdio-impl.h
|
EXTRA_DIST += fpurge.c stdio-impl.h
|
||||||
|
|
||||||
|
EXTRA_libcoreutils_a_SOURCES += fpurge.c
|
||||||
|
|
||||||
## end gnulib module fpurge
|
## end gnulib module fpurge
|
||||||
|
|
||||||
@ -906,7 +920,7 @@ EXTRA_libcoreutils_a_SOURCES += getgroups.c
|
|||||||
## begin gnulib module gethostname
|
## begin gnulib module gethostname
|
||||||
|
|
||||||
|
|
||||||
EXTRA_DIST += gethostname.c
|
EXTRA_DIST += gethostname.c w32sock.h
|
||||||
|
|
||||||
EXTRA_libcoreutils_a_SOURCES += gethostname.c
|
EXTRA_libcoreutils_a_SOURCES += gethostname.c
|
||||||
|
|
||||||
@ -948,7 +962,7 @@ EXTRA_libcoreutils_a_SOURCES += getndelim2.c
|
|||||||
|
|
||||||
## end gnulib module getndelim2
|
## end gnulib module getndelim2
|
||||||
|
|
||||||
## begin gnulib module getopt
|
## begin gnulib module getopt-posix
|
||||||
|
|
||||||
BUILT_SOURCES += $(GETOPT_H)
|
BUILT_SOURCES += $(GETOPT_H)
|
||||||
|
|
||||||
@ -965,7 +979,7 @@ EXTRA_DIST += getopt.c getopt.in.h getopt1.c getopt_int.h
|
|||||||
|
|
||||||
EXTRA_libcoreutils_a_SOURCES += getopt.c getopt1.c
|
EXTRA_libcoreutils_a_SOURCES += getopt.c getopt1.c
|
||||||
|
|
||||||
## end gnulib module getopt
|
## end gnulib module getopt-posix
|
||||||
|
|
||||||
## begin gnulib module getpagesize
|
## begin gnulib module getpagesize
|
||||||
|
|
||||||
@ -1486,7 +1500,7 @@ math.h: math.in.h
|
|||||||
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
|
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
|
||||||
sed -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \
|
sed -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \
|
||||||
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
||||||
-e 's|@''NEXT_MATH_H''@|$(NEXT_MATH_H)|g' \
|
-e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \
|
||||||
-e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \
|
-e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \
|
||||||
-e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \
|
-e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \
|
||||||
-e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \
|
-e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \
|
||||||
@ -1652,7 +1666,7 @@ EXTRA_libcoreutils_a_SOURCES += memcasecmp.c
|
|||||||
## begin gnulib module memchr
|
## begin gnulib module memchr
|
||||||
|
|
||||||
|
|
||||||
EXTRA_DIST += memchr.c
|
EXTRA_DIST += memchr.c memchr.valgrind
|
||||||
|
|
||||||
EXTRA_libcoreutils_a_SOURCES += memchr.c
|
EXTRA_libcoreutils_a_SOURCES += memchr.c
|
||||||
|
|
||||||
@ -1662,6 +1676,8 @@ EXTRA_libcoreutils_a_SOURCES += memchr.c
|
|||||||
|
|
||||||
libcoreutils_a_SOURCES += memchr2.h memchr2.c
|
libcoreutils_a_SOURCES += memchr2.h memchr2.c
|
||||||
|
|
||||||
|
EXTRA_DIST += memchr2.valgrind
|
||||||
|
|
||||||
## end gnulib module memchr2
|
## end gnulib module memchr2
|
||||||
|
|
||||||
## begin gnulib module memcmp
|
## begin gnulib module memcmp
|
||||||
@ -2357,6 +2373,14 @@ EXTRA_libcoreutils_a_SOURCES += snprintf.c
|
|||||||
|
|
||||||
## end gnulib module snprintf
|
## end gnulib module snprintf
|
||||||
|
|
||||||
|
## begin gnulib module sockets
|
||||||
|
|
||||||
|
libcoreutils_a_SOURCES += sockets.h sockets.c
|
||||||
|
|
||||||
|
EXTRA_DIST += w32sock.h
|
||||||
|
|
||||||
|
## end gnulib module sockets
|
||||||
|
|
||||||
## begin gnulib module stat-macros
|
## begin gnulib module stat-macros
|
||||||
|
|
||||||
|
|
||||||
@ -2410,6 +2434,29 @@ EXTRA_DIST += stdbool.in.h
|
|||||||
|
|
||||||
## end gnulib module stdbool
|
## end gnulib module stdbool
|
||||||
|
|
||||||
|
## begin gnulib module stddef
|
||||||
|
|
||||||
|
BUILT_SOURCES += $(STDDEF_H)
|
||||||
|
|
||||||
|
# We need the following in order to create <stddef.h> when the system
|
||||||
|
# doesn't have one that works with the given compiler.
|
||||||
|
stddef.h: stddef.in.h
|
||||||
|
rm -f $@-t $@
|
||||||
|
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
|
||||||
|
sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
|
||||||
|
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
||||||
|
-e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
|
||||||
|
-e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
|
||||||
|
-e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
|
||||||
|
< $(srcdir)/stddef.in.h; \
|
||||||
|
} > $@-t
|
||||||
|
mv $@-t $@
|
||||||
|
MOSTLYCLEANFILES += stddef.h stddef.h-t
|
||||||
|
|
||||||
|
EXTRA_DIST += stddef.in.h
|
||||||
|
|
||||||
|
## end gnulib module stddef
|
||||||
|
|
||||||
## begin gnulib module stdint
|
## begin gnulib module stdint
|
||||||
|
|
||||||
BUILT_SOURCES += $(STDINT_H)
|
BUILT_SOURCES += $(STDINT_H)
|
||||||
@ -2488,6 +2535,7 @@ stdio.h: stdio.in.h
|
|||||||
-e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \
|
-e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \
|
||||||
-e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \
|
-e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \
|
||||||
-e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \
|
-e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \
|
||||||
|
-e 's|@''GNULIB_FPURGE''@|$(GNULIB_FPURGE)|g' \
|
||||||
-e 's|@''GNULIB_FCLOSE''@|$(GNULIB_FCLOSE)|g' \
|
-e 's|@''GNULIB_FCLOSE''@|$(GNULIB_FCLOSE)|g' \
|
||||||
-e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \
|
-e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \
|
||||||
-e 's|@''GNULIB_PUTC''@|$(GNULIB_PUTC)|g' \
|
-e 's|@''GNULIB_PUTC''@|$(GNULIB_PUTC)|g' \
|
||||||
@ -2525,6 +2573,8 @@ stdio.h: stdio.in.h
|
|||||||
-e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \
|
-e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \
|
||||||
-e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \
|
-e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \
|
||||||
-e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \
|
-e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \
|
||||||
|
-e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \
|
||||||
|
-e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \
|
||||||
-e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \
|
-e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \
|
||||||
-e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \
|
-e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \
|
||||||
-e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \
|
-e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \
|
||||||
@ -2714,6 +2764,7 @@ string.h: string.in.h
|
|||||||
-e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
|
-e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
|
||||||
-e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
|
-e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
|
||||||
-e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
|
-e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
|
||||||
|
-e 's|@''GNULIB_MEMCHR''@|$(GNULIB_MEMCHR)|g' \
|
||||||
-e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
|
-e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
|
||||||
-e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
|
-e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
|
||||||
-e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
|
-e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
|
||||||
@ -2750,6 +2801,7 @@ string.h: string.in.h
|
|||||||
-e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \
|
-e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \
|
||||||
-e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
|
-e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
|
||||||
-e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
|
-e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
|
||||||
|
-e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
|
||||||
-e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
|
-e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
|
||||||
-e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
|
-e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
|
||||||
-e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
|
-e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
|
||||||
@ -2799,6 +2851,15 @@ EXTRA_libcoreutils_a_SOURCES += strpbrk.c
|
|||||||
|
|
||||||
## end gnulib module strpbrk
|
## end gnulib module strpbrk
|
||||||
|
|
||||||
|
## begin gnulib module strstr-simple
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += str-two-way.h strstr.c
|
||||||
|
|
||||||
|
EXTRA_libcoreutils_a_SOURCES += strstr.c
|
||||||
|
|
||||||
|
## end gnulib module strstr-simple
|
||||||
|
|
||||||
## begin gnulib module strtod
|
## begin gnulib module strtod
|
||||||
|
|
||||||
LIBS += $(POW_LIB)
|
LIBS += $(POW_LIB)
|
||||||
@ -2930,6 +2991,8 @@ sys/socket.h: sys_socket.in.h
|
|||||||
-e 's|@''GNULIB_SHUTDOWN''@|$(GNULIB_SHUTDOWN)|g' \
|
-e 's|@''GNULIB_SHUTDOWN''@|$(GNULIB_SHUTDOWN)|g' \
|
||||||
-e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
|
-e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
|
||||||
-e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
|
-e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
|
||||||
|
-e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \
|
||||||
|
-e 's|@''HAVE_SA_FAMILY_T''@|$(HAVE_SA_FAMILY_T)|g' \
|
||||||
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
|
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
|
||||||
< $(srcdir)/sys_socket.in.h; \
|
< $(srcdir)/sys_socket.in.h; \
|
||||||
} > $@-t
|
} > $@-t
|
||||||
@ -3018,6 +3081,7 @@ time.h: time.in.h
|
|||||||
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
||||||
-e 's|@NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \
|
-e 's|@NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \
|
||||||
-e 's|@REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \
|
-e 's|@REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \
|
||||||
|
-e 's|@REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \
|
||||||
-e 's|@REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
|
-e 's|@REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
|
||||||
-e 's|@REPLACE_STRPTIME''@|$(REPLACE_STRPTIME)|g' \
|
-e 's|@REPLACE_STRPTIME''@|$(REPLACE_STRPTIME)|g' \
|
||||||
-e 's|@REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \
|
-e 's|@REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \
|
||||||
@ -3101,6 +3165,7 @@ unistd.h: unistd.in.h
|
|||||||
-e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
|
-e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
|
||||||
-e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
|
-e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
|
||||||
-e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
|
-e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
|
||||||
|
-e 's|@''GNULIB_UNISTD_H_GETOPT''@|$(GNULIB_UNISTD_H_GETOPT)|g' \
|
||||||
-e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \
|
-e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \
|
||||||
-e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \
|
-e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \
|
||||||
-e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
|
-e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
|
||||||
@ -3121,6 +3186,7 @@ unistd.h: unistd.in.h
|
|||||||
-e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
|
-e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
|
||||||
-e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
|
-e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
|
||||||
-e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
|
-e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
|
||||||
|
-e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
|
||||||
-e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
|
-e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
|
||||||
-e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
|
-e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
|
||||||
-e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
|
-e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
|
||||||
@ -3128,6 +3194,7 @@ unistd.h: unistd.in.h
|
|||||||
-e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
|
-e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
|
||||||
-e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \
|
-e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \
|
||||||
-e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \
|
-e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \
|
||||||
|
-e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \
|
||||||
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
|
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
|
||||||
< $(srcdir)/unistd.in.h; \
|
< $(srcdir)/unistd.in.h; \
|
||||||
} > $@-t
|
} > $@-t
|
||||||
@ -3207,6 +3274,13 @@ EXTRA_libcoreutils_a_SOURCES += unsetenv.c
|
|||||||
|
|
||||||
## end gnulib module unsetenv
|
## end gnulib module unsetenv
|
||||||
|
|
||||||
|
## begin gnulib module update-copyright
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += $(top_srcdir)/build-aux/update-copyright
|
||||||
|
|
||||||
|
## end gnulib module update-copyright
|
||||||
|
|
||||||
## begin gnulib module useless-if-before-free
|
## begin gnulib module useless-if-before-free
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* hash - hashing table processing.
|
/* hash - hashing table processing.
|
||||||
|
|
||||||
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007 Free
|
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007,
|
||||||
Software Foundation, Inc.
|
2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Written by Jim Meyering, 1992.
|
Written by Jim Meyering, 1992.
|
||||||
|
|
||||||
@ -26,9 +26,11 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include "hash.h"
|
#include "hash.h"
|
||||||
|
|
||||||
|
#include "bitrotate.h"
|
||||||
#include "xalloc.h"
|
#include "xalloc.h"
|
||||||
|
|
||||||
#include <limits.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
@ -42,9 +44,11 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef SIZE_MAX
|
struct hash_entry
|
||||||
# define SIZE_MAX ((size_t) -1)
|
{
|
||||||
#endif
|
void *data;
|
||||||
|
struct hash_entry *next;
|
||||||
|
};
|
||||||
|
|
||||||
struct hash_table
|
struct hash_table
|
||||||
{
|
{
|
||||||
@ -57,7 +61,7 @@ struct hash_table
|
|||||||
size_t n_buckets_used;
|
size_t n_buckets_used;
|
||||||
size_t n_entries;
|
size_t n_entries;
|
||||||
|
|
||||||
/* Tuning arguments, kept in a physicaly separate structure. */
|
/* Tuning arguments, kept in a physically separate structure. */
|
||||||
const Hash_tuning *tuning;
|
const Hash_tuning *tuning;
|
||||||
|
|
||||||
/* Three functions are given to `hash_initialize', see the documentation
|
/* Three functions are given to `hash_initialize', see the documentation
|
||||||
@ -81,7 +85,7 @@ struct hash_table
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* A hash table contains many internal entries, each holding a pointer to
|
/* A hash table contains many internal entries, each holding a pointer to
|
||||||
some user provided data (also called a user entry). An entry indistinctly
|
some user-provided data (also called a user entry). An entry indistinctly
|
||||||
refers to both the internal entry and its associated user entry. A user
|
refers to both the internal entry and its associated user entry. A user
|
||||||
entry contents may be hashed by a randomization function (the hashing
|
entry contents may be hashed by a randomization function (the hashing
|
||||||
function, or just `hasher' for short) into a number (or `slot') between 0
|
function, or just `hasher' for short) into a number (or `slot') between 0
|
||||||
@ -257,7 +261,7 @@ hash_lookup (const Hash_table *table, const void *entry)
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
for (cursor = bucket; cursor; cursor = cursor->next)
|
for (cursor = bucket; cursor; cursor = cursor->next)
|
||||||
if (table->comparator (entry, cursor->data))
|
if (entry == cursor->data || table->comparator (entry, cursor->data))
|
||||||
return cursor->data;
|
return cursor->data;
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -268,7 +272,9 @@ hash_lookup (const Hash_table *table, const void *entry)
|
|||||||
/* The functions in this page traverse the hash table and process the
|
/* The functions in this page traverse the hash table and process the
|
||||||
contained entries. For the traversal to work properly, the hash table
|
contained entries. For the traversal to work properly, the hash table
|
||||||
should not be resized nor modified while any particular entry is being
|
should not be resized nor modified while any particular entry is being
|
||||||
processed. In particular, entries should not be added or removed. */
|
processed. In particular, entries should not be added, and an entry
|
||||||
|
may be removed only if there is no shrink threshold and the entry being
|
||||||
|
removed has already been passed to hash_get_next. */
|
||||||
|
|
||||||
/* Return the first data in the table, or NULL if the table is empty. */
|
/* Return the first data in the table, or NULL if the table is empty. */
|
||||||
|
|
||||||
@ -365,7 +371,7 @@ hash_do_for_each (const Hash_table *table, Hash_processor processor,
|
|||||||
{
|
{
|
||||||
for (cursor = bucket; cursor; cursor = cursor->next)
|
for (cursor = bucket; cursor; cursor = cursor->next)
|
||||||
{
|
{
|
||||||
if (!(*processor) (cursor->data, processor_data))
|
if (! processor (cursor->data, processor_data))
|
||||||
return counter;
|
return counter;
|
||||||
counter++;
|
counter++;
|
||||||
}
|
}
|
||||||
@ -391,10 +397,8 @@ hash_do_for_each (const Hash_table *table, Hash_processor processor,
|
|||||||
size_t
|
size_t
|
||||||
hash_string (const char *string, size_t n_buckets)
|
hash_string (const char *string, size_t n_buckets)
|
||||||
{
|
{
|
||||||
# define ROTATE_LEFT(Value, Shift) \
|
|
||||||
((Value) << (Shift) | (Value) >> ((sizeof (size_t) * CHAR_BIT) - (Shift)))
|
|
||||||
# define HASH_ONE_CHAR(Value, Byte) \
|
# define HASH_ONE_CHAR(Value, Byte) \
|
||||||
((Byte) + ROTATE_LEFT (Value, 7))
|
((Byte) + rotl_sz (Value, 7))
|
||||||
|
|
||||||
size_t value = 0;
|
size_t value = 0;
|
||||||
unsigned char ch;
|
unsigned char ch;
|
||||||
@ -403,7 +407,6 @@ hash_string (const char *string, size_t n_buckets)
|
|||||||
value = HASH_ONE_CHAR (value, ch);
|
value = HASH_ONE_CHAR (value, ch);
|
||||||
return value % n_buckets;
|
return value % n_buckets;
|
||||||
|
|
||||||
# undef ROTATE_LEFT
|
|
||||||
# undef HASH_ONE_CHAR
|
# undef HASH_ONE_CHAR
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -459,7 +462,7 @@ next_prime (size_t candidate)
|
|||||||
/* Make it definitely odd. */
|
/* Make it definitely odd. */
|
||||||
candidate |= 1;
|
candidate |= 1;
|
||||||
|
|
||||||
while (!is_prime (candidate))
|
while (SIZE_MAX != candidate && !is_prime (candidate))
|
||||||
candidate += 2;
|
candidate += 2;
|
||||||
|
|
||||||
return candidate;
|
return candidate;
|
||||||
@ -471,6 +474,27 @@ hash_reset_tuning (Hash_tuning *tuning)
|
|||||||
*tuning = default_tuning;
|
*tuning = default_tuning;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If the user passes a NULL hasher, we hash the raw pointer. */
|
||||||
|
static size_t
|
||||||
|
raw_hasher (const void *data, size_t n)
|
||||||
|
{
|
||||||
|
/* When hashing unique pointers, it is often the case that they were
|
||||||
|
generated by malloc and thus have the property that the low-order
|
||||||
|
bits are 0. As this tends to give poorer performance with small
|
||||||
|
tables, we rotate the pointer value before performing division,
|
||||||
|
in an attempt to improve hash quality. */
|
||||||
|
size_t val = rotr_sz ((size_t) data, 3);
|
||||||
|
return val % n;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If the user passes a NULL comparator, we use pointer comparison. */
|
||||||
|
static bool
|
||||||
|
raw_comparator (const void *a, const void *b)
|
||||||
|
{
|
||||||
|
return a == b;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* For the given hash TABLE, check the user supplied tuning structure for
|
/* For the given hash TABLE, check the user supplied tuning structure for
|
||||||
reasonable values, and return true if there is no gross error with it.
|
reasonable values, and return true if there is no gross error with it.
|
||||||
Otherwise, definitively reset the TUNING field to some acceptable default
|
Otherwise, definitively reset the TUNING field to some acceptable default
|
||||||
@ -481,12 +505,15 @@ static bool
|
|||||||
check_tuning (Hash_table *table)
|
check_tuning (Hash_table *table)
|
||||||
{
|
{
|
||||||
const Hash_tuning *tuning = table->tuning;
|
const Hash_tuning *tuning = table->tuning;
|
||||||
|
if (tuning == &default_tuning)
|
||||||
|
return true;
|
||||||
|
|
||||||
/* Be a bit stricter than mathematics would require, so that
|
/* Be a bit stricter than mathematics would require, so that
|
||||||
rounding errors in size calculations do not cause allocations to
|
rounding errors in size calculations do not cause allocations to
|
||||||
fail to grow or shrink as they should. The smallest allocation
|
fail to grow or shrink as they should. The smallest allocation
|
||||||
is 11 (due to next_prime's algorithm), so an epsilon of 0.1
|
is 11 (due to next_prime's algorithm), so an epsilon of 0.1
|
||||||
should be good enough. */
|
should be good enough. */
|
||||||
|
{
|
||||||
float epsilon = 0.1f;
|
float epsilon = 0.1f;
|
||||||
|
|
||||||
if (epsilon < tuning->growth_threshold
|
if (epsilon < tuning->growth_threshold
|
||||||
@ -497,11 +524,32 @@ check_tuning (Hash_table *table)
|
|||||||
&& tuning->shrink_factor <= 1
|
&& tuning->shrink_factor <= 1
|
||||||
&& tuning->shrink_threshold + epsilon < tuning->growth_threshold)
|
&& tuning->shrink_threshold + epsilon < tuning->growth_threshold)
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
table->tuning = &default_tuning;
|
table->tuning = &default_tuning;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Compute the size of the bucket array for the given CANDIDATE and
|
||||||
|
TUNING, or return 0 if there is no possible way to allocate that
|
||||||
|
many entries. */
|
||||||
|
|
||||||
|
static size_t
|
||||||
|
compute_bucket_size (size_t candidate, const Hash_tuning *tuning)
|
||||||
|
{
|
||||||
|
if (!tuning->is_n_buckets)
|
||||||
|
{
|
||||||
|
float new_candidate = candidate / tuning->growth_threshold;
|
||||||
|
if (SIZE_MAX <= new_candidate)
|
||||||
|
return 0;
|
||||||
|
candidate = new_candidate;
|
||||||
|
}
|
||||||
|
candidate = next_prime (candidate);
|
||||||
|
if (xalloc_oversized (candidate, sizeof (struct hash_entry *)))
|
||||||
|
return 0;
|
||||||
|
return candidate;
|
||||||
|
}
|
||||||
|
|
||||||
/* Allocate and return a new hash table, or NULL upon failure. The initial
|
/* Allocate and return a new hash table, or NULL upon failure. The initial
|
||||||
number of buckets is automatically selected so as to _guarantee_ that you
|
number of buckets is automatically selected so as to _guarantee_ that you
|
||||||
may insert at least CANDIDATE different user entries before any growth of
|
may insert at least CANDIDATE different user entries before any growth of
|
||||||
@ -513,17 +561,20 @@ check_tuning (Hash_table *table)
|
|||||||
|
|
||||||
TUNING points to a structure of user-supplied values, in case some fine
|
TUNING points to a structure of user-supplied values, in case some fine
|
||||||
tuning is wanted over the default behavior of the hasher. If TUNING is
|
tuning is wanted over the default behavior of the hasher. If TUNING is
|
||||||
NULL, the default tuning parameters are used instead.
|
NULL, the default tuning parameters are used instead. If TUNING is
|
||||||
|
provided but the values requested are out of bounds or might cause
|
||||||
|
rounding errors, return NULL.
|
||||||
|
|
||||||
The user-supplied HASHER function should be provided. It accepts two
|
The user-supplied HASHER function, when not NULL, accepts two
|
||||||
arguments ENTRY and TABLE_SIZE. It computes, by hashing ENTRY contents, a
|
arguments ENTRY and TABLE_SIZE. It computes, by hashing ENTRY contents, a
|
||||||
slot number for that entry which should be in the range 0..TABLE_SIZE-1.
|
slot number for that entry which should be in the range 0..TABLE_SIZE-1.
|
||||||
This slot number is then returned.
|
This slot number is then returned.
|
||||||
|
|
||||||
The user-supplied COMPARATOR function should be provided. It accepts two
|
The user-supplied COMPARATOR function, when not NULL, accepts two
|
||||||
arguments pointing to user data, it then returns true for a pair of entries
|
arguments pointing to user data, it then returns true for a pair of entries
|
||||||
that compare equal, or false otherwise. This function is internally called
|
that compare equal, or false otherwise. This function is internally called
|
||||||
on entries which are already known to hash to the same bucket index.
|
on entries which are already known to hash to the same bucket index,
|
||||||
|
but which are distinct pointers.
|
||||||
|
|
||||||
The user-supplied DATA_FREER function, when not NULL, may be later called
|
The user-supplied DATA_FREER function, when not NULL, may be later called
|
||||||
with the user data as an argument, just before the entry containing the
|
with the user data as an argument, just before the entry containing the
|
||||||
@ -540,8 +591,10 @@ hash_initialize (size_t candidate, const Hash_tuning *tuning,
|
|||||||
{
|
{
|
||||||
Hash_table *table;
|
Hash_table *table;
|
||||||
|
|
||||||
if (hasher == NULL || comparator == NULL)
|
if (hasher == NULL)
|
||||||
return NULL;
|
hasher = raw_hasher;
|
||||||
|
if (comparator == NULL)
|
||||||
|
comparator = raw_comparator;
|
||||||
|
|
||||||
table = malloc (sizeof *table);
|
table = malloc (sizeof *table);
|
||||||
if (table == NULL)
|
if (table == NULL)
|
||||||
@ -560,18 +613,8 @@ hash_initialize (size_t candidate, const Hash_tuning *tuning,
|
|||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!tuning->is_n_buckets)
|
table->n_buckets = compute_bucket_size (candidate, tuning);
|
||||||
{
|
if (!table->n_buckets)
|
||||||
float new_candidate = candidate / tuning->growth_threshold;
|
|
||||||
if (SIZE_MAX <= new_candidate)
|
|
||||||
goto fail;
|
|
||||||
candidate = new_candidate;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (xalloc_oversized (candidate, sizeof *table->bucket))
|
|
||||||
goto fail;
|
|
||||||
table->n_buckets = next_prime (candidate);
|
|
||||||
if (xalloc_oversized (table->n_buckets, sizeof *table->bucket))
|
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
table->bucket = calloc (table->n_buckets, sizeof *table->bucket);
|
table->bucket = calloc (table->n_buckets, sizeof *table->bucket);
|
||||||
@ -616,7 +659,7 @@ hash_clear (Hash_table *table)
|
|||||||
for (cursor = bucket->next; cursor; cursor = next)
|
for (cursor = bucket->next; cursor; cursor = next)
|
||||||
{
|
{
|
||||||
if (table->data_freer)
|
if (table->data_freer)
|
||||||
(*table->data_freer) (cursor->data);
|
table->data_freer (cursor->data);
|
||||||
cursor->data = NULL;
|
cursor->data = NULL;
|
||||||
|
|
||||||
next = cursor->next;
|
next = cursor->next;
|
||||||
@ -628,7 +671,7 @@ hash_clear (Hash_table *table)
|
|||||||
|
|
||||||
/* Free the bucket head. */
|
/* Free the bucket head. */
|
||||||
if (table->data_freer)
|
if (table->data_freer)
|
||||||
(*table->data_freer) (bucket->data);
|
table->data_freer (bucket->data);
|
||||||
bucket->data = NULL;
|
bucket->data = NULL;
|
||||||
bucket->next = NULL;
|
bucket->next = NULL;
|
||||||
}
|
}
|
||||||
@ -658,9 +701,7 @@ hash_free (Hash_table *table)
|
|||||||
if (bucket->data)
|
if (bucket->data)
|
||||||
{
|
{
|
||||||
for (cursor = bucket; cursor; cursor = cursor->next)
|
for (cursor = bucket; cursor; cursor = cursor->next)
|
||||||
{
|
table->data_freer (cursor->data);
|
||||||
(*table->data_freer) (cursor->data);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -697,7 +738,7 @@ hash_free (Hash_table *table)
|
|||||||
|
|
||||||
/* Insertion and deletion. */
|
/* Insertion and deletion. */
|
||||||
|
|
||||||
/* Get a new hash entry for a bucket overflow, possibly by reclying a
|
/* Get a new hash entry for a bucket overflow, possibly by recycling a
|
||||||
previously freed one. If this is not possible, allocate a new one. */
|
previously freed one. If this is not possible, allocate a new one. */
|
||||||
|
|
||||||
static struct hash_entry *
|
static struct hash_entry *
|
||||||
@ -757,7 +798,7 @@ hash_find_entry (Hash_table *table, const void *entry,
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* See if the entry is the first in the bucket. */
|
/* See if the entry is the first in the bucket. */
|
||||||
if ((*table->comparator) (entry, bucket->data))
|
if (entry == bucket->data || table->comparator (entry, bucket->data))
|
||||||
{
|
{
|
||||||
void *data = bucket->data;
|
void *data = bucket->data;
|
||||||
|
|
||||||
@ -784,7 +825,8 @@ hash_find_entry (Hash_table *table, const void *entry,
|
|||||||
/* Scan the bucket overflow. */
|
/* Scan the bucket overflow. */
|
||||||
for (cursor = bucket; cursor->next; cursor = cursor->next)
|
for (cursor = bucket; cursor->next; cursor = cursor->next)
|
||||||
{
|
{
|
||||||
if ((*table->comparator) (entry, cursor->next->data))
|
if (entry == cursor->next->data
|
||||||
|
|| table->comparator (entry, cursor->next->data))
|
||||||
{
|
{
|
||||||
void *data = cursor->next->data;
|
void *data = cursor->next->data;
|
||||||
|
|
||||||
@ -806,102 +848,185 @@ hash_find_entry (Hash_table *table, const void *entry,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Internal helper, to move entries from SRC to DST. Both tables must
|
||||||
|
share the same free entry list. If SAFE, only move overflow
|
||||||
|
entries, saving bucket heads for later, so that no allocations will
|
||||||
|
occur. Return false if the free entry list is exhausted and an
|
||||||
|
allocation fails. */
|
||||||
|
|
||||||
|
static bool
|
||||||
|
transfer_entries (Hash_table *dst, Hash_table *src, bool safe)
|
||||||
|
{
|
||||||
|
struct hash_entry *bucket;
|
||||||
|
struct hash_entry *cursor;
|
||||||
|
struct hash_entry *next;
|
||||||
|
for (bucket = src->bucket; bucket < src->bucket_limit; bucket++)
|
||||||
|
if (bucket->data)
|
||||||
|
{
|
||||||
|
void *data;
|
||||||
|
struct hash_entry *new_bucket;
|
||||||
|
|
||||||
|
/* Within each bucket, transfer overflow entries first and
|
||||||
|
then the bucket head, to minimize memory pressure. After
|
||||||
|
all, the only time we might allocate is when moving the
|
||||||
|
bucket head, but moving overflow entries first may create
|
||||||
|
free entries that can be recycled by the time we finally
|
||||||
|
get to the bucket head. */
|
||||||
|
for (cursor = bucket->next; cursor; cursor = next)
|
||||||
|
{
|
||||||
|
data = cursor->data;
|
||||||
|
new_bucket = (dst->bucket + dst->hasher (data, dst->n_buckets));
|
||||||
|
|
||||||
|
if (! (new_bucket < dst->bucket_limit))
|
||||||
|
abort ();
|
||||||
|
|
||||||
|
next = cursor->next;
|
||||||
|
|
||||||
|
if (new_bucket->data)
|
||||||
|
{
|
||||||
|
/* Merely relink an existing entry, when moving from a
|
||||||
|
bucket overflow into a bucket overflow. */
|
||||||
|
cursor->next = new_bucket->next;
|
||||||
|
new_bucket->next = cursor;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Free an existing entry, when moving from a bucket
|
||||||
|
overflow into a bucket header. */
|
||||||
|
new_bucket->data = data;
|
||||||
|
dst->n_buckets_used++;
|
||||||
|
free_entry (dst, cursor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* Now move the bucket head. Be sure that if we fail due to
|
||||||
|
allocation failure that the src table is in a consistent
|
||||||
|
state. */
|
||||||
|
data = bucket->data;
|
||||||
|
bucket->next = NULL;
|
||||||
|
if (safe)
|
||||||
|
continue;
|
||||||
|
new_bucket = (dst->bucket + dst->hasher (data, dst->n_buckets));
|
||||||
|
|
||||||
|
if (! (new_bucket < dst->bucket_limit))
|
||||||
|
abort ();
|
||||||
|
|
||||||
|
if (new_bucket->data)
|
||||||
|
{
|
||||||
|
/* Allocate or recycle an entry, when moving from a bucket
|
||||||
|
header into a bucket overflow. */
|
||||||
|
struct hash_entry *new_entry = allocate_entry (dst);
|
||||||
|
|
||||||
|
if (new_entry == NULL)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
new_entry->data = data;
|
||||||
|
new_entry->next = new_bucket->next;
|
||||||
|
new_bucket->next = new_entry;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Move from one bucket header to another. */
|
||||||
|
new_bucket->data = data;
|
||||||
|
dst->n_buckets_used++;
|
||||||
|
}
|
||||||
|
bucket->data = NULL;
|
||||||
|
src->n_buckets_used--;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/* For an already existing hash table, change the number of buckets through
|
/* For an already existing hash table, change the number of buckets through
|
||||||
specifying CANDIDATE. The contents of the hash table are preserved. The
|
specifying CANDIDATE. The contents of the hash table are preserved. The
|
||||||
new number of buckets is automatically selected so as to _guarantee_ that
|
new number of buckets is automatically selected so as to _guarantee_ that
|
||||||
the table may receive at least CANDIDATE different user entries, including
|
the table may receive at least CANDIDATE different user entries, including
|
||||||
those already in the table, before any other growth of the hash table size
|
those already in the table, before any other growth of the hash table size
|
||||||
occurs. If TUNING->IS_N_BUCKETS is true, then CANDIDATE specifies the
|
occurs. If TUNING->IS_N_BUCKETS is true, then CANDIDATE specifies the
|
||||||
exact number of buckets desired. */
|
exact number of buckets desired. Return true iff the rehash succeeded. */
|
||||||
|
|
||||||
bool
|
bool
|
||||||
hash_rehash (Hash_table *table, size_t candidate)
|
hash_rehash (Hash_table *table, size_t candidate)
|
||||||
{
|
{
|
||||||
|
Hash_table storage;
|
||||||
Hash_table *new_table;
|
Hash_table *new_table;
|
||||||
struct hash_entry *bucket;
|
size_t new_size = compute_bucket_size (candidate, table->tuning);
|
||||||
struct hash_entry *cursor;
|
|
||||||
struct hash_entry *next;
|
|
||||||
|
|
||||||
new_table = hash_initialize (candidate, table->tuning, table->hasher,
|
if (!new_size)
|
||||||
table->comparator, table->data_freer);
|
|
||||||
if (new_table == NULL)
|
|
||||||
return false;
|
return false;
|
||||||
|
if (new_size == table->n_buckets)
|
||||||
|
return true;
|
||||||
|
new_table = &storage;
|
||||||
|
new_table->bucket = calloc (new_size, sizeof *new_table->bucket);
|
||||||
|
if (new_table->bucket == NULL)
|
||||||
|
return false;
|
||||||
|
new_table->n_buckets = new_size;
|
||||||
|
new_table->bucket_limit = new_table->bucket + new_size;
|
||||||
|
new_table->n_buckets_used = 0;
|
||||||
|
new_table->n_entries = 0;
|
||||||
|
new_table->tuning = table->tuning;
|
||||||
|
new_table->hasher = table->hasher;
|
||||||
|
new_table->comparator = table->comparator;
|
||||||
|
new_table->data_freer = table->data_freer;
|
||||||
|
|
||||||
|
/* In order for the transfer to successfully complete, we need
|
||||||
|
additional overflow entries when distinct buckets in the old
|
||||||
|
table collide into a common bucket in the new table. The worst
|
||||||
|
case possible is a hasher that gives a good spread with the old
|
||||||
|
size, but returns a constant with the new size; if we were to
|
||||||
|
guarantee table->n_buckets_used-1 free entries in advance, then
|
||||||
|
the transfer would be guaranteed to not allocate memory.
|
||||||
|
However, for large tables, a guarantee of no further allocation
|
||||||
|
introduces a lot of extra memory pressure, all for an unlikely
|
||||||
|
corner case (most rehashes reduce, rather than increase, the
|
||||||
|
number of overflow entries needed). So, we instead ensure that
|
||||||
|
the transfer process can be reversed if we hit a memory
|
||||||
|
allocation failure mid-transfer. */
|
||||||
|
|
||||||
/* Merely reuse the extra old space into the new table. */
|
/* Merely reuse the extra old space into the new table. */
|
||||||
#if USE_OBSTACK
|
#if USE_OBSTACK
|
||||||
obstack_free (&new_table->entry_stack, NULL);
|
|
||||||
new_table->entry_stack = table->entry_stack;
|
new_table->entry_stack = table->entry_stack;
|
||||||
#endif
|
#endif
|
||||||
new_table->free_entry_list = table->free_entry_list;
|
new_table->free_entry_list = table->free_entry_list;
|
||||||
|
|
||||||
for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
|
if (transfer_entries (new_table, table, false))
|
||||||
if (bucket->data)
|
{
|
||||||
for (cursor = bucket; cursor; cursor = next)
|
/* Entries transferred successfully; tie up the loose ends. */
|
||||||
{
|
free (table->bucket);
|
||||||
void *data = cursor->data;
|
table->bucket = new_table->bucket;
|
||||||
struct hash_entry *new_bucket
|
table->bucket_limit = new_table->bucket_limit;
|
||||||
= (new_table->bucket
|
table->n_buckets = new_table->n_buckets;
|
||||||
+ new_table->hasher (data, new_table->n_buckets));
|
table->n_buckets_used = new_table->n_buckets_used;
|
||||||
|
table->free_entry_list = new_table->free_entry_list;
|
||||||
|
/* table->n_entries and table->entry_stack already hold their value. */
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (! (new_bucket < new_table->bucket_limit))
|
/* We've allocated new_table->bucket (and possibly some entries),
|
||||||
abort ();
|
exhausted the free list, and moved some but not all entries into
|
||||||
|
new_table. We must undo the partial move before returning
|
||||||
|
failure. The only way to get into this situation is if new_table
|
||||||
|
uses fewer buckets than the old table, so we will reclaim some
|
||||||
|
free entries as overflows in the new table are put back into
|
||||||
|
distinct buckets in the old table.
|
||||||
|
|
||||||
next = cursor->next;
|
There are some pathological cases where a single pass through the
|
||||||
|
table requires more intermediate overflow entries than using two
|
||||||
if (new_bucket->data)
|
passes. Two passes give worse cache performance and takes
|
||||||
{
|
longer, but at this point, we're already out of memory, so slow
|
||||||
if (cursor == bucket)
|
and safe is better than failure. */
|
||||||
{
|
|
||||||
/* Allocate or recycle an entry, when moving from a bucket
|
|
||||||
header into a bucket overflow. */
|
|
||||||
struct hash_entry *new_entry = allocate_entry (new_table);
|
|
||||||
|
|
||||||
if (new_entry == NULL)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
new_entry->data = data;
|
|
||||||
new_entry->next = new_bucket->next;
|
|
||||||
new_bucket->next = new_entry;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Merely relink an existing entry, when moving from a
|
|
||||||
bucket overflow into a bucket overflow. */
|
|
||||||
cursor->next = new_bucket->next;
|
|
||||||
new_bucket->next = cursor;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Free an existing entry, when moving from a bucket
|
|
||||||
overflow into a bucket header. Also take care of the
|
|
||||||
simple case of moving from a bucket header into a bucket
|
|
||||||
header. */
|
|
||||||
new_bucket->data = data;
|
|
||||||
new_table->n_buckets_used++;
|
|
||||||
if (cursor != bucket)
|
|
||||||
free_entry (new_table, cursor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
free (table->bucket);
|
|
||||||
table->bucket = new_table->bucket;
|
|
||||||
table->bucket_limit = new_table->bucket_limit;
|
|
||||||
table->n_buckets = new_table->n_buckets;
|
|
||||||
table->n_buckets_used = new_table->n_buckets_used;
|
|
||||||
table->free_entry_list = new_table->free_entry_list;
|
table->free_entry_list = new_table->free_entry_list;
|
||||||
|
if (! (transfer_entries (table, new_table, true)
|
||||||
|
&& transfer_entries (table, new_table, false)))
|
||||||
|
abort ();
|
||||||
/* table->n_entries already holds its value. */
|
/* table->n_entries already holds its value. */
|
||||||
#if USE_OBSTACK
|
free (new_table->bucket);
|
||||||
table->entry_stack = new_table->entry_stack;
|
return false;
|
||||||
#endif
|
|
||||||
free (new_table);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If ENTRY matches an entry already in the hash table, return the pointer
|
/* If ENTRY matches an entry already in the hash table, return the pointer
|
||||||
to the entry from the table. Otherwise, insert ENTRY and return ENTRY.
|
to the entry from the table. Otherwise, insert ENTRY and return ENTRY.
|
||||||
Return NULL if the storage required for insertion cannot be allocated. */
|
Return NULL if the storage required for insertion cannot be allocated.
|
||||||
|
This implementation does not support duplicate entries or insertion of
|
||||||
|
NULL. */
|
||||||
|
|
||||||
void *
|
void *
|
||||||
hash_insert (Hash_table *table, const void *entry)
|
hash_insert (Hash_table *table, const void *entry)
|
||||||
@ -917,30 +1042,6 @@ hash_insert (Hash_table *table, const void *entry)
|
|||||||
if ((data = hash_find_entry (table, entry, &bucket, false)) != NULL)
|
if ((data = hash_find_entry (table, entry, &bucket, false)) != NULL)
|
||||||
return data;
|
return data;
|
||||||
|
|
||||||
/* ENTRY is not matched, it should be inserted. */
|
|
||||||
|
|
||||||
if (bucket->data)
|
|
||||||
{
|
|
||||||
struct hash_entry *new_entry = allocate_entry (table);
|
|
||||||
|
|
||||||
if (new_entry == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
/* Add ENTRY in the overflow of the bucket. */
|
|
||||||
|
|
||||||
new_entry->data = (void *) entry;
|
|
||||||
new_entry->next = bucket->next;
|
|
||||||
bucket->next = new_entry;
|
|
||||||
table->n_entries++;
|
|
||||||
return (void *) entry;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add ENTRY right in the bucket head. */
|
|
||||||
|
|
||||||
bucket->data = (void *) entry;
|
|
||||||
table->n_entries++;
|
|
||||||
table->n_buckets_used++;
|
|
||||||
|
|
||||||
/* If the growth threshold of the buckets in use has been reached, increase
|
/* If the growth threshold of the buckets in use has been reached, increase
|
||||||
the table size and rehash. There's no point in checking the number of
|
the table size and rehash. There's no point in checking the number of
|
||||||
entries: if the hashing function is ill-conditioned, rehashing is not
|
entries: if the hashing function is ill-conditioned, rehashing is not
|
||||||
@ -967,10 +1068,38 @@ hash_insert (Hash_table *table, const void *entry)
|
|||||||
|
|
||||||
/* If the rehash fails, arrange to return NULL. */
|
/* If the rehash fails, arrange to return NULL. */
|
||||||
if (!hash_rehash (table, candidate))
|
if (!hash_rehash (table, candidate))
|
||||||
entry = NULL;
|
return NULL;
|
||||||
|
|
||||||
|
/* Update the bucket we are interested in. */
|
||||||
|
if (hash_find_entry (table, entry, &bucket, false) != NULL)
|
||||||
|
abort ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ENTRY is not matched, it should be inserted. */
|
||||||
|
|
||||||
|
if (bucket->data)
|
||||||
|
{
|
||||||
|
struct hash_entry *new_entry = allocate_entry (table);
|
||||||
|
|
||||||
|
if (new_entry == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
/* Add ENTRY in the overflow of the bucket. */
|
||||||
|
|
||||||
|
new_entry->data = (void *) entry;
|
||||||
|
new_entry->next = bucket->next;
|
||||||
|
bucket->next = new_entry;
|
||||||
|
table->n_entries++;
|
||||||
|
return (void *) entry;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add ENTRY right in the bucket head. */
|
||||||
|
|
||||||
|
bucket->data = (void *) entry;
|
||||||
|
table->n_entries++;
|
||||||
|
table->n_buckets_used++;
|
||||||
|
|
||||||
return (void *) entry;
|
return (void *) entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1012,7 +1141,25 @@ hash_delete (Hash_table *table, const void *entry)
|
|||||||
: (table->n_buckets * tuning->shrink_factor
|
: (table->n_buckets * tuning->shrink_factor
|
||||||
* tuning->growth_threshold));
|
* tuning->growth_threshold));
|
||||||
|
|
||||||
hash_rehash (table, candidate);
|
if (!hash_rehash (table, candidate))
|
||||||
|
{
|
||||||
|
/* Failure to allocate memory in an attempt to
|
||||||
|
shrink the table is not fatal. But since memory
|
||||||
|
is low, we can at least be kind and free any
|
||||||
|
spare entries, rather than keeping them tied up
|
||||||
|
in the free entry list. */
|
||||||
|
#if ! USE_OBSTACK
|
||||||
|
struct hash_entry *cursor = table->free_entry_list;
|
||||||
|
struct hash_entry *next;
|
||||||
|
while (cursor)
|
||||||
|
{
|
||||||
|
next = cursor->next;
|
||||||
|
free (cursor);
|
||||||
|
cursor = next;
|
||||||
|
}
|
||||||
|
table->free_entry_list = NULL;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1027,9 +1174,9 @@ hash_delete (Hash_table *table, const void *entry)
|
|||||||
void
|
void
|
||||||
hash_print (const Hash_table *table)
|
hash_print (const Hash_table *table)
|
||||||
{
|
{
|
||||||
struct hash_entry const *bucket;
|
struct hash_entry *bucket = (struct hash_entry *) table->bucket;
|
||||||
|
|
||||||
for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
|
for ( ; bucket < table->bucket_limit; bucket++)
|
||||||
{
|
{
|
||||||
struct hash_entry *cursor;
|
struct hash_entry *cursor;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* hash - hashing table processing.
|
/* hash - hashing table processing.
|
||||||
Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation, Inc.
|
Copyright (C) 1998, 1999, 2001, 2003, 2009 Free Software Foundation, Inc.
|
||||||
Written by Jim Meyering <meyering@ascend.com>, 1998.
|
Written by Jim Meyering <meyering@ascend.com>, 1998.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
@ -26,17 +26,22 @@
|
|||||||
# include <stdio.h>
|
# include <stdio.h>
|
||||||
# include <stdbool.h>
|
# include <stdbool.h>
|
||||||
|
|
||||||
|
/* The warn_unused_result attribute appeared first in gcc-3.4.0 */
|
||||||
|
# ifndef __attribute__
|
||||||
|
# if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4)
|
||||||
|
# define __attribute__(x)
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifndef ATTRIBUTE_WUR
|
||||||
|
# define ATTRIBUTE_WUR __attribute__ ((__warn_unused_result__))
|
||||||
|
# endif
|
||||||
|
|
||||||
typedef size_t (*Hash_hasher) (const void *, size_t);
|
typedef size_t (*Hash_hasher) (const void *, size_t);
|
||||||
typedef bool (*Hash_comparator) (const void *, const void *);
|
typedef bool (*Hash_comparator) (const void *, const void *);
|
||||||
typedef void (*Hash_data_freer) (void *);
|
typedef void (*Hash_data_freer) (void *);
|
||||||
typedef bool (*Hash_processor) (void *, void *);
|
typedef bool (*Hash_processor) (void *, void *);
|
||||||
|
|
||||||
struct hash_entry
|
|
||||||
{
|
|
||||||
void *data;
|
|
||||||
struct hash_entry *next;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct hash_tuning
|
struct hash_tuning
|
||||||
{
|
{
|
||||||
/* This structure is mainly used for `hash_initialize', see the block
|
/* This structure is mainly used for `hash_initialize', see the block
|
||||||
@ -75,13 +80,13 @@ size_t hash_string (const char *, size_t);
|
|||||||
void hash_reset_tuning (Hash_tuning *);
|
void hash_reset_tuning (Hash_tuning *);
|
||||||
Hash_table *hash_initialize (size_t, const Hash_tuning *,
|
Hash_table *hash_initialize (size_t, const Hash_tuning *,
|
||||||
Hash_hasher, Hash_comparator,
|
Hash_hasher, Hash_comparator,
|
||||||
Hash_data_freer);
|
Hash_data_freer) ATTRIBUTE_WUR;
|
||||||
void hash_clear (Hash_table *);
|
void hash_clear (Hash_table *);
|
||||||
void hash_free (Hash_table *);
|
void hash_free (Hash_table *);
|
||||||
|
|
||||||
/* Insertion and deletion. */
|
/* Insertion and deletion. */
|
||||||
bool hash_rehash (Hash_table *, size_t);
|
bool hash_rehash (Hash_table *, size_t) ATTRIBUTE_WUR;
|
||||||
void *hash_insert (Hash_table *, const void *);
|
void *hash_insert (Hash_table *, const void *) ATTRIBUTE_WUR;
|
||||||
void *hash_delete (Hash_table *, const void *);
|
void *hash_delete (Hash_table *, const void *);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* ANSI-C code produced by gperf version 3.0.4 */
|
/* ANSI-C code produced by gperf version 3.0.3 */
|
||||||
/* Command-line: gperf -m 10 ./iconv_open-aix.gperf */
|
/* Command-line: gperf -m 10 ./iconv_open-aix.gperf */
|
||||||
/* Computed positions: -k'4,$' */
|
/* Computed positions: -k'4,$' */
|
||||||
|
|
||||||
@ -229,7 +229,7 @@ static const struct mapping mappings[] =
|
|||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
__inline
|
__inline
|
||||||
#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
|
#ifdef __GNUC_STDC_INLINE__
|
||||||
__attribute__ ((__gnu_inline__))
|
__attribute__ ((__gnu_inline__))
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* ANSI-C code produced by gperf version 3.0.4 */
|
/* ANSI-C code produced by gperf version 3.0.3 */
|
||||||
/* Command-line: gperf -m 10 ./iconv_open-hpux.gperf */
|
/* Command-line: gperf -m 10 ./iconv_open-hpux.gperf */
|
||||||
/* Computed positions: -k'4,$' */
|
/* Computed positions: -k'4,$' */
|
||||||
|
|
||||||
@ -272,7 +272,7 @@ static const struct mapping mappings[] =
|
|||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
__inline
|
__inline
|
||||||
#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
|
#ifdef __GNUC_STDC_INLINE__
|
||||||
__attribute__ ((__gnu_inline__))
|
__attribute__ ((__gnu_inline__))
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* ANSI-C code produced by gperf version 3.0.4 */
|
/* ANSI-C code produced by gperf version 3.0.3 */
|
||||||
/* Command-line: gperf -m 10 ./iconv_open-irix.gperf */
|
/* Command-line: gperf -m 10 ./iconv_open-irix.gperf */
|
||||||
/* Computed positions: -k'1,$' */
|
/* Computed positions: -k'1,$' */
|
||||||
|
|
||||||
@ -172,7 +172,7 @@ static const struct mapping mappings[] =
|
|||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
__inline
|
__inline
|
||||||
#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
|
#ifdef __GNUC_STDC_INLINE__
|
||||||
__attribute__ ((__gnu_inline__))
|
__attribute__ ((__gnu_inline__))
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* ANSI-C code produced by gperf version 3.0.4 */
|
/* ANSI-C code produced by gperf version 3.0.3 */
|
||||||
/* Command-line: gperf -m 10 ./iconv_open-osf.gperf */
|
/* Command-line: gperf -m 10 ./iconv_open-osf.gperf */
|
||||||
/* Computed positions: -k'4,$' */
|
/* Computed positions: -k'4,$' */
|
||||||
|
|
||||||
@ -251,7 +251,7 @@ static const struct mapping mappings[] =
|
|||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
__inline
|
__inline
|
||||||
#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
|
#ifdef __GNUC_STDC_INLINE__
|
||||||
__attribute__ ((__gnu_inline__))
|
__attribute__ ((__gnu_inline__))
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* The include_next requires a split double-inclusion guard. */
|
/* The include_next requires a split double-inclusion guard. */
|
||||||
#@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_MATH_H@
|
#@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
|
||||||
|
|
||||||
#ifndef _GL_MATH_H
|
#ifndef _GL_MATH_H
|
||||||
#define _GL_MATH_H
|
#define _GL_MATH_H
|
||||||
@ -148,7 +148,8 @@ extern long double ceill (long double x);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if @GNULIB_MATHL@ || !@HAVE_DECL_COSL@
|
#if @GNULIB_MATHL@ || (!@HAVE_DECL_COSL@ && !defined cosl)
|
||||||
|
# undef cosl
|
||||||
extern long double cosl (long double x);
|
extern long double cosl (long double x);
|
||||||
#endif
|
#endif
|
||||||
#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
|
#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
|
||||||
@ -237,7 +238,8 @@ extern long double ldexpl (long double x, int exp);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if @GNULIB_MATHL@ || !@HAVE_DECL_LOGL@
|
#if @GNULIB_MATHL@ || (!@HAVE_DECL_LOGL@ && !defined logl)
|
||||||
|
# undef logl
|
||||||
extern long double logl (long double x);
|
extern long double logl (long double x);
|
||||||
#endif
|
#endif
|
||||||
#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
|
#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
|
||||||
@ -292,7 +294,8 @@ extern long double roundl (long double x);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if @GNULIB_MATHL@ || !@HAVE_DECL_SINL@
|
#if @GNULIB_MATHL@ || (!@HAVE_DECL_SINL@ && !defined sinl)
|
||||||
|
# undef sinl
|
||||||
extern long double sinl (long double x);
|
extern long double sinl (long double x);
|
||||||
#endif
|
#endif
|
||||||
#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
|
#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#line 1
|
#line 1
|
||||||
/* Declaration of functions and data types used for MD5 sum computing
|
/* Declaration of functions and data types used for MD5 sum computing
|
||||||
library functions.
|
library functions.
|
||||||
Copyright (C) 1995-1997,1999,2000,2001,2004,2005,2006,2008
|
Copyright (C) 1995-1997,1999,2000,2001,2004,2005,2006,2008,2009
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
@ -57,6 +57,10 @@
|
|||||||
# define __md5_stream md5_stream
|
# define __md5_stream md5_stream
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
/* Structure to save state of computation between the single steps. */
|
/* Structure to save state of computation between the single steps. */
|
||||||
struct md5_ctx
|
struct md5_ctx
|
||||||
{
|
{
|
||||||
@ -118,4 +122,8 @@ extern int __md5_stream (FILE *stream, void *resblock) __THROW;
|
|||||||
extern void *__md5_buffer (const char *buffer, size_t len,
|
extern void *__md5_buffer (const char *buffer, size_t len,
|
||||||
void *resblock) __THROW;
|
void *resblock) __THROW;
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
#endif /* md5.h */
|
#endif /* md5.h */
|
||||||
|
14
src/bin/coreutils/lib/memchr.valgrind
Normal file
14
src/bin/coreutils/lib/memchr.valgrind
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# Suppress a valgrind message about use of uninitialized memory in memchr().
|
||||||
|
# POSIX states that when the character is found, memchr must not read extra
|
||||||
|
# bytes in an overestimated length (for example, where memchr is used to
|
||||||
|
# implement strnlen). However, we use a safe word read to provide a speedup.
|
||||||
|
{
|
||||||
|
memchr-value4
|
||||||
|
Memcheck:Value4
|
||||||
|
fun:rpl_memchr
|
||||||
|
}
|
||||||
|
{
|
||||||
|
memchr-value8
|
||||||
|
Memcheck:Value8
|
||||||
|
fun:rpl_memchr
|
||||||
|
}
|
14
src/bin/coreutils/lib/memchr2.valgrind
Normal file
14
src/bin/coreutils/lib/memchr2.valgrind
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# Suppress a valgrind message about use of uninitialized memory in memchr2().
|
||||||
|
# Like memchr, it is safe to overestimate the length when the terminator
|
||||||
|
# is guaranteed to be found. In this case, we may end up reading a word
|
||||||
|
# that is partially uninitialized, but this use is OK for a speedup.
|
||||||
|
{
|
||||||
|
memchr2-value4
|
||||||
|
Memcheck:Value4
|
||||||
|
fun:memchr2
|
||||||
|
}
|
||||||
|
{
|
||||||
|
memchr2-value8
|
||||||
|
Memcheck:Value8
|
||||||
|
fun:memchr2
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
/* Locale-specific memory transformation
|
/* Locale-specific memory transformation
|
||||||
|
|
||||||
Copyright (C) 2006 Free Software Foundation, Inc.
|
Copyright (C) 2006, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Get a list of all group IDs associated with a specified user ID.
|
/* Get a list of all group IDs associated with a specified user ID.
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc.
|
Copyright (C) 2007, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Invoke open, but avoid some glitches.
|
/* Invoke open, but avoid some glitches.
|
||||||
|
|
||||||
Copyright (C) 2005, 2006, 2008 Free Software Foundation, Inc.
|
Copyright (C) 2005, 2006, 2008-2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -35,13 +35,9 @@ open_safer (char const *file, int flags, ...)
|
|||||||
va_list ap;
|
va_list ap;
|
||||||
va_start (ap, flags);
|
va_start (ap, flags);
|
||||||
|
|
||||||
/* Assume mode_t promotes to int if and only if it is smaller.
|
/* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4
|
||||||
This assumption isn't guaranteed by the C standard, but we
|
creates crashing code when 'mode_t' is smaller than 'int'. */
|
||||||
don't know of any real-world counterexamples. */
|
mode = va_arg (ap, PROMOTED_MODE_T);
|
||||||
if (sizeof (mode_t) < sizeof (int))
|
|
||||||
mode = va_arg (ap, int);
|
|
||||||
else
|
|
||||||
mode = va_arg (ap, mode_t);
|
|
||||||
|
|
||||||
va_end (ap);
|
va_end (ap);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Open a descriptor to a file.
|
/* Open a descriptor to a file.
|
||||||
Copyright (C) 2007-2008 Free Software Foundation, Inc.
|
Copyright (C) 2007-2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -51,12 +51,9 @@ open (const char *filename, int flags, ...)
|
|||||||
va_list arg;
|
va_list arg;
|
||||||
va_start (arg, flags);
|
va_start (arg, flags);
|
||||||
|
|
||||||
/* If mode_t is narrower than int, use the promoted type (int),
|
/* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4
|
||||||
not mode_t. Use sizeof to guess whether mode_t is narrower;
|
creates crashing code when 'mode_t' is smaller than 'int'. */
|
||||||
we don't know of any practical counterexamples. */
|
mode = va_arg (arg, PROMOTED_MODE_T);
|
||||||
mode = (sizeof (mode_t) < sizeof (int)
|
|
||||||
? va_arg (arg, int)
|
|
||||||
: va_arg (arg, mode_t));
|
|
||||||
|
|
||||||
va_end (arg);
|
va_end (arg);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* provide a replacement openat function
|
/* provide a replacement openat function
|
||||||
Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
Copyright (C) 2004-2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -47,12 +47,9 @@ openat (int fd, char const *file, int flags, ...)
|
|||||||
va_list arg;
|
va_list arg;
|
||||||
va_start (arg, flags);
|
va_start (arg, flags);
|
||||||
|
|
||||||
/* If mode_t is narrower than int, use the promoted type (int),
|
/* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4
|
||||||
not mode_t. Use sizeof to guess whether mode_t is narrower;
|
creates crashing code when 'mode_t' is smaller than 'int'. */
|
||||||
we don't know of any practical counterexamples. */
|
mode = va_arg (arg, PROMOTED_MODE_T);
|
||||||
mode = (sizeof (mode_t) < sizeof (int)
|
|
||||||
? va_arg (arg, int)
|
|
||||||
: va_arg (arg, mode_t));
|
|
||||||
|
|
||||||
va_end (arg);
|
va_end (arg);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Bob Jenkins's cryptographic random number generator, ISAAC.
|
/* Bob Jenkins's cryptographic random number generator, ISAAC.
|
||||||
|
|
||||||
Copyright (C) 1999-2006 Free Software Foundation, Inc.
|
Copyright (C) 1999-2006, 2009 Free Software Foundation, Inc.
|
||||||
Copyright (C) 1997, 1998, 1999 Colin Plumb.
|
Copyright (C) 1997, 1998, 1999 Colin Plumb.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Bob Jenkins's cryptographic random number generator, ISAAC.
|
/* Bob Jenkins's cryptographic random number generator, ISAAC.
|
||||||
|
|
||||||
Copyright (C) 1999-2005 Free Software Foundation, Inc.
|
Copyright (C) 1999-2005, 2009 Free Software Foundation, Inc.
|
||||||
Copyright (C) 1997, 1998, 1999 Colin Plumb.
|
Copyright (C) 1997, 1998, 1999 Colin Plumb.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Generate random integers.
|
/* Generate random integers.
|
||||||
|
|
||||||
Copyright (C) 2006 Free Software Foundation, Inc.
|
Copyright (C) 2006, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Generate random integers.
|
/* Generate random integers.
|
||||||
|
|
||||||
Copyright (C) 2006 Free Software Foundation, Inc.
|
Copyright (C) 2006, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Generate random permutations.
|
/* Generate random permutations.
|
||||||
|
|
||||||
Copyright (C) 2006, 2007 Free Software Foundation, Inc.
|
Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Generate buffers of random data.
|
/* Generate buffers of random data.
|
||||||
|
|
||||||
Copyright (C) 2006 Free Software Foundation, Inc.
|
Copyright (C) 2006, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* root-dev-ino.c -- get the device and inode numbers for `/'.
|
/* root-dev-ino.c -- get the device and inode numbers for `/'.
|
||||||
Copyright (C) 2003, 2005, 2006 Free Software Foundation, Inc.
|
Copyright (C) 2003, 2005, 2006, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Root device and inode number checking.
|
/* Root device and inode number checking.
|
||||||
|
|
||||||
Copyright (C) 2003, 2006 Free Software Foundation, Inc.
|
Copyright (C) 2003, 2006, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Prototypes for openat-style fd-relative SELinux functions
|
/* Prototypes for openat-style fd-relative SELinux functions
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc.
|
Copyright (C) 2007, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -17,7 +17,36 @@
|
|||||||
#include <selinux/selinux.h>
|
#include <selinux/selinux.h>
|
||||||
#include <selinux/context.h>
|
#include <selinux/context.h>
|
||||||
|
|
||||||
int getfileconat (int fd, char const *file, security_context_t *con);
|
/* These are the dir-fd-relative variants of the functions without the
|
||||||
int lgetfileconat (int fd, char const *file, security_context_t *con);
|
"at" suffix. For example, getfileconat (AT_FDCWD, file, &c) is usually
|
||||||
int setfileconat (int fd, char const *file, security_context_t con);
|
equivalent to getfilecon (file, &c). The emulation is accomplished
|
||||||
int lsetfileconat (int fd, char const *file, security_context_t con);
|
by first attempting getfilecon ("/proc/self/fd/DIRFD/FILE", &c).
|
||||||
|
Failing that, simulate it via save_cwd/fchdir/getfilecon/restore_cwd.
|
||||||
|
If either the save_cwd or the restore_cwd fails (relatively unlikely),
|
||||||
|
then give a diagnostic and exit nonzero. */
|
||||||
|
|
||||||
|
/* dir-fd-relative getfilecon. Set *CON to the SELinux security context
|
||||||
|
of the file specified by DIRFD and FILE and return the length of *CON.
|
||||||
|
DIRFD and FILE are interpreted as for fstatat[*]. A non-NULL *CON
|
||||||
|
must be freed with freecon. Upon error, set *CON to NULL, set errno
|
||||||
|
and return -1.
|
||||||
|
[*] with flags=0 here, with flags=AT_SYMLINK_NOFOLLOW for lgetfileconat */
|
||||||
|
int getfileconat (int dirfd, char const *file, security_context_t *con);
|
||||||
|
|
||||||
|
/* dir-fd-relative lgetfilecon. This function is just like getfileconat,
|
||||||
|
except when DIRFD and FILE specify a symlink: lgetfileconat operates on
|
||||||
|
the symlink, while getfileconat operates on the referent of the symlink. */
|
||||||
|
int lgetfileconat (int dirfd, char const *file, security_context_t *con);
|
||||||
|
|
||||||
|
/* dir-fd-relative setfilecon. Set the SELinux security context of
|
||||||
|
the file specified by DIRFD and FILE to CON. DIRFD and FILE are
|
||||||
|
interpreted as for fstatat[*]. Upon success, return 0.
|
||||||
|
Otherwise, return -1 and set errno. */
|
||||||
|
int setfileconat (int dirfd, char const *file, security_context_t con);
|
||||||
|
|
||||||
|
/* dir-fd-relative lsetfilecon. This function is just like setfileconat,
|
||||||
|
except that rather than dereferencing a symlink, this function affects it. */
|
||||||
|
/* dir-fd-relative lsetfilecon. This function is just like setfileconat,
|
||||||
|
except when DIRFD and FILE specify a symlink: lsetfileconat operates on
|
||||||
|
the symlink, while setfileconat operates on the referent of the symlink. */
|
||||||
|
int lsetfileconat (int dirfd, char const *file, security_context_t con);
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#line 1
|
#line 1
|
||||||
/* Declarations of functions and data types used for SHA1 sum
|
/* Declarations of functions and data types used for SHA1 sum
|
||||||
library functions.
|
library functions.
|
||||||
Copyright (C) 2000, 2001, 2003, 2005, 2006, 2008
|
Copyright (C) 2000, 2001, 2003, 2005, 2006, 2008, 2009
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it
|
This program is free software; you can redistribute it and/or modify it
|
||||||
@ -26,6 +26,10 @@
|
|||||||
# include <stdio.h>
|
# include <stdio.h>
|
||||||
# include <stdint.h>
|
# include <stdint.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
#define SHA1_DIGEST_SIZE 20
|
#define SHA1_DIGEST_SIZE 20
|
||||||
|
|
||||||
/* Structure to save state of computation between the single steps. */
|
/* Structure to save state of computation between the single steps. */
|
||||||
@ -84,4 +88,8 @@ extern int sha1_stream (FILE *stream, void *resblock);
|
|||||||
digest. */
|
digest. */
|
||||||
extern void *sha1_buffer (const char *buffer, size_t len, void *resblock);
|
extern void *sha1_buffer (const char *buffer, size_t len, void *resblock);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Declarations of functions and data types used for SHA256 and SHA224 sum
|
/* Declarations of functions and data types used for SHA256 and SHA224 sum
|
||||||
library functions.
|
library functions.
|
||||||
Copyright (C) 2005, 2006, 2008 Free Software Foundation, Inc.
|
Copyright (C) 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -21,6 +21,10 @@
|
|||||||
# include <stdio.h>
|
# include <stdio.h>
|
||||||
# include <stdint.h>
|
# include <stdint.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
/* Structure to save state of computation between the single steps. */
|
/* Structure to save state of computation between the single steps. */
|
||||||
struct sha256_ctx
|
struct sha256_ctx
|
||||||
{
|
{
|
||||||
@ -80,4 +84,8 @@ extern int sha224_stream (FILE *stream, void *resblock);
|
|||||||
extern void *sha256_buffer (const char *buffer, size_t len, void *resblock);
|
extern void *sha256_buffer (const char *buffer, size_t len, void *resblock);
|
||||||
extern void *sha224_buffer (const char *buffer, size_t len, void *resblock);
|
extern void *sha224_buffer (const char *buffer, size_t len, void *resblock);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Declarations of functions and data types used for SHA512 and SHA384 sum
|
/* Declarations of functions and data types used for SHA512 and SHA384 sum
|
||||||
library functions.
|
library functions.
|
||||||
Copyright (C) 2005, 2006, 2008 Free Software Foundation, Inc.
|
Copyright (C) 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -22,6 +22,10 @@
|
|||||||
|
|
||||||
# include "u64.h"
|
# include "u64.h"
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
/* Structure to save state of computation between the single steps. */
|
/* Structure to save state of computation between the single steps. */
|
||||||
struct sha512_ctx
|
struct sha512_ctx
|
||||||
{
|
{
|
||||||
@ -84,4 +88,8 @@ extern int sha384_stream (FILE *stream, void *resblock);
|
|||||||
extern void *sha512_buffer (const char *buffer, size_t len, void *resblock);
|
extern void *sha512_buffer (const char *buffer, size_t len, void *resblock);
|
||||||
extern void *sha384_buffer (const char *buffer, size_t len, void *resblock);
|
extern void *sha384_buffer (const char *buffer, size_t len, void *resblock);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
118
src/bin/coreutils/lib/sockets.c
Normal file
118
src/bin/coreutils/lib/sockets.c
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
/* sockets.c --- wrappers for Windows socket functions
|
||||||
|
|
||||||
|
Copyright (C) 2008-2009 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 Simon Josefsson */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
/* Specification. */
|
||||||
|
#include "sockets.h"
|
||||||
|
|
||||||
|
#if WINDOWS_SOCKETS
|
||||||
|
|
||||||
|
/* This includes winsock2.h on MinGW. */
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
#include "close-hook.h"
|
||||||
|
|
||||||
|
/* Get set_winsock_errno, FD_TO_SOCKET etc. */
|
||||||
|
#include "w32sock.h"
|
||||||
|
|
||||||
|
static int
|
||||||
|
close_fd_maybe_socket (int fd, const struct close_hook *remaining_list)
|
||||||
|
{
|
||||||
|
SOCKET sock;
|
||||||
|
WSANETWORKEVENTS ev;
|
||||||
|
|
||||||
|
/* Test whether fd refers to a socket. */
|
||||||
|
sock = FD_TO_SOCKET (fd);
|
||||||
|
ev.lNetworkEvents = 0xDEADBEEF;
|
||||||
|
WSAEnumNetworkEvents (sock, NULL, &ev);
|
||||||
|
if (ev.lNetworkEvents != 0xDEADBEEF)
|
||||||
|
{
|
||||||
|
/* fd refers to a socket. */
|
||||||
|
/* FIXME: other applications, like squid, use an undocumented
|
||||||
|
_free_osfhnd free function. But this is not enough: The 'osfile'
|
||||||
|
flags for fd also needs to be cleared, but it is hard to access it.
|
||||||
|
Instead, here we just close twice the file descriptor. */
|
||||||
|
if (closesocket (sock))
|
||||||
|
{
|
||||||
|
set_winsock_errno ();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* This call frees the file descriptor and does a
|
||||||
|
CloseHandle ((HANDLE) _get_osfhandle (fd)), which fails. */
|
||||||
|
_close (fd);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
/* Some other type of file descriptor. */
|
||||||
|
return execute_close_hooks (fd, remaining_list);
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct close_hook close_sockets_hook;
|
||||||
|
|
||||||
|
static int initialized_sockets_version /* = 0 */;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int
|
||||||
|
gl_sockets_startup (int version)
|
||||||
|
{
|
||||||
|
#if WINDOWS_SOCKETS
|
||||||
|
if (version > initialized_sockets_version)
|
||||||
|
{
|
||||||
|
WSADATA data;
|
||||||
|
int err;
|
||||||
|
|
||||||
|
err = WSAStartup (version, &data);
|
||||||
|
if (err != 0)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
if (data.wVersion < version)
|
||||||
|
return 2;
|
||||||
|
|
||||||
|
if (initialized_sockets_version == 0)
|
||||||
|
register_close_hook (close_fd_maybe_socket, &close_sockets_hook);
|
||||||
|
|
||||||
|
initialized_sockets_version = version;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
gl_sockets_cleanup (void)
|
||||||
|
{
|
||||||
|
#if WINDOWS_SOCKETS
|
||||||
|
int err;
|
||||||
|
|
||||||
|
initialized_sockets_version = 0;
|
||||||
|
|
||||||
|
unregister_close_hook (&close_sockets_hook);
|
||||||
|
|
||||||
|
err = WSACleanup ();
|
||||||
|
if (err != 0)
|
||||||
|
return 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
51
src/bin/coreutils/lib/sockets.h
Normal file
51
src/bin/coreutils/lib/sockets.h
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/* sockets.h - wrappers for Windows socket functions
|
||||||
|
|
||||||
|
Copyright (C) 2008, 2009 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 Simon Josefsson */
|
||||||
|
|
||||||
|
#ifndef SOCKETS_H
|
||||||
|
# define SOCKETS_H 1
|
||||||
|
|
||||||
|
#define SOCKETS_1_0 0x100 /* don't use - does not work on Windows XP */
|
||||||
|
#define SOCKETS_1_1 0x101
|
||||||
|
#define SOCKETS_2_0 0x200 /* don't use - does not work on Windows XP */
|
||||||
|
#define SOCKETS_2_1 0x201
|
||||||
|
#define SOCKETS_2_2 0x202
|
||||||
|
|
||||||
|
int gl_sockets_startup (int version);
|
||||||
|
int gl_sockets_cleanup (void);
|
||||||
|
|
||||||
|
/* This function is useful it you create a socket using gnulib's
|
||||||
|
Winsock wrappers but needs to pass on the socket handle to some
|
||||||
|
other library that only accepts sockets. */
|
||||||
|
#if WINDOWS_SOCKETS
|
||||||
|
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
static inline SOCKET
|
||||||
|
gl_fd_to_handle (int fd)
|
||||||
|
{
|
||||||
|
return _get_osfhandle (fd);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define gl_fd_to_handle(x) (x)
|
||||||
|
|
||||||
|
#endif /* WINDOWS_SOCKETS */
|
||||||
|
|
||||||
|
#endif /* SOCKETS_H */
|
89
src/bin/coreutils/lib/stddef.in.h
Normal file
89
src/bin/coreutils/lib/stddef.in.h
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
/* -*- buffer-read-only: t -*- vi: set ro: */
|
||||||
|
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||||
|
#line 1
|
||||||
|
/* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues.
|
||||||
|
|
||||||
|
Copyright (C) 2009 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 Eric Blake. */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* POSIX 2008 <stddef.h> for platforms that have issues.
|
||||||
|
* <http://www.opengroup.org/susv3xbd/stddef.h.html>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if __GNUC__ >= 3
|
||||||
|
@PRAGMA_SYSTEM_HEADER@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined __need_wchar_t || defined __need_size_t \
|
||||||
|
|| defined __need_ptrdiff_t || defined __need_NULL \
|
||||||
|
|| defined __need_wint_t
|
||||||
|
/* Special invocation convention inside gcc header files. In
|
||||||
|
particular, gcc provides a version of <stddef.h> that blindly
|
||||||
|
redefines NULL even when __need_wint_t was defined, even though
|
||||||
|
wint_t is not normally provided by <stddef.h>. Hence, we must
|
||||||
|
remember if special invocation has ever been used to obtain wint_t,
|
||||||
|
in which case we need to clean up NULL yet again. */
|
||||||
|
|
||||||
|
# if !(defined _GL_STDDEF_H && defined _GL_STDDEF_WINT_T)
|
||||||
|
# ifdef __need_wint_t
|
||||||
|
# undef _GL_STDDEF_H
|
||||||
|
# define _GL_STDDEF_WINT_T
|
||||||
|
# endif
|
||||||
|
# @INCLUDE_NEXT@ @NEXT_STDDEF_H@
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
/* Normal invocation convention. */
|
||||||
|
|
||||||
|
# ifndef _GL_STDDEF_H
|
||||||
|
|
||||||
|
/* The include_next requires a split double-inclusion guard. */
|
||||||
|
|
||||||
|
# @INCLUDE_NEXT@ @NEXT_STDDEF_H@
|
||||||
|
|
||||||
|
# ifndef _GL_STDDEF_H
|
||||||
|
# define _GL_STDDEF_H
|
||||||
|
|
||||||
|
/* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */
|
||||||
|
#if @REPLACE_NULL@
|
||||||
|
# undef NULL
|
||||||
|
# ifdef __cplusplus
|
||||||
|
/* ISO C++ says that the macro NULL must expand to an integer constant
|
||||||
|
expression, hence '((void *) 0)' is not allowed in C++. */
|
||||||
|
# if __GNUG__ >= 3
|
||||||
|
/* GNU C++ has a __null macro that behaves like an integer ('int' or
|
||||||
|
'long') but has the same size as a pointer. Use that, to avoid
|
||||||
|
warnings. */
|
||||||
|
# define NULL __null
|
||||||
|
# else
|
||||||
|
# define NULL 0L
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define NULL ((void *) 0)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Some platforms lack wchar_t. */
|
||||||
|
#if !@HAVE_WCHAR_T@
|
||||||
|
# define wchar_t int
|
||||||
|
#endif
|
||||||
|
|
||||||
|
# endif /* _GL_STDDEF_H */
|
||||||
|
# endif /* _GL_STDDEF_H */
|
||||||
|
#endif /* __need_XXX */
|
@ -1,5 +1,5 @@
|
|||||||
/* POSIX compatible FILE stream write function.
|
/* POSIX compatible FILE stream write function.
|
||||||
Copyright (C) 2008 Free Software Foundation, Inc.
|
Copyright (C) 2008-2009 Free Software Foundation, Inc.
|
||||||
Written by Bruno Haible <bruno@clisp.org>, 2008.
|
Written by Bruno Haible <bruno@clisp.org>, 2008.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
@ -63,6 +63,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
# if !REPLACE_PRINTF_POSIX /* avoid collision with printf.c */
|
# if !REPLACE_PRINTF_POSIX /* avoid collision with printf.c */
|
||||||
|
# if !DEPENDS_ON_LIBINTL /* avoid collision with intl/printf.c */
|
||||||
int
|
int
|
||||||
printf (const char *format, ...)
|
printf (const char *format, ...)
|
||||||
{
|
{
|
||||||
@ -75,6 +76,7 @@ printf (const char *format, ...)
|
|||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if !REPLACE_FPRINTF_POSIX /* avoid collision with fprintf.c */
|
# if !REPLACE_FPRINTF_POSIX /* avoid collision with fprintf.c */
|
||||||
@ -92,7 +94,7 @@ fprintf (FILE *stream, const char *format, ...)
|
|||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if !REPLACE_VFPRINTF_POSIX /* avoid collision with vprintf.c */
|
# if !REPLACE_VPRINTF_POSIX /* avoid collision with vprintf.c */
|
||||||
int
|
int
|
||||||
vprintf (const char *format, va_list args)
|
vprintf (const char *format, va_list args)
|
||||||
{
|
{
|
||||||
@ -100,7 +102,7 @@ vprintf (const char *format, va_list args)
|
|||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if !REPLACE_VPRINTF_POSIX /* avoid collision with vfprintf.c */
|
# if !REPLACE_VFPRINTF_POSIX /* avoid collision with vfprintf.c */
|
||||||
int
|
int
|
||||||
vfprintf (FILE *stream, const char *format, va_list args)
|
vfprintf (FILE *stream, const char *format, va_list args)
|
||||||
#undef vfprintf
|
#undef vfprintf
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#line 1
|
#line 1
|
||||||
/* A GNU-like <stdio.h>.
|
/* A GNU-like <stdio.h>.
|
||||||
|
|
||||||
Copyright (C) 2004, 2007-2008 Free Software Foundation, Inc.
|
Copyright (C) 2004, 2007-2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -410,6 +410,27 @@ extern long rpl_ftell (FILE *fp);
|
|||||||
fflush (f))
|
fflush (f))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if @GNULIB_FPURGE@
|
||||||
|
# if @REPLACE_FPURGE@
|
||||||
|
# define fpurge rpl_fpurge
|
||||||
|
# endif
|
||||||
|
# if @REPLACE_FPURGE@ || !@HAVE_DECL_FPURGE@
|
||||||
|
/* Discard all pending buffered I/O data on STREAM.
|
||||||
|
STREAM must not be wide-character oriented.
|
||||||
|
When discarding pending output, the file position is set back to where it
|
||||||
|
was before the write calls. When discarding pending input, the file
|
||||||
|
position is advanced to match the end of the previously read input.
|
||||||
|
Return 0 if successful. Upon error, return -1 and set errno. */
|
||||||
|
extern int fpurge (FILE *gl_stream);
|
||||||
|
# endif
|
||||||
|
#elif defined GNULIB_POSIXCHECK
|
||||||
|
# undef fpurge
|
||||||
|
# define fpurge(f) \
|
||||||
|
(GL_LINK_WARNING ("fpurge is not always present - " \
|
||||||
|
"use gnulib module fpurge for portability"), \
|
||||||
|
fpurge (f))
|
||||||
|
#endif
|
||||||
|
|
||||||
#if @GNULIB_FCLOSE@
|
#if @GNULIB_FCLOSE@
|
||||||
# if @REPLACE_FCLOSE@
|
# if @REPLACE_FCLOSE@
|
||||||
# define fclose rpl_fclose
|
# define fclose rpl_fclose
|
||||||
|
@ -35,6 +35,8 @@
|
|||||||
#ifndef _GL_STDLIB_H
|
#ifndef _GL_STDLIB_H
|
||||||
#define _GL_STDLIB_H
|
#define _GL_STDLIB_H
|
||||||
|
|
||||||
|
/* NetBSD 5.0 mis-defines NULL. */
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
/* Solaris declares getloadavg() in <sys/loadavg.h>. */
|
/* Solaris declares getloadavg() in <sys/loadavg.h>. */
|
||||||
#if @GNULIB_GETLOADAVG@ && @HAVE_SYS_LOADAVG_H@
|
#if @GNULIB_GETLOADAVG@ && @HAVE_SYS_LOADAVG_H@
|
||||||
|
432
src/bin/coreutils/lib/str-two-way.h
Normal file
432
src/bin/coreutils/lib/str-two-way.h
Normal file
@ -0,0 +1,432 @@
|
|||||||
|
/* -*- buffer-read-only: t -*- vi: set ro: */
|
||||||
|
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||||
|
#line 1
|
||||||
|
/* Byte-wise substring search, using the Two-Way algorithm.
|
||||||
|
Copyright (C) 2008 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
Written by Eric Blake <ebb9@byu.net>, 2008.
|
||||||
|
|
||||||
|
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. */
|
||||||
|
|
||||||
|
/* Before including this file, you need to include <config.h> and
|
||||||
|
<string.h>, and define:
|
||||||
|
RESULT_TYPE A macro that expands to the return type.
|
||||||
|
AVAILABLE(h, h_l, j, n_l)
|
||||||
|
A macro that returns nonzero if there are
|
||||||
|
at least N_L bytes left starting at H[J].
|
||||||
|
H is 'unsigned char *', H_L, J, and N_L
|
||||||
|
are 'size_t'; H_L is an lvalue. For
|
||||||
|
NUL-terminated searches, H_L can be
|
||||||
|
modified each iteration to avoid having
|
||||||
|
to compute the end of H up front.
|
||||||
|
|
||||||
|
For case-insensitivity, you may optionally define:
|
||||||
|
CMP_FUNC(p1, p2, l) A macro that returns 0 iff the first L
|
||||||
|
characters of P1 and P2 are equal.
|
||||||
|
CANON_ELEMENT(c) A macro that canonicalizes an element right after
|
||||||
|
it has been fetched from one of the two strings.
|
||||||
|
The argument is an 'unsigned char'; the result
|
||||||
|
must be an 'unsigned char' as well.
|
||||||
|
|
||||||
|
This file undefines the macros documented above, and defines
|
||||||
|
LONG_NEEDLE_THRESHOLD.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <limits.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
/* We use the Two-Way string matching algorithm, which guarantees
|
||||||
|
linear complexity with constant space. Additionally, for long
|
||||||
|
needles, we also use a bad character shift table similar to the
|
||||||
|
Boyer-Moore algorithm to achieve improved (potentially sub-linear)
|
||||||
|
performance.
|
||||||
|
|
||||||
|
See http://www-igm.univ-mlv.fr/~lecroq/string/node26.html#SECTION00260
|
||||||
|
and http://en.wikipedia.org/wiki/Boyer-Moore_string_search_algorithm
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Point at which computing a bad-byte shift table is likely to be
|
||||||
|
worthwhile. Small needles should not compute a table, since it
|
||||||
|
adds (1 << CHAR_BIT) + NEEDLE_LEN computations of preparation for a
|
||||||
|
speedup no greater than a factor of NEEDLE_LEN. The larger the
|
||||||
|
needle, the better the potential performance gain. On the other
|
||||||
|
hand, on non-POSIX systems with CHAR_BIT larger than eight, the
|
||||||
|
memory required for the table is prohibitive. */
|
||||||
|
#if CHAR_BIT < 10
|
||||||
|
# define LONG_NEEDLE_THRESHOLD 32U
|
||||||
|
#else
|
||||||
|
# define LONG_NEEDLE_THRESHOLD SIZE_MAX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef MAX
|
||||||
|
# define MAX(a, b) ((a < b) ? (b) : (a))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CANON_ELEMENT
|
||||||
|
# define CANON_ELEMENT(c) c
|
||||||
|
#endif
|
||||||
|
#ifndef CMP_FUNC
|
||||||
|
# define CMP_FUNC memcmp
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Perform a critical factorization of NEEDLE, of length NEEDLE_LEN.
|
||||||
|
Return the index of the first byte in the right half, and set
|
||||||
|
*PERIOD to the global period of the right half.
|
||||||
|
|
||||||
|
The global period of a string is the smallest index (possibly its
|
||||||
|
length) at which all remaining bytes in the string are repetitions
|
||||||
|
of the prefix (the last repetition may be a subset of the prefix).
|
||||||
|
|
||||||
|
When NEEDLE is factored into two halves, a local period is the
|
||||||
|
length of the smallest word that shares a suffix with the left half
|
||||||
|
and shares a prefix with the right half. All factorizations of a
|
||||||
|
non-empty NEEDLE have a local period of at least 1 and no greater
|
||||||
|
than NEEDLE_LEN.
|
||||||
|
|
||||||
|
A critical factorization has the property that the local period
|
||||||
|
equals the global period. All strings have at least one critical
|
||||||
|
factorization with the left half smaller than the global period.
|
||||||
|
|
||||||
|
Given an ordered alphabet, a critical factorization can be computed
|
||||||
|
in linear time, with 2 * NEEDLE_LEN comparisons, by computing the
|
||||||
|
larger of two ordered maximal suffixes. The ordered maximal
|
||||||
|
suffixes are determined by lexicographic comparison of
|
||||||
|
periodicity. */
|
||||||
|
static size_t
|
||||||
|
critical_factorization (const unsigned char *needle, size_t needle_len,
|
||||||
|
size_t *period)
|
||||||
|
{
|
||||||
|
/* Index of last byte of left half, or SIZE_MAX. */
|
||||||
|
size_t max_suffix, max_suffix_rev;
|
||||||
|
size_t j; /* Index into NEEDLE for current candidate suffix. */
|
||||||
|
size_t k; /* Offset into current period. */
|
||||||
|
size_t p; /* Intermediate period. */
|
||||||
|
unsigned char a, b; /* Current comparison bytes. */
|
||||||
|
|
||||||
|
/* Invariants:
|
||||||
|
0 <= j < NEEDLE_LEN - 1
|
||||||
|
-1 <= max_suffix{,_rev} < j (treating SIZE_MAX as if it were signed)
|
||||||
|
min(max_suffix, max_suffix_rev) < global period of NEEDLE
|
||||||
|
1 <= p <= global period of NEEDLE
|
||||||
|
p == global period of the substring NEEDLE[max_suffix{,_rev}+1...j]
|
||||||
|
1 <= k <= p
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Perform lexicographic search. */
|
||||||
|
max_suffix = SIZE_MAX;
|
||||||
|
j = 0;
|
||||||
|
k = p = 1;
|
||||||
|
while (j + k < needle_len)
|
||||||
|
{
|
||||||
|
a = CANON_ELEMENT (needle[j + k]);
|
||||||
|
b = CANON_ELEMENT (needle[max_suffix + k]);
|
||||||
|
if (a < b)
|
||||||
|
{
|
||||||
|
/* Suffix is smaller, period is entire prefix so far. */
|
||||||
|
j += k;
|
||||||
|
k = 1;
|
||||||
|
p = j - max_suffix;
|
||||||
|
}
|
||||||
|
else if (a == b)
|
||||||
|
{
|
||||||
|
/* Advance through repetition of the current period. */
|
||||||
|
if (k != p)
|
||||||
|
++k;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
j += p;
|
||||||
|
k = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else /* b < a */
|
||||||
|
{
|
||||||
|
/* Suffix is larger, start over from current location. */
|
||||||
|
max_suffix = j++;
|
||||||
|
k = p = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*period = p;
|
||||||
|
|
||||||
|
/* Perform reverse lexicographic search. */
|
||||||
|
max_suffix_rev = SIZE_MAX;
|
||||||
|
j = 0;
|
||||||
|
k = p = 1;
|
||||||
|
while (j + k < needle_len)
|
||||||
|
{
|
||||||
|
a = CANON_ELEMENT (needle[j + k]);
|
||||||
|
b = CANON_ELEMENT (needle[max_suffix_rev + k]);
|
||||||
|
if (b < a)
|
||||||
|
{
|
||||||
|
/* Suffix is smaller, period is entire prefix so far. */
|
||||||
|
j += k;
|
||||||
|
k = 1;
|
||||||
|
p = j - max_suffix_rev;
|
||||||
|
}
|
||||||
|
else if (a == b)
|
||||||
|
{
|
||||||
|
/* Advance through repetition of the current period. */
|
||||||
|
if (k != p)
|
||||||
|
++k;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
j += p;
|
||||||
|
k = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else /* a < b */
|
||||||
|
{
|
||||||
|
/* Suffix is larger, start over from current location. */
|
||||||
|
max_suffix_rev = j++;
|
||||||
|
k = p = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Choose the longer suffix. Return the first byte of the right
|
||||||
|
half, rather than the last byte of the left half. */
|
||||||
|
if (max_suffix_rev + 1 < max_suffix + 1)
|
||||||
|
return max_suffix + 1;
|
||||||
|
*period = p;
|
||||||
|
return max_suffix_rev + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Return the first location of non-empty NEEDLE within HAYSTACK, or
|
||||||
|
NULL. HAYSTACK_LEN is the minimum known length of HAYSTACK. This
|
||||||
|
method is optimized for NEEDLE_LEN < LONG_NEEDLE_THRESHOLD.
|
||||||
|
Performance is guaranteed to be linear, with an initialization cost
|
||||||
|
of 2 * NEEDLE_LEN comparisons.
|
||||||
|
|
||||||
|
If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at
|
||||||
|
most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching.
|
||||||
|
If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 *
|
||||||
|
HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. */
|
||||||
|
static RETURN_TYPE
|
||||||
|
two_way_short_needle (const unsigned char *haystack, size_t haystack_len,
|
||||||
|
const unsigned char *needle, size_t needle_len)
|
||||||
|
{
|
||||||
|
size_t i; /* Index into current byte of NEEDLE. */
|
||||||
|
size_t j; /* Index into current window of HAYSTACK. */
|
||||||
|
size_t period; /* The period of the right half of needle. */
|
||||||
|
size_t suffix; /* The index of the right half of needle. */
|
||||||
|
|
||||||
|
/* Factor the needle into two halves, such that the left half is
|
||||||
|
smaller than the global period, and the right half is
|
||||||
|
periodic (with a period as large as NEEDLE_LEN - suffix). */
|
||||||
|
suffix = critical_factorization (needle, needle_len, &period);
|
||||||
|
|
||||||
|
/* Perform the search. Each iteration compares the right half
|
||||||
|
first. */
|
||||||
|
if (CMP_FUNC (needle, needle + period, suffix) == 0)
|
||||||
|
{
|
||||||
|
/* Entire needle is periodic; a mismatch can only advance by the
|
||||||
|
period, so use memory to avoid rescanning known occurrences
|
||||||
|
of the period. */
|
||||||
|
size_t memory = 0;
|
||||||
|
j = 0;
|
||||||
|
while (AVAILABLE (haystack, haystack_len, j, needle_len))
|
||||||
|
{
|
||||||
|
/* Scan for matches in right half. */
|
||||||
|
i = MAX (suffix, memory);
|
||||||
|
while (i < needle_len && (CANON_ELEMENT (needle[i])
|
||||||
|
== CANON_ELEMENT (haystack[i + j])))
|
||||||
|
++i;
|
||||||
|
if (needle_len <= i)
|
||||||
|
{
|
||||||
|
/* Scan for matches in left half. */
|
||||||
|
i = suffix - 1;
|
||||||
|
while (memory < i + 1 && (CANON_ELEMENT (needle[i])
|
||||||
|
== CANON_ELEMENT (haystack[i + j])))
|
||||||
|
--i;
|
||||||
|
if (i + 1 < memory + 1)
|
||||||
|
return (RETURN_TYPE) (haystack + j);
|
||||||
|
/* No match, so remember how many repetitions of period
|
||||||
|
on the right half were scanned. */
|
||||||
|
j += period;
|
||||||
|
memory = needle_len - period;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
j += i - suffix + 1;
|
||||||
|
memory = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* The two halves of needle are distinct; no extra memory is
|
||||||
|
required, and any mismatch results in a maximal shift. */
|
||||||
|
period = MAX (suffix, needle_len - suffix) + 1;
|
||||||
|
j = 0;
|
||||||
|
while (AVAILABLE (haystack, haystack_len, j, needle_len))
|
||||||
|
{
|
||||||
|
/* Scan for matches in right half. */
|
||||||
|
i = suffix;
|
||||||
|
while (i < needle_len && (CANON_ELEMENT (needle[i])
|
||||||
|
== CANON_ELEMENT (haystack[i + j])))
|
||||||
|
++i;
|
||||||
|
if (needle_len <= i)
|
||||||
|
{
|
||||||
|
/* Scan for matches in left half. */
|
||||||
|
i = suffix - 1;
|
||||||
|
while (i != SIZE_MAX && (CANON_ELEMENT (needle[i])
|
||||||
|
== CANON_ELEMENT (haystack[i + j])))
|
||||||
|
--i;
|
||||||
|
if (i == SIZE_MAX)
|
||||||
|
return (RETURN_TYPE) (haystack + j);
|
||||||
|
j += period;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
j += i - suffix + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Return the first location of non-empty NEEDLE within HAYSTACK, or
|
||||||
|
NULL. HAYSTACK_LEN is the minimum known length of HAYSTACK. This
|
||||||
|
method is optimized for LONG_NEEDLE_THRESHOLD <= NEEDLE_LEN.
|
||||||
|
Performance is guaranteed to be linear, with an initialization cost
|
||||||
|
of 3 * NEEDLE_LEN + (1 << CHAR_BIT) operations.
|
||||||
|
|
||||||
|
If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at
|
||||||
|
most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching,
|
||||||
|
and sublinear performance O(HAYSTACK_LEN / NEEDLE_LEN) is possible.
|
||||||
|
If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 *
|
||||||
|
HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, and
|
||||||
|
sublinear performance is not possible. */
|
||||||
|
static RETURN_TYPE
|
||||||
|
two_way_long_needle (const unsigned char *haystack, size_t haystack_len,
|
||||||
|
const unsigned char *needle, size_t needle_len)
|
||||||
|
{
|
||||||
|
size_t i; /* Index into current byte of NEEDLE. */
|
||||||
|
size_t j; /* Index into current window of HAYSTACK. */
|
||||||
|
size_t period; /* The period of the right half of needle. */
|
||||||
|
size_t suffix; /* The index of the right half of needle. */
|
||||||
|
size_t shift_table[1U << CHAR_BIT]; /* See below. */
|
||||||
|
|
||||||
|
/* Factor the needle into two halves, such that the left half is
|
||||||
|
smaller than the global period, and the right half is
|
||||||
|
periodic (with a period as large as NEEDLE_LEN - suffix). */
|
||||||
|
suffix = critical_factorization (needle, needle_len, &period);
|
||||||
|
|
||||||
|
/* Populate shift_table. For each possible byte value c,
|
||||||
|
shift_table[c] is the distance from the last occurrence of c to
|
||||||
|
the end of NEEDLE, or NEEDLE_LEN if c is absent from the NEEDLE.
|
||||||
|
shift_table[NEEDLE[NEEDLE_LEN - 1]] contains the only 0. */
|
||||||
|
for (i = 0; i < 1U << CHAR_BIT; i++)
|
||||||
|
shift_table[i] = needle_len;
|
||||||
|
for (i = 0; i < needle_len; i++)
|
||||||
|
shift_table[CANON_ELEMENT (needle[i])] = needle_len - i - 1;
|
||||||
|
|
||||||
|
/* Perform the search. Each iteration compares the right half
|
||||||
|
first. */
|
||||||
|
if (CMP_FUNC (needle, needle + period, suffix) == 0)
|
||||||
|
{
|
||||||
|
/* Entire needle is periodic; a mismatch can only advance by the
|
||||||
|
period, so use memory to avoid rescanning known occurrences
|
||||||
|
of the period. */
|
||||||
|
size_t memory = 0;
|
||||||
|
size_t shift;
|
||||||
|
j = 0;
|
||||||
|
while (AVAILABLE (haystack, haystack_len, j, needle_len))
|
||||||
|
{
|
||||||
|
/* Check the last byte first; if it does not match, then
|
||||||
|
shift to the next possible match location. */
|
||||||
|
shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])];
|
||||||
|
if (0 < shift)
|
||||||
|
{
|
||||||
|
if (memory && shift < period)
|
||||||
|
{
|
||||||
|
/* Since needle is periodic, but the last period has
|
||||||
|
a byte out of place, there can be no match until
|
||||||
|
after the mismatch. */
|
||||||
|
shift = needle_len - period;
|
||||||
|
memory = 0;
|
||||||
|
}
|
||||||
|
j += shift;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
/* Scan for matches in right half. The last byte has
|
||||||
|
already been matched, by virtue of the shift table. */
|
||||||
|
i = MAX (suffix, memory);
|
||||||
|
while (i < needle_len - 1 && (CANON_ELEMENT (needle[i])
|
||||||
|
== CANON_ELEMENT (haystack[i + j])))
|
||||||
|
++i;
|
||||||
|
if (needle_len - 1 <= i)
|
||||||
|
{
|
||||||
|
/* Scan for matches in left half. */
|
||||||
|
i = suffix - 1;
|
||||||
|
while (memory < i + 1 && (CANON_ELEMENT (needle[i])
|
||||||
|
== CANON_ELEMENT (haystack[i + j])))
|
||||||
|
--i;
|
||||||
|
if (i + 1 < memory + 1)
|
||||||
|
return (RETURN_TYPE) (haystack + j);
|
||||||
|
/* No match, so remember how many repetitions of period
|
||||||
|
on the right half were scanned. */
|
||||||
|
j += period;
|
||||||
|
memory = needle_len - period;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
j += i - suffix + 1;
|
||||||
|
memory = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* The two halves of needle are distinct; no extra memory is
|
||||||
|
required, and any mismatch results in a maximal shift. */
|
||||||
|
size_t shift;
|
||||||
|
period = MAX (suffix, needle_len - suffix) + 1;
|
||||||
|
j = 0;
|
||||||
|
while (AVAILABLE (haystack, haystack_len, j, needle_len))
|
||||||
|
{
|
||||||
|
/* Check the last byte first; if it does not match, then
|
||||||
|
shift to the next possible match location. */
|
||||||
|
shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])];
|
||||||
|
if (0 < shift)
|
||||||
|
{
|
||||||
|
j += shift;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
/* Scan for matches in right half. The last byte has
|
||||||
|
already been matched, by virtue of the shift table. */
|
||||||
|
i = suffix;
|
||||||
|
while (i < needle_len - 1 && (CANON_ELEMENT (needle[i])
|
||||||
|
== CANON_ELEMENT (haystack[i + j])))
|
||||||
|
++i;
|
||||||
|
if (needle_len - 1 <= i)
|
||||||
|
{
|
||||||
|
/* Scan for matches in left half. */
|
||||||
|
i = suffix - 1;
|
||||||
|
while (i != SIZE_MAX && (CANON_ELEMENT (needle[i])
|
||||||
|
== CANON_ELEMENT (haystack[i + j])))
|
||||||
|
--i;
|
||||||
|
if (i == SIZE_MAX)
|
||||||
|
return (RETURN_TYPE) (haystack + j);
|
||||||
|
j += period;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
j += i - suffix + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef AVAILABLE
|
||||||
|
#undef CANON_ELEMENT
|
||||||
|
#undef CMP_FUNC
|
||||||
|
#undef MAX
|
||||||
|
#undef RETURN_TYPE
|
@ -313,7 +313,13 @@ rpl_strerror (int n)
|
|||||||
break;
|
break;
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if GNULIB_defined_
|
# if GNULIB_defined_ESTALE
|
||||||
|
case ESTALE:
|
||||||
|
msg = "Stale NFS file handle";
|
||||||
|
break;
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if GNULIB_defined_ECANCELED
|
||||||
case ECANCELED:
|
case ECANCELED:
|
||||||
msg = "Operation canceled";
|
msg = "Operation canceled";
|
||||||
break;
|
break;
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#line 1
|
#line 1
|
||||||
/* A GNU-like <string.h>.
|
/* A GNU-like <string.h>.
|
||||||
|
|
||||||
Copyright (C) 1995-1996, 2001-2008 Free Software Foundation, Inc.
|
Copyright (C) 1995-1996, 2001-2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -31,6 +31,8 @@
|
|||||||
#ifndef _GL_STRING_H
|
#ifndef _GL_STRING_H
|
||||||
#define _GL_STRING_H
|
#define _GL_STRING_H
|
||||||
|
|
||||||
|
/* NetBSD 5.0 mis-defines NULL. */
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
#ifndef __attribute__
|
#ifndef __attribute__
|
||||||
/* This feature is available in gcc versions 2.5 and later. */
|
/* This feature is available in gcc versions 2.5 and later. */
|
||||||
@ -52,6 +54,21 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Return the first instance of C within N bytes of S, or NULL. */
|
||||||
|
#if @GNULIB_MEMCHR@
|
||||||
|
# if @REPLACE_MEMCHR@
|
||||||
|
# define memchr rpl_memchr
|
||||||
|
extern void *memchr (void const *__s, int __c, size_t __n)
|
||||||
|
__attribute__ ((__pure__));
|
||||||
|
# endif
|
||||||
|
#elif defined GNULIB_POSIXCHECK
|
||||||
|
# undef memchr
|
||||||
|
# define memchr(s,c,n) \
|
||||||
|
(GL_LINK_WARNING ("memchr has platform-specific bugs - " \
|
||||||
|
"use gnulib module memchr for portability" ), \
|
||||||
|
memchr (s, c, n))
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Return the first occurrence of NEEDLE in HAYSTACK. */
|
/* Return the first occurrence of NEEDLE in HAYSTACK. */
|
||||||
#if @GNULIB_MEMMEM@
|
#if @GNULIB_MEMMEM@
|
||||||
# if @REPLACE_MEMMEM@
|
# if @REPLACE_MEMMEM@
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Compare integer strings.
|
/* Compare integer strings.
|
||||||
|
|
||||||
Copyright (C) 2005, 2006 Free Software Foundation, Inc.
|
Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* Compare numeric strings. This is an internal include file.
|
/* Compare numeric strings. This is an internal include file.
|
||||||
|
|
||||||
Copyright (C) 1988, 1991, 1992, 1993, 1995, 1996, 1998, 1999, 2000,
|
Copyright (C) 1988, 1991, 1992, 1993, 1995, 1996, 1998, 1999, 2000,
|
||||||
2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
2003, 2004, 2005, 2006, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Compare numeric strings.
|
/* Compare numeric strings.
|
||||||
|
|
||||||
Copyright (C) 2005, 2006 Free Software Foundation, Inc.
|
Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
86
src/bin/coreutils/lib/strstr.c
Normal file
86
src/bin/coreutils/lib/strstr.c
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
/* -*- buffer-read-only: t -*- vi: set ro: */
|
||||||
|
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
|
||||||
|
#line 1
|
||||||
|
/* Copyright (C) 1991,92,93,94,96,97,98,2000,2004,2007,2008 Free Software
|
||||||
|
Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
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. */
|
||||||
|
|
||||||
|
/* This particular implementation was written by Eric Blake, 2008. */
|
||||||
|
|
||||||
|
#ifndef _LIBC
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Specification of strstr. */
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#ifndef _LIBC
|
||||||
|
# define __builtin_expect(expr, val) (expr)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define RETURN_TYPE char *
|
||||||
|
#define AVAILABLE(h, h_l, j, n_l) \
|
||||||
|
(!memchr ((h) + (h_l), '\0', (j) + (n_l) - (h_l)) \
|
||||||
|
&& ((h_l) = (j) + (n_l)))
|
||||||
|
#include "str-two-way.h"
|
||||||
|
|
||||||
|
/* Return the first occurrence of NEEDLE in HAYSTACK. Return HAYSTACK
|
||||||
|
if NEEDLE is empty, otherwise NULL if NEEDLE is not found in
|
||||||
|
HAYSTACK. */
|
||||||
|
char *
|
||||||
|
strstr (const char *haystack_start, const char *needle_start)
|
||||||
|
{
|
||||||
|
const char *haystack = haystack_start;
|
||||||
|
const char *needle = needle_start;
|
||||||
|
size_t needle_len; /* Length of NEEDLE. */
|
||||||
|
size_t haystack_len; /* Known minimum length of HAYSTACK. */
|
||||||
|
bool ok = true; /* True if NEEDLE is prefix of HAYSTACK. */
|
||||||
|
|
||||||
|
/* Determine length of NEEDLE, and in the process, make sure
|
||||||
|
HAYSTACK is at least as long (no point processing all of a long
|
||||||
|
NEEDLE if HAYSTACK is too short). */
|
||||||
|
while (*haystack && *needle)
|
||||||
|
ok &= *haystack++ == *needle++;
|
||||||
|
if (*needle)
|
||||||
|
return NULL;
|
||||||
|
if (ok)
|
||||||
|
return (char *) haystack_start;
|
||||||
|
|
||||||
|
/* Reduce the size of haystack using strchr, since it has a smaller
|
||||||
|
linear coefficient than the Two-Way algorithm. */
|
||||||
|
needle_len = needle - needle_start;
|
||||||
|
haystack = strchr (haystack_start + 1, *needle_start);
|
||||||
|
if (!haystack || __builtin_expect (needle_len == 1, 0))
|
||||||
|
return (char *) haystack;
|
||||||
|
needle -= needle_len;
|
||||||
|
haystack_len = (haystack > haystack_start + needle_len ? 1
|
||||||
|
: needle_len + haystack_start - haystack);
|
||||||
|
|
||||||
|
/* Perform the search. Abstract memory is considered to be an array
|
||||||
|
of 'unsigned char' values, not an array of 'char' values. See
|
||||||
|
ISO C 99 section 6.2.6.1. */
|
||||||
|
if (needle_len < LONG_NEEDLE_THRESHOLD)
|
||||||
|
return two_way_short_needle ((const unsigned char *) haystack,
|
||||||
|
haystack_len,
|
||||||
|
(const unsigned char *) needle, needle_len);
|
||||||
|
return two_way_long_needle ((const unsigned char *) haystack, haystack_len,
|
||||||
|
(const unsigned char *) needle, needle_len);
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef LONG_NEEDLE_THRESHOLD
|
@ -45,9 +45,13 @@
|
|||||||
# include <sys/types.h>
|
# include <sys/types.h>
|
||||||
|
|
||||||
/* On OSF/1 4.0, <sys/select.h> provides only a forward declaration
|
/* On OSF/1 4.0, <sys/select.h> provides only a forward declaration
|
||||||
of 'struct timeval', and no definition of this type.. */
|
of 'struct timeval', and no definition of this type. */
|
||||||
# include <sys/time.h>
|
# include <sys/time.h>
|
||||||
|
|
||||||
|
/* On Solaris 10, <sys/select.h> provides an FD_ZERO implementation
|
||||||
|
that relies on memset(), but without including <string.h>. */
|
||||||
|
# include <string.h>
|
||||||
|
|
||||||
/* The include_next requires a split double-inclusion guard. */
|
/* The include_next requires a split double-inclusion guard. */
|
||||||
# @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@
|
# @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@
|
||||||
|
|
||||||
|
@ -46,6 +46,30 @@
|
|||||||
#ifndef _GL_SYS_SOCKET_H
|
#ifndef _GL_SYS_SOCKET_H
|
||||||
#define _GL_SYS_SOCKET_H
|
#define _GL_SYS_SOCKET_H
|
||||||
|
|
||||||
|
#if !@HAVE_SA_FAMILY_T@
|
||||||
|
typedef unsigned short sa_family_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !@HAVE_STRUCT_SOCKADDR_STORAGE@
|
||||||
|
# include <alignof.h>
|
||||||
|
/* Code taken from glibc sysdeps/unix/sysv/linux/bits/socket.h on
|
||||||
|
2009-05-08, licensed under LGPLv2.1+, plus portability fixes. */
|
||||||
|
# define __ss_aligntype unsigned long int
|
||||||
|
# define _SS_SIZE 256
|
||||||
|
# define _SS_PADSIZE \
|
||||||
|
(_SS_SIZE - ((sizeof (sa_family_t) >= alignof (__ss_aligntype) \
|
||||||
|
? sizeof (sa_family_t) \
|
||||||
|
: alignof (__ss_aligntype)) \
|
||||||
|
+ sizeof (__ss_aligntype)))
|
||||||
|
|
||||||
|
struct sockaddr_storage
|
||||||
|
{
|
||||||
|
sa_family_t ss_family; /* Address family, etc. */
|
||||||
|
__ss_aligntype __ss_align; /* Force desired alignment. */
|
||||||
|
char __ss_padding[_SS_PADSIZE];
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
#if @HAVE_SYS_SOCKET_H@
|
#if @HAVE_SYS_SOCKET_H@
|
||||||
|
|
||||||
/* A platform that has <sys/socket.h>. */
|
/* A platform that has <sys/socket.h>. */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* tempname.c - generate the name of a temporary file.
|
/* tempname.c - generate the name of a temporary file.
|
||||||
|
|
||||||
Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||||
2000, 2001, 2002, 2003, 2005, 2006, 2007 Free Software Foundation,
|
2000, 2001, 2002, 2003, 2005, 2006, 2007, 2009 Free Software Foundation,
|
||||||
Inc.
|
Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Create a temporary file or directory.
|
/* Create a temporary file or directory.
|
||||||
|
|
||||||
Copyright (C) 2006, 2007 Free Software Foundation, Inc.
|
Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user