Browse Source

util: Add dstr functions to make upper/lower

jp9000 10 years ago
parent
commit
bf1ca59965
2 changed files with 49 additions and 0 deletions
  1. 46 0
      libobs/util/dstr.c
  2. 3 0
      libobs/util/dstr.h

+ 46 - 0
libobs/util/dstr.c

@@ -691,3 +691,49 @@ void dstr_from_wcs(struct dstr *dst, const wchar_t *wstr)
 		dstr_free(dst);
 	}
 }
+
+void dstr_to_upper(struct dstr *str)
+{
+	wchar_t *wstr;
+	wchar_t *temp;
+
+	if (dstr_is_empty(str))
+		return;
+
+	wstr = dstr_to_wcs(str);
+	temp = wstr;
+
+	if (!wstr)
+		return;
+
+	while (*temp) {
+		*temp = (wchar_t)towupper(*temp);
+		temp++;
+	}
+
+	dstr_from_wcs(str, wstr);
+	bfree(wstr);
+}
+
+void dstr_to_lower(struct dstr *str)
+{
+	wchar_t *wstr;
+	wchar_t *temp;
+
+	if (dstr_is_empty(str))
+		return;
+
+	wstr = dstr_to_wcs(str);
+	temp = wstr;
+
+	if (!wstr)
+		return;
+
+	while (*temp) {
+		*temp = (wchar_t)towlower(*temp);
+		temp++;
+	}
+
+	dstr_from_wcs(str, wstr);
+	bfree(wstr);
+}

+ 3 - 0
libobs/util/dstr.h

@@ -143,6 +143,9 @@ EXPORT char *dstr_to_mbs(const struct dstr *str);
 EXPORT void dstr_from_wcs(struct dstr *dst, const wchar_t *wstr);
 EXPORT wchar_t *dstr_to_wcs(const struct dstr *str);
 
+EXPORT void dstr_to_upper(struct dstr *str);
+EXPORT void dstr_to_lower(struct dstr *str);
+
 /* ------------------------------------------------------------------------- */
 
 static inline void dstr_init(struct dstr *dst)