--- gforth/extend.fs 2007/12/31 18:40:24 1.62 +++ gforth/extend.fs 2009/12/31 15:32:35 1.65 @@ -1,6 +1,6 @@ \ EXTEND.FS CORE-EXT Word not fully tested! 12may93jaw -\ Copyright (C) 1995,1998,2000,2003,2005,2007 Free Software Foundation, Inc. +\ Copyright (C) 1995,1998,2000,2003,2005,2007,2009 Free Software Foundation, Inc. \ This file is part of Gforth. @@ -50,7 +50,7 @@ decimal >r s>d >r abs -rot s>d r> xor r> swap >r >r dabs rot tuck um* 2swap um* swap >r 0 d+ r> -rot r@ um/mod -rot r> um/mod - [ s" floored" environment? 0= throw ] [if] + [ 1 -3 mod 0< ] [if] -rot r> IF IF 1. d+ THEN dnegate ELSE drop THEN [else] nip swap r> IF dnegate THEN @@ -213,15 +213,7 @@ variable span ( -- c-addr ) \ core-ext-o \ defined afterwards) when executing the mark. : included-files-mark ( -- u ) - included-files 2@ nip - blk @ 0= - if \ not input from blocks - source-id 1 -1 within - if \ input from file - 1- \ do not include the last file (hopefully this is the - \ currently included file) - then - then ; + included-files @ ; \ hmm, most of the saving appears to be pretty unnecessary: we could \ derive the wordlists and the words that have to be kept from the @@ -247,7 +239,7 @@ variable span ( -- c-addr ) \ core-ext-o : marker! ( mark -- ) \ reset included files count; resize will happen on next add-included-file - included-files 2@ drop over @ included-files 2! cell+ + included-files @ over @ min included-files ! cell+ \ rest of marker! dup @ swap cell+ ( here rest-of-marker ) dup @ voclink ! cell+