lua: push characters as unformatted 1-character strings

Since Lua 5.3 the "%c" format character in lua_pushfstring will produce
the string "<\XXX>" (XXX being a decimal code sequence) when
given unprintable characters.

Use lua_pushlstring instead to reproduce the old behavior.
This commit is contained in:
Nils Gladitz 2015-07-01 12:24:12 +02:00
commit ca208cfe35
6 changed files with 37 additions and 4 deletions

View file

@ -0,0 +1,15 @@
%module chartest
%inline %{
char printable_global_char = 'a';
char unprintable_global_char = 0x7F;
char GetPrintableChar() {
return 'a';
}
char GetUnprintableChar() {
return 0x7F;
}
%}

View file

@ -138,6 +138,7 @@ CPP_TEST_CASES += \
casts \
char_binary \
char_strings \
chartest \
class_forward \
class_ignore \
class_scope_weird \

View file

@ -0,0 +1,14 @@
require("import") -- the import fn
import("chartest") -- import code
function char_assert(char, code)
assert(type(char) == 'string')
assert(char:len() == 1)
assert(char:byte() == code)
end
char_assert(chartest.GetPrintableChar(), 0x61)
char_assert(chartest.GetUnprintableChar(), 0x7F)
char_assert(chartest.printable_global_char, 0x61)
char_assert(chartest.unprintable_global_char, 0x7F)