1*6dd652faSwdenk /* 2*6dd652faSwdenk * (C) Copyright 2000 3*6dd652faSwdenk * Murray Jensen <Murray.Jensen@csiro.au> 4*6dd652faSwdenk * 5*6dd652faSwdenk * See file CREDITS for list of people who contributed to this 6*6dd652faSwdenk * project. 7*6dd652faSwdenk * 8*6dd652faSwdenk * This program is free software; you can redistribute it and/or 9*6dd652faSwdenk * modify it under the terms of the GNU General Public License as 10*6dd652faSwdenk * published by the Free Software Foundation; either version 2 of 11*6dd652faSwdenk * the License, or (at your option) any later version. 12*6dd652faSwdenk * 13*6dd652faSwdenk * This program is distributed in the hope that it will be useful, 14*6dd652faSwdenk * but WITHOUT ANY WARRANTY; without even the implied warranty of 15*6dd652faSwdenk * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16*6dd652faSwdenk * GNU General Public License for more details. 17*6dd652faSwdenk * 18*6dd652faSwdenk * You should have received a copy of the GNU General Public License 19*6dd652faSwdenk * along with this program; if not, write to the Free Software 20*6dd652faSwdenk * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21*6dd652faSwdenk * MA 02111-1307 USA 22*6dd652faSwdenk */ 23*6dd652faSwdenk 243ba68654Swdenk #include <stdio.h> 253ba68654Swdenk #include <stdlib.h> 263ba68654Swdenk #include <string.h> 273ba68654Swdenk #include <errno.h> 283ba68654Swdenk #include "error.h" 293ba68654Swdenk 303ba68654Swdenk char *pname; 313ba68654Swdenk 323ba68654Swdenk void 333ba68654Swdenk Warning(char *fmt, ...) 343ba68654Swdenk { 353ba68654Swdenk va_list args; 363ba68654Swdenk 373ba68654Swdenk fprintf(stderr, "%s: WARNING: ", pname); 383ba68654Swdenk 393ba68654Swdenk va_start(args, fmt); 403ba68654Swdenk vfprintf(stderr, fmt, args); 413ba68654Swdenk va_end(args); 423ba68654Swdenk 433ba68654Swdenk fprintf(stderr, "\n"); 443ba68654Swdenk } 453ba68654Swdenk 463ba68654Swdenk void 473ba68654Swdenk Error(char *fmt, ...) 483ba68654Swdenk { 493ba68654Swdenk va_list args; 503ba68654Swdenk 513ba68654Swdenk fprintf(stderr, "%s: ERROR: ", pname); 523ba68654Swdenk 533ba68654Swdenk va_start(args, fmt); 543ba68654Swdenk vfprintf(stderr, fmt, args); 553ba68654Swdenk va_end(args); 563ba68654Swdenk 573ba68654Swdenk fprintf(stderr, "\n"); 583ba68654Swdenk 593ba68654Swdenk exit(1); 603ba68654Swdenk } 613ba68654Swdenk 623ba68654Swdenk void 633ba68654Swdenk Perror(char *fmt, ...) 643ba68654Swdenk { 653ba68654Swdenk va_list args; 663ba68654Swdenk int e = errno; 673ba68654Swdenk char *p; 683ba68654Swdenk 693ba68654Swdenk fprintf(stderr, "%s: ERROR: ", pname); 703ba68654Swdenk 713ba68654Swdenk va_start(args, fmt); 723ba68654Swdenk vfprintf(stderr, fmt, args); 733ba68654Swdenk va_end(args); 743ba68654Swdenk 753ba68654Swdenk if ((p = strerror(e)) == NULL || *p == '\0') 763ba68654Swdenk fprintf(stderr, ": Unknown Error (%d)\n", e); 773ba68654Swdenk else 783ba68654Swdenk fprintf(stderr, ": %s\n", p); 793ba68654Swdenk 803ba68654Swdenk exit(1); 813ba68654Swdenk } 82