mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	rearrange a few things
This commit is contained in:
		
							parent
							
								
									d6dd907cc8
								
							
						
					
					
						commit
						078a8d583f
					
				
					 1 changed files with 91 additions and 86 deletions
				
			
		| 
						 | 
					@ -79,11 +79,6 @@ static int add_key_value(pa_hashmap *map, char *key, char *value, const char* co
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pa_modargs *pa_modargs_new(const char *args, const char* const* valid_keys) {
 | 
					pa_modargs *pa_modargs_new(const char *args, const char* const* valid_keys) {
 | 
				
			||||||
    pa_hashmap *map = NULL;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    map = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (args) {
 | 
					 | 
				
			||||||
    enum {
 | 
					    enum {
 | 
				
			||||||
        WHITESPACE,
 | 
					        WHITESPACE,
 | 
				
			||||||
        KEY,
 | 
					        KEY,
 | 
				
			||||||
| 
						 | 
					@ -93,13 +88,20 @@ pa_modargs *pa_modargs_new(const char *args, const char* const* valid_keys) {
 | 
				
			||||||
        VALUE_TICKS
 | 
					        VALUE_TICKS
 | 
				
			||||||
    } state;
 | 
					    } state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const char *p, *key, *value;
 | 
					    const char *p, *key = NULL, *value = NULL;
 | 
				
			||||||
    size_t key_len = 0, value_len = 0;
 | 
					    size_t key_len = 0, value_len = 0;
 | 
				
			||||||
 | 
					    pa_hashmap *map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    map = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!args)
 | 
				
			||||||
 | 
					        return (pa_modargs*) map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        key = value = NULL;
 | 
					 | 
				
			||||||
    state = WHITESPACE;
 | 
					    state = WHITESPACE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (p = args; *p; p++) {
 | 
					    for (p = args; *p; p++) {
 | 
				
			||||||
        switch (state) {
 | 
					        switch (state) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case WHITESPACE:
 | 
					            case WHITESPACE:
 | 
				
			||||||
                if (*p == '=')
 | 
					                if (*p == '=')
 | 
				
			||||||
                    goto fail;
 | 
					                    goto fail;
 | 
				
			||||||
| 
						 | 
					@ -109,6 +111,7 @@ pa_modargs *pa_modargs_new(const char *args, const char* const* valid_keys) {
 | 
				
			||||||
                    key_len = 1;
 | 
					                    key_len = 1;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case KEY:
 | 
					            case KEY:
 | 
				
			||||||
                if (*p == '=')
 | 
					                if (*p == '=')
 | 
				
			||||||
                    state = VALUE_START;
 | 
					                    state = VALUE_START;
 | 
				
			||||||
| 
						 | 
					@ -117,6 +120,7 @@ pa_modargs *pa_modargs_new(const char *args, const char* const* valid_keys) {
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                    key_len++;
 | 
					                    key_len++;
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case  VALUE_START:
 | 
					            case  VALUE_START:
 | 
				
			||||||
                if (*p == '\'') {
 | 
					                if (*p == '\'') {
 | 
				
			||||||
                    state = VALUE_TICKS;
 | 
					                    state = VALUE_TICKS;
 | 
				
			||||||
| 
						 | 
					@ -136,6 +140,7 @@ pa_modargs *pa_modargs_new(const char *args, const char* const* valid_keys) {
 | 
				
			||||||
                    value_len = 1;
 | 
					                    value_len = 1;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case VALUE_SIMPLE:
 | 
					            case VALUE_SIMPLE:
 | 
				
			||||||
                if (isspace(*p)) {
 | 
					                if (isspace(*p)) {
 | 
				
			||||||
                    if (add_key_value(map, pa_xstrndup(key, key_len), pa_xstrndup(value, value_len), valid_keys) < 0)
 | 
					                    if (add_key_value(map, pa_xstrndup(key, key_len), pa_xstrndup(value, value_len), valid_keys) < 0)
 | 
				
			||||||
| 
						 | 
					@ -144,6 +149,7 @@ pa_modargs *pa_modargs_new(const char *args, const char* const* valid_keys) {
 | 
				
			||||||
                } else
 | 
					                } else
 | 
				
			||||||
                    value_len++;
 | 
					                    value_len++;
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case VALUE_DOUBLE_QUOTES:
 | 
					            case VALUE_DOUBLE_QUOTES:
 | 
				
			||||||
                if (*p == '"') {
 | 
					                if (*p == '"') {
 | 
				
			||||||
                    if (add_key_value(map, pa_xstrndup(key, key_len), pa_xstrndup(value, value_len), valid_keys) < 0)
 | 
					                    if (add_key_value(map, pa_xstrndup(key, key_len), pa_xstrndup(value, value_len), valid_keys) < 0)
 | 
				
			||||||
| 
						 | 
					@ -152,6 +158,7 @@ pa_modargs *pa_modargs_new(const char *args, const char* const* valid_keys) {
 | 
				
			||||||
                } else
 | 
					                } else
 | 
				
			||||||
                    value_len++;
 | 
					                    value_len++;
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case VALUE_TICKS:
 | 
					            case VALUE_TICKS:
 | 
				
			||||||
                if (*p == '\'') {
 | 
					                if (*p == '\'') {
 | 
				
			||||||
                    if (add_key_value(map, pa_xstrndup(key, key_len), pa_xstrndup(value, value_len), valid_keys) < 0)
 | 
					                    if (add_key_value(map, pa_xstrndup(key, key_len), pa_xstrndup(value, value_len), valid_keys) < 0)
 | 
				
			||||||
| 
						 | 
					@ -171,13 +178,11 @@ pa_modargs *pa_modargs_new(const char *args, const char* const* valid_keys) {
 | 
				
			||||||
            goto fail;
 | 
					            goto fail;
 | 
				
			||||||
    } else if (state != WHITESPACE)
 | 
					    } else if (state != WHITESPACE)
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return (pa_modargs*) map;
 | 
					    return (pa_modargs*) map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fail:
 | 
					fail:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (map)
 | 
					 | 
				
			||||||
    pa_modargs_free((pa_modargs*) map);
 | 
					    pa_modargs_free((pa_modargs*) map);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return NULL;
 | 
					    return NULL;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue