From: Jo-Philipp Wich Date: Sun, 26 Jul 2009 23:23:32 +0000 (+0000) Subject: libs/web: fix template parsing of default texts in i18n expressions X-Git-Tag: 0.10.0~1293 X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=8acc6307bf52e5e67f41597e062cb9151162f80e;p=project%2Fluci.git libs/web: fix template parsing of default texts in i18n expressions --- diff --git a/libs/web/src/template_parser.c b/libs/web/src/template_parser.c index 58de5bb774..9618919b30 100644 --- a/libs/web/src/template_parser.c +++ b/libs/web/src/template_parser.c @@ -58,12 +58,12 @@ static char *strfind(char *haystack, int hslen, const char *needle, int ndlen) return NULL; } -/* - * Inspect current read buffer and find the number of "vague" characters at the end +/* + * Inspect current read buffer and find the number of "vague" characters at the end * which could indicate an opening token. Returns the number of "vague" chars. * The last continuous sequence of whitespace, optionally followed by a "<" is * treated as "vague" because whitespace may be discarded if the upcoming opening - * token indicates pre-whitespace-removal ("<%-"). A single remaining "<" char + * token indicates pre-whitespace-removal ("<%-"). A single remaining "<" char * can't be differentiated from an opening token ("<%"), so it's kept to be processed * in the next cycle. */ @@ -186,8 +186,8 @@ static const char * generate_expression(struct template_parser *data, size_t *sz } } - /* Found whitespace in i18n expression, raise flag */ - else if( isspace(data->out[i]) && (data->type == T_TYPE_I18N) ) + /* Found first whitespace in i18n expression, raise flag */ + else if( isspace(data->out[i]) && (data->type == T_TYPE_I18N) && (i18n_hasdef == 0) ) { i18n_hasdef = 1; }