summaryrefslogtreecommitdiff
path: root/Src/signals.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/signals.c')
-rw-r--r--Src/signals.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/Src/signals.c b/Src/signals.c
index 2de57434a..a7176771a 100644
--- a/Src/signals.c
+++ b/Src/signals.c
@@ -811,8 +811,11 @@ dosavetrap(int sig, int level)
newshf->node.nam = ztrdup(shf->node.nam);
newshf->node.flags = shf->node.flags;
newshf->funcdef = dupeprog(shf->funcdef, 0);
- /* Assume this is a real filename, don't use dircache */
- newshf->filename = ztrdup(shf->filename);
+ if (shf->node.flags & PM_LOADDIR) {
+ dircache_set(&newshf->filename, shf->filename);
+ } else {
+ newshf->filename = ztrdup(shf->filename);
+ }
if (shf->sticky) {
newshf->sticky = sticky_emulation_dup(shf->sticky, 0);
} else