crashes when you kill your input method (xterm et al. also crash).
- fix bugs in x flushing, causing an empty screen after startup
- fix various memleaks in rxvtd.
+ - fix a bug that kept escape codes to be generated for some
+ keysyms that also have string translations, when not --enable-xim.
+ reported by joel reed.
- countless minor bugfixes.
1.8 Mon Feb 2 20:09:18 CET 2004
* Copyright (c) 2001 Marius Gedminas
* - Ctrl/Mod4+Tab works like Meta+Tab (options)
* Copyright (c) 2003 Rob McMullen <robm@flipturn.org>
+ * Copyright (c) 2003-2004 Marc Lehmann <pcg@goof.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
void
rxvt_term::lookup_key (XKeyEvent &ev)
{
- int ctrl, meta, shft, len;
- unsigned int newlen;
- KeySym keysym;
+ int ctrl, meta, shft, len;
+ unsigned int newlen;
+ KeySym keysym;
#ifdef DEBUG_CMD
- static int debug_key = 1; /* accessible by a debugger only */
+ static int debug_key = 1; /* accessible by a debugger only */
#endif
- int valid_keysym;
+ int valid_keysym;
unsigned char kbuf[KBUFSZ];
/*
KBUFSZ, &keysym, &status_return);
else
#endif
-
{
wchar_t wkbuf[KBUFSZ + 1];
SET_LOCALE (locale);
if (status_return == XLookupChars
- || status_return == XLookupBoth)
+ || status_return == XLookupBoth)
{
wkbuf[len] = 0;
len = wcstombs ((char *)kbuf, wkbuf, KBUFSZ);
}
valid_keysym = status_return == XLookupKeySym
- || status_return == XLookupBoth;
+ || status_return == XLookupBoth;
}
else
#endif
-
{
len = XLookupString (&ev, (char *)kbuf, KBUFSZ, &keysym, &compose);
- valid_keysym = !len;
+ valid_keysym = keysym != NoSymbol;
}
if (valid_keysym)
if (IS_SCROLL_MOD)
{
#endif
- int lnsppg;
+ int lnsppg;
#ifdef PAGING_CONTEXT_LINES
lnsppg = TermWin.nrow - PAGING_CONTEXT_LINES;
}
}
#endif
-
}
if (shft)
}
else
#endif
-
{
newlen = 1;
switch (keysym)
}
break;
-
#ifdef XK_KP_Left
case XK_KP_Up: /* \033Ox or standard */
case XK_KP_Down: /* \033Or or standard */
break;
case XK_KP_Multiply: /* "\033Oj" : "*" */
- case XK_KP_Add: /* "\033Ok" : "+" */
+ case XK_KP_Add: /* "\033Ok" : "+" */
case XK_KP_Separator: /* "\033Ol" : "," */
case XK_KP_Subtract: /* "\033Om" : "-" */
case XK_KP_Decimal: /* "\033On" : "." */
* Copyright (c) 1997,1998 Oezguer Kesim <kesim@math.fu-berlin.de>
* Copyright (c) 1998-2001 Geoff Wing <gcw@pobox.com>
* - extensive modifications
+ * Copyright (c) 2003-2004 Marc Lehmann <pcg@goof.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by