From 29204e13285666761d95e2afdc181a09affe14d5 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 21 Jun 2004 03:22:34 +0000 Subject: [PATCH] (command_loop_1): Handle values `only' and `identity' for Vtransient_mark_mode. --- src/keyboard.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/keyboard.c b/src/keyboard.c index b4b7e64e4ce..9b36e96b70d 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -681,6 +681,8 @@ static SIGTYPE interrupt_signal P_ ((int signalnum)); to support it. */ static int cannot_suspend; +extern Lisp_Object Qidentity, Qonly; + /* Install the string STR as the beginning of the string of echoing, so that it serves as a prompt for the next character. Also start echoing. */ @@ -1822,6 +1824,16 @@ command_loop_1 () call1 (Vrun_hooks, intern ("activate-mark-hook")); } + /* Setting transient-mark-mode to `only' is a way of + turning it on for just one command. */ + if (!NILP (current_buffer->mark_active) && !NILP (Vrun_hooks)) + { + if (EQ (Vtransient_mark_mode, Qidentity)) + Vtransient_mark_mode = Qnil; + if (EQ (Vtransient_mark_mode, Qonly)) + Vtransient_mark_mode = Qidentity; + } + finalize: if (current_buffer == prev_buffer -- 2.39.5