diff options
author | nightwalker-87 <15526941+Nightwalker-87@users.noreply.github.com> | 2024-02-01 00:01:58 +0100 |
---|---|---|
committer | nightwalker-87 <15526941+Nightwalker-87@users.noreply.github.com> | 2024-02-01 00:01:58 +0100 |
commit | 40948aa3de78778f51af02d795327ac20fa385d3 (patch) | |
tree | b2c46fa5d48d1c12a3b1f95f93917bbba6405a2e /src/stlink-lib/logging.c | |
parent | e662da00ca294c874655c65cffae3edde97343e5 (diff) | |
parent | 133c2564dee478ed2fcf634ae217441ac723b3e3 (diff) |
Merge remote-tracking branch 'origin/develop'v1.8.0origin/mastermasterfor-upstream
Diffstat (limited to 'src/stlink-lib/logging.c')
-rw-r--r-- | src/stlink-lib/logging.c | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/src/stlink-lib/logging.c b/src/stlink-lib/logging.c index 8797823..92092f3 100644 --- a/src/stlink-lib/logging.c +++ b/src/stlink-lib/logging.c @@ -1,25 +1,27 @@ /* - * UglyLogging + * File: logging.c * - * Slow, yet another wheel reinvented, but enough to make the rest of our code - * pretty enough. + * UglyLogging: Slow, yet another wheel reinvented, but enough to make the rest of our code pretty enough. */ -#include <stdarg.h> -#include <stddef.h> + +#define __STDC_WANT_LIB_EXT1__ 1 + +#include <stdint.h> #include <stdio.h> -#include <stdlib.h> + +#include <stdarg.h> #include <time.h> #include "logging.h" -static int max_level = UDEBUG; +static int32_t max_level = UDEBUG; -int ugly_init(int maximum_threshold) { +int32_t ugly_init(int32_t maximum_threshold) { max_level = maximum_threshold; return (0); } -int ugly_log(int level, const char *tag, const char *format, ...) { +int32_t ugly_log(int32_t level, const char *tag, const char *format, ...) { if (level > max_level) { return (0); } @@ -29,10 +31,22 @@ int ugly_log(int level, const char *tag, const char *format, ...) { va_list args; va_start(args, format); time_t mytt = time(NULL); - struct tm *tt; - tt = localtime(&mytt); - fprintf(stderr, "%d-%02d-%02dT%02d:%02d:%02d ", tt->tm_year + 1900, - tt->tm_mon + 1, tt->tm_mday, tt->tm_hour, tt->tm_min, tt->tm_sec); + + struct tm *ptt; +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) // C11 + struct tm tt; + ptt = &tt; +# if defined (_WIN32) || defined(__STDC_LIB_EXT1__) + localtime_s(&tt, &mytt); +# else + localtime_r(&mytt, &tt); +# endif +#else + ptt = localtime(&mytt); +#endif + + fprintf(stderr, "%d-%02d-%02dT%02d:%02d:%02d ", ptt->tm_year + 1900, + ptt->tm_mon + 1, ptt->tm_mday, ptt->tm_hour, ptt->tm_min, ptt->tm_sec); switch (level) { case UDEBUG: @@ -70,7 +84,7 @@ int ugly_log(int level, const char *tag, const char *format, ...) { * - LIBUSB_LOG_LEVEL_DEBUG (4) : debug and informational messages are * printed to stderr */ -int ugly_libusb_log_level(enum ugly_loglevel v) { +int32_t ugly_libusb_log_level(enum ugly_loglevel v) { #ifdef __FreeBSD__ // FreeBSD includes its own reimplementation of libusb. // Its libusb_set_debug() function expects a lib_debug_level |