[geany/geany] eea7ff: Fix #3613096 by remembering the directory Geany was started from

unknown git-noreply at xxxxx
Sat May 18 13:45:18 UTC 2013


Branch:      refs/heads/1.23
Author:      unknown <enrico.troeger at uvena.de>
Committer:   unknown <enrico.troeger at uvena.de>
Date:        Sat, 18 May 2013 13:45:18 UTC
Commit:      eea7ffbff0c5bf14a9662483d989c4213f1392f7
             https://github.com/geany/geany/commit/eea7ffbff0c5bf14a9662483d989c4213f1392f7

Log Message:
-----------
Fix #3613096 by remembering the directory Geany was started from

This is one for more workaround for the current directory handling
on Windows: we now remember the directory from which Geany was started
to use this to resolve relative paths used to load files from
the command line.


Modified Paths:
--------------
    src/main.c

Modified: src/main.c
10 files changed, 9 insertions(+), 1 deletions(-)
===================================================================
@@ -91,6 +91,7 @@
 GeanyStatus	 main_status;
 CommandLineOptions cl_options;	/* fields initialised in parse_command_line_options */
 
+static gchar *original_cwd = NULL;
 
 static const gchar geany_lib_versions[] = "GTK %u.%u.%u, GLib %u.%u.%u";
 
@@ -310,7 +311,11 @@ gchar *main_get_argv_filename(const gchar *filename)
 	else
 	{
 		/* use current dir */
-		gchar *cur_dir = g_get_current_dir();
+		gchar *cur_dir = NULL;
+		if (original_cwd == NULL)
+			cur_dir = g_get_current_dir();
+		else
+			cur_dir = g_strdup(original_cwd);
 
 		result = g_strjoin(
 			G_DIR_SEPARATOR_S, cur_dir, filename, NULL);
@@ -379,6 +384,8 @@ static void get_line_and_column_from_filename(gchar *filename, gint *line, gint
 #ifdef G_OS_WIN32
 static void change_working_directory_on_windows(const gchar *install_dir)
 {
+	/* remember original working directory for use with opening files from the command line */
+	original_cwd = g_get_current_dir();
 	/* On Windows, change the working directory to the Geany installation path to not lock
 	 * the directory of a file passed as command line argument (see bug #2626124).
 	 * This also helps if plugins or other code uses relative paths to load
@@ -1309,6 +1316,7 @@ void main_quit()
 	g_object_unref(geany_object);
 	geany_object = NULL;
 
+	g_free(original_cwd);
 	g_free(app);
 
 	ui_finalize_builder();



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list