Kaydet (Commit) 8520ef16 authored tarafından Nick Treleaven's avatar Nick Treleaven

Prevent a segfault if the Terminal tool is not set.

Use cmd.exe as default Terminal tool on Windows.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@831 ea778897-0a13-0410-b9d1-a72fbfd435f5
üst b25d8cc8
2006-09-22 Nick Treleaven <nick.treleaven@btinternet.com> 2006-09-22 Nick Treleaven <nick.treleaven@btinternet.com>
* src/main.c: Apply toolbar style on startup (Fixes #1563125). * src/main.c: Apply toolbar style on startup (Fixes #1563125).
* src/build.c src/geany.h:
Prevent a segfault if the Terminal tool is not set.
Use cmd.exe as default Terminal tool on Windows.
2006-09-21 Nick Treleaven <nick.treleaven@btinternet.com> 2006-09-21 Nick Treleaven <nick.treleaven@btinternet.com>
......
...@@ -107,7 +107,7 @@ GPid build_view_tex_file(gint idx, gint mode) ...@@ -107,7 +107,7 @@ GPid build_view_tex_file(gint idx, gint mode)
#ifdef G_OS_WIN32 #ifdef G_OS_WIN32
argv = NULL; argv = NULL;
child_pid = (GPid) 0; child_pid = (GPid) 0;
if (! g_spawn_command_line_async(locale_cmd_string, &error)) if (! g_spawn_command_line_async(locale_cmd_string, &error))
#else #else
argv = g_new0(gchar *, 4); argv = g_new0(gchar *, 4);
...@@ -363,11 +363,6 @@ GPid build_run_cmd(gint idx) ...@@ -363,11 +363,6 @@ GPid build_run_cmd(gint idx)
locale_filename = utils_get_locale_from_utf8(doc_list[idx].file_name); locale_filename = utils_get_locale_from_utf8(doc_list[idx].file_name);
locale_term_cmd = utils_get_locale_from_utf8(app->tools_term_cmd);
// split the term_cmd, so arguments will work too
term_argv = g_strsplit(locale_term_cmd, " ", -1);
term_argv_len = g_strv_length(term_argv);
long_executable = utils_remove_ext_from_filename(locale_filename); long_executable = utils_remove_ext_from_filename(locale_filename);
#ifdef G_OS_WIN32 #ifdef G_OS_WIN32
long_executable = g_strconcat(long_executable, ".exe", NULL); long_executable = g_strconcat(long_executable, ".exe", NULL);
...@@ -405,12 +400,21 @@ GPid build_run_cmd(gint idx) ...@@ -405,12 +400,21 @@ GPid build_run_cmd(gint idx)
} }
} }
/* get the terminal path */
locale_term_cmd = utils_get_locale_from_utf8(app->tools_term_cmd);
// split the term_cmd, so arguments will work too
term_argv = g_strsplit(locale_term_cmd, " ", -1);
term_argv_len = g_strv_length(term_argv);
// check if terminal path is set (to prevent misleading error messages) // check that terminal exists (to prevent misleading error messages)
tmp = term_argv[0]; if (term_argv[0] != NULL)
term_argv[0] = g_find_program_in_path(tmp); {
g_free(tmp); tmp = term_argv[0];
if (stat(term_argv[0], &st) != 0) // g_find_program_in_path checks tmp exists and is executable
term_argv[0] = g_find_program_in_path(tmp);
g_free(tmp);
}
if (term_argv[0] == NULL)
{ {
msgwin_status_add( msgwin_status_add(
_("Could not find terminal '%s' " _("Could not find terminal '%s' "
......
...@@ -54,7 +54,11 @@ ...@@ -54,7 +54,11 @@
#define GEANY_WINDOW_DEFAULT_HEIGHT 600 #define GEANY_WINDOW_DEFAULT_HEIGHT 600
// some default settings which are used at the very first start of Geany to fill configuration file // some default settings which are used at the very first start of Geany to fill configuration file
#define GEANY_DEFAULT_TOOLS_MAKE "make" #define GEANY_DEFAULT_TOOLS_MAKE "make"
#ifdef G_OS_WIN32
#define GEANY_DEFAULT_TOOLS_TERMINAL "cmd.exe"
#else
#define GEANY_DEFAULT_TOOLS_TERMINAL "xterm" #define GEANY_DEFAULT_TOOLS_TERMINAL "xterm"
#endif
#define GEANY_DEFAULT_TOOLS_BROWSER "mozilla" #define GEANY_DEFAULT_TOOLS_BROWSER "mozilla"
#define GEANY_DEFAULT_TOOLS_PRINTCMD "lpr" #define GEANY_DEFAULT_TOOLS_PRINTCMD "lpr"
#define GEANY_DEFAULT_TOOLS_GREP "grep" #define GEANY_DEFAULT_TOOLS_GREP "grep"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment