mhonarc-commits
[Top] [All Lists]

CVS: mhonarc/MHonArc/lib mhamain.pl,2.86,2.87 mhrcvars.pl,2.27,2.28 mhutil....

2005-07-07 22:28:02
Update of mhonarc/MHonArc/lib
Modified Files:
	mhamain.pl mhrcvars.pl mhutil.pl 
Log Message:
[bug #11759]: Modified conversion of HTML header and handling of
$SUBJECT$ and $MSGHFIELD$.  For message header conversion, all
fields can have ADDRESSMODIFYCODE (and MAILTOURL) applied except
for a well-defined set (e.g. List-*, Message-Id, etc).

For $SUBJECT$, et. al, ADDRESSMODIFYCODE is applied.  MAILTOURL
is not applied unless the new :M modifier is used for the variable.
This way, the default behavior will not cause conflicts if
rcvar used within hyperlinks.  If MAILTOURL application is
desired, :M must be specifed.


======================================================================
FILE: mhonarc/MHonArc/lib/mhamain.pl
<http://www.mhonarc.org/cgi-bin/viewcvs.cgi/*checkout*/mhonarc/MHonArc/lib/mhamain.pl?rev=2.87>

<http://www.mhonarc.org/cgi-bin/viewcvs.cgi/mhonarc/MHonArc/lib/mhamain.pl.diff?r1=2.86&r2=2.87&diff_format=h>
--- mhamain.pl	8 Jul 2005 02:04:06 -0000	2.86
+++ mhamain.pl	8 Jul 2005 05:27:52 -0000	2.87
@@ -333,4 +333,5 @@
                 local($_);
                 MHFILE: foreach (@files) {
+                    print STDERR "$_\n";
                     $mesgfile = join($DIRSEP, $mbox, $_);
                     eval {

======================================================================
FILE: mhonarc/MHonArc/lib/mhrcvars.pl
<http://www.mhonarc.org/cgi-bin/viewcvs.cgi/*checkout*/mhonarc/MHonArc/lib/mhrcvars.pl?rev=2.28>

<http://www.mhonarc.org/cgi-bin/viewcvs.cgi/mhonarc/MHonArc/lib/mhrcvars.pl.diff?r1=2.27&r2=2.28&diff_format=h>
--- mhrcvars.pl	15 Dec 2004 20:33:40 -0000	2.27
+++ mhrcvars.pl	8 Jul 2005 05:27:52 -0000	2.28
@@ -90,4 +90,5 @@
     my($arg, $opt) = ("", "");
     my $isaddr = 0;
+    my $mailto = 0;
 
     ##  Get variable argument string
@@ -104,7 +105,9 @@
 
     ##  Check if variable in a URL string
-    $isurl = 1  if ($len =~ s/u//ig);   
+    $isurl = 1  if ($len =~ s/U//g);    
     ##  Check if variable in a JavaScript string
-    $jstr  = 1  if ($len =~ s/j//ig);   
+    $jstr  = 1  if ($len =~ s/J//g);    
+    ##  Check if variable in a JavaScript string
+    $mailto = 1 if ($len =~ s/M//g);    
 
     ##  Do variable replacement
@@ -145,4 +148,6 @@
             if ($cnd3 && $SpamMode) {
                 $tmp =~ s/($AddrExp)/rewrite_raw_address($1)/geo;
+            } else {
+                $isaddr = 1;
             }
             last REPLACESW;
@@ -214,5 +219,5 @@
                 $tmp = '';
             }
-            if ($HFieldsAddr{$opt}) {
+            if (!$HFieldsAsIsList{$opt}) {
                 $isaddr = 1;
             }
@@ -282,5 +287,5 @@
         }
         if ($var eq 'SUBJECT') {        ## Message subject
-            $canclip = 1; $raw = 1; $isurl = 0;
+            $canclip = 1; $raw = 1; $isurl = 0; $isaddr = 1;
             ($lref, $key, $pos) = compute_msg_pos($index, $var, $arg);
             if (defined($key)) {
@@ -293,5 +298,5 @@
         }
         if ($var eq 'SUBJECTNA') {      ## Message subject (not linked)
-            $canclip = 1; $raw = 1;
+            $canclip = 1; $raw = 1; $isaddr = 1;
             ($lref, $key, $pos) = compute_msg_pos($index, $var, $arg);
             if (defined($key)) {
@@ -677,5 +682,6 @@
 
         warn qq/Warning: Unrecognized variable: "$val"\n/;
-        return "\$$val\$";
+        #return "\$$val\$";
+        return "";
     }
 
@@ -693,5 +699,5 @@
             $ret = &$MHeadCnvFunc($tmp);
             if ($isaddr) {
-                if ($NOMAILTO) {
+                if (!$mailto) {
                     $ret =~ s/($HAddrExp)/htmlize(rewrite_address($1))/geo;
                 } else {
@@ -700,4 +706,5 @@
                                           $Subject{$key},
                                           $From{$key})/gexo;
+                    $canclip = 0;
                 }
             }
@@ -726,5 +733,5 @@
            &msgnum_filename($IndexNum{$index}) .
            qq|">$ret</a>|
-        if $var eq 'SUBJECT' && $arg eq "";
+        if $var eq 'SUBJECT' && $arg eq "" && !$mailto;
 
     $ret;

======================================================================
FILE: mhonarc/MHonArc/lib/mhutil.pl
<http://www.mhonarc.org/cgi-bin/viewcvs.cgi/*checkout*/mhonarc/MHonArc/lib/mhutil.pl?rev=2.32>

<http://www.mhonarc.org/cgi-bin/viewcvs.cgi/mhonarc/MHonArc/lib/mhutil.pl.diff?r1=2.31&r2=2.32&diff_format=h>
--- mhutil.pl	2 Jun 2005 02:12:30 -0000	2.31
+++ mhutil.pl	8 Jul 2005 05:27:53 -0000	2.32
@@ -43,7 +43,8 @@
 %HFieldsAsIsList = (
     %HFieldsList,
-    'content-id',
-    'content-type',
-    'message-id',
+    'content-disposition' => 1,
+    'content-id'          => 1,
+    'content-type'        => 1,
+    'message-id'          => 1,
 );
 
@@ -467,5 +468,6 @@
                     $tmp = $HFieldsList{$key} ? mlist_field_add_links($tmp) :
                                                 &$MHeadCnvFunc($tmp);
-                    $tmp = field_add_links($key, $tmp, $fields);
+                    $tmp = field_add_links($key, $tmp, $fields)
+                        unless $HFieldsAsIsList{$key};
                     ($tago, $tagc, $ftago, $ftagc) = get_header_tags($key);
                     $mesg .= join('', $LABELBEG,
@@ -483,5 +485,6 @@
                     $tmp = $HFieldsList{$item} ? mlist_field_add_links($tmp) :
                                                  &$MHeadCnvFunc($tmp);
-                    $tmp = field_add_links($item, $tmp, $fields);
+                    $tmp = field_add_links($item, $tmp, $fields)
+                        unless $HFieldsAsIsList{$key};
                     ($tago, $tagc, $ftago, $ftagc) = &get_header_tags($item);
                     $mesg .= join('', $LABELBEG,
@@ -525,22 +528,19 @@
 
     LBLSW: {
-        if ($HFieldsAddr{$label}) {
-            if (!$NOMAILTO) {
-                $fld_text =~ s{($HAddrExp)}
-                              {&mailUrl($1, $fields->{'x-mha-message-id'},
-                                            $fields->{'x-mha-subject'},
-                                            $fields->{'x-mha-from'});
-                              }gexo;
-            } else {
-                $fld_text =~ s{($HAddrExp)}
-                              {&htmlize(&rewrite_address($1))
-                              }gexo;
-            }
-            last LBLSW;
-        }
         if (!$NONEWS && ($label eq 'newsgroup' || $label eq 'newsgroups')) {
             $fld_text = newsurl($fld_text, $fields->{'x-mha-message-id'});
             last LBLSW;
         }
+        if (!$NOMAILTO) {
+            $fld_text =~ s{($HAddrExp)}
+                          {&mailUrl($1, $fields->{'x-mha-message-id'},
+                                        $fields->{'x-mha-subject'},
+                                        $fields->{'x-mha-from'});
+                          }gexo;
+        } else {
+            $fld_text =~ s{($HAddrExp)}
+                          {&htmlize(&rewrite_address($1))
+                          }gexo;
+        }
         last LBLSW;
     }
@@ -605,6 +605,5 @@
     $url =~ s/\$FROMADDRDOMAIN\$/$faddrdomainl/g;
     $url =~ s/\$MSGID\$/$msgidl/g;
-    $url =~ s/\$SUBJECT\$/$subjectl/g;
-    $url =~ s/\$SUBJECTNA\$/$subjectl/g;
+    $url =~ s/\$SUBJECT(?:NA)?\$/$subjectl/g;
     $url =~ s/\$TO\$/$to/g;
     $url =~ s/\$TOADDRNAME\$/$toname/g;


---------------------------------------------------------------------
To sign-off this list, send email to majordomo(_at_)mhonarc(_dot_)org with the
message text UNSUBSCRIBE MHONARC-COMMITS