Contents of /tags/mkinitrd-6_2_1/busybox/libbb/info_msg.c
Parent Directory | Revision Log
Revision 999 -
(show annotations)
(download)
Sun May 30 12:16:23 2010 UTC (14 years, 3 months ago) by niro
File MIME type: text/plain
File size: 1095 byte(s)
Sun May 30 12:16:23 2010 UTC (14 years, 3 months ago) by niro
File MIME type: text/plain
File size: 1095 byte(s)
tagged 'mkinitrd-6_2_1'
1 | /* vi: set sw=4 ts=4: */ |
2 | /* |
3 | * Utility routines. |
4 | * |
5 | * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> |
6 | * |
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
8 | */ |
9 | |
10 | #include "libbb.h" |
11 | #include <syslog.h> |
12 | |
13 | void FAST_FUNC bb_info_msg(const char *s, ...) |
14 | { |
15 | #ifdef THIS_ONE_DOESNT_DO_SINGLE_WRITE |
16 | va_list p; |
17 | /* va_copy is used because it is not portable |
18 | * to use va_list p twice */ |
19 | va_list p2; |
20 | |
21 | va_start(p, s); |
22 | va_copy(p2, p); |
23 | if (logmode & LOGMODE_STDIO) { |
24 | vprintf(s, p); |
25 | fputs(msg_eol, stdout); |
26 | } |
27 | if (ENABLE_FEATURE_SYSLOG && (logmode & LOGMODE_SYSLOG)) |
28 | vsyslog(LOG_INFO, s, p2); |
29 | va_end(p2); |
30 | va_end(p); |
31 | #else |
32 | int used; |
33 | char *msg; |
34 | va_list p; |
35 | |
36 | if (logmode == 0) |
37 | return; |
38 | |
39 | va_start(p, s); |
40 | used = vasprintf(&msg, s, p); |
41 | va_end(p); |
42 | if (used < 0) |
43 | return; |
44 | |
45 | if (ENABLE_FEATURE_SYSLOG && (logmode & LOGMODE_SYSLOG)) |
46 | syslog(LOG_INFO, "%s", msg); |
47 | if (logmode & LOGMODE_STDIO) { |
48 | fflush_all(); |
49 | /* used = strlen(msg); - must be true already */ |
50 | msg[used++] = '\n'; |
51 | full_write(STDOUT_FILENO, msg, used); |
52 | } |
53 | |
54 | free(msg); |
55 | #endif |
56 | } |