From 04eee411f3d9005644583e5b5c5c22fbe943bab0 Mon Sep 17 00:00:00 2001 From: Stefan Frederik Date: Sun, 10 Oct 2021 00:44:01 +0200 Subject: [PATCH] better implementation of prevous commit --- src/save.c | 2 +- src/xinit.c | 33 ++++++++++++++++----------------- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/save.c b/src/save.c index 5b307942..cdc869b0 100644 --- a/src/save.c +++ b/src/save.c @@ -1057,7 +1057,7 @@ void load_schematic(int load_symbols, const char *filename, int reset_undo) /* 2 if( (fd=fopen(name,fopen_read_mode))== NULL) { fprintf(errfp, "load_schematic(): unable to open file: %s, filename=%s\n", name, filename ? filename : ""); - my_snprintf(msg, S(msg), "alert_ {Unable to open file: %s}", filename ? filename: "(null)"); + my_snprintf(msg, S(msg), "update; alert_ {Unable to open file: %s}", filename ? filename: "(null)"); tcleval(msg); clear_drawing(); } else { diff --git a/src/xinit.c b/src/xinit.c index 992faa2a..41dcc03e 100644 --- a/src/xinit.c +++ b/src/xinit.c @@ -1581,25 +1581,24 @@ int Tcl_AppInit(Tcl_Interp *inter) char f[PATH_MAX]; #ifdef __unix__ - if(filename[0] == '~' && filename[1] == '/') { - my_snprintf(f, S(f), "%s%s", home_dir, filename + 1); - } else if(filename[0] == '.' && filename[1] == '/') { - my_snprintf(f, S(f), "%s%s", pwd_dir, filename + 1); - } else if(filename[0] !='/') { - my_snprintf(f, S(f), "%s/%s", pwd_dir, filename); - } else { - my_snprintf(f, S(f), "%s", filename); - } + if(filename[0] == '~' && filename[1] == '/') { + my_snprintf(f, S(f), "%s%s", home_dir, filename + 1); + } else if(filename[0] == '.' && filename[1] == '/') { + my_snprintf(f, S(f), "%s%s", pwd_dir, filename + 1); + } else if(filename[0] !='/') { + my_snprintf(f, S(f), "%s/%s", pwd_dir, filename); + } else { + my_snprintf(f, S(f), "%s", filename); + } #else - my_strncpy(f, abs_sym_path(filename, ""), S(f)); + my_strncpy(f, abs_sym_path(filename, ""), S(f)); #endif - dbg(1, "Tcl_AppInit(): filename %s given, removing symbols\n", filename); - remove_symbols(); - /* if do_netlist=1 call load_schematic with 'reset_undo=0' avoiding call - to tcl is_xschem_file that could change netlist_type to symbol */ - tcleval("update"); - load_schematic(1, f, !do_netlist); - Tcl_VarEval(interp, "update_recent_file {", f, "}", NULL); + dbg(1, "Tcl_AppInit(): filename %s given, removing symbols\n", filename); + remove_symbols(); + /* if do_netlist=1 call load_schematic with 'reset_undo=0' avoiding call + to tcl is_xschem_file that could change netlist_type to symbol */ + load_schematic(1, f, !do_netlist); + Tcl_VarEval(interp, "update_recent_file {", f, "}", NULL); } else if(!tcl_script[0]) { char * tmp; char filename[PATH_MAX];