summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--str.c27
-rw-r--r--str.h3
2 files changed, 29 insertions, 1 deletions
diff --git a/str.c b/str.c
index ee406e3..82edf73 100644
--- a/str.c
+++ b/str.c
@@ -30,10 +30,12 @@
#include <dns/result.h>
+#include <ctype.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <strings.h>
#include "str.h"
#include "util.h"
@@ -206,7 +208,7 @@ str_len(const ld_string_t *str)
}
/*
- * Retrun a const char * type.
+ * Return a const char * type.
*/
const char *
str_buf(const ld_string_t *src)
@@ -369,6 +371,29 @@ cleanup:
return result;
}
+void
+str_toupper(ld_string_t *str)
+{
+ char *ptr;
+
+ REQUIRE(str != NULL);
+
+ if (str->data == NULL)
+ return;
+
+ for (ptr = str->data; *ptr != '\0'; ptr++)
+ *ptr = toupper((unsigned char)*ptr);
+}
+
+int
+str_casecmp_char(const ld_string_t *s1, const char *s2)
+{
+ REQUIRE(s1 != NULL && s1->data != NULL);
+ REQUIRE(s2 != NULL);
+
+ return strcasecmp(s1->data, s2);
+}
+
/*
* TODO: Review.
*/
diff --git a/str.h b/str.h
index 1d2c741..96786ef 100644
--- a/str.h
+++ b/str.h
@@ -54,6 +54,9 @@ isc_result_t str_cat_char(ld_string_t *dest, const char *src);
isc_result_t str_cat(ld_string_t *dest, const ld_string_t *src);
isc_result_t str_sprintf(ld_string_t *dest, const char *format, ...);
isc_result_t str_vsprintf(ld_string_t *dest, const char *format, va_list ap);
+void str_toupper(ld_string_t *str);
+
+int str_casecmp_char(const ld_string_t *s1, const char *s2);
isc_result_t str_new_split(isc_mem_t *mctx, ld_split_t **splitp);
void str_destroy_split(ld_split_t **splitp);