From 1e57e8fb2fcbf64ad518a5f6aa763725cbb43244 Mon Sep 17 00:00:00 2001 From: Ryo Nakamura Date: Fri, 3 Mar 2023 22:14:54 +0900 Subject: 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. --- src/message.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/message.c') 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 #include #include +#include #include +/* 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); + } +} -- cgit v1.2.3