Rob Landley wrote: > On 07/24/2013 05:58:01 PM, Felix Janda wrote: > > Various fixes to logger in below patch. > > > > Mainly inline parse_priority(). Many other small changes e.g. > > s/const//, > > move around some variables, ... > > > > -Felix > > > > # HG changeset patch > > # User Felix Janda <felix.ja...@posteo.de> > > # Date 1374706109 -7200 > > # Node ID 8cc26924c2ef2e862c975a31167a685e18f555ec > > # Parent 8ad85a95f7c3b75214fbd3a46fe834de45c39417 > > logger: Some cleanup > > > > diff -r 8ad85a95f7c3 -r 8cc26924c2ef toys/pending/logger.c > > Um, for future reference: could I get the more elaborate description in > the commit message, and the "some cleanup" in the bit before it? :) > > Yes, I realize I've been setting a horrible example with "ifconfig > cleanup", but on the mailing list I've been writing outright _novels_ > of description of each one of those (and indexing them from > cleanup.html), and those descriptions generally _are_ too long to go in > the commit message.
Ah, I hadn't realized that this is the reason for the short commmit messages for the cleanups. Since the patch isn't (or doesn't seem to be) applied yet. Below there is an edited patch with some more useful commit message. Felix # HG changeset patch # User Felix Janda <felix.ja...@posteo.de> # Date 1374706109 -7200 # Node ID 8cc26924c2ef2e862c975a31167a685e18f555ec # Parent 8ad85a95f7c3b75214fbd3a46fe834de45c39417 logger: Some cleanup - Inline parse_priority() - Simplify loop in lookup() - Ensure that priority and facility are initialized in all cases - Remove const keyword - Move around some variables - Remove unnecessary headers diff -r 8ad85a95f7c3 -r 8cc26924c2ef toys/pending/logger.c --- a/toys/pending/logger.c Tue Jul 23 20:19:31 2013 -0500 +++ b/toys/pending/logger.c Thu Jul 25 00:48:29 2013 +0200 @@ -18,23 +18,18 @@ #define FOR_logger #include "toys.h" #include <syslog.h> -#include <strings.h> -#include <string.h> GLOBALS( char *priority_arg; char *ident; - - int facility; - int priority; ) struct mapping { - const char *key; + char *key; int value; }; -static const struct mapping facilities[] = { +static struct mapping facilities[] = { {"user", LOG_USER}, {"main", LOG_MAIL}, {"news", LOG_NEWS}, {"uucp", LOG_UUCP}, {"daemon", LOG_DAEMON}, {"auth", LOG_AUTH}, {"cron", LOG_CRON}, {"lpr", LOG_LPR}, {"local0", LOG_LOCAL0}, @@ -44,64 +39,51 @@ {NULL, 0} }; -static const struct mapping priorities[] = { +static struct mapping priorities[] = { {"emerg", LOG_EMERG}, {"alert", LOG_ALERT}, {"crit", LOG_CRIT}, {"err", LOG_ERR}, {"warning", LOG_WARNING}, {"notice", LOG_NOTICE}, {"info", LOG_INFO}, {"debug", LOG_DEBUG}, {NULL, 0} }; -static int lookup(const struct mapping *where, const char *key) +static int lookup(struct mapping *where, char *key) { - int i; - for (i = 0; where[i].key; i++) - if (!strcasecmp(key, where[i].key)) - return where[i].value; + for (; where->key; where++) + if (!strcasecmp(key, where->key)) return where->value; return -1; } -static void parse_priority() +void logger_main(void) { - char *sep = strchr(TT.priority_arg, '.'); + int facility = LOG_USER, priority = LOG_NOTICE; + char *message = NULL; - if (sep) - { - *sep = '\0'; - if ((TT.facility = lookup(facilities, TT.priority_arg)) == -1) - error_exit("bad facility: %s", TT.priority_arg); - TT.priority_arg = sep+1; + if (toys.optflags & FLAG_p) { + char *sep = strchr(TT.priority_arg, '.'); + + if (sep) { + *sep = '\0'; + if ((facility = lookup(facilities, TT.priority_arg)) == -1) + error_exit("bad facility: %s", TT.priority_arg); + TT.priority_arg = sep+1; + } + + if ((priority = lookup(priorities, TT.priority_arg)) == -1) + error_exit("bad priority: %s", TT.priority_arg); } - if ((TT.priority = lookup(priorities, TT.priority_arg)) == -1) - error_exit("bad priority: %s", TT.priority_arg); -} + if (!(toys.optflags & FLAG_t)) { + struct passwd *pw = getpwuid(geteuid()); -void logger_main(void) -{ - if (toys.optflags & FLAG_p) - parse_priority(); - else - { - TT.facility = LOG_USER; - TT.priority = LOG_NOTICE; - } - - if (!(toys.optflags & FLAG_t)) - { - struct passwd *pw = getpwuid(geteuid()); - if (!pw) - perror_exit("getpwuid"); + if (!pw) perror_exit("getpwuid"); TT.ident = xstrdup(pw->pw_name); } - char *message = NULL; if (toys.optc) { - int length = 0; - int pos = 0; + int length = 0, pos = 0; - for (;*toys.optargs; (void) *(toys.optargs)++) // shut up gcc - { + for (;*toys.optargs; toys.optargs++) { length += strlen(*(toys.optargs)) + 1; // plus one for the args spacing message = xrealloc(message, length + 1); // another one for the null byte @@ -113,7 +95,7 @@ message = toybuf; } - openlog(TT.ident, (toys.optflags & FLAG_s ? LOG_PERROR : 0) , TT.facility); - syslog(TT.priority, "%s", message); + openlog(TT.ident, (toys.optflags & FLAG_s ? LOG_PERROR : 0) , facility); + syslog(priority, "%s", message); closelog(); } _______________________________________________ Toybox mailing list Toybox@lists.landley.net http://lists.landley.net/listinfo.cgi/toybox-landley.net _______________________________________________ Toybox mailing list Toybox@lists.landley.net http://lists.landley.net/listinfo.cgi/toybox-landley.net