@@ -144,13 +144,9 @@ class minitscript::minitscript::Transpiler {
144
144
* @return escaped string
145
145
*/
146
146
inline static const string escapeString (const string& str) {
147
- //
148
- auto result = str;
149
- const array<char , 11 > escapeSequences = {' 0' , ' a' , ' b' , ' f' , ' n' , ' r' , ' t' , ' v' , ' U' , ' "' };
150
- for (const auto c: escapeSequences) {
151
- result = StringTools::replace (result, string (" \\ " ) + c, string (" \\\\ " ) + c);
152
- }
153
- //
147
+ // escape control chars with backslash
148
+ string result;
149
+ result = StringTools::replace (str, " \\ " , " \\\\ " );
154
150
result = StringTools::replace (result, " \0 " , " \\ 0" );
155
151
result = StringTools::replace (result, " \a " , " \\ a" );
156
152
result = StringTools::replace (result, " \b " , " \\ b" );
@@ -160,25 +156,7 @@ class minitscript::minitscript::Transpiler {
160
156
result = StringTools::replace (result, " \t " , " \\ t" );
161
157
result = StringTools::replace (result, " \v " , " \\ v" );
162
158
result = StringTools::replace (result, " \" " , " \\\" " );
163
- //
164
- string result2;
165
- auto lc = ' \0 ' ;
166
- auto llc = ' \0 ' ;
167
- for (auto i = 0 ; i < result.size (); i++) {
168
- //
169
- auto c = result[i];
170
- auto nc = i < result.size () - 1 ?result[i + 1 ]:' \0 ' ;
171
- if (c == ' \\ ' && lc != ' \\ ' && nc != ' \\ ' && find (escapeSequences.begin (), escapeSequences.end (), nc) == escapeSequences.end ()) {
172
- result2+= " \\\\ " ;
173
- } else {
174
- result2+= c;
175
- }
176
- //
177
- auto lc = c;
178
- auto llc = lc;
179
- }
180
- //
181
- return result2;
159
+ return result;
182
160
}
183
161
184
162
/* *
0 commit comments