[Mew-dist 07370] Re: pop account with colon

Motonori Nakamura motonori at example.com
1999年 2月 10日 (水) 08:47:39 JST


>>>>> On Tue, 9 Feb 1999 23:39:41 +0900, Shuichi Kitaguchi <shuuic-k at example.com> said:

kaoru> movemail.exe + mew-win32-mvm.el でうまくいく*かも*しれません。
kaoru> # movemail のソースが手元にないので、po:lamail:hoge で期待通りの
kaoru> # 動作をするかどうかがわかりません。 ^^;

shuuic-k> なるほど、と思って movemail のソースを覗いてみると、
shuuic-k> "po:" + "USERNAME" と切り分けているので大丈夫そうです。

なるほど。そうすると、省略可能なパラメータの出現順序を

pop[/auth][:user][@server[/port]]

に固定してしまえば、なんとかなりそうですね。
今までは順不同だったので、使える文字に制限がありました。

user に @ が含まれることも考慮して、最も後ろに出現する @ 以下を
サーバの指定だと思うようにしました。こんなパッチでいかがでしょうか。

# 問題は IMAP のフォルダ指定だなぁ。

diff -cr im-105-/IM/Pop.pm im-105/IM/Pop.pm
*** im-105-/IM/Pop.pm	Mon Feb  8 15:20:09 1999
--- im-105/IM/Pop.pm	Wed Feb 10 08:43:06 1999
***************
*** 549,555 ****
      return $msgs;
  }
  
! # POP folder (--src=pop[:user][/auth][@server[/port]])
  sub pop_spec ($) {
      my $spec = shift;
  
--- 549,555 ----
      return $msgs;
  }
  
! # POP folder (--src=pop[/auth][:user][@server[/port]])
  sub pop_spec ($) {
      my $spec = shift;
  
***************
*** 567,584 ****
      my ($auth, $host) = ('apop', 'localhost');
      my $user = $ENV{'USER'} || $ENV{'LOGNAME'} || im_getlogin();
  
!     while ($spec ne '') {
! 	if ($spec =~ /^:([^:\/\@]+)(.*)/) {
! 	    $user = $1;
! 	} elsif ($spec =~ /^\/([^:\/\@]+)(.*)/) {
! 	    $auth = $1;
! 	} elsif ($spec =~ /^\@([^\@]+)(.*)/) {
! 	    $host = $1;
! 	} else {
! 	    im_warn("invalid pop spec: $spec\n");
! 	    return ('', '', '');
! 	}
  	$spec = $2;
      }
  
      if ($auth =~ /^pop$/i) {
--- 567,587 ----
      my ($auth, $host) = ('apop', 'localhost');
      my $user = $ENV{'USER'} || $ENV{'LOGNAME'} || im_getlogin();
  
!     if ($spec =~ /(.*)\@(.*)/) {
! 	$host = $2;
! 	$spec = $1;
!     }
!     if ($spec =~ /^\/(\w+)(.*)/) {
! 	$auth = $1;
  	$spec = $2;
+     }
+     if ($spec =~ /^:(.*)/) {
+ 	$user = $1;
+ 	$spec = '';
+     }
+     if ($spec ne '') {
+ 	im_warn("invalid pop spec: $spec\n");
+ 	return ('', '', '');
      }
  
      if ($auth =~ /^pop$/i) {
diff -cr im-105-/dot.im/Config im-105/dot.im/Config
*** im-105-/dot.im/Config	Fri Aug 14 15:37:10 1998
--- im-105/dot.im/Config	Wed Feb 10 08:26:10 1999
***************
*** 104,119 ****
  #UseCL=no			# Use value of Content-Length header
  #NoSync=no			# Do not need fsync(2) on writing file
  
  #PopAccount=/APOP at example.com	# account info for POP access
! #PopAccount=user/APOP at example.com	# account info with user name
! #PopAccount=user/APOP at example.com/110	# account info with user name and port number
  #Keep=7		 		# preserve read messages on server
  #ProtoKeep=UIDL			# how to know which message is unread
  				# (UIDL, LAST, STATUS, MSGID)
  #IgnorePostPet=yes		# leave messages for PostPet on mbox (POP only)
  
  #ImapAccount=/AUTH at example.com	# account info for IMAP access
! #ImapAccount=user/AUTH at example.com	# account info with user name
  #HttpProxy=proxy-server:8080	# proxy server for HTTP access
  #NoProxy=http://.*my.domain/	# URL regex not to use Proxy server
  #UsePwAgent=yes			# use password agent
--- 104,121 ----
  #UseCL=no			# Use value of Content-Length header
  #NoSync=no			# Do not need fsync(2) on writing file
  
+ #Imget.Src=pop
  #PopAccount=/APOP at example.com	# account info for POP access
! #PopAccount=/APOP:user at example.com	# account info with user name
! #PopAccount=/APOP:user at example.com/110	# account info with user name and port number
  #Keep=7		 		# preserve read messages on server
  #ProtoKeep=UIDL			# how to know which message is unread
  				# (UIDL, LAST, STATUS, MSGID)
  #IgnorePostPet=yes		# leave messages for PostPet on mbox (POP only)
  
+ #Imget.Src=imap
  #ImapAccount=/AUTH at example.com	# account info for IMAP access
! #ImapAccount=/AUTH:user at example.com	# account info with user name
  #HttpProxy=proxy-server:8080	# proxy server for HTTP access
  #NoProxy=http://.*my.domain/	# URL regex not to use Proxy server
  #UsePwAgent=yes			# use password agent
diff -cr im-105-/man/imget.jis im-105/man/imget.jis
*** im-105-/man/imget.jis	Mon Oct 19 21:42:47 1998
--- im-105/man/imget.jis	Wed Feb 10 08:23:51 1999
***************
*** 80,86 ****
  				これらは自動判別される。
  			pop	POP を用いて get する。
  				<string> への指定の形式は、
! 					pop[/auth][:user][@host/[port]]
  				[] は、その中の記述が省略できることを示す。
  				auth には、POP, APOP, RPOP のうちのいずれかを
  				指定する。デフォルトは APOP。
--- 80,86 ----
  				これらは自動判別される。
  			pop	POP を用いて get する。
  				<string> への指定の形式は、
! 					pop[/auth][:user][@host[/port]]
  				[] は、その中の記述が省略できることを示す。
  				auth には、POP, APOP, RPOP のうちのいずれかを
  				指定する。デフォルトは APOP。

- motonori



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