hlink.cgi
来自「w3m浏览器源代码」· CGI 代码 · 共 98 行
CGI
98 行
#!/usr/local/bin/perl$SCRIPT_NAME = $ENV{'SCRIPT_NAME'} || $0;$CGI = "file://$SCRIPT_NAME?";if ($ENV{'QUERY_STRING'}) { $file = $ENV{'QUERY_STRING'};} else { $file = $ARGV[0];}$file = &cleanup($file);if (-d $file) { print <<EOF;Location: file:$fileEOF exit;}if (! open(FILE, "< $file")) { $file = &html_quote($file); $_ = "$file: " . &html_quote($!); print <<EOF;Content-Type: text/html<head><title>$file</title></head><b>$_</b>EOF exit 1;}$file = &html_quote($file);($dir = $file) =~ s@[^/]*$@@;print <<EOF;Content-Type: text/html<head><title>$file</title></head><pre>EOFwhile (<FILE>) { $_ = &html_quote($_); s/^(\#\s*include\s+)(\".*\"|\<\;.*\>\;)/$1 . &header_ref($2)/ge; print;}close(FILE);print "</pre>\n";sub header_ref { local($_) = @_; local($d); if (s/^\"//) { s/\"$//; return ""<a href=\"$CGI$dir$_\">$_</a>""; } s/^\<\;//; s/\>\;$//; for $d ( "/usr/include", "/usr/local/include", "/usr/X11R6/include", "/usr/X11/include", "/usr/X/include", "/usr/include/X11" ) { -f "$d/$_" && return "<<a href=\"$CGI$d/$_\">$_</a>>"; } return $_;}sub html_quote { local($_) = @_; local(%QUOTE) = ( '<', '<', '>', '>', '&', '&', '"', '"', ); s/[<>&"]/$QUOTE{$&}/g; return $_;}sub cleanup { local($_) = @_; s@//+@/@g; s@/\./@/@g; while(m@/\.\./@) { s@^/(\.\./)+@/@; s@/[^/]+/\.\./@/@; } return $_;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?