Refactor quiet! to be less destructive

It's possible for the debugger to be invoked from inside code wrapped in
a (quiet! ...) call. The debugger pauses Emacs in a broken state where
the functions locally rebound by quiet! (e.g. message, load-file,
write-region, etc) are never returned to their original definitions.

This attempts to reduce that probabilityby changing how quiet! silences
code. Rather than silencing them completely, they will be logged
to *Messages* but not displayed in the echo area.

Also, quiet! is now used less, where it isn't strictly needed (or where
inhibit-message is sufficient).
This commit is contained in:
Henrik Lissner 2018-09-27 23:45:32 -04:00
parent 8a8b5c6089
commit 15991b5639
6 changed files with 24 additions and 21 deletions

View file

@ -364,10 +364,10 @@ another level of headings on each invocation."
(defun +org|realign-table-maybe ()
"Auto-align table under cursor and re-calculate formulas."
(when (and (org-at-table-p) org-table-may-need-update)
(let ((pt (point)))
(quiet!
(org-table-recalculate)
(if org-table-may-need-update (org-table-align)))
(let ((pt (point))
(inhibit-message t))
(org-table-recalculate)
(if org-table-may-need-update (org-table-align))
(goto-char pt))))
;;;###autoload