nmh-workers
[Top] [All Lists]

current work on nmh

1998-06-08 12:45:31
I thought I would send a message to let everyone know about the
current work I'm doing with nmh, and to get some general comments.

One of the main problems with MH/nmh is lack of MIME support in many
of the commands.  Another problem is that similar functionality is
in different programs (show and mhn -show)

nmh is currently separated into two different types of commands.  The
standard commands (such as burst, inc, show, etc) which are fairly
small commands, and which are not MIME aware.  Then there are the two
MIME oriented commands "mhn" and "mhbuild".  These are very large
programs with lots of different functionality.

I'm beginning a restructuring of many of the commands.  This is a
longer term project, so don't expect immediate results.  But I've got
a good start on it.

First, mhn and mhbuild are being split into many separate source
files (I've already done most of this).  This required a good bit of
restructuring of the code, to remove dependencies between different
parts of the program.  There are now separate files containing code
for parsing MIME, list MIME, showing MIME, etc.  I'm hoping that once
this code is put into distinct libraries, it will be easier to
maintain and improve, as well as allow me to add MIME functionality
to many of the other nmh commands.

Next "mhn" will probably be split into separate executables.  I'm
about to start on this part.  Mhn is currently a many-headed monster,
which has lots of separate functionality, and is difficult to
maintain.  It also goes against the MH/nmh philosophy of having many
small special purpose commands.  So  I will split mhn like this:

mhn -show   ->  mhshow
mhn -store  ->  mhstore
mhn -list   ->  mhlist

There is some other functionality which I haven't decide where to put
(mhn -cache and the viamail code).  I'll have to think about this
a little more.

Once "mhn" is split in this way, some of these new executables will
merge with some of the older commands.  For instance, mhshow and show
will be merged into one command.  At that point, the ability to
display a message (both MIME and non-MIME) will rest with one
program.  Also the commands "mhstore" and "burst" will merge, since
their functionality is very similar.

The last part of this process, will be to use the newly split off
functionality to parse MIME messages, in order to add MIME
functionality to other nmh commands (such as repl and forw).
I probably won't get to this for a few months.

I'm hoping to make this transition as easy as possible.  I'll try to
make things as backward compatible as possible.  Once mhn is split,
I may create a mhn exectuable which does nothing but read options,
and call the correct executable.  That way, exmh shouldn't be
broken by these changes.

These are my plans.  It won't happen all at once, but it should
happen.

--
Richard Coleman
coleman(_at_)math(_dot_)gatech(_dot_)edu


<Prev in Thread] Current Thread [Next in Thread>