MH & nmh: Email for Users & Programmers

May, 2006

Programs in This Book's Archive

The Section Obtaining Example Files From This Book explains how to get an archive file with example files and programs from this book. Most of those files and programs are mentioned in other parts of the book; some are explained in detail. This section explains unusual features of programs and lists important customization steps. This section does not explain a script's operation in detail. Before using a script, you or someone who understands shell programming should check it for things that need customizing (like correct directory and file pathnames) and for features you don't expect.

The Chapter Introduction to UNIX Programming with MH will help you understand how the Bourne shell scripts work. The Reference List has some good reference books on UNIX programming. The scripts in the archive have more detailed comments in them.

Even if you don't want to use the programs from this section in your day-to-day work, each one demonstrates something new about programming with MH -- so they're worth studying. (If you program Perl instead of the shell, the techniques in these scripts will help you.) Programs like these let you go further with MH customization, to do things that MH versions won't let you do.

These scripts don't use features of modern Bourne shells that have more built-in commands and options than earlier Bourne shells. Some programs (like distprompter) are longer because of that. The benefit is that the scripts should work on all Bourne shells.

Before you run any of the scripts in this archive, do what you'd do with any unknown software: read through it and test to be sure that it'll work well in your setup. Although I use the scripts myself and have tried to write them portably, I can't be responsible for problems you have. Finally, if you find a bug or have a suggestion, please tell us about it by clicking on the link at the bottom of any page of this book. We'll update the online archives periodically. If you got your copy of a script awhile ago, you might look for an updated version online.

The archive file is organized overall by package, and within each package by the type of files. For example, the top-level subdirectories are mh and xmh (there weren't any exmh files as of this writing). A subdirectory named bin has files (mostly scripts) that you'd want to copy into your bin. (The Section Making a bin Directory, Setting Search Path explains how.) Files like replcomps that belong in your MH directory are in a subdirectory named Mail. And so on.

The next pages document many of the files in the archive.