diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-09-01 16:43:18 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-09-01 16:43:18 +0200 |
commit | 957fd18c38e3bb1c9c489b40a0cbdf865e821294 (patch) | |
tree | 1e83341cb2d5407ce7733059da46aef3d6b70aeb | |
parent | 60c5e99d211d0abc62c7cce7a52adb55c24e3a5d (diff) |
Allow specification of argument documentation for flags
If all three documentation strings are specified for a bool option,
then the usage, html, and man documentation will include the argument
documentation (first string), just like for non-flag options. This is
primarily useful for using options to handle commands where you may
want to end up with something like "help [<options>] <command>".
-rw-r--r-- | cli/html.cxx | 4 | ||||
-rw-r--r-- | cli/man.cxx | 4 | ||||
-rw-r--r-- | cli/source.cxx | 6 |
3 files changed, 7 insertions, 7 deletions
diff --git a/cli/html.cxx b/cli/html.cxx index 8897f4e..1b60827 100644 --- a/cli/html.cxx +++ b/cli/html.cxx @@ -44,7 +44,7 @@ namespace std::set<string> arg_set; - if (type != "bool") + if (type != "bool" || doc.size () >= 3) { string s ( translate_arg ( @@ -60,7 +60,7 @@ namespace // If we have both the long and the short descriptions, use // the long one. // - if (type == "bool") + if (type == "bool" && doc.size () < 3) { if (doc.size () > 1) d = doc[1]; diff --git a/cli/man.cxx b/cli/man.cxx index 576ee04..218cd57 100644 --- a/cli/man.cxx +++ b/cli/man.cxx @@ -44,7 +44,7 @@ namespace std::set<string> arg_set; - if (type != "bool") + if (type != "bool" || doc.size () >= 3) { string s ( translate_arg ( @@ -60,7 +60,7 @@ namespace // If we have both the long and the short descriptions, use // the long one. // - if (type == "bool") + if (type == "bool" && doc.size () < 3) { if (doc.size () > 1) d = doc[1]; diff --git a/cli/source.cxx b/cli/source.cxx index 7fb1391..2bf1c0f 100644 --- a/cli/source.cxx +++ b/cli/source.cxx @@ -203,7 +203,7 @@ namespace string type (o.type ().name ()); - if (type != "bool") + if (type != "bool" || doc.size () >= 3) { l++; // ' ' seperator @@ -260,7 +260,7 @@ namespace string type (o.type ().name ()); - if (type != "bool") + if (type != "bool" || doc.size () >= 3) { os << ' '; l++; @@ -284,7 +284,7 @@ namespace // string d; - if (type == "bool") + if (type == "bool" && doc.size () < 3) { if (doc.size () > 1) d = doc[0]; |