add a 'blob' query parameter which is used for content when editing
authorChristian Thaeter <ct@pipapo.org>
Sun, 20 Jan 2008 20:24:12 +0000 (21:24 +0100)
committerChristian Thaeter <ct@pipapo.org>
Sun, 20 Jan 2008 20:24:12 +0000 (21:24 +0100)
src/query.c
src/query.h
src/webgit.h

index 603c9ef..c7fe49d 100644 (file)
@@ -47,6 +47,8 @@ webgit_query_init (struct webgit_query* q)
   q->object = NULL;
   q->head = NULL;
   q->path = NULL;
+  q->blob = NULL;
+  q->blob_size = 0;
   q->count = -1;
 
   llist_init (&q->repos);
@@ -66,6 +68,7 @@ webgit_query_destroy (struct webgit_query* q)
   free (q->object);
   free (q->head);
   free (q->path);
+  free (q->blob);
 
   LLIST_WHILE_HEAD (&q->repos, head)
     webgit_repoinfo_free ((struct webgit_repo_info*) head);
@@ -180,6 +183,20 @@ webgit_path_param (const Cgi self, const char* v, size_t v_sz, void* u_dat)
 }
 
 
+static void
+webgit_blob_param (const Cgi self, const char* v, size_t v_sz, void* u_dat)
+{
+  (void) self;
+  struct webgit_query* q = (struct webgit_query*) u_dat;
+
+  free (q->blob);
+  q->blob = cwa_malloc (v_sz + 1);
+  q->blob_size = v_sz;
+  memcpy (q->blob, v, v_sz);
+  q->blob[v_sz] = '\0';
+}
+
+
 static void
 webgit_count_param (const Cgi self, const char* v, size_t v_sz, void* u_dat)
 {
index df603be..feb99df 100644 (file)
@@ -27,7 +27,7 @@
 
 
 /*
-  parameters for cgit requests
+  parameters for cgi requests
 */
 #define WEBGIT_PARAMS                                           \
  WEBGIT_PARAM(repo, "Repository to be queried")                 \
@@ -35,6 +35,7 @@
  WEBGIT_PARAM(ref, "Selected ref (branch, tag, ..) for query")  \
  WEBGIT_PARAM(path, "Path and filename for the queried object") \
  WEBGIT_PARAM(object, "Object to perform on")                   \
+ WEBGIT_PARAM(blob, "Data recieved from an edit")               \
  WEBGIT_PARAM(count, "How many things to display")
 
 
index d7aeb55..79b2a6d 100644 (file)
@@ -51,6 +51,8 @@ struct webgit_query
   char* object;
   char* head;
   char* path;
+  char* blob;
+  size_t blob_size;
   int count;
 
   /* list of repositories */