changeset 9836:bc591685594a v7.4.2193

commit https://github.com/vim/vim/commit/717e196060d946fe20bb0f0307f417dc4d0e9b17 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Aug 10 21:28:44 2016 +0200 patch 7.4.2193 Problem: With Gnome when the GUI can't start test_startup hangs. Solution: Call gui_mch_early_init_check(). (Hirohito Higashi)
author Christian Brabandt <cb@256bit.org>
date Wed, 10 Aug 2016 21:30:07 +0200
parents 5e15a9ae1039
children 372c1b42edb3
files src/gui.c src/gui_gtk_x11.c src/proto/gui_gtk_x11.pro src/version.c
diffstat 4 files changed, 11 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/gui.c
+++ b/src/gui.c
@@ -447,7 +447,7 @@ gui_init_check(void)
      * See gui_do_fork().
      * Use a simpler check if the GUI window can probably be opened.
      */
-    result = gui.dofork ? gui_mch_early_init_check() : gui_mch_init_check();
+    result = gui.dofork ? gui_mch_early_init_check(TRUE) : gui_mch_init_check();
 # else
     result = gui_mch_init_check();
 # endif
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -542,8 +542,10 @@ gui_mch_prepare(int *argc, char **argv)
 	}
 
 	/* These arguments make gnome_program_init() print a message and exit.
-	 * Must start the GUI for this, otherwise ":gui" will exit later! */
-	if (option->flags & ARG_NEEDS_GUI)
+	 * Must start the GUI for this, otherwise ":gui" will exit later!
+	 * Only when the GUI can start. */
+	if ((option->flags & ARG_NEEDS_GUI)
+				      && gui_mch_early_init_check(FALSE) == OK)
 	    gui.starting = TRUE;
 
 	if (option->flags & ARG_KEEP)
@@ -1663,7 +1665,7 @@ selection_get_cb(GtkWidget	    *widget U
  * Return OK or FAIL.
  */
     int
-gui_mch_early_init_check(void)
+gui_mch_early_init_check(int give_message)
 {
     char_u *p;
 
@@ -1672,7 +1674,8 @@ gui_mch_early_init_check(void)
     if (p == NULL || *p == NUL)
     {
 	gui.dying = TRUE;
-	EMSG(_((char *)e_opendisp));
+	if (give_message)
+	    EMSG(_((char *)e_opendisp));
 	return FAIL;
     }
     return OK;
--- a/src/proto/gui_gtk_x11.pro
+++ b/src/proto/gui_gtk_x11.pro
@@ -6,7 +6,7 @@ int gui_mch_is_blink_off(void);
 void gui_mch_set_blinking(long waittime, long on, long off);
 void gui_mch_stop_blink(void);
 void gui_mch_start_blink(void);
-int gui_mch_early_init_check(void);
+int gui_mch_early_init_check(int give_message);
 int gui_mch_init_check(void);
 void gui_mch_show_tabline(int showit);
 int gui_mch_showing_tabline(void);
--- a/src/version.c
+++ b/src/version.c
@@ -764,6 +764,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2193,
+/**/
     2192,
 /**/
     2191,