aboutsummaryrefslogtreecommitdiff
path: root/working/org-element-cache-persist-bug/README.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-31 12:39:27 -0500
committerCraig Jennings <c@cjennings.net>2026-07-31 12:39:27 -0500
commit0b93863689038a385fd320440ac0a413ce81c4e1 (patch)
tree30dbabae88dfe704236544e5ebb6f6ebd18f4814 /working/org-element-cache-persist-bug/README.org
parent445a0be315f3d6fff585f1558262fb5dacd10d12 (diff)
downloaddotemacs-0b93863689038a385fd320440ac0a413ce81c4e1.tar.gz
dotemacs-0b93863689038a385fd320440ac0a413ce81c4e1.zip
fix(prompts): make destructive confirms one keystrokeHEADmain
I had to kill an Emacs session today over a prompt I could not answer. A second agent session held the selected window while "Overwrite hiroshi.m3u? (yes or no)" waited in another frame, so my keystrokes went to a terminal and the minibuffer stayed empty. Losing unsaved buffers is a far worse outcome than a mis-keyed confirm. So cj/confirm-strong becomes cj/confirm-destructive, and instead of binding use-short-answers to nil for a typed "yes" it reads a single y or n. Two things I kept: - No default. Only y and n answer, so a stray RET or space re-prompts rather than confirming a shutdown. - Pending input is discarded before the read. Without that the change would have been a bad trade: read-char-choice reads the input queue, so a key typed before the prompt painted would confirm instantly, where the old typed-"yes" absorbed it harmlessly. Worth being honest about what this does not fix. One keystroke does not make a prompt reachable when focus is elsewhere, and C-g is still the escape. It lowers the cost of the situation rather than preventing it. Six call sites: shutdown and reboot, shred, playlist overwrite and delete, and the two file overwrites.
Diffstat (limited to 'working/org-element-cache-persist-bug/README.org')
0 files changed, 0 insertions, 0 deletions