Skip to content

Commit 49be281

Browse files
committed
GenericFileFormat: new OPTION_NAKEDSTR_USCORES_TO_SPACES
Only for OPTION_ALLOW_NAKED_STRINGS: Replace underscores with spaces in naked strings (classic behavior of the truck format).
1 parent 6428a1d commit 49be281

File tree

4 files changed

+16
-2
lines changed

4 files changed

+16
-2
lines changed

doc/angelscript/Script2Game/GenericDocumentClass.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ enum GenericDocumentOptions
1717
GENERIC_DOCUMENT_OPTION_PARENTHESES_CAPTURE_SPACES, //!< If non-empty NAKED string encounters '(', following spaces will be captured until matching ')' is found.
1818
GENERIC_DOCUMENT_OPTION_ALLOW_BRACED_KEYWORDS, //!< Allow INI-like '[keyword]' tokens.
1919
GENERIC_DOCUMENT_OPTION_ALLOW_SEPARATOR_EQUALS, //!< Allow '=' as separator between tokens.
20-
GENERIC_DOCUMENT_OPTION_ALLOW_HASH_COMMENTS //!< Allow comments starting with `#`.
20+
GENERIC_DOCUMENT_OPTION_ALLOW_HASH_COMMENTS, //!< Allow comments starting with `#`.
21+
GENERIC_DOCUMENT_OPTION_NAKEDSTR_USCORES_TO_SPACES //!< Only for OPTION_ALLOW_NAKED_STRINGS: Replace underscores with spaces in naked strings (classic behavior of the truck format).
2122
};
2223

2324
/**

source/main/scripting/bindings/GenericFileFormatAngelscript.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ void RoR::RegisterGenericFileFormat(asIScriptEngine* engine)
6464
engine->RegisterEnumValue("GenericDocumentOptions", "GENERIC_DOCUMENT_OPTION_ALLOW_BRACED_KEYWORDS", GenericDocument::OPTION_ALLOW_BRACED_KEYWORDS);
6565
engine->RegisterEnumValue("GenericDocumentOptions", "GENERIC_DOCUMENT_OPTION_ALLOW_SEPARATOR_EQUALS", GenericDocument::OPTION_ALLOW_SEPARATOR_EQUALS);
6666
engine->RegisterEnumValue("GenericDocumentOptions", "GENERIC_DOCUMENT_OPTION_ALLOW_HASH_COMMENTS", GenericDocument::OPTION_ALLOW_HASH_COMMENTS);
67+
engine->RegisterEnumValue("GenericDocumentOptions", "GENERIC_DOCUMENT_OPTION_NAKEDSTR_USCORES_TO_SPACES", GenericDocument::OPTION_NAKEDSTR_USCORES_TO_SPACES);
6768

6869

6970
// class GenericDocument

source/main/utils/GenericFileFormat.cpp

+11
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,17 @@ void DocumentParser::UpdateString(const char c)
408408
line_pos++;
409409
break;
410410

411+
case '_':
412+
if (partial_tok_type == PartialToken::STRING_NAKED
413+
&& options & GenericDocument::OPTION_NAKEDSTR_USCORES_TO_SPACES)
414+
{
415+
tok.push_back(' ');
416+
}
417+
else
418+
{
419+
tok.push_back(c);
420+
}
421+
411422
default:
412423
tok.push_back(c);
413424
line_pos++;

source/main/utils/GenericFileFormat.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ struct GenericDocument: public RefCountingObject<GenericDocument>
7272
static const BitMask_t OPTION_PARENTHESES_CAPTURE_SPACES = BITMASK(5); //!< If non-empty NAKED string encounters '(', following spaces will be captured until matching ')' is found.
7373
static const BitMask_t OPTION_ALLOW_BRACED_KEYWORDS = BITMASK(6); //!< Allow INI-like '[keyword]' tokens.
7474
static const BitMask_t OPTION_ALLOW_SEPARATOR_EQUALS = BITMASK(7); //!< Allow '=' as separator between tokens.
75-
static const BitMask_t OPTION_ALLOW_HASH_COMMENTS = BITMASK(8); //!< Allow comments starting with `#`.
75+
static const BitMask_t OPTION_ALLOW_HASH_COMMENTS = BITMASK(8); //!< Allow comments starting with `#`.
76+
static const BitMask_t OPTION_NAKEDSTR_USCORES_TO_SPACES = BITMASK(9); //!< Only for OPTION_ALLOW_NAKED_STRINGS: Replace underscores with spaces in naked strings (classic behavior of the truck format).
7677

7778
virtual ~GenericDocument() {};
7879

0 commit comments

Comments
 (0)