mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-12 13:37:00 -04:00
slightly better error messages when reading an enum value fails: also report the default used
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1464 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# This file contains the keys expected to be in MSE locales
|
# This file contains the keys expected to be in MSE locales
|
||||||
# It was automatically generated by tools/locale/locale.pl
|
# It was automatically generated by tools/locale/locale.pl
|
||||||
# Generated on Sun Jan 11 17:40:25 2009
|
# Generated on Mon Aug 2 23:18:19 2010
|
||||||
|
|
||||||
action:
|
action:
|
||||||
add control point: 0
|
add control point: 0
|
||||||
@@ -84,10 +84,10 @@ button:
|
|||||||
select all: 0
|
select all: 0
|
||||||
select cards: 0
|
select cards: 0
|
||||||
select none: 0
|
select none: 0
|
||||||
spellcheck enabled: 0
|
|
||||||
show: 0
|
show: 0
|
||||||
show editing hints: 0
|
show editing hints: 0
|
||||||
show lines: 0
|
show lines: 0
|
||||||
|
spellcheck enabled: 0
|
||||||
symbol gallery: optional, 0
|
symbol gallery: optional, 0
|
||||||
upgrade group: optional, 0
|
upgrade group: optional, 0
|
||||||
upgrade package: 0
|
upgrade package: 0
|
||||||
@@ -137,7 +137,7 @@ error:
|
|||||||
successful install: optional, 2
|
successful install: optional, 2
|
||||||
unable to open output file: 0
|
unable to open output file: 0
|
||||||
unable to store file: 0
|
unable to store file: 0
|
||||||
unrecognized value: 1
|
unrecognized value: 2
|
||||||
unsupported field type: 1
|
unsupported field type: 1
|
||||||
unsupported fill type: 1
|
unsupported fill type: 1
|
||||||
unsupported format: 1
|
unsupported format: 1
|
||||||
|
|||||||
@@ -429,14 +429,20 @@ template <> void Reader::handle(FileName& f) {
|
|||||||
|
|
||||||
// ----------------------------------------------------------------------------- : EnumReader
|
// ----------------------------------------------------------------------------- : EnumReader
|
||||||
|
|
||||||
|
String EnumReader::notDoneErrorMessage() const {
|
||||||
|
if (!first) throw InternalError(_("No first value in EnumReader"));
|
||||||
|
return _ERROR_2_("unrecognized value", read, first);
|
||||||
|
}
|
||||||
|
|
||||||
void EnumReader::warnIfNotDone(Reader* errors_to) {
|
void EnumReader::warnIfNotDone(Reader* errors_to) {
|
||||||
if (!done) {
|
if (!done) {
|
||||||
// warning: unknown value
|
// warning: unknown value
|
||||||
errors_to->warning(_ERROR_1_("unrecognized value", read));
|
errors_to->warning(notDoneErrorMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnumReader::errorIfNotDone() {
|
void EnumReader::errorIfNotDone() {
|
||||||
if (!done) {
|
if (!done) {
|
||||||
throw ParseError(_ERROR_1_("unrecognized value", read));
|
throw ParseError(notDoneErrorMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-11
@@ -268,18 +268,19 @@ void Reader::handle(IndexMap<K,V>& m) {
|
|||||||
class EnumReader {
|
class EnumReader {
|
||||||
public:
|
public:
|
||||||
inline EnumReader(String read)
|
inline EnumReader(String read)
|
||||||
: read(read), first(true), done(false) {}
|
: read(read), first(nullptr), done(false) {}
|
||||||
|
|
||||||
/// Handle a possible value for the enum, if the name matches the name in the input
|
/// Handle a possible value for the enum, if the name matches the name in the input
|
||||||
template <typename Enum>
|
template <typename Enum>
|
||||||
inline void handle(const Char* name, Enum value, Enum& enum_) {
|
inline void handle(const Char* name, Enum value, Enum& enum_) {
|
||||||
if (!done && read == name) {
|
if (!done) {
|
||||||
done = true;
|
if (read == name) {
|
||||||
first = false;
|
done = true;
|
||||||
enum_ = value;
|
enum_ = value;
|
||||||
} else if (first) {
|
} else if (!first) {
|
||||||
first = false;
|
first = name;
|
||||||
enum_ = value;
|
enum_ = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -288,9 +289,11 @@ class EnumReader {
|
|||||||
void errorIfNotDone();
|
void errorIfNotDone();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
String read; ///< The string to match to a value name
|
String read; ///< The string to match to a value name
|
||||||
bool first; ///< Has the first (default) value been matched?
|
Char const* first; ///< Has the first (default) value been handled? If so, what is its name.
|
||||||
bool done; ///< Was anything matched?
|
bool done; ///< Was anything matched?
|
||||||
|
|
||||||
|
String notDoneErrorMessage() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------- : EOF
|
// ----------------------------------------------------------------------------- : EOF
|
||||||
|
|||||||
Reference in New Issue
Block a user