diff options
author | Ryo Nakamura <upa@haeena.net> | 2023-03-03 22:14:54 +0900 |
---|---|---|
committer | Ryo Nakamura <upa@haeena.net> | 2023-03-03 22:14:54 +0900 |
commit | 1e57e8fb2fcbf64ad518a5f6aa763725cbb43244 (patch) | |
tree | b3924a58a4e01c8435759a221d61f463ea069020 /src/message.c | |
parent | 1b9ae5197463eed7d7015e6749bec1372844baea (diff) |
implementing messaging.
ToDo: remove pprint.
mscp should use mpr_* functions, and main.c should use
just fprintf(stdout, "\r\033[K" fmt, ...) for printing progress bar.
Diffstat (limited to 'src/message.c')
-rw-r--r-- | src/message.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/message.c b/src/message.c index 2c69c3f..29f9970 100644 --- a/src/message.c +++ b/src/message.c @@ -2,9 +2,12 @@ #include <stdarg.h> #include <string.h> #include <limits.h> +#include <pthread.h> #include <message.h> +/* mscp error message buffer */ + #define MSCP_ERRMSG_SIZE (PATH_MAX * 2) static char errmsg[MSCP_ERRMSG_SIZE]; @@ -23,3 +26,33 @@ const char *mscp_get_error() { return errmsg; } + + +/* message print functions */ + +static int mprint_serverity = MSCP_SEVERITY_WARN; +static pthread_mutex_t mprint_lock = PTHREAD_MUTEX_INITIALIZER; + +void mprint_set_severity(int serverity) +{ + if (serverity < 0) + mprint_serverity = -1; /* no print */ + mprint_serverity = serverity; +} + +void mprint(int fd, int serverity, const char *fmt, ...) +{ + va_list va; + int ret; + + if (fd < 0) + return; + + if (serverity <= mprint_serverity) { + pthread_mutex_lock(&mprint_lock); + va_start(va, fmt); + vdprintf(fd, fmt, va); + va_end(va); + pthread_mutex_unlock(&mprint_lock); + } +} |