diff options
author | Drew DeVault <sir@cmpwn.com> | 2017-06-19 15:18:48 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-19 15:18:48 -0400 |
commit | 41b5294013cdf054e9dd49ef83ca6fee74f769a4 (patch) | |
tree | 6601318bc834b10b87aec409d6b7339ea5d6e7a1 | |
parent | fa4a04da223aadcc1feba7fe133b0f44ac01e95a (diff) | |
parent | 24147225745b8a78af5db43c065c2ad84f0a115e (diff) |
Merge pull request #16 from nyorain/master
Make logging ninja friendly
-rw-r--r-- | common/log.c | 17 | ||||
-rw-r--r-- | include/common/log.h | 5 |
2 files changed, 20 insertions, 2 deletions
diff --git a/common/log.c b/common/log.c index af07334a..90eedf4c 100644 --- a/common/log.c +++ b/common/log.c @@ -58,3 +58,20 @@ void _wlr_log(log_importance_t verbosity, const char *fmt, ...) { log_callback(verbosity, fmt, args); va_end(args); } + +// strips the path prefix from filepath +// will try to strip WLR_SRC_DIR as well as a relative src dir +// e.g. '/src/build/wlroots/backend/wayland/backend.c' and +// '../backend/wayland/backend.c' will both be stripped to +// 'backend/wayland/backend.c' +const char *_strip_path(const char *filepath) { + static int srclen = strlen(WLR_SRC_DIR) + 1; + if(*filepath == '.') { + while(*filepath == '.' || *filepath == '/') { + ++filepath; + } + } else { + filepath += srclen; + } + return filepath; +} diff --git a/include/common/log.h b/include/common/log.h index 3fca0dcf..98e57900 100644 --- a/include/common/log.h +++ b/include/common/log.h @@ -13,12 +13,13 @@ void _wlr_log(log_importance_t verbosity, const char *format, ...) ATTRIB_PRINTF(2, 3); void _wlr_vlog(log_importance_t verbosity, const char *format, va_list args) ATTRIB_PRINTF(2, 0); +const char *_strip_path(const char *filepath); #define wlr_log(verb, fmt, ...) \ - _wlr_log(verb, "[%s:%d] " fmt, __FILE__ + strlen(WLR_SRC_DIR) + 1, __LINE__, ##__VA_ARGS__) + _wlr_log(verb, "[%s:%d] " fmt, _strip_path(__FILE__), __LINE__, ##__VA_ARGS__) #define wlr_vlog(verb, fmt, args) \ - _wlr_vlog(verb, "[%s:%d] " fmt, __FILE__ + strlen(WLR_SRC_DIR) + 1, __LINE__, args) + _wlr_vlog(verb, "[%s:%d] " fmt, _strip_path(__FILE__), __LINE__, args) #define wlr_log_errno(verb, fmt, ...) \ wlr_log(verb, fmt ": %s", ##__VA_ARGS__, strerror(errno)) |