From 92fc697f221b9332fdd791213442ce2241ff9be3 Mon Sep 17 00:00:00 2001 From: Fumitoshi UKAI Date: Fri, 31 Jan 2003 16:25:02 +0000 Subject: [w3m-dev 03721] PATH_INFO support of local CGI * local.c (CGIFN_DROOT): deleted (CGIFN_LIBDIR): added (CGIFN_MODE): deleted (CGIFN_CONTAIN_SLASH): deleted (check_local_cgi): rewrite (cgi_filename): rewrite (localcgi_post): support PATH_INFO * url.c (openURL): rewrite * Bonus/smb.cgi: use PATH_INFO From: Hironori SAKAMOTO --- Bonus/smb.cgi | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'Bonus/smb.cgi') diff --git a/Bonus/smb.cgi b/Bonus/smb.cgi index 32e6d86..536db89 100755 --- a/Bonus/smb.cgi +++ b/Bonus/smb.cgi @@ -3,9 +3,12 @@ # Workgroup list: file:/$LIB/smb.cgi # Server list: file:/$LIB/smb.cgi?workgroup # Sahre list: file:/$LIB/smb.cgi?//server +# file:/$LIB/smb.cgi/server # Directory: file:/$LIB/smb.cgi?//server/share # file:/$LIB/smb.cgi?//server/share/dir... +# file:/$LIB/smb.cgi/server/share # Get file: file:/$LIB/smb.cgi?//server/share/dir.../file +# file:/$LIB/smb.cgi/server/share/dir.../file # # ----- ~/.w3m/smb ----- # workgroup = @@ -64,9 +67,22 @@ $FILE = "F000"; $CGI = "file://" . &file_encode($ENV{"SCRIPT_NAME"} || $0); $QUERY = $ENV{"QUERY_STRING"}; +$PATH_INFO = $ENV{"PATH_INFO"}; -$_ = &file_decode($QUERY); -$DEBUG && print "DEBUG: QUERY_STRING=\"$_\"\n"; +if ($PATH_INFO =~ m@^/@) { + $_ = $PATH_INFO; + if (! m@^//@) { + $_ = "/$_"; + } + s@[\r\n\0\\"]@@g; + $DEBUG && print "DEBUG: PATH_INFO=\"$_\"\n"; + $Q = ""; +} +else { + $_ = &file_decode($QUERY); + $DEBUG && print "DEBUG: QUERY_STRING=\"$_\"\n"; + $Q = "?"; +} if (s@^//([^/]+)@@) { $server = $1; # if (!$USE_OPT_A && !defined($PASSWD)) { @@ -138,7 +154,7 @@ $DEBUG && print "DEBUG: $_"; $c = $&; s/^ //; $_ eq "." && next; - print "" . &html_quote($_) . "" . &html_quote($c) . "\n"; @@ -183,7 +199,7 @@ sub share_list { for (sort @share) { ($_, $d, @c) = split(" "); if ($d eq 'Disk') { - print "+ + " . &html_quote($_) . ""; } else { @@ -213,7 +229,7 @@ sub server_list { print "$group\n"; for (sort @server) { ($_, @c) = split(" "); - print "+ + " . &html_quote($_) . "" . &html_quote("@c") . "\n"; @@ -335,7 +351,7 @@ sub print_form { Content-Type: text/html

$q

-
+
Workgroup User Password
-- cgit v1.2.3