(svn r24516) -Add: [GS] Support ##plural pragma in GS lang files.

This commit is contained in:
frosch 2012-09-09 15:55:20 +00:00
parent 2ec6136113
commit 16760cff8b
4 changed files with 13 additions and 12 deletions

View File

@ -147,11 +147,6 @@ struct StringListReader : StringReader {
return buffer; return buffer;
} }
/* virtual */ void HandlePragma(char *str)
{
strgen_fatal("unknown pragma '%s'", str);
}
}; };
/** Class for writing an encoded language. */ /** Class for writing an encoded language. */

View File

@ -147,11 +147,6 @@ void FileStringReader::HandlePragma(char *str)
strecpy(_lang.own_name, str + 8, lastof(_lang.own_name)); strecpy(_lang.own_name, str + 8, lastof(_lang.own_name));
} else if (!memcmp(str, "isocode ", 8)) { } else if (!memcmp(str, "isocode ", 8)) {
strecpy(_lang.isocode, str + 8, lastof(_lang.isocode)); strecpy(_lang.isocode, str + 8, lastof(_lang.isocode));
} else if (!memcmp(str, "plural ", 7)) {
_lang.plural_form = atoi(str + 7);
if (_lang.plural_form >= lengthof(_plural_forms)) {
error("Invalid pluralform %d", _lang.plural_form);
}
} else if (!memcmp(str, "textdir ", 8)) { } else if (!memcmp(str, "textdir ", 8)) {
if (!memcmp(str + 8, "ltr", 3)) { if (!memcmp(str + 8, "ltr", 3)) {
_lang.text_dir = TD_LTR; _lang.text_dir = TD_LTR;
@ -208,7 +203,7 @@ void FileStringReader::HandlePragma(char *str)
_lang.num_cases++; _lang.num_cases++;
} }
} else { } else {
error("unknown pragma '%s'", str); StringReader::HandlePragma(str);
} }
} }

View File

@ -81,7 +81,7 @@ struct StringReader {
* Handle the pragma of the file. * Handle the pragma of the file.
* @param str The pragma string to parse. * @param str The pragma string to parse.
*/ */
virtual void HandlePragma(char *str) = 0; virtual void HandlePragma(char *str);
/** /**
* Start parsing the file. * Start parsing the file.

View File

@ -783,6 +783,17 @@ void StringReader::HandleString(char *str)
} }
} }
void StringReader::HandlePragma(char *str)
{
if (!memcmp(str, "plural ", 7)) {
_lang.plural_form = atoi(str + 7);
if (_lang.plural_form >= lengthof(_plural_forms)) {
strgen_fatal("Invalid pluralform %d", _lang.plural_form);
}
} else {
strgen_fatal("unknown pragma '%s'", str);
}
}
static void rstrip(char *buf) static void rstrip(char *buf)
{ {