aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/grecs-lex.l3
-rw-r--r--src/list.c6
-rw-r--r--src/lookup.c2
-rw-r--r--src/symtab.c6
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);
diff --git a/src/list.c b/src/list.c
index 2ef7cea..e7f69f7 100644
--- a/src/list.c
+++ b/src/list.c
@@ -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;
}

Return to:

Send suggestions and report system problems to the System administrator.