aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2015-11-19 11:52:58 +0100
committerFurkan Sahin <furkan-dev@proton.me>2015-11-19 11:52:58 +0100
commitfc61d6d47984229744d51b5936dfd9994720935c (patch)
tree7db38e658ece1c7b65e9b4e57e7b2a511076f997
parent1f294eb9bcf01e95a96af9ee98b2d03e829c5c37 (diff)
stringop: lenient_strcmp: Add.
-rw-r--r--include/stringop.h3
-rw-r--r--sway/stringop.c13
2 files changed, 16 insertions, 0 deletions
diff --git a/include/stringop.h b/include/stringop.h
index febbbaba..bb681bcd 100644
--- a/include/stringop.h
+++ b/include/stringop.h
@@ -14,6 +14,9 @@ char *strip_whitespace(char *str);
char *strip_comments(char *str);
void strip_quotes(char *str);
+// strcmp that also handles null pointers.
+int lenient_strcmp(char *a, char *b);
+
// Simply split a string with delims, free with `free_flat_list`
list_t *split_string(const char *str, const char *delims);
void free_flat_list(list_t *list);
diff --git a/sway/stringop.c b/sway/stringop.c
index 8d6cac2f..fe5a97ca 100644
--- a/sway/stringop.c
+++ b/sway/stringop.c
@@ -74,6 +74,19 @@ void strip_quotes(char *str) {
*end = '\0';
}
+// strcmp that also handles null pointers.
+int lenient_strcmp(char *a, char *b) {
+ if (a == b) {
+ return 0;
+ } else if (!a) {
+ return -1;
+ } else if (!b) {
+ return 1;
+ } else {
+ return strcmp(a, b);
+ }
+}
+
list_t *split_string(const char *str, const char *delims) {
list_t *res = create_list();
char *copy = strdup(str);