From 650292613e4ff635d1746b2790db8b787e9f109b Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 19 Mar 2002 17:24:28 +0000 Subject: [PATCH] /CLEAR now clears specified window. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2633 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/fe-text/textbuffer-commands.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/fe-text/textbuffer-commands.c b/src/fe-text/textbuffer-commands.c index db5bc782..61350a3e 100644 --- a/src/fe-text/textbuffer-commands.c +++ b/src/fe-text/textbuffer-commands.c @@ -31,28 +31,35 @@ #include "gui-windows.h" #include "textbuffer-reformat.h" -/* SYNTAX: CLEAR */ +/* SYNTAX: CLEAR [-all] [] */ static void cmd_clear(const char *data) { + WINDOW_REC *window; GHashTable *optlist; + char *refnum; void *free_arg; GSList *tmp; g_return_if_fail(data != NULL); - if (!cmd_get_params(data, &free_arg, PARAM_FLAG_OPTIONS, - "clear", &optlist)) return; + if (!cmd_get_params(data, &free_arg, 1 | PARAM_FLAG_OPTIONS, + "clear", &optlist, &refnum)) return; - if (g_hash_table_lookup(optlist, "all") == NULL) { - /* clear active window */ - textbuffer_view_clear(WINDOW_GUI(active_win)->view); - } else { + if (g_hash_table_lookup(optlist, "all") != NULL) { /* clear all windows */ for (tmp = windows; tmp != NULL; tmp = tmp->next) { WINDOW_REC *window = tmp->data; textbuffer_view_clear(WINDOW_GUI(window)->view); } + } else if (*refnum != '\0') { + /* clear specified window */ + window = window_find_refnum(atoi(refnum)); + if (window != NULL) + textbuffer_view_clear(WINDOW_GUI(window)->view); + } else { + /* clear active window */ + textbuffer_view_clear(WINDOW_GUI(active_win)->view); } cmd_params_free(free_arg);