Commit graph

1069 commits

Author SHA1 Message Date
Kevin K
8bcbce27f7 tests(Suggestions): adds additional tests 2016-02-04 02:01:10 -05:00
Kevin K
7166f4f110 refactor(macros): removes ok() from Result.ok().expect() 2016-02-04 02:01:10 -05:00
Kevin K
2bc1908320 tests(ArgGroup): adds additional tests including YAML 2016-02-04 02:01:10 -05:00
Kevin K
fcbc7e12f5 fix: adds support for building ArgGroups from standalone YAML
ArgGroups can now be built from standalone YAML documents. This is
labeled as a fix because it should have been the case prior. A
standalone YAML document for a group would look something like

```
name: test
args:
    - arg1
    - arg2
required: true
conflicts:
    - arg3
requires:
    - arg4
```

This commit also keeps support building groups as part of a larger
entire App YAML document where the name is specified as a key to the
yaml tree
2016-02-04 02:01:10 -05:00
Homu
355a5fdabd Auto merge of #411 - cite-reader:hyphen-doesnt-panic, r=kbknapp
fix: Stop lonely hyphens from causing panic

The method `starts_with` as implemented for the `OsStrExt2` trait on
`OsStr` assumed that the needle given is shorter than the haystack. When
this is not the case, the method panics due to an attempted
out-of-bounds access on the byte representation of `self`. Problematic
if, say, an end-user gives us `"-"` and the library tries to see if that
starts with `"--"`.

Fortunately, slices already implement a `starts_with` method, and we can
delegate to it.

This *does* create a semantics change: if both `self` and the needle
have length 0, this implementation will return `true`, but the old
implementation would return `false`. Based on the test suite still
passing, acknowledging the vacuous truth doesn't seem to cause any
problems.

Fixes #410
2016-02-04 16:15:31 +09:00
Alex Hill
85b11468b0 fix: Stop lonely hyphens from causing panic
The method `starts_with` as implemented for the `OsStrExt2` trait on
`OsStr` assumed that the needle given is shorter than the haystack. When
this is not the case, the method panics due to an attempted
out-of-bounds access on the byte representation of `self`. Problematic
if, say, an end-user gives us `"-"` and the library tries to see if that
starts with `"--"`.

Fortunately, slices already implement a `starts_with` method, and we can
delegate to it.

This *does* create a semantics change: if both `self` and the needle
have length 0, this implementation will return `true`, but the old
implementation would return `false`. Based on the test suite still
passing, acknowledging the vacuous truth doesn't seem to cause any
problems.

Fixes #410
2016-02-02 21:05:45 -08:00
Homu
e47f825e97 Auto merge of #408 - kbknapp:minor-bug, r=sru
Bug fixes, new setting, code clean up, and added support u64::max values per arg

This turned into a little more than just a quick bug fix 😜

Thanks to #409 I've piggy backed on that and added support for > 256 values as well.

There's also just a bunch of code deduping and super small macro cleanups.

After this merges I'll put out 2.0.3
2016-02-03 11:04:14 +09:00
Kevin K
c31c2fbe07 Merge branch 'master' into minor-bug 2016-02-02 15:51:44 -05:00
Homu
700db3f9b1 Auto merge of #409 - cstorey:master, r=kbknapp
Allow for more than 256 occurrences of an argument.

Hi,

I often use tools with `xargs` and the like, and it's entirely possible to end up with inhumanly long sets of parameters being passed to a command.

Without this fix, the library will panic with an arithmetic overflow in `ArgMatcher#inc_occurrence_of` when the 256th instance of the parameter is accounted for.

Thanks,
2016-02-03 05:08:36 +09:00
Ceri Storey
f86a183e32 chore: Add myself to contributors. 2016-02-02 19:32:11 +00:00
Ceri Storey
3731ddb361 fix(matched_arg): Allow for more than 256 occurrences of an argument. 2016-02-02 19:30:32 +00:00
Kevin K
dbea0e349b chore: increase version 2016-02-02 07:45:49 -05:00
Kevin K
07dfdd00ea tests(multiples): adds tests for > u8::max vals and occurrences 2016-02-02 07:45:49 -05:00
Kevin K
c19a791745 imp(values): adds support for up to u64::max values per arg 2016-02-02 07:45:49 -05:00
Kevin K
d431417003 refactor(macros): does some code deduplication by macros 2016-02-02 07:45:49 -05:00
Kevin K
2704b300ec refactor(macros): implements a slightly better arg_post_processing 2016-02-02 07:45:49 -05:00
Kevin K
8f145f1024 refactor(macros): implements a better _handle_group_reqs 2016-02-02 07:45:49 -05:00
Kevin K
de32078d75 refactor(macros): implements a better vec_remove and remove_overriden 2016-02-02 07:45:49 -05:00
Kevin K
ca7f197a12 refactor: minor code cleanup 2016-02-02 07:45:49 -05:00
Kevin K
7596951a30 tests: adds additional tests for new setting and missing old tests 2016-02-02 07:21:01 -05:00
Kevin K
cdee7a0eb2 feat(AppSettings): adds HidePossibleValuesInHelp to skip writing those values 2016-02-02 07:21:01 -05:00
Kevin K
be2cbd9480 fix(App::args_from_usage): skips empty lines when parsing multiple lines from usage 2016-02-02 07:21:01 -05:00
Kevin K
ee96baffd3 fix(value_t_or_exit): fixes typo which causes value_t_or_exit to return a Result 2016-02-02 07:21:01 -05:00
Homu
bc091c4a78 Auto merge of #407 - kbknapp:fixrollup, r=kbknapp
Fixrollup
2016-02-01 15:25:21 +09:00
Kevin K
2564b3af11 chore: increase version 2016-01-31 08:23:34 -05:00
Kevin K
ab41be700b imp(arg_enum): enum declared with arg_enum returns [&'static str; #] instead of Vec 2016-01-31 08:23:34 -05:00
Kevin K
4735f4d5cb tests(SubCommands): adds tests for subcmds after mult args 2016-01-31 07:37:20 -05:00
Kevin K
c19c17a885 fix(SubCommands): fixed where subcmds weren't recognized after mult args
Closes #405
2016-01-31 07:35:42 -05:00
Kevin K
816cec8152 tests(Usage Parser): moves tests usage parser since that's what it's testing 2016-01-31 07:12:15 -05:00
Kevin K
0bcc712064 fix(Usage Parser): fixes a bug where literal single quotes weren't allowed in help strings
Closes #406
2016-01-31 07:12:07 -05:00
Homu
f50b8dbf98 Auto merge of #404 - Keats:fix-macro, r=Vinatorul
fix: clap_app! should be gated by unstable, not nightly feature

Should fix #402
2016-01-30 22:02:33 +09:00
Vincent Prouillet
0c8b84af61 fix: clap_app! should be gated by unstable, not nightly feature 2016-01-30 11:16:13 +00:00
Homu
3067a12cab Auto merge of #403 - kbknapp:cargo-features, r=kbknapp
fix: fixes cargo features to NOT require nightly with unstable features
2016-01-30 19:42:38 +09:00
Kevin K
998b0dfce0 chore: increase version 2016-01-29 22:11:34 -05:00
Kevin K
280ada7b84 fix: fixes cargo features to NOT require nightly with unstable features
Closes #402
2016-01-29 22:11:34 -05:00
Homu
7b287d7335 Auto merge of #399 - kbknapp:rebase-v2, r=kbknapp
clap v2

Finally ready...
2016-01-29 23:41:55 +09:00
Kevin K
90542747ac chore: fixes doc and style mistakes 2016-01-28 21:58:40 -05:00
Homu
0b2a8a296f Auto merge of #397 - Geogi:bump-deps, r=kbknapp
chore: bump dependencies bitflags and yaml-rust to latest version

Bump `bitflags` from 0.3.3 to 0.4.0 and `yaml-rust` from 0.2.2 to 0.3.0.

All tests pass in current stable, beta and nightly (`1.8.0-nightly (38e23e8f7 2016-01-27)`).
2016-01-29 01:58:51 +09:00
Kevin K
bf8cd8f446 chore: increase version 2016-01-28 11:46:12 -05:00
Kevin K
d374fd4def chore: adds new contributors 2016-01-28 11:46:12 -05:00
Kevin K
4d7c5675b9 chore: updates dep-graph 2016-01-28 11:46:12 -05:00
Kevin K
c28d24db3e fix: fixes nightly build with new lints 2016-01-28 11:46:12 -05:00
Kevin K
d182049119 chore: fixes failing rustdoc 2016-01-28 11:46:12 -05:00
Kevin K
c13963a30d chore: updates appveyor build file 2016-01-28 11:46:12 -05:00
Kevin K
a210f89b84 docs: updates examples for 2x release
Closes #394
2016-01-28 11:46:12 -05:00
Kevin K
518b89bd3d fix: fixes Windows build for 2x release
Closes #392
2016-01-28 11:46:12 -05:00
Kevin K
f8692a0b3a docs: updates examples for 2x release
Closes #394
2016-01-28 11:46:12 -05:00
Kevin K
2031682193 chore: updates additional files for 2x release 2016-01-28 11:46:12 -05:00
Kevin K
d2a78e3e21 docs: updates documentation for v2 release 2016-01-28 11:45:31 -05:00
Kevin K
5f0da1200b docs(README.md): updates readme for v2 release
Closes #393
2016-01-28 11:45:31 -05:00