From a6edfa4c3b061d25bb5bdcc2dc7cfa783e4fe6ae Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Sun, 22 Apr 2018 14:39:17 +0200 Subject: [PATCH] allow logger to (left)truncate long file and func names --- src/mgos_mock.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/mgos_mock.c b/src/mgos_mock.c index 0f53d17..3bf07a6 100644 --- a/src/mgos_mock.c +++ b/src/mgos_mock.c @@ -24,6 +24,9 @@ int _mgos_timers = 0; int log_print_prefix(enum cs_log_level l, const char *func, const char *file) { char ll_str[6]; + char ll_file[31]; + char ll_func[41]; + size_t offset=0; switch(l) { case LL_ERROR: @@ -44,7 +47,20 @@ int log_print_prefix(enum cs_log_level l, const char *func, const char *file) { default: // LL_NONE return 0; } - printf ("%-5s %-20s %-40s| ", ll_str, file, func); + + offset=0; + memset(ll_file, 0, sizeof(ll_file)); + if (strlen(file) >= sizeof(ll_file)) + offset=strlen(file)-sizeof(ll_file)+1; + strncpy(ll_file, file+offset, sizeof(ll_file)-1); + + offset=0; + memset(ll_func, 0, sizeof(ll_func)); + if (strlen(func) >= sizeof(ll_func)) + offset=strlen(func)-sizeof(ll_func)+1; + strncpy(ll_func, func+offset, sizeof(ll_func)-1); + + printf ("%-5s %-30s %-40s| ", ll_str, ll_file, ll_func); return 1; }