aboutsummaryrefslogtreecommitdiff
path: root/libbb/error_msg.c
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2001-03-16 22:47:14 +0000
committerEric Andersen <andersen@codepoet.org>2001-03-16 22:47:14 +0000
commitaad1a88c76f208d188fd061e3723bd637437e8d5 (patch)
tree75ac2b994f7f04af776e93eeedba82b873ff557e /libbb/error_msg.c
parentdfba13d199bb58d802df99c1ef20fdc0d628e86d (diff)
downloadbusybox-w32-aad1a88c76f208d188fd061e3723bd637437e8d5.tar.gz
busybox-w32-aad1a88c76f208d188fd061e3723bd637437e8d5.tar.bz2
busybox-w32-aad1a88c76f208d188fd061e3723bd637437e8d5.zip
Convert utility.c into libbb.a. It is now a whole pile of .c
files. Clean up the resulting damage and fix up the makefile. -Erik
Diffstat (limited to 'libbb/error_msg.c')
-rw-r--r--libbb/error_msg.c100
1 files changed, 100 insertions, 0 deletions
diff --git a/libbb/error_msg.c b/libbb/error_msg.c
new file mode 100644
index 000000000..7773d32a2
--- /dev/null
+++ b/libbb/error_msg.c
@@ -0,0 +1,100 @@
1/* vi: set sw=4 ts=4: */
2/*
3 * Utility routines.
4 *
5 * Copyright (C) tons of folks. Tracking down who wrote what
6 * isn't something I'm going to worry about... If you wrote something
7 * here, please feel free to acknowledge your work.
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 *
23 * Based in part on code from sash, Copyright (c) 1999 by David I. Bell
24 * Permission has been granted to redistribute this code under the GPL.
25 *
26 */
27
28#include <stdio.h>
29#include <errno.h>
30#include <string.h>
31#include <stdlib.h>
32#include "libbb.h"
33
34extern const char *applet_name;
35
36static void verror_msg(const char *s, va_list p)
37{
38 fflush(stdout);
39 fprintf(stderr, "%s: ", applet_name);
40 vfprintf(stderr, s, p);
41}
42
43extern void error_msg(const char *s, ...)
44{
45 va_list p;
46
47 va_start(p, s);
48 verror_msg(s, p);
49 va_end(p);
50 putc('\n', stderr);
51}
52
53extern void error_msg_and_die(const char *s, ...)
54{
55 va_list p;
56
57 va_start(p, s);
58 verror_msg(s, p);
59 va_end(p);
60 putc('\n', stderr);
61 exit(EXIT_FAILURE);
62}
63
64static void vperror_msg(const char *s, va_list p)
65{
66 int err=errno;
67 if(s == 0) s = "";
68 verror_msg(s, p);
69 if (*s) s = ": ";
70 fprintf(stderr, "%s%s\n", s, strerror(err));
71}
72
73extern void perror_msg(const char *s, ...)
74{
75 va_list p;
76
77 va_start(p, s);
78 vperror_msg(s, p);
79 va_end(p);
80}
81
82extern void perror_msg_and_die(const char *s, ...)
83{
84 va_list p;
85
86 va_start(p, s);
87 vperror_msg(s, p);
88 va_end(p);
89 exit(EXIT_FAILURE);
90}
91
92
93/* END CODE */
94/*
95Local Variables:
96c-file-style: "linux"
97c-basic-offset: 4
98tab-width: 4
99End:
100*/