Paul Eggert [Tue, 11 Apr 2006 00:51:42 +0000 (00:51 +0000)]
(context_regex_string, word_regex_string): Remove.
(context_regex, word_regex): New vars, replacing the above.
All uses changed.
(struct regex_data): New type.
(compile_regex): Renamed from alloc_and_compile_regex, since
we no longer allocate storage. Arg is now a struct regex_data *,
not a const char *. All uses changed. Don't allocate the fastmap;
instead, take it from the caller. Don't convert size_t to int,
to avoid arithmetic overflow problems. Don't bother freeing
storage afterwards; it's not worth the aggravation.
Paul Eggert [Tue, 11 Apr 2006 00:51:23 +0000 (00:51 +0000)]
(body_fastmap, header_fastmap, footer_fastmap):
New vars.
(build_type_arg): New fastmap arg. All uses changed.
Don't bother allocating a buffer, but set a fastmap.
Paul Eggert [Tue, 11 Apr 2006 00:49:59 +0000 (00:49 +0000)]
(struct control): Put re_compiled member at the
end, since it's large. Change regexpr member from char * to bool;
all uses changed. Add new member fastmap.
(extract_regexp): regexp arg is now char const *, not char *.
Don't bother duplicating the regular expression; it's not needed.
Set fastmap from new fastmap member. Don't bother allocating
a buffer, as the regexp code does a better job than we do.
Jim Meyering [Sun, 26 Mar 2006 12:20:46 +0000 (12:20 +0000)]
(base_name): New semantics - malloc the result.
Preserve // when it is special.
Preserve relative files that look like drive letters.
(base_len): Preserve // when it is special.
(last_component): New method, similar to old base_name semantics.
Jim Meyering [Sun, 26 Mar 2006 12:20:24 +0000 (12:20 +0000)]
(dir_len): Determine when drive letters need a subsequent slash.
Preserve // when it is special.
(dir_name): Don't append dot when drive letter is absolute.
[TEST_DIRNAME]: Move into a full-blown gnulib test.
Jim Meyering [Sun, 26 Mar 2006 12:20:06 +0000 (12:20 +0000)]
(FILE_SYSTEM_PREFIX_LEN): Move here from dos.m4.
[FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]: Don't treat 1: as a drive prefix.
(IS_ABSOLUTE_FILE_NAME): Treat all drive letters as absolute on
platforms like cygwin with FILE_SYSTEM_DRIVE_PREFIX_IS_ABSOLUTE.
(last_component): New method.
Paul Eggert [Sat, 25 Mar 2006 09:49:24 +0000 (09:49 +0000)]
(gl_REGEX): Fix a longstanding typo in the
implementation of Spencer ERE test #75 from grep 2.3. Problem
reported by Emanuele Giaquinta. Also, change sense of cached
variable, so that the message makes sense.
Jim Meyering [Sun, 19 Mar 2006 18:27:51 +0000 (18:27 +0000)]
Work even in a chroot where d_ino values for entries in "/"
don't match the stat.st_ino values for the same names.
(__getcwd): When no d_ino value matches the target inode
number, iterate through all entries again, using lstat instead.
Reported by Kenshi Muto in http://bugs.debian.org/355810.
Paul Eggert [Fri, 17 Mar 2006 07:33:06 +0000 (07:33 +0000)]
(gl_REGEX): Don't check for off_t, since the code
no longer needs it. Instead, check that regoff_t is as least
as wide as ptrdiff_t.
Don't define _REGEX_WIDE_OFFSETS unless using the included regex,
so that our regex.h stays compatible with the installed regex.
This is helpful for installers who configure --without-included-regex.
Problem reported by Emanuele Giaquinta.
Jim Meyering [Sun, 12 Mar 2006 22:03:17 +0000 (22:03 +0000)]
(leave_dir): If cycle-check's saved dev-ino pair matches
that of the current directory (which we're about to chdir ".." out of),
then save the dev-ino of the parent, instead.