updated for version 7.0-129
diff --git a/src/gui_gtk.c b/src/gui_gtk.c
index 8751615..29ef7e3 100644
--- a/src/gui_gtk.c
+++ b/src/gui_gtk.c
@@ -1275,18 +1275,13 @@
title = CONVERT_TO_UTF8(title);
# endif
- /* Concatenate "initdir" and "dflt". */
+ /* GTK has a bug, it only works with an absolute path. */
if (initdir == NULL || *initdir == NUL)
mch_dirname(dirbuf, MAXPATHL);
- else if (STRLEN(initdir) + 2 < MAXPATHL)
- STRCPY(dirbuf, initdir);
- else
+ else if (vim_FullName(initdir, dirbuf, MAXPATHL - 2, FALSE) == FAIL)
dirbuf[0] = NUL;
/* Always need a trailing slash for a directory. */
add_pathsep(dirbuf);
- if (dflt != NULL && *dflt != NUL
- && STRLEN(dirbuf) + 2 + STRLEN(dflt) < MAXPATHL)
- STRCAT(dirbuf, dflt);
/* If our pointer is currently hidden, then we should show it. */
gui_mch_mousehide(FALSE);
@@ -1341,6 +1336,11 @@
else
gtk_window_set_title(GTK_WINDOW(gui.filedlg), (const gchar *)title);
+ /* Concatenate "initdir" and "dflt". */
+ if (dflt != NULL && *dflt != NUL
+ && STRLEN(dirbuf) + 2 + STRLEN(dflt) < MAXPATHL)
+ STRCAT(dirbuf, dflt);
+
gtk_file_selection_set_filename(GTK_FILE_SELECTION(gui.filedlg),
(const gchar *)dirbuf);
# ifndef HAVE_GTK2