diff options
Diffstat (limited to 'scripts/multipart/multipart.cgi.in')
-rw-r--r-- | scripts/multipart/multipart.cgi.in | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/scripts/multipart/multipart.cgi.in b/scripts/multipart/multipart.cgi.in index 1dd981a..db8001c 100644 --- a/scripts/multipart/multipart.cgi.in +++ b/scripts/multipart/multipart.cgi.in @@ -77,7 +77,11 @@ if (defined($v{'count'})) { $_ = &decode($_, $MIME_DECODE); } if (s/^(\S+)\s*:\s*//) { - $hbody .= "$&$_\n"; + $h = $&; + if ($h =~ /^w3m-control/i) { + $h = "WARNING: $h"; + } + $hbody .= "$h$_\n"; $p = $1; $p =~ tr/A-Z/a-z/; $header{$p} = $_; @@ -192,9 +196,16 @@ while(! $end) { } else { $name = "Content"; } - print "<form action=\"$qcgi?file=$qfile&boundary=$qboundary&count=$count\">\n"; + print "<form action=\"$qcgi\">\n"; + print "<input type=hidden name=file value=\"$qfile\">\n"; + print "<input type=hidden name=boundary value=\"$qboundary\">\n"; + print "<input type=hidden name=count value=\"$count\">\n"; if ($image) { - print "<input type=image name=submit src=\"$qcgi?file=$qfile&boundary=$qboundary&count=$count\" alt=\"", + print "<input type=image name=submit src=\"$qcgi?file=", + &html_quote(&form_encode($file)), + "&boundary=", + &html_quote(&form_encode($boundary)), + "&count=$count\" alt=\"", &html_quote($name), "\">\n"; } else { print "<input type=submit name=submit value=\"", @@ -268,6 +279,12 @@ sub form_decode { return $_; } +sub form_encode { + local($_) = @_; + s/[\000-\040\+:#?&%<>"\177-\377]/sprintf('%%%02X', unpack('C', $&))/eg; + return $_; +} + sub guess_type { local($_) = @_; |