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 2012/10/11 16:26:30 UTC

svn commit: r1397073 - in /subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf: property.c serf.c

Author: cmpilato
Date: Thu Oct 11 14:26:30 2012
New Revision: 1397073

URL: http://svn.apache.org/viewvc?rev=1397073&view=rev
Log:
On the 'http-dynamic-prop-namespaces' branch: teach libsvn_ra_serf to
recognize the extensible property XML namespace when parsing responses.

* subversion/libsvn_ra_serf/property.c
  (svn_ra_serf__svnname_from_wirename, select_revprops): If the
    property is delivered using a namespace URI within the extensible
    namespace, decode the extended section for use as the property prefix.

* subversion/libsvn_ra_serf/serf.c
  (dirent_walker): If the property is delivered using a namespace URI
    within the extensible namespace, note that this node has
    user-visible properties.

Modified:
    subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/property.c
    subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/serf.c

Modified: subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/property.c
URL: http://svn.apache.org/viewvc/subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/property.c?rev=1397073&r1=1397072&r2=1397073&view=diff
==============================================================================
--- subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/property.c (original)
+++ subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/property.c Thu Oct 11 14:26:30 2012
@@ -843,6 +843,15 @@ svn_ra_serf__svnname_from_wirename(const
   if (strcmp(ns, SVN_DAV_PROP_NS_SVN) == 0)
     return apr_pstrcat(result_pool, SVN_PROP_PREFIX, name, (char *)NULL);
 
+  /* Check for something within our extensible namespace. */
+  if (strncmp(ns, SVN_DAV_PROP_NS_EXTENSIBLE,
+              sizeof(SVN_DAV_PROP_NS_EXTENSIBLE) - 1) == 0)
+    {
+      const char *relpath = svn_uri_skip_ancestor(SVN_DAV_PROP_NS_EXTENSIBLE,
+                                                  ns, result_pool);
+      return apr_pstrcat(result_pool, relpath, ":", name, (char *)NULL);
+    }
+
   if (strcmp(ns, SVN_PROP_PREFIX) == 0)
     return apr_pstrcat(result_pool, SVN_PROP_PREFIX, name, (char *)NULL);
 
@@ -932,6 +941,13 @@ select_revprops(void *baton,
     prop_name = name;
   else if (strcmp(ns, SVN_DAV_PROP_NS_SVN) == 0)
     prop_name = apr_pstrcat(result_pool, SVN_PROP_PREFIX, name, (char *)NULL);
+  else if (strncmp(ns, SVN_DAV_PROP_NS_EXTENSIBLE,
+                   sizeof(SVN_DAV_PROP_NS_EXTENSIBLE) - 1) == 0)
+    {
+      const char *relpath = svn_uri_skip_ancestor(SVN_DAV_PROP_NS_EXTENSIBLE,
+                                                  ns, scratch_pool);
+      prop_name = apr_pstrcat(result_pool, relpath, ":", name, (char *)NULL);
+    }
   else if (strcmp(ns, SVN_PROP_PREFIX) == 0)
     prop_name = apr_pstrcat(result_pool, SVN_PROP_PREFIX, name, (char *)NULL);
   else if (strcmp(ns, "") == 0)

Modified: subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/serf.c
URL: http://svn.apache.org/viewvc/subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/serf.c?rev=1397073&r1=1397072&r2=1397073&view=diff
==============================================================================
--- subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/serf.c (original)
+++ subversion/branches/http-dynamic-prop-namespaces/subversion/libsvn_ra_serf/serf.c Thu Oct 11 14:26:30 2012
@@ -676,6 +676,11 @@ dirent_walker(void *baton,
     {
       dwb->entry->has_props = TRUE;
     }
+  else if (strncmp(ns, SVN_DAV_PROP_NS_EXTENSIBLE,
+                   sizeof(SVN_DAV_PROP_NS_EXTENSIBLE) - 1) == 0)
+    {
+      dwb->entry->has_props = TRUE;
+    }
   else if (strcmp(ns, SVN_DAV_PROP_NS_DAV) == 0)
     {
       if(strcmp(name, "deadprop-count") == 0)