aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornyorain <nyorain@gmail.com>2017-06-19 20:17:40 +0200
committernyorain <nyorain@gmail.com>2017-06-19 20:17:40 +0200
commit24147225745b8a78af5db43c065c2ad84f0a115e (patch)
tree873a715a3bcfd1a1b823a8e3dfe7c052cf8cf412
parentacbc0a019a8b9a94fb8a7c1c0c226f482504dd68 (diff)
Make log:_strip_path more efficient
-rw-r--r--common/log.c25
1 files changed, 8 insertions, 17 deletions
diff --git a/common/log.c b/common/log.c
index 1a4a28a8..90eedf4c 100644
--- a/common/log.c
+++ b/common/log.c
@@ -65,22 +65,13 @@ void _wlr_log(log_importance_t verbosity, const char *fmt, ...) {
// '../backend/wayland/backend.c' will both be stripped to
// 'backend/wayland/backend.c'
const char *_strip_path(const char *filepath) {
- const char *srcit = WLR_SRC_DIR;
- const char *fileit = filepath;
-
- // remove WLR_SRC_DIR prefix
- while(*fileit != '\0' && *srcit != '\0' && *fileit == *srcit) {
- ++fileit;
- ++srcit;
- }
- if(fileit != filepath) {
- ++fileit;
+ static int srclen = strlen(WLR_SRC_DIR) + 1;
+ if(*filepath == '.') {
+ while(*filepath == '.' || *filepath == '/') {
+ ++filepath;
+ }
+ } else {
+ filepath += srclen;
}
-
- // remove relative prefix
- while(*fileit == '.' || *fileit == '/') {
- ++fileit;
- }
-
- return fileit;
+ return filepath;
}