[134833] trunk/base/src/port1.0/portutil.tcl

Ryan Schmidt ryandesign at macports.org
Wed Apr 8 13:51:28 PDT 2015


> On Apr 8, 2015, at 9:30 AM, jmr at macports.org wrote:
> 
> Revision
> 134833
> Author
> jmr at macports.org
> Date
> 2015-04-08 07:30:14 -0700 (Wed, 08 Apr 2015)
> Log Message
> 
> simplify makeuserproc and get rid of weird overquoting requirement (which probably only existed because someone called their argument 'args' in the calling procs without realising what that does)

> --- trunk/base/src/port1.0/portutil.tcl	2015-04-08 13:33:26 UTC (rev 134832)
> +++ trunk/base/src/port1.0/portutil.tcl	2015-04-08 14:30:14 UTC (rev 134833)
> @@ -601,7 +601,7 @@
>  
>      # make a user procedure named variant-blah-blah
>      # we will call this procedure during variant-run
> -    makeuserproc "variant-[ditem_key $ditem name]" \{$code\}
> +    makeuserproc variant-[ditem_key $ditem name] $code
>  
>      # Export provided variant to PortInfo
>      # (don't list it twice if the variant was already defined, which can happen
> @@ -1281,8 +1281,8 @@
>  # all the globals in its scope.  This is undeniably ugly, but I haven't
>  # thought of any other way to do this.
>  proc makeuserproc {name body} {
> -    regsub -- "^\{(.*?)" $body "\{ \n foreach g \[info globals\] \{ \n global \$g \n \} \n \\1" body
> -    eval "proc $name {} $body"
> +    append modified_body {global {*}[info globals]\n} $body
> +    proc $name {} $modified_body
>  }
>  
>  # backup
> @@ -2199,7 +2199,7 @@
>          set origproc [ditem_key $ditem procedure]
>          set ident [ditem_key $ditem name]
>          if {[info commands $target] eq ""} {
> -            proc $target {args} "
> +            proc $target {code} "
>                  variable proc_index
>                  set proc_index \[llength \[ditem_key $ditem proc\]\]
>                  ditem_key $ditem procedure proc-${ident}-${target}-\${proc_index}
> @@ -2211,10 +2211,10 @@
>                      }
>                  \"
>                  proc do-$target {} { $origproc $target }
> -                makeuserproc userproc-${ident}-${target}-\${proc_index} \$args
> +                makeuserproc userproc-${ident}-${target}-\${proc_index} \$code
>              "
>          }
> -        proc pre-$target {args} "
> +        proc pre-$target {code} "
>              variable proc_index
>              set proc_index \[llength \[ditem_key $ditem pre\]\]
>              ditem_append $ditem pre proc-pre-${ident}-${target}-\${proc_index}
> @@ -2225,9 +2225,9 @@
>                      return 0
>                  }
>              \"
> -            makeuserproc userproc-pre-${ident}-${target}-\${proc_index} \$args
> +            makeuserproc userproc-pre-${ident}-${target}-\${proc_index} \$code
>          "
> -        proc post-$target {args} "
> +        proc post-$target {code} "
>              variable proc_index
>              set proc_index \[llength \[ditem_key $ditem post\]\]
>              ditem_append $ditem post proc-post-${ident}-${target}-\${proc_index}
> @@ -2238,7 +2238,7 @@
>                      return 0
>                  }
>              \"
> -            makeuserproc userproc-post-${ident}-${target}-\${proc_index} \$args
> +            makeuserproc userproc-post-${ident}-${target}-\${proc_index} \$code
>          "
>      }
>      ditem_append $ditem provides {*}$args

Is this occurrence of $args here still correct or should this be $code as well?



More information about the macports-dev mailing list