[gnome-terminal] Error out when trying --save-config when starting the factory
- From: Christian Persch <chpe src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-terminal] Error out when trying --save-config when starting the factory
- Date: Sun, 23 Aug 2009 19:52:53 +0000 (UTC)
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]