diff --git a/CHANGELOG.md b/CHANGELOG.md index 06537f8..75ea85e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Commander Changelog +## Master + +### Bug Fixes + +- Fixed ordering of flags in the "Unknown Arguments" help output of a command. + Flags have previously been stored in an un orderered set and thus upon + printing them back out their order was not persisted and a flag part such as + `-user` can be printed as `-usre`. + [#78](https://github.com/kylef/Commander/issues/78) + ## 0.9.0 (2019-06-12) ### Breaking diff --git a/Sources/Commander/ArgumentParser.swift b/Sources/Commander/ArgumentParser.swift index 969056f..dda15c0 100644 --- a/Sources/Commander/ArgumentParser.swift +++ b/Sources/Commander/ArgumentParser.swift @@ -6,7 +6,7 @@ private enum Arg : CustomStringConvertible, Equatable { case option(String) /// A flag - case flag(Set) + case flag([Character]) var description:String { switch self { @@ -78,8 +78,7 @@ public final class ArgumentParser : ArgumentConvertible, CustomStringConvertible let option = flags[flags.index(after: flags.startIndex).. Void) = { try expect(value2) == "value2" } } + + $0.describe("#description") { + $0.it("should maintain flag ordering") { + let parser = ArgumentParser(arguments: ["-user", "-one"]) + + try expect(parser.description) == "-user -one" + } + } }