diff options
Diffstat (limited to 'src/pkg/net/url/url.go')
-rw-r--r-- | src/pkg/net/url/url.go | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/pkg/net/url/url.go b/src/pkg/net/url/url.go index 459dc473c..3b3787202 100644 --- a/src/pkg/net/url/url.go +++ b/src/pkg/net/url/url.go @@ -451,14 +451,17 @@ func (u *URL) String() string { } else { if u.Scheme != "" || u.Host != "" || u.User != nil { buf.WriteString("//") - if u := u.User; u != nil { - buf.WriteString(u.String()) + if ui := u.User; ui != nil { + buf.WriteString(ui.String()) buf.WriteByte('@') } if h := u.Host; h != "" { buf.WriteString(h) } } + if u.Path != "" && u.Path[0] != '/' && u.Host != "" { + buf.WriteByte('/') + } buf.WriteString(escape(u.Path, encodePath)) } if u.RawQuery != "" { @@ -555,8 +558,8 @@ func parseQuery(m Values, query string) (err error) { return err } -// Encode encodes the values into ``URL encoded'' form. -// e.g. "foo=bar&bar=baz" +// Encode encodes the values into ``URL encoded'' form +// ("bar=baz&foo=quux") sorted by key. func (v Values) Encode() string { if v == nil { return "" |