1
0
mirror of git://git.suckless.org/sbase synced 2024-12-23 23:43:33 +00:00

Factor out table walk into a separate function

This commit is contained in:
sin 2014-12-09 15:44:31 +00:00
parent 979444a4c9
commit 296af80dba

View File

@ -10,44 +10,30 @@
#include "util.h" #include "util.h"
static int static int
decodefac(char *fac) decodetable(CODE *table, char *name)
{ {
CODE *c; CODE *c;
int facility = -1;
for (c = facilitynames; c->c_name; c++) for (c = table; c->c_name; c++)
if (!strcasecmp(fac, c->c_name)) if (!strcasecmp(name, c->c_name))
facility = c->c_val; return c->c_val;
if (facility == -1) eprintf("invalid priority name: %s\n", name);
eprintf("invalid facility name: %s\n", fac); /* NOTREACHED */
return facility & LOG_FACMASK; return -1;
}
static int
decodelev(char *lev)
{
CODE *c;
int level = -1;
for (c = prioritynames; c->c_name; c++)
if (!strcasecmp(lev, c->c_name))
level = c->c_val;
if (level == -1)
eprintf("invalid level name: %s\n", lev);
return level & LOG_PRIMASK;
} }
static int static int
decodepri(char *pri) decodepri(char *pri)
{ {
char *p; char *lev, *fac = pri;
if (!(p = strchr(pri, '.'))) if (!(lev = strchr(pri, '.')))
eprintf("invalid priority name: %s\n", pri); eprintf("invalid priority name: %s\n", pri);
*p++ = '\0'; *lev++ = '\0';
if (!*p) if (!*lev)
eprintf("invalid priority name: %s\n", pri); eprintf("invalid priority name: %s\n", pri);
return decodefac(pri) | decodelev(p); return (decodetable(facilitynames, fac) & LOG_FACMASK) |
(decodetable(prioritynames, lev) & LOG_PRIMASK);
} }
static void static void