mirror of
https://github.com/greenshot/greenshot
synced 2025-07-16 10:03:44 -07:00
FEATURE-945: Added environment variables to the external command (also removed unused imports and made some variables readonly)
This commit is contained in:
parent
4f326c9c0e
commit
d25021631e
90 changed files with 390 additions and 373 deletions
|
@ -38,6 +38,7 @@ namespace GreenshotPlugin.Core {
|
|||
// The parameter format is a single alpha followed by the value belonging to the parameter, e.g. :
|
||||
// ${capturetime:d"yyyy-MM-dd HH_mm_ss"}
|
||||
private static readonly Regex VAR_REGEXP = new Regex(@"\${(?<variable>[^:}]+)[:]?(?<parameters>[^}]*)}", RegexOptions.Compiled);
|
||||
private static readonly Regex CMD_VAR_REGEXP = new Regex(@"%(?<variable>[^%]+)%", RegexOptions.Compiled);
|
||||
|
||||
private static readonly Regex SPLIT_REGEXP = new Regex(";(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)", RegexOptions.Compiled);
|
||||
private const int MAX_TITLE_LENGTH = 80;
|
||||
|
@ -74,7 +75,7 @@ namespace GreenshotPlugin.Core {
|
|||
/// <summary>
|
||||
/// Remove invalid characters from the path
|
||||
/// </summary>
|
||||
/// <param name="fullpath">string with the full path to a file</param>
|
||||
/// <param name="path">string with the full path to a file</param>
|
||||
/// <returns>string with the full path to a file, without invalid characters</returns>
|
||||
public static string MakePathSafe(string path) {
|
||||
// Make the path save!
|
||||
|
@ -389,6 +390,51 @@ namespace GreenshotPlugin.Core {
|
|||
return replaceValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// "Simply" fill the pattern with environment variables
|
||||
/// </summary>
|
||||
/// <param name="pattern">String with pattern %var%</param>
|
||||
/// <param name="filenameSafeMode">true to make sure everything is filenamesafe</param>
|
||||
/// <returns>Filled string</returns>
|
||||
public static string FillCmdVariables(string pattern, bool filenameSafeMode)
|
||||
{
|
||||
IDictionary processVars = null;
|
||||
IDictionary userVars = null;
|
||||
IDictionary machineVars = null;
|
||||
try
|
||||
{
|
||||
processVars = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOG.Error("Error retrieving EnvironmentVariableTarget.Process", e);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
userVars = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.User);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOG.Error("Error retrieving EnvironmentVariableTarget.User", e);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
machineVars = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOG.Error("Error retrieving EnvironmentVariableTarget.Machine", e);
|
||||
}
|
||||
|
||||
return CMD_VAR_REGEXP.Replace(pattern,
|
||||
delegate (Match m) {
|
||||
return MatchVarEvaluator(m, null, processVars, userVars, machineVars, filenameSafeMode);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// "Simply" fill the pattern with environment variables
|
||||
/// </summary>
|
||||
|
@ -419,7 +465,7 @@ namespace GreenshotPlugin.Core {
|
|||
|
||||
return VAR_REGEXP.Replace(pattern,
|
||||
delegate(Match m) {
|
||||
return MatchVarEvaluator(m, null, processVars, userVars, machineVars, filenameSafeMode);
|
||||
return MatchVarEvaluator(m, null, processVars, userVars, machineVars, filenameSafeMode);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue