Ensure that module version agrees with pspp version
authorJohn Darrington <john@darrington.wattle.id.au>
Wed, 24 Dec 2008 06:34:59 +0000 (15:34 +0900)
committerJohn Darrington <john@darrington.wattle.id.au>
Wed, 24 Dec 2008 06:34:59 +0000 (15:34 +0900)
perl-module/PSPP.xs
perl-module/lib/PSPP.pm

index 254b668c0ae6bf7de323d29b9c98a88932fffa08..b468cc7467325a322378ad5970d19eb2b8a12b21 100644 (file)
@@ -148,14 +148,17 @@ make_value_from_scalar (SV *val, const struct variable *var)
 
 MODULE = PSPP
 
-BOOT:
+MODULE = PSPP          PACKAGE = PSPP
+
+void
+onBoot (ver)
+ const char *ver
+CODE:
+ assert (0 == strcmp (ver, bare_version));
  msg_init (NULL, message_handler);
  settings_init (0, 0);
  fh_init ();
 
-
-MODULE = PSPP          PACKAGE = PSPP
-
 SV *
 format_value (val, var)
  SV *val
@@ -634,4 +637,3 @@ CODE:
 OUTPUT:
  RETVAL
 
-
index f4310eee7eaac47e1e48d935f9939a38ee099581..69e467074555ea9edabf88eeffb8c438017a9bf4 100644 (file)
@@ -2,8 +2,6 @@ use 5.008008;
 use strict;
 use warnings;
 
-do 'pspp-vers.pl' || die "No version set";
-
 =head1 NAME
 
 PSPP - Perl extension to PSPP
@@ -22,9 +20,13 @@ system files.
 None by default.
 
 =cut
+BEGIN {
+       do 'pspp-vers.pl' || die "No version set";
+       require XSLoader;
+       XSLoader::load('PSPP', $PSPP::VERSION);
+}
 
-require XSLoader;
-XSLoader::load('PSPP', $PSPP::VERSION);
+PSPP::onBoot($PSPP::VERSION);
 
 =pod