|
Wil Baden 1998-12-23
DOSFILE ( Line Filter )
MACFILE ( Line Filter )
UNIXFILE ( Line Filter )
Needs CLIPBOARD
Needs from Tool Belt #EOL-Character /SPLIT ANDIF NOT PLACE
TEXT Program Text 1
10 CONSTANT #LINEFEED-CHAR
: Set-Line-Terminator ( src . -- )
2DUP BEGIN DUP WHILE ( src . str len)
OVER C@ #EOL-CHAR = NOT
ANDIF OVER C@ #LINEFEED-CHAR = NOT THEN
WHILE 1 /STRING REPEAT THEN
/SPLIT TYPE ( src .)
DUP IF
PAD COUNT TYPE
OVER C@ #EOL-CHAR = IF
DUP 1 > ANDIF OVER 1+ C@ #LINEFEED-CHAR = THEN
IF 1 /STRING THEN
THEN
1 /STRING
THEN ;
: Create-Line-Terminator ( "name" -- )
CREATE
DOES>
COUNT PAD PLACE
CLIPBOARD BEGIN DUP WHILE Set-Line-Terminator REPEAT
2DROP ;
Create-Line-Terminator DOS-LINE-TERMINATOR
2 C, #EOL-CHAR C, #LINEFEED-CHAR C,
Create-Line-Terminator MAC-LINE-TERMINATOR
1 C, #EOL-CHAR C,
Create-Line-Terminator UNIX-LINE-TERMINATOR
1 C, #LINEFEED-CHAR C,
: DOSFILE 7 Backspaces DOS-LINE-TERMINATOR ;
: MACFILE 7 Backspaces MAC-LINE-TERMINATOR ;
: UNIXFILE 8 Backspaces UNIX-LINE-TERMINATOR ;