P [0+8+FQ(+4)[1 0FO10F"G+Q1' +FQ()+4U1 FQ1"L0' ,Q1:M(Q1+4(]1]0)) !DIQ16GZ sj KX6A:0zR5bux:mA?IS05:+AH& Buffer CRL Lister& Kill COMPLT Library& Read Buffer Name Prep& Read Variable Name Prep& Setup COMPLT LibraryInsert BufferKill BufferKill VariableSelect BufferSet VariableView BufferView Variable~DIRECTORY~~DOC~ & Buffer CRL Lister~DOC~ & Kill COMPLT Library~DOC~ & Read Buffer Name Prep~DOC~ & Read Variable Name Prep~DOC~ & Setup COMPLT Library~DOC~ Insert Buffer~DOC~ Kill Buffer~DOC~ Kill Variable~DOC~ Select Buffer~DOC~ Set Variable~DOC~ View Buffer~DOC~ View Variable~DOC~ ~FILENAME~~FILENAME~~INVERT~QEMACS Version-162"L :I*COMPLT requires EMACS version 162 or above.:FG ' 0FO..QCOMPLT Setup Hook[0 FQ0"G:M0' 0FO..QOld C-X K"EQ:.x(K)m.vOld C-X K' m.mKill BufferU:.x(K) 0FO..QOld C-X B"EQ:.x(B)m.vOld C-X B' m.mSelect BufferU:.x(B) 0FO..QCOMPLT Kill Hook[0 FQ0"G:M0' 0FO..QOld C-X KF"NU:.x(K) MMKill VariableOld C-X K' 0FO..QOld C-X BF"NU:.x(B) MMKill VariableOld C-X B' [CRL List[CRL Prefix [CRL Name Type[CRL Name Lister FSQPPTR 5FSQVECTOR 2U:L(0) FQ.B/5[00[1 [2[3 QLUCRL List :I*UCRL Prefix :I*bufferUCRL Name Type m.m& Buffer CRL ListerUCRL Name Lister QPFSQPUNWINDFF&2"nBJ I Buffer Name Visited File Name  ' "#[1Q:.1(Q1)[0 Q:.1(Q1+1)U1 Q:.B(Q1+4)[X QX[..OFSMODIFIED(]..O)"EI ' "#I* ' G020-FQ0:F"Gw2',32I Q:.B(Q1+2)"E QX[..OFSZ(]..O)\I characters' "#G:.B(Q1+2)I ( Q:.B(Q1+9)\I)' I  ' MMM & Check Top Levelbuffers [40[3 FF&1"NU3' "#"E:F "G:i3'' Q3"E "Nu4' "#:i4Select Buffer' QPrevious Bufferu3 1,Q3M(M.M& Find Buffer)"LQ:.B(1)U3' m(m.m& Read Buffer Name Prep) 62.,m(m.m& Read Command Name)4 (3): U3 Q..H"NF'0U..H FQ3"L0' '' Q3[5 FQ3"EQPrevious BufferU3' 1,Q3M(M.M& Find Buffer)[1 Q1u4 Q1"L FQ3"L:I*No such bufferFSERR' FQ5"E0U10U4' "#Q3M(M.M& Create Buffer)U1'' QBuffer IndexU3 Q1-Q3"E0' 1F[Noquit 0FO..QBuffer Deselection Hook[5 Q5"NM5' Q.B[..OZJ0K]..O Q3,13F.B QBuffer FilenamesU:.B(Q3+2) QModeU:.B(Q3+3) Q:.B(Q1+6)FSWINDOWU:.B(Q3+6) Q:.B(Q1+5)F"EW'FSDFILEU:.B(Q3+5) Q:.B(Q1+2)UBuffer Filenames Q:.B(Q1+1)UBuffer Name Q:.B(Q1+3)UMode 0F[VARMAC Q:.B(Q1+10)UAuto Save Mode F]VARMAC Q1UBuffer Index Q:.B(Q3+1)UPrevious Buffer Q:.B(Q1+3)U3 Q1,13F.B 1FSMODECHANGE Q:.B(Q1+4)U..O 0FO..QBuffer Selection HookF"N[..N' Q:.B(Q1+5)"N' Q:.B(Q1+1)U4 FSOSTECO"EF64'"#Q4'FSDFN1 QDefault Major ModeU4 FQ4"GM(M.M4 Mode)' 0UAuto Save Count 0FO..QBuffer Creation HookU4 Q4"NM4' FF&1"N[1' "# m(m.m& Read Buffer Name Prep) 52.,f Kill Buffer: [1' FQ1"EMMM & Check Top Levelbuffers QBuffer NameU1' [2[3 Q1M(M.M& Find Buffer)U1 Q:.B(Q1+2)"N Q:.B(Q1+4)[..O FSMODIF"N Q:.B(Q1+12)"E Q:.B(Q1+1)U2 FSTYPEOUT"L@'FT Buffer 2 contains changes. Write them out FSTYPEOUT"L1'M(M.M& Yes or No)"N Q:.B(Q1+2)F[DFILE FSOSTECO"N0FSDVERS' 0[..FM(M.MWrite File)]..F F]DFILE''' ]..O' Q:.B(Q1)U2 Q1-QBuffer Index"E 0U:.B(Q1+10) :I*Killing current buffer; Select which other buffer,M(M.MSelect Buffer)' 1F[NOQUIT Q:.B(Q1+4)FSBKILL 10.F? Q.B[..OQ1*5JQ2*5D QBuffer Index-Q1F"G+Q1-Q2UBuffer Index' 0U..Hm(m.m& Read Buffer Name Prep) 72.,f Insert Buffer: [1 fq1"eqPrevious Bufferu1' Q1M(M.M& Find Buffer)[2 G:.B(Q2+4) .:FK(FKC)m(m.m& Read Buffer Name Prep) 72.,f View Buffer: [1 0[2 fq1"eqBuffer Nameu1' "#Q1M(M.M& Find Buffer)[2 Q:.B(Q2+4)[..O' [..J:I..JViewing Buffer 1  .[PFNQPJ:I*[..A q2"e:FFSWINDOW+BJ' "#q:.b(q2+6)+bjf[window' 1,M(M.MView File) FSREREAD"L' :FI-"E FIW FSRGETTY"E.UP.' FSWINDOW+BJ Q2"N.-BU:.B(Q2+6)' FSLINESF"EWFSHEIGHT-(FSECHOLINES+1)-(FSTOPLINE)'/2L.UP.' :I*variable[CRL Name Type Q..q[CRL List :I*[CRL Prefixm(m.m& Read Variable Name Prep) 12.,f Kill Variable: [0 :fo..q0[0 q0"l' q..q[..oq0*5j15d0m(m.m& Read Variable Name Prep) 12.,f View Variable: [0 m(m.mView Q-Register)0m(m.m& Read Variable Name Prep) 32.,F Set Variable: ( FF"E1,F Value: '"#'[1 )[0 :F "L@':FO..Q0:"G 0M.V0' Q1U00COMPLTProvide completion for buffer and variable names.S Install changes. Installs the new Select Buffer on C-X B and the new Kill Buffer on C-X K. The old functions connected to these keys are saved away in QOld C-X B and QOld C-X K. (If variable COMPLT Setup Hook is non-zero, this is macroed instead.) S Un-install changes. Runs variable COMPLT Kill Hook if it exists. Otherwise restores functions bound to C-X B and C-X K.xS Set up for reading buffer name with completion. Initializes the CRL variables (leaving them pushed on the stack).nS CRL Name Lister for & Read Buffer Name. Adds visited filename and modified bit to list of buffer names.C Select or create buffer with specified name. Can accept the buffer name as a string arg, or the buffer number as a numeric arg, or a string pointer as arg (when used as a subroutine). If there is a buffer with that name, it is selected. Otherwise, a buffer with that name is created and selected. When a new buffer is selected the first time, if Buffer Creation Hook is nonzero, it is run after the buffer is selected. A precomma arg is the prompt string to use. Uses & Read Command Name to read buffer name with completion. Null buffer name selects the default; method for entering a new buffer name depends on setting of QCRL Non-match Method. C Kill the buffer with specified name. Takes name as a string (suffix) argument, or reads it from terminal. (Uses & Read Command Name for completion: null name means the current buffer.) Alternatively, the name (as string pointer) or the buffer number may be given as a prefix argument. If the buffer has changes in it, we offer to write it out.C Insert contents of another buffer into existing text. Specify buffer name as string argument.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.wS Set up for reading variable name with completion. Sets up all the CRL variables (they are left pushed on stack).C Eliminates definition of specified variable.C Type out contents of variable. Simply reads a variable name, and then calls View Q-Register. Uses completion if the name is read from the terminal.oC 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. Completion is available for the variable name, with Space and Altmode. Abbreviations are not allowed unless you complete them; any nonexistent name creates a new variable.& Setup COMPLT Library & Kill COMPLT Library & Read Buffer Name Prep & Buffer CRL Lister Select Buffer Kill Buffer Insert Buffer View Buffer & Read Variable Name Prep Kill Variable View Variable Set Variable +8+fq(+4)[20[3 <%3,-q2f2u3q3&1@;q3"l0'> f[BBindq3-1*5,q3*5g2q:..o(0)+q2