gluon-web: use ' instead of " for strings in generated Lua code
We need a bit less escaping this way.
This commit is contained in:
parent
3e292ba06f
commit
933cc3d7d9
@ -73,12 +73,12 @@ struct template_parser {
|
||||
/* leading and trailing code for different types */
|
||||
static const char *const gen_code[][2] = {
|
||||
[T_TYPE_INIT] = {NULL, NULL},
|
||||
[T_TYPE_TEXT] = {"write(\"", "\")"},
|
||||
[T_TYPE_TEXT] = {"write('", "')"},
|
||||
[T_TYPE_COMMENT] = {NULL, NULL},
|
||||
[T_TYPE_EXPR] = {"write(tostring(", " or \"\"))"},
|
||||
[T_TYPE_INCLUDE] = {"include(\"", "\")"},
|
||||
[T_TYPE_I18N] = {"write(\"", "\")"},
|
||||
[T_TYPE_I18N_RAW] = {"write(\"", "\")"},
|
||||
[T_TYPE_EXPR] = {"write(tostring(", " or ''))"},
|
||||
[T_TYPE_INCLUDE] = {"include('", "')"},
|
||||
[T_TYPE_I18N] = {"write('", "')"},
|
||||
[T_TYPE_I18N_RAW] = {"write('", "')"},
|
||||
[T_TYPE_CODE] = {NULL, " "},
|
||||
[T_TYPE_EOF] = {NULL, NULL},
|
||||
};
|
||||
|
@ -267,8 +267,7 @@ char * pcdata(const char *s, size_t l, size_t *outl)
|
||||
if (!buf)
|
||||
return NULL;
|
||||
|
||||
for (o = 0; o < l; o++)
|
||||
{
|
||||
for (o = 0; o < l; o++) {
|
||||
/* Invalid XML bytes */
|
||||
if ((*ptr <= 0x08) ||
|
||||
((*ptr >= 0x0B) && (*ptr <= 0x0C)) ||
|
||||
@ -279,11 +278,11 @@ char * pcdata(const char *s, size_t l, size_t *outl)
|
||||
}
|
||||
|
||||
/* Escapes */
|
||||
else if ((*ptr == 0x26) ||
|
||||
(*ptr == 0x27) ||
|
||||
(*ptr == 0x22) ||
|
||||
(*ptr == 0x3C) ||
|
||||
(*ptr == 0x3E))
|
||||
else if ((*ptr == '\'') ||
|
||||
(*ptr == '"') ||
|
||||
(*ptr == '&') ||
|
||||
(*ptr == '<') ||
|
||||
(*ptr == '>'))
|
||||
{
|
||||
esl = snprintf(esq, sizeof(esq), "&#%i;", *ptr);
|
||||
|
||||
@ -319,26 +318,24 @@ void luastr_escape(struct template_buffer *out, const char *s, size_t l, bool es
|
||||
char esq[8];
|
||||
const char *ptr;
|
||||
|
||||
for (ptr = s; ptr < (s + l); ptr++)
|
||||
{
|
||||
switch (*ptr)
|
||||
{
|
||||
for (ptr = s; ptr < (s + l); ptr++) {
|
||||
switch (*ptr) {
|
||||
case '\\':
|
||||
buf_append(out, "\\\\", 2);
|
||||
break;
|
||||
|
||||
case '"':
|
||||
case '\'':
|
||||
if (escape_xml)
|
||||
buf_append(out, """, 5);
|
||||
buf_append(out, "'", 5);
|
||||
else
|
||||
buf_append(out, "\\\"", 2);
|
||||
buf_append(out, "\\\'", 2);
|
||||
break;
|
||||
|
||||
case '\n':
|
||||
buf_append(out, "\\n", 2);
|
||||
break;
|
||||
|
||||
case '\'':
|
||||
case '"':
|
||||
case '&':
|
||||
case '<':
|
||||
case '>':
|
||||
|
Loading…
Reference in New Issue
Block a user