* =(...) on LHS of pipeline leaks tempfiles
@ 2020-07-05 15:05 Daniel Shahaf
0 siblings, 0 replies; only message in thread
From: Daniel Shahaf @ 2020-07-05 15:05 UTC (permalink / raw)
To: zsh-workers
In «command true =(true) =(true) | :», the tempfiles created by the two
=(…) substitutions aren't removed.
Test case:
diff --git a/Test/D03procsubst.ztst b/Test/D03procsubst.ztst
index 68a68ef6e..3d4931e48 100644
--- a/Test/D03procsubst.ztst
+++ b/Test/D03procsubst.ztst
@@ -160,3 +160,12 @@
$ZTST_testdir/../Src/zsh -df -o shfileexpansion -c 'cat =(echo hi)'
0:EQUALS expansion followed by =(...) (sh ordering) should work
>hi
+
+ () {
+ local TMPPREFIX=$PWD/tmp
+ command true =(true) =(true) | :
+ print -rC1 -- $TMPPREFIX*(N)
+ }
+0f:external command with =(...) on LHS of pipeline cleans up its tempfiles
+# (Expected result: no output.)
+
Its output:
/home/daniel/src/zsh/./Test/D03procsubst.ztst: starting.
--- /tmp/zsh.ztst.21317/ztst.out 2020-07-05 14:51:27.564872915 +0000
+++ /tmp/zsh.ztst.21317/ztst.tout 2020-07-05 14:51:27.576872865 +0000
@@ -0,0 +1,2 @@
+/tmp/zsh/Test/procsubst.tmp/tmp7CIMPd
+/tmp/zsh/Test/procsubst.tmp/tmpEiQwks
Test /home/daniel/src/zsh/./Test/D03procsubst.ztst failed: output differs from expected as shown above for:
() {
local TMPPREFIX=$PWD/tmp
command true =(true) =(true) | :
for i in $TMPPREFIX*(N) ; do print -r -- $i; done
}
Was testing: external command with =(...) cleans up its tempfiles
I did find this bit in the manual:
Another problem arises any time a job with a substitution that requires
a temporary file is disowned by the shell, including the case where
`tt(&!)' or `tt(&|)' appears at the end of a command containing a
substitution. In that case the temporary file will not be cleaned up as
the shell no longer has any memory of the job. A workaround is to use
a subshell, for example,
example(LPAR()mycmd =(myoutput)RPAR() &!)
but it didn't seem applicable.
Cheers,
Daniel
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-07-05 15:06 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-05 15:05 =(...) on LHS of pipeline leaks tempfiles Daniel Shahaf
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).