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(); git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/custom-filetypes@2553 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
parent
a4cf5607a6
commit
67316db4c5
10
ChangeLog
10
ChangeLog
@ -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:
|
||||
|
@ -169,7 +169,7 @@ static void create_open_file_dialog(void)
|
||||
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 @@ static void create_open_file_dialog(void)
|
||||
/* 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");
|
||||
|
@ -46,6 +46,7 @@ typedef struct FullFileType
|
||||
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 @@ static void create_set_filetype_menu()
|
||||
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 @@ static void load_system_keyfile(GKeyFile *key_file, const gchar *file, GKeyFileF
|
||||
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();
|
||||
|
@ -78,8 +78,7 @@ typedef enum
|
||||
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. */
|
||||
|
@ -52,7 +52,7 @@ typedef struct
|
||||
} 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 @@ void highlighting_free_styles()
|
||||
{
|
||||
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 @@ void highlighting_set_styles(ScintillaObject *sci, gint filetype_idx)
|
||||
* 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)
|
||||
|
@ -981,7 +981,7 @@ static void generate_filetype_extensions(const gchar *output_dir)
|
||||
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 @@ void configuration_read_filetype_extensions(void)
|
||||
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);
|
||||
|
23
src/main.c
23
src/main.c
@ -473,6 +473,21 @@ static void locale_init(void)
|
||||
}
|
||||
|
||||
|
||||
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 @@ static void parse_command_line_options(gint *argc, gchar ***argv)
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -226,7 +226,7 @@ if __name__ == '__main__': main()\n\
|
||||
";
|
||||
|
||||
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 @@ static void init_ft_templates(const gchar *year, const gchar *date)
|
||||
{
|
||||
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 @@ static void create_new_menu_items(void)
|
||||
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];
|
||||
|
@ -88,14 +88,14 @@ static gchar *get_file_filters()
|
||||
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++)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user