commit f9aa0d9ff13f61f855f8e129fca9427963592334
parent 3fb6fa5f811720b7b389cb74d36a6ded44421950
Author: Alexander Burger <abu@software-lab.de>
Date: Sun, 11 Nov 2012 08:20:35 +0100
Changed semantics of token 'read'
Diffstat:
9 files changed, 141 insertions(+), 132 deletions(-)
diff --git a/CHANGES b/CHANGES
@@ -1,4 +1,5 @@
* DDmmm12 picoLisp-3.1.1
+ Changed semantics of token 'read'
-server function
64-bit emulator
'*CPU' global variable (64-bit)
diff --git a/doc/refR.html b/doc/refR.html
@@ -262,10 +262,11 @@ href="refW.html#wr">wr</a></code>.
<dt><a name="read"><code>(read ['sym1 ['sym2]]) -> any</code></a>
<dd>Reads one item from the current input channel. <code>NIL</code> is returned
upon end of file. When called without arguments, an arbitrary Lisp expression is
-read. Otherwise, a token (a number, or an internal or transient symbol) is read.
-In that case, <code>sym1</code> specifies which set of characters to accept for
-continuous symbol names (in addition to the standard alphanumerical characters),
-and <code>sym2</code> an optional comment character. See also <code><a
+read. Otherwise, a token (a number, an internal symbol, a transient symbol (for
+punctuation), or a list of symbols (for a string)) is read. In that case,
+<code>sym1</code> specifies which set of characters to accept for continuous
+symbol names (in addition to the standard alphanumerical characters), and
+<code>sym2</code> an optional comment character. See also <code><a
href="refA.html#any">any</a></code>, <code><a
href="refS.html#str">str</a></code>, <code><a
href="refS.html#skip">skip</a></code> and <code><a
@@ -283,7 +284,7 @@ jkl
: (make (while (read "_" "#") (link @)))
abc = def_ghi("xyz"+-123) # Comment
NIL
--> (abc "=" def_ghi "(" "xyz" "+" "-" 123 ")")
+-> (abc "=" def_ghi "(" ("x" "y" "z") "+" "-" 123 ")")
</code></pre>
<dt><a name="recur"><code>(recur fun) -> any</code></a>
diff --git a/ersatz/picolisp.jar b/ersatz/picolisp.jar
Binary files differ.
diff --git a/ersatz/sys.src b/ersatz/sys.src
@@ -1,4 +1,4 @@
-// 12oct12abu
+// 09nov12abu
// (c) Software Lab. Alexander Burger
import java.util.*;
@@ -1611,12 +1611,11 @@ public class PicoLisp {
}
if (!testEsc())
return Nil;
- StringBuilder sb = new StringBuilder();
- sb.append((char)Chr);
+ Any y = x = new Cell(mkChar(Chr), Nil);
while (get() != '"' && testEsc())
- sb.append((char)Chr);
+ y = y.Cdr = new Cell(mkChar(Chr), Nil);
get();
- return mkStr(sb);
+ return x;
}
if (Chr >= '0' && Chr <= '9') {
StringBuilder sb = new StringBuilder();
diff --git a/lib/map b/lib/map
@@ -29,7 +29,7 @@ adr (587 . "@src64/main.l")
alarm (473 . "@src64/main.l")
all (788 . "@src64/sym.l")
and (1613 . "@src64/flow.l")
-any (3966 . "@src64/io.l")
+any (3974 . "@src64/io.l")
append (1338 . "@src64/subr.l")
apply (713 . "@src64/apply.l")
arg (2369 . "@src64/main.l")
@@ -82,12 +82,12 @@ cdddr (245 . "@src64/subr.l")
cddr (79 . "@src64/subr.l")
cdr (17 . "@src64/subr.l")
chain (1141 . "@src64/subr.l")
-char (3448 . "@src64/io.l")
+char (3456 . "@src64/io.l")
chop (1219 . "@src64/sym.l")
circ (816 . "@src64/subr.l")
circ? (2402 . "@src64/subr.l")
clip (1799 . "@src64/subr.l")
-close (4379 . "@src64/io.l")
+close (4387 . "@src64/io.l")
cmd (2974 . "@src64/main.l")
cnt (1413 . "@src64/apply.l")
co (2537 . "@src64/flow.l")
@@ -98,7 +98,7 @@ cond (1908 . "@src64/flow.l")
connect (224 . "@src64/net.l")
cons (747 . "@src64/subr.l")
copy (1225 . "@src64/subr.l")
-ctl (4252 . "@src64/io.l")
+ctl (4260 . "@src64/io.l")
ctty (2769 . "@src64/main.l")
cut (1922 . "@src64/sym.l")
date (2483 . "@src64/main.l")
@@ -115,14 +115,14 @@ dir (2904 . "@src64/main.l")
dm (545 . "@src64/flow.l")
do (2130 . "@src64/flow.l")
e (2917 . "@src64/flow.l")
-echo (4410 . "@src64/io.l")
+echo (4418 . "@src64/io.l")
env (599 . "@src64/main.l")
-eof (3525 . "@src64/io.l")
-eol (3516 . "@src64/io.l")
-err (4232 . "@src64/io.l")
+eof (3533 . "@src64/io.l")
+eol (3524 . "@src64/io.l")
+err (4240 . "@src64/io.l")
errno (1371 . "@src64/main.l")
eval (175 . "@src64/flow.l")
-ext (5144 . "@src64/io.l")
+ext (5152 . "@src64/io.l")
ext? (1157 . "@src64/sym.l")
extern (1023 . "@src64/sym.l")
extra (1258 . "@src64/flow.l")
@@ -137,13 +137,13 @@ find (1322 . "@src64/apply.l")
fish (1613 . "@src64/apply.l")
flg? (2445 . "@src64/subr.l")
flip (1699 . "@src64/subr.l")
-flush (5119 . "@src64/io.l")
+flush (5127 . "@src64/io.l")
fold (3512 . "@src64/sym.l")
for (2219 . "@src64/flow.l")
fork (3259 . "@src64/flow.l")
format (2089 . "@src64/big.l")
free (2055 . "@src64/db.l")
-from (3544 . "@src64/io.l")
+from (3552 . "@src64/io.l")
full (1075 . "@src64/subr.l")
fun? (750 . "@src64/sym.l")
gc (435 . "@src64/gc.l")
@@ -156,14 +156,14 @@ gt0 (2718 . "@src64/big.l")
hash (2976 . "@src64/big.l")
head (1820 . "@src64/subr.l")
heap (519 . "@src64/main.l")
-hear (3229 . "@src64/io.l")
+hear (3237 . "@src64/io.l")
host (190 . "@src64/net.l")
id (1028 . "@src64/db.l")
idx (2162 . "@src64/sym.l")
if (1794 . "@src64/flow.l")
if2 (1813 . "@src64/flow.l")
ifn (1854 . "@src64/flow.l")
-in (4192 . "@src64/io.l")
+in (4200 . "@src64/io.l")
inc (2256 . "@src64/big.l")
index (2637 . "@src64/subr.l")
info (2806 . "@src64/main.l")
@@ -172,7 +172,7 @@ ipid (3204 . "@src64/flow.l")
isa (961 . "@src64/flow.l")
job (1418 . "@src64/flow.l")
journal (971 . "@src64/db.l")
-key (3377 . "@src64/io.l")
+key (3385 . "@src64/io.l")
kill (3236 . "@src64/flow.l")
last (2044 . "@src64/subr.l")
le0 (2693 . "@src64/big.l")
@@ -180,14 +180,14 @@ length (2741 . "@src64/subr.l")
let (1468 . "@src64/flow.l")
let? (1529 . "@src64/flow.l")
lieu (1157 . "@src64/db.l")
-line (3700 . "@src64/io.l")
-lines (3853 . "@src64/io.l")
+line (3708 . "@src64/io.l")
+lines (3861 . "@src64/io.l")
link (1172 . "@src64/subr.l")
lisp (2040 . "@src64/main.l")
list (887 . "@src64/subr.l")
listen (157 . "@src64/net.l")
lit (150 . "@src64/flow.l")
-load (4169 . "@src64/io.l")
+load (4177 . "@src64/io.l")
lock (1185 . "@src64/db.l")
loop (2162 . "@src64/flow.l")
low? (3378 . "@src64/sym.l")
@@ -237,30 +237,30 @@ offset (2677 . "@src64/subr.l")
on (1708 . "@src64/sym.l")
onOff (1738 . "@src64/sym.l")
one (1771 . "@src64/sym.l")
-open (4336 . "@src64/io.l")
+open (4344 . "@src64/io.l")
opid (3220 . "@src64/flow.l")
opt (3095 . "@src64/main.l")
or (1629 . "@src64/flow.l")
-out (4212 . "@src64/io.l")
+out (4220 . "@src64/io.l")
pack (1270 . "@src64/sym.l")
pair (2394 . "@src64/subr.l")
pass (754 . "@src64/apply.l")
pat? (736 . "@src64/sym.l")
path (1246 . "@src64/io.l")
-peek (3432 . "@src64/io.l")
+peek (3440 . "@src64/io.l")
pick (1369 . "@src64/apply.l")
-pipe (4273 . "@src64/io.l")
-poll (3321 . "@src64/io.l")
+pipe (4281 . "@src64/io.l")
+poll (3329 . "@src64/io.l")
pool (651 . "@src64/db.l")
pop (1898 . "@src64/sym.l")
port (5 . "@src64/net.l")
-pr (5227 . "@src64/io.l")
+pr (5235 . "@src64/io.l")
pre? (1536 . "@src64/sym.l")
-prin (5043 . "@src64/io.l")
-prinl (5057 . "@src64/io.l")
-print (5083 . "@src64/io.l")
-println (5114 . "@src64/io.l")
-printsp (5099 . "@src64/io.l")
+prin (5051 . "@src64/io.l")
+prinl (5065 . "@src64/io.l")
+print (5091 . "@src64/io.l")
+println (5122 . "@src64/io.l")
+printsp (5107 . "@src64/io.l")
prior (2713 . "@src64/subr.l")
prog (1749 . "@src64/flow.l")
prog1 (1757 . "@src64/flow.l")
@@ -280,12 +280,12 @@ rand (3003 . "@src64/big.l")
range (997 . "@src64/subr.l")
rank (3036 . "@src64/subr.l")
raw (451 . "@src64/main.l")
-rd (5161 . "@src64/io.l")
-read (2657 . "@src64/io.l")
+rd (5169 . "@src64/io.l")
+read (2665 . "@src64/io.l")
replace (1499 . "@src64/subr.l")
rest (2398 . "@src64/main.l")
reverse (1678 . "@src64/subr.l")
-rewind (5127 . "@src64/io.l")
+rewind (5135 . "@src64/io.l")
rollback (1898 . "@src64/db.l")
rot (848 . "@src64/subr.l")
run (306 . "@src64/flow.l")
@@ -298,33 +298,33 @@ set (1607 . "@src64/sym.l")
setq (1640 . "@src64/sym.l")
sigio (489 . "@src64/main.l")
size (2809 . "@src64/subr.l")
-skip (3502 . "@src64/io.l")
+skip (3510 . "@src64/io.l")
sort (3965 . "@src64/subr.l")
sp? (727 . "@src64/sym.l")
-space (5061 . "@src64/io.l")
+space (5069 . "@src64/io.l")
split (1592 . "@src64/subr.l")
stack (548 . "@src64/main.l")
state (1998 . "@src64/flow.l")
stem (1989 . "@src64/subr.l")
-str (4020 . "@src64/io.l")
+str (4028 . "@src64/io.l")
str? (1136 . "@src64/sym.l")
strip (1576 . "@src64/subr.l")
struct (1831 . "@src64/main.l")
sub? (1569 . "@src64/sym.l")
sum (1460 . "@src64/apply.l")
super (1214 . "@src64/flow.l")
-sym (4006 . "@src64/io.l")
+sym (4014 . "@src64/io.l")
sym? (2434 . "@src64/subr.l")
symbols (942 . "@src64/sym.l")
-sync (3189 . "@src64/io.l")
+sync (3197 . "@src64/io.l")
sys (3056 . "@src64/flow.l")
t (1740 . "@src64/flow.l")
tail (1911 . "@src64/subr.l")
-tell (3261 . "@src64/io.l")
+tell (3269 . "@src64/io.l")
text (1398 . "@src64/sym.l")
throw (2482 . "@src64/flow.l")
tick (3172 . "@src64/flow.l")
-till (3611 . "@src64/io.l")
+till (3619 . "@src64/io.l")
time (2616 . "@src64/main.l")
touch (1172 . "@src64/sym.l")
trim (1759 . "@src64/subr.l")
@@ -341,12 +341,12 @@ use (1562 . "@src64/flow.l")
usec (2721 . "@src64/main.l")
val (1588 . "@src64/sym.l")
version (3109 . "@src64/main.l")
-wait (3151 . "@src64/io.l")
+wait (3159 . "@src64/io.l")
when (1873 . "@src64/flow.l")
while (2050 . "@src64/flow.l")
wipe (3253 . "@src64/sym.l")
with (1321 . "@src64/flow.l")
-wr (5244 . "@src64/io.l")
+wr (5252 . "@src64/io.l")
xchg (1663 . "@src64/sym.l")
xor (1690 . "@src64/flow.l")
x| (2887 . "@src64/big.l")
diff --git a/src/io.c b/src/io.c
@@ -1,4 +1,4 @@
-/* 11mar12abu
+/* 09nov12abu
* (c) Software Lab. Alexander Burger
*/
@@ -1287,11 +1287,11 @@ any token(any x, int c) {
}
if (!testEsc())
return Nil;
- i = 0, Push(c1, y = box(Chr));
+ Push(c1, y = cons(mkChar(Chr), Nil));
while (Env.get(), Chr != '"' && testEsc())
- byteSym(Chr, &i, &y);
+ y = cdr(y) = cons(mkChar(Chr), Nil);
Env.get();
- return consStr(Pop(c1));
+ return Pop(c1);
}
if (Chr >= '0' && Chr <= '9') {
i = 0, Push(c1, y = box(Chr));
diff --git a/src64/io.l b/src64/io.l
@@ -1,4 +1,4 @@
-# 04nov12abu
+# 09nov12abu
# (c) Software Lab. Alexander Burger
# Close file descriptor
@@ -2539,13 +2539,14 @@
end
call testEscA_F
jnc retNil
+ call mkCharA_A # Make single character
+ call consA_X # Cons it
+ ld (X) A
+ ld (X CDR) Nil # with NIL
link
- push ZERO # <L I> Result
- ld C 4 # Build name
- ld X S
+ push X # <L I> Result
link
do
- call byteSymBCX_CX # Pack char
call (Get_A) # Get next
cmp B (char "\"") # Done?
if eq # Yes
@@ -2553,10 +2554,17 @@
break T
end
call testEscA_F
- until nc
- ld X (L I) # Get name
+ while c
+ call mkCharA_A # Make char
+ call consA_C # Cons it
+ ld (C) A
+ ld (C CDR) Nil # with NIL
+ ld (X CDR) C # Append to result
+ ld X C
+ loop
+ ld E (L I) # Get result
drop
- jmp consSymX_E # Make transient symbol
+ ret
end
cmp B (char "0") # Digit?
if ge
diff --git a/src64/tags b/src64/tags
@@ -561,7 +561,7 @@ doAdr main.l 587
doAlarm main.l 473
doAll sym.l 788
doAnd flow.l 1613
-doAny io.l 3966
+doAny io.l 3974
doAppend subr.l 1338
doApply apply.l 713
doArg main.l 2369
@@ -619,12 +619,12 @@ doCdddr subr.l 245
doCddr subr.l 79
doCdr subr.l 17
doChain subr.l 1141
-doChar io.l 3448
+doChar io.l 3456
doChop sym.l 1219
doCirc subr.l 816
doCircQ subr.l 2402
doClip subr.l 1799
-doClose io.l 4379
+doClose io.l 4387
doCmd main.l 2974
doCnt apply.l 1413
doCo flow.l 2537
@@ -636,7 +636,7 @@ doCond flow.l 1908
doConnect net.l 224
doCons subr.l 747
doCopy subr.l 1225
-doCtl io.l 4252
+doCtl io.l 4260
doCtty main.l 2769
doCut sym.l 1922
doDate main.l 2483
@@ -654,18 +654,18 @@ doDiv big.l 2513
doDm flow.l 545
doDo flow.l 2130
doE flow.l 2917
-doEcho io.l 4410
+doEcho io.l 4418
doEnv main.l 599
-doEof io.l 3525
-doEol io.l 3516
+doEof io.l 3533
+doEol io.l 3524
doEq subr.l 2059
doEq0 subr.l 2173
doEqT subr.l 2181
doEqual subr.l 2115
-doErr io.l 4232
+doErr io.l 4240
doErrno main.l 1371
doEval flow.l 175
-doExt io.l 5144
+doExt io.l 5152
doExtQ sym.l 1157
doExtern sym.l 1023
doExtra flow.l 1258
@@ -680,13 +680,13 @@ doFind apply.l 1322
doFish apply.l 1613
doFlgQ subr.l 2445
doFlip subr.l 1699
-doFlush io.l 5119
+doFlush io.l 5127
doFold sym.l 3512
doFor flow.l 2219
doFork flow.l 3259
doFormat big.l 2089
doFree db.l 2055
-doFrom io.l 3544
+doFrom io.l 3552
doFull subr.l 1075
doFunQ sym.l 750
doGc gc.l 435
@@ -701,7 +701,7 @@ doGt0 big.l 2718
doHash big.l 2976
doHead subr.l 1820
doHeap main.l 519
-doHear io.l 3229
+doHear io.l 3237
doHide sym.l 1090
doHost net.l 190
doId db.l 1028
@@ -709,7 +709,7 @@ doIdx sym.l 2162
doIf flow.l 1794
doIf2 flow.l 1813
doIfn flow.l 1854
-doIn io.l 4192
+doIn io.l 4200
doInc big.l 2256
doIndex subr.l 2637
doInfo main.l 2806
@@ -718,7 +718,7 @@ doIpid flow.l 3204
doIsa flow.l 961
doJob flow.l 1418
doJournal db.l 971
-doKey io.l 3377
+doKey io.l 3385
doKill flow.l 3236
doLast subr.l 2044
doLe subr.l 2237
@@ -727,14 +727,14 @@ doLength subr.l 2741
doLet flow.l 1468
doLetQ flow.l 1529
doLieu db.l 1157
-doLine io.l 3700
-doLines io.l 3853
+doLine io.l 3708
+doLines io.l 3861
doLink subr.l 1172
doLisp main.l 2040
doList subr.l 887
doListen net.l 157
doLit flow.l 150
-doLoad io.l 4169
+doLoad io.l 4177
doLock db.l 1185
doLoop flow.l 2162
doLowQ sym.l 3378
@@ -788,30 +788,30 @@ doOffset subr.l 2677
doOn sym.l 1708
doOnOff sym.l 1738
doOne sym.l 1771
-doOpen io.l 4336
+doOpen io.l 4344
doOpid flow.l 3220
doOpt main.l 3095
doOr flow.l 1629
-doOut io.l 4212
+doOut io.l 4220
doPack sym.l 1270
doPair subr.l 2394
doPass apply.l 754
doPatQ sym.l 736
doPath io.l 1246
-doPeek io.l 3432
+doPeek io.l 3440
doPick apply.l 1369
-doPipe io.l 4273
-doPoll io.l 3321
+doPipe io.l 4281
+doPoll io.l 3329
doPool db.l 651
doPop sym.l 1898
doPort net.l 5
-doPr io.l 5227
+doPr io.l 5235
doPreQ sym.l 1536
-doPrin io.l 5043
-doPrinl io.l 5057
-doPrint io.l 5083
-doPrintln io.l 5114
-doPrintsp io.l 5099
+doPrin io.l 5051
+doPrinl io.l 5065
+doPrint io.l 5091
+doPrintln io.l 5122
+doPrintsp io.l 5107
doPrior subr.l 2713
doProg flow.l 1749
doProg1 flow.l 1757
@@ -832,13 +832,13 @@ doRand big.l 3003
doRange subr.l 997
doRank subr.l 3036
doRaw main.l 451
-doRd io.l 5161
-doRead io.l 2657
+doRd io.l 5169
+doRead io.l 2665
doRem big.l 2572
doReplace subr.l 1499
doRest main.l 2398
doReverse subr.l 1678
-doRewind io.l 5127
+doRewind io.l 5135
doRollback db.l 1898
doRot subr.l 848
doRun flow.l 306
@@ -854,15 +854,15 @@ doSetq sym.l 1640
doShift big.l 2627
doSigio main.l 489
doSize subr.l 2809
-doSkip io.l 3502
+doSkip io.l 3510
doSort subr.l 3965
doSpQ sym.l 727
-doSpace io.l 5061
+doSpace io.l 5069
doSplit subr.l 1592
doStack main.l 548
doState flow.l 1998
doStem subr.l 1989
-doStr io.l 4020
+doStr io.l 4028
doStrQ sym.l 1136
doStrip subr.l 1576
doStruct main.l 1831
@@ -870,18 +870,18 @@ doSub big.l 2209
doSubQ sym.l 1569
doSum apply.l 1460
doSuper flow.l 1214
-doSym io.l 4006
+doSym io.l 4014
doSymQ subr.l 2434
doSymbols sym.l 942
-doSync io.l 3189
+doSync io.l 3197
doSys flow.l 3056
doT flow.l 1740
doTail subr.l 1911
-doTell io.l 3261
+doTell io.l 3269
doText sym.l 1398
doThrow flow.l 2482
doTick flow.l 3172
-doTill io.l 3611
+doTill io.l 3619
doTime main.l 2616
doTouch sym.l 1172
doTrace flow.l 2956
@@ -899,12 +899,12 @@ doUse flow.l 1562
doUsec main.l 2721
doVal sym.l 1588
doVersion main.l 3109
-doWait io.l 3151
+doWait io.l 3159
doWhen flow.l 1873
doWhile flow.l 2050
doWipe sym.l 3253
doWith flow.l 1321
-doWr io.l 5244
+doWr io.l 5252
doXchg sym.l 1663
doXor flow.l 1690
doYield flow.l 2709
@@ -913,7 +913,7 @@ doZap sym.l 1186
doZero sym.l 1756
endString_E main.l 2318
eofErr err.l 540
-eolA_F io.l 3685
+eolA_F io.l 3693
equalAE_F main.l 772
erOpenEXY io.l 1630
errEXYZ err.l 33
@@ -934,10 +934,10 @@ extErrEX err.l 440
extNmCE_X db.l 64
externX_E sym.l 266
extraXY_FCYZ flow.l 1285
-fdRdSetCZL io.l 2719
-fdSetCL_X io.l 2707
-fdSetC_Y io.l 3310
-fdWrSetCZL io.l 2726
+fdRdSetCZL io.l 2727
+fdSetCL_X io.l 2715
+fdSetC_Y io.l 3318
+fdWrSetCZL io.l 2734
fetchCharC_AC main.l 1874
fileObjE_AC db.l 237
fileObjX_AC db.l 211
@@ -976,7 +976,7 @@ idxDelXY_E sym.l 2292
idxGetXY_E sym.l 2205
idxPutXY_E sym.l 2222
ignLog db.l 924
-inReadyC_F io.l 2695
+inReadyC_F io.l 2703
incE_A big.l 1491
initInFileAC_A io.l 65
initInFileA_A io.l 63
@@ -1000,7 +1000,7 @@ jnlFileno_A db.l 344
joinLocalCX flow.l 2843
lisp main.l 2084
loadAllX_E main.l 162
-loadBEX_E io.l 4073
+loadBEX_E io.l 4081
lockErr err.l 613
lockFileAC io.l 28
lockJnl db.l 352
@@ -1040,7 +1040,7 @@ needVarAX err.l 352
needVarEX err.l 362
newBlock_X db.l 449
newIdEX_X db.l 492
-newline io.l 4666
+newline io.l 4674
noFdErrX err.l 535
nonblockingA_A io.l 51
numErrAX err.l 418
@@ -1048,20 +1048,20 @@ numErrEX err.l 420
oct3C_CA db.l 180
openErrEX err.l 506
oruAE_A big.l 394
-outAoA io.l 4715
-outNameE io.l 4739
-outNumE io.l 4675
-outOctA io.l 4702
-outStringC io.l 4729
-outStringS io.l 4727
-outWordA io.l 4682
+outAoA io.l 4723
+outNameE io.l 4747
+outNumE io.l 4683
+outOctA io.l 4710
+outStringC io.l 4737
+outStringS io.l 4735
+outWordA io.l 4690
packAoACX_CX db.l 108
packECX_CX sym.l 1303
packExtNmX_E db.l 87
packOctACX_CX db.l 120
pairErrAX err.l 444
pairErrEX err.l 446
-parseBCE_E io.l 3894
+parseBCE_E io.l 3902
pathStringE_SZ io.l 1173
pico glob.l 142
pipeErrX err.l 516
@@ -1072,14 +1072,14 @@ popOutFiles io.l 1916
prByteCEXY io.l 681
prCntCE io.l 704
prE io.l 729
-prExtNmX io.l 4694
-prNameX io.l 4747
+prExtNmX io.l 4702
+prNameX io.l 4755
prTellEZ io.l 723
preCEXY_F sym.l 1470
-prinE io.l 4988
-prinE_E io.l 4979
-printE io.l 4766
-printE_E io.l 4757
+prinE io.l 4996
+prinE_E io.l 4987
+printE io.l 4774
+printE_E io.l 4765
propEC_E sym.l 2745
protErrEX err.l 392
pushCtlFilesY io.l 1860
@@ -1089,7 +1089,7 @@ pushOutFilesY io.l 1844
putACE sym.l 2491
putBlockBZ db.l 612
putSrcEC_E flow.l 25
-putStdoutB io.l 4623
+putStdoutB io.l 4631
putStringB main.l 2295
putTellBZ io.l 997
putUdpBZ net.l 377
@@ -1104,8 +1104,8 @@ rdList_E io.l 2171
rdLockDb db.l 255
rdLockFileC io.l 26
rdOpenEXY io.l 1356
-rdSetCL_F io.l 2733
-rdSetRdyCL_F io.l 2743
+rdSetCL_F io.l 2741
+rdSetRdyCL_F io.l 2751
readA_E io.l 2309
readC_E io.l 2493
redefMsgEC flow.l 4
@@ -1151,7 +1151,7 @@ sizeCE_C subr.l 2929
skipC_A io.l 2009
slowNbC_FA io.l 207
slowZ_F io.l 185
-space io.l 4670
+space io.l 4678
stdinByte_A io.l 426
stkErr err.l 401
stkErrE err.l 403
@@ -1200,7 +1200,7 @@ unsync io.l 1059
unwindC_Z err.l 171
varErrAX err.l 462
varErrEX err.l 464
-waitFdCEX_A io.l 2765
+waitFdCEX_A io.l 2773
waitPidErrX err.l 526
wifsignaledS_F sys/x86-64.linux.code.l 21
wifstoppedS_F sys/x86-64.linux.code.l 16
@@ -1215,7 +1215,7 @@ wrLockDb db.l 262
wrLockFileC io.l 23
wrLogErr err.l 592
wrOpenEXY io.l 1497
-wrSetCL_F io.l 2738
+wrSetCL_F io.l 2746
wrSyncErrX err.l 581
wtermsigS_A sys/x86-64.linux.code.l 28
xCntAX_FA main.l 2266
diff --git a/test/src/io.l b/test/src/io.l
@@ -1,4 +1,4 @@
-# 11jul11abu
+# 09nov12abu
# (c) Software Lab. Alexander Burger
### path ###
@@ -14,7 +14,7 @@
(test (1 abc (d e f))
(pipe (prinl "(1 abc (d e f))")
(read) ) )
-(test '(abc "=" def_ghi "(" "xyz" "+" "-" 123 ")")
+(test '(abc "=" def_ghi "(" ("x" "y" "z") "+" "-" 123 ")")
(pipe (prinl "abc = def_ghi(\"xyz\"+-123) # Comment")
(make
(while (read "_" "#")