From d2558f215906f23594f9c9e42acd6c375af22f22 Mon Sep 17 00:00:00 2001 From: sotto Date: Thu, 11 Dec 2014 21:03:44 +0100 Subject: [PATCH] BUG-1560 added format-validation for the arguments-field --- .../ExternalCommandDestination.cs | 9 +++++++-- .../SettingsFormDetail.Designer.cs | 1 + .../SettingsFormDetail.cs | 16 ++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/GreenshotExternalCommandPlugin/ExternalCommandDestination.cs b/GreenshotExternalCommandPlugin/ExternalCommandDestination.cs index 190009e8e..575b71bf2 100644 --- a/GreenshotExternalCommandPlugin/ExternalCommandDestination.cs +++ b/GreenshotExternalCommandPlugin/ExternalCommandDestination.cs @@ -184,7 +184,7 @@ namespace ExternalCommand { if (!string.IsNullOrEmpty(commandline)) { using (Process process = new Process()) { process.StartInfo.FileName = commandline; - process.StartInfo.Arguments = String.Format(arguments, fullPath); + process.StartInfo.Arguments = FormatArguments(arguments, fullPath); process.StartInfo.UseShellExecute = false; if (config.RedirectStandardOutput) { process.StartInfo.RedirectStandardOutput = true; @@ -216,5 +216,10 @@ namespace ExternalCommand { } return -1; } - } + + public static string FormatArguments(string arguments, string fullpath) + { + return String.Format(arguments, fullpath); + } + } } diff --git a/GreenshotExternalCommandPlugin/SettingsFormDetail.Designer.cs b/GreenshotExternalCommandPlugin/SettingsFormDetail.Designer.cs index bb091a711..e32402723 100644 --- a/GreenshotExternalCommandPlugin/SettingsFormDetail.Designer.cs +++ b/GreenshotExternalCommandPlugin/SettingsFormDetail.Designer.cs @@ -147,6 +147,7 @@ namespace ExternalCommand { this.textBox_arguments.Name = "textBox_arguments"; this.textBox_arguments.Size = new System.Drawing.Size(225, 20); this.textBox_arguments.TabIndex = 4; + this.textBox_arguments.TextChanged += new System.EventHandler(this.textBox_arguments_TextChanged); // // label1 // diff --git a/GreenshotExternalCommandPlugin/SettingsFormDetail.cs b/GreenshotExternalCommandPlugin/SettingsFormDetail.cs index dc53bf5d7..bf7400451 100644 --- a/GreenshotExternalCommandPlugin/SettingsFormDetail.cs +++ b/GreenshotExternalCommandPlugin/SettingsFormDetail.cs @@ -98,6 +98,7 @@ namespace ExternalCommand { buttonOk.Enabled = true; textBox_name.BackColor = Color.White; textBox_commandline.BackColor = Color.White; + textBox_arguments.BackColor = Color.White; // Is there a text in the name field if(string.IsNullOrEmpty(textBox_name.Text)) { buttonOk.Enabled = false; @@ -116,6 +117,16 @@ namespace ExternalCommand { buttonOk.Enabled = false; textBox_commandline.BackColor = Color.Red; } + // Are the arguments in a valid format? + try + { + ExternalCommandDestination.FormatArguments(textBox_arguments.Text, string.Empty); + } + catch + { + buttonOk.Enabled = false; + textBox_arguments.BackColor = Color.Red; + } } private void textBox_name_TextChanged(object sender, EventArgs e) { @@ -126,5 +137,10 @@ namespace ExternalCommand { OKButtonState(); } + private void textBox_arguments_TextChanged(object sender, EventArgs e) + { + OKButtonState(); + } + } }