From 0f61e0fe0f85547aca8ff2b4549240d68439e54b Mon Sep 17 00:00:00 2001 From: Stefan Schippers Date: Wed, 7 Oct 2020 16:12:33 +0200 Subject: [PATCH] JL fix regression for path resolution on windows, Esc resets manhattan_lines setting --- src/callback.c | 1 + src/xinit.c | 9 +++++++-- src/xschem.tcl | 2 +- src/xschemrc | 44 ++++++++++++++++++++++++++------------------ 4 files changed, 35 insertions(+), 21 deletions(-) diff --git a/src/callback.c b/src/callback.c index 76795788..59e55780 100644 --- a/src/callback.c +++ b/src/callback.c @@ -591,6 +591,7 @@ int callback(int event, int mx, int my, KeySym key, if(semaphore >= 2) break; tcleval("set vertical_move 0; set horizontal_move 0" ); last_command=0; + manhattan_lines = 0; horizontal_move = vertical_move = 0; /* 20171023 */ dbg(1, "callback(): Escape: ui_state=%ld\n", ui_state); if(ui_state & STARTMOVE) diff --git a/src/xinit.c b/src/xinit.c index 09580f55..057aaa14 100644 --- a/src/xinit.c +++ b/src/xinit.c @@ -957,9 +957,14 @@ int Tcl_AppInit(Tcl_Interp *inter) if( !stat("./xschem.tcl", &buf) && !stat("./systemlib", &buf) && !stat("./xschem", &buf)) { running_in_src_dir = 1; tclsetvar("XSCHEM_SHAREDIR",pwd_dir); /* for testing xschem builds in src dir*/ +/* my_snprintf(tmp, S(tmp), "subst .:[file normalize \"%s/../xschem_library/devices\"]", pwd_dir); tcleval(tmp); tclsetvar("XSCHEM_LIBRARY_PATH", tclresult()); +*/ + my_snprintf(tmp, S(tmp), "subst .:[file dirname \"%s\"]/xschem_library/devices", pwd_dir); + tcleval(tmp); + tclsetvar("XSCHEM_LIBRARY_PATH", tclresult()); } else if( !stat(XSCHEM_SHAREDIR, &buf) ) { /* 20180918 */ tclsetvar("XSCHEM_SHAREDIR",XSCHEM_SHAREDIR); /* ... else give up searching, may set later after loading xschemrc */ @@ -992,10 +997,10 @@ int Tcl_AppInit(Tcl_Interp *inter) } else { if (running_in_src_dir ==1) { - my_snprintf(tmp, S(tmp), "[file dirname %s]/src", pwd_dir); + my_snprintf(tmp, S(tmp), "%s/../src", pwd_dir); } else { - my_snprintf(tmp, S(tmp), "[file dirname %s]/share", install_dir); + my_snprintf(tmp, S(tmp), "%s/../share", install_dir); } tclsetvar("XSCHEM_SHAREDIR", tmp); } diff --git a/src/xschem.tcl b/src/xschem.tcl index 5dc77592..af9e14ec 100644 --- a/src/xschem.tcl +++ b/src/xschem.tcl @@ -2652,7 +2652,7 @@ proc abs_sym_path {fname {ext {} } } { } } if { ![string compare $name {}] } { - if { [regexp {^/} $fname] || [regexp {^[a-zA-Z]:} $fname] } { + if { [regexp {^/} $fname] || [regexp {^[a-zA-Z]:} $fname] || [regexp ^$current_dirname $fname]} { set name $fname } else { set name "$current_dirname/$fname" diff --git a/src/xschemrc b/src/xschemrc index 1a44f027..182f07b4 100644 --- a/src/xschemrc +++ b/src/xschemrc @@ -21,31 +21,39 @@ ## xschem system-wide design library paths XSCHEM_LIBRARY_PATH ########################################################################### -# If unset xschem starts with the default set compile time, typically: -# set XSCHEM_LIBRARY_PATH .:~/.xschem/xschem_library:${XSCHEM_SHAREDIR}/xschem_library/devices +# If unset xschem starts with XSCHEM_LIBRARY_PATH set to the default, typically: +# . +# /home/schippes/.xschem/xschem_library +# /home/schippes/share/xschem/xschem_library/devices +# /home/schippes/share/doc/xschem/examples +# /home/schippes/share/doc/xschem/ngspice +# /home/schippes/share/doc/xschem/logic +# /home/schippes/share/doc/xschem/binto7seg +# /home/schippes/share/doc/xschem/pcb +# /home/schippes/share/doc/xschem/rom8k # For testing in build src directory -# -# set XSCHEM_LIBRARY_PATH .:../xschem_library/devices +# if unset following paths are set: +# . +# ../xschem_library/devices -# for testing after installation: +# For testing after installation: # # set XSCHEM_LIBRARY_PATH {} -# append XSCHEM_LIBRARY_PATH :. +# set xschem_doc_dir [file dirname ${XSCHEM_SHAREDIR}]/doc/xschem # append XSCHEM_LIBRARY_PATH :~/.xschem/xschem_library # append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/xschem_library/devices -# append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/../doc/xschem/logic -# append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/../doc/xschem/examples -# append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/../doc/xschem/binto7seg -# append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/../doc/xschem/xTAG -# append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/../doc/xschem/rulz-r8c33 -# append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/../doc/xschem/ngspice -# append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/../doc/xschem/rom8k -# append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/../doc/xschem/pcb -# append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/../doc/xschem/symgen -# append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/../doc/xschem/gschem_import -# append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/../doc/xschem/gschem_import/sym - +# append XSCHEM_LIBRARY_PATH ${xschem_doc_dir}/logic +# append XSCHEM_LIBRARY_PATH ${xschem_doc_dir}/examples +# append XSCHEM_LIBRARY_PATH ${xschem_doc_dir}/binto7seg +# append XSCHEM_LIBRARY_PATH ${xschem_doc_dir}/xTAG +# append XSCHEM_LIBRARY_PATH ${xschem_doc_dir}/rulz-r8c33 +# append XSCHEM_LIBRARY_PATH ${xschem_doc_dir}/ngspice +# append XSCHEM_LIBRARY_PATH ${xschem_doc_dir}/rom8k +# append XSCHEM_LIBRARY_PATH ${xschem_doc_dir}/pcb +# append XSCHEM_LIBRARY_PATH ${xschem_doc_dir}/symgen +# append XSCHEM_LIBRARY_PATH ${xschem_doc_dir}/gschem_import +# append XSCHEM_LIBRARY_PATH ${xschem_doc_dir}/gschem_import/sym # For Windows, use ; instead of :, and enclosed pathname with "" #append XSCHEM_LIBRARY_PATH ";."