Revision: 3382 http://geany.svn.sourceforge.net/geany/?rev=3382&view=rev Author: eht16 Date: 2008-12-15 21:21:19 +0000 (Mon, 15 Dec 2008)
Log Message: ----------- Remove checks for the executable when executing a file. The executed interpreter or the shell should handle file not found error and print appropriate messages. This makes it a bit more flexible, e.g. allowing to use gcj for Java files.
Modified Paths: -------------- trunk/ChangeLog trunk/src/build.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2008-12-15 21:20:53 UTC (rev 3381) +++ trunk/ChangeLog 2008-12-15 21:21:19 UTC (rev 3382) @@ -1,3 +1,13 @@ +2008-12-15 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de> + + * src/build.c: + Remove checks for the executable when executing a file. + The executed interpreter or the shell should handle file not found + error and print appropriate messages. + This makes it a bit more flexible, e.g. allowing to use gcj for + Java files. + + 2008-12-15 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/prefs.c, src/stash.c, src/stash.h, src/keyfile.c:
Modified: trunk/src/build.c =================================================================== --- trunk/src/build.c 2008-12-15 21:20:53 UTC (rev 3381) +++ trunk/src/build.c 2008-12-15 21:21:19 UTC (rev 3382) @@ -523,70 +523,6 @@ }
-/* Checks if the executable file corresponding to document idx exists. - * Returns the name part of the filename, without extension. - * Returns NULL if executable file doesn't exist. */ -static gchar *get_build_executable(const gchar *locale_filename, gboolean check_exists, - filetype_id ft_id) -{ - gchar *long_executable = NULL; - struct stat st; - - long_executable = utils_remove_ext_from_filename(locale_filename); -#ifdef G_OS_WIN32 - setptr(long_executable, g_strconcat(long_executable, ".exe", NULL)); -#endif - - if (check_exists) - { - gchar *check_executable = NULL; - - /* add .class extension for JAVA source files (only for stat) */ - if (ft_id == GEANY_FILETYPES_JAVA) - { -#ifdef G_OS_WIN32 - gchar *tmp; - /* there is already the extension .exe, so first remove it and then add .class */ - tmp = utils_remove_ext_from_filename(long_executable); - check_executable = g_strconcat(tmp, ".class", NULL); - /* store the filename without "exe" extension for Java, tmp will be freed by setptr */ - setptr(long_executable, tmp); -#else - check_executable = g_strconcat(long_executable, ".class", NULL); -#endif - } - else - check_executable = g_strdup(long_executable); - - /* check for filename extension and abort if filename doesn't have one */ - if (utils_str_equal(locale_filename, check_executable)) - { - ui_set_statusbar(TRUE, _("Command stopped because the current file has no extension.")); - utils_beep(); - g_free(check_executable); - return NULL; - } - - /* check whether executable exists */ - if (g_stat(check_executable, &st) != 0) - { - gchar *utf8_check_executable = utils_get_utf8_from_locale(check_executable); - - ui_set_statusbar(TRUE, _("Failed to execute "%s" (make sure it is already built)"), - utf8_check_executable); - g_free(utf8_check_executable); - g_free(check_executable); - return NULL; - } - g_free(check_executable); - } - - /* remove path */ - setptr(long_executable, g_path_get_basename(long_executable)); - return long_executable; -} - - /* Returns: NULL if there was an error, or the working directory the script was created in. * vte_cmd_nonscript is the location of a string which is filled with the command to be used * when vc->skip_run_script is set, otherwise it will be set to NULL */ @@ -596,7 +532,6 @@ gboolean have_project; GeanyProject *project = app->project; GeanyFiletype *ft = doc->file_type; - gboolean check_exists; gchar *cmd = NULL; gchar *executable = NULL; gchar *working_dir = NULL; @@ -614,13 +549,10 @@ project->run_cmd : ft->programs->run_cmd;
- /* only check for existing executable, if executable is required by %e */ - check_exists = (strstr(cmd, "%e") != NULL); - executable = get_build_executable(locale_filename, check_exists, FILETYPE_ID(ft)); - if (executable == NULL) + if (strstr(cmd, "%e") != NULL) { - g_free(locale_filename); - return NULL; + executable = utils_remove_ext_from_filename(locale_filename); + setptr(executable, g_path_get_basename(executable)); }
if (have_project)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.