| #! /usr/local/bin/gforth |
#! /usr/local/bin/gforth |
| |
|
| \ Copyright (C) 2000,2002,2003 Free Software Foundation, Inc. |
\ Copyright (C) 2000,2002,2003,2004 Free Software Foundation, Inc. |
| |
|
| \ This file is part of Gforth. |
\ This file is part of Gforth. |
| |
|
| require string.fs |
require string.fs |
| |
|
| Variable DocumentRoot s" /usr/local/httpd/htdocs/" DocumentRoot $! |
Variable DocumentRoot s" /usr/local/httpd/htdocs/" DocumentRoot $! |
| Variable UserDir s" .html-data/" UserDir $! |
Variable UserDir s" public_html/" UserDir $! |
| |
|
| Variable url |
Variable url |
| Variable posted |
Variable posted |
| |
|
| : ?cr ( -- ) |
: ?cr ( -- ) |
| #tib @ 1 >= IF source 1- + c@ #cr = #tib +! THEN ; |
#tib @ 1 >= IF source 1- + c@ #cr = #tib +! THEN ; |
| : refill-loop ( -- flag ) |
: refill-loop ( -- flag ) base @ >r base off |
| BEGIN refill ?cr WHILE ['] interpret catch drop >in @ 0= UNTIL |
BEGIN refill ?cr WHILE ['] interpret catch drop >in @ 0= UNTIL |
| true ELSE maxnum off false THEN ; |
true ELSE maxnum off false THEN r> base ! ; |
| : get-input ( -- flag ior ) |
: get-input ( -- flag ior ) |
| s" /nosuchfile" url $! s" HTTP/1.0" protocol $! |
s" /nosuchfile" url $! s" HTTP/1.0" protocol $! |
| s" close" connection $! |
s" close" connection $! |
| Variable htmldir |
Variable htmldir |
| |
|
| : rework-htmldir ( addr u -- addr' u' / ior ) |
: rework-htmldir ( addr u -- addr' u' / ior ) |
| htmldir $! htmldir $@ compact.. htmldir $!len drop |
htmldir $! htmldir $@ compact-filename htmldir $!len drop |
| htmldir $@ s" ../" string-prefix? |
htmldir $@ s" ../" string-prefix? |
| IF -1 EXIT THEN \ can't access below current directory |
IF -1 EXIT THEN \ can't access below current directory |
| htmldir $@ s" ~" string-prefix? |
htmldir $@ s" ~" string-prefix? |
| s" application/pgp-signature" transparent: sig |
s" application/pgp-signature" transparent: sig |
| s" application/x-bzip2" transparent: bz2 |
s" application/x-bzip2" transparent: bz2 |
| s" application/x-gzip" transparent: gz |
s" application/x-gzip" transparent: gz |
| s" /etc/mime.types" mime-read |
s" /etc/mime.types" ['] mime-read catch [IF] 2drop [THEN] |
| |
|
| definitions |
definitions |
| |
|