1 unstable release
0.1.0 | Aug 4, 2022 |
---|
#860 in Command-line interface
5,328 downloads per month
Used in 34 crates
(5 directly)
24KB
275 lines
winsplit
Like shell-words, but for Windows that somewhat mirrors CommandLineToArgvW, following VC++ 2008 parsing rules.
Written purely in Rust, so runs on any operating system! Windows is not a requirement!
Minimum tested Rust version is 1.56.1
, but this may compile and work on
earlier versions!
Installation
[Dependencies]
winsplit = "0.1"
If you want to use this without std
library, this library can be compiled for
use with alloc
by disabling the std
feature:
[Dependencies]
winsplit = { version = "0.1", default-features = false }
Usage
let args = winsplit::split(
r#"C:\ProgramFiles\Example\example.exe --key "some value" arg1 arg2"#
);
assert_eq!(
args,
&[
r"C:\ProgramFiles\Example\example.exe",
"--key",
"some value",
"arg1",
"arg2"
]
);
Parsing Rules
This library follows the 2008 parsing rules for VC++ 9.9 (msvcr90.dll) that was released with Visual Studio 2008. See C/C++ parameter parsing rules for more details.
You can also check out the mirror of the rules and examples at the wiki documentation page for this repository.
Special Thanks
Goes to David Deley for documenting the complexities of the Windows parameter parsing logic and providing numerous examples found at https://daviddeley.com/autohotkey/parameters/parameters.htm.
License
This project is licensed under either of
Apache License, Version 2.0, (LICENSE-APACHE or apache-license) MIT license (LICENSE-MIT or mit-license) at your option.