SF.net SVN: geany: [2553] branches/custom-filetypes

ntrel at users.sourceforge.net ntrel at xxxxx
Wed May 7 11:34:45 UTC 2008


Revision: 2553
          http://geany.svn.sourceforge.net/geany/?rev=2553&view=rev
Author:   ntrel
Date:     2008-05-07 04:34:38 -0700 (Wed, 07 May 2008)

Log Message:
-----------
Remove GEANY_MAX_FILE_TYPES and replace most uses of it with
filetypes_array->len.
Highlighting and templates now use GEANY_MAX_BUILT_IN_FILETYPES.
Move print_filetypes() out of parse_command_line_options();

Modified Paths:
--------------
    branches/custom-filetypes/ChangeLog
    branches/custom-filetypes/src/dialogs.c
    branches/custom-filetypes/src/filetypes.c
    branches/custom-filetypes/src/filetypes.h
    branches/custom-filetypes/src/highlighting.c
    branches/custom-filetypes/src/keyfile.c
    branches/custom-filetypes/src/main.c
    branches/custom-filetypes/src/templates.c
    branches/custom-filetypes/src/win32.c

Modified: branches/custom-filetypes/ChangeLog
===================================================================
--- branches/custom-filetypes/ChangeLog	2008-05-06 17:04:06 UTC (rev 2552)
+++ branches/custom-filetypes/ChangeLog	2008-05-07 11:34:38 UTC (rev 2553)
@@ -1,3 +1,13 @@
+2008-05-07  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * src/templates.c, src/win32.c, src/highlighting.c, src/dialogs.c,
+   src/keyfile.c, src/filetypes.c, src/filetypes.h, src/main.c:
+   Remove GEANY_MAX_FILE_TYPES and replace most uses of it with
+   filetypes_array->len.
+   Highlighting and templates now use GEANY_MAX_BUILT_IN_FILETYPES.
+   Move print_filetypes() out of parse_command_line_options();
+
+
 2008-05-06  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
 
  * src/filetypes.c, src/filetypes.h:

Modified: branches/custom-filetypes/src/dialogs.c
===================================================================
--- branches/custom-filetypes/src/dialogs.c	2008-05-06 17:04:06 UTC (rev 2552)
+++ branches/custom-filetypes/src/dialogs.c	2008-05-07 11:34:38 UTC (rev 2553)
@@ -169,7 +169,7 @@
 	GtkWidget *filetype_combo, *encoding_combo;
 	GtkWidget *viewbtn;
 	GtkTooltips *tooltips = GTK_TOOLTIPS(lookup_widget(app->window, "tooltips"));
-	gint i;
+	guint i;
 	gchar *encoding_string;
 
 	ui_widgets.open_filesel = gtk_file_chooser_dialog_new(_("Open File"), GTK_WINDOW(app->window),
@@ -205,14 +205,14 @@
 	/* now create meta filter "All Source" */
 	gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(ui_widgets.open_filesel),
 				filetypes_create_file_filter_all_source());
-	for (i = 0; i < GEANY_MAX_FILE_TYPES - 1; i++)
+	for (i = 0; i < filetypes_array->len - 1; i++)
 	{
 		gtk_combo_box_append_text(GTK_COMBO_BOX(filetype_combo), filetypes[i]->title);
 		gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(ui_widgets.open_filesel),
 				filetypes_create_file_filter(filetypes[i]));
 	}
 	gtk_combo_box_append_text(GTK_COMBO_BOX(filetype_combo), _("Detect by file extension"));
-	gtk_combo_box_set_active(GTK_COMBO_BOX(filetype_combo), GEANY_MAX_FILE_TYPES - 1);
+	gtk_combo_box_set_active(GTK_COMBO_BOX(filetype_combo), filetypes_array->len - 1);
 
 	/* fill encoding combo box */
 	encoding_combo = lookup_widget(ui_widgets.open_filesel, "encoding_combo");

Modified: branches/custom-filetypes/src/filetypes.c
===================================================================
--- branches/custom-filetypes/src/filetypes.c	2008-05-06 17:04:06 UTC (rev 2552)
+++ branches/custom-filetypes/src/filetypes.c	2008-05-07 11:34:38 UTC (rev 2553)
@@ -46,6 +46,7 @@
 	filetype	public;
 	/* Private fields */
 	GtkWidget	*menu_item;			/* holds a pointer to the menu item for this filetype */
+	gboolean	keyfile_loaded;
 }
 FullFileType;
 
@@ -477,7 +478,7 @@
 	create_sub_menu(sub_menu_misc, sub_item_misc, _("M_iscellaneous Languages"));
 
 	/* Append all filetypes to the filetype menu */
-	for (ft_id = 0; ft_id < GEANY_MAX_FILE_TYPES; ft_id++)
+	for (ft_id = 0; ft_id < filetypes_array->len; ft_id++)
 	{
 		filetype *ft = filetypes[ft_id];
 		const gchar *title = ft->title;
@@ -882,13 +883,13 @@
 void filetypes_load_config(gint ft_id)
 {
 	GKeyFile *config, *config_home;
-	static gboolean loaded[GEANY_MAX_FILE_TYPES] = {FALSE};
+	FullFileType *fft = (FullFileType*)filetypes[ft_id];
 
-	g_return_if_fail(ft_id >= 0 && ft_id < GEANY_MAX_FILE_TYPES);
+	g_return_if_fail(ft_id >= 0 && ft_id < (gint) filetypes_array->len);
 
-	if (loaded[ft_id])
+	if (fft->keyfile_loaded)
 		return;
-	loaded[ft_id] = TRUE;
+	fft->keyfile_loaded = TRUE;
 
 	config = g_key_file_new();
 	config_home = g_key_file_new();

Modified: branches/custom-filetypes/src/filetypes.h
===================================================================
--- branches/custom-filetypes/src/filetypes.h	2008-05-06 17:04:06 UTC (rev 2552)
+++ branches/custom-filetypes/src/filetypes.h	2008-05-07 11:34:38 UTC (rev 2553)
@@ -78,8 +78,7 @@
 	GEANY_FILETYPES_SQL,
 
 	GEANY_FILETYPES_ALL,	/* must be last filetype, used for 'None' item. */
-	GEANY_MAX_BUILT_IN_FILETYPES,
-	GEANY_MAX_FILE_TYPES = GEANY_MAX_BUILT_IN_FILETYPES
+	GEANY_MAX_BUILT_IN_FILETYPES	/* Use filetypes_array->len instead */
 } filetype_id;
 
 /* Safe wrapper to get the id field of a possibly NULL filetype pointer. */

Modified: branches/custom-filetypes/src/highlighting.c
===================================================================
--- branches/custom-filetypes/src/highlighting.c	2008-05-06 17:04:06 UTC (rev 2552)
+++ branches/custom-filetypes/src/highlighting.c	2008-05-07 11:34:38 UTC (rev 2553)
@@ -52,7 +52,7 @@
 } StyleSet;
 
 /* each filetype has a styleset except GEANY_FILETYPE_ALL */
-static StyleSet style_sets[GEANY_MAX_FILE_TYPES - 1] = {{NULL, NULL, NULL}};
+static StyleSet style_sets[GEANY_MAX_BUILT_IN_FILETYPES - 1] = {{NULL, NULL, NULL}};
 
 
 enum	/* Geany common styling */
@@ -289,7 +289,7 @@
 {
 	gint i;
 
-	for (i = 0; i < GEANY_MAX_FILE_TYPES - 1; i++)
+	for (i = 0; i < GEANY_MAX_BUILT_IN_FILETYPES - 1; i++)
 	{
 		StyleSet *style_ptr;
 		style_ptr = &style_sets[i];
@@ -3046,7 +3046,7 @@
  * style_id is a Scintilla lexer style, see scintilla/SciLexer.h */
 const HighlightingStyle *highlighting_get_style(gint ft_id, gint style_id)
 {
-	if (ft_id < 0 || ft_id > GEANY_MAX_FILE_TYPES)
+	if (ft_id < 0 || ft_id > GEANY_MAX_BUILT_IN_FILETYPES)
 		return NULL;
 
 	if (style_sets[ft_id].styling == NULL)

Modified: branches/custom-filetypes/src/keyfile.c
===================================================================
--- branches/custom-filetypes/src/keyfile.c	2008-05-06 17:04:06 UTC (rev 2552)
+++ branches/custom-filetypes/src/keyfile.c	2008-05-07 11:34:38 UTC (rev 2553)
@@ -981,7 +981,7 @@
 	g_key_file_set_comment(config, NULL, NULL,
 		"*** This file generated by: geany --generate-data-files ***", NULL);
 	/* add filetype keys */
-	for (i = 0; i < GEANY_MAX_FILE_TYPES; i++)
+	for (i = 0; i < filetypes_array->len; i++)
 	{
 		g_key_file_set_string_list(config, "Extensions", filetypes[i]->name,
 			(const gchar**) filetypes[i]->pattern, g_strv_length(filetypes[i]->pattern));
@@ -1026,7 +1026,7 @@
 	g_key_file_load_from_file(userconfig, userconfigfile, G_KEY_FILE_NONE, NULL);
 
 	/* read the keys */
-	for (i = 0; i < GEANY_MAX_FILE_TYPES; i++)
+	for (i = 0; i < filetypes_array->len; i++)
 	{
 		gboolean userset =
 			g_key_file_has_key(userconfig, "Extensions", filetypes[i]->name, NULL);

Modified: branches/custom-filetypes/src/main.c
===================================================================
--- branches/custom-filetypes/src/main.c	2008-05-06 17:04:06 UTC (rev 2552)
+++ branches/custom-filetypes/src/main.c	2008-05-07 11:34:38 UTC (rev 2553)
@@ -473,6 +473,21 @@
 }
 
 
+static void print_filetypes(void)
+{
+	guint i;
+
+	filetypes_init_types();
+	printf("Geany's internal filetype names:\n");
+
+	for (i = 0; i < filetypes_array->len; i++)
+	{
+		printf("%s\n", filetypes[i]->name);
+	}
+	filetypes_free_types();
+}
+
+
 static void parse_command_line_options(gint *argc, gchar ***argv)
 {
 	GError *error = NULL;
@@ -585,13 +600,7 @@
 
 	if (ft_names)
 	{
-		printf("Geany's internal filetype names:\n");
-		filetypes_init_types();
-		for (i = 0; i < GEANY_MAX_FILE_TYPES; i++)
-		{
-			printf("%s\n", filetypes[i]->name);
-		}
-		filetypes_free_types();
+		print_filetypes();
 		exit(0);
 	}
 

Modified: branches/custom-filetypes/src/templates.c
===================================================================
--- branches/custom-filetypes/src/templates.c	2008-05-06 17:04:06 UTC (rev 2552)
+++ branches/custom-filetypes/src/templates.c	2008-05-07 11:34:38 UTC (rev 2553)
@@ -226,7 +226,7 @@
 ";
 
 static gchar *templates[GEANY_MAX_TEMPLATES];
-static gchar *ft_templates[GEANY_MAX_FILE_TYPES] = {NULL};
+static gchar *ft_templates[GEANY_MAX_BUILT_IN_FILETYPES] = {NULL};
 
 
 /* some simple macros to reduce code size and make the code readable */
@@ -290,7 +290,7 @@
 {
 	filetype_id ft_id;
 
-	for (ft_id = 0; ft_id < GEANY_MAX_FILE_TYPES; ft_id++)
+	for (ft_id = 0; ft_id < GEANY_MAX_BUILT_IN_FILETYPES; ft_id++)
 	{
 		gchar *ext = filetypes_get_conf_extension(ft_id);
 		gchar *shortname = g_strconcat("filetype.", ext, NULL);
@@ -338,7 +338,7 @@
 	GtkWidget *template_menu = lookup_widget(app->window, "menu_new_with_template1_menu");
 	filetype_id ft_id;
 
-	for (ft_id = 0; ft_id < GEANY_MAX_FILE_TYPES; ft_id++)
+	for (ft_id = 0; ft_id < GEANY_MAX_BUILT_IN_FILETYPES; ft_id++)
 	{
 		GtkWidget *tmp_menu, *tmp_button;
 		filetype *ft = filetypes[ft_id];

Modified: branches/custom-filetypes/src/win32.c
===================================================================
--- branches/custom-filetypes/src/win32.c	2008-05-06 17:04:06 UTC (rev 2552)
+++ branches/custom-filetypes/src/win32.c	2008-05-07 11:34:38 UTC (rev 2553)
@@ -88,14 +88,14 @@
 	GString *all_patterns = g_string_sized_new(100);
 	gchar *tmp;
 
-	for (i = 0; i < GEANY_MAX_FILE_TYPES; i++)
+	for (i = 0; i < filetypes_array->len; i++)
 	{
 		tmp = g_strjoinv(";", filetypes[i]->pattern);
 		g_string_append_printf(str, "%s\t%s\t", filetypes[i]->title, tmp);
 		g_free(tmp);
 	}
 	/* create meta file filter "All Source" */
-	for (i = 0; i < GEANY_MAX_FILE_TYPES; i++)
+	for (i = 0; i < filetypes_array->len; i++)
 	{
 		for (j = 0; filetypes[i]->pattern[j] != NULL; j++)
 		{


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