diff options
Diffstat (limited to 'str_util.c')
-rw-r--r-- | str_util.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/str_util.c b/str_util.c new file mode 100644 index 0000000..b4483b9 --- /dev/null +++ b/str_util.c @@ -0,0 +1,73 @@ +/* str_utils.c - the itsy package management system + + Carl D. Worth + + Copyright (C) 2001 University of Southern California + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2, or (at + your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. +*/ + +#include "ipkg.h" + +int str_starts_with(const char *str, const char *prefix) +{ + return (strncmp(str, prefix, strlen(prefix)) == 0); +} + +int str_ends_with(const char *str, const char *suffix) +{ + int suffix_len; + int str_len; + + str_len = strlen(str); + suffix_len = strlen(suffix); + + if (str_len < suffix_len) { + return 0; + } + + return (strcmp(str + str_len - suffix_len, suffix) == 0); +} + +int str_chomp(char *str) +{ + if (str[strlen(str) - 1] == '\n') { + str[strlen(str) - 1] = '\0'; + return 1; + } + return 0; +} + +int str_tolower(char *str) +{ + while (*str) { + *str = tolower(*str); + str++; + } + + return 0; +} + +int str_toupper(char *str) +{ + while (*str) { + *str = toupper(*str); + str++; + } + + return 0; +} + +char *str_dup_safe(const char *str) +{ + return str ? strdup(str) : NULL; +} + |