X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/c4d08ac5260bb26db10bcfd9dc6fd2db60efebe9..d1b1c8d9119229dbeed06cd252917e54a1cb77f6:/lunaix-os/libs/klibc/string/trim.c diff --git a/lunaix-os/libs/klibc/string/trim.c b/lunaix-os/libs/klibc/string/trim.c index 82f29bd..3c3d11a 100644 --- a/lunaix-os/libs/klibc/string/trim.c +++ b/lunaix-os/libs/klibc/string/trim.c @@ -1,13 +1,14 @@ #include +#include #define WS_CHAR(c) \ (c == ' ' || c == '\t' || c == '\n' || c == '\f' || c == '\v' || c == '\r') -void +void weak strrtrim(char* str) { - size_t l = strlen(str); - while (l < (size_t)-1) { + unsigned long l = strlen(str); + while (l < (unsigned long)-1) { char c = str[l]; if (!c || WS_CHAR(c)) { l--; @@ -18,12 +19,16 @@ strrtrim(char* str) str[l + 1] = '\0'; } -void* +char* weak strltrim_safe(char* str) { - size_t l = 0; + unsigned long l = 0; char c = 0; - while ((c = str[l++]) && WS_CHAR(c)) - ; - return strcpy(str, str + l); + while ((c = str[l]) && WS_CHAR(c)) { + l++; + } + + if (l) + strcpy(str, str + l); + return str; } \ No newline at end of file