helpers: Allow tilde in URLs
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 7 Jan 2017 18:29:20 +0000 (19:29 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 7 Jan 2017 18:29:20 +0000 (19:29 +0100)
See #2177

helpers/path.go
helpers/path_test.go

index 6e2422d05c47e865cc60dfd928ab950fb9ca2b2c..2e154062ee619328c88201a741617dc1f579ad09 100644 (file)
@@ -124,7 +124,7 @@ func (p *PathSpec) UnicodeSanitize(s string) string {
        for i, r := range source {
                if r == '%' && i+2 < len(source) && ishex(source[i+1]) && ishex(source[i+2]) {
                        target = append(target, r)
-               } else if unicode.IsLetter(r) || unicode.IsDigit(r) || unicode.IsMark(r) || r == '.' || r == '/' || r == '\\' || r == '_' || r == '-' || r == '#' || r == '+' {
+               } else if unicode.IsLetter(r) || unicode.IsDigit(r) || unicode.IsMark(r) || r == '.' || r == '/' || r == '\\' || r == '_' || r == '-' || r == '#' || r == '+' || r == '~' {
                        target = append(target, r)
                }
        }
index 04949910818ec4678d7a544f81dceb2f6d18b009..f1407fb15ffd5b1db93c82659ec9922cf92bfb42 100644 (file)
@@ -58,6 +58,8 @@ func TestMakePath(t *testing.T) {
                {"संस्कृत", "संस्कृत", false},
                {"a%C3%B1ame", "a%C3%B1ame", false},         // Issue #1292
                {"this+is+a+test", "this+is+a+test", false}, // Issue #1290
+               {"~foo", "~foo", false},                     // Issue #2177
+
        }
 
        for _, test := range tests {