Use GEANY_PRIVATE to hide some fields from plugins.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4128 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
Nick Treleaven 2009-08-26 14:56:05 +00:00
parent 2955303eef
commit 1ec744da6c
7 changed files with 16 additions and 4 deletions

View File

@ -5,6 +5,9 @@
Add reference to HACKING for plugin API development.
* HACKING:
Add section 'Plugin API/ABI design'.
* src/keybindings.h, src/makefile.win32, src/project.h,
src/filetypes.h, src/Makefile.am, wscript:
Use GEANY_PRIVATE to hide some fields from plugins.
2009-08-25 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>

View File

@ -96,7 +96,8 @@ AM_CFLAGS = -DGEANY_DATADIR=\"data\" \
-DGEANY_DOCDIR=\"\" \
-DGEANY_LIBDIR=\"\" \
-DGEANY_LOCALEDIR=\"\" \
-DGEANY_PREFIX=\"\"
-DGEANY_PREFIX=\"\" \
-DGEANY_PRIVATE
geany_LDFLAGS = -mwindows -mms-bitfields
@ -119,7 +120,8 @@ AM_CFLAGS = -DGEANY_DATADIR=\""$(datadir)"\" \
-DGEANY_DOCDIR=\""$(docdir)"\" \
-DGEANY_LIBDIR=\""$(libdir)"\" \
-DGEANY_LOCALEDIR=\""$(localedir)"\" \
-DGEANY_PREFIX=\""$(prefix)"\"
-DGEANY_PREFIX=\""$(prefix)"\" \
-DGEANY_PRIVATE
clean-local:

View File

@ -119,7 +119,7 @@ struct GeanyFiletype
gchar *error_regex_string;
struct GeanyFiletypePrivate *priv; /* must be last, append fields before this item */
#ifdef GEANY_PRIVATE
/* Do not use following fields in plugins */
GeanyBuildCommand *filecmds; /* these need to be visible since used in build.c so not in private part */
GeanyBuildCommand *ftdefcmds; /* filetype dependent defaults for non_ft commands */
@ -130,6 +130,7 @@ struct GeanyFiletype
gint project_list_entry;
gchar *projerror_regex_string;
gchar *homeerror_regex_string;
#endif
};
extern GPtrArray *filetypes_array;

View File

@ -51,6 +51,7 @@ GeanyKeyBinding;
typedef struct GeanyKeyGroup GeanyKeyGroup;
/* Plugins should not set these fields. */
#ifdef GEANY_PRIVATE
struct GeanyKeyGroup
{
const gchar *name; /* Group name used in the configuration file, such as @c "html_chars" */
@ -59,6 +60,7 @@ struct GeanyKeyGroup
GeanyKeyBinding *keys; /* array of GeanyKeyBinding structs */
gboolean plugin; /* used by plugin */
};
#endif
extern GPtrArray *keybinding_groups; /* array of GeanyKeyGroup pointers */

View File

@ -1,6 +1,7 @@
# Note: PACKAGE_DATA_DIR and PACKAGE_LOCALE_DIR are no longer used on Windows.
DEFINES = -DHAVE_CONFIG_H \
-DGEANY_PRIVATE \
-DGEANY_DATADIR=\"data\" \
-DGEANY_LOCALEDIR=\"\" \
-DGEANY_LIBDIR=\"\" \

View File

@ -41,9 +41,10 @@ typedef struct GeanyProject
gchar **file_patterns; /**< Array of filename extension patterns. */
struct GeanyProjectPrivate *priv; /* must be last, append fields before this item */
#ifdef GEANY_PRIVATE
/* Do not use following fields in plugins */
GPtrArray *build_filetypes_list; /* *< Project has custom filetype builds for these. */
#endif
}
GeanyProject;

View File

@ -272,6 +272,8 @@ def configure(conf):
conf.env.append_value('CCFLAGS', '-g -DGEANY_DEBUG'.split())
conf.env.append_value('CCFLAGS', '-DHAVE_CONFIG_H')
# for now define GEANY_PRIVATE for all files, even though it should just be for src/*.
conf.env.append_value('CCFLAGS', '-DGEANY_PRIVATE')
# Scintilla flags
conf.env.append_value('CXXFLAGS',
'-DNDEBUG -DGTK -DGTK2 -DSCI_LEXER -DG_THREADS_IMPL_NONE'.split())