File tree Expand file tree Collapse file tree 1 file changed +86
-0
lines changed
Expand file tree Collapse file tree 1 file changed +86
-0
lines changed Original file line number Diff line number Diff line change @@ -246,6 +246,49 @@ std::string vfs::escape(std::string_view path)
246246 {
247247 switch (char c = path[i])
248248 {
249+ case 0 :
250+ case 1 :
251+ case 2 :
252+ case 3 :
253+ case 4 :
254+ case 5 :
255+ case 6 :
256+ case 7 :
257+ case 8 :
258+ case 9 :
259+ {
260+ result += u8" 0" ;
261+ result.back () += c;
262+ break ;
263+ }
264+ case 10 :
265+ case 11 :
266+ case 12 :
267+ case 13 :
268+ case 14 :
269+ case 15 :
270+ case 16 :
271+ case 17 :
272+ case 18 :
273+ case 19 :
274+ case 20 :
275+ case 21 :
276+ case 22 :
277+ case 23 :
278+ case 24 :
279+ case 25 :
280+ case 26 :
281+ case 27 :
282+ case 28 :
283+ case 29 :
284+ case 30 :
285+ case 31 :
286+ {
287+ result += u8" A" ;
288+ result.back () += c;
289+ result.back () -= 10 ;
290+ break ;
291+ }
249292 case ' <' :
250293 {
251294 result += u8" <" ;
@@ -350,6 +393,49 @@ std::string vfs::unescape(std::string_view path)
350393 {
351394 switch (path[i + 2 ])
352395 {
396+ case char {u8" 0" [2 ]}:
397+ case char {u8" 1" [2 ]}:
398+ case char {u8" 2" [2 ]}:
399+ case char {u8" 3" [2 ]}:
400+ case char {u8" 4" [2 ]}:
401+ case char {u8" 5" [2 ]}:
402+ case char {u8" 6" [2 ]}:
403+ case char {u8" 7" [2 ]}:
404+ case char {u8" 8" [2 ]}:
405+ case char {u8" 9" [2 ]}:
406+ {
407+ result += path[i + 2 ];
408+ result.back () -= u8" 0" [2 ];
409+ continue ;
410+ }
411+ case char {u8" A" [2 ]}:
412+ case char {u8" B" [2 ]}:
413+ case char {u8" C" [2 ]}:
414+ case char {u8" D" [2 ]}:
415+ case char {u8" E" [2 ]}:
416+ case char {u8" F" [2 ]}:
417+ case char {u8" G" [2 ]}:
418+ case char {u8" H" [2 ]}:
419+ case char {u8" I" [2 ]}:
420+ case char {u8" J" [2 ]}:
421+ case char {u8" K" [2 ]}:
422+ case char {u8" L" [2 ]}:
423+ case char {u8" M" [2 ]}:
424+ case char {u8" N" [2 ]}:
425+ case char {u8" O" [2 ]}:
426+ case char {u8" P" [2 ]}:
427+ case char {u8" Q" [2 ]}:
428+ case char {u8" R" [2 ]}:
429+ case char {u8" S" [2 ]}:
430+ case char {u8" T" [2 ]}:
431+ case char {u8" U" [2 ]}:
432+ case char {u8" V" [2 ]}:
433+ {
434+ result += path[i + 2 ];
435+ result.back () -= u8" A" [2 ];
436+ result.back () += 10 ;
437+ continue ;
438+ }
353439 case char {u8" !" [2 ]}:
354440 {
355441 i += 3 ;
You can’t perform that action at this time.
0 commit comments