From 5969b0f472440144b0641a4e87639c202d4ea936 Mon Sep 17 00:00:00 2001 From: stefan schippers Date: Wed, 29 May 2024 09:41:52 +0200 Subject: [PATCH] proc ev, ev0, to_eng: evaluate expr at global scope so global vars will be expanded correctly ($path) --- XSchemWin/XSchemWix/Product.wxs | 2 +- src/xschem.tcl | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/XSchemWin/XSchemWix/Product.wxs b/XSchemWin/XSchemWix/Product.wxs index ae6fbb59..fdfb95fe 100644 --- a/XSchemWin/XSchemWix/Product.wxs +++ b/XSchemWin/XSchemWix/Product.wxs @@ -1,6 +1,6 @@ - + diff --git a/src/xschem.tcl b/src/xschem.tcl index 0c2a7a44..0ebe7183 100644 --- a/src/xschem.tcl +++ b/src/xschem.tcl @@ -619,7 +619,7 @@ proc from_eng {i} { ## convert number to engineering form proc to_eng {args} { set suffix {} - set i [expr [join $args]] + set i [uplevel #0 expr [join $args]] set absi [expr {abs($i)}] if {$absi == 0.0} { set mult 1 ; set suffix {} @@ -646,9 +646,10 @@ proc to_eng {args} { ## evaluate expression. if expression has errors or does not evaluate return expression as is proc ev {args} { set i [join $args] - if {![catch {expr $i} res]} { + if {![catch {uplevel #0 expr $i} res]} { return [format %.4g $res] } else { + # puts stderr "proc ev: $res" return $args } } @@ -656,9 +657,10 @@ proc ev {args} { ## evaluate expression. if expression has errors or does not evaluate return 0 proc ev0 {args} { set i [join $args] - if {![catch {expr $i} res]} { + if {![catch {uplevel #0 expr $i} res]} { return [format %.4g $res] } else { + # puts stderr "proc ev0: $res" return 0 } }