#!/bin/sh # $Id: mycomp,v 1.3 2005-07-24 belg4mit$ # Based on Id: recomp,v 1.9 1993/04/22 08:33:46 jerry book3 ### mycomp - optionally re-compose a draft mesage in MH draft folder ### Usage: mycomp [msg] ## mycomp -new ## mycomp [comp options] ## ## WHEN YOU TYPE q AT A What now? PROMPT, IT LEAVES THE DRAFT MESSAGE ## WITHOUT SENDING IT. IF YOU HAVE A DRAFT FOLDER, THE COMMAND LINE ## YOU'D TYPE TO RE-COMPOSE THE DRAFT IS LONG, LIKE: ## comp -use -draftm 3 -draftf +drafts ## ALSO, IT CAN BE HARD TO REMEMBER THE DRAFT NUMBER--SO YOU HAVE TO ## scan THE DRAFT FOLDER, THEN REMEMBER TO CHANGE YOUR FOLDER BACK. ## ## THIS SCRIPT HELPS WITH THAT. IF YOU GIVE IT A MESSAGE NUMBER IN THE ## DRAFT FOLDER, IT STARTS comp -use ON THAT MESSAGE WITH YOUR FAVORITE ## EDITOR PROGRAM. WITHOUT A MESSAGE NUMBER, mycomp scanS THE DRAFT ## FOLDER, THEN LETS YOU ENTER THE NUMBER OF THE MESSAGE YOU WANT TO ## RE-COMPOSE AND STARTS comp -use. ## ## WHEN YOU EXIT YOUR EDITOR, YOU GET THE USUAL What now? PROMPT. # # NOTE TO HACKERS: TABSTOPS ARE SET AT 4 IN THIS CODE draftf=+drafts # NAME OF DRAFT FOLDER folopts="-fast -norecurse -nolist -nototal -nopack" mh=/usr/athena/bin # WHERE MH PROGRAMS LIVE # THIS SCRIPT CHANGES CURRENT FOLDER TO THE $draftf FOLDER. # SET TEMPORARY CONTEXT FILE SO OTHER MH PROCESSES WON'T NOTICE CHANGE: tempctx=/tmp/RECOMP$$ MHCONTEXT=$tempctx; export MHCONTEXT stat=1 # DEFAULT EXIT STATUS; RESET TO 0 FOR NORMAL EXITS trap '/bin/rm -f $tempctx; exit $stat' 0 #trap 'echo "`basename $0`: Interrupt! Cleaning up..." 1>&2' 1 2 15 $mh/folder $folopts $draftf >/dev/null || { echo "`basename $0`: quitting: problem with draft folder '$draftf'." 1>&2 exit 1 } case $# in 0) # THEY DIDN'T GIVE MESSAGE NUMBER; SHOW THEM FOLDER: if $mh/scan then printf "Which draft message to re-edit or cur [Enter] or (n)ew or (q)uit? " read msgnum else msgnum="new" fi ;; 1) msgnum="$1" ;; *) $mh/comp $@ exit $?; ;; esac case "$msgnum" in 0) echo "comp: no messages match specification" ;; q) exit;; n|ne|new|-n|-ne|-new) $mh/comp -draftf $draftf -nouse ;; *[0-9]*|cur|last) $mh/comp -draftf $draftf -use $msgnum;; ?*) $mh/comp $@ ;; *) # Blank entry selects current message, or last if [ "X$msgnum" -eq "X" ]; then msgnum=`pick cur` if [ -z "$msgnum" ]; then msgnum=`pick last` fi fi $mh/comp -draftf $draftf -use -draftm $msgnum ;; esac stat=$? # SAVE comp'S STATUS (IT'S USUALLY 0) FOR OUR exit