Update of /cvsroot/mhonarc/mhonarc/MHonArc/lib
In directory subversions:/tmp/cvs-serv16644/lib

Modified Files:
        mhdb.pl mhdysub.pl mhinit.pl mhopt.pl mhrcfile.pl readmail.pl 
Log Message:
* Added MODIFYBODYADDRESSES resource.


Index: mhdb.pl
===================================================================
RCS file: /cvsroot/mhonarc/mhonarc/MHonArc/lib/mhdb.pl,v
retrieving revision 2.27
retrieving revision 2.28
diff -C2 -r2.27 -r2.28
*** mhdb.pl     31 Dec 2002 05:03:30 -0000      2.27
--- mhdb.pl     31 Dec 2002 20:01:37 -0000      2.28
***************
*** 148,151 ****
--- 148,152 ----
  print_var($db,'AddressModify',  \$AddressModify)
                                unless $IsDefault{'AddressModify'};
+ print_var($db,'AddrModifyBodies', \$AddrModifyBodies);
  print_var($db,'CheckNoArchive', \$CheckNoArchive);
  print_var($db,'DOCURL',         \$DOCURL);

Index: mhdysub.pl
===================================================================
RCS file: /cvsroot/mhonarc/mhonarc/MHonArc/lib/mhdysub.pl,v
retrieving revision 2.8
retrieving revision 2.9
diff -C2 -r2.8 -r2.9
*** mhdysub.pl  19 Dec 2002 05:08:31 -0000      2.8
--- mhdysub.pl  31 Dec 2002 20:01:37 -0000      2.9
***************
*** 36,39 ****
--- 36,42 ----
  ##    are candidates.
  ##
+ ##    NOTE: Subroutine references would be cleaner, but code
+ ##          pre-dates Perl 5 where references were not supported.
+ ##
  sub create_routines {
      my($sub) = '';
***************
*** 146,149 ****
--- 149,170 ----
      eval $sub;
      die("ERROR: Unable to create rewrite_address routine:\n$@\n") if $@;
+ 
+     ##-----------------------------------------------------------------------
+     ##        Routine to rewrite mail addresses in message bodies
+     ##
+     if ($AddrModifyBodies) {
+       $sub =<<EndOfRoutine;
+ sub rewrite_body_address {
+     package mhonarc::Pkg_rewrite_body_address;
+     local \$_ = shift;
+     $AddressModify;
+     \$_;
+ }
+ EndOfRoutine
+       $sub .= "# $_sub_eval_cnt\n";  ++$_sub_eval_cnt;
+       eval $sub;
+       die("ERROR: Unable to create rewrite_body_address routine:\n$@\n")
+           if $@;
+     }
  
      ##-----------------------------------------------------------------------

Index: mhinit.pl
===================================================================
RCS file: /cvsroot/mhonarc/mhonarc/MHonArc/lib/mhinit.pl,v
retrieving revision 2.41
retrieving revision 2.42
diff -C2 -r2.41 -r2.42
*** mhinit.pl   31 Dec 2002 05:03:30 -0000      2.41
--- mhinit.pl   31 Dec 2002 20:01:37 -0000      2.42
***************
*** 374,377 ****
--- 374,379 ----
  $POSIXstrftime = defined($ENV{'M2H_POSIXSTRFTIME'}) ?
                         $ENV{'M2H_POSIXSTRFTIME'} : 0;
+ $AddrModifyBodies  = defined($ENV{'M2H_MODIFYBODYADDRESSES'}) ?
+                            $ENV{'M2H_MODIFYBODYADDRESSES'} : 0;
  
  if ($UNIX) {

Index: mhopt.pl
===================================================================
RCS file: /cvsroot/mhonarc/mhonarc/MHonArc/lib/mhopt.pl,v
retrieving revision 2.46
retrieving revision 2.47
diff -C2 -r2.46 -r2.47
*** mhopt.pl    26 Dec 2002 21:57:04 -0000      2.46
--- mhopt.pl    31 Dec 2002 20:01:37 -0000      2.47
***************
*** 42,202 ****
      die(qq{Try "$PROG -help" for usage information\n}) unless
      GetOptions(\%opt,
!       "add",          # Add a message to archive
!       "afs",          # Bypass file permission checks
!       "addressmodifycode=s",
                        # Perl expression for modifying displayed addresses
!       "annotate",     # Add a note to message(s)
!       "authsort",     # Sort by author
!       "archive",      # Create an archive (the default)
!       "conlen",       # Honor Content-Length fields
!       "checknoarchive",
!                       # Check for "no archive" flag in messages
!       "datefields=s", # Fields that contains the date of a message
!       "dbfile=s",     # Database/state filename for mhonarc archive
!       "dbfileperms=i",# Octal permission to set DBFILE
!       "decodeheads",  # Decode all 1522 encoded data in message headers
!       "definevar|definevars=s@",
                        # Define custom resource variables
!       "doc",          # Print link to doc at end of index page
!       "docurl=s",     # URL to mhonarc documentation
!       "editidx",      # Change index page layout only
!       "expiredate=s", # Message cut-off date
!       "expireage=i",  # Time in seconds from current if message expires
!       "fileperms=i",  # Octal permission to create files
!       "folrefs",      # Print links to explicit follow-ups/references
!       "footer=s",     # File containing user text for bottom of index page
                        #       (option no longer applicable)
!       "force",        # Perform archive operation even if unable to lock
!       "fromfields=s", # Fields that contains the "from" of a message
!       "genidx",       # Generate an index based upon archive contents
!       "gmtdatefmt=s", # Date specification for GMT date
!       "gzipexe=s",    # Pathname of Gzip executable
!       "gzipfiles",    # Gzip files
!       "gziplinks",    # Add ".gz" extensions to files
!       "header=s",     # File containing user text for top of index page
                        #       (option no longer applicable)
!       "htmlext=s",    # Extension for HTML files
!       "idxfname=s",   # Filename of index page
!       "idxprefix=s",  # Filename prefix for multi-page main index
!       "idxsize=i",    # Maximum number of messages shown in indexes
!       "keeponrmm",    # Do not delete message files on archive remove
!       "localdatefmt=s",
                        # Date specification for local date
!       "lock",         # Do archive locking (default)
!       "lockdelay=i",  # Time delay in seconds between lock tries
!       "lockmethod=s", # Set the method of locking
!       "locktries=i",  # Number of tries in locking an archive
!       "mailtourl=s",  # URL to use for e-mail address hyperlinks
!       "main",         # Create a main index
!       "maxsize=i",    # Maximum number of messages allowed in archive
!       "mbox",         # Use mailbox format            (ignored now)
!       "mh",           # Use MH mail folders format    (ignored now)
!       "mhpattern=s",  # Regular expression for message files in a directory
!       "modtime",      # Set modification time on files to message date
!       "months=s",     # Month names
!       "monthsabr=s",  # Abbreviated month names
!       "msgexcfilter=s",
                        # Perl expression(s) for selective message exclusion
!       "msgpgs",       # Create message pages
!       "msgsep=s",     # Message separator for mailbox files
!       "msgprefix=s",  # Filename prefix for message files
!       "multipg",      # Generate multi-page indexes
!       "news",         # Add links to newsgroups
!       "noauthsort",   # Do not sort by author
!       "noarchive",    # Do not create an archive
!       "nochecknoarchive",
!                       # Do not check for "no archive" flag in messages
!       "noconlen",     # Ignore Content-Length fields
!       "nodecodeheads",
                        # Do not decode 1522 encoded data in message headers
!       "nodoc",        # Do not print link to doc at end of index page
!       "nofolrefs",    # Do not print links to explicit follow-ups/references
!       "nogzipfiles",  # Do not Gzip files
!       "nogziplinks",  # Do not add ".gz" extensions to files
!       "nokeeponrmm",  # Delete message files on archive remove
!       "nolock",       # Do no archive locking
!       "nomailto",     # Do not add in mailto links for e-mail addresses
!       "nomain",       # Do not create a main index
!       "nomsgpgs",     # Do not create message pages
!       "nomodtime",    # Do no set modification time on files to message date
!       "nomultipg",    # Do not generate multi-page indexes
!       "nonews",       # Do not add links to newsgroups
!       "noposixstrftime",
                        # Use own implementation for time format process
!       "noreverse",    # List messages in normal order
!       "nosaveresources",
                        # Do not save resource values in db
!       "nosort",       # Do not sort
!       "nospammode",   # Do not run in (anti)spam mode
!       "nosubsort",    # Do not sort by subject
!       "nosubjectthreads",
                        # Do not do subject based threading
!       "nosubjecttxt=s",
                        # Text to use if message has no subject
!       "notedir",      # Location of notes
!       "notetext=s@",  # Text data of note
!       "nothread",     # Do not create threaded index
!       "notreverse",   # List oldest thread first
!       "notsubsort|tnosubsort",
                        # Do not list threads by subject
!       "notsort|tnosort",
                        # List threads by ordered processed
!       "nourl",        # Do not make URL hyperlinks
!       "otherindex|otherindexes=s@",
                        # List of other rcfiles for extra indexes
!       "outdir=s",     # Destination of HTML files
!       "pagenum=s",    # Page to output if -genidx
!       "perlinc=s@",   # List of paths to search for MIME filters
!       "posixstrftime",
                        # Use POSIX strftime()
!       "quiet",        # No status messages while running
!       "rcfile=s@",    # Resource file for mhonarc
!       "varregex=s",   # Regex matching resource variables
!       "reverse",      # List messages in reverse order
!       "rmm",          # Remove messages from an archive
!       "savemem",      # Write message data while processing
!       "saveresources",
                        # Save resource values in db
!       "scan",         # List out archive contents to terminal
!       "single",       # Convert a single message to HTML
!       "sort",         # Sort messages in increasing date order
!       "spammode",     # Run in (anti)spam mode
!       "stderr=s",     # Set file for stderr
!       "stdin=s",      # Set file for stdin
!       "stdout=s",     # Set file for stdout
!       "subjectarticlerxp=s",
                        # Regex for leading articles in subjects
!       "subjectreplyrxp=s",
                        # Regex for leading reply string in subjects
!       "subjectstripcode=s",
                        # Perl expression for modifying subjects
!       "subjectthreads",
                        # Check subjects for threads
!       "subsort",      # Sort message by subject
!       "tidxfname=s",  # File name of threaded index page
!       "tidxprefix=s", # Filename prefix for multi-page thread index
!       "time",         # Print processing time
!       "title=s",      # Title of index page
!       "ttitle=s",     # Title of threaded index page
!       "thread",       # Create threaded index
!       "tlevels=i",    # Maximum # of nested lists in threaded index
!       "treverse",     # Reverse order of thread listing
!       "tslice=s",     # Set size of thread slice listing
!       "tslicelevels=i",
                        # Maximum # of nested lists in thread slices
!       "tsort",        # List threads by date
!       "tsubsort",     # List threads by subject
!       "umask=i",      # Set umask of process
!       "url",          # Make URL hyperlinks
!       "weekdays=s",   # Weekday names
!       "weekdaysabr=s",
                        # Abbreviated weekday names
  
        ## API (only?) options
!       "noarg",        # Just load code
!       "readdb",       # Just read db
  
!       "v",            # Version information
!       "help"          # A brief usage message
      );
  
--- 42,204 ----
      die(qq{Try "$PROG -help" for usage information\n}) unless
      GetOptions(\%opt,
!       'add',          # Add a message to archive
!       'afs',          # Bypass file permission checks
!       'addressmodifycode=s',
                        # Perl expression for modifying displayed addresses
!       'annotate',     # Add a note to message(s)
!       'authsort',     # Sort by author
!       'archive',      # Create an archive (the default)
!       'conlen',       # Honor Content-Length fields
!       'checknoarchive',
!                       # Check for 'no archive' flag in messages
!       'datefields=s', # Fields that contains the date of a message
!       'dbfile=s',     # Database/state filename for mhonarc archive
!       'dbfileperms=i',# Octal permission to set DBFILE
!       'decodeheads',  # Decode all 1522 encoded data in message headers
!       'definevar|definevars=s@',
                        # Define custom resource variables
!       'doc',          # Print link to doc at end of index page
!       'docurl=s',     # URL to mhonarc documentation
!       'editidx',      # Change index page layout only
!       'expiredate=s', # Message cut-off date
!       'expireage=i',  # Time in seconds from current if message expires
!       'fileperms=i',  # Octal permission to create files
!       'folrefs',      # Print links to explicit follow-ups/references
!       'footer=s',     # File containing user text for bottom of index page
                        #       (option no longer applicable)
!       'force',        # Perform archive operation even if unable to lock
!       'fromfields=s', # Fields that contains the 'from' of a message
!       'genidx',       # Generate an index based upon archive contents
!       'gmtdatefmt=s', # Date specification for GMT date
!       'gzipexe=s',    # Pathname of Gzip executable
!       'gzipfiles',    # Gzip files
!       'gziplinks',    # Add ".gz" extensions to files
!       'header=s',     # File containing user text for top of index page
                        #       (option no longer applicable)
!       'htmlext=s',    # Extension for HTML files
!       'idxfname=s',   # Filename of index page
!       'idxprefix=s',  # Filename prefix for multi-page main index
!       'idxsize=i',    # Maximum number of messages shown in indexes
!       'keeponrmm',    # Do not delete message files on archive remove
!       'localdatefmt=s',
                        # Date specification for local date
!       'lock',         # Do archive locking (default)
!       'lockdelay=i',  # Time delay in seconds between lock tries
!       'lockmethod=s', # Set the method of locking
!       'locktries=i',  # Number of tries in locking an archive
!       'mailtourl=s',  # URL to use for e-mail address hyperlinks
!       'main',         # Create a main index
!       'maxsize=i',    # Maximum number of messages allowed in archive
!       'mbox',         # Use mailbox format            (ignored now)
!       'mh',           # Use MH mail folders format    (ignored now)
!       'mhpattern=s',  # Regular expression for message files in a directory
!       'modifybodyaddresses',
!                       # addressmodifycode applies to text entities
!       'modtime',      # Set modification time on files to message date
!       'months=s',     # Month names
!       'monthsabr=s',  # Abbreviated month names
!       'msgexcfilter=s',
                        # Perl expression(s) for selective message exclusion
!       'msgpgs',       # Create message pages
!       'msgsep=s',     # Message separator for mailbox files
!       'msgprefix=s',  # Filename prefix for message files
!       'multipg',      # Generate multi-page indexes
!       'news',         # Add links to newsgroups
!       'noauthsort',   # Do not sort by author
!       'noarchive',    # Do not create an archive
!       'nochecknoarchive',
!                       # Do not check for 'no archive' flag in messages
!       'noconlen',     # Ignore Content-Length fields
!       'nodecodeheads',
                        # Do not decode 1522 encoded data in message headers
!       'nodoc',        # Do not print link to doc at end of index page
!       'nofolrefs',    # Do not print links to explicit follow-ups/references
!       'nogzipfiles',  # Do not Gzip files
!       'nogziplinks',  # Do not add '.gz' extensions to files
!       'nokeeponrmm',  # Delete message files on archive remove
!       'nolock',       # Do no archive locking
!       'nomailto',     # Do not add in mailto links for e-mail addresses
!       'nomain',       # Do not create a main index
!       'nomsgpgs',     # Do not create message pages
!       'nomodtime',    # Do no set modification time on files to message date
!       'nomultipg',    # Do not generate multi-page indexes
!       'nonews',       # Do not add links to newsgroups
!       'noposixstrftime',
                        # Use own implementation for time format process
!       'noreverse',    # List messages in normal order
!       'nosaveresources',
                        # Do not save resource values in db
!       'nosort',       # Do not sort
!       'nospammode',   # Do not run in (anti)spam mode
!       'nosubsort',    # Do not sort by subject
!       'nosubjectthreads',
                        # Do not do subject based threading
!       'nosubjecttxt=s',
                        # Text to use if message has no subject
!       'notedir',      # Location of notes
!       'notetext=s@',  # Text data of note
!       'nothread',     # Do not create threaded index
!       'notreverse',   # List oldest thread first
!       'notsubsort|tnosubsort',
                        # Do not list threads by subject
!       'notsort|tnosort',
                        # List threads by ordered processed
!       'nourl',        # Do not make URL hyperlinks
!       'otherindex|otherindexes=s@',
                        # List of other rcfiles for extra indexes
!       'outdir=s',     # Destination of HTML files
!       'pagenum=s',    # Page to output if -genidx
!       'perlinc=s@',   # List of paths to search for MIME filters
!       'posixstrftime',
                        # Use POSIX strftime()
!       'quiet',        # No status messages while running
!       'rcfile=s@',    # Resource file for mhonarc
!       'varregex=s',   # Regex matching resource variables
!       'reverse',      # List messages in reverse order
!       'rmm',          # Remove messages from an archive
!       'savemem',      # Write message data while processing
!       'saveresources',
                        # Save resource values in db
!       'scan',         # List out archive contents to terminal
!       'single',       # Convert a single message to HTML
!       'sort',         # Sort messages in increasing date order
!       'spammode',     # Run in (anti)spam mode
!       'stderr=s',     # Set file for stderr
!       'stdin=s',      # Set file for stdin
!       'stdout=s',     # Set file for stdout
!       'subjectarticlerxp=s',
                        # Regex for leading articles in subjects
!       'subjectreplyrxp=s',
                        # Regex for leading reply string in subjects
!       'subjectstripcode=s',
                        # Perl expression for modifying subjects
!       'subjectthreads',
                        # Check subjects for threads
!       'subsort',      # Sort message by subject
!       'tidxfname=s',  # File name of threaded index page
!       'tidxprefix=s', # Filename prefix for multi-page thread index
!       'time',         # Print processing time
!       'title=s',      # Title of index page
!       'ttitle=s',     # Title of threaded index page
!       'thread',       # Create threaded index
!       'tlevels=i',    # Maximum # of nested lists in threaded index
!       'treverse',     # Reverse order of thread listing
!       'tslice=s',     # Set size of thread slice listing
!       'tslicelevels=i',
                        # Maximum # of nested lists in thread slices
!       'tsort',        # List threads by date
!       'tsubsort',     # List threads by subject
!       'umask=i',      # Set umask of process
!       'url',          # Make URL hyperlinks
!       'weekdays=s',   # Weekday names
!       'weekdaysabr=s',
                        # Abbreviated weekday names
  
        ## API (only?) options
!       'noarg',        # Just load code
!       'readdb',       # Just read db
  
!       'v',            # Version information
!       'help'          # A brief usage message
      );
  
***************
*** 575,578 ****
--- 577,583 ----
      $POSIXstrftime  = 0  if $opt{'noposixstrftime'};
  
+     $AddrModifyBodies = 1  if $opt{'modifybodyaddresses'};
+     $AddrModifyBodies = 0  if $opt{'nomodifybodyaddresses'};
+ 
      $DecodeHeads = 1 if $opt{'decodeheads'};
      $DecodeHeads = 0 if $opt{'nodecodeheads'};
***************
*** 669,672 ****
--- 674,686 ----
      } else {
        $IsDefault{'TEXTCLIPFUNC'} = 0;
+     }
+ 
+     ## Check if rewriting addresses in bodies
+     if ($AddrModifyBodies) {
+       $readmail::TextPreFilter = sub {
+           my $fields = shift;
+           my $data_r = shift;
+           $$data_r =~ s/($AddrExp)/rewrite_body_address($1)/geo;
+       }
      }
  

Index: mhrcfile.pl
===================================================================
RCS file: /cvsroot/mhonarc/mhonarc/MHonArc/lib/mhrcfile.pl,v
retrieving revision 2.31
retrieving revision 2.32
diff -C2 -r2.31 -r2.32
*** mhrcfile.pl 31 Dec 2002 05:03:30 -0000      2.31
--- mhrcfile.pl 31 Dec 2002 20:01:37 -0000      2.32
***************
*** 517,520 ****
--- 517,523 ----
            last FMTSW;
        }
+       if ($elem eq 'modifybodyaddresses') {   # Modify addresses in bodies
+           $AddrModifyBodies = 1; last FMTSW;
+       }
        if ($elem eq 'months') {                # Full month names
            @a = &get_list_content($handle, $elem);
***************
*** 620,623 ****
--- 623,629 ----
        if ($elem eq 'nofolrefs') {             # Don't print explicit fol/refs
            $DoFolRefs = 0; last FMTSW;
+       }
+       if ($elem eq 'nomodifybodyaddresses') { # Don't modify addresses
+           $AddrModifyBodies = 0; last FMTSW;
        }
        if ($elem eq 'nogzipfiles') {           # Don't gzip files

Index: readmail.pl
===================================================================
RCS file: /cvsroot/mhonarc/mhonarc/MHonArc/lib/readmail.pl,v
retrieving revision 2.26
retrieving revision 2.27
diff -C2 -r2.26 -r2.27
*** readmail.pl 20 Dec 2002 08:01:11 -0000      2.26
--- readmail.pl 31 Dec 2002 20:01:37 -0000      2.27
***************
*** 227,230 ****
--- 227,234 ----
      unless defined($TextEncodingSrc);
  
+ ##  Prefilter function
+ $TextPreFilter  = undef
+     unless defined($TextPreFilter);
+ 
  ##---------------------------------------------------------------------------
  ##    Variables holding functions for generating processed output
***************
*** 534,537 ****
--- 538,544 ----
            $fields->{'x-mha-charset'} = $TextEncode
                if defined(&$textfunc($body, $charset, $TextEncode));
+       }
+       if (defined($TextPreFilter) && defined(&$TextPreFilter)) {
+           &$TextPreFilter($fields, $body);
        }
      }

---------------------------------------------------------------------
To sign-off this list, send email to [EMAIL PROTECTED] with the
message text UNSUBSCRIBE MHONARC-DEV

Reply via email to