On Mon, 1 Dec 2014, John Hardin wrote:

On Mon, 1 Dec 2014, Bob Proulx wrote:

John Hardin wrote:
Burnie wrote:
John Hardin wrote:
jdow wrote:
 Would a corrected syntax version of this work?
 if version > 3.004001 && perl_version >= 5.010000
   body NON_588_COMPATIBLE_RE_SYNTAX /\w++/
 endif

Yes. That *does* work.

Thank you! I think you just solved it.

Define work...

if version > 3.004001 && perl_version >= 5.010000
body NON_588_COMPATIBLE_RE_SYNTAX /\w++/
endif

# spamassassin --lint
Dec 1 15:03:50.365 [28224] warn: Argument "perl_version" isn't numeric in
numeric ge (>=) at (eval 2520) line 2.

Dammit. I ran it (against trunk) here (with a different pseudo-var name, and
using version > 9) and did *not* get a type warning!

Regarding this syntax I just ran a test here with exactly that
syntax in Debian Wheezy Stable.

 $ spamassassin --version
 SpamAssassin version 3.3.2
   running on Perl version 5.14.2

 if version > 3.004001 && perl_version >= 5.010000
meta PDS_FROM_2_EMAILS __PDS_FROM_2_EMAILS && !__VIA_ML && !__VIA_RESIGNER
 endif

 if version > 3.004001 && perl_version >= 5.010000
header __PDS_FROM_2_EMAILS From =~ /^\W+([\w+.-]+\@[\w.-]+\.\w\w++)(?:[^\n\w<]{0,80})?<(?!\1)[^\n\s]*\@/i
 endif

This produced no lint warnings with the above combination.  I am
missing why it is causing problems in Burnie's configuration.  Is
3.3.1 really that different here from 3.3.2 which is silent?

I did a quick troll through the SVN history but nothing leapt out at me. However, I'm not that familiar with the parser.

I can confirm 3.2.5 *does* generate a lint warning with that syntax (an old VM I have).

Could somebody else running 3.3.1 confirm Burnie's results?

# spamassassin --version
SpamAssassin version 3.3.1
  running on Perl version 5.10.0


  if version > 3.004001 && perl_version >= 5.010000
    body NON_588_COMPATIBLE_RE_SYNTAX /\w++/
  endif

is silent (no errors, no warnings in a --lint)

  if version > 3.004001
    if perl_version >= 5.010000
      body NON_588_COMPATIBLE_RE_SYNTAX /\w++/
    endif
  endif

throws a warning on --lint
Dec  1 16:44:30.000 [29399] warn: Argument "perl_version" isn't numeric in numeric 
ge (>=) at (eval 2681) line 1.

So it looks like it's perl version dependent.


--
Dave Funk                                  University of Iowa
<dbfunk (at) engineering.uiowa.edu>        College of Engineering
319/335-5751   FAX: 319/384-0549           1256 Seamans Center
Sys_admin/Postmaster/cell_admin            Iowa City, IA 52242-1527
#include <std_disclaimer.h>
Better is not better, 'standard' is better. B{

Reply via email to