1 /*- 2 * Copyright (c) 1992 Regents of the University of California. 3 * All rights reserved. 4 * 5 * This software was developed by the Computer Systems Engineering group 6 * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and 7 * contributed to Berkeley. 8 * 9 * %sccs.include.redist.c% 10 */ 11 12 #include <stdio.h> 13 #ifdef __STDC__ 14 #include <stdlib.h> 15 #endif 16 #include <sys/types.h> 17 #include <sys/time.h> 18 #include <ctype.h> 19 #include <varargs.h> 20 #include <sys/file.h> 21 #include <sys/stat.h> 22 23 static char *program_name; 24 25 static char * 26 stripdir(s) 27 register char *s; 28 { 29 register char *cp; 30 char *rindex(); 31 32 cp = rindex(s, '/'); 33 return (cp != 0) ? cp + 1 : s; 34 } 35 36 setprog(cp) 37 char *cp; 38 { 39 program_name = stripdir(cp); 40 } 41 42 void 43 usage() 44 { 45 fprintf(stderr, "usage: %s [ -c core ] executable pid\n", 46 program_name); 47 exit(1); 48 } 49 50 /* VARARGS */ 51 void 52 error(va_alist) 53 va_dcl 54 { 55 register char *cp; 56 va_list ap; 57 58 (void)fprintf(stderr, "%s: ", stripdir(program_name)); 59 60 va_start(ap); 61 cp = va_arg(ap, char *); 62 (void)vfprintf(stderr, cp, ap); 63 va_end(ap); 64 if (*cp) { 65 cp += strlen(cp); 66 if (cp[-1] != '\n') 67 (void)fputc('\n', stderr); 68 } 69 exit(1); 70 /* NOTREACHED */ 71 } 72 73 /* VARARGS */ 74 void 75 warning(va_alist) 76 va_dcl 77 { 78 register char *cp; 79 va_list ap; 80 81 (void)fprintf(stderr, "%s: warning: ", stripdir(program_name)); 82 83 va_start(ap); 84 cp = va_arg(ap, char *); 85 (void)vfprintf(stderr, cp, ap); 86 va_end(ap); 87 if (*cp) { 88 cp += strlen(cp); 89 if (cp[-1] != '\n') 90 (void)fputc('\n', stderr); 91 } 92 } 93