diff options
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/gtkutil.c | 2 | ||||
| -rw-r--r-- | src/xterm.c | 12 |
3 files changed, 19 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index e6793488e28..39b3c9fc4c5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2015-03-29 Jan Djärv <jan.h.d@swipnet.se> | ||
| 2 | |||
| 3 | * gtkutil.c (xg_display_open): | ||
| 4 | * xterm.c (x_display_ok, x_term_init): Block SIGIO when opening | ||
| 5 | a display (Bug#19175). | ||
| 6 | |||
| 1 | 2015-04-01 Nicolas Petton <nicolas@petton.fr> | 7 | 2015-04-01 Nicolas Petton <nicolas@petton.fr> |
| 2 | 8 | ||
| 3 | * Version 24.5 released. | 9 | * Version 24.5 released. |
diff --git a/src/gtkutil.c b/src/gtkutil.c index fedaa0f3a2d..eddd2b535db 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c | |||
| @@ -167,7 +167,9 @@ xg_display_open (char *display_name, Display **dpy) | |||
| 167 | { | 167 | { |
| 168 | GdkDisplay *gdpy; | 168 | GdkDisplay *gdpy; |
| 169 | 169 | ||
| 170 | unrequest_sigio (); // See comment in x_display_ok, xterm.c. | ||
| 170 | gdpy = gdk_display_open (display_name); | 171 | gdpy = gdk_display_open (display_name); |
| 172 | request_sigio (); | ||
| 171 | if (!gdpy_def && gdpy) | 173 | if (!gdpy_def && gdpy) |
| 172 | { | 174 | { |
| 173 | gdpy_def = gdpy; | 175 | gdpy_def = gdpy; |
diff --git a/src/xterm.c b/src/xterm.c index 4ca1e131e67..2ac2fe84e52 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -9719,7 +9719,11 @@ get_bits_and_offset (unsigned long mask, int *bits, int *offset) | |||
| 9719 | bool | 9719 | bool |
| 9720 | x_display_ok (const char *display) | 9720 | x_display_ok (const char *display) |
| 9721 | { | 9721 | { |
| 9722 | Display *dpy = XOpenDisplay (display); | 9722 | Display *dpy; |
| 9723 | // XOpenDisplay fails if it gets a signal. Block SIGIO which may arrive. | ||
| 9724 | unrequest_sigio (); | ||
| 9725 | dpy = XOpenDisplay (display); | ||
| 9726 | request_sigio (); | ||
| 9723 | return dpy ? (XCloseDisplay (dpy), 1) : 0; | 9727 | return dpy ? (XCloseDisplay (dpy), 1) : 0; |
| 9724 | } | 9728 | } |
| 9725 | 9729 | ||
| @@ -9811,7 +9815,9 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) | |||
| 9811 | 9815 | ||
| 9812 | /* gtk_init does set_locale. Fix locale before and after. */ | 9816 | /* gtk_init does set_locale. Fix locale before and after. */ |
| 9813 | fixup_locale (); | 9817 | fixup_locale (); |
| 9818 | unrequest_sigio (); // See comment in x_display_ok. | ||
| 9814 | gtk_init (&argc, &argv2); | 9819 | gtk_init (&argc, &argv2); |
| 9820 | request_sigio (); | ||
| 9815 | fixup_locale (); | 9821 | fixup_locale (); |
| 9816 | 9822 | ||
| 9817 | g_log_remove_handler ("GLib", id); | 9823 | g_log_remove_handler ("GLib", id); |
| @@ -9861,10 +9867,12 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) | |||
| 9861 | argv[argc++] = xrm_option; | 9867 | argv[argc++] = xrm_option; |
| 9862 | } | 9868 | } |
| 9863 | turn_on_atimers (0); | 9869 | turn_on_atimers (0); |
| 9870 | unrequest_sigio (); // See comment in x_display_ok. | ||
| 9864 | dpy = XtOpenDisplay (Xt_app_con, SSDATA (display_name), | 9871 | dpy = XtOpenDisplay (Xt_app_con, SSDATA (display_name), |
| 9865 | resource_name, EMACS_CLASS, | 9872 | resource_name, EMACS_CLASS, |
| 9866 | emacs_options, XtNumber (emacs_options), | 9873 | emacs_options, XtNumber (emacs_options), |
| 9867 | &argc, argv); | 9874 | &argc, argv); |
| 9875 | request_sigio (); | ||
| 9868 | turn_on_atimers (1); | 9876 | turn_on_atimers (1); |
| 9869 | 9877 | ||
| 9870 | #ifdef HAVE_X11XTR6 | 9878 | #ifdef HAVE_X11XTR6 |
| @@ -9875,7 +9883,9 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) | |||
| 9875 | 9883 | ||
| 9876 | #else /* not USE_X_TOOLKIT */ | 9884 | #else /* not USE_X_TOOLKIT */ |
| 9877 | XSetLocaleModifiers (""); | 9885 | XSetLocaleModifiers (""); |
| 9886 | unrequest_sigio (); // See comment in x_display_ok. | ||
| 9878 | dpy = XOpenDisplay (SSDATA (display_name)); | 9887 | dpy = XOpenDisplay (SSDATA (display_name)); |
| 9888 | request_sigio (); | ||
| 9879 | #endif /* not USE_X_TOOLKIT */ | 9889 | #endif /* not USE_X_TOOLKIT */ |
| 9880 | #endif /* not USE_GTK*/ | 9890 | #endif /* not USE_GTK*/ |
| 9881 | 9891 | ||