mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -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(a);
 | 
			
		||||
    pa_assert(*a);
 | 
			
		||||
    pa_assert(b);
 | 
			
		||||
 | 
			
		||||
    an = strlen(a);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -249,6 +249,10 @@ void pa_reduce(unsigned *num, unsigned *den);
 | 
			
		|||
 | 
			
		||||
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);
 | 
			
		||||
 | 
			
		||||
/* Escapes p by inserting backslashes in front of backslashes. chars is a
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -228,6 +228,11 @@ START_TEST (modargs_test_escape) {
 | 
			
		|||
}
 | 
			
		||||
END_TEST
 | 
			
		||||
 | 
			
		||||
START_TEST (modargs_test_replace_fail_4) {
 | 
			
		||||
    pa_replace("abe", "", "bab");
 | 
			
		||||
}
 | 
			
		||||
END_TEST
 | 
			
		||||
 | 
			
		||||
START_TEST (modargs_test_unescape) {
 | 
			
		||||
    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_2, 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_unescape);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue