mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-08-16 06:31:42 +02:00
Configuration
Core
Bridge
Controls
Handling
Notification
Other
Utils
BrowserCache.cs
BrowserProcesses.cs
BrowserUtils.cs
CommandLineArgsParser.cs
MemoryUsageTracker.cs
NativeMethods.cs
StringUtils.cs
TwitterUtils.cs
WindowsUtils.cs
FormBrowser.Designer.cs
FormBrowser.cs
FormBrowser.resx
TrayIcon.Designer.cs
TrayIcon.cs
Data
Plugins
Properties
Resources
Updates
bld
lib
subprocess
tests
.gitignore
LICENSE.md
Program.cs
README.md
Reporter.cs
TweetDuck.csproj
TweetDuck.sln
TweetDuck.sln.DotSettings
_postbuild.bat
packages.config
40 lines
1.3 KiB
C#
40 lines
1.3 KiB
C#
using System;
|
|
using System.Text.RegularExpressions;
|
|
using TweetDuck.Data;
|
|
|
|
namespace TweetDuck.Core.Utils{
|
|
static class CommandLineArgsParser{
|
|
private static readonly Lazy<Regex> SplitRegex = new Lazy<Regex>(() => new Regex(@"([^=\s]+(?:=(?:\S*""[^""]*?""\S*|\S*))?)", RegexOptions.Compiled), false);
|
|
|
|
public static CommandLineArgs ReadCefArguments(string argumentString){
|
|
CommandLineArgs args = new CommandLineArgs();
|
|
|
|
if (string.IsNullOrWhiteSpace(argumentString)){
|
|
return args;
|
|
}
|
|
|
|
foreach(Match match in SplitRegex.Value.Matches(argumentString)){
|
|
string matchValue = match.Value;
|
|
|
|
int indexEquals = matchValue.IndexOf('=');
|
|
string key, value;
|
|
|
|
if (indexEquals == -1){
|
|
key = matchValue.TrimStart('-');
|
|
value = "1";
|
|
}
|
|
else{
|
|
key = matchValue.Substring(0, indexEquals).TrimStart('-');
|
|
value = matchValue.Substring(indexEquals+1).Trim('"');
|
|
}
|
|
|
|
if (key.Length != 0){
|
|
args.SetValue(key, value);
|
|
}
|
|
}
|
|
|
|
return args;
|
|
}
|
|
}
|
|
}
|