mbox series

[v3,0/8] show negatability of options in short help

Message ID e4d46d97-1cd4-7fea-afd1-7de5023b1b09@web.de (mailing list archive)
Headers show
Series show negatability of options in short help | expand

Message

René Scharfe Aug. 5, 2023, 2:33 p.m. UTC
Changes since v2:
- Rebase, affects only patch 5.
- Add patch 7 for documenting negative options on their own line.
- Add preparatory patch 6.
- Add bonus patch 8.

  subtree: disallow --no-{help,quiet,debug,branch,message}
  t1502, docs: disallow --no-help
  t1502: move optionspec help output to a file
  t1502: test option negation
  parse-options: show negatability of options in short help
  parse-options: factor out usage_indent() and usage_padding()
  parse-options: no --[no-]no-...
  parse-options: simplify usage_padding()

 Documentation/git-rev-parse.txt    |  10 +--
 contrib/subtree/git-subtree.sh     |  10 +--
 contrib/subtree/t/t7900-subtree.sh |   2 +-
 parse-options.c                    |  70 ++++++++++-----
 t/t0040-parse-options.sh           |  44 +++++-----
 t/t1502-rev-parse-parseopt.sh      | 131 ++++++++++++-----------------
 t/t1502/.gitattributes             |   1 +
 t/t1502/optionspec-neg             |   8 ++
 t/t1502/optionspec-neg.help        |  12 +++
 t/t1502/optionspec.help            |  36 ++++++++
 10 files changed, 199 insertions(+), 125 deletions(-)
 create mode 100644 t/t1502/.gitattributes
 create mode 100644 t/t1502/optionspec-neg
 create mode 100644 t/t1502/optionspec-neg.help
 create mode 100755 t/t1502/optionspec.help

Range-Diff gegen v2:
1:  26c03bd70c = 1:  ee280b3484 subtree: disallow --no-{help,quiet,debug,branch,message}
2:  ad9e7d1393 = 2:  556e79ce55 t1502, docs: disallow --no-help
3:  1bb68a4a40 = 3:  274e65ec1c t1502: move optionspec help output to a file
4:  47ab167d1c = 4:  89b0455305 t1502: test option negation
5:  961c5dfcf7 ! 5:  7cd3abcff7 parse-options: show negatability of options in short help
    @@ t/t0040-parse-options.sh: usage: test-tool parse-options <options>
     +                          set file to <file>

      String options
    --    -s, --string <string>
    -+    -s, --[no-]string <string>
    -                           get a string
    +-    -s, --string <string> get a string
     -    --string2 <str>       get another string
     -    --st <st>             get another string (pervert ordering)
    ++    -s, --[no-]string <string>
    ++                          get a string
     +    --[no-]string2 <str>  get another string
     +    --[no-]st <st>        get another string (pervert ordering)
          -o <str>              get another string
    +     --longhelp            help text of this entry
    +                           spans multiple lines
     -    --list <str>          add str to list
     +    --[no-]list <str>     add str to list

    @@ t/t1502/optionspec.help: usage: some-command [options] <args>...
      An option group Header
          -C[...]               option C with an optional argument
     -    -d, --data[=...]      short and long option with an optional argument
    -+    -d, --[no-]data[=...]
    -+                          short and long option with an optional argument
    ++    -d, --[no-]data[=...] short and long option with an optional argument

      Argument hints
          -B <arg>              short option required argument
    @@ t/t1502/optionspec.help: usage: some-command [options] <args>...
     +    --[no-]pair <key=value>
     +                          with an equals sign in the hint
     +    --[no-]aswitch        help te=t contains? fl*g characters!`
    -+    --[no-]bswitch <hint>
    -+                          hint has trailing tab character
    ++    --[no-]bswitch <hint> hint has trailing tab character
     +    --[no-]cswitch        switch has trailing tab character
    -+    --[no-]short-hint <a>
    -+                          with a one symbol hint
    ++    --[no-]short-hint <a> with a one symbol hint

      Extras
     -    --extra1              line above used to cause a segfault but no longer does
-:  ---------- > 6:  46dcdb902d parse-options: factor out usage_indent() and usage_padding()
-:  ---------- > 7:  fdeca0d6d2 parse-options: no --[no-]no-...
-:  ---------- > 8:  08b2d1e861 parse-options: simplify usage_padding()
--
2.41.0