mirror of
https://github.com/urlysses/1991.git
synced 2024-11-26 11:38:05 +11:00
nip is the optimized version of 'swap drop'. Nice.
This commit is contained in:
parent
7ff8c9942e
commit
dfb84bb22d
18
1991.fs
18
1991.fs
@ -111,11 +111,11 @@ pubvar reqroute
|
|||||||
2dup 2>r
|
2dup 2>r
|
||||||
2r@
|
2r@
|
||||||
2dup s" <" search drop \ Get position of "<",
|
2dup s" <" search drop \ Get position of "<",
|
||||||
swap drop -
|
nip -
|
||||||
swap drop
|
nip
|
||||||
get-requested-route rot /string \ crop until there in the requested route,
|
get-requested-route rot /string \ crop until there in the requested route,
|
||||||
2dup s" /" search if \ search for the next / or end of route,
|
2dup s" /" search if \ search for the next / or end of route,
|
||||||
swap drop -
|
nip -
|
||||||
else
|
else
|
||||||
2drop
|
2drop
|
||||||
then
|
then
|
||||||
@ -124,11 +124,11 @@ pubvar reqroute
|
|||||||
\ )
|
\ )
|
||||||
2r@
|
2r@
|
||||||
2dup s" <" search drop \ and replace <...> with the requested route word
|
2dup s" <" search drop \ and replace <...> with the requested route word
|
||||||
swap drop
|
nip
|
||||||
\ (
|
\ (
|
||||||
over over - 1+ 2r@ rot /string \ (Store the beginnings of user's <"match"> word.)
|
over over - 1+ 2r@ rot /string \ (Store the beginnings of user's <"match"> word.)
|
||||||
2dup s" >" search drop \ (Retrieve full <"match"> user word,)
|
2dup s" >" search drop \ (Retrieve full <"match"> user word,)
|
||||||
swap drop - s" =" s+
|
nip - s" =" s+
|
||||||
2r> 2r> 2swap 2>r
|
2r> 2r> 2swap 2>r
|
||||||
s+ \ (and associate it with the request value,)
|
s+ \ (and associate it with the request value,)
|
||||||
add-to-tmp-query-string \ (before saving it to the tmp query string.)
|
add-to-tmp-query-string \ (before saving it to the tmp query string.)
|
||||||
@ -214,7 +214,7 @@ pubvar viewoutput
|
|||||||
r> r> swap \ Then reinstate the match "<$...".
|
r> r> swap \ Then reinstate the match "<$...".
|
||||||
2dup s" $>" search if \ Check to see if there's a closing tag $>.
|
2dup s" $>" search if \ Check to see if there's a closing tag $>.
|
||||||
2 - \ Add the close tag to the search result.
|
2 - \ Add the close tag to the search result.
|
||||||
swap drop \ save the end position of $>.
|
nip \ Save the end position of $>.
|
||||||
dup >r
|
dup >r
|
||||||
- \ Reduce the string to <$ ... $>.
|
- \ Reduce the string to <$ ... $>.
|
||||||
evaluate \ Run user's code (maybe a bad idea?).
|
evaluate \ Run user's code (maybe a bad idea?).
|
||||||
@ -326,7 +326,7 @@ s" image/x-icon" filetype: ico
|
|||||||
: store-query-string ( addr u -- raddr ru )
|
: store-query-string ( addr u -- raddr ru )
|
||||||
2dup s" ?" search if
|
2dup s" ?" search if
|
||||||
2dup 1 /string set-query-string \ Store query string (without leading "?").
|
2dup 1 /string set-query-string \ Store query string (without leading "?").
|
||||||
swap drop -
|
nip -
|
||||||
else
|
else
|
||||||
s" " set-query-string \ Store empty query string (reset).
|
s" " set-query-string \ Store empty query string (reset).
|
||||||
2drop
|
2drop
|
||||||
@ -334,14 +334,14 @@ s" image/x-icon" filetype: ico
|
|||||||
|
|
||||||
: requested-route ( addr u -- raddr ru )
|
: requested-route ( addr u -- raddr ru )
|
||||||
bl scan 1- swap 1+ swap
|
bl scan 1- swap 1+ swap
|
||||||
2dup bl scan swap drop - \ get the space-separated route
|
2dup bl scan nip - \ get the space-separated route
|
||||||
store-query-string ; \ strip and store the query, leave route
|
store-query-string ; \ strip and store the query, leave route
|
||||||
|
|
||||||
: .extension ( addr u -- addr u )
|
: .extension ( addr u -- addr u )
|
||||||
2dup reverse \ reverse the file name
|
2dup reverse \ reverse the file name
|
||||||
2dup s" ." search \ search for the first occurance of "."
|
2dup s" ." search \ search for the first occurance of "."
|
||||||
if
|
if
|
||||||
swap drop - \ remove the "." from the search results
|
nip - \ remove the "." from the search results
|
||||||
else
|
else
|
||||||
s" txt"
|
s" txt"
|
||||||
then
|
then
|
||||||
|
Loading…
Reference in New Issue
Block a user