--- gforth/test/other.fs 2000/02/04 14:52:30 1.14 +++ gforth/test/other.fs 2002/09/15 20:30:02 1.19 @@ -1,6 +1,6 @@ \ various tests, especially for bugs that have been fixed -\ Copyright (C) 1997,1998 Free Software Foundation, Inc. +\ Copyright (C) 1997,1998,2000 Free Software Foundation, Inc. \ This file is part of Gforth. @@ -16,7 +16,7 @@ \ You should have received a copy of the GNU General Public License \ along with this program; if not, write to the Free Software -\ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +\ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. \ combination of marker and locals marker foo1 @@ -72,7 +72,7 @@ throw \ if the TOS is not 0, throw an er \ look for primitives -' + look 0= throw ( nt ) +' + xt>threaded look 0= throw ( nt ) s" +" find-name <> throw \ represent @@ -147,6 +147,33 @@ here 1+ head? throw : foo [compile] exit abort" '[compile] exit' broken" ; foo +\ restore-input + +: test-restore-input[ ( -- ) + refill 0= abort" refill failed" + bl word drop + save-input + refill 0= abort" refill failed" + -1 ; + +: ]test-restore-input ( -- ) + drop restore-input abort" restore-input failed" 0 ; + +\ First input is skipped until the "]test-restore-input", then it is +\ reset to just before "0 [if]" +test-restore-input[ abort \ these aborts are skipped +abort 0 [if] + s" oops" 2drop ]test-restore-input abort +[then] +( 0 ) throw + +\ the same test with CRLF newlines +test-restore-input[ abort \ these aborts are skipped +abort 0 [if] + s" oops" 2drop ]test-restore-input abort +[then] +( 0 ) throw + \ comments across several lines ( fjklfjlas;d