It looks like
Reason for this is that the commit introduced in
_link_sanitize() a call to
url() which fills
$item['url']. Later the content of
$item['url'] is used as url parameter in other calls to
url() so some stuff is duplicated and or scrambled (urlencoded).
The goal of
Attached patch declares a special getter which ensures a fully processed url is returned.
I've written a new test that checks the language prefix and / or absolute / relative representations of the stored url. Locally all tests pass now.
Beware: if you use a php version with curl 7.35 you might run into random test failures with the curl error "Problem (2) in the Chunked-Encoded data" - updating to a newer php/curl version fixes this. Just mentioning because I lost hoooouuuurs due totally random test failures...
User interface changes