Skip to content

Commit b7458c0

Browse files
authored
Merge pull request #1 from kittaakos/arduino/arduino-ide#1124
fix: URL path encoding
2 parents c197744 + 68a187a commit b7458c0

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

Diff for: uri.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,16 @@ var toSlash = filepath.ToSlash
6363

6464
// NewDocumentURI create a DocumentURI from the given string path
6565
func NewDocumentURI(path string) DocumentURI {
66-
// tranform path into URI
66+
// transform path into URI
6767
path = toSlash(path)
6868
if len(path) == 0 || path[0] != '/' {
6969
path = "/" + path
7070
}
71-
uri, err := NewDocumentURIFromURL("file://" + path)
71+
uri, err := NewDocumentURIFromURL("file://")
7272
if err != nil {
7373
panic(err)
7474
}
75+
uri.url.Path = path
7576
return uri
7677
}
7778

Diff for: uri_test.go

+8-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ func TestUriToPath(t *testing.T) {
2020
require.NoError(t, err)
2121
require.Equal(t, "C:/Users/test/Sketch.ino", d.unbox())
2222

23+
d, err = NewDocumentURIFromURL("file:///C:/Users/test/Sketch%23suffix.ino")
24+
require.NoError(t, err)
25+
require.Equal(t, "C:/Users/test/Sketch#suffix.ino", d.unbox())
26+
2327
d, err = NewDocumentURIFromURL("file:///c%3A/Users/test/Sketch.ino")
2428
require.NoError(t, err)
2529
require.Equal(t, "c:/Users/test/Sketch.ino", d.unbox())
@@ -38,9 +42,12 @@ func TestUriToPath(t *testing.T) {
3842
}
3943

4044
func TestPathToUri(t *testing.T) {
45+
d := NewDocumentURI("/Users/test/Sketch#suffix.ino")
46+
require.Equal(t, "file:///Users/test/Sketch%23suffix.ino", d.String())
47+
4148
toSlash = windowsToSlash // Emulate windows cases
4249

43-
d := NewDocumentURI("C:\\Users\\test\\Sketch.ino")
50+
d = NewDocumentURI("C:\\Users\\test\\Sketch.ino")
4451
require.Equal(t, "file:///C:/Users/test/Sketch.ino", d.String())
4552
d = NewDocumentURI("/Users/test/Sketch.ino")
4653
require.Equal(t, "file:///Users/test/Sketch.ino", d.String())

0 commit comments

Comments
 (0)