Trailing-Edge
-
PDP-10 Archives
-
mit_emacs_170_teco_1220
-
emacs/savmac.emacs
There are no other files named savmac.emacs in the archive.
!* -*- Teco -*- !
!~Filename~:! !Macros for doing special saving to an alternate filename!
SAVMAC
!& Setup SAVMAC Library:! !& Things to do to set us up !
m.mSmart_Write_Fileu:.x()
1,m(m.m &_Get_Library_Pointer)TeX"e m(m.m Load_Library)TeX'
!Smart Write File:! !^R Write file being smart about -*- Save-Hook:...; -*- !
ff"e @:m(m.m Write_File)' !* Maybe just call Write File !
[1[2[F !* Get temp qregs !
qBuffer_FilenamesuF !* Buffer filenames initially default!
.:\u1 fn1j !* Save the cursor !
f[vb f[vz 0,(fsz) fsbound !* Bind virtual buffers open !
j 1:fb-*-:"l oAbort' !* Exit if no file property list !
.,(1:fb-*-:"l oAbort'fkc.)fsboundwj !* Narrow bounds to prop list !
:sSave-Hook::"l oAbort' !* Find save hook if any !
.,(:s;:"lzj-s_c'"#r'.)x1 !* Get save hook name in q1 !
1,m.m &_1_Save-Hooku2 !* Macro Save-Hook instead !
0,(fsz) fsbound !* Re-widen buffer bounds !
q1"e fsrgetty"n@'!"!ft
Can't_find_&_1_Save-Hook !* Mention if no macro definition !
m(m.m Write_File)F' !* and just call MM Write File !
"# 1:<@m2(w>"n !* Else macro the definition !
!"!ft
Error_generated_in_macro'ing_&_1_Save-Hook !* Mention errors !
m(m.m Write_File)F' !* And call write file if err !
"# )f"e -1,m(m.m Write_File)F''' !* Else call write file if no val!
!* Note: No updating of file !
!* defaults should be done here !
!* gets returned by macro !
0 !* Pop and return !
!Abort! !* Come here to abort !
fsrgetty"n@'ft(No_Save_Hook_--_File_not_Saved) !* Say we are aborting !
0fsecho active !* Preserve echo area display !
0 !* Pop and return !
!& TEX Save-Hook:! !S Process and save a TEX file
Find occurences of
%<Space>Character-Translation:<Space><Old-Char><Space><New-Char>
and make that translation in rest of file !
[1[2[3 !* Bind temp qregs !
f[dfile !* Bind Teco default filenames !
[Buffer_Filenames !* Bind Emacs default filenames !
qBuffer_Filenamesfsdfile !* Merge Emacs defaults with Teco !
!* !
g( hx*( f[bbind ) ) j .u3 !* Save whole buffer in a temp buffer !
!* !
<q3j :s%_Character-Translation:_; !* Char translation !
1 x1 2c .,(:l.)x2 .u3 !* Get ochar in q1 and nchar in q2 !
< :s\1; -d g2 r > > !* Replace ochar with newchar !
!* !
j [0[1[2 !* Bind qregs 0 and 1 !
<:s%_Switch:_; !* Toggle-able switches !
:fll flx0 fll !* Get alternative in q0 !
:fll flx1 fll 1,(fq1-1):g1u1 !* Get query in q1 !
0l s\def !* Go back and find \def !
:fll flx2 1,(fq2-1):g2u2 !* Get default in q2 !
<:i*C1_fsechodisplayout !* Ask the question !
1,1m(m.m &_Yes_or_No)f(:; !* Do nothing if answers yes !
)"e i_%Default:_ fkc g0 0;' !* If no, use alternative and exit !
> !* Go back and ask again !
l > !* Loop looking for switches !
!* !
j :s%_UnTabify:"l !* If he requested untabify !
j m(m.m UnTabify)' !* Changes tabs to spaces !
!* !
j < :s%_Begin_TeX-Display:; fkd k !* Convert TeX displays !
.,(s%_End_TeX-Display:fkd.)m(m.m Setup_Indented_TeX_Display)' >
et _TEX !* Change Teco default filename !
0 uBuffer_filenames !* Flush Emacs default filename !
!* Let caller write and pop !
5,m(m.m&_Read_Filename)Write_TeX_FileuF