20
20
use warnings;
21
21
use Term::ReadLine;
22
22
use Getopt::Long;
23
+ use Text::ParseWords;
23
24
use Data::Dumper;
24
25
use Term::ANSIColor;
25
26
use Git;
@@ -363,6 +364,10 @@ sub read_config {
363
364
die " Comma in --bcclist entry: $entry '\n " unless $entry !~ m / ,/ ;
364
365
}
365
366
367
+ sub split_addrs {
368
+ return parse_line(' \s*,\s*' , 1, @_ );
369
+ }
370
+
366
371
my %aliases ;
367
372
my %parse_alias = (
368
373
# multiline formats can be supported in the future
@@ -371,7 +376,7 @@ sub read_config {
371
376
my ($alias , $addr ) = ($1 , $2 );
372
377
$addr =~ s / #.*$// ; # mutt allows # comments
373
378
# commas delimit multiple addresses
374
- $aliases {$alias } = [ split ( / \s *, \s * / , $addr ) ];
379
+ $aliases {$alias } = [ split_addrs( $addr ) ];
375
380
}}},
376
381
mailrc => sub { my $fh = shift ; while (<$fh >) {
377
382
if (/ ^alias\s +(\S +)\s +(.*)$ / ) {
@@ -380,7 +385,7 @@ sub read_config {
380
385
}}},
381
386
pine => sub { my $fh = shift ; while (<$fh >) {
382
387
if (/ ^(\S +)\t .*\t (.*)$ / ) {
383
- $aliases {$1 } = [ split ( / \s *, \s * / , $2 ) ];
388
+ $aliases {$1 } = [ split_addrs( $2 ) ];
384
389
}}},
385
390
gnus => sub { my $fh = shift ; while (<$fh >) {
386
391
if (/ \( define-mail-alias\s +"(\S +?)"\s +"(\S +?)"\) / ) {
@@ -458,7 +463,7 @@ sub read_config {
458
463
}
459
464
460
465
my $to = $_ ;
461
- push @to , split /,\ s */, $to ;
466
+ push @to , split_addrs( $to ) ;
462
467
$prompting ++;
463
468
}
464
469
0 commit comments