summaryrefslogtreecommitdiffstats
path: root/str_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'str_util.c')
-rw-r--r--str_util.c73
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;
+}
+