From 0d65a83a60f9c865244bf687bc683b20afb22563 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 12 Mar 2005 23:35:14 +0000 Subject: [PATCH] *** empty log message *** --- Changes | 7 ++++++- doc/etc/rxvt-unicode.termcap | 13 ++++++------- src/command.C | 4 +++- src/keyboard.C | 2 ++ src/version.h | 4 ++-- 5 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Changes b/Changes index 34a64f9a..1d49ea3c 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,4 @@ TODO: do font request caching, might help rxvtd on some machines -TODO: manpage 900mb update TODO: safer command: keymap processing. TODO: "slow" rendering mode for bidi and scripts TODO: read property sequence is broken with respect to utf-8 etc. @@ -12,6 +11,12 @@ WISH: OnTheSpot editing, or maybe switch to miiiiiiif WISH: tabbed windows (hey, just use screen...) WISH: just for fun, do shade and tint with XRender. +5.3 Sun Mar 13 00:20:44 CET 2005 + - fix a bug that allowed to overflow a buffer via a long + escape sequence, which is probably exploitable (fix by + Rob Holland / Yoann Vandoorselaere / Gentoo Audit Team). + - Custom key mappings no longer confuse mouse buttons + with modifiers. - use XmbSetWMProperties instead of XSetWMProperties. - properly update WM_LOCALE. - implement _NET_WM_PING protocol. diff --git a/doc/etc/rxvt-unicode.termcap b/doc/etc/rxvt-unicode.termcap index bd689e35..22215970 100644 --- a/doc/etc/rxvt-unicode.termcap +++ b/doc/etc/rxvt-unicode.termcap @@ -1,16 +1,15 @@ -# Reconstructed via infocmp from file: /usr/share/terminfo/r/rxvt-unicode +# Reconstructed via infocmp from file: /etc/terminfo/r/rxvt-unicode # (untranslatable capabilities removed to fit entry within 1023 bytes) rxvt-unicode|rxvt-unicode terminal (X Window System):\ :am:bw:eo:km:mi:ms:xn:xo:\ :co#80:it#8:li#24:lm#0:\ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ - :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=\E(B:al=\E[L:\ - :as=\E(0:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ - :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\ - :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:\ - :i1=\E[?47l\E=\E[?1l:ic=\E[@:im=\E[4h:\ - :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\ + :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=^O:al=\E[L:\ + :as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ + :ec=\E[%dX:ei=\E[4l:ho=\E[H:i1=\E[?47l\E=\E[?1l:ic=\E[@:\ + :im=\E[4h:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\ :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:\ :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kd=\EOB:ke=\E[?1l\E>:\ diff --git a/src/command.C b/src/command.C index 00a2be9e..11f703df 100644 --- a/src/command.C +++ b/src/command.C @@ -318,9 +318,11 @@ rxvt_term::lookup_key (XKeyEvent &ev) // at the point of XOpenIM, so temporarily switch locales if (rs[Rs_imLocale]) SET_LOCALE (rs[Rs_imLocale]); + // assume wchar_t == unicode or better len = XwcLookupString (Input_Context, &ev, wkbuf, KBUFSZ, &keysym, &status_return); + if (rs[Rs_imLocale]) SET_LOCALE (locale); @@ -3590,7 +3592,7 @@ rxvt_term::get_to_st (unicode_t &ends_how) seen_esc = false; - if (n >= sizeof (string) - 1) + if (n >= STRING_MAX - 1) // stop at some sane length return NULL; diff --git a/src/keyboard.C b/src/keyboard.C index f57d115e..ab5efd2e 100644 --- a/src/keyboard.C +++ b/src/keyboard.C @@ -262,6 +262,8 @@ keyboard_manager::dispatch (rxvt_term *term, KeySym keysym, unsigned int state) { assert (hash[0] == 0 && "register_done() need to be called"); + state &= OtherModMask; // mask out uninteresting modifiers + if (state & term->ModMetaMask) state |= MetaMask; if (state & term->ModNumLockMask) state |= NumLockMask; if (state & term->ModLevel3Mask) state |= Level3Mask; diff --git a/src/version.h b/src/version.h index 5d2d52bf..fc2c126e 100644 --- a/src/version.h +++ b/src/version.h @@ -1,3 +1,3 @@ // VERSION _must_ be \d.\d+ -#define VERSION "5.2" -#define DATE "2005-02-20" +#define VERSION "5.3" +#define DATE "2005-03-13" -- 2.34.1