From c80ad456ccd88501938e281b80c0ec0c99ce0920 Mon Sep 17 00:00:00 2001 From: Tiago Cunha Date: Mon, 27 Apr 2009 13:56:51 +0000 Subject: [PATCH] Avoid using the prompt history when the server is locked, and prevent any input entered from being added to the client's prompt history. From nicm. --- CHANGES | 4 +++- status.c | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index f1cb4730..901522d8 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,7 @@ 27 April 2009 +* Avoid using the prompt history when the server is locked, and prevent any + input entered from being added to the client's prompt history. * New command, confirm-before (alias confirm), which asks for confirmation before executing a command. Bound "&" and "x" by default to confirm-before "kill-window" and confirm-before "kill-pane", respectively. @@ -1222,7 +1224,7 @@ (including mutt, emacs). No status bar yet and no key remapping or other customisation. -$Id: CHANGES,v 1.276 2009-04-27 13:21:15 tcunha Exp $ +$Id: CHANGES,v 1.277 2009-04-27 13:56:51 tcunha Exp $ LocalWords: showw utf UTF fulvio ciriaco joshe OSC APC gettime abc DEF OA clr LocalWords: rivo nurges lscm Erdely eol smysession mysession ek dstname RB ms diff --git a/status.c b/status.c index b38dbbb9..39a135ad 100644 --- a/status.c +++ b/status.c @@ -1,4 +1,4 @@ -/* $Id: status.c,v 1.75 2009-02-13 21:39:45 nicm Exp $ */ +/* $Id: status.c,v 1.76 2009-04-27 13:56:51 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -784,6 +784,9 @@ status_prompt_key(struct client *c, int key) } break; case MODEKEYCMD_UP: + if (server_locked) + break; + if (ARRAY_LENGTH(&c->prompt_hdata) == 0) break; xfree(c->prompt_buffer); @@ -797,6 +800,9 @@ status_prompt_key(struct client *c, int key) c->flags |= CLIENT_STATUS; break; case MODEKEYCMD_DOWN: + if (server_locked) + break; + xfree(c->prompt_buffer); if (c->prompt_hindex != 0) { @@ -849,6 +855,9 @@ status_prompt_key(struct client *c, int key) void status_prompt_add_history(struct client *c) { + if (server_locked) + return; + if (ARRAY_LENGTH(&c->prompt_hdata) > 0 && strcmp(ARRAY_LAST(&c->prompt_hdata), c->prompt_buffer) == 0) return;