--- gforth/ds2texi.fs 1997/02/12 00:25:34 1.13 +++ gforth/ds2texi.fs 1998/12/08 22:02:39 1.20 @@ -1,6 +1,6 @@ \ documentation source to texi format converter -\ Copyright (C) 1995 Free Software Foundation, Inc. +\ Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc. \ This file is part of Gforth. @@ -27,22 +27,22 @@ script? [IF] warnings off + require search.fs require extend.fs - require search-order.fs require glocals.fs require float.fs require struct.fs - require debugging.fs + require debugs.fs [THEN] wordlist constant documentation struct - 2 cells: field doc-name - 2 cells: field doc-stack-effect - 2 cells: field doc-wordset - 2 cells: field doc-pronounciation - 2 cells: field doc-description + cell% 2* field doc-name + cell% 2* field doc-stack-effect + cell% 2* field doc-wordset + cell% 2* field doc-pronounciation + cell% 2* field doc-description end-struct doc-entry create description-buffer 4096 chars allot @@ -60,6 +60,12 @@ create description-buffer 4096 chars all repeat then description-buffer tuck - ; +: skip-prefix ( c-addr1 u1 -- c-addr2 u2 ) + 2dup 2 min s" --" compare 0= + IF + [char] - skip [char] - scan [char] - skip + THEN ; + : replace-_ ( c-addr u -- ) \ replaces _ with - chars bounds @@ -88,14 +94,14 @@ create description-buffer 4096 chars all : make-doc ( -- ) get-current documentation set-current create - last @ name>string 2, \ name + last @ name>string skip-prefix 2, \ name [char] ) parse save-mem 2, \ stack-effect - bl parse-word condition-wordset 2, \ wordset - bl parse-word dup \ pronounciation + bl sword condition-wordset 2, \ wordset + bl sword dup \ pronounciation if condition-pronounciation else - 2drop last @ name>string + 2drop last @ name>string skip-prefix endif 2, get-description save-mem 2, @@ -139,8 +145,9 @@ create description-buffer 4096 chars all r@ print-short r@ doc-description 2@ dup 0<> if - ." @iftex" cr ." @vskip-3ex" cr ." @end iftex" cr - type cr cr \ ." @ifinfo" cr ." @*" cr ." @end ifinfo" cr cr + \ ." @iftex" cr ." @vskip-0ex" cr ." @end iftex" cr + type cr cr + \ ." @ifinfo" cr ." @*" cr ." @end ifinfo" cr cr else 2drop cr endif