#-h- msgsym 1386 asc 08-may-80 09:33:16 define(ANSWERCOM,LETA) define(BACKUPCOM,LETB) define(CURRENTCOM,LETC) define(DELETECOM,LETD) define(EXITCOM,LETE) define(FORWARDCOM,LETF) define(GOTOCOM,LETG) define(HEADERCOM,LETH) define(INFOCOM,LETI) define(JUMPCOM,LETJ) define(LISTCOM,LETL) define(MOVECOM,LETM) define(NEXTCOM,LETN) define(OVERCOM,LETO) define(PUTCOM,LETP) define(QUITCOM,LETQ) define(READCOM,LETR) define(SNDMSGCOM,LETS) define(TYPECOM,LETT) define(UNDELETECOM,LETU) define(WRITECOM,LETW) define(NEWSCOM,SHARP) define(HELPCOM,QMARK) define(DELETE,LETD) define(SAVE,LETS) define(MAXHEADERS,40) define(MSGNUMBERS,DIG0) define(FROMSEARCH,LETF) define(SUBJECTSEARCH,LETS) define(SEPARATOR,COLON) define(ALLPAT,LETA) define(CTRLM,13) define(NOCONFIRM,LETN) define(CTRLJ,10) define(MAXFROMSIZE,20) define(MAXSUBJSIZE,25) define(MAXDATESIZE,12) define(PATSIZE,20) define(MSGNUMBWIDTH,4) define(MSGSIZEWIDTH,6) define(MSGDATEWIDTH,14) define(MSGFROMWIDTH,20) define(EOT,26) define(BACKSPACE,8) define(RUBOUT,127) define(LINEDELETE,21) # CTRLU define(RETYPELINE,18) # CTRLR define(FIRSTMSG,LETF) define(LASTMSG,LETL) define(MSGNOCHAR,SHARP) define(MSGSIZECHAR,STAR) define(SCRATCHSIZE,75) define(FORMFEED,12) define(NOTIFY,YES) define(NONOTIFY,NO) define(HLPPTRSIZE,30) define(PAGESIZE,22) define(NOPAGING,-1) define(LISTHEADERS,YES) define(NOLISTHEADERS,NO) #-h- msplit.r 1736 asc 08-may-80 09:33:17 #-h- mspdrv.q 47 asc 08-may-80 09:33:08 # call initr4 # call msplit # call endr4 # end #-h- msplit.q 911 asc 08-may-80 09:33:09 # subroutine msplit subroutine main include msgsym character ch, cl, root(FILENAMESIZE), file(FILENAMESIZE) integer i, verbos, status integer getarg, equal, cpymsg string quest "?" string dfroot "tmsg" string minusv "-v" data ch/LETA/ data cl/LETA/ verbos = NO call scopy(dfroot, 1, root, 1) for (i=1; getarg(i, file, FILENAMESIZE) != EOF; i=i+1) { call fold(file) if (equal(file, quest) == YES) call error("usage: msplit LETZ) { cl = LETA ch = ch + 1 } } until (status == EOF) return end #-h- cpymsg.q 631 asc 08-may-80 09:33:10 integer function cpymsg(n, file) integer n, out, i, status integer create, getlin, equal linepointer temp character file(FILENAMESIZE), hdrpat(4), buf(MAXLINE) data hdrpat/1, 1, NEWLINE, EOS/ out = create(file, WRITE) if (out == ERR) call cant(file) i = 0 repeat { call markl(STDIN, temp) status = getlin(buf, STDIN) if (status == EOF) break if (equal(buf, hdrpat) == YES) { i = i + 1 if (i > n) { call seek(temp, STDIN) # backup one line status = n # n messages copied break } } call putlin(buf, out) } call close(out) cpymsg = status return end