Let's see the documented example:
string.format('%q', 'a string with "quotes" and \n new
line')
Well, if there's a new user of lua, he who doesn't really consumed
the documents, maybe, he is going to believe the result string is:
"a string with \"quotes\" and \n new line"
probably. but, very soon, he will realize that he was sadly
wrong, because lua just ate half of the '\n' - eat 'n', left '\'
:
"a string with \"quotes\" and \
new line"
lua: hotdog? I hate the taste of
sausage mixing
with bread ... lol
but that's ok, and the result string could be used as source string
with calls like "load" and "lua_load" etc.
however, under some special cases (e.g. debugging output), I
usually need to print the result on a limited screen area and hope
not to make mess of other outputs.
so, I usually changed the lua source code to serve my need, like
this: (lua 5.2b, file: "lstrlib.c", function: "addquoted")
static
void
addquoted
(lua_State *L, luaL_Buffer *b,
int
arg) {
...
luaL_addchar(b,
'"'
);
while
(l--) {
if
(*s ==
'"'
|| *s ==
'\\'
/*|| *s ==
'\n'*/
) {
// I just comment this...
luaL_addchar(b,
'\\'
);
luaL_addchar(b, *s);
}
else
if
...
...
}
...
}
Hope this could be an offical change