Here is my second pass at a more robust help function. I've incorporated the changes suggested by Dylan and Philip (below) and many others. I will try to list all the changes here.
o Added -q --quiet flag to suppress non-error output.
o Added -n --no-browser flag to pretend we couldn't find a
browser to test resulting error messages.
o Added -t --text flag to pretend we are in text mode even if
we are really in X windows. This makes it easier to test
text mode functionality.
o Added while loop to handle multiple command line parameters.
o Go into quiet mode if we see the variable $fish_quiet_help.
o Added -s --shutup flag to change default to quiet mode.
o Added -v --verbose flag to change default to verbose mode.
o Added warning if there are extra command line parameters.
I'm displaying the help anyway which I think would be less
frustrating for the user but if there are extra parameters
and the first one is unrecognized then I abort.
o Print warning if we couldn't find the help topic/command/etc
they were asking for before taking them to the help index.
In text mode I delay 5 seconds after printing the message
because it often (always?) gets erased by the text browser.
This is disabled by the -q, --quiet flag.
o Print out lots of browser information after we display help
with a browser as suggested by Philip and Dylan.
o Print more extensive instructions if we couldn't find a browser.
o Added recognition of "help topics" which will print out a topics
man page but I haven't uploaded that new man page yet. Please
ignore this for now so we can discuss it in a separate thread
about the help man page(s).
o Changed every printf to echo. I found this much easier to read.
o Slightly changed format of comments to make them easier to line
wrap in Gvim.
o Added support for $CONSOLE_BROWSER environment variable. It
takes top priority in text mode and does nothing in graphics
mode. I chose CONSOLE_ instead of TEXT or TEXT_ so we can
use a similar CONSOLE_EDITOR in funced. I think TEXT_EDITOR
would be very confusing since all the editors are text editors.
o fixed one typo.
NOTES:
Many of the new messages change depending if we are in text mode
or graphics mode.
I used an ugly kludge to print out a list of all the browsers we
looked for. I create a temporary directory and touch a file with
the name of each browser and then do an ls. This allows me to
take advantage of the formatting ls provides instead of just
printing a long string that gets wrapped at the right edge of the
terminal. This code only runs when we can't find a browser which
should be a rare occurrence.
I believe the only external commands I don't check for are "which"
and "ls". I check for the existence of: mktemp, readlink, basename,
and update-alternative. If any one of these is missing, I alter the
behavior, so we degrade gracefully.
The --text and --no-browser flags are to aid testing, although I
find the --text flag to be very handy. You can always display
in text mode by setting $BROWSER to a known text browser.
I realize I may have gone way overboard with the --verbose and
--shutup flags. These two flags erase and set the global
$fish_quiet_help variable. The default, of course, is verbose mode.
I did not KISS. One compromise would be to only allow the complete
--shutup and --verbose and no abbreviations. Then don't mention
them in the simple "help -h".
Peace, James
help.fish
Description: Binary data
------------------------------------------------------------------------------ Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! Tap into the largest installed PC base & get more eyes on your game by optimizing for Intel(R) Graphics Technology. Get started today with the Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________ Fish-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/fish-users
