Trent Piepho <tpiepho@xxxxxxxxxxxxx> writes: > See: http://www.washington.edu/pine/tech-notes/low-level.html > > Entries with a fcc or comment field after the address weren't parsed > correctly. > > Continuation lines, identified by leading spaces, were also not handled. > > Distribution lists which had ( ) around a list of addresses did not have > the parenthesis removed. > + pine => sub { my $fh = shift; my $f='\t[^\t]*'; > + for (my $x = ''; defined($x); $x = $_) { > + chomp $x; > + $x .= $1 while(defined($_ = <$fh>) && /^ +(.*)$/); > + $x =~ /^(\S+)$f\t\(?([^\t]+?)\)?(:?$f){0,2}$/ or next; Hmm, so you chomp each continuation line with /^ +(.*)$/ and concatenate that to the hold buffer ($x) as long as you see continuation lines, a non-continuation line that you read ahead is given to the next round (the third part of for(;;) control), checked if you hit an EOF and then chomped. Which means the complicated regexp about the parentheses is applied to a logical single line in $x that does not have any newline in it, right? I wonder what this does: $x .= $1 while (defined($_ = <$fh>) && /^ +(.*)$/); when you have "a b" in $x and feed " c\n d\ne\n" to it. When it leaves the loop, you would have "e\n" in $_ for the next round, and "a bcd" (note that "bcd" becomes one word) in $x, which I suspect may not be what you want. But I do not use Pine nor its aliases file. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html