[geany/geany] 4d22aa: Merge branch 'header-cleanup'
Matthew Brush
git-noreply at xxxxx
Wed May 21 22:43:40 UTC 2014
Branch: refs/heads/master
Author: Matthew Brush <matt at geany.org>
Committer: Matthew Brush <matt at geany.org>
Date: Wed, 21 May 2014 22:43:40 UTC
Commit: 4d22aa48502ff818102af42495daaa55e6c6694e
https://github.com/geany/geany/commit/4d22aa48502ff818102af42495daaa55e6c6694e
Log Message:
-----------
Merge branch 'header-cleanup'
Closes #272
Modified Paths:
--------------
HACKING
plugins/geanyplugin.h
src/Makefile.am
src/about.c
src/about.h
src/app.h
src/build.c
src/build.h
src/callbacks.c
src/callbacks.h
src/dialogs.c
src/dialogs.h
src/document.c
src/document.h
src/documentprivate.h
src/editor.c
src/editor.h
src/encodings.c
src/encodings.h
src/filetypes.c
src/filetypes.h
src/filetypesprivate.h
src/gb.c
src/geany.h
src/geanyentryaction.c
src/geanyentryaction.h
src/geanymenubuttonaction.c
src/geanymenubuttonaction.h
src/geanyobject.c
src/geanyobject.h
src/geanywraplabel.c
src/geanywraplabel.h
src/gtkcompat.h
src/highlighting.c
src/highlighting.h
src/highlightingmappings.h
src/keybindings.c
src/keybindings.h
src/keybindingsprivate.h
src/keyfile.c
src/keyfile.h
src/log.c
src/log.h
src/main.c
src/main.h
src/msgwindow.c
src/msgwindow.h
src/navqueue.c
src/navqueue.h
src/notebook.c
src/notebook.h
src/plugindata.h
src/pluginprivate.h
src/plugins.c
src/plugins.h
src/pluginutils.c
src/pluginutils.h
src/prefix.c
src/prefix.h
src/prefs.c
src/prefs.h
src/printing.c
src/printing.h
src/project.c
src/project.h
src/projectprivate.h
src/sciwrappers.c
src/sciwrappers.h
src/search.c
src/search.h
src/sidebar.c
src/sidebar.h
src/socket.c
src/socket.h
src/stash.c
src/stash.h
src/support.h
src/symbols.c
src/symbols.h
src/templates.c
src/templates.h
src/toolbar.c
src/toolbar.h
src/tools.c
src/tools.h
src/ui_utils.c
src/ui_utils.h
src/utils.c
src/utils.h
src/vte.c
src/vte.h
src/win32.c
src/win32.h
wscript
Modified: HACKING
72 lines changed, 72 insertions(+), 0 deletions(-)
===================================================================
@@ -302,6 +302,78 @@ Example::
{
...
+Header Includes
+---------------
+
+In order to make including various headers in Geany more convenient, each
+file should include what it uses. If there is a file named ``foo.c``, and a
+file named ``foo.h``, it should be possible to include ``foo.h`` on its own
+without depending on stuff in ``foo.c`` that is included for the first time
+before ``foo.h``.
+
+Private Headers
+^^^^^^^^^^^^^^^
+
+If there is some data that needs to be shared between various parts of the
+core code, put them in a "private header", that is, if the public header is
+called ``foo.h``, then make a ``fooprivate.h`` header that contains the
+non-public functions, types, globals, etc that are needed. Other core source
+files can then just include the ``foo.h`` and/or ``fooprivate.h`` depending
+what they need, without exposing that stuff to plugins.
+
+Order of Includes
+^^^^^^^^^^^^^^^^^
+
+Inside a source file the includes section should be ordered like this:
+
+1. Always include the ``config.h`` file at the start of every source file,
+ for example::
+
+ #ifdef HAVE_CONFIG_H
+ # include "config.h"
+ #endif
+
+ This allows the Autotools and other build systems use the ``./configure``
+ time settings. If you don't do this, there's likely to be a number of
+ macros that you'll have to define in the build system or custom headers.
+
+ Warning: Never include ``config.h`` in headers, and especially in "public"
+ headers that plugins might include.
+
+2. Then include the header that has the same name as the source file (if
+ applicable). For example, for a source file named ``foo.c``, include
+ the ``foo.h`` below the ``config.h`` include. If there is a
+ ``fooprivate.h``, ``foo.c`` will most likely want to include that too,
+ put it in with includes in #3.
+
+3. At this point, it should be safe to include all the headers that declare
+ whatever is needed. If everything generally "includes what it uses" and
+ all files included contain the appropriate multiple-declaration guards
+ then the order of includes is fairly arbitrary. Prefer to use English
+ alphabetic order if possible.
+
+4. By now it doesn't really matter about the order, nothing below here is
+ "our problem". Semi-arbitrarily, you should use an include order like this:
+
+ 1. Standard C headers
+ 2. Non-standard system headers (eg. ``windows.h`` or ``unistd.h``)
+ 3. GLib/GTK+ or related headers
+
+5. Everything else that should not influence 1-4.
+
+Including in Header Files
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Headers should also include what they use. All of the types should defined in
+order to allow the header to be included stand-alone. For example, if a
+header uses a ``GtkWidget*``, it should ``#include <gtk/gtk.h>``. Or, if a
+headers uses a ``GPtrArray*``, it should ``#include <glib.h>`` to ensure that
+all of the types are declared, whether by pointers/opaquely or fully, as
+required. Since all headers will use a ``G_BEGIN_DECLS`` and ``G_END_DECLS``
+guard for C++, the bare minimum for a header is to include ``glib.h`` or
+``<gtk/gtk.h>`` or ``gtkcompat.h`` or some other header that makes those
+macros available.
+
Committing
----------
Modified: plugins/geanyplugin.h
6 lines changed, 3 insertions(+), 3 deletions(-)
===================================================================
@@ -28,17 +28,17 @@
#ifndef GEANY_PLUGIN_H
#define GEANY_PLUGIN_H 1
-#include "geany.h"
-#include "plugindata.h"
-
/* Note: only include headers that define types or macros, not just functions */
+#include "app.h"
#include "document.h"
#include "editor.h"
#include "encodings.h"
#include "filetypes.h"
+#include "geany.h"
#include "highlighting.h"
#include "keybindings.h"
#include "msgwindow.h"
+#include "plugindata.h"
#include "prefs.h"
#include "project.h"
#include "search.h"
Modified: src/Makefile.am
13 lines changed, 11 insertions(+), 2 deletions(-)
===================================================================
@@ -1,14 +1,22 @@
## Process this file with automake to produce Makefile.in
-EXTRA_DIST = gb.c win32.c win32.h plugindata.h \
- documentprivate.h filetypesprivate.h pluginprivate.h projectprivate.h \
+EXTRA_DIST = \
+ gb.c \
+ win32.c win32.h \
+ plugindata.h \
+ documentprivate.h \
+ filetypesprivate.h \
+ keybindingsprivate.h \
+ pluginprivate.h \
+ projectprivate.h \
makefile.win32
bin_PROGRAMS = geany
SRCS = \
about.c about.h \
+ app.h \
build.c build.h \
callbacks.c callbacks.h \
dialogs.c dialogs.h \
@@ -54,6 +62,7 @@ geany_includedir = $(includedir)/geany
# only install headers that define types or macros, not just functions
geany_include_HEADERS = \
+ app.h \
build.h \
document.h \
editor.h \
Modified: src/about.c
17 lines changed, 11 insertions(+), 6 deletions(-)
===================================================================
@@ -24,17 +24,22 @@
* About dialog and credits.
*/
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
#include "about.h"
+
+#include "app.h"
+#include "gb.c"
#include "geany.h"
-#include "utils.h"
-#include "ui_utils.h"
-#include "support.h"
#include "geanywraplabel.h"
#include "main.h"
-#include "templates.h"
-
-#include "gb.c"
+#include "support.h"
+#include "ui_utils.h"
+#include "utils.h"
+#include "gtkcompat.h"
#define HEADER "<span size=\"larger\" weight=\"bold\">Geany %s</span>"
#define INFO "<span size=\"larger\" weight=\"bold\">%s</span>"
Modified: src/about.h
11 lines changed, 8 insertions(+), 3 deletions(-)
===================================================================
@@ -20,10 +20,15 @@
*/
-#ifndef GEANY_ABOUT_DIALOG_H
-#define GEANY_ABOUT_DIALOG_H
+#ifndef GEANY_ABOUT_H
+#define GEANY_ABOUT_H 1
+#include <glib.h>
+
+G_BEGIN_DECLS
void about_dialog_show(void);
-#endif
+G_END_DECLS
+
+#endif /* GEANY_ABOUT_H */
Modified: src/app.h
60 lines changed, 60 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,60 @@
+/*
+ * app.h - this file is part of Geany, a fast and lightweight IDE
+ *
+ * Copyright 2005-2014 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ * Copyright 2006-2014 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ * Copyright 2014 Matthew Brush <matt at geany.org>
+ *
+ * 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.
+ */
+
+/**
+ * @file app.h
+ * Contains the GeanyApp.
+ */
+
+#ifndef GEANY_APP_H
+#define GEANY_APP_H 1
+
+#include "tm_tag.h" /* FIXME: should be included in tm_workspace.h */
+#include "tm_workspace.h"
+#include "project.h"
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+/** Important application fields. */
+typedef struct GeanyApp
+{
+ gboolean debug_mode; /**< @c TRUE if debug messages should be printed. */
+ /** User configuration directory, usually @c ~/.config/geany.
+ * This is a full path read by @ref tm_get_real_path().
+ * @note Plugin configuration files should be saved as:
+ * @code g_build_path(G_DIR_SEPARATOR_S, geany->app->configdir, "plugins", "pluginname",
+ * "file.conf", NULL); @endcode */
+ gchar *configdir;
+ gchar *datadir;
+ gchar *docdir;
+ const TMWorkspace *tm_workspace; /**< TagManager workspace/session tags. */
+ struct GeanyProject *project; /**< Currently active project or @c NULL if none is open. */
+}
+GeanyApp;
+
+extern GeanyApp *app;
+
+G_END_DECLS
+
+#endif /* GEANY_APP_H */
Modified: src/build.c
152 lines changed, 78 insertions(+), 74 deletions(-)
===================================================================
@@ -28,8 +28,28 @@
* Replace defines with enums.
* Other TODOs in code. */
-#include "geany.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "app.h"
#include "build.h"
+#include "dialogs.h"
+#include "document.h"
+#include "filetypesprivate.h"
+#include "geanymenubuttonaction.h"
+#include "geanyobject.h"
+#include "keybindingsprivate.h"
+#include "msgwindow.h"
+#include "prefs.h"
+#include "projectprivate.h"
+#include "support.h"
+#include "toolbar.h"
+#include "ui_utils.h"
+#include "utils.h"
+#include "vte.h"
+
+#include "gtkcompat.h"
#include <stdlib.h>
#include <string.h>
@@ -46,22 +66,6 @@
# include <windows.h>
#endif
-#include "prefs.h"
-#include "support.h"
-#include "document.h"
-#include "utils.h"
-#include "ui_utils.h"
-#include "dialogs.h"
-#include "msgwindow.h"
-#include "filetypes.h"
-#include "keybindings.h"
-#include "vte.h"
-#include "project.h"
-#include "editor.h"
-#include "win32.h"
-#include "toolbar.h"
-#include "geanymenubuttonaction.h"
-#include "gtkcompat.h"
/* g_spawn_async_with_pipes doesn't work on Windows */
#ifdef G_OS_WIN32
@@ -249,13 +253,13 @@ static void printfcmds(void)
if (ft != NULL)
{
printf("filetype %s\n",ft->name);
- cl[GEANY_GBG_FT][GEANY_BCS_FT] = &(ft->filecmds);
- cl[GEANY_GBG_FT][GEANY_BCS_HOME_FT] = &(ft->homefilecmds);
- cl[GEANY_GBG_FT][GEANY_BCS_PROJ] = &(ft->projfilecmds);
- cl[GEANY_GBG_NON_FT][GEANY_BCS_FT] = &(ft->ftdefcmds);
- cl[GEANY_GBG_EXEC][GEANY_BCS_FT] = &(ft->execcmds);
- cl[GEANY_GBG_EXEC][GEANY_BCS_HOME_FT] = &(ft->homeexeccmds);
- cl[GEANY_GBG_EXEC][GEANY_BCS_PROJ_FT] = &(ft->projexeccmds);
+ cl[GEANY_GBG_FT][GEANY_BCS_FT] = &(ft->priv->filecmds);
+ cl[GEANY_GBG_FT][GEANY_BCS_HOME_FT] = &(ft->priv->homefilecmds);
+ cl[GEANY_GBG_FT][GEANY_BCS_PROJ] = &(ft->priv->projfilecmds);
+ cl[GEANY_GBG_NON_FT][GEANY_BCS_FT] = &(ft->priv->ftdefcmds);
+ cl[GEANY_GBG_EXEC][GEANY_BCS_FT] = &(ft->priv->execcmds);
+ cl[GEANY_GBG_EXEC][GEANY_BCS_HOME_FT] = &(ft->priv->homeexeccmds);
+ cl[GEANY_GBG_EXEC][GEANY_BCS_PROJ_FT] = &(ft->priv->projexeccmds);
}
for (i = 0; i < GEANY_BCS_COUNT; ++i)
{
@@ -320,13 +324,13 @@ static void printfcmds(void)
}
#define return_ft_cmd_if(src, cmds)\
- if (ft != NULL && ft->cmds != NULL \
- && ft->cmds[cmdindex].exists && below>src)\
+ if (ft != NULL && ft->priv->cmds != NULL \
+ && ft->priv->cmds[cmdindex].exists && below>src)\
{ \
*fr=src; \
if (printbuildcmds) \
printf("cmd[%u,%u]=%u\n",cmdgrp,cmdindex,src); \
- return &(ft->cmds[cmdindex]); \
+ return &(ft->priv->cmds[cmdindex]); \
}
@@ -412,8 +416,8 @@ gchar **build_get_regex(GeanyBuildGroup grp, GeanyFiletype *ft, guint *from)
}
if (ft == NULL)
return NULL;
- return_nonblank_regex(GEANY_BCS_PROJ, ft->projerror_regex_string);
- return_nonblank_regex(GEANY_BCS_HOME_FT, ft->homeerror_regex_string);
+ return_nonblank_regex(GEANY_BCS_PROJ, ft->priv->projerror_regex_string);
+ return_nonblank_regex(GEANY_BCS_HOME_FT, ft->priv->homeerror_regex_string);
return_nonblank_regex(GEANY_BCS_FT, ft->error_regex_string);
}
else if (grp == GEANY_GBG_NON_FT)
@@ -439,11 +443,11 @@ static GeanyBuildCommand **get_build_group_pointer(const GeanyBuildSource src, c
return NULL;
switch (src)
{
- case GEANY_BCS_DEF: return &(ft->ftdefcmds);
- case GEANY_BCS_FT: return &(ft->filecmds);
- case GEANY_BCS_HOME_FT: return &(ft->homefilecmds);
- case GEANY_BCS_PREF: return &(ft->homefilecmds);
- case GEANY_BCS_PROJ: return &(ft->projfilecmds);
+ case GEANY_BCS_DEF: return &(ft->priv->ftdefcmds);
+ case GEANY_BCS_FT: return &(ft->priv->filecmds);
+ case GEANY_BCS_HOME_FT: return &(ft->priv->homefilecmds);
+ case GEANY_BCS_PREF: return &(ft->priv->homefilecmds);
+ case GEANY_BCS_PROJ: return &(ft->priv->projfilecmds);
default: return NULL;
}
break;
@@ -462,9 +466,9 @@ static GeanyBuildCommand **get_build_group_pointer(const GeanyBuildSource src, c
switch (src)
{
case GEANY_BCS_DEF: return &(exec_def);
- case GEANY_BCS_FT: return ft ? &(ft->execcmds): NULL;
- case GEANY_BCS_HOME_FT: return ft ? &(ft->homeexeccmds): NULL;
- case GEANY_BCS_PROJ_FT: return ft ? &(ft->projexeccmds): NULL;
+ case GEANY_BCS_FT: return ft ? &(ft->priv->execcmds): NULL;
+ case GEANY_BCS_HOME_FT: return ft ? &(ft->priv->homeexeccmds): NULL;
+ case GEANY_BCS_PROJ_FT: return ft ? &(ft->priv->projexeccmds): NULL;
case GEANY_BCS_PREF: return &(exec_pref);
case GEANY_BCS_PROJ: return &(exec_proj);
default: return NULL;
@@ -2320,8 +2324,8 @@ void build_read_project(GeanyFiletype *ft, BuildTableData build_properties)
if (ft != NULL)
{
- menu_dst.dst[GEANY_GBG_FT] = &(ft->projfilecmds);
- menu_dst.fileregexstr = &(ft->projerror_regex_string);
+ menu_dst.dst[GEANY_GBG_FT] = &(ft->priv->projfilecmds);
+ menu_dst.fileregexstr = &(ft->priv->projerror_regex_string);
}
else
{
@@ -2362,9 +2366,9 @@ static void show_build_commands_dialog(void)
prefdsts.dst[GEANY_GBG_NON_FT] = &non_ft_pref;
if (ft != NULL)
{
- prefdsts.dst[GEANY_GBG_FT] = &(ft->homefilecmds);
- prefdsts.fileregexstr = &(ft->homeerror_regex_string);
- prefdsts.dst[GEANY_GBG_EXEC] = &(ft->homeexeccmds);
+ prefdsts.dst[GEANY_GBG_FT] = &(ft->priv->homefilecmds);
+ prefdsts.fileregexstr = &(ft->priv->homeerror_regex_string);
+ prefdsts.dst[GEANY_GBG_EXEC] = &(ft->priv->homeexeccmds);
}
else
{
@@ -2474,9 +2478,9 @@ void build_load_menu(GKeyFile *config, GeanyBuildSource src, gpointer p)
ft = (GeanyFiletype*)p;
if (ft == NULL)
return;
- build_load_menu_grp(config, &(ft->filecmds), GEANY_GBG_FT, NULL, TRUE);
- build_load_menu_grp(config, &(ft->ftdefcmds), GEANY_GBG_NON_FT, NULL, TRUE);
- build_load_menu_grp(config, &(ft->execcmds), GEANY_GBG_EXEC, NULL, TRUE);
+ build_load_menu_grp(config, &(ft->priv->filecmds), GEANY_GBG_FT, NULL, TRUE);
+ build_load_menu_grp(config, &(ft->priv->ftdefcmds), GEANY_GBG_NON_FT, NULL, TRUE);
+ build_load_menu_grp(config, &(ft->priv->execcmds), GEANY_GBG_EXEC, NULL, TRUE);
SETPTR(ft->error_regex_string,
g_key_file_get_string(config, build_grp_name, "error_regex", NULL));
break;
@@ -2484,9 +2488,9 @@ void build_load_menu(GKeyFile *config, GeanyBuildSource src, gpointer p)
ft = (GeanyFiletype*)p;
if (ft == NULL)
return;
- build_load_menu_grp(config, &(ft->homefilecmds), GEANY_GBG_FT, NULL, FALSE);
- build_load_menu_grp(config, &(ft->homeexeccmds), GEANY_GBG_EXEC, NULL, FALSE);
- SETPTR(ft->homeerror_regex_string,
+ build_load_menu_grp(config, &(ft->priv->homefilecmds), GEANY_GBG_FT, NULL, FALSE);
+ build_load_menu_grp(config, &(ft->priv->homeexeccmds), GEANY_GBG_EXEC, NULL, FALSE);
+ SETPTR(ft->priv->homeerror_regex_string,
g_key_file_get_string(config, build_grp_name, "error_regex", NULL));
break;
case GEANY_BCS_PREF:
@@ -2505,21 +2509,21 @@ void build_load_menu(GKeyFile *config, GeanyBuildSource src, gpointer p)
if (ftlist != NULL)
{
gchar **ftname;
- if (pj->build_filetypes_list == NULL)
- pj->build_filetypes_list = g_ptr_array_new();
- g_ptr_array_set_size(pj->build_filetypes_list, 0);
+ if (pj->priv->build_filetypes_list == NULL)
+ pj->priv->build_filetypes_list = g_ptr_array_new();
+ g_ptr_array_set_size(pj->priv->build_filetypes_list, 0);
for (ftname = ftlist; *ftname != NULL; ++ftname)
{
ft = filetypes_lookup_by_name(*ftname);
if (ft != NULL)
{
gchar *regkey = g_strdup_printf("%serror_regex", *ftname);
- g_ptr_array_add(pj->build_filetypes_list, ft);
- SETPTR(ft->projerror_regex_string,
+ g_ptr_array_add(pj->priv->build_filetypes_list, ft);
+ SETPTR(ft->priv->projerror_regex_string,
g_key_file_get_string(config, build_grp_name, regkey, NULL));
g_free(regkey);
- build_load_menu_grp(config, &(ft->projfilecmds), GEANY_GBG_FT, *ftname, FALSE);
- build_load_menu_grp(config, &(ft->projexeccmds), GEANY_GBG_EXEC, *ftname, FALSE);
+ build_load_menu_grp(config, &(ft->priv->projfilecmds), GEANY_GBG_FT, *ftname, FALSE);
+ build_load_menu_grp(config, &(ft->priv->projexeccmds), GEANY_GBG_EXEC, *ftname, FALSE);
}
}
g_free(ftlist);
@@ -2554,23 +2558,23 @@ void build_load_menu(GKeyFile *config, GeanyBuildSource src, gpointer p)
value = g_key_file_get_string(config, "build_settings", "compiler", NULL);
if (value != NULL)
{
- if (ft->filecmds == NULL)
- ft->filecmds = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_FT]);
- ASSIGNIF(ft->filecmds, GEANY_GBO_COMPILE, _("_Compile"), value);
+ if (ft->priv->filecmds == NULL)
+ ft->priv->filecmds = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_FT]);
+ ASSIGNIF(ft->priv->filecmds, GEANY_GBO_COMPILE, _("_Compile"), value);
}
value = g_key_file_get_string(config, "build_settings", "linker", NULL);
if (value != NULL)
{
- if (ft->filecmds == NULL)
- ft->filecmds = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_FT]);
- ASSIGNIF(ft->filecmds, GEANY_GBO_BUILD, _("_Build"), value);
+ if (ft->priv->filecmds == NULL)
+ ft->priv->filecmds = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_FT]);
+ ASSIGNIF(ft->priv->filecmds, GEANY_GBO_BUILD, _("_Build"), value);
}
value = g_key_file_get_string(config, "build_settings", "run_cmd", NULL);
if (value != NULL)
{
- if (ft->execcmds == NULL)
- ft->execcmds = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_EXEC]);
- ASSIGNIF(ft->execcmds, GEANY_GBO_EXEC, _("_Execute"), value);
+ if (ft->priv->execcmds == NULL)
+ ft->priv->execcmds = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_EXEC]);
+ ASSIGNIF(ft->priv->execcmds, GEANY_GBO_EXEC, _("_Execute"), value);
}
if (ft->error_regex_string == NULL)
ft->error_regex_string = g_key_file_get_string(config, "build_settings", "error_regex", NULL);
@@ -2688,11 +2692,11 @@ static void foreach_project_filetype(gpointer data, gpointer user_data)
guint i = 0;
gchar *regkey = g_strdup_printf("%serror_regex", ft->name);
- i += build_save_menu_grp(d->config, ft->projfilecmds, GEANY_GBG_FT, ft->name);
- i += build_save_menu_grp(d->config, ft->projexeccmds, GEANY_GBG_EXEC, ft->name);
- if (!EMPTY(ft->projerror_regex_string))
+ i += build_save_menu_grp(d->config, ft->priv->projfilecmds, GEANY_GBG_FT, ft->name);
+ i += build_save_menu_grp(d->config, ft->priv->projexeccmds, GEANY_GBG_EXEC, ft->name);
+ if (!EMPTY(ft->priv->projerror_regex_string))
{
- g_key_file_set_string(d->config, build_grp_name, regkey, ft->projerror_regex_string);
+ g_key_file_set_string(d->config, build_grp_name, regkey, ft->priv->projerror_regex_string);
i++;
}
else
@@ -2716,10 +2720,10 @@ void build_save_menu(GKeyFile *config, gpointer ptr, GeanyBuildSource src)
ft = (GeanyFiletype*)ptr;
if (ft == NULL)
return;
- build_save_menu_grp(config, ft->homefilecmds, GEANY_GBG_FT, NULL);
- build_save_menu_grp(config, ft->homeexeccmds, GEANY_GBG_EXEC, NULL);
- if (!EMPTY(ft->homeerror_regex_string))
- g_key_file_set_string(config, build_grp_name, "error_regex", ft->homeerror_regex_string);
+ build_save_menu_grp(config, ft->priv->homefilecmds, GEANY_GBG_FT, NULL);
+ build_save_menu_grp(config, ft->priv->homeexeccmds, GEANY_GBG_EXEC, NULL);
+ if (!EMPTY(ft->priv->homeerror_regex_string))
+ g_key_file_set_string(config, build_grp_name, "error_regex", ft->priv->homeerror_regex_string);
else
g_key_file_remove_key(config, build_grp_name, "error_regex", NULL);
break;
@@ -2739,11 +2743,11 @@ void build_save_menu(GKeyFile *config, gpointer ptr, GeanyBuildSource src)
g_key_file_set_string(config, build_grp_name, "error_regex", regex_proj);
else
g_key_file_remove_key(config, build_grp_name, "error_regex", NULL);
- if (pj->build_filetypes_list != NULL)
+ if (pj->priv->build_filetypes_list != NULL)
{
data.config = config;
data.ft_names = g_ptr_array_new();
- g_ptr_array_foreach(pj->build_filetypes_list, foreach_project_filetype, (gpointer)(&data));
+ g_ptr_array_foreach(pj->priv->build_filetypes_list, foreach_project_filetype, (gpointer)(&data));
if (data.ft_names->pdata != NULL)
g_key_file_set_string_list(config, build_grp_name, "filetypes",
(const gchar**)(data.ft_names->pdata), data.ft_names->len);
Modified: src/build.h
7 lines changed, 6 insertions(+), 1 deletions(-)
===================================================================
@@ -24,6 +24,11 @@
#ifndef GEANY_BUILD_H
#define GEANY_BUILD_H 1
+#include "document.h"
+#include "filetypes.h"
+
+#include "gtkcompat.h"
+
G_BEGIN_DECLS
/* Order is important (see GBO_TO_GBG, GBO_TO_CMD below) */
@@ -206,4 +211,4 @@ gchar **build_get_regex(GeanyBuildGroup grp, GeanyFiletype *ft, guint *from);
G_END_DECLS
-#endif
+#endif /* GEANY_BUILD_H */
Modified: src/callbacks.c
71 lines changed, 33 insertions(+), 38 deletions(-)
===================================================================
@@ -24,58 +24,53 @@
* main window. Callbacks not used by Glade should go elsewhere.
*/
-#include "geany.h"
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <gdk/gdkkeysyms.h>
-#include <glib/gstdio.h>
-#include <time.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
#include "callbacks.h"
-#include "support.h"
-#include "keyfile.h"
-#include "document.h"
-#include "documentprivate.h"
-#include "filetypes.h"
-#include "sciwrappers.h"
-#include "editor.h"
-#include "ui_utils.h"
-#include "utils.h"
-#include "dialogs.h"
#include "about.h"
-#include "msgwindow.h"
+#include "app.h"
#include "build.h"
-#include "prefs.h"
-#include "templates.h"
-#include "sidebar.h"
-#include "keybindings.h"
+#include "dialogs.h"
+#include "documentprivate.h"
#include "encodings.h"
-#include "search.h"
+#include "filetypes.h"
+#include "geanyobject.h"
+#include "highlighting.h"
+#include "keybindings.h"
+#include "keyfile.h"
+#include "log.h"
#include "main.h"
-#include "symbols.h"
-#include "tools.h"
-#include "project.h"
+#include "msgwindow.h"
#include "navqueue.h"
-#include "printing.h"
#include "plugins.h"
-#include "log.h"
-#include "toolbar.h"
-#include "highlighting.h"
#include "pluginutils.h"
-#include "gtkcompat.h"
-
-
-#ifdef HAVE_VTE
-# include "vte.h"
-#endif
-
+#include "prefs.h"
+#include "printing.h"
+#include "sciwrappers.h"
+#include "sidebar.h"
#ifdef HAVE_SOCKET
# include "socket.h"
#endif
+#include "support.h"
+#include "symbols.h"
+#include "templates.h"
+#include "toolbar.h"
+#include "tools.h"
+#include "ui_utils.h"
+#include "utils.h"
+#include "vte.h"
+#include "gtkcompat.h"
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <gdk/gdkkeysyms.h>
+#include <glib/gstdio.h>
+#include <time.h>
/* flag to indicate that an insert callback was triggered from the file menu,
Modified: src/callbacks.h
11 lines changed, 10 insertions(+), 1 deletions(-)
===================================================================
@@ -19,9 +19,14 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+#ifndef GEANY_CALLBACKS_H
+#define GEANY_CALLBACKS_H 1
-#include "geany.h" /* necessary for interface.c */
+#include "gtkcompat.h"
+G_BEGIN_DECLS
+
+extern gboolean ignore_callback;
G_MODULE_EXPORT gboolean
on_exit_clicked (GtkWidget *widget, gpointer gdata);
@@ -678,3 +683,7 @@ on_detect_type_from_file_activate (GtkMenuItem *menuitem,
G_MODULE_EXPORT void
on_detect_width_from_file_activate (GtkMenuItem *menuitem,
gpointer user_data);
+
+G_END_DECLS
+
+#endif /* GEANY_CALLBACKS_H */
Modified: src/dialogs.c
35 lines changed, 17 insertions(+), 18 deletions(-)
===================================================================
@@ -23,7 +23,23 @@
* File related dialogs, miscellaneous dialogs, font dialog.
*/
-#include "geany.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "dialogs.h"
+
+#include "app.h"
+#include "build.h"
+#include "document.h"
+#include "encodings.h"
+#include "filetypes.h"
+#include "main.h"
+#include "support.h"
+#include "utils.h"
+#include "ui_utils.h"
+
+#include "gtkcompat.h"
#include <gdk/gdkkeysyms.h>
#include <string.h>
@@ -40,23 +56,6 @@
/* gstdio.h also includes sys/stat.h */
#include <glib/gstdio.h>
-#include "dialogs.h"
-
-#include "callbacks.h"
-#include "document.h"
-#include "filetypes.h"
-#include "win32.h"
-#include "sciwrappers.h"
-#include "support.h"
-#include "utils.h"
-#include "ui_utils.h"
-#include "keybindings.h"
-#include "encodings.h"
-#include "build.h"
-#include "main.h"
-#include "project.h"
-#include "gtkcompat.h"
-
enum
{
Modified: src/dialogs.h
10 lines changed, 9 insertions(+), 1 deletions(-)
===================================================================
@@ -28,6 +28,12 @@
#ifndef GEANY_DIALOGS_H
#define GEANY_DIALOGS_H 1
+#include "document.h"
+
+#include "gtkcompat.h"
+
+G_BEGIN_DECLS
+
typedef void (*GeanyInputCallback)(const gchar *text);
@@ -72,4 +78,6 @@ void dialogs_show_msgbox(GtkMessageType type, const gchar *text, ...) G_GNUC_PRI
void dialogs_show_msgbox_with_secondary(GtkMessageType type, const gchar *text, const gchar *secondary);
-#endif
+G_END_DECLS
+
+#endif /* GEANY_DIALOGS_H */
Modified: src/document.c
56 lines changed, 28 insertions(+), 28 deletions(-)
===================================================================
@@ -24,7 +24,33 @@
* Also Scintilla search actions.
*/
-#include "geany.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "document.h"
+
+#include "app.h"
+#include "callbacks.h" /* for ignore_callback */
+#include "dialogs.h"
+#include "documentprivate.h"
+#include "encodings.h"
+#include "filetypesprivate.h"
+#include "geany.h" /* FIXME: why is this needed for DOC_FILENAME()? should come from documentprivate.h/document.h */
+#include "geanyobject.h"
+#include "highlighting.h"
+#include "main.h"
+#include "msgwindow.h"
+#include "navqueue.h"
+#include "notebook.h"
+#include "project.h"
+#include "sciwrappers.h"
+#include "sidebar.h"
+#include "support.h"
+#include "symbols.h"
+#include "ui_utils.h"
+#include "utils.h"
+#include "vte.h"
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
@@ -48,36 +74,10 @@
/*#define USE_GIO_FILEMON 1*/
#include <gio/gio.h>
-#include "document.h"
-#include "documentprivate.h"
-#include "filetypes.h"
-#include "support.h"
-#include "sciwrappers.h"
-#include "editor.h"
-#include "dialogs.h"
-#include "msgwindow.h"
-#include "templates.h"
-#include "sidebar.h"
-#include "ui_utils.h"
-#include "utils.h"
-#include "encodings.h"
-#include "notebook.h"
-#include "main.h"
-#include "vte.h"
-#include "build.h"
-#include "symbols.h"
-#include "highlighting.h"
-#include "navqueue.h"
-#include "win32.h"
-#include "search.h"
-#include "filetypesprivate.h"
-#include "project.h"
-
-#include "SciLexer.h"
-
GeanyFilePrefs file_prefs;
+
/** Dynamic array of GeanyDocument pointers.
* Once a pointer is added to this, it is never freed. This means you can keep a pointer
* to a document over time, but it may represent a different
Modified: src/document.h
25 lines changed, 16 insertions(+), 9 deletions(-)
===================================================================
@@ -29,13 +29,20 @@
#ifndef GEANY_DOCUMENT_H
#define GEANY_DOCUMENT_H 1
-G_BEGIN_DECLS
-
-#include "Scintilla.h"
-#include "ScintillaWidget.h"
#include "editor.h"
+#include "filetypes.h"
+#include "geany.h"
#include "search.h"
+#include "gtkcompat.h" /* Needed by ScintillaWidget.h */
+#include "Scintilla.h" /* Needed by ScintillaWidget.h */
+#include "ScintillaWidget.h" /* For ScintillaObject */
+
+#include <glib.h>
+
+
+G_BEGIN_DECLS
+
#if defined(G_OS_WIN32)
# define GEANY_DEFAULT_EOL_CHARACTER SC_EOL_CRLF
#elif defined(G_OS_UNIX)
@@ -75,7 +82,7 @@ extern GeanyFilePrefs file_prefs;
/**
* Structure for representing an open tab with all its properties.
**/
-struct GeanyDocument
+typedef struct GeanyDocument
{
/** Flag used to check if this document is valid when iterating @ref documents_array. */
gboolean is_valid;
@@ -93,7 +100,7 @@ struct GeanyDocument
gchar *encoding;
/** Internally used flag to indicate whether the file of this document has a byte-order-mark. */
gboolean has_bom;
- struct GeanyEditor *editor; /**< The editor associated with the document. */
+ GeanyEditor *editor; /**< The editor associated with the document. */
/** The filetype for this document, it's only a reference to one of the elements of the global
* filetypes array. */
GeanyFiletype *file_type;
@@ -113,7 +120,8 @@ struct GeanyDocument
gchar *real_path;
struct GeanyDocumentPrivate *priv; /* should be last, append fields before this item */
-};
+}
+GeanyDocument;
extern GPtrArray *documents_array;
@@ -167,7 +175,6 @@ extern GPtrArray *documents_array;
(G_LIKELY((doc)->file_name != NULL) ? ((doc)->file_name) : GEANY_STRING_UNTITLED)
-
/* These functions will replace the older functions. For now they have a documents_ prefix. */
GeanyDocument* document_new_file(const gchar *filename, GeanyFiletype *ft, const gchar *text);
@@ -297,4 +304,4 @@ GeanyDocument *document_clone(GeanyDocument *old_doc);
G_END_DECLS
-#endif
+#endif /* GEANY_DOCUMENT_H */
Modified: src/documentprivate.h
9 lines changed, 7 insertions(+), 2 deletions(-)
===================================================================
@@ -21,8 +21,11 @@
#ifndef GEANY_DOCUMENT_PRIVATE_H
-#define GEANY_DOCUMENT_PRIVATE_H
+#define GEANY_DOCUMENT_PRIVATE_H 1
+#include "gtkcompat.h"
+
+G_BEGIN_DECLS
/* available UNDO actions, UNDO_SCINTILLA is a pseudo action to trigger Scintilla's
* undo management */
@@ -86,4 +89,6 @@ typedef struct GeanyDocumentPrivate
}
GeanyDocumentPrivate;
-#endif
+G_END_DECLS
+
+#endif /* GEANY_DOCUMENT_PRIVATE_H */
Modified: src/editor.c
51 lines changed, 27 insertions(+), 24 deletions(-)
===================================================================
@@ -33,41 +33,44 @@
* Also some general Scintilla-related functions.
*/
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
-#include <ctype.h>
-#include <string.h>
-
-#include <gdk/gdkkeysyms.h>
-
-#include "SciLexer.h"
-#include "geany.h"
-
-#include "support.h"
#include "editor.h"
-#include "document.h"
+
+#include "app.h"
+#include "callbacks.h"
+#include "dialogs.h"
#include "documentprivate.h"
-#include "filetypes.h"
#include "filetypesprivate.h"
+#include "geanyobject.h"
+#include "highlighting.h"
+#include "keybindings.h"
+#include "main.h"
+#include "prefs.h"
+#include "projectprivate.h"
#include "sciwrappers.h"
-#include "ui_utils.h"
-#include "utils.h"
-#include "dialogs.h"
+#include "support.h"
#include "symbols.h"
-#include "callbacks.h"
#include "templates.h"
-#include "keybindings.h"
-#include "project.h"
-#include "projectprivate.h"
-#include "main.h"
-#include "highlighting.h"
+#include "ui_utils.h"
+#include "utils.h"
+
+#include "SciLexer.h"
+
#include "gtkcompat.h"
+#include <ctype.h>
+#include <string.h>
+
+#include <gdk/gdkkeysyms.h>
+
/* Note: use sciwrappers.h instead where possible.
* Do not use SSM in files unrelated to scintilla. */
#define SSM(s, m, w, l) scintilla_send_message(s, m, w, l)
-
static GHashTable *snippet_hash = NULL;
static GQueue *snippet_offsets = NULL;
static gint snippet_cursor_insert_pos;
@@ -375,7 +378,7 @@ static gboolean is_style_php(gint style)
static gint editor_get_long_line_type(void)
{
if (app->project)
- switch (app->project->long_line_behaviour)
+ switch (app->project->priv->long_line_behaviour)
{
case 0: /* marker disabled */
return 2;
@@ -394,8 +397,8 @@ static gint editor_get_long_line_type(void)
static gint editor_get_long_line_column(void)
{
- if (app->project && app->project->long_line_behaviour != 1 /* use global settings */)
- return app->project->long_line_column;
+ if (app->project && app->project->priv->long_line_behaviour != 1 /* use global settings */)
+ return app->project->priv->long_line_column;
else
return editor_prefs.long_line_column;
}
Modified: src/editor.h
24 lines changed, 17 insertions(+), 7 deletions(-)
===================================================================
@@ -23,10 +23,19 @@
#ifndef GEANY_EDITOR_H
#define GEANY_EDITOR_H 1
+#include "tm_tag.h" /* for TMTag */
+
+#include "gtkcompat.h" /* Needed by ScintillaWidget.h */
+#include "Scintilla.h" /* Needed by ScintillaWidget.h */
+#include "ScintillaWidget.h" /* for ScintillaObject */
+
+#include <glib.h>
+
+
G_BEGIN_DECLS
-#include "Scintilla.h"
-#include "ScintillaWidget.h"
+/* Forward-declared to avoid including document.h since it includes this header */
+struct GeanyDocument;
/** Default character set to define which characters should be treated as part of a word. */
#define GEANY_WORDCHARS "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
@@ -155,9 +164,9 @@ extern GeanyEditorPrefs editor_prefs;
/** Editor-owned fields for each document. */
-struct GeanyEditor
+typedef struct GeanyEditor
{
- GeanyDocument *document; /**< The document associated with the editor. */
+ struct GeanyDocument *document; /**< The document associated with the editor. */
ScintillaObject *sci; /**< The Scintilla editor @c GtkWidget. */
gboolean line_wrapping; /**< @c TRUE if line wrapping is enabled. */
gboolean auto_indent; /**< @c TRUE if auto-indentation is enabled. */
@@ -166,7 +175,8 @@ struct GeanyEditor
GeanyIndentType indent_type; /* Use editor_get_indent_prefs() instead. */
gboolean line_breaking; /**< Whether to split long lines as you type. */
gint indent_width;
-};
+}
+GeanyEditor;
typedef struct
@@ -182,7 +192,7 @@ typedef struct SCNotification SCNotification;
void editor_init(void);
-GeanyEditor *editor_create(GeanyDocument *doc);
+GeanyEditor *editor_create(struct GeanyDocument *doc);
void editor_destroy(GeanyEditor *editor);
@@ -321,4 +331,4 @@ void editor_insert_snippet(GeanyEditor *editor, gint pos, const gchar *snippet);
G_END_DECLS
-#endif
+#endif /* GEANY_EDITOR_H */
Modified: src/encodings.c
18 lines changed, 11 insertions(+), 7 deletions(-)
===================================================================
@@ -30,17 +30,21 @@
*/
/* Stolen from anjuta */
-#include <string.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
-#include "geany.h"
-#include "utils.h"
-#include "support.h"
-#include "document.h"
-#include "documentprivate.h"
-#include "msgwindow.h"
#include "encodings.h"
+
+#include "app.h"
#include "callbacks.h"
+#include "documentprivate.h"
+#include "support.h"
#include "ui_utils.h"
+#include "utils.h"
+
+#include <string.h>
+
/* <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> */
#define PATTERN_HTMLMETA "<meta\\s+http-equiv\\s*=\\s*\"?content-type\"?\\s+content\\s*=\\s*\"text/x?html;\\s*charset=([a-z0-9_-]+)\"\\s*/?>"
Modified: src/encodings.h
6 lines changed, 4 insertions(+), 2 deletions(-)
===================================================================
@@ -34,7 +34,9 @@
/* Stolen from anjuta */
#ifndef GEANY_ENCODINGS_H
-#define GEANY_ENCODINGS_H
+#define GEANY_ENCODINGS_H 1
+
+#include "gtkcompat.h"
G_BEGIN_DECLS
@@ -199,4 +201,4 @@ GeanyEncodingIndex encodings_get_idx_from_charset(const gchar *charset);
G_END_DECLS
-#endif
+#endif /* GEANY_ENCODINGS_H */
Modified: src/filetypes.c
36 lines changed, 21 insertions(+), 15 deletions(-)
===================================================================
@@ -27,26 +27,31 @@
/* Note: we use filetype_id for some function arguments, but GeanyFiletype is better; we should
* only use GeanyFiletype for API functions. */
-#include <string.h>
-#include <glib/gstdio.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
-#include "geany.h"
#include "filetypes.h"
+
+#include "app.h"
+#include "callbacks.h" /* FIXME: for ignore_callback */
+#include "document.h"
#include "filetypesprivate.h"
+#include "geany.h"
+#include "geanyobject.h"
#include "highlighting.h"
-#include "support.h"
-#include "templates.h"
-#include "document.h"
-#include "editor.h"
-#include "msgwindow.h"
-#include "utils.h"
+#include "projectprivate.h"
#include "sciwrappers.h"
-#include "ui_utils.h"
+#include "support.h"
#include "symbols.h"
-
#include "tm_parser.h"
+#include "utils.h"
+#include "ui_utils.h"
#include <stdlib.h>
+#include <string.h>
+
+#include <glib/gstdio.h>
#define GEANY_FILETYPE_SEARCH_LINES 2 /* lines of file to search for filetype */
@@ -201,11 +206,12 @@ static GeanyFiletype *filetype_new(void)
ft->lang = -2; /* assume no tagmanager parser */
/* pattern must not be null */
ft->pattern = g_new0(gchar*, 1);
- ft->project_list_entry = -1; /* no entry */
ft->indent_width = -1;
ft->indent_type = -1;
ft->priv = g_new0(GeanyFiletypePrivate, 1);
+ ft->priv->project_list_entry = -1; /* no entry */
+
return ft;
}
@@ -805,9 +811,9 @@ static void filetype_free(gpointer data, G_GNUC_UNUSED gpointer user_data)
g_free(ft->comment_close);
g_free(ft->comment_single);
g_free(ft->context_action_cmd);
- g_free(ft->filecmds);
- g_free(ft->ftdefcmds);
- g_free(ft->execcmds);
+ g_free(ft->priv->filecmds);
+ g_free(ft->priv->ftdefcmds);
+ g_free(ft->priv->execcmds);
g_free(ft->error_regex_string);
if (ft->icon)
g_object_unref(ft->icon);
Modified: src/filetypes.h
42 lines changed, 17 insertions(+), 25 deletions(-)
===================================================================
@@ -23,15 +23,20 @@
#ifndef GEANY_FILETYPES_H
#define GEANY_FILETYPES_H 1
-G_BEGIN_DECLS
+#include "geany.h" /* for GEANY() macro */
+#include "tm_source_file.h" /* for langType */
+
+#include "gtkcompat.h" /* Needed by ScintillaWidget.h */
+#include "Scintilla.h" /* Needed by ScintillaWidget.h */
+#include "ScintillaWidget.h" /* for ScintillaObject */
-#include "Scintilla.h"
-#include "ScintillaWidget.h"
+#include <glib.h>
-#ifdef GEANY_PRIVATE
-#include "build.h"
-#endif
+G_BEGIN_DECLS
+
+/* Forward-declared to avoid including document.h since it includes this header */
+struct GeanyDocument;
/* Do not change the order, only append. */
typedef enum
@@ -118,7 +123,7 @@ GeanyFiletypeGroupID;
(((filetype_ptr) != NULL) ? (filetype_ptr)->id : GEANY_FILETYPES_NONE)
/** Represents a filetype. */
-struct GeanyFiletype
+typedef struct GeanyFiletype
{
filetype_id id; /**< Index in @c filetypes_array. */
/** Represents the langType of tagmanager (see the table
@@ -138,7 +143,7 @@ struct GeanyFiletype
gboolean comment_use_indent;
GeanyFiletypeGroupID group;
gchar *error_regex_string;
- GeanyFiletype *lexer_filetype;
+ struct GeanyFiletype *lexer_filetype;
gchar *mime_type;
GIcon *icon;
gchar *comment_single; /* single-line comment */
@@ -147,21 +152,8 @@ struct GeanyFiletype
gint indent_width;
struct GeanyFiletypePrivate *priv; /* must be last, append fields before this item */
-#ifdef GEANY_PRIVATE
- /* Do not use following fields in plugins */
- /* TODO: move these fields into filetypesprivate.h */
- GeanyBuildCommand *filecmds;
- GeanyBuildCommand *ftdefcmds;
- GeanyBuildCommand *execcmds;
- GeanyBuildCommand *homefilecmds;
- GeanyBuildCommand *homeexeccmds;
- GeanyBuildCommand *projfilecmds;
- GeanyBuildCommand *projexeccmds;
- gint project_list_entry;
- gchar *projerror_regex_string;
- gchar *homeerror_regex_string;
-#endif
-};
+}
+GeanyFiletype;
extern GPtrArray *filetypes_array;
@@ -193,7 +185,7 @@ const GSList *filetypes_get_sorted_by_name(void);
const gchar *filetypes_get_display_name(GeanyFiletype *ft);
-GeanyFiletype *filetypes_detect_from_document(GeanyDocument *doc);
+GeanyFiletype *filetypes_detect_from_document(struct GeanyDocument *doc);
GeanyFiletype *filetypes_detect_from_extension(const gchar *utf8_filename);
@@ -221,4 +213,4 @@ gboolean filetype_get_comment_open_close(const GeanyFiletype *ft, gboolean singl
G_END_DECLS
-#endif
+#endif /* GEANY_FILETYPES_H */
Modified: src/filetypesprivate.h
24 lines changed, 22 insertions(+), 2 deletions(-)
===================================================================
@@ -21,7 +21,13 @@
#ifndef GEANY_FILETYPES_PRIVATE_H
-#define GEANY_FILETYPES_PRIVATE_H
+#define GEANY_FILETYPES_PRIVATE_H 1
+
+#include "build.h"
+
+#include "gtkcompat.h"
+
+G_BEGIN_DECLS
/* Private GeanyFiletype fields */
typedef struct GeanyFiletypePrivate
@@ -35,7 +41,21 @@ typedef struct GeanyFiletypePrivate
gboolean xml_indent_tags; /* XML tag autoindentation, for HTML and XML filetypes */
GSList *tag_files;
gboolean warn_color_scheme;
+
+ /* TODO: move to structure in build.h and only put a pointer here */
+ GeanyBuildCommand *filecmds;
+ GeanyBuildCommand *ftdefcmds;
+ GeanyBuildCommand *execcmds;
+ GeanyBuildCommand *homefilecmds;
+ GeanyBuildCommand *homeexeccmds;
+ GeanyBuildCommand *projfilecmds;
+ GeanyBuildCommand *projexeccmds;
+ gint project_list_entry;
+ gchar *projerror_regex_string;
+ gchar *homeerror_regex_string;
}
GeanyFiletypePrivate;
-#endif
+G_END_DECLS
+
+#endif /* GEANY_FILETYPES_PRIVATE_H */
Modified: src/gb.c
5 lines changed, 4 insertions(+), 1 deletions(-)
===================================================================
@@ -23,13 +23,16 @@
* GTK-Bandit.
*/
+#include "utils.h"
+
+#include "gtkcompat.h"
+
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <signal.h>
#include <unistd.h>
#include <gdk-pixbuf/gdk-pixdata.h>
-#include "gtkcompat.h"
#define MAX_PICS 10
#define LOOP_DELAY 200000 /* micro seconds */
Modified: src/geany.h
61 lines changed, 14 insertions(+), 47 deletions(-)
===================================================================
@@ -23,24 +23,18 @@
* externs and function prototypes are implemented in main.c. */
#ifndef GEANY_H
-#define GEANY_H
+#define GEANY_H 1
-#include <gtk/gtk.h>
+/* This is included here for compatibility with when GeanyApp used to be
+ * defined in this header. Some plugins (ex. GeanyLua) include individual
+ * headers instead of geanyplugin.h for some reason so they wouldn't
+ * get the GeanyApp definition if this isn't here. */
+#include "app.h"
-G_BEGIN_DECLS
-
-#if defined(HAVE_CONFIG_H) && defined(GEANY_PRIVATE)
-# include "config.h"
-#endif
+#include <glib.h>
-#include "tm_tagmanager.h"
-
-#ifndef PLAT_GTK
-# define PLAT_GTK 1 /* needed when including ScintillaWidget.h */
-#endif
-/* Compatibility for sharing macros between API and core, overridden in plugindata.h */
-#define GEANY(symbol_name) symbol_name
+G_BEGIN_DECLS
/* for detailed description look in the documentation, things are not
@@ -58,38 +52,6 @@ G_BEGIN_DECLS
#define GEANY_WINDOW_DEFAULT_HEIGHT 600
-
-/* Common forward declarations */
-typedef struct GeanyDocument GeanyDocument;
-typedef struct GeanyEditor GeanyEditor;
-typedef struct GeanyFiletype GeanyFiletype;
-
-
-/** Important application fields. */
-typedef struct GeanyApp
-{
- gboolean debug_mode; /**< @c TRUE if debug messages should be printed. */
- /** User configuration directory, usually @c ~/.config/geany.
- * This is a full path read by @ref tm_get_real_path().
- * @note Plugin configuration files should be saved as:
- * @code g_build_path(G_DIR_SEPARATOR_S, geany->app->configdir, "plugins", "pluginname",
- * "file.conf", NULL); @endcode */
- gchar *configdir;
- gchar *datadir;
- gchar *docdir;
- const TMWorkspace *tm_workspace; /**< TagManager workspace/session tags. */
- struct GeanyProject *project; /**< Currently active project or @c NULL if none is open. */
-}
-GeanyApp;
-
-extern GeanyApp *app;
-
-extern GObject *geany_object;
-
-
-extern gboolean ignore_callback;
-
-
/* prototype is here so that all files can use it. */
void geany_debug(gchar const *format, ...) G_GNUC_PRINTF (1, 2);
@@ -98,6 +60,11 @@ void geany_debug(gchar const *format, ...) G_GNUC_PRINTF (1, 2);
#define G_GNUC_WARN_UNUSED_RESULT
#endif
+/* Re-defined by plugindata.h as something else */
+#ifndef GEANY
+# define GEANY(symbol_name) symbol_name
+#endif
+
G_END_DECLS
-#endif
+#endif /* GEANY_H */
Modified: src/geanyentryaction.c
9 lines changed, 6 insertions(+), 3 deletions(-)
===================================================================
@@ -23,11 +23,14 @@
* This class is missing the action_create_menu_item() function and so can't be
* used for creating menu items. */
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
-#include "geany.h"
-#include "support.h"
-#include "ui_utils.h"
#include "geanyentryaction.h"
+
+#include "ui_utils.h"
+
#include <ctype.h>
Modified: src/geanyentryaction.h
4 lines changed, 3 insertions(+), 1 deletions(-)
===================================================================
@@ -21,7 +21,9 @@
#ifndef GEANY_ENTRY_ACTION_H
-#define GEANY_ENTRY_ACTION_H
+#define GEANY_ENTRY_ACTION_H 1
+
+#include "gtkcompat.h"
G_BEGIN_DECLS
Modified: src/geanymenubuttonaction.c
7 lines changed, 4 insertions(+), 3 deletions(-)
===================================================================
@@ -23,12 +23,13 @@
* This class is missing the action_create_menu_item() function and so can't be
* used for creating menu items. */
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
-#include "geany.h"
-#include "support.h"
-#include "utils.h"
#include "geanymenubuttonaction.h"
+#include "utils.h"
typedef struct _GeanyMenubuttonActionPrivate GeanyMenubuttonActionPrivate;
Modified: src/geanymenubuttonaction.h
4 lines changed, 3 insertions(+), 1 deletions(-)
===================================================================
@@ -21,7 +21,9 @@
#ifndef GEANY_MENU_BUTTON_ACTION_H
-#define GEANY_MENU_BUTTON_ACTION_H
+#define GEANY_MENU_BUTTON_ACTION_H 1
+
+#include "gtkcompat.h"
G_BEGIN_DECLS
Modified: src/geanyobject.c
5 lines changed, 4 insertions(+), 1 deletions(-)
===================================================================
@@ -32,7 +32,10 @@
* Emitted just after loading main keyfile settings.
*/
-#include "geany.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
#include "geanyobject.h"
/* extern in geany.h */
Modified: src/geanyobject.h
17 lines changed, 12 insertions(+), 5 deletions(-)
===================================================================
@@ -20,10 +20,17 @@
*/
-#ifndef GEANYOBJECT_H
-#define GEANYOBJECT_H
+#ifndef GEANY_OBJECT_H
+#define GEANY_OBJECT_H 1
+
+#include "document.h"
+#include "editor.h"
+#include "filetypes.h"
+
+#include "Scintilla.h"
+
+#include "gtkcompat.h"
-#include <glib-object.h>
G_BEGIN_DECLS
@@ -73,7 +80,7 @@ struct _GeanyObject
/* add your public declarations here */
};
-struct SCNotification;
+extern GObject *geany_object;
struct _GeanyObjectClass
{
@@ -106,4 +113,4 @@ GObject* geany_object_new (void);
G_END_DECLS
-#endif /* GEANYOBJECT_H */
+#endif /* GEANY_OBJECT_H */
Modified: src/geanywraplabel.c
5 lines changed, 3 insertions(+), 2 deletions(-)
===================================================================
@@ -24,9 +24,10 @@
* (inspired by libview's WrapLabel, http://view.sourceforge.net)
*/
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
-#include "geany.h"
-#include "utils.h"
#include "geanywraplabel.h"
Modified: src/geanywraplabel.h
4 lines changed, 3 insertions(+), 1 deletions(-)
===================================================================
@@ -20,7 +20,9 @@
*/
#ifndef GEANY_WRAP_LABEL_H
-#define GEANY_WRAP_LABEL_H
+#define GEANY_WRAP_LABEL_H 1
+
+#include "gtkcompat.h"
G_BEGIN_DECLS
Modified: src/gtkcompat.h
2 lines changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -21,7 +21,7 @@
/* Compatibility macros to support older GTK+ versions */
#ifndef GTK_COMPAT_H
-#define GTK_COMPAT_H
+#define GTK_COMPAT_H 1
#include <gtk/gtk.h>
#if GTK_CHECK_VERSION(3, 0, 0)
Modified: src/highlighting.c
37 lines changed, 19 insertions(+), 18 deletions(-)
===================================================================
@@ -25,30 +25,31 @@
* Syntax highlighting for the different filetypes, using the Scintilla lexers.
*/
-#include "geany.h"
-
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <glib.h>
-#include <glib/gprintf.h>
-
-#include "SciLexer.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
#include "highlighting.h"
+#include "highlightingmappings.h"
+
+#include "app.h"
+#include "dialogs.h"
+#include "document.h"
#include "editor.h"
-#include "utils.h"
-#include "filetypes.h"
+#include "filetypesprivate.h"
+#include "sciwrappers.h"
+#include "support.h"
#include "symbols.h"
#include "ui_utils.h"
#include "utils.h"
-#include "main.h"
-#include "support.h"
-#include "sciwrappers.h"
-#include "document.h"
-#include "dialogs.h"
-#include "filetypesprivate.h"
-#include "highlightingmappings.h"
+#include "SciLexer.h"
+
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include <glib.h>
+#include <glib/gprintf.h>
#define GEANY_COLORSCHEMES_SUBDIR "colorschemes"
Modified: src/highlighting.h
13 lines changed, 9 insertions(+), 4 deletions(-)
===================================================================
@@ -23,11 +23,16 @@
#ifndef GEANY_HIGHLIGHTING_H
#define GEANY_HIGHLIGHTING_H 1
-G_BEGIN_DECLS
+#include "filetypes.h"
+
+#include "gtkcompat.h" /* Needed by ScintillaWidget.h */
+#include "Scintilla.h" /* Needed by ScintillaWidget.h */
+#include "ScintillaWidget.h" /* for ScintillaObject */
-#include "Scintilla.h"
-#include "ScintillaWidget.h"
+#include <glib.h>
+
+G_BEGIN_DECLS
/** Fields representing the different attributes of a Scintilla lexer style.
* @see Scintilla messages @c SCI_STYLEGETFORE, etc, for use with scintilla_send_message(). */
@@ -57,4 +62,4 @@ void highlighting_show_color_scheme_dialog(void);
G_END_DECLS
-#endif
+#endif /* GEANY_HIGHLIGHTING_H */
Modified: src/highlightingmappings.h
12 lines changed, 9 insertions(+), 3 deletions(-)
===================================================================
@@ -21,11 +21,16 @@
*/
-#ifndef GEANY_HIGHLIGHTINGMAPPINGS_H
-#define GEANY_HIGHLIGHTINGMAPPINGS_H 1
+#ifndef GEANY_HIGHLIGHTING_MAPPINGS_H
+#define GEANY_HIGHLIGHTING_MAPPINGS_H 1
#include "Scintilla.h"
+#include "SciLexer.h"
+#include <glib.h>
+
+
+G_BEGIN_DECLS
/* contains all filtypes informations in the form of:
* - highlighting_lexer_LANG: the SCI lexer
@@ -1560,5 +1565,6 @@ static const HLKeyword highlighting_keywords_YAML[] =
};
#define highlighting_properties_YAML EMPTY_PROPERTIES
+G_END_DECLS
-#endif /* guard */
+#endif /* GEANY_HIGHLIGHTING_MAPPINGS_H */
Modified: src/keybindings.c
45 lines changed, 21 insertions(+), 24 deletions(-)
===================================================================
@@ -27,39 +27,36 @@
* @see plugin_set_key_group().
**/
-
-#include "geany.h"
-
-#include <gdk/gdkkeysyms.h>
-#include <string.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
#include "keybindings.h"
-#include "support.h"
-#include "utils.h"
-#include "ui_utils.h"
-#include "document.h"
+
+#include "app.h"
+#include "build.h"
+#include "callbacks.h"
#include "documentprivate.h"
#include "filetypes.h"
-#include "callbacks.h"
-#include "prefs.h"
+#include "keybindingsprivate.h"
#include "msgwindow.h"
-#include "editor.h"
-#include "sciwrappers.h"
-#include "build.h"
-#include "tools.h"
#include "navqueue.h"
+#include "notebook.h"
+#include "prefs.h"
+#include "sciwrappers.h"
+#include "sidebar.h"
+#include "support.h"
#include "symbols.h"
-#include "vte.h"
#include "toolbar.h"
-#include "sidebar.h"
-#include "notebook.h"
-#include "geanywraplabel.h"
-#include "main.h"
-#include "search.h"
+#include "tools.h"
+#include "ui_utils.h"
+#include "utils.h"
+#include "vte.h"
+
#include "gtkcompat.h"
-#ifdef HAVE_VTE
-# include "vte.h"
-#endif
+
+#include <gdk/gdkkeysyms.h>
+#include <string.h>
GPtrArray *keybinding_groups; /* array of GeanyKeyGroup pointers, in visual order */
Modified: src/keybindings.h
18 lines changed, 3 insertions(+), 15 deletions(-)
===================================================================
@@ -22,6 +22,8 @@
#ifndef GEANY_KEYBINDINGS_H
#define GEANY_KEYBINDINGS_H 1
+#include "gtkcompat.h"
+
G_BEGIN_DECLS
/** Function pointer type used for keybinding callbacks. */
@@ -57,20 +59,6 @@ typedef gboolean (*GeanyKeyGroupCallback) (guint key_id);
/** A collection of keybindings grouped together. */
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" */
- const gchar *label; /* Group label used in the preferences dialog keybindings tab */
- GeanyKeyGroupCallback callback; /* use this or individual keybinding callbacks */
- gboolean plugin; /* used by plugin */
- GPtrArray *key_items; /* pointers to GeanyKeyBinding structs */
- gsize plugin_key_count; /* number of keybindings the group holds */
- GeanyKeyBinding *plugin_keys; /* array of GeanyKeyBinding structs */
-};
-#endif
-
extern GPtrArray *keybinding_groups; /* array of GeanyKeyGroup pointers */
@@ -290,4 +278,4 @@ void keybindings_dialog_show_prefs_scroll(const gchar *name);
G_END_DECLS
-#endif
+#endif /* GEANY_KEYBINDINGS_H */
Modified: src/keybindingsprivate.h
45 lines changed, 45 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,45 @@
+/*
+ * keybindingsprivate.h - this file is part of Geany, a fast and lightweight IDE
+ *
+ * Copyright 2006-2014 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ * Copyright 2006-2014 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ * Copyright 2014 Matthew Brush <matt at geany.org>
+ *
+ * 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.
+ */
+
+#ifndef GEANY_KEYBINDINGS_PRIVATE_H
+#define GEANY_KEYBINDINGS_PRIVATE_H 1
+
+#include "keybindings.h"
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+struct GeanyKeyGroup
+{
+ const gchar *name; /* Group name used in the configuration file, such as @c "html_chars" */
+ const gchar *label; /* Group label used in the preferences dialog keybindings tab */
+ GeanyKeyGroupCallback callback; /* use this or individual keybinding callbacks */
+ gboolean plugin; /* used by plugin */
+ GPtrArray *key_items; /* pointers to GeanyKeyBinding structs */
+ gsize plugin_key_count; /* number of keybindings the group holds */
+ GeanyKeyBinding *plugin_keys; /* array of GeanyKeyBinding structs */
+};
+
+G_END_DECLS
+
+#endif /* GEANY_KEYBINDINGS_PRIVATE_H */
Modified: src/keyfile.c
46 lines changed, 25 insertions(+), 21 deletions(-)
===================================================================
@@ -28,37 +28,41 @@
* filename_xx=pos;filetype UID;read only;Eencoding;use_tabs;auto_indent;line_wrapping;filename
*/
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "geany.h"
-
-#ifdef HAVE_VTE
-#include <pwd.h>
-#include <sys/types.h>
-#include <unistd.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
#endif
-#include "support.h"
#include "keyfile.h"
-#include "prefs.h"
-#include "ui_utils.h"
-#include "utils.h"
+
+#include "app.h"
+#include "build.h"
#include "document.h"
-#include "filetypes.h"
-#include "sciwrappers.h"
#include "encodings.h"
-#include "vte.h"
+#include "filetypes.h"
+#include "geanyobject.h"
#include "main.h"
#include "msgwindow.h"
-#include "search.h"
-#include "project.h"
-#include "editor.h"
+#include "prefs.h"
#include "printing.h"
+#include "project.h"
+#include "sciwrappers.h"
+#include "stash.h"
+#include "support.h"
#include "templates.h"
#include "toolbar.h"
-#include "stash.h"
+#include "ui_utils.h"
+#include "utils.h"
+#include "vte.h"
+
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#ifdef HAVE_VTE
+#include <pwd.h>
+#include <sys/types.h>
+#include <unistd.h>
+#endif
/* some default settings which are used at the very first start of Geany to fill
Modified: src/keyfile.h
7 lines changed, 6 insertions(+), 1 deletions(-)
===================================================================
@@ -23,6 +23,9 @@
#ifndef GEANY_KEYFILE_H
#define GEANY_KEYFILE_H 1
+#include <glib.h>
+
+G_BEGIN_DECLS
extern GPtrArray *pref_groups;
@@ -55,4 +58,6 @@ void configuration_save_session_files(GKeyFile *config);
* realisation of the main window */
void configuration_apply_settings(void);
-#endif
+G_END_DECLS
+
+#endif /* GEANY_KEYFILE_H */
Modified: src/log.c
13 lines changed, 9 insertions(+), 4 deletions(-)
===================================================================
@@ -23,17 +23,22 @@
* Logging functions and the debug messages window.
*/
-#include "geany.h"
-
-#ifdef HAVE_LOCALE_H
-# include <locale.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
#endif
#include "log.h"
+
+#include "app.h"
#include "support.h"
#include "utils.h"
#include "ui_utils.h"
+#include "gtkcompat.h"
+
+#ifdef HAVE_LOCALE_H
+# include <locale.h>
+#endif
static GString *log_buffer = NULL;
static GtkTextBuffer *dialog_textbuffer = NULL;
Modified: src/log.h
10 lines changed, 8 insertions(+), 2 deletions(-)
===================================================================
@@ -21,7 +21,11 @@
#ifndef GEANY_LOG_H
-#define GEANY_LOG_H
+#define GEANY_LOG_H 1
+
+#include <glib.h>
+
+G_BEGIN_DECLS
void log_handlers_init(void);
@@ -29,4 +33,6 @@ void log_finalize(void);
void log_show_debug_messages_dialog(void);
-#endif
+G_END_DECLS
+
+#endif /* GEANY_LOG_H */
Modified: src/main.c
81 lines changed, 38 insertions(+), 43 deletions(-)
===================================================================
@@ -25,63 +25,57 @@
* Handles program initialization and cleanup.
*/
-#include <signal.h>
-#include <time.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "geany.h"
-#include <glib/gstdio.h>
-
-#ifdef HAVE_LOCALE_H
-# include <locale.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
#endif
#include "main.h"
-#include "prefix.h"
-#include "prefs.h"
-#include "support.h"
+
+#include "app.h"
+#include "build.h"
#include "callbacks.h"
-#include "log.h"
-#include "ui_utils.h"
-#include "utils.h"
+#include "dialogs.h"
#include "document.h"
+#include "encodings.h"
#include "filetypes.h"
+#include "geanyobject.h"
+#include "highlighting.h"
+#include "keybindings.h"
#include "keyfile.h"
-#include "win32.h"
+#include "log.h"
#include "msgwindow.h"
-#include "dialogs.h"
-#include "templates.h"
-#include "encodings.h"
-#include "sidebar.h"
-#include "notebook.h"
-#include "keybindings.h"
-#include "editor.h"
-#include "search.h"
-#include "build.h"
-#include "highlighting.h"
-#include "symbols.h"
-#include "project.h"
-#include "tools.h"
#include "navqueue.h"
+#include "notebook.h"
#include "plugins.h"
+#include "prefs.h"
#include "printing.h"
-#include "toolbar.h"
-#include "geanyobject.h"
-
+#include "sidebar.h"
#ifdef HAVE_SOCKET
# include "socket.h"
#endif
+#include "support.h"
+#include "symbols.h"
+#include "templates.h"
+#include "toolbar.h"
+#include "tools.h"
+#include "ui_utils.h"
+#include "utils.h"
+#include "vte.h"
-#ifdef HAVE_VTE
-# include "vte.h"
-#endif
+#include "gtkcompat.h"
-#ifndef N_
-# define N_(String) (String)
+#include <signal.h>
+#include <time.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <errno.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <glib/gstdio.h>
+
+#ifdef HAVE_LOCALE_H
+# include <locale.h>
#endif
@@ -495,8 +489,8 @@ void main_locale_init(const gchar *locale_dir, const gchar *package)
l_locale_dir = g_strdup(locale_dir);
#endif
- bindtextdomain(package, l_locale_dir);
- bind_textdomain_codeset(package, "UTF-8");
+ (void) bindtextdomain(package, l_locale_dir);
+ (void) bind_textdomain_codeset(package, "UTF-8");
g_free(l_locale_dir);
}
@@ -553,6 +547,7 @@ static void parse_command_line_options(gint *argc, gchar ***argv)
}
context = g_option_context_new(_("[FILES...]"));
+
g_option_context_add_main_entries(context, entries, GETTEXT_PACKAGE);
g_option_group_set_translation_domain(g_option_context_get_main_group(context), GETTEXT_PACKAGE);
g_option_context_add_group(context, gtk_get_option_group(FALSE));
Modified: src/main.h
10 lines changed, 8 insertions(+), 2 deletions(-)
===================================================================
@@ -21,7 +21,11 @@
#ifndef GEANY_MAIN_H
-#define GEANY_MAIN_H
+#define GEANY_MAIN_H 1
+
+#include <glib.h>
+
+G_BEGIN_DECLS
typedef struct
{
@@ -68,4 +72,6 @@ gboolean main_is_realized(void);
void main_load_project_from_command_line(const gchar *locale_filename, gboolean use_session);
-#endif
+G_END_DECLS
+
+#endif /* GEANY_MAIN_H */
Modified: src/msgwindow.c
24 lines changed, 13 insertions(+), 11 deletions(-)
===================================================================
@@ -27,22 +27,24 @@
* @see GeanyMainWidgets::message_window_notebook to append a new notebook page.
**/
-#include "geany.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
-#include "support.h"
-#include "prefs.h"
-#include "callbacks.h"
-#include "ui_utils.h"
-#include "utils.h"
+#include "msgwindow.h"
+
+#include "build.h"
#include "document.h"
+#include "callbacks.h"
#include "filetypes.h"
-#include "build.h"
+#include "keybindings.h"
#include "main.h"
-#include "vte.h"
#include "navqueue.h"
-#include "editor.h"
-#include "msgwindow.h"
-#include "keybindings.h"
+#include "prefs.h"
+#include "support.h"
+#include "ui_utils.h"
+#include "utils.h"
+#include "vte.h"
#include <string.h>
#include <stdlib.h>
Modified: src/msgwindow.h
7 lines changed, 6 insertions(+), 1 deletions(-)
===================================================================
@@ -22,6 +22,11 @@
#ifndef GEANY_MSGWINDOW_H
#define GEANY_MSGWINDOW_H 1
+#include "document.h"
+
+#include "gtkcompat.h"
+
+
G_BEGIN_DECLS
/**
@@ -104,4 +109,4 @@ gboolean msgwin_goto_messages_file_line(gboolean focus_editor);
G_END_DECLS
-#endif
+#endif /* GEANY_MSGWINDOW_H */
Modified: src/navqueue.c
17 lines changed, 10 insertions(+), 7 deletions(-)
===================================================================
@@ -24,16 +24,19 @@
* Simple code navigation
*/
-#include "geany.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
-#include "sciwrappers.h"
-#include "document.h"
-#include "utils.h"
-#include "support.h"
-#include "ui_utils.h"
-#include "editor.h"
#include "navqueue.h"
+
+#include "document.h"
+#include "geanyobject.h"
+#include "sciwrappers.h"
#include "toolbar.h"
+#include "utils.h"
+
+#include "gtkcompat.h"
/* for the navigation history queue */
Modified: src/navqueue.h
9 lines changed, 7 insertions(+), 2 deletions(-)
===================================================================
@@ -29,6 +29,11 @@
#ifndef GEANY_NAVQUEUE_H
#define GEANY_NAVQUEUE_H 1
+#include "document.h"
+
+#include <glib.h>
+
+G_BEGIN_DECLS
void navqueue_init(void);
@@ -36,12 +41,12 @@ void navqueue_free(void);
void navqueue_remove_file(const gchar *filename);
-
gboolean navqueue_goto_line(GeanyDocument *old_doc, GeanyDocument *new_doc, gint line);
void navqueue_go_back(void);
void navqueue_go_forward(void);
+G_END_DECLS
-#endif
+#endif /* GEANY_NAVQUEUE_H */
Modified: src/notebook.c
23 lines changed, 13 insertions(+), 10 deletions(-)
===================================================================
@@ -23,23 +23,26 @@
* Notebook tab Drag 'n' Drop reordering and tab management.
*/
-#include "geany.h"
-
-#include <gdk/gdkkeysyms.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
#include "notebook.h"
-#include "document.h"
-#include "editor.h"
-#include "documentprivate.h"
-#include "ui_utils.h"
-#include "sidebar.h"
-#include "support.h"
+
#include "callbacks.h"
-#include "utils.h"
+#include "documentprivate.h"
+#include "geanyobject.h"
#include "keybindings.h"
#include "main.h"
+#include "support.h"
+#include "ui_utils.h"
+#include "utils.h"
+
#include "gtkcompat.h"
+#include <gdk/gdkkeysyms.h>
+
+
#define GEANY_DND_NOTEBOOK_TAB_TYPE "geany_dnd_notebook_tab"
static const GtkTargetEntry drag_targets[] =
Modified: src/notebook.h
10 lines changed, 9 insertions(+), 1 deletions(-)
===================================================================
@@ -22,6 +22,12 @@
#ifndef GEANY_NOTEBOOK_H
#define GEANY_NOTEBOOK_H 1
+#include "document.h"
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
void notebook_init(void);
void notebook_free(void);
@@ -40,4 +46,6 @@ void notebook_switch_tablastused(void);
* document yet). */
gboolean notebook_switch_in_progress(void);
-#endif
+G_END_DECLS
+
+#endif /* GEANY_NOTEBOOK_H */
Modified: src/plugindata.h
18 lines changed, 10 insertions(+), 8 deletions(-)
===================================================================
@@ -29,8 +29,15 @@
* when making changes (see 'Keeping the plugin ABI stable' in the HACKING file). */
-#ifndef GEANY_PLUGINDATA_H
-#define GEANY_PLUGINDATA_H
+#ifndef GEANY_PLUGIN_DATA_H
+#define GEANY_PLUGIN_DATA_H 1
+
+#include "build.h" /* GeanyBuildGroup, GeanyBuildSource, GeanyBuildCmdEntries enums */
+#include "document.h" /* GeanyDocument */
+#include "editor.h" /* GeanyEditor, GeanyIndentType */
+#include "filetypes.h" /* GeanyFiletype */
+
+#include "gtkcompat.h"
G_BEGIN_DECLS
@@ -39,10 +46,6 @@ G_BEGIN_DECLS
#undef GEANY
#define GEANY(symbol_name) geany->symbol_name
-#include "editor.h" /* GeanyIndentType */
-#include "build.h" /* GeanyBuildGroup, GeanyBuildSource, GeanyBuildCmdEntries enums */
-#include "gtkcompat.h"
-
/** The Application Programming Interface (API) version, incremented
* whenever any plugin data types are modified or appended to.
@@ -292,7 +295,6 @@ 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
{
@@ -752,4 +754,4 @@ BuildFuncs;
G_END_DECLS
-#endif
+#endif /* GEANY_PLUGIN_DATA_H */
Modified: src/pluginprivate.h
11 lines changed, 8 insertions(+), 3 deletions(-)
===================================================================
@@ -20,13 +20,17 @@
*/
-#ifndef GEANY_PLUGINPRIVATE_H
-#define GEANY_PLUGINPRIVATE_H
+#ifndef GEANY_PLUGIN_PRIVATE_H
+#define GEANY_PLUGIN_PRIVATE_H 1
#include "plugindata.h"
#include "ui_utils.h" /* GeanyAutoSeparator */
#include "keybindings.h" /* GeanyKeyGroup */
+#include "gtkcompat.h"
+
+
+G_BEGIN_DECLS
typedef struct SignalConnection
{
@@ -63,5 +67,6 @@ typedef GeanyPluginPrivate Plugin; /* shorter alias */
void plugin_watch_object(Plugin *plugin, gpointer object);
+G_END_DECLS
-#endif /* GEANY_PLUGINPRIVATE_H */
+#endif /* GEANY_PLUGIN_PRIVATE_H */
Modified: src/plugins.c
53 lines changed, 25 insertions(+), 28 deletions(-)
===================================================================
@@ -21,44 +21,41 @@
/* Code to manage, load and unload plugins. */
-#include "geany.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
#ifdef HAVE_PLUGINS
-#include <string.h>
-
-#include "Scintilla.h"
-#include "ScintillaWidget.h"
-
-#include "prefix.h"
#include "plugins.h"
-#include "plugindata.h"
-#include "support.h"
-#include "utils.h"
-#include "document.h"
-#include "filetypes.h"
-#include "templates.h"
-#include "sciwrappers.h"
-#include "ui_utils.h"
-#include "editor.h"
+
+#include "app.h"
#include "dialogs.h"
-#include "msgwindow.h"
-#include "prefs.h"
-#include "geanywraplabel.h"
-/* #include "build.h" included in plugindata.h so it can use enums */
#include "encodings.h"
-#include "search.h"
+#include "geanyobject.h"
+#include "geanywraplabel.h"
#include "highlighting.h"
-#include "keybindings.h"
-#include "navqueue.h"
+#include "keybindingsprivate.h"
+#include "keyfile.h"
#include "main.h"
-#include "toolbar.h"
+#include "msgwindow.h"
+#include "navqueue.h"
+#include "plugindata.h"
+#include "pluginprivate.h"
+#include "pluginutils.h"
+#include "prefs.h"
+#include "sciwrappers.h"
#include "stash.h"
+#include "support.h"
#include "symbols.h"
-#include "keyfile.h"
-#include "win32.h"
-#include "pluginutils.h"
-#include "pluginprivate.h"
+#include "templates.h"
+#include "toolbar.h"
+#include "ui_utils.h"
+#include "utils.h"
+
+#include "gtkcompat.h"
+
+#include <string.h>
GList *active_plugin_list = NULL; /* list of only actually loaded plugins, always valid */
Modified: src/plugins.h
12 lines changed, 9 insertions(+), 3 deletions(-)
===================================================================
@@ -21,10 +21,14 @@
#ifndef GEANY_PLUGINS_H
-#define GEANY_PLUGINS_H
+#define GEANY_PLUGINS_H 1
#ifdef HAVE_PLUGINS
+#include <glib.h>
+
+G_BEGIN_DECLS
+
extern GList *active_plugin_list;
@@ -36,6 +40,8 @@ void plugins_load_active(void);
gboolean plugins_have_preferences(void);
-#endif
+G_END_DECLS
+
+#endif /* HAVE_PLUGINS */
-#endif
+#endif /* GEANY_PLUGINS_H */
Modified: src/pluginutils.c
15 lines changed, 10 insertions(+), 5 deletions(-)
===================================================================
@@ -23,18 +23,23 @@
* Plugin utility functions.
* These functions all take the @ref geany_plugin symbol as their first argument. */
-#include "geany.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
#ifdef HAVE_PLUGINS
#include "pluginutils.h"
-#include "pluginprivate.h"
-#include "ui_utils.h"
+#include "app.h"
+#include "geanyobject.h"
+#include "plugindata.h"
+#include "pluginprivate.h"
+#include "plugins.h"
+#include "support.h"
#include "toolbar.h"
+#include "ui_utils.h"
#include "utils.h"
-#include "support.h"
-#include "plugins.h"
/** Inserts a toolbar item before the Quit button, or after the previous plugin toolbar item.
Modified: src/pluginutils.h
11 lines changed, 8 insertions(+), 3 deletions(-)
===================================================================
@@ -20,13 +20,16 @@
*/
-#ifndef GEANY_PLUGINUTILS_H
-#define GEANY_PLUGINUTILS_H
+#ifndef GEANY_PLUGIN_UTILS_H
+#define GEANY_PLUGIN_UTILS_H 1
#ifdef HAVE_PLUGINS
#include "keybindings.h" /* GeanyKeyGroupCallback */
+#include "gtkcompat.h"
+
+G_BEGIN_DECLS
/* avoid including plugindata.h otherwise this redefines the GEANY() macro */
struct GeanyPlugin;
@@ -56,5 +59,7 @@ void plugin_show_configure(struct GeanyPlugin *plugin);
void plugin_builder_connect_signals(struct GeanyPlugin *plugin,
GtkBuilder *builder, gpointer user_data);
+G_END_DECLS
+
#endif /* HAVE_PLUGINS */
-#endif /* GEANY_PLUGINUTILS_H */
+#endif /* GEANY_PLUGIN_UTILS_H */
Modified: src/prefix.c
2 lines changed, 0 insertions(+), 2 deletions(-)
===================================================================
@@ -11,12 +11,10 @@
* to br_*", try renaming prefix.c to prefix.cpp
*/
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
-
/*
* enrico - all the code below is only compiled and used if ENABLE_BINRELOC is set in config.h,
* this only happens if configure option --enable-binreloc was used
Modified: src/prefix.h
7 lines changed, 6 insertions(+), 1 deletions(-)
===================================================================
@@ -15,7 +15,7 @@
*/
#ifndef GEANY_PREFIX_H
-#define GEANY_PREFIX_H
+#define GEANY_PREFIX_H 1
/*
@@ -24,6 +24,10 @@
*/
#ifdef ENABLE_BINRELOC
+#include <glib.h>
+
+G_BEGIN_DECLS
+
/* WARNING, BEFORE YOU MODIFY PREFIX.C:
*
@@ -90,6 +94,7 @@ char *br_locate (void *symbol);
char *br_locate_prefix (void *symbol);
char *br_prepend_prefix (void *symbol, char *path);
+G_END_DECLS
#endif /* ENABLE_BINRELOC */
Modified: src/prefs.c
49 lines changed, 23 insertions(+), 26 deletions(-)
===================================================================
@@ -29,42 +29,39 @@
* New 'simple' prefs should use Stash code in keyfile.c - init_pref_groups().
*/
-#include <stdlib.h>
-#include <string.h>
-#include <gdk/gdkkeysyms.h>
-
-#include "geany.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
#include "prefs.h"
-#include "support.h"
+
+#include "app.h"
#include "dialogs.h"
-#include "ui_utils.h"
-#include "utils.h"
-#include "sciwrappers.h"
-#include "document.h"
#include "documentprivate.h"
-#include "msgwindow.h"
-#include "keyfile.h"
-#include "keybindings.h"
-#include "encodings.h"
-#include "project.h"
#include "editor.h"
-#include "main.h"
-#include "sidebar.h"
-#include "printing.h"
+#include "encodings.h"
+#include "filetypes.h"
#include "geanywraplabel.h"
+#include "keybindingsprivate.h"
+#include "keyfile.h"
+#include "msgwindow.h"
+#include "prefs.h"
+#include "printing.h"
+#include "sidebar.h"
+#include "stash.h"
+#include "support.h"
#include "templates.h"
-#include "search.h"
#include "toolbar.h"
#include "tools.h"
-#include "stash.h"
-#include "keyfile.h"
-#include "filetypes.h"
-#include "win32.h"
+#include "ui_utils.h"
+#include "utils.h"
+#include "vte.h"
-#ifdef HAVE_VTE
-# include "vte.h"
-#endif
+#include "gtkcompat.h"
+
+#include <stdlib.h>
+#include <string.h>
+#include <gdk/gdkkeysyms.h>
GeanyPrefs prefs;
Modified: src/prefs.h
4 lines changed, 3 insertions(+), 1 deletions(-)
===================================================================
@@ -22,6 +22,8 @@
#ifndef GEANY_PREFS_H
#define GEANY_PREFS_H 1
+#include <glib.h>
+
G_BEGIN_DECLS
/** General Preferences dialog settings. */
@@ -62,4 +64,4 @@ void prefs_kb_search_name(const gchar *search);
G_END_DECLS
-#endif
+#endif /* GEANY_PREFS_H */
Modified: src/printing.c
24 lines changed, 14 insertions(+), 10 deletions(-)
===================================================================
@@ -26,22 +26,26 @@
* (basic code layout were adopted from Sylpheed's printing implementation, thanks)
*/
-#include <math.h>
-#include <time.h>
-#include <string.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
-#include "geany.h"
#include "printing.h"
+
+#include "app.h"
+#include "dialogs.h"
#include "document.h"
+#include "geany.h"
+#include "highlighting.h"
+#include "msgwindow.h"
#include "sciwrappers.h"
-#include "editor.h"
-#include "utils.h"
#include "support.h"
-#include "dialogs.h"
+#include "utils.h"
#include "ui_utils.h"
-#include "msgwindow.h"
-#include "highlighting.h"
-#include "Scintilla.h"
+
+#include <math.h>
+#include <time.h>
+#include <string.h>
PrintingPrefs printing_prefs;
Modified: src/printing.h
9 lines changed, 8 insertions(+), 1 deletions(-)
===================================================================
@@ -23,6 +23,11 @@
#ifndef GEANY_PRINTING_H
#define GEANY_PRINTING_H 1
+#include "document.h"
+
+#include <glib.h>
+
+G_BEGIN_DECLS
/* General printing preferences. */
typedef struct PrintingPrefs
@@ -43,4 +48,6 @@ void printing_page_setup_gtk(void);
void printing_print_doc(GeanyDocument *doc);
-#endif
+G_END_DECLS
+
+#endif /* GEANY_PRINTING_H */
Modified: src/project.c
84 lines changed, 43 insertions(+), 41 deletions(-)
===================================================================
@@ -23,29 +23,31 @@
* Project Management.
*/
-#include "geany.h"
-
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
#include "project.h"
-#include "projectprivate.h"
+#include "app.h"
+#include "build.h"
#include "dialogs.h"
-#include "support.h"
-#include "utils.h"
-#include "ui_utils.h"
#include "document.h"
-#include "msgwindow.h"
-#include "main.h"
-#include "keyfile.h"
-#include "win32.h"
-#include "build.h"
#include "editor.h"
-#include "stash.h"
+#include "filetypesprivate.h"
+#include "geanyobject.h"
+#include "keyfile.h"
+#include "main.h"
+#include "projectprivate.h"
#include "sidebar.h"
-#include "filetypes.h"
+#include "stash.h"
+#include "support.h"
+#include "ui_utils.h"
+#include "utils.h"
+
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
ProjectPrefs project_prefs = { NULL, FALSE, FALSE };
@@ -338,10 +340,10 @@ static void remove_foreach_project_filetype(gpointer data, gpointer user_data)
GeanyFiletype *ft = data;
if (ft != NULL)
{
- SETPTR(ft->projfilecmds, NULL);
- SETPTR(ft->projexeccmds, NULL);
- SETPTR(ft->projerror_regex_string, NULL);
- ft->project_list_entry = -1;
+ SETPTR(ft->priv->projfilecmds, NULL);
+ SETPTR(ft->priv->projexeccmds, NULL);
+ SETPTR(ft->priv->projerror_regex_string, NULL);
+ ft->priv->project_list_entry = -1;
}
}
@@ -366,10 +368,10 @@ void project_close(gboolean open_default)
ui_set_statusbar(TRUE, _("Project \"%s\" closed."), app->project->name);
/* remove project filetypes build entries */
- if (app->project->build_filetypes_list != NULL)
+ if (app->project->priv->build_filetypes_list != NULL)
{
- g_ptr_array_foreach(app->project->build_filetypes_list, remove_foreach_project_filetype, NULL);
- g_ptr_array_free(app->project->build_filetypes_list, FALSE);
+ g_ptr_array_foreach(app->project->priv->build_filetypes_list, remove_foreach_project_filetype, NULL);
+ g_ptr_array_free(app->project->priv->build_filetypes_list, FALSE);
}
/* remove project non filetype build menu items */
@@ -523,7 +525,7 @@ static void show_project_properties(gboolean show_build)
gtk_entry_set_text(GTK_ENTRY(e.base_path), p->base_path);
radio_long_line_custom = ui_lookup_widget(e.dialog, "radio_long_line_custom_project");
- switch (p->long_line_behaviour)
+ switch (p->priv->long_line_behaviour)
{
case 0: widget = ui_lookup_widget(e.dialog, "radio_long_line_disabled_project"); break;
case 1: widget = ui_lookup_widget(e.dialog, "radio_long_line_default_project"); break;
@@ -532,7 +534,7 @@ static void show_project_properties(gboolean show_build)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
widget = ui_lookup_widget(e.dialog, "spin_long_line_project");
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), (gdouble)p->long_line_column);
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), (gdouble)p->priv->long_line_column);
on_radio_long_line_custom_toggled(GTK_TOGGLE_BUTTON(radio_long_line_custom), widget);
if (p->description != NULL)
@@ -627,8 +629,8 @@ static GeanyProject *create_project(void)
project->file_patterns = NULL;
- project->long_line_behaviour = 1 /* use global settings */;
- project->long_line_column = editor_prefs.long_line_column;
+ project->priv->long_line_behaviour = 1 /* use global settings */;
+ project->priv->long_line_column = editor_prefs.long_line_column;
app->project = project;
return project;
@@ -756,33 +758,33 @@ static gboolean update_config(const PropertyDialogElements *e, gboolean new_proj
stash_group_update(node->data, e->dialog);
/* read the project build menu */
- oldvalue = ft ? ft->projfilecmds : NULL;
+ oldvalue = ft ? ft->priv->projfilecmds : NULL;
build_read_project(ft, e->build_properties);
- if (ft != NULL && ft->projfilecmds != oldvalue && ft->project_list_entry < 0)
+ if (ft != NULL && ft->priv->projfilecmds != oldvalue && ft->priv->project_list_entry < 0)
{
- if (p->build_filetypes_list == NULL)
- p->build_filetypes_list = g_ptr_array_new();
- ft->project_list_entry = p->build_filetypes_list->len;
- g_ptr_array_add(p->build_filetypes_list, ft);
+ if (p->priv->build_filetypes_list == NULL)
+ p->priv->build_filetypes_list = g_ptr_array_new();
+ ft->priv->project_list_entry = p->priv->build_filetypes_list->len;
+ g_ptr_array_add(p->priv->build_filetypes_list, ft);
}
build_menu_update(doc);
widget = ui_lookup_widget(e->dialog, "radio_long_line_disabled_project");
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
- p->long_line_behaviour = 0;
+ p->priv->long_line_behaviour = 0;
else
{
widget = ui_lookup_widget(e->dialog, "radio_long_line_default_project");
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
- p->long_line_behaviour = 1;
+ p->priv->long_line_behaviour = 1;
else
/* "Custom" radio button must be checked */
- p->long_line_behaviour = 2;
+ p->priv->long_line_behaviour = 2;
}
widget = ui_lookup_widget(e->dialog, "spin_long_line_project");
- p->long_line_column = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
+ p->priv->long_line_column = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
apply_editor_prefs();
/* get and set the project file patterns */
@@ -993,9 +995,9 @@ static gboolean load_config(const gchar *filename)
p->base_path = utils_get_setting_string(config, "project", "base_path", "");
p->file_patterns = g_key_file_get_string_list(config, "project", "file_patterns", NULL, NULL);
- p->long_line_behaviour = utils_get_setting_integer(config, "long line marker",
+ p->priv->long_line_behaviour = utils_get_setting_integer(config, "long line marker",
"long_line_behaviour", 1 /* follow global */);
- p->long_line_column = utils_get_setting_integer(config, "long line marker",
+ p->priv->long_line_column = utils_get_setting_integer(config, "long line marker",
"long_line_column", editor_prefs.long_line_column);
apply_editor_prefs();
@@ -1062,8 +1064,8 @@ static gboolean write_config(gboolean emit_signal)
g_key_file_set_string_list(config, "project", "file_patterns",
(const gchar**) p->file_patterns, g_strv_length(p->file_patterns));
- g_key_file_set_integer(config, "long line marker", "long_line_behaviour", p->long_line_behaviour);
- g_key_file_set_integer(config, "long line marker", "long_line_column", p->long_line_column);
+ g_key_file_set_integer(config, "long line marker", "long_line_behaviour", p->priv->long_line_behaviour);
+ g_key_file_set_integer(config, "long line marker", "long_line_column", p->priv->long_line_column);
/* store the session files into the project too */
if (project_prefs.project_session)
Modified: src/project.h
10 lines changed, 3 insertions(+), 7 deletions(-)
===================================================================
@@ -23,6 +23,8 @@
#ifndef GEANY_PROJECT_H
#define GEANY_PROJECT_H 1
+#include <glib.h>
+
G_BEGIN_DECLS
#define GEANY_PROJECT_EXT "geany"
@@ -41,12 +43,6 @@ 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. */
- gint long_line_behaviour; /* 0 - disabled, 1 - follow global settings, 2 - enabled (custom) */
- gint long_line_column; /* Long line marker position. */
-#endif
}
GeanyProject;
@@ -98,4 +94,4 @@ void project_apply_prefs(void);
G_END_DECLS
-#endif
+#endif /* GEANY_PROJECT_H */
Modified: src/projectprivate.h
11 lines changed, 10 insertions(+), 1 deletions(-)
===================================================================
@@ -23,6 +23,11 @@
#ifndef GEANY_PROJECTPRIVATE_H
#define GEANY_PROJECTPRIVATE_H 1
+#include "project.h"
+
+#include <glib.h>
+
+G_BEGIN_DECLS
typedef struct GeanyProjectPrivate
{
@@ -31,8 +36,12 @@ typedef struct GeanyProjectPrivate
gboolean strip_trailing_spaces;
gboolean replace_tabs;
gboolean ensure_convert_new_lines;
+ GPtrArray *build_filetypes_list; /* Project has custom filetype builds for these. */
+ gint long_line_behaviour; /* 0 - disabled, 1 - follow global settings, 2 - enabled (custom) */
+ gint long_line_column; /* Long line marker position. */
}
GeanyProjectPrivate;
+G_END_DECLS
-#endif
+#endif /* GEANY_PROJECT_H */
Modified: src/sciwrappers.c
11 lines changed, 7 insertions(+), 4 deletions(-)
===================================================================
@@ -31,15 +31,18 @@
* @see scintilla_send_message().
*/
-#include <string.h>
-
-#include "geany.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
#include "sciwrappers.h"
+
#include "utils.h"
-#define SSM(s, m, w, l) scintilla_send_message(s, m, w, l)
+#include <string.h>
+
+#define SSM(s, m, w, l) scintilla_send_message(s, m, w, l)
/* line numbers visibility */
void sci_set_line_numbers(ScintillaObject *sci, gboolean set, gint extra_width)
Modified: src/sciwrappers.h
15 lines changed, 10 insertions(+), 5 deletions(-)
===================================================================
@@ -19,13 +19,16 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef GEANY_SCIWRAPPERS_H
-#define GEANY_SCIWRAPPERS_H 1
+#ifndef GEANY_SCI_WRAPPERS_H
+#define GEANY_SCI_WRAPPERS_H 1
-#include "Scintilla.h"
-#include "ScintillaWidget.h"
+#include "gtkcompat.h" /* Needed by ScintillaWidget.h */
+#include "Scintilla.h" /* Needed by ScintillaWidget.h */
+#include "ScintillaWidget.h" /* for ScintillaObject */
+G_BEGIN_DECLS
+
gchar* sci_get_string (ScintillaObject *sci, guint msg, gulong wParam);
void sci_set_line_numbers (ScintillaObject *sci, gboolean set, gint extra_width);
@@ -189,4 +192,6 @@ gint sci_text_width (ScintillaObject *sci, gint styleNumber, const gchar *
void sci_move_selected_lines_down (ScintillaObject *sci);
void sci_move_selected_lines_up (ScintillaObject *sci);
-#endif
+G_END_DECLS
+
+#endif /* GEANY_SCI_WRAPPERS_H */
Modified: src/search.c
23 lines changed, 13 insertions(+), 10 deletions(-)
===================================================================
@@ -24,23 +24,25 @@
* Note that the basic text find functions are in document.c.
*/
-#include <gdk/gdkkeysyms.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
-#include "geany.h"
#include "search.h"
-#include "prefs.h"
-#include "support.h"
-#include "utils.h"
+
+#include "app.h"
#include "document.h"
-#include "msgwindow.h"
-#include "sciwrappers.h"
-#include "ui_utils.h"
-#include "editor.h"
#include "encodings.h"
-#include "project.h"
#include "keyfile.h"
+#include "msgwindow.h"
+#include "prefs.h"
+#include "sciwrappers.h"
#include "stash.h"
+#include "support.h"
#include "toolbar.h"
+#include "ui_utils.h"
+#include "utils.h"
+
#include "gtkcompat.h"
#include <unistd.h>
@@ -52,6 +54,7 @@
# include <sys/wait.h>
#endif
+#include <gdk/gdkkeysyms.h>
enum
{
Modified: src/search.h
17 lines changed, 10 insertions(+), 7 deletions(-)
===================================================================
@@ -28,8 +28,15 @@
#ifndef GEANY_SEARCH_H
#define GEANY_SEARCH_H 1
+#include <glib.h>
+
+
G_BEGIN_DECLS
+struct GeanyDocument; /* document.h includes this header */
+struct _ScintillaObject;
+struct Sci_TextToFind;
+
/* the flags given in the search dialog for "find next", also used by the search bar */
typedef struct GeanySearchData
{
@@ -96,10 +103,6 @@ void search_show_find_in_files_dialog(const gchar *dir);
void search_show_find_in_files_dialog_full(const gchar *text, const gchar *dir);
-
-struct _ScintillaObject;
-struct Sci_TextToFind;
-
void geany_match_info_free(GeanyMatchInfo *info);
gint search_find_prev(struct _ScintillaObject *sci, const gchar *str, gint flags, GeanyMatchInfo **match_);
@@ -112,9 +115,9 @@ void search_find_again(gboolean change_direction);
void search_find_usage(const gchar *search_text, const gchar *original_search_text, gint flags, gboolean in_session);
-void search_find_selection(GeanyDocument *doc, gboolean search_backwards);
+void search_find_selection(struct GeanyDocument *doc, gboolean search_backwards);
-gint search_mark_all(GeanyDocument *doc, const gchar *search_text, gint flags);
+gint search_mark_all(struct GeanyDocument *doc, const gchar *search_text, gint flags);
gint search_replace_match(struct _ScintillaObject *sci, const GeanyMatchInfo *match, const gchar *replace_text);
@@ -123,4 +126,4 @@ guint search_replace_range(struct _ScintillaObject *sci, struct Sci_TextToFind *
G_END_DECLS
-#endif
+#endif /* GEANY_SEARCH_H */
Modified: src/sidebar.c
29 lines changed, 15 insertions(+), 14 deletions(-)
===================================================================
@@ -23,25 +23,26 @@
* Sidebar related code for the Symbol list and Open files GtkTreeViews.
*/
-#include <string.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
-#include "geany.h"
-#include "support.h"
-#include "callbacks.h"
#include "sidebar.h"
-#include "document.h"
-#include "editor.h"
+
+#include "app.h"
+#include "callbacks.h" /* FIXME: for ignore_callback */
#include "documentprivate.h"
-#include "filetypes.h"
-#include "utils.h"
-#include "ui_utils.h"
-#include "symbols.h"
+#include "filetypesprivate.h"
+#include "geanyobject.h"
+#include "keyfile.h"
#include "navqueue.h"
-#include "project.h"
#include "stash.h"
-#include "keyfile.h"
-#include "sciwrappers.h"
-#include "search.h"
+#include "support.h"
+#include "symbols.h"
+#include "ui_utils.h"
+#include "utils.h"
+
+#include <string.h>
#include <gdk/gdkkeysyms.h>
Modified: src/sidebar.h
9 lines changed, 8 insertions(+), 1 deletions(-)
===================================================================
@@ -24,6 +24,11 @@
#ifndef GEANY_SIDEBAR_H
#define GEANY_SIDEBAR_H 1
+#include "document.h"
+
+#include "gtkcompat.h"
+
+G_BEGIN_DECLS
typedef struct SidebarTreeviews
{
@@ -66,4 +71,6 @@ void sidebar_focus_openfiles_tab(void);
void sidebar_focus_symbols_tab(void);
-#endif
+G_END_DECLS
+
+#endif /* GEANY_SIDEBAR_H */
Modified: src/socket.c
28 lines changed, 16 insertions(+), 12 deletions(-)
===================================================================
@@ -51,11 +51,25 @@
*
*/
-
-#include "geany.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
#ifdef HAVE_SOCKET
+#include "socket.h"
+
+#include "app.h"
+#include "dialogs.h"
+#include "document.h"
+#include "encodings.h"
+#include "main.h"
+#include "support.h"
+#include "utils.h"
+
+#include "gtkcompat.h"
+
+
#ifndef G_OS_WIN32
# include <sys/time.h>
# include <sys/types.h>
@@ -78,16 +92,6 @@
#include <gdk/gdkx.h>
#endif
-#include "main.h"
-#include "socket.h"
-#include "document.h"
-#include "support.h"
-#include "ui_utils.h"
-#include "utils.h"
-#include "dialogs.h"
-#include "encodings.h"
-#include "project.h"
-
#ifdef G_OS_WIN32
#define REMOTE_CMD_PORT 49876
Modified: src/socket.h
6 lines changed, 5 insertions(+), 1 deletions(-)
===================================================================
@@ -23,6 +23,9 @@
#ifndef GEANY_SOCKET_H
#define GEANY_SOCKET_H 1
+#include <glib.h>
+
+G_BEGIN_DECLS
struct socket_info_struct
{
@@ -41,5 +44,6 @@ gboolean socket_lock_input_cb(GIOChannel *source, GIOCondition condition, gpoint
gint socket_finalize(void);
+G_END_DECLS
-#endif
+#endif /* GEANY_SOCKET_H */
Modified: src/stash.c
9 lines changed, 4 insertions(+), 5 deletions(-)
===================================================================
@@ -76,13 +76,12 @@
* should be efficient enough.
*/
+#include "stash.h"
-#include "geany.h" /* necessary for utils.h, otherwise use gtk/gtk.h */
-#include <stdlib.h> /* only for atoi() */
-#include "support.h" /* only for _("text") */
-#include "utils.h" /* only for foreach_*, utils_get_setting_*(). Stash should not depend on Geany. */
+#include "support.h" /* only for _("text") */
+#include "utils.h" /* only for foreach_*, utils_get_setting_*(). Stash should not depend on Geany. */
-#include "stash.h"
+#include <stdlib.h> /* only for atoi() */
/* GTK3 removed ComboBoxEntry, but we need a value to differentiate combo box with and
Modified: src/stash.h
6 lines changed, 4 insertions(+), 2 deletions(-)
===================================================================
@@ -20,7 +20,9 @@
*/
#ifndef GEANY_STASH_H
-#define GEANY_STASH_H
+#define GEANY_STASH_H 1
+
+#include "gtkcompat.h"
G_BEGIN_DECLS
@@ -101,4 +103,4 @@ void stash_tree_update(GtkTreeView *tree);
G_END_DECLS
-#endif
+#endif /* GEANY_STASH_H */
Modified: src/support.h
18 lines changed, 12 insertions(+), 6 deletions(-)
===================================================================
@@ -25,20 +25,26 @@
* @see GLib's @c gi18n-lib.h.
**/
-G_BEGIN_DECLS
+#ifndef GEANY_SUPPORT_H
+#define GEANY_SUPPORT_H 1
+
+#include <glib.h>
-#include "geany.h"
+G_BEGIN_DECLS
#ifdef GETTEXT_PACKAGE
# include <glib/gi18n-lib.h>
#else
+# define GETTEXT_PACKAGE NULL
# define textdomain(String) (String)
-# define bind_textdomain_codeset(String) (String)
-# define bindtextdomain(Domain,Charset) (Domain)
-# define ngettext(String) (String)
+# define bind_textdomain_codeset(Domain,Codeset) (Codeset)
+# define bindtextdomain(Domain,Dir) (Dir)
+# define ngettext(String,PluralString,Number) (((Number) == 1) ? (String) : (PluralString))
# define _(String) String
-# define Q_(String) g_strip_context((String), (String))
# define N_(String) String
+# define C_(Context,String) (String)
#endif
G_END_DECLS
+
+#endif /* GEANY_SUPPORT_H */
Modified: src/symbols.c
41 lines changed, 23 insertions(+), 18 deletions(-)
===================================================================
@@ -32,30 +32,35 @@
* matching filetype is first loaded.
*/
-#include "SciLexer.h"
-#include "geany.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
-#include <ctype.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "prefix.h"
#include "symbols.h"
-#include "utils.h"
-#include "filetypes.h"
-#include "encodings.h"
-#include "document.h"
+
+#include "app.h"
+#include "callbacks.h" /* FIXME: for ignore_callback */
#include "documentprivate.h"
-#include "support.h"
-#include "msgwindow.h"
-#include "sidebar.h"
+#include "editor.h"
+#include "encodings.h"
+#include "filetypesprivate.h"
+#include "geanyobject.h"
#include "main.h"
#include "navqueue.h"
-#include "ui_utils.h"
-#include "editor.h"
#include "sciwrappers.h"
-#include "filetypesprivate.h"
-#include "search.h"
+#include "sidebar.h"
+#include "support.h"
+#include "tm_tag.h"
+#include "ui_utils.h"
+#include "utils.h"
+
+#include "SciLexer.h"
+
+#include "gtkcompat.h"
+
+#include <ctype.h>
+#include <string.h>
+#include <stdlib.h>
const guint TM_GLOBAL_TYPE_MASK =
Modified: src/symbols.h
10 lines changed, 9 insertions(+), 1 deletions(-)
===================================================================
@@ -23,6 +23,12 @@
#ifndef GEANY_SYMBOLS_H
#define GEANY_SYMBOLS_H 1
+#include "document.h"
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
extern const guint TM_GLOBAL_TYPE_MASK;
enum
@@ -63,4 +69,6 @@ gint symbols_get_current_function(GeanyDocument *doc, const gchar **tagname);
gint symbols_get_current_scope(GeanyDocument *doc, const gchar **tagname);
-#endif
+G_END_DECLS
+
+#endif /* GEANY_SYMBOLS_H */
Modified: src/templates.c
26 lines changed, 16 insertions(+), 10 deletions(-)
===================================================================
@@ -24,22 +24,28 @@
* document from.
*/
-#include <time.h>
-#include <string.h>
-
-#include "geany.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
#include "templates.h"
-#include "support.h"
-#include "utils.h"
+
+#include "app.h"
#include "document.h"
#include "encodings.h"
-#include "editor.h"
#include "filetypes.h"
-#include "ui_utils.h"
-#include "toolbar.h"
+#include "geany.h"
#include "geanymenubuttonaction.h"
-#include "project.h"
+#include "geanyobject.h"
+#include "support.h"
+#include "toolbar.h"
+#include "ui_utils.h"
+#include "utils.h"
+
+#include "gtkcompat.h"
+
+#include <time.h>
+#include <string.h>
GeanyTemplatePrefs template_prefs;
Modified: src/templates.h
11 lines changed, 8 insertions(+), 3 deletions(-)
===================================================================
@@ -28,8 +28,15 @@
#ifndef GEANY_TEMPLATES_H
#define GEANY_TEMPLATES_H 1
+#include "document.h"
+#include "filetypes.h"
+
+#include <glib.h>
+
G_BEGIN_DECLS
+struct filetype;
+
#define GEANY_TEMPLATES_INDENT 3
#define GEANY_TEMPLATES_FORMAT_YEAR C_("DefaultYear", "%Y")
#define GEANY_TEMPLATES_FORMAT_DATE C_("DefaultDate", "%Y-%m-%d")
@@ -63,8 +70,6 @@ GeanyTemplatePrefs;
extern GeanyTemplatePrefs template_prefs;
-struct filetype;
-
void templates_init(void);
gchar *templates_get_template_fileheader(gint filetype_idx, const gchar *fname);
@@ -85,4 +90,4 @@ void templates_free_templates(void);
G_END_DECLS
-#endif
+#endif /* GEANY_TEMPLATES_H */
Modified: src/toolbar.c
20 lines changed, 12 insertions(+), 8 deletions(-)
===================================================================
@@ -25,18 +25,22 @@
*/
/* Utility functions to create the toolbar */
-#include "geany.h"
-#include "support.h"
-#include "ui_utils.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
#include "toolbar.h"
+
+#include "app.h"
+#include "build.h"
#include "callbacks.h"
-#include "utils.h"
-#include "dialogs.h"
#include "document.h"
-#include "build.h"
-#include "main.h"
-#include "geanymenubuttonaction.h"
#include "geanyentryaction.h"
+#include "geanymenubuttonaction.h"
+#include "main.h"
+#include "support.h"
+#include "ui_utils.h"
+#include "utils.h"
#include <string.h>
#include <glib/gstdio.h>
Modified: src/toolbar.h
6 lines changed, 4 insertions(+), 2 deletions(-)
===================================================================
@@ -20,7 +20,9 @@
*/
#ifndef GEANY_TOOLBAR_H
-#define GEANY_TOOLBAR_H
+#define GEANY_TOOLBAR_H 1
+
+#include "gtkcompat.h"
G_BEGIN_DECLS
@@ -63,4 +65,4 @@ void toolbar_configure(GtkWindow *parent);
G_END_DECLS
-#endif
+#endif /* GEANY_TOOLBAR_H */
Modified: src/tools.c
28 lines changed, 14 insertions(+), 14 deletions(-)
===================================================================
@@ -24,7 +24,20 @@
* For Plugins code see plugins.c.
*/
-#include "geany.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "tools.h"
+
+#include "document.h"
+#include "keybindings.h"
+#include "sciwrappers.h"
+#include "support.h"
+#include "ui_utils.h"
+#include "utils.h"
+
+#include "gtkcompat.h"
#include <stdlib.h>
#include <unistd.h>
@@ -37,19 +50,6 @@
# include <signal.h>
#endif
-#include "tools.h"
-#include "support.h"
-#include "document.h"
-#include "editor.h"
-#include "sciwrappers.h"
-#include "utils.h"
-#include "ui_utils.h"
-#include "msgwindow.h"
-#include "keybindings.h"
-#include "templates.h"
@@ Diff output truncated at 100000 characters. @@
--------------
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