mirror of
https://github.com/profanity-im/profanity.git
synced 2025-02-02 15:08:15 -05:00
Finished chat room nick autocomplete
This commit is contained in:
parent
2f3234a5f5
commit
cc62fe376c
30
src/muc.c
30
src/muc.c
@ -579,16 +579,28 @@ muc_autocomplete(char *input, int *size)
|
|||||||
char *result = NULL;
|
char *result = NULL;
|
||||||
if (last_space == NULL) {
|
if (last_space == NULL) {
|
||||||
result = autocomplete_complete(nick_ac, input, FALSE);
|
result = autocomplete_complete(nick_ac, input, FALSE);
|
||||||
|
if (result != NULL) {
|
||||||
|
ui_replace_input(input, result, size);
|
||||||
|
g_free(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
int len = (last_space - input);
|
char *search_str = last_space+1;
|
||||||
char *start_str = strndup(input, len);
|
if (*search_str != '\0') {
|
||||||
result = autocomplete_param_with_ac(input, size, start_str, nick_ac, FALSE);
|
result = autocomplete_complete(nick_ac, search_str, FALSE);
|
||||||
free(start_str);
|
if (result != NULL) {
|
||||||
}
|
if (g_str_has_suffix(input, result) == FALSE) {
|
||||||
if (result != NULL) {
|
gchar *start_str = g_strndup(input, search_str - input);
|
||||||
ui_replace_input(input, result, size);
|
GString *replace_with = g_string_new(start_str);
|
||||||
g_free(result);
|
g_string_append(replace_with, result);
|
||||||
return;
|
ui_replace_input(input, replace_with->str, size);
|
||||||
|
g_string_free(replace_with, TRUE);
|
||||||
|
g_free(start_str);
|
||||||
|
g_free(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -171,7 +171,7 @@ autocomplete_complete(Autocomplete ac, gchar *search_str, gboolean quote)
|
|||||||
|
|
||||||
// subsequent search attempt
|
// subsequent search attempt
|
||||||
} else {
|
} else {
|
||||||
// search from here+1 tp end
|
// search from here+1 to end
|
||||||
found = _search_from(ac, g_slist_next(ac->last_found), quote);
|
found = _search_from(ac, g_slist_next(ac->last_found), quote);
|
||||||
if (found != NULL)
|
if (found != NULL)
|
||||||
return found;
|
return found;
|
||||||
|
Loading…
Reference in New Issue
Block a user