]> git.eshelyaron.com Git - emacs.git/commitdiff
(msdos-previous-message): New variable.
authorEli Zaretskii <eliz@gnu.org>
Thu, 28 Aug 2008 20:05:54 +0000 (20:05 +0000)
committerEli Zaretskii <eliz@gnu.org>
Thu, 28 Aug 2008 20:05:54 +0000 (20:05 +0000)
(msdos-show-help): New function.
(msdos-initialize-window-system): Set show-help-function to msdos-show-help.

lisp/ChangeLog
lisp/term/pc-win.el

index bb130c2f1e013602a2f499e15559a18adb809d77..e8c93592c0222ae74ae0edb22ef2b57740124fb3 100644 (file)
@@ -1,3 +1,10 @@
+2008-08-28  Eli Zaretskii  <eliz@gnu.org>
+
+       * term/pc-win.el (msdos-previous-message): New variable.
+       (msdos-show-help): New function.
+       (msdos-initialize-window-system): Set show-help-function to
+       msdos-show-help.
+x
 2008-04-09  Lennart Borgman  <lennart.borgman@gmail.com>
 
        * emacs-lisp/debug.el (debug): When killing a noninteractive
index 87a37f31d8888d56e1e49035f3c6c3b404e258ca..2e9ce0d27a62e215abfba0c0bf46aae531709614 100644 (file)
@@ -255,6 +255,31 @@ are fixed-pitch."
 (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 @@ Errors out because it is not supposed to be called, ever."
   (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.