| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
| |
Vector code cleanup.
* lib.h (zero, one, two, negone, maxint, minint): Extern declarations
removed, macros introduced for these identifiers.
* lib.c (zero, one, two, negone, maxint, minint): File scope
definitions removed.
(vector): Use vec_alloc and vec_fill enums instead of constants.
(obj_init): Remove references to removed definitions.
|
| |
|
|
|
|
|
|
| |
lib.h, match.c, match.h, parser.h, parser.l, parser.y, regex.c,
regex.h, stream.c, stream.h, txr.1, txr.c, txr.h, unwind.c, unwind.h,
utf8.c, utf8.h: Updated copyright year.
|
|
|
|
|
|
| |
Leading :nothrow with trailing material is an error now.
* txr.1: Updated. Made note of errors in pipes being asynchronous.
|
| |
|
|
|
|
| |
features. Support for obsolescent @(next) syntax is gone.
|
|
|
|
|
|
| |
* match.c (match_files): Added a couple of break statements.
* txr.1: Updated.
|
| |
|
|
|
|
|
|
|
|
| |
a minimum number of lines.
* match.c (match_files): New behavior in skip_s case.
* txr.1: Documented.
|
| |
|
| |
|
|
|
|
|
| |
lines to match must fail. Extra data lines relative to the spec
are tolerated; extra spec lines unmet by data aren't.
|
|
|
|
|
|
|
|
| |
* lib.c (split_str, split_str_set): It is necessary to protect input
parameters against GC, because we cache their internal pointers,
after which we no longer refer to the objects themselves. Moreover,
we perform object allocation, and then keep using the internal
pointers.
|
| |
|
|
|
|
| |
once, and a query doesn't execute if it had errors.
|
| |
|
| |
|
| |
|
|
|
|
| |
Added missing support for literal string type.
|
|
|
|
|
| |
of string must use postincrement on the index, otherwise the access
goes past the null terminator.
|
|
|
|
|
|
|
|
|
|
| |
If the virtual line is partially matched, the remainder of
the line is folded back into list form. In this case, the
data line number must be incremented. Otherwise the calling
context may conclude that no progress was made, and
skip a line of input. I.e. the unmatched part of the input
is a new line, even if there had originally
been no line break at that point.
|
|
|
|
|
|
|
|
|
| |
* lib.c (split_str_sep): New function.
(split_str): Semantics changed; the second argument
is not a set of separator characters (like in split_str_sep)
but rather a separator string. Fixed bug: if the input
string is empty, the output list is empty. This caused
infinite looping behavior in @(freeform).
|
|
|
|
|
|
| |
that we don't clobber the null terminator in the target string, or try
read past the end of the source data. This affects the @(freeform)
directive.
|
| |
|
| |
|
|
|
|
|
|
| |
the type codes of spuriously reached nodes; reached objects
will not be removed by weak processing and so it's better
to just detect those situations and short-circuit.
|
|
|
|
|
|
|
|
| |
Exponential memory consumption behavior was observed when
matching the input aaaaaa....
against the regex a?a?a?a?....aaaa....
The fix is to eliminate common subexpressions
from the derivative for the or operator.
|
| |
|
| |
|
|
|
|
| |
in a code path where it sometimes isn't.
|
|
|
|
|
|
|
| |
discovered on Red Hat EL 4 with gcc 3.4.3.
In the collect loop, set car(success) to nil.
Somehow the generated code hangs on to the last
matching position for a regex, preventing GC.
|
| |
|
|
|
|
|
|
| |
on 32 bit x86 Fedora. This happens because the lazy list variable
``data'' in the match_files function is optimized to a register,
but a stale value of that variable persists in the backing storage.
|
|
|
|
| |
variable.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
of cases to reduce consing. In reg_derivative_list, we avoid
consing the full or expression if either branch is t, and
also save a cons when the first element has a null derivative.
In reg_derivative the oneplus and zeroplus cases are split,
since zeroplus can re-use the input expression, when it's
just a one-character match, deriving nil.
|
|
|
|
|
|
|
|
| |
case whereby R%S matches nothing at all when S is not empty
but equivalent to empty, or more generally when S is nullable.
A much nicer definition is ``the intersection of R* and
the set of all strings that do not contain a non-empty substring
that matches S, followed by S''.
|
|
|
|
| |
of empty [] into regterm, via empty derivation.
|
|
|
|
|
| |
to match no character and [^] as its complement,
being synonymous with the wildcard dot.
|
| |
|
| |
|
|
|
|
|
| |
Correct wrong text: all operators can take an empty regex.
Clarify escaping rules within a character class.
|
|
|
|
| |
Correct wrong text: all operators can take an empty regex.
|
| |
|
|
|
|
| |
from text during HTML conversion.
|
| |
|
| |
|