based games. It's currently in beta (2.0.0 release is planned on June 22 which is Quake's 20th anniversary). WWW: http://kristianduske.com/trenchbroom/
116 lines
5 KiB
Text
116 lines
5 KiB
Text
--- common/src/IO/ConfigParser.cpp.orig 2016-03-09 20:19:17 UTC
|
|
+++ common/src/IO/ConfigParser.cpp
|
|
@@ -61,10 +61,10 @@ namespace TrenchBroom {
|
|
case '\t':
|
|
case '\n':
|
|
case '\r':
|
|
- discardWhile(Whitespace);
|
|
+ discardWhile(Whitespace());
|
|
break;
|
|
default: {
|
|
- const char* e = readString(Whitespace + "=");
|
|
+ const char* e = readString(Whitespace() + "=");
|
|
if (e == NULL)
|
|
throw ParserException(startLine, startColumn, "Unexpected character: " + String(c, 1));
|
|
return Token(ConfigToken::Identifier, c, e, offset(c), startLine, startColumn);
|
|
--- common/src/IO/FgdParser.cpp.orig 2016-03-09 20:19:17 UTC
|
|
+++ common/src/IO/FgdParser.cpp
|
|
@@ -79,7 +79,7 @@ namespace TrenchBroom {
|
|
case '\t':
|
|
case '\n':
|
|
case '\r':
|
|
- discardWhile(Whitespace);
|
|
+ discardWhile(Whitespace());
|
|
break;
|
|
default: {
|
|
const char* e = readInteger(WordDelims);
|
|
--- common/src/IO/StandardMapParser.cpp.orig 2016-03-09 20:19:17 UTC
|
|
+++ common/src/IO/StandardMapParser.cpp
|
|
@@ -25,7 +25,10 @@
|
|
|
|
namespace TrenchBroom {
|
|
namespace IO {
|
|
- const String QuakeMapTokenizer::NumberDelim = Whitespace + ")";
|
|
+ const String& QuakeMapTokenizer::NumberDelim() {
|
|
+ static const String numberDelim(Whitespace() + ")");
|
|
+ return numberDelim;
|
|
+ }
|
|
|
|
QuakeMapTokenizer::QuakeMapTokenizer(const char* begin, const char* end) :
|
|
Tokenizer(begin, end),
|
|
@@ -88,18 +91,18 @@ namespace TrenchBroom {
|
|
case '\r':
|
|
case ' ':
|
|
case '\t':
|
|
- discardWhile(Whitespace);
|
|
+ discardWhile(Whitespace());
|
|
break;
|
|
default: { // whitespace, integer, decimal or word
|
|
- const char* e = readInteger(NumberDelim);
|
|
+ const char* e = readInteger(NumberDelim());
|
|
if (e != NULL)
|
|
return Token(QuakeMapToken::Integer, c, e, offset(c), startLine, startColumn);
|
|
|
|
- e = readDecimal(NumberDelim);
|
|
+ e = readDecimal(NumberDelim());
|
|
if (e != NULL)
|
|
return Token(QuakeMapToken::Decimal, c, e, offset(c), startLine, startColumn);
|
|
|
|
- e = readString(Whitespace);
|
|
+ e = readString(Whitespace());
|
|
if (e == NULL)
|
|
throw ParserException(startLine, startColumn, "Unexpected character: " + String(c, 1));
|
|
return Token(QuakeMapToken::String, c, e, offset(c), startLine, startColumn);
|
|
@@ -356,7 +359,7 @@ namespace TrenchBroom {
|
|
}
|
|
|
|
// texture names can contain braces etc, so we just read everything until the next opening bracket or number
|
|
- String textureName = m_tokenizer.readAnyString(QuakeMapTokenizer::Whitespace);
|
|
+ String textureName = m_tokenizer.readAnyString(QuakeMapTokenizer::Whitespace());
|
|
if (textureName == Model::BrushFace::NoTextureName)
|
|
textureName = "";
|
|
|
|
--- common/src/IO/StandardMapParser.h.orig 2016-03-09 20:19:17 UTC
|
|
+++ common/src/IO/StandardMapParser.h
|
|
@@ -50,7 +50,7 @@ namespace TrenchBroom {
|
|
|
|
class QuakeMapTokenizer : public Tokenizer<QuakeMapToken::Type> {
|
|
private:
|
|
- static const String NumberDelim;
|
|
+ static const String& NumberDelim();
|
|
bool m_skipEol;
|
|
public:
|
|
QuakeMapTokenizer(const char* begin, const char* end);
|
|
--- common/src/IO/Tokenizer.h.orig 2016-03-09 20:19:17 UTC
|
|
+++ common/src/IO/Tokenizer.h
|
|
@@ -54,7 +54,10 @@ namespace TrenchBroom {
|
|
|
|
TokenStack m_tokenStack;
|
|
public:
|
|
- static const String Whitespace;
|
|
+ static const String& Whitespace() {
|
|
+ static const String whitespace(" \t\n\r");
|
|
+ return whitespace;
|
|
+ }
|
|
public:
|
|
Tokenizer(const char* begin, const char* end) :
|
|
m_begin(begin),
|
|
@@ -205,7 +208,7 @@ namespace TrenchBroom {
|
|
}
|
|
|
|
bool isWhitespace(const char c) const {
|
|
- return isAnyOf(c, Whitespace);
|
|
+ return isAnyOf(c, Whitespace());
|
|
}
|
|
|
|
const char* readInteger(const String& delims) {
|
|
@@ -297,9 +300,6 @@ namespace TrenchBroom {
|
|
|
|
virtual Token emitToken() = 0;
|
|
};
|
|
-
|
|
- template <typename TokenType>
|
|
- const String Tokenizer<TokenType>::Whitespace = " \t\n\r";
|
|
}
|
|
}
|
|
#endif
|