[gnome-terminal] Error out when trying --save-config when starting the factory



commit 3cdeffce9f09566fc6acdca91c7fef4f92d256ea
Author: Christian Persch <chpe gnome org>
Date:   Sun Aug 23 21:43:33 2009 +0200

    Error out when trying --save-config when starting the factory
    
    For this, store in TerminalOptions whether the parsed options were
    remoted, and error out from terminal_app_handle_options() when handling
    --save-config in this case.

 src/terminal-app.c     |    9 ++++++++-
 src/terminal-options.c |    3 +++
 src/terminal-options.h |    2 ++
 src/terminal.c         |    2 ++
 4 files changed, 15 insertions(+), 1 deletions(-)
---
diff --git a/src/terminal-app.c b/src/terminal-app.c
index 8311baf..9d02866 100644
--- a/src/terminal-app.c
+++ b/src/terminal-app.c
@@ -1681,7 +1681,14 @@ terminal_app_handle_options (TerminalApp *app,
                                                         options->screen_number);
 
   if (options->save_config)
-    return terminal_app_save_config_file (app, options->config_file, error);
+    {
+      if (options->remote_arguments)
+        return terminal_app_save_config_file (app, options->config_file, error);
+      
+      g_set_error_literal (error, TERMINAL_OPTION_ERROR, TERMINAL_OPTION_ERROR_EXCLUSIVE_OPTIONS,
+                            "Cannot use \"--save-config\" when starting the factory process");
+      return FALSE;
+    }
 
   if (options->load_config)
     {
diff --git a/src/terminal-options.c b/src/terminal-options.c
index 5980a3d..d5cb121 100644
--- a/src/terminal-options.c
+++ b/src/terminal-options.c
@@ -664,6 +664,7 @@ digest_options_callback (GOptionContext *context,
  * @display_name: the default X display name
  * @startup_id: the startup notification ID
  * @env: the environment as variable=value pairs
+ * @remote_arguments: whether the caller is the factory process or not
  * @ignore_unknown_options: whether to ignore unknown options when parsing
  *   the arguments
  * @argcp: (inout) address of the argument count. Changed if any arguments were handled
@@ -682,6 +683,7 @@ terminal_options_parse (const char *working_directory,
                         const char *display_name,
                         const char *startup_id,
                         char **env,
+                        gboolean remote_arguments,
                         gboolean ignore_unknown_options,
                         int *argcp,
                         char ***argvp,
@@ -698,6 +700,7 @@ terminal_options_parse (const char *working_directory,
 
   options = g_slice_new0 (TerminalOptions);
 
+  options->remote_arguments = remote_arguments;
   options->default_window_menubar_forced = FALSE;
   options->default_window_menubar_state = TRUE;
   options->default_fullscreen = FALSE;
diff --git a/src/terminal-options.h b/src/terminal-options.h
index bd5aa79..9a70611 100644
--- a/src/terminal-options.h
+++ b/src/terminal-options.h
@@ -28,6 +28,7 @@ G_BEGIN_DECLS
 
 typedef struct
 {
+  gboolean remote_arguments;
   char   **env;
   char    *startup_id;
   char    *display_name;
@@ -95,6 +96,7 @@ TerminalOptions *terminal_options_parse (const char *working_directory,
                                          const char *display_name,
                                          const char *startup_id,
                                          char **env,
+                                         gboolean remote_arguments,
                                          gboolean ignore_unknown_options,
                                          int *argcp,
                                          char ***argvp,
diff --git a/src/terminal.c b/src/terminal.c
index aa8e3a9..56767ef 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -279,6 +279,7 @@ main (int argc, char **argv)
                                     startup_id,
                                     NULL,
                                     FALSE,
+                                    FALSE,
                                     &argc, &argv,
                                     &error,
                                     gtk_get_option_group (TRUE),
@@ -559,6 +560,7 @@ terminal_factory_handle_arguments (TerminalFactory *terminal_factory,
                                     startup_id,
                                     env,
                                     TRUE,
+                                    TRUE,
                                     &argc, &argv_copy,
                                     error,
                                     NULL);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]