1 #!/home/ralph/src/devuan/rrqforth/rrqforth
5 : VARIABLE ( "word" -- ; create a variable )
6 INPUT @ READ-WORD CREATE DROP ;
8 : CONSTANT ( v "word" -- ; create a cell constant )
9 INPUT @ READ-WORD CREATE TFA>CFA
10 [ SYSTEM DEFINITIONS ] doVALUE [ FORTH DEFINITIONS ]
13 : Z, ( char n -- ; Put string on the heap with terminating NUL )
14 HERE @ SWAP DUP ALLOT STRNCPY 0 C, ;
16 VARIABLE SHELLZ " /bin/bash" Z,
18 VARIABLE ARGS SHELLZ , -c , 0 , 0 ,
19 VARIABLE ENV MAIN-ARGS DUP @ 8 * 8 + + ,
23 : $ ( "rest of line" -- ; pass rest of line to a sub shell )
24 [ SYSTEM DEFINITIONS ]
25 INPUT @ READ-STREAM-LINE DROP
28 DROP PAD ARGS 16 + ! SHELLZ ARGS ENV SYS_EXECVE 0 EXIT
30 P_PID SWAP PAD WEXITED SYS_WAITID
31 DUP IF S" **Wait error: " TELL . NL EMIT ELSE DROP THEN
36 STDIN INPUT ! BEGIN S" $ " TELL $ AGAIN ;
38 " Type your commands...." TELL NL EMIT