diff options
-rw-r--r-- | src/grecs-lex.l | 3 | ||||
-rw-r--r-- | src/list.c | 6 | ||||
-rw-r--r-- | src/lookup.c | 2 | ||||
-rw-r--r-- | src/symtab.c | 6 |
4 files changed, 9 insertions, 8 deletions
diff --git a/src/grecs-lex.l b/src/grecs-lex.l index 29a511e..b007780 100644 --- a/src/grecs-lex.l +++ b/src/grecs-lex.l @@ -1,13 +1,15 @@ /* grecs - Gray's Extensible Configuration System -*- c -*- */ +%option nounput +%option noinput %top { #ifdef HAVE_CONFIG_H # include <config.h> #endif } %{ /* grecs - Gray's Extensible Configuration System Copyright (C) 2007-2015 Sergey Poznyakoff Grecs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your @@ -66,25 +68,24 @@ static void qstring_locus_fixup(void); #define YY_USER_ACTION do { \ if (YYSTATE == 0) { \ yylloc.beg = grecs_current_locus_point; \ yylloc.beg.col++; \ } \ grecs_current_locus_point.col += yyleng; \ yylloc.end = grecs_current_locus_point; \ } while (0); %} - %x COMMENT ML STR WS [ \t\f][ \t\f]* ID [a-zA-Z_][a-zA-Z_0-9-]* P [1-9][0-9]* %% /* C-style comments */ "/*" BEGIN(COMMENT); <COMMENT>[^*\n]* /* eat anything that's not a '*' */ <COMMENT>"*"+[^*/\n]* /* eat up '*'s not followed by '/'s */ <COMMENT>\n grecs_locus_point_advance_line(grecs_current_locus_point); @@ -52,42 +52,42 @@ grecs_list_insert_entry(struct grecs_list *lp, lp->tail = ent; lp->head = ent; lp->count++; return; } if (before) { grecs_list_insert_entry(lp, anchor->prev, ent, 0); return; } ent->prev = anchor; - if (p = anchor->next) + if ((p = anchor->next)) p->prev = ent; else lp->tail = ent; ent->next = p; anchor->next = ent; lp->count++; } void grecs_list_remove_entry(struct grecs_list *lp, struct grecs_list_entry *ent) { struct grecs_list_entry *p; - if (p = ent->prev) + if ((p = ent->prev)) p->next = ent->next; else lp->head = ent->next; - if (p = ent->next) + if ((p = ent->next)) p->prev = ent->prev; else lp->tail = ent->prev; ent->next = ent->prev = NULL; lp->count--; } void grecs_list_append(struct grecs_list *lp, void *val) { struct grecs_list_entry *ep = grecs_malloc(sizeof(*ep)); ep->data = val; diff --git a/src/lookup.c b/src/lookup.c index 675a4b8..130163e 100644 --- a/src/lookup.c +++ b/src/lookup.c @@ -539,25 +539,25 @@ grecs_match(struct grecs_match_buf *buf) node = node->up; if (is_root(buf, node)) return ISWC(buf->argv[buf->argi], '*'); } return 0; } struct grecs_node * grecs_match_next(struct grecs_match_buf *buf) { if (!buf) return NULL; - while (buf->node = grecs_next_node(buf->node)) + while ((buf->node = grecs_next_node(buf->node))) if (grecs_match(buf)) break; return buf->node; } struct grecs_node * grecs_match_buf_first(struct grecs_match_buf *buf, struct grecs_node *tree) { struct grecs_node *node; buf->argi = 0; buf->root = tree; diff --git a/src/symtab.c b/src/symtab.c index c4a552b..1e1c99a 100644 --- a/src/symtab.c +++ b/src/symtab.c @@ -133,25 +133,25 @@ symtab_insert_pos(struct grecs_symtab *st, void *elt) if (i == pos) /* FIXME: Error message? */ abort(); } return i; } int grecs_symtab_replace(struct grecs_symtab *st, void *ent, void **old_ent) { struct grecs_syment *entry; unsigned i, pos = st->hash_fun(ent, hash_size[st->hash_num]); - for (i = pos; entry = st->tab[i];) { + for (i = pos; (entry = st->tab[i]);) { if (st->cmp_fun(entry, ent) == 0) break; if (++i >= hash_size[st->hash_num]) i = 0; if (i == pos) return ENOENT; } if (old_ent) *old_ent = entry; st->tab[i] = ent; return 0; } @@ -197,25 +197,25 @@ grecs_symtab_strerror(int rc) return strerror(ENOMEM); } return strerror(rc); } int grecs_symtab_remove(struct grecs_symtab *st, void *elt) { unsigned int pos, i, j, r; struct grecs_syment *entry; pos = st->hash_fun(elt, hash_size[st->hash_num]); - for (i = pos; entry = st->tab[i];) { + for (i = pos; (entry = st->tab[i]);) { if (st->cmp_fun(entry, elt) == 0) break; if (++i >= hash_size[st->hash_num]) i = 0; if (i == pos) return ENOENT; } syment_free(st, entry); for (;;) { st->tab[i] = NULL; @@ -245,25 +245,25 @@ grecs_symtab_get_index(unsigned *idx, struct grecs_symtab *st, if (!st->tab) { if (install) { rc = symtab_rehash(st); if (rc) return rc; } else return ENOENT; } pos = st->hash_fun(key, hash_size[st->hash_num]); - for (i = pos; elem = st->tab[i];) { + for (i = pos; (elem = st->tab[i]);) { if (st->cmp_fun(elem, key) == 0) { if (install) *install = 0; *idx = i; return 0; } if (++i >= hash_size[st->hash_num]) i = 0; if (i == pos) break; } |