From a0da5c7b51e0a5f48d5b11778dc9d317b1f9ae63 Mon Sep 17 00:00:00 2001 From: stefan schippers Date: Fri, 10 Jan 2025 17:14:13 +0100 Subject: [PATCH] fix resolution of symbol references like: symbolgen.tcl(buf), when descending into symbol correctly recognize generator and descend into generated symbol --- src/save.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/save.c b/src/save.c index 4bff253d..f103e049 100644 --- a/src/save.c +++ b/src/save.c @@ -3446,7 +3446,7 @@ int load_schematic(int load_symbols, const char *fname, int reset_undo, int aler int generator = 0; if(is_generator(fname)) generator = 1; my_strncpy(name, fname, S(name)); - dbg(1, "load_schematic(): fname=%s\n", fname); + dbg(0, "load_schematic(): fname=%s\n", fname); /* remote web object specified */ if(is_from_web(fname) && xschem_web_dirname[0]) { /* download into ${XSCHEM_TMP_DIR}/xschem_web */ @@ -5152,7 +5152,11 @@ void descend_symbol(void) } if(!sympath || stat(sympath, &buf)) { /* not found */ dbg(1, "descend_symbol: not found: %s\n", sympath); - my_strdup2(_ALLOC_ID_, &sympath, abs_sym_path(tcl_hook2(name), "")); + if(is_generator(name)) { + my_strdup2(_ALLOC_ID_, &sympath, tcl_hook2(name)); + } else { + my_strdup2(_ALLOC_ID_, &sympath, abs_sym_path(tcl_hook2(name), "")); + } } dbg(1, "descend_symbol(): name=%s, sympath=%s, dirname=%s\n", name, sympath, xctx->current_dirname); ++xctx->currsch; /* increment level counter */