Author: rhuijben
Date: Wed Sep 24 14:25:38 2014
New Revision: 1627333

URL: http://svn.apache.org/r1627333
Log:
Tweak ra_serf report xml generation code a tiny bit to use the shorter
'<element />' notation for elements that are always just markers for
enabling a feature instead of '<element></element>'.

This simplifies and shortens the requests a tiny bit and returns a few of
those requests to their easier to process neon form.

* subversion/libsvn_ra_serf/blame.c
  (create_file_revs_body): Use short form for merge info flag.

* subversion/libsvn_ra_serf/commit.c
  (create_checkout_body): Use short form for element.

* subversion/libsvn_ra_serf/get_lock.c
  (create_getlock_body): Use short form for element.

* subversion/libsvn_ra_serf/lock.c
  (create_lock_body): Use short form for two elements.

* subversion/libsvn_ra_serf/log.c
  (create_log_body): Use short form for quite a few elements.

* subversion/libsvn_ra_serf/merge.c
  (create_merge_body): Use short form for quite a few elements.

* subversion/libsvn_ra_serf/ra_serf.h
  (svn_ra_serf__add_empty_tag_buckets): New function.

* subversion/libsvn_ra_serf/xml.c
  (svn_ra_serf__add_empty_tag_buckets): New function.

Modified:
    subversion/trunk/subversion/libsvn_ra_serf/blame.c
    subversion/trunk/subversion/libsvn_ra_serf/commit.c
    subversion/trunk/subversion/libsvn_ra_serf/get_lock.c
    subversion/trunk/subversion/libsvn_ra_serf/lock.c
    subversion/trunk/subversion/libsvn_ra_serf/log.c
    subversion/trunk/subversion/libsvn_ra_serf/merge.c
    subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
    subversion/trunk/subversion/libsvn_ra_serf/xml.c

Modified: subversion/trunk/subversion/libsvn_ra_serf/blame.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/blame.c?rev=1627333&r1=1627332&r2=1627333&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/blame.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/blame.c Wed Sep 24 14:25:38 2014
@@ -302,9 +302,8 @@ create_file_revs_body(serf_bucket_t **bo
 
   if (blame_ctx->include_merged_revisions)
     {
-      svn_ra_serf__add_tag_buckets(buckets,
-                                   "S:include-merged-revisions", NULL,
-                                   alloc);
+      svn_ra_serf__add_empty_tag_buckets(buckets, alloc,
+                                         "S:include-merged-revisions", NULL);
     }
 
   svn_ra_serf__add_tag_buckets(buckets,

Modified: subversion/trunk/subversion/libsvn_ra_serf/commit.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/commit.c?rev=1627333&r1=1627332&r2=1627333&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/commit.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/commit.c Wed Sep 24 14:25:38 2014
@@ -226,7 +226,8 @@ create_checkout_body(serf_bucket_t **bkt
 
   svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:href");
   svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:activity-set");
-  svn_ra_serf__add_tag_buckets(body_bkt, "D:apply-to-version", NULL, alloc);
+  svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc,
+                                     "D:apply-to-version", SVN_VA_NULL);
   svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:checkout");
 
   *bkt = body_bkt;

Modified: subversion/trunk/subversion/libsvn_ra_serf/get_lock.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/get_lock.c?rev=1627333&r1=1627332&r2=1627333&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/get_lock.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/get_lock.c Wed Sep 24 14:25:38 
2014
@@ -243,7 +243,8 @@ create_getlock_body(serf_bucket_t **body
                                     "xmlns", "DAV:",
                                     SVN_VA_NULL);
   svn_ra_serf__add_open_tag_buckets(buckets, alloc, "prop", SVN_VA_NULL);
-  svn_ra_serf__add_tag_buckets(buckets, "lockdiscovery", NULL, alloc);
+  svn_ra_serf__add_empty_tag_buckets(buckets, alloc,
+                                     "lockdiscovery", SVN_VA_NULL);
   svn_ra_serf__add_close_tag_buckets(buckets, alloc, "prop");
   svn_ra_serf__add_close_tag_buckets(buckets, alloc, "propfind");
 

Modified: subversion/trunk/subversion/libsvn_ra_serf/lock.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/lock.c?rev=1627333&r1=1627332&r2=1627333&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/lock.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/lock.c Wed Sep 24 14:25:38 2014
@@ -412,11 +412,11 @@ create_lock_body(serf_bucket_t **body_bk
                                     SVN_VA_NULL);
 
   svn_ra_serf__add_open_tag_buckets(buckets, alloc, "lockscope", SVN_VA_NULL);
-  svn_ra_serf__add_tag_buckets(buckets, "exclusive", NULL, alloc);
+  svn_ra_serf__add_empty_tag_buckets(buckets, alloc, "exclusive", SVN_VA_NULL);
   svn_ra_serf__add_close_tag_buckets(buckets, alloc, "lockscope");
 
   svn_ra_serf__add_open_tag_buckets(buckets, alloc, "locktype", SVN_VA_NULL);
-  svn_ra_serf__add_tag_buckets(buckets, "write", NULL, alloc);
+  svn_ra_serf__add_empty_tag_buckets(buckets, alloc, "write", SVN_VA_NULL);
   svn_ra_serf__add_close_tag_buckets(buckets, alloc, "locktype");
 
   if (ctx->lock->comment)

Modified: subversion/trunk/subversion/libsvn_ra_serf/log.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/log.c?rev=1627333&r1=1627332&r2=1627333&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/log.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/log.c Wed Sep 24 14:25:38 2014
@@ -442,23 +442,22 @@ create_log_body(serf_bucket_t **body_bkt
 
   if (log_ctx->changed_paths)
     {
-      svn_ra_serf__add_tag_buckets(buckets,
-                                   "S:discover-changed-paths", NULL,
-                                   alloc);
+      svn_ra_serf__add_empty_tag_buckets(buckets, alloc,
+                                         "S:discover-changed-paths",
+                                         SVN_VA_NULL);
     }
 
   if (log_ctx->strict_node_history)
     {
-      svn_ra_serf__add_tag_buckets(buckets,
-                                   "S:strict-node-history", NULL,
-                                   alloc);
+      svn_ra_serf__add_empty_tag_buckets(buckets, alloc,
+                                         "S:strict-node-history", SVN_VA_NULL);
     }
 
   if (log_ctx->include_merged_revisions)
     {
-      svn_ra_serf__add_tag_buckets(buckets,
-                                   "S:include-merged-revisions", NULL,
-                                   alloc);
+      svn_ra_serf__add_empty_tag_buckets(buckets, alloc,
+                                         "S:include-merged-revisions",
+                                         SVN_VA_NULL);
     }
 
   if (log_ctx->revprops)
@@ -473,16 +472,14 @@ create_log_body(serf_bucket_t **body_bkt
         }
       if (log_ctx->revprops->nelts == 0)
         {
-          svn_ra_serf__add_tag_buckets(buckets,
-                                       "S:no-revprops", NULL,
-                                       alloc);
+          svn_ra_serf__add_empty_tag_buckets(buckets, alloc,
+                                             "S:no-revprops", SVN_VA_NULL);
         }
     }
   else
     {
-      svn_ra_serf__add_tag_buckets(buckets,
-                                   "S:all-revprops", NULL,
-                                   alloc);
+      svn_ra_serf__add_empty_tag_buckets(buckets, alloc,
+                                         "S:all-revprops", SVN_VA_NULL);
     }
 
   if (log_ctx->paths)
@@ -497,9 +494,8 @@ create_log_body(serf_bucket_t **body_bkt
         }
     }
 
-  svn_ra_serf__add_tag_buckets(buckets,
-                               "S:encode-binary-props", NULL,
-                               alloc);
+  svn_ra_serf__add_empty_tag_buckets(buckets, alloc,
+                                     "S:encode-binary-props", SVN_VA_NULL);
 
   svn_ra_serf__add_close_tag_buckets(buckets, alloc,
                                      "S:log-report");

Modified: subversion/trunk/subversion/libsvn_ra_serf/merge.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/merge.c?rev=1627333&r1=1627332&r2=1627333&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/merge.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/merge.c Wed Sep 24 14:25:38 2014
@@ -358,15 +358,22 @@ create_merge_body(serf_bucket_t **bkt,
   svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:href");
   svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:source");
 
-  svn_ra_serf__add_tag_buckets(body_bkt, "D:no-auto-merge", NULL, alloc);
-  svn_ra_serf__add_tag_buckets(body_bkt, "D:no-checkout", NULL, alloc);
+  svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc,
+                                     "D:no-auto-merge", SVN_VA_NULL);
+  svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc,
+                                     "D:no-checkout", SVN_VA_NULL);
 
   svn_ra_serf__add_open_tag_buckets(body_bkt, alloc, "D:prop", SVN_VA_NULL);
-  svn_ra_serf__add_tag_buckets(body_bkt, "D:checked-in", NULL, alloc);
-  svn_ra_serf__add_tag_buckets(body_bkt, "D:" SVN_DAV__VERSION_NAME, NULL, 
alloc);
-  svn_ra_serf__add_tag_buckets(body_bkt, "D:resourcetype", NULL, alloc);
-  svn_ra_serf__add_tag_buckets(body_bkt, "D:" SVN_DAV__CREATIONDATE, NULL, 
alloc);
-  svn_ra_serf__add_tag_buckets(body_bkt, "D:creator-displayname", NULL, alloc);
+  svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc,
+                                     "D:checked-in", SVN_VA_NULL);
+  svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc,
+                                     "D:" SVN_DAV__VERSION_NAME, SVN_VA_NULL);
+  svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc,
+                                     "D:resourcetype", SVN_VA_NULL);
+  svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc,
+                                     "D:" SVN_DAV__CREATIONDATE, SVN_VA_NULL);
+  svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc,
+                                     "D:creator-displayname", SVN_VA_NULL);
   svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:prop");
 
   merge_lock_token_list(ctx->lock_tokens, NULL, body_bkt, alloc, pool);

Modified: subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h?rev=1627333&r1=1627332&r2=1627333&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h Wed Sep 24 14:25:38 
2014
@@ -892,6 +892,16 @@ svn_ra_serf__add_close_tag_buckets(serf_
                                    serf_bucket_alloc_t *bkt_alloc,
                                    const char *tag);
 
+/* Add the appropriate serf buckets to AGG_BUCKET representing the XML
+ * open tag with name TAG, and then immediately closes the tag using the />
+ * notation
+ */
+void
+svn_ra_serf__add_empty_tag_buckets(serf_bucket_t *agg_bucket,
+                                   serf_bucket_alloc_t *bkt_alloc,
+                                   const char *tag,
+                                   ...) SVN_NEEDS_SENTINEL_NULL;
+
 /*
  * Add the appropriate serf buckets to AGG_BUCKET with xml-escaped
  * version of DATA.

Modified: subversion/trunk/subversion/libsvn_ra_serf/xml.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/xml.c?rev=1627333&r1=1627332&r2=1627333&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/xml.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/xml.c Wed Sep 24 14:25:38 2014
@@ -324,6 +324,49 @@ svn_ra_serf__add_open_tag_buckets(serf_b
 }
 
 void
+svn_ra_serf__add_empty_tag_buckets(serf_bucket_t *agg_bucket,
+                                   serf_bucket_alloc_t *bkt_alloc,
+                                   const char *tag, ...)
+{
+  va_list ap;
+  const char *key;
+  serf_bucket_t *tmp;
+
+  tmp = SERF_BUCKET_SIMPLE_STRING_LEN("<", 1, bkt_alloc);
+  serf_bucket_aggregate_append(agg_bucket, tmp);
+
+  tmp = SERF_BUCKET_SIMPLE_STRING(tag, bkt_alloc);
+  serf_bucket_aggregate_append(agg_bucket, tmp);
+
+  va_start(ap, tag);
+  while ((key = va_arg(ap, char *)) != NULL)
+    {
+      const char *val = va_arg(ap, const char *);
+      if (val)
+        {
+          tmp = SERF_BUCKET_SIMPLE_STRING_LEN(" ", 1, bkt_alloc);
+          serf_bucket_aggregate_append(agg_bucket, tmp);
+
+          tmp = SERF_BUCKET_SIMPLE_STRING(key, bkt_alloc);
+          serf_bucket_aggregate_append(agg_bucket, tmp);
+
+          tmp = SERF_BUCKET_SIMPLE_STRING_LEN("=\"", 2, bkt_alloc);
+          serf_bucket_aggregate_append(agg_bucket, tmp);
+
+          tmp = SERF_BUCKET_SIMPLE_STRING(val, bkt_alloc);
+          serf_bucket_aggregate_append(agg_bucket, tmp);
+
+          tmp = SERF_BUCKET_SIMPLE_STRING_LEN("\"", 1, bkt_alloc);
+          serf_bucket_aggregate_append(agg_bucket, tmp);
+        }
+    }
+  va_end(ap);
+
+  tmp = SERF_BUCKET_SIMPLE_STRING_LEN("/>", 2, bkt_alloc);
+  serf_bucket_aggregate_append(agg_bucket, tmp);
+}
+
+void
 svn_ra_serf__add_close_tag_buckets(serf_bucket_t *agg_bucket,
                                    serf_bucket_alloc_t *bkt_alloc,
                                    const char *tag)


Reply via email to