summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/game_text.cpp5
-rw-r--r--src/strgen/strgen.cpp7
-rw-r--r--src/strgen/strgen.h2
-rw-r--r--src/strgen/strgen_base.cpp11
4 files changed, 13 insertions, 12 deletions
diff --git a/src/game/game_text.cpp b/src/game/game_text.cpp
index 4085d5d25..07388c842 100644
--- a/src/game/game_text.cpp
+++ b/src/game/game_text.cpp
@@ -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. */
diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp
index 84e791677..e93036952 100644
--- a/src/strgen/strgen.cpp
+++ b/src/strgen/strgen.cpp
@@ -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);
}
}
diff --git a/src/strgen/strgen.h b/src/strgen/strgen.h
index badfb06f7..18ea26997 100644
--- a/src/strgen/strgen.h
+++ b/src/strgen/strgen.h
@@ -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.
diff --git a/src/strgen/strgen_base.cpp b/src/strgen/strgen_base.cpp
index 3d0c91d30..7e4516f61 100644
--- a/src/strgen/strgen_base.cpp
+++ b/src/strgen/strgen_base.cpp
@@ -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)
{