[comp.unix.xenix] Menu software... "lush" version 1.34, 1.35...

shields@yunccn.UUCP (Paul Shields) (01/11/90)

Here is a summary of questions and answers about my menu software. 
Hopefully this will dispell the confusion. 

>Can you send me a copy?
Look for it in alt.sources.  It's shar'd, and in 3 parts.  Your C
compiler must have the getopt() function.  I've heard that there is
a PD version running about.  In addition, if you don't have termcap,
you'll need to look in an old comp.sources.misc archive for the GNU
termcap functions library.

>>it's easy to configure
>...how easy?
When I said "easy to configure" I should have qualified that statement. 

The menu profile is not very complex.  In compiler terminology, it uses
a simple LL(1) grammar, which _should_ make it easy for humans to
understand. 

But then again I'm a programmer so it could be that I've been living
with computers too long.  There is a BNF description of the syntax
included.  If you don't know what this means, you might not want to
bother with the software. 

>...Must it run under csh?
No, it can run under /bin/sh.  (You'll have to trap interrupts; see the
documentation for details.)  I plan to make it run as the top level
shell in a future release. 

>...can you do data entry with it?
Not the kind you want.  See below.

>>It's known to run on DOS, BSD, and Xenix

I'm always interested in making it more portable.  But if you can't
compile it, before you send me a note, please check the config.h file,
the Makefile, and your compiler switches.  I'm all the way up here in
Canada, eh? So I can't guarantee that I will be able to help you. 
Having an ANSI C compiler gets you most of the way there. 

Portability, it has.  That, unfortunately, makes it suffer in the
following ways:

   - It's not very smart at controlling terminal capabilities.
   - It doesn't do any field-based data entry.
   - It does not use the cursor keys.

These imply much more sophisticated use of the terminal capabilities,
and the ability to control terminal modes like buffering and echo, which
are system dependant and would make the both the sources and the
executables much larger.  That's why it's command based, instead of
field-based.  This is something I'm thinking about.  Don't hold your
breath, as I expect it will be a long haul to write this stuff...  If
there's demand for it, I'll spec it out and you can all have fun
implementing it on your own systems. .. 1/2 :-)

>...Can it do input validation?
All it does is check for a few illegal characters.  More kinds of input
validation could probably be added without much difficulty. 
    - Character-by-character input and validation at the same time
      would imply more control of the terminal... nice, but not portable. 
    - type-checking and range-checking could be added without too much
      hassle.  Look for these in a future release.

>...I don't have a C compiler. Can you send me the binary?

No. I'm too scared of possible virus infection. 
-- 
Paul Shields, shields@nccn.yorku.ca  (..!uunet!yunccn!shields)