Line data Source code
1 : /*- 2 : * Copyright (c) 1993 3 : * The Regents of the University of California. All rights reserved. 4 : * 5 : * Redistribution and use in source and binary forms, with or without 6 : * modification, are permitted provided that the following conditions 7 : * are met: 8 : * 1. Redistributions of source code must retain the above copyright 9 : * notice, this list of conditions and the following disclaimer. 10 : * 2. Redistributions in binary form must reproduce the above copyright 11 : * notice, this list of conditions and the following disclaimer in the 12 : * documentation and/or other materials provided with the distribution. 13 : * 3. Neither the name of the University nor the names of its contributors 14 : * may be used to endorse or promote products derived from this software 15 : * without specific prior written permission. 16 : * 17 : * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 18 : * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 : * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 : * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 21 : * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 : * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 : * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 : * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 : * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 : * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 : * SUCH DAMAGE. 28 : */ 29 : 30 : /* 31 : * This is cut down to just the minimum that we need to build indent. 32 : */ 33 : #include "c.h" 34 : 35 : #include <err.h> 36 : #include <errno.h> 37 : #include <stdarg.h> 38 : #include <stdio.h> 39 : #include <stdlib.h> 40 : #include <string.h> 41 : 42 : void 43 0 : err(int eval, const char *fmt, ...) 44 : { 45 0 : int code = errno; 46 : va_list ap; 47 0 : va_start(ap, fmt); 48 0 : if (fmt != NULL) { 49 0 : vfprintf(stderr, fmt, ap); 50 0 : fprintf(stderr, ": "); 51 : } 52 0 : fprintf(stderr, "%s\n", strerror(code)); 53 0 : va_end(ap); 54 0 : exit(eval); 55 : } 56 : 57 : void 58 0 : errx(int eval, const char *fmt, ...) 59 : { 60 : va_list ap; 61 0 : va_start(ap, fmt); 62 0 : if (fmt != NULL) 63 0 : vfprintf(stderr, fmt, ap); 64 0 : fprintf(stderr, "\n"); 65 0 : va_end(ap); 66 0 : exit(eval); 67 : }