[Mew-dist 09253] Re: alias expansion
SAKAI Kiyotaka
ksakai at example.com
1999年 6月 8日 (火) 17:29:39 JST
>> In article <19990604212433D.plus at example.com>, Wataru Tachibana <plus at example.com> writes:
> aliasのファイルを ~/.im/Addrbook に変更したのですが、
> 送信時にaliasの展開を行なわなくなりました。
> ~/.im/Addrbookにはこのように展開規則を書いてあります。
> hoge: hoge at example.com
> To: フィールドで hoge`TAB' を行なうと hoge at example.com に展開されます。
> しかし To: hoge のまま送信を行なうと、
> To: hoge at example.com で送信されてしまいます。
IM が AddrBook によるアドレス展開をサポートしていなかったためですね。
このパッチで動作するようになるかと思います。
--
酒井 清隆 (E-mail: ksakai at example.com)
-------------- next part --------------
Index: imali.in
===================================================================
RCS file: /home/ksakai/cvsroot/im-116/imali.in,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 imali.in
--- imali.in 1999/06/08 06:59:37 1.1.1.1
+++ imali.in 1999/06/08 08:13:05
@@ -67,7 +67,14 @@
my @targets = @ARGV;
if (! $opt_host) {
- alias_read(($opt_file && expand_path($opt_file)) || aliases_file());
+ my @aliases;
+
+ @aliases = (expand_path($opt_file)) if ($opt_file);
+ if (scalar(@aliases) == 0) {
+ push(@aliases, aliases_file());
+ push(@aliases, addrbook_file());
+ }
+ alias_read(@aliases);
if (scalar(@targets) == 0) {
alias_print();
} else {
Index: imput.in
===================================================================
RCS file: /home/ksakai/cvsroot/im-116/imput.in,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 imput.in
--- imput.in 1999/06/08 06:59:37 1.1.1.1
+++ imput.in 1999/06/08 08:16:47
@@ -187,6 +187,8 @@
=> 'Generate date field in GMT for posting news.',
'UseLines;b;1;UseLines'
=> 'Generate Lines header line.',
+ 'AddrBookFile;s;;Mail_addrbook' # XXX
+ => 'List of files for mail address aliasing.',
'AliasesFile;s;;Mail_aliases' # XXX
=> 'List of files for mail address aliasing.',
'HostAliases;s;;Host_aliases' # XXX
@@ -324,7 +326,7 @@
exit $EXIT_SUCCESS;
}
- alias_read($Mail_aliases);
+ alias_read(($Mail_aliases, $Mail_addrbook));
hosts_read($Host_aliases);
if ($Draft_message eq '' && $#arg_rest == 0 && $arg_rest[0] !~ /\@/ &&
@@ -398,7 +400,7 @@
$error = 1 if (set_selector($selector) < 0);
}
&kill_header(\@Header, 'Config', 0);
- alias_read($Mail_aliases);
+ alias_read(($Mail_aliases, $Mail_addrbook));
hosts_read($Host_aliases);
}
Index: IM/Alias.pm
===================================================================
RCS file: /home/ksakai/cvsroot/im-116/IM/Alias.pm,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Alias.pm
--- Alias.pm 1999/06/08 06:59:38 1.1.1.1
+++ Alias.pm 1999/06/08 08:25:51
@@ -64,10 +64,13 @@
#
# return value: none
#
-sub alias_read (;$) {
- my @aliases = split(',', shift || '~/.im/Aliases');
+sub alias_read (@) {
+ my @aliases = @_;
my $ali;
+ if (scalar(@aliases) == 0) {
+ @aliases = ('~/.im/Aliases');
+ }
%MAIL_ALIASES = ();
%MAIL_ALIAS_HASH = ();
foreach $ali (@aliases) {
@@ -88,9 +91,10 @@
my $line;
while (defined($line = <ALIAS>)) {
- next if ($line =~ /^[\#;]/);
+ next if ($line =~ /^;/);
next if ($line =~ /^\s*$/);
chomp($line);
+ $line =~ s/\#.*//;
if ($line =~ /^<\s*(\S+)$/) {
push(@aliases, $1);
next;
@@ -108,7 +112,7 @@
}
$line =~ s/^\s+//;
my ($name, $val) = split('\s*[:=]\s*', $line, 2);
- $MAIL_ALIASES{$name} = $val if $val;
+ $MAIL_ALIASES{$name} = $val if ($val && $name !~ /\s/);
}
close(ALIAS);
}
Mew-dist メーリングリストの案内