This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix \'. regex


The attached patch fixes the problem with \' not being considered unless it is the last
atom in the regexp.  As I had hinted a few months ago, the problem is that the
transition table for the token immediately following \' does not take into
consideration the constraint of being at the end of the buffer: and indeed it turns out
that group_nodes_into_DFAstates does not have a test for NEXT_ENDBUF_CONSTRAINT.

The patch shuffles a bit the constraint-enforcing ifs, so that constraints that have a
`continue' in them are put first.  Otherwise, the `continue' has no effect because the
loop is already ending right after it.

I also ping you to apply Isamu's patches at

http://sources.redhat.com/ml/libc-alpha/2003-02/msg00243.html

Tested against GNU sed's testsuite.

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.

|_  _  _ __
|_)(_)| ),'
------- '---

Attachment: regex-fix-endbuf.patch
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]