--- gforth/wf.fs 2006/03/19 23:24:57 1.44 +++ gforth/wf.fs 2007/12/31 17:34:58 1.52 @@ -1,6 +1,6 @@ \ wiki forth -\ Copyright (C) 2003,2004,2005 Free Software Foundation, Inc. +\ Copyright (C) 2003,2004,2005,2006,2007 Free Software Foundation, Inc. \ This file is part of Gforth. @@ -43,7 +43,7 @@ require string.fs case '& of ." &" endof '< of ." <" endof -\ '¤ of ." €" endof +\ &164 of ." €" endof dup emit endcase LOOP ; @@ -68,7 +68,11 @@ s" " default-class $! : tagged ( addr1 u1 addr2 u2 -- ) 2dup 2>r tag .type 2r> /tag ; : opt ( addr u opt u -- ) s" " tag-option $+! - tag-option $+! s' ="' tag-option $+! tag-option $+! + tag-option $+! s' ="' tag-option $+! +\ BEGIN dup WHILE '& $split >r >r tag-option $+! r> r> +\ dup IF s" %26" tag-option $+! THEN +\ REPEAT 2drop + tag-option $+! s' "' tag-option $+! ; : n>string ( n -- addr u ) 0 <# #S #> ; : xy>string ( x y -- ) swap 0 <# #S 'x hold 2drop 0 #S 's hold #> ; @@ -350,7 +354,7 @@ Variable expand-postfix \ line handling -: char? ( -- c ) >in @ char swap >in ! ; +: char? ( -- c ) >in @ char swap >in ! $FF umin ; : parse-tag ( addr u char -- ) >r r@ parse .type @@ -452,9 +456,10 @@ Create nav-buf 0 c, bounds ?DO I c@ dup 'A 'Z 1+ within IF bl + nav+ ELSE dup 'a 'z 1+ within IF nav+ - ELSE dup '0 '9 1+ within IF nav+ - ELSE dup bl = swap '- = or IF '- nav+ - THEN THEN THEN THEN + ELSE dup '0 '9 1+ within IF nav+ + ELSE dup bl = over '- = or IF '- nav+ + ELSE nav+ + THEN THEN THEN THEN LOOP ; : >nav ( addr u -- addr' u' ) nav-name $! create-navs @ 0= @@ -515,7 +520,7 @@ true Value toc-image 3 OF s" down" class= ENDOF ENDCASE THEN - s" a" tag parse-string s" a" /tag + s" a" tag parse-string s" a" /tag ." " THEN rdrop 1 toc-index +! toc-index @ /toc-line mod 0= @@ -682,7 +687,8 @@ Variable _favicon s" text/css" s" type" opt s" link" tag/ cr THEN THEN ; : .title ( addr u -- ) 1 envs ! oldenv off - .' ' cr + _charset $@ s" utf-8" str= 0= + IF .' ' cr THEN .' ' cr