diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 2007-02-23 13:31:46 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 2007-02-23 13:31:46 +0000 |
commit | ae518d31b3f513d5b05eccb1b834c06d89d61313 (patch) | |
tree | 5a1e0d28143fe19b4dd6e0723e48072186eb3147 /usr.bin/top | |
parent | 68e92608e20dddc76c2cdd9279749cd046126724 (diff) |
Use sys_signame[] from libc instead of creating a top-specific
signame name to number table. Also use strcasecmp() when matching
signal names for consistency with /bin/kill.
OK deraadt@ henning@ simon@
Diffstat (limited to 'usr.bin/top')
-rw-r--r-- | usr.bin/top/Makefile | 9 | ||||
-rw-r--r-- | usr.bin/top/commands.c | 12 | ||||
-rw-r--r-- | usr.bin/top/sigconv.awk | 76 |
3 files changed, 5 insertions, 92 deletions
diff --git a/usr.bin/top/Makefile b/usr.bin/top/Makefile index de868f852af..55464d1937a 100644 --- a/usr.bin/top/Makefile +++ b/usr.bin/top/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.11 2007/01/02 19:09:24 otto Exp $ +# $OpenBSD: Makefile,v 1.12 2007/02/23 13:31:45 millert Exp $ # # Makefile for OpenBSD top-3.4. @@ -10,12 +10,5 @@ SRCS= commands.c display.c machine.c screen.c top.c username.c utils.c \ DPADD= ${LIBCURSES} LDADD= -lcurses -CLEANFILES+= sigdesc.h - -.depend commands.o: sigdesc.h - -sigdesc.h: sigconv.awk - awk -f ${.CURDIR}/sigconv.awk /usr/include/sys/signal.h > sigdesc.h - .include <bsd.prog.mk> diff --git a/usr.bin/top/commands.c b/usr.bin/top/commands.c index e2002229adc..c246d86e681 100644 --- a/usr.bin/top/commands.c +++ b/usr.bin/top/commands.c @@ -1,4 +1,4 @@ -/* $OpenBSD: commands.c,v 1.26 2007/02/14 08:29:28 jmc Exp $ */ +/* $OpenBSD: commands.c,v 1.27 2007/02/23 13:31:45 millert Exp $ */ /* * Top users/processes display for Unix @@ -48,7 +48,6 @@ #include "top.h" -#include "sigdesc.h" /* generated automatically */ #include "boolean.h" #include "utils.h" #include "machine.h" @@ -314,7 +313,6 @@ char * kill_procs(char *str) { int signum = SIGTERM, procnum; - struct sigdesc *sigp; uid_t uid, puid; char *nptr; @@ -339,15 +337,13 @@ kill_procs(char *str) return (" invalid signal number"); } else { /* translate the name into a number */ - for (sigp = sigdesc; sigp->name != NULL; sigp++) { - if (strcmp(sigp->name, str + 1) == 0) { - signum = sigp->number; + for (signum = 0; signum < NSIG; signum++) { + if (strcasecmp(sys_signame[signum], str + 1) == 0) break; - } } /* was it ever found */ - if (sigp->name == NULL) + if (signum == NSIG) return (" bad signal name"); } /* put the new pointer in place */ diff --git a/usr.bin/top/sigconv.awk b/usr.bin/top/sigconv.awk deleted file mode 100644 index d7af5853a24..00000000000 --- a/usr.bin/top/sigconv.awk +++ /dev/null @@ -1,76 +0,0 @@ -# -# Top users/processes display for Unix -# Version 3 -# -# Copyright (c) 1984, 1989, William LeFebvre, Rice University -# Copyright (c) 1989, 1990, 1992, William LeFebvre, Northwestern University -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -# IN NO EVENT SHALL THE AUTHOR OR HIS EMPLOYER BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -BEGIN { - nsig = 0; - j = 0; - print "/* This file was automatically generated */" - print "/* by the awk script \"sigconv.awk\". */" - print "/* $OpenBSD: sigconv.awk,v 1.5 2004/05/09 22:14:15 deraadt Exp $ */\n" - print "struct sigdesc {" - print " char *name;" - print " int number;" - print "};\n" - print "struct sigdesc sigdesc[] = {" -} - -/^#define[ \t][ \t]*SIG[A-Z]/ { - - j = sprintf("%d", $3); - str = $2; - if (nsig < j) - nsig = j; - siglist[j] = sprintf("\"%s\",\t%2d", substr(str, 4), j); -} - -/^#[ \t]*define[ \t][ \t]*SIG[A-Z]/ { - - j = sprintf("%d", $4); - str = $3; - if (nsig < j) - nsig = j; - siglist[j] = sprintf("\"%s\",\t%2d", substr(str, 4), j); -} - -/^#[ \t]*define[ \t][ \t]*_SIG[A-Z]/ { - - j = sprintf("%d", $4); - str = $3; - if (nsig < j) - nsig = j; - - siglist[j] = sprintf("\"%s\",\t%2d", substr(str, 5), j); -} - -END { - for (n = 1; n <= nsig; n++) - if (siglist[n] != "") - printf(" { %s },\n", siglist[n]); - - printf(" { NULL,\t 0 }\n};\n"); -} - |