[Xfce4-commits] <exo:master> Revert "Remove visibility and use the linker for this."
Nick Schermer
noreply at xfce.org
Thu Oct 22 11:18:01 CEST 2009
Updating branch refs/heads/master
to 79244fdc4a95cfc222f9bd4bcead92ba23e741a4 (commit)
from 553391277c847b5e0ba24b5112e377327c4212ae (commit)
commit 79244fdc4a95cfc222f9bd4bcead92ba23e741a4
Author: Nick Schermer <nick at xfce.org>
Date: Thu Oct 22 11:13:50 2009 +0200
Revert "Remove visibility and use the linker for this."
This reverts commit ed7589d185b6c9d305a87039422b08c02df5251f.
configure.in.in | 30 ++++
exo/Makefile.am | 19 ++-
exo/exo-binding.c | 6 +
exo/exo-cell-renderer-ellipsized-text.c | 6 +
exo/exo-cell-renderer-icon.c | 6 +
exo/exo-config.c | 6 +
exo/exo-execute.c | 6 +
exo/exo-gdk-pixbuf-extensions.c | 6 +
exo/exo-gobject-extensions.c | 6 +
exo/exo-gtk-extensions.c | 6 +
exo/exo-icon-bar.c | 6 +
exo/exo-icon-chooser-dialog.c | 6 +
exo/exo-icon-chooser-model.c | 30 +++--
exo/exo-icon-chooser-model.h | 14 +-
exo/exo-icon-view.c | 6 +
exo/exo-job.c | 7 +
exo/exo-mount-point.c | 6 +
exo/exo-private.c | 1 +
exo/exo-private.h | 6 +-
exo/exo-simple-job.c | 5 +
exo/exo-string.c | 6 +
exo/exo-thumbnail-preview.c | 12 +-
exo/exo-thumbnail-preview.h | 10 +-
exo/exo-thumbnail.c | 6 +
exo/exo-thumbnail.h | 13 +-
exo/exo-toolbars-editor-dialog.c | 6 +
exo/exo-toolbars-editor.c | 6 +
exo/exo-toolbars-model.c | 6 +
exo/exo-toolbars-private.c | 5 +
exo/exo-toolbars-private.h | 12 +-
exo/exo-toolbars-view.c | 6 +
exo/exo-tree-view.c | 6 +
exo/exo-utils.c | 7 +
exo/exo-wrap-table.c | 6 +
exo/exo-xsession-client.c | 6 +
exo/exo.symbols | 253 ++++++++++++++++++++++---------
exo/make-exo-alias.pl | 155 +++++++++++++++++++
python/Makefile.am | 2 +
38 files changed, 591 insertions(+), 116 deletions(-)
diff --git a/configure.in.in b/configure.in.in
index 76f24fa..b405820 100644
--- a/configure.in.in
+++ b/configure.in.in
@@ -306,6 +306,36 @@ dnl *** Check for linker optimizations ***
dnl **************************************
XDT_FEATURE_LINKER_OPTS()
+dnl ****************************************
+dnl *** Check for ELF visibility support ***
+dnl ****************************************
+AC_ARG_ENABLE([visibility], AC_HELP_STRING([--disable-visibility], [Do not use ELF visibility attributes]), [], [enable_visibility=yes])
+have_gnuc_visibility=no
+if test x"$enable_visibility" != x"no"; then
+ dnl Check whether the compiler supports the visibility attribute
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -Wall -Werror"
+ AC_MSG_CHECKING([whether $CC supports the GNUC visibility attribute])
+ AC_COMPILE_IFELSE(AC_LANG_SOURCE(
+ [
+ void __attribute__ ((visibility("default"))) test_default (void) {}
+ void __attribute__ ((visibility("hidden"))) test_hidden (void) {}
+ int main (int argc, char **argv) { test_default (); test_hidden (); return 0; }
+ ]),
+ [
+ have_gnuc_visibility=yes
+ AC_MSG_RESULT([yes])
+ ],
+ [
+ AC_MSG_RESULT([no])
+ ])
+ CFLAGS="$save_CFLAGS"
+fi
+if test x"$have_gnuc_visibility" = x"yes"; then
+ CPPFLAGS="$CPPFLAGS -DHAVE_GNUC_VISIBILITY"
+fi
+AM_CONDITIONAL([HAVE_GNUC_VISIBILITY], [test x"$have_gnuc_visibility" = x"yes"])
+
dnl *************************************
dnl *** Compensate for broken gtk-doc ***
dnl *************************************
diff --git a/exo/Makefile.am b/exo/Makefile.am
index cc6125d..f1e67d2 100644
--- a/exo/Makefile.am
+++ b/exo/Makefile.am
@@ -40,6 +40,8 @@ libexo_built_public_sources = \
libexo_built_sources = \
$(libexo_built_public_sources) \
+ exo-alias.h \
+ exo-aliasdef.c \
exo-enum-types.c \
exo-marshal.c \
exo-marshal.h
@@ -136,8 +138,16 @@ DISTCLEANFILES = \
BUILT_SOURCES = \
$(libexo_built_sources)
+if HAVE_GNUC_VISIBILITY
TESTS = \
abicheck.sh
+endif
+
+exo-alias.h: make-exo-alias.pl exo.symbols
+ $(AM_V_GEN) $(PERL) $(srcdir)/make-exo-alias.pl < $(srcdir)/exo.symbols > exo-alias.h
+
+exo-aliasdef.c: make-exo-alias.pl exo.symbols
+ $(AM_V_GEN) $(PERL) $(srcdir)/make-exo-alias.pl -def < $(srcdir)/exo.symbols > exo-aliasdef.c
exo-enum-types.h: stamp-exo-enum-types.h
@true
@@ -154,12 +164,12 @@ stamp-exo-enum-types.h: $(libexo_headers) Makefile
exo-enum-types.c: $(libexo_headers) Makefile
$(AM_V_GEN) ( cd $(srcdir) && glib-mkenums \
- --fhead "#undef GTK_DISABLE_DEPRECATED\n#define GTK_ENABLE_BROKEN\n#include <exo/exo.h>\n" \
+ --fhead "#undef GTK_DISABLE_DEPRECATED\n#define GTK_ENABLE_BROKEN\n#include <exo/exo.h>\n#include <exo/exo-alias.h>\n" \
--fprod "\n/* enumerations from \"@filename@\" */" \
--vhead "GType\n at enum_name@_get_type (void)\n{\n\tstatic GType type = 0;\n\tif (type == 0) {\n\tstatic const G at Type@Value values[] = {"\
--vprod "\t{ @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
--vtail "\t{ 0, NULL, NULL }\n\t};\n\ttype = g_ at type@_register_static (\"@EnumName@\", values);\n }\n\treturn type;\n}\n" \
- --ftail "\n#define __EXO_ENUM_TYPES_C__\n" \
+ --ftail "\n#define __EXO_ENUM_TYPES_C__\n#include <exo/exo-aliasdef.c>\n" \
$(libexo_headers) ) >> xgen-eetc \
&& cp xgen-eetc exo-enum-types.c \
&& rm -f xgen-eetc
@@ -190,6 +200,9 @@ dist-hook: all
EXTRA_DIST = \
abicheck.sh \
exo.symbols \
- exo-marshal.list
+ exo-alias.h \
+ exo-aliasdef.c \
+ exo-marshal.list \
+ make-exo-alias.pl
# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
diff --git a/exo/exo-binding.c b/exo/exo-binding.c
index 2418943..ad8a1b4 100644
--- a/exo/exo-binding.c
+++ b/exo/exo-binding.c
@@ -27,6 +27,7 @@
#include <exo/exo-binding.h>
#include <exo/exo-gobject-extensions.h>
#include <exo/exo-private.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-binding
@@ -591,3 +592,8 @@ exo_mutual_binding_unbind (ExoMutualBinding *binding)
{
g_signal_handler_disconnect (binding->reverse.dst_object, binding->direct.handler);
}
+
+
+
+#define __EXO_BINDING_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-cell-renderer-ellipsized-text.c b/exo/exo-cell-renderer-ellipsized-text.c
index cb72375..cb9bae6 100644
--- a/exo/exo-cell-renderer-ellipsized-text.c
+++ b/exo/exo-cell-renderer-ellipsized-text.c
@@ -26,6 +26,7 @@
#include <exo/exo-cell-renderer-ellipsized-text.h>
#include <exo/exo-private.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-cell-renderer-ellipsized-text
@@ -368,3 +369,8 @@ exo_cell_renderer_ellipsized_text_new (void)
{
return g_object_new (EXO_TYPE_CELL_RENDERER_ELLIPSIZED_TEXT, NULL);
}
+
+
+
+#define __EXO_CELL_RENDERER_ELLIPSIZED_TEXT_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-cell-renderer-icon.c b/exo/exo-cell-renderer-icon.c
index a4e4d83..d2a624f 100644
--- a/exo/exo-cell-renderer-icon.c
+++ b/exo/exo-cell-renderer-icon.c
@@ -29,6 +29,7 @@
#include <exo/exo-gdk-pixbuf-extensions.h>
#include <exo/exo-private.h>
#include <exo/exo-thumbnail.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-cell-renderer-icon
@@ -566,3 +567,8 @@ exo_cell_renderer_icon_new (void)
{
return g_object_new (EXO_TYPE_CELL_RENDERER_ICON, NULL);
}
+
+
+
+#define __EXO_CELL_RENDERER_ICON_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-config.c b/exo/exo-config.c
index 0408d1b..169f346 100644
--- a/exo/exo-config.c
+++ b/exo/exo-config.c
@@ -25,6 +25,7 @@
#endif
#include <exo/exo-config.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-config
@@ -116,3 +117,8 @@ exo_check_version (guint required_major,
{
return NULL;
}
+
+
+
+#define __EXO_CONFIG_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-execute.c b/exo/exo-execute.c
index 03e2892..22c94ff 100644
--- a/exo/exo-execute.c
+++ b/exo/exo-execute.c
@@ -23,6 +23,7 @@
#endif
#include <exo/exo-execute.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-execute
@@ -224,3 +225,8 @@ exo_execute_terminal_shell_on_screen (const gchar *command_line,
return exo_execute_preferred_application_on_screen ("TerminalEmulator", command_line, working_directory, envp, screen, error);
}
+
+
+
+#define __EXO_EXECUTE_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-gdk-pixbuf-extensions.c b/exo/exo-gdk-pixbuf-extensions.c
index 16ba708..c4301f8 100644
--- a/exo/exo-gdk-pixbuf-extensions.c
+++ b/exo/exo-gdk-pixbuf-extensions.c
@@ -60,6 +60,7 @@
#include <exo/exo-gdk-pixbuf-extensions.h>
#include <exo/exo-private.h>
+#include <exo/exo-alias.h>
/* use g_open() on win32 */
#if defined(G_OS_WIN32)
@@ -902,3 +903,8 @@ err3: /* we failed for some reason */
return pixbuf;
}
+
+
+
+#define __EXO_GDK_PIXBUF_EXTENSIONS_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-gobject-extensions.c b/exo/exo-gobject-extensions.c
index b473685..ce4a6a9 100644
--- a/exo/exo-gobject-extensions.c
+++ b/exo/exo-gobject-extensions.c
@@ -25,6 +25,7 @@
#endif
#include <exo/exo-gobject-extensions.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-gobject-extensions
@@ -65,3 +66,8 @@ exo_g_value_transform_negate (const GValue *src_value,
return FALSE;
}
+
+
+
+#define __EXO_GOBJECT_EXTENSIONS_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-gtk-extensions.c b/exo/exo-gtk-extensions.c
index 7e316ff..3e88eba 100644
--- a/exo/exo-gtk-extensions.c
+++ b/exo/exo-gtk-extensions.c
@@ -31,6 +31,7 @@
#include <exo/exo-gtk-extensions.h>
#include <exo/exo-private.h>
#include <exo/exo-thumbnail-preview.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-gtk-extensions
@@ -234,3 +235,8 @@ exo_gtk_url_about_dialog_hook (GtkAboutDialog *about_dialog,
/* cleanup */
g_free (uri);
}
+
+
+
+#define __EXO_GTK_EXTENSIONS_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-icon-bar.c b/exo/exo-icon-bar.c
index f58aaee..95f1a40 100644
--- a/exo/exo-icon-bar.c
+++ b/exo/exo-icon-bar.c
@@ -29,6 +29,7 @@
#include <exo/exo-marshal.h>
#include <exo/exo-private.h>
#include <exo/exo-string.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-icon-bar
@@ -1882,3 +1883,8 @@ exo_icon_bar_set_active_iter (ExoIconBar *icon_bar,
gtk_tree_path_free (path);
}
}
+
+
+
+#define __EXO_ICON_BAR_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-icon-chooser-dialog.c b/exo/exo-icon-chooser-dialog.c
index fc1abca..4136de2 100644
--- a/exo/exo-icon-chooser-dialog.c
+++ b/exo/exo-icon-chooser-dialog.c
@@ -42,6 +42,7 @@
#include <exo/exo-icon-chooser-model.h>
#include <exo/exo-icon-view.h>
#include <exo/exo-private.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-icon-chooser-dialog
@@ -659,3 +660,8 @@ exo_icon_chooser_dialog_set_icon (ExoIconChooserDialog *icon_chooser_dialog,
return FALSE;
}
+
+
+
+#define __EXO_ICON_CHOOSER_DIALOG_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-icon-chooser-model.c b/exo/exo-icon-chooser-model.c
index 871acab..008eae6 100644
--- a/exo/exo-icon-chooser-model.c
+++ b/exo/exo-icon-chooser-model.c
@@ -32,6 +32,7 @@
#include <exo/exo-icon-chooser-model.h>
#include <exo/exo-private.h>
#include <exo/exo-string.h>
+#include <exo/exo-alias.h>
@@ -39,7 +40,7 @@ typedef struct _ExoIconChooserModelItem ExoIconChooserModelItem;
-static void exo_icon_chooser_model_tree_model_init (GtkTreeModelIface *iface);
+static void exo_icon_chooser_model_tree_model_init (GtkTreeModelIface *iface);
static void exo_icon_chooser_model_finalize (GObject *object);
static GtkTreeModelFlags exo_icon_chooser_model_get_flags (GtkTreeModel *tree_model);
static gint exo_icon_chooser_model_get_n_columns (GtkTreeModel *tree_model);
@@ -117,13 +118,13 @@ static const gchar CONTEXT_NAMES[][14] =
-G_DEFINE_TYPE_WITH_CODE (ExoIconChooserModel, _exo_icon_chooser_model, G_TYPE_OBJECT,
+G_DEFINE_TYPE_WITH_CODE (ExoIconChooserModel, exo_icon_chooser_model, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_MODEL, exo_icon_chooser_model_tree_model_init))
static void
-_exo_icon_chooser_model_class_init (ExoIconChooserModelClass *klass)
+exo_icon_chooser_model_class_init (ExoIconChooserModelClass *klass)
{
GObjectClass *gobject_class;
@@ -134,14 +135,6 @@ _exo_icon_chooser_model_class_init (ExoIconChooserModelClass *klass)
static void
-_exo_icon_chooser_model_init (ExoIconChooserModel *model)
-{
- model->stamp = g_random_int ();
-}
-
-
-
-static void
exo_icon_chooser_model_tree_model_init (GtkTreeModelIface *iface)
{
iface->get_flags = exo_icon_chooser_model_get_flags;
@@ -161,6 +154,14 @@ exo_icon_chooser_model_tree_model_init (GtkTreeModelIface *iface)
static void
+exo_icon_chooser_model_init (ExoIconChooserModel *model)
+{
+ model->stamp = g_random_int ();
+}
+
+
+
+static void
exo_icon_chooser_model_finalize (GObject *object)
{
ExoIconChooserModel *model = EXO_ICON_CHOOSER_MODEL (object);
@@ -178,7 +179,7 @@ exo_icon_chooser_model_finalize (GObject *object)
g_list_foreach (model->items, (GFunc) exo_icon_chooser_model_item_free, NULL);
g_list_free (model->items);
- (*G_OBJECT_CLASS (_exo_icon_chooser_model_parent_class)->finalize) (object);
+ (*G_OBJECT_CLASS (exo_icon_chooser_model_parent_class)->finalize) (object);
}
@@ -638,3 +639,8 @@ _exo_icon_chooser_model_get_iter_for_icon_name (ExoIconChooserModel *model,
return FALSE;
}
+
+
+
+#define __EXO_ICON_CHOOSER_MODEL_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-icon-chooser-model.h b/exo/exo-icon-chooser-model.h
index 6c60167..117dbd2 100644
--- a/exo/exo-icon-chooser-model.h
+++ b/exo/exo-icon-chooser-model.h
@@ -34,7 +34,7 @@ G_BEGIN_DECLS
typedef struct _ExoIconChooserModelClass ExoIconChooserModelClass;
typedef struct _ExoIconChooserModel ExoIconChooserModel;
-#define EXO_TYPE_ICON_CHOOSER_MODEL (_exo_icon_chooser_model_get_type ())
+#define EXO_TYPE_ICON_CHOOSER_MODEL (exo_icon_chooser_model_get_type ())
#define EXO_ICON_CHOOSER_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXO_TYPE_ICON_CHOOSER_MODEL, ExoIconChooserModel))
#define EXO_ICON_CHOOSER_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EXO_TYPE_ICON_CHOOSER_MODEL, ExoIconChooserModelClass))
#define EXO_IS_ICON_CHOOSER_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EXO_TYPE_ICON_CHOOSER_MODEL))
@@ -86,14 +86,14 @@ typedef enum
EXO_ICON_CHOOSER_MODEL_N_COLUMNS,
} ExoIconChooserModelColumn;
-GType _exo_icon_chooser_model_get_type (void) G_GNUC_CONST;
+G_GNUC_INTERNAL GType exo_icon_chooser_model_get_type (void) G_GNUC_CONST;
-ExoIconChooserModel *_exo_icon_chooser_model_get_for_widget (GtkWidget *widget) G_GNUC_WARN_UNUSED_RESULT;
-ExoIconChooserModel *_exo_icon_chooser_model_get_for_icon_theme (GtkIconTheme *icon_theme) G_GNUC_WARN_UNUSED_RESULT;
+G_GNUC_INTERNAL ExoIconChooserModel *_exo_icon_chooser_model_get_for_widget (GtkWidget *widget) G_GNUC_WARN_UNUSED_RESULT;
+G_GNUC_INTERNAL ExoIconChooserModel *_exo_icon_chooser_model_get_for_icon_theme (GtkIconTheme *icon_theme) G_GNUC_WARN_UNUSED_RESULT;
-gboolean _exo_icon_chooser_model_get_iter_for_icon_name (ExoIconChooserModel *model,
- GtkTreeIter *iter,
- const gchar *icon_name) ;
+G_GNUC_INTERNAL gboolean _exo_icon_chooser_model_get_iter_for_icon_name (ExoIconChooserModel *model,
+ GtkTreeIter *iter,
+ const gchar *icon_name) ;
G_END_DECLS
diff --git a/exo/exo-icon-view.c b/exo/exo-icon-view.c
index 8b9ac11..7a64a65 100644
--- a/exo/exo-icon-view.c
+++ b/exo/exo-icon-view.c
@@ -47,6 +47,7 @@
#include <exo/exo-marshal.h>
#include <exo/exo-private.h>
#include <exo/exo-string.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-icon-view
@@ -8431,3 +8432,8 @@ exo_icon_view_search_timeout_destroy (gpointer user_data)
{
EXO_ICON_VIEW (user_data)->priv->search_timeout_id = 0;
}
+
+
+
+#define __EXO_ICON_VIEW_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-job.c b/exo/exo-job.c
index 6f8c10b..3060330 100644
--- a/exo/exo-job.c
+++ b/exo/exo-job.c
@@ -31,6 +31,7 @@
#include <exo/exo-job.h>
#include <exo/exo-private.h>
#include <exo/exo-string.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-job
@@ -677,3 +678,9 @@ exo_job_send_to_mainloop (ExoJob *job,
return g_io_scheduler_job_send_to_mainloop (job->priv->scheduler_job, func, user_data,
destroy_notify);
}
+
+
+
+
+#define __EXO_JOB_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-mount-point.c b/exo/exo-mount-point.c
index 63324a1..67c886f 100644
--- a/exo/exo-mount-point.c
+++ b/exo/exo-mount-point.c
@@ -70,6 +70,7 @@
#include <exo/exo-mount-point.h>
#include <exo/exo-private.h>
#include <exo/exo-string.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-mount-point
@@ -589,3 +590,8 @@ exo_mount_point_list_matched (ExoMountPointMatchMask mask,
return mount_points;
}
+
+
+
+#define __EXO_MOUNT_POINT_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-private.c b/exo/exo-private.c
index a8d2aed..88fb18f 100644
--- a/exo/exo-private.c
+++ b/exo/exo-private.c
@@ -33,6 +33,7 @@
#include <exo/exo-private.h>
#include <exo/exo-string.h>
+#include <exo/exo-alias.h>
diff --git a/exo/exo-private.h b/exo/exo-private.h
index 055739f..30656de 100644
--- a/exo/exo-private.h
+++ b/exo/exo-private.h
@@ -68,10 +68,10 @@ G_BEGIN_DECLS
#define g_value_get_object(v) (((const GValue *) (v))->data[0].v_pointer)
#endif
-void _exo_i18n_init (void);
+G_GNUC_INTERNAL void _exo_i18n_init (void);
-void _exo_gtk_widget_send_focus_change (GtkWidget *widget,
- gboolean in);
+G_GNUC_INTERNAL void _exo_gtk_widget_send_focus_change (GtkWidget *widget,
+ gboolean in);
G_END_DECLS
diff --git a/exo/exo-simple-job.c b/exo/exo-simple-job.c
index 5265541..0e01386 100644
--- a/exo/exo-simple-job.c
+++ b/exo/exo-simple-job.c
@@ -38,6 +38,7 @@
#include <exo/exo-job.h>
#include <exo/exo-private.h>
#include <exo/exo-simple-job.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-simple-job
@@ -279,3 +280,7 @@ exo_simple_job_launch (ExoSimpleJobFunc func,
/* launch the job */
return exo_job_launch (EXO_JOB (simple_job));
}
+
+
+#define __EXO_SIMPLE_JOB_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-string.c b/exo/exo-string.c
index e49d4ce..d7a6bca 100644
--- a/exo/exo-string.c
+++ b/exo/exo-string.c
@@ -35,6 +35,7 @@
#endif
#include <exo/exo-string.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-string
@@ -428,3 +429,8 @@ exo_str_looks_like_an_uri (const gchar *str)
return FALSE;
}
+
+
+
+#define __EXO_STRING_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-thumbnail-preview.c b/exo/exo-thumbnail-preview.c
index c477b69..565b2d8 100644
--- a/exo/exo-thumbnail-preview.c
+++ b/exo/exo-thumbnail-preview.c
@@ -41,6 +41,7 @@
#include <exo/exo-thumbnail-preview.h>
#include <exo/exo-thumbnail.h>
#include <exo/exo-utils.h>
+#include <exo/exo-alias.h>
#include <exo/exo-string.h>
@@ -66,19 +67,19 @@ struct _ExoThumbnailPreview
-G_DEFINE_TYPE (ExoThumbnailPreview, _exo_thumbnail_preview, GTK_TYPE_FRAME)
+G_DEFINE_TYPE (ExoThumbnailPreview, exo_thumbnail_preview, GTK_TYPE_FRAME)
static void
-_exo_thumbnail_preview_class_init (ExoThumbnailPreviewClass *klass)
+exo_thumbnail_preview_class_init (ExoThumbnailPreviewClass *klass)
{
}
static void
-_exo_thumbnail_preview_init (ExoThumbnailPreview *thumbnail_preview)
+exo_thumbnail_preview_init (ExoThumbnailPreview *thumbnail_preview)
{
GtkWidget *button;
GtkWidget *label;
@@ -379,3 +380,8 @@ _exo_thumbnail_preview_set_uri (ExoThumbnailPreview *thumbnail_preview,
gtk_label_set_text (GTK_LABEL (thumbnail_preview->size_label), (size_name != NULL) ? size_name : "");
g_free (size_name);
}
+
+
+
+#define __EXO_THUMBNAIL_PREVIEW_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-thumbnail-preview.h b/exo/exo-thumbnail-preview.h
index d407566..0bcdbab 100644
--- a/exo/exo-thumbnail-preview.h
+++ b/exo/exo-thumbnail-preview.h
@@ -34,19 +34,19 @@ G_BEGIN_DECLS
typedef struct _ExoThumbnailPreviewClass ExoThumbnailPreviewClass;
typedef struct _ExoThumbnailPreview ExoThumbnailPreview;
-#define EXO_TYPE_THUMBNAIL_PREVIEW (_exo_thumbnail_preview_get_type ())
+#define EXO_TYPE_THUMBNAIL_PREVIEW (exo_thumbnail_preview_get_type ())
#define EXO_THUMBNAIL_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXO_TYPE_THUMBNAIL_PREVIEW, ExoThumbnailPreview))
#define EXO_THUMBNAIL_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EXO_TYPE_THUMBNAIL_PREVIEW, ExoThumbnailPreviewClass))
#define EXO_IS_THUMBNAIL_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EXO_TYPE_THUMBNAIL_PREVIEW))
#define EXO_IS_THUMBNAIL_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EXO_TYPE_THUMBNAIL_PREVIEW))
#define EXO_THUMBNAIL_PREVIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EXO_TYPE_THUMBNAIL_PREVIEW, ExoThumbnailPreviewClass))
-GType _exo_thumbnail_preview_get_type (void) G_GNUC_CONST;
+G_GNUC_INTERNAL GType exo_thumbnail_preview_get_type (void) G_GNUC_CONST;
-GtkWidget *_exo_thumbnail_preview_new (void) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
+G_GNUC_INTERNAL GtkWidget *_exo_thumbnail_preview_new (void) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
-void _exo_thumbnail_preview_set_uri (ExoThumbnailPreview *thumbnail_preview,
- const gchar *uri);
+G_GNUC_INTERNAL void _exo_thumbnail_preview_set_uri (ExoThumbnailPreview *thumbnail_preview,
+ const gchar *uri);
G_END_DECLS
diff --git a/exo/exo-thumbnail.c b/exo/exo-thumbnail.c
index 4bd74ab..7aba2f9 100644
--- a/exo/exo-thumbnail.c
+++ b/exo/exo-thumbnail.c
@@ -54,6 +54,7 @@
#include <exo/exo-gdk-pixbuf-extensions.h>
#include <exo/exo-private.h>
#include <exo/exo-thumbnail.h>
+#include <exo/exo-alias.h>
/* use g_rename() and g_unlink() on win32 */
#if defined(G_OS_WIN32)
@@ -292,3 +293,8 @@ _exo_thumbnail_get_for_uri (const gchar *uri,
return thumbnail;
}
+
+
+
+#define __EXO_THUMBNAIL_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-thumbnail.h b/exo/exo-thumbnail.h
index 220ccb8..96dadbf 100644
--- a/exo/exo-thumbnail.h
+++ b/exo/exo-thumbnail.h
@@ -44,13 +44,12 @@ typedef enum /*< skip >*/
EXO_THUMBNAIL_SIZE_LARGE = 256,
} ExoThumbnailSize;
-GdkPixbuf *_exo_thumbnail_get_for_file (const gchar *filename,
- ExoThumbnailSize size,
- GError **error) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
-
-GdkPixbuf *_exo_thumbnail_get_for_uri (const gchar *uri,
- ExoThumbnailSize size,
- GError **error) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
+G_GNUC_INTERNAL GdkPixbuf *_exo_thumbnail_get_for_file (const gchar *filename,
+ ExoThumbnailSize size,
+ GError **error) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
+G_GNUC_INTERNAL GdkPixbuf *_exo_thumbnail_get_for_uri (const gchar *uri,
+ ExoThumbnailSize size,
+ GError **error) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
G_END_DECLS
diff --git a/exo/exo-toolbars-editor-dialog.c b/exo/exo-toolbars-editor-dialog.c
index de00f95..dbb11bf 100644
--- a/exo/exo-toolbars-editor-dialog.c
+++ b/exo/exo-toolbars-editor-dialog.c
@@ -38,6 +38,7 @@
#include <exo/exo-string.h>
#include <exo/exo-toolbars-editor.h>
#include <exo/exo-toolbars-editor-dialog.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-toolbars-editor-dialog
@@ -172,3 +173,8 @@ exo_toolbars_editor_dialog_new_with_model (GtkUIManager *ui_manager,
return GTK_WIDGET (dialog);
}
+
+
+
+#define __EXO_TOOLBARS_EDITOR_DIALOG_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-toolbars-editor.c b/exo/exo-toolbars-editor.c
index b35a6f1..0beecf7 100644
--- a/exo/exo-toolbars-editor.c
+++ b/exo/exo-toolbars-editor.c
@@ -39,6 +39,7 @@
#include <exo/exo-string.h>
#include <exo/exo-toolbars-editor.h>
#include <exo/exo-toolbars-private.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-toolbars-editor
@@ -724,3 +725,8 @@ exo_toolbars_editor_set_ui_manager (ExoToolbarsEditor *editor,
exo_toolbars_editor_update (editor);
}
+
+
+
+#define __EXO_TOOLBARS_EDITOR_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-toolbars-model.c b/exo/exo-toolbars-model.c
index 743d4d0..c231131 100644
--- a/exo/exo-toolbars-model.c
+++ b/exo/exo-toolbars-model.c
@@ -37,6 +37,7 @@
#include <exo/exo-string.h>
#include <exo/exo-toolbars-model.h>
#include <exo/exo-toolbars-private.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-toolbars-model
@@ -1420,3 +1421,8 @@ exo_toolbars_model_toolbar_nth (ExoToolbarsModel *model,
return toolbar->name;
}
+
+
+
+#define __EXO_TOOLBARS_MODEL_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-toolbars-private.c b/exo/exo-toolbars-private.c
index a9f237d..aa81128 100644
--- a/exo/exo-toolbars-private.c
+++ b/exo/exo-toolbars-private.c
@@ -26,6 +26,7 @@
#endif
#include <exo/exo-toolbars-private.h>
+#include <exo/exo-alias.h>
@@ -364,3 +365,7 @@ _exo_toolbars_unset_drag_cursor (GtkWidget *widget)
if (G_LIKELY (widget->window != NULL))
gdk_window_set_cursor (widget->window, NULL);
}
+
+
+
+
diff --git a/exo/exo-toolbars-private.h b/exo/exo-toolbars-private.h
index f1244d1..df79ce3 100644
--- a/exo/exo-toolbars-private.h
+++ b/exo/exo-toolbars-private.h
@@ -32,14 +32,14 @@
G_BEGIN_DECLS
-GdkPixbuf *_exo_toolbars_new_separator_pixbuf (void) G_GNUC_MALLOC;
-GtkWidget *_exo_toolbars_new_separator_image (void) G_GNUC_MALLOC;
+G_GNUC_INTERNAL GdkPixbuf *_exo_toolbars_new_separator_pixbuf (void) G_GNUC_MALLOC;
+G_GNUC_INTERNAL GtkWidget *_exo_toolbars_new_separator_image (void) G_GNUC_MALLOC;
-GtkAction *_exo_toolbars_find_action (GtkUIManager *ui_manager,
- const gchar *name);
+G_GNUC_INTERNAL GtkAction *_exo_toolbars_find_action (GtkUIManager *ui_manager,
+ const gchar *name);
-void _exo_toolbars_set_drag_cursor (GtkWidget *widget);
-void _exo_toolbars_unset_drag_cursor (GtkWidget *widget);
+G_GNUC_INTERNAL void _exo_toolbars_set_drag_cursor (GtkWidget *widget);
+G_GNUC_INTERNAL void _exo_toolbars_unset_drag_cursor (GtkWidget *widget);
G_END_DECLS
diff --git a/exo/exo-toolbars-view.c b/exo/exo-toolbars-view.c
index 3caba15..7a43e8e 100644
--- a/exo/exo-toolbars-view.c
+++ b/exo/exo-toolbars-view.c
@@ -38,6 +38,7 @@
#include <exo/exo-toolbars-editor.h>
#include <exo/exo-toolbars-private.h>
#include <exo/exo-toolbars-view.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-toolbars-view
@@ -1426,3 +1427,8 @@ exo_toolbars_view_set_ui_manager (ExoToolbarsView *view,
exo_toolbars_view_construct (view);
}
}
+
+
+
+#define __EXO_TOOLBARS_VIEW_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-tree-view.c b/exo/exo-tree-view.c
index 167dd6e..2d2f6c7 100644
--- a/exo/exo-tree-view.c
+++ b/exo/exo-tree-view.c
@@ -27,6 +27,7 @@
#include <exo/exo-string.h>
#include <exo/exo-tree-view.h>
#include <exo/exo-utils.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-tree-view
@@ -866,3 +867,8 @@ exo_tree_view_set_single_click_timeout (ExoTreeView *tree_view,
g_object_notify (G_OBJECT (tree_view), "single-click-timeout");
}
}
+
+
+
+#define __EXO_TREE_VIEW_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-utils.c b/exo/exo-utils.c
index 81f8b1e..312a7ef 100644
--- a/exo/exo-utils.c
+++ b/exo/exo-utils.c
@@ -26,6 +26,7 @@
#define G_IMPLEMENT_INLINES 1
#define __EXO_UTILS_C__
#include <exo/exo-utils.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-utils
@@ -162,3 +163,9 @@ exo_noop_false (void)
{
return FALSE;
}
+
+
+
+#define __EXO_UTILS_C__
+#include <exo/exo-aliasdef.c>
+
diff --git a/exo/exo-wrap-table.c b/exo/exo-wrap-table.c
index 5c2ac00..a9c4390 100644
--- a/exo/exo-wrap-table.c
+++ b/exo/exo-wrap-table.c
@@ -27,6 +27,7 @@
#include <exo/exo-private.h>
#include <exo/exo-string.h>
#include <exo/exo-wrap-table.h>
+#include <exo/exo-alias.h>
/**
* SECTION: exo-wrap-table
@@ -715,3 +716,8 @@ exo_wrap_table_set_homogeneous (ExoWrapTable *table,
g_object_notify (G_OBJECT (table), "homogeneous");
}
}
+
+
+
+#define __EXO_WRAP_TABLE_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo-xsession-client.c b/exo/exo-xsession-client.c
index c9a92a4..38ef9a3 100644
--- a/exo/exo-xsession-client.c
+++ b/exo/exo-xsession-client.c
@@ -35,6 +35,7 @@
#include <exo/exo-private.h>
#include <exo/exo-string.h>
#include <exo/exo-xsession-client.h>
+#include <exo/exo-alias.h>
#ifdef GDK_WINDOWING_X11
#include <gdk/gdkx.h>
@@ -578,3 +579,8 @@ exo_xsession_client_set_restart_command (ExoXsessionClient *client,
argv, argc);
#endif
}
+
+
+
+#define __EXO_XSESSION_CLIENT_C__
+#include <exo/exo-aliasdef.c>
diff --git a/exo/exo.symbols b/exo/exo.symbols
index f7f74ce..baeb58e 100644
--- a/exo/exo.symbols
+++ b/exo/exo.symbols
@@ -18,7 +18,24 @@
* Boston, MA 02111-1307, USA.
*/
-/* exo-binding */
+/* This file lists all exported symbols. It is used to generate
+ * the gobject.def file used to control exports on Windows and the
+ * exo-alias.h/exo-aliasdef.c files used to avoid PLT entries for
+ * internal uses of exported functions (see make-exo-alias.pl).
+ *
+ * Every symbol must be included in the right
+ * #ifdef IN_HEADER(sym) #endif and
+ * #ifdef IN_SOURCE(sym) #endif sections.
+ */
+
+#ifdef ALL_FILES
+#define IN_HEADER(x) 1
+#define IN_SOURCE(x) 1
+#endif
+
+/* exo-binding functions */
+#if IN_HEADER(__EXO_BINDING_H__)
+#if IN_SOURCE(__EXO_BINDING_C__)
exo_binding_new
exo_binding_new_full
exo_binding_new_with_negation
@@ -27,52 +44,90 @@ exo_mutual_binding_new
exo_mutual_binding_new_full
exo_mutual_binding_new_with_negation
exo_mutual_binding_unbind
+#endif
+#endif
-/* exo-cell-renderer-ellipsized-text */
-exo_cell_renderer_ellipsized_text_get_type
-exo_cell_renderer_ellipsized_text_new
+/* ExoCellRendererEllipsizedText methods */
+#if IN_HEADER(__EXO_CELL_RENDERER_ELLIPSIZED_TEXT_H__)
+#if IN_SOURCE(__EXO_CELL_RENDERER_ELLIPSIZED_TEXT_C__)
+exo_cell_renderer_ellipsized_text_get_type G_GNUC_CONST
+exo_cell_renderer_ellipsized_text_new G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+#endif
+#endif
-/* exo-cell-renderer-icon */
-exo_cell_renderer_icon_get_type
-exo_cell_renderer_icon_new
+/* ExoCellRendererIcon methods */
+#if IN_HEADER(__EXO_CELL_RENDERER_ICON_H__)
+#if IN_SOURCE(__EXO_CELL_RENDERER_ICON_C__)
+exo_cell_renderer_icon_get_type G_GNUC_CONST
+exo_cell_renderer_icon_new G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+#endif
+#endif
-/* exo-config */
+/* exo-config variables */
+#if IN_HEADER(__EXO_CONFIG_H__)
+#if IN_SOURCE(__EXO_CONFIG_C__)
+#ifdef INCLUDE_VARIABLES
exo_major_version
exo_minor_version
exo_micro_version
+#endif
exo_check_version
+#endif
+#endif
-/* exo-enum-types */
-exo_icon_view_drop_position_get_type
-exo_icon_view_layout_mode_get_type
-exo_mount_point_flags_get_type
-exo_toolbars_model_flags_get_type
+/* exo-enum-types functions */
+#if IN_HEADER(__EXO_ENUM_TYPES_H__)
+#if IN_SOURCE(__EXO_ENUM_TYPES_C__)
+exo_icon_view_drop_position_get_type G_GNUC_CONST
+exo_icon_view_layout_mode_get_type G_GNUC_CONST
+exo_mount_point_flags_get_type G_GNUC_CONST
+exo_toolbars_model_flags_get_type G_GNUC_CONST
+#endif
+#endif
-/* exo-execute */
+/* exo-execute functions */
+#if IN_HEADER(__EXO_EXECUTE_H__)
+#if IN_SOURCE(__EXO_EXECUTE_C__)
exo_execute_preferred_application
exo_execute_preferred_application_on_screen
exo_execute_terminal_shell
exo_execute_terminal_shell_on_screen
+#endif
+#endif
-/* exo-gdk-pixbuf-extensions */
-exo_gdk_pixbuf_colorize
-exo_gdk_pixbuf_frame
-exo_gdk_pixbuf_lucent
-exo_gdk_pixbuf_spotlight
-exo_gdk_pixbuf_scale_down
-exo_gdk_pixbuf_scale_ratio
-exo_gdk_pixbuf_new_from_file_at_max_size
+/* exo-gdk-pixbuf-extensions functions */
+#if IN_HEADER(__EXO_GDK_PIXBUF_EXTENSIONS_H__)
+#if IN_SOURCE(__EXO_GDK_PIXBUF_EXTENSIONS_C__)
+exo_gdk_pixbuf_colorize G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+exo_gdk_pixbuf_frame G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+exo_gdk_pixbuf_lucent G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+exo_gdk_pixbuf_spotlight G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+exo_gdk_pixbuf_scale_down G_GNUC_WARN_UNUSED_RESULT
+exo_gdk_pixbuf_scale_ratio G_GNUC_WARN_UNUSED_RESULT
+exo_gdk_pixbuf_new_from_file_at_max_size G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+#endif
+#endif
-/* exo-gobject-extensions */
+/* exo-gobject-extensions functions */
+#if IN_HEADER(__EXO_GOBJECT_EXTENSIONS_H__)
+#if IN_SOURCE(__EXO_GOBJECT_EXTENSIONS_C__)
exo_g_value_transform_negate
+#endif
+#endif
-/* exo-gtk-extensions */
+/* exo-gtk-extensions functions */
+#if IN_HEADER(__EXO_GTK_EXTENSIONS_H__)
+#if IN_SOURCE(__EXO_GTK_EXTENSIONS_C__)
exo_gtk_object_destroy_later
exo_gtk_file_chooser_add_thumbnail_preview
exo_gtk_url_about_dialog_hook
+#endif
+#endif
-/* exo-icon-bar */
-exo_icon_bar_get_type
+/* ExoIconBar methods */
+#if IN_HEADER(__EXO_ICON_BAR_H__)
+#if IN_SOURCE(__EXO_ICON_BAR_C__)
+exo_icon_bar_get_type G_GNUC_CONST
exo_icon_bar_new
exo_icon_bar_new_with_model
exo_icon_bar_get_model
@@ -87,15 +142,23 @@ exo_icon_bar_get_active
exo_icon_bar_set_active
exo_icon_bar_get_active_iter
exo_icon_bar_set_active_iter
+#endif
+#endif
-/* exo-icon-chooser */
-exo_icon_chooser_dialog_get_type
-exo_icon_chooser_dialog_new
-exo_icon_chooser_dialog_get_icon
+/* ExoIconChooserDialog methods */
+#if IN_HEADER(__EXO_ICON_CHOOSER_DIALOG_H__)
+#if IN_SOURCE(__EXO_ICON_CHOOSER_DIALOG_C__)
+exo_icon_chooser_dialog_get_type G_GNUC_CONST
+exo_icon_chooser_dialog_new G_GNUC_MALLOC G_GNUC_NULL_TERMINATED G_GNUC_WARN_UNUSED_RESULT
+exo_icon_chooser_dialog_get_icon G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
exo_icon_chooser_dialog_set_icon
+#endif
+#endif
-/* exo-icon-view */
-exo_icon_view_get_type
+/* ExoIconView methods */
+#if IN_HEADER(__EXO_ICON_VIEW_H__)
+#if IN_SOURCE(__EXO_ICON_VIEW_C__)
+exo_icon_view_get_type G_GNUC_CONST
exo_icon_view_new
exo_icon_view_new_with_model
exo_icon_view_get_model
@@ -156,62 +219,95 @@ exo_icon_view_get_search_equal_func
exo_icon_view_set_search_equal_func
exo_icon_view_get_search_position_func
exo_icon_view_set_search_position_func
+#endif
+#endif
-/* exo-job */
+/* exo-job functions */
+#if IN_HEADER(__EXO_JOB_H__)
+#if IN_SOURCE(__EXO_JOB_C__)
exo_job_cancel
exo_job_emit
exo_job_get_cancellable
-exo_job_get_type
+exo_job_get_type G_GNUC_CONST
exo_job_info_message
exo_job_is_cancelled
exo_job_launch
exo_job_percent
exo_job_send_to_mainloop
exo_job_set_error_if_cancelled
+#endif
+#endif
-/* exo-mount-point */
-exo_mount_point_get_type
-exo_mount_point_dup
+/* exo-mount-point functions */
+#if IN_HEADER(__EXO_MOUNT_POINT_H__)
+#if IN_SOURCE(__EXO_MOUNT_POINT_C__)
+exo_mount_point_get_type G_GNUC_CONST
+exo_mount_point_dup G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
exo_mount_point_free
-exo_mount_point_list_matched
+exo_mount_point_list_matched G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+#endif
+#endif
-/* exo-utils */
-exo_noop
-exo_noop_one
-exo_noop_zero
-exo_noop_null
-exo_noop_true
-exo_noop_false
+/* exo-utils functions */
+#if IN_HEADER(__EXO_UTILS_H__)
+#if IN_SOURCE(__EXO_UTILS_C__)
+exo_noop G_GNUC_PURE
+exo_noop_one G_GNUC_PURE
+exo_noop_zero G_GNUC_PURE
+exo_noop_null G_GNUC_PURE
+exo_noop_true G_GNUC_PURE
+exo_noop_false G_GNUC_PURE
+#ifdef INCLUDE_INTERNAL_SYMBOLS
exo_atomic_inc
exo_atomic_dec
+#endif
+#endif
+#endif
-/* exo-simple-job */
-exo_simple_job_get_type
-exo_simple_job_launch
+/* exo-simple-job functions */
+#if IN_HEADER(__EXO_SIMPLE_JOB_H__)
+#if IN_SOURCE(__EXO_SIMPLE_JOB_C__)
+exo_simple_job_get_type G_GNUC_CONST
+exo_simple_job_launch G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+#endif
+#endif
-/* exo-string */
-exo_str_elide_underscores
+/* exo-string functions */
+#if IN_HEADER(__EXO_STRING_H__)
+#if IN_SOURCE(__EXO_STRING_C__)
+exo_str_elide_underscores G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
exo_str_is_equal
-exo_str_replace
-exo_str_looks_like_an_uri
-exo_strdup_strftime
-exo_strndupv
+exo_str_replace G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+exo_strdup_strftime G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+exo_strndupv G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+#endif
+#endif
-/* exo-toolbars-editor-dialog */
-exo_toolbars_editor_dialog_get_type
+/* ExoToolbarsEditorDialog methods */
+#if IN_HEADER(__EXO_TOOLBARS_EDITOR_DIALOG_H__)
+#if IN_SOURCE(__EXO_TOOLBARS_EDITOR_DIALOG_C__)
+exo_toolbars_editor_dialog_get_type G_GNUC_CONST
exo_toolbars_editor_dialog_new_with_model
+#endif
+#endif
-/* exo-toolbars-editor */
-exo_toolbars_editor_get_type
+/* ExoToolbarsEditor methods */
+#if IN_HEADER(__EXO_TOOLBARS_EDITOR_H__)
+#if IN_SOURCE(__EXO_TOOLBARS_EDITOR_C__)
+exo_toolbars_editor_get_type G_GNUC_CONST
exo_toolbars_editor_new
exo_toolbars_editor_new_with_model
exo_toolbars_editor_get_model
exo_toolbars_editor_set_model
exo_toolbars_editor_get_ui_manager
exo_toolbars_editor_set_ui_manager
+#endif
+#endif
-/* exo-toolbars-model */
-exo_toolbars_model_get_type
+/* ExoToolbarsModel methods */
+#if IN_HEADER(__EXO_TOOLBARS_MODEL_H__)
+#if IN_SOURCE(__EXO_TOOLBARS_MODEL_C__)
+exo_toolbars_model_get_type G_GNUC_CONST
exo_toolbars_model_new
exo_toolbars_model_set_actions
exo_toolbars_model_get_actions
@@ -235,9 +331,13 @@ exo_toolbars_model_n_items
exo_toolbars_model_item_nth
exo_toolbars_model_n_toolbars
exo_toolbars_model_toolbar_nth
+#endif
+#endif
-/* exo-toolbars-view */
-exo_toolbars_view_get_type
+/* ExoToolbarsView methods */
+#if IN_HEADER(__EXO_TOOLBARS_VIEW_H__)
+#if IN_SOURCE(__EXO_TOOLBARS_VIEW_C__)
+exo_toolbars_view_get_type G_GNUC_CONST
exo_toolbars_view_new
exo_toolbars_view_new_with_model
exo_toolbars_view_get_editing
@@ -246,29 +346,42 @@ exo_toolbars_view_get_model
exo_toolbars_view_set_model
exo_toolbars_view_get_ui_manager
exo_toolbars_view_set_ui_manager
+#endif
+#endif
-/* exo-tree-view */
-exo_tree_view_get_type
-exo_tree_view_new
+#if IN_HEADER(__EXO_TREE_VIEW_H__)
+#if IN_SOURCE(__EXO_TREE_VIEW_C__)
+exo_tree_view_get_type G_GNUC_CONST
+exo_tree_view_new G_GNUC_MALLOC
exo_tree_view_get_single_click
exo_tree_view_set_single_click
exo_tree_view_get_single_click_timeout
exo_tree_view_set_single_click_timeout
+#endif
+#endif
-/* exo-wrap-table */
-exo_wrap_table_get_type
-exo_wrap_table_new
+#if IN_HEADER(__EXO_WRAP_TABLE_H__)
+#if IN_SOURCE(__EXO_WRAP_TABLE_C__)
+exo_wrap_table_get_type G_GNUC_CONST
+exo_wrap_table_new G_GNUC_MALLOC
exo_wrap_table_get_col_spacing
exo_wrap_table_set_col_spacing
exo_wrap_table_get_row_spacing
exo_wrap_table_set_row_spacing
exo_wrap_table_get_homogeneous
exo_wrap_table_set_homogeneous
+#endif
+#endif
-/* exo-xsession-client */
-exo_xsession_client_get_type
+/* ExoXsessionClient methods */
+#if IN_HEADER(__EXO_XSESSION_CLIENT_H__)
+#if IN_SOURCE(__EXO_XSESSION_CLIENT_C__)
+exo_xsession_client_get_type G_GNUC_CONST
exo_xsession_client_new_with_group
exo_xsession_client_get_group
exo_xsession_client_set_group
exo_xsession_client_get_restart_command
exo_xsession_client_set_restart_command
+#endif
+#endif
+
diff --git a/exo/make-exo-alias.pl b/exo/make-exo-alias.pl
new file mode 100644
index 0000000..f17ff01
--- /dev/null
+++ b/exo/make-exo-alias.pl
@@ -0,0 +1,155 @@
+#!/usr/bin/env perl -w
+#
+# Copyright (c) 2004 The GLib Development Team.
+# Copyright (c) 2005 Benedikt Meurer <benny at xfce.org>.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+#
+
+my $option_def = 0;
+
+if (($#ARGV >= 0) && ($ARGV[0] eq "-def"))
+ {
+ shift;
+ $option_def = 1;
+ }
+
+print <<EOF;
+/* Generated by make-exo-alias.pl. Do not edit this file. */
+
+#ifdef HAVE_GNUC_VISIBILITY
+
+#include <glib.h>
+
+EOF
+
+if ($option_def)
+ {
+ print <<EOF
+#undef IN_HEADER
+#define IN_HEADER(x) 1
+
+#undef IN_SOURCE
+#define IN_SOURCE defined
+
+EOF
+ }
+else
+ {
+ print <<EOF
+#define IN_HEADER defined
+#define IN_SOURCE(x) 1
+
+EOF
+ }
+
+my $in_comment = 0;
+my $in_skipped_section = 0;
+
+while (<>)
+ {
+ # ignore empty lines
+ next if /^\s*$/;
+
+ # skip comments
+ if ($_ =~ /^\s*\/\*/)
+ {
+ $in_comment = 1;
+ }
+
+ if ($in_comment)
+ {
+ if ($_ =~ /\*\/\s$/)
+ {
+ $in_comment = 0;
+ }
+ next;
+ }
+
+ # handle ifdefs
+ if ($_ =~ /^\#endif/)
+ {
+ if (!$in_skipped_section)
+ {
+ print $_;
+ }
+
+ $in_skipped_section = 0;
+ next;
+ }
+
+ if ($_ =~ /^\#ifdef\s+(INCLUDE_VARIABLES|INCLUDE_INTERNAL_SYMBOLS|ALL_FILES)/)
+ {
+ $in_skipped_section = 1;
+ }
+
+ if ($in_skipped_section)
+ {
+ next;
+ }
+
+ if ($_ =~ /^\#ifn?def\s+G/)
+ {
+ print $_;
+ next;
+ }
+
+ if ($_ =~ /^\#if.*(IN_SOURCE|IN_HEADER)/)
+ {
+ print $_;
+ next;
+ }
+
+ chop;
+ my $line = $_;
+ my @words;
+ my $attributes = "";
+
+ @words = split (/ /, $line);
+ my $symbol = shift (@words);
+ chomp ($symbol);
+ my $alias = "IA__".$symbol;
+
+ # Drop any Win32 specific .def file syntax, but keep attributes
+ foreach $word (@words)
+ {
+ $attributes = "$attributes $word" unless $word eq "PRIVATE";
+ }
+
+ if (!$option_def)
+ {
+ print <<EOF
+extern __typeof ($symbol) $alias __attribute((visibility("hidden")))$attributes;
+\#define $symbol $alias
+
+EOF
+ }
+ else
+ {
+ print <<EOF
+\#undef $symbol
+extern __typeof ($symbol) $symbol __attribute((alias("$alias"), visibility("default")));
+
+EOF
+ }
+ }
+
+print <<EOF;
+
+#endif /* HAVE_GNUC_VISIBILITY */
+EOF
+
+
diff --git a/python/Makefile.am b/python/Makefile.am
index 6b25f8e..157fa0b 100644
--- a/python/Makefile.am
+++ b/python/Makefile.am
@@ -69,7 +69,9 @@ CLEANFILES = \
exo.c \
expected-abi
+if HAVE_GNUC_VISIBILITY
TESTS = \
abicheck.sh
+endif
# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
More information about the Xfce4-commits
mailing list