From ce5d9e40a6dd8638a2c8fa203a9527111da5edc6 Mon Sep 17 00:00:00 2001 From: Stefan Frederik Date: Fri, 16 Apr 2021 16:27:32 +0200 Subject: [PATCH] pdf and png export: handle filenames with spaces in output filters --- scconfig/src/scripts/Makefile.plugin | 6 +++++- scconfig/src/scripts/scripts.c | 2 ++ scconfig/src/scripts/scripts.h | 2 ++ src/draw.c | 6 +++--- src/psprint.c | 4 ++-- src/scheduler.c | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/scconfig/src/scripts/Makefile.plugin b/scconfig/src/scripts/Makefile.plugin index e3943110..e198f498 100644 --- a/scconfig/src/scripts/Makefile.plugin +++ b/scconfig/src/scripts/Makefile.plugin @@ -14,7 +14,8 @@ SCRIPT_OBJS = \ $(BIN)/scripts/find_funlisp.o \ $(BIN)/scripts/find_duktape.o \ $(BIN)/scripts/find_fungw.o \ - $(BIN)/scripts/find_m4.o + $(BIN)/scripts/find_m4.o \ + $(BIN)/scripts/find_welltype.o $(BIN)/scripts/scripts.o: $(SRC)/scripts/scripts.c $(CC) $(CFLAGS) -c $(SRC)/scripts/scripts.c -o $(BIN)/scripts/scripts.o @@ -52,6 +53,9 @@ $(BIN)/scripts/find_stutter.o: $(SRC)/scripts/find_stutter.c $(SRC)/scripts/scri $(BIN)/scripts/find_m4.o: $(SRC)/scripts/find_m4.c $(SRC)/scripts/scripts.h $(CC) $(CFLAGS) -c $(SRC)/scripts/find_m4.c -o $(BIN)/scripts/find_m4.o +$(BIN)/scripts/find_welltype.o: $(SRC)/scripts/find_welltype.c $(SRC)/scripts/scripts.h + $(CC) $(CFLAGS) -c $(SRC)/scripts/find_welltype.c -o $(BIN)/scripts/find_welltype.o + $(BIN)/scripts/find_duktape.o: $(SRC)/scripts/find_duktape.c $(SRC)/scripts/scripts.h $(CC) $(CFLAGS) -c $(SRC)/scripts/find_duktape.c -o $(BIN)/scripts/find_duktape.o diff --git a/scconfig/src/scripts/scripts.c b/scconfig/src/scripts/scripts.c index fb3f9bdd..eb43be53 100644 --- a/scconfig/src/scripts/scripts.c +++ b/scconfig/src/scripts/scripts.c @@ -42,6 +42,8 @@ void deps_scripts_init() dep_add("libs/script/funlisp/*", find_script_funlisp); dep_add("libs/script/duktape/*", find_script_duktape); dep_add("libs/script/m4/bin/*", find_script_m4); + dep_add("libs/script/welltype/*", find_script_welltype); + dep_add("libs/script/welltype/wtc/*", find_script_wtc); dep_add("libs/script/fungw/presents", find_script_fungw); dep_add("libs/script/fungw/user_call_ctx/*", find_script_fungw_user_call_ctx); diff --git a/scconfig/src/scripts/scripts.h b/scconfig/src/scripts/scripts.h index 0e00a3f1..356e834f 100644 --- a/scconfig/src/scripts/scripts.h +++ b/scconfig/src/scripts/scripts.h @@ -30,3 +30,5 @@ int find_script_fungw_user_call_ctx(const char *name, int logdepth, int fatal); int find_script_fungw_cfg_pupdir(const char *name, int logdepth, int fatal); int find_script_fungw_all(const char *name, int logdepth, int fatal); int find_script_m4(const char *name, int logdepth, int fatal); +int find_script_welltype(const char *name, int logdepth, int fatal); +int find_script_wtc(const char *name, int logdepth, int fatal); diff --git a/src/draw.c b/src/draw.c index ad380fb7..9b880fc5 100644 --- a/src/draw.c +++ b/src/draw.c @@ -82,16 +82,16 @@ void print_image() XpmWriteFileFromPixmap(display, "plot.xpm", xctx->save_pixmap,0, NULL ); /* .gz ???? */ dbg(1, "print_image(): Window image saved\n"); if(plotfile[0]) { - my_snprintf(cmd, S(cmd), "convert_to_png plot.xpm %s", plotfile); + my_snprintf(cmd, S(cmd), "convert_to_png plot.xpm {%s}", plotfile); tcleval(cmd); } else tcleval( "convert_to_png plot.xpm plot.png"); #else char *psfile=NULL; create_ps(&psfile); if(plotfile[0]) { - my_snprintf(cmd, S(cmd), "convert_to_png %s %s", psfile, plotfile); + my_snprintf(cmd, S(cmd), "convert_to_png {%s} {%s}", psfile, plotfile); tcleval(cmd); - } else tcleval( "convert_to_png %s plot.png", psfile); + } else tcleval( "convert_to_png {%s} plot.png", psfile); #endif my_strncpy(plotfile,"", S(plotfile)); draw_grid=save_draw_grid; diff --git a/src/psprint.c b/src/psprint.c index da3d4c36..38a7239d 100644 --- a/src/psprint.c +++ b/src/psprint.c @@ -880,9 +880,9 @@ void ps_draw(void) } create_ps(&psfile); if(plotfile[0]) { - my_snprintf(tmp, S(tmp), "convert_to_pdf %s %s", psfile, plotfile); + my_snprintf(tmp, S(tmp), "convert_to_pdf {%s} {%s}", psfile, plotfile); } else { - my_snprintf(tmp, S(tmp), "convert_to_pdf %s plot.pdf", psfile); + my_snprintf(tmp, S(tmp), "convert_to_pdf {%s} plot.pdf", psfile); } my_strncpy(plotfile,"", S(plotfile)); tcleval( tmp); diff --git a/src/scheduler.c b/src/scheduler.c index 3f12987c..fcc21aee 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -1700,7 +1700,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg return TCL_ERROR; } if(argc >= 4) { - Tcl_VarEval(interp, "file normalize ", argv[3], NULL); + Tcl_VarEval(interp, "file normalize \"", argv[3], "\"", NULL); my_strncpy(plotfile, Tcl_GetStringResult(interp), S(plotfile)); }