aboutsummaryrefslogtreecommitdiffstats
path: root/gtk/main.c
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2006-11-25 06:15:51 +0000
committerGerald Combs <gerald@wireshark.org>2006-11-25 06:15:51 +0000
commitcd7b6c9dbf8b38eae0d4a53749e6d576cc3d77a9 (patch)
tree78d8d7c5a127e14f0b9f8648ac50ac78388dbbe4 /gtk/main.c
parent356e5b65cee945bd4a980b3b48142faa1a0b93ad (diff)
Make sure we don't trigger undefined behavior in isprint().
svn path=/trunk/; revision=19978
Diffstat (limited to 'gtk/main.c')
-rw-r--r--gtk/main.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gtk/main.c b/gtk/main.c
index d64fcf348f..736a997a5e 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -3806,7 +3806,13 @@ top_level_key_pressed_cb(GtkCTree *ctree _U_, GdkEventKey *event, gpointer user_
} else if (event->keyval == GDK_F7) {
packet_list_prev();
return TRUE;
- } else if (isprint(event->keyval)) {
+ /*
+ * A comment in gdkkeysyms.h says that it's autogenerated from
+ * freedesktop.org/x.org's keysymdef.h. Although the GDK docs
+ * don't explicitly say so, isprint() should work as expected
+ * for values < 127.
+ */
+ } else if (isascii(event->keyval) && isprint(event->keyval)) {
/* Forward the keypress on to the display filter entry */
if (main_display_filter_widget && !gtk_widget_is_focus(main_display_filter_widget)) {
gtk_window_set_focus(GTK_WINDOW(top_level), main_display_filter_widget);