SF.net SVN: geany-plugins:[911] trunk/geany-plugins/geanylua
ntrel at users.sourceforge.net
ntrel at xxxxx
Tue Sep 1 15:20:22 UTC 2009
Revision: 911
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=911&view=rev
Author: ntrel
Date: 2009-09-01 15:20:22 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
Try loading system support library if user library fails.
Modified Paths:
--------------
trunk/geany-plugins/geanylua/ChangeLog
trunk/geany-plugins/geanylua/geanylua.c
Modified: trunk/geany-plugins/geanylua/ChangeLog
===================================================================
--- trunk/geany-plugins/geanylua/ChangeLog 2009-08-31 17:04:22 UTC (rev 910)
+++ trunk/geany-plugins/geanylua/ChangeLog 2009-09-01 15:20:22 UTC (rev 911)
@@ -1,3 +1,6 @@
+September 1, 2009 (ntrel)
+ Try loading system support library if user library fails.
+
August 31, 2009 (ntrel)
Print support library path if Geany is in debug mode.
Modified: trunk/geany-plugins/geanylua/geanylua.c
===================================================================
--- trunk/geany-plugins/geanylua/geanylua.c 2009-08-31 17:04:22 UTC (rev 910)
+++ trunk/geany-plugins/geanylua/geanylua.c 2009-09-01 15:20:22 UTC (rev 911)
@@ -146,36 +146,16 @@
-PLUGIN_EXPORT
-void plugin_init(GeanyData *data)
+static gboolean load_support_lib(const gchar *libname)
{
- gchar *libname=NULL;
-
- main_locale_init(LOCALEDIR, GETTEXT_PACKAGE);
-
- geany_data=data;
- libname=g_build_path(G_DIR_SEPARATOR_S, data->app->configdir, "plugins", "geanylua", SUPPORT_LIB, NULL);
if ( !g_file_test(libname,G_FILE_TEST_IS_REGULAR) ) {
- gchar *libdir=get_lib_dir();
- g_free(libname);
- libname=g_build_path(G_DIR_SEPARATOR_S, libdir, "geany-plugins", "geanylua", SUPPORT_LIB, NULL);
- g_free(libdir);
+ return FALSE;
}
- if ( !g_file_test(libname,G_FILE_TEST_IS_REGULAR) ) {
- g_printerr(_("%s: Can't find support library %s!\n"), PLUGIN_NAME, libname);
- g_free(libname);
- libname=NULL;
- return;
- }
- if (geany->app->debug_mode) {
- g_printerr("%s support library path: %s\n", PLUGIN_NAME, libname);
- }
libgeanylua=g_module_open(libname,0);
- g_free(libname);
if (!libgeanylua) {
g_printerr("%s\n", g_module_error());
- g_printerr(_("%s: Can't load support library!\n"), PLUGIN_NAME);
- return;
+ g_printerr(_("%s: Can't load support library %s!\n"), PLUGIN_NAME, libname);
+ return FALSE;
}
if ( !(
GETSYM("glspi_version", glspi_version) &&
@@ -185,16 +165,46 @@
GETSYM("glspi_geany_callbacks", glspi_geany_callbacks)
)) {
g_printerr("%s\n", g_module_error());
- g_printerr(_("%s: Failed to initialize support library!\n"), PLUGIN_NAME);
+ g_printerr(_("%s: Failed to initialize support library %s!\n"), PLUGIN_NAME, libname);
fail_init();
- return;
+ return FALSE;
}
if (!g_str_equal(*glspi_version, VERSION)) {
- g_printerr(_("%s: Support library version mismatch: %s <=> %s\n"),
- PLUGIN_NAME, *glspi_version, VERSION);
+ g_printerr(_("%s: Support library version mismatch: %s for %s (should be %s)!\n"),
+ PLUGIN_NAME, *glspi_version, libname, VERSION);
fail_init();
- return;
+ return FALSE;
}
+ if (geany->app->debug_mode) {
+ g_printerr("%s: Using support library path: %s\n", PLUGIN_NAME, libname);
+ }
+ return TRUE;
+}
+
+
+PLUGIN_EXPORT
+void plugin_init(GeanyData *data)
+{
+ gchar *libname=NULL;
+
+ main_locale_init(LOCALEDIR, GETTEXT_PACKAGE);
+
+ geany_data=data;
+ /* first try the user config path */
+ libname=g_build_path(G_DIR_SEPARATOR_S, data->app->configdir, "plugins", "geanylua", SUPPORT_LIB, NULL);
+ if (!load_support_lib(libname)) {
+ /* try the system path */
+ gchar *libdir=get_lib_dir();
+ g_free(libname);
+ libname=g_build_path(G_DIR_SEPARATOR_S, libdir, "geany-plugins", "geanylua", SUPPORT_LIB, NULL);
+ g_free(libdir);
+ if (!load_support_lib(libname)) {
+ g_printerr(_("%s: Can't find support library %s!\n"), PLUGIN_NAME, libname);
+ g_free(libname);
+ return;
+ }
+ }
+ g_free(libname);
copy_callbacks();
glspi_init(data, geany_functions, geany_plugin);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Plugins-Commits
mailing list