changeset 97793:c8ff5ed1859f

(msdos-previous-message): New variable. (msdos-show-help): New function. (msdos-initialize-window-system): Set show-help-function to msdos-show-help.
author Eli Zaretskii <eliz@gnu.org>
date Thu, 28 Aug 2008 20:04:45 +0000
parents 670f2e2d74a2
children e1414485c149
files lisp/term/pc-win.el
diffstat 1 files changed, 27 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/term/pc-win.el	Thu Aug 28 19:35:47 2008 +0000
+++ b/lisp/term/pc-win.el	Thu Aug 28 20:04:45 2008 +0000
@@ -255,6 +255,31 @@
 (fset 'set-cursor-color 'ignore)	; Hardware determined by char under.
 (fset 'set-border-color 'ignore)	; Not useful.
 
+(defvar msdos-previous-message nil
+  "The content of the echo area before help echo was displayed.")
+
+(defun msdos-show-help (help)
+  "Function installed as `show-help-function' on MSDOS frames."
+  (when (and (not (window-minibuffer-p)) ;Don't overwrite minibuffer contents.
+             ;; Don't know how to reproduce it in Elisp:
+             ;; Don't overwrite a keystroke echo.
+             ;; (NILP (echo_message_buffer) || ok_to_overwrite_keystroke_echo)
+             (not cursor-in-echo-area)) ;Don't overwrite a prompt.
+    (cond
+     ((stringp help)
+      (unless msdos-previous-message
+        (setq msdos-previous-message (current-message)))
+      (let ((message-truncate-lines t)
+            (message-log-max nil))
+        (message "%s" (replace-regexp-in-string "\n" ", " help))))
+     ((stringp msdos-previous-message)
+      (let ((message-log-max nil))
+        (message "%s" msdos-previous-message)
+        (setq msdos-previous-message nil)))
+     (t
+      (message nil)))))
+
+
 ;; Initialization.
 ;; ---------------------------------------------------------------------------
 ;; This function is run, by faces.el:tty-create-frame-with-faces, only
@@ -297,6 +322,8 @@
   (msdos-face-setup)
   ;; Set up the initial frame.
   (msdos-setup-initial-frame)
+  ;; Help echo is displayed in the echo area.
+  (setq show-help-function 'msdos-show-help)
   ;; We want to delay the codepage-related setup until after user's
   ;; .emacs is processed, because people might define their
   ;; `dos-codepage-setup-hook' there.