[grisbi-cvs] [SCM] grisbi branch, master, updated. upstream_version_1_1_1-65-g7104a95

Rémi Cardona nobody at users.sourceforge.net
Sat Jan 12 02:07:15 CET 2013


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "grisbi".

The branch, master has been updated
       via  7104a952a3f35b0e7bc3170bf0a5d2b2e77fb510 (commit)
       via  5cc1df94b3cb24d3cbe89437010ed8de339bd44b (commit)
       via  70b9fc7373572d0ea01c34535c14db9b40697c2f (commit)
       via  22853008c3df521d26e841a17bb6cfe3918d98b0 (commit)
       via  fab60f0ef1480421ca2715d6ac75f0675757a196 (commit)
       via  dfce9a6118a27b2d2e2ca8d386e33cc1a711b3e8 (commit)
       via  390645e54206204ac63a2055709ca99cd0d54f35 (commit)
       via  057115ea79242fb6da6fb533a4f8ad01e975f3c1 (commit)
       via  c80eec4935dff748982b41144df737cb537db7fa (commit)
       via  acac4501462a56013bb2e5af3f1b7940dcab3ecb (commit)
       via  783d9d913aeca036c636ed9ec109109855d3b835 (commit)
       via  da8ab3645043162eeba54686fb49ad04bdb5b18f (commit)
       via  251eb8b50b4f5b5978e7ae580511e88d4595c826 (commit)
       via  90b40096d02c55d95c2534fed055b3f8ac84625c (commit)
       via  4bf044749da997b43875c076c8478e0a67f287d5 (commit)
       via  74e2d9559880fb4e217a5070860a1318528d4606 (commit)
       via  303c9d788dbe2b0b386bee6b5f2f7ac8993549a8 (commit)
       via  6d59d905ecea41979f4be0fba4c505bdee489fc6 (commit)
       via  6562481e8e2681247b98a8461773f73104a6a12d (commit)
       via  c37ab104175cedf191133e564d1360669c70f64e (commit)
       via  c694029bc7f1d5202f6477c15cea40433e899650 (commit)
       via  01d9893d1985baaa5cf6ddb5238aae9ae3407934 (commit)
       via  ca4259e50aac25f3a123c31af4d4f60d4d1fae9d (commit)
       via  a27384a31d8bd6e165ec654275b6fd4bf590f7c8 (commit)
       via  af14f10706f343174f73785f4dd52f4c5a48a110 (commit)
       via  d923bc120f093c0c621e9fee62a7c3e71fa45450 (commit)
       via  8d89f2c372c96cfdab377aa465bb82c11dbd6a76 (commit)
       via  fc0b9526a725b374cb18d6b27a2588acd8a7e9ed (commit)
       via  de536ebadfe70d3ad43d9635812a54cea7a3467e (commit)
       via  f2c913c83d1a2f37cfd449ea44835cf33fee8fcb (commit)
       via  570cd27a2f4d3428e0b346d2690d4c8c8e2aa729 (commit)
       via  896ae2ece55484763fe0fc9addd0a2e07000ad86 (commit)
       via  7f7044de52fb265dd85d414142790c9a0f53017e (commit)
       via  f000ea93cc63032ceb015e509b5be76e2bd44919 (commit)
       via  492dba3b6763a86248f1a0cb2b41bca35d49b035 (commit)
       via  2b1d3260b8a8489741e9e1e7b0cd92921b6ea296 (commit)
       via  a1f478cdb464a76487168a28fc8b239483cc0a87 (commit)
       via  4223d3d9577f7900fc05acc121b2f6a5842da682 (commit)
       via  9cdf1191ed58c9b5b0509b3f3f913c64d4b5d872 (commit)
       via  d168425f4fda64c7c54a68aa4f446cf683a32b0b (commit)
       via  b733394d65cfc9ed9461955be3d09615e1d6ce3e (commit)
      from  c6a40bf1ebadda65d1790ce0c82f29d17ad3dbf5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 7104a952a3f35b0e7bc3170bf0a5d2b2e77fb510
Merge: c6a40bf 5cc1df9
Author: Rémi Cardona <remi at gentoo.org>
Date:   Sat Jan 12 01:51:15 2013 +0100

    Merge remote-tracking branch 'origin/grisbi-1.0.x'
    
    Conflicts:
    	configure.in
    	grisbi.spec
    	po/cs.po
    	po/da.po
    	po/de.po
    	po/el.po
    	po/eo.po
    	po/es.po
    	po/fa.po
    	po/fr.po
    	po/he.po
    	po/it.po
    	po/lv.po
    	po/nl.po
    	po/pl.po
    	po/pt_BR.po
    	po/ro.po
    	po/ru.po
    	po/sv.po
    	po/zh_CN.po
    	src/Makefile.am
    	src/bet_future.c
    	src/etats_config.c
    	src/gsb_file_load.c
    	src/main.c

-----------------------------------------------------------------------

Changes:
diff --git a/configure.in b/configure.in
index bfba338..cef1e9b 100644
--- a/configure.in
+++ b/configure.in
@@ -33,7 +33,7 @@ AC_PROG_OBJC
 dnl Check if we have backtrace support
 AC_CHECK_FUNCS(backtrace)
 
-AM_INIT_AUTOMAKE([-Wall foreign])
+AM_INIT_AUTOMAKE([-Wall foreign dist-bzip2 no-dist-gzip])
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
 dnl Initialize libtool
@@ -56,7 +56,7 @@ dnl ================================================================
 
 LT_LIB_M
 
-PKG_CHECK_MODULES(GRISBI, [gtk+-2.0 >= 2.2.24 glib-2.0 >= 2.28 gmodule-2.0 >= 2.28 zlib libgoffice-0.8 >= 0.8.14])
+PKG_CHECK_MODULES(GRISBI, [gtk+-2.0 >= 2.2.24 glib-2.0 >= 2.28 zlib libgoffice-0.8 >= 0.8.14])
 # Temporary hack until Mandriva ships zlib.pc
 #PKG_CHECK_MODULES(GRISBI, [gtk+-2.0 >= 2.12.0 glib-2.0 >= 2.18.0 gmodule-2.0 >= 2.18.0])
 #GRISBI_LIBS="$LIBM $GRISBI_LIBS -lz"
@@ -72,38 +72,6 @@ if expr ${GRISBI_MINOR_VERSION} % 2 > /dev/null; then
 fi
 
 dnl ================================================================
-dnl Plugin support using glib's GModule
-dnl ================================================================
-
-AC_ARG_WITH(plugins,
-	AS_HELP_STRING([--with-plugins],[support plugins (default=auto)]),
-	[build_plugins=$withval],
-	[build_plugins=auto])
-
-AC_MSG_CHECKING(whether GLib supports loadable modules)
-gmodule_supported=`$PKG_CONFIG gmodule-2.0 --variable gmodule_supported`
-if test "$gmodule_supported" = true ; then
-	have_plugins=yes
-else
-	have_plugins=no
-fi
-AC_MSG_RESULT($have_plugins)
-
-if test "$have_plugins" = no -a "$build_plugins" = yes; then
-	AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
-fi
-if test "$build_plugins" != no; then
-	build_plugins=$have_plugins
-else
-	build_plugins=no
-fi
-if test "$build_plugins" = yes; then
-	AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
-fi
-AM_CONDITIONAL(HAVE_PLUGINS, [test "$build_plugins" = yes])
-AC_SUBST(plugindir,[$\(libdir\)/$\(PACKAGE\)])
-
-dnl ================================================================
 dnl XML2
 dnl ================================================================
 
@@ -121,8 +89,8 @@ if test "$build_libxml2" != no; then
 else
 	build_libxml2=no
 fi
-if test "$build_libxml2" = no; then
-	AC_DEFINE(NOXML2, 1, [Define if libxml2 support is disabled])
+if test "$build_libxml2" = yes; then
+	AC_DEFINE(HAVE_XML2, 1, [Define if libxml2 support is enabled])
 fi
 AM_CONDITIONAL(HAVE_XML2, [test "$build_libxml2" = yes])
 
@@ -275,21 +243,6 @@ else
 fi
 
 dnl ================================================================
-dnl Static or Shared plugins support
-dnl ================================================================
-
-AC_ARG_ENABLE(static-plugins,
-	AS_HELP_STRING(
-		[--enable-static-plugins],
-		[Statically build all plugins inside the main binary (default=no)]),
-	enable_static=$enableval,
-	enable_static=no)
-if test "$enable_static" = yes; then
-	AC_DEFINE(ENABLE_STATIC, 1, [Statically build all plugins inside the main binary])
-fi
-AM_CONDITIONAL(ENABLE_STATIC, [test "$enable_static" = yes])
-
-dnl ================================================================
 dnl Makefiles
 dnl ================================================================
 
@@ -324,11 +277,9 @@ AC_OUTPUT
 
 echo "
 
-                Build plugin support:      $build_plugins
                 Build with libxml2:        $build_libxml2
                 Build with OpenSSL:        $build_openssl
                 Build with OFX plugin:     $build_ofx
-                Build plugins statically:  $enable_static
                 Build gtk_mac_integration: $os_osx
                 CUnit/unit tests support:  $build_cunit
 
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 00c04a2..a9c56ab 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -92,7 +92,6 @@ src/gsb_fyear.c
 src/gsb_fyear_config.c
 src/gsb_payment_method.c
 src/gsb_payment_method_config.c
-src/gsb_plugins.c
 src/gsb_real.c
 src/gsb_reconcile.c
 src/gsb_reconcile_config.c
diff --git a/src/Makefile.am b/src/Makefile.am
index 3da6267..c01590e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,6 +1,6 @@
 # Process this file with automake to produce Makefile.in
 
-AM_CPPFLAGS = -I$(top_srcdir) $(GRISBI_CFLAGS) $(GTK_MAC_CFLAGS) $(GOFFICE_CFLAGS) -DLOCALEDIR=\"$(localedir)\" -DPIXMAPS_DIR="\"$(datadir)/pixmaps/@PACKAGE@\"" -DPLUGINS_DIR="\"$(plugindir)\"" -DLOGO_PATH="\"$(datadir)/pixmaps/@PACKAGE@/grisbi-logo.png\"" -DDATA_PATH="\"$(datadir)/@PACKAGE@\"" -DHELP_PATH="\"$(docdir)\"" -DUI_DIR="\"$(datadir)/@PACKAGE@/ui\""
+AM_CPPFLAGS = -I$(top_srcdir) $(GRISBI_CFLAGS) $(GTK_MAC_CFLAGS) $(GOFFICE_CFLAGS) -DLOCALEDIR=\"$(localedir)\" -DPIXMAPS_DIR="\"$(datadir)/pixmaps/@PACKAGE@\"" -DLOGO_PATH="\"$(datadir)/pixmaps/@PACKAGE@/grisbi-logo.png\"" -DDATA_PATH="\"$(datadir)/@PACKAGE@\"" -DHELP_PATH="\"$(docdir)\"" -DUI_DIR="\"$(datadir)/@PACKAGE@/ui\""
 
 bin_PROGRAMS = grisbi
 noinst_LTLIBRARIES = libgrisbi.la
@@ -8,13 +8,15 @@ noinst_LTLIBRARIES = libgrisbi.la
 grisbi_LDADD = $(GRISBI_LIBS) $(GTK_MAC_LIBS) libgrisbi.la
 
 libgrisbi_la_LIBADD =
-if ENABLE_STATIC
-libgrisbi_la_LIBADD += \
-	plugins/gnucash/gnucash.la \
-	plugins/ofx/ofx.la \
-	plugins/openssl/openssl.la
-else
-libgrisbi_la_LDFLAGS = -export_dynamic
+
+if HAVE_XML2
+libgrisbi_la_LIBADD += plugins/gnucash/gnucash.la
+endif
+if HAVE_OFX
+libgrisbi_la_LIBADD += plugins/ofx/ofx.la
+endif
+if HAVE_SSL
+libgrisbi_la_LIBADD += plugins/openssl/openssl.la
 endif
 libgrisbi_la_LIBADD += $(GRISBI_LIBS) $(GTK_MAC_LIBS) $(GOFFICE_LIBS)
 
@@ -104,7 +106,6 @@ libgrisbi_la_SOURCES = \
 	gsb_locale.c	\
 	gsb_payment_method.c	\
 	gsb_payment_method_config.c	\
-	gsb_plugins.c		\
 	gsb_real.c		\
 	gsb_reconcile.c		\
 	gsb_reconcile_config.c	\
@@ -257,7 +258,6 @@ libgrisbi_la_SOURCES = \
 	gsb_locale.h	\
 	gsb_payment_method.h	\
 	gsb_payment_method_config.h	\
-	gsb_plugins.h           \
 	gsb_real.h		\
 	gsb_reconcile.h		\
 	gsb_reconcile_config.h	\
@@ -315,7 +315,7 @@ grisbi_SOURCES = 		\
 	main.c				\
 	main.h
 
-SUBDIRS = ui
+SUBDIRS = ui plugins/gnucash plugins/ofx plugins/openssl
 
 if HAVE_CUNIT
 SUBDIRS += tests
@@ -326,10 +326,6 @@ EXTRA_DIST = grisbi.keys grisbi.mime
 mimedir = $(datadir)/mime-info
 mime_DATA = grisbi.keys grisbi.mime
 
-if HAVE_PLUGINS
-SUBDIRS += plugins/gnucash plugins/ofx plugins/openssl
-endif
-
 ALLHEADERS := $(filter %.h,$(libgrisbi_la_SOURCES) $(grisbi_SOURCES))
 
 checkheaders: $(ALLHEADERS:.h=.ho)
diff --git a/src/dialog.c b/src/dialog.c
index 08b595e..497c4f5 100644
--- a/src/dialog.c
+++ b/src/dialog.c
@@ -35,6 +35,7 @@
 /*END_INCLUDE*/
 
 /*START_STATIC*/
+static void dialogue_special ( GtkMessageType param, gchar *text );
 static void dialogue_conditional ( gchar *text, gchar *var );
 static GtkDialog *dialogue_conditional_new ( gchar *text,
                         gchar *var,
@@ -150,7 +151,7 @@ void dialogue ( gchar *texte_dialogue )
  *
  * \param text Text to display in window
  */
-G_MODULE_EXPORT void dialogue_error ( gchar *text )
+void dialogue_error ( gchar *text )
 {
     dialogue_special ( GTK_MESSAGE_ERROR, text );
 }
@@ -162,7 +163,7 @@ G_MODULE_EXPORT void dialogue_error ( gchar *text )
  * \param text Text to display in window
  * \param hint Text to display in window as hint (bold, larger)
  */
-G_MODULE_EXPORT void dialogue_error_hint ( const gchar *text, gchar *hint )
+void dialogue_error_hint ( const gchar *text, gchar *hint )
 {
     dialogue_special ( GTK_MESSAGE_ERROR, make_hint (hint, text) );
 }
@@ -173,7 +174,7 @@ G_MODULE_EXPORT void dialogue_error_hint ( const gchar *text, gchar *hint )
  *
  * \param text Text to display in window
  */
-G_MODULE_EXPORT void dialogue_warning ( gchar *text )
+void dialogue_warning ( gchar *text )
 {
     dialogue_special ( GTK_MESSAGE_WARNING, text );
 }
@@ -629,10 +630,11 @@ gchar *make_red ( const gchar *text )
  */
 gchar *make_pango_attribut ( gchar *attribut, const gchar *text )
 {
-    gchar *tmpstr;
+    gchar *tmpstr, *span_format;
 
-    tmpstr = g_markup_printf_escaped (
-                        g_strconcat ( "<span ", attribut, ">%s</span>", NULL ), text );
+    span_format = g_strconcat ( "<span ", attribut, ">%s</span>", NULL );
+    tmpstr = g_markup_printf_escaped ( span_format , text );
+    g_free ( span_format );
 
     return tmpstr;
 }
diff --git a/src/dialog.h b/src/dialog.h
index 39b36ed..765777b 100644
--- a/src/dialog.h
+++ b/src/dialog.h
@@ -18,24 +18,23 @@ struct conditional_message
 
 
 /* START_DECLARATION */
-G_MODULE_EXPORT void dialog_message ( gchar *label, ... );
+void dialog_message ( gchar *label, ... );
 void dialogue ( gchar *texte_dialogue );
 void dialogue_conditional_hint ( gchar *hint, gchar *text, gchar *var );
-G_MODULE_EXPORT void dialogue_error ( gchar *text );
+void dialogue_error ( gchar *text );
 void dialogue_error_brain_damage ();
-G_MODULE_EXPORT void dialogue_error_hint ( const gchar *text, gchar *hint );
+void dialogue_error_hint ( const gchar *text, gchar *hint );
 void dialogue_error_memory ();
 GtkWidget *dialog_get_action_area ( GtkWidget *dialog );
 GtkWidget *dialog_get_content_area ( GtkWidget *dialog );
 void dialogue_hint ( gchar *text, gchar *hint );
 const gchar *dialogue_hint_with_entry ( gchar *text, gchar *hint, gchar *entry_description );
-void dialogue_special ( GtkMessageType param, gchar *text );
 GtkWidget *dialogue_special_no_run ( GtkMessageType param,
                         GtkButtonsType buttons,
                         gchar *text );
 gboolean dialogue_update_struct_message ( GtkWidget *checkbox,
                         struct conditional_message *message );
-G_MODULE_EXPORT void dialogue_warning ( gchar *text );
+void dialogue_warning ( gchar *text );
 void dialogue_warning_hint ( gchar *text, gchar *hint );
 gchar *make_blue ( const gchar *text );
 gchar *make_hint ( const gchar *hint, const gchar *text );
diff --git a/src/erreur.c b/src/erreur.c
index 7b27a81..5ff93f2 100644
--- a/src/erreur.c
+++ b/src/erreur.c
@@ -39,7 +39,6 @@
 #include "gsb_file.h"
 #include "gsb_file_save.h"
 #include "gsb_file_util.h"
-#include "gsb_plugins.h"
 #include "gsb_real.h"
 #include "gsb_status.h"
 #include "import.h"
@@ -274,7 +273,7 @@ gchar *get_debug_time ( void )
  *
  * \return
  * */
-G_MODULE_EXPORT void debug_message_string ( gchar *prefixe,
+void debug_message_string ( gchar *prefixe,
                         gchar *file,
                         gint line,
                         const char *function,
diff --git a/src/erreur.h b/src/erreur.h
index c22318b..ed637b2 100644
--- a/src/erreur.h
+++ b/src/erreur.h
@@ -41,7 +41,7 @@ void debug_message_real ( gchar *prefixe,
                         gsb_real message,
                         gint level,
                         gboolean force_debug_display);
-G_MODULE_EXPORT void debug_message_string ( gchar *prefixe,
+void debug_message_string ( gchar *prefixe,
                         gchar *file,
                         gint line,
                         const char *function,
diff --git a/src/etats_config.c b/src/etats_config.c
index ce66416..73a8fa8 100644
--- a/src/etats_config.c
+++ b/src/etats_config.c
@@ -333,7 +333,7 @@ static void etats_config_recupere_info_onglet_periode ( gint report_number )
                 text = g_strdup ( _("All financial years have been selected.  Grisbi will run "
                                 "faster without the \"Detail financial years\" option activated.") );
 
-                dialogue_special ( GTK_MESSAGE_INFO, make_hint ( hint, text ) );
+                dialogue_hint ( text, hint );
                 etats_prefs_button_toggle_set_actif ( "bouton_exo_tous", FALSE );
                 gsb_data_report_set_financial_year_type ( report_number, 0 );
 
@@ -541,7 +541,7 @@ static void etats_config_recupere_info_onglet_comptes ( gint report_number )
             text = g_strdup ( _("All accounts have been selected.  Grisbi will run "
                             "faster without the \"Detail accounts used\" option activated") );
 
-            dialogue_special ( GTK_MESSAGE_INFO, make_hint ( hint, text ) );
+            dialogue_hint ( text, hint );
             etats_prefs_button_toggle_set_actif ( "gsb_data_report_set_account_use_chosen", FALSE );
             gsb_data_report_set_account_use_chosen ( report_number, FALSE );
 
@@ -729,7 +729,7 @@ static void etats_config_recupere_info_onglet_tiers ( gint report_number )
             text = g_strdup ( _("All payees have been selected.  Grisbi will run "
                             "faster without the \"Detail payees used\" option activated.") );
 
-            dialogue_special ( GTK_MESSAGE_INFO, make_hint ( hint, text ) );
+            dialogue_hint ( text, hint );
             etats_prefs_button_toggle_set_actif ( "togglebutton_select_all_tiers", FALSE );
             gsb_data_report_set_payee_detail_used ( report_number, FALSE );
 
@@ -954,15 +954,15 @@ static GSList *etats_config_onglet_categ_budget_get_selected ( const gchar *tree
     if ( all_selected )
     {
         if ( strcmp ( treeview_name, "treeview_categ" ) == 0 )
-            dialogue_special ( GTK_MESSAGE_INFO,
-                        make_hint ( _("Performance issue."),
+            dialogue_hint (
                         _("All categories have been selected.  Grisbi will run faster without "
-                        "the \"Detail categories used\" option activated.") ) );
+                        "the \"Detail categories used\" option activated."),
+                        _("Performance issue.") );
         else
-            dialogue_special ( GTK_MESSAGE_INFO,
-                        make_hint ( _("Performance issue."),
+            dialogue_hint (
                         _("All budgets have been selected.  Grisbi will run faster without the "
-                        "\"Detail budgets used\" option activated.") ) );
+                        "\"Detail budgets used\" option activated."),
+                        _("Performance issue.") );
 
         etats_config_onglet_categ_budget_tree_model_check_uncheck_all ( model, FALSE );
         gsb_data_report_free_categ_budget_struct_list ( tmp_list );
@@ -2622,7 +2622,7 @@ static void etats_config_recupere_info_onglet_mode_paiement ( gint report_number
             text = g_strdup ( _("All methods of payment have been selected.  Grisbi will run "
                             "faster without the \"Detail methods of payment used\" option activated.") );
 
-            dialogue_special ( GTK_MESSAGE_INFO, make_hint ( hint, text ) );
+            dialogue_hint ( text, hint );
             etats_prefs_button_toggle_set_actif ( "togglebutton_select_all_mode_paiement", FALSE );
             gsb_data_report_set_method_of_payment_used ( report_number, 0 );
 
diff --git a/src/etats_onglet.c b/src/etats_onglet.c
index b55d519..94691de 100644
--- a/src/etats_onglet.c
+++ b/src/etats_onglet.c
@@ -943,6 +943,8 @@ void efface_etat ( void )
 {
     gint current_report_number;
     GtkWidget *notebook_general;
+    gchar *hint;
+    gboolean answer;
 
     current_report_number = gsb_gui_navigation_get_current_report ();
 
@@ -953,11 +955,16 @@ void efface_etat ( void )
     if ( gtk_notebook_get_current_page ( GTK_NOTEBOOK ( notebook_general)) != GSB_REPORTS_PAGE )
         gtk_notebook_set_current_page ( GTK_NOTEBOOK ( notebook_general), GSB_REPORTS_PAGE );
 
-   if ( !question_yes_no_hint ( g_strdup_printf (_("Delete report \"%s\"?"),
-						  gsb_data_report_get_report_name (current_report_number) ),
-				_("This will irreversibly remove this report.  There is no undo for this."),
-				GTK_RESPONSE_NO ))
-	return;
+    hint = g_strdup_printf ( _("Delete report \"%s\"?"),
+                             gsb_data_report_get_report_name (current_report_number) );
+    answer = question_yes_no_hint ( hint,
+                                   _("This will irreversibly remove this report.  "
+                                     "There is no undo for this."),
+                                   GTK_RESPONSE_NO );
+    g_free ( hint );
+
+    if ( ! answer )
+        return;
 
    /* remove the report */
 
diff --git a/src/file_obfuscate_qif.c b/src/file_obfuscate_qif.c
index e8f2151..c8312b3 100644
--- a/src/file_obfuscate_qif.c
+++ b/src/file_obfuscate_qif.c
@@ -110,18 +110,14 @@ gboolean file_obfuscate_qif_run ( void )
 	gtk_file_filter_add_pattern ( filter, "*" );
 	gtk_file_chooser_add_filter ( GTK_FILE_CHOOSER ( file_selection ), filter );
 
-	switch ( gtk_dialog_run ( GTK_DIALOG (file_selection)))
+	if ( gtk_dialog_run ( GTK_DIALOG (file_selection) ) == GTK_RESPONSE_OK )
 	{
-	    case GTK_RESPONSE_OK:
 		    qif_name = file_selection_get_filename ( GTK_FILE_CHOOSER ( file_selection ) ) ;
 		    gtk_widget_destroy ( file_selection );
-		    if (qif_name || strlen (qif_name))
+		    if (qif_name && strlen (qif_name))
 			file_obfuscate_qif_start (qif_name);
-		    break;
-	    default:
-		    gtk_widget_destroy ( file_selection );
-		    break;
 	}
+	gtk_widget_destroy ( file_selection );
     }
 
     gtk_widget_destroy ( assistant );
diff --git a/src/grisbi_osx.c b/src/grisbi_osx.c
index 7137b12..bd26ed1 100644
--- a/src/grisbi_osx.c
+++ b/src/grisbi_osx.c
@@ -72,15 +72,15 @@ typedef struct
 
 typedef struct
 {
-  GtkOSXApplication *app;
-  GtkOSXApplicationAttentionType type;
+  GtkosxApplication *app;
+  GtkosxApplicationAttentionType type;
 } AttentionRequest;
 
 
 /*START_STATIC*/
 static void action_activate_cb ( GtkAction *action, gpointer data );
 static gboolean attention_cb ( AttentionRequest* req );
-static void bounce_cb ( GtkWidget  *button, GtkOSXApplication *app );
+static void bounce_cb ( GtkWidget  *button, GtkosxApplication *app );
 static MenuCBData *menu_cbdata_new ( gchar *label, gpointer item );
 static void menu_cbdata_delete ( MenuCBData *datum );
 static void menu_item_activate_cb ( GtkWidget *item, MenuCBData  *datum );
@@ -186,7 +186,7 @@ static void radio_item_changed_cb ( GtkAction* action, GtkAction* current, MenuC
  * */
 static gboolean attention_cb ( AttentionRequest* req )
 {
-    gtk_osxapplication_attention_request ( req->app, req->type );
+    gtkosx_application_attention_request ( req->app, req->type );
 
     g_free(req);
 
@@ -200,7 +200,7 @@ static gboolean attention_cb ( AttentionRequest* req )
  *
  *
  * */
-static void bounce_cb ( GtkWidget  *button, GtkOSXApplication *app )
+static void bounce_cb ( GtkWidget  *button, GtkosxApplication *app )
 {
     AttentionRequest *req = g_new0 ( AttentionRequest, 1 );
 
@@ -217,7 +217,7 @@ static void bounce_cb ( GtkWidget  *button, GtkOSXApplication *app )
  *
  *
  * */
-void grisbi_osx_app_active_cb ( GtkOSXApplication* app, gboolean* data )
+void grisbi_osx_app_active_cb ( GtkosxApplication* app, gboolean* data )
 {
     g_print("Application became %s\n", *data ? "active" : "inactive");
 }
@@ -235,9 +235,9 @@ GtkWidget *grisbi_osx_init_menus ( GtkWidget *window, GtkWidget *menubar )
     GtkWidget *sep;
     MenuItems *items;
     GtkUIManager *ui_manager;
-    GtkOSXApplication *theApp;
+    GtkosxApplication *theApp;
 
-    theApp = g_object_new ( GTK_TYPE_OSX_APPLICATION, NULL );
+    theApp = g_object_new ( GTKOSX_TYPE_APPLICATION, NULL );
 
     ui_manager = gsb_menu_get_ui_manager ( );
     items = menu_items_new ( );
@@ -254,20 +254,20 @@ GtkWidget *grisbi_osx_init_menus ( GtkWidget *window, GtkWidget *menubar )
     gtk_widget_hide ( items->quit_item );
     gtk_widget_hide ( menubar );
 
-    gtk_osxapplication_set_menu_bar ( theApp, GTK_MENU_SHELL ( menubar ) );
-    gtk_osxapplication_insert_app_menu_item  ( theApp, items->about_item, 0 );
+    gtkosx_application_set_menu_bar ( theApp, GTK_MENU_SHELL ( menubar ) );
+    gtkosx_application_insert_app_menu_item  ( theApp, items->about_item, 0 );
 
     sep = gtk_separator_menu_item_new ( );
     g_object_ref ( sep );
-    gtk_osxapplication_insert_app_menu_item  ( theApp, sep, 1 );
-    gtk_osxapplication_insert_app_menu_item  ( theApp, items->preferences_item, 2);
+    gtkosx_application_insert_app_menu_item  ( theApp, sep, 1 );
+    gtkosx_application_insert_app_menu_item  ( theApp, items->preferences_item, 2);
 
     sep = gtk_separator_menu_item_new ( );
     g_object_ref ( sep );
-    gtk_osxapplication_insert_app_menu_item  ( theApp, sep, 3 );
+    gtkosx_application_insert_app_menu_item  ( theApp, sep, 3 );
 
-    gtk_osxapplication_set_help_menu ( theApp, GTK_MENU_ITEM ( items->help_menu ) );
-    gtk_osxapplication_set_window_menu ( theApp, NULL );
+    gtkosx_application_set_help_menu ( theApp, GTK_MENU_ITEM ( items->help_menu ) );
+    gtkosx_application_set_window_menu ( theApp, NULL );
 
     if ( !menu_items_quark )
         menu_items_quark = g_quark_from_static_string ( "MenuItem" );
@@ -286,11 +286,11 @@ GtkWidget *grisbi_osx_init_menus ( GtkWidget *window, GtkWidget *menubar )
  * */
 void grisbi_osx_app_update_menus_cb ( void )
 {
-    GtkOSXApplication *theApp;
+    GtkosxApplication *theApp;
 
-    theApp = g_object_new ( GTK_TYPE_OSX_APPLICATION, NULL );
+    theApp = g_object_new ( GTKOSX_TYPE_APPLICATION, NULL );
 
-    gtk_osxapplication_sync_menubar ( theApp );
+    gtkosx_application_sync_menubar ( theApp );
 }
 
 
diff --git a/src/grisbi_osx.h b/src/grisbi_osx.h
index d5e27de..ba0e2bc 100644
--- a/src/grisbi_osx.h
+++ b/src/grisbi_osx.h
@@ -10,7 +10,7 @@
 
 
 /* START_DECLARATION */
-void grisbi_osx_app_active_cb ( GtkOSXApplication* app, gboolean* data );
+void grisbi_osx_app_active_cb ( GtkosxApplication* app, gboolean* data );
 void grisbi_osx_app_update_menus_cb ( void );
 GtkWidget *grisbi_osx_init_menus ( GtkWidget *window, GtkWidget *vbox );
 /* END_DECLARATION */
diff --git a/src/gsb_assistant_file.c b/src/gsb_assistant_file.c
index ba69201..9ef5b59 100644
--- a/src/gsb_assistant_file.c
+++ b/src/gsb_assistant_file.c
@@ -44,7 +44,6 @@
 #include "gsb_currency.h"
 #include "gsb_dirs.h"
 #include "gsb_file.h"
-#include "gsb_plugins.h"
 #include "gsb_select_icon.h"
 #include "import.h"
 #include "parametres.h"
@@ -323,7 +322,7 @@ static GtkWidget *gsb_assistant_file_page_2 ( GtkWidget *assistant )
 			GTK_SHRINK | GTK_FILL, 0, 0, 0 );
 
     /* will we crypt the file ? */
-    if ( gsb_plugin_find ( "openssl" ) )
+#ifdef HAVE_SSL
     {
         button = gsb_automem_checkbutton_new ( _("Encrypt Grisbi file"),
                                                &(etat.crypt_file), G_CALLBACK (gsb_gui_encryption_toggled), NULL);
@@ -333,10 +332,11 @@ static GtkWidget *gsb_assistant_file_page_2 ( GtkWidget *assistant )
         if ( etat.crypt_file )
             run.new_crypted_file = TRUE;
     }
-    else
+#else
     {
         run.new_crypted_file = FALSE;
     }
+#endif
 
     /* date format */
     paddingbox = gsb_config_date_format_chosen ( vbox, GTK_ORIENTATION_HORIZONTAL );
diff --git a/src/gsb_assistant_first.c b/src/gsb_assistant_first.c
index ceb505e..6ebf3fc 100644
--- a/src/gsb_assistant_first.c
+++ b/src/gsb_assistant_first.c
@@ -41,7 +41,6 @@
 #include "gsb_automem.h"
 #include "gsb_dirs.h"
 #include "gsb_file.h"
-#include "gsb_plugins.h"
 #include "parametres.h"
 #include "structures.h"
 #include "traitement_variables.h"
@@ -251,7 +250,7 @@ static GtkWidget *gsb_assistant_first_page_2 ( GtkWidget *assistant )
 			 FALSE, FALSE, 0 );
 
     /* crypt the grisbi file */
-    if ( gsb_plugin_find ( "openssl" ) )
+#ifdef HAVE_SSL
     {
         button = gsb_automem_checkbutton_new ( _("Encrypt Grisbi file"),
                                                &(etat.crypt_file), G_CALLBACK (gsb_gui_encryption_toggled), NULL);
@@ -261,10 +260,11 @@ static GtkWidget *gsb_assistant_first_page_2 ( GtkWidget *assistant )
         if ( etat.crypt_file )
             run.new_crypted_file = TRUE;
     }
-    else
+#else
     {
         run.new_crypted_file = FALSE;
     }
+#endif
 
     /* Automatic backup ? */
     button = gsb_automem_checkbutton_new (_("Make a backup copy before saving files"),
@@ -332,15 +332,12 @@ static GtkWidget *gsb_assistant_first_page_3 ( GtkWidget *assistant )
     GtkWidget *vbox;
     GtkWidget *label;
     GtkWidget *paddingbox;
-    GtkSizeGroup *size_group;
     GtkWidget *hbox;
     GtkWidget *image;
 
     page = gtk_hbox_new (FALSE, 15);
     gtk_container_set_border_width ( GTK_CONTAINER (page), 10 );
 
-    size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
-
     vbox = new_vbox_with_title_and_icon ( _("Reconciliation"), "reconciliationlg.png" );
     gtk_box_pack_start ( GTK_BOX (page), vbox, TRUE, TRUE, 0 );
 
diff --git a/src/gsb_currency_config.c b/src/gsb_currency_config.c
index ab11582..599e14f 100644
--- a/src/gsb_currency_config.c
+++ b/src/gsb_currency_config.c
@@ -1044,18 +1044,8 @@ dialog_return:
     {
         /* check if the currency exists si la devise existe on ne fait rien */
 
-        if ( gsb_data_currency_get_number_by_name ( currency_name ) )
-        {
-            currency_number = gsb_data_currency_get_number_by_name
-                        ( currency_name );
-        }
-        else if ( gsb_data_currency_get_number_by_code_iso4217
-                        ( currency_isocode ) )
-        {
-            currency_number = gsb_data_currency_get_number_by_code_iso4217
-                        ( currency_isocode );
-        }
-        else
+        if ( ! gsb_data_currency_get_number_by_name ( currency_name ) &&
+             ! gsb_data_currency_get_number_by_code_iso4217 ( currency_isocode ) )
         {
             currency_number = gsb_currency_config_create_currency ( currency_name,
                         currency_code, currency_isocode, floating_point );
diff --git a/src/gsb_dirs.c b/src/gsb_dirs.c
index ae428e4..769c5ce 100644
--- a/src/gsb_dirs.c
+++ b/src/gsb_dirs.c
@@ -33,7 +33,6 @@
 
 static gchar *locale_dir;
 static gchar *pixmaps_dir;
-static gchar *plugins_dir;
 static gchar *categories_dir;
 static gchar *ui_dir;
 static gchar *user_config_dir;
@@ -55,7 +54,6 @@ void gsb_dirs_init ( void )
         categories_dir = g_build_filename ( dir, "share/grisbi/categories", NULL );
         locale_dir = g_strconcat ( dir, "/share/locale", NULL );
         pixmaps_dir = g_strconcat ( dir, "/share/pixmaps/grisbi", NULL );
-        plugins_dir = g_strconcat ( dir, "/lib/grisbi", NULL );
         ui_dir = g_strconcat ( dir, "/share/grisbi/ui", NULL );
 
         g_free ( dir );
@@ -117,7 +115,6 @@ void gsb_dirs_shutdown ( void )
     g_free ( categories_dir );
     g_free ( locale_dir );
     g_free ( pixmaps_dir );
-    g_free ( plugins_dir );
     g_free ( ui_dir );
     g_free ( user_config_dir );
     g_free ( user_data_dir );
@@ -146,12 +143,6 @@ const gchar *gsb_dirs_get_pixmaps_dir ( void )
 }
 
 
-const gchar *gsb_dirs_get_plugins_dir ( void )
-{
-    return plugins_dir;
-}
-
-
 const gchar *gsb_dirs_get_ui_dir ( void )
 {
     return ui_dir;
diff --git a/src/gsb_dirs.h b/src/gsb_dirs.h
index 50b329d..f7ccd18 100644
--- a/src/gsb_dirs.h
+++ b/src/gsb_dirs.h
@@ -9,7 +9,6 @@ const gchar *gsb_dirs_get_categories_dir ( void );
 const gchar *gsb_dirs_get_default_dir ( void );
 const gchar *gsb_dirs_get_locale_dir ( void );
 const gchar *gsb_dirs_get_pixmaps_dir ( void );
-const gchar *gsb_dirs_get_plugins_dir ( void );
 const gchar *gsb_dirs_get_ui_dir ( void );
 const gchar *gsb_dirs_get_user_config_dir ( void );
 const gchar *gsb_dirs_get_user_data_dir ( void );
diff --git a/src/gsb_file_load.c b/src/gsb_file_load.c
index ef6bc36..221042e 100644
--- a/src/gsb_file_load.c
+++ b/src/gsb_file_load.c
@@ -69,7 +69,6 @@
 #include "gsb_file.h"
 #include "gsb_file_util.h"
 #include "gsb_locale.h"
-#include "gsb_plugins.h"
 #include "gsb_real.h"
 #include "gsb_select_icon.h"
 #include "gsb_scheduler_list.h"
@@ -83,6 +82,9 @@
 #include "utils_real.h"
 #include "utils_str.h"
 #include "erreur.h"
+#ifdef HAVE_SSL
+#include "plugins/openssl/openssl.h"
+#endif
 /*END_INCLUDE*/
 
 /*START_STATIC*/
@@ -331,37 +333,31 @@ gboolean gsb_file_load_open_file ( gchar *filename )
     {
         GMarkupParser *markup_parser;
         GMarkupParseContext *context;
-        gsb_plugin *plugin;
 
         /* first, we check if the file is crypted, if it is, we decrypt it */
         if ( !strncmp ( file_content, "Grisbi encrypted file ", 22 ) ||
              !strncmp ( file_content, "Grisbi encryption v2: ", 22 ) )
         {
-            plugin = gsb_plugin_find ( "openssl" );
-            if ( plugin )
-            {
-            gint (*crypt_function) ( gchar *, gchar **, gboolean, gulong );
-
-            crypt_function = (gpointer) plugin -> plugin_run;
-            length = crypt_function ( filename, &file_content, FALSE, length );
+#ifdef HAVE_SSL
+            length = gsb_file_util_crypt_file ( filename, &file_content, FALSE, length );
 
             if ( ! length )
             {
                 g_free (file_content);
                 return FALSE;
             }
-            }
-            else
+#else
             {
                 g_free (file_content);
-                dialogue_error_hint ( _("Grisbi was unable to load required plugin to "
-                        "handle that file.\n\n"
-                        "Please make sure if is installed (i.e. check "
-                        "that 'open-ssl' package is installed) and "
-                        "try again."),
-                        _("Encryption plugin not found." ) );
+                gchar *text = _("This build of Grisbi does not support encryption.\n"
+                        "Please recompile Grisbi with OpenSSL encryption enabled.");
+                gchar *hint = g_strdup_printf ( _("Cannot open encrypted file '%s'"),
+	                                            filename );
+                dialogue_error_hint ( text, hint );
+                g_free ( hint );
                 return FALSE;
             }
+#endif
         }
 
         /* we begin to check if we are in a version under 0.6 or 0.6 and above,
diff --git a/src/gsb_file_save.c b/src/gsb_file_save.c
index b1a4ab1..ad64d20 100644
--- a/src/gsb_file_save.c
+++ b/src/gsb_file_save.c
@@ -72,7 +72,6 @@
 #include "utils_dates.h"
 #include "navigation.h"
 #include "gsb_locale.h"
-#include "gsb_plugins.h"
 #include "gsb_real.h"
 #include "gsb_select_icon.h"
 #include "utils_str.h"
@@ -81,6 +80,9 @@
 #include "gsb_scheduler_list.h"
 #include "gsb_calendar.h"
 #include "erreur.h"
+#ifdef HAVE_SSL
+#include "plugins/openssl/openssl.h"
+#endif
 /*END_INCLUDE*/
 
 /*START_STATIC*/
@@ -214,8 +216,6 @@ gboolean gsb_file_save_save_file ( const gchar *filename,
 
     struct stat buf;
 
-    gsb_plugin * plugin;
-
     devel_debug (filename);
 
     if ( g_file_test ( filename, G_FILE_TEST_EXISTS ) )
@@ -380,30 +380,27 @@ gboolean gsb_file_save_save_file ( const gchar *filename,
     /* crypt the file if asked */
     if ( etat.crypt_file )
     {
-        if ( ( plugin = gsb_plugin_find ( "openssl" ) ) )
+#ifdef HAVE_SSL
         {
-            gint (*crypt_function) ( const gchar *, gchar **, gboolean, gulong );
-
-            crypt_function = (gpointer) plugin -> plugin_run;
-            iterator = crypt_function ( filename, &file_content, TRUE, iterator );
+            iterator = gsb_file_util_crypt_file ( filename, &file_content, TRUE, iterator );
             if ( ! iterator )
             {
                 g_free ( file_content);
                 return FALSE;
             }
         }
-        else
+#else
         {
-            dialogue_error_hint ( _("Grisbi was unable to load required plugin to "
-                        "handle that file.\n\n"
-                        "Please make sure if is installed (i.e. check "
-                        "that 'open-ssl' package is installed) and "
-                        "try again."),
-                      _("Encryption plugin not found." ) );
-
             g_free ( file_content);
+            gchar *text = _("This build of Grisbi does not support encryption.\n"
+                    "Please recompile Grisbi with OpenSSL encryption enabled.");
+            gchar *hint = g_strdup_printf ( _("Cannot open encrypted file '%s'"),
+                                                filename );
+            dialogue_error_hint ( text, hint );
+            g_free ( hint );
             return FALSE;
         }
+#endif
     }
 
     /* the file is in memory, we can save it */
diff --git a/src/gsb_plugins.c b/src/gsb_plugins.c
deleted file mode 100644
index a2615d9..0000000
--- a/src/gsb_plugins.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/* ************************************************************************** */
-/*                                                                            */
-/*     Copyright (C)	2006-2006 Benjamin Drieu (bdrieu at april.org)	      */
-/* 			http://www.grisbi.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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
-/*                                                                            */
-/* ************************************************************************** */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "include.h"
-#ifndef ENABLE_STATIC
-#include <gmodule.h>
-#endif
-#include <glib/gi18n.h>
-
-/*START_INCLUDE*/
-#include "gsb_plugins.h"
-#include "dialog.h"
-#ifdef ENABLE_STATIC
-#include "plugins/gnucash/gnucash.h"
-#include "plugins/ofx/ofx.h"
-#include "plugins/openssl/openssl.h"
-#endif /* ENABLE_STATIC */
-/*END_INCLUDE*/
-
-/*START_EXTERN*/
-/*END_EXTERN*/
-
-/*START_STATIC*/
-/*END_STATIC*/
-
-
-/** List of registered plugins.  It should contain gsb_plugin structures. */
-static GSList * plugins = NULL;
-
-/**
- *
- *
- */
-void gsb_plugins_scan_dir ( const char *dirname )
-{
-#ifdef ENABLE_STATIC
-    gsb_plugin *plugin = NULL;
-
-    plugin = g_malloc0 ( sizeof ( gsb_plugin ) );
-    plugin -> name = "gnucash";
-    plugin -> plugin_register = &gnucash_plugin_register;
-    plugin -> plugin_run =      &gnucash_plugin_run;
-    plugin -> plugin_register ();
-    plugins = g_slist_append ( plugins, plugin );
-
-#ifdef HAVE_OFX
-    plugin = g_malloc0 ( sizeof ( gsb_plugin ) );
-    plugin -> name = "ofx";
-    plugin -> plugin_register = &ofx_plugin_register;
-    plugin -> plugin_run =      &ofx_plugin_run;
-    plugin -> plugin_register ();
-    plugins = g_slist_append ( plugins, plugin );
-#endif /* HAVE_OFX */
-
-    plugin = g_malloc0 ( sizeof ( gsb_plugin ) );
-    plugin -> name = "openssl";
-    plugin -> plugin_register = &openssl_plugin_register;
-    plugin -> plugin_run =      &openssl_plugin_run;
-    plugin -> plugin_register ();
-    plugins = g_slist_append ( plugins, plugin );
-#else /* ENABLE_STATIC */
-    GDir * plugin_dir;
-    const gchar * filename;
-    gchar * plugin_name;
-
-    plugin_dir = g_dir_open ( dirname, 0, NULL );
-    if ( ! plugin_dir )
-	return;
-
-    while ( ( filename = g_dir_read_name ( plugin_dir ) ) != NULL )
-    {
-	gchar * complete_filename, * tmp;
-	gchar ** split_filename;
-	gsb_plugin * plugin = g_malloc0 ( sizeof ( gsb_plugin ) );
-
-	split_filename = g_strsplit(filename, ".", 2);
-
-	if (!split_filename[1])
-		continue;
-
-	if ( strncmp ( split_filename[1], G_MODULE_SUFFIX, strlen(G_MODULE_SUFFIX) ) )
-	    continue;
-
-	complete_filename = g_build_filename ( dirname, filename, NULL );
-
-	if ( ! ( plugin -> handle =
-		 g_module_open (complete_filename, 0 ) ) )
-	{
-	    gchar* tmpstr = g_strdup_printf ( "Couldn't load module %s: %s", filename,
-					       g_module_error() );
-	    dialogue_error ( tmpstr );
-	    g_free ( tmpstr );
-	    g_free ( plugin );
-	    g_free ( complete_filename);
-	    continue;
-	}
-
-	g_free (complete_filename);
-
-	if ( ! g_module_symbol ( plugin -> handle, "plugin_name",
-				 (gpointer) &plugin_name ) )
-	{
-	    gchar* tmpstr = g_strdup_printf ( "Plugin %s has no register symbol",
-					       filename );
-	    dialogue_error ( tmpstr );
-	    g_free ( tmpstr );
-	    g_free ( plugin );
-	    continue;
-	}
-	plugin -> name = plugin_name;
-
-	tmp = g_strconcat ( plugin_name, "_plugin_register", NULL );
-	if ( ! g_module_symbol ( plugin -> handle, tmp,
-				 (gpointer)  &( plugin -> plugin_register ) ) )
-	{
-	    gchar* tmpstr = g_strdup_printf ( "Plugin %s has no register symbol",
-					       filename );
-	    dialogue_error ( tmpstr );
-	    g_free ( tmpstr );
-	    g_free ( plugin );
-	    continue;
-	}
-	g_free ( tmp );
-
-	plugin -> plugin_register ();
-
-	tmp = g_strconcat ( plugin_name, "_plugin_run", NULL );
-	if ( ! g_module_symbol ( plugin -> handle, tmp,
-				 (gpointer) &( plugin -> plugin_run ) ) )
-	{
-	    gchar* tmpstr = g_strdup_printf ( "Plugin %s has no run symbol",
-					       filename );
-	    dialogue_error ( tmpstr );
-	    g_free ( tmpstr );
-	    g_free ( plugin );
-	    continue;
-	}
-	g_free ( tmp );
-
-	plugins = g_slist_append ( plugins, plugin );
-    }
-
-    g_dir_close ( plugin_dir );
-#endif /* ENABLE_STATIC */
-}
-
-
-
-/**
- *
- *
- *
- */
-gsb_plugin * gsb_plugin_find ( gchar * plugin_name )
-{
-    GSList * tmp = plugins;
-
-    g_return_val_if_fail ( plugin_name, NULL );
-
-    while ( tmp )
-    {
-	gsb_plugin * plugin = (gsb_plugin *) tmp -> data;
-
-	if ( ! strcmp ( plugin_name, plugin -> name ) )
-	{
-	    return plugin;
-	}
-
-	tmp = tmp -> next;
-    }
-
-    return NULL;
-}
-
-
-
-/**
- * Get activated plugins.
- *
- * \return A newly-allocated string representing activated plugins.
- */
-gchar * gsb_plugin_get_list ()
-{
-    gchar * list = NULL;
-    gchar * old_list = NULL;
-    GSList * tmp = plugins;
-
-    while ( tmp )
-    {
-	gsb_plugin * plugin = (gsb_plugin *) tmp -> data;
-
-	if ( ! list )
-	{
-	    list = g_strconcat ( _("with plugins"), " ", plugin -> name, NULL );
-	}
-	else
-	{
-	    old_list = list;
-	    list = g_strconcat ( list, ", ", plugin -> name, NULL );
-	    g_free(old_list);
-	}
-
-	tmp = tmp -> next;
-    }
-    if (! list)
-    	list = g_strdup("no plugin");
-
-    return list;
-}
-
-
-
-/* Local Variables: */
-/* c-basic-offset: 4 */
-/* End: */
diff --git a/src/gsb_plugins.h b/src/gsb_plugins.h
deleted file mode 100644
index b57ca57..0000000
--- a/src/gsb_plugins.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef GSB_PLUGINS_H
-#define GSB_PLUGINS_H
-
-#include <glib.h>
-#ifndef ENABLE_STATIC
-#include <gmodule.h>
-#endif
-
-/* START_INCLUDE_H */
-/* END_INCLUDE_H */
-
-
-typedef struct gsb_plugin {
-    gchar * name;
-    void (* plugin_register) ( void );
-    gpointer (* plugin_run) ( );
-#ifndef ENABLE_STATIC
-    GModule * handle;
-#endif
-}  gsb_plugin;
-
-
-/* START_DECLARATION */
-gsb_plugin * gsb_plugin_find ( gchar * plugin_name );
-gchar * gsb_plugin_get_list ();
-void gsb_plugins_scan_dir ( const char *dirname );
-/* END_DECLARATION */
-
-#endif
diff --git a/src/gsb_real.c b/src/gsb_real.c
index 147a880..5823f40 100644
--- a/src/gsb_real.c
+++ b/src/gsb_real.c
@@ -363,7 +363,7 @@ gsb_real gsb_real_safe_real_from_string ( const gchar *string )
  *
  * \return -1 if number_1 < number_2 ; 0 if number_1 = number_2 ; 1 if number_1 > number_2
  * */
-G_MODULE_EXPORT gint gsb_real_cmp ( gsb_real number_1,
+gint gsb_real_cmp ( gsb_real number_1,
                         gsb_real number_2 )
 {
     gsb_real_normalize ( &number_1,
@@ -569,7 +569,7 @@ gsb_real gsb_real_adjust_exponent ( gsb_real number,
  *
  * \return a gsb_real = number_1 + number_2, or error_real when an error occured
  * */
-G_MODULE_EXPORT gsb_real gsb_real_add ( gsb_real number_1,
+gsb_real gsb_real_add ( gsb_real number_1,
                         gsb_real number_2 )
 {
     gint64 mantissa;
@@ -614,7 +614,7 @@ gsb_real gsb_real_sub ( gsb_real number_1,
  *
  * \return its opposite
  * */
-G_MODULE_EXPORT gsb_real gsb_real_opposite ( gsb_real number )
+gsb_real gsb_real_opposite ( gsb_real number )
 {
     number.mantissa = -number.mantissa;
     return number;
@@ -704,7 +704,7 @@ gsb_real gsb_real_div ( gsb_real number_1,
  *
  * \return the number in gsb_real format
  * */
-G_MODULE_EXPORT gsb_real gsb_real_double_to_real ( gdouble number )
+gsb_real gsb_real_double_to_real ( gdouble number )
 {
 	return gsb_real_double_to_real_add_exponent(number, 0);
 }
diff --git a/src/gsb_real.h b/src/gsb_real.h
index e0c5dd4..89ce40a 100644
--- a/src/gsb_real.h
+++ b/src/gsb_real.h
@@ -3,7 +3,6 @@
 
 #include <locale.h>
 #include <glib.h>
-#include <gmodule.h>
 
 #define EXPONENT_MAX 10
 #define ERROR_REAL_STRING "###ERR###"
@@ -26,20 +25,20 @@ static const gsb_real error_real = { G_MININT64, 0 };
 
 /* START_DECLARATION */
 gsb_real gsb_real_abs ( gsb_real number );
-G_MODULE_EXPORT gsb_real gsb_real_add ( gsb_real number_1,
+gsb_real gsb_real_add ( gsb_real number_1,
                         gsb_real number_2 );
 gsb_real gsb_real_adjust_exponent ( gsb_real number,
                         gint return_exponent );
-G_MODULE_EXPORT gint gsb_real_cmp ( gsb_real number_1,
+gint gsb_real_cmp ( gsb_real number_1,
                         gsb_real number_2 );
 gsb_real gsb_real_div ( gsb_real number_1,
                         gsb_real number_2 );
-G_MODULE_EXPORT gsb_real gsb_real_double_to_real ( gdouble number );
+gsb_real gsb_real_double_to_real ( gdouble number );
 gsb_real gsb_real_mul ( gsb_real number_1,
                         gsb_real number_2 );
 gsb_real gsb_real_new ( gint64 mantissa, gint exponent );
 gboolean gsb_real_normalize ( gsb_real *number_1, gsb_real *number_2 );
-G_MODULE_EXPORT gsb_real gsb_real_opposite ( gsb_real number );
+gsb_real gsb_real_opposite ( gsb_real number );
 gchar *gsb_real_raw_format_string (gsb_real number,
                         struct lconv *locale,
                         const gchar *currency_symbol );
diff --git a/src/gtk_combofix.c b/src/gtk_combofix.c
index 6468570..ea32557 100644
--- a/src/gtk_combofix.c
+++ b/src/gtk_combofix.c
@@ -1780,7 +1780,7 @@ static gboolean gtk_combofix_select_item ( GtkComboFix *combofix,
 
     if ( !combofix )
 	    return FALSE;
-    if ( !item && strlen ( item ) == 0 )
+    if ( !item || strlen ( item ) == 0 )
         return FALSE;
 
     if ( ( ptr = g_utf8_strchr ( item, -1, ':' ) ) )
diff --git a/src/help.c b/src/help.c
index f7fba78..a2fd911 100644
--- a/src/help.c
+++ b/src/help.c
@@ -31,7 +31,6 @@
 
 /*START_INCLUDE*/
 #include "help.h"
-#include "gsb_plugins.h"
 #include "gsb_select_icon.h"
 #include "structures.h"
 #include "utils.h"
@@ -74,6 +73,35 @@ static gboolean url_clicked ( GtkAboutDialog *label,
 }
 
 
+gchar * extra_support ( void )
+{
+    gchar *ret;
+
+    ret = g_strconcat (
+        _("GnuCash support: "),
+#ifdef HAVE_XML2
+        _("yes"), "\n",
+#else
+        _("no"), "\n",
+#endif
+        _("OFX support: "),
+#ifdef HAVE_OFX
+        _("yes"), "\n",
+#else
+        _("no"), "\n",
+#endif
+        _("OpenSSL support: "),
+#ifdef HAVE_SSL
+        _("yes"), "\n",
+#else
+        _("no"), "\n",
+#endif
+        NULL);
+
+    return ret;
+}
+
+
 /**
  * Create and run an About dialog.
  *
@@ -157,10 +185,10 @@ NULL};
 
     /* Others info */
     gchar *comments;
-    gchar *plugins;
+    gchar *extra;
     gchar *version_to_string;
 
-    plugins = gsb_plugin_get_list ( );
+    extra = extra_support ( );
     version_to_string = get_gtk_run_version ( );
 
     if ( IS_DEVELOPMENT_VERSION == 1 )
@@ -169,8 +197,8 @@ NULL};
 
         compiled_time = gsb_date_get_compiled_time ( );
         comments = g_strconcat ( _("Personal finance manager for everyone\n"),
-                        plugins,
-                        "\nVersion de GTK : ",
+                        extra,
+                        "Version de GTK : ",
                         version_to_string,
                         "\n",
                         _("This instance of Grisbi was compiled on\n"),
@@ -185,8 +213,8 @@ NULL};
     }
     else
         comments = g_strconcat ( _("Personal finance manager for everyone\n"),
-                        plugins,
-                        "\nVersion de GTK : ",
+                        extra,
+                        "Version de GTK : ",
                         version_to_string,
                         NULL );
 
@@ -218,7 +246,7 @@ NULL};
     gtk_window_set_modal ( GTK_WINDOW ( about ), TRUE );
     gtk_window_set_transient_for ( GTK_WINDOW ( about ), GTK_WINDOW ( run.window ) );
 
-    g_free ( plugins );
+    g_free ( extra );
     g_free ( version_to_string );
     g_free ( comments );
     g_signal_connect ( G_OBJECT ( about ),
diff --git a/src/help.h b/src/help.h
index aa2de6c..d5cf3ec 100644
--- a/src/help.h
+++ b/src/help.h
@@ -8,6 +8,7 @@
 
 
 /* START_DECLARATION */
+gchar * extra_support ( void );
 void a_propos ( GtkWidget *bouton, gint data );
 /* END_DECLARATION */
 #endif
diff --git a/src/import.c b/src/import.c
index b673b64..b3e50dc 100644
--- a/src/import.c
+++ b/src/import.c
@@ -82,6 +82,12 @@
 #include "structures.h"
 #include "erreur.h"
 #include "gsb_dirs.h"
+#ifdef HAVE_XML2
+#include "plugins/gnucash/gnucash.h"
+#endif
+#ifdef HAVE_OFX
+#include "plugins/ofx/ofx.h"
+#endif
 /*END_INCLUDE*/
 
 /*START_STATIC*/
@@ -201,8 +207,14 @@ static gboolean marked_r_transactions_imported;
 /** Known built-in import formats.  Others are plugins.  */
 static struct import_format builtin_formats[] =
 {
-{ "CSV", N_("Comma Separated Values"),     "csv", (import_function) csv_import_csv_account },
-{ "QIF", N_("Quicken Interchange Format"), "qif", (import_function) recuperation_donnees_qif },
+{ "CSV", N_("Comma Separated Values"),     "csv", csv_import_csv_account },
+{ "QIF", N_("Quicken Interchange Format"), "qif", recuperation_donnees_qif },
+#ifdef HAVE_XML2
+{ "Gnucash", N_("Gnucash"),                "gnc", recuperation_donnees_gnucash },
+#endif
+#ifdef HAVE_OFX
+{ "OFX", N_("Open Financial Exchange"),    "ofx", recuperation_donnees_ofx },
+#endif
 { NULL,  NULL,              NULL,       NULL },
 };
 
@@ -267,7 +279,7 @@ void register_import_formats ( void )
  *                      this import format.
  *
  */
-G_MODULE_EXPORT void register_import_format ( struct import_format *format )
+void register_import_format ( struct import_format *format )
 {
     gchar *tmp_str;
 
@@ -3593,7 +3605,7 @@ gboolean click_sur_liste_opes_orphelines ( GtkCellRendererToggle *renderer,
  *
  * return a newly allocated string or NULL
  */
-G_MODULE_EXPORT gchar * unique_imported_name ( gchar * account_name )
+gchar * unique_imported_name ( gchar * account_name )
 {
     GSList *tmp_list;
     gchar *basename;
@@ -4346,7 +4358,7 @@ const gchar * autodetect_file_type ( gchar * filename,
  *
  * \param account   Account to register.
  */
-G_MODULE_EXPORT void gsb_import_register_account ( struct struct_compte_importation * account )
+void gsb_import_register_account ( struct struct_compte_importation * account )
 {
     liste_comptes_importes = g_slist_append ( liste_comptes_importes, account );
 }
@@ -4358,7 +4370,7 @@ G_MODULE_EXPORT void gsb_import_register_account ( struct struct_compte_importat
  *
  * \param account   Account to register.
  */
-G_MODULE_EXPORT void gsb_import_register_account_error ( struct struct_compte_importation * account )
+void gsb_import_register_account_error ( struct struct_compte_importation * account )
 {
     liste_comptes_importes_error = g_slist_append ( liste_comptes_importes, account );
 }
diff --git a/src/import.h b/src/import.h
index 9de9e39..942865c 100644
--- a/src/import.h
+++ b/src/import.h
@@ -106,8 +106,6 @@ struct imported_file
 };
 
 
-typedef gboolean ( * import_function ) ( GtkWidget * assistant, struct imported_file * );
-
 struct import_format
 {
     gchar * name;
@@ -125,14 +123,14 @@ gint gsb_import_associations_list_append_assoc ( gint payee_number,
                         const gchar *search_str );
 gboolean gsb_import_by_rule ( gint rule );
 gchar *gsb_import_formats_get_list_formats_to_string ( void );
-G_MODULE_EXPORT void gsb_import_register_account ( struct struct_compte_importation * account );
-G_MODULE_EXPORT void gsb_import_register_account_error ( struct struct_compte_importation * account );
+void gsb_import_register_account ( struct struct_compte_importation * account );
+void gsb_import_register_account_error ( struct struct_compte_importation * account );
 GSList *import_selected_files ( GtkWidget * assistant );
 void importer_fichier ( void );
 GtkWidget *onglet_importation ( void );
-G_MODULE_EXPORT void register_import_format ( struct import_format *format );
+void register_import_format ( struct import_format *format );
 void register_import_formats ( void );
-G_MODULE_EXPORT gchar * unique_imported_name ( gchar * account_name );
+gchar * unique_imported_name ( gchar * account_name );
 /* END_DECLARATION */
 
 
diff --git a/src/import_csv.c b/src/import_csv.c
index 37891a8..cea07a0 100644
--- a/src/import_csv.c
+++ b/src/import_csv.c
@@ -1097,10 +1097,10 @@ gboolean import_enter_csv_preview_page ( GtkWidget * assistant )
         size = 0;
         bytes_written = 0;
 
-        dialogue_special ( GTK_MESSAGE_WARNING, make_hint (
-                            _("The conversion to utf8 went wrong."),
+        dialogue_warning_hint (
                             _("If the result does not suit you, try again by selecting the "
-                            "correct character set in the window for selecting files.") ) );
+                            "correct character set in the window for selecting files."),
+                            _("The conversion to utf8 went wrong.") );
 
         contents = g_convert_with_fallback ( tmp_str, -1, "UTF-8", "ISO-8859-1",
                         "?", &size, &bytes_written, &error );
diff --git a/src/main.c b/src/main.c
index 03712e9..b180968 100644
--- a/src/main.c
+++ b/src/main.c
@@ -47,7 +47,6 @@
 #include "gsb_file.h"
 #include "gsb_file_config.h"
 #include "gsb_locale.h"
-#include "gsb_plugins.h"
 #include "gsb_status.h"
 #include "import.h"
 #include "menu.h"
@@ -246,27 +245,27 @@ void main_mac_osx ( int argc, char **argv )
     cmdline_options  opt;
     gboolean first_use = FALSE;
     gint status = CMDLINE_SYNTAX_OK;
-    GtkOSXApplication *theApp;
+    GtkosxApplication *theApp;
 
     devel_debug ("main_mac_osx");
 
-#if IS_DEVELOPMENT_VERSION == 1
-    gsb_grisbi_print_environment_var ( );
-#endif
-
     gtk_init ( &argc, &argv );
 
+    /* init the app */
+    theApp = g_object_new ( GTKOSX_TYPE_APPLICATION, NULL );
+
     /* initialisation libgoffice */
     libgoffice_init ( );
     /* Initialize plugins manager */
     go_plugins_init (NULL, NULL, NULL, NULL, TRUE, GO_TYPE_PLUGIN_LOADER_MODULE);
 
-    /* init the app */
-    theApp = g_object_new ( GTK_TYPE_OSX_APPLICATION, NULL );
-
     /* initialisation des différents répertoires */
     gsb_dirs_init ( );
 
+#if IS_DEVELOPMENT_VERSION == 1
+    gsb_grisbi_print_environment_var ( );
+#endif
+
     bindtextdomain ( PACKAGE,  gsb_dirs_get_locale_dir ( ) );
     bind_textdomain_codeset ( PACKAGE, "UTF-8" );
     textdomain ( PACKAGE );
@@ -308,7 +307,7 @@ void main_mac_osx ( int argc, char **argv )
                         NULL );
     }
     menubar = gsb_grisbi_create_main_menu ( vbox );
-    grisbi_osx_init_menus ( main_window, menubar );
+    grisbi_osx_init_menus ( run.window, menubar );
     main_window_set_size_and_position ( );
 
     gtk_widget_show ( run.window );
@@ -324,17 +323,17 @@ void main_mac_osx ( int argc, char **argv )
     else
         display_tip ( FALSE );
 
-    if ( quartz_application_get_bundle_id ( ) == NULL )
+    if ( gtkosx_application_get_bundle_id ( ) == NULL )
     {
         pixbuf = gdk_pixbuf_new_from_file ( g_build_filename
                         (gsb_dirs_get_pixmaps_dir ( ), "grisbi-logo.png", NULL), NULL );
         if ( pixbuf )
-            gtk_osxapplication_set_dock_icon_pixbuf ( theApp, pixbuf );
+            gtkosx_application_set_dock_icon_pixbuf ( theApp, pixbuf );
     }
 
-    gtk_osxapplication_set_use_quartz_accelerators ( theApp, TRUE );
+    gtkosx_application_set_use_quartz_accelerators ( theApp, TRUE );
 
-    gtk_osxapplication_ready ( theApp );
+    gtkosx_application_ready ( theApp );
 
     gtk_main ();
 
@@ -493,10 +492,6 @@ gboolean gsb_grisbi_init_app ( void )
     gboolean first_use = FALSE;
     gchar *string;
 
-#ifdef HAVE_PLUGINS
-    gsb_plugins_scan_dir ( gsb_dirs_get_plugins_dir ( ) );
-#endif
-
     /* create the icon of grisbi (set in the panel of gnome or other) */
     string = g_build_filename ( gsb_dirs_get_pixmaps_dir ( ), "grisbi-logo.png", NULL );
     if ( g_file_test ( string, G_FILE_TEST_EXISTS ) )
@@ -531,7 +526,7 @@ static gboolean main_window_key_press_event ( GtkWidget *widget,
 {
     switch ( event -> keyval )
     {
-        case GDK_KEY_F11 :
+        case GDK_F11 :
             if ( conf.full_screen )
                 gtk_window_unfullscreen ( GTK_WINDOW ( widget ) );
             else
@@ -956,7 +951,6 @@ gchar *gsb_main_get_print_dir_var ( void )
                         "\tgsb_dirs_get_accelerator_filename () = %s\n\n"
                         "\tgsb_dirs_get_categories_dir ()       = %s\n"
                         "\tgsb_dirs_get_locale_dir ()           = %s\n"
-                        "\tgsb_dirs_get_plugins_dir ()          = %s\n"
                         "\tgsb_dirs_get_pixmaps_dir ()          = %s\n"
                         "\tgsb_dirs_get_ui_dir ()               = %s\n\n",
                         g_get_user_data_dir (),
@@ -967,7 +961,6 @@ gchar *gsb_main_get_print_dir_var ( void )
                         gsb_dirs_get_accelerator_filename (),
                         gsb_dirs_get_categories_dir ( ),
                         gsb_dirs_get_locale_dir ( ),
-                        gsb_dirs_get_plugins_dir ( ),
                         gsb_dirs_get_pixmaps_dir ( ),
                         gsb_dirs_get_ui_dir ( ) );
 
diff --git a/src/parse_cmdline.c b/src/parse_cmdline.c
index 08f9cd5..53dc132 100644
--- a/src/parse_cmdline.c
+++ b/src/parse_cmdline.c
@@ -26,12 +26,12 @@
 
 /*START_INCLUDE*/
 #include "parse_cmdline.h"
-#include "gsb_plugins.h"
 #include "main.h"
 #include "utils_str.h"
 #include "structures.h"
 #include "utils.h"
 #include "gsb_dirs.h"
+#include "help.h"
 /*END_INCLUDE*/
 
 /*START_STATIC*/
@@ -171,11 +171,9 @@ gboolean  parse_options(int argc, char **argv, cmdline_options *pOpt, gint* pErr
  **/
 void show_version(void)
 {
-#ifdef HAVE_PLUGINS
-    gsb_plugins_scan_dir ( gsb_dirs_get_plugins_dir ( ) );
-#endif
-
-    g_print(N_("Grisbi version %s, %s\n"), VERSION, gsb_plugin_get_list());
+    g_print( _("Grisbi version %s"), VERSION);
+    g_print( "\n\n" );
+    g_print( "%s", extra_support ( ) );
 }
 
 
diff --git a/src/plugins/gnucash/Makefile.am b/src/plugins/gnucash/Makefile.am
index bebe254..55aebf9 100644
--- a/src/plugins/gnucash/Makefile.am
+++ b/src/plugins/gnucash/Makefile.am
@@ -4,11 +4,7 @@ AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/src $(GRISBI_CFLAGS) $(XML2_CFLAGS
 
 if HAVE_XML2
 
-if ENABLE_STATIC
 noinst_LTLIBRARIES = gnucash.la
-else
-plugin_LTLIBRARIES = gnucash.la
-endif
 gnucash_la_SOURCES = gnucash.c gnucash.h
 gnucash_la_LDFLAGS = -module -avoid-version
 gnucash_la_LIBADD = $(XML2_LIBS)
diff --git a/src/plugins/gnucash/gnucash.c b/src/plugins/gnucash/gnucash.c
index 21c4e1c..a09d18b 100644
--- a/src/plugins/gnucash/gnucash.c
+++ b/src/plugins/gnucash/gnucash.c
@@ -34,7 +34,6 @@
 #include "dialog.h"
 #include "gsb_data_transaction.h"
 #include "gsb_real.h"
-#include "import.h"
 #include "utils_str.h"
 #include "utils_files.h"
 #include "erreur.h"
@@ -59,8 +58,6 @@ static struct struct_ope_importation * new_transaction_from_split ( struct gnuca
 							     gchar * tiers, GDate * date );
 static gboolean node_strcmp ( xmlNodePtr node, gchar * name );
 static xmlDocPtr parse_gnucash_file ( gchar * filename );
-static gboolean recuperation_donnees_gnucash ( GtkWidget * assistant,
-					struct imported_file * imported );
 static void recuperation_donnees_gnucash_book ( xmlNodePtr book_node );
 static void recuperation_donnees_gnucash_categorie ( xmlNodePtr categ_node );
 static void recuperation_donnees_gnucash_compte ( xmlNodePtr compte_node );
@@ -69,41 +66,9 @@ static void update_split ( struct gnucash_split * split, gsb_real amount,
 		    gchar * account, gchar * categ );
 /*END_STATIC*/
 
-
-static struct import_format gnucash_format = {
-    "Gnucash",
-    "Gnucash",
-    "gnc",
-    (import_function) recuperation_donnees_gnucash,
-};
-
 GSList * gnucash_accounts = NULL;
 
 
-#ifndef ENABLE_STATIC
-/** Module name. */
-G_MODULE_EXPORT const gchar plugin_name[] = "gnucash";
-#endif
-
-
-
-/** Initialization function. */
-G_MODULE_EXPORT extern void gnucash_plugin_register ( void )
-{
-    devel_debug ("Initializating gnucash plugin");
-
-    register_import_format ( &gnucash_format );
-}
-
-
-
-/** Main function of module. */
-G_MODULE_EXPORT extern gpointer gnucash_plugin_run ( void )
-{
-    return NULL;
-}
-
-
 
 /*****************************************************************/
 
diff --git a/src/plugins/gnucash/gnucash.h b/src/plugins/gnucash/gnucash.h
index d3a5102..7c745f6 100644
--- a/src/plugins/gnucash/gnucash.h
+++ b/src/plugins/gnucash/gnucash.h
@@ -1,15 +1,15 @@
 #ifndef GSB_GNUCASH_H
 #define GSB_GNUCASH_H
 
-#include <glib.h>
-#include <gmodule.h>
+#include <gtk/gtk.h>
 
 /* START_INCLUDE_H */
+#include "import.h"
 /* END_INCLUDE_H */
 
 /* START_DECLARATION */
-G_MODULE_EXPORT extern void gnucash_plugin_register ( void );
-G_MODULE_EXPORT extern gpointer gnucash_plugin_run ( void );
+gboolean recuperation_donnees_gnucash ( GtkWidget * assistant,
+					struct imported_file * imported );
 /* END_DECLARATION */
 
 #endif
diff --git a/src/plugins/ofx/Makefile.am b/src/plugins/ofx/Makefile.am
index 341ada8..031daa1 100644
--- a/src/plugins/ofx/Makefile.am
+++ b/src/plugins/ofx/Makefile.am
@@ -4,11 +4,7 @@ AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/src $(GRISBI_CFLAGS) $(LIBOFX_CFLA
 
 if HAVE_OFX
 
-if ENABLE_STATIC
 noinst_LTLIBRARIES = ofx.la
-else
-plugin_LTLIBRARIES = ofx.la
-endif
 ofx_la_SOURCES = ofx.c ofx.h
 ofx_la_LDFLAGS = -module -avoid-version
 ofx_la_LIBADD = $(LIBOFX_LIBS)
diff --git a/src/plugins/ofx/ofx.c b/src/plugins/ofx/ofx.c
index f8d7c72..194df85 100644
--- a/src/plugins/ofx/ofx.c
+++ b/src/plugins/ofx/ofx.c
@@ -44,42 +44,46 @@ static int ofx_proc_account_cb(struct OfxAccountData data, void * account_data);
 static int ofx_proc_statement_cb(struct OfxStatementData data, void * statement_data);;
 static int ofx_proc_status_cb(struct OfxStatusData data, void * status_data);;
 static int ofx_proc_transaction_cb(struct OfxTransactionData data, void * security_data);;
-static GSList * recuperation_donnees_ofx ( GtkWidget * assistant, struct imported_file * imported );
 /*END_STATIC*/
 
 
-static struct import_format ofx_format =
-{
-    "OFX",
-    "Open Financial Exchange",
-    "ofx",
-    (import_function) recuperation_donnees_ofx,
-};
 
+/* It seems the following applies to everyone, otherwise OFX_* are not defined */
+/* #ifdef _WIN32 */
+/* On Windows, the Ofx Severity enumerate values are already used in wingdi.h, DELETE is used in winnt.h
+ * This is a work around to this issues :
+ *  INFO, WARN, ERROR, DELETE and REPLACE are used in standard libofx.h;
+ *  on windows they should be prefixed by OFX_
+ */
 
+#ifndef _MINGW
 
-#ifndef ENABLE_STATIC
-/** Module name. */
-G_MODULE_EXPORT const gchar plugin_name[] = "ofx";
+#ifndef OFX_INFO
+#define OFX_INFO    INFO
 #endif
 
+#ifndef OFX_WARN
+#define OFX_WARN    WARN
+#endif
 
+#ifndef OFX_ERROR
+#if defined(_MSC_VER) || defined(_MINGW)
+#undef ERROR
+#endif /* _MSC_VER */
+#define OFX_ERROR   ERROR
+#endif
 
-/** Initialization function. */
-G_MODULE_EXPORT extern void ofx_plugin_register ( void )
-{
-    devel_debug ("Initializating ofx plugin");
-    register_import_format ( &ofx_format );
-}
+#ifndef OFX_DELETE
+#define OFX_DELETE  DELETE
+#endif
 
+#ifndef OFX_REPLACE
+#define OFX_REPLACE REPLACE
+#endif
 
+#endif /* _MIN_GW */
 
-/** Main function of module. */
-G_MODULE_EXPORT extern gpointer ofx_plugin_run ( GtkWidget * assistant,
-				    struct imported_file * imported )
-{
-    return recuperation_donnees_ofx ( assistant, imported );
-}
+/* #endif _WIN32 */
 
 
 
@@ -107,7 +111,7 @@ int ofx_proc_statement_cb(struct OfxStatementData data, void * statement_data);
  *
  *
  */
-GSList *recuperation_donnees_ofx ( GtkWidget * assistant, struct imported_file * imported )
+gboolean recuperation_donnees_ofx ( GtkWidget * assistant, struct imported_file * imported )
 {
     GSList *liste_tmp;
     gchar *argv[2] = { "", "" };
@@ -147,7 +151,7 @@ GSList *recuperation_donnees_ofx ( GtkWidget * assistant, struct imported_file *
         gsb_import_register_account_error ( account );
         devel_print_str ( account -> nom_de_compte );
 
-        return ( FALSE );
+        return FALSE ;
     }
 
     liste_tmp = liste_comptes_importes_ofx;
@@ -166,7 +170,7 @@ GSList *recuperation_donnees_ofx ( GtkWidget * assistant, struct imported_file *
 	liste_tmp = liste_tmp -> next;
     }
 
-    return ( liste_tmp );
+    return TRUE;
 }
 /* *******************************************************************************/
 
diff --git a/src/plugins/ofx/ofx.h b/src/plugins/ofx/ofx.h
index 116f4fd..031c8b3 100644
--- a/src/plugins/ofx/ofx.h
+++ b/src/plugins/ofx/ofx.h
@@ -1,52 +1,14 @@
 #ifndef GSB_OFX_H
 #define GSB_OFX_H
 
+#include <gtk/gtk.h>
+
 /* START_INCLUDE_H */
 #include "import.h"
 /* END_INCLUDE_H */
 
 /* START_DECLARATION */
-G_MODULE_EXPORT extern void ofx_plugin_register ( void );
-G_MODULE_EXPORT extern gpointer ofx_plugin_run ( GtkWidget * assistant,
-				    struct imported_file * imported );
+gboolean recuperation_donnees_ofx ( GtkWidget * assistant, struct imported_file * imported );
 /* END_DECLARATION */
 
-
-/* It seems the following applies to everyone, otherwise OFX_* are not defined */
-/* #ifdef _WIN32 */
-/* On Windows, the Ofx Severity enumerate values are already used in wingdi.h, DELETE is used in winnt.h
- * This is a work around to this issues :
- *  INFO, WARN, ERROR, DELETE and REPLACE are used in standard libofx.h;
- *  on windows they should be prefixed by OFX_
- */
-
-#ifndef _MINGW
-
-#ifndef OFX_INFO
-#define OFX_INFO    INFO
-#endif
-
-#ifndef OFX_WARN
-#define OFX_WARN    WARN
-#endif
-
-#ifndef OFX_ERROR
-#if defined(_MSC_VER) || defined(_MINGW)
-#undef ERROR
-#endif /* _MSC_VER */
-#define OFX_ERROR   ERROR
-#endif
-
-#ifndef OFX_DELETE
-#define OFX_DELETE  DELETE
-#endif
-
-#ifndef OFX_REPLACE
-#define OFX_REPLACE REPLACE
-#endif
-
-#endif /* _MIN_GW */
-
-/* #endif _WIN32 */
-
 #endif /* GSB_OFX_H */
diff --git a/src/plugins/openssl/Makefile.am b/src/plugins/openssl/Makefile.am
index 5717d04..9198304 100644
--- a/src/plugins/openssl/Makefile.am
+++ b/src/plugins/openssl/Makefile.am
@@ -4,11 +4,7 @@ AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/src $(GRISBI_CFLAGS) $(OPENSSL_CFL
 
 if HAVE_SSL
 
-if ENABLE_STATIC
 noinst_LTLIBRARIES = openssl.la
-else
-plugin_LTLIBRARIES = openssl.la
-endif
 openssl_la_SOURCES = openssl.c openssl.h
 openssl_la_LDFLAGS = -module -avoid-version
 openssl_la_LIBADD = $(OPENSSL_LIBS)
diff --git a/src/plugins/openssl/openssl.c b/src/plugins/openssl/openssl.c
index 7018c55..f8c6956 100644
--- a/src/plugins/openssl/openssl.c
+++ b/src/plugins/openssl/openssl.c
@@ -29,39 +29,23 @@
 /* This define is required to disable openssl's SSLeay support which redefines
  * _(), which obvisouly breaks glib's gettext macros. */
 #define OPENSSL_DISABLE_OLD_DES_SUPPORT
-#ifdef HAVE_SSL
-#  include <openssl/des.h>
-#endif
+#include <openssl/des.h>
 
 /*START_INCLUDE*/
 #include "openssl.h"
-#include "dialog.h"
-#include "main.h"
 #include "structures.h"
-#include "erreur.h"
 /*END_INCLUDE*/
 
-/*FIX FOR THE LINKING ERROR WITH WINDOWS MSVC*/
-#ifdef _MSC_VER
-#define SYMBOL_IMPORT __declspec(dllimport)
-#else
-#define SYMBOL_IMPORT extern
-#endif
-
 /*START_EXTERN*/
 /*END_EXTERN*/
 
-#ifdef HAVE_SSL
 /*START_STATIC*/
-static gchar *gsb_file_util_ask_for_crypt_key ( gchar * file_name, gchar * additional_message,
+static gchar *gsb_file_util_ask_for_crypt_key ( const gchar * file_name, gchar * additional_message,
                         gboolean encrypt );
-static gulong gsb_file_util_crypt_file ( gchar * file_name, gchar **file_content,
-                        gboolean crypt, gulong length );
 static void gsb_file_util_show_hide_passwd ( GtkToggleButton *togglebutton, GtkWidget *entry );
 /*END_STATIC*/
-#endif
 
-static gchar *saved_crypt_key;
+static gchar *saved_crypt_key = NULL;
 
 #define V1_MARKER "Grisbi encrypted file "
 #define V1_MARKER_SIZE (sizeof(V1_MARKER) - 1)
@@ -72,7 +56,6 @@ static gchar *saved_crypt_key;
 
 
 
-#ifdef HAVE_SSL
 /**
  *
  */
@@ -207,7 +190,6 @@ decrypt_v1(gchar *password, gchar **file_content, gulong length)
     *file_content = decrypted_buf;
     return decrypted_len;
 }
-#endif /* HAVE_SSL */
 
 
 /**
@@ -222,10 +204,9 @@ decrypt_v1(gchar *password, gchar **file_content, gulong length)
  *
  * \return the length of the new file_content or 0 if problem
  */
-gulong gsb_file_util_crypt_file ( gchar * file_name, gchar **file_content,
+gulong gsb_file_util_crypt_file ( const gchar * file_name, gchar **file_content,
                         gboolean crypt, gulong length )
 {
-#ifdef HAVE_SSL
     gchar * key, * message = "";
 
     if ( run.new_crypted_file )
@@ -287,14 +268,6 @@ return_bad_password:
         return returned_length;
     }
 
-#else
-    /* FIXME: import symbols to be sure we can call this kind of stuff. */
-    dialogue_error_hint ( _("This build of Grisbi does not support encryption.\n"
-                        "Please recompile Grisbi with OpenSSL encryption enabled."),
-                        g_strdup_printf ( _("Cannot open encrypted file '%s'"),
-					    file_name ) );
-#endif
-
     return 0;
 }
 
@@ -308,8 +281,7 @@ return_bad_password:
  *
  * \return a string which is the crypt key or NULL if it was
  * cancelled. */
-#ifdef HAVE_SSL
-gchar *gsb_file_util_ask_for_crypt_key ( gchar * file_name, gchar * additional_message,
+gchar *gsb_file_util_ask_for_crypt_key ( const gchar * file_name, gchar * additional_message,
                         gboolean encrypt )
 {
     gchar *key = NULL;
@@ -429,36 +401,9 @@ return_bad_password:
 
     return key;
 }
-#endif
-
-
-#ifndef ENABLE_STATIC
-/** Module name. */
-G_MODULE_EXPORT const gchar plugin_name[] = "openssl";
-#endif
-
-
-
-/** Initialization function. */
-G_MODULE_EXPORT extern void openssl_plugin_register ( void )
-{
-    devel_debug ("Initializating openssl plugin");
-    saved_crypt_key = NULL;
-}
 
 
 
-/** Main function of module. */
-G_MODULE_EXPORT extern gpointer openssl_plugin_run ( gchar * file_name, gchar **file_content,
-                        gboolean crypt, gulong length )
-{
-    /* The final size is cast from a gulong to a gpointer. This is 'ok' because
-     * a gpointer is always the same size. It is quite ugly though, and a proper
-     * fix should be found for this. */
-    return (gpointer) gsb_file_util_crypt_file ( file_name, file_content, crypt, length );
-}
-
-
 void gsb_file_util_show_hide_passwd ( GtkToggleButton *togglebutton, GtkWidget *entry )
 {
     gint visibility;
diff --git a/src/plugins/openssl/openssl.h b/src/plugins/openssl/openssl.h
index ebf0191..5a677e1 100644
--- a/src/plugins/openssl/openssl.h
+++ b/src/plugins/openssl/openssl.h
@@ -3,13 +3,11 @@
 
 /* START_INCLUDE_H */
 #include <glib.h>
-#include <gmodule.h>
 /* END_INCLUDE_H */
 
 /* START_DECLARATION */
-G_MODULE_EXPORT extern void openssl_plugin_register ( void );
-G_MODULE_EXPORT extern gpointer openssl_plugin_run ( gchar * file_name, gchar **file_content,
-					  gboolean crypt, gulong length );
+gulong gsb_file_util_crypt_file ( const gchar * file_name, gchar **file_content,
+                        gboolean crypt, gulong length );
 /* END_DECLARATION */
 
 #endif
diff --git a/src/utils_files.c b/src/utils_files.c
index 4423ee3..ec8f5bf 100644
--- a/src/utils_files.c
+++ b/src/utils_files.c
@@ -277,10 +277,10 @@ gint get_utf8_line_from_file ( FILE *fichier,
         tmp_string = latin2utf8 (pointeur_char);
         if ( tmp_string == NULL )
         {
-            dialogue_special ( GTK_MESSAGE_ERROR, make_hint (
-                            _("Convert to utf8 failed."),
+            dialogue_error_hint (
                             _("If the result is not correct, try again by selecting the "
-                            "correct character set in the window for selecting files.") ) );
+                            "correct character set in the window for selecting files."),
+                            _("Convert to utf8 failed.") );
             return 0;
         }
     }
@@ -304,7 +304,7 @@ gint get_utf8_line_from_file ( FILE *fichier,
  *
  * \return file descriptor returned by fopen
  */
-G_MODULE_EXPORT FILE* utf8_fopen (const gchar *utf8filename, gchar *mode )
+FILE* utf8_fopen (const gchar *utf8filename, gchar *mode )
 {
 #ifdef _MSC_VER
     return fopen ( g_locale_from_utf8 ( utf8filename, -1, NULL, NULL, NULL ), mode );
diff --git a/src/utils_files.h b/src/utils_files.h
index 5c8168a..988a3fe 100644
--- a/src/utils_files.h
+++ b/src/utils_files.h
@@ -17,7 +17,7 @@ gint get_utf8_line_from_file ( FILE *fichier,
                         gchar **string,
                         const gchar *coding_system );
 gchar *safe_file_name ( gchar *filename );
-G_MODULE_EXPORT FILE* utf8_fopen ( const gchar *utf8filename, gchar *mode );
+FILE* utf8_fopen ( const gchar *utf8filename, gchar *mode );
 gint utf8_remove ( const gchar *utf8filename );
 gboolean utils_files_create_XDG_dir ( void );
 GtkWidget *utils_files_create_file_chooser ( GtkWidget *parent, gchar * titre );
diff --git a/src/utils_str.c b/src/utils_str.c
index 407d1e0..23f3e01 100644
--- a/src/utils_str.c
+++ b/src/utils_str.c
@@ -235,7 +235,7 @@ gchar *utils_str_localise_decimal_point_from_string ( const gchar *string )
  * @retval  0 when the pointer is NULL or the string empty.
  *
  * */
-G_MODULE_EXPORT gint utils_str_atoi ( const gchar *chaine )
+gint utils_str_atoi ( const gchar *chaine )
 {
     if ((chaine )&&(*chaine))
     {
@@ -254,7 +254,7 @@ G_MODULE_EXPORT gint utils_str_atoi ( const gchar *chaine )
  *
  *
  * */
-G_MODULE_EXPORT gchar * latin2utf8 ( const gchar * inchar)
+gchar * latin2utf8 ( const gchar * inchar)
 {
     return g_locale_from_utf8 ( inchar, -1, NULL, NULL, NULL );
 }
@@ -427,7 +427,7 @@ gint my_strncasecmp ( gchar *string_1,
  * \return a newly allocated string (which is a copy of that string)
  * or NULL if the parameter is NULL or an empty string.
  * */
-G_MODULE_EXPORT gchar *my_strdup ( const gchar *string )
+gchar *my_strdup ( const gchar *string )
 {
     if ( string && strlen (string) )
 	return g_strdup (string);
diff --git a/src/utils_str.h b/src/utils_str.h
index 91a69be..d67ad2d 100644
--- a/src/utils_str.h
+++ b/src/utils_str.h
@@ -2,7 +2,6 @@
 #define _UTILS_STR_H (1)
 
 #include <glib.h>
-#include <gmodule.h>
 
 
 #ifdef _WIN32
@@ -25,7 +24,7 @@ gchar *gsb_string_remplace_string ( const gchar *str,
                         gchar *new_str );
 gchar * gsb_string_truncate ( gchar * string );
 gchar *gsb_string_uniform_new_line ( const gchar *chaine, gint nbre_char );
-G_MODULE_EXPORT gchar * latin2utf8 ( const gchar * inchar);
+gchar * latin2utf8 ( const gchar * inchar);
 gchar *limit_string ( gchar *string,
                         gint length );
 gint my_strcasecmp ( const gchar *string_1, const gchar *string_2 );
@@ -33,11 +32,11 @@ gint my_strcmp ( gchar *string_1, gchar *string_2 );
 gchar *my_strdelimit ( const gchar *string,
                         const gchar *delimiters,
                         const gchar *new_delimiters );
-G_MODULE_EXPORT gchar *my_strdup ( const gchar *string );
+gchar *my_strdup ( const gchar *string );
 gint my_strncasecmp ( gchar *string_1,
                         gchar *string_2,
                         gint longueur );
-G_MODULE_EXPORT gint utils_str_atoi ( const gchar *chaine );
+gint utils_str_atoi ( const gchar *chaine );
 gint utils_str_get_nbre_motifs ( const gchar *chaine, const gchar *motif );
 gchar *utils_str_itoa ( gint integer );
 gchar *utils_str_dtostr ( gdouble number, gint nbre_decimal, gboolean canonical );


hooks/post-receive
-- 
grisbi


More information about the cvs mailing list