> On Nov 4, 2022, at 23:09, Stefan Monnier wrote: > > I'm glad we found a way to make the code work, apparently, but > Here we need a comment explaining why we do this gymnastic of > `safe_call` + `inhibit_quit` + `waiting_for_input`. > It's very unusual to have to do that. Thanks for the pointer, this indeed turned out unnecessary (and dangerous). A tester informed me of a problem in the v3 patch: safe_call (0, Qns_in_echo_area) is incorrect. The 0 should be 1, or nargs will be -1 for funcall_general. This will cause an error to be signaled, which explains why `waiting_for_input` has to be masked. [ I guess we could add an assertion that numargs >= 0 in funcall_general or somewhere else? ] This patch should be correct even without the ugly `waiting_for_input` hack. I’ve been running patched Emacs for some time without issues. With the current understanding of the bug, I guess the comment line could be /* Protect against throw-on-input. */ WDYT?