[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 メーリングリストの案内