You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by jh...@apache.org on 2014/11/27 19:54:33 UTC

svn commit: r1642207 - in /spamassassin/trunk/lib/Mail/SpamAssassin: Conf.pm Conf/Parser.pm

Author: jhardin
Date: Thu Nov 27 18:54:32 2014
New Revision: 1642207

URL: http://svn.apache.org/r1642207
Log:
bug 7107: add "perl_version" to preprocessor conditionals

Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm?rev=1642207&r1=1642206&r2=1642207&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm Thu Nov 27 18:54:32 2014
@@ -3886,6 +3886,20 @@ version format which is C<x.yyyzzz>, whe
 version, and z is maintenance version.  So 3.0.0 is C<3.000000>, and 3.4.80 is
 C<3.004080>.
 
+=item perl_version
+
+This will be replaced with the version number of the currently-running
+perl engine.  Note: The version used is in the $] version format which is
+C<x.yyyzzz>, where x is major version, y is minor version, and z is maintenance
+version.  So 5.8.8 is C<5.008008>, and 5.10.0 is C<5.010000>. Use to protect rules
+that incorporate RE syntax elements introduced in later versions of perl, such
+as the C<++> non-backtracking match. For example:
+
+  # Avoid lint error on older perl installs
+  if perl_version >= 5.010000
+    body  INVALID_RE_SYNTAX_IN_PERL_5_8_8  /\w++/
+  endif
+
 =item plugin(Name::Of::Plugin)
 
 This is a function call that returns C<1> if the plugin named

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm?rev=1642207&r1=1642206&r2=1642207&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm Thu Nov 27 18:54:32 2014
@@ -533,6 +533,9 @@ sub handle_conditional {
     elsif ($token eq 'version') {
       $eval .= $Mail::SpamAssassin::VERSION." ";
     }
+    elsif ($token eq 'perl_version') {
+      $eval .= $]." ";
+    }
     elsif ($token =~ /^\w[\w\:]+$/) { # class name
       my $u = untaint_var($token);
       $eval .= '"' . $u . '" ';