mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05:00
core-util: Improve pa_replace() behaviour
- Assert that the search string isn't empty. - Add test. - Improve documentation.
This commit is contained in:
parent
c9c8f4285f
commit
111e332556
3 changed files with 11 additions and 0 deletions
|
|
@ -3194,6 +3194,7 @@ char *pa_replace(const char*s, const char*a, const char *b) {
|
||||||
|
|
||||||
pa_assert(s);
|
pa_assert(s);
|
||||||
pa_assert(a);
|
pa_assert(a);
|
||||||
|
pa_assert(*a);
|
||||||
pa_assert(b);
|
pa_assert(b);
|
||||||
|
|
||||||
an = strlen(a);
|
an = strlen(a);
|
||||||
|
|
|
||||||
|
|
@ -249,6 +249,10 @@ void pa_reduce(unsigned *num, unsigned *den);
|
||||||
|
|
||||||
unsigned pa_ncpus(void);
|
unsigned pa_ncpus(void);
|
||||||
|
|
||||||
|
/* Replaces all occurrences of `a' in `s' with `b'. The caller has to free the
|
||||||
|
* returned string. All parameters must be non-NULL and additionally `a' must
|
||||||
|
* not be a zero-length string.
|
||||||
|
*/
|
||||||
char *pa_replace(const char*s, const char*a, const char *b);
|
char *pa_replace(const char*s, const char*a, const char *b);
|
||||||
|
|
||||||
/* Escapes p by inserting backslashes in front of backslashes. chars is a
|
/* Escapes p by inserting backslashes in front of backslashes. chars is a
|
||||||
|
|
|
||||||
|
|
@ -228,6 +228,11 @@ START_TEST (modargs_test_escape) {
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
|
START_TEST (modargs_test_replace_fail_4) {
|
||||||
|
pa_replace("abe", "", "bab");
|
||||||
|
}
|
||||||
|
END_TEST
|
||||||
|
|
||||||
START_TEST (modargs_test_unescape) {
|
START_TEST (modargs_test_unescape) {
|
||||||
char* value;
|
char* value;
|
||||||
|
|
||||||
|
|
@ -264,6 +269,7 @@ int main(int argc, char *argv[]) {
|
||||||
tcase_add_test_raise_signal(tc, modargs_test_replace_fail_1, SIGABRT);
|
tcase_add_test_raise_signal(tc, modargs_test_replace_fail_1, SIGABRT);
|
||||||
tcase_add_test_raise_signal(tc, modargs_test_replace_fail_2, SIGABRT);
|
tcase_add_test_raise_signal(tc, modargs_test_replace_fail_2, SIGABRT);
|
||||||
tcase_add_test_raise_signal(tc, modargs_test_replace_fail_3, SIGABRT);
|
tcase_add_test_raise_signal(tc, modargs_test_replace_fail_3, SIGABRT);
|
||||||
|
tcase_add_test_raise_signal(tc, modargs_test_replace_fail_4, SIGABRT);
|
||||||
tcase_add_test(tc, modargs_test_escape);
|
tcase_add_test(tc, modargs_test_escape);
|
||||||
tcase_add_test(tc, modargs_test_unescape);
|
tcase_add_test(tc, modargs_test_unescape);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue