# HG changeset patch # User mikael # Date 1115273861 0 # Node ID 6354625e8fb2e1c0bd6bd79e8ba86ccd09077031 # Parent 09e24917059d3c2239f2d5503d2b7f760dbba105 [/trunk] Changeset 186 by mikael * Fix a bug in scr_cmdhisto_next() * Backup current line when moving to the command history lines diff -r 09e24917059d -r 6354625e8fb2 mcabber/src/screen.c --- a/mcabber/src/screen.c Wed May 04 21:06:05 2005 +0000 +++ b/mcabber/src/screen.c Thu May 05 06:17:41 2005 +0000 @@ -43,12 +43,13 @@ static int chatmode; int update_roster; -static char inputLine[INPUTLINE_LENGTH+1]; -static char *ptr_inputline; -static short int inputline_offset; -static int completion_started; +static char inputLine[INPUTLINE_LENGTH+1]; +static char *ptr_inputline; +static short int inputline_offset; +static int completion_started; static GList *cmdhisto; static GList *cmdhisto_cur; +static char cmdhisto_backup[INPUTLINE_LENGTH+1]; /* Functions */ @@ -970,6 +971,9 @@ GList *hl; if (!cmdhisto_cur) { hl = g_list_last(cmdhisto); + if (hl) { // backup current line + strncpy(cmdhisto_backup, mask, INPUTLINE_LENGTH); + } } else { hl = g_list_previous(cmdhisto_cur); } @@ -997,7 +1001,10 @@ cmdhisto_cur = hl; return (const char*)hl->data; } - return NULL; + if (strncmp(cmdhisto_backup, mask, len)) + return NULL; + cmdhisto_cur = NULL; + return cmdhisto_backup; } // which_row()