Branch: refs/heads/document-messages Author: Jiří Techet techet@gmail.com Committer: Colomban Wendling ban@herbesfolles.org Date: Wed, 11 Jan 2012 21:57:31 Commit: 73f345eb09e52a195f823d6e28bc52702b735388 https://github.com/geany/geany/commit/73f345eb09e52a195f823d6e28bc52702b7353...
Log Message: ----------- Use standard include paths for "open selected file"
Under linux, try to locate the file with the given name also under /usr/local/include and /usr/include. This feature is probably most often used for opening include files so this helps for the system ones.
In addition, fix locale/utf8 encoding usage.
Modified Paths: -------------- src/callbacks.c
Modified: src/callbacks.c 22 files changed, 18 insertions(+), 4 deletions(-) =================================================================== @@ -1603,10 +1603,11 @@ G_MODULE_EXPORT void on_menu_open_selected_file1_activate(GtkMenuItem *menuitem, g_return_if_fail(doc != NULL);
sel = editor_get_default_selection(doc->editor, TRUE, wc); + setptr(sel, utils_get_locale_from_utf8(sel));
if (sel != NULL) { - gchar *locale_filename, *filename = NULL; + gchar *filename = NULL;
if (g_path_is_absolute(sel)) filename = g_strdup(sel); @@ -1615,6 +1616,7 @@ G_MODULE_EXPORT void on_menu_open_selected_file1_activate(GtkMenuItem *menuitem, gchar *path;
path = utils_get_current_file_dir_utf8(); + setptr(path, utils_get_locale_from_utf8(path)); if (!path) path = g_get_current_dir();
@@ -1625,16 +1627,28 @@ G_MODULE_EXPORT void on_menu_open_selected_file1_activate(GtkMenuItem *menuitem, { /* try the project's base path */ setptr(path, project_get_base_path()); + setptr(path, utils_get_locale_from_utf8(path)); setptr(filename, g_build_path(G_DIR_SEPARATOR_S, path, sel, NULL)); } g_free(path); +#ifdef G_OS_UNIX + if (! g_file_test(filename, G_FILE_TEST_EXISTS)) + setptr(filename, g_build_path(G_DIR_SEPARATOR_S, "/usr/local/include", sel, NULL)); + + if (! g_file_test(filename, G_FILE_TEST_EXISTS)) + setptr(filename, g_build_path(G_DIR_SEPARATOR_S, "/usr/include", sel, NULL)); +#endif }
- locale_filename = utils_get_locale_from_utf8(filename); - document_open_file(locale_filename, FALSE, NULL, NULL); + if (g_file_test(filename, G_FILE_TEST_EXISTS)) + document_open_file(filename, FALSE, NULL, NULL); + else + { + setptr(sel, utils_get_utf8_from_locale(sel)); + ui_set_statusbar(TRUE, _("Could not open file %s (File not found)"), sel); + }
g_free(filename); - g_free(locale_filename); g_free(sel); } }
@@ Diff output truncated at 100000 characters. @@
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: TBD).