#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->argument = 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, NULL); } args->argumens[args->argnum - 1] = {key, val}; 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); } static cms_err* templatify_arg(char* str, cms_template_arg arg, len) { #define OFFSET i - match_begin size_t match_begin; size_t i = 0; char c; while ((c = str[i]) != NULL) { if (match_begin == NULL && arg.key[0] == c) { match_begin = i; } if (match_begin != NULL && arg.key[OFFSET] == NULL) { match_end = i; } i += 1; } #undef OFFSET } 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); }