From 6196423833b099dc5d39a15ee5e4fab2c0d8b6f8 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Thu, 1 Dec 2016 10:34:22 +0100 Subject: [PATCH] Rebuild essential EMACS libraries using EINIT. --- Makefile | 2 +- bin/emacs/[prfy].173 | Bin 0 -> 14634 bytes bin/emacs/einit.:ej | Bin 0 -> 19929 bytes bin/emacs/emacs.:ej | Bin 4935 -> 14 bytes bin/emacs/purify.:ej | 1 + build/build.tcl | 7 + src/emacs1/^rbase.374 | Bin 0 -> 41241 bytes src/emacs1/buffer.207 | Bin 0 -> 22778 bytes src/emacs1/ccl.196 | Bin 0 -> 18402 bytes src/emacs1/crl.208 | 414 +++++++++++++++++ src/emacs1/doc.160 | Bin 0 -> 21205 bytes src/emacs1/einit.272 | Bin 0 -> 23279 bytes src/emacs1/files.434 | Bin 0 -> 35690 bytes src/emacs1/indent.238 | Bin 0 -> 37254 bytes src/emacs1/isearc.74 | 232 ++++++++++ src/emacs1/purify.127 | Bin 0 -> 14242 bytes src/emacs1/search.52 | 180 ++++++++ src/emacs1/supprt.418 | Bin 0 -> 42151 bytes src/emacs1/usrcom.514 | 1024 +++++++++++++++++++++++++++++++++++++++++ src/emacs1/vars.24 | 156 +++++++ src/emacs1/window.77 | 203 ++++++++ src/emacs1/wrdlst.196 | Bin 0 -> 18151 bytes 22 files changed, 2218 insertions(+), 1 deletion(-) create mode 100644 bin/emacs/[prfy].173 create mode 100644 bin/emacs/einit.:ej mode change 100755 => 120000 bin/emacs/emacs.:ej create mode 120000 bin/emacs/purify.:ej create mode 100755 src/emacs1/^rbase.374 create mode 100755 src/emacs1/buffer.207 create mode 100755 src/emacs1/ccl.196 create mode 100755 src/emacs1/crl.208 create mode 100755 src/emacs1/doc.160 create mode 100755 src/emacs1/einit.272 create mode 100755 src/emacs1/files.434 create mode 100755 src/emacs1/indent.238 create mode 100755 src/emacs1/isearc.74 create mode 100755 src/emacs1/purify.127 create mode 100755 src/emacs1/search.52 create mode 100755 src/emacs1/supprt.418 create mode 100755 src/emacs1/usrcom.514 create mode 100755 src/emacs1/vars.24 create mode 100755 src/emacs1/window.77 create mode 100755 src/emacs1/wrdlst.196 diff --git a/Makefile b/Makefile index e2f1ff83..97cd005f 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ EMULATOR ?= simh -SRC = system syseng sysen1 sysen2 sysnet kshack dragon channa midas _teco_ emacs rms klh syshst sra mrc ksc cstacy gren bawden emacs1 _mail_ l lisp liblsp libdoc comlap lspsrc nilcom rwk inquir acount +SRC = system syseng sysen1 sysen2 sysnet kshack dragon channa midas _teco_ emacs emacs1 rms klh syshst sra mrc ksc cstacy gren bawden emacs1 _mail_ l lisp liblsp libdoc comlap lspsrc nilcom rwk inquir acount DOC = info _info_ sysdoc kshack _teco_ emacs emacs1 MINSYS = _ sys sys3 device sysbin inquir diff --git a/bin/emacs/[prfy].173 b/bin/emacs/[prfy].173 new file mode 100644 index 0000000000000000000000000000000000000000..50c33b6b64eb194e13b17f6d63f402797b3f9206 GIT binary patch literal 14634 zcmeHO-ESM&b*JTQlfBt^*Skn+V@zX2!zL+_ zObta2$FdwpXdn7gH0fv3rb*hqv}u}`6h$8jvl1^TdCApbyr z=iV8LlD$dOrf<=%hcox{+;h*z@0>gHGtVOb6p64ab@l4_opH00xH_Iq)-|S@Yg$y5 z%-GU+MY|SfS9x7>JiDPWv!caHDhjWpDwecK=Z-ueUHli9FLc5Dr@5+<>~GjDqjBr?nW-+j@`gz>G zrimL=OU#-07M1-CF1i1pGFn!Ah3<&(xQWYaBe>jo_9ZM;UhEtk_H56S7yMSs?)~bS zGSg|>zka6VzSWaUj@SPUDy3@q-bS@(K9Wlvt7$jCOvU&7p3^#(7v`%4-h_`C7V=p@ z@tnL~SX}!`B*L4OoSmN4JC>Jh*X~(;``03oynk>g7u=^#uj3xrZXZQqEhym4F&ojs zN0QB&Y__dk?-wGGby^f?!!+x5quFWvJZ>B(9l;;;~@;$5H*u(HBU9b3^zWs}l$Vt9fEiA6DRUe&v zm7dlXPvn;vjg`MtL;U>uE6PKr|JG^U%dG#}X=TXka07ncgnR>RKt54J?>v!r?t-9y+dycy+ zvE?~)gh^Fqm=VKV7=u`?t>(w1Sc%m>S6Iy(pO;FCS--y^#o6+VQDc|iVA3?3nQM*6 z(aW!Y>I3Ns(<7~SN28a=Bx7!xDXB!m8K(imOXf%d>kuOz({{Neovw*L-0u z{|K6MZ~f7r@hmOftSw+QHECmNa5q^|l(mgJbzJ#+jLW0aw6dWyqojfZ5p#h`^hGSn zJdsDG*ed2)u$uCL)#!C(XuVHn!y>hockErqb%~8;tx&CkMrB;v$S{2oi!ot0l0ul36Y($%i>sncBb- zmU5Lz`emETMHZ#4VM<~tmt1DpDlCi@g_ub-TGg!a1P#$3n_R|NXrLrlSWQajS>+B5 zgV7mhTzAq}l+M0dyDniMY5J$oc`(Q5kR>vr7?&v<>e3XesLRSmmd)UaPhL?|$_guj zCO&&w&(A_SHbqe-OVV^AO{*&_d`dw9-;+^@5(Fu&4``fAn_S!^(RO)8NpDU=a7hHE zl@cFdS*^)}S_ZjFU%wn%P3PmH3R9us^ve}$?eb?OVwN-=c2d%s`I;;RJ<)(&W@22d zK(C4cAsz2BDOS+)an|Zi#@y%oX;K4}*=fBQkF)L+XJPja|Dh?ks9}H7B>GAUtQVX3 za?L}n)zuoorYvc*OpNk;e|NGw+46RtIPJDnA)#I=mP*pKFJFi(&lTVQ2zVv%Re~h} zu{Kn*qNX#kr3wKn^LjL@&Y89CYSDH2(vN_@-e;O|kT_5dPW>{s{ZjH9um2y+)eo^% zQ0c3%CFgjJ=Q-yE7yr@FYLZ+6Ox_u9bp_Pa)p~}_+{~n|q`P|S9o^4#Gq<$4>24<0 z1}kP+tG=+{xJ{{>fkDlsx|y-uuHH4E1_?De-qo+M7qFE-gvmb|h<%@I6xobBzSae} zy`3A&jce(ymdfZ3inD%hUz?m%oNn$`@OxWVRb}vyRq;1?+-Iskq56}o3!?oy;euf5 zI=o~`ND&k?{d`*SGsZJr2&t0T)sy?oXzh@Q#@bA6vl&?0j2^R_FxW8RqcK;VjlWtBPLD!#8hf;1l ziL=-ZCH4G?pchT_UYtEo>uKH38XosRv9^-Vh!Sf3d|#bw!P>fpGq&217po<6$f7Q; zmG4z+atk;p^bgR_%)Z`a-7FT6^|ONhY(Rf@nEvcp`q3lXV0sfI$J|U4lGDxYcPGa* zbv*Z@kCale(SEi&fg1%3@h3fj)E8mHv1N(P^g=SF7O{GwxJz{BnAUoa&&}-?p6c6&4a>77_ExqbwecTo zZG}ZdBYNG=`5Nm&T|jv{8*}GccD_~wj|<#k>%MU((bbY{Ux-{H+h`|Ku(ekF21VJqbN0vPv?@k0|?NBiGuK{t|{VQ^Vf(uWwoxMZ5C9!MY9f{Oc z!%?GGKx4hh_c@IPn67nDJBG7xDq>Q* z4~wZ8Gj{KSkQ^+?X*HS%AS55g*zTd8wXU>ai%x5xwz1MR7=G&6ydVc%XPL>tC$lDZo5Db?REHJR=Vks%fk}!h%ZRUgsUS72h zY4n(R{}P7%I04wW4w2Oeasi8t>nmVzYA3LjKq-DU zjdc+4OLenAYFY|jQ5LW(nw6l?M(f>N^qtR4K+d2w2g=iO`LsUHuq8XGN~ZNJ!}ek8 z{s#zXIfOqzKeDvKfPX#;{1C|E$VWw-Fa(Nt`DcNMPRmbm53eNDGaVqF&1HZa0eI4S zFba@Qoaw1e^Wj)M%kHi$0Xt$cfKGya0j5EJwm=9rQ^}T<`&f8110-3=Ui-t>BIQI` zDc_O_dIV_#g!>Jv?Loq|lvY+swL`06qd^mhn}^{NDl!wOfld$%N1mbWAGlPU0LZ2w zM3$06^|ij$>kq2WR286mK|fx8&+1vbJ?n5!&f9J00EVH*>p>*qwt$FL+w0p+YG1it zr0UAszmJRZ_FpTNx4-&;%9XdjigFc1E@v1~rC~wCQ{_%z%6|)BI;(VEN;NLhatY45X z8--;Fu~WWAVVGo?6L2!-iOy3K8fYx6^V?}qf>xYbw4ecAaH`Ko>{2os)um`ulcX1Q zy$mQd9_$gNQz%z-V9{o9vhxxp1r?>jV{}EyBRRN=-~>QBcH@Duggbg-SYaL_HE6}O zz+BF^v2!wNrDT16Yd)5UCub6~$?18Js|7Mwv->=21KuLoO41grLt)m5j_x&!%X zbjaoOFNkCh$Wk%NQyVTV^ew@lzRFrBi0qp!SC@>|L^5zHFeK-F19uroIHouPe^3y8 z2N#g|jvA#=Lw|&afy;_Y>29_a+a2!$1OQ->4?z8#wYjWi6-Ub{MNLx2 zM88OBjYTOt;C&8ZtMU1$)Q0&|=3u_yQMYIW2{9zxuP6A13E>m8msNwb@Ivp3kMhql|U=xpHVVcjpXO-224vX<^qg#v$0*k zdI;#coSv1VIt*(ISbukaH$#A!btRFRG+b@*q5oY;6zs^0;W3w$+# z1fKUffh>bUk=p^exJQPf^$fs}vMe10tr{_B7Gc`%o$j45eBHXkoHGPSMdWvurr-j% zrb6*PlUIaW5JF%(a{~FPh^_ao{d;7fwh)Oc1gOqyhuCWj5LATYhN( z-Uql8b6oq<#fZqCL9ZZ(H16Du(SnA+3b< zuumjkhn9B~r3=g(T6B){sG4fK2)0Nqhsja!0@HRC4O`O2zMxXa?ICV;WD2@U zCV|^bGWp`HLXhp-uC^@?UK$OQL)v55)ik0J>;ZP-4##9QKcu5077un26$wt9j``=tdtPn^QO8$ZC&P*XJL?6ran6DvC;G8~=1x zcw9i+!d78hVi|p=xVeE+;FT!^=7`CQEGPkBM@WV&5&gk?>Svy`;ipVy`01|s5VKUV zz{1jUwp25u;+#}99!{{iM?Aj{GaG=_ z90MYqW?s+{K67XagvN7#u~l_Gk4VEb zDHSfGP~Ff~r11tB(@ZeeP0WJ?B+`&c)U9oR%V>0e6Dd+=q-$>g7%ZgB+9q^(KNLgehA>bi8A{Z3;utg-qfU&U+$U=hcYdHSPr7PLk5`H(}o+|p|ES9pA z3;hyPs*k<6S30fGL1H|kws1osWoIk$Mms8 zqLLe@yR??P4StR3$z-~cn+fU0FnsUO8mZDrFw}U6H16`yjAEgfu%fPj?&6>;5}JJ3 z+(QqFmokV=z+j#X#QM`lO~I}pU%a_O5UnhL+yK!P9^`8)hQ#jPE11y<>Fx?dk_#kO zO?_|{uug|71X&#~2w7=M7HpZqXtGL8_{qL41G*pW*{*zu!-UiJuH)_5O@-aH(HPna zACLGHVLRbGZ(64OrQF}M<&Fy*cii!jSLfF4$O5LfpOJy1{_yVWokNb%#xt#Yc+c)W z%wd)0gB9pgmKBYMOZVjIQn9u!M|083pN(qFn3JQ~63)wRFY)`_ZL=QLwr*?7x3_PX z>eczx{91YI_Kj4~Y7X7vOj=l0A$xaOCcueh$8~ms#AexceX{={72~NK(g3HT@qV@;?s{nijL;V1wNNoA;n`tyf4{tz)xS%DNk9@LTvFcu%ED4&TH zri$D;!73v$1^a{IsaS#3jF!$94lU#cX<@mRl-OvkFkfA~JHIqvTm`FYESiJiGndSD zI4QZ+@!h5(tiHpo0tqwi!fnxU3xv{^P< zUaJ;H!8|ros+diqVbY!lxat9imK#Idx zJ$C5>sYiam``}Fs)JrOT)o24{C*Om_&lzTMLxmXdBZbxCx|FWG9sP_71{EK0&7wmG zG=X6=M?U!H%IdSOOB=nEHfz;FwJ;CQ9kzo_#nK@-L_WAlHde=oFk z5VBEbR^j&7AKfdgZ9p-#RG`mQqyWR1kCZ0}Jt1wxxvfD59FpLOgzEq@8|s=6++bTl zK-KmR35a==W$y36NFH`z0Lj)F>|si-q~ulDF{jU}{!Yj5%i=-gGi14cd}zxDU@Ifr zMj*notzKhKwstMYg%tHeH27AHuKaBvM9U~2ixrS+ zB5$5qHkZ_EKX-v9tLtJqI6#~dU_P2^flq}ZJ{OW&TrV-x`GJFJNoz4J=->@UV+9-! zr!gC&)Yn*S6=$(9Ey2{+zI|a}#D74>)K^c_r6r0JfSo(O9;O+>v;*OE{sPE-WCL)* zEE$h|4$SSINV(jbUyo+wS;RQc_bH(ZWUr>W+OCd3O&mYE2%wPU4RhmoSw*Cc{w)$I z(-}1UImFAR7gONgNr;;Ej=zh8>|OEJ3J2O=icu9cJ%C8|@sAp``5Q76nDCDDE)9>{ zm7l#3shz&`V+qWF!|Y%%8B$IDUieZ4`g72EicvgD@QJ|)9U!CUrTEYX))SOdmoq2s zoT#SLLx|qNdp+VE22c4W%^t*b)Q4yiFA9MK3a~sGH#>wxc)ke9vzG5R=nUUe*gEMi z??QS^Zy7l@RI4LfJpLk51SNJ0T;QE(xc*+pv&HDlIy{5|2hkc|=wPnXiT-Yc^T~}=I|qB93K5SB#=vw~ZL$l;DcNaZ zA3bmeuxYj9KDY6*f{V^Qr@^hofo-{-+_vc*BQi)tWO!IAh~d1YVjgYMzC&6RSzbpG zva)TM9dEDWw_%0Eq#y-@9bz!YMdx$F4N)Yv)PcS10oL)Uhv#72hGNxtC95wu8%j!w zQ%sT<*w+^2_ME=*pXcQ5X>fAFx6$*-lzJk)Hhq5{XMeNUX1@mx0I))wv9}N&$S}RD zHFP{k;dLnM#NOs$%TtVW;nuA|U@XpD2qvchfk_meT5X?DE+2tQ5`Zs%%Ldv+qjANv zKpU4HFdD`m?Qk?isq8>ShSFim7lgzFuhQ|gp{vj-g%w@mJumG;MqOI6n2&axzovri zTl4#Ti#(YQyZW}v$it9=969|x*<96$9Ki!LFOpy*CwqEi8g4g(KlA!RS)nN8zTlJ^ zAU(yqbPnkqI}%aUdQTjvM3W`<5Tirjq114Jhi#{U4G84YY7gin){r595kN{yh2ix z@6f_16O9xMSwD#5S>w!YRRhjnVP$R)12930S+{o5dwAQBbVC%As#-fR3*h7V0}F-G zNrEt_!JC!Blpmv4IUVP#EvIAHRj4#JgTJOoHhu?l$SCZQV25urddlBk1noo=g>YoJ zgh)Y!4**Kg9Gg2N$z)~u3IZF&%_i4}L02%Q<@9j)c}|2$@kFLa-Z|#`I56nM2WOxJ z9+ol>*+OV}ZU~mJ1c*upze#%KN^m386eyzyL85&e8WI9ZHnz34Q*l=Kv4LRM%gBrcZU4x?v;-Hj*5)6h~T!v0$}_}? z*_RW*5)gF>n_A<>b&r!~BF}6PG}m<2Kqp0tJgvju_4jEd+`rgS*oM zMu2h&500F&CkzkI-kkFBm6?W9@GdI(YCMSq&S3{Sg4e#u1+$Pq zxE|Uv#4bb0>_C}^cU#N?0%+*LHdxKj>_BYJZ5qrb#|;OZUBUqe{0b*$#Kfi?t5IM7 zFh-mvDZ(_AhC+rkZHn@0yL5M9E(MR(}cz1a8$0KA2JuLT`ZF%dr0B})FM0+_W&4{dr#}&5FQZA z!xI5fVRDI1hRyWIjerJsS2z(8SnlD6=)#u@?+Fi&G4VflRCY5Jo$r1>dfo-~53+~%3mODp`Eo5ewjJXtG3?%eN+}`&4I(hI+ny~91F^u_ zb;+U&YbjPhTQZ#A1HrI75Z8XE(}b;9r%Xfay%_hkdv^O!`4j$C0sp8#P_n(nJzU@# zN!FV3_7=QO07yv#IG3Ad>n{%8o=mQ`!+y~rjAYw(Ixbor21^O&vzDaf%%N+nSn7~1d?7A*N z{qISR+xNk-w!@=M=rk$% zFosh8as*$&ECv8Kcw>g0zJEJk72m}S74gh9o(G-o2jAHYmk|zO;Rh3p?3#Z*R0$A^-pY literal 0 HcmV?d00001 diff --git a/bin/emacs/einit.:ej b/bin/emacs/einit.:ej new file mode 100644 index 0000000000000000000000000000000000000000..2e3265f95fd506d614ec8d86ea5b74157f73bda3 GIT binary patch literal 19929 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 \ No newline at end of file diff --git a/bin/emacs/purify.:ej b/bin/emacs/purify.:ej new file mode 120000 index 00000000..b2376b66 --- /dev/null +++ b/bin/emacs/purify.:ej @@ -0,0 +1 @@ +emacs/[prfy].> \ No newline at end of file diff --git a/build/build.tcl b/build/build.tcl index 63a59e05..40d92236 100644 --- a/build/build.tcl +++ b/build/build.tcl @@ -214,6 +214,13 @@ respond "*" ":print sys2;..new. (udir)\r" type ":vk\r" respond "*" ":link sys2;ts emacs,emacs;ts >\r" +respond "*" ":emacs\r" +respond "EMACS Editor" "\033xrun\033einit\033? Generate\r" +expect "EINIT" +respond ":EJ" "\030\003" +respond "*" ":kill\r" +respond "*" ":delete emacs;\[prfy\] <\r" + respond "*" ":midas sysbin;_syseng;dump\r" respond "WHICH MACHINE?" "DB\r" expect ":KILL" diff --git a/src/emacs1/^rbase.374 b/src/emacs1/^rbase.374 new file mode 100755 index 0000000000000000000000000000000000000000..8e8ddb4076337744f6616302a1040aeaaf5f0917 GIT binary patch literal 41241 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 literal 0 HcmV?d00001 diff --git a/src/emacs1/buffer.207 b/src/emacs1/buffer.207 new file mode 100755 index 0000000000000000000000000000000000000000..d90ab4940b3a65d6ad5ad5ef6f0c962206c617f9 GIT binary patch literal 22778 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 literal 0 HcmV?d00001 diff --git a/src/emacs1/ccl.196 b/src/emacs1/ccl.196 new file mode 100755 index 0000000000000000000000000000000000000000..67f7f6582117d8c3abb6f87a63d490c538a7cabe GIT binary patch literal 18402 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 P;G`^|76B=N!-M}9Iv81< literal 0 HcmV?d00001 diff --git a/src/emacs1/crl.208 b/src/emacs1/crl.208 new file mode 100755 index 00000000..ca519cb9 --- /dev/null +++ b/src/emacs1/crl.208 @@ -0,0 +1,414 @@ +!* -*-TECO-*-! +!^R Extended Command:! !^R Read an extended command from the terminal with completion. +This command reads the name of a function, with completion, +followed by the string arguments for the function. Then the +function is called. Completion is done as the function name is typed +(for more information type the HELP key while entering the name). +Follow the function name with a  and then the arguments; end with . +For customization info see the source code.! + +!* Internals: +Uses & Read Command Name and & Read Line to echo at bottom of screen. +If the variable Read Command Prompt exists it specifies the prompt string; +otherwise "MM " is used. A numeric argument is passed along to the M-X +command. The command string is saved on the minibuffer ring +so that ^R Re-execute Mini will redo it, and ^R Execute Mini +with argument will get it back for editing.! + + fsQPPtr[7 !* Save PDL ptr so cleanup before execute! + [0[1[2[5[6 !* save regs! + + :i0 ff"n !* 0: Start with null string! + ff&1"N :\u0' !* 0: Post-comma argument! + ff&2"N :\u1 :i01,0' !* 0: Pre-comma arg too! + :i00_' !* 0: Argument(s) and space! + + :i*M-X_fo..qRead_Command_Promptu2 !* get prompt string in q2! + :i1 + < 4,q1m(m.m&_Read_Command_Name)02u1u6 + fq1-1"l ' !* if empty arg or rubbed out then return! + q6&2"n :i6 1;' !* ended with CR, make null arglist.! + @:i*| :ft m(m.mDescribe)1 |f[HelpMac + !* set help macro to do describe! + q6"n @ft' !* If command name already printed, add Altmode.! + 1#q6&1,m(m.m&_Read_Line)021u6 !* read arguments! + -1fsQPUnwind !* restore help macro! + fq6; !* exit unless empty or rubbed out! + > !* keep trying! + :i10M(M.M_1)6 !* Stick MM ...  around typed command! + f1:"l !* If there is a ^] in the string,! + 1fo..qQuote_Execute_Command"n !* user want ^] quoting?! + f[BBind g1 !* yes! + j <:s; i> !* replace each one by two of them.! + hx1 f]BBind'' + f=(q:.n(0)f"e w :i*')1"n !* If this command not same as previous command,! + q.n[..o zj -5d !* push this command onto ring buffer of! + j 5,0i ]..o !* minibuffer commands.! + q1u:.n(0)' !* made room, now store it! + :m( q1(q7fs qp unwind)) !* Now execute command after restoring outer environment.! + +!^R Instant Extended Command:! !^R Run extended command; let it read its own arguments. +This command is the same as ^R Extended Command except that +it does not read any string arguments; the function itself does so. +This allows special processing such as completion to be done +on arguments which are function names or filenames.! + +!* +Internals: +Uses & Read Command Name to echo at bottom of screen. +If the variable Instant Command Prompt exists it specifies the prompt string; +otherwise "C-M-X " is used. A numeric argument is passed along to the MM +command.! + + fsQPPtr[7 [0[1 !* Save PDL ptr so cleanup before execute! + + :i0 ff"n !* 0: Start with null string! + ff&1"N :\u0' !* 0: Post-comma argument! + ff&2"N :\u1 :i01,0' !* 0: Pre-comma arg too! + :i00_' !* 0: Argument(s) and space! + + :i*C-M-X_fo..qInstant_Command_Promptu1 !* get prompt string in q1! + 9,f 01u1 + fq1:"g 0' !* if empty arg or rubbed out then return! + f:m(m.m1(q7fsQPUnwind)) !* Goto MM command! + +!& Read Command Name:! !S Read in an command name, with completion. +Rubout, ^D, ^U and ^L perform editing. Space, Altmode, and Tab do completion. +? lists choices. + +Takes a prompt-string as a following string argument. +A numeric argument is the initial contents of the string to be accumulated. +A pre-comma arg containing the "4" bit means don't wait for a confirming CR; +the "2" bit means complete over the symbol table in CRL List using the prefix +string in CRL Prefix. The "8" bit is deliberately ignored. +The "16" bit permits names that don't match. +The "32" bit means CR is allowed with an empty name. + +The F^K command with the "8" bit set in its precomma arg +calls & Read Command Name, passing along its arguments. + +Two values are returned, the second being the completed string +(or 0 if exit was due to over-rubout). +The first is bit-decoded; 1 means we displayed the string, +2 means the terminating character was Return, 4 means we terminated +without doing completion so the string might not match any alternative. + +See Source code for more info.! + +!* If the 16 bit is set in the pre-comma arg, then names +which don't match are permitted. How to specify one is +controlled by the value of CRL Non-Match Method: +2 bit: CR will terminate without performing completion +4 bit: LF will terminate without performing completion +8 bit: if user types CR and completion is not possible, + typing another CR will terminate without performing completion + (this overrides the presence of the 2 bit); also, typing + C-CR will terminate without performing completion (if your + terminal cannot generate the 9-bit character set, then you + may want to set the 4 bit also, so the you can use LF) +The default value is 2. (A value of 1 will prohibit non-matches +in ALL cases.) + +CRL Name Lister can (if not zero) contain a function for use +in assembling the list of matching items, for "?". +This function is used as follows: + + (1) For each name to display, the function is called with no + pre-comma arg, and a post-comma arg which is an index into CRL + List (which can be found in Q.1). The function should insert + information about that name into the buffer beginning at + point, and include a CRLF at the end. + + (2) The function is called with a pre-comma arg of 1, with the + buffer containing all the names. The entire buffer will be + displayed after the function returns. (Some things it can do: + sort the names, insert a heading, etc.) + +If the variable CRL Name Type is nonzero, it should contain +a string such as "buffer" which fits in the slot: +"You are entering a name..." +It is used in help messages. + +If the variable CRL Help is nonzero, it is printed +after the regular help message is given. +*! + + [0[1[2[3[4[5[6[7 !* save regs! + 1F[^P CASE !* Ignore case when sorting! + :I6 !* Read prompt string argument! + 0[8 !* Q8 is nonzero if we are echoing.! + 0[9 !* Q9 is nonzero => type altmode after completed name.! + q..q[.1 :i*MM_[.2 !* Q.1 and Q.2 for normal case of MM-command completion --! + !* use standard symbol table and "MM " prefix to select! + !* only the MM-variables.! + + 0[.0 !* Q.0 contains whether and how to allow non-matches.! + &20."n 2fo..Q CRL_Non-match_Methodu.0 + q.0&8 "n q.0&777777777775.u.0 '' + + &2"n qCRL_Listu.1 !* Q.1 has the symbol table to complete over.! + 0fo..qCRL_Prefixu.2 !* Q.2 has the prefix string -- only variables starting! + q.2"e :i.2'' !* with that are considered, and the returned name does! + !* not include the prefix string.! + + 0[.3 !* Q.3 = number of chars not to erase & reprint! + !* when completion occurs (already complete & verified)! + 0[.4 !* Number of chars of name printed.! + 0f[HelpMacro !* Help character should be seen be FI! + f[BBind fq()"g g()' !* Make temp buffer to accumulate command name in.! + q..ou5 + o Read + + !Redisp! + 1u8 + :i*CfsEchoDis !* Clear echo area! + fs rgetty"e @ft +' + @ft6 @ht !* Retype prompt string and input! + zu.4 + o Read + + !BarfCR! !* Here if cannot complete and user! + !* typed CR! + fg !* Type bell.! + fs rgetty"n @ft_' !* Force cursor back to echo area on ITS.! + q8"n @ft' !* type altmode to inform user! + Q.0&8 "N !* if 8-bit of CRL Non-Match Method is set! + :FI-î "E FIW !* and user types another CR,! + q8 "N @FT +' + q8+6,(hx*) '' !* returns with what user typed! + o Redisp !* otherwise flush altmode! + + !Barf! !* Here if tried to complete and no match! + fg !* and that is not allowed. Type bell.! + fs rgetty"n @ft_' !* Force cursor back to echo area on ITS.! + o Read + + !Changed! !* Come here when completion augments the string.! + q8"n !* If we have started printing,! + fs rgetty"n + q.4-q.3< :i*X fs echo dis > !* Reprint any chars that weren'r verified! + q.3,z@t' !* and print new ones.! + "# q.4,z@t' !* On printing tty, just print new ones.! + zu.4' + zu.3 !* All chars we have are verified, even if not printed.! +!* If name is fully complete, think about exiting.! + q9"n &4"n !* If pre-comma arg has the 4 bit, return completed name.! + q8,q3' + q8"n @ft 0u9 !* If waiting for CR with completed string, type an! + :fi-13"n o Redisp''' !* altmode, but if next char isn't cr, flush the Alt.! +!Read! + q8"e 0:"e o Redisp'' + @:fiu0 q0-4110."e oHELP' !* Handle HELP! + q0-(200.+î) "e fiw !* Handle C-CR! + q.0&8 "n !* return immediately! + q8 "n @FT !* echo return! + ' + q8+4,(HX*)'' + fiu0 + q0-32"e ."e o Read'' !* Ignore initial spaces.! + q0f Š_? "l !* Not a special character! + q0- "e Q.0&4 "n !* LF typed so return immediately! + q8+4,(HX*) '' + q0-"e fiu0' !*  quotes the next character! + q0i !* Add char to buffer.! + q8"n fs^RMode"n -1@t %.4 '' !* Echo if in ^R mode! + oRead' !* back for more! + q0-"e !* Turn ^R into ^ and R.! + i^ R + q8"n fs ^RMode"n -2@t %.4 %.4'' + oRead' + q0-177."e !* Rubout?! + q8"e q0fsReRead oRedisp' + z"e q8,0 ' !* Rubout when string empty returns 0.! + zj 0au0 -d !* Put char being rubbed in Q0, and remove from buffer.! + fsrgetty"e @ft0 ' !* Type character if cannot erase! + "# q0-40."l oRedisp' !* Erase if possible! + :i*X fs echodis + Q.4-1u.4 + q.4-q.3"l q.4u.3' + oRead'' + q0- "e oRedisp' !* ^L redisplays the current string! + q0f:"l hk 0u.3 oRedisp' !* ^D and ^U flush input and reprompt.! + q0-?"e !* Help requested?! + &2"e !* Completing over MM-commands, so load BARE.! + f=(0,2:g5)^R"e !* Must do it befor the F[BBIND.! + m(m.m &_Load_Bare)'' + + f[BBind :ft !* Get buffer to mess with! + + &2"e !* Completing over MM-commands, so look thru libraries.! + fs :ej page*5120+400000000000.u7 !* ptr to 1st file! + < fq7:; + g(q7m.m~DIRECTORY~) !* get directory for file! + q7+4+fq7u7 !* ptr to next file! + > + j .u3 i + + < 2r :s +5; 0l q3,.k l !* save command name! + .-z; .u3 0:l + > q3,zk' !* Done mapping down library space.! + + !* Now pick out possibles from the symbol table.! + + :fo.1.25,0fu3 !* Q3: index to first match in symbol table.! + :fo.1.25›,0fu4 !* Q4: index to last match in symbol table.! + q4-q3/q:.1(0) < !* iterate over all matches in symbol table.! + 0fo..q CRL_Name_Listeru7 + q7"n q3m7' !* Either call user's routine! + "# !* or do the standard thing.! + q:.1(q3)u7 !* Q7: Matching symbol name! + fq.2,fq7g7 i + ' !* insert variable name! + + q3+q:.1(0)u3 !* next match in symbol table! + > + + j + &2"e < :s~; 0lk>' !* Don't mention functions with ~ in their names.! + 0fo..q CRL_Name_Listeru7 + q7"n 1,m7' !* Either call user's routine! + "# +   l   !* or sort list,! + j < .-z; x1 l < .-z; 1f=1"N 1;' k > > !* remove duplicates! + ' + + ft Here_are_the_possible_completions_of_what_you_have_typed: + + ht 0fsflushedw f]BBind !* Type the matching commands! + 0u..h f oRedisp' + +!*** Character typed is space or altmode or CR.! + !Retry! + + q0-î"e !* if CR, see if we should return without! + !* doing completion. return if...! + (Q.0&2"'n)( !* 2-bit of CRL Non-Match Method is set or...! + )  ((z"'e)&(&40."'n)) "n !* empty name and 32-bit of arg is set! + q8"n @FT + ' + Q8+6,(HX*) '' + + &2"e z-1"e 0a:fcfLVKEIW:"l !* Hack one-letter abbreviations if want MM-name.! + h@fc + f~5L"e i ist_' + f~5V"e i iew_' + f~5K"e i ill_' + f~5E"e i dit_' + f~5I"e i nsert_' + f~5W"e i hat_' + o Changed''' !* Done hacking one-letter abbreviations.! + + :i3 :i4› !* Q3 has the largest thing we abbreviate! + !* Q4 has the smallest! + :fo.1.25,0fu1 !* get offset of the smallest symbol! + fq.1/5-q1"g q:.1(q1)u2 !* whose name we abbreviate! + f~2.2,0f-fq.2"g fq.2,fq2:g2u4'' !* and use it as smallest! + :fo.1.25›,0fu1 !* get offset of the largest symbol! + q1-1"g q:.1(q1-q:.1(0))u2 !* whose name we abbreviate! + f~2.2,0f-fq.2"g fq.2,fq2:g2u3'' !* and use as largest! + + &2"e !* Now map down library space if we want an MM-command.! + f=(0,2:g5)^R"e !* If name starts with ^R, make built-in functions avail.! + m(m.m &_Load_Bare)' + fs :ej page*5120+400000000000.u7 !* ptr to 1st file! + f[BBind !* get temp. buffer to do G's into! + < fq7:; !* exit if no more files! + q7+8+fq(q7+4)u2 !* ptr to FO table of file! + :fo25,0f*5u1 + fq2-q1"g + q1,q1+5g2 !* If smallest thing we abbreviate in this file! + .-5fsword+q2u1 !* is smaller than smallest so far, it is new smallest! + f~14"l q1u4'' + :fo25›,0f*5u1 + q1-14"g + q1-10,q1-5g2 !* Same for largest thing we abbreviate in this file! + .-5fsword+q2u1 + f~13"g q1u3'' + hk q7+4+fq7u7 !* ptr to next file! + > f]BBind' + + f~34u1 !* get no. of chars of A and B that match! + q1"l !* if smallest > largest then no match.! + (&20."'e)(q0-32"'n) "n + q0-î "E o BarfCR' "# o Barf '' + + :i7 q7u2' !* but that is ok if non-match ok! + !* and user typed a space! + "# q3u7 q1"n 0,q1-1:g3u7' !* q7 gets common initial segment of q3 and q4.! + z,fq7:g7u2' !* Q2 gets that, minus the chars we already have.! + q0-î"e fq4-fq7"e q4u3 0u1'' !* CR: if smallest is initial seg of biggest,! + !* regard it as a full completion.! + q0-32"e !* Space: complete only the first word.! + fq2"e q1"n !* if not exact match, but no completion possible,! + 0,0a-32"e oBarf' !* barf if second space in a row.! + 32i q8"n @ft_ %.4' oRead'' !* but allow one space to be forced in.! + 32f2+1u2 q2"g !* Space and completion is possible: stop! + 0,z+q2:g7u7'' !* at first space.! + "# fq2"e q1"n + fq4-z"n !* Not space and ambiguous => barf unless exact match.! + q0-î "e oBarfCR' + "# oBarf'' + q4u3''' !* Exact match => regard as fully completed.! + f~34"e fq3-fq7"e !* Entire name has been completed.! + q0-î"e q8"n @ft +' 2+q8,(:i*3)' !* If char typed is CR, return completed name.! + !* Copy the name, in case it comes from BARE.! + 1u9'' !* Otherwise, say name is complete.! + hkg7 o Changed !* Stick in completed text, maybe redisplay, continue.! + + !HELP! + fiw :ftYou_are_typing_in_ + &2"e ftthe_name_of_an_EMACS_extended_command !* Normal MM-name completion.! + :i7_command' + "# 0fo..q CRL_Name_Typeu7 !* Completion over some arbitrary list.! + fq7"g :I7_7 ' + "# :I7 ' + ft a7_name ' + ft. +Use_Rubout_to_delete_previous_characters;_use__to_delete_the_whole_thing. +Typing_Space_or_Altmode_causes_as_much_of_the_name_as_possible_to_be +filled_in_for_you_(this_is_called_completion). +Type_?_to_list_all_the7_names_which_match_what_you_have_typed. + + &6-4"e ft !* no CR required and completing! + !* over command names; assume that! + !* this was called from M-X! +If_completion_fills_in_the_entire7_name_an_Altmode_()_appears. +__You_can_then_start_typing_the_arguments_to_the_command. +__Terminate_them_with_a_Return.__If_there_are_no_arguments, +__you_can_use_just_Return_after_a_sufficient_abbreviation.' + + "# ft +If_completion_fills_in_the_entire7_name,_ + &4"e !* CR required! +ft an_Altmode_()_appears. ' + "# !* no CR required! +ft it_will_be_chosen. ' + + Q.0&2"e ft !* CR completes! +Typing_Return_will_complete_the7_name_and_terminate. + &40."n ft !* also null entry allowed! +__You_may_also_type_Return_if_there_are_no_other_characters, +__to_enter_a_null7_name '' + + Q.0&8 "n ft !* 2 CR's does complete! +If_completion_is_not_possible_after_typing_Return,_typing_a_second +Return_will_terminate_the7_name,_without_completion. (An_altmode +will_appear_after_you_type_the_first_Return,_as_a_reminder.) ' + + "# ft !* CR doesn't complete! +Typing_Return_will_terminate_the7_name,_without_completion. ' + + Q.0&4 "n ft !* LF doesn't complete! +Typing_Linefeed_will_terminate_the7_name,_without_completion. ' + + 0fo..q CRL_HelpU7 !* more help info! + q7"n FT +7 '' + + FT + + 0u..h f oRedisp diff --git a/src/emacs1/doc.160 b/src/emacs1/doc.160 new file mode 100755 index 0000000000000000000000000000000000000000..5c29fa90dc5aaddca42c75d9e0a4865f26523491 GIT binary patch literal 21205 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 Zk*Fi)75aelg&ZTxXjP3?@1>lb`QLZ!KH>lX literal 0 HcmV?d00001 diff --git a/src/emacs1/indent.238 b/src/emacs1/indent.238 new file mode 100755 index 0000000000000000000000000000000000000000..d80e60f93a4887b0171e810408445b3aab6cd914 GIT binary patch literal 37254 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 0 iff failed to find current search string,! + 10.[R !* QR is state register: ! + !* 40. => ^R or ^S repeating search or gobbling default.! + !* 10. => just starting.! + !* 4 => printing char just read.! + !* 2 => rubout just done wants full redisplay.! + !* 1 => rubout just done.! + + [Q @:iQ` !* MQ pushes current info: ., qL, q2, q0, qD.! + q4+1*5-fq3"e !* We are going to push in q3, so make sure space exists.! + q3[..o zj + 200,0i ]..o' + .u:3(%4) !* Push point, search string,! + qLu:3(%4) + q2u:3(%4) + q0u:3(%4) !* this character, and current direction of search.! + qDu:3(%4) + ` + + [T + fs tyi sourc"e + @:iT` !* MT updates the echo area.! + Q9-Q.9"N 2[R' Q9U.9 !* Q9 holds prompt for echo area. Redisplay if changed.! + fs rgetty"n 2&qR"n !* If we need to redisplay the whole thing,! + qc fs echo dis !* home up and clear line first,! + @ft 9:_ q2u8'' !* then type the prompt and decide to retype whole string.! + @ft 8 :i8  !* Update displayed search string.! + ` ' + "# :iT' !* Don't display if inside a macro.! + + [C :IC TL !* QC has string to home up in echo area and clear line.! + [0 !* Q0 holds type-in character being processed.! + [2 :i2 !* Q2 holds accumulated search string.! + [8 :i8 !* Q8 has accumulated stuff to type in echo area.! + [9 !* Q9 has [Failing ][Reverse ]Search for echo area.! + 0[.9 !* Q.9 has last value of Q9 actually displayed.! + 1fo..qSearch_Exit_Option !* QE nonzero => random control chars exit.! + 200fs q vector [3 !* Q3 holds stack for partial search strings.! + -1[4 !* Q4 is stack pointer.! + [5 !* Q5 is random temp.! + .[P !* QP has old point (to maybe push at end).! + [S :IS M.M&_Isearch_RuboutUS :MS !* QS has & Isearch Rubout (autoloading)! + :I* M(M.M&_Isearch_Help) F[Help Mac + 1f[noquit + [6 [7 !* Q6 and Q7 are the success and failure echo strings.! + qD"g :i6I-Search :i7Failing_I-Search' + qD"l :i6Reverse_I-Search :i7Failing_Reverse_I-Search' + q6u9 !* Search starts out successful.! + + 0[I !* QI is nonzero when we are reading input.! + + fs rgetty"e + fs tyi sourc"e @ft _S:_' !* On printing tty, start typing out.! + 1fstypeo'' + + !Restart! + + 1:< 1uI -2f[noquit !* Set up an errset to catch quits.! + < qL"e q6' "# q7'u9 q9-q.9"n mt' !* Display direction and status in echo area.! + 0@V 1uI :fiu0 0uI @fiu5 + q5fs^r indir-qSearch_Exit_Char"e fq2:@; + ! 0fsnoquitw qD:m(m.m ^R_String_Search)' + q5-8"e o Funny' + q5-176."g o Funny' + q5-"e o Control' !* If Altmode isn't the exit char, it's like a ctl char! + q5-î"e  FS REREAD' + + !Normal! + + 4uR !* Handle printing char.! + mQ !* Push ., qL, q2, q0 and qD into q3, for rubbing out.! + :i2 2 0 !* stick this char at end of search string,! + fs tyi source"e !* If not inside a keyboard macro,! + fq8"n mt' !* Update the display.! + @ft 0 + "# + + !Try! !* Note if fall through we are inside a failing conditional.! + + mt !* Update the displayed search string.! + '' + qL"n !' !* No point in searching if know it would fail.! + + .u5 + 40.&qR"e !* For ^S, ^R suppress the moving back so don't no-op.! + qD"g fq2-1r' !* Move back, so that from FO/\O we find the FOO.! + "# fsz-qP f[ vz + fq2-1"g fq2:c"e zj'' + f]vz'' !* After finding FO backwd, move fwd 3 so can find FOO.! + qD:s2"l !' + q5j 1uL fg ! !* But if search fails, undo that motion back.! + + !Funny! + + q5-177."e o Rubout' + !* Only control characters and backspace get past here.! + q5&537.-S"e o Forward' !* Check for C-S and C-s (ignore case bit).! + q5&537.-R"e o Backward' !* Note: mustn't change q5 since Control rereads it.! + q5&537.-Q"e o Quote' + q5&537.-L"e fs rgetty"e o Reprint' o Control' + qE"e o normal' + o Control + + !Reprint! !* ^L on printing tty prints current line.! + 0t ft..a t + ft _S:_2 !* Then re-prompt.! + ! + + !Quote! !* ^Q quotes the next character.! + + 1f[noquit + fs osteco"n -1f[helpch' + fiu0 + fs osteco"n f]helpch' + 0fs quitw f]noquit + o normal + + !Forward! !* ^S means search again forward.! + + qD"l :i6I-Search :i7Failing_I-Search' + q4"L qD"g o Default' !* ^S as 1st char going fwd => gobble default string.! + "# 1uD !'' !* ^S as 1st char, going backward, changed to fwd.! + mQ !* Push ., qL, q2, q0 and qD into q3.! + qD"L 0uL' !* If reversing direction, don't assume search will fail.! + 1uD !* String not null: make sure going fwd,! + 40.uR !* Mark us as a ^S so don't change search string,! + o try !* just search for it a second time.! + + !Backward! !* ^R means search again backward.! + + qD"g :i6Reverse_I-Search :i7Failing_Reverse_I-Search' + q4"L qD"l o Default' !* ^R as 1st char going backwd => gobble default string.! + "# -1uD !'' !* ^R as 1st char, going forward, changed to backwd.! + mQ !* Push ., qL, q2, q0 and qD into q3.! + qD"g 0uL' !* If reversing direction, don't assume search will fail.! + -1uD !* String not null: make sure going backwd,! + 40.uR !* Mark us as a ^R so don't change search string,! + o try + + !Default! !* Come here to use default search string.! + + mQ !* Push current state so can rub the default out.! + qSearch_Default_Ring[..o !* Find the default! + .fs word u2 ]..o !* and gobble it.! + fq2"l :i2' + q2u8 + 40.uR !* Inhibit moving back before starting to search.! + o try + + !Rubout! + + q4"l fg !' !* Rubout when string is empty does nothing.! + ms !* Call & Isearch Rubout.! + qL"e q6' "# q7'u9 !* Fix displayed direction and status for echo area.! + mt ! !* Redisplay and loop back.! + + !Control! + + q5 fs reread + 0; + + > + f]noquit + >u0 @feqit-q0"e @fg !* If we quit, record in journal file.! + !* Record Rubout if quit while searching,! + !* record :^G if failing or waiting for input.! + qL"'gqI"N :i*:' "# :i*_›' fsjrn wr + QL"g mt !* If failing, rub out the unfound chars and restart.! + o Restart' + qI"e ms mt o Restart' !* If quit while actually searching, restart.! + QPJ 0fsnoquit + -1fsquit' !* If succeeding, restore starting point and quit.! + q0f"n fs err' !* Error not a quit => pass it on.! + + fq2"g + qSearch_Default_Ring [..o !* New search char, save prev default.! + fq(.fsword)-1"G 5c .-z"e j'' !* If previous default is worth saving, push it! + q2,.fsword !* Store current (new) default! + ]..o' + + fs tyi source"e @ft  ' !* Echo an altmode to show we have exited.! + qP mMM_&_Maybe_Push_Point !* Maybe leave mark at place search started.! + 0 + +!^R Reverse Search:! !^R Incremental Search Backwards. +Like ^R Incremental Search but in reverse.! + -@:M( M.M ^R_Incremental_Search) + +!& Isearch Rubout:! !S Rubout-handling subroutine for incremental search.! +!* Kept in QS during incremental search.! +!* Assumes that there is something to rub out (so check first).! + + qD( + q:3(q4)uD !* Else pop last set of pushed info! + )-qD"N !* If popping a ^R or ^S that reversed direction,! + qD"g :i6I-Search :i7Failing_I-Search' !* fix up displayed mode.! + qD"l :i6Reverse_I-Search :i7Failing_Reverse_I-Search'' + q:3(q4-1)u0 + q:3(q4-2)u2 + q:3(q4-3)uL + q:3(q4-4)j !* restore point saved by popped char.! + q4-5u4 + 3uR + fs tyi source"e !* No display inside keyboard macros.! + fs rgetty"e q0:i8' !* On printing tty, rub out char by typing it.! + "# Q0-_:"L Q0-¢L !* On display, redisplay whole search string! + 1uR :I*X FS ECHO DISP'''' !* unless we can fix it up! + q0-12."e q4"g q:3(q4-1)-15."e !* If we just rubbed a LF that has a CR before it,! + :ms''' !* Rub out that CR too.! + +!& Isearch Help:! !S FS Help Mac calls this, inside I-search.! + + m(m.m Describe)^R_Incremental_Search + 0u..h f diff --git a/src/emacs1/purify.127 b/src/emacs1/purify.127 new file mode 100755 index 0000000000000000000000000000000000000000..8ac85c4db1fb9333876d4700a494f04dc588146a GIT binary patch literal 14242 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 0U7 ' !* 0U7 assumes complete redisplay will be needed! + < Q4U..O fsListen"E 0@v'q2U..O !* keep blinker up top! + @:fi:fcu0 fiu9 !* Q0 gets 12-bit upper-case char, q9 gets real char! + q0-33."E q9fsEchoOut + q3"n f;EXIT' !*  if just after ^S, exit! + f;SEARCH ' !* Otherwise, go search! + q0-177."L q9i q9fsEchoOut !* ordinary character, echo and handle quickly! + 0u3 q0-î"e  i' !' !* Follow a CR with an LF. Exit iteration quickly.! + q0-302."E -1u5 0u3 1u1 0; ' !* ^B BJ before search! + q0-304."E HK 0U3 !* ^D yank in new default and pop! + QSearch_Default_Ring[..O + .FSWORDu0 ."E ZJ ' 5R + ]..O g0 0; ' !* then redisplay! + q0-305."E 1u5 0u3 -1u1 0; ' !* ^E ZJ before search, implies reverse also! + q0-306."E 1-q.3u.3 0; ' !* ^F use 0FS % CENTER$ for window (complement switch)! + q0-314.@; !* ^L redisplay search string! + q0-321."E @ft FIU9 ' !* ^Q read another char, don't check for special! + q0-322."E -q1u1 0u3 0; ' !* ^R reverse search direction, redisplay! + q0-323."E @ft 1u3 2u7 !* ^S try a search, Q3 suppresses exit from macro! + f;SEARCH ' !* after search completes, 2U7 will erase the ^S ! + q0-324."E HK 0U3 !* ^T yank in the teco default ! + g(fsS String) 0; ' !* and redisplay! + q0-325."E HK 0;' !* ^U flushes current string! + q0-326."E 1-q.5u.5 0; ' !* ^V complement delimited-search mode! + q0-327."E 1-q.4u.4 0; ' !* ^W complement word-search mode! + q0-331."E 0u3 !* ^Y insert default! + QSearch_Default_Ring[..O + .FSWORDu0 ]..O g0 0; ' !* then redisplay! + q0-177."E 0u3 !* Rubout, delete a char, 0u3 to flag change! + Z"N fsrgetty"E 0afsEchoOutw -D !' + 0A-37."G 0a-177"N 1U7 '' !* Try not to use complete redisplay ! + -D ' 0; ' !* and run back through redisplay routine! + 0u3 q9i q9fsEchoOut ' !* non rubout non special insert it,! + > > !* 0u3 flags change, already echoed courtesy of M.I! + Z"N 0S..O ' !* Compile the new search string, if any! + Z( QSearch_Default_Ringu..O !* New search char, save prev default.! + )"N !* If using old default, don't repush! + FQ(.FSWORD)-1"G 5C .-Z"E J ''!* If previous default is worth saving, push it! + FSS STRING,.FSWORD ' !* Store current (new) default! + "# .FSWORDFSS STRING ' !* Using old default, get it! + Q4U..O .U8 FN Q8J !* Remember where we were, go back if ^G out! + Q5"L BJ ' Q5"G ZJ ' !* Get to starting place for search! + q.5"n q1"l -q1<-:s2"e oSFL' 0a(fk-1c)"c @'> fk-1r' + "# q1<:s2"e oSFL' fk+1c -1a"c @'> fk+2r'' + "# Q.4"N Q1,Q2 M(M.M&_Word_Search)' !* Do word search, or +! "# Q1:S' !* normal search +! "E + !SFL! -1FS QPUN FG !* If error, go back, ding and exit! + q3"N @ft_FAIL_ 0fs echo active ' !* Saying FAIL if in incremental mode! + 1  '' ]..N !* Otherwise forget where we wanted to go back to! + q.3"N :f !* ^F search, adjust window! + 2fo..Q Next_Screen_Context_Lines :@f ' + Q5"N 0u5 0u7 ' !* If search succeeds, forget BJ mode, redisplay it! + -q3; Q1"L -'1u1 > !* If altmode, Q3=0, exit; else re-enter, count now 1 ! + Q4U..O !* Select main buffer.! + Q6M(M.M&_Maybe_Push_Point) !* Maybe remember where we came from.! + q.3"N :f !* ^F search, adjust window! + 2fo..Q Next_Screen_Context_Lines :@f ' + 0fs Echo Activew 1  !* Leave the search on the screen! + +!^R Reverse String Search:! !^R Search backwards for a character string. +g(m.m~DOC~ ^R String Search)jk! + +-:M(m.m ^R_String_Search ) + +!& Word Search:! !S Subroutine for Word Search (still experimental) +You can search for a sequence of words, separated by any delimiters. +Case is ignored. You specify any substring of the first word, +and prefixes of the rest of the words. Supposed to feel like +the completing reader. + +First numeric arg, search count and direction. +Second numeric arg, string to search for (which is in a buffer). +Returns non-zero if successful.! + + [0 [3 [5 + "L -'1[1 !* Q1 has search direction! + < !* Iterate specified number of times! + < [..o j 1:< fwr >"N 0  ' !* Fail if not given any words (would get NIB error)! + -fwx0 ]..o !* Q0 has first word, pointer is after it! + Q1:S0 F"E  ' !* Find first word, if fails return 0! + "G fkc ' .u5 !* Point and Q5 at start of first word! + :< fwr !* Put point at end of this word! + [..o fwr -fwx3 ]..o !* Q3 gets next word, err out of loop if no more words! + :fwr fq3 f~3"N 0; ' !* If next word doesn't match, return 0 from errset! + >"N 0; ' > !* Exit inner iteration if all words matched! + "L q5j ' > !* If backwards search, leave point on left! + 1  !* Success return! diff --git a/src/emacs1/supprt.418 b/src/emacs1/supprt.418 new file mode 100755 index 0000000000000000000000000000000000000000..01e7407291ce113414a66d3ea744a9acc7dfd8cd GIT binary patch literal 42151 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 G?EepEU Mode Hook.! + +!LISP Mode:! !C Set things up for editing LISP code. +Puts ^R Indent for LISP on Tab, puts tab-hacking rubout on Rubout. +Paragraphs are delimited only by blank lines.! + + M(M.M &_Init_Buffer_Locals) !* See comment at top of file.! + M.M ^R_Indent_for_Lisp M.Q I + 1,1M.L Space_Indent_Flag + 1,Q¨1,Q. M.Q›W )M.Q .› !* Exchange rubout flavors.! + 1,56 M.L Comment_Column + 1,(:I*;) M.L Comment_Start + 1,(:I*) M.L Paragraph_Delimiter + QPermit_Unmatched_Paren"L + 1,0M.LPermit_Unmatched_Paren' + 1,(:I*COMPLR)M.L Compiler_Filename + M.Q ..D + 0FO..Q Lisp_..D F"N U..D' !* Select the Lisp syntax table! + "# W :G..D U..D !* creating it if doesn't exist.! + Q..D M.V Lisp_..D + -1[1 32< %1*5+1:F..D A> + 9*5+1:F..D_ + !"""""! 1M(M.M &_Alter_..D) || "| // '' `' ,' @' #' [A]A {A}A îî _ _' + 1M(M.M&_Set_Mode_Line) LISP  + +!PALX Mode:! !C Set things up for editing PALX code. +The same as MIDAS mode.! + + :I*PALX,:M(M.M MIDAS_Mode) + +!MIDAS Mode:! !C Set things up for editing MIDAS code. +C-M-N and C-M-P go to next and previous label. +C-M-A and C-M-E go to AC and EA fields, respectively. +C-M-D deletes next word and its terminator (eg, "FOO:"). +Paragraphs are delimited only by blank lines.! + + M(M.M &_Init_Buffer_Locals) !* See comment at top of file.! + [2 FQ2:"G :I2 MIDAS' + 1,1M.L Space_Indent_Flag + 1,32 M.L Comment_Column + 1,(:I*;) M.L Comment_Start + 1,(:I*) M.L Paragraph_Delimiter + F~2 MIDAS"'E +(F~2 PALX"'E)"N !* For MIDAS or PALX, give /E switch to assembler.! + 1,(:I*/E) M.L Compiler_Switches' +!*** Save time by doing the M.M's only once, the first time MIDAS Mode is called.! + 0fo..q MIDAS_Vector[1 + q1"e 5*5fs qvectoru1 q1m.v MIDAS_Vector + m.m ^R_Go_to_AC_Fieldu:1(0) + m.m ^R_Kill_Terminated_Wordu:1(1) + m.m ^R_Go_to_Address_Fieldu:1(2) + m.m ^R_Go_to_Next_Labelu:1(3) + m.m ^R_Go_to_Previous_Labelu:1(4)' + 1,Q:1(0) M.Q ...A + 1,Q:1(1) M.Q ...D + 1,Q:1(2) M.Q ...E + 1,Q:1(3) M.Q ...N + 1,Q:1(4) M.Q ...P + M.Q ..D + 0FO..Q MIDAS_..D F"N U..D' !* Select the Midas-mode syntax table! + "# W :G..D U..D !* creating it if doesn't exist.! + Q..D M.V MIDAS_..D + 1m(m.m &_Alter_..D) <( >)' + 1M(M.M&_Set_Mode_Line) 2  + +!TECO Mode:! !C Set things up for editing TECO code. +g(m.aPURIFY~DOC~ TECO Mode)jk! + + M(M.M Load_Library)PURIFY + :M(M.M TECO_Mode) + +!TEX Mode:! !C Set up for editing TEX input files. +g(m.aTEX~DOC~ TEX Mode)jk! + + M(M.M Load_Library)TEX + :M(M.M TEX_Mode) + +!Scribe Mode:! !C Set up for editing Scribe source text. +g(m.aSCRIBE~DOC~ Scribe Mode)jk! + + m(m.m Load_Library)SCRIBE + :m(m.m Scribe_Mode) + +!Text Mode:! !C Set things up for editing English text. +Tab does ^R Tab to Tab Stop. There are no comments. +Auto Fill does not indent new lines.! + + M(M.M &_Init_Buffer_Locals) !* See comment at top of file.! + M.Q ..D + 1,(:I*RR) M.L Compiler_Filename + 0FO..Q Text_..D F"N U..D' !* Select the Text-mode syntax table! + "# W :G..D U..D !* creating it if doesn't exist.! + Q..D M.V Text_..D + 5*. :F..D __ !* . isn't part of a word (or a "sexp").! + !"! 5*' :F..D AA !* ' is part of a word...! + 5*8 :F..D AA !* BS is part of a word...! + 5*_ :F..D AA !* Underlining is part of a word...! + ' + 1,(M.M ^R_Tab_to_Tab_Stop) M.Q I + 1,0M.L Display_Matching_Paren + 1M(M.M&_Set_Mode_Line) Text  + +!Edit Tabular Text:! !C Temporarily set up for editing a table. +Makes Auto Fill indent the next line, +makes Tab be ^R Tab to Tab Stop.! + + 1[Space_Indent_Flag + M.M ^R_Tab_to_Tab_Stop[I + :I*Tabular_Text [Submode +  0 + +!Edit Indented Text:! !C Temporarily set up for editing indented text. +Good when body of text is indented, but topics appear at the margin. +Tab is ^R Indent Relative; auto fill indents lines. +Paragraphs start only with blank lines. Rubouts hack tabs.! + + M.M ^R_Indent_Relative [I + 127FS^R INIT[.Š 377.@FS^R INIT[Š 1[Space_Indent_Flag + [Fill_Prefix + :I* [Paragraph_Delimiter + :I*  [Page_Delimiter + :I*Indented_Text [Submode +  0 + +!Fundamental Mode:! !C Return to EMACS's initial mode.! + + M(M.M &_Init_Buffer_Locals) !* See comment at top of file.! + 1M(M.M&_Set_Mode_Line) Fundamental  + +!Macsyma Mode:! !C Enter a mode for editing Macsyma code. +Modifies the delimiter dispatch, ..D, appropriate for Macsyma syntax, +puts special rubout on rubout, sets parameters for comment hackery, +and defines Tab to be ^R Indent Nested.! + + M(M.M &_Init_Buffer_Locals) !* See comment at top of file.! + M.M ^R_Indent_Nested M.Q I !* SHOULD BE MACSYMA INDENT, BUT HARD! + 1,1M.L Space_Indent_Flag + 1,Q¨1,Q. M.Q›W )M.Q .› !* Exchange rubout flavors.! + 40 M.L Comment_Column + :I*/*_ M.L Comment_Begin + :I*/* M.L Comment_Start !* MACSYMA USES /* ...*/ FOR COMMENTS! + :I**/ M.L Comment_End + M.Q ..D + 0FO..Q MACSYMA_..D F"N U..D' !* Select the MACSYMA syntax table! + "# W :G..D U..D !* creating it if doesn't exist.! + Q..D M.V MACSYMA_..D + 1M(M.M &_Alter_..D) \/ "| $_ ;_ :_ =_ -_ +_ *_ /_ ^_ <_ >_ @_ !_ #_ &_ |_ ._ ,_ `_ ~_ __ !'! + 5*? :F..DAA' !* ? is alphabetic! + 1000000.[2 Q2-1&(aFS^R INIT)[1 + ]-)*Q2+Q1 M.Q ] + ]1 ]2 + 1M(M.M&_Set_Mode_Line) Macsyma  + +!MUDDLE Mode:! !C Enter a mode for editing MUDDLE code. +g(m.aMUDDLE~DOC~ Muddle Mode)jk! + + M(M.M Load_Library)MUDDLE + :M(M.M Muddle_Mode) + +!PL1 Mode:! !C Set up to edit PL/1 code. +g(m.aPL1~DOC~ PL1 Mode)jk! + + M(M.M Load_Library)PL1 + :M(M.M PL1_Mode) + +!Debug Mode:! !C Invoke TDEBUG for debugging TECO code. +Show two windows with buffer in window 1, and current function code +in window 2. Meta-D gets minibuffer which is stepped through. +Arg is line number to split screen at.! + + !* This version simply autoloads the TDEBUG Library version of this function.! + 1,M.M &_File_TDEBUG_Loaded"E + M(M.M Load_Library) DSK:EMACS;TDEBUG' + F:M(M.M Debug_Mode) + +!Auto Fill Mode:! !C Break lines between words at the right margin. +A positive argument turns Auto Fill mode on; +zero or negative, turns it off. With no argument, the mode is toggled. +When Auto Fill mode is on, lines are broken at spaces +to fit the right margin (position controlled by Fill Column). +You can set the Fill Column with the ^R Set Fill Column.! + + QAuto_Fill_Mode"'E[0 !* No arg => toggle.! + FF"N "'G U0' !* Arg => set from the arg.! + Q0UAuto_Fill_Mode + 0 + +!Atom Word Mode:! !C Make word commands deal with LISP atoms. +A positive argument turns Atom Word mode on; +zero or negative, turns it off. With no argument, the mode is toggled. +When Atom Word mode is on, word commands define a word to mean +a Lisp atom. This affects which characters are delimiters.! + + QAtom_Word_Mode"'E[0 !* No arg => toggle.! + FF"N "'G U0' !* Arg => set from the arg.! + Q0UAtom_Word_Mode + 0 + +!Overwrite Mode:! !C Make printing characters overwrite existing text. +A positive argument turns Overwrite Mode mode on; a zero or negative, +argument turns it off. With no argument, the mode is toggled. +In overwrite mode, printing characters replace a character +instead of pushing the following characters over to the right. +Rubout replaces the preceding character with a space. +To insert use ^R Quoted Insert.! + + QOverwrite_Mode"'E[0 !* No arg => toggle.! + FF"N "'G U0' !* Arg => set from the arg.! + Q0UOverwrite_Mode !* Note that we use value -1, not 1.! + 0 + +!Indent Tabs Mode:! !C Enables or disables use of tabs as indentation. +A positive argument turns use of tabs on; +zero or negative, turns it off. +With no argument, the mode is toggled.! + + QIndent_Tabs_Mode"'E[0 !* No arg => toggle.! + FF"N "'G U0' !* Arg => set from the arg.! + Q0UIndent_Tabs_Mode + Q0"E + @FT Not_using_tabs' + "# @FT Using_tabs' + 0FS ECHO ACT + +!SAIL Character Mode:! !C Enables or disables display of SAIL graphics. +They are single-column graphics for characters 0 through 37. +A positive argument turns display of SAIL graphics on; +zero or negative, turns it off. +With no argument, the mode is toggled.! + + QSAIL_Character_Mode"'E[0 !* No arg => toggle.! + FF"N "'G U0' !* Arg => set from the arg.! + Q0USAIL_Character_Mode + 0FS ECHO ACT + +!Word Abbrev Mode:! !C Turns word abbreviation mode on or off. +g(m.aWORDAB~DOC~ Word Abbrev Mode)jk! + + m(m.mLoad_Library)WORDAB + f:m(m.mWord_Abbrev_Mode) + +!Read Word Abbrev File:! !C Load in file of word abbreviations. +g(m.aWORDAB~DOC~ Read Word Abbrev File)jk! + + m(m.mLoad_Library)WORDAB + f:m(m.mRead_Word_Abbrev_File) + +!Replace String:! !C Replace one string with another, globally. +M-X ReplaceFOOBAR replaces each FOO after point with a BAR. +A numeric argument means replace only FOOs which are +surrounded by delimiter characters. Works by calling Query Replace +and pretending you typed a .! + + 1,f Replace:_[..9 !* Get FOO in q0 and BAR in q1! + !* Keep FOO in Q..9 over F^K to minimize funarg problem.! + 1,f Replace_..9_with:_,q..9(]..9)[0[1 + ! fsreread + .[9 fn q9j + fm(m.m Query_Replace)01 + +!& Case Replace:! !S Like TECO ^F1 FK commands but preserve case.! + +!* Deletes old text by doing FKD. Inserts new text from Q1. +Makes new text unchanged, capitalized or all caps according +to the text replaced. Returns two values good for ^R.! + + fk( .( fkc :fwl + 0,1au4 0,2au2 )j !* Save the 1st alphabetic char of FOO, and following char! + )d g1 !* Replace the FOO with BAR! + q4-100.f"g-27"l !* And if 1st letter of FOO was uppercase,! + q2-100.f"g-27"l !* then if the second was also, turn BAR to all caps.! + fk @fc O Allcaps'' + .( fkc :fwl 1 @fc )j !* Only 1st letter of Foo was cap =>! + !Allcaps! !* uppercasify the 1st letter of BAR.! + '' + -fq1 !* Return bounds of region changed.! + +!Query Replace:! !C Replace string, asking about each occurrence. +M-X Query replaceFOOBAR displays each occurrence of FOO; + you then type a character to say what to do. +Space => replace it with BAR and show next FOO. +Rubout => don't replace, but show next FOO. +Comma => replace this FOO and show result, waiting for next command. +^ => return to site of previous FOO (actually, jump to mark). +^W => kill this FOO and enter recursive editing level. +^R => enter recursive editing level. ^L => redisplay screen. +Exclamation mark => replace all remaining FOOs without asking. + +Period => replace this FOO and exit. Altmode => just exit. +Any other character exits and is read again. +To restart Query Replace after exit, +use ^R Re-execute Mini or run the minibuffer with an argument. + +Numeric arg means only replace FOO when bounded on both sides +by delimiter characters (according to syntax table). + +If Case Replace is nonzero, BAR will be capitalized or all caps +if the FOO found was (but only if FOO is typed all lower case). + +The TECO expression 1,MM Query ReplaceFOOCommands executes Commands +as TECO commands to perform the replacement. The commands should return +a pair of values which delimit the range of the buffer changed. "H" is +safe. To include Altmodes in the commands, quote them with ^]'s. +The commands can use Q2 and Q4 without saving them.! + +!* The value upon exit is -1 if it is done, or non-negative if +"any other" character was typed.! + + 1,f Replace:_[..9 + fq..9"e :i*String_to_replace_is_emptyfs err' + 1,f Replace_..9_with:_[1 !* Get FOO in q0 and BAR in q1! + q..9(]..9)[0 !* Keep FOO in Q..9 over F^K to minimize funarg problem.! + 10f[%center + [..j :i..j Query_Replace.__ 0[..f + [2 [4 [5 + q1[3 "e !* Q3 gets either replace with BAR or execute BAR.! + :i3 1 fk + 0u2 -1u4 !* Q4 gets index of first upper case letter in FOO.! + fq0< %4:g0"u 0;' q4:g0"a %2'> !* Q2 gets >= 0 if FOO has any letters at all.! + Q2"G %4-fq0"e !* If FOO contains letters but they are all lower case,! + 0fo..qCase_Replace"n !* maybe we should try to preserve case.! + m.m &_Case_Replaceu3'''' + "n :i33' !* Make sure user command string ends in altmode.! + F0:"L !* If FOO contains a ^], replace it by two of them.! + f[b bind g0 + j< :s; i> + hx0 f]b bind' +!* Replace String calls us with an excl in FS REREAD.! + fs reread-!"e fiw O Excl' + < :s0"e -1' !* Find next FOO. Return -1 if no more FOOs.! + ff&1"N + 0,FKA"C !' !* Postcomma arg means delimiter must precede! + 0,1A"C !'' !* and follow, or we don't replace it.! + 0@v !* Display it.! + .+fku5 !* Remember where it starts.! + fs rgetty"e 0tt' !* Make sure can see it on printing tty.! + 0f[Helpmac @fi:fcu4 f]helpmac + q4-!"e m3 !* Exclamation mark => replace all remaining FOOs.! + !Excl! !* Come straight here, for Replace String.! + < :s0; + ff&1"N + 0,FKA"C !' !* Postcomma arg means delimiter must precede! + 0,1A"C !'' !* and follow, or we don't replace it.! + m3 > f -1' + q4-,"e m3@V !* Comma => replace with BAR,! + !Pause! 0@V @fi:fcu4 !* Display and read another character.! + q4-.@; !* which we interpret normally, except that we have! + q4-!"e o Excl' + q4fx_,"g 127u4'' !* already replaced this FOO.! + q4-."e m3f 0;' !* Period replaces like Space, then exits.! + q4-f.L"e f+ fkc !' !* ^L clears screen and redisplays, showing same FOO.! + q4-^"e w O Pause' !* ^ => go back to previous occurrence and show.! + q4-(33.fs ^r init)@; !* If char would exit ^R, exit query replace.! + q4-@; !* Altmode also exits.! + q4-f.W"e fkd 0 !' !* ^W kills the FOO and enters ^R.! + q4-f.R"e 0 !' !* ^R enters ^R; on return, move on.! + q4-4110."e ?u4' !* Help is like "?".! +!* Commands below here set the mark.! + q4-?"n q5:' !* except for "?", which is at the bottom for speed.! + + q4-32"e m3f !' !* If char is space, replace with BAR.! + q4-127"e !' !* Rubout => don't replace, move to next FOO.! + q4-?"e !* ? or Help requests help.! + !<<<"! + ft Space_=>_replace,_Rubout_=>_don't,_Comma_=>_replace_and_show, + Period_replaces_once_and_exits,_!_replaces_all_the_rest, + C-R_enters_editor_recursively,_C-W_does_so_after_killing_FOO, + ^_returns_to_previous_locus,_?_gets_help,_C-L_redisplays, + Altmode_exits,_anything_else_exits_and_is_reread. +  + fs rgetty"n ft Type_a_space_to_see_buffer_again. + + :fi-32"e fiw' 0u..h @v' + fkc !' !* Give him another chance to answer for this occurrence.! + q4fs rereadw 0 > !* Random char => exit and re-read it.! + -1fs rereadw 0 + +!Keep Lines:! !Delete Non-Matching Lines:! !C Delete all lines not containing specified string. +Give the TECO search string to search for as a string argument.! + + 1,f Pattern:_ f[ s string !* Initialize search default! + .( .[1 !* Q1 pts at end of last line we are saving! + < :s; 0l !* Find start of next line to save.! + q1,.k !* Kill all before it after previous saved line! + l .u1> !* Mark end of line to preserve it! + q1,zk )j .,z !* Kill all after last saved line! + +!Flush Lines:! !Delete Matching Lines:! !C Delete all lines containing specified string. +Give the TECO search string to search for as a string argument.! + + 1,f Pattern:_ f[ s string !* Initialize search default! + .( < :s; !* Find next line containing string! + 0kk> )j .,z !* and kill it.! + +!Occur:! !List Matching Lines:! !C Displays text lines after point which contain a given string arg. +An arg means type lines before and after each occurrence.! + + 1,f Pattern:_ f[s string !* Save string arg for searching for.! + .[0 FN Q0J !* Restore point.! + [1 FF"E 0U1' + < :S; -Q1T Q1+1T !* Find next occurrence, and type several lines around it.! + Q1"N FT-------- + ' !* If typing > 1 line per occurrence, put in separators.! + L> !* Don't print a line twice.! + FT Done + + 0 + +!How Many:! !Count Occurrences:! !C Counts occurrences of a pattern, after point. +Takes pattern as string arg.! + + 1,f Pattern:_f[s string !* read string arg.! + 0[0 .[2 + fn FT QUIT!__ q0:= ft_occurrences_as_of_location_ .:= FT +  q2j  !* If user quits, say what was found.! + <:s; %0> + q0:= FT_occurrences. +  + q2j ]..n 0 !* Now that answer is out, no need for quit-protection.! + +!Tabify:! !C Convert spaces after point to tabs. +g(m.aAUX~DOC~ Tabify)jk! + + f:m(m.a AUXTabify) + +!Correct Spelling:! !C Correct spelling over the whole buffer. +g(m.aAUX~DOC~ & Correct Buffer Spelling)jk! + + f:m(m.a AUX&_Correct_Buffer_Spelling) + +!Command to Spell:! !C Give command line (string arg) to SPELL job. +g(m.aAUX~DOC~ & Spell JCL)jk! + + f:m(m.a AUX&_Spell_JCL) + +!Untabify:! !C Converts all tabs after point to spaces. +Numeric arg specifies tab stop spacing.! + + f"n f[tab width' + fs tab wid[1 + .[0 fn q0j + 0s  + < :s; -d q1-(fsshpos-(fsshpos/q1*q1)),32i> +  + +!Load Library:! !C Load a library of functions. +Takes filename as string arg; default FN2 is :EJ. +Tries both the specified (or home) directory and EMACS. +An argument means don't run the library's & Setup function. +Pre-comma argument means create variable Library Filename +for Dump Environment's use. +Returns a pointer to the file in core.! + + 1,f Library:_[2 + [0 [.1 f[d file + ff&2"n e[ fne] 0[8' !* if pre-comma argument then push open! + !* input file! + etDSK: fs hsname fs dsname !* Set up defaults.! + 1f[fnam syn et _:EJ !* Read in library file name.! + fs d fn1 :f6[.2 !* Get FN1 as string. Used for & Setup function name.! + f[:ej page !* Must be last pushed. If we like the file, discarded.! + fs :ej pageu0 + 1:< :ej2u.1 + ff&2"n er fsIFileu8 ec' + >"L !* If only one name, it is FN1, and FN2 is :EJ! + F~(0,3:G(FS ERROR))OPN"N FS ERROR FS ERR' + 1:< f[d file !* If not found, try EMACS;.! + :ej EMACS;u.1 + ff&2"n er fsIFileu8 ec' + f]d file >"L !* Not found on EMACS; either => give up.! + F~(0,3:G(FS ERROR))OPN"N FS ERROR FS ERR' + :ej'' !* Make sure err msg mentions spec'd dir, not EMACS.! + q.1fp-100"e !* File is good if it starts with a pure string,! + q.1+fq.1+4-(q0*5120+400000000000.)"e !* whose length is length of file.! + ]*w q.1( !* File good => run its setup function if any,! + ff&3-1"n 1,q.1 m.m~Filename~u.2 fq.2"g + ff&2"n q8m.v.2_Library_Filename' + ff&1"e 1,q.1 m.m &_Setup_.2_Libraryu.1 + fq.1"g m.1'''' + )'' !* then return, not restoring FS :EJPAGE.! + :i*LIB FILE_NOT_IN_LIBRARY_FORMAT fs err + +!Run Library:! !C Run a specific function from a specific library file. +M-X Run Library runs the function +named out of the library , +which is loaded temporarily (unless it is already in core). +If is null, "" is used. +TECO programs should use M.A instead of this function.! + + 1,f Library:_( + 1,f Function:_[.9 !* Get library in q.8 and function in q.9.! + )[.8 + f:m(m.a.8.9) + +!Kill Libraries:! !C Delete some loaded libraries from core. +Offers to kill each library, one by one, most recently loaded first. +Keeps asking until the first time you say no. +Before killing a library, we call its & Kill Library +function (if any) with string-pointer to the library as argument.! + + :ft [0 [4 [5 + < + fs:ejpage*5120+400000000000.u0 !* 1st file in q0! + fq0-1:; + 1,q0m.m~filename~u4 !* Get library's name.! + q4"n f~4 EMACS@;' !* Kill EMACS library? Unthinkable! + q4+1"G ft Kill_Anonymous_Library' + "# ft Kill_4_Library !* Print library name.! + q0m.m~DOC~_~FILENAME~u5 !* Get its global documentation,! + ft _(5)' !* and print it too.! + m(m.m&_Yes_or_No)@; + q4"l 1,q0m.m&_Kill_4_Libraryu5' !* Run the library's kill function if there is one.! + q5"n q0m5' !* Its arg is a pointer to the library in core.! + fs :ejpage+(fq0+4/5120) fs :ejpage' !* Yes => kill this one, ask about next.! + > + 0u..h !* Allow redisplay right away.! + +!List Library:! !C List contents of a library not necessarily loaded. +M-X List Library is the format.! + + F[:EJ PAGE F[D FILE !* POPPING THIS WILL UN-LOAD THE FILE.! + 1,F Library:_[0 [1 + 1,q0m(m.m&_Get_Library_Pointer)[2 + q2"n q2U1' !* Q1 gets ptr to that file, if already loaded.! + "# 1M(M.M Load_Library)0U1' !* If not loaded, load it. Don't run the setup function.! + Q2,Q1M(M.M &_LIST_ONE_FILE)  !* And list the library's contents.! + !* If library is loaded, also list keys that call it.! + +!Compare Windows:! !C Compare text in two windows. +g(m.aAUX~DOC~ & Compare Windows)jk! + + f@:m(m.aAUX&_Compare_Windows) + +!DIRED:! !Edit Directory:! !C Edit a directory. +g(m.aDIRED~DOC~ & DIRED Enter)jk! + + F:M(M.A DIRED&_DIRED_Enter) + +!Reap File:! !C Delete old versions of a file. +g(m.aDIRED~DOC~ Reap File)jk! + + F:M(M.A DIREDReap_File) + +!Clean Directory:! !C Delete old versions in a directory. +g(m.aDIRED~DOC~ Clean Directory)jk! + + F:M(M.A DIREDClean_Directory) + +!Compare Directories:! !C Compare directories on different ITS machines. +fsosteco"n iNot implemented on Twenex.' + "# g(m.aDIRED~DOC~ Compare Directories)jk'! + + :M(M.A DIREDCompare_Directories) + +!Kill Variable:! !C Eliminates definition of specified variable.! + + 1,f Variable:_[0 + :fo..q0 [0 !* Find the variables idx in symbol table (..Q)! + q0"l ' !* Not defined =) do nothing.! + q..q[..o q0*5j 15d 0 !* Else delete the 3 words describing it! + +!Edit Options:! !C Edit values of permanent options. +Displays a table of the variables which are options, +and their values, and lets you edit the values. +A variable is an option if its comment starts with "*" or "*". +When you exit the recursive edit with ^R Exit, the values are updated. +To abort, use Abort.! + + :m(m.a AUX Edit_Options) + +!List Files:! !C Brief directory listing. +g(m.aDIRED~DOC~ List Files)jk! + + :M(M.A DIREDList_Files) + +!List Directories:! !C List names of all disk directories.! + + :M(M.A DIREDList_Directories) + +!RMAIL:! !Read Mail:! !C Read mail using your favorite mail-reader. +Passes a string argument to the mail-reader. +If the variable Mail Reader Library exists, +it is the name of the mail-reader library. +Otherwise, on Twenex, if Mail Reader Program exists, +run that program in a subfork; and an argument means +kill the subfork. The default is RMAIL on ITS, MM on Twenex. + +A precomma arg of 1 means just mail one message. +A precomma arg of 2 tells RMAIL to exit to DDT when done.! + + [2 -1"n :i2 ' !* 2: name of entry point in the library.! + "# :i2 &_Mail_Message' !* Precomma arg of 1 means just mail a message.! + :f "l :i*'"# :i*'[1 !* 1: string argument if any! + 0fo..qMail_Reader_Library[0 !* 0: If string, names mail reader.! + -1"e 0fo..qMail_Sender_Libraryf"nu0'' + q0"e fsosteco"e :i0RMAIL'' !* On ITS, default to RMAIL here.! + fq0:"l fm(m.a 02)1 ' !* Call the library, passing on string arg.! +!* Get here only on Twenex! + 0FO..qMail_Reader_Programu0 + q0"e :i0MM' + 0fo..qMail_Fork[2 !* 2: Old fork if any.! + "e ff&1"n "n q2"n -q2fz !* Argument means kill fork, if it exists.! + 0uMail_Fork' 0''' !* Remember that we no longer have one.! + 0[3 "n f=0MM "e :i3SEND'' !* 3: Maybe string for sending! + m(m.m&_Exit_EMACS) !* clear mode line, home up, autosave.! + 0fo..q Exit_to_Inferior_Hook[1 + q1"n m1' + q3 f"n fs fork jcl' !* Give command line if needed.! + q2"n q2fz 0' !* if old fork, run it! + fsOSTeco-1"e fzSYS:0.EXEu1' !* 20X, use winning SYS:.! + "# fz0.SAVu1' !* 10X, use losing .! + q1 m.v Mail_Fork !* and save fork handle! + 0fo..Q Return_From_Inferior_Hooku1 + q1"n m1' + 0 !* nothing changed in buffer! + +!Send Mail:! !C Mail a message, using your favorite mail-reading program. +If you abort the message, you can resume by giving this +command a nonzero argument. +Refer to the Read Mail command.! + + 1,(f):m(m.mRead_Mail) + +!Edit Syntax Table:! !C Delimiter syntax table editor. +g(m.aAUX~DOC~ Edit Syntax Table)jk! + + :m(m.a AUX Edit_Syntax_Table) + +!View Variable:! !View Q-Register:! !C Type out contents of q-register or variable. +M-X View Var is the format.! + + f[B Bind g(1,f Q-register:_) !* Pick up argument ! + J 1AF(.:"L Z-.-1"N !* If it doesn't look like a q-reg name,! + J27I ZJ27I'' !* put altmodes around it, to treat it as a variable.! + Q..O[1 [2 [3 !* Now that we got the value, it's ok to push qregs.! + J 1A-33."E !* If the q-reg is a named variable,! + D ZJ-D :FO..Q..OU3 !* find its position in the symbol table,! + Q:..Q(Q3)U2 FT Q 2   !* and type the full name (arg maybe was abbrev.! + Q:..Q(Q3+2)U2 !* Get variable's comment, and type if not 0.! + FQ2"G HKG2 !* Have a non-null comment.! + J 1A-!"E !* If comment starts with an excl,! + D S! R.,ZK' !* extract just the stuff between the excls.! + FT__ HT'' + "# :FT Q..O' !* not a named variable => type qreg name as given.! + FT + + [A !* Internal Function ! + 0U3 !* Q3 amount of spacing already hacked this line ! + 0U2 !* Q2 desired indentation ! + @:IA| + Q2-Q3 !* indent ! + Q1FP-1"E FTQ-vector + Q1[..O -1[0 Q2+2[2 + Z/5< Q2 FT( %0:= FT) !* type each element of Q-vector ! + Q0-10"L FT_ ' + Q2+2[3 q2+3[2 Q:1(Q0)[1 + MA ]1 ]2 ]3 > +  ' + Q1FP+1"E FTDead_Buffer +  ' + Q1FP"L Q1=  ' !* Number ! + Q2"N FQ1-2000."G FT Long_String +  '' + FT1 +  !* String ! +| + :MA !* Call it ! + +!View Buffer:! !C View a buffer moving by screenfulls. +Buffer name is string argument; null arg means selected buffer. +Space moves to next screen, Backspace moves back a screen. +Return exits leaving point in current screen. +Anything else exits and restores point to where it was before; +and if it isn't Rubout, it is executed as a command. + +Also useful on fast storage scopes like the Tektronix. +However, Backspace is only available on real displays.! + + 1,F Buffer:_[1 0[2 + fq1"e qBuffer_Nameu1' !* If arg is null, use current buffer.! + "# Q1M(M.M &_Find_Buffer)[2 !* Else get index of specified buffer! + Q:.B(Q2+4!*bufbuf!)[..O' !* and select it, for TECO.! + [..J :I..J Viewing_Buffer_1__ + .[P FN QPJ :I* [..A !* SAVE ., ..A! + q2"e :F FS WINDOW+BJ' + "# q:.b(q2+6!*bufwin!)+bj f[ window' + 1,M(M.MView_File) !* Actually display and process Space and Backspace.! + FS REREAD"L ' !* flushed by rubout or space past end.! + :FI-î"E + FIW !* ^M => leave the cursor in the center of the screen.! + FS RGETTY"E .UP .' + FSWINDOW+BJ + Q2"N .-BU:.B(Q2+6!*bufwin!)' + FSLINESF"EW FS HEIGHT-(FS ECHO LINES+1)-(FS TOP LINE)'/2L .UP .' +  + +!View File:! !C View a file sequentially on the screen. +Type Space to see the next screenful, or Backspace to back up. +Anything else exits. Spacing past last screenful exits. +On non-displays, Backspace is not available. +Does not set the file's reference date. + +Pre-comma argument means view the current buffer contents +and don't change the buffer or Q..J.! + + "E + FN EC !* Close the file when we exit.! + 5,4F View_File[1 1,ER1 + FS D FILE[0 + :I*Viewing_0_ [..J FR !* Set the mode line.! + F[B BIND F[WINDOW' + FS RGETTY"E [H + :< F+ !* Force screen clear on non-displays! + 1:<0,0@FM>W !* Go to beginning of screen line! + FS HEIGHT-1, 34 F:1UH !* Height of the screen! + .,( 1:W .)T !* Do one screens worth! + .-Z@; !* If at the end, quit! + FT--More-- !* Do --MORE-- processing! + :FI-40."N FT_FLUSHED 0;' FI> !* check for FLUSH! + FS REREAD-127."E FIW' !* Discard Rubout if that flushed us.! + F+ ' !* Cause current line to be redisplayed.! + + 0[1 !* Q1 has addr in file of start of buffer.! + .[2 !* Q2 has addr in file of desired top of screen.! + [3 + 1F[^R MORE + FSLINESF"E W FSHEIGHT-(FS TOP LINE)-(FS ECHOLINES+1)'[H !* Usable screen height.! + < "E + Q2+6000-Z-Q1"G !* Have we enough text past that point? If not, read it.! + ZJ Q1+ZFS IF ACCESS + Q2+6000-Z-Q1/5*5FY' + Q2+6000-Z-Q1"G !* Didn't read as much as we wanted =>! + -@FK' !* flush padding from end of file.! + Q1"G Q1-Q2+6000"G !* Not enough before start of screen => read more.! + Q1-Q2+6000/5*5U3 + Q3-Q1"G Q1U3' !* Don't try reading back past start of file.! + J Q1-Q3FS IF ACCES + Q3FY Q1-Q3U1'' + Q1+Z-Q2-10000"G !* Too much past end => flush some.! + ZJ -(Q1+Z-Q2-8000)D' + Q2-Q1-14000"G !* Too much before start of screen => flush some.! + J (Q2-Q1-8000)U3 + Q3D Q3+Q1U1'' + Q2-Q1J .FS WINDOW + .,Z@V + :FIU3 + Q3-127"E FI' !* Discard a rubout.! + Q3-32"N Q3-8"N 0;'' !* Exit on anything but Space or Backspace.! + FI !* Either one, discard as input.! + Q3-32"E 1:< QH,0:FM > !* Space => move down.! + .-Z;' !* Exit if reach EOF. ! + Q3-8"E 1:< -QH,0@FM >' !* BS => move up.! + .+Q1U2 + > + 0U..H !* Redisplay right away.! +  + +!Insert Date:! !C Insert the current time and date after point. +A date in FS IF CDATE format can be given as a numeric +argument, to use instead of the current date. +The mark is put after the inserted text.! + + [1[2 .f[vb fsz-.f[vz + ff"n ' "# fs date' !* Use current date or argument if any. +! fsfdconvertw .-3fam_ !* get date, remove seconds! + 8r \u1 -2d !* find hour of day! + q1-11"g q1-12u1 .+3fp' !* convert to 12 hour, change am to pm! + .,(q1f"ew 12'\)zfx2 -d !* 0 -> 12, save time in qreg! + j eg j5k i_ cfwf(fc)l i,_ 3k !* find day of week! + \-1*10u1 -2dd 1a-0"e dr' !* change numeric month to name! + 2c f_c q1,q1+10g(:i*January___February__March_____April_____May_______June______July______August____September_October___November__December__) + .,(-s_2c).fk i19 !* remove excess spaces! + j g2 z: j h !* combine time and date and return! + +!Visit Tag Table:! !C Select a tag table file. +g(m.aTAGS~DOC~ & Visit Tag Table)jk! + + 1,M.M&_Setup_TAGS_Library"E + M(M.M Load_Library)TAGS' + FF"N M.V Tags_Find_File' + :M(M.M &_Visit_Tag_Table) + +!Dissociated Press:! !C Print interesting random text based on text in buffer. +Arg is number of words of continuity at jumps, +or minus number of characters of continuity.! + + [2 "e 1u2' + [1[3[4 -1F[^MPRINT + :i3 -(*(/))  !* a,bm3 = a mod b! + < fsFlushed"n 0;' + q2"g .u4 1:<,20m3+4 fwr>"l j!' q4,.t + -q2fwx1 + ,zm3j :s1"E js ' r' + "# .,(1:<,20m3+4 c>w).t + q2x1 + ,zm3j :s1"E js '' + > +  + +!Compile:! !C Recompile the file you are visiting. +We first offer to save any changed files, unless there is a numeric arg. +A string argument is used to specify compiler switches. + +If nothing seems to be happening before your compile, just be patient. +If nothing seems to be happening after your compile, first type a Space, +then type POP (on TNX) or P (on ITS). + +Refer to the source code for customization information.! + +!* Customization: (This should be set up for you by your mode.) + +If Compile Command is nonzero, it is executed to do the compilation. +It can find the filename in Q1 and switches in Q4. +It MUST exit with a ^\, to pop what we leave on the stack. + +Otherwise, we run the compiler. Compiler Filename should specify +the compiler's name. On ITS, it is the name of a TS file on your +dir or a system dir. On Twenex, it is a filename, which defaults +to SYS: and to .EXE. If it is 0, the major mode name is used. +If it is positive, the EXECUTE command is used on Twenex; +on ITS, the major mode name is used. + +The string Compiler Switches is used in addition to any switches +you specify in an arg to Compile. +When the compiler returns, we execute After Compilation Hook if it is defined.! + + FF"E M(M.M Save_All_Files)' + + Qbuffer_filenames[1 !* Current file name in 1,! + FSOSTECO"N (fq1-1:G1-0)(fq1-2:G1-.) "E !* except if ".0" exten.,! + 0,fq1-2:G1U1'' !* strip it off! + + Q1F[D FILE + + 0FO..Q Compiler_Switches[4 + FQ4"L :I4' + + 0FO..Q Compile_Command[2 + Q2"N f:M2' + + QModeU2 + 0FO..Q Compiler_Filename[3 + FS OSTECO"E Q3"G 0U3'' !* On ITS: there is no EXEC command. Use mode name.! + Q3"E Q2U3'' !* The mode name is always the default.! + + FS OSTECO"E + :3__14î ' + "# Q3"G F+ 0FZexecute__1_4 î ' + "# :F3"L ! !* Add SYS: if no device or dir.! + :I3 SYS:3'' + .F3"L :I3 3.EXE' !* Add .EXE if no extension.! + :FT -(FZ3 __1_4 î )FZ' + 0U..H -1FSPJATY + ' + 0FO..Q After_Compilation_HookU2 + Q2"N M2 ' +  + +!View Mail:! !C Read your own or other user's mail file. +User name is string argument; null means your own. +Uses View File.! + + 1,f User:_[0 + fs osteco"e + fq0"e fs uname'"# f60' fs u mail !* Set default filename to! + ' !* specified user's mail file, or! + !* this user's if none specified! + "# fq0"e fs hsname' "# q0'fs dsname + etdsk:mail.txt' + m(m.mView_File) 0 + +!Undo:! !C Undo last major change, kill, or undo. +Point is left before the undone change and the mark is left after. +Insertion cannot be undone, nor deletion (as opposed to killing). +If you change the buffer by insertion or deletion before you undo, +you will get slightly wrong results, but probably still useful. +A nonzero arg means don't query, just do it.! + +!* The data for undoing is kept in a qvector in Q..U. + The 0 slot is the TECO buffer in which the change happened. + You can't undo the change in any other buffer. + The 1 slot is the string of old text. + The 2 slot is the old address of the start of that text. + The 3 slot is the old address of the end of that text, + remembered as the distance from the end of the buffer. + The 4 slot is a string identifying the type of change + which is recorded. This is for querying the user. + This database is updated by things like & Kill Text + and & Save Region and Query.! + + q:..u(0)-q..o"n + :i* Not_in_buffer_that_was_changed fs err' + fsz-q:..u(2)-q:..u(3)"l + :i* Things_have_changed_too_much_to_undo_that. fs err' + q:..u(4)[0 + "e + @ft Undo_the_last_0 !* Ask the user whether he really wants to undo.! + 1m(m.m&_Yes_or_No)"e 0'' + q:..u(1)u0 + b-q:..u(2)"g 0fsvb' !* If the virtual bounds get in the way, flush them.! + fsvz-q:..u(3)"g 0fsvz' + q:..u(2)j + .,fsz-q:..u(3)x:..u(1) !* Store the new text for any re-undo.! + .,fsz-q:..u(3)k !* Flush the new text.! + g0 !* Get the old text back.! + .: !* Set the mark after the reinserted text.! + fkc + :i:..u(4)Undo !* Next undo should offer to undo an undo.! + fQ0 + +!Set Variable:! !C Set the value of a named variable. +The name of the variable is a string argument. +If you supply a numeric argument, that is the new value. +Otherwise, a second string is the new value. +You may abbreviate the name of the variable +if you are sure it already exists.! + + 1,F Variable:_( + FF"E 1,F Value:_' "# '[1 + )[0 + :FO..Q 0:"G + 0M.V0' !* Create variable if it doesn't exist.! + Q1U0 0 !* Set value in any case.! + +!Set Key:! !C Put a function on a key. +The function name is a string argument. +The key is always read from the terminal (not a string argument). +It may contain metizers and other prefix characters.! + + m(m.m &_Load_Bare) + 8,F Function_Name:_[0 + m.m0m(m.m&_Macro_Name)u0 + @ft Put_0_on_key:_ + m(m.m &_Read_Q-reg)[1 !* Ask what character to put it in.! + @ft__Go_ahead 1m(m.m&_Yes_or_No)"e 0' + m.m0u1 + 1fsmode ch !* Make WORDAB notice the change.! + +!What Page:! !C Print the current page and line number in the file.! + + 0F[VB .[0 FN Q0J 1[1 + QPage_Delimiter[2 +!* Search, counting page delimiters, but only those at the start of a line.! + J < .,Q0:FB2; FKC 0@F"E %1'W -FKC> + @FT__Page_ Q1@:= + 1U1 + < .,Q0:FB +; %1> + @FT__Line_ Q1@:= + 0FS ECHO ACT + +!What Cursor Position:! !^R Print various things about where cursor is. +Print the X position, the Y position, +the octal code for the following character, +point absolutely and as a percentage of the total file size, +and the virtual boundaries, if any.! + + :i*CFS ECHO DIS + @ft X= fs shpos@:= + @ft_Y= fs ^r vpos@:= + .-z"n @ft_CH= 8[..e 1a@:= ]..e' + @ft_.= .@:= @ft( .*100/fsz@:= @ft%_of_ fsz@:= @ft) + fsvz+b"n + @ft_H=< h@:= @ft>' + @ft_ 0fsecho act + +!View Directory:! !C Print file directory. +Takes directory name as string arg. +Uses and sets the TECO default filenames.! + + 5,F Directory[0 + [..J :I..J Viewing_Directory_0__ + EY0 +  + +!Make Space:! !C Delete things to make space. +Offers to delete the kill ring, buffers, etc. +Even if you answer "no" to all offers, +some internal wasted space is reclaimed.! + + qMM_&_Yes_or_No[.Q !* M.Q to ask a question.! + 0[0 [1 [..O + < q0*5-fq.b; !* process all the EMACS buffers.! + q:.b(q0+4!*bufbuf!)u..o + 20.f? !* Close all large gaps.! + q:.b(q0)+q0u0 > + ]..O + FT Flush_the_kill_ring + m.q"l -1u0 + fq..k/5< 0u:..k(%0) >' + FT Flush_the_Undo_memory + m.q"l -1u0 + fq.u/5< 0u:.u(%0) >' + 0u0 + < q0*5-fq.b; !* process all the EMACS buffers.! + q:.b(q0+1!*bufnam!)u1 + 0:g1-*"e !* If buffer name starts with a star,! + FT Kill_buffer_1 !* offer to kill it.! + m.q"l m(m.m Kill_Buffer)1 !'' + q:.b(q0)+q0u0 > + 2f? !* GC strings.! +  + +!What Available Space:! !C Print amount of free address space left.! + + F[B BIND !* Find top of buffer space! + FS :EJ PAGE-(FS REAL AD+5119/5120)[0 + FS OSTECO"N Q0*2u0' + Q0:@= @FT_pages_available. + 0FS ECHO ACT + 0 + \ No newline at end of file diff --git a/src/emacs1/vars.24 b/src/emacs1/vars.24 new file mode 100755 index 00000000..8d86e486 --- /dev/null +++ b/src/emacs1/vars.24 @@ -0,0 +1,156 @@ +!* Varlist File -*-TECO-*-! + +!&& Variable Name List:! !Q List of strings containing all built-in variables' names.! +!** The start-up process looks down the symbol table and replaces each +variable name with the corresponding one from here if there is one. +This makes all E's share the string names, reducing impure storage,, +and speeds up GC.! + +!** You will see that variable comments are also included herein. +Variable comments must follow the corresponding names. +They become pure strings just like the variable names do. +The start-up process, when it replaces an impure variable name with +a pure one, also sees whether the following pure string matches the +variables's comment, and if so replaces that too. + +However, since no string can span more than one line, +variable comments which include macros to be run are not included.! + + + *F _Hook* + Abort_Resumption_Message + Atom_Word_Mode + Auto_Directory_Display + *_1_=>_display_dir_after_writes,_-1_=>_reads_too + Auto_Fill_Mode + Auto_Push_Point_Notification + *_Searches_setting_mark_type_this + Auto_Push_Point_Option + *_Searches_moving_this_far_set_mark_at_old_point + Auto_Save_All_Buffers + *_non-0_=>_auto_save_all_buffers,_not_just_selected_one + Auto_Save_Count + Auto_Save_Default + Auto_Save_Filenames + *_Filename_for_Auto_Save_files + Auto_Save_Interval + Auto_Save_Max + *_#_of_saves_to_keep + Auto_Save_Mode + Auto_Save_Visited_File + Autoarg_Mode + Backtrace_Temp + Bottom_Display_Margin + Buffer_Filenames + Buffer_Index + Buffer_Name + Case_Replace + *_1_=>_Replace_commands_preserve_case + Case_Search + Comment_Begin + *_String_for_beginning_new_comments + Comment_Column + *_Column_to_start_comments_in + Comment_End + *_String_that_ends_comments + Comment_Rounding + *_Hairy_-_see_code_for_^R_Indent_for_Comment + Comment_Start + *_String_that_indicates_the_start_of_a_comment + CRL_Help + CRL_List + CRL_Name_Lister + CRL_Name_Type + CRL_Prefix + Cursor_Centering_Point + Default_Major_Mode + *_Major_Mode_for_newly_created_buffers + Directory_Lister + Macro_to_use_to_list_directories + Display_Matching_Paren + Display_Mode_Line_Inverse + Display_Overprinting + Echo_Area_Height + Editor_Name + Editor_Type + End_of_Buffer_Display_Margin + Error_Messages_in_Echo_Area + Fill_Column + Fill_Extra_Space_List + *_punctuations_that_need_2_spaces + Fill_Prefix + *_String_to_put_before_each_line_when_filling + Indent_Tabs_Mode + Initial_Local_Count + Lisp_*CATCH_Indent + Lisp_*THROW_Indent + Lisp_CASE_Indent + Lisp_CASEQ_Indent + Lisp_COMPILER-LET_Indent + Lisp_DO_Indent + Lisp_DOLIST_Indent + Lisp_DOTIMES_Indent + Lisp_EVAL-WHEN_Indent + Lisp_Indent_DEFanything + Lisp_Indent_Language + Lisp_Indent_Offset + *_See_^R_Indent_for_Lisp + Lisp_Indentation_Hook + Lisp_IOTA_Indent + Lisp_LAMBDA_Indent + Lisp_LET_Indent + Lisp_LET*_Indent + Lisp_LET-CLOSED_Indent + Lisp_LET-GLOBALLY_Indent + Lisp_MULTIPLE-VALUE-BIND_Indent + Lisp_PROG_Indent + Lisp_PROG1_Indent + Lisp_PROG2_Indent + Lisp_PROGN_Indent + Lisp_SELECT_Indent + Lisp_SELECTQ_Indent + Lisp_UNWIND-PROTECT_Indent + Lisp_WITHOUT-INTERRUPTS_Indent + MM_&_Check_Top_Level + MM_&_Indent + MM_&_Find_Buffer + MM_&_Find_File + MM_&_Get_Library_Pointer + MM_&_Kill_Text + MM_&_Matching_Paren + MM_&_Maybe_Push_Point + MM_&_Maybe_Display_Directory + MM_&_Process_File_Options + MM_&_Read_Line + MM_&_Set_Mode_Line + MM_&_Xindent + MM_Load_Library + Mode + Do_MM_FOO_to_enter_FOO_mode + Next_Bfr_Number + Overwrite_Mode + Page_Delimiter + *_Search_string_for_finding_page_boundaries + Paragraph_Delimiter + *_Lines_starting_with_these_chars_start_paragraphs + Permit_Unmatched_Paren + *_1_=>_allow_unmatched_),_-1_=>_only_in_Lispish_modes + Prefix_Char_List + Previous_Buffer + Read_Line_Delay + Pausing_this_many_1/30_sec_causes_echoing + Region_Query_Size + *_Some_commands_need_confirmation_if_region_this_big + SAIL_Character_Mode + Search_Default_Ring + Search_Exit_Char + Set_Mode_Line_Hook + Space_Indent_Flag + *_If_nonzero,_Auto_Fill_indents_new_lines + Submode + !! 1FS MODE CH + Tab_Stop_Definitions + *_Tab_stops_for_^R_Tab_to_Tab_Stop + Temp_File_FN2_List + *_Reap_File_deletes_these_FN2s + Top_Display_Margin diff --git a/src/emacs1/window.77 b/src/emacs1/window.77 new file mode 100755 index 00000000..2597cfb2 --- /dev/null +++ b/src/emacs1/window.77 @@ -0,0 +1,203 @@ +!* -*-TECO-*-! + +!^R Other Window:! !^R Switch to the other window. +In two-window mode, moves cursor to other window. +In one-window mode, exchanges contents of visible window +with remembered contents of (invisible) window two. +An argument means switch windows but select the same +buffer in the other window.! + + 0FO..QWindow_2_Buffer"E + :I*O1B Only_One_Window FS ERR' + MMM_&_Check_Top_Levelwindows + [Previous_Buffer !* Don't set Previous Buffer to buffer of window we leave.! + Q..O UOther_Window_Buffer + 0FO..QWindow_2_Size"E !* If only 1 window now, but second has existed,! + .( QBuffer_Name( FS WINDOW( !* Then select window 2's buffer in existing window! + QWindow_2_BufferM(M.M Select_Buffer) + QWindow_2_Point:J + QWindow_2_Window FS WINDOW + ) UWindow_2_Window !* And put this window's old buffer into! + ) UWindow_2_Buffer !* (now invisible) window 2! + ) UWindow_2_Point + ' + [1 [2 + FS TOP LINE"E + :I2 1 :I1 2 !* Q1 gets window switching to, Q2 gets window being left.! + QWindow_1_Size+1FS Top Lin + QWindow_2_SizeFS Lines' + "# + :I2 2 :I1 1 + 0FS Top Lin + QWindow_1_SizeFS Lines' + QBuffer_NameUWindow_2_Buffer + .UWindow_2_Pointer + FS WINDOW UWindow_2_Window + FF"E QWindow_1_BufferM(M.M Select_Buffer) + QWindow_1_Pointer:J + QWindow_1_WindowFSWINDOW' +  + +!^R View Two Windows:! !^R Show two windows but stay in first.! + 1, M(M.M ^R_Two_Windows) + +!^R Two Windows:! !^R Show two windows and select window two. +An argument > 1 means give window 2 the same buffer as in Window 1. +A pre-comma argument means keep the cursor in window 1.! + + 0FO..QWindow_2_Size"N + :I*A2W Already_Two_Windows FS ERR' + fs rgetty"e + :I*TTY You_are_on_a_printing_terminalFS ERR' + MMM_&_Check_Top_Levelwindows + [Previous_Buffer !* Don't set Previous Buffer to buffer of window we leave.! + QBuffer_Name M.V Window_1_Buffer + Q..O M.V Other_Window_Buffer + FS WINDOW M.V Window_1_Window + . M.V Window_1_Pointer + FSLINES M.VDefault_Size + FS LINESF"E + FS HEIGHT-(FS ECHO LINES)-1 ' M.V Total_Size + 0FO..Q Window_2_Buffer"E !* If never have had window 2 as yet,! + QTotal_Size/2 M.V Window_1_Size !* Make window 2 hold same buffer as window 1,! + 0FO..Q Tags_Find_File"N o Same' + -1"N o Same' + "N :I*W2 m(m.m &_Create_Buffer)' !* or make it hold W2.! + :I*W2 M.V Window_2_Buffer o W2' + -1"N + !Same! + QBuffer_Name M.V Window_2_Buffer + !W2! + . M.V Window_2_Pointer !* Arg => Window 2 gets same buffer as window 1.! + FS Window M.V Window_2_Window' + QWindow_1_Size[0 + QTotal_Size-1-Q0:"G !* If old window 1 size is unreasonable, fix it up.! + QTotal_Size/2U0 Q0UWindow_1_Size' + 1F[NOQUIT + QTotal_Size-1-Q0 M.V Window_2_Size + FS REFRESHM.V Window_1_Refresh + M.M &_Multi-window_Refresh FS REFRESH + "N Q0 FS LINESW + Q:.B(QWindow_2_Buffer M(M.M &_Find_Buffer)+4!*bufbuf!) M.V Other_Window_Buffer + F]NOQUIT + M(FS REFRESH)W ' !* If cursor should stay in top window, display bottom one.! + Q0 FS TOP LINE !* Else, draw the line of dots, and switch into bottom! + :FT FS WIDTH/10 0U..H !* window, causing it to be displayed.! + -1FS TYPEOUT + 0FS TOP LINE + F]NOQUIT + :M(M.M ^R_Other_Window) + +!^R One Window:! !^R Display only one window. +Normally, we display what used to be in the top window, +but a numeric argument says to display what was in the bottom one.! + + 0FO..QWindow_2_Size"E + :I*O1B Only_One_Window FS ERR' + MMM_&_Check_Top_Levelwindows + [Previous_Buffer !* Don't set Previous Buffer to buffer of window we leave.! + FS TOP LIN"N !* If we're in window 2 now,! + M(M.M^R_Other_Window)' !* switch to window 1.! + 0UWindow_2_Size !* Put us officially in one window mode.! + 0FS Top Line + QDefault_Size FS LINES + QWindow_1_Refresh FS REFRESH + FF"N + :M(M.M ^R_Other_Window)' !* With arg, stay in what used to be window 2.! +  + +!& Multi-window Refresh:! !S Redisplay the screen when there are two windows.! + + QWindow_1_RefreshF"N[1 M(Q1(]1))' !* Execute the global FS REFRESH if any.! + FS QP PTR + 0F[REFRESH + .[1 FN q1j [1 [2 + FS TOP LINE"N !* Temporarily TECO-select the other window! + QWindow_1_SizeF[LINES 0F[TOP LINE + :I2 1' + "# QWindow_2_SizeF[LINES QWindow_1_Size+1F[TOP LINE + :I2 2' + QWindow_2_WindowF[WINDOW !* but don't take the time for an EMACS buffer switch.! + QWindow_2_Point:J + QOther_Window_Buffer[..O + -1F[D FORCE !* Don't abort this display due to typeahead.! + 0U..H @V !* Now redisplay that window.! + 0FS LINES !* Now redisplay the line of stars across the middle.! + QWindow_1_SizeFS TOP LIN + :FT FS WIDTH/10 + -FSTYPEOUTW 0U..H + QPFS QP UNWIND W + +!* Note that we fall off the end, with all qregs popped by the FS QP UNWIND.! +!* This is so that other things can be consed onto the end of FS REFRESH.! + +!^R Grow Window:! !^R Make this window (or minibuffer) use more lines. +Argument is number of extra lines (can be negative).! + Q..F-Q.F"N FS LINES"E FG 0' !* If not at top level, try to extend minibuffer.! + !* Complain if uses whole screen.! + FS LINES+FS LINES + M(FS REFRESH) W' + 0FO..QWindow_2_Size"E !* Else if only one window, can't grow it.! + :I*O1B Only_One_Window FS ERR' + [1 FS TOP LIN[0 + Q0"E -Q1U1' !* Q1 gets # lines window 2 is growing by.! + QWindow_1_Size-Q1-1"L O LOSE' + QWindow_2_Size+Q1 F"G UWindow_2_Size' + "# !LOSE! + :I*Windows_need_at_least_one_line FSERR' + QWindow_1_Size-Q1 UWindow_1_Size !* Adjust both sizes! + Q0"E + QOther_Window_Buffer[..O !* if in window 1, temporarily teco-select window 2! + QWindow_2_Window F[Window !* but don't do the EMACS buffer switch.! + .[P FN QPJ + QWindow_2_Point:J' + .( 1:< FS WINDOW+BJ !* Adjust w2's FS WINDOW for lines! + -Q1F"G :' "# @' ,0FM !* it is gaining or losing at the top.! + .-BFS WINDOW>W )J + Q0"E FS WINDOW UWindow_2_Window + -4 FS QP UNWIND' !* pop back to actual current window.! + Q0"E FS LINES+ FS LINES' + "# FS TOP LINE- FS TOP LINE !* Also adjust TECO window settings.! + FS LINES+ FS LINES' + :M(FS REFRESH) + +!^R Scroll Other Window:! !^R Scroll other window up several lines. +Specify the number as a numeric argument, negative for down. +The default is a whole screenful up. Just Meta-Minus as argument +means scroll a whole screenful down.! + + 0FO..QWindow_2_Size"E + :I*O1B Only_One_Window FS ERR' + .[1 FN q1j [1 [2 + QOther_Window_Buffer[..O + FS TOP LINE"N !* Now TECO-select the other window,! + QWindow_1_SizeF[LINES 0F[TOP LINE + :I2 1' + "# QWindow_2_SizeF[LINES QWindow_1_Size+1F[TOP LINE + :I2 2' + QWindow_2_WindowF[WINDOW !* but don't take the time for an EMACS buffer switch.! + QWindow_2_Point:J + -1F[DFORCE !* Don't stop this display for type-ahead.! + FS ^R ARGP-5"E !* Handle just Meta-minus as argument.! + @M(M.M ^R_Previous_Screen)' + "# F@M(M.M ^R_Next_Screen)' + 0@V + .UWindow_2_Point + FS WINDOW UWindow_2_Window +  + +!^R Visit in Other Window:! !^R Find buffer, tag or file in other window. +Follow this command by B or C-B and a buffer name, +F or C-F and a file name, or T or . and a tag name. +We find the buffer, tag or file in the other window, +creating the other window if necessary.! + + 0fo..Q Window_2_Size"e !* If not in 2 window mode, enter it.! + 2m(m.m ^R_Two_Windows)' + "# 2m(m.m ^R_Other_Window)' !* Else go to other window.! + 1fstypeoutw m.i fi:fc[1 !* Make ^X4 echo if we pause, but prevent redisplay.! + -1fstypeout !* Make ? now not print on same line as dashes.! + q1f*B"g :m(m.m Select_Buffer)' + q1f*F"g :m(m.m Find_File)' + q1f*T."g :m(m.m ^R_Find_Tag)' + :fg 0 diff --git a/src/emacs1/wrdlst.196 b/src/emacs1/wrdlst.196 new file mode 100755 index 0000000000000000000000000000000000000000..d81fa5458143885b8607feacdbce8533649f413d GIT binary patch literal 18151 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