URL decoding changed semantics of + in URLs
- From
Thomas Rast <trast@student.ethz.ch>
- Date
- Jul 23, 2010, 13:18 UTC
- Message-ID
- <201007231518.31071.trast@student.ethz.ch>
Hi Jeff
As pointed out by Jasper St. Pierre on #git, it is no longer possible to clone
git://git.gnome.org/gtk+
because your 9d2e942 (decode file:// and ssh:// URLs, 2010-05-23) decodes + characters in URLs to spaces in the http style. It was later fixed by ce83eda (url.c: "<scheme>://" part at the beginning should not be URL decoded, 2010-06-23) but the later part of the url still decodes + as space.
The tests that go along with the commit make it clear that it was an intended change. But the interesting thing is, I cannot find any reference in any RFC that + must have this meaning. In particular,
http://www.ietf.org/rfc/rfc2396.txt
doesn't say much about + and the only escaping defined is the usual %xx style. So is there a standard that mandates this, or was it just a well-meaning but unnecessary backwards incompatible change?
--
Thomas Rast
trast@{inf,student}.ethz.ch