Well, everything was going swimmingly until I tried playing with
repeaters and things. I set up a simple procedure, read it in and
executed it, and got the following:
: define echo();
vars s, temp;
' '-> s;
''->str;
repeat forever
cucharin()->temp;
if temp = termin then return; endif;
temp->s(1);
str<>s->str;
s=>
endrepeat;
enddefine;
: : : : : : : : : : : : echo();
: test this
** t
** e
** s
** t
**
** t
** h
** i
** s
**
: ;;; ctrl-D typed
:
:
: str=>
** eest this
^ Eh? the first character is always replaced by the second!
If I don't start with a null string, things seem to behave, and if I
create a null string and then append to it with keyboard commands things
also seem to work, but I can't find any way to avoid the doubling with
the above procedure. Am I wrong somewhere or is the system?
[Sorry about the layout, but I wasn't being fussy. And I originally
had lvars, but switched to vars with no effect.]
Also I feel there must be a simpler way of appending characters to
a string, but I can't find one...
Cheers,
-- Pete --
:
|