Skip to content

Commit 606d24f

Browse files
committed
feat(tpl): escape control char for displaying
1 parent 0536666 commit 606d24f

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

src/tpl/util/formatFilename.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,48 @@ import (
66
)
77

88
var filenameReplacer = strings.NewReplacer(
9+
"\000", "<em>nul</em>",
910
"\a", "<em>\\a</em>",
1011
"\b", "<em>\\b</em>",
1112
"\f", "<em>\\f</em>",
1213
"\n", "<em>\\n</em>",
1314
"\r", "<em>\\r</em>",
1415
"\t", "<em>\\t</em>",
1516
"\v", "<em>\\v</em>",
17+
18+
"\000", "<em>\\000</em>",
19+
"\001", "<em>\\001</em>",
20+
"\002", "<em>\\002</em>",
21+
"\003", "<em>\\003</em>",
22+
"\004", "<em>\\004</em>",
23+
"\005", "<em>\\005</em>",
24+
"\006", "<em>\\006</em>",
25+
"\007", "<em>\\007</em>",
26+
"\010", "<em>\\010</em>",
27+
"\011", "<em>\\011</em>",
28+
"\012", "<em>\\012</em>",
29+
"\013", "<em>\\013</em>",
30+
"\014", "<em>\\014</em>",
31+
"\015", "<em>\\015</em>",
32+
"\016", "<em>\\016</em>",
33+
"\017", "<em>\\017</em>",
34+
"\020", "<em>\\020</em>",
35+
"\021", "<em>\\021</em>",
36+
"\022", "<em>\\022</em>",
37+
"\023", "<em>\\023</em>",
38+
"\024", "<em>\\024</em>",
39+
"\025", "<em>\\025</em>",
40+
"\026", "<em>\\026</em>",
41+
"\027", "<em>\\027</em>",
42+
"\030", "<em>\\030</em>",
43+
"\031", "<em>\\031</em>",
44+
"\032", "<em>\\032</em>",
45+
"\033", "<em>\\033</em>",
46+
"\034", "<em>\\034</em>",
47+
"\035", "<em>\\035</em>",
48+
"\036", "<em>\\036</em>",
49+
"\037", "<em>\\037</em>",
50+
"\177", "<em>\\177</em>",
1651
)
1752

1853
func FormatFilename(filename string) template.HTML {

test/case/012.filename.special.char.bash

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ sleep 0.05 # wait server ready
1111
(curl_get_body http://127.0.0.1:3003/special-char/ | grep -q -G '>important<em>\\t</em>notice.txt<') ||
1212
fail 'important\\tnotice.txt filename not displayed correctly'
1313

14+
(curl_get_body http://127.0.0.1:3003/special-char/ | grep -q -G '>secret<em>\\033</em>doc.txt<') ||
15+
fail 'secret^[doc.txt filename not displayed correctly'
16+
1417
notice=$(curl_get_body http://127.0.0.1:3003/special-char/important%09notice.txt)
1518
assert "$notice" 'vhost1/special-char/important\tnotice.txt'
1619

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
vhost1/special-char/secret^[doc.txt

0 commit comments

Comments
 (0)