aboutsummaryrefslogtreecommitdiff
path: root/src/ctemplates.c
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2019-09-27 21:41:40 -0400
committerAlexander Pickering <alexandermpickering@gmail.com>2019-09-27 22:27:13 -0400
commitd9103bafe57bb68439cfccef106a7334051bf876 (patch)
treeea25e253b1e867f28378cb9c295ae355db9c17c7 /src/ctemplates.c
parentd1a1990c4177653fd2379c227142e6208ecfc20d (diff)
downloadlibctemplates-d9103bafe57bb68439cfccef106a7334051bf876.tar.gz
libctemplates-d9103bafe57bb68439cfccef106a7334051bf876.tar.bz2
libctemplates-d9103bafe57bb68439cfccef106a7334051bf876.zip
Squashed warnings
Added the -Wextra flag to the makefile for debug builds, and squashed all the warning that came up.
Diffstat (limited to 'src/ctemplates.c')
-rw-r--r--src/ctemplates.c45
1 files changed, 27 insertions, 18 deletions
diff --git a/src/ctemplates.c b/src/ctemplates.c
index 070b51b..52f4c25 100644
--- a/src/ctemplates.c
+++ b/src/ctemplates.c
@@ -147,7 +147,10 @@ char* TMPL_render(
struct TMPL_varlist* varlist,
size_t* size_p
);
-struct TMPL_templates* TMPL_alloc_template(const char* tmplstr);
+int TMPL_alloc_template(
+ const char* tmplstr,
+ struct TMPL_templates **t
+ );
void TMPL_free_template(struct TMPL_templates* t);
void TMPL_free_tagnode(struct TMPL_tagnode* tn);
char* TMPL_get_error(struct TMPL_templates* t);
@@ -208,7 +211,7 @@ print_ast_helper(struct TMPL_templates* t, struct TMPL_tagnode* cursor, int leve
case tag_text:
printf("TAG Text \"");
if(cursor->TMPL_tag.text.len < 10){
- int i;
+ size_t i;
for(i = 0; i < cursor->TMPL_tag.text.len; i++)
putchar(*(cursor->TMPL_tag.text.start + i));
printf("\"\n");
@@ -253,11 +256,11 @@ print_ast_helper(struct TMPL_templates* t, struct TMPL_tagnode* cursor, int leve
printf("TAG End\n");
break;
case tag_loop:
- printf("TAG Loop (%s)(%p), body:\n",cursor->TMPL_tag.loop.loopname, cursor);
+ printf("TAG Loop (%s)(%p), body:\n",cursor->TMPL_tag.loop.loopname, (void*)cursor);
print_ast_helper(t,cursor->TMPL_tag.loop.body,level+1);
break;
case tag_break:
- printf("TAG Break (%d) -> (%p)\n",cursor->TMPL_tag.breakcont.level, cursor->TMPL_tag.breakcont.into);
+ printf("TAG Break (%d) -> (%p)\n",cursor->TMPL_tag.breakcont.level, (void*)cursor->TMPL_tag.breakcont.into);
break;
case tag_continue:
printf("TAG Continue (%d)\n",cursor->TMPL_tag.breakcont.level);
@@ -626,6 +629,10 @@ parse_loop(struct TMPL_token* head, struct TMPL_buf* errbuf){
const char end_str[] = "";
struct TMPL_tagnode* parse_end(struct TMPL_token* head, struct TMPL_buf* errbuf){
struct TMPL_tagnode* t = alloc_tagnode();
+ if(t == NULL){
+ bputs(errbuf,"Parse error: Failed to create a tag node");
+ return NULL;
+ }
head->into = t;
t->TMPL_tag.text.start = end_str;
t->TMPL_tag.text.len = 0;
@@ -815,6 +822,7 @@ TMPL_alloc_varlist(){
int
TMPL_free_hashmapitems(any_t a, any_t b){
+ (void)(a);/*Unused parameter*/
struct TMPL_varitem* vi = (struct TMPL_varitem*)b;
TMPL_free_varitem(vi);
return MAP_OK;
@@ -952,6 +960,12 @@ compile(const char* tmplstr){
return ret;
}
+void
+advance_cursor(struct TMPL_templates* t){
+ if(t->cursor != NULL && t->cursor->type != tag_end)
+ t->cursor = t->cursor->next;
+}
+
int
render_variable(struct TMPL_templates* t, struct TMPL_varlist* varlist){
struct TMPL_varitem* vi;
@@ -960,7 +974,6 @@ render_variable(struct TMPL_templates* t, struct TMPL_varlist* varlist){
if(err == MAP_OK){
bputs(t->out,vi->item.s);
}else if(err == MAP_MISSING){
- size_t has_default = t->cursor->TMPL_tag.var.default_len;
if(t->cursor->TMPL_tag.var.defaultval != NULL){
bputs(t->out,t->cursor->TMPL_tag.var.defaultval);
}else{
@@ -976,14 +989,10 @@ render_variable(struct TMPL_templates* t, struct TMPL_varlist* varlist){
return 0;
}
-void
-advance_cursor(struct TMPL_templates* t){
- if(t->cursor != NULL && t->cursor->type != tag_end)
- t->cursor = t->cursor->next;
-}
int
render_text(struct TMPL_templates* t, struct TMPL_varlist* varlist){
+ (void)(varlist); /*Unused parameter*/
struct TMPL_buf* buf = t->out;
char* text = (char*)t->cursor->TMPL_tag.text.start;
size_t length = t->cursor->TMPL_tag.text.len;
@@ -1053,7 +1062,6 @@ render_if(struct TMPL_templates* t, struct TMPL_varlist* varlist){
nt->breaks = t->breaks;
nt->continues = t->continues;
nt->jumping = 0;
- struct TMPL_tagnode* cursor;
if(err == MAP_OK){
//These two if statements can't be combined because of
//the condition for the elseif
@@ -1110,6 +1118,7 @@ resolve_name(struct TMPL_varlist* varlist, char* name,struct TMPL_varitem** item
int
render_break(struct TMPL_templates* t, struct TMPL_varlist* varlist){
+ (void)(varlist); /*Unused parameter*/
t->breaks += t->cursor->TMPL_tag.breakcont.level;
t->jumping = 1;
/*t->cursor = t->cursor->TMPL_tag.breakcont.into->next;*/
@@ -1119,6 +1128,7 @@ render_break(struct TMPL_templates* t, struct TMPL_varlist* varlist){
int
render_continue(struct TMPL_templates* t, struct TMPL_varlist* varlist){
+ (void)(varlist); /*Unused parameter*/
t->continues = t->continues + t->cursor->TMPL_tag.breakcont.level;
t->jumping = 1;
return 0;
@@ -1144,7 +1154,6 @@ render_loop(struct TMPL_templates* t, struct TMPL_varlist* varlist){
struct TMPL_loop* cursor;
/*If the loop has no items, it's varlist will be null*/
for(cursor = loop->item.l; cursor != NULL && cursor->varlist != NULL; cursor = cursor->next){
- size_t dummy;
nt->cursor = nt->roottag;
if(err != 0){
}
@@ -1190,8 +1199,7 @@ render_loop(struct TMPL_templates* t, struct TMPL_varlist* varlist){
int
render_any(struct TMPL_templates* t, struct TMPL_varlist* varlist){
/*Interpret the template*/
- if(t->jumping) return;
- size_t dummy;
+ if(t->jumping) return 0;
int err;
switch(t->cursor->type){
case tag_text:
@@ -1252,15 +1260,16 @@ TMPL_err(struct TMPL_templates* t, size_t* size){
return bstringify(t->errout,size);
}
-struct TMPL_templates*
-TMPL_alloc_template(const char* tmplstr){
+int
+TMPL_alloc_template(const char* tmplstr, struct TMPL_templates **t){
struct TMPL_templates* n = compile(tmplstr);
if(n != NULL){
- return n;
+ *t = n;
+ return 0;
}else{
TMPL_free_template(n);
- return NULL;
+ return -1;
}
}