(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;
}
/* virtual */ void HandlePragma(char *str)
{
strgen_fatal("unknown pragma '%s'", str);
}
};
/** 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));
} else if (!memcmp(str, "isocode ", 8)) {
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)) {
if (!memcmp(str + 8, "ltr", 3)) {
_lang.text_dir = TD_LTR;
@ -208,7 +203,7 @@ void FileStringReader::HandlePragma(char *str)
_lang.num_cases++;
}
} else {
error("unknown pragma '%s'", str);
StringReader::HandlePragma(str);
}
}

View File

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