add new API pa_ascii_valid(), pa_ascii_filter()

This commit is contained in:
Lennart Poettering 2009-02-04 17:11:56 +01:00
parent ce76216bce
commit 0fc59e4585
3 changed files with 34 additions and 0 deletions

View file

@ -1,5 +1,7 @@
PULSE_0 {
global:
pa_ascii_filter;
pa_ascii_valid;
pa_browser_new;
pa_browser_new_full;
pa_browser_ref;

View 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;
}

View 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);