SF.net SVN: geany:[3659] branches/reorder-filetypes/src/filetypes.c
ntrel at users.sourceforge.net
ntrel at xxxxx
Fri Mar 27 14:14:47 UTC 2009
Revision: 3659
http://geany.svn.sourceforge.net/geany/?rev=3659&view=rev
Author: ntrel
Date: 2009-03-27 14:14:46 +0000 (Fri, 27 Mar 2009)
Log Message:
-----------
Move sorted_filetypes list insertion to filetype_add().
Modified Paths:
--------------
branches/reorder-filetypes/src/filetypes.c
Modified: branches/reorder-filetypes/src/filetypes.c
===================================================================
--- branches/reorder-filetypes/src/filetypes.c 2009-03-27 14:06:11 UTC (rev 3658)
+++ branches/reorder-filetypes/src/filetypes.c 2009-03-27 14:14:46 UTC (rev 3659)
@@ -69,7 +69,11 @@
GHashTable *filetypes_hash = NULL; /* Hash of filetype pointers based on name keys */
+/* List of filetype pointers sorted by name, without ft[GEANY_FILETYPES_NONE], as this
+ * is usually treated specially. */
+static GSList *sorted_filetypes = NULL;
+
static void create_radio_menu_item(GtkWidget *menu, const gchar *label, GeanyFiletype *ftype);
@@ -588,7 +592,15 @@
}
-/* Add a filetype pointer to the list of available filetypes,
+static gint cmp_filetype(gconstpointer pft1, gconstpointer pft2)
+{
+ const GeanyFiletype *ft1 = pft1, *ft2 = pft2;
+
+ return utils_str_casecmp(ft1->name, ft2->name);
+}
+
+
+/* Add a filetype pointer to the lists of available filetypes,
* and set the filetype::id field. */
static void filetype_add(GeanyFiletype *ft)
{
@@ -598,6 +610,8 @@
ft->id = filetypes_array->len; /* len will be the index for filetype_array */
g_ptr_array_add(filetypes_array, ft);
g_hash_table_insert(filetypes_hash, ft->name, ft);
+
+ sorted_filetypes = g_slist_insert_sorted(sorted_filetypes, ft, cmp_filetype);
}
@@ -1478,30 +1492,11 @@
}
-static gint cmp_filetype(gconstpointer pft1, gconstpointer pft2)
-{
- const GeanyFiletype *ft1 = pft1, *ft2 = pft2;
-
- return utils_str_casecmp(ft1->name, ft2->name);
-}
-
-
-/* TODO: insert when adding filetypes properly */
-static GSList *sorted_filetypes = NULL;
-
-/* Does not include GEANY_FILETYPES_NONE, as this is usually treated specially. */
+/* Does not include ft[GEANY_FILETYPES_NONE], as this is usually treated specially. */
void filetypes_foreach_sorted(GFunc callback, gpointer user_data)
{
- guint i;
GSList *item;
- if (sorted_filetypes == NULL)
- {
- for (i = 1; i < filetypes_array->len; i++)
- sorted_filetypes = g_slist_insert_sorted(sorted_filetypes, filetypes[i],
- cmp_filetype);
- }
-
for (item = sorted_filetypes; item != NULL; item = g_slist_next(item))
callback(item->data, user_data);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list