123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #include <stdlib.h>
- #include <string.h>
-
- #include "cms_template.h"
-
- cms_template_args* cms_template_args_create()
- {
- cms_template_args* args = malloc(sizeof(cms_template_args));
- if (!args)
- return NULL;
-
- args->arguments = NULL;
- args->argnum = 0;
- args->allocd = 0;
-
- return args;
- }
-
- cms_err* cms_template_args_append(cms_template_args* args, char* key, char* val)
- {
- args->argnum += 1;
-
- if (args->argnum > args->allocd)
- {
- args->allocd *= 2;
- args->arguments = realloc(args->arguments, sizeof(cms_template_arg) * args->allocd);
- if (!args->arguments)
- return cms_err_create(CMS_ERR_ALLOC, 0);
- }
-
- cms_template_arg arg = {key, val};
- args->arguments[args->argnum - 1] = arg;
-
- return cms_err_create(CMS_ERR_NONE, NULL);
- }
-
- 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, size_t len)
- {
- #define OFFSET i - match_begin
-
- size_t match_begin = -1;
- size_t i = 0;
-
- char c;
- while ((c = str[i]) != 0)
- {
- if (match_begin == -1 && arg.key[0] == c)
- {
- match_begin = i;
- }
-
- if (match_begin != -1 && arg.key[OFFSET] == 0)
- {
- }
-
- i += 1;
- }
-
- #undef OFFSET
-
- return cms_err_create(CMS_ERR_NONE, NULL);
- }
-
- cms_err* cms_templateify(char* str, cms_template_args* args)
- {
- size_t len = strlen(str);
-
- size_t i;
- for (i = 0; i < args->argnum; ++i)
- {
- cms_err* err = templatify_arg(str, args->arguments[i], len);
- if (err)
- return err;
- }
-
- return cms_err_create(CMS_ERR_NONE, NULL);
- }
|