X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gio%2Fgfilenamecompleter.c;h=f1d9f8a18d8cae142c450420c666105baf197486;hb=356a3987cee7ceddcb3fe623edf0bd2881895add;hp=76e6276a69e4fd2cc703ae685069fc4ce9a6bcd8;hpb=61582bd91cba508362d0e28db4d6e3f307b27b48;p=platform%2Fupstream%2Fglib.git diff --git a/gio/gfilenamecompleter.c b/gio/gfilenamecompleter.c index 76e6276..f1d9f8a 100644 --- a/gio/gfilenamecompleter.c +++ b/gio/gfilenamecompleter.c @@ -13,27 +13,30 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General - * Public License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307, USA. + * Public License along with this library; if not, see . * * Author: Alexander Larsson */ -#include +#include "config.h" #include "gfilenamecompleter.h" -#include "gurifuncs.h" +#include "gfileenumerator.h" +#include "gfileattribute.h" #include "gfile.h" +#include "gfileinfo.h" +#include "gcancellable.h" #include #include "glibintl.h" + /** * SECTION:gfilenamecompleter * @short_description: Filename Completer + * @include: gio/gio.h * * Completes partial file and directory names given a partial string by * looking in the file system for clues. Can return a list of possible - * completion strings for widget implementation. + * completion strings for widget implementations. * **/ @@ -59,8 +62,8 @@ struct _GFilenameCompleter { GFile *basenames_dir; gboolean basenames_are_escaped; - GList *basenames; gboolean dirs_only; + GList *basenames; LoadBasenamesData *basename_loader; }; @@ -81,11 +84,9 @@ g_filename_completer_finalize (GObject *object) if (completer->basenames_dir) g_object_unref (completer->basenames_dir); - g_list_foreach (completer->basenames, (GFunc)g_free, NULL); - g_list_free (completer->basenames); - - if (G_OBJECT_CLASS (g_filename_completer_parent_class)->finalize) - (*G_OBJECT_CLASS (g_filename_completer_parent_class)->finalize) (object); + g_list_free_full (completer->basenames, g_free); + + G_OBJECT_CLASS (g_filename_completer_parent_class)->finalize (object); } static void @@ -99,7 +100,7 @@ g_filename_completer_class_init (GFilenameCompleterClass *klass) * * Emitted when the file name completion information comes available. **/ - signals[GOT_COMPLETION_DATA] = g_signal_new (I_("got_completion_data"), + signals[GOT_COMPLETION_DATA] = g_signal_new (I_("got-completion-data"), G_TYPE_FILENAME_COMPLETER, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GFilenameCompleterClass, got_completion_data), @@ -151,8 +152,7 @@ load_basenames_data_free (LoadBasenamesData *data) g_object_unref (data->cancellable); g_object_unref (data->dir); - g_list_foreach (data->basenames, (GFunc)g_free, NULL); - g_list_free (data->basenames); + g_list_free_full (data->basenames, g_free); g_free (data); } @@ -239,8 +239,7 @@ got_more_files (GObject *source_object, if (data->completer->basenames_dir) g_object_unref (data->completer->basenames_dir); - g_list_foreach (data->completer->basenames, (GFunc)g_free, NULL); - g_list_free (data->completer->basenames); + g_list_free_full (data->completer->basenames, g_free); data->completer->basenames_dir = g_object_ref (data->dir); data->completer->basenames = data->basenames; @@ -277,8 +276,7 @@ got_enum (GObject *source_object, if (data->completer->basenames_dir) g_object_unref (data->completer->basenames_dir); - g_list_foreach (data->completer->basenames, (GFunc)g_free, NULL); - g_list_free (data->completer->basenames); + g_list_free_full (data->completer->basenames, g_free); /* Mark uptodate with no basenames */ data->completer->basenames_dir = g_object_ref (data->dir); @@ -315,7 +313,7 @@ schedule_load_basenames (GFilenameCompleter *completer, completer->basename_loader = data; g_file_enumerate_children_async (dir, - G_FILE_ATTRIBUTE_STD_NAME "," G_FILE_ATTRIBUTE_STD_TYPE, + G_FILE_ATTRIBUTE_STANDARD_NAME "," G_FILE_ATTRIBUTE_STANDARD_TYPE, 0, 0, data->cancellable, got_enum, data); @@ -460,12 +458,12 @@ g_filename_completer_get_completion_suffix (GFilenameCompleter *completer, * * Gets an array of completion strings for a given initial text. * - * Returns: array of strings with possible completions for @initial_text. + * Returns: (array zero-terminated=1) (transfer full): array of strings with possible completions for @initial_text. * This array must be freed by g_strfreev() when finished. **/ char ** g_filename_completer_get_completions (GFilenameCompleter *completer, - const char *initial_text) + const char *initial_text) { GList *possible_matches, *l; char *prefix; @@ -481,14 +479,16 @@ g_filename_completer_get_completions (GFilenameCompleter *completer, for (l = possible_matches; l != NULL; l = l->next) { possible_match = l->data; - + if (g_str_has_prefix (possible_match, prefix)) g_ptr_array_add (res, g_strconcat (initial_text, possible_match + strlen (prefix), NULL)); } g_free (prefix); - + + g_ptr_array_add (res, NULL); + return (char**)g_ptr_array_free (res, FALSE); }