SF.net SVN: geany:[4651] branches/sm
statc at users.sourceforge.net
statc at xxxxx
Sun Feb 7 08:31:37 UTC 2010
Revision: 4651
http://geany.svn.sourceforge.net/geany/?rev=4651&view=rev
Author: statc
Date: 2010-02-07 08:31:37 +0000 (Sun, 07 Feb 2010)
Log Message:
-----------
Rewrite `load_startup_files' function.
Fix the bug with opening a project while specifying -s command line option. E.g., `geany -s project.geany' now correctly loads the project instead of showing a blank document and clearing the project silently.
Modified Paths:
--------------
branches/sm/ChangeLog
branches/sm/src/main.c
Modified: branches/sm/ChangeLog
===================================================================
--- branches/sm/ChangeLog 2010-02-07 08:31:03 UTC (rev 4650)
+++ branches/sm/ChangeLog 2010-02-07 08:31:37 UTC (rev 4651)
@@ -1,3 +1,12 @@
+2010-02-07 Eugene Arshinov <earshinov(at)gmail(dot)com>
+
+ * src/main.c:
+ Rewrite load_startup_files() function. Fix the bug with opening a
+ project while specifying -s command line option. E.g.,
+ `geany -s project.geany' now correctly loads the project instead of
+ showing a blank document and clearing the project silently.
+
+
2010-01-24 Eugene Arshinov <earshinov(at)gmail(dot)com>
* doc/Doxyfile.in, src/Makefile.am, src/main.c, src/makefile.win32,
Modified: branches/sm/src/main.c
===================================================================
--- branches/sm/src/main.c 2010-02-07 08:31:03 UTC (rev 4650)
+++ branches/sm/src/main.c 2010-02-07 08:31:37 UTC (rev 4651)
@@ -891,37 +891,55 @@
static void load_startup_files(gint argc, gchar **argv)
{
- gboolean load_project_from_cl = FALSE;
+ gboolean load_files = TRUE;
+ gboolean load_default_session = TRUE;
+ gboolean load_session = FALSE;
- /* ATM when opening a project file any other filenames are ignored */
- load_project_from_cl = (argc > 1) && g_str_has_suffix(argv[1], ".geany");
- if (load_project_from_cl && argc > 2)
- g_print("Ignoring extra filenames after %s", argv[1]);
+ if (!prefs.load_session)
+ {
+ open_cl_files(argc, argv);
+ return;
+ }
- if (load_project_from_cl || ! open_cl_files(argc, argv))
+ if ((argc > 1) && g_str_has_suffix(argv[1], ".geany"))
{
- if (prefs.load_session)
- {
- if (load_project_from_cl)
- {
- main_load_project_from_command_line(argv[1], FALSE);
- }
- else if (cl_options.load_session && !cl_options.new_instance)
- load_session_project_file();
+ /* load project filenames into global session_files variable */
+ main_load_project_from_command_line(argv[1], FALSE);
- /* when we want a new instance, we still load project session files unless -s
- * was passed */
- if (!cl_options.load_session || (!load_project_from_cl && cl_options.new_instance))
- return;
+ load_files = FALSE;
+ if (argc > 2)
+ g_print("Ignoring extra filenames after %s", argv[1]);
- /* load session files into tabs, as they are found in the session_files variable */
- configuration_open_files();
+ load_default_session = FALSE;
+ load_session = TRUE;
+ }
- if (gtk_notebook_get_n_pages(GTK_NOTEBOOK(main_widgets.notebook)) == 0)
- {
- ui_update_popup_copy_items(NULL);
- ui_update_popup_reundo_items(NULL);
- }
+ if (load_files)
+ {
+ gboolean any_files_opened = open_cl_files(argc, argv);
+ if (any_files_opened)
+ load_default_session = FALSE;
+ }
+
+ if (!cl_options.load_session || cl_options.new_instance)
+ load_default_session = FALSE;
+
+ if (load_default_session)
+ {
+ /* load filenames from the default session into global session_files variable */
+ load_session_project_file();
+ load_session = TRUE;
+ }
+
+ if (load_session)
+ {
+ /* load files into tabs, as they are found in the session_files variable */
+ configuration_open_files();
+
+ if (gtk_notebook_get_n_pages(GTK_NOTEBOOK(main_widgets.notebook)) == 0)
+ {
+ ui_update_popup_copy_items(NULL);
+ ui_update_popup_reundo_items(NULL);
}
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list