From 6cf279df3b2529d23fd24c87bc098c090ecb74e6 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 7 Dec 2003 02:15:02 +0000 Subject: cleanup add `title' function add notice to original `watch' author --- watch.c | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) (limited to 'watch.c') diff --git a/watch.c b/watch.c index 74e31b4..9ea413c 100644 --- a/watch.c +++ b/watch.c @@ -1,5 +1,9 @@ /* $Id$ */ -/* watch - execute program periodicaly, showing output fullscreen */ +/* + * watch -- execute program repeatedly, displaying output fullscreen + * Based on the original 1991 'watch' by Tony Rems + * (with mods and corrections by Francois Pinard) + */ /* * Copyright (c) 2003 demon * @@ -25,28 +29,30 @@ #include #define MAXBUF 255 -static char copyright[] = "(c) 2003 demon "; -static char version[] = "0.2"; +static char *copyright = "(c) 2003 demon "; +static char *version = "0.2"; extern char *__progname; + time_t tval; int die_flag; +int period=2; +void title(); void usage(); void die(); -int main (int argc, char *argv[]) { - int period=2; +int main (int argc, char **argv) { + int n_flag=0; char ch; char cmd[MAXBUF]; char buf[MAXBUF]; - char curtime[30]; FILE *pipe; signal(SIGINT, die); signal(SIGTERM, die); signal(SIGHUP, die); - while ((ch = getopt(argc, argv, "s:v")) != -1) + while ((ch = getopt(argc, argv, "s:vn")) != -1) switch (ch) { case 'v': (void)fprintf(stderr, "%s %s %s\n", __progname, version, copyright); @@ -57,6 +63,9 @@ int main (int argc, char *argv[]) { if(period < 1) usage(); break; + case 'n': + n_flag=1; + break; case '?': default: usage(); @@ -80,11 +89,9 @@ int main (int argc, char *argv[]) { if(strlen(cmd)) { initscr(); while(!die_flag) { - time(&tval); - strncpy(curtime, ctime(&tval), sizeof(curtime)-1); - curtime[strlen(curtime) - 6] = '\0'; move(0,0); - printw("%s\tEvery %ds: %s\n\n", curtime, period, cmd); + if(!n_flag) + title(cmd); pipe = popen(cmd, "r"); while(fgets(buf, sizeof(buf), pipe)) printw("%s",buf); @@ -100,8 +107,17 @@ int main (int argc, char *argv[]) { exit(0); } +void title(char **cmd) { + char curtime[30]; + time(&tval); + strncpy(curtime, ctime(&tval), sizeof(curtime)-1); + curtime[strlen(curtime) - 6] = '\0'; + printw("%s\tEvery %ds: %s", curtime, period, cmd); + move(2,0); +} + void usage() { - (void)fprintf(stderr, "Usage: %s [-s | -v ] [command]\n", __progname); + (void)fprintf(stderr, "Usage: %s [-s ] [ -vn ] [command]\n", __progname); exit (1); } -- cgit v1.2.3