[geany/geany] 860df2: Remove struct/macro/funcptr linkage control for plugin API

Matthew Brush git-noreply at xxxxx
Fri Apr 10 15:07:01 UTC 2015


Branch:      refs/heads/master
Author:      Matthew Brush <matt at geany.org>
Committer:   Thomas Martitz <kugel at rockbox.org>
Date:        Tue, 10 Mar 2015 21:06:47 UTC
Commit:      860df27696de75ab41765ed5700eb8e9991bccab
             https://github.com/geany/geany/commit/860df27696de75ab41765ed5700eb8e9991bccab

Log Message:
-----------
Remove struct/macro/funcptr linkage control for plugin API

Add rest of headers needed for declarations of all public API
functions. Add HAVE_PLUGINS define to geanyplugins.h since some headers
need this and it should always be valid for this header.
geanyfunctions.h left for source-level backwards compatibility for
plugins which might `#include` this header directly. I don't know why
they do it, but some Geany-Plugins do this.


Modified Paths:
--------------
    doc/Doxyfile.in
    doc/Makefile.am
    doc/plugins.dox
    plugins/Makefile.am
    plugins/geanyfunctions.h
    plugins/geanyplugin.h
    plugins/genapi.py
    src/Makefile.am
    src/plugindata.h
    src/plugins.c

Modified: doc/Doxyfile.in
1 lines changed, 0 insertions(+), 1 deletions(-)
===================================================================
@@ -775,7 +775,6 @@ WARN_LOGFILE           =
 INPUT                  = @top_srcdir@/src/ \
                          @top_srcdir@/doc/ \
                          @top_srcdir@/plugins/geanyplugin.h \
-                         @top_srcdir@/plugins/geanyfunctions.h \
                          @top_srcdir@/tagmanager/src/tm_source_file.c \
                          @top_srcdir@/tagmanager/src/tm_source_file.h \
                          @top_srcdir@/tagmanager/src/tm_workspace.c \


Modified: doc/Makefile.am
1 lines changed, 0 insertions(+), 1 deletions(-)
===================================================================
@@ -96,7 +96,6 @@ doxygen_sources = \
 	$(srcdir)/*.dox \
 	$(top_srcdir)/src/*.[ch] \
 	$(top_srcdir)/plugins/geanyplugin.h \
-	$(top_srcdir)/plugins/geanyfunctions.h \
 	$(top_srcdir)/tagmanager/src/tm_source_file.[ch] \
 	$(top_srcdir)/tagmanager/src/tm_workspace.[ch]
 


Modified: doc/plugins.dox
7 lines changed, 2 insertions(+), 5 deletions(-)
===================================================================
@@ -187,14 +187,12 @@ so there is no need to include @a gtk/gtk.h yourself.
 
 @note
 @a plugindata.h contains the biggest part of the plugin API and provides some basic macros.
- at a geanyfunctions.h provides some macros for convenient access to plugin API functions.
 
-Then you should define three basic variables which will give access to data fields and
-functions provided by the plugin API.
+Then you should define two basic variables which will give access to data fields
+provided by the plugin API.
 @code
 GeanyPlugin			*geany_plugin;
 GeanyData			*geany_data;
-GeanyFunctions		*geany_functions;
 @endcode
 
 Now you can go on and write your first lines for your new plugin. As mentioned before,
@@ -363,7 +361,6 @@ Once this is done, your first plugin is ready. Congratulations!
 
 GeanyPlugin		*geany_plugin;
 GeanyData		*geany_data;
-GeanyFunctions	*geany_functions;
 
 PLUGIN_VERSION_CHECK(211)
 


Modified: plugins/Makefile.am
14 lines changed, 3 insertions(+), 11 deletions(-)
===================================================================
@@ -1,22 +1,14 @@
 # Adapted from Pidgin's plugins/Makefile.am, thanks
 
 EXTRA_DIST = \
-	makefile.win32 \
-	genapi.py
+	makefile.win32
 
 plugindir = $(libdir)/geany
 
 plugins_includedir = $(includedir)/geany
 plugins_include_HEADERS = \
-	geanyplugin.h \
-	geanyfunctions.h
-
-# systems without python should continue to build OK
-geanyfunctions.h: genapi.py ../src/plugins.c
-	python genapi.py || true
-
-all: geanyfunctions.h
-
+	geanyfunctions.h \
+	geanyplugin.h
 
 demoplugin_la_LDFLAGS    = -module -avoid-version -no-undefined
 classbuilder_la_LDFLAGS  = -module -avoid-version -no-undefined


Modified: plugins/geanyfunctions.h
463 lines changed, 23 insertions(+), 440 deletions(-)
===================================================================
@@ -1,448 +1,31 @@
-/* This file is generated automatically by genapi.py - do not edit. */
-
-/** @file geanyfunctions.h @ref geany_functions wrappers.
- * This allows the use of normal API function names in plugins by defining macros.
+/*
+ *      geanyfunctions.h - this file is part of Geany, a fast and lightweight IDE
+ *
+ *      Copyright 2014 Matthew Brush <mbrush at codebrainz.ca>
  *
- * E.g.:@code
- * #define plugin_add_toolbar_item \
- * 	geany_functions->p_plugin->plugin_add_toolbar_item @endcode
+ *      This program is free software; you can redistribute it and/or modify
+ *      it under the terms of the GNU General Public License as published by
+ *      the Free Software Foundation; either version 2 of the License, or
+ *      (at your option) any later version.
  *
- * You need to declare the @ref geany_functions symbol yourself.
+ *      This program is distributed in the hope that it will be useful,
+ *      but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *      GNU General Public License for more details.
  *
- * Note: This must be included after all other API headers to prevent conflicts with
- * other header's function prototypes - this is done for you when using geanyplugin.h.
+ *      You should have received a copy of the GNU General Public License along
+ *      with this program; if not, write to the Free Software Foundation, Inc.,
+ *      51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
+/* This file exists purely for backwards compatibility. */
+
 #ifndef GEANY_FUNCTIONS_H
-#define GEANY_FUNCTIONS_H
+#define GEANY_FUNCTIONS_H 1
 
-#define plugin_add_toolbar_item \
-	geany_functions->p_plugin->plugin_add_toolbar_item
-#define plugin_module_make_resident \
-	geany_functions->p_plugin->plugin_module_make_resident
-#define plugin_signal_connect \
-	geany_functions->p_plugin->plugin_signal_connect
-#define plugin_set_key_group \
-	geany_functions->p_plugin->plugin_set_key_group
-#define plugin_show_configure \
-	geany_functions->p_plugin->plugin_show_configure
-#define plugin_timeout_add \
-	geany_functions->p_plugin->plugin_timeout_add
-#define plugin_timeout_add_seconds \
-	geany_functions->p_plugin->plugin_timeout_add_seconds
-#define plugin_idle_add \
-	geany_functions->p_plugin->plugin_idle_add
-#define plugin_builder_connect_signals \
-	geany_functions->p_plugin->plugin_builder_connect_signals
-#define document_new_file \
-	geany_functions->p_document->document_new_file
-#define document_get_current \
-	geany_functions->p_document->document_get_current
-#define document_get_from_page \
-	geany_functions->p_document->document_get_from_page
-#define document_find_by_filename \
-	geany_functions->p_document->document_find_by_filename
-#define document_find_by_real_path \
-	geany_functions->p_document->document_find_by_real_path
-#define document_save_file \
-	geany_functions->p_document->document_save_file
-#define document_open_file \
-	geany_functions->p_document->document_open_file
-#define document_open_files \
-	geany_functions->p_document->document_open_files
-#define document_remove_page \
-	geany_functions->p_document->document_remove_page
-#define document_reload_force \
-	geany_functions->p_document->document_reload_force
-#define document_set_encoding \
-	geany_functions->p_document->document_set_encoding
-#define document_set_text_changed \
-	geany_functions->p_document->document_set_text_changed
-#define document_set_filetype \
-	geany_functions->p_document->document_set_filetype
-#define document_close \
-	geany_functions->p_document->document_close
-#define document_index \
-	geany_functions->p_document->document_index
-#define document_save_file_as \
-	geany_functions->p_document->document_save_file_as
-#define document_rename_file \
-	geany_functions->p_document->document_rename_file
-#define document_get_status_color \
-	geany_functions->p_document->document_get_status_color
-#define document_get_basename_for_display \
-	geany_functions->p_document->document_get_basename_for_display
-#define document_get_notebook_page \
-	geany_functions->p_document->document_get_notebook_page
-#define document_compare_by_display_name \
-	geany_functions->p_document->document_compare_by_display_name
-#define document_compare_by_tab_order \
-	geany_functions->p_document->document_compare_by_tab_order
-#define document_compare_by_tab_order_reverse \
-	geany_functions->p_document->document_compare_by_tab_order_reverse
-#define document_find_by_id \
-	geany_functions->p_document->document_find_by_id
-#define editor_get_indent_prefs \
-	geany_functions->p_editor->editor_get_indent_prefs
-#define editor_create_widget \
-	geany_functions->p_editor->editor_create_widget
-#define editor_indicator_set_on_range \
-	geany_functions->p_editor->editor_indicator_set_on_range
-#define editor_indicator_set_on_line \
-	geany_functions->p_editor->editor_indicator_set_on_line
-#define editor_indicator_clear \
-	geany_functions->p_editor->editor_indicator_clear
-#define editor_set_indent_type \
-	geany_functions->p_editor->editor_set_indent_type
-#define editor_get_word_at_pos \
-	geany_functions->p_editor->editor_get_word_at_pos
-#define editor_get_eol_char_name \
-	geany_functions->p_editor->editor_get_eol_char_name
-#define editor_get_eol_char_len \
-	geany_functions->p_editor->editor_get_eol_char_len
-#define editor_get_eol_char \
-	geany_functions->p_editor->editor_get_eol_char
-#define editor_insert_text_block \
-	geany_functions->p_editor->editor_insert_text_block
-#define editor_get_eol_char_mode \
-	geany_functions->p_editor->editor_get_eol_char_mode
-#define editor_goto_pos \
-	geany_functions->p_editor->editor_goto_pos
-#define editor_find_snippet \
-	geany_functions->p_editor->editor_find_snippet
-#define editor_insert_snippet \
-	geany_functions->p_editor->editor_insert_snippet
-#define scintilla_send_message \
-	geany_functions->p_scintilla->scintilla_send_message
-#define scintilla_new \
-	geany_functions->p_scintilla->scintilla_new
-#define sci_send_command \
-	geany_functions->p_sci->sci_send_command
-#define sci_start_undo_action \
-	geany_functions->p_sci->sci_start_undo_action
-#define sci_end_undo_action \
-	geany_functions->p_sci->sci_end_undo_action
-#define sci_set_text \
-	geany_functions->p_sci->sci_set_text
-#define sci_insert_text \
-	geany_functions->p_sci->sci_insert_text
-#define sci_get_text \
-	geany_functions->p_sci->sci_get_text
-#define sci_get_length \
-	geany_functions->p_sci->sci_get_length
-#define sci_get_current_position \
-	geany_functions->p_sci->sci_get_current_position
-#define sci_set_current_position \
-	geany_functions->p_sci->sci_set_current_position
-#define sci_get_col_from_position \
-	geany_functions->p_sci->sci_get_col_from_position
-#define sci_get_line_from_position \
-	geany_functions->p_sci->sci_get_line_from_position
-#define sci_get_position_from_line \
-	geany_functions->p_sci->sci_get_position_from_line
-#define sci_replace_sel \
-	geany_functions->p_sci->sci_replace_sel
-#define sci_get_selected_text \
-	geany_functions->p_sci->sci_get_selected_text
-#define sci_get_selected_text_length \
-	geany_functions->p_sci->sci_get_selected_text_length
-#define sci_get_selection_start \
-	geany_functions->p_sci->sci_get_selection_start
-#define sci_get_selection_end \
-	geany_functions->p_sci->sci_get_selection_end
-#define sci_get_selection_mode \
-	geany_functions->p_sci->sci_get_selection_mode
-#define sci_set_selection_mode \
-	geany_functions->p_sci->sci_set_selection_mode
-#define sci_set_selection_start \
-	geany_functions->p_sci->sci_set_selection_start
-#define sci_set_selection_end \
-	geany_functions->p_sci->sci_set_selection_end
-#define sci_get_text_range \
-	geany_functions->p_sci->sci_get_text_range
-#define sci_get_line \
-	geany_functions->p_sci->sci_get_line
-#define sci_get_line_length \
-	geany_functions->p_sci->sci_get_line_length
-#define sci_get_line_count \
-	geany_functions->p_sci->sci_get_line_count
-#define sci_get_line_is_visible \
-	geany_functions->p_sci->sci_get_line_is_visible
-#define sci_ensure_line_is_visible \
-	geany_functions->p_sci->sci_ensure_line_is_visible
-#define sci_scroll_caret \
-	geany_functions->p_sci->sci_scroll_caret
-#define sci_find_matching_brace \
-	geany_functions->p_sci->sci_find_matching_brace
-#define sci_get_style_at \
-	geany_functions->p_sci->sci_get_style_at
-#define sci_get_char_at \
-	geany_functions->p_sci->sci_get_char_at
-#define sci_get_current_line \
-	geany_functions->p_sci->sci_get_current_line
-#define sci_has_selection \
-	geany_functions->p_sci->sci_has_selection
-#define sci_get_tab_width \
-	geany_functions->p_sci->sci_get_tab_width
-#define sci_indicator_clear \
-	geany_functions->p_sci->sci_indicator_clear
-#define sci_indicator_set \
-	geany_functions->p_sci->sci_indicator_set
-#define sci_get_contents \
-	geany_functions->p_sci->sci_get_contents
-#define sci_get_contents_range \
-	geany_functions->p_sci->sci_get_contents_range
-#define sci_get_selection_contents \
-	geany_functions->p_sci->sci_get_selection_contents
-#define sci_set_font \
-	geany_functions->p_sci->sci_set_font
-#define sci_get_line_end_position \
-	geany_functions->p_sci->sci_get_line_end_position
-#define sci_set_target_start \
-	geany_functions->p_sci->sci_set_target_start
-#define sci_set_target_end \
-	geany_functions->p_sci->sci_set_target_end
-#define sci_replace_target \
-	geany_functions->p_sci->sci_replace_target
-#define sci_set_marker_at_line \
-	geany_functions->p_sci->sci_set_marker_at_line
-#define sci_delete_marker_at_line \
-	geany_functions->p_sci->sci_delete_marker_at_line
-#define sci_is_marker_set_at_line \
-	geany_functions->p_sci->sci_is_marker_set_at_line
-#define sci_goto_line \
-	geany_functions->p_sci->sci_goto_line
-#define sci_find_text \
-	geany_functions->p_sci->sci_find_text
-#define sci_set_line_indentation \
-	geany_functions->p_sci->sci_set_line_indentation
-#define sci_get_line_indentation \
-	geany_functions->p_sci->sci_get_line_indentation
-#define sci_get_lexer \
-	geany_functions->p_sci->sci_get_lexer
-#define templates_get_template_fileheader \
-	geany_functions->p_templates->templates_get_template_fileheader
-#define utils_str_equal \
-	geany_functions->p_utils->utils_str_equal
-#define utils_string_replace_all \
-	geany_functions->p_utils->utils_string_replace_all
-#define utils_get_file_list \
-	geany_functions->p_utils->utils_get_file_list
-#define utils_write_file \
-	geany_functions->p_utils->utils_write_file
-#define utils_get_locale_from_utf8 \
-	geany_functions->p_utils->utils_get_locale_from_utf8
-#define utils_get_utf8_from_locale \
-	geany_functions->p_utils->utils_get_utf8_from_locale
-#define utils_remove_ext_from_filename \
-	geany_functions->p_utils->utils_remove_ext_from_filename
-#define utils_mkdir \
-	geany_functions->p_utils->utils_mkdir
-#define utils_get_setting_boolean \
-	geany_functions->p_utils->utils_get_setting_boolean
-#define utils_get_setting_integer \
-	geany_functions->p_utils->utils_get_setting_integer
-#define utils_get_setting_string \
-	geany_functions->p_utils->utils_get_setting_string
-#define utils_spawn_sync \
-	geany_functions->p_utils->utils_spawn_sync
-#define utils_spawn_async \
-	geany_functions->p_utils->utils_spawn_async
-#define utils_str_casecmp \
-	geany_functions->p_utils->utils_str_casecmp
-#define utils_get_date_time \
-	geany_functions->p_utils->utils_get_date_time
-#define utils_open_browser \
-	geany_functions->p_utils->utils_open_browser
-#define utils_string_replace_first \
-	geany_functions->p_utils->utils_string_replace_first
-#define utils_str_middle_truncate \
-	geany_functions->p_utils->utils_str_middle_truncate
-#define utils_str_remove_chars \
-	geany_functions->p_utils->utils_str_remove_chars
-#define utils_get_file_list_full \
-	geany_functions->p_utils->utils_get_file_list_full
-#define utils_copy_environment \
-	geany_functions->p_utils->utils_copy_environment
-#define utils_find_open_xml_tag \
-	geany_functions->p_utils->utils_find_open_xml_tag
-#define utils_find_open_xml_tag_pos \
-	geany_functions->p_utils->utils_find_open_xml_tag_pos
-#define ui_dialog_vbox_new \
-	geany_functions->p_ui->ui_dialog_vbox_new
-#define ui_frame_new_with_alignment \
-	geany_functions->p_ui->ui_frame_new_with_alignment
-#define ui_set_statusbar \
-	geany_functions->p_ui->ui_set_statusbar
-#define ui_table_add_row \
-	geany_functions->p_ui->ui_table_add_row
-#define ui_path_box_new \
-	geany_functions->p_ui->ui_path_box_new
-#define ui_button_new_with_image \
-	geany_functions->p_ui->ui_button_new_with_image
-#define ui_add_document_sensitive \
-	geany_functions->p_ui->ui_add_document_sensitive
-#define ui_widget_set_tooltip_text \
-	geany_functions->p_ui->ui_widget_set_tooltip_text
-#define ui_image_menu_item_new \
-	geany_functions->p_ui->ui_image_menu_item_new
-#define ui_lookup_widget \
-	geany_functions->p_ui->ui_lookup_widget
-#define ui_progress_bar_start \
-	geany_functions->p_ui->ui_progress_bar_start
-#define ui_progress_bar_stop \
-	geany_functions->p_ui->ui_progress_bar_stop
-#define ui_entry_add_clear_icon \
-	geany_functions->p_ui->ui_entry_add_clear_icon
-#define ui_menu_add_document_items \
-	geany_functions->p_ui->ui_menu_add_document_items
-#define ui_widget_modify_font_from_string \
-	geany_functions->p_ui->ui_widget_modify_font_from_string
-#define ui_is_keyval_enter_or_return \
-	geany_functions->p_ui->ui_is_keyval_enter_or_return
-#define ui_get_gtk_settings_integer \
-	geany_functions->p_ui->ui_get_gtk_settings_integer
-#define ui_combo_box_add_to_history \
-	geany_functions->p_ui->ui_combo_box_add_to_history
-#define ui_menu_add_document_items_sorted \
-	geany_functions->p_ui->ui_menu_add_document_items_sorted
-#define ui_lookup_stock_label \
-	geany_functions->p_ui->ui_lookup_stock_label
-#define ui_tree_view_set_tooltip_text_column \
-	geany_functions->p_ui->ui_tree_view_set_tooltip_text_column
-#define dialogs_show_question \
-	geany_functions->p_dialogs->dialogs_show_question
-#define dialogs_show_msgbox \
-	geany_functions->p_dialogs->dialogs_show_msgbox
-#define dialogs_show_save_as \
-	geany_functions->p_dialogs->dialogs_show_save_as
-#define dialogs_show_input_numeric \
-	geany_functions->p_dialogs->dialogs_show_input_numeric
-#define dialogs_show_input \
-	geany_functions->p_dialogs->dialogs_show_input
-#define msgwin_status_add \
-	geany_functions->p_msgwin->msgwin_status_add
-#define msgwin_compiler_add \
-	geany_functions->p_msgwin->msgwin_compiler_add
-#define msgwin_msg_add \
-	geany_functions->p_msgwin->msgwin_msg_add
-#define msgwin_clear_tab \
-	geany_functions->p_msgwin->msgwin_clear_tab
-#define msgwin_switch_tab \
-	geany_functions->p_msgwin->msgwin_switch_tab
-#define msgwin_set_messages_dir \
-	geany_functions->p_msgwin->msgwin_set_messages_dir
-#define encodings_convert_to_utf8 \
-	geany_functions->p_encodings->encodings_convert_to_utf8
-#define encodings_convert_to_utf8_from_charset \
-	geany_functions->p_encodings->encodings_convert_to_utf8_from_charset
-#define encodings_get_charset_from_index \
-	geany_functions->p_encodings->encodings_get_charset_from_index
-#define keybindings_send_command \
-	geany_functions->p_keybindings->keybindings_send_command
-#define keybindings_set_item \
-	geany_functions->p_keybindings->keybindings_set_item
-#define keybindings_get_item \
-	geany_functions->p_keybindings->keybindings_get_item
-#define keybindings_get_modifiers \
-	geany_functions->p_keybindings->keybindings_get_modifiers
-#define tm_get_real_path \
-	geany_functions->p_tm->tm_get_real_path
-#define tm_source_file_new \
-	geany_functions->p_tm->tm_source_file_new
-#define tm_source_file_free \
-	geany_functions->p_tm->tm_source_file_free
-#define tm_workspace_add_source_file \
-	geany_functions->p_tm->tm_workspace_add_source_file
-#define tm_workspace_remove_source_file \
-	geany_functions->p_tm->tm_workspace_remove_source_file
-#define tm_workspace_add_source_files \
-	geany_functions->p_tm->tm_workspace_add_source_files
-#define tm_workspace_remove_source_files \
-	geany_functions->p_tm->tm_workspace_remove_source_files
-#define search_show_find_in_files_dialog \
-	geany_functions->p_search->search_show_find_in_files_dialog
-#define highlighting_get_style \
-	geany_functions->p_highlighting->highlighting_get_style
-#define highlighting_set_styles \
-	geany_functions->p_highlighting->highlighting_set_styles
-#define highlighting_is_string_style \
-	geany_functions->p_highlighting->highlighting_is_string_style
-#define highlighting_is_comment_style \
-	geany_functions->p_highlighting->highlighting_is_comment_style
-#define highlighting_is_code_style \
-	geany_functions->p_highlighting->highlighting_is_code_style
-#define filetypes_detect_from_file \
-	geany_functions->p_filetypes->filetypes_detect_from_file
-#define filetypes_lookup_by_name \
-	geany_functions->p_filetypes->filetypes_lookup_by_name
-#define filetypes_index \
-	geany_functions->p_filetypes->filetypes_index
-#define filetypes_get_display_name \
-	geany_functions->p_filetypes->filetypes_get_display_name
-#define filetypes_get_sorted_by_name \
-	geany_functions->p_filetypes->filetypes_get_sorted_by_name
-#define navqueue_goto_line \
-	geany_functions->p_navqueue->navqueue_goto_line
-#define main_reload_configuration \
-	geany_functions->p_main->main_reload_configuration
-#define main_locale_init \
-	geany_functions->p_main->main_locale_init
-#define main_is_realized \
-	geany_functions->p_main->main_is_realized
-#define stash_group_new \
-	geany_functions->p_stash->stash_group_new
-#define stash_group_add_boolean \
-	geany_functions->p_stash->stash_group_add_boolean
-#define stash_group_add_integer \
-	geany_functions->p_stash->stash_group_add_integer
-#define stash_group_add_string \
-	geany_functions->p_stash->stash_group_add_string
-#define stash_group_add_string_vector \
-	geany_functions->p_stash->stash_group_add_string_vector
-#define stash_group_load_from_key_file \
-	geany_functions->p_stash->stash_group_load_from_key_file
-#define stash_group_save_to_key_file \
-	geany_functions->p_stash->stash_group_save_to_key_file
-#define stash_group_free \
-	geany_functions->p_stash->stash_group_free
-#define stash_group_load_from_file \
-	geany_functions->p_stash->stash_group_load_from_file
-#define stash_group_save_to_file \
-	geany_functions->p_stash->stash_group_save_to_file
-#define stash_group_add_toggle_button \
-	geany_functions->p_stash->stash_group_add_toggle_button
-#define stash_group_add_radio_buttons \
-	geany_functions->p_stash->stash_group_add_radio_buttons
-#define stash_group_add_spin_button_integer \
-	geany_functions->p_stash->stash_group_add_spin_button_integer
-#define stash_group_add_combo_box \
-	geany_functions->p_stash->stash_group_add_combo_box
-#define stash_group_add_combo_box_entry \
-	geany_functions->p_stash->stash_group_add_combo_box_entry
-#define stash_group_add_entry \
-	geany_functions->p_stash->stash_group_add_entry
-#define stash_group_add_widget_property \
-	geany_functions->p_stash->stash_group_add_widget_property
-#define stash_group_display \
-	geany_functions->p_stash->stash_group_display
-#define stash_group_update \
-	geany_functions->p_stash->stash_group_update
-#define stash_group_free_settings \
-	geany_functions->p_stash->stash_group_free_settings
-#define symbols_get_context_separator \
-	geany_functions->p_symbols->symbols_get_context_separator
-#define build_activate_menu_item \
-	geany_functions->p_build->build_activate_menu_item
-#define build_get_current_menu_item \
-	geany_functions->p_build->build_get_current_menu_item
-#define build_remove_menu_item \
-	geany_functions->p_build->build_remove_menu_item
-#define build_set_menu_item \
-	geany_functions->p_build->build_set_menu_item
-#define build_get_group_count \
-	geany_functions->p_build->build_get_group_count
-#define project_write_config \
-	geany_functions->p_project->project_write_config
+/* This remains so that older plugins that contain a `GeanyFunctions *geany_functions;`
+ * variable in their plugin - as was previously required - will still compile
+ * without changes.  */
+typedef struct GeanyFunctionsUndefined GeanyFunctions;
 
-#endif
+#endif /* GEANY_FUNCTIONS */


Modified: plugins/geanyplugin.h
15 lines changed, 12 insertions(+), 3 deletions(-)
===================================================================
@@ -28,27 +28,36 @@
 #ifndef GEANY_PLUGIN_H
 #define GEANY_PLUGIN_H 1
 
-/* Note: only include headers that define types or macros, not just functions */
+#ifndef HAVE_PLUGINS
+# define HAVE_PLUGINS 1
+#endif
+
+/* Only include public headers here */
 #include "app.h"
+#include "dialogs.h"
 #include "document.h"
 #include "editor.h"
 #include "encodings.h"
 #include "filetypes.h"
 #include "geany.h"
+#include "geanyfunctions.h"
 #include "highlighting.h"
 #include "keybindings.h"
+#include "main.h"
 #include "msgwindow.h"
+#include "navqueue.h"
 #include "plugindata.h"
+#include "pluginutils.h"
 #include "prefs.h"
 #include "project.h"
+#include "sciwrappers.h"
 #include "search.h"
 #include "stash.h"
 #include "support.h"
+#include "symbols.h"
 #include "templates.h"
 #include "toolbar.h"
 #include "ui_utils.h"
 #include "utils.h"
 
-#include "geanyfunctions.h"
-
 #endif


Modified: plugins/genapi.py
98 lines changed, 0 insertions(+), 98 deletions(-)
===================================================================
@@ -1,98 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-#       genapi.py - this file is part of Geany, a fast and lightweight IDE
-#
-#       Copyright 2008-2011 Nick Treleaven <nick.treleaven<at>btinternet.com>
-#       Copyright 2008-2011 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
-#
-#       This program is free software; you can redistribute it and/or modify
-#       it under the terms of the GNU General Public License as published by
-#       the Free Software Foundation; either version 2 of the License, or
-#       (at your option) any later version.
-#
-#       This program is distributed in the hope that it will be useful,
-#       but WITHOUT ANY WARRANTY; without even the implied warranty of
-#       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#       GNU General Public License for more details.
-#
-#       You should have received a copy of the GNU General Public License
-#       along with this program; if not, write to the Free Software
-#       Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# $(Id)
-
-r"""
-Creates macros for each plugin API function pointer, e.g.:
-
-#define plugin_add_toolbar_item \
-    geany_functions->p_plugin->plugin_add_toolbar_item
-"""
-
-
-import re
-import sys
-
-
-def get_function_names():
-    names = []
-    filep = open('../src/plugins.c')
-    while 1:
-        line = filep.readline()
-        if line == "":
-            break
-        match = re.match("^\t&([a-z][a-z0-9_]+)", line)
-        if match:
-            symbol = match.group(1)
-            if not symbol.endswith('_funcs'):
-                names.append(symbol)
-    filep.close()
-    return names
-
-
-def get_api_tuple(source):
-    match = re.match("^([a-z]+)_([a-z][a-z0-9_]+)$", source)
-    return 'p_' + match.group(1), match.group(2)
-
-
-header = \
-r'''/* This file is generated automatically by genapi.py - do not edit. */
-
-/** @file %s @ref geany_functions wrappers.
- * This allows the use of normal API function names in plugins by defining macros.
- *
- * E.g.:@code
- * #define plugin_add_toolbar_item \
- * 	geany_functions->p_plugin->plugin_add_toolbar_item @endcode
- *
- * You need to declare the @ref geany_functions symbol yourself.
- *
- * Note: This must be included after all other API headers to prevent conflicts with
- * other header's function prototypes - this is done for you when using geanyplugin.h.
- */
-
-#ifndef GEANY_FUNCTIONS_H
-#define GEANY_FUNCTIONS_H
-
-'''
-
-if __name__ == "__main__":
-    outfile = 'geanyfunctions.h'
-
-    fnames = get_function_names()
-    if not fnames:
-        sys.exit("No function names read!")
-
-    f = open(outfile, 'w')
-    f.write(header % (outfile))
-
-    for fname in fnames:
-        ptr, name = get_api_tuple(fname)
-        # note: name no longer needed
-        f.write('#define %s \\\n\tgeany_functions->%s->%s\n' % (fname, ptr, fname))
-
-    f.write('\n#endif\n')
-    f.close()
-
-    if not '-q' in sys.argv:
-        sys.stdout.write('Generated %s\n' % outfile)


Modified: src/Makefile.am
6 lines changed, 6 insertions(+), 0 deletions(-)
===================================================================
@@ -67,6 +67,7 @@ geany_includedir = $(includedir)/geany
 geany_include_HEADERS = \
 	app.h \
 	build.h \
+	dialogs.h \
 	document.h \
 	editor.h \
 	encodings.h \
@@ -75,13 +76,18 @@ geany_include_HEADERS = \
 	gtkcompat.h \
 	highlighting.h \
 	keybindings.h \
+	main.h \
 	msgwindow.h \
+	navqueue.h \
 	plugindata.h \
+	pluginutils.h \
 	prefs.h \
 	project.h \
+	sciwrappers.h \
 	search.h \
 	stash.h \
 	support.h \
+	symbols.h \
 	templates.h \
 	toolbar.h \
 	ui_utils.h \


Modified: src/plugindata.h
490 lines changed, 0 insertions(+), 490 deletions(-)
===================================================================
@@ -265,496 +265,6 @@ void plugin_cleanup(void);
 
 #endif
 
-
-/** This contains pointers to functions owned by Geany for plugins to use.
- * Functions from the core can be appended when needed by plugin authors, but may
- * require some changes. */
-typedef struct GeanyFunctions
-{
-	struct DocumentFuncs		*p_document;		/**< See document.h */
-	struct SciFuncs				*p_sci;				/**< See sciwrappers.h */
-	struct TemplateFuncs		*p_templates;		/**< See templates.h */
-	struct UtilsFuncs			*p_utils;			/**< See utils.h */
-	struct UIUtilsFuncs			*p_ui;				/**< See ui_utils.h */
-	/** @deprecated Use ui_lookup_widget() instead. */
-	struct SupportFuncs			*p_support;
-	struct DialogFuncs			*p_dialogs;			/**< See dialogs.h */
-	/** @deprecated Use @ref GeanyFunctions::p_msgwin instead. */
-	struct MsgWinFuncs			*p_msgwindow;
-	struct EncodingFuncs		*p_encodings;		/**< See encodings.h */
-	struct KeybindingFuncs		*p_keybindings;		/**< See keybindings.h */
-	struct TagManagerFuncs		*p_tm;				/**< See tagmanager/src */
-	struct SearchFuncs			*p_search;			/**< See search.h */
-	struct HighlightingFuncs	*p_highlighting;	/**< See highlighting.h */
-	struct FiletypeFuncs		*p_filetypes;		/**< See filetypes.h */
-	struct NavQueueFuncs		*p_navqueue;		/**< See navqueue.h */
-	struct EditorFuncs			*p_editor;			/**< See editor.h */
-	struct MainFuncs			*p_main;			/**< See main.h */
-	struct PluginFuncs			*p_plugin;			/**< See pluginutils.c */
-	struct ScintillaFuncs		*p_scintilla;		/**< See ScintillaFuncs */
-	struct MsgWinFuncs			*p_msgwin;			/**< See msgwindow.h */
-	struct StashFuncs			*p_stash;			/**< See stash.h */
-	struct SymbolsFuncs			*p_symbols;			/**< See symbols.h */
-	struct BuildFuncs			*p_build;			/**< See build.h */
-	struct ProjectFuncs			*p_project;			/**< See project.h */
-}
-GeanyFunctions;
-
-
-/* For more information about these functions, see the main source code.
- * E.g. for p_document->new_file(), see document_new_file() in document.c. */
-
-/* See document.h */
-typedef struct DocumentFuncs
-{
-	struct GeanyDocument*	(*document_new_file) (const gchar *utf8_filename, struct GeanyFiletype *ft,
-			const gchar *text);
-	struct GeanyDocument*	(*document_get_current) (void);
-	struct GeanyDocument*	(*document_get_from_page) (guint page_num);
-	struct GeanyDocument*	(*document_find_by_filename) (const gchar *utf8_filename);
-	struct GeanyDocument*	(*document_find_by_real_path) (const gchar *realname);
-	gboolean				(*document_save_file) (struct GeanyDocument *doc, gboolean force);
-	struct GeanyDocument*	(*document_open_file) (const gchar *locale_filename, gboolean readonly,
-			struct GeanyFiletype *ft, const gchar *forced_enc);
-	void		(*document_open_files) (const GSList *filenames, gboolean readonly,
-			struct GeanyFiletype *ft, const gchar *forced_enc);
-	gboolean	(*document_remove_page) (guint page_num);
-	gboolean	(*document_reload_force) (struct GeanyDocument *doc, const gchar *forced_enc);
-	void		(*document_set_encoding) (struct GeanyDocument *doc, const gchar *new_encoding);
-	void		(*document_set_text_changed) (struct GeanyDocument *doc, gboolean changed);
-	void		(*document_set_filetype) (struct GeanyDocument *doc, struct GeanyFiletype *type);
-	gboolean	(*document_close) (struct GeanyDocument *doc);
-	struct GeanyDocument*	(*document_index)(gint idx);
-	gboolean	(*document_save_file_as) (struct GeanyDocument *doc, const gchar *utf8_fname);
-	void		(*document_rename_file) (struct GeanyDocument *doc, const gchar *new_filename);
-	const GdkColor*	(*document_get_status_color) (struct GeanyDocument *doc);
-	gchar*		(*document_get_basename_for_display) (struct GeanyDocument *doc, gint length);
-	gint		(*document_get_notebook_page) (struct GeanyDocument *doc);
-	gint		(*document_compare_by_display_name) (gconstpointer a, gconstpointer b);
-	gint		(*document_compare_by_tab_order) (gconstpointer a, gconstpointer b);
-	gint		(*document_compare_by_tab_order_reverse) (gconstpointer a, gconstpointer b);
-	GeanyDocument*	(*document_find_by_id)(guint id);
-}
-DocumentFuncs;
-
-
-struct _ScintillaObject;
-
-/** See http://scintilla.org for the full documentation. */
-typedef struct ScintillaFuncs
-{
-	/** Send Scintilla a message. */
-	long int	(*scintilla_send_message) (struct _ScintillaObject *sci, unsigned int iMessage,
-			long unsigned int wParam, long int lParam);
-	/** Create a new ScintillaObject widget. */
-	GtkWidget*	(*scintilla_new)(void);
-}
-ScintillaFuncs;
-
-
-/** Wrapper functions for Scintilla messages.
- * See sciwrappers.h for the list of functions. */
-typedef struct SciFuncs
-{
-	/** @deprecated Use @c scintilla_send_message() instead. */
-	long int (*sci_send_message) (struct _ScintillaObject *sci, unsigned int iMessage,
-			long unsigned int wParam, long int lParam);
-	void	(*sci_send_command) (struct _ScintillaObject *sci, gint cmd);
-
-	void	(*sci_start_undo_action) (struct _ScintillaObject *sci);
-	void	(*sci_end_undo_action) (struct _ScintillaObject *sci);
-	void	(*sci_set_text) (struct _ScintillaObject *sci, const gchar *text);
-	void	(*sci_insert_text) (struct _ScintillaObject *sci, gint pos, const gchar *text);
-	void	(*sci_get_text) (struct _ScintillaObject *sci, gint len, gchar *text);
-	gint	(*sci_get_length) (struct _ScintillaObject *sci);
-	gint	(*sci_get_current_position) (struct _ScintillaObject *sci);
-	void	(*sci_set_current_position) (struct _ScintillaObject *sci, gint position,
-			 gboolean scroll_to_caret);
-	gint	(*sci_get_col_from_position) (struct _ScintillaObject *sci, gint position);
-	gint	(*sci_get_line_from_position) (struct _ScintillaObject *sci, gint position);
-	gint	(*sci_get_position_from_line) (struct _ScintillaObject *sci, gint line);
-	void	(*sci_replace_sel) (struct _ScintillaObject *sci, const gchar *text);
-	void	(*sci_get_selected_text) (struct _ScintillaObject *sci, gchar *text);
-	gint	(*sci_get_selected_text_length) (struct _ScintillaObject *sci);
-	gint	(*sci_get_selection_start) (struct _ScintillaObject *sci);
-	gint	(*sci_get_selection_end) (struct _ScintillaObject *sci);
-	gint	(*sci_get_selection_mode) (struct _ScintillaObject *sci);
-	void	(*sci_set_selection_mode) (struct _ScintillaObject *sci, gint mode);
-	void	(*sci_set_selection_start) (struct _ScintillaObject *sci, gint position);
-	void	(*sci_set_selection_end) (struct _ScintillaObject *sci, gint position);
-	void	(*sci_get_text_range) (struct _ScintillaObject *sci, gint start, gint end, gchar *text);
-	gchar*	(*sci_get_line) (struct _ScintillaObject *sci, gint line_num);
-	gint	(*sci_get_line_length) (struct _ScintillaObject *sci, gint line);
-	gint	(*sci_get_line_count) (struct _ScintillaObject *sci);
-	gboolean (*sci_get_line_is_visible) (struct _ScintillaObject *sci, gint line);
-	void	(*sci_ensure_line_is_visible) (struct _ScintillaObject *sci, gint line);
-	void	(*sci_scroll_caret) (struct _ScintillaObject *sci);
-	gint	(*sci_find_matching_brace) (struct _ScintillaObject *sci, gint pos);
-	gint	(*sci_get_style_at) (struct _ScintillaObject *sci, gint position);
-	gchar	(*sci_get_char_at) (struct _ScintillaObject *sci, gint pos);
-	gint	(*sci_get_current_line) (struct _ScintillaObject *sci);
-	gboolean (*sci_has_selection) (struct _ScintillaObject *sci);
-	gint	(*sci_get_tab_width) (struct _ScintillaObject *sci);
-	void	(*sci_indicator_clear) (struct _ScintillaObject *sci, gint start, gint end);
-	void	(*sci_indicator_set) (struct _ScintillaObject *sci, gint indic);
-	gchar*	(*sci_get_contents) (struct _ScintillaObject *sci, gint len);
-	gchar*	(*sci_get_contents_range) (struct _ScintillaObject *sci, gint start, gint end);
-	gchar*	(*sci_get_selection_contents) (struct _ScintillaObject *sci);
-	void	(*sci_set_font) (struct _ScintillaObject *sci, gint style, const gchar *font, gint size);
-	gint	(*sci_get_line_end_position) (struct _ScintillaObject *sci, gint line);
-	void	(*sci_set_target_start) (struct _ScintillaObject *sci, gint start);
-	void	(*sci_set_target_end) (struct _ScintillaObject *sci, gint end);
-	gint	(*sci_replace_target) (struct _ScintillaObject *sci, const gchar *text, gboolean regex);
-	void	(*sci_set_marker_at_line) (struct _ScintillaObject *sci, gint line_number, gint marker);
-	void	(*sci_delete_marker_at_line) (struct _ScintillaObject *sci, gint line_number, gint marker);
-	gboolean (*sci_is_marker_set_at_line) (struct _ScintillaObject *sci, gint line, gint marker);
-	void 	(*sci_goto_line) (struct _ScintillaObject *sci, gint line, gboolean unfold);
-	gint	(*sci_find_text) (struct _ScintillaObject *sci, gint flags, struct Sci_TextToFind *ttf);
-	void	(*sci_set_line_indentation) (struct _ScintillaObject *sci, gint line, gint indent);
-	gint	(*sci_get_line_indentation) (struct _ScintillaObject *sci, gint line);
-	gint	(*sci_get_lexer) (struct _ScintillaObject *sci);
-}
-SciFuncs;
-
-
-/* See templates.h */
-typedef struct TemplateFuncs
-{
-	gchar*		(*templates_get_template_fileheader) (gint filetype_idx, const gchar *fname);
-}
-TemplateFuncs;
-
-
-/* See utils.h */
-typedef struct UtilsFuncs
-{
-	gboolean	(*utils_str_equal) (const gchar *a, const gchar *b);
-	guint		(*utils_string_replace_all) (GString *haystack, const gchar *needle,
-				 const gchar *replacement);
-	GSList*		(*utils_get_file_list) (const gchar *path, guint *length, GError **error);
-	gint		(*utils_write_file) (const gchar *filename, const gchar *text);
-	gchar*		(*utils_get_locale_from_utf8) (const gchar *utf8_text);
-	gchar*		(*utils_get_utf8_from_locale) (const gchar *locale_text);
-	gchar*		(*utils_remove_ext_from_filename) (const gchar *filename);
-	gint		(*utils_mkdir) (const gchar *path, gboolean create_parent_dirs);
-	gboolean	(*utils_get_setting_boolean) (GKeyFile *config, const gchar *section, const gchar *key,
-				 const gboolean default_value);
-	gint		(*utils_get_setting_integer) (GKeyFile *config, const gchar *section, const gchar *key,
-				 const gint default_value);
-	gchar*		(*utils_get_setting_string) (GKeyFile *config, const gchar *section, const gchar *key,
-				 const gchar *default_value);
-	gboolean	(*utils_spawn_sync) (const gchar *dir, gchar **argv, gchar **env, GSpawnFlags flags,
-				 GSpawnChildSetupFunc child_setup, gpointer user_data, gchar **std_out,
-				 gchar **std_err, gint *exit_status, GError **error);
-	gboolean	(*utils_spawn_async) (const gchar *dir, gchar **argv, gchar **env, GSpawnFlags flags,
-				 GSpawnChildSetupFunc child_setup, gpointer user_data, GPid *child_pid,
-				 GError **error);
-	gint		(*utils_str_casecmp) (const gchar *s1, const gchar *s2);
-	gchar*		(*utils_get_date_time) (const gchar *format, time_t *time_to_use);
-	void		(*utils_open_browser) (const gchar *uri);
-	guint		(*utils_string_replace_first) (GString *haystack, const gchar *needle,
-				 const gchar *replace);
-	gchar*		(*utils_str_middle_truncate) (const gchar *string, guint truncate_length);
-	gchar*		(*utils_str_remove_chars) (gchar *string, const gchar *chars);
-	GSList*		(*utils_get_file_list_full)(const gchar *path, gboolean full_path, gboolean sort,
-				GError **error);
-	gchar**		(*utils_copy_environment)(const gchar **exclude_vars, const gchar *first_varname, ...);
-	gchar*		(*utils_find_open_xml_tag) (const gchar sel[], gint size);
-	const gchar*	(*utils_find_open_xml_tag_pos) (const gchar sel[], gint size);
-}
-UtilsFuncs;
-
-
-/* See main.h */
-typedef struct MainFuncs
-{
-	void		(*main_reload_configuration) (void);
-	void		(*main_locale_init) (const gchar *locale_dir, const gchar *package);
-	gboolean	(*main_is_realized) (void);
-}
-MainFuncs;
-
-
-/* See ui_utils.h */
-typedef struct UIUtilsFuncs
-{
-	GtkWidget*	(*ui_dialog_vbox_new) (GtkDialog *dialog);
-	GtkWidget*	(*ui_frame_new_with_alignment) (const gchar *label_text, GtkWidget **alignment);
-	void		(*ui_set_statusbar) (gboolean log, const gchar *format, ...) G_GNUC_PRINTF (2, 3);
-	void		(*ui_table_add_row) (GtkTable *table, gint row, ...) G_GNUC_NULL_TERMINATED;
-	GtkWidget*	(*ui_path_box_new) (const gchar *title, GtkFileChooserAction action, GtkEntry *entry);
-	GtkWidget*	(*ui_button_new_with_image) (const gchar *stock_id, const gchar *text);
-	void		(*ui_add_document_sensitive) (GtkWidget *widget);
-	void		(*ui_widget_set_tooltip_text) (GtkWidget *widget, const gchar *text);
-	GtkWidget*	(*ui_image_menu_item_new) (const gchar *stock_id, const gchar *label);
-	GtkWidget*	(*ui_lookup_widget) (GtkWidget *widget, const gchar *widget_name);
-	void		(*ui_progress_bar_start) (const gchar *text);
-	void		(*ui_progress_bar_stop) (void);
-	void		(*ui_entry_add_clear_icon) (GtkEntry *entry);
-	void		(*ui_menu_add_document_items) (GtkMenu *menu, struct GeanyDocument *active,
-				GCallback callback);
-	void		(*ui_widget_modify_font_from_string) (GtkWidget *widget, const gchar *str);
-	gboolean	(*ui_is_keyval_enter_or_return) (guint keyval);
-	gint		(*ui_get_gtk_settings_integer) (const gchar *property_name, gint default_value);
-	void		(*ui_combo_box_add_to_history) (GtkComboBoxText *combo_entry,
-				const gchar *text, gint history_len);
-	void		(*ui_menu_add_document_items_sorted) (GtkMenu *menu, struct GeanyDocument *active,
-				GCallback callback, GCompareFunc compare_func);
-	const gchar* (*ui_lookup_stock_label)(const gchar *stock_id);
-	void		(*ui_tree_view_set_tooltip_text_column) (GtkTreeView *tree_view, gint column);
-}
-UIUtilsFuncs;
-
-
-/* See dialogs.h */
-typedef struct DialogFuncs
-{
-	gboolean	(*dialogs_show_question) (const gchar *text, ...) G_GNUC_PRINTF (1, 2);
-	void		(*dialogs_show_msgbox) (GtkMessageType type, const gchar *text, ...) G_GNUC_PRINTF (2, 3);
-	gboolean	(*dialogs_show_save_as) (void);
-	gboolean	(*dialogs_show_input_numeric) (const gchar *title, const gchar *label_text,
-				 gdouble *value, gdouble min, gdouble max, gdouble step);
-	gchar*		(*dialogs_show_input)(const gchar *title, GtkWindow *parent, const gchar *label_text,
-				const gchar *default_text);
-}
-DialogFuncs;
-
-
-/* @deprecated Use ui_lookup_widget() instead. */
-typedef struct SupportFuncs
-{
-	GtkWidget*	(*support_lookup_widget) (GtkWidget *widget, const gchar *widget_name);
-}
-SupportFuncs;
-
-
-/* See msgwindow.h */
-typedef struct MsgWinFuncs
-{
-	/* status_add() does not set the status bar - use ui->set_statusbar() instead. */
-	void		(*msgwin_status_add) (const gchar *format, ...) G_GNUC_PRINTF (1, 2);
-	void		(*msgwin_compiler_add) (gint msg_color, const gchar *format, ...) G_GNUC_PRINTF (2, 3);
-	void		(*msgwin_msg_add) (gint msg_color, gint line, struct GeanyDocument *doc,
-				 const gchar *format, ...) G_GNUC_PRINTF (4, 5);
-	void		(*msgwin_clear_tab) (gint tabnum);
-	void		(*msgwin_switch_tab) (gint tabnum, gboolean show);
-	void		(*msgwin_set_messages_dir) (const gchar *messages_dir);
-}
-MsgWinFuncs;
-
-
-/* See encodings.h */
-typedef struct EncodingFuncs
-{
-	gchar*			(*encodings_convert_to_utf8) (const gchar *buffer, gssize size, gchar **used_encoding);
-	gchar* 			(*encodings_convert_to_utf8_from_charset) (const gchar *buffer, gssize size,
-													 const gchar *charset, gboolean fast);
-	const gchar*	(*encodings_get_charset_from_index) (gint idx);
-}
-EncodingFuncs;
-
-
-struct GeanyKeyGroup;
-/* avoid including keybindings.h */
-typedef void (*_GeanyKeyCallback) (guint key_id);
-
-/* See keybindings.h */
-typedef struct KeybindingFuncs
-{
-	void		(*keybindings_send_command) (guint group_id, guint key_id);
-	struct GeanyKeyBinding* (*keybindings_set_item) (struct GeanyKeyGroup *group, gsize key_id,
-					_GeanyKeyCallback callback, guint key, GdkModifierType mod,
-					const gchar *name, const gchar *label, GtkWidget *menu_item);
-	struct GeanyKeyBinding* (*keybindings_get_item)(struct GeanyKeyGroup *group, gsize key_id);
-	GdkModifierType (*keybindings_get_modifiers)(GdkModifierType mods);
-}
-KeybindingFuncs;
-
-
-/* See highlighting.h */
-typedef struct HighlightingFuncs
-{
-	const struct GeanyLexerStyle* (*highlighting_get_style) (gint ft_id, gint style_id);
-	void		(*highlighting_set_styles) (struct _ScintillaObject *sci, struct GeanyFiletype *ft);
-	gboolean	(*highlighting_is_string_style) (gint lexer, gint style);
-	gboolean	(*highlighting_is_comment_style) (gint lexer, gint style);
-	gboolean	(*highlighting_is_code_style) (gint lexer, gint style);
-}
-HighlightingFuncs;
-
-
-/* See filetypes.h */
-typedef struct FiletypeFuncs
-{
-	GeanyFiletype*	(*filetypes_detect_from_file) (const gchar *utf8_filename);
-	GeanyFiletype*	(*filetypes_lookup_by_name) (const gchar *name);
-	GeanyFiletype*	(*filetypes_index)(gint idx);
-	const gchar*	(*filetypes_get_display_name)(GeanyFiletype *ft);
-	const GSList*	(*filetypes_get_sorted_by_name)(void);
-	/* Remember to convert any filetype_id arguments to GeanyFiletype pointers in any
-	 * appended functions */
-}
-FiletypeFuncs;
-
-
-/* See search.h */
-typedef struct SearchFuncs
-{
-	void		(*search_show_find_in_files_dialog) (const gchar *dir);
-}
-SearchFuncs;
-
-
-/* See tagmanager/include */
-typedef struct TagManagerFuncs
-{
-	gchar*			(*tm_get_real_path) (const gchar *file_name);
-	TMSourceFile*	(*tm_source_file_new) (const char *file_name, const char *name);
-	void			(*tm_source_file_free) (TMSourceFile *source_file);
-	void			(*tm_workspace_add_source_file) (TMSourceFile *source_file);
-	void			(*tm_workspace_remove_source_file) (TMSourceFile *source_file);
-	void			(*tm_workspace_add_source_files) (GPtrArray *source_files);
-	void			(*tm_workspace_remove_source_files) (GPtrArray *source_files);
-}
-TagManagerFuncs;
-
-
-/* See navqueue.h */
-typedef struct NavQueueFuncs
-{
-	gboolean		(*navqueue_goto_line) (struct GeanyDocument *old_doc, struct GeanyDocument *new_doc,
-					 gint line);
-}
-NavQueueFuncs;
-
-
-struct GeanyEditor;
-
-/* See editor.h */
-typedef struct EditorFuncs
-{
-	const struct GeanyIndentPrefs* (*editor_get_indent_prefs)(struct GeanyEditor *editor);
-	struct _ScintillaObject* (*editor_create_widget)(struct GeanyEditor *editor);
-
-	void	(*editor_indicator_set_on_range) (struct GeanyEditor *editor, gint indic, gint start, gint end);
-	void	(*editor_indicator_set_on_line) (struct GeanyEditor *editor, gint indic, gint line);
-	void	(*editor_indicator_clear) (struct GeanyEditor *editor, gint indic);
-
-	void	(*editor_set_indent_type)(struct GeanyEditor *editor, GeanyIndentType type);
-	gchar*	(*editor_get_word_at_pos) (struct GeanyEditor *editor, gint pos, const gchar *wordchars);
-
-	const gchar*	(*editor_get_eol_char_name) (struct GeanyEditor *editor);
-	gint			(*editor_get_eol_char_len) (struct GeanyEditor *editor);
-	const gchar*	(*editor_get_eol_char) (struct GeanyEditor *editor);
-
-	void	(*editor_insert_text_block) (struct GeanyEditor *editor, const gchar *text,
-			 gint insert_pos, gint cursor_index, gint newline_indent_size,
-			 gboolean replace_newlines);
-
-	gint	(*editor_get_eol_char_mode) (struct GeanyEditor *editor);
-	gboolean (*editor_goto_pos) (struct GeanyEditor *editor, gint pos, gboolean mark);
-
-	const gchar* (*editor_find_snippet) (struct GeanyEditor *editor, const gchar *snippet_name);
-	void	(*editor_insert_snippet) (struct GeanyEditor *editor, gint pos, const gchar *snippet);
-}
-EditorFuncs;
-
-
-/* avoid including keybindings.h */
-typedef gboolean (*_GeanyKeyGroupCallback) (guint key_id);
-
-/* See pluginutils.c */
-typedef struct PluginFuncs
-{
-	void	(*plugin_add_toolbar_item)(GeanyPlugin *plugin, GtkToolItem *item);
-	void	(*plugin_module_make_resident) (GeanyPlugin *plugin);
-	void	(*plugin_signal_connect) (GeanyPlugin *plugin,
-		GObject *object, const gchar *signal_name, gboolean after,
-		GCallback callback, gpointer user_data);
-	struct GeanyKeyGroup* (*plugin_set_key_group)(GeanyPlugin *plugin,
-		const gchar *section_name, gsize count, _GeanyKeyGroupCallback callback);
-	void	(*plugin_show_configure)(GeanyPlugin *plugin);
-	guint	(*plugin_timeout_add) (GeanyPlugin *plugin, guint interval, GSourceFunc function,
-		gpointer data);
-	guint	(*plugin_timeout_add_seconds) (GeanyPlugin *plugin, guint interval,
-		GSourceFunc function, gpointer data);
-	guint	(*plugin_idle_add) (GeanyPlugin *plugin, GSourceFunc function, gpointer data);
-	void	(*plugin_builder_connect_signals) (GeanyPlugin *plugin, GtkBuilder *builder, gpointer user_data);
-}
-PluginFuncs;
-
-
-struct StashGroup;
-
-/* See stash.h */
-typedef struct StashFuncs
-{
-	struct StashGroup *(*stash_group_new)(const gchar *name);
-	void (*stash_group_add_boolean)(struct StashGroup *group, gboolean *setting,
-			const gchar *key_name, gboolean default_value);
-	void (*stash_group_add_integer)(struct StashGroup *group, gint *setting,
-			const gchar *key_name, gint default_value);
-	void (*stash_group_add_string)(struct StashGroup *group, gchar **setting,
-			const gchar *key_name, const gchar *default_value);
-	void (*stash_group_add_string_vector)(struct StashGroup *group, gchar ***setting,
-			const gchar *key_name, const gchar **default_value);
-	void (*stash_group_load_from_key_file)(struct StashGroup *group, GKeyFile *keyfile);
-	void (*stash_group_save_to_key_file)(struct StashGroup *group, GKeyFile *keyfile);
-	void (*stash_group_free)(struct StashGroup *group);
-	gboolean (*stash_group_load_from_file)(struct StashGroup *group, const gchar *filename);
-	gint (*stash_group_save_to_file)(struct StashGroup *group, const gchar *filename,
-			GKeyFileFlags flags);
-	void (*stash_group_add_toggle_button)(struct StashGroup *group, gboolean *setting,
-			const gchar *key_name, gboolean default_value, gconstpointer widget_id);
-	void (*stash_group_add_radio_buttons)(struct StashGroup *group, gint *setting,
-			const gchar *key_name, gint default_value,
-			gconstpointer widget_id, gint enum_id, ...) G_GNUC_NULL_TERMINATED;
-	void (*stash_group_add_spin_button_integer)(struct StashGroup *group, gint *setting,
-			const gchar *key_name, gint default_value, gconstpointer widget_id);
-	void (*stash_group_add_combo_box)(struct StashGroup *group, gint *setting,
-			const gchar *key_name, gint default_value, gconstpointer widget_id);
-	void (*stash_group_add_combo_box_entry)(struct StashGroup *group, gchar **setting,
-			const gchar *key_name, const gchar *default_value, gconstpointer widget_id);
-	void (*stash_group_add_entry)(struct StashGroup *group, gchar **setting,
-			const gchar *key_name, const gchar *default_value, gconstpointer widget_id);
-	void (*stash_group_add_widget_property)(struct StashGroup *group, gpointer setting,
-			const gchar *key_name, gpointer default_value, gconstpointer widget_id,
-			const gchar *property_name, GType type);
-	void (*stash_group_display)(struct StashGroup *group, GtkWidget *owner);
-	void (*stash_group_update)(struct StashGroup *group, GtkWidget *owner);
-	void (*stash_group_free_settings)(struct StashGroup *group);
-}
-StashFuncs;
-
-
-/* See symbols.h */
-typedef struct SymbolsFuncs
-{
-	const gchar*	(*symbols_get_context_separator)(gint ft_id);
-}
-SymbolsFuncs;
-
-/* See build.h */
-typedef struct BuildFuncs
-{
-	void (*build_activate_menu_item)(const GeanyBuildGroup grp, const guint cmd);
-	const gchar *(*build_get_current_menu_item)(const GeanyBuildGroup grp, const guint cmd,
-			const GeanyBuildCmdEntries field);
-	void (*build_remove_menu_item)(const GeanyBuildSource src, const GeanyBuildGroup grp,
-			const gint cmd);
-	void (*build_set_menu_item)(const GeanyBuildSource src, const GeanyBuildGroup grp,
-			const guint cmd, const GeanyBuildCmdEntries field, const gchar *value);
-	guint (*build_get_group_count)(const GeanyBuildGroup grp);
-}
-BuildFuncs;
-
-/* See project.h */
-typedef struct ProjectFuncs
-{
-	void (*project_write_config)(void);
-}
-ProjectFuncs;
-
 /* Deprecated aliases */
 #ifndef GEANY_DISABLE_DEPRECATED
 


Modified: src/plugins.c
326 lines changed, 1 insertions(+), 325 deletions(-)
===================================================================
@@ -75,326 +75,6 @@ static GtkWidget *menu_separator = NULL;
 static gchar *get_plugin_path(void);
 static void pm_show_dialog(GtkMenuItem *menuitem, gpointer user_data);
 
-
-static PluginFuncs plugin_funcs = {
-	&plugin_add_toolbar_item,
-	&plugin_module_make_resident,
-	&plugin_signal_connect,
-	&plugin_set_key_group,
-	&plugin_show_configure,
-	&plugin_timeout_add,
-	&plugin_timeout_add_seconds,
-	&plugin_idle_add,
-	&plugin_builder_connect_signals
-};
-
-static DocumentFuncs doc_funcs = {
-	&document_new_file,
-	&document_get_current,
-	&document_get_from_page,
-	&document_find_by_filename,
-	&document_find_by_real_path,
-	&document_save_file,
-	&document_open_file,
-	&document_open_files,
-	&document_remove_page,
-	&document_reload_force,
-	&document_set_encoding,
-	&document_set_text_changed,
-	&document_set_filetype,
-	&document_close,
-	&document_index,
-	&document_save_file_as,
-	&document_rename_file,
-	&document_get_status_color,
-	&document_get_basename_for_display,
-	&document_get_notebook_page,
-	&document_compare_by_display_name,
-	&document_compare_by_tab_order,
-	&document_compare_by_tab_order_reverse,
-	&document_find_by_id
-};
-
-static EditorFuncs editor_funcs = {
-	&editor_get_indent_prefs,
-	&editor_create_widget,
-	&editor_indicator_set_on_range,
-	&editor_indicator_set_on_line,
-	&editor_indicator_clear,
-	&editor_set_indent_type,
-	&editor_get_word_at_pos,
-	&editor_get_eol_char_name,
-	&editor_get_eol_char_len,
-	&editor_get_eol_char,
-	&editor_insert_text_block,
-	&editor_get_eol_char_mode,
-	&editor_goto_pos,
-	&editor_find_snippet,
-	&editor_insert_snippet
-};
-
-static ScintillaFuncs scintilla_funcs = {
-	&scintilla_send_message,
-	&scintilla_new
-};
-
-/* Macro to prevent a duplicate macro being generated in geanyfunctions.h */
-#define _scintilla_send_message_macro	scintilla_send_message
-
-static SciFuncs sci_funcs = {
-	&_scintilla_send_message_macro,
-	&sci_send_command,
-	&sci_start_undo_action,
-	&sci_end_undo_action,
-	&sci_set_text,
-	&sci_insert_text,
-	&sci_get_text,
-	&sci_get_length,
-	&sci_get_current_position,
-	&sci_set_current_position,
-	&sci_get_col_from_position,
-	&sci_get_line_from_position,
-	&sci_get_position_from_line,
-	&sci_replace_sel,
-	&sci_get_selected_text,
-	&sci_get_selected_text_length,
-	&sci_get_selection_start,
-	&sci_get_selection_end,
-	&sci_get_selection_mode,
-	&sci_set_selection_mode,
-	&sci_set_selection_start,
-	&sci_set_selection_end,
-	&sci_get_text_range,
-	&sci_get_line,
-	&sci_get_line_length,
-	&sci_get_line_count,
-	&sci_get_line_is_visible,
-	&sci_ensure_line_is_visible,
-	&sci_scroll_caret,
-	&sci_find_matching_brace,
-	&sci_get_style_at,
-	&sci_get_char_at,
-	&sci_get_current_line,
-	&sci_has_selection,
-	&sci_get_tab_width,
-	&sci_indicator_clear,
-	&sci_indicator_set,
-	&sci_get_contents,
-	&sci_get_contents_range,
-	&sci_get_selection_contents,
-	&sci_set_font,
-	&sci_get_line_end_position,
-	&sci_set_target_start,
-	&sci_set_target_end,
-	&sci_replace_target,
-	&sci_set_marker_at_line,
-	&sci_delete_marker_at_line,
-	&sci_is_marker_set_at_line,
-	&sci_goto_line,
-	&sci_find_text,
-	&sci_set_line_indentation,
-	&sci_get_line_indentation,
-	&sci_get_lexer
-};
-
-static TemplateFuncs template_funcs = {
-	&templates_get_template_fileheader
-};
-
-static UtilsFuncs utils_funcs = {
-	&utils_str_equal,
-	&utils_string_replace_all,
-	&utils_get_file_list,
-	&utils_write_file,
-	&utils_get_locale_from_utf8,
-	&utils_get_utf8_from_locale,
-	&utils_remove_ext_from_filename,
-	&utils_mkdir,
-	&utils_get_setting_boolean,
-	&utils_get_setting_integer,
-	&utils_get_setting_string,
-	&utils_spawn_sync,
-	&utils_spawn_async,
-	&utils_str_casecmp,
-	&utils_get_date_time,
-	&utils_open_browser,
-	&utils_string_replace_first,
-	&utils_str_middle_truncate,
-	&utils_str_remove_chars,
-	&utils_get_file_list_full,
-	&utils_copy_environment,
-	&utils_find_open_xml_tag,
-	&utils_find_open_xml_tag_pos
-};
-
-static UIUtilsFuncs uiutils_funcs = {
-	&ui_dialog_vbox_new,
-	&ui_frame_new_with_alignment,
-	&ui_set_statusbar,
-	&ui_table_add_row,
-	&ui_path_box_new,
-	&ui_button_new_with_image,
-	&ui_add_document_sensitive,
-	&ui_widget_set_tooltip_text,
-	&ui_image_menu_item_new,
-	&ui_lookup_widget,
-	&ui_progress_bar_start,
-	&ui_progress_bar_stop,
-	&ui_entry_add_clear_icon,
-	&ui_menu_add_document_items,
-	&ui_widget_modify_font_from_string,
-	&ui_is_keyval_enter_or_return,
-	&ui_get_gtk_settings_integer,
-	&ui_combo_box_add_to_history,
-	&ui_menu_add_document_items_sorted,
-	&ui_lookup_stock_label,
-	&ui_tree_view_set_tooltip_text_column
-};
-
-static DialogFuncs dialog_funcs = {
-	&dialogs_show_question,
-	&dialogs_show_msgbox,
-	&dialogs_show_save_as,
-	&dialogs_show_input_numeric,
-	&dialogs_show_input
-};
-
-/* Macro to prevent confusing macro being generated in geanyfunctions.h */
-#define _lookup_widget_macro	ui_lookup_widget
-
-/* deprecated */
-static SupportFuncs support_funcs = {
-	&_lookup_widget_macro
-};
-
-static MsgWinFuncs msgwin_funcs = {
-	&msgwin_status_add,
-	&msgwin_compiler_add,
-	&msgwin_msg_add,
-	&msgwin_clear_tab,
-	&msgwin_switch_tab,
-	&msgwin_set_messages_dir
-};
-
-static EncodingFuncs encoding_funcs = {
-	&encodings_convert_to_utf8,
-	&encodings_convert_to_utf8_from_charset,
-	&encodings_get_charset_from_index
-};
-
-static KeybindingFuncs keybindings_funcs = {
-	&keybindings_send_command,
-	&keybindings_set_item,
-	&keybindings_get_item,
-	&keybindings_get_modifiers
-};
-
-static TagManagerFuncs tagmanager_funcs = {
-	&tm_get_real_path,
-	&tm_source_file_new,
-	&tm_source_file_free,
-	&tm_workspace_add_source_file,
-	&tm_workspace_remove_source_file,
-	&tm_workspace_add_source_files,
-	&tm_workspace_remove_source_files
-};
-
-static SearchFuncs search_funcs = {
-	&search_show_find_in_files_dialog
-};
-
-static HighlightingFuncs highlighting_funcs = {
-	&highlighting_get_style,
-	&highlighting_set_styles,
-	&highlighting_is_string_style,
-	&highlighting_is_comment_style,
-	&highlighting_is_code_style
-};
-
-static FiletypeFuncs filetype_funcs = {
-	&filetypes_detect_from_file,
-	&filetypes_lookup_by_name,
-	&filetypes_index,
-	&filetypes_get_display_name,
-	&filetypes_get_sorted_by_name
-};
-
-static NavQueueFuncs navqueue_funcs = {
-	&navqueue_goto_line
-};
-
-static MainFuncs main_funcs = {
-	&main_reload_configuration,
-	&main_locale_init,
-	&main_is_realized
-};
-
-static StashFuncs stash_funcs = {
-	&stash_group_new,
-	&stash_group_add_boolean,
-	&stash_group_add_integer,
-	&stash_group_add_string,
-	&stash_group_add_string_vector,
-	&stash_group_load_from_key_file,
-	&stash_group_save_to_key_file,
-	&stash_group_free,
-	&stash_group_load_from_file,
-	&stash_group_save_to_file,
-	&stash_group_add_toggle_button,
-	&stash_group_add_radio_buttons,
-	&stash_group_add_spin_button_integer,
-	&stash_group_add_combo_box,
-	&stash_group_add_combo_box_entry,
-	&stash_group_add_entry,
-	&stash_group_add_widget_property,
-	&stash_group_display,
-	&stash_group_update,
-	&stash_group_free_settings
-};
-
-static SymbolsFuncs symbols_funcs = {
-	&symbols_get_context_separator
-};
-
-static BuildFuncs build_funcs = {
-	&build_activate_menu_item,
-	&build_get_current_menu_item,
-	&build_remove_menu_item,
-	&build_set_menu_item,
-	&build_get_group_count
-};
-
-static ProjectFuncs project_funcs = {
-	&project_write_config
-};
-
-static GeanyFunctions geany_functions = {
-	&doc_funcs,
-	&sci_funcs,
-	&template_funcs,
-	&utils_funcs,
-	&uiutils_funcs,
-	&support_funcs,
-	&dialog_funcs,
-	&msgwin_funcs,
-	&encoding_funcs,
-	&keybindings_funcs,
-	&tagmanager_funcs,
-	&search_funcs,
-	&highlighting_funcs,
-	&filetype_funcs,
-	&navqueue_funcs,
-	&editor_funcs,
-	&main_funcs,
-	&plugin_funcs,
-	&scintilla_funcs,
-	&msgwin_funcs,
-	&stash_funcs,
-	&symbols_funcs,
-	&build_funcs,
-	&project_funcs
-};
-
 static GeanyData geany_data;
 
 
@@ -598,7 +278,7 @@ plugin_load(Plugin *plugin)
 	PluginFields **plugin_fields;
 
 	/* set these symbols before plugin_init() is called
-	 * we don't set geany_functions and geany_data since they are set directly by plugin_new() */
+	 * we don't set geany_data since it is set directly by plugin_new() */
 	g_module_symbol(plugin->module, "geany_plugin", (void *) &p_geany_plugin);
 	if (p_geany_plugin)
 		*p_geany_plugin = &plugin->public;
@@ -663,7 +343,6 @@ plugin_new(const gchar *fname, gboolean load_plugin, gboolean add_to_list)
 	Plugin *plugin;
 	GModule *module;
 	GeanyData **p_geany_data;
-	GeanyFunctions **p_geany_functions;
 	void (*plugin_set_info)(PluginInfo*);
 
 	g_return_val_if_fail(fname, NULL);
@@ -731,9 +410,6 @@ plugin_new(const gchar *fname, gboolean load_plugin, gboolean add_to_list)
 	g_module_symbol(module, "geany_data", (void *) &p_geany_data);
 	if (p_geany_data)
 		*p_geany_data = &geany_data;
-	g_module_symbol(module, "geany_functions", (void *) &p_geany_functions);
-	if (p_geany_functions)
-		*p_geany_functions = &geany_functions;
 
 	/* read plugin name, etc. */
 	plugin_set_info(&plugin->info);



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list