* posix/regex_internal.h (re_token_type_t): Remove unused ALT,
END_OF_RE_TOKEN_T and SUBEXP. Reorder values. Add OP_UTF8_PERIOD
and EPSILON_BIT.
(IS_EPSILON_NODE): Just test if EPSILON_BIT is set.
(ACCEPT_MB_NODE): Return 1 for OP_UTF8_PERIOD as well.
* posix/regex_internal.c (create_ci_newstate, create_cd_newstate):
Handle OP_UTF8_PERIOD.
(re_string_reconstruct): Set valid_len for single byte char searching
with no translation and case sensitivity.
* posix/regcomp.c (re_compile_fastmap_iter, calc_first): Handle
OP_UTF8_PERIOD.
(re_compile_internal): Don't call optimize_utf8 if preg->translate
!= NULL.
(optimize_utf8): Remove BACK_SLASH case.
Transform OP_PERIOD into OP_UTF8_PERIOD if the searching can be
optimized.
(parse_bracket_exp): Don't create SIMPLE_BRACKET if it doesn't have
any bits set and COMPLEX_BRACKET is used.
* posix/regexec.c (transit_state_mb): Fix comment typo.
(group_nodes_into_DFAstates, check_node_accept): Handle
OP_UTF8_PERIOD.
(check_node_accept_bytes): Likewise. Reorder slightly so that
re_string_char_size_at and re_string_elem_size_at are called
only when needed.
* posix/bug-regex20.c (BRE, ERE): Define.
(tests): Use them to make lines shorter. Expect . to be
optimized. Add lots of new tests.
(main): Run (ATM just case sensitive) test with backwards searching
as well.
2003-11-18 Jakub Jelinek <jakub@redhat.com>
2003-11-17 Jakub Jelinek <jakub@redhat.com>
* posix/regcomp.c (optimize_utf8): Optimize multi-byte chars as
well.
* posix/bug-regex20.c (tests): Add new tests. Multi-byte char
followed by dup operator is expected to be optimized.
* posix/regexec.c (check_node_accept_bytes): Move nrules and j
variables to the block where they are only used, initialize
nrules only immediately before using it.
2003-11-15 Andreas Jaeger <aj@suse.de>
* sysdeps/x86_64/fpu/s_scalbnl.S: New file.
* sysdeps/x86_64/fpu/s_truncl.S: New file.
* sysdeps/x86_64/fpu/s_nearbyintl.S: New file.
* sysdeps/x86_64/fpu/s_floorl.S: New file.
* sysdeps/x86_64/fpu/s_ilogbl.S: New file.
* sysdeps/x86_64/fpu/e_remainderl.S: New file.
* math/libm-test.inc (floor_test): Test also ±0.25.
(ceil_test): Test -0.25.
* posix/regex_internal.h: Add forward declaration of re_dfa_t.
Replace last two parameters of re_string_allocate and
re_string_construct with pointer to DFA.
(re_dfa_t): Add map_notascii field.
* posix/regcomp.c (re_compile_internal): Add call of
re_string_construct.
(init_dfa): Initialize mpa_notascii.
* posix/regex_internal.c: Adjust definitions of re_string_allocate
and re_string_construct.
Pass DFA to re_string_construct. Adjust definition. Initialize
map_notascii field.
(build_wcs_upper_buffer): If map_notascii is zero use simplfied
method to map ASCII values to upper case.
* posix/regex.c: Include localeinfo.h.
* posix/regexec.c: Adjust call of re_string_allocate.
* locale/langinfo.h: Add _NL_CTYPE_MAP_TO_NONASCII.
* locale/localeinfo.h (LIMAGIC): Change value.
* locale/categories.def. Add entry for _NL_CTYPE_MAP_TO_NONASCII.
* locale/C-ctype.h: Likewise.
* locale/programs/ld-ctype.c: Compute whether any mapping maps from
ASCII to non-ASCII value. Write out that value.
2003-11-14 Jakub Jelinek <jakub@redhat.com>
* posix/tst-rxspencer.c (check_match): @ without any following
characters must match only end of string.
(main): Fix filename in error message.
2003-11-04 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/ifaddrs.c: Make sure it's the kernel who
sends the netlink data.
* sysdeps/unix/sysv/linux/check_pf.c: Likewise.
2003-11-13 Jakub Jelinek <jakub@redhat.com>
* posix/regcomp.c (optimize_utf8): Optimize even if SIMPLE_BRACKET
with no bits set for >= 0x80 chars is seen.
* posix/bug-regex20.c (tests): Add new tests. Expect [ABC] to be
optimized.
(main): Run all tests with RE_ICASE as well.
* posix/Makefile: Add rules to build and run tst-rxspencer.
(distribute): Add rxspencer/tests and rxspencer/COPYRIGHT.
* posix/tst-rxspencer.c: New file.
* posix/rxspencer/tests: New file.
* posix/rxspencer/COPYRIGHT: New file.
Patch mostly by Jakub Jelinek.
* posix/regcomp.c (parse_bracket_exp): Don't check for range if
this is no option given the first token.
* posix/regcomp.c (parse_bracket_exp): Fix test for EOS after
hyphen in range expression. Return EBRACK in this case.
* posix/regcomp.c (parse_bracket_element): Reject hyphens unless
we expect them or it's the last element in the bracket expression.
Indicated by new parameter. Adjust all callers.
Prettier error messages.
* posix/regcomp.c (parse_expression): If token is OP_OPEN_DUP_NUM
and RE_CONTEXT_INVALID_DUP syntax flag is set, fail.
* posix/regex.h (RE_CONTEXT_INVALUD_OPS): New macro.
(RE_SYNTAX_POSIX_BASIC): Use RE_CONTEXT_INVALUD_OPS.
* posix/regcomp.c (parse_sub_exp): In case of not-matching ( )
return REG_EPAREN.
* posix/regcomp.c (optimize_utf8): New function.
(re_compile_fastmap_iter): Use dfa->mb_cur_max > 1 instead
of !icase.
(re_compile_internal): Call optimize_utf8 if not case insensitive
and in UTF-8 locale.
* posix/regex_internal.h: Ifdef out some prototypes if
RE_NO_INTERNAL_PROTOTYPES is defined to shut up warnings.
* posix/Makefile (tests): Add bug-regex20.
(bug-regex20-ENV): Add LOCPATH.
* posix/bug-regex20.c: New test.
2003-11-12 Jakub Jelinek <jakub@redhat.com>
2003-11-12 Jakub Jelinek <jakub@redhat.com>
* io/ftw.c (NFTW_NEW_NAME, NFTW_OLD_NAME): Add prototypes.
2003-11-12 Jakub Jelinek <jakub@redhat.com>
* posix/tst-regex.c (umemlen): New variable.
(test_expr): Add expectedicase argument. Test case insensitive
searches as well as backwards searches (case sensitive and
insensitive) too.
(run_test): Add icase argument. Use it to compute regcomp flags.
(run_test_backwards): New function.
(main): Cast read to size_t to avoid warning. Set umemlen.
Add expectedicase arguments to test_expr.
* posix/regex_internal.c (re_string_reconstruct): If is_utf8,
find previous character by walking back instead of converting
all chars from beginning.
2003-11-12 Jakub Jelinek <jakub@redhat.com>
* posix/regex_internal.h (struct re_string_t): Add is_utf8
and mb_cur_max fields.
(struct re_dfa_t): Likewise. Reorder fields to make structure
smaller on 64-bit arches.
(re_string_allocate, re_string_construct): Add mb_cur_max and
is_utf8 arguments.
(re_string_char_size_at, re_string_wchar_at): Use pstr->mb_cur_max
instead of MB_CUR_MAX.
* posix/regcomp.c (re_compile_fastmap_iter): Use dfa->mb_cur_max
instead of MB_CUR_MAX.
(re_compile_internal): Pass new arguments to re_string_construct.
(init_dfa): Initialize mb_cur_max and is_utf8 fields.
(peek_token, peek_token_bracket): Use input->mb_cur_max instead
of MB_CUR_MAX.
(parse_expression, parse_bracket_exp, parse_charclass_op): Use
dfa->mb_cur_max instead of MB_CUR_MAX.
* posix/regex_internal.c (re_string_construct_common): Add
mb_cur_max and is_utf8 arguments. Initialize fields with them.
(re_string_allocate, re_string_construct): Add mb_cur_max and
is_utf8 arguments, pass them to re_string_construct_common.
Use mb_cur_max instead of MB_CUR_MAX.
(re_string_realloc_buffers): Use pstr->mb_cur_max instead of
MB_CUR_MAX.
(re_string_reconstruct): Likewise.
(re_string_context_at): Use input->mb_cur_max instead of
MB_CUR_MAX.
(create_ci_newstate, create_cd_newstate): Use dfa->mb_cur_max
instead of MB_CUR_MAX.
* posix/regexec.c (re_search_internal): Likewise.
Pass new arguments to re_string_allocate.
(check_matching, transit_state_sb): Use dfa->mb_cur_max instead of
MB_CUR_MAX.
(extend_buffers): Use pstr->mb_cur_max instead of MB_CUR_MAX.
2003-11-12 Jakub Jelinek <jakub@redhat.com>
* posix/Makefile (tests): Add bug-regex19.
(bug-regex19-ENV): Add LOCPATH.
* posix/bug-regex19.c: New test.
* include/dlfcn.h (__RTLD_OPENEXEC): Define.
* elf/dl-load.c (_dl_map_object_from_fd): Don't allow loading
executables unless __RTLD_OPENEXEC flag is present.
* elf/rtld.c (dl_main): Pass __RTLD_OPENEXEC flag to
_dl_map_object when loading the executable.
reverse lookup format for IPv6 addresses is using bitstring and
* resolv/ns_name.c: Implement encoding and decoding bitstring in
* posix/bug-regex11.c: Add some more tests which fail so far.
Disable them. Patch by Paolo Bonzini <bonzini@gnu.org>.
2003-10-05 Paolo Bonzini <bonzini@gnu.org>
* posix/bug-regex11.c: Add more backreference-related test cases.
(main): Show the failing regex in the error messages.
* posix/regexec.c (check_dst_limits_calc_pos):
Simplify some nested conditionals. Replace if's with a switch
statement.
(check_dst_limits_calc_pos <TYPE_BKREF>): Rename parameter NODE to
FROM_NODE, it shadows a local variable; don't recurse if FROM_NODE
does not change in the recursive invocation, fixing an infinite loop
in the ()\1*\1* regex.
(sift_states_backward): Fix function comment.
* posix/regcomp.c (calc_epsdest): Add an assertion.
2003-10-06 Ulrich Drepper <drepper@redhat.com>
2003-09-26 Paolo Bonzini <bonzini@gnu.org>
* posix/regcomp.c (parse_sub_exp): Pass RE_CARET_ANCHORS_HERE
for the first token in a subexpression as well.
2003-10-02 Jakub Jelinek <jakub@redhat.com>
* posix/regcomp.c (peek_token): Add 2003-09-20 changes for anchor
handling again.
(parse_reg_exp): Likewise.
* posix/regex.h (RE_CARET_ANCHORS_HERE): Define.
* posix/bug-regex11.c (tests): Add new tests.
* posix/bug-regex12.c (tests): Add new test.
* posix/regcomp.c (build_word_op): Rename like...
(build_charclass_op): ...this. Accept two extra parameters,
CLASS_NAME and EXTRA. Add EXTRA to the result, not only _.
(peek_token): accept \s and \S as OP_SPACE and OP_NOTSPACE.
(parse_expression): replace build_word_op with
build_charclass_op, add new arguments, accept OP_SPACE
and OP_NOTSPACE.
* posix/regex_internal.h (re_token_type_t): Add OP_SPACE
and OP_NOTSPACE.
2003-09-20 Paolo Bonzini <bonzini@gnu.org>
* posix/regcomp.c (peek_token): Don't look back for ( or |
to check whether to treat a caret as special. It fails
for the (extended) regex \(^.
(parse, parse_reg_exp): Pass RE_CARET_ANCHORS_HERE to fetch_token.
* posix/regex.h: Define RE_CARET_ANCHORS_HERE.
* posix/regexec.c: Check out of bounds value before shifting.
* posix/regex_internal.h: Define __attribute for non-gcc.
2003-09-17 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/wordexp.c (eval_expr_val): Use strtol since we
have to recognize octal and hexadecimal numbers as well. Simplify
function, signs are handled in strtol.
* posix/wordexp-test.c: Add tests for octal and hexadecimal
numbers in arithmetic expressions.
2003-09-16 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/Dist: Remove internal_statvfs.c.
* sysdeps/unix/sysv/linux/Makefile [subdir=io] (sysdep_routines):
Add internal_statvfs.
* sysdeps/unix/sysv/linux/fstatvfs.c: Call __internal_statvfs
instead of including "internal_statvfs.c".
* sysdeps/unix/sysv/linux/statvfs.c: Likewise.
* sysdeps/unix/sysv/linux/internal_statvfs.c: Make it a real function.
Add code to avoid the stat calls on all the reported mount points
when we can determine mismatch in advance.
* sysdeps/unix/sysv/linux/linux_fsinfo.h: Add AUTOFS_SUPER_MAGIC and
USBDEVFS_SUPER_MAGIC.
2003-09-16 Jakub Jelinek <jakub@redhat.com>
* posix/Versions (sched_getaffinity, sched_setaffinity): Change
from GLIBC_2.3.2 to GLIBC_2.3.3 symbol version.
2003-09-16 Bruno Haible <bruno@clisp.org>
* intl/tst-gettext2.sh: Set GCONV_PATH and LOCPATH only after
invoking msgfmt, not before.
* sysdeps/generic/utmp_file.c: Use not-cancelable syscalls all
over the place. It would be allowed to have these fucntions as
cancellation points but the cleanup would be ugly and a lot of
work.
* sysdeps/generic/not-cancel.h (fcntl_not_cancel): Define.
* sysdeps/unix/sysv/linux/not-cancel.h (fcntl_not_cancel): Define.
* include/fcntl.h (__fcntl_nocancel): Declare.
* sysdeps/unix/sysv/linux/fcntl.c: New file.
* sysdeps/unix/sysv/linux/i386/fcntl.c (__libc_fcntl): Only enable
cancellation if absolutely needed.
(__fcntl_nocancel): Define.
* posix/unistd.h (gethostid): Remove __THROW. Clarify comment.
* sysdeps/unix/sysv/linux/Makefile (CFLAGS-gethostid.c): Add
-fexceptions.
* sysdeps/unix/sysv/linux/gethostid.c (gethostid): Use
extend_alloca.
* resolv/res_init.c (__res_nclose): Use close_not_cancel_no_status
instead of __close.
2003-08-15 Ulrich Drepper <drepper@redhat.com>
* io/Versions [GLIBC_2.3.3]: Add posix_fadvise64.
* io/fcntl.h (posix_fadvise64): Change type of third parameter to
off_t.
* sysdeps/unix/sysv/linux/posix_fadvise.c: Adjust definition.
* sysdeps/unix/make-syscalls.sh: Recognize V prefix to the parameter
description indicating the error value is returned, not -1.
* sysdeps/unix/sysv/linux/Makefile [subdir=io] (subdir_routines): Add
posix_fadvise64_64.
* sysdeps/unix/sysv/linux/kernel-features.h: Add definition of
__ASSUME_FADVISE64_64_SYSCALL.
* sysdeps/unix/sysv/linux/syscalls.list: Don't define madvise and
posix_madvise in one file. Have posix_madvise defined with error
value returned.
Define posix_fadvise64_64 entry. Add version info to posix_fadvise64
entry.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Define
posix_fadvise64_64 entry. Add version info to posix_fadvise64 entry.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/i386/posix_fadvise.S: New file.
* sysdeps/unix/sysv/linux/i386/sysdep.h: Define PSEUDO_ERRVAL,
PSEUDO_END_ERRVAL, and ret_ERRVAL.
* sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
* posix/Makefile (routines): Add posix_madvise.
* sysdeps/generic/madvise.c: Don't define posix_madvise.
* sysdeps/generic/posix_madvise.c: New file.
* sysdeps/unix/sysv/aix/posix_madvise.c: New file.
More cancellation handling fixups.
* sysdeps/unix/sysv/linux/not-cancel.h: Add waitpid_not_cancel.
* sysdeps/generic/not-cancel.h: Likewise.
* catgets/open_catalog.c: Use not-cancelable syscalls.
* time/Makefile (CFLAGS-getdate.c): Add -fexceptions.
* sysdeps/unix/sysv/linux/llseek.c: Must not be cancelable.
* sysdeps/unix/syscalls.list: Don't mark lseek as cancelable.
* dlfcn/dlfcn.h: Mark dlopen with __THROW again.
* io/fcntl.h: Don't mark posix_fallocate with __THROW.
* libio/fileops.c: Use not-cancelable syscalls for fclose.
* libio/iopopen.c: Use no-cancelable syscalls.
* libio/stdio.h: Mark popen and pclose with __THROW again.
* misc/Makefile (CFLAGS-syslog.c): Add -fexceptions.
* misc/syslog.c: Fix locking and cancellation cleanup handling.
* posix/unistd.h: Mark ttyname and ttyname_r again with __THROW.
* stdio-common/Makefile (CFLAGS-tmpfile.c, CFLAGS-tmpfile64.c,
CFLAGS-tempname.c): Add -fexceptions.
* stdlib/Makefile (CFLAGS-mkstemp.c): Add -fexceptions.
* string/string.h: Mark strerror and strerror_r with _THROW again.
* sysdeps/generic/unwind.inc: New file. Copied from gcc.
* sysdeps/generic/unwind-dw2.c: Update from gcc version. Remove
#ifs since we now need all the code compiled.
* sysdeps/posix/spawni.c: Use close_not_cancel instead of close.
* sysdeps/unix/closedir.c: Use not-cancelable syscalls.
* sysdeps/unix/opendir.c: Likewise.
declaration.
* stdio-common/tst-fphex.c: Fix format string.
* posix/tst-nanosleep.c: Include <time.h> for nanosleep
declaration.
* stdio-common/tst-fphex.c: Fix format string.
declarations.
* stdio-common/tst-sprintf.c: Include <stdlib.h> for free declaration.
* stdlib/tst-strtod.c (main): Pass long double value.
* test-skeleton.c: Include <time.h> for nanosleep declaration.
2003-06-25 Andreas Jaeger <aj@suse.de>
* posix/transbug.c: Include <string.h> for memset and strlen
declarations.
* stdio-common/tst-sprintf.c: Include <stdlib.h> for free declaration.
* stdlib/tst-strtod.c (main): Pass long double value.
* test-skeleton.c: Include <time.h> for nanosleep declaration.
2003-06-15 Ulrich Drepper <drepper@redhat.com>
Fix cancellation point handling wrt exception based cleanup.
* io/Makefile: Compile fcntl.c, poll.c, and lockf.c with exceptions.
* misc/Makefile: Compile pselect.c, readv.c, writev.c, and usleep.c
with exceptions.
* posix/Makefile: Compile pread.c, pread64.c, pwrite.c, pwrite64.c,
sleep.c, wait.c, waitid.c, and waitpid.c with exceptions.
* rt/Makefile: Compile aio_suspend.c and clock_nanosleep.c with
exceptions.
* signal/Makefile: Compile sigpause.c, sigsuspend.c, sigtimedwait.c,
sigwait.c, and sigwaitinfo.c with exceptions.
* stdlib/Makefile: Compile system.c with exceptions.
* sysvipc/Makefile: Compile msgrcv.c and msgsnd.c with exceptions.
* termios/Makefile: Compile tcdrain.c with exceptions.
* sysdeps/generic/lockf.c: Add comment explaining the cancellation
situation.
* sysdeps/generic/pselect.c: Likewise.
* sysdeps/posix/sigpause.c: Likewise.
* sysdeps/posix/system.c: Likewise.
* sysdeps/posix/waitid.c: Likewise.
* sysdeps/unix/sysv/linux/sleep.c: Likewise.
* sysdeps/unix/sysv/linux/usleep.c: Likewise.
* sysdeps/unix/sysv/linux/i386/sysdep.h: Major rewrite of
INTERNAL_SYSCALL to not use push inside asm statement so that
unwind info is correct around the syscall.
* sysdeps/unix/clock_nanosleep.c: Add cancellation support.
* sysdeps/unix/sysv/linux/clock_nanosleep.c: Likewise.
2003-06-12 H.J. Lu <hongjiu.lu@intel.com>
* posix/transbug.c (run_test): Return 1 for failure.
(do_test): Compare only if run_test is successful.
2003-06-12 Simon Josefsson <jas@extundo.com>
* argp/argp.h [!__THROW]: Define if undefined.
* posix/transbug.c: New file.
* inet/Makefile (aux): Add check_pf.
* include/ifaddrs.h: Add prototype for __check_pf.
* sysdeps/generic/check_pf.c: New file.
* sysdeps/unix/sysv/linux/check_pf.c: New file.
2003-02-28 Isamu Hasegawa <isamu@yamato.ibm.com>
* posix/regcomp.c (parse_expression): Deliver translation to
build_word_op, and build_charclass.
(build_charclass): Apply translation for character classes too.
(build_word_op): Deliver translation to build_charclass.
* posux/transbug.c: New file.
* posix/Makefile (tests): Add transbug.
2003-06-04 Paolo Bonzini <bonzini@gnu.org>
* posix/regexec.c (group_nodes_into_DFAstates): Check for
NEXT_ENDBUF_CONSTRAINT. Move check for constraints which do a
'continue' before the others.
2003-06-03 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/glob.c [HAVE_D_TYPE] (glob_in_dir): Also allow
DT_LNK entries if GLOB_ONLYDIR is set [PR libc/5043].
* posix/globtest.sh: Adjust for this change.
2003-04-16 Jakub Jelinek <jakub@redhat.com>
* elf/Makefile (distribute): Add tst-tlsmod{[7-9],1[0-2]}.c and
tst-tls10.h.
(tests): Add tst-tls1[0-2].
(modules-names): Add tst-tlsmod{[7-8],1[0-2]}.
($(objpfx)tst-tlsmod8.so): Depend on tst-tlsmod7.so.
($(objpfx)tst-tlsmod10.so): Depend on tst-tlsmod9.so.
($(objpfx)tst-tlsmod12.so): Depend on tst-tlsmod11.so.
($(objpfx)tst-tls10): Depend on tst-tlsmod8.so.
($(objpfx)tst-tls11): Depend on tst-tlsmod10.so.
($(objpfx)tst-tls12): Depend on tst-tlsmod12.so.
* elf/tst-tls10.c: New test.
* elf/tst-tls11.c: New test.
* elf/tst-tls12.c: New test.
* elf/tst-tls10.h: New file.
* elf/tst-tlsmod7.c: New file.
* elf/tst-tlsmod8.c: New file.
* elf/tst-tlsmod9.c: New file.
* elf/tst-tlsmod10.c: New file.
* elf/tst-tlsmod11.c: New file.
* elf/tst-tlsmod12.c: New file.
2003-04-15 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/bits/atomic.h: Moved ppc32/64 specific code to ...
* sysdeps/powerpc/powerpc32/bits/atomic.h: New file.
* sysdeps/powerpc/powerpc64/bits/atomic.h: New file.
* posix/regex.h: Include <sys/types.h>.
* posix/tst-nice.c (do_test): Use %m formats instead of printing errno
in decimal. Don't bail if niced at start. Just check that nice call
bumps the total at all.
* nscd/nscd_getpw_r.c (nscd_getpw_r): Likewise.
* gmon/gmon.c (write_call_graph): Use u_long for FROM_LEN.
* nscd/nscd_getgr_r.c (nscd_getgr_r): Use nscd_ssize_t for CNT.
* inet/rcmd.c (rresvport_af): Avoid using invliad values. Wrap
around in search if port IPPORT_RESERVED/2 has been test.
2002-02-20 Paolo Bonzini <bonzini@gnu.org>
* posix/regcomp.c: Remove inclusions.
* posix/regexec.c: Likewise.
* posix/regex_internal.c: Likewise.
* posix/regex_internal.h: Add inclusions here.
* posix/regex.c: Only include sys/types.h before regex.h. Include
regex_internal.h here. Include regex_internal.c before regcomp.c
and regexec.c (might expose more opportunities to the C compiler).
* posix/regcomp.c (parse_expression): Fix construct rejected by SGI CC.
* posix/regex_internal.h [!_LIBC] (__mempcpy): Fix typo.
[!_LIBC] (__wcrtomb): New definition.
[!_LIBC]: Conditionalize enabling of I18N on HAVE_WCSCOLL and
HAVE_LOCALE_H as well.
2003-02-20 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/bits/confname.h: Define _CS_GNU_LIBC_VERSION and
_CS_GNU_LIBPTHREAD_VERSION.
* posix/conststr.c: Handle these new values.
* posix/getconf.c: Likewise.
* io/ftw.c (ftw_startup): When using FTW_CHDIR, always remember
2002-11-24 Robert Love <rml@tech9.net>
* posix/sched.h: Second parameter of sched_setaffinity and
sched_getaffinity is `unsigned int', not `unsigned long'.
* sysdeps/generic/sched_setaffinity.c: Likewise.
* sysdeps/generic/sched_getaffinity.c: Likewise.
Reported by John Levon <levon@movementarian.org>.
* posix/regcomp.c (parse_bracket_exp): If build_charclass fails,
set *err to the returned error, not to REG_ESPACE unconditionally.
(build_word_op): Likewise.
* posix/Makefile (tests): Add bug-regex16.
* posix/bug-regex16.c: New test.
2003-01-16 Jakub Jelinek <jakub@redhat.com>
2002-12-17 Isamu Hasegawa <isamu@yamato.ibm.com>
* posix/regcomp.c (free_workarea_compile): Free the new member
ORG_INDICES.
(analyze): Initialize ORG_INDICES.
(duplicate_node_closure): Search for a existing node, which is
duplicated from the node ORG_DEST and satisfies the constraint
CONSTRAINT. And use it to avoid inifimite loop.
(search_duplicated_node): New function.
(duplicate_node): Store the index of the original node.
* posix/regex_internal.c (re_dfa_add_node): Realloc ORG_INDICES
if needed.
* posix/regex_internal.h (re_dfa_t): Add new members.
2002-11-27 Isamu Hasegawa <isamu@yamato.ibm.com>
* posix/regcomp.c (parse_expression): Set the bit since the back
reference is used in the regular expression.
* posix/regex_internal.c (re_node_set_init_1): Make it clean in case
of malloc failure.
(re_node_set_init_copy): Likewise.
* posix/regex_internal.h (state_array_t): New structure.
(re_sub_match_last_t): Likewise.
(re_sub_match_top_t): Likewise.
(re_match_context_t): Add new members.
(re_dfa_t): Likewise.
* posix/regexec.c (re_search_internal): Invoke prune_impossible_nodes
to check the matching is really correct, and retry if failed.
Move the routin pruning the impossible nodes from here, ...
(prune_impossible_nodes): To this function.
(check_matching): Invoke check_subexp_matching_top, and replace
redundant checking with transit_state_bkref invocation.
(proceed_next_node): Replace strncmp with memcmp. Reported by
Paolo Bonzini <bonzini@gnu.org>.
(update_cur_sifted_state): Remove search_subexp invocation.
(search_subexp): Remove this function.
(check_dst_limits_calc_pos): Use search_cur_bkref_entry for
optimization.
(sift_states_bkref): Use search_cur_bkref_entry for optimization.
Remove unused invocation of match_ctx_add_entry.
(transit_state): Invoke check_subexp_matching_top.
(check_subexp_matching_top): New function.
(transit_state_bkref): Remove unused array.
Merge transit_state_bkref_loop.
(transit_state_bkref_loop): Use get_subexp instead of
sift_states_backward. Use search_cur_bkref_entry for optimization.
Merge this function to transit_state_bkref.
(get_subexp): New function.
(get_subexp_sub): Likewise.
(find_subexp_node): Likewise.
(check_arrival): Likewise.
(check_arrival_expand_ecl): Likewise.
(check_arrival_expand_ecl_sub): Likewise.
(expand_bkref_cache): Likewise.
(match_ctx_init): Initialize new members.
(match_ctx_clean): New function.
(match_ctx_free): Release new members.
(match_ctx_free_subtops): New function.
(match_ctx_add_entry): Fix indent.
(search_cur_bkref_entry): New function.
(match_ctx_add_subtop): Likewise.
(match_ctx_add_sublast): Likewise.
* intl/tst-gettext.c (main): Check return values from setlocale.
Add necessary unsetenv's to make LANG=existing-locale check work.
* intl/tst-gettext.sh: Use mkdir -p. Copy test files unconditionally,
so aborted prior runs don't confuse things.
* locale/localeinfo.h (struct locale_data: union locale_data_value):
Use uintptr_t instead of unsigned int for `word' member.
(_NL_CURRENT_WORD): Cast to uint32_t.
* posix/bug-regex5.c (main): Use union to extract _NL_COLLATE_NRULES
value.
wide character.
(re_string_reconstruct): Calculate the context by itself when the
offset points out of the valid range.
(re_string_context_at): Use wide character when MB_CUR_MAX > 1.
* posix/regex_internal.h (WIDE_NEWLINE_CHAR): New macro.
(IS_WIDE_WORD_CHAR): New macro.
(IS_WIDE_NEWLINE): New macro.
2002-11-06 Jakub Jelinek <jakub@redhat.com>
* posix/regcomp.c (re_compile_pattern): Don't set regs_allocated
here.
(regcomp): Don't set can_be_null here.
(re_comp): Clear whole re_comp_buf with the exception of fastmap.
(re_compile_internal): Clear can_be_null, set regs_allocated.
* posix/regcomp.c (re_set_fastmap): New function.
(re_compile_fastmap_iter): Use it. Remove redundant type ==
COMPLEX_BRACKET check.
* posix/regexec.c (re_search_internal): Optimize searching with
fastmap. Call re_string_reconstruct even if match_first is
smaller than raw_mbs_idx.
2002-11-06 Isamu Hasegawa <isamu@yamato.ibm.com>
* posix/regcomp (free_dfa_content): Use free_state.
* posix/regex_internal.c (re_string_realloc_buffers): Don't edit
pointers in case that realloc failed.
(re_node_set_merge): Likewise.
(register_state): Likewise.
(create_newstate_common): Invoke memory release functions in case of
error conditions.
(create_ci_newstate): Likewise.
(create_cd_newstate): Likewise.
(free_state): New function.
* posix/regexec.c (re_search_internal): Invoke memory release
functions in case of error conditions.
(sift_states_backward): Likewise.
(merge_state_array): Likewise.
(add_epsilon_src_nodes): Likewise.
(sub_epsilon_src_nodes): Likewise.
(search_subexp): Likewise.
(sift_states_bkref): Likewise.
(transit_state_sb): Likewise.
(transit_state_mb): Likewise.
(transit_state_bkref_loop): Likewise.
(group_nodes_into_DFAstates): Likewise.
(push_fail_stack): Don't edit pointers in case that realloc failed.
(extend_buffers): Likewise.
(match_ctx_add_entry): Likewise.
2002-11-06 Ulrich Drepper <drepper@redhat.com>
* posix/regcomp.c (regcomp): __re_compile_fastmap can never fail.
If re_compile_internal failed free fastmap buffer.
(free_dfa_content): Broken out of regfree function. Frees all dfa
related data.
(regfree): Add free_dfa_content.
(re_compile_internal): If any of the called functions fails free
all dfa related memory.
description to be clearer and to say that *RESULT is set to ENTRY.
2002-10-30 Jakub Jelinek <jakub@redhat.com>
* posix/regexec.c (build_trtable): Alloca or malloc dests_node and
dests_ch arrays together. Alloca or malloc dest_states,
dest_states_word and dest_states_nl arrays together. Free memory on
error exit.
2002-10-29 Daniel Jacobowitz <drow@mvista.com>
* crypt/crypt_util.c (__init_des_r): Initialize current_salt
and current_saltbits.
2002-11-02 Roland McGrath <roland@redhat.com>
(free_mem): New function.
* posix/Makefile (tests): Add bug-regex14. Add bug-regex14-mem
if not cross compiling.
(generated): Add bug-regex14-mem and bug-regex14.mtrace.
(bug-regex14-ENV): Set.
(bug-regex14-mem): New target.
* posix/bug-regex14.c: New file.
* elf/Makefile ($(objpfx)librtld.map): Use temporary file for output
target, so we don't touch it when the link fails.
Check for the result overflowing off_t and fail with EOVERFLOW.
* libio/ioftell.c (_IO_ftell): Likewise.
* libio/iofgetpos.c (_IO_new_fgetpos): Likewise.
* login/logwtmp.c (logwtmp): If sizeof ut_tv != sizeof struct timeval,
use a temporary timeval on the stack for gettimeofday and copy it.
* login/logout.c (logout): Likewise.
Reported by Steven Munroe <sjmunroe@us.ibm.com>.
* sysdeps/unix/sysv/linux/bits/statfs.h (struct statfs):
Use __SWORD_TYPE instead of int for member types.
(struct statfs64): Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/statfs.h: New file.
* sysdeps/unix/sysv/linux/s390/bits/statfs.h: New file.
* sysdeps/unix/sysv/linux/ia64/bits/statfs.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/statfs.h: File removed.
* sysdeps/unix/sysv/linux/x86_64/bits/statfs.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/statvfs.h: Moved to ...
* sysdeps/unix/sysv/linux/bits/statvfs.h: ... here.
(ST_NODIRATIME): Restore fixed value of 2048.
* sysdeps/unix/sysv/linux/alpha/bits/statvfs.h: File removed.
* sysdeps/unix/sysv/linux/ia64/bits/statvfs.h: File removed.
Rearranged <bits/types.h> definitions to reduce duplication.
* sysdeps/generic/bits/types.h: Rewritten, using macros from
<bits/wordsize.h> and new header <bits/typesizes.h>.
* posix/Makefile (headers): Add bits/typesizes.h here.
* sysdeps/generic/bits/typesizes.h: New file.
* sysdeps/unix/sysv/linux/alpha/bits/typesizes.h: New file.
* sysdeps/unix/sysv/linux/sparc/bits/typesizes.h: New file.
* sysdeps/mach/hurd/bits/typesizes.h: New file.
* sysdeps/unix/sysv/linux/alpha/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/ia64/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/mips/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/s390/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/x86_64/bits/types.h: File removed.
* posix/sys/types.h [__USE_POSIX199506 || __USE_UNIX98]: Include
<bits/pthreadtypes.h> here, not in <bits/types.h>.
* signal/signal.h: Likewise.
* streams/stropts.h: Include <bits/xtitypes.h>.
* streams/Makefile (headers): Add bits/xtitypes.h here.
* sysdeps/generic/bits/xtitypes.h: New file.
* sysdeps/s390/bits/xtitypes.h: New file.
* sysdeps/ia64/bits/xtitypes.h: New file.
* sysdeps/x86_64/bits/xtitypes.h: New file.
* sysvipc/Makefile (headers): Add bits/ipctypes.h here.
* sysdeps/generic/bits/ipctypes.h: New file.
* sysdeps/mips/bits/ipctypes.h: New file.
* sysdeps/gnu/bits/shm.h: Include <bits/ipctypes.h>.
* sysdeps/gnu/bits/msq.h: Likewise.
* sysvipc/sys/ipc.h: Likewise.
2002-10-22 Roland McGrath <roland@redhat.com>
* sysdeps/generic/libc-tls.c (_dl_tls_static_used): New variable.
* sysdeps/generic/ldsodefs.h (struct rtld_global): New member
`_dl_tls_static_used'.
(TLS_STATIC_MIN): New macro.
* elf/dl-reloc.c [USE_TLS] (allocate_static_tls): New function.
(CHECK_STATIC_TLS): Use it.