Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ad30cad

Browse files
committed
Fix wrong parsing of arguments after PFX in Args.
1 parent b02bb41 commit ad30cad

4 files changed

Lines changed: 7 additions & 4 deletions

File tree

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "fpr-cli"
3-
version = "0.1.5"
3+
version = "0.1.6"
44
authors = ["Shinji Hoshino <[email protected]>"]
55
description = "A library that allows one to write cli tools quickly."
66
edition = "2021"

src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ pub trait Args<C>: Run<C> + Sized {
146146
.keys
147147
.iter()
148148
.filter(|k| !k.used)
149+
.filter(|k| args.args[k.i] != PFX)
149150
.map(|k| args.args[k.i].to_owned())
150151
.collect::<Vec<_>>();
151152
if !u.is_empty() {

src/parse.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,8 @@ impl<'b> ParsedArgs<'b> {
190190
let idx = k.i + 1;
191191
Some(if i == self.keys.len() - 1 {
192192
&self.args[idx..]
193+
} else if self.args[self.keys[i + 1].i] == PFX {
194+
&self.args[self.keys[i + 1].i + 1..]
193195
} else {
194196
&self.args[idx..self.keys[i + 1].i]
195197
})
@@ -209,12 +211,12 @@ impl<'b> ParsedArgs<'b> {
209211
.enumerate()
210212
.filter(|&(_, a)| {
211213
if end {
212-
true
214+
false
213215
} else {
214216
let pfx = a.starts_with(PFX);
215217
if pfx && a.len() == PFX.len() {
216218
end = true;
217-
false
219+
true
218220
} else {
219221
pfx
220222
}

0 commit comments

Comments
 (0)