From 06f0ce4259890fe97fc191ba58598ea9ac571cc3 Mon Sep 17 00:00:00 2001 From: "R. Timothy Edwards" Date: Tue, 23 Jun 2026 10:53:47 -0400 Subject: [PATCH] One correction to the previous commit to avoid running Tk_RestrictEvents() when in batch mode (no graphics, therefore no Tk); otherwise, this causes magic to segfault. --- cif/CIFhier.c | 6 ++++-- extract/ExtSubtree.c | 6 ++++-- lef/defRead.c | 7 +++++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/cif/CIFhier.c b/cif/CIFhier.c index 8b764140..d0b6c73b 100644 --- a/cif/CIFhier.c +++ b/cif/CIFhier.c @@ -731,7 +731,8 @@ CIFGenSubcells( Tk_RestrictProc *oldProc; ClientData oldArg; - oldProc = Tk_RestrictEvents(RestrictInputProc, (ClientData)NULL, &oldArg); + if (SigInterruptOnSigIO != -1) /* Check for batch mode */ + oldProc = Tk_RestrictEvents(RestrictInputProc, (ClientData)NULL, &oldArg); #endif /* MAGIC_WRAPPER */ UndoDisable(); @@ -884,7 +885,8 @@ CIFGenSubcells( #ifdef MAGIC_WRAPPER /* Restore full event access */ - Tk_RestrictEvents(oldProc, oldArg, &oldArg); + if (SigInterruptOnSigIO != -1) /* Check for batch mode */ + Tk_RestrictEvents(oldProc, oldArg, &oldArg); #endif /* MAGIC_WRAPPER */ UndoEnable(); diff --git a/extract/ExtSubtree.c b/extract/ExtSubtree.c index 5ae6f5bb..9d9ccb69 100644 --- a/extract/ExtSubtree.c +++ b/extract/ExtSubtree.c @@ -189,7 +189,8 @@ extSubtree(parentUse, reg, f) Tk_RestrictProc *oldProc; ClientData oldArg; - oldProc = Tk_RestrictEvents(RestrictInputProc, (ClientData)NULL, &oldArg); + if (SigInterruptOnSigIO != -1) /* Check for batch mode */ + oldProc = Tk_RestrictEvents(RestrictInputProc, (ClientData)NULL, &oldArg); #endif /* MAGIC_WRAPPER */ /* Use the display timer to force a 5-second progress check */ @@ -385,7 +386,8 @@ done: #ifdef MAGIC_WRAPPER /* Restore full event access */ - Tk_RestrictEvents(oldProc, oldArg, &oldArg); + if (SigInterruptOnSigIO != -1) /* Check for batch mode */ + Tk_RestrictEvents(oldProc, oldArg, &oldArg); #endif /* MAGIC_WRAPPER */ } diff --git a/lef/defRead.c b/lef/defRead.c index 46c59b73..850048af 100644 --- a/lef/defRead.c +++ b/lef/defRead.c @@ -27,6 +27,7 @@ static const char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magi #include "utils/hash.h" #include "utils/undo.h" #include "utils/utils.h" +#include "utils/signals.h" #include "database/database.h" #include "windows/windows.h" #include "dbwind/dbwind.h" @@ -2532,7 +2533,8 @@ DefRead( * corrupt the database during DEF reads. */ - oldProc = Tk_RestrictEvents(RestrictInputProc, (ClientData)NULL, &oldArg); + if (SigInterruptOnSigIO != -1) /* Check for batch mode */ + oldProc = Tk_RestrictEvents(RestrictInputProc, (ClientData)NULL, &oldArg); #endif /* MAGIC_WRAPPER */ /* Initialize */ @@ -2758,7 +2760,8 @@ DefRead( #ifdef MAGIC_WRAPPER /* Restore full event access */ - Tk_RestrictEvents(oldProc, oldArg, &oldArg); + if (SigInterruptOnSigIO != -1) /* Check for batch mode */ + Tk_RestrictEvents(oldProc, oldArg, &oldArg); #endif /* MAGIC_WRAPPER */ return rootDef;