|
|
@@ -1,3 +1,6 @@ |
|
|
|
#include <stdlib.h> |
|
|
|
#include <string.h> |
|
|
|
|
|
|
|
#include "cms_template.h" |
|
|
|
|
|
|
|
cms_template_args* cms_template_args_create() |
|
|
@@ -6,7 +9,7 @@ cms_template_args* cms_template_args_create() |
|
|
|
if (!args) |
|
|
|
return NULL; |
|
|
|
|
|
|
|
args->argument = NULL; |
|
|
|
args->arguments = NULL; |
|
|
|
args->argnum = 0; |
|
|
|
args->allocd = 0; |
|
|
|
|
|
|
@@ -22,10 +25,11 @@ cms_err* cms_template_args_append(cms_template_args* args, char* key, char* val) |
|
|
|
args->allocd *= 2; |
|
|
|
args->arguments = realloc(args->arguments, sizeof(cms_template_arg) * args->allocd); |
|
|
|
if (!args->arguments) |
|
|
|
return cms_err_create(CMS_ERR_ALLOC, NULL); |
|
|
|
return cms_err_create(CMS_ERR_ALLOC, 0); |
|
|
|
} |
|
|
|
|
|
|
|
args->argumens[args->argnum - 1] = {key, val}; |
|
|
|
cms_template_arg arg = {key, val}; |
|
|
|
args->arguments[args->argnum - 1] = arg; |
|
|
|
|
|
|
|
return cms_err_create(CMS_ERR_NONE, NULL); |
|
|
|
} |
|
|
@@ -33,32 +37,35 @@ cms_err* cms_template_args_append(cms_template_args* args, char* key, char* val) |
|
|
|
static cms_err* str_insert(char* str1, char* str2, size_t start, size_t end, size_t len) |
|
|
|
{ |
|
|
|
size_t len2 = strlen(str2); |
|
|
|
|
|
|
|
return cms_err_create(CMS_ERR_NONE, NULL); |
|
|
|
} |
|
|
|
|
|
|
|
static cms_err* templatify_arg(char* str, cms_template_arg arg, len) |
|
|
|
static cms_err* templatify_arg(char* str, cms_template_arg arg, size_t len) |
|
|
|
{ |
|
|
|
#define OFFSET i - match_begin |
|
|
|
|
|
|
|
size_t match_begin; |
|
|
|
size_t match_begin = -1; |
|
|
|
size_t i = 0; |
|
|
|
|
|
|
|
char c; |
|
|
|
while ((c = str[i]) != NULL) |
|
|
|
while ((c = str[i]) != 0) |
|
|
|
{ |
|
|
|
if (match_begin == NULL && arg.key[0] == c) |
|
|
|
if (match_begin == -1 && arg.key[0] == c) |
|
|
|
{ |
|
|
|
match_begin = i; |
|
|
|
} |
|
|
|
|
|
|
|
if (match_begin != NULL && arg.key[OFFSET] == NULL) |
|
|
|
if (match_begin != -1 && arg.key[OFFSET] == 0) |
|
|
|
{ |
|
|
|
match_end = i; |
|
|
|
} |
|
|
|
|
|
|
|
i += 1; |
|
|
|
} |
|
|
|
|
|
|
|
#undef OFFSET |
|
|
|
|
|
|
|
return cms_err_create(CMS_ERR_NONE, NULL); |
|
|
|
} |
|
|
|
|
|
|
|
cms_err* cms_templateify(char* str, cms_template_args* args) |