From xemacs-m  Tue Jun 24 19:23:28 1997
Received: from jagor.srce.hr (hniksic@jagor.srce.hr [161.53.2.130])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id TAA27597
	for <xemacs-beta@xemacs.org>; Tue, 24 Jun 1997 19:23:26 -0500 (CDT)
Received: (from hniksic@localhost)
          by jagor.srce.hr (8.8.5/8.8.4)
	  id CAA01729; Wed, 25 Jun 1997 02:23:28 +0200 (MET DST)
To: XEmacs Developers <xemacs-beta@xemacs.org>
Subject: [PATCH] `log-message-ignore-regexps': Message labeling
X-Attribution: Hrv
X-Face: Mie8:rOV<\c/~z{s.X4A{!?vY7{drJ([U]0O=W/<W*SMo/Mv:58:*_y~ki>xDi&N7XG
        KV^$k0m3Oe/)'e%3=$PCR&3ITUXH,cK>]bci&<qQ>Ff%x_>1`T(+M2Gg/fgndU%k*ft
        [(7._6e0n-V%|%'[c|q:;}td$#INd+;?!-V=c8Pqf}3J
From: Hrvoje Niksic <hniksic@srce.hr>
Date: 25 Jun 1997 02:23:27 +0200
Message-ID: <kigiuz3wmww.fsf@jagor.srce.hr>
Lines: 631
X-Mailer: Gnus v5.4.59/XEmacs 20.3(beta8) - "Copenhagen"

Try this little test:

(let ((i 10000))
  (while (natnump (setq i (1- i)))
    (message "Foo bar baz qux %d" i)))

And then, try this:

(let ((i 10000)
      (log-message-ignore-regexps nil))
  (while (natnump (setq i (1- i)))
    (message "Foo bar baz qux %d" i)))

It is obvious that `log-message-ignore-regexps' slows things down more
than I imagined at first.  However, it would be wrong to simply
discard all those thingies.  So I added a few categorizations, and
created a patch.  Now all that used to be handled by
`log-message-ignore-regexps' will be handled by
`log-message-ignore-labels'.

As for the individual packages, I appeal to the package writers to use 
`display-message' and label their messages.


1997-06-25  Hrvoje Niksic  <hniksic@srce.hr>

	* modes/outl-mouse.el (outline-add-glyphs): Categorize messages.

	* prim/help.el (with-displaying-help-buffer): Categorize messages.

	* prim/simple.el (blink-matching-open): Categorize messages.

	* prim/isearch-mode.el (isearch-done): Categorize messages.
	(isearch-edit-string): Ditto.
	(isearch-message): Ditto.

	* packages/font-lock.el (font-lock-mode): Categorize messages.
	(font-lock-fontify-buffer): Ditto.
	(font-lock-unfontify-region): Ditto.
	(font-lock-fontify-syntactically-region): Ditto.
	(font-lock-fontify-keywords-region): Ditto.

	* prim/process.el (shell-command-on-region): Categorize messages.

	* packages/compile.el (compile-internal): Categorize messages.
	(compilation-sentinel): Ditto.
	(compilation-parse-errors): Ditto.

	* prim/files.el (save-buffer): Categorize messages.
	(basic-save-buffer): Ditto.
	(save-some-buffers): Ditto.
	(not-modified): Ditto.
	(auto-save-mode): Ditto.

	* utils/redo.el (redo): Categorize messages.
	(undo): Ditto.

	* prim/simple.el (log-message-ignore-regexps): Cut down.
	(push-mark): Categorize messages.
	(kill-region): Ditto.
	(append-next-kill): Ditto.
	(set-comment-column): Ditto.
	(blink-matching-open): Ditto.


--- lisp/prim/simple.el.orig	Wed Jun 25 01:07:21 1997
+++ lisp/prim/simple.el	Wed Jun 25 01:54:33 1997
@@ -758,7 +758,7 @@
   (let ((modified (buffer-modified-p))
 	(recent-save (recent-auto-save-p)))
     (or (eq (selected-window) (minibuffer-window))
-	(message "Undo!"))
+	(display-message 'command "Undo!"))
     (or (and (eq last-command 'undo)
 	     (eq (current-buffer) last-undo-buffer)) ; XEmacs
 	(progn (undo-start)
@@ -1155,10 +1155,14 @@
 			(error "The region is not active now")
 		      (error "The mark is not set now")))
   (if verbose (if buffer-read-only
-		  (message "Copying %d characters"
-			   (- (max beg end) (min beg end)))
-		(message "Killing %d characters"
-			 (- (max beg end) (min beg end)))))
+		  (display-message
+		   'command
+		   (format "Copying %d characters"
+			   (- (max beg end) (min beg end))))
+		(display-message
+		 'command
+		 (format "Killing %d characters"
+			 (- (max beg end) (min beg end))))))
   (cond
 
    ;; I don't like this large change in behavior -- jwz
@@ -1267,7 +1271,8 @@
   (if (interactive-p)
       (progn
 	(setq this-command 'kill-region)
-	(message "If the next command is a kill, it will append"))
+	(display-message 'command
+			 "If the next command is a kill, it will append"))
     (setq last-command 'kill-region)))
 
 (defun yank-pop (arg)
@@ -1548,7 +1553,7 @@
                            nil buffer)
               (setcdr (nthcdr (1- global-mark-ring-max) global-mark-ring) nil)))))
   (or nomsg executing-kbd-macro (> (minibuffer-depth) 0)
-      (message "Mark set"))
+      (display-message 'command "Mark set"))
   (if activate-region
       (progn
 	(setq zmacs-region-stays t)
@@ -1825,7 +1830,7 @@
   (if arg
       (progn
         (setq goal-column nil)
-        (message "No goal column"))
+        (display-message 'command "No goal column"))
     (setq goal-column (current-column))
     (message (substitute-command-keys
 	      "Goal column %d (use \\[set-goal-column] with an arg to unset it)")
@@ -2130,10 +2135,14 @@
 	    (re-search-forward comment-start-skip)
 	    (goto-char (match-beginning 0))
 	    (setq comment-column (current-column))
-	    (message "Comment column set to %d" comment-column))
+	    (display-message
+	     'command
+	     (format "Comment column set to %d" comment-column)))
 	  (indent-for-comment))
       (setq comment-column (current-column))
-      (message "Comment column set to %d" comment-column))))
+      (display-message
+       'command
+       (format "Comment column set to %d" comment-column)))))
 
 (defun kill-comment (arg)
   "Kill the comment on this line, if any.
@@ -2577,7 +2586,7 @@
 	;; Disallow missing argument; it's probably a typo for C-x C-f.
 	(t
 	 (error "set-fill-column requires an explicit argument")))
-  (message "fill-column set to %d" fill-column))
+  (display-message 'command "fill-column set to %d" fill-column))
 
 (defcustom comment-multi-line t ; XEmacs - this works well with adaptive fill
   "*Non-nil means \\[indent-new-comment-line] should continue same comment
@@ -2863,43 +2872,45 @@
 			   (auto-show-make-point-visible)
 			   (sit-for blink-matching-delay)))
 		  (goto-char blinkpos)
-		  (message
-		   "Matches %s"
-		   ;; Show what precedes the open in its line, if anything.
-		   (if (save-excursion
-			 (skip-chars-backward " \t")
-			 (not (bolp)))
-		       (buffer-substring (progn (beginning-of-line) (point))
-					 (1+ blinkpos))
-		     ;; Show what follows the open in its line, if anything.
-		     (if (save-excursion
-			   (forward-char 1)
-			   (skip-chars-forward " \t")
-			   (not (eolp)))
-			 (buffer-substring blinkpos
-					   (progn (end-of-line) (point)))
-		       ;; Otherwise show the previous nonblank line,
-		       ;; if there is one.
-		       (if (save-excursion
-			     (skip-chars-backward "\n \t")
-			     (not (bobp)))
-			   (concat
-			    (buffer-substring (progn
-					       (skip-chars-backward "\n \t")
-					       (beginning-of-line)
-					       (point))
-					      (progn (end-of-line)
-						     (skip-chars-backward " \t")
-						     (point)))
-			    ;; Replace the newline and other whitespace with `...'.
-			    "..."
-			    (buffer-substring blinkpos (1+ blinkpos)))
-			 ;; There is nothing to show except the char itself.
-			 (buffer-substring blinkpos (1+ blinkpos))))))))
+		  (display-message
+		   'command
+		   (format
+		    "Matches %s"
+		    ;; Show what precedes the open in its line, if anything.
+		    (if (save-excursion
+			  (skip-chars-backward " \t")
+			  (not (bolp)))
+			(buffer-substring (progn (beginning-of-line) (point))
+					  (1+ blinkpos))
+		      ;; Show what follows the open in its line, if anything.
+		      (if (save-excursion
+			    (forward-char 1)
+			    (skip-chars-forward " \t")
+			    (not (eolp)))
+			  (buffer-substring blinkpos
+					    (progn (end-of-line) (point)))
+			;; Otherwise show the previous nonblank line,
+			;; if there is one.
+			(if (save-excursion
+			      (skip-chars-backward "\n \t")
+			      (not (bobp)))
+			    (concat
+			     (buffer-substring (progn
+						 (skip-chars-backward "\n \t")
+						 (beginning-of-line)
+						 (point))
+					       (progn (end-of-line)
+						      (skip-chars-backward " \t")
+						      (point)))
+			     ;; Replace the newline and other whitespace with `...'.
+			     "..."
+			     (buffer-substring blinkpos (1+ blinkpos)))
+			  ;; There is nothing to show except the char itself.
+			  (buffer-substring blinkpos (1+ blinkpos)))))))))
 	     (cond (mismatch
-		    (message "Mismatched parentheses"))
+		    (display-message 'no-log "Mismatched parentheses"))
 		   ((not blink-matching-paren-distance)
-		    (message "Unmatched parenthesis"))))))))
+		    (display-message 'no-log "Unmatched parenthesis"))))))))
 
 ;Turned off because it makes dbx bomb out.
 (setq blink-paren-function 'blink-matching-open)
@@ -3215,56 +3226,28 @@
 (make-compatible-variable 'message-log-max 'log-message-max-size)
 
 (defvar log-message-ignore-regexps
-  '(;; Often-seen messages
-    "^$"				; empty message
-    "^Mark set$"
-    "^\\(Beginning\\|End\\) of buffer$"
+  '(;; Note: adding entries to this list slows down messaging
+    ;; significantly.  Wherever possible, use message lables.
+
+    ;; Often-seen messages
+    "\\`\\'"				; empty message
+    "\\`\\(Beginning\\|End\\) of buffer\\'"
     "^Quit$"
-    "^Killing [0-9]+ characters$"
-    ;; saving
-    "^Saving file .*\\.\\.\\.$"		; note: cannot ignore ^Wrote, because
-					; it would kill off too much stuff.
-    "^(No changes need to be saved)$"
-    "^(No files need saving)$"
-    ;; undo, with the output of redo.el
-    "^Undo[!.]+$"
-    "^Redo[!.]+$"
-    ;; M-x compile
-    "^Parsing error messages\\.\\.\\."
-    ;; M-!
-    "^(Shell command completed with no output)"
-    ;; font-lock
-    "^Fontifying"
-    ;; isearch
-    "^\\(Failing \\)?\\([Ww]rapped \\)?\\([Rr]egexp \\)?I-search\\( backward\\)?:"
-    "^Mark saved where search started$"
-    ;; menus
-    "^Selecting menu item"
     ;; completions
+    ;; Many packages print this -- impossible to categorize
     "^Making completion list"
-    "^Matches "				; paren-matching message
-    ;; help
-    "^Type .* to \\(remove help\\|restore the other\\) window."
-    "^M-x .* (bound to key"		; teach-extended-commands
-    ;; VM
-    "^\\(Parsing messages\\|Reading attributes\\|Generating summary\\|Building threads\\|Converting\\)\\.\\.\\. [0-9]+$"
-    "^End of message"			; + Gnus
     ;; Gnus
-    "^No news is no news$"
-    "^No more\\( unread\\)? newsgroups$"
-    "^Opening [^ ]+ server\\.\\.\\."
-    "^[^:]+: Reading incoming mail"
-    "^Getting mail from "
-    "^\\(Generating Summary\\|Sorting threads\\|Making sparse threads\\|Scoring\\|Checking new news\\|Expiring articles\\|Sending\\)\\.\\.\\."
-    "^\\(Fetching headers for\\|Retrieving newsgroup\\|Reading active file\\)"
-    "^No more\\( unread\\)? articles"
-    "^Deleting article "
+;    "^No news is no news$"
+;    "^No more\\( unread\\)? newsgroups$"
+;    "^Opening [^ ]+ server\\.\\.\\."
+;    "^[^:]+: Reading incoming mail"
+;    "^Getting mail from "
+;    "^\\(Generating Summary\\|Sorting threads\\|Making sparse threads\\|Scoring\\|Checking new news\\|Expiring articles\\|Sending\\)\\.\\.\\."
+;    "^\\(Fetching headers for\\|Retrieving newsgroup\\|Reading active file\\)"
+;    "^No more\\( unread\\)? articles"
+;    "^Deleting article "
     ;; W3
-    "^Parsed [0-9]+ of [0-9]+ ([0-9]+%)"
-    ;; outl-mouse
-    "^Adding glyphs\\.\\.\\."
-    ;; bbdb
-    "^->"
+;    "^Parsed [0-9]+ of [0-9]+ ([0-9]+%)"
     )
   "List of regular expressions matching messages which shouldn't be logged.
 See `log-message'.  
--- lisp/utils/redo.el.orig	Wed Jun 25 01:27:54 1997
+++ lisp/utils/redo.el	Wed Jun 25 01:28:44 1997
@@ -90,7 +90,7 @@
 	   (eq (cdr buffer-undo-list) pending-undo-list))
        (error "No further undos to redo in this buffer"))
   (or (eq (selected-window) (minibuffer-window))
-      (message "Redo..."))
+      (display-message 'progress "Redo..."))
   (let ((modified (buffer-modified-p))
 	(recent-save (recent-auto-save-p))
 	(old-undo-list buffer-undo-list)
@@ -144,7 +144,7 @@
     (and modified (not (buffer-modified-p))
 	 (delete-auto-save-file-if-necessary recent-save))
     (or (eq (selected-window) (minibuffer-window))
-	(message "Redo!"))
+	(display-message 'progress "Redo!"))
     (setq last-buffer-undo-list buffer-undo-list)))
 
 (defun undo (&optional arg)
@@ -155,7 +155,7 @@
   (let ((modified (buffer-modified-p))
 	(recent-save (recent-auto-save-p)))
     (or (eq (selected-window) (minibuffer-window))
-	(message "Undo..."))
+	(display-message 'progress "Undo..."))
     (or (eq last-buffer-undo-list buffer-undo-list)
 	(and (null (car-safe buffer-undo-list))
 	     (eq last-buffer-undo-list (cdr-safe buffer-undo-list)))
@@ -183,7 +183,7 @@
     (and modified (not (buffer-modified-p))
 	 (delete-auto-save-file-if-necessary recent-save)))
   (or (eq (selected-window) (minibuffer-window))
-      (message "Undo!"))
+      (display-message 'progress "Undo!"))
   (setq last-buffer-undo-list buffer-undo-list))
 
 ;;; redo.el ends here
--- lisp/prim/files.el.orig	Wed Jun 25 01:19:58 1997
+++ lisp/prim/files.el	Wed Jun 25 01:32:58 1997
@@ -2030,8 +2030,9 @@
 	(make-backup-files (or (and make-backup-files (not (eq args 0)))
 			       (memq args '(16 64)))))
     (and modp (memq args '(16 64)) (setq buffer-backed-up nil))
-    (if (and modp large) (message "Saving file %s..."
-				  (buffer-file-name)))
+    (if (and modp large) (display-message
+			  'progress (format "Saving file %s..."
+					    (buffer-file-name))))
     (basic-save-buffer)
     (and modp (memq args '(4 64)) (setq buffer-backed-up nil))))
 
@@ -2165,7 +2166,7 @@
 	  ;; Support VC `implicit' locking.
 	  (vc-after-save)
 	  (run-hooks 'after-save-hook))
-      (message "(No changes need to be saved)"))))
+      (display-message 'no-log "(No changes need to be saved)"))))
 
 ;; This does the "real job" of writing a buffer into its visited file
 ;; and making a backup file.  This is what is normally done
@@ -2342,7 +2343,7 @@
 		  (setq abbrevs-changed nil)
 		  t))))
       (or (> files-done 0) abbrevs-done
-	  (message "(No files need saving)"))))))
+	  (display-message 'no-log "(No files need saving)"))))))
 
 
 (defun not-modified (&optional arg)
@@ -2353,8 +2354,8 @@
 prints a message in the minibuffer.  Instead, use `set-buffer-modified-p'."
   (interactive "_P")
   (if arg ;; rewritten for I18N3 snarfing
-      (message "Modification-flag set")
-    (message "Modification-flag cleared"))
+      (display-message 'command "Modification-flag set")
+    (display-message 'command "Modification-flag cleared"))
   (set-buffer-modified-p arg))
 
 (defun toggle-read-only (&optional arg)
@@ -2773,8 +2774,8 @@
        (setq buffer-saved-size 0))
   (if (interactive-p)
       (if buffer-auto-save-file-name ;; rewritten for I18N3 snarfing
-	  (message "Auto-save on (in this buffer)")
-	(message "Auto-save off (in this buffer)")))
+	  (display-message 'command "Auto-save on (in this buffer)")
+	(display-message 'command "Auto-save off (in this buffer)")))
   buffer-auto-save-file-name)
 
 (defun rename-auto-save-file ()
--- lisp/packages/compile.el.orig	Wed Jun 25 01:34:42 1997
+++ lisp/packages/compile.el	Wed Jun 25 01:37:08 1997
@@ -641,14 +641,18 @@
 	      (setq compilation-in-progress 
 		    (cons proc compilation-in-progress)))
 	  ;; No asynchronous processes available.
-	  (message "Executing `%s'..." command)
+	  (display-message
+	   'progress
+	   (format "Executing `%s'..." command))
 	  ; FSF
 	  ; (setq mode-line-process ":run")
 	  ; (force-mode-line-update)
 	  (sit-for 0)			;; Force redisplay
 	  (let ((status (call-process shell-file-name nil outbuf nil "-c"
 				      command))))
-	  (message "Executing `%s'...done" command)))
+	  (display-message
+	   'progress
+	   (format "Executing `%s'...done" command))))
        (set-buffer buffer-save)))
 
     ;; Make it so the next C-x ` will use this buffer.
@@ -947,9 +951,11 @@
 			       (pos-visible-in-window-p (point-max) window))
 			  nil		; assume that the user will see it...
 			(ding t 'ready)
-			(message "Compilation process completed%s."
+			(display-message
+			 'progress
+			 (format "Compilation process completed%s."
 				 (or estatus " successfully")
-				 ))
+				 )))
 		      ;; Since the buffer and mode line will show that the
 		      ;; process is dead, we can delete it now.  Otherwise it
 		      ;; will stay around until M-x list-processes.
@@ -1629,7 +1635,7 @@
   "Parse the current buffer as grep, cc or lint error messages.
 See variable `compilation-parse-errors-function' for the interface it uses."
   (setq compilation-error-list nil)
-  (message "Parsing error messages...")
+  (display-message 'progress "Parsing error messages...")
   (let (;;text-buffer -- unused
 	orig orig-expanded parent-expanded
 	regexp enter-group leave-group error-group
@@ -1876,11 +1882,13 @@
 	     (error "compilation-parse-errors: known groups didn't match!")))
 
       (when (= (% compilation-num-errors-found message-freq) 0)
-        (message "Parsing error messages...%d (%.0f%% of buffer)"
+        (display-message
+	 'progress
+	 (format "Parsing error messages...%d (%.0f%% of buffer)"
                  compilation-num-errors-found
                  ;; Use floating-point because (* 100 (point)) frequently
                  ;; exceeds the range of Emacs Lisp integers.
-                 (/ (* 100.0 (point)) (point-max))))
+                 (/ (* 100.0 (point)) (point-max)))))
 
 ;;; This is broken - it foils the logic above which is supposed to ensure
 ;;; that all errors for the current file are found before we quit. 
@@ -1893,7 +1901,7 @@
 				    ;; We have searched the whole buffer.
 				    (point-max))))
   (setq compilation-error-list (nreverse compilation-error-list))
-  (message "Parsing error messages...done"))
+  (display-message 'progress "Parsing error messages...done"))
 
 ;; If directory DIR is a subdir of ORIG or of ORIG's parent,
 ;; return a relative name for it starting from ORIG or its parent.
--- lisp/prim/process.el.orig	Wed Jun 25 01:38:38 1997
+++ lisp/prim/process.el	Wed Jun 25 01:38:51 1997
@@ -261,7 +261,8 @@
 			 (count-lines (point-min) (point-max))))))
 	  (cond ((= lines 0)
 		 (if success
-		     (message
+		     (display-message
+		      'command
 		      "(Shell command completed with no output)"))
 		 (kill-buffer buffer))
 		((and success (= lines 1))
--- lisp/packages/font-lock.el.orig	Wed Jun 25 01:42:08 1997
+++ lisp/packages/font-lock.el	Wed Jun 25 01:42:09 1997
@@ -583,7 +583,9 @@
 		 ((or (null maximum-size) (<= (buffer-size) maximum-size))
 		  (font-lock-fontify-buffer))
 		 (font-lock-verbose
-		  (message "Fontifying %s... buffer too big." (buffer-name)))))
+		  (display-message
+		   'command
+		   (format "Fontifying %s... buffer too big." (buffer-name))))))
 	  (font-lock-fontified
 	   (setq font-lock-fontified nil)
 	   (remove-hook 'before-revert-hook 'font-lock-revert-setup t)
@@ -645,7 +647,8 @@
 	  (font-lock-mode 0)))
     (set (make-local-variable 'font-lock-fontified) t)
     (if (and aborted font-lock-verbose)
-	(message "Fontifying %s... aborted." (buffer-name)))
+	(display-message 'command
+			 (format "Fontifying %s... aborted." (buffer-name))))
     )
   (run-hooks 'font-lock-after-fontify-buffer-hook))
 
@@ -725,7 +728,9 @@
 (defun font-lock-unfontify-region (beg end &optional maybe-loudly)
   (if (and maybe-loudly font-lock-verbose
 	   (>= (- end beg) font-lock-message-threshold))
-      (message "Fontifying %s..." (buffer-name)))
+      (display-message
+       'progress
+       (format "Fontifying %s..." (buffer-name))))
   (let ((modified (buffer-modified-p))
 	(buffer-undo-list t) (inhibit-read-only t)
 	buffer-file-name buffer-file-truename)
@@ -976,7 +981,9 @@
       nil
     (if (and font-lock-verbose
 	     (>= (- end start) font-lock-message-threshold))
-	(message "Fontifying %s... (syntactically...)" (buffer-name)))
+	(display-message
+	 'progress
+	 (format "Fontifying %s... (syntactically...)" (buffer-name))))
     (font-lock-unfontify-region start end loudly)
     (goto-char start)
     (if (> end (point-max)) (setq end (point-max)))
@@ -1162,8 +1169,10 @@
       ;;
       ;; Fontify each item in `font-lock-keywords' from `start' to `end'.
       (while keywords
-	(if loudly (message "Fontifying %s... (regexps..%s)" bufname
-			    (make-string (setq count (1+ count)) ?.)))
+	(if loudly (display-message
+		    'progress
+		    (format "Fontifying %s... (regexps..%s)" bufname
+			    (make-string (setq count (1+ count)) ?.))))
 	;;
 	;; Find an occurrence of `matcher' from `start' to `end'.
 	(setq keyword (car keywords) matcher (car keyword))
@@ -1181,7 +1190,9 @@
 	    (font-lock-fontify-anchored-keywords (car highlights) end))
 	  (setq highlights (cdr highlights))))
 	(setq keywords (cdr keywords))))
-    (if loudly (message "Fontifying %s... done." (buffer-name)))))
+    (if loudly (display-message
+		'progress
+		(format "Fontifying %s... done." (buffer-name))))))
 
 
 ;; Various functions.
--- lisp/prim/isearch-mode.el.orig	Wed Jun 25 01:43:48 1997
+++ lisp/prim/isearch-mode.el	Wed Jun 25 01:46:38 1997
@@ -560,7 +560,7 @@
 	  (progn
 	    (push-mark isearch-opoint t nil isearch-buffer)
 	    (or executing-kbd-macro (> (minibuffer-depth) 0)
-		(message "Mark saved where search started"))))
+		(display-message 'command "Mark saved where search started"))))
 	)
     (setq isearch-buffer nil)
     ) ; inhibit-quit is t before here
@@ -670,7 +670,7 @@
 	      ;; word-search mode.  Otherwise unread that character and
 	      ;; read a string the normal way.
 	      (let ((cursor-in-echo-area t))
-		(message "%s" prompt)
+		(display-message 'prompt prompt)
 		(setq event (next-command-event))
 		(if (eq 'isearch-yank-word
 			(lookup-key isearch-mode-map (vector event)))
@@ -1184,7 +1184,7 @@
 	    isearch-message
 	    (isearch-message-suffix c-q-hack)
 	    )))
-    (if c-q-hack m (message "%s" m))))
+    (if c-q-hack m (display-message 'prompt m))))
 
 (defun isearch-message-prefix (&optional c-q-hack nonincremental)
   ;; If about to search, and previous search regexp was invalid,
--- lisp/prim/help.el.orig	Wed Jun 25 01:53:13 1997
+++ lisp/prim/help.el	Wed Jun 25 01:53:35 1997
@@ -390,13 +390,13 @@
               (if help-selects-help-window
                   (select-window helpwin))
               (cond ((eq helpwin (selected-window))
-                     (message
+                     (display-message 'command
                       (substitute-command-keys "Type \\[help-mode-quit] to remove help window, \\[scroll-up] to scroll the help.")))
                     (was-one-window
-                     (message
+                     (display-message 'command
                       (substitute-command-keys "Type \\[delete-other-windows] to remove help window, \\[scroll-other-window] to scroll the help.")))
                     (t
-                     (message
+                     (display-message 'command
                       (substitute-command-keys "Type \\[switch-to-buffer-other-window] to restore the other window, \\[scroll-other-window] to scroll the help."))))))))))
 
 (defun describe-key (key)
--- lisp/modes/outl-mouse.el.orig	Wed Jun 25 01:55:13 1997
+++ lisp/modes/outl-mouse.el	Wed Jun 25 01:56:18 1997
@@ -438,17 +438,23 @@
   "Add annotations and glyphs to all heading lines that don't have them."
   (interactive)
   (save-excursion
-    (and outline-scanning-message (message outline-scanning-message 0))
+    (and outline-scanning-message (display-message
+				   'progress
+				   (format outline-scanning-message 0)))
     (goto-char (point-min))
     (if (not (outline-on-heading-p)) (outline-next-visible-heading-safe))
     (while 
 	(progn
 	  (outline-heading-add-glyph-1)
 	  (and outline-scanning-message 
-	       (message outline-scanning-message (fume-relative-position)))
+	       (display-message
+		'progress
+		(format outline-scanning-message (fume-relative-position))))
 	  (outline-next-visible-heading-safe)))
     (and outline-scanning-message 
-	 (message "%s done" (format outline-scanning-message 100)))))
+	 (display-message
+	  'progress
+	  (format "%s done" (format outline-scanning-message 100))))))
 
 (defun outline-delete-glyphs ()
   "Remove annotations and glyphs from heading lines."


-- 
Hrvoje Niksic <hniksic@srce.hr> | Student at FER Zagreb, Croatia
--------------------------------+--------------------------------
I'm sure they'll listen to reason! -- Neal Stevenson, _Snow Crash_

