--- gforth/ds2texi.fs 2000/09/23 15:46:52 1.24 +++ gforth/ds2texi.fs 2005/12/31 15:46:08 1.30 @@ -1,6 +1,6 @@ \ documentation source to texi format converter -\ Copyright (C) 1995,1996,1997,1998,1999 Free Software Foundation, Inc. +\ Copyright (C) 1995,1996,1997,1998,1999,2003,2005 Free Software Foundation, Inc. \ This file is part of Gforth. @@ -61,7 +61,7 @@ create description-buffer 4096 chars all description-buffer tuck - ; : skip-prefix ( c-addr1 u1 -- c-addr2 u2 ) - 2dup 2 min s" --" compare 0= + 2dup s" --" string-prefix? IF [char] - skip [char] - scan 1 /string THEN ; @@ -94,14 +94,14 @@ create description-buffer 4096 chars all : make-doc ( -- ) get-current documentation set-current create - last @ name>string skip-prefix 2, \ name + latest name>string skip-prefix 2, \ name [char] ) parse save-mem 2, \ stack-effect bl sword condition-wordset 2, \ wordset bl sword dup \ pronounciation if condition-pronounciation else - 2drop last @ name>string skip-prefix + 2drop latest name>string skip-prefix endif 2, get-description save-mem 2, @@ -165,9 +165,9 @@ create description-buffer 4096 chars all \ with the prefix addr2 u2 and continuing with a word in the \ wordlist `documentation'. f is true if xt is executed. >r dup >r - 3 pick over compare 0= + 3 pick over str= if \ addr2 u2 is a prefix of addr1 u1 - r> /string documentation search-wordlist + r> /string -trailing documentation search-wordlist if \ the rest of addr1 u1 is in documentation execute r> execute true else @@ -203,6 +203,7 @@ create docline doclinelength chars allot : compare-ci ( addr1 u1 addr2 u2 -- n ) \ case insensitive string compare + \ !! works correctly only for comparing for equality 2 pick swap - ?dup-0=-if capscomp