[Mew-dist 08780] [fj.editor.mule] Re: mail aliases file of IM

SAKAI Kiyotaka ksakai at example.com
1999年 5月 12日 (水) 13:26:11 JST


もう1点、この質問者の方は本当は

  alias: < filename

という形式の file の include をサポートして欲しいようなのですが、どう
しましょうか?

機能的には /etc/aliases に :include: と記述してファイルを include する
ようなものです。

ちなみに、

  1. < file
  2. alias: < file

のいずれも MH で使われていた形式で、1 の方は file 中に alias ファイル
と同じ形式で記述し、2 は file 中にはアドレスだけを列記します。Mew では
1 の対応はしていましたが、2の形式があることは知りませんでした。

とりあえず、IM の方は 2の形式をサポートするパッチを作りました。
-- 
酒井 清隆 (E-mail: ksakai at example.com)

-------------- next part --------------
添付メールを保管しました...
送信者: yamat at example.com (Takahiro Yamaguchi)
件名:   Re: mail aliases file of IM
日付:   11 May 1999 08:30:09 GMT
サイズ: 1668 バイト
URL:    <http://www.mew.org/pipermail/mew-dist/attachments/19990512/0aa5019d/attachment.mht>
-------------- next part --------------
Index: Alias.pm
===================================================================
RCS file: /home/ksakai/cvsroot/im-115/IM/Alias.pm,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Alias.pm
--- Alias.pm	1999/05/10 02:34:43	1.1.1.1
+++ Alias.pm	1999/05/12 02:38:00
@@ -67,6 +67,7 @@
 sub alias_read (;$) {
     my @aliases = split(',', shift || '~/.im/Aliases');
     my $ali;
+    local (*ALIAS, *INC);
 
     %MAIL_ALIASES = ();
     %MAIL_ALIAS_HASH = ();
@@ -91,7 +92,7 @@
 	    next if ($line =~ /^[\#;]/);
 	    next if ($line =~ /^\s*$/);
 	    chomp($line);
-	    if ($line =~ /^<\s*(\S+)$/) {
+	    if ($line =~ /^\s*<\s*(\S+)$/) {
 		push(@aliases, $1);
 		next;
 	    }
@@ -108,7 +109,18 @@
 	    }
 	    $line =~ s/^\s+//;
 	    my ($name, $val) = split('\s*[:=]\s*', $line, 2);
-	    $MAIL_ALIASES{$name} = $val if $val;
+	    if ($val =~ /^<\s*(.*)/) {
+		open(INC, "<$1") || next;
+		my ($addr, @addrs);
+		while (defined($addr = <INC>)) {
+		    chomp($addr);
+		    push(@addrs, $addr);
+		}
+		close(INC);
+		$MAIL_ALIASES{$name} = join(",", @addrs);
+	    } elsif ($val) {
+		$MAIL_ALIASES{$name} = $val;
+	    }
 	}
 	close(ALIAS);
     }


Mew-dist メーリングリストの案内