[-- Attachment #1: Type: text/plain, Size: 493 bytes --] Hello, I would like to activate the same behaviour of functions -T function_name, but for the current scope, ie the function already been called. something like: function_name (){ functions -T $0 ... } fname this doesn't work, I think because the tracing starts when the function is called. I know I can do setopt xtrace, but this debugs also the functions called from now on, functions -T does not. Is there a way to activate debug for the current scope only? thanks Pier Paolo Grassi [-- Attachment #2: Type: text/html, Size: 864 bytes --]
On Wed, Feb 10, 2021 at 2:08 PM Pier Paolo Grassi <pierpaolog@gmail.com> wrote:
>
> function_name (){
> functions -T $0
> ...
> }
I think it'd be a bit convoluted ...
function_name () {
if [[ -o xtrace ]]
then
# The real function body here
else
functions -T function_name
{
function_name "$@"
} always {
functions +T function_name
}
fi
}
[-- Attachment #1: Type: text/plain, Size: 654 bytes --] I was afraid the function that call itself is the only way to go here, thanks for confirming best regards Pier Paolo Grassi Il giorno mer 10 feb 2021 alle ore 23:56 Bart Schaefer < schaefer@brasslantern.com> ha scritto: > On Wed, Feb 10, 2021 at 2:08 PM Pier Paolo Grassi <pierpaolog@gmail.com> > wrote: > > > > function_name (){ > > functions -T $0 > > ... > > } > > I think it'd be a bit convoluted ... > > function_name () { > if [[ -o xtrace ]] > then > # The real function body here > else > functions -T function_name > { > function_name "$@" > } always { > functions +T function_name > } > fi > } > [-- Attachment #2: Type: text/html, Size: 1356 bytes --]
On Wed, Feb 10, 2021 at 3:04 PM Pier Paolo Grassi <pierpaolog@gmail.com> wrote:
>
> I was afraid the function that call itself is the only way to go here, thanks for confirming
Actually, if you have the current development version of the shell you
can do this:
function_name () {
function -T {
# original function body here
} "$@"
}
The trace will show '(anon)' instead of 'function_name', but otherwise
it's what you want.
[-- Attachment #1: Type: text/plain, Size: 613 bytes --] Thanks, I'll check it out. Pier Paolo Grassi Il giorno ven 12 feb 2021 alle ore 04:21 Bart Schaefer < schaefer@brasslantern.com> ha scritto: > On Wed, Feb 10, 2021 at 3:04 PM Pier Paolo Grassi <pierpaolog@gmail.com> > wrote: > > > > I was afraid the function that call itself is the only way to go here, > thanks for confirming > > Actually, if you have the current development version of the shell you > can do this: > > function_name () { > function -T { > # original function body here > } "$@" > } > > The trace will show '(anon)' instead of 'function_name', but otherwise > it's what you want. > [-- Attachment #2: Type: text/html, Size: 1252 bytes --]