diff options
author | Bart Schaefer <schaefer@zsh.org> | 2022-04-30 11:21:03 -0700 |
---|---|---|
committer | Bart Schaefer <schaefer@zsh.org> | 2022-04-30 11:21:03 -0700 |
commit | e127ceaae87414588d4c839fc4cc04f02c2ed8c5 (patch) | |
tree | 32afeea362f1961770bd3086b537bbb8f8fa4fa9 | |
parent | 8181708feb35c647aa9b9692875a1ebf893ade6b (diff) | |
download | zsh-e127ceaae87414588d4c839fc4cc04f02c2ed8c5.tar.gz zsh-e127ceaae87414588d4c839fc4cc04f02c2ed8c5.tar.xz zsh-e127ceaae87414588d4c839fc4cc04f02c2ed8c5.zip |
50149: Remove all remaining =(...) files at shell exit
-rw-r--r-- | Etc/BUGS | 2 | ||||
-rw-r--r-- | Src/builtin.c | 1 | ||||
-rw-r--r-- | Src/jobs.c | 12 |
3 files changed, 13 insertions, 2 deletions
diff --git a/Etc/BUGS b/Etc/BUGS index befae4477..e58fee721 100644 --- a/Etc/BUGS +++ b/Etc/BUGS @@ -48,8 +48,6 @@ related, probably obsolete, vared special case for $TERM set to "emacs". ------------------------------------------------------------------------ 47561: [PATCH v4] vcs_info: choose backend by basedir ------------------------------------------------------------------------ -39319: () { exit } =(:) doesn't clean up the tempfile ------------------------------------------------------------------------- 48091: Bug in compdescribe with matcher 'b:-=+' ------------------------------------------------------------------------ users/26071: Strange behavior about option completion of `git push #` diff --git a/Src/builtin.c b/Src/builtin.c index b93466ba5..1cef7cce8 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -5860,6 +5860,7 @@ zexit(int val, enum zexit_t from_where) /* send SIGHUP to any jobs left running */ killrunjobs(from_where == ZEXIT_SIGNAL); } + cleanfilelists(); if (isset(RCS) && interact) { if (!nohistsave) { int writeflags = HFILE_USE_OPTIONS; diff --git a/Src/jobs.c b/Src/jobs.c index 85d4c4d1f..a91ef787f 100644 --- a/Src/jobs.c +++ b/Src/jobs.c @@ -1368,6 +1368,18 @@ deletefilelist(LinkList file_list, int disowning) /**/ void +cleanfilelists(void) +{ + int i; + + DPUTS(shell_exiting >= 0, "BUG: cleanfilelists() before exit"); + + for (i = 1; i <= maxjob; i++) + deletefilelist(jobtab[i].filelist, 0); +} + +/**/ +void freejob(Job jn, int deleting) { struct process *pn, *nx; |