Hi Gopi,
> But, normally PRINT replaces the CCTL byte (1st byte) in the CCTL
> file with a space. Should this still be done when RAW is specified?
Good question!
I'd suggest that a family of options exist for controlling the action
of PRINT:
numbered / unn
printable-only / all-characters
interpret-CCTL / suppress-cctl (not quite the same as "space!")
...and maybe more
and
PAGE= (stop every n lines (or don't ever stop))
END=
START=
...
The first class of options fall into the class that RAW should override.
I think that RAW should mean:
(start where START= says)
loop, optionally paginating:
FREAD the data
FWRITE the data, complete and intact, for the same length you got
back from the FREAD
stop when appropriate.
So, if a file with CCTL is PRINTed with ;RAW, I'd expect the carriage
control character to be printed as part of the data, since it is read as
part of the data.
Another, separate, question to ask is:
What happens if NUM/UNN, FMT, CCTL/NOCCTL, or some other option normally
suppressed by ;RAW, is specified on the line *AFTER* the keyword RAW?
1) error
2) warning, ignore the extra option
3) follow the option as specified ... which would mean that most options
are internally kept in 3-state logic. Take NUM/UNN for example:
is NUM requested?
is UNN requested?
is RAW requested?
Thus, if you say: PRINT ....; RAW; NUM
that would mark all formatting options as "RAW requested" except for
the NUM option.
I'd vote for (3), then (1), then (2). Why? Because if you implement (2)
and then change your mind and switch to (3), working PRINT commands that
were getting warnings won't work the same. But, if (1) is implemented, and
then (2) *or* (3) is implemented, working PRINT commands will continue
to work the same.
--
Stan Sieler [log in to unmask]
http://www.allegro.com/sieler.html
|