emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] scratch/inhibit-message3 841fe8d: Add a new `inhibit-messa


From: Oleh Krehel
Subject: [Emacs-diffs] scratch/inhibit-message3 841fe8d: Add a new `inhibit-message' variable
Date: Tue, 21 Apr 2015 18:53:27 +0000

branch: scratch/inhibit-message3
commit 841fe8d7902a910e2cd77b2e0d823aa07279587b
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    Add a new `inhibit-message' variable
    
    * src/xdisp.c (message3): When `Vinhibit_message' is not nil, don't do
      anything.
    (syms_of_xdisp): Define `Vinhibit_message'.
---
 src/xdisp.c |   42 ++++++++++++++++++++++++------------------
 1 files changed, 24 insertions(+), 18 deletions(-)

diff --git a/src/xdisp.c b/src/xdisp.c
index a17f5a9..0c069b9 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -10035,27 +10035,29 @@ message_log_check_duplicate (ptrdiff_t prev_bol_byte, 
ptrdiff_t this_bol_byte)
 void
 message3 (Lisp_Object m)
 {
-  struct gcpro gcpro1;
+  if (NILP (Vinhibit_message)) {
+    struct gcpro gcpro1;
 
-  GCPRO1 (m);
-  clear_message (true, true);
-  cancel_echoing ();
+    GCPRO1 (m);
+    clear_message (true, true);
+    cancel_echoing ();
 
-  /* First flush out any partial line written with print.  */
-  message_log_maybe_newline ();
-  if (STRINGP (m))
-    {
-      ptrdiff_t nbytes = SBYTES (m);
-      bool multibyte = STRING_MULTIBYTE (m);
-      char *buffer;
-      USE_SAFE_ALLOCA;
-      SAFE_ALLOCA_STRING (buffer, m);
-      message_dolog (buffer, nbytes, true, multibyte);
-      SAFE_FREE ();
-    }
-  message3_nolog (m);
+    /* First flush out any partial line written with print.  */
+    message_log_maybe_newline ();
+    if (STRINGP (m))
+      {
+        ptrdiff_t nbytes = SBYTES (m);
+        bool multibyte = STRING_MULTIBYTE (m);
+        char *buffer;
+        USE_SAFE_ALLOCA;
+        SAFE_ALLOCA_STRING (buffer, m);
+        message_dolog (buffer, nbytes, true, multibyte);
+        SAFE_FREE ();
+      }
+    message3_nolog (m);
 
-  UNGCPRO;
+    UNGCPRO;
+  }
 }
 
 
@@ -30430,6 +30432,10 @@ syms_of_xdisp (void)
 
   DEFSYM (Qredisplay_internal, "redisplay_internal (C function)");
 
+  DEFVAR_LISP("inhibit-message", Vinhibit_message,
+              doc:  /* Non-nil means calls to `message' are ignored.  */);
+  Vinhibit_message = Qnil;
+
   message_dolog_marker1 = Fmake_marker ();
   staticpro (&message_dolog_marker1);
   message_dolog_marker2 = Fmake_marker ();



reply via email to

[Prev in Thread] Current Thread [Next in Thread]