mirror of https://github.com/rusefi/lua.git
'$' at end of pattern was matching regular '$', too.
This commit is contained in:
parent
e64dbc390a
commit
cc0f635ef7
19
bugs
19
bugs
|
@ -4,6 +4,7 @@ Tue Dec 2 10:45:48 EDT 1997
|
||||||
>> started only in the 2nd line of a function.
|
>> started only in the 2nd line of a function.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- Version 3.1 alpha
|
--- Version 3.1 alpha
|
||||||
|
|
||||||
** lua.c
|
** lua.c
|
||||||
|
@ -13,7 +14,7 @@ Thu Jan 15 14:34:58 EDT 1998
|
||||||
** lbuiltin.c / lobject.h
|
** lbuiltin.c / lobject.h
|
||||||
Thu Jan 15 14:34:58 EDT 1998
|
Thu Jan 15 14:34:58 EDT 1998
|
||||||
>> MAX_WORD may be bigger than MAX_INT
|
>> MAX_WORD may be bigger than MAX_INT
|
||||||
|
(by lhf)
|
||||||
|
|
||||||
** llex.c
|
** llex.c
|
||||||
Mon Jan 19 18:17:18 EDT 1998
|
Mon Jan 19 18:17:18 EDT 1998
|
||||||
|
@ -42,6 +43,7 @@ Mon May 18 19:20:00 EST 1998
|
||||||
>> arguments for "format" 'x', 'X', 'o' and 'u' must be unsigned int.
|
>> arguments for "format" 'x', 'X', 'o' and 'u' must be unsigned int.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- Version 3.1
|
--- Version 3.1
|
||||||
|
|
||||||
** liolib.c / lauxlib.c
|
** liolib.c / lauxlib.c
|
||||||
|
@ -52,11 +54,13 @@ of view) when functions have upvalues.
|
||||||
** lstrlib.c
|
** lstrlib.c
|
||||||
Tue Nov 10 17:29:36 EDT 1998
|
Tue Nov 10 17:29:36 EDT 1998
|
||||||
>> gsub/strfind do not check whether captures are properly finished.
|
>> gsub/strfind do not check whether captures are properly finished.
|
||||||
|
(by roberto/tomas)
|
||||||
|
|
||||||
** lbuiltin.c
|
** lbuiltin.c
|
||||||
Fri Dec 18 11:22:55 EDT 1998
|
Fri Dec 18 11:22:55 EDT 1998
|
||||||
>> "tonumber" goes crazy with negative numbers in other bases (not 10),
|
>> "tonumber" goes crazy with negative numbers in other bases (not 10),
|
||||||
because "strtol" returns long, not unsigned long.
|
because "strtol" returns long, not unsigned long.
|
||||||
|
(by Visual C++)
|
||||||
|
|
||||||
** lstrlib.c
|
** lstrlib.c
|
||||||
Mon Jan 4 10:41:40 EDT 1999
|
Mon Jan 4 10:41:40 EDT 1999
|
||||||
|
@ -70,8 +74,19 @@ lua_isnumber can modify it.
|
||||||
** lstrlib.c
|
** lstrlib.c
|
||||||
Thu Feb 4 17:08:50 EDT 1999
|
Thu Feb 4 17:08:50 EDT 1999
|
||||||
>> format "%s" may break limit of "sprintf" on some machines.
|
>> format "%s" may break limit of "sprintf" on some machines.
|
||||||
|
(by Marcelo Sales)
|
||||||
|
|
||||||
** lzio.c
|
** lzio.c
|
||||||
Thu Mar 4 11:49:37 EST 1999
|
Thu Mar 4 11:49:37 EST 1999
|
||||||
>> file stream cannot call fread after EOF.
|
>> file stream cannot call fread after EOF.
|
||||||
|
(by lhf)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--- Version 3.2 (beta)
|
||||||
|
|
||||||
|
** lstrlib.c
|
||||||
|
Fri Apr 30 11:10:20 EST 1999
|
||||||
|
>> '$' at end of pattern was matching regular '$', too.
|
||||||
|
(by anna)
|
||||||
|
|
||||||
|
|
12
lstrlib.c
12
lstrlib.c
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
** $Id: lstrlib.c,v 1.27 1999/02/25 19:13:56 roberto Exp roberto $
|
** $Id: lstrlib.c,v 1.28 1999/02/26 15:49:53 roberto Exp roberto $
|
||||||
** Standard library for strings and pattern-matching
|
** Standard library for strings and pattern-matching
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
|
@ -285,10 +285,12 @@ static char *match (char *s, char *p, struct Capture *cap) {
|
||||||
cap->capture[l].len = -1; /* undo capture */
|
cap->capture[l].len = -1; /* undo capture */
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
case '\0': case '$': /* (possibly) end of pattern */
|
case '\0': /* end of pattern */
|
||||||
if (*p == 0 || (*(p+1) == 0 && s == cap->src_end))
|
return s; /* match succeeded */
|
||||||
return s;
|
case '$':
|
||||||
/* else go through */
|
if (*(p+1) == '\0') /* is the '$' the last char in pattern? */
|
||||||
|
return (s == cap->src_end) ? s : NULL; /* check end of string */
|
||||||
|
/* else is a regular '$'; go through */
|
||||||
default: { /* it is a pattern item */
|
default: { /* it is a pattern item */
|
||||||
char *ep; /* will point to what is next */
|
char *ep; /* will point to what is next */
|
||||||
char *s1 = matchitem(s, p, cap, &ep);
|
char *s1 = matchitem(s, p, cap, &ep);
|
||||||
|
|
Loading…
Reference in New Issue