[expand] remove blank expansions and strip spaces
This commit is contained in:
16
src/expand.c
16
src/expand.c
@@ -1428,13 +1428,27 @@ void expand_alternative_phrase_option(cstring_array *strings, khash_t(str_set) *
|
|||||||
char_array_terminate(temp_string);
|
char_array_terminate(temp_string);
|
||||||
|
|
||||||
token = char_array_get_string(temp_string);
|
token = char_array_get_string(temp_string);
|
||||||
|
|
||||||
|
size_t token_len = strlen(token);
|
||||||
|
|
||||||
|
if (token_len == 0) continue;
|
||||||
|
|
||||||
|
size_t left_spaces = string_left_spaces_len(token, token_len);
|
||||||
|
size_t right_spaces = string_right_spaces_len(token, token_len);
|
||||||
|
|
||||||
|
if (left_spaces + right_spaces == token_len) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
log_debug("full string=%s\n", token);
|
log_debug("full string=%s\n", token);
|
||||||
khiter_t k = kh_get(str_set, unique_strings, token);
|
khiter_t k = kh_get(str_set, unique_strings, token);
|
||||||
|
|
||||||
if (k == kh_end(unique_strings)) {
|
if (k == kh_end(unique_strings)) {
|
||||||
|
char *dupe_token = strndup(str + left_spaces, len - left_spaces - right_spaces);
|
||||||
|
|
||||||
log_debug("doing postprocessing\n");
|
log_debug("doing postprocessing\n");
|
||||||
add_postprocessed_string(strings, token, options);
|
add_postprocessed_string(strings, token, options);
|
||||||
k = kh_put(str_set, unique_strings, strdup(token), &ret);
|
k = kh_put(str_set, unique_strings, dupe_token, &ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
log_debug("iter->remaining = %d\n", iter->remaining);
|
log_debug("iter->remaining = %d\n", iter->remaining);
|
||||||
|
|||||||
@@ -119,6 +119,8 @@ ssize_t string_next_period(char *str);
|
|||||||
bool string_contains_period_len(char *str, size_t len);
|
bool string_contains_period_len(char *str, size_t len);
|
||||||
bool string_contains_period(char *str);
|
bool string_contains_period(char *str);
|
||||||
|
|
||||||
|
size_t string_left_spaces_len(char *str, size_t len);
|
||||||
|
size_t string_right_spaces_len(char *str, size_t len);
|
||||||
char *string_trim(char *str);
|
char *string_trim(char *str);
|
||||||
|
|
||||||
size_t string_hyphen_prefix_len(char *str, size_t len);
|
size_t string_hyphen_prefix_len(char *str, size_t len);
|
||||||
|
|||||||
Reference in New Issue
Block a user