0824f308607d8405486a1a30c8c0b9271bec5f26
[platform/upstream/rpm.git] / rpmio / messages.c
1 #include "system.h"
2
3 #include <stdarg.h>
4
5 #include "rpmlib.h"
6
7 static int minLevel = RPMMESS_NORMAL;
8
9 void rpmIncreaseVerbosity(void) {
10     minLevel--;
11 }
12
13 void rpmSetVerbosity(int level) {
14     minLevel = level;
15 }
16
17 int rpmGetVerbosity(void)
18 {
19    return minLevel;
20 }
21
22 int rpmIsDebug(void)
23 {
24     return (minLevel <= RPMMESS_DEBUG);
25 }
26
27 int rpmIsVerbose(void)
28 {
29     return (minLevel <= RPMMESS_VERBOSE);
30 }
31
32 void rpmMessage(int level, char * format, ...) {
33     va_list args;
34
35     va_start(args, format);
36     if (level >= minLevel) {
37         switch (level) {
38           case RPMMESS_VERBOSE:
39           case RPMMESS_NORMAL:
40             vfprintf(stdout, format, args);
41             fflush(stdout);
42             break;
43             
44           case RPMMESS_DEBUG:
45             fprintf(stdout, "D: ");
46             vfprintf(stdout, format, args);
47             fflush(stdout);
48             break;
49
50           case RPMMESS_WARNING:
51             fprintf(stderr, _("warning: "));
52             vfprintf(stderr, format, args);
53             fflush(stderr);
54             break;
55
56           case RPMMESS_ERROR:
57             fprintf(stderr, _("error: "));
58             vfprintf(stderr, format, args);
59             fflush(stderr);
60             break;
61
62           case RPMMESS_FATALERROR:
63             fprintf(stderr, _("fatal error: "));
64             vfprintf(stderr, format, args);
65             fflush(stderr);
66             exit(1);
67             break;
68
69           default:
70             fprintf(stderr, _("internal error (rpm bug?): "));
71             vfprintf(stderr, format, args);
72             fflush(stderr);
73             exit(1);
74             break;
75
76         }
77     }
78 }