msm@nucleus.UUCP (Michael S. Mattone) (06/28/88)
There seems to be a problem with arguments to shell scripts. I noticed
the trouble when I tried a yes(1) script posted a while ago:
while : ; do
echo ${1-y}
done
When run without an argument a stream of empty lines is produced
instead of y's. When an argument is given the script functions
properly.
I think the two diffs below show how to fix the problem.
sh1.c:
------
165c165
< setval(lookup("#"), putn(dolc-1));
---
> setval(lookup("#"), putn(--dolc)); /* was: dolc-1 */
sh3.c:
------
119c119
< if ((i = dolc-1) < 0)
---
> if ((i = dolc) < 0) /* was: dolc-1 */