Explanation of recomp

The Section Work on Draft Folder: scandrafts gives an overview of this script. Here is the recomp script (you might want to open it in a separate browser window). To install it, see the Section Programs in This Book's Archive.

To make recomp run more quickly, the draft folder name is stored in the draftf shell variable. If more than one person is running recomp, you should replace that hardcoded folder name with a call to mhparam or mhprofile. The following code will call mhparam to set the right draft folder for everyone -- and exit if there's trouble:

    draftf="+`mhparam draft-folder`" || {
        echo "`basename $0`: quitting: trouble finding your draft folder." 1>&2
        exit 1
    }
    
The folopts variable stores command-line switches for folder that override any undesirable switches in the user's MH profile. This is important because, for instance, folder: -pack in the MH profile would renumber the draft messages -- but the user wouldn't be expecting that here. You shouldn't always override MH profile switches this way. For example, changing the output format of the scan command in this script can't hurt much; as a matter of fact, users would probably appreciate having the scan output they're used to seeing...

The script calls comp -use -editor xxx to edit the draft message, where xxx is one of several editors. In order to choose the editor, several nested Bourne shell ${varname-default} operators check the VISUAL, EDITOR and EDIT environment variables; if none are set, the script defaults to vi.

The stat shell variable holds the script's exit status. It's set to 1 (indicating an error) at the start of the script. If the script finishes, stat is set to 0 (assuming that comp returned 0, that is). The trap sets the script's exit value as the script ends.