Your message dated Thu, 23 Aug 2012 18:07:27 +0200 with message-id <20120823160727.GF7361@mraw.org> and subject line Re: Bug#685686: unblock: putty/0.62-9 has caused the Debian Bug report #685686, regarding unblock: putty/0.62-9 to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 685686: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=685686 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: submit@bugs.debian.org
- Subject: unblock: putty/0.62-9
- From: Colin Watson <cjwatson@debian.org>
- Date: Thu, 23 Aug 2012 13:41:49 +0100
- Message-id: <[🔎] 20120823124149.GB8056@riva.dynamic.greenend.org.uk>
Package: release.debian.org Severity: normal User: release.debian.org@packages.debian.org Usertags: unblock putty 0.62-9 fixes a regression caused by a pre-freeze upload (0.62-8) introducing support for dead keys and compose sequences. This is an important feature so I'd rather fix it than back it out, particularly since upstream has provided a fix. Here's the upstream commit message and the diff. ------------------------------------------------------------------------ r9573 | simon | 2012-07-06 00:45:20 +0100 (Fri, 06 Jul 2012) | 13 lines Turns out that the compose-keys fix in r9567 did in fact break one piece of keyboard handling: if Num Lock is on, numeric keypad keys are eaten by the IM, so we must avoid passing them to the IM in the first place if we're in any non-default numeric keypad mode (application or Nethack). This is a grubby way to do it, but the more obvious approach of just moving the Nethack and app-keypad if statements up to above the IM call doesn't work because those statements depend on the generic Alt-prefix handling that happens just _below_ the IM call. So instead I just repeat the list of keystrokes and modes in an if statement conditionalising the IM call. ------------------------------------------------------------------------ diff -Nru putty-0.62/debian/changelog putty-0.62/debian/changelog --- putty-0.62/debian/changelog 2012-06-22 15:18:52.000000000 +0100 +++ putty-0.62/debian/changelog 2012-08-23 12:58:53.000000000 +0100 @@ -1,3 +1,11 @@ +putty (0.62-9) unstable; urgency=low + + * Backport from upstream (Simon Tatham): + - Fix handling of non-default numeric keypad modes when Num Lock is on + (closes: #680261). + + -- Colin Watson <cjwatson@debian.org> Thu, 23 Aug 2012 12:58:52 +0100 + putty (0.62-8) unstable; urgency=low * Backport from upstream (Simon Tatham): diff -Nru putty-0.62/debian/patches/compose.patch putty-0.62/debian/patches/compose.patch --- putty-0.62/debian/patches/compose.patch 2012-06-22 15:05:52.000000000 +0100 +++ putty-0.62/debian/patches/compose.patch 2012-08-23 12:58:31.000000000 +0100 @@ -1,6 +1,7 @@ Description: Support dead keys and compose sequences Origin: backport, http://svn.tartarus.org/sgt?view=rev&revision=9567 Origin: upstream, http://svn.tartarus.org/sgt?view=rev&revision=9568 +Origin: backport, http://svn.tartarus.org/sgt?view=rev&revision=9573 Forwarded: not-needed Last-Update: 2012-06-22 @@ -48,7 +49,15 @@ return TRUE; } -@@ -528,21 +540,26 @@ +@@ -509,6 +521,7 @@ + char output[256]; + wchar_t ucsoutput[2]; + int ucsval, start, end, special, output_charset, use_ucsoutput; ++ int nethack_mode, app_keypad_mode; + + /* Remember the timestamp. */ + inst->input_event_time = event->time; +@@ -528,21 +541,26 @@ * inconvenience in having to type a zero before a single-digit * character code. */ @@ -88,12 +97,83 @@ } if (event->type == GDK_KEY_PRESS) { -@@ -658,13 +675,13 @@ +@@ -645,6 +663,10 @@ + special = FALSE; + use_ucsoutput = FALSE; + ++ nethack_mode = inst->cfg.nethack_keypad; ++ app_keypad_mode = (inst->term->app_keypad_keys && ++ !inst->cfg.no_applic_k); ++ + /* ALT+things gives leading Escape. */ + output[0] = '\033'; + #if !GTK_CHECK_VERSION(2,0,0) +@@ -658,13 +680,73 @@ output_charset = CS_ISO8859_1; strncpy(output+1, event->string, lenof(output)-1); #else -+ if (gtk_im_context_filter_keypress(inst->imc, event)) -+ return TRUE; ++ /* ++ * Most things can now be passed to ++ * gtk_im_context_filter_keypress without breaking anything ++ * below this point. An exception is the numeric keypad if ++ * we're in Nethack or application mode: the IM will eat ++ * numeric keypad presses if Num Lock is on, but we don't want ++ * it to. ++ */ ++ if (app_keypad_mode && ++ (event->keyval == GDK_Num_Lock || ++ event->keyval == GDK_KP_Divide || ++ event->keyval == GDK_KP_Multiply || ++ event->keyval == GDK_KP_Subtract || ++ event->keyval == GDK_KP_Add || ++ event->keyval == GDK_KP_Enter || ++ event->keyval == GDK_KP_0 || ++ event->keyval == GDK_KP_Insert || ++ event->keyval == GDK_KP_1 || ++ event->keyval == GDK_KP_End || ++ event->keyval == GDK_KP_2 || ++ event->keyval == GDK_KP_Down || ++ event->keyval == GDK_KP_3 || ++ event->keyval == GDK_KP_Page_Down || ++ event->keyval == GDK_KP_4 || ++ event->keyval == GDK_KP_Left || ++ event->keyval == GDK_KP_5 || ++ event->keyval == GDK_KP_Begin || ++ event->keyval == GDK_KP_6 || ++ event->keyval == GDK_KP_Right || ++ event->keyval == GDK_KP_7 || ++ event->keyval == GDK_KP_Home || ++ event->keyval == GDK_KP_8 || ++ event->keyval == GDK_KP_Up || ++ event->keyval == GDK_KP_9 || ++ event->keyval == GDK_KP_Page_Up || ++ event->keyval == GDK_KP_Decimal || ++ event->keyval == GDK_KP_Delete)) { ++ /* app keypad; do nothing */ ++ } else if (nethack_mode && ++ (event->keyval == GDK_KP_1 || ++ event->keyval == GDK_KP_End || ++ event->keyval == GDK_KP_2 || ++ event->keyval == GDK_KP_Down || ++ event->keyval == GDK_KP_3 || ++ event->keyval == GDK_KP_Page_Down || ++ event->keyval == GDK_KP_4 || ++ event->keyval == GDK_KP_Left || ++ event->keyval == GDK_KP_5 || ++ event->keyval == GDK_KP_Begin || ++ event->keyval == GDK_KP_6 || ++ event->keyval == GDK_KP_Right || ++ event->keyval == GDK_KP_7 || ++ event->keyval == GDK_KP_Home || ++ event->keyval == GDK_KP_8 || ++ event->keyval == GDK_KP_Up || ++ event->keyval == GDK_KP_9 || ++ event->keyval == GDK_KP_Page_Up)) { ++ /* nethack mode; do nothing */ ++ } else { ++ if (gtk_im_context_filter_keypress(inst->imc, event)) ++ return TRUE; ++ } + /* * GDK 2.0 arranges to have done some translation for us: in @@ -105,7 +185,25 @@ * So we use the standard C library function mbstowcs() to * convert from the current locale into Unicode; from there * we can convert to whatever PuTTY is currently working in. -@@ -1119,6 +1136,16 @@ +@@ -786,7 +868,7 @@ + /* + * NetHack keypad mode. + */ +- if (inst->cfg.nethack_keypad) { ++ if (nethack_mode) { + char *keys = NULL; + switch (event->keyval) { + case GDK_KP_1: case GDK_KP_End: keys = "bB\002"; break; +@@ -815,7 +897,7 @@ + /* + * Application keypad mode. + */ +- if (inst->term->app_keypad_keys && !inst->cfg.no_applic_k) { ++ if (app_keypad_mode) { + int xkey = 0; + switch (event->keyval) { + case GDK_Num_Lock: xkey = 'P'; break; +@@ -1119,6 +1201,16 @@ return TRUE; } @@ -122,7 +220,7 @@ gboolean button_internal(struct gui_data *inst, guint32 timestamp, GdkEventType type, guint ebutton, guint state, gdouble ex, gdouble ey) -@@ -2310,6 +2337,17 @@ +@@ -2310,6 +2402,17 @@ x*inst->font_width+inst->cfg.window_border, y*inst->font_height+inst->cfg.window_border, len*widefactor*inst->font_width, inst->font_height); @@ -140,7 +238,7 @@ } GdkCursor *make_mouse_ptr(struct gui_data *inst, int cursor_val) -@@ -3367,6 +3405,8 @@ +@@ -3367,6 +3470,8 @@ extern int cfgbox(Config *cfg); struct gui_data *inst; @@ -149,7 +247,7 @@ /* * Create an instance structure and initialise to zeroes */ -@@ -3426,6 +3466,10 @@ +@@ -3426,6 +3531,10 @@ inst->area = gtk_drawing_area_new(); @@ -160,7 +258,7 @@ setup_fonts_ucs(inst); init_cutbuffers(); -@@ -3512,6 +3556,10 @@ +@@ -3512,6 +3621,10 @@ GTK_SIGNAL_FUNC(selection_get), inst); gtk_signal_connect(GTK_OBJECT(inst->area), "selection_clear_event", GTK_SIGNAL_FUNC(selection_clear), inst); Thanks, -- Colin Watson [cjwatson@debian.org]
--- End Message ---
--- Begin Message ---
- To: Colin Watson <cjwatson@debian.org>, 685686-done@bugs.debian.org
- Subject: Re: Bug#685686: unblock: putty/0.62-9
- From: Cyril Brulebois <kibi@debian.org>
- Date: Thu, 23 Aug 2012 18:07:27 +0200
- Message-id: <20120823160727.GF7361@mraw.org>
- In-reply-to: <[🔎] 20120823124149.GB8056@riva.dynamic.greenend.org.uk>
- References: <[🔎] 20120823124149.GB8056@riva.dynamic.greenend.org.uk>
Hi Colin, Colin Watson <cjwatson@debian.org> (23/08/2012): > Package: release.debian.org > Severity: normal > User: release.debian.org@packages.debian.org > Usertags: unblock > > putty 0.62-9 fixes a regression caused by a pre-freeze upload (0.62-8) > introducing support for dead keys and compose sequences. This is an > important feature so I'd rather fix it than back it out, particularly > since upstream has provided a fix. Here's the upstream commit message > and the diff. looks like a sane thing to do at this point. Unblocked, thanks. Mraw, KiBi.Attachment: signature.asc
Description: Digital signature
--- End Message ---