nmh-workers
[Top] [All Lists]

Re: [Nmh-workers] temporary files

2012-03-15 17:55:25
I guess that I avoid multiple concurrent compositions of all
sorts because it's painful because of the shared draft file
unless one uses long options.
That's what .mh_profile defaults are for, and Jerry Peek's recomp ;-)
http://rand-mh.sourceforge.net/book/examples/mh/bin/recomp

The patch inlined below is for a slightly modified version with some
added conveniences.


--- recomp      2006-05-07 19:31:15.000000000 -0400
+++ mycomp      2012-03-15 18:51:00.000000000 -0400
@@ -1,18 +1,21 @@
-#! /bin/sh
-# $Id: recomp,v 1.9 1993/04/22 08:33:46 jerry book3 $
-### recomp - re-compose a draft mesage in MH draft folder
-### Usage: recomp [msgnum]
+#!/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 -editor vi.
+##      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, recomp scanS THE DRAFT
+##  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.
 ##
@@ -40,10 +43,11 @@
 # PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 # POSSIBILITY OF SUCH DAMAGES.
 
+#   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/local/mh        # WHERE MH PROGRAMS LIVE
+mh=/usr/local/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:
@@ -51,7 +55,7 @@
 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
+#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
@@ -61,20 +65,37 @@
 0)  # THEY DIDN'T GIVE MESSAGE NUMBER; SHOW THEM FOLDER:
     if $mh/scan
     then
-        echo -n "Which draft message number do you want to re-edit? "
+        printf "Which draft message to re-edit or cur [Enter] or (n)ew or 
(q)uit? "
         read msgnum
     else
-        echo "`basename $0`: quitting: no messages in your $draftf folder?" 
1>&2
-        exit
+        msgnum="new"
     fi
     ;;
 1)  msgnum="$1" ;;
-*)  echo "I don't understand '$*'.
-    I need the draft message number, if you know it... otherwise, nothing.
-    Usage: `basename $0` [msgnum]" 1>&2
-    exit
+*)
+    $mh/comp $@
+    exit $?;
     ;;
 esac
 
-$mh/comp -use -e ${VISUAL-${EDITOR-${EDIT-vi}}} -draftm $msgnum -draftf $draftf
+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 [ -z $msgnum ]; then
+       msgnum=`pick cur`
+       if [ $msgnum -eq 0 ]; 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

_______________________________________________
Nmh-workers mailing list
Nmh-workers(_at_)nongnu(_dot_)org
https://lists.nongnu.org/mailman/listinfo/nmh-workers

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