Johan,

On 14 Feb 2014, at 09:43, Johan Brichau <[email protected]> wrote:

> Hey Sven,
> 
> Thanks for fixing that. We're close to getting Yesplan working on Pharo3 now. 

That is very good to hear, keep on pushing ! It would be a super cool reference 
for Pharo 3.

I am working with the latest Seaside (Bootstrap) on Pharo 3 this week and I am 
quite pleased as well, thanks for all the hard working getting the codebase and 
configs working. 

> However, yesterday I stumbled upon another problem. It seems that a 
> percent-encoded '+' (i.e. %2B) get eaten by Zinc and converted into a space 
> (ie. %20).
> The following test fails in latest Zinc but works in a Zinc on Pharo 1.4: 
> 
> | input request |
>       
>               input := 'GET http://localhost/foo+%2B+bar HTTP/1.1', String 
> crlf, 
>                       String crlf.
>               request := ZnRequest readFrom: input readStream.
>               self assert: (request url pathSegments hasEqualElements: 
> #('foo%20%2B%20bar')).
> 
> 
> I'm tracing if I can find the actual source of the problem.

Again, I think this can be simplified to URL parsing.

'http://localhost/foo+%2B+bar' asZnUrl. 

        => 'http://localhost/foo%20+%20bar'

'http://localhost/foo+%2B+bar' asZnUrl firstPathSegment.

        => 'foo + bar' 

But I think it is correct, unless you read the specs differently. There were 
indeed some recent , under the hood changes to which characters are allowed in 
which part of URLs, I did that together with Jan van de Sandt, and we thought 
we had everything covered, but it is hard to be sure. See

  ZnUrl>>#encodePath:on:
  ZnUrl>>#encodeQuery:on:

to get started.

Sven

> regards
> Johan
> 
> 
> On 13 Feb 2014, at 22:47, Sven Van Caekenberghe <[email protected]> wrote:
> 
>> Hi Kris,
>> 
>> I fixed the problem that you reported. It was a regression caused when 
>> adding support for parsing mailto: URLs which don't have a // in them. There 
>> is now a new explicit test for parsing '/foo:bar' asZnUrl.
>> 
>> Thanks again for reporting this problem!
>> 
>> Sven
>> 
>> In #bleedingEdge:
>> 
>> ===
>> Name: Zinc-Resource-Meta-Core-SvenVanCaekenberghe.31
>> Author: SvenVanCaekenberghe
>> Time: 13 February 2014, 10:41:58.821615 pm
>> UUID: dee515f8-aff3-4930-8b90-da2b01e1ee33
>> Ancestors: Zinc-Resource-Meta-Core-SvenVanCaekenberghe.30
>> 
>> Patch ZnUrl>>#parseFrom:defaultScheme: to parse schemes more carefully so 
>> that a colon in a path does not mess things up - see also the regression 
>> test ZnUrlTests>>#testNoSchemeColonInPath parsing /foo:bar (thanks Kris 
>> Gijbels)
>> ===
>> Name: Zinc-Resource-Meta-Tests-SvenVanCaekenberghe.19
>> Author: SvenVanCaekenberghe
>> Time: 13 February 2014, 10:42:42.63619 pm
>> UUID: 264c99fe-52ef-4f4a-8a25-fc870f34cfb2
>> Ancestors: Zinc-Resource-Meta-Tests-SvenVanCaekenberghe.18
>> 
>> Patch ZnUrl>>#parseFrom:defaultScheme: to parse schemes more carefully so 
>> that a colon in a path does not mess things up - see also the regression 
>> test ZnUrlTests>>#testNoSchemeColonInPath parsing /foo:bar (thanks Kris 
>> Gijbels)
>> ===
>> 
> 
> 


Reply via email to