diff options
author | axtloss <axtlos@getcryst.al> | 2024-05-28 19:12:49 +0200 |
---|---|---|
committer | axtloss <axtlos@getcryst.al> | 2024-05-28 19:12:49 +0200 |
commit | e2d8b96945423c14adbf7a54693f5064d5b157c1 (patch) | |
tree | 0052bad56749bcdf9dd99e822bd9c2ebd54999d4 /src/extString.c | |
parent | ad8ba2db29c0f3abecb292b1059dad554bf7f3b5 (diff) | |
download | autodarkmode-e2d8b96945423c14adbf7a54693f5064d5b157c1.tar.gz autodarkmode-e2d8b96945423c14adbf7a54693f5064d5b157c1.tar.bz2 |
add configuration system
Diffstat (limited to 'src/extString.c')
-rw-r--r-- | src/extString.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/extString.c b/src/extString.c new file mode 100644 index 0000000..6538dac --- /dev/null +++ b/src/extString.c @@ -0,0 +1,63 @@ +#include <stdlib.h> +#include <string.h> +#include <ctype.h> + +char *strlwr(char *s) +{ + unsigned char *p = (unsigned char *)s; + + while (*p) { + *p = tolower((unsigned char)*p); + p++; + } + + return s; +} + +char *trim(char *s) +{ + char *result = strdup(s); + char *end; + + while(isspace((unsigned char)*result)) result++; + + if(*result == 0) + return result; + + end = result + strlen(result) - 1; + while(end > result && isspace((unsigned char)*end)) end--; + + end[1] = '\0'; + + return result; +} + +char *replaceStr(char *s, char *old, char *replace) { + char* result; + int i, cnt = 0; + size_t newSize = strlen(replace); + size_t oldSize = strlen(old); + + for (i = 0; s[i] != '\0'; i++) { + if (strstr(&s[i], old) == &s[i]) { + cnt++; + i += oldSize - 1; + } + } + + result = (char*)malloc(i + cnt * (newSize - oldSize) + 1); + + i = 0; + while (*s) { + if (strstr(s, old) == s) { + strcpy(&result[i], replace); + i += newSize; + s += oldSize; + } + else + result[i++] = *s++; + } + + result[i] = '\0'; + return result; +}; |