/* Transform the list of files to be only the basenames. */ void games_file_list_transform_basename (GamesFileList * filelist) { GList *current = filelist->list; gchar *shortname; while (current) { shortname = g_path_get_basename ((gchar *) current->data); g_free (current->data); current->data = (gpointer) shortname; current = g_list_next (current); } games_file_list_remove_duplicates (filelist); }
/** * games_file_list_new: * @glob: A pattern to match files against. See g_pattern_spec_new () for * details. * @varargs: A NULL terminated list of strings containing directory names to * be searched for files. * * This function takes a glob and a NULL terminated list of directories * and constructs a list of all files in the directories that match the glob. * Only regular files are returned. * * Return value: A pointer to a new GamesFileList containing files * matching the glob in the path. **/ GamesFileList * games_file_list_new (const gchar * glob, ...) { GamesFileList *filelist; va_list paths; filelist = g_object_new (GAMES_FILE_LIST_TYPE, NULL); va_start (paths, glob); filelist->list = games_file_list_new_internal (glob, paths); va_end (paths); filelist->list = g_list_sort (filelist->list, (GCompareFunc) g_utf8_collate); games_file_list_remove_duplicates (filelist); return filelist; }
/** * games_file_list_new_images: * @path1: A NULL-terminated list of strings containing directories to be * searched. * * A convenience function which constructs a list of filenames which * are images that can be loaded via gdk-pixbuf. Whether a file is an * image or not is determined by its extension. The list of possible * extensions is determined by querying the gdk-pixbuf library the * first time this function is called. * * Return value: A new GamesFileList containing the list of image files. **/ GamesFileList * games_file_list_new_images (const gchar * path1, ...) { GamesFileList *filelist; gchar *pathentry; va_list paths; filelist = g_object_new (GAMES_FILE_LIST_TYPE, NULL); filelist->priv->list = games_file_list_new_images_single (path1); va_start (paths, path1); while ((pathentry = va_arg (paths, gchar *)) != NULL) { filelist->priv->list = g_list_concat (filelist->priv->list, games_file_list_new_images_single (pathentry)); } va_end (paths); filelist->priv->list = g_list_sort (filelist->priv->list, (GCompareFunc) g_utf8_collate); games_file_list_remove_duplicates (filelist); return filelist; }