Bruno Haible [Fri, 23 Sep 2005 14:01:10 +0000 (14:01 +0000)]
Needs config.h.
Bruno Haible [Fri, 23 Sep 2005 13:42:08 +0000 (13:42 +0000)]
Test case for verify.h.
Paul Eggert [Fri, 23 Sep 2005 04:15:13 +0000 (04:15 +0000)]
Sync from coreutils.
* .cppi-disable: Add regcomp.c, regex_internal.c, regex_internal.h,
stat-time.h.
* argmatch.h: Include verify.h
(ARGMATCH_VERIFY): Use verify rather than rolling our own.
(ARGMATCH_ASSERT): Remove; unused.
* canonicalize.c: Assume STDC_HEADERS.
* exclude.c: Include "strcase.h".
* regex_internal.h [!defined _LIBC]: Likewise.
* getusershell.c: Include stdio--.h rather than stdio.h
and stdio-safer.h.
(getusershell): Call fopen, not fopen_safer.
* save-cwd.c: Include fcntl--.h rather than fcntl.h.
Do not include unistd-safer.h.
(save_cwd): Don't call fd_safer; no longer needed
now that we include fcntl--.h.
* modules/argmatch (Depends-on): Add verify.
* modules/getloadavg (Depends-on): Depend on fcntl-safer, not
unistd-safer.
* modules/save-cwd (Depends-on): Likewise.
* backupfile.m4, calloc.m4, chown.m4, cloexec.m4, dup2.m4:
* fileblocks.m4, free.m4, ftruncate.m4, getcwd.m4, getpagesize.m4:
* getugroups.m4, group-member.m4, idcache.m4, link-follow.m4:
* mkstemp.m4, mktime.m4, mountlist.m4, nanosleep.m4, pathmax.m4:
* physmem.m4, posixver.m4, putenv.m4, safe-read.m4, same.m4:
* save-cwd.m4, stdio-safer.m4, unistd-safer.m4, unlinkdir.m4:
* userspec.m4, xgetcwd.m4, xreadlink.m4:
Don't bother checking for string.h, stdlib.h, unistd.h.
* fts.m4 (gl_FUNC_FTS_CORE): Don't require
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK; that's now the lstat
module's job.
* jm-macros.m4 (gl_MACROS): Likewise.
* prereq.m4 (gl_PREREQ): Add gl_FUNC_LSTAT.
* backupfile.c: Use ARGMATCH_VERIFY, just in case.
* posixtm.c (posixtime) [lint]: Initialize *all* of tm0, not just
the .tm_year member, since otherwise gcc-4.0 would now warn about
tm_zone, tm_gmtoff, tm_isdst, tm_yday, tm_wday.
* quotearg.c (quotearg_n_options): Change code to be suboptimal, in
order to avoid an unsuppressible warning from gcc on 64-bit systems.
* lstat.m4 (gl_FUNC_LSTAT):
Use AC_LIBSOURCES to require lstat.c and lstat.h.
Remove obsolete comment.
* xreadlink.m4: Use AC_LIBSOURCES and AC_LIBOBJ.
* xstrtod.m4: Likewise.
Paul Eggert [Thu, 22 Sep 2005 23:39:06 +0000 (23:39 +0000)]
Log first part of merge from coreutils.
Paul Eggert [Thu, 22 Sep 2005 23:37:18 +0000 (23:37 +0000)]
* strftime.c (my_strftime): Rewrite the previous change slightly,
to make it a bit faster and (I hope) clearer.
* strftime.c (my_strftime): Add support for %:z, %::z, %:::z.
Fix bug in formats like %2N.
* strftime.c [FPRINTFTIME] (fprintftime): Provide a new interface:
size_t fprintftime (FILE *fp, char const *fmt, struct tm const *tm,
int utc, int nanoseconds);
Background:
date should not have to allocate a megabyte of virtual memory to
handle a format argument like +%1048575T. When implemented with
strftime, it must allocate such a buffer, use strftime to fill it
in, print it, then free it.
With fprintftime, it simply prints everything and exits.
With no need for memory allocation, that's one fewer way to fail.
* strftime.c (my_strftime): Parse the colons of %:::z *after* the
optional field width, not before, so we accept %9:z, not %:9z.
(my_strftime): Be sure to use L_('x') for literals.
Paul Eggert [Thu, 22 Sep 2005 23:30:37 +0000 (23:30 +0000)]
* modules/openat (Files): Add lib/openat-die.c.
(Depends-on): Remove error, exitfail.
Add dirname.
* lib/openat.c (fdopendir): Be sure to close the supplied
file descriptor before returning. This makes our replacement
implementation a little closer to Solaris's, where fdopendir
ties the file descriptor to the returned DIR* pointer.
* lib/openat.c (unlinkat): New function.
* lib/openat.h (unlinkat): Add prototype.
* lib/openat-die.c (openat_save_fail): Rename from openat_save_die.
(openat_restore_fail): Rename from openat_restore_die.
* lib/openat.c, openat.h: Reflect s/_die/_fail/ renaming.
Provide an alternative to exiting immediately upon save_cwd or
restore_cwd failure. Now, an application can arrange e.g.,
to perform a longjump in that case.
* lib/openat.c: Include dirname.h.
Use IS_ABSOLUTE_FILE_NAME rather than testing for leading slash.
(rpl_openat, fdopendir, fstatat): Call openat_save_die
and openat_restore_die rather than calling error directly.
Don't include "error.h" or "exitfail.h"; they're no longer needed.
* lib/openat-die.c (openat_save_die, openat_restore_die): New file.
* lib/openat.h (openat_save_die, openat_restore_die): Declare and define.
* m4/openat.m4 (gl_FUNC_OPENAT): Add openat-die.c.
Paul Eggert [Thu, 22 Sep 2005 23:24:03 +0000 (23:24 +0000)]
* mkdir-p.c (ENOSYS): Define to EEXIST if not defined.
(make_dir_parents): Treat ENOSYS like EEXIST.
Improve quality of diagnostics on restore_cwd failure.
* mkdir-p.h (make_dir): Remove. All uses replaced by mkdir.
(make_dir_parents): Last arg is now int * (for errno), not bool *.
* mkdir-p.c (make_dir, make_dir_parents): Likewise.
Rewrite "mkdir -p" algorithm to avoid the need for "stat"
each time through the loop. Do not diagnose restore_cwd failure;
that is the caller's job (and perhaps the caller does not care).
* mkdir-p.c (CLEANUP_CWD, CLEANUP): Remove.
(make_dir_parents): Revamp to avoid need for CLEANUP_CWD, CLEANUP.
If the file already exists but is not a directory, don't bother
to try to make its parents.
Close potential file descriptor leak if we can't chdir("/") (!).
Don't always return true if chdir($PWD) fails; return true only
if the requested action was done successfully (except for the
chdir($PWD)).
Don't log final directory unless we actually made it.
Refactor to avoid duplicate code to fix up permissions.
Don't attempt to fix up parent permissions if chdir($PWD) fails.
* mkdir-p.c (make_dir_parents): Don't let a failed chdir($PWD)
stop us from restricting permissions of just-created absolute-named
directories.
* mkdir-p.c (CLEANUP_CWD): Return *true*, not false when failing
to restore initial working directory.
* mkdir-p.c (make_dir_parents): New parameter: different_working_dir,
to tell caller if/when we change the working directory and are
unable to return to the initial one.
* mkdir-p.h (make_dir_parents): Update prototype.
* mkdir-p.c (CLEANUP_CWD): Change one more `return 1' to
`return false'. This fixes a bug introduced on 2004-07-30.
Assume HAVE_UNISTD_H, i.e., include <unistd.h> unconditionally.
Assume HAVE_FCNTL_H (i.e., include <fcntl.h> unconditionally,
and don't include <sys/file.h>).
Paul Eggert [Thu, 22 Sep 2005 23:15:09 +0000 (23:15 +0000)]
* getloadavg.c: Include fcntl--.h rather than fcntl.h.
Do not include unistd-safer.h.
(getloadavg): Don't call fd_safer; no longer needed
now that we include fcntl--.h.
* getloadavg.c:
Assume HAVE_UNISTD_H, i.e., include <unistd.h> unconditionally.
Assume HAVE_FCNTL_H (i.e., include <fcntl.h> unconditionally,
and don't include <sys/file.h>).
* getloadavg.c (getloadavg) [__CYGWIN__]: Port to cygwin.
[__linux__]: Allocate a big enough buffer for /proc/loadavg.
[!LDAV_DONE]: Avoid unused variable warning.
Paul Eggert [Thu, 22 Sep 2005 23:08:15 +0000 (23:08 +0000)]
* m4/getdate.m4 (gl_C_COMPOUND_LITERALS): New macro.
(gl_GETDATE): Use it.
* lib/getdate.y (relative_time): New type.
(RELATIVE_TIME_0): New constant.
(parser_control): Use relative_time instead of doing it ourselves.
(%union): Add new relative_time rel member.
(tYEAR_UNIT, tMONTH_UNIT, tHOUR_UNIT, tMINUTE_UNIT, tSEC_UNIT):
Now typeless.
(relunit, relunit_snumber): Now of type rel.
(zone, rel, relunit, get_date): Adjust to above changes.
Paul Eggert [Thu, 22 Sep 2005 23:01:01 +0000 (23:01 +0000)]
Regenerate.
Paul Eggert [Thu, 22 Sep 2005 22:56:28 +0000 (22:56 +0000)]
* modules/verify: New file.
* lib/verify.h: New file.
* MODULES.html.sh (Diagnostics <assert.h>): New section,
with "verify" module.
Bruno Haible [Wed, 21 Sep 2005 19:34:04 +0000 (19:34 +0000)]
Add back unicode_to_mb declaration that was lost on the way from GNU tar to
GNU coreutils in 2001/2002.
Derek R. Price [Tue, 20 Sep 2005 16:44:50 +0000 (16:44 +0000)]
* getaddrinfo.c: Don't include <netdb.h> included from getaddrinfo.h.
Bruno Haible [Tue, 20 Sep 2005 11:48:17 +0000 (11:48 +0000)]
Ignore trailing slashes in --m4-base value etc.
Bruno Haible [Tue, 20 Sep 2005 11:00:51 +0000 (11:00 +0000)]
Sort in a locale-independent way.
Bruno Haible [Mon, 19 Sep 2005 20:51:45 +0000 (20:51 +0000)]
Provide a default for --tests-base.
Jim Meyering [Mon, 19 Sep 2005 17:44:57 +0000 (17:44 +0000)]
*** empty log message ***
Jim Meyering [Mon, 19 Sep 2005 17:44:46 +0000 (17:44 +0000)]
(License): Change to LGPL.
Paul Eggert [Mon, 19 Sep 2005 17:28:14 +0000 (17:28 +0000)]
Use a consistent style for including <config.h>.
* __fpending.c, acl.c, argmatch.c,
argp-help.c, argp-parse.c,
argp-pvh.c, backupfile.c, basename.c, c-stack.c,
calloc.c, check-version.c, cloexec.c, closeout.c, copy-file.c,
creat-safer.c, cycle-check.c, dirfd.c, dirname.c, dup-safer.c,
dup2.c, euidaccess.c, exclude.c, exitfail.c, fatal-signal.c,
fd-safer.c, file-type.c, fileblocks.c, filemode.c,
filenamecat.c, findprog.c, fnmatch.c, fopen-safer.c, free.c,
fsusage.c, ftruncate.c, full-write.c, fwriteerror.c,
getaddrinfo.c, getcwd.c, getdelim.c, getline.c, getlogin_r.c,
getndelim2.c, getnline.c, getopt1.c, getpass.c, group-member.c,
hard-locale.c, hash-pjw.c, hash.c, human.c, idcache.c,
inet_ntop.c, isdir.c, long-options.c, malloc.c, memcasecmp.c,
memcmp.c, memcoll.c, memcpy.c, memmove.c, mkdir-p.c,
modechange.c, mountlist.c, open-safer.c, physmem.c,
pipe-safer.c, pipe.c, poll.c, posixver.c, progname.c,
progreloc.c, putenv.c, quote.c, quotearg.c, readline.c,
readlink.c, realloc.c, regex.c, rename.c, rmdir.c, rpmatch.c,
safe-read.c, same.c, save-cwd.c, savedir.c, sig2str.c,
strcspn.c, strerror.c, stripslash.c, strncasecmp.c, strndup.c,
strnlen.c, strnlen1.c, strsep.c, strstr.c, strtod.c,
strtoimax.c, strtol.c, strverscmp.c, tempname.c, time_r.c,
userspec.c, utimecmp.c, version-etc-fsf.c,
version-etc.c, wait-process.c, xalloc-die.c, xgetcwd.c,
xmalloc.c, xmemcoll.c, xnanosleep.c, xreadlink.c, xsetenv.c,
xstrndup.c, xstrtoimax.c, xstrtol.c, xstrtoumax.c, yesno.c:
Standardize inclusion of config.h.
* __fpending.h, dirfd.h, getdate.h, human.h,
inttostr.h: Removed inclusion of config.h from header files.
* inttostr.c: Adjusted in-tree users.
* timespec.h: Remove superfluous warning to include config.h.
* atexit.c, chdir-long.c chown.c, fchown-stub.c, getgroups.c,
gettimeofday.c, lchown.c, lstat.c, mkdir.c, mkstemp.c,
nanosleep.c, openat.c, raise.c, readtokens0.c, readutmp.c,
unlinkdir.c: Guard inclusion of config.h with HAVE_CONFIG_H.
Simon Josefsson [Mon, 19 Sep 2005 16:11:10 +0000 (16:11 +0000)]
* socklen.m4: Fix typo.
Derek R. Price [Mon, 19 Sep 2005 16:01:19 +0000 (16:01 +0000)]
* srclist.txt: glibc's glob.h is now in lib/glob-libc.h.
Bruno Haible [Mon, 19 Sep 2005 15:48:03 +0000 (15:48 +0000)]
Move many things into separate files.
Bruno Haible [Mon, 19 Sep 2005 15:47:38 +0000 (15:47 +0000)]
Documentation of gnulib-tool.
Bruno Haible [Mon, 19 Sep 2005 15:47:27 +0000 (15:47 +0000)]
Note about inet_ntoa.
Bruno Haible [Mon, 19 Sep 2005 15:46:53 +0000 (15:46 +0000)]
Note about ctime.
Bruno Haible [Mon, 19 Sep 2005 15:46:26 +0000 (15:46 +0000)]
Documentation about quote and quotearg modules.
Bruno Haible [Mon, 19 Sep 2005 15:38:33 +0000 (15:38 +0000)]
Major update of the "Invoking gnulib-tool" chapter.
Bruno Haible [Mon, 19 Sep 2005 15:33:19 +0000 (15:33 +0000)]
Support --with-tests also with --import.
Bruno Haible [Mon, 19 Sep 2005 15:32:51 +0000 (15:32 +0000)]
Comment out too much verbosity in --dry-run.
Bruno Haible [Mon, 19 Sep 2005 15:32:08 +0000 (15:32 +0000)]
Portability fix: readlink is not portable.
Bruno Haible [Mon, 19 Sep 2005 15:31:32 +0000 (15:31 +0000)]
Oops.
Bruno Haible [Mon, 19 Sep 2005 15:31:11 +0000 (15:31 +0000)]
Rework the way --dry-run works.
Bruno Haible [Mon, 19 Sep 2005 15:29:40 +0000 (15:29 +0000)]
Speed up the matching of new and old files.
Karl Berry [Mon, 19 Sep 2005 12:44:31 +0000 (12:44 +0000)]
srclist.update
Karl Berry [Sun, 18 Sep 2005 12:30:04 +0000 (12:30 +0000)]
srclist.update
Paul Eggert [Sat, 17 Sep 2005 06:54:00 +0000 (06:54 +0000)]
(set_stat_atime, set_stat_ctime, set_stat_mtime): Remove; they were
buggy in the HAVE_STRUCT_STAT_ST_SPARE1 case, and they were dubious
anyway. I rewrote 'tar' to not use them any more.
Paul Eggert [Fri, 16 Sep 2005 21:37:31 +0000 (21:37 +0000)]
* config/srclist.txt: Remove glibc bug 1033 and uncomment mktime.c.
Karl Berry [Fri, 16 Sep 2005 07:40:01 +0000 (07:40 +0000)]
.
Paul Eggert [Fri, 16 Sep 2005 07:18:35 +0000 (07:18 +0000)]
* modules/utimecmp (Depends-on): Add stat-time.
Paul Eggert [Fri, 16 Sep 2005 07:16:21 +0000 (07:16 +0000)]
* utimecmp.c: Include stat-time.h.
(SYSCALL_RESOLUTION): Depend on whether various struct stat
members exist, not on the obsolescent ST_MTIM_NSEC.
(utimecmp): Use the new stat-time functions rater than TIMESPEC_NS.
Paul Eggert [Fri, 16 Sep 2005 06:52:14 +0000 (06:52 +0000)]
* MODULES.html.sh (File system functions): Add stat-time.
* lib/stat-time.h: New file.
* lib/timespec.h (ST_TIME_CMP_NS, ST_TIME_CMP, ATIME_CMP, CTIME_CMP):
(MTIME_CMP, TIMESPEC_NS): Remove. Now done by stat-time.h,
in a different way.
(timespec_cmp): New function.
* m4/st_mtim.m4: Remove. Superseded by...
* m4/stat-time.m4: New file.
* m4/timespec.m4 (gl_TIMESPEC): Require AC_C_INLINE.
Do not invoke AC_STRUCT_ST_MTIM_NSEC; no longer needed.
* modules/stat-time: New file.
* modules/timespec (Files): Remove m4/st_mtim.m4; this
is now done in a different way, by the stat-time module.
Derek R. Price [Fri, 16 Sep 2005 00:23:36 +0000 (00:23 +0000)]
* regcomp.c, regexec.c, regex_internal.c: Back out previous
changes, consolidating in...
* regex_internal.h: ...this file.
Derek R. Price [Thu, 15 Sep 2005 19:14:23 +0000 (19:14 +0000)]
* regex_internal.h: Blank `pure' for GNUC < 3.
* regex_internal.c: Ditto, using this...
(__GNUC_PREREQ): ...new macro.
* regcomp.c, regexec.c: Blank `always_inline' for GNUC < 3.1 using...
(__GNUC_PREREQ): ...this new macro.
Bruno Haible [Thu, 15 Sep 2005 16:25:48 +0000 (16:25 +0000)]
Fix redefinition problem: strstr may be defined as a macro in string.h.
Karl Berry [Thu, 15 Sep 2005 11:53:22 +0000 (11:53 +0000)]
autoupdate
Karl Berry [Wed, 14 Sep 2005 13:35:43 +0000 (13:35 +0000)]
autoupdate
Jim Meyering [Tue, 13 Sep 2005 15:06:24 +0000 (15:06 +0000)]
remove trailing blanks
Derek R. Price [Tue, 13 Sep 2005 13:23:57 +0000 (13:23 +0000)]
* canon-host.c (canon_host_r): Set *cherror on memory allocation
failure.
Reported by Jim Meyering <jim@meyering.net>.
Jim Meyering [Tue, 13 Sep 2005 12:39:28 +0000 (12:39 +0000)]
*** empty log message ***
Jim Meyering [Tue, 13 Sep 2005 12:37:48 +0000 (12:37 +0000)]
Filter through gnu indent and reword comments slightly.
Jim Meyering [Tue, 13 Sep 2005 12:35:24 +0000 (12:35 +0000)]
(ch_strerror_r): Tweak cpp indentation and spacing.
Simon Josefsson [Tue, 13 Sep 2005 08:04:11 +0000 (08:04 +0000)]
2005-09-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> (tiny change)
* lib/base64.c: Typo.
(base64_encode): Put b64str in initialized data section.
Karl Berry [Tue, 13 Sep 2005 07:38:26 +0000 (07:38 +0000)]
.
Derek R. Price [Tue, 13 Sep 2005 04:15:15 +0000 (04:15 +0000)]
* modules/canon-host: Add canon-host.h. Depend on getaddrinfo. Make
LGPL.
* modules/getaddrinfo: Add link to opengroup spec. Depend on strdup.
Make canon-host require getaddrinfo.
* m4/canon-host.m4 (gl_CANON_HOST): Remove most dependencies.
AC_LIBSOURCE canon-host.h. Call...
(gl_PREREQ_CANON_HOST): ...this new function, which requires
gl_GETADDRINFO.
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Compile gai_strerror when
needed.
Return usable errors from canon-host.
* lib/canon-host.h: New file.
* lib/canon-host.c (canon_host): Wrap...
(canon_host_r): ...this new function, which now relies exclusively on
getaddrinfo.
(ch_strerror): New function.
(last_cherror): New global.
* lib/getaddrinfo.c: Move include of getaddrinfo.h first to test
interface.
(getaddrinfo): Add AI_CANONNAME functionality. Don't do arithmetic
on void *.
(freeaddrinfo): Free ai->ai_canonname when set.
Derek R. Price [Tue, 13 Sep 2005 03:47:44 +0000 (03:47 +0000)]
* modules/glob (Files): Add glob-libc.h.
* lib/glob-libc.h: Renamed from glob_.h. The new version is
taken from libc's glob.h, except with '#ifdef __GLOB_GNULIB'
protecting things that should be done only in gnulib contexts.
* lib/glob_.h: New file, containing only the glob things needed for
gnulib.
(GLOB_PREFIX): Remove. All uses changed to look for __GLOB_GNULIB.
(__GLOB_CONCAT, __GLOB_XCONCAT, __GLOB_ID): Remove; no longer needed.
(glob, globfree, glob_pattern_p): Now defined simply in terms of
rpl_glob, rpl_globfree, rpl_glob_pattern_p.
(__GLOB_GNULIB): New macro, to keep the glob.h changes clearer
and to respect the namespace rules better.
* m4/glob.m4 (gl_GLOB_SUBSTITUTE): AC_LIBSOURCES for glob.c,
glob_.h, glob-libc.h.
(gl_PREREQ_GLOB): Remove _SYS_CDEFS_H hack; no longer needed.
Paul Eggert [Mon, 12 Sep 2005 22:05:15 +0000 (22:05 +0000)]
Merge glibc and coreutils changes into gnulib, plus a few
extra fixes.
* md5.c: Use #error rather than a string.
(CYCLIC): New macro, from glibc source. Use it instead of rol.
* md5.h (__GNUC_PREREQ, __THROW): Define if not defined already.
(__attribute__): Define to empty for non recent-GCC.
(__md5_buffer, __md5_finish_ctx, __md5_init_ctx, __md5_process_block):
(__md5_process_bytes, __md5_read_ctx, __md5_stream):
Renamed from their non-__ counterparts, with new macros replacing
them if not _LIBC. Add __THROW attribute.
(rol): Remove.
(struct md5_ctx): Align buffer if using GCC.
* sha1.h (struct sha1_ctx): Likewise.
* sha1.c (SWAP): Renamed from the NOTSWAP. All uses changed.
The old name was backwards.
(NOTSWAP): Remove; not used.
(rol): New macro, moved here from md5.h.
(sha1_process_block): Remove a FIXME that doesn't make sense.
Derek R. Price [Mon, 12 Sep 2005 14:25:04 +0000 (14:25 +0000)]
* gai_strerror.c: Include config.h when available. Include
getaddrinfo.h before other headers to test interface.
Reported by Larry Jones <lawrence.jones@ugs.com>.
Karl Berry [Fri, 9 Sep 2005 07:37:05 +0000 (07:37 +0000)]
.
Paul Eggert [Thu, 8 Sep 2005 21:45:38 +0000 (21:45 +0000)]
* modules/utimens (Files): Add m4/utimbuf.m4, since
m4/utimens.m4 requires gl_CHECK_TYPE_STRUCT_UTIMBUF.
Paul Eggert [Thu, 8 Sep 2005 20:18:48 +0000 (20:18 +0000)]
* lib/glob.c (glob, globfree, __glob_pattern_p): Use old-style function
definitions, since that's the preferred style in glibc.
Fix a minor spacing issue, and update copyright notice to match glibc's.
* config/srclist.txt: Remove glibc bug 1061; it's been fixed.
Simon Josefsson [Thu, 8 Sep 2005 20:08:18 +0000 (20:08 +0000)]
2005-09-08 Simon Josefsson <jas@extundo.com>
* modules/socklen: New file.
2005-08-31 Simon Josefsson <jas@extundo.com>
* socklen.m4: New file.
Paul Eggert [Tue, 6 Sep 2005 17:50:47 +0000 (17:50 +0000)]
* regex_internal.h (bitset_not): Add parens to avoid gcc -Wall warning.
Simon Josefsson [Tue, 6 Sep 2005 08:21:32 +0000 (08:21 +0000)]
* getpass.c (getpass): Fix typo, test for HAVE_TCSETATTR and not
TCSETATTR. Reported by Derek Price <derek@ximbiot.com>.
Paul Eggert [Tue, 6 Sep 2005 07:36:48 +0000 (07:36 +0000)]
Change bitset word type from unsigned int to unsigned long int,
as this has better performance on typical 64-bit hosts.
Port bitset code to hosts with unusual word sizes.
* lib/regcomp.c (build_equiv_class, build_charclass):
(build_range_exp, build_collating_symbol):
Prefer bitset to re_bitset_ptr_t in prototypes, when the actual
argument is a bitset. This is merely a style issue, but it makes
it clearer that an entire array is expected.
(re_compile_fastmap_iter, init_dfa, init_word_char, optimize_subexps):
* lib/regcomp.c (lower_subexp, parse_bracket_exp):
(built_charclass_op):
Port to the case where bitset_word is not the same as unsigned int.
* lib/regex_internal.h (bitset_set, bitset_clear, bitset_contain):
(bitset_not, bitset_merge, bitset_set_all, bitset_mask):
Likewise.
* lib/regexec.c (check_dst_limits_calc_pos_1):
(check_subexp_matching_top):
(build_trtable, group_nodes_into_DFAstates):
Likewise.
* lib/regcomp.c (re_compile_fastmap_iter, utf8_sb_map):
(optimize_utf8):
Don't assume that SBC_MAX is a multiple of BITSET_WORD_BITS.
* lib/regex_internal.h (bitset_set_all, bitset_not): Likewise.
* lib/regexec.c (group_nodes_into_DFAstates): Likewise.
* lib/regcomp.c (utf8_sb_map): Don't assume UINT_MAX == 0xffffffff.
* lib/regcomp.c (optimize_subexps, lower_subexp):
Work even if bitset_word has holes in its bitwise representation.
* lib/regex_internal.h (BITSET_WORD_BITS): Likewise.
* lib/regexec.c (check_dst_limits_calc_pos_1):
(heck_subexp_matching_top): Likewise.
* lib/regex_internal.c (re_string_reconstruct):
Don't assume UCHAR_MAX == 255.
* lib/regex_internal.h (bitset_set_all): Likewise.
* lib/regex_internal.h (BITSET_WORD_BITS): Renamed from UINT_BITS.
All uses changed.
(BITSET_WORDS): Renamed from BITSET_UINTS. All uses changed.
(bitset_word): New type, replacing 'unsigned int' for bitset uses.
All uses changed.
(BITSET_WORD_MAX): New macro.
(bitset_set, bitset_clear, bitset_contain, bitset_empty):
(bitset_set_all, bitset_copy): Now inline functions, not macros.
(bitset_empty, bitset_copy):
Prefer sizeof (bitset) to multiplying it out ourselves.
(bitset_not_merge): Remove; unused.
(bitset_contain): Return bool, not unsigned int with one bit on.
All callers changed.
* lib/regexec.c (build_trtable): Don't assume bitset has no stricter
alignment than re_node_set; do this by defining a new internal
type struct dests_alloc and using it to allocate memory.
* config/srclist.txt: Add glibc bug 1302.
Bruno Haible [Mon, 5 Sep 2005 11:40:42 +0000 (11:40 +0000)]
Fix cmp invocation.
Simon Josefsson [Sun, 4 Sep 2005 17:26:07 +0000 (17:26 +0000)]
2005-09-04 Martin Lambers <marlam@marlam.de> (tiny change)
* modules/size_max (Makefile.am): Add size_max.h
Derek R. Price [Sun, 4 Sep 2005 15:57:34 +0000 (15:57 +0000)]
* gnulib-tool: Fix reversed $symbolic logic.
Derek R. Price [Sun, 4 Sep 2005 00:05:32 +0000 (00:05 +0000)]
* getlogin_r (gl_GETLOGIN_R): Fix cut & paste error.
From Larry Jones <lawrence.jones@ugs.com>.
Simon Josefsson [Sat, 3 Sep 2005 09:05:55 +0000 (09:05 +0000)]
* srclist.txt: Add glibc bugs 1293.
Simon Josefsson [Sat, 3 Sep 2005 08:20:57 +0000 (08:20 +0000)]
2005-09-03 Simon Josefsson <jas@extundo.com>
* gnulib-tool: Fix typo.
Karl Berry [Sat, 3 Sep 2005 07:34:57 +0000 (07:34 +0000)]
.
Paul Eggert [Fri, 2 Sep 2005 22:54:59 +0000 (22:54 +0000)]
Check for arithmetic overflow when calculating sizes, to prevent
some buffer-overflow issues. These patches are conservative, in the
sense that when I couldn't determine whether an overflow was possible,
I inserted a run-time check.
* regex_internal.h (re_xmalloc, re_xrealloc, re_x2realloc): New macros.
(SIZE_MAX) [!defined SIZE_MAX]: New macro.
(re_alloc_oversized, re_x2alloc_oversized, re_xnmalloc):
(re_xnrealloc, re_x2nrealloc): New inline functions.
* lib/regcomp.c (init_dfa, analyze, build_range_exp, parse_bracket_exp):
(build_equiv_class, build_charclass): Check for arithmetic overflow
in size expression calculations.
* lib/regex_internal.c (re_string_realloc_buffers):
(build_wcs_upper_buffer, re_node_set_add_intersect):
(re_node_set_init_union, re_node_set_insert, re_node_set_insert_last):
(re_dfa_add_node, register_state): Likewise.
* lib/regexec.c (re_search_stub, re_copy_regs, re_search_internal):
(prune_impossible_nodes, push_fail_stack, set_regs, check_arrival):
(build_trtable, extend_buffers, match_ctx_init, match_ctx_add_entry):
(match_ctx_add_subtop, match_ctx_add_sublast): Likewise.
Paul Eggert [Fri, 2 Sep 2005 19:43:54 +0000 (19:43 +0000)]
* modules/inttostr (Files): Add m4/inttypes_h.m4, m4/stdint_h.m4,
m4/ulonglong.m4. Problem reported by Martin Lambers.
Bruno Haible [Fri, 2 Sep 2005 17:28:31 +0000 (17:28 +0000)]
Provide defaults where needed.
Simon Josefsson [Fri, 2 Sep 2005 14:44:37 +0000 (14:44 +0000)]
2005-09-02 Simon Josefsson <jas@extundo.com>
* modules/havelib: New module.
* modules/gettext, modules/iconv, modules/lock, modules/readline:
Use havelib.
Karl Berry [Fri, 2 Sep 2005 12:27:28 +0000 (12:27 +0000)]
argz.m4 moved in libtool source
Bruno Haible [Fri, 2 Sep 2005 11:23:44 +0000 (11:23 +0000)]
Omit lib-link.m4 and lib-prefix.m4 temporarily.
Bruno Haible [Fri, 2 Sep 2005 11:20:50 +0000 (11:20 +0000)]
Support for lib vs. lib64 distinction on biarch platforms.
Bruno Haible [Fri, 2 Sep 2005 11:18:48 +0000 (11:18 +0000)]
Don't put symlinks unless asked for.
Paul Eggert [Thu, 1 Sep 2005 22:36:04 +0000 (22:36 +0000)]
* lib/glob.c (GET_LOGIN_NAME_MAX): Renamed from LOGIN_NAME_MAX,
to avoid a collision with bits/local_lim.h in glibc.
All uses changed. Problem reported by Dmitry V. Levin in
<http://sources.redhat.com/bugzilla/show_bug.cgi?id=1060>.
Paul Eggert [Thu, 1 Sep 2005 22:10:59 +0000 (22:10 +0000)]
* regex_internal.c (re_string_context_at): Fix bug where the
code assumed that Idx is signed.
* config/srclist.txt: Add glibc bug 1287.
Paul Eggert [Thu, 1 Sep 2005 21:01:26 +0000 (21:01 +0000)]
* lib/regex_internal.c (build_wcs_upper_buffer): Fix portability
bugs in int versus size_t comparisons.
* config/srclist.txt: Add glibc bug 1285, 1286.
Paul Eggert [Thu, 1 Sep 2005 19:41:07 +0000 (19:41 +0000)]
Use bool where appropriate.
* lib/regcomp.c (re_set_fastmap): ICASE arg is bool, not int.
All callers changed.
(calc_eclosure_iter): Likewise, for ROOT arg.
(parse_bracket_element): Likewise, for ACCEPT_HYPHEN arg.
(build_charclass_op): Likewise, for NON_MATCH arg.
* lib/regex_internal.c (re_string_allocate, re_string_construct):
(re_string_construct_common): Likewise, for ICASE arg.
* lib/regexec.c (re_search_2_stub, re_search_stub):
Likewise, for RET_LEN arg.
(check_matching): Likewise, for FL_LONGEST_MATCH arg.
(set_regs): Likewise, for FL_BACKTRACK arg.
* lib/regcomp.c (re_compile_fastmap_iter, optimize_utf8):
(duplicate_node_closure, calc_inveclosure, calc_eclosure):
(calc_eclosure_iter, parse_bracket_exp):
Use bool for internal variables that are booleans.
* lib/regexec.c (re_search_internal, check_matching):
(proceed_next_node):
(set_regs, build_sifted_states, sift_states_bkref):
(check_arrival_add_next_nodes, check_arrival_expand_ecl_sub):
(expand_bkref_cache, build_trtable, group_nodes_into_DFAstates):
(find_collation_sequence_value):
Likewise.
* lib/regex_internal.c (re_node_set_insert, re_node_set_insert_last):
(re_node_set_compare):
Return bool, not int. All callers changed.
* lib/regexec.c (check_halt_node_context, check_dst_limits):
(build_trtable, check_node_accept): Likewise.
* lib/regex_internal.h: Include stdbool.h.
Fix bugs uncovered when converting to bool.
* lib/regcomp.c (calc_eclosure_iter): Check for storage allocation
failure instead of charging ahead blindly.
* lib/regex_internal.c (register_state): Likewise.
* lib/regexec.c (re_search_2_stub): Use simpler method than boolean
for freeing internal storage.
(group_nodes_into_DFA_states): Use unsigned int, not int, for
bitset pieces used as boolean, to avoid undefined behavior
on hosts that do int overflow checking.
* config/srclist.txt: Add glibc bug 1285.
Jim Meyering [Thu, 1 Sep 2005 18:10:07 +0000 (18:10 +0000)]
*** empty log message ***
Jim Meyering [Thu, 1 Sep 2005 18:10:01 +0000 (18:10 +0000)]
Require gl_STAT_MACROS
Jim Meyering [Thu, 1 Sep 2005 18:08:21 +0000 (18:08 +0000)]
Require gl_FUNC_CHOWN, for the definition of
CHOWN_MODIFIES_SYMLINK, which is used by lchown.c.
Jim Meyering [Thu, 1 Sep 2005 18:08:06 +0000 (18:08 +0000)]
*** empty log message ***
Bruno Haible [Thu, 1 Sep 2005 12:28:32 +0000 (12:28 +0000)]
Don't complain about missing options in the first-use case.
Bruno Haible [Thu, 1 Sep 2005 12:18:03 +0000 (12:18 +0000)]
Remove the .tmp files.
Simon Josefsson [Thu, 1 Sep 2005 11:09:14 +0000 (11:09 +0000)]
2005-08-31 Derek Price <derek@ximbiot.com>
* getdelim.c (getdelim): Return EOF on EOF.
Reported by Larry Jones <lawrence.jones@ugs.com>.
Karl Berry [Thu, 1 Sep 2005 08:24:40 +0000 (08:24 +0000)]
.
Paul Eggert [Thu, 1 Sep 2005 07:03:01 +0000 (07:03 +0000)]
* lib/regex_internal.c (re_string_reconstruct): Don't assume buffer
lengths fit in regoff_t; this isn't true if regoff_t is the same
width as size_t.
* lib/regex.c (re_search_internal): 5th arg is LAST_START
(= START + RANGE) instead of RANGE. This avoids overflow
problems when regoff_t is the same width as size_t.
All callers changed.
(re_search_2_stub): Check for overflow when adding the
sizes of the two strings.
(re_search_stub): Check for overflow when adding START
to RANGE; if it occurs, substitute the extreme value.
* config/srclist.txt: Add glibc bug 1284.
Paul Eggert [Wed, 31 Aug 2005 23:36:42 +0000 (23:36 +0000)]
* lib/regcomp.c (search_duplicated_node): Make first pointer arg
a pointer-to-const.
* lib/regex_internal.c (create_ci_newstate, create_cd_newstate):
(register_state): Likewise.
* lib/regexec.c (search_cur_bkref_entry, check_dst_limits):
(check_dst_limits_calc_pos_1, check_dst_limits_calc_pos):
(group_nodes_into_DFAstates): Likewise.
* config/srclist.txt: Add glibc bug 1282.
Paul Eggert [Wed, 31 Aug 2005 22:51:09 +0000 (22:51 +0000)]
On 64-bit hosts (where size_t is 64 bits and int is 32 bits), the
old glibc regex code mishandles strings longer than 2**31 bytes.
This patch fixes this when the regex code is used in gnulib
(i.e., outside glibc).
* lib/regex.h (_REGEX_LARGE_OFFSETS): New feature-test macro,
governing whether the rest of this patch is active. By default,
the macro is disabled and the patch has no effect.
(regoff_t) [defined _REGEX_LARGE_OFFSETS]: Define to off_t, not int.
(__re_idx_t, __re_size_t, __re_long_size_t): New types.
(struct re_pattern_buffer, re_search, re_search_2, re_match):
(re_match_2, re_set_registers): Use the new types.
* lib/regex_internal.h (Idx, re_hashval_t): New types.
(REG_MISSING, REG_ERROR, REG_VALID_INDEX, REG_VALID_NONZERO_INDEX):
New macros.
(re_node_set, re_charset_t, re_token_t, re_string_realloc_buffers):
(re_string_context_at, bin_tree_t, re_dfastate_t):
(struct re_state_table_entry, state_array_t, re_sub_match_last_t):
(re_sub_match_top_t, re_match_context_t, re_sift_context_t):
(struct re_fail_stack_ent_t, struct re_fail_stack_t, struct re_dfa_t):
(re_string_char_size_at, re_string_wchar_at):
(re_string_elem_size_at):
Use the new types and macros to port to 64-bit hosts.
Use unsigned types for internal values, so that the code
mostly works even for arrays larger than SSIZE_MAX.
* lib/regcomp.c (re_compile_internal, init_dfa, duplicate_node):
(search_duplicated_node, calc_eclosure_iter, fetch_number):
(parse_reg_exp, parse_branch, parse_expression, parse_sub_exp):
(build_equiv_class, build_charclass, re_compile_fastmap_iter):
(free_dfa_content, create_initial_state, optimize_utf8, analyze):
(optimize_subexps, calc_first, link_nfa_nodes, duplicate_node_closure):
(calc_inveclosure, parse_dup_op, build_range_exp):
(build_collating_symbol, parse_bracket_exp, build_charclass_op):
(fetch_number, create_token_tree, mark_opt_subexp):
Likewise.
* lib/regex_internal.c
(re_string_construct_common, create_ci_newstate):
(create_cd_newstate, re_string_allocate, re_string_construct):
(re_string_realloc_buffers, build_wcs_upper_buffer):
(re_string_skip_chars, build_upper_buffer, re_string_translate_buffer):
(re_string_reconstruct, re_string_peek_byte_case):
(re_string_fetch_byte_case, re_string_context_at):
(re_node_set_alloc, re_node_set_init_1, re_node_set_init_2):
(re_node_set_init_copy, re_node_set_add_intersect):
(re_node_set_init_union, re_node_set_merge, re_node_set_insert):
(re_node_set_insert_last, re_node_set_compare, re_node_set_contains):
(re_node_set_remove_at, re_dfa_add_node, calc_state_hash):
(re_acquire_state, re_acquire_state_context, register_state):
Likewise.
* lib/regex.c
(match_ctx_init, match_ctx_add_entry, search_cur_bkref_entry):
(match_ctx_add_subtop, match_ctx_add_sublast, sift_ctx_init):
(re_search_internal, re_search_2_stub, re_search_stub)
(re_copy_regs, check_matching, check_halt_state_context, update_regs):
(push_fail_stack, sift_states_iter_mb, build_sifted_states):
(update_cur_sifted_state, check_dst_limits):
(check_dst_limits_calc_pos_1, check_dst_limits_calc_pos):
(check_subexp_limits, sift_states_bkref, merge_state_array):
(check_subexp_matching_top, get_subexp, get_subexp_sub):
(find_subexp_node, check_arrival, check_arrival_add_next_nodes):
(check_arrival_expand_ecl, check_arrival_expand_ecl_sub):
(expand_bkref_cache, check_node_accept_bytes):
(group_nodes_into_DFAstates, check_node_accept, regexec, re_match):
(re_search, re_match_2, re_search_2, prune_impossible_nodes):
(acquire_init_state_context, check_halt_node_context):
(proceed_next_node, pop_fail_stack, set_regs, free_fail_stack_return):
(sift_states_backward, clean_state_log_if_needed):
(sub_epsilon_src_nodes, add_epsilone_src_nodes, merge_state_with_log):
(find_recover_state, transit_state_sb, transit_state_mb):
(transit_state_bkref, build_trtable, match_ctx_clean):
Likewise.
* lib/regcomp.c (parse_dup_op): Add an extra test if Idx is unsigned,
to work around an assumption that REG_MISSING is negative.
* m4/regex.m4 (gl_REGEX): Require AC_SYS_LARGEFILE, Define
_REGEX_LARGE_OFFSETS). Test for regoff_t/off_t bug in 64-bit
and large-file glibc and in 32-bit large-file Solaris.
* config/srclist.txt: Add glibc bug 1281.
Bruno Haible [Wed, 31 Aug 2005 20:57:03 +0000 (20:57 +0000)]
Make it possible to use multiple gnulib instantiations with the same
configure.ac.
Fix some breakage by previous patches.
Bruno Haible [Wed, 31 Aug 2005 20:55:19 +0000 (20:55 +0000)]
Avoid unnecessary diffs in the generated lib/Makefile.am.
Bruno Haible [Wed, 31 Aug 2005 20:54:49 +0000 (20:54 +0000)]
Read the previous cached settings.
Remove files that become obsolete if gnulib-tool added them earlier.
Bruno Haible [Wed, 31 Aug 2005 20:53:42 +0000 (20:53 +0000)]
Separate the generates files into cvs-committable files and frequently
changing files.
Bruno Haible [Wed, 31 Aug 2005 20:52:14 +0000 (20:52 +0000)]
Avoid multiple copies of AC_GNU_SOURCE in the configure file.
Bruno Haible [Wed, 31 Aug 2005 20:51:41 +0000 (20:51 +0000)]
Rename some variables.