aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/source-parser.c57
1 files changed, 2 insertions, 55 deletions
diff --git a/src/source-parser.c b/src/source-parser.c
index 9e1f01d..f0fca29 100644
--- a/src/source-parser.c
+++ b/src/source-parser.c
@@ -27,9 +27,6 @@ typedef enum {
SOURCE_SEPARATOR,
SOURCE_CONTENT_START,
SOURCE_CONTENT,
- SOURCE_EXCERPT_SEPARATOR,
- SOURCE_CONTENT2_START,
- SOURCE_CONTENT2,
} blogc_source_parser_state_t;
@@ -44,7 +41,6 @@ blogc_source_parse(const char *src, size_t src_len, blogc_error_t **err)
char *key = NULL;
char *tmp = NULL;
- char *tmp2 = NULL;
b_trie_t *rv = b_trie_new(free);
blogc_source_parser_state_t state = SOURCE_START;
@@ -149,53 +145,10 @@ blogc_source_parse(const char *src, size_t src_len, blogc_error_t **err)
break;
case SOURCE_CONTENT:
- if (c == '.') {
- state = SOURCE_EXCERPT_SEPARATOR;
- tmp = b_strndup(src + start, current - start);
- b_trie_insert(rv, "EXCERPT", blogc_content_parse(tmp));
- free(tmp);
- tmp = NULL;
- break;
- }
if (current == (src_len - 1)) {
tmp = b_strndup(src + start, src_len - start);
- b_trie_insert(rv, "EXCERPT", blogc_content_parse(tmp));
- free(tmp);
- tmp = NULL;
- }
- break;
-
- case SOURCE_EXCERPT_SEPARATOR:
- if (c == '.')
- break;
- if (c == '\n' || c == '\r') {
- state = SOURCE_CONTENT2_START;
- break;
- }
- *err = blogc_error_parser(BLOGC_ERROR_SOURCE_PARSER, src, src_len,
- current,
- "Invalid excerpt separator. Must be more than one '.' characters.");
- break;
-
- case SOURCE_CONTENT2_START:
- start = current;
- state = SOURCE_CONTENT2;
- break;
-
- case SOURCE_CONTENT2:
- if (current == (src_len - 1)) {
- tmp = b_strndup(src + start, src_len - start);
- tmp2 = b_strdup_printf("%s\n%s",
- b_trie_lookup(rv, "EXCERPT"), tmp);
- free(tmp);
- tmp = NULL;
- b_trie_insert(rv, "CONTENT", blogc_content_parse(tmp2));
- free(tmp2);
- tmp2 = NULL;
- }
- if (c == '.') {
- state = SOURCE_EXCERPT_SEPARATOR;
- break;
+ b_trie_insert(rv, "RAW_CONTENT", tmp);
+ b_trie_insert(rv, "CONTENT", blogc_content_parse(tmp));
}
break;
}
@@ -206,9 +159,6 @@ blogc_source_parse(const char *src, size_t src_len, blogc_error_t **err)
current++;
}
- if (b_trie_lookup(rv, "CONTENT") == NULL)
- b_trie_insert(rv, "CONTENT", b_strdup(b_trie_lookup(rv, "EXCERPT")));
-
if (*err == NULL && b_trie_size(rv) == 0) {
// ok, nothing found in the config trie, but no error set either.
@@ -237,9 +187,6 @@ blogc_source_parse(const char *src, size_t src_len, blogc_error_t **err)
case SOURCE_SEPARATOR:
case SOURCE_CONTENT_START:
case SOURCE_CONTENT:
- case SOURCE_EXCERPT_SEPARATOR:
- case SOURCE_CONTENT2_START:
- case SOURCE_CONTENT2:
break; // won't happen, and if even happen, shouldn't be fatal
}
}