2005-12-07 [colin] 1.9.100cvs73
authorColin Leroy <colin@colino.net>
Wed, 7 Dec 2005 18:18:10 +0000 (18:18 +0000)
committerColin Leroy <colin@colino.net>
Wed, 7 Dec 2005 18:18:10 +0000 (18:18 +0000)
* src/action.c
* src/compose.c
* src/compose.h
Fix bug #839 (Quoted text isn't colored after
executing an action)
* src/common/plugin.c
Require plugins to declare their licence in plugin_licence()
Refuse to load non-GPL plugins as they'd be illegal (as
derived works of Sylpheed-Claws, they must be GPL).
* src/plugins/clamav/clamav_plugin.c
* src/plugins/demo/demo.c
* src/plugins/dillo_viewer/dillo_viewer.c
* src/plugins/pgpcore/plugin.c
* src/plugins/pgpinline/plugin.c
* src/plugins/pgpmime/plugin.c
* src/plugins/spamassassin/spamassassin.c
* src/plugins/trayicon/trayicon.c
Add plugin_licence()

15 files changed:
ChangeLog
PATCHSETS
configure.ac
src/action.c
src/common/plugin.c
src/compose.c
src/compose.h
src/plugins/clamav/clamav_plugin.c
src/plugins/demo/demo.c
src/plugins/dillo_viewer/dillo_viewer.c
src/plugins/pgpcore/plugin.c
src/plugins/pgpinline/plugin.c
src/plugins/pgpmime/plugin.c
src/plugins/spamassassin/spamassassin.c
src/plugins/trayicon/trayicon.c

index c7b002e..8156c24 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,24 @@
+2005-12-07 [colin]     1.9.100cvs73
+
+       * src/action.c
+       * src/compose.c
+       * src/compose.h
+               Fix bug #839 (Quoted text isn't colored after 
+               executing an action)
+       * src/common/plugin.c
+               Require plugins to declare their licence in plugin_licence()
+               Refuse to load non-GPL plugins as they'd be illegal (as 
+               derived works of Sylpheed-Claws, they must be GPL).
+       * src/plugins/clamav/clamav_plugin.c
+       * src/plugins/demo/demo.c
+       * src/plugins/dillo_viewer/dillo_viewer.c
+       * src/plugins/pgpcore/plugin.c
+       * src/plugins/pgpinline/plugin.c
+       * src/plugins/pgpmime/plugin.c
+       * src/plugins/spamassassin/spamassassin.c
+       * src/plugins/trayicon/trayicon.c
+               Add plugin_licence()
+
 2005-12-07 [paul]      1.9.100cvs72
 
        * configure.ac
index c4e98a7..f2194d9 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.382.2.201 -r 1.382.2.202 src/compose.c;  cvs diff -u -r 1.22.2.16 -r 1.22.2.17 src/quote_fmt_parse.y;  cvs diff -u -r 1.13.2.4 -r 1.13.2.5 src/undo.c;  cvs diff -u -r 1.5.14.3 -r 1.5.14.4 src/undo.h;  ) > 1.9.100cvs70.patchset
 ( cvs diff -u -r 1.654.2.1100 -r 1.654.2.1101 configure.ac;  cvs diff -u -r 1.1.4.1 -r 1.1.4.2 doc/Makefile.am;  cvs diff -u -r -1.1 -r -1.2 doc/faq/.cvsignore;  cvs diff -u -r -1.3 -r -1.4 doc/faq/Makefile.am;  cvs diff -u -r -1.1 -r -1.2 doc/faq/de/.cvsignore;  cvs diff -u -r -1.1 -r -1.2 doc/faq/de/Makefile.am;  cvs diff -u -r -1.3 -r -1.4 doc/faq/de/sylpheed-faq-1.html;  cvs diff -u -r -1.3 -r -1.4 doc/faq/de/sylpheed-faq-2.html;  cvs diff -u -r -1.1 -r -1.2 doc/faq/de/sylpheed-faq-3.html;  cvs diff -u -r -1.1 -r -1.2 doc/faq/de/sylpheed-faq.html;  cvs diff -u -r -1.1 -r -1.2 doc/faq/en/.cvsignore;  cvs diff -u -r -1.2 -r -1.3 doc/faq/en/Makefile.am;  cvs diff -u -r -1.7.10.1 -r -1.7.10.2 doc/faq/en/sylpheed-faq-1.html;  cvs diff -u -r -1.7.10.1 -r -1.7.10.2 doc/faq/en/sylpheed-faq-2.html;  cvs diff -u -r -1.4.10.1 -r -1.4.10.2 doc/faq/en/sylpheed-faq-3.html;  cvs diff -u -r -1.1 -r -1.2 doc/faq/en/sylpheed-faq-4.html;  cvs diff -u -r -1.3.10.1 -r -1.3.10.2 doc/faq/en/sylpheed-faq.html;  cvs diff -u -r -1.1 -r -1.2 doc/faq/es/.cvsignore;  cvs diff -u -r -1.3 -r -1.4 doc/faq/es/Makefile.am;  cvs diff -u -r -1.6 -r -1.7 doc/faq/es/sylpheed-faq-1.html;  cvs diff -u -r -1.6 -r -1.7 doc/faq/es/sylpheed-faq-2.html;  cvs diff -u -r -1.6 -r -1.7 doc/faq/es/sylpheed-faq-3.html;  cvs diff -u -r -1.3 -r -1.4 doc/faq/es/sylpheed-faq-4.html;  cvs diff -u -r -1.4 -r -1.5 doc/faq/es/sylpheed-faq.html;  cvs diff -u -r -1.1 -r -1.2 doc/faq/fr/.cvsignore;  cvs diff -u -r -1.1 -r -1.2 doc/faq/fr/Makefile.am;  cvs diff -u -r -1.5 -r -1.6 doc/faq/fr/sylpheed-faq-1.html;  cvs diff -u -r -1.3 -r -1.4 doc/faq/fr/sylpheed-faq-2.html;  cvs diff -u -r -1.3 -r -1.4 doc/faq/fr/sylpheed-faq-3.html;  cvs diff -u -r -1.3 -r -1.4 doc/faq/fr/sylpheed-faq.html;  cvs diff -u -r -1.1 -r -1.2 doc/faq/it/.cvsignore;  cvs diff -u -r -1.1 -r -1.2 doc/faq/it/Makefile.am;  cvs diff -u -r -1.3 -r -1.4 doc/faq/it/sylpheed-faq-1.html;  cvs diff -u -r -1.3 -r -1.4 doc/faq/it/sylpheed-faq-2.html;  cvs diff -u -r -1.3 -r -1.4 doc/faq/it/sylpheed-faq-3.html;  cvs diff -u -r -1.2 -r -1.3 doc/faq/it/sylpheed-faq.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/.cvsignore;  cvs diff -u -r -1.5 -r -1.6 doc/manual/Makefile.am;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/.cvsignore;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/Makefile.am;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-1.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-10.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-11.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-12.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-13.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-14.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-15.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-16.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-17.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-18.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-19.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-2.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-20.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-3.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-4.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-5.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-6.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-7.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-8.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed-9.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/de/sylpheed.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/en/.cvsignore;  cvs diff -u -r -1.5 -r -1.6 doc/manual/en/Makefile.am;  cvs diff -u -r -1.5.2.3 -r -1.5.2.4 doc/manual/en/sylpheed-1.html;  cvs diff -u -r -1.4.2.1 -r -1.4.2.2 doc/manual/en/sylpheed-10.html;  cvs diff -u -r -1.5.2.1 -r -1.5.2.2 doc/manual/en/sylpheed-11.html;  cvs diff -u -r -1.4.2.2 -r -1.4.2.3 doc/manual/en/sylpheed-12.html;  cvs diff -u -r -1.4.2.2 -r -1.4.2.3 doc/manual/en/sylpheed-13.html;  cvs diff -u -r -1.4.2.2 -r -1.4.2.3 doc/manual/en/sylpheed-14.html;  cvs diff -u -r -1.4.2.2 -r -1.4.2.3 doc/manual/en/sylpheed-15.html;  cvs diff -u -r -1.4.2.2 -r -1.4.2.3 doc/manual/en/sylpheed-16.html;  cvs diff -u -r -1.4.2.2 -r -1.4.2.3 doc/manual/en/sylpheed-17.html;  cvs diff -u -r -1.4.2.3 -r -1.4.2.4 doc/manual/en/sylpheed-18.html;  cvs diff -u -r -1.4.2.3 -r -1.4.2.4 doc/manual/en/sylpheed-19.html;  cvs diff -u -r -1.5.2.2 -r -1.5.2.3 doc/manual/en/sylpheed-2.html;  cvs diff -u -r -1.5.2.3 -r -1.5.2.4 doc/manual/en/sylpheed-20.html;  cvs diff -u -r -1.4.2.2 -r -1.4.2.3 doc/manual/en/sylpheed-21.html;  cvs diff -u -r -1.1.4.2 -r -1.1.4.3 doc/manual/en/sylpheed-22.html;  cvs diff -u -r -1.4.2.1 -r -1.4.2.2 doc/manual/en/sylpheed-3.html;  cvs diff -u -r -1.6.2.3 -r -1.6.2.4 doc/manual/en/sylpheed-4.html;  cvs diff -u -r -1.4.2.2 -r -1.4.2.3 doc/manual/en/sylpheed-5.html;  cvs diff -u -r -1.5.2.3 -r -1.5.2.4 doc/manual/en/sylpheed-6.html;  cvs diff -u -r -1.5.2.2 -r -1.5.2.3 doc/manual/en/sylpheed-7.html;  cvs diff -u -r -1.5.2.2 -r -1.5.2.3 doc/manual/en/sylpheed-8.html;  cvs diff -u -r -1.5.2.2 -r -1.5.2.3 doc/manual/en/sylpheed-9.html;  cvs diff -u -r -1.5.2.3 -r -1.5.2.4 doc/manual/en/sylpheed.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/.cvsignore;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/Makefile.am;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-1.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-10.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-11.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-12.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-13.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-14.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-15.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-16.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-17.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-18.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-19.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-2.html;  cvs diff -u -r -1.1.14.1 -r -1.1.14.2 doc/manual/es/sylpheed-20.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-3.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-4.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-5.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-6.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-7.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-8.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed-9.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/es/sylpheed.html;  cvs diff -u -r -1.1 -r -1.2 doc/manual/fr/.cvsignore;  cvs diff -u -r -1.1 -r -1.2 doc/manual/fr/Makefile.am;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-1.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-10.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-11.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-12.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-13.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-14.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-15.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-16.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-17.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-18.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-19.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-2.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-20.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-3.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-4.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-5.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-6.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-7.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-8.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed-9.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/fr/sylpheed.html;  cvs diff -u -r -1.2 -r -1.3 doc/manual/ja/.cvsignore;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/Makefile.am;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-1.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-10.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-11.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-12.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-13.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-14.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-15.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-16.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-17.html;  cvs diff -u -r -1.1.2.1 -r -1.1.2.2 doc/manual/ja/sylpheed-18.html;  cvs diff -u -r -1.1.2.1 -r -1.1.2.2 doc/manual/ja/sylpheed-19.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-2.html;  cvs diff -u -r -1.1.2.1 -r -1.1.2.2 doc/manual/ja/sylpheed-20.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-3.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-4.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-5.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-6.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-7.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-8.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed-9.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed.html;  cvs diff -u -r -1.1.1.1.16.1 -r -1.1.1.1.16.2 doc/manual/ja/sylpheed.sgml;  cvs diff -u -r 1.274.2.78 -r 1.274.2.79 src/mainwindow.c;  ) > 1.9.100cvs71.patchset
 ( cvs diff -u -r 1.654.2.1101 -r 1.654.2.1102 configure.ac;  cvs diff -u -r 1.274.2.79 -r 1.274.2.80 src/mainwindow.c;  cvs diff -u -r 1.11.2.3 -r 1.11.2.4 src/manual.c;  cvs diff -u -r 1.8.2.1 -r 1.8.2.2 src/manual.h;  cvs diff -u -r 1.9.2.19 -r 1.9.2.20 src/common/defs.h;  ) > 1.9.100cvs72.patchset
+( cvs diff -u -r 1.12.2.27 -r 1.12.2.28 src/action.c;  cvs diff -u -r 1.382.2.202 -r 1.382.2.203 src/compose.c;  cvs diff -u -r 1.50.2.16 -r 1.50.2.17 src/compose.h;  cvs diff -u -r 1.13.2.8 -r 1.13.2.9 src/common/plugin.c;  cvs diff -u -r 1.13.2.17 -r 1.13.2.18 src/plugins/clamav/clamav_plugin.c;  cvs diff -u -r 1.13.2.3 -r 1.13.2.4 src/plugins/demo/demo.c;  cvs diff -u -r 1.12.2.8 -r 1.12.2.9 src/plugins/dillo_viewer/dillo_viewer.c;  cvs diff -u -r 1.1.2.3 -r 1.1.2.4 src/plugins/pgpcore/plugin.c;  cvs diff -u -r 1.1.2.4 -r 1.1.2.5 src/plugins/pgpinline/plugin.c;  cvs diff -u -r 1.1.2.13 -r 1.1.2.14 src/plugins/pgpmime/plugin.c;  cvs diff -u -r 1.18.2.14 -r 1.18.2.15 src/plugins/spamassassin/spamassassin.c;  cvs diff -u -r 1.14.2.28 -r 1.14.2.29 src/plugins/trayicon/trayicon.c;  ) > 1.9.100cvs73.patchset
index 38711ec..ecca764 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=100
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=72
+EXTRA_VERSION=73
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 44f1316..6b027d4 100644 (file)
@@ -99,6 +99,8 @@ struct _ChildInfo
        gint             new_out;
 
        GString         *output;
+       void (*callback)(void *data);
+       void *data;
 };
 
 static void action_update_menu         (GtkItemFactory *ifactory,
@@ -125,7 +127,9 @@ static gboolean execute_actions             (gchar          *action,
                                         GSList         *msg_list, 
                                         GtkWidget      *text,
                                         gint            body_pos,
-                                        MimeInfo       *partinfo);
+                                        MimeInfo       *partinfo, 
+                                        void (*callback)(void *data),
+                                        void *data);
 
 static gchar *parse_action_cmd         (gchar          *action,
                                         MsgInfo        *msginfo,
@@ -512,7 +516,8 @@ static void compose_actions_execute_cb(Compose *compose, guint action_nb,
                return;
        }
 
-       execute_actions(action, NULL, compose->text, 0, NULL);
+       execute_actions(action, NULL, compose->text, 0, NULL, 
+               compose_action_cb, compose);
 }
 
 static void mainwin_actions_execute_cb(MainWindow *mainwin, guint action_nb,
@@ -574,7 +579,8 @@ static void message_actions_execute(MessageView *msgview, guint action_nb,
                 * filtering */
                execute_filtering_actions(action, msg_list);
        else
-               execute_actions(action, msg_list, text, body_pos, partinfo);
+               execute_actions(action, msg_list, text, body_pos, partinfo,
+                       NULL, NULL);
 }
 
 static gboolean execute_filtering_actions(gchar *action, GSList *msglist)
@@ -606,7 +612,8 @@ static gboolean execute_filtering_actions(gchar *action, GSList *msglist)
 
 static gboolean execute_actions(gchar *action, GSList *msg_list,
                                GtkWidget *text,
-                               gint body_pos, MimeInfo *partinfo)
+                               gint body_pos, MimeInfo *partinfo,
+                               void (*callback)(void *data), void *data)
 {
        GSList *children_list = NULL;
        gint is_ok  = TRUE;
@@ -752,6 +759,8 @@ static gboolean execute_actions(gchar *action, GSList *msg_list,
 
                for (cur = children_list; cur; cur = cur->next) {
                        child_info = (ChildInfo *) cur->data;
+                       child_info->callback = callback;
+                       child_info->data = data;
                        child_info->tag_status = 
                                gdk_input_add(child_info->chld_status,
                                              GDK_INPUT_READ,
@@ -760,7 +769,6 @@ static gboolean execute_actions(gchar *action, GSList *msg_list,
 
                create_io_dialog(children);
        }
-
        return is_ok;
 }
 
@@ -1062,6 +1070,8 @@ static void childinfo_close_pipes(ChildInfo *child_info)
 static void free_children(Children *children)
 {
        ChildInfo *child_info;
+       void (*callback)(void *data) = NULL;
+       void *data = NULL;
 
        debug_print("Freeing children data %p\n", children);
 
@@ -1071,8 +1081,14 @@ static void free_children(Children *children)
                g_free(child_info->cmd);
                g_string_free(child_info->output, TRUE);
                children->list = g_slist_remove(children->list, child_info);
+               callback = child_info->callback;
+               data = child_info->data;
                g_free(child_info);
        }
+
+       if (callback)
+               callback(data);
+       
        g_free(children);
 }
 
index b777943..478c3dc 100644 (file)
@@ -35,6 +35,7 @@ struct _Plugin
        const gchar *(*name) (void);
        const gchar *(*desc) (void);
        const gchar *(*type) (void);
+       const gchar *(*licence) (void);
        GSList *rdeps;
 };
 
@@ -192,6 +193,7 @@ Plugin *plugin_load(const gchar *filename, gchar **error)
        gint (*plugin_init) (gchar **error);
        gpointer plugin_name, plugin_desc;
        const gchar *(*plugin_type)(void);
+       const gchar *(*plugin_licence)(void);
        gint ok;
 
        g_return_val_if_fail(filename != NULL, NULL);
@@ -221,6 +223,7 @@ Plugin *plugin_load(const gchar *filename, gchar **error)
        if (!g_module_symbol(plugin->module, "plugin_name", &plugin_name) ||
            !g_module_symbol(plugin->module, "plugin_desc", &plugin_desc) ||
            !g_module_symbol(plugin->module, "plugin_type", (gpointer)&plugin_type) ||
+           !g_module_symbol(plugin->module, "plugin_licence", (gpointer)&plugin_licence) ||
            !g_module_symbol(plugin->module, "plugin_init", (gpointer)&plugin_init)) {
                *error = g_strdup(g_module_error());
                g_module_close(plugin->module);
@@ -228,6 +231,13 @@ Plugin *plugin_load(const gchar *filename, gchar **error)
                return NULL;
        }
        
+       if (strcmp(plugin_licence(), "GPL")) {
+               *error = g_strdup(_("This module is not licenced under the GPL."));
+               g_module_close(plugin->module);
+               g_free(plugin);
+               return NULL;
+       }
+
        if (!strcmp(plugin_type(), "GTK")) {
                *error = g_strdup(_("This module is for Sylpheed-Claws GTK1."));
                g_module_close(plugin->module);
@@ -244,6 +254,7 @@ Plugin *plugin_load(const gchar *filename, gchar **error)
        plugin->name = plugin_name;
        plugin->desc = plugin_desc;
        plugin->type = plugin_type;
+       plugin->licence = plugin_licence;
        plugin->filename = g_strdup(filename);
 
        plugins = g_slist_append(plugins, plugin);
index c84c75b..4f95520 100644 (file)
@@ -3450,6 +3450,12 @@ colorize:
        compose->autowrap = prev_autowrap;
 }
 
+void compose_action_cb(void *data)
+{
+       Compose *compose = (Compose *)data;
+       compose_wrap_all(compose);
+}
+
 static void compose_wrap_all(Compose *compose)
 {
        compose_wrap_all_full(compose, FALSE);
index 31819f2..231d58c 100644 (file)
@@ -293,5 +293,6 @@ void compose_toolbar_cb                     (gint           action,
 void compose_reply_from_messageview    (MessageView    *msgview, 
                                         GSList         *msginfo_list, 
                                         guint           action);
+void compose_action_cb                 (void           *data);
 
 #endif /* __COMPOSE_H__ */
index 101ec93..72cc196 100644 (file)
@@ -263,3 +263,9 @@ const gchar *plugin_type(void)
 {
        return "GTK2";
 }
+
+const gchar *plugin_licence(void)
+{
+       return "GPL";
+}
+
index 24b9338..07ba2e8 100644 (file)
@@ -86,3 +86,9 @@ const gchar *plugin_type(void)
 {
        return "Common";
 }
+
+const gchar *plugin_licence(void)
+{
+return "GPL";
+}
+
index ca14f36..cbe24b0 100644 (file)
@@ -203,3 +203,9 @@ const gchar *plugin_type(void)
 {
        return "GTK2";
 }
+
+const gchar *plugin_licence(void)
+{
+       return "GPL";
+}
+
index 900d45f..0421656 100644 (file)
@@ -70,3 +70,9 @@ const gchar *plugin_type(void)
 {
        return "GTK2";
 }
+
+const gchar *plugin_licence(void)
+{
+       return "GPL";
+}
+
index aec1f66..5d6d376 100644 (file)
@@ -71,3 +71,9 @@ const gchar *plugin_type(void)
 {
        return "GTK2";
 }
+
+const gchar *plugin_licence(void)
+{
+       return "GPL";
+}
+
index 88f9aa7..7641b43 100644 (file)
@@ -71,3 +71,9 @@ const gchar *plugin_type(void)
 {
        return "GTK2";
 }
+
+const gchar *plugin_licence(void)
+{
+       return "GPL";
+}
+
index 1a52c10..40cbfed 100644 (file)
@@ -346,3 +346,9 @@ const gchar *plugin_type(void)
 {
        return "GTK2";
 }
+
+const gchar *plugin_licence(void)
+{
+       return "GPL";
+}
+
index 7c1788e..08ffbe4 100644 (file)
@@ -325,6 +325,12 @@ const gchar *plugin_type(void)
        return "GTK2";
 }
 
+const gchar *plugin_licence(void)
+{
+       return "GPL";
+}
+
+
 /* popup menu callbacks */
 static void trayicon_get_all_cb( gpointer data, guint action, GtkWidget *widget )
 {