On Thu, Apr 16, 2015 at 10:38:22PM -0700, Linda Walsh wrote:
> It's a trite example, but I do something like:
> 
> 
> sub gvim () {
>  array orig_args=($@)  gv_files=() gv_ops=()
>  int use_tab=0  look_for_ops=1
> 
>    sub _exec_gvim() {
>      array args
>      ((use_tab)) && args=("-p")
>      (( ${#gv_ops[@]:-0} )) && args+=(${gv_ops[@]})
>      (( $# )) && args+=($@)
>      command gvim "${args[@]}"
>      unset -f _exec_gvim
>    }
>    ....
> 
> 
> AFAIK, _exec_gvim, can only be called from within "function gvim", no?

That is not correct.  In bash, all function definitions are global.

imadev:~$ f1() { f2() { echo "I'm f2"; }; }; f1; f2
I'm f2

Reply via email to