summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-08-10 21:28:44 +0200
committerBram Moolenaar <Bram@vim.org>2016-08-10 21:28:44 +0200
commit717e196060d946fe20bb0f0307f417dc4d0e9b17 (patch)
treebd393aae467478792beb337a9b333e02436981a5
parenta6b7a08ae04a3cd4d9c45c906bb7a197e2135179 (diff)
downloadvim-717e196060d946fe20bb0f0307f417dc4d0e9b17.zip
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)
-rw-r--r--src/gui.c2
-rw-r--r--src/gui_gtk_x11.c11
-rw-r--r--src/proto/gui_gtk_x11.pro2
-rw-r--r--src/version.c2
4 files changed, 11 insertions, 6 deletions
diff --git a/src/gui.c b/src/gui.c
index 88b5d7bf9..0d858ec5b 100644
--- 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
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index 939ecde7e..7c63a49fc 100644
--- 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 UNUSED,
* 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;
diff --git a/src/proto/gui_gtk_x11.pro b/src/proto/gui_gtk_x11.pro
index b79feb8e4..f663dbaf1 100644
--- 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);
diff --git a/src/version.c b/src/version.c
index c775c3736..3adadd48b 100644
--- 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,