From 998fe30dc57559b00b4cef121ee45a0afd5c8d93 Mon Sep 17 00:00:00 2001 From: ltoetsch <> Date: Thu, 8 Mar 2001 15:25:38 +0000 Subject: [lcd4linux @ 2001-03-08 15:25:38 by ltoetsch] improved exec --- processor.c | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) (limited to 'processor.c') diff --git a/processor.c b/processor.c index 0f9913c..173412f 100644 --- a/processor.c +++ b/processor.c @@ -1,4 +1,4 @@ -/* $Id: processor.c,v 1.17 2001/03/08 08:39:55 reinelt Exp $ +/* $Id: processor.c,v 1.18 2001/03/08 15:25:38 ltoetsch Exp $ * * main data processing * @@ -20,6 +20,9 @@ * * * $Log: processor.c,v $ + * Revision 1.18 2001/03/08 15:25:38 ltoetsch + * improved exec + * * Revision 1.17 2001/03/08 08:39:55 reinelt * * fixed two typos @@ -114,6 +117,7 @@ #include #include #include +#include #include "debug.h" #include "cfg.h" @@ -146,7 +150,6 @@ struct { int perc, stat; double dur; } batt; struct { double perc, cput; } seti; struct { int num; } mail[MAILBOXES]; struct { double val, min, max; } sensor[SENSORS]; -struct { char s[EXEC_TXT_LEN]; } exec[EXECS]; static double query (int token) { @@ -240,6 +243,9 @@ static double query (int token) case T_SENSOR: return sensor[(token>>8)-'0'].val; + + case T_EXEC: + return exec[(token>>8)-'0'].val; } return 0.0; } @@ -250,7 +256,7 @@ static double query_bar (int token) int i; double value=query(token); - switch (token) { + switch (token & 255) { case T_MEM_TOTAL: case T_MEM_USED: @@ -312,12 +318,12 @@ static double query_bar (int token) return value; } -static void print_token (int token, char **p) +static void print_token (int token, char **p, char *start, int maxlen) { double val; int i; - switch (token) { + switch (token & 255) { case T_PERCENT: *(*p)++='%'; break; @@ -439,20 +445,19 @@ static void print_token (int token, char **p) } break; -#if 0 - never comes here -lt ? case T_MAIL: val=query(token); *p+=sprintf (*p, "%3.0f", val); break; -#endif + + case T_EXEC: + i = (token>>8)-'0'; + *p+=sprintf (*p, "%.*s",cols-(*p-start), exec[i].s); + for (i=*p-start; i>8)-'0'; - *p+=sprintf (*p, "%s", exec[i].s); - } - else *p+=sprintf (*p, "%5.0f", query(token)); } } @@ -525,7 +530,7 @@ static void collect_data (void) for (i=1; iT_EXTENDED) token += (*(unsigned char*)++s)<<8; - print_token (token, &p); + for (q = p, len=0; *q && isspace(*q); q++) + len++; + print_token (token, &p, buffer, len); } else if (*s=='$') { double val1, val2; -- cgit v1.2.3