1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-06-30 21:55:24 +00:00

Merge branch 'master' into otr

This commit is contained in:
James Booth 2013-12-10 00:13:49 +00:00
commit 5eb0cf9f35
3 changed files with 22 additions and 53 deletions

View File

@ -82,7 +82,7 @@ autocomplete_length(Autocomplete ac)
}
}
gboolean
void
autocomplete_add(Autocomplete ac, const char *item)
{
char *item_cpy;
@ -90,21 +90,21 @@ autocomplete_add(Autocomplete ac, const char *item)
// if item already exists
if (curr != NULL) {
return FALSE;
return;
}
item_cpy = strdup(item);
ac->items = g_slist_insert_sorted(ac->items, item_cpy, (GCompareFunc)strcmp);
return TRUE;
return;
}
gboolean
void
autocomplete_remove(Autocomplete ac, const char * const item)
{
GSList *curr = g_slist_find_custom(ac->items, item, (GCompareFunc)strcmp);
if (!curr) {
return FALSE;
return;
}
// reset last found if it points to the item to be removed
@ -115,7 +115,7 @@ autocomplete_remove(Autocomplete ac, const char * const item)
free(curr->data);
ac->items = g_slist_delete_link(ac->items, curr);
return TRUE;
return;
}
GSList *

View File

@ -27,27 +27,33 @@
typedef char*(*autocomplete_func)(char *);
typedef struct autocomplete_t *Autocomplete;
typedef const char * (*PStrFunc)(const void *obj);
typedef void * (*PCopyFunc)(const void *obj);
typedef int (*PEqualFunc)(const void *o1, const void *o2);
typedef int (*PEqualDeepFunc)(const void *o1, const void *o2);
// allocate new autocompleter with no items
Autocomplete autocomplete_new(void);
Autocomplete obj_autocomplete_new(PStrFunc str_func, PCopyFunc copy_func,
PEqualDeepFunc equal_deep_func, GDestroyNotify free_func);
// Remove all items from the autocompleter
void autocomplete_clear(Autocomplete ac);
void autocomplete_reset(Autocomplete ac);
// free all memory used by the autocompleter
void autocomplete_free(Autocomplete ac);
gboolean autocomplete_add(Autocomplete ac, const char *item);
gboolean autocomplete_remove(Autocomplete ac, const char * const item);
GSList * autocomplete_get_list(Autocomplete ac);
void autocomplete_add(Autocomplete ac, const char *item);
void autocomplete_remove(Autocomplete ac, const char * const item);
// find the next item prefixed with search string
gchar * autocomplete_complete(Autocomplete ac, gchar *search_str);
GSList * autocomplete_get_list(Autocomplete ac);
gint autocomplete_length(Autocomplete ac);
char * autocomplete_param_with_func(char *input, int *size, char *command,
autocomplete_func func);
char * autocomplete_param_with_ac(char *input, int *size, char *command,
Autocomplete ac);
char * autocomplete_param_no_with_func(char *input, int *size, char *command,
int arg_number, autocomplete_func func);
void autocomplete_reset(Autocomplete ac);
#endif

View File

@ -113,40 +113,6 @@ static void add_two_same_updates(void)
autocomplete_clear(ac);
}
static void add_one_returns_true(void)
{
Autocomplete ac = autocomplete_new();
int result = autocomplete_add(ac, "Hello");
assert_true(result);
autocomplete_clear(ac);
}
static void add_two_different_returns_true(void)
{
Autocomplete ac = autocomplete_new();
int result1 = autocomplete_add(ac, "Hello");
int result2 = autocomplete_add(ac, "Hello there");
assert_true(result1);
assert_true(result2);
autocomplete_clear(ac);
}
static void add_two_same_returns_false(void)
{
Autocomplete ac = autocomplete_new();
int result1 = autocomplete_add(ac, "Hello");
int result2 = autocomplete_add(ac, "Hello");
assert_true(result1);
assert_false(result2);
autocomplete_clear(ac);
}
void register_autocomplete_tests(void)
{
TEST_MODULE("autocomplete tests");
@ -160,7 +126,4 @@ void register_autocomplete_tests(void)
TEST(add_two_adds_two);
TEST(add_two_same_adds_one);
TEST(add_two_same_updates);
TEST(add_one_returns_true);
TEST(add_two_different_returns_true);
TEST(add_two_same_returns_false);
}