Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 May 2008 00:04:41 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-hackers@freebsd.org
Cc:        Stefan Farfeleder <stefan@fafoe.narf.at>, hackers@freebsd.org, Mike Meyer <mwm@mired.org>, John E Hein <jhein@timing.com>
Subject:   Re: Why doesn't autoconf like our /bin/sh?
Message-ID:  <200805290004.41653.jhb@freebsd.org>
In-Reply-To: <20080525154537.GB1026@lizard.fafoe.narf.at>
References:  <20080309152712.42752293@bhuda.mired.org> <18489.32903.477434.465037@gromit.timing.com> <20080525154537.GB1026@lizard.fafoe.narf.at>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 25 May 2008 11:45:37 am Stefan Farfeleder wrote:
> On Sun, May 25, 2008 at 09:06:47AM -0600, John E Hein wrote:
> > FWIW, it seems bash and sh report line number differently.
> >
> > # grep -n ^ ~/tmp/ln
> > 1:#!/bin/sh
> > 2:echo f line: $LINENO
> > 3:f()
> > 4:{
> > 5:echo f line: $LINENO
> > 6:}
> > 7:
> > 8:f
> > 9:echo main line: $LINENO
> > 10:f
> >
> >
> > # /bin/sh ~/tmp/ln
> > f line: 2
> > f line: 3
> > main line: 9
> > f line: 3
> >
> >
> > # bash ~/tmp/ln
> > f line: 2
> > f line: 5
> > main line: 9
> > f line: 5
>
> Yes, I know.  I think it is a bug in bash as SUSv3 states:
>
> "Set by the shell to a decimal number representing the current
> sequential line number (numbered starting with 1) within a script or
> function before it executes each command."

Actually, the bash way seems more intuitive.  And it does say "the current 
sequentional line number within a ... function before it executes each 
command"

The "within a function" implies that this property goes inside of functions 
instead of forcing all commands in a function to use the starting line of the 
function which is what you are saying?

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200805290004.41653.jhb>