[Mew-dist 03459] Re: [im] imget by IMAP

Yuuichi Teranishi 寺西裕一 teranisi at example.com
1998年 1月 20日 (火) 16:00:02 JST


teranisi> これを直すパッチをお送りします。im-83 に対するパッチです。

ごめんなさい、これでは im-83 にあたりません。
違うパッチを送ってしまいました _O_。
正しいものを送り直します。

--
Yuuichi Teranishi (寺西裕一) <teranisi at example.com>
NTT Information and Communication Systems Laboratories
The movement you need is on your shoulder...
-------------- next part --------------
--- Imap.pm.in.org	Tue Jan 20 15:51:18 1998
+++ Imap.pm.in	Tue Jan 20 15:51:24 1998
@@ -624,8 +624,23 @@
 sub imap_spec ($) {
     my $spec = shift;
 
-    my ($folder, $auth, $host, $user) = ('INBOX', 'auth', '', '');
+    my ($folder, $auth, $host) = ('INBOX', 'auth', 'localhost');
+    my $user = $ENV{'USER'} || $ENV{'LOGNAME'} || im_getlogin();
+    my $account = imapaccount();
 
+    while ($account ne '') {
+        if ($account =~ /^([^\/\@]+)(.*)/) {
+	    $user = $1;
+	} elsif ($account =~ /^\/([^\/\@]+)(.*)/) {
+	    $auth = $1;
+	} elsif ($account =~ /^\@([^\@]+)(.*)/) {
+	    $host = $1;
+	} else {
+	    im_warn("invalid ImapAccount: $account\n");
+	    return ('', '', '', '');
+	}
+	$account = $2;
+    }
     while ($spec ne '') {
 	if ($spec =~ /^%([^%:\@]+)(.*)/) {	# XXX
 	    $folder = $1;
@@ -641,21 +656,6 @@
 	}
 	$spec = $2;
     }
-
-    if (($user eq '') || ($host eq '')) {
- 	my $s = imapaccount();
- 	if ($s =~ /(.+)\@(.+)/) {
- 	    $user = $1;
- 	    $host = $2;
- 	} elsif ($s =~ /\@(.+)/){
- 	    $user = $ENV{'USER'} || $ENV{'LOGNAME'} || im_getlogin();
- 	    $host = $1;
- 	} else {
- 	    $user = $s;
-	    $host = "localhost";
-	}
-    }    
-
     if ($auth =~ /^auth$/i) {
 	$auth = 'AUTH';
     } elsif ($auth =~ /^login$/i) {


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