Re: implementation of -h and --help [was: documentation of crash flags]linux-2.6.22.1-20.fc7]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



D. Hugh Redelmeier wrote:

In help.c cmd_usage():

- make sure that cmd_usage does not call gdb if gdb isn't initialized
  (in trying to give -h help for an unrecognized command)

- add a flag MUST_HELP to cmd_usage to specify that if help isn't
  found a diagnostic should be printed.  This used to be the case if
  the command calling cmd_usage was help but not if -h called it.

- this command still unconditionally uses less(1) for anything but a
  synopsis.  This should be changed.


In main.c, the long_options array:

- use the name "required_argument" in place of the magic number 1.

- make --help a synonym of 'h'

- specify that --help has an optional_argument.


In main.c main():

- in the call of getopt_long: add another ':' for -h.  This means
  that the argument is optional.  This, in turn, means that the switch
  default no longer handles -h at the end of an argument list.

- I added code to detect and report an unhandled long option.  It is
  easy to get the long_option table out of sync with the handlers.
  Mostly this involves adding "else" a lot of places in case 0.

- ditch the code to implement --help since it is now handled by the
  code for -h

- ditch the code to implement -h in the switch default since it is now
  handled in case 'h'

- the case 'h' code now has to handle the fact that the -h / --help
  argument is optional.

- removed -H flag which wasn't documented and is now redundant.


OK, this all looks pretty reasonable.  I haven't played with it
yet because the patch doesn't apply in my working tree due to
the other previously-queued changes, but it's just patch-monkey
work.

I thought you might pick up on the damn "less" issue in the help
output...  ;-)

To handle that issue, I've decided to do the same thing that
man(1) does.  The man command does the same thing as crash, i.e,
it uses "/usr/bin/less -isr" by default, but allows its override
with a "MANPAGER" environment variable.  So I'm going to allow users
to hang themselves with CRASHPAGER environment variable.  I hadn't
thought of using it as part of the help output, but it should
work there as well.

Thanks,
  Dave



--
Crash-utility mailing list
Crash-utility@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/crash-utility

[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux