You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2011/01/11 18:52:45 UTC

svn commit: r1057771 - in /subversion/trunk/subversion: libsvn_subr/dirent_uri.c tests/libsvn_subr/dirent_uri-test.c

Author: cmpilato
Date: Tue Jan 11 17:52:44 2011
New Revision: 1057771

URL: http://svn.apache.org/viewvc?rev=1057771&view=rev
Log:
* subversion/libsvn_subr/dirent_uri.c
  (svn_uri_is_canonical): List another requirement of canonicalized
    URIs, namely that hex-encoded pairs use uppercase A-F.

* subversion/tests/libsvn_subr/dirent_uri-test.c
  (test_uri_is_canonical): Expand test to verify the above requirement.

Modified:
    subversion/trunk/subversion/libsvn_subr/dirent_uri.c
    subversion/trunk/subversion/tests/libsvn_subr/dirent_uri-test.c

Modified: subversion/trunk/subversion/libsvn_subr/dirent_uri.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/dirent_uri.c?rev=1057771&r1=1057770&r2=1057771&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/dirent_uri.c (original)
+++ subversion/trunk/subversion/libsvn_subr/dirent_uri.c Tue Jan 11 17:52:44 2011
@@ -1819,6 +1819,7 @@ svn_uri_is_canonical(const char *uri, ap
    *  - no '//'
    *  - lowercase URL scheme
    *  - lowercase URL hostname
+   *  - uppercase hex-encoded pair digits ("%AB", not "%ab")
    */
 
   if (*uri == '\0')

Modified: subversion/trunk/subversion/tests/libsvn_subr/dirent_uri-test.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_subr/dirent_uri-test.c?rev=1057771&r1=1057770&r2=1057771&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/libsvn_subr/dirent_uri-test.c (original)
+++ subversion/trunk/subversion/tests/libsvn_subr/dirent_uri-test.c Tue Jan 11 17:52:44 2011
@@ -1269,6 +1269,9 @@ test_uri_is_canonical(apr_pool_t *pool)
     { "file:///folder/c#",      FALSE }, /* # needs escaping */
     { "file:///fld/with space", FALSE }, /* # needs escaping */
     { "file:///fld/c%23",       TRUE }, /* Properly escaped C# */
+    { "file:///%DE%AD%BE%EF",  TRUE },
+    { "file:///%de%ad%be%ef",  FALSE },
+    { "file:///%DE%ad%BE%ef",  FALSE },
 #ifdef SVN_USE_DOS_PATHS
     { "file:///c:/temp/repos", FALSE },
     { "file:///c:/temp/REPOS", FALSE },