aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/source-parser.c4
-rw-r--r--tests/check_source_parser.c18
2 files changed, 21 insertions, 1 deletions
diff --git a/src/source-parser.c b/src/source-parser.c
index 5c9d41d..f9a60ae 100644
--- a/src/source-parser.c
+++ b/src/source-parser.c
@@ -93,7 +93,9 @@ blogc_source_parse(const char *src, size_t src_len, blogc_error_t **err)
((current - start == 9) &&
(0 == strncmp("PAGE_NEXT", src + start, 9))) ||
((current - start == 9) &&
- (0 == strncmp("PAGE_LAST", src + start, 9))))
+ (0 == strncmp("PAGE_LAST", src + start, 9))) ||
+ ((current - start == 13) &&
+ (0 == strncmp("BLOGC_VERSION", src + start, 13))))
{
*err = blogc_error_new_printf(BLOGC_ERROR_SOURCE_PARSER,
"'%s' variable is forbidden in source files. It will "
diff --git a/tests/check_source_parser.c b/tests/check_source_parser.c
index 79ca10f..0299c16 100644
--- a/tests/check_source_parser.c
+++ b/tests/check_source_parser.c
@@ -392,6 +392,23 @@ test_source_parse_config_reserved_name10(void **state)
static void
+test_source_parse_config_reserved_name11(void **state)
+{
+ const char *a = "BLOGC_VERSION: 1.0\r\n";
+ blogc_error_t *err = NULL;
+ b_trie_t *source = blogc_source_parse(a, strlen(a), &err);
+ assert_null(source);
+ assert_non_null(err);
+ assert_int_equal(err->type, BLOGC_ERROR_SOURCE_PARSER);
+ assert_string_equal(err->msg,
+ "'BLOGC_VERSION' variable is forbidden in source files. It will be set "
+ "for you by the compiler.");
+ blogc_error_free(err);
+ b_trie_free(source);
+}
+
+
+static void
test_source_parse_config_value_no_line_ending(void **state)
{
const char *a = "BOLA: asd";
@@ -447,6 +464,7 @@ main(void)
unit_test(test_source_parse_config_reserved_name8),
unit_test(test_source_parse_config_reserved_name9),
unit_test(test_source_parse_config_reserved_name10),
+ unit_test(test_source_parse_config_reserved_name11),
unit_test(test_source_parse_config_value_no_line_ending),
unit_test(test_source_parse_invalid_separator),
};