[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Solaris + XEmacs
の問題解決方法
From: Hideyuki SHIRAI (白井秀行) <shirai@rdmg.mgcs.mei.co.jp> 曰く
Subject: [emacs-w3m:02077] Solaris + XEmacs の問題解決方法
Message-ID: <20011106.191854.68564037.shirai@rdmg.mgcs.mei.co.jp>
Date: Tue, 06 Nov 2001 19:18:54 +0900 (JST)
白井> Solaris + XEmacs で process-connection-type が t だと w3m の終了
白井> が検知できないし、process-connection-type が nil だと passwd の
白井> 検出/入力が出来ないし、という問題の話です。
なんだか(Emacs の立場からは)付属のパッチでいいような気がしてきま
した。オプション増やすと、それがある w3m とそれがない w3m とか判
定するのがめんどうだし。
# Meadow からだと、isatty(0) => nil になるのね。
無理やり理由づけすると、
#!/bin/sh
w3m -dump_source http://認証の必要なところ <<EOF
user
passwd
EOF
もできるし。wget の --http-user|passwd といい勝負かな。
## けど、XEmacs 付属の read-passwd() って変。
## ぼくは XEmacs 用になぜだか read-passwd() を .emacs で定義して
## いた。いつのことか、なんでだかはすっかり不明。
--
白井秀行 (mailto:shirai@rdmg.mgcs.mei.co.jp)
diff -cr w3m-0.2.1-inu-1.5.orig/configure w3m-0.2.1-inu-1.5/configure
*** w3m-0.2.1-inu-1.5.orig/configure Fri Sep 28 22:17:38 2001
--- w3m-0.2.1-inu-1.5/configure Tue Nov 6 14:14:01 2001
***************
*** 1316,1321 ****
--- 1316,1338 ----
srandom_flg="#undef HAVE_SRANDOM"
fi
+ ####### getpassphrase
+ cat > _zmachdep.c << EOF
+ #include <unistd.h>
+ main()
+ {
+ getpassphrase("");
+ }
+ EOF
+ if $cc $cflags -o _zmachdep _zmachdep.c > /dev/null 2>&1
+ then
+ echo "You have getpassphrase()."
+ getpassphrase_flg="#define HAVE_GETPASSPHRASE"
+ else
+ echo "You don't have getpassphrase()."
+ getpassphrase_flg="#undef HAVE_GETPASSPHRASE"
+ fi
+
####### fclose
cat > _zmachdep.c << EOF
#include <stdio.h>
***************
*** 1840,1846 ****
$putenv_flg
$srand48_flg
$srandom_flg
! $readlink_flg
$fclose_dcl
$pclose_dcl
$setjmp_def
--- 1857,1863 ----
$putenv_flg
$srand48_flg
$srandom_flg
! $getpassphrase_flg
$fclose_dcl
$pclose_dcl
$setjmp_def
diff -cr w3m-0.2.1-inu-1.5.orig/file.c w3m-0.2.1-inu-1.5/file.c
*** w3m-0.2.1-inu-1.5.orig/file.c Wed Oct 31 20:41:11 2001
--- w3m-0.2.1-inu-1.5/file.c Wed Nov 7 10:50:23 2001
***************
*** 861,867 ****
fflush(stdout);
uname = Strfgets(stdin);
Strchop(uname);
! pwd = Strnew_charp((char *) getpass(proxy ? "Proxy Password: " : "Password: "));
}
Strcat_char(uname, ':');
Strcat(uname, pwd);
--- 861,879 ----
fflush(stdout);
uname = Strfgets(stdin);
Strchop(uname);
! printf(proxy ? "Proxy Password: " : "Password: ");
! fflush(stdout);
! if (!isatty(0)) {
! pwd = Strfgets(stdin);
! Strchop(pwd);
! }
! else {
! #ifdef HAVE_GETPASSPHRASE
! pwd = Strnew_charp((char *) getpassphrase(""));
! #else
! pwd = Strnew_charp((char *) getpass(""));
! #endif
! }
}
Strcat_char(uname, ':');
Strcat(uname, pwd);
--- w3m.el.orig Wed Nov 7 11:25:01 2001
+++ w3m.el Wed Nov 7 10:20:29 2001
@@ -2356,7 +2356,7 @@
(goto-char (point-min))
(cond
((and (looking-at
- "\\(\nWrong username or password\n\\)?Proxy Username for \\(.*\\): Proxy Password: ")
+ "\\(\n?Wrong username or password\n\\)?Proxy Username for \\(.*\\): Proxy Password: ")
(= (match-end 0) (point-max)))
(unless w3m-proxy-passwd
(setq w3m-proxy-passwd
@@ -2368,7 +2368,7 @@
(delete-region (point-min) (point-max)))
(error nil)))
((and (looking-at
- "\\(\nWrong username or password\n\\)?Proxy Username for \\(.*\\): ")
+ "\\(\n?Wrong username or password\n\\)?Proxy Username for \\(.*\\): ")
(= (match-end 0) (point-max)))
(unless w3m-proxy-user
(setq w3m-proxy-user
@@ -2380,7 +2380,7 @@
(concat w3m-proxy-user "\n"))
(error nil)))
((and (looking-at
- "\\(\nWrong username or password\n\\)?Username for \\(.*\\)\n?: Password: ")
+ "\\(\n?Wrong username or password\n\\)?Username for \\(.*\\)\n?: Password: ")
(= (match-end 0) (point-max)))
(setq w3m-process-realm (match-string 2))
(setq w3m-process-passwd
@@ -2395,7 +2395,7 @@
(delete-region (point-min) (point-max)))
(error nil)))
((and (looking-at
- "\\(\nWrong username or password\n\\)?Username for \\(.*\\)\n?: ")
+ "\\(\n?Wrong username or password\n\\)?Username for \\(.*\\)\n?: ")
(= (match-end 0) (point-max)))
(setq w3m-process-realm (match-string 2))
(setq w3m-process-user