aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-23 20:20:17 -0500
committerCraig Jennings <c@cjennings.net>2026-05-23 20:20:17 -0500
commit32393c0eb7d1c071cb491b9c7c97c575aa27a3b7 (patch)
tree9efbf218e024f4c849e28dff514a7d940cfff9ba
parent4a7927bf7352e3e626dfb596a70bec9d3bc532eb (diff)
downloaddotemacs-32393c0eb7d1c071cb491b9c7c97c575aa27a3b7.tar.gz
dotemacs-32393c0eb7d1c071cb491b9c7c97c575aa27a3b7.zip
docs(todo): close broad/misleading file-op clarification
-rw-r--r--todo.org16
1 files changed, 2 insertions, 14 deletions
diff --git a/todo.org b/todo.org
index 60e69707..3dd83f05 100644
--- a/todo.org
+++ b/todo.org
@@ -2416,21 +2416,9 @@ Closed the four injection-quoting cases. git-clone-clipboard-url now validates t
=cj/dwim-shell-commands-concatenate-videos= built the ffmpeg concat list with =echo '<<*>>' | tr ' ' '\n' | sed 's/^/file /'=, which split on spaces and broke on quotes. Extracted =cj/dwim-shell--build-concat-filelist=, which renders each path as an escaped =file '...'= line (single quotes escaped as ='\''=), writes it to a temp file in Elisp, and runs =ffmpeg -f concat -i <quoted-listfile>= with a trailing =; rm -f= to clean up after the process exits. =<<*>>= stays only as an inert trailing shell comment so dwim-shell still runs one command over all marked files. 3 ERT tests cover plain paths, spaces, and an embedded quote.
-***** TODO [#B] Clarify broad or misleading file-operation commands :safety:bug:
+***** 2026-05-23 Sat @ 20:17:00 -0500 Clarified broad/misleading file-operation commands
-Two dwim-shell commands look broader or weaker than their names suggest:
-- =cj/dwim-shell-commands-remove-empty-directories= runs
- =find . -type d -empty -delete= from the current directory, not from the marked
- files.
-- =cj/dwim-shell-commands-secure-delete= calls =shred= without =-u=, so it may
- overwrite file contents but leave the directory entry in place.
-
-Expected outcome:
-- Scope empty-directory cleanup to an explicit selected root and show that root
- in the confirmation prompt.
-- Decide whether secure delete should actually remove files with =shred -u= or
- be renamed to describe overwrite-only behavior.
-- Add tests around command strings or extract small pure builders.
+=remove-empty-directories= ran =find . -type d -empty -delete= from the ambient current directory. Now it prompts for an explicit root (via =read-directory-name=), names that root in the confirmation, and runs =find <quoted-root> ...= built by =cj/dwim-shell--empty-dirs-command= (2 ERT tests cover the command shape + space quoting). =secure-delete= called =shred= without =-u=, overwriting file contents but leaving the file in place despite the name and the "permanently destroy" prompt; added =-u= (=shred -vfzu=) so it actually unlinks. Both use the inert =<<*>>= comment trick for single-execution.
***** TODO [#B] Quote X11 and audio recording command paths :bug:solo: