From c4795b11bc8e06e1d495b6937a7ceff844796848 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 11 Oct 2008 22:06:52 +0000 Subject: (display-warning): Issue a message if called during daemon initialization. --- lisp/emacs-lisp/warnings.el | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) (limited to 'lisp/emacs-lisp/warnings.el') diff --git a/lisp/emacs-lisp/warnings.el b/lisp/emacs-lisp/warnings.el index a6c77d4c5a..fdfe8a9efd 100644 --- a/lisp/emacs-lisp/warnings.el +++ b/lisp/emacs-lisp/warnings.el @@ -268,7 +268,7 @@ See also `warning-series', `warning-prefix-function' and (goto-char warning-series))) (if (nth 2 level-info) (funcall (nth 2 level-info))) - (if noninteractive + (cond (noninteractive ;; Noninteractively, take the text we inserted ;; in the warnings buffer and print it. ;; Do this unconditionally, since there is no way @@ -280,17 +280,28 @@ See also `warning-series', `warning-prefix-function' and (goto-char end) (if (bolp) (forward-char -1)) - (message "%s" (buffer-substring start (point))))) - ;; Interactively, decide whether the warning merits - ;; immediate display. - (or (< (warning-numeric-level level) - (warning-numeric-level warning-minimum-level)) - (warning-suppress-p type warning-suppress-types) - (let ((window (display-buffer buffer))) - (when (and (markerp warning-series) - (eq (marker-buffer warning-series) buffer)) - (set-window-start window warning-series)) - (sit-for 0))))))) + (message "%s" (buffer-substring start (point)))))) + ((and (daemonp) (null after-init-time)) + ;; Warnings assigned during daemon initialization go into + ;; the messages buffer. + (message "%s" + (with-current-buffer buffer + (save-excursion + (goto-char end) + (if (bolp) + (forward-char -1)) + (buffer-substring start (point)))))) + (t + ;; Interactively, decide whether the warning merits + ;; immediate display. + (or (< (warning-numeric-level level) + (warning-numeric-level warning-minimum-level)) + (warning-suppress-p type warning-suppress-types) + (let ((window (display-buffer buffer))) + (when (and (markerp warning-series) + (eq (marker-buffer warning-series) buffer)) + (set-window-start window warning-series)) + (sit-for 0)))))))) ;;;###autoload (defun lwarn (type level message &rest args) -- cgit v1.2.3