Greetings Denys, > Sent: Monday, February 12, 2018 at 8:09 AM > From: daggs <da...@gmx.com> > To: "Denys Vlasenko" <vda.li...@googlemail.com> > Cc: busybox <busybox@busybox.net> > Subject: Re: adding lineno implementation > > Greetings Denys, > > > On Thu, Feb 8, 2018 at 1:55 PM, daggs <da...@gmx.com> wrote: > > > I've tested the implementation on 1.28.0 with the two following patches: > > > https://git.busybox.net/busybox/commit/shell/hush.c?id=b8d076b00bad9da87e6dcaf4f36dfd06e2d2e5e8 > > > https://git.busybox.net/busybox/commit/shell/hush.c?id=6aad1ddcc9d8fe2303cc444b6ddea2af1fc1dd30 > > > on the test script I've posted in the first mail and the output is as > > > follows: > > > $ ./busybox hush test.sh > > > hush: using fallback suid method > > > at line 5 > > > at line 6 > > > at line 6 > > > at line 6 > > > at line 6 > > > at line 6 > > > at line 6 > > > at line 6 > > > at line 6 > > > at line 6 > > > at line 6 > > > at line 10 > > > hello world 10 > > > > > > that differs from the bash output, the line that is printed most is > > > actually in line 7 and not 6. > > > I think this implementation suffers from a similar but my implementation > > > suffered. > > > > > > Reproduced. > > > > while ....; do > > echo ... > > done > > > > hush parser thinks that the command is "do echo ..." :) and therefore > > it starts on line-1. > > > > Fixed in git, please try now. > > > > indeed that worked but there is another scenario it goes haywire. > I'll try to provide a test case script that reproduces it soon. > > Thanks for all the hard work, > > Dagg. > _______________________________________________
here is another test case that goes bad" cat -n test.sh 1 #!/bin/bash 2 3 echo "E${LINENO}" 4 echo "$(readlink -f /proc/self/fd/2)" > /tmp/fd.old 5 echo "E${LINENO}" 6 exec 2>> /tmp/err.txt 7 echo "E${LINENO}" ./test.sh E3 E6 E8 Dagg. _______________________________________________ busybox mailing list busybox@busybox.net http://lists.busybox.net/mailman/listinfo/busybox