Implememnt standard word INCLUDED
[pforth] / fth / system.fth
index b74c812..c33f40b 100644 (file)
@@ -716,9 +716,9 @@ ustack 0stackp
 \ -------------- INCLUDE ------------------------------------------
 variable TRACE-INCLUDE
 
 \ -------------- INCLUDE ------------------------------------------
 variable TRACE-INCLUDE
 
-: INCLUDE.MARK.START  ( $filename -- , mark start of include for FILE?)
+: INCLUDE.MARK.START  ( c-addr u -- , mark start of include for FILE?)
     " ::::"  pad $MOVE
     " ::::"  pad $MOVE
-    count pad $APPEND
+    pad $APPEND
     pad ['] noop (:)
 ;
 
     pad ['] noop (:)
 ;
 
@@ -726,19 +726,18 @@ variable TRACE-INCLUDE
     " ;;;;" ['] noop (:)
 ;
 
     " ;;;;" ['] noop (:)
 ;
 
-: $INCLUDE ( $filename -- )
-\ Print messages.
+: INCLUDED ( c-addr u -- )
+       \ Print messages.
         trace-include @
         IF
         trace-include @
         IF
-                >newline ." Include " dup count type cr
+                >newline ." Include " 2dup type cr
         THEN
         here >r
         THEN
         here >r
-        dup
-        count r/o open-file
-        IF  ( -- $filename bad-fid )
-                drop ." Could not find file " $type cr abort
-        ELSE ( -- $filename good-fid )
-                swap include.mark.start
+        2dup r/o open-file
+        IF  ( -- c-addr u bad-fid )
+                drop ." Could not find file " type cr abort
+        ELSE ( -- c-addr u good-fid )
+               -rot include.mark.start
                 depth >r
                 include-file    \ will also close the file
                 depth 1+ r> -
                 depth >r
                 include-file    \ will also close the file
                 depth 1+ r> -
@@ -757,6 +756,8 @@ variable TRACE-INCLUDE
         rdrop
 ;
 
         rdrop
 ;
 
+: $INCLUDE ( $filename -- ) count included ;
+
 create INCLUDE-SAVE-NAME 128 allot
 : INCLUDE ( <fname> -- )
         BL lword
 create INCLUDE-SAVE-NAME 128 allot
 : INCLUDE ( <fname> -- )
         BL lword