summaryrefslogtreecommitdiffstats
path: root/src/blogc-git-receiver/pre-receive-parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/blogc-git-receiver/pre-receive-parser.c')
-rw-r--r--src/blogc-git-receiver/pre-receive-parser.c84
1 files changed, 0 insertions, 84 deletions
diff --git a/src/blogc-git-receiver/pre-receive-parser.c b/src/blogc-git-receiver/pre-receive-parser.c
deleted file mode 100644
index 61a533c..0000000
--- a/src/blogc-git-receiver/pre-receive-parser.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * blogc: A blog compiler.
- * Copyright (C) 2014-2020 Rafael G. Martins <rafael@rafaelmartins.eng.br>
- *
- * This program can be distributed under the terms of the BSD License.
- * See the file LICENSE.
- */
-
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include "../common/utils.h"
-#include "pre-receive-parser.h"
-
-typedef enum {
- START_OLD = 1,
- OLD,
- START_NEW,
- NEW,
- START_REF,
- REF
-} input_state_t;
-
-
-bc_trie_t*
-bgr_pre_receive_parse(const char *input, size_t input_len)
-{
- input_state_t state = START_OLD;
- size_t start = 0;
- size_t start_new = 0;
-
- bc_trie_t* rv = bc_trie_new(free);
-
- for (size_t current = 0; current < input_len; current++) {
-
- char c = input[current];
-
- switch (state) {
- case START_OLD:
- start = current;
- state = OLD;
- break;
- case OLD:
- if (c != ' ')
- break;
- // no need to store old
- state = START_NEW;
- break;
- case START_NEW:
- start = current;
- state = NEW;
- break;
- case NEW:
- if (c != ' ')
- break;
- state = START_REF;
- start_new = start;
- break;
- case START_REF:
- start = current;
- state = REF;
- break;
- case REF:
- if (c != '\n')
- break;
- state = START_OLD;
- if ((current - start > 11) &&
- (0 == strncmp("refs/heads/", input + start, 11)))
- {
- char *key = bc_strndup(input + start + 11, current - start - 11);
- bc_trie_insert(rv, key, bc_strndup(input + start_new, start - 1 - start_new));
- free(key);
- }
- break;
- }
- }
-
- if (bc_trie_size(rv) == 0) {
- bc_trie_free(rv);
- return NULL;
- }
-
- return rv;
-}