summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xAPLDemo1
-rw-r--r--demos/demos3
-rw-r--r--print.c12
3 files changed, 11 insertions, 5 deletions
diff --git a/APLDemo b/APLDemo
index 6d5f092..1247140 100755
--- a/APLDemo
+++ b/APLDemo
@@ -2,6 +2,7 @@
winid=`{grep -e '-apl' /mnt/acme/index | awk '{print $1}' }
if(~ $#winid 0){
+ kill apl | rc
win apl &
sleep 1
winid=`{grep -e '-apl' /mnt/acme/index | awk '{print $1}' }
diff --git a/demos/demos b/demos/demos
index 8569e11..dff8b1f 100644
--- a/demos/demos
+++ b/demos/demos
@@ -1,4 +1,3 @@
APLDemo intro.apl
APLDemo doubleup.apl
-APLDemo chain.apl
-kill apl | rc \ No newline at end of file
+APLDemo chain.apl \ No newline at end of file
diff --git a/print.c b/print.c
index b8b617d..55da3b3 100644
--- a/print.c
+++ b/print.c
@@ -186,15 +186,21 @@ ppoperator(Operator op)
Rune *right = op.right ? ppdatum(op.right) : runestrdup(L"");
Rune *res;
if(op.type == OperatortypeDop)
- res = runesmprint("(%S{%S}%S)", left, op.dop, right);
+ res = runesmprint("%S{%S}%S", left, op.dop, right);
else if(op.type == OperatortypeHybrid){
- res = runesmprint("(%S%C)", left, primhybridnames[op.code]);
+ res = runesmprint("%S%C", left, primhybridnames[op.code]);
}else{
- res = runesmprint("(%S%C%S)",
+ res = runesmprint("%S%C%S",
left,
op.dyadic ? primdyadopnames[op.code] : primmonopnames[op.code],
right);
}
+ if(op.left || op.right){
+ Rune *tmp = res;
+ res = runesmprint("(%S)", res);
+ free(tmp);
+ }
+
free(left);
free(right);
return res;