mirror of https://github.com/rusefi/lua.git
Name 'nonstrict' in the UTF-8 library changed to 'lax'
It is not a good idea to use negative words to describe boolean values. (When we negate that boolean we create a double negative...)
This commit is contained in:
parent
9b37a4695e
commit
39bb3cf242
18
lutf8lib.c
18
lutf8lib.c
|
@ -85,7 +85,7 @@ static const char *utf8_decode (const char *s, utfint *val, int strict) {
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** utf8len(s [, i [, j [, nonstrict]]]) --> number of characters that
|
** utf8len(s [, i [, j [, lax]]]) --> number of characters that
|
||||||
** start in the range [i,j], or nil + current position if 's' is not
|
** start in the range [i,j], or nil + current position if 's' is not
|
||||||
** well formed in that interval
|
** well formed in that interval
|
||||||
*/
|
*/
|
||||||
|
@ -95,13 +95,13 @@ static int utflen (lua_State *L) {
|
||||||
const char *s = luaL_checklstring(L, 1, &len);
|
const char *s = luaL_checklstring(L, 1, &len);
|
||||||
lua_Integer posi = u_posrelat(luaL_optinteger(L, 2, 1), len);
|
lua_Integer posi = u_posrelat(luaL_optinteger(L, 2, 1), len);
|
||||||
lua_Integer posj = u_posrelat(luaL_optinteger(L, 3, -1), len);
|
lua_Integer posj = u_posrelat(luaL_optinteger(L, 3, -1), len);
|
||||||
int nonstrict = lua_toboolean(L, 4);
|
int lax = lua_toboolean(L, 4);
|
||||||
luaL_argcheck(L, 1 <= posi && --posi <= (lua_Integer)len, 2,
|
luaL_argcheck(L, 1 <= posi && --posi <= (lua_Integer)len, 2,
|
||||||
"initial position out of string");
|
"initial position out of string");
|
||||||
luaL_argcheck(L, --posj < (lua_Integer)len, 3,
|
luaL_argcheck(L, --posj < (lua_Integer)len, 3,
|
||||||
"final position out of string");
|
"final position out of string");
|
||||||
while (posi <= posj) {
|
while (posi <= posj) {
|
||||||
const char *s1 = utf8_decode(s + posi, NULL, !nonstrict);
|
const char *s1 = utf8_decode(s + posi, NULL, !lax);
|
||||||
if (s1 == NULL) { /* conversion error? */
|
if (s1 == NULL) { /* conversion error? */
|
||||||
lua_pushnil(L); /* return nil ... */
|
lua_pushnil(L); /* return nil ... */
|
||||||
lua_pushinteger(L, posi + 1); /* ... and current position */
|
lua_pushinteger(L, posi + 1); /* ... and current position */
|
||||||
|
@ -116,7 +116,7 @@ static int utflen (lua_State *L) {
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** codepoint(s, [i, [j [, nonstrict]]]) -> returns codepoints for all
|
** codepoint(s, [i, [j [, lax]]]) -> returns codepoints for all
|
||||||
** characters that start in the range [i,j]
|
** characters that start in the range [i,j]
|
||||||
*/
|
*/
|
||||||
static int codepoint (lua_State *L) {
|
static int codepoint (lua_State *L) {
|
||||||
|
@ -124,7 +124,7 @@ static int codepoint (lua_State *L) {
|
||||||
const char *s = luaL_checklstring(L, 1, &len);
|
const char *s = luaL_checklstring(L, 1, &len);
|
||||||
lua_Integer posi = u_posrelat(luaL_optinteger(L, 2, 1), len);
|
lua_Integer posi = u_posrelat(luaL_optinteger(L, 2, 1), len);
|
||||||
lua_Integer pose = u_posrelat(luaL_optinteger(L, 3, posi), len);
|
lua_Integer pose = u_posrelat(luaL_optinteger(L, 3, posi), len);
|
||||||
int nonstrict = lua_toboolean(L, 4);
|
int lax = lua_toboolean(L, 4);
|
||||||
int n;
|
int n;
|
||||||
const char *se;
|
const char *se;
|
||||||
luaL_argcheck(L, posi >= 1, 2, "out of range");
|
luaL_argcheck(L, posi >= 1, 2, "out of range");
|
||||||
|
@ -138,7 +138,7 @@ static int codepoint (lua_State *L) {
|
||||||
se = s + pose; /* string end */
|
se = s + pose; /* string end */
|
||||||
for (s += posi - 1; s < se;) {
|
for (s += posi - 1; s < se;) {
|
||||||
utfint code;
|
utfint code;
|
||||||
s = utf8_decode(s, &code, !nonstrict);
|
s = utf8_decode(s, &code, !lax);
|
||||||
if (s == NULL)
|
if (s == NULL)
|
||||||
return luaL_error(L, "invalid UTF-8 code");
|
return luaL_error(L, "invalid UTF-8 code");
|
||||||
lua_pushinteger(L, code);
|
lua_pushinteger(L, code);
|
||||||
|
@ -249,15 +249,15 @@ static int iter_auxstrict (lua_State *L) {
|
||||||
return iter_aux(L, 1);
|
return iter_aux(L, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int iter_auxnostrict (lua_State *L) {
|
static int iter_auxlax (lua_State *L) {
|
||||||
return iter_aux(L, 0);
|
return iter_aux(L, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int iter_codes (lua_State *L) {
|
static int iter_codes (lua_State *L) {
|
||||||
int nonstrict = lua_toboolean(L, 2);
|
int lax = lua_toboolean(L, 2);
|
||||||
luaL_checkstring(L, 1);
|
luaL_checkstring(L, 1);
|
||||||
lua_pushcfunction(L, nonstrict ? iter_auxnostrict : iter_auxstrict);
|
lua_pushcfunction(L, lax ? iter_auxlax : iter_auxstrict);
|
||||||
lua_pushvalue(L, 1);
|
lua_pushvalue(L, 1);
|
||||||
lua_pushinteger(L, 0);
|
lua_pushinteger(L, 0);
|
||||||
return 3;
|
return 3;
|
||||||
|
|
|
@ -7315,7 +7315,7 @@ valid sequences (well formed and not overlong).
|
||||||
By default, they only accept byte sequences
|
By default, they only accept byte sequences
|
||||||
that result in valid Unicode code points,
|
that result in valid Unicode code points,
|
||||||
rejecting values greater than @T{10FFFF} and surrogates.
|
rejecting values greater than @T{10FFFF} and surrogates.
|
||||||
A boolean argument @id{nonstrict}, when available,
|
A boolean argument @id{lax}, when available,
|
||||||
lifts these checks,
|
lifts these checks,
|
||||||
so that all values up to @T{0x7FFFFFFF} are accepted.
|
so that all values up to @T{0x7FFFFFFF} are accepted.
|
||||||
(Not well formed and overlong sequences are still rejected.)
|
(Not well formed and overlong sequences are still rejected.)
|
||||||
|
@ -7338,7 +7338,7 @@ assuming that the subject is a valid UTF-8 string.
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@LibEntry{utf8.codes (s [, nonstrict])|
|
@LibEntry{utf8.codes (s [, lax])|
|
||||||
|
|
||||||
Returns values so that the construction
|
Returns values so that the construction
|
||||||
@verbatim{
|
@verbatim{
|
||||||
|
@ -7351,7 +7351,7 @@ It raises an error if it meets any invalid byte sequence.
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@LibEntry{utf8.codepoint (s [, i [, j [, nonstrict]]])|
|
@LibEntry{utf8.codepoint (s [, i [, j [, lax]]])|
|
||||||
|
|
||||||
Returns the codepoints (as integers) from all characters in @id{s}
|
Returns the codepoints (as integers) from all characters in @id{s}
|
||||||
that start between byte position @id{i} and @id{j} (both included).
|
that start between byte position @id{i} and @id{j} (both included).
|
||||||
|
@ -7360,7 +7360,7 @@ It raises an error if it meets any invalid byte sequence.
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@LibEntry{utf8.len (s [, i [, j [, nonstrict]]])|
|
@LibEntry{utf8.len (s [, i [, j [, lax]]])|
|
||||||
|
|
||||||
Returns the number of UTF-8 characters in string @id{s}
|
Returns the number of UTF-8 characters in string @id{s}
|
||||||
that start between positions @id{i} and @id{j} (both inclusive).
|
that start between positions @id{i} and @id{j} (both inclusive).
|
||||||
|
|
Loading…
Reference in New Issue