0.9.3claws25
authorChristoph Hohmann <reboot@gmx.ch>
Fri, 18 Jul 2003 19:08:45 +0000 (19:08 +0000)
committerChristoph Hohmann <reboot@gmx.ch>
Fri, 18 Jul 2003 19:08:45 +0000 (19:08 +0000)
* configure.ac
* src/common/sylpheed.[ch]
* src/common/version.h.in
        add version in numeric form to allow easy comparison

* src/plugins/demo/demo.c
        add version check
        - sylpheed version > plugin version => never allowed, sylpheed
          could contain unknown API changes
        - sylpheed version < minimum version required => don't load,
          API required not available (if linking does not fail)

ChangeLog.claws
configure.ac
src/common/sylpheed.c
src/common/sylpheed.h
src/common/version.h.in
src/plugins/demo/demo.c

index 9e93a9b1f1df807c5a0f8929bda1d56890e57257..1330c0a7320cb15e90f51da92200544f90532048 100644 (file)
@@ -1,3 +1,17 @@
+2003-07-18 [christoph] 0.9.3claws25
+
+       * configure.ac
+       * src/common/sylpheed.[ch]
+       * src/common/version.h.in
+               add version in numeric form to allow easy comparison
+
+       * src/plugins/demo/demo.c
+               add version check
+               - sylpheed version > plugin version => never allowed, sylpheed
+                 could contain unknown API changes
+               - sylpheed version < minimum version required => don't load,
+                 API required not available (if linking does not fail)
+
 2003-07-18 [alfons]    0.9.3claws24
        
        * src/common/plugin.[ch]
index 4b3b15168c612a0c1936278b2ea2a1fa69105270..ab1ab5842bc18b29d2708ccf70ed02efc5523c54 100644 (file)
@@ -11,8 +11,8 @@ MINOR_VERSION=9
 MICRO_VERSION=3
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws24
-VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
+EXTRA_VERSION=25
+VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}claws${EXTRA_VERSION}
 
 dnl set $target
 AC_CANONICAL_SYSTEM
@@ -23,6 +23,10 @@ dnl AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
 dnl AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
 AC_SUBST(PACKAGE)
 AC_SUBST(VERSION)
+AC_SUBST(MAJOR_VERSION)
+AC_SUBST(MINOR_VERSION)
+AC_SUBST(MICRO_VERSION)
+AC_SUBST(EXTRA_VERSION)
 
 dnl GNOME installed?
 AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
index e2d6554d749a6f31a3792cecd4110ffcf8f5075c..e00231e2622ed3ae4f3469f0650caa999b21460d 100644 (file)
@@ -89,6 +89,8 @@ gboolean sylpheed_init(int *argc, char ***argv)
 
        parse_parameter(argc, argv);
 
+       debug_print("Starting sylpheed version %08x\n", VERSION_NUMERIC);
+
        setlocale(LC_ALL, "");
        bindtextdomain(PACKAGE, LOCALEDIR);
        textdomain(PACKAGE);
@@ -127,3 +129,8 @@ const gchar *sylpheed_get_startup_dir(void)
 {
        return startup_dir;
 }
+
+guint sylpheed_get_version(void)
+{
+       return VERSION_NUMERIC;
+}
index 8c99bc9173c15f55424b8dc10cacf887be1deabf..f7a9b1bfd039b265bd231f721751059e758ebe34 100644 (file)
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
+#ifndef SYLPHEED_H
+#define SYLPHEED_H
+
+#include <glib.h>
+
 gboolean sylpheed_init                 (int *argc, char ***argv);
 void sylpheed_done                     (void);
 const gchar *sylpheed_get_startup_dir  (void);
+guint sylpheed_get_version             (void);
+
+#endif /* SYLPHEED_H */
index 3e92ad2d8436468e0851c95633ddfd2a01bc0fc5..08b4d274bfefa0afccf009c1fe048f1b75c78c6f 100644 (file)
 #ifndef __VERSION_H__
 #define __VERSION_H__
 
+#define MAKE_NUMERIC_VERSION(a, b, c, d) ((a << 24) | (b << 16) | (c << 8) | d)
+
 #define PACKAGE                        "@PACKAGE@"
 #define VERSION                        "@VERSION@"
 #define PROG_VERSION           "Sylpheed version "VERSION
+#define VERSION_NUMERIC                MAKE_NUMERIC_VERSION(@MAJOR_VERSION@, @MINOR_VERSION@, \
+                                                    @MICRO_VERSION@, @EXTRA_VERSION@)
 
 #endif /* __VERSION_H__ */
index 65ff9e0339fe15fc6247eb7e1b2b373488b83d9a..200edc43e9b52200eabc63d1f1486f6ba3d908a2 100644 (file)
@@ -18,6 +18,8 @@
  */
 
 #include "intl.h"
+#include "version.h"
+#include "sylpheed.h"
 #include "plugin.h"
 #include "utils.h"
 #include "hooks.h"
@@ -36,6 +38,16 @@ static guint hook_id;
 
 gint plugin_init(gchar **error)
 {
+       if ((sylpheed_get_version() > VERSION_NUMERIC)) {
+               *error = g_strdup("Your sylpheed version is never then the version the plugin was build with");
+               return -1;
+       }
+
+       if ((sylpheed_get_version() < MAKE_NUMERIC_VERSION(0, 8, 11, 39))) {
+               *error = g_strdup("Your sylpheed version is too old");
+               return -1;
+       }
+
        hook_id = hooks_register_hook(LOG_APPEND_TEXT_HOOKLIST, my_log_hook, NULL);
        if (hook_id == -1) {
                *error = g_strdup("Failed to register log text hook");