File tree Expand file tree Collapse file tree 1 file changed +22
-27
lines changed Expand file tree Collapse file tree 1 file changed +22
-27
lines changed Original file line number Diff line number Diff line change @@ -27,42 +27,37 @@ type htmlEscapeWriter struct {
27
27
w io.Writer
28
28
}
29
29
30
- func (w * htmlEscapeWriter ) Write (p []byte ) (int , error ) {
31
- i := 0
32
- ww := w .w
33
- var (
34
- b []byte
35
- err error
36
- n int
37
- )
38
- for j , c := range p {
39
- b = nil
30
+ func (w * htmlEscapeWriter ) Write (b []byte ) (int , error ) {
31
+ write := w .w .Write
32
+ j := 0
33
+ for i , c := range b {
40
34
switch c {
41
35
case '<' :
42
- b = strLT
36
+ write (b [j :i ])
37
+ write (strLT )
38
+ j = i + 1
43
39
case '>' :
44
- b = strGT
40
+ write (b [j :i ])
41
+ write (strGT )
42
+ j = i + 1
45
43
case '"' :
46
- b = strQuot
44
+ write (b [j :i ])
45
+ write (strQuot )
46
+ j = i + 1
47
47
case '\'' :
48
- b = strApos
48
+ write (b [j :i ])
49
+ write (strApos )
50
+ j = i + 1
49
51
case '&' :
50
- b = strAmp
51
- }
52
- if b != nil {
53
- if n , err = ww .Write (p [i :j ]); err != nil {
54
- return i + n , err
55
- }
56
- if n , err = ww .Write (b ); err != nil {
57
- return j , err
58
- }
59
- i = j + 1
52
+ write (b [j :i ])
53
+ write (strAmp )
54
+ j = i + 1
60
55
}
61
56
}
62
- if n , err = ww . Write ( p [ i :]); err != nil {
63
- return i + n , err
57
+ if n , err := write ( b [ j :]); err != nil {
58
+ return j + n , err
64
59
}
65
- return len (p ), nil
60
+ return len (b ), nil
66
61
}
67
62
68
63
var (
You can’t perform that action at this time.
0 commit comments