1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-11 23:53:12 +00:00

Build EMACS; [RMAI] 146 from RMAILX and RMAILY in EMACS1.

This commit is contained in:
Lars Brinkhoff 2018-02-14 21:22:33 +01:00
parent 27e2c436e2
commit 52af06f3aa
4 changed files with 167 additions and 0 deletions

Binary file not shown.

View File

@ -302,6 +302,7 @@ respond ":EJ" "\033xgenerate\033emacs;modlin\033emacs1;modlin\r"
respond ":EJ" "\033xgenerate\033emacs;muddle\033emacs1;muddle\r"
respond ":EJ" "\033xgenerate\033emacs;page\033emacs1;page\r"
respond ":EJ" "\033xgenerate\033emacs;pictur\033emacs1;pictur\r"
respond ":EJ" "\033xgenerate\033emacs;\[rmai\]\033emacs1;rmailx\033rmailz\r"
respond ":EJ" "\033xgenerate\033emacs;scribe\033emacs1;scribe\r"
respond ":EJ" "\033xgenerate\033emacs;scrlin\033emacs1;scrlin\r"
respond ":EJ" "\033xgenerate\033emacs;slowly\033emacs1;slowly\r"
@ -321,6 +322,8 @@ respond ":EJ" "\033xrun\033einit\033? Document\r"
respond "\n" "\030\003"
respond "*" ":kill\r"
respond "*" ":rename emacs;\[rmai\] \021:ej, emacs;\[rmai\] 146\r"
respond "*" ":link teach;teach emacs,emacs;teach emacs\r"
type ":vk\r"
respond "*" "teach\033\023"

BIN
src/emacs1/rmailx.1 Executable file

Binary file not shown.

164
src/emacs1/rmailz.57 Normal file
View File

@ -0,0 +1,164 @@
!* -*-TECO-*- *!
!& RMAIL Command String:! !S Processes an RMAIL command string.!
!* QREG USAGE IN RMAILZ (NOTHING IS ASSUMED AT ENTRY):
Q0 IS A BUFFER HOLDING THE COMMAND STRING FROM DDT, PERHAPS CANONICALIZED,
OR SOME FINAL SEGMENT OF IT.
Q1 IS A BUFFER HOLDING THE NAMES OF ALL EXISTING SLASHIFIED
FILES THAT HAVE BEEN FOUND SO FAR, AND THE NAME OF THE RMAIL
FILE IF ENCOUNTERED, WHETHER EXISTING OR NOT; ONE FILENAME
PER LINE, WITH THE RMAIL FILE LAST.
Q2 IS THE UPPERMOST BUFFER. IT HOLDS THE CONCATENATED CONTENTS
OF ALL THE FILES READ SO FAR.
Q7 IS INITIALLY 0; WHEN RMAIL FILE SEEN, ITS FILENAME (DEFAULTED)
IS PUT IN Q7.
QA HOLDS THE DEFAULT SNAME (A STRING).
QB HOLDS THE DEFAULT UNAME (A STRING).
QE IS 1 IFF THERE IS AN RMAIL FILE, ELSE 0. SET UP BEFORE THE
MAIL SCAN OF THE COMMAND LINE.
QF IS A TEMP.
QG IS THE CHARACTER THAT TERMINATED THE SPEC FOR THE FILE BEING PROCESSED.
QR IS A LOCAL SUBROUTINE THAT READS IN ONE FILE.
ALL ARE LOCALLY BOUND, EXCEPT QA, QB, Q7, WHICH ARE USEFUL VALUES ON RETURN.
ON EXIT, POINT IS LEFT AT THE FIRST MESSAGE OF NEW MAIL.
!
!* WHEN RMAILZ IS CALLED, THE BUFFER SHOULD CONTAIN
<DESIRED DEFAULT SNAME> AS THE FIRST LINE
<DESIRED UNAME> AS THE SECOND LINE
<COMMAND STRING> AS THE THIRD LINE
!
[0[1[2 0[E [F[G[R 0U7
1F[FNAMSY
J:XA K !* Initial SNAME in QA.!
:XB K !* Desired UNAME in QB; buffer has just the command string.!
J @F_K !* Delete leading spaces of command, so blank is null.!
ZJ -@F
K !* Delete any trailing CRLF.!
Z"E I/' !* Null command same as "/" !
J I_ !* Put one space at front, so a leading "/" will be found properly.!
ZJ 0A-$"E -DI' !* Trailing $ same as , since  is hard with MM RMAIL.!
0A-33."E 1UE' !* Set QE if there is an RMAIL file.!
15.I !* Put CR at end to stop search.!
HFX0 !* Save away munged command string.!
Q..OU2 !* We will use this buffer for the mail files themselves.!
FS BCREATEW Q..OU1 !* Get another buffer for the list of all files found (Q1).!
32I -D !* Make some room; we are going to insert stuff later.!
FS BCREATEW !* Get a buffer to hold command string, which we copy in.!
G0 J Q..OU0
ETDSK:A;B_MAIL !* Default name for newmail files.!
@:IR` !* MR reads in a file.!
!* 1MR means read a MAIL file.!
!* If file exists, put name in Q1 and rename to OMAIL.!
!* -MR reads in RMAIL file.!
[..O
1:< ER>[F !* Does file exist? !
"L FS D FILEU7' !* RMAIL file name goes in Q7 whether exists or not.!
QF"N ' !* That's all we do if file doesn't exist.!
QE"N "G !* If in update mode, any existing /'d files!
EN_OMAIL !* get renamed to "OMAIL",!
Q1U..O ZJ G(FS D FILE) I
'' !* and their names are put into Q1.!
!* HAVE STORED NAMES IF REQD, NOW READ IN FILE (NO-OP IF NOT FOUND).!
Q2U..O J
:"L @A ' !* NEWMAIL FILES JUST ADD AT END!
FS UREAD"N !* RMAIL FILE MAY GO AT BEGINNING OR END.!
.,( 10FY .)FXF !* WHICH ONE? IF IT STARTS WITH *APPEND*, PUT AT FRONT.!
0FSIFACCESS !* UNDO SIDE EFFECT OF FY.!
F~F *APPEND*
"E J ZFSVZW @A ZJ 0FSVZW'
"# @A J''
`
!LP!
S,/î !* SEARCH FOR END OF NEXT FILENAME!
0A-33."E !* TERMINATED BY ALTMODE =>!
ET_RMAIL !* USE SPECIAL RMAIL DEFAULT NAME!
.,ZK ' !* IGNORE REST OF COMMAND LINE!
0AUG -D
0,.FXF ETF !* Delete filespec, set default filenames.!
QG-/"E F[D FILE E?_OMAIL"E MR ED' !* "/" => this is a mail file. Read in and delete any omail file.!
F]DFILE 1MR' !* Read in mail file, renaming to omail, and delete later.!
"# QG-33."E -'MR' !* ELSE THIS IS ORDINARY NEWMAIL, OR RMAIL FILE.!
Z-B-1"G OLP' !* READ ANOTHER FILESPEC IF THERE IS ONE!
Q2U..O !* ELSE SWITCH TO FILE CONTENTS!
QE"E J' !* In peruse mode, always start at first message.!
FQ1"E 0UE' !* No newmail files found => no need for autodelete.!
QE"N !* Else if in edit mode write out RMAIL file.!
ET7 EI HP EF !* Write out updated RMAIL file,!
Q1U..O J !* and then delete the renamed newmail files.!
<-Z; :XF K ETF 1:<ED_OMAIL>>'
Q2U..O 0FSMODIFIED !* What we have in core is identical to the file,!
!* so no need to write out if no more changes.!
0U:.B(QBuffer_Index+8) !* Say we don't know date of last RMAIL file.!
Q1FSBKILL Q0FSBKILL

!& RMAIL Enter:! !RMAIL Enter:! !<ENTRY>:! !C Mail file editor subsystem (entry from within TECO).!
F[S STRING F[D FILE [Previous_Buffer 1F[^R MORE
QBuffer_Name[4 FN M(M.M Select_Buffer) 4  [4
!* Push the current buffer.!
M(M.M Select_Buffer) *RMAIL* !* Select RMAIL's own buffer.!
FSZ"E !* If buffer is new,!
M(M.M TEXT_MODE) !* initialize its mode!
FSHSNAMEF6 I
 FSXUNAMEF6 I

M(M.M &_RMAIL_INITIALIZE)' !* and load in the files.!
[2
FS ^R MODE"N Q2,:M(M.M&_RMAIL_EXECUTE_OPTIONS)'
!* RMAIL expects to be inside a ^R. If that isn't so, we must call
a ^R, after arranging for the ^R to call RMAIL EXECUTE OPTIONS.!
FS ^R ENTER[1
:I* Q1 F[^R ENTER
Q2,M(M.M&_RMAIL_EXECUTE_OPTIONS)
FS ^R EXIT
 F[^R ENTER


!& RMAIL Stand-alone Entry:! !S Subroutine for ..L for a stand-alone RMAIL EJ file.!
[..P @:I..P`
FS ERROR:@FG :KILL_` !* AN ERROR WRITING FILES, ETC SHOULD KILL JOB.!
M(M.M TEXT_MODE)
9 FS ^R INIT UI
1FS ^R MORE
FSRGETTY"E
2 1FSTTMOD' !* WIN ON PRINTING CONSOLES!
"# 2FSECHOLINES'
HK FS HSNAMEF6 I !* GET DEFAULT SNAME AND USER NAME.!
 FS XUNAMEF6 I

FJ
FS TTYOPT&11000000000.-11000000000."E !* ^H AND ^M SHOULD DISPLAY AS !
-1FS^HPRINTW -1FS^MPRINTW ' !* OVERPRINTING ONLY IF TERMINAL CAN!
M(M.M &_RMAIL_INITIALIZE)
FS HSNAME FS D SNAME
ETDSK:FOO_> !* GIVE DEFAULT FILENAME REASONABLE VALUE!

!& RMAIL Initialize:! !S Process RMAIL command string, set up qregs for RMAIL.!
[A[B [7
M(M.M&_RMAIL_COMMAND_STRING) !* READ IN THE FILES.!
.-Z"E .-B"N -:S'' !* APPEND MODE, IF NO NEWMAIL BUT SOME OLD, SHOW NEWEST OLD!
M(M.M &_RMAIL_Select) !* SELECT THE MESSAGE THE CURSOR IS IN.!
Q7 UBuffer_Filenames !* Say this buffer is visiting the RMAIL file if any.!
Q7 U:.B(QBuffer_Index+2)
0FO..Q RMAIL_O_Filename"E !* IF RMAIL'S VARIABLES DON'T EXIST, MAKE THEM.!
:I*DSK:A;B_XMAIL M.V RMAIL_O_Filename' !* SET DEFAULTS FOR O OPTION.!
0FO..Q RMAIL_F_Default"E
:I* M.V RMAIL_F_Default'
0FO..Q RMAIL_Deletions"E
FS B CONS M.V RMAIL_Deletions'