Allow previous autocompletion with shift tab

This commit is contained in:
James Booth
2017-04-01 00:27:11 +01:00
parent 1b9d033cef
commit 6b830277a6
38 changed files with 597 additions and 466 deletions

View File

@@ -92,9 +92,9 @@ blocked_list(void)
}
char*
blocked_ac_find(const char *const search_str)
blocked_ac_find(const char *const search_str, gboolean previous)
{
return autocomplete_complete(blocked_ac, search_str, TRUE);
return autocomplete_complete(blocked_ac, search_str, TRUE, previous);
}
void

View File

@@ -212,9 +212,9 @@ bookmark_get_list(void)
}
char*
bookmark_find(const char *const search_str)
bookmark_find(const char *const search_str, gboolean previous)
{
return autocomplete_complete(bookmark_ac, search_str, TRUE);
return autocomplete_complete(bookmark_ac, search_str, TRUE, previous);
}
void

View File

@@ -120,7 +120,7 @@ muc_invites_count(void)
return autocomplete_length(invite_ac);
}
GSList*
GList*
muc_invites(void)
{
return autocomplete_create_list(invite_ac);
@@ -135,17 +135,17 @@ muc_invite_password(const char *const room)
gboolean
muc_invites_contain(const char *const room)
{
GSList *invites = autocomplete_create_list(invite_ac);
GSList *curr = invites;
GList *invites = autocomplete_create_list(invite_ac);
GList *curr = invites;
while (curr) {
if (strcmp(curr->data, room) == 0) {
g_slist_free_full(invites, g_free);
g_list_free_full(invites, g_free);
return TRUE;
} else {
curr = g_slist_next(curr);
curr = g_list_next(curr);
}
}
g_slist_free_full(invites, g_free);
g_list_free_full(invites, g_free);
return FALSE;
}
@@ -157,9 +157,9 @@ muc_invites_reset_ac(void)
}
char*
muc_invites_find(const char *const search_str)
muc_invites_find(const char *const search_str, gboolean previous)
{
return autocomplete_complete(invite_ac, search_str, TRUE);
return autocomplete_complete(invite_ac, search_str, TRUE, previous);
}
void
@@ -663,7 +663,7 @@ muc_roster_nick_change_complete(const char *const room, const char *const nick)
}
char*
muc_autocomplete(ProfWin *window, const char *const input)
muc_autocomplete(ProfWin *window, const char *const input, gboolean previous)
{
if (window->type == WIN_MUC) {
ProfMucWin *mucwin = (ProfMucWin*)window;
@@ -686,7 +686,7 @@ muc_autocomplete(ProfWin *window, const char *const input)
}
}
char *result = autocomplete_complete(chat_room->nick_ac, search_str, FALSE);
char *result = autocomplete_complete(chat_room->nick_ac, search_str, FALSE, previous);
if (result) {
GString *replace_with = g_string_new(chat_room->autocomplete_prefix);
g_string_append(replace_with, result);

View File

@@ -120,10 +120,10 @@ char* muc_roster_nick_change_complete(const char *const room, const char *const
void muc_invites_add(const char *const room, const char *const password);
void muc_invites_remove(const char *const room);
gint muc_invites_count(void);
GSList* muc_invites(void);
GList* muc_invites(void);
gboolean muc_invites_contain(const char *const room);
void muc_invites_reset_ac(void);
char* muc_invites_find(const char *const search_str);
char* muc_invites_find(const char *const search_str, gboolean previous);
void muc_invites_clear(void);
char* muc_invite_password(const char *const room);
@@ -133,7 +133,7 @@ char* muc_subject(const char *const room);
void muc_pending_broadcasts_add(const char *const room, const char *const message);
GList* muc_pending_broadcasts(const char *const room);
char* muc_autocomplete(ProfWin *window, const char *const input);
char* muc_autocomplete(ProfWin *window, const char *const input, gboolean previous);
void muc_autocomplete_reset(const char *const room);
gboolean muc_requires_config(const char *const room);

View File

@@ -141,7 +141,7 @@ presence_subscription(const char *const jid, const jabber_subscr_t action)
xmpp_stanza_release(presence);
}
GSList*
GList*
presence_get_subscription_requests(void)
{
return autocomplete_create_list(sub_requests_ac);
@@ -160,9 +160,9 @@ presence_clear_sub_requests(void)
}
char*
presence_sub_request_find(const char *const search_str)
presence_sub_request_find(const char *const search_str, gboolean previous)
{
return autocomplete_complete(sub_requests_ac, search_str, TRUE);
return autocomplete_complete(sub_requests_ac, search_str, TRUE, previous);
}
gboolean
@@ -170,16 +170,16 @@ presence_sub_request_exists(const char *const bare_jid)
{
gboolean result = FALSE;
GSList *requests = autocomplete_create_list(sub_requests_ac);
GSList *curr = requests;
GList *requests = autocomplete_create_list(sub_requests_ac);
GList *curr = requests;
while (curr) {
if (strcmp(curr->data, bare_jid) == 0) {
result = TRUE;
break;
}
curr = g_slist_next(curr);
curr = g_list_next(curr);
}
g_slist_free_full(requests, free);
g_list_free_full(requests, free);
return result;
}

View File

@@ -472,19 +472,19 @@ roster_has_pending_subscriptions(void)
}
char*
roster_contact_autocomplete(const char *const search_str)
roster_contact_autocomplete(const char *const search_str, gboolean previous)
{
assert(roster != NULL);
return autocomplete_complete(roster->name_ac, search_str, TRUE);
return autocomplete_complete(roster->name_ac, search_str, TRUE, previous);
}
char*
roster_fulljid_autocomplete(const char *const search_str)
roster_fulljid_autocomplete(const char *const search_str, gboolean previous)
{
assert(roster != NULL);
return autocomplete_complete(roster->fulljid_ac, search_str, TRUE);
return autocomplete_complete(roster->fulljid_ac, search_str, TRUE, previous);
}
GSList*
@@ -526,7 +526,7 @@ roster_get_group(const char *const group, roster_ord_t order)
return result;
}
GSList*
GList*
roster_get_groups(void)
{
assert(roster != NULL);
@@ -535,19 +535,19 @@ roster_get_groups(void)
}
char*
roster_group_autocomplete(const char *const search_str)
roster_group_autocomplete(const char *const search_str, gboolean previous)
{
assert(roster != NULL);
return autocomplete_complete(roster->groups_ac, search_str, TRUE);
return autocomplete_complete(roster->groups_ac, search_str, TRUE, previous);
}
char*
roster_barejid_autocomplete(const char *const search_str)
roster_barejid_autocomplete(const char *const search_str, gboolean previous)
{
assert(roster != NULL);
return autocomplete_complete(roster->barejid_ac, search_str, TRUE);
return autocomplete_complete(roster->barejid_ac, search_str, TRUE, previous);
}
static gboolean

View File

@@ -62,12 +62,12 @@ char* roster_barejid_from_name(const char *const name);
GSList* roster_get_contacts(roster_ord_t order);
GSList* roster_get_contacts_online(void);
gboolean roster_has_pending_subscriptions(void);
char* roster_contact_autocomplete(const char *const search_str);
char* roster_fulljid_autocomplete(const char *const search_str);
char* roster_contact_autocomplete(const char *const search_str, gboolean previous);
char* roster_fulljid_autocomplete(const char *const search_str, gboolean previous);
GSList* roster_get_group(const char *const group, roster_ord_t order);
GSList* roster_get_groups(void);
char* roster_group_autocomplete(const char *const search_str);
char* roster_barejid_autocomplete(const char *const search_str);
GList* roster_get_groups(void);
char* roster_group_autocomplete(const char *const search_str, gboolean previous);
char* roster_barejid_autocomplete(const char *const search_str, gboolean previous);
GSList* roster_get_contacts_by_presence(const char *const presence);
char* roster_get_msg_display_name(const char *const barejid, const char *const resource);

View File

@@ -147,10 +147,10 @@ void message_send_gone(const char *const jid);
void message_send_invite(const char *const room, const char *const contact, const char *const reason);
void presence_subscription(const char *const jid, const jabber_subscr_t action);
GSList* presence_get_subscription_requests(void);
GList* presence_get_subscription_requests(void);
gint presence_sub_request_count(void);
void presence_reset_sub_request_search(void);
char* presence_sub_request_find(const char *const search_str);
char* presence_sub_request_find(const char *const search_str, gboolean previous);
void presence_join_room(const char *const room, const char *const nick, const char *const passwd);
void presence_change_room_nick(const char *const room, const char *const nick);
void presence_leave_chat_room(const char *const room_jid);
@@ -194,7 +194,7 @@ gboolean bookmark_update(const char *jid, const char *nick, const char *password
gboolean bookmark_remove(const char *jid);
gboolean bookmark_join(const char *jid);
GList* bookmark_get_list(void);
char* bookmark_find(const char *const search_str);
char* bookmark_find(const char *const search_str, gboolean previous);
void bookmark_autocomplete_reset(void);
gboolean bookmark_exists(const char *const room);
@@ -207,7 +207,7 @@ void roster_send_remove(const char *const barejid);
GList* blocked_list(void);
gboolean blocked_add(char *jid);
gboolean blocked_remove(char *jid);
char* blocked_ac_find(const char *const search_str);
char* blocked_ac_find(const char *const search_str, gboolean previous);
void blocked_ac_reset(void);
void form_destroy(DataForm *form);