summaryrefslogtreecommitdiff
path: root/src/pkg/net/url/url.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/net/url/url.go')
-rw-r--r--src/pkg/net/url/url.go11
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 ""