[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: bug report: ra_serf gets PROPFIND failure on certain non-ASCII paths

From: Lieven Govaerts <svnlgo_at_mobsol.be>
Date: Thu, 25 Feb 2010 12:36:44 +0100

On Thu, Feb 25, 2010 at 12:11 AM, Bert Huijben <bert_at_qqmail.nl> wrote:
>> -----Original Message-----
>> From: lieven.govaerts_at_gmail.com [mailto:lieven.govaerts_at_gmail.com] On
>> Behalf Of Lieven Govaerts
>> Sent: woensdag 24 februari 2010 23:39
>> To: C. Michael Pilato
>> Cc: Subversion Development
>> Subject: Re: bug report: ra_serf gets PROPFIND failure on certain non-
>> ASCII paths
>> These paths are canonicalized before being used, but
>> svn_uri_canonicalize doesn't touch the encoded characters. Maybe it
>> should just convert those letters to lowercase? I don't really see a
>> better fix.
> svn_uri_canonicalize is still used for more than urls/uris, so it doesn't handle any encoding itself.
> But besides that, I also think this is not the right way to fix this. For several characters in uris it is optional if they are escaped or not. We need a better fix than just fixing the casing of the escaped characters...
> Unescaping the paths would be an option that resolves it in the generic case, or unescape followed by a specific standard escaping. (This last method is used in some class libraries to avoid similar issues, but to provide a useful uri anyway)

Attached patch fixes the problem. Better suggestions are welcome, I'll
commit tonight.


ra_serf: Fix support for international characters in paths.

Found by: cmpilato

* subversion/libsvn_ra_serf/property.c
  (end_propfind): Replace call to svn_uri_canonicalize with a call to
* subversion/libsvn_ra_serf/merge.c
  (end_merge): Here too.
* subversion/libsvn_ra_serf/ra_serf.h
  (svn_ra_serf__uri_to_internal): New function declaration.
* subversion/libsvn_ra_serf/util.c
  (svn_ra_serf__uri_to_internal): New function definition.

Received on 2010-02-25 12:37:39 CET

This is an archived mail posted to the Subversion Dev mailing list.