<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/tests/test-dwim-shell-config-concat.el, branch main</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-05-24T01:01:25+00:00</updated>
<entry>
<title>fix(dwim-shell): build video-concat filelist in elisp</title>
<updated>2026-05-24T01:01:25+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-24T01:01:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=5de470b1030c932b4e99ce685c0f27078a5db428'/>
<id>urn:sha1:5de470b1030c932b4e99ce685c0f27078a5db428</id>
<content type='text'>
cj/dwim-shell-commands-concatenate-videos built the ffmpeg concat list with echo '&lt;&lt;*&gt;&gt;' | tr ' ' '\n' | sed 's/^/file /'. That splits on spaces, so any video whose name contains a space produced a broken list, and a name with a quote broke the echo outright.

I extracted cj/dwim-shell--build-concat-filelist, which renders each path as an escaped file '...' line. I write that list to a temp file and run ffmpeg against the quoted listfile, with a trailing rm to clean up after the process exits. The &lt;&lt;*&gt;&gt; token stays only as an inert shell comment, since dwim-shell needs it to run one command over all marked files instead of once per file.
</content>
</entry>
</feed>
