add new API pa_ascii_valid(), pa_ascii_filter()
authorLennart Poettering <lennart@poettering.net>
Wed, 4 Feb 2009 16:11:56 +0000 (17:11 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 4 Feb 2009 16:11:56 +0000 (17:11 +0100)
src/map-file
src/pulse/utf8.c
src/pulse/utf8.h

index cdb9deb..ca4e7a7 100644 (file)
@@ -1,5 +1,7 @@
 PULSE_0 {
 global:
+pa_ascii_filter;
+pa_ascii_valid;
 pa_browser_new;
 pa_browser_new_full;
 pa_browser_ref;
index 7671be4..6b58bde 100644 (file)
@@ -263,3 +263,29 @@ char* pa_locale_to_utf8 (const char *str) {
 }
 
 #endif
+
+char *pa_ascii_valid(const char *str) {
+    const char *p;
+    pa_assert(str);
+
+    for (p = str; *p; p++)
+        if ((unsigned char) *p >= 128)
+            return NULL;
+
+    return (char*) str;
+}
+
+char *pa_ascii_filter(const char *str) {
+    char *r, *s, *d;
+    pa_assert(str);
+
+    r = pa_xstrdup(str);
+
+    for (s = r, d = r; *s; s++)
+        if ((unsigned char) *s < 128)
+            *(d++) = *s;
+
+    *d = 0;
+
+    return r;
+}
index 4d75195..b9f7495 100644 (file)
@@ -36,9 +36,15 @@ PA_C_DECL_BEGIN
 /** Test if the specified strings qualifies as valid UTF8. Return the string if so, otherwise NULL */
 char *pa_utf8_valid(const char *str) PA_GCC_PURE;
 
+/** Test if the specified strings qualifies as valid 7-bit ASCII. Return the string if so, otherwise NULL. \since 0.9.15 */
+char *pa_ascii_valid(const char *str) PA_GCC_PURE;
+
 /** Filter all invalid UTF8 characters from the specified string, returning a new fully UTF8 valid string. Don't forget to free the returned string with pa_xfree() */
 char *pa_utf8_filter(const char *str);
 
+/** Filter all invalid ASCII characters from the specified string, returning a new fully ASCII valid string. Don't forget to free the returned string with pa_xfree(). \since 0.9.15 */
+char *pa_ascii_filter(const char *str);
+
 /** Convert a UTF-8 string to the current locale. Free the string using pa_xfree(). */
 char* pa_utf8_to_locale (const char *str);