There are no other files named intermacs.emacs in the archive.
!* -*-TECO-*- *!
!~Filename~:! !EMACS-INTERLISP interface.!
!& Getdef:! !Inserts a LISP definition from a file.
Takes two pre-arguments that indicate where to start reading
from and how much to read. Takes a string argument -- the
F[ D FILE
FS I F ACCESS
.,Z FS BOUNDARIES
!& LISP SUPERIOR:! !S Insert as directed by call from LISP.!
.U0 ZJ Z-3"G
Q0J !* We delete the four characters at the!
!* end that are used to stop LISP from!
!* reading too far!
FSIFILEUA !* The most recently opened input file!
QLISPFILEUB !* The EMACS.TEMP.FILE!
FS UREAD"N !* If anything is open,!
F~AB"N !* then if it's not EMACS.TEMP.FILE!
E[ !* push the input!
F[ D FILE !* push the default!
FN E] !* pop the input on exit from here!
ERB' !* and open up EMACS.TEMP.FILE!
0FSIFACCESS' !* start reading at the beginning!
FS UREAD"E !* if nothing is open!
ERB' !* read EMACS.TEMP.FILE!
"L -Q0U0' !* The absolute value of the arg in 0!
.+,.FXA !* If the arg is negative we put!
MA' !* the stuff in A, delete and macro it.!
' !* We do nothing on a zero arg!
+1"G FSTTYINI !* Reset the COC word after LISP screw up.!
-1FSPJATY !* If arg nonnegative, clear screen and refresh.!
!^R Undo:! !Return to lisp to recover initial s expression!
!^R Abort:! !^R Abort Exit to LISP, and lisp will ignore all edit changes !
!^R Clispify:! !Return to lisp to clispify the expression, then back to EMACS !
J 1000000. M(M.M&_Exit_To_LISP)
!^R Pretty Print:! !^R Pretty print buffer (using LISP pretty printer).
Leaves point close to where it was, namely the open parenthesis before point.!
!^R Dwimify:! !Return to LISP and dwimify the expression in the buffer, then
return to EMACS!
J 2000000. M(M.M&_Exit_To_LISP)
!^R Get Sexp:! !Return to LISP to get S-expression in window W2!
!^R Eval:! !Return to LISP to read S-exp after point and evaluate,
printing result in W2!
!^R Finish:! !^R Return to lisp with the pointer at the beginning of function!
!^R Apply:! !^R Read a function name and apply it to the current S exp!
!^R Multi Return:! !^R Return multiple s-expressions!
!This function makes one s-expression out of the entire file and
exits with a special return code which will cause LISP to evaluate
each S-expression in turn and return a list of all the s-expressions.
Hack done at the request of Mike Genesereth, so he can fool himself
into thinking he is using MACLISP!
J I( ZJ I) J
!^R LEDIT Eval:! !^R return to LEDIT call to evaluate top level s-exp!
!This function is another MACLISP simulator. It just goes to the
beginning of the top level s-expression and tells lisp to evaluate
the s-expression after the point. The net effect is the same as typing
<meta>^A ^T Z!
!^R Extract Sexp:! !^R Replace sexp at mark with embedded sexp at point
Imitates the INTERLISP edtor's XTR command!
[A !* holds beginning of sexp at mark!
[B !* holds end of sexp at mark!
[C !* holds beginning of sexp at point!
[D !* holds the end of sexp at point!
[M !* holds the value of mark!
[0 !* temporary to hold mark sexp!
[J !* holds initial point pos.!
M(M.M^R_Exchange_Point_and_Mark) .UM M(M.M^R_Exchange_Point_and_Mark)
.UJ QM J !* Save point and move to mark!
@FL UB UA !* Get mark sexp boundaries!
QJ J !* back to old point!
@FL UD UC !* Get point sexp boundaries!
QC-QA "L:I*NST Point_sexp_not_nested_in_mark_sexpFS ERR'
QB-QD "L:I*NST Point_sexp_not_nested_in_mark_sexpFS ERR'
QC,QD X0 !* Save point sexp in Q0!
QB J !* Go to end of mark sexp!
QA,QB K !* Kill the mark sexp!
G0 !* Insert point sexp!
!^R Set Variable:! !^R Set LISP Variable to current expression
Reads a variable name and does (SETQQ var <sexp after point>) Returns
to the current state of EMACS!
[A !* Register for variable name!
@FTSet_variable:_ !* Read variable name!
.[B !* save the point!
I(SETQQ_A_ !* embed the sexp in a (SETQ var ...)!
QB J !* position the point!
11000000. M(M.M&_Exit_to_LISP) !* To lisp to do the dirty work!
QB,QC K !* Undo our damage!
!^R Replace Sexp:! !^R Replace s expression after point with val of variable!
@FTReplace_with_value_of:_ !* Prompt for variable name!
.[B !* Write variable name in buffer!
QB J !* Down to LISP to get value in Scratch!
H XA !* Everything to QA!
QB,QC K !* Kill variable name!
!^R Insert Sexp:! !^R Insert val of variable after point!
@FTInsert_value_of:_ !* Prompt for variable name!
IA !* Write name of var on file!
QB J !* Down to LISP for value in Scratch!
QB,QC K !* Undo the damage!
IA !* Insert S-expression!
!^R Get Function:! !^R Get a function definition and insert it in W2!
!& Exit To LISP:! !S Simply return to LISP.
Calling (DOWN) in LISP will return to the current state of
1F? !* Close the gap, so LISP can!
!* read from the buffer!
!& Setup INTERMACS Library:! !S SETUP!
HK !* Empty the buffer for LEDIT!
1M.VLISPFILE !* Creates the variable which holds!
!* the EMACS.TEMP file name.!
FSJNAMEUJ !* If we are under a LISP job then!
FS HSNAME FS D SNAME
FS I FILE ULISPFILE
M(M.M Make_Prefix_Character).T U.T
I .T__ !* We have to add this strange string!
HXPrefix_Char_List' !* to Prefix Char List to get Whereis,!
F]S ERROR !* etc. to work. See <EMACS>CONV.!
FS OSPEED-1200"G 1'"# 3'M.VDisplay_Matching_Paren