From abb698ea63ba5bacc1e2dff9beedd904d31a8da5 Mon Sep 17 00:00:00 2001 From: Stefan Schippers Date: Wed, 14 Oct 2020 11:14:15 +0200 Subject: [PATCH] fix regression: correctly resolve ../../some/path/to/file in abs_sym_path --- src/xschem.tcl | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/xschem.tcl b/src/xschem.tcl index 320ecf08..43c33c1d 100644 --- a/src/xschem.tcl +++ b/src/xschem.tcl @@ -2664,11 +2664,14 @@ proc abs_sym_path {fname {ext {} } } { if { $ext ne {} } { set fname [file rootname $fname]$ext } - # prepend current_dirname to ../file_or_path --> $current_dirname/file_or_path - if { [regexp {^\.\./} $fname ] } { - if { [regexp {^/} $current_dirname] } { - set fname "${current_dirname}[regsub {^\.\.} $fname {}]" + # prepend current_dirname to ../file_or_path --> [file dirname $current_dirname]/file_or_path + if { [regexp {^/} $current_dirname] } { + set tmpdir $current_dirname + while { [regexp {^\.\./} $fname ] } { + set tmpdir [file dirname $tmpdir] + regsub {^\.\./} $fname {} fname } + set fname "${tmpdir}/$fname" # transform ./file_or_path to file_or_path } elseif {[regexp {^\./} $fname ] } { regsub {^\./} $fname {} fname