On Wed, Aug 29, 2012 at 09:49:33AM +0200, Cyril Brulebois wrote: > Hi, > > Thomas Dickey <dic...@his.com> (28/08/2012): > > however, I did make additional fixes (4 additional occurrences) in this > > area, and the original report on which I based my changes wasn't for the > > Tektronix option. > > > > It would be nice if the Debian package were updated to #281 (two months > > old). > > > > I'm currently working on #282, and if there were fixes needed as a result > > of updating to #281, those would be reflected in #282. > > diff against current package is (excluding configure): > 47 files changed, 3795 insertions(+), 1152 deletions(-) > > Sorry, but this is not something I want to (or can) review as a maintainer, > or as a release team member. Especially since there's AFAICT nothing like a > git or svn repository I could clone to check individual commits.
Actually my suggestion was for a new unstable version (you appear to be working on the assumption that I was proposing to propagate #281 to testing, etc - not realistic given Debian's freeze/release process). The change we're discussing was part of #280, and is (by itself) relatively easy to review: * add null-pointer checks to input-method caching added in [292]patch #277 to fix a problem in the exposure code, when deselecting a window (report by Kriston Rehberg). Here are the relevant chunks: --- charproc.c 2012/05/10 10:51:37 1.1205 +++ charproc.c 2012/05/24 18:02:25 1.1206 @@ -1,4 +1,4 @@ -/* $XTermId: charproc.c,v 1.1204 2012/05/10 10:32:49 tom Exp $ */ +/* $XTermId: charproc.c,v 1.1205 2012/05/10 10:51:37 tom Exp $ */ /* * Copyright 1999-2011,2012 by Thomas E. Dickey @@ -3970,7 +3970,7 @@ XPoint spot; XVaNestedList list; - if (input->xic + if (input && input->xic && (ld = getLineData(screen, screen->cur_row)) != 0) { spot.x = (short) LineCursorX(screen, ld, screen->cur_col); spot.y = (short) (CursorY(screen, screen->cur_row) + xw->misc.xim_fs_ascent); @@ -7474,7 +7474,7 @@ { TInput *input = lookupTInput(xw, (Widget) xw); - if (input->xim) { + if (input && input->xim) { XCloseIM(input->xim); input->xim = 0; TRACE(("freed screen->xim\n")); @@ -8051,8 +8051,8 @@ TRACE(("xim_destroy_cb im=%lx, client=%p, call=%p\n", (long) im, client_data, call_data)); - - input->xic = NULL; + if (input) + input->xic = NULL; XRegisterIMInstantiateCallback(XtDisplay(xw), NULL, NULL, NULL, xim_instantiate_cb, NULL); } --- input.c 2012/03/15 00:01:30 1.334 +++ input.c 2012/05/24 18:02:25 1.335 @@ -1,4 +1,4 @@ -/* $XTermId: input.c,v 1.333 2012/01/07 02:01:05 tom Exp $ */ +/* $XTermId: input.c,v 1.334 2012/03/15 00:01:30 tom Exp $ */ /* * Copyright 1999-2011,2012 by Thomas E. Dickey @@ -832,7 +832,7 @@ { #if OPT_I18N_SUPPORT && OPT_INPUT_METHOD TInput *input = lookupTInput(xw, (Widget) xw); - if (input->xic) { + if (input && input->xic) { Status status_return; #if OPT_WIDE_CHARS if (screen->utf8_mode) { --- misc.c 2012/05/07 23:35:34 1.588 +++ misc.c 2012/05/24 18:02:25 1.589 @@ -1,4 +1,4 @@ -/* $XTermId: misc.c,v 1.586 2012/04/15 16:00:56 tom Exp $ */ +/* $XTermId: misc.c,v 1.588 2012/05/07 23:35:34 tom Exp $ */ /* * Copyright 1999-2011,2012 by Thomas E. Dickey @@ -180,7 +180,7 @@ { #if OPT_I18N_SUPPORT && OPT_INPUT_METHOD TInput *input = lookupTInput(xw, (Widget) xw); - if (input->xic) + if (input && input->xic) XSetICFocus(input->xic); #endif @@ -218,7 +218,7 @@ { #if OPT_I18N_SUPPORT && OPT_INPUT_METHOD TInput *input = lookupTInput(xw, (Widget) xw); - if (input->xic) + if (input && input->xic) XUnsetICFocus(input->xic); #endif -- Thomas E. Dickey <dic...@invisible-island.net> http://invisible-island.net ftp://invisible-island.net
signature.asc
Description: Digital signature