Make log:_strip_path more efficient
This commit is contained in:
parent
acbc0a019a
commit
2414722574
25
common/log.c
25
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' will both be stripped to
|
||||||
// 'backend/wayland/backend.c'
|
// 'backend/wayland/backend.c'
|
||||||
const char *_strip_path(const char *filepath) {
|
const char *_strip_path(const char *filepath) {
|
||||||
const char *srcit = WLR_SRC_DIR;
|
static int srclen = strlen(WLR_SRC_DIR) + 1;
|
||||||
const char *fileit = filepath;
|
if(*filepath == '.') {
|
||||||
|
while(*filepath == '.' || *filepath == '/') {
|
||||||
// remove WLR_SRC_DIR prefix
|
++filepath;
|
||||||
while(*fileit != '\0' && *srcit != '\0' && *fileit == *srcit) {
|
}
|
||||||
++fileit;
|
} else {
|
||||||
++srcit;
|
filepath += srclen;
|
||||||
}
|
}
|
||||||
if(fileit != filepath) {
|
return filepath;
|
||||||
++fileit;
|
|
||||||
}
|
|
||||||
|
|
||||||
// remove relative prefix
|
|
||||||
while(*fileit == '.' || *fileit == '/') {
|
|
||||||
++fileit;
|
|
||||||
}
|
|
||||||
|
|
||||||
return fileit;
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue