diff --git a/data/magic.mse-game/script b/data/magic.mse-game/script index fb8cb7c5..00158333 100644 --- a/data/magic.mse-game/script +++ b/data/magic.mse-game/script @@ -453,22 +453,8 @@ text_filter := replace@( match: "\\[[SCTQXYZIWUBRG0-9/|]+\\]", replace: {"" + mana_filter_t() + ""} ) + - # step 6a : curly double quotes - replace@( - match: "[[.quotation-mark.]]|“", - in_context: "[“][A-Za-z,.!?+$<>:;-— 0-9\\\\]*", - replace: "”" )+ - replace@( - match: "[[.quotation-mark.]]", - replace: "“" )+ - # step 6b : curly single quotes - replace@( - match: "' |‘ ", - in_context: "[‘][A-Za-z,.!?+$<>:;-— 0-9\\\\]*", - replace: "’ " )+ - replace@( - match: " '", - replace: " ‘" )+ + # step 6 : curly quotes + curly_quotes + # step 7 : ??? replace@( match: "[(]([^)\n]|[(][^)\n]*[)])*[)]?", @@ -480,7 +466,6 @@ text_filter := + "([[:lower:]])" # match this + "(?![)])", # not followed by this replace: { _1 + to_upper(_2) }) + - #curly_quotes + # step 9 : spellcheck { if set.mark_errors then check_spelling( diff --git a/src/util/tagged_string.cpp b/src/util/tagged_string.cpp index 89697204..44f4779d 100644 --- a/src/util/tagged_string.cpp +++ b/src/util/tagged_string.cpp @@ -607,6 +607,10 @@ void check_tagged(const String& str, bool check_balance) { // ----------------------------------------------------------------------------- : Other utilities +bool is_space_like(Char c) { + return isSpace(c) || c == _('(') || c == _('[') || c == _('{') || c == EN_DASH || c == EM_DASH; +} + String curly_quotes(String str, bool curl) { bool open = true, in_tag = false; FOR_EACH(c, str) { @@ -620,7 +624,7 @@ String curly_quotes(String str, bool curl) { in_tag = false; } else if (!in_tag) { // Also allow double-nesting of quotes - open = isSpace(c) || c == _('(') || c == _('['); + open = is_space_like(c); } } return str;