Automatic String Completion support for automatic completion using a group of target strings. #GCompletion provides support for automatic completion of a string using any group of target strings. It is typically used for file name completion as is common in many Unix shells. A #GCompletion is created using g_completion_new(). Target items are added and removed with g_completion_add_items(), g_completion_remove_items() and g_completion_clear_items(). A completion attempt is requested with g_completion_complete(). When no longer needed, the #GCompletion is freed with g_completion_free(). Items in the completion can be simple strings (e.g. file names), or pointers to arbitrary data structures. If data structures are used you must provide a #GCompletionFunc in g_completion_new(), which retrieves the item's string from the data structure. The data structure used for automatic completion. items is the list of target items (strings or data structures). func is the function called to get the string associated with a target item. It is NULL if the target items are strings. prefix is the last prefix passed to g_completion_complete(). cache is the list of items which begin with prefix. @items: @func: @prefix: @cache: Creates a new #GCompletion. @func: the function to be called to return the string representing an item in the #GCompletion, or NULL if strings are going to be used as the #GCompletion items. @Returns: the new #GCompletion. Specifies the type of the function passed to g_completion_new(). It should return the string corresponding to the given target item. This is used when you use data structures as #GCompletion items. @Param1: the completion item. @Returns: the string corresponding to the item. Adds items to the #GCompletion. @cmp: the #GCompletion. @items: the list of items to add. Removes items from a #GCompletion. @cmp: the #GCompletion. @items: the items to remove. Removes all items from the #GCompletion. @cmp: the #GCompletion. Attempts to complete the string @prefix using the #GCompletion target items. @cmp: the #GCompletion. @prefix: the prefix string, typically typed by the user, which is compared with each of the items. @new_prefix: if non-NULL, returns the longest prefix which is common to all items that matched @prefix, or NULL if no items matched @prefix. This string should be freed when no longer needed. @Returns: the list of items whose strings begin with @prefix. This should not be changed. Frees all memory used by the #GCompletion. @cmp: the #GCompletion.