!* -*-TECO-*-! !* MODE2.EMACS.3, 29-May-83 13:50:43, Edit by GERGELY! !* MODE2.EMACS, Designed and created by Raymond D. Holmes! !~Filename~:! !Add a second fancy mode line.! MODE2 !& Setup MODE2 Library:! !Define second mode line stuff.! FS OSTECO"N :I*DTLBCHX[0' "# :I*DTVBSFX[0' Q0M.C Mode_2_Options*_What_the_2nd_mode_line_contains._See_documentation_of_Mode_2_Macro. :I***_ M.CMode_2_Prefix*_String_that_starts_the_second_mode_line. !* [PJG] New option follows! :I*__ M.CMode_2_Field_Separator! *_String_separating_items_on_the_second_mode_line ! 1fsmodechange :I*X M.V ..J  !* Current Second Mode Line ! F[ B Bind 32 96 HFX* M.VDecontrolify_Dispatch F] B Bind !<0_=>_Second_Mode_Line_is_active.!  "E 0 FS LINES' "# FS HEIGHT -(FSTOPLIN)-(FS ECHO LINES) -2 FS LINES 1 FS MODE CHANGE'  0 FO..QSet_Mode_Line_Hook "E :I* M.VSet_Mode_Line_Hook' QSet_Mode_Line_Hook U0 :I*0(M(M.M&_Set_MODE2)W) USet_Mode_Line_Hook FS REFRESH U0 Q0 "E :I0' @:I*\0 0U..H 1FSMODECH \ FS REFRESH 0 FO..Q MODE2_Setup_Hook [0 fq0 "G :M0' @:I*\1 FS ECHO FLUSH :I*CMODE2_has_already_been_loaded FS ECHO DISPLAY 0 FS ECHO ACTIVE \ M.V MODE2_Setup_Hook 1 UMode_2 0 !Mode 2:! !C Toggles the display of the second mode line. When on, the second mode line is displayed according to the value of the option Mode 2 Options. Each character is interpreted in turn to insert the corresponding information into the mode line. The codes are: B -- Previous Buffer (default for Select Buffer) C -- Working Directory D -- Date F -- Current TAGS File Name R -- Range of column numbers (clobbers all else) S -- Last Search String T -- Time V -- EMACS Version Number[TECO Version Number] H -- Last FORK Handle (Twenex only) L -- Load Average (Twenex only) X -- Whatever is inserted by Set Mode 2 Hook ! FF"E QMode_2 "E 1 UMode_2' "# 0 UMode_2'' "# UMode_2' !& Set MODE2:! !S Computes the new second mode line.! QMode_2 "E 0' 1: !* [fHsu] same for 2nd modeline! @fn|fsInvMod"n 1:<0fsScrInv>'|!* [fHsu] clean up on exit! QMode_2_Options[0 [1 [2 [3 QMode_2_Field_Separator !* [PJG] Allow the user to! !* [PJG] define his own separator! QDecontrolify_Dispatch[4 [9 :I9-D94IQ..0+64I F[ B BIND GMode_2_Prefix FQ0 U2 0U1 !LOOP! Q2-Q1 "E B,ZF4 ZJ 0F"E -2D' HFX2 FQ2-(FS Width) "G 0,(FS Width) :G2 U2' F=..J2 "E 0' Q2 U..J FS HEIGHT-(FS ECHO LI)-2F[TOP LIN :FT2 -1fstypeout 0U..H 0' Q1,%1 :G0 U3 3 FBCDFHLRSTVX "L OLOOP' Q1 "N GA' O3 !* [PJG] Used the defined separator! !B! GPrevious_Buffer I: OLOOP !C! FS MS NAME:F6U3 G3 FS OSTECO"N F~(FS HS NAME:F6)3"E FKD IC<>'' "# I;' O LOOP !D! FS OSTECO"E FS DATEFS FDCONV -9D O LOOP' :I*002FO..Q Mode_2_Date_Format U3 3400000000.,fsdatefsfdconvert OLOOP !F! 0 FO..Q Tag_Table_Filenames F"N U3 G3 FKC FSHSNAME:F6 U3 FQ3 F~3 "E FQ3 D IT<>' ZJ <0A :F"D -. "E -D' 0;' W-D> .-5,. F~ .TAGS "E -5D' FSXUNAME:F6U3 -fq3F~3"E -FQ3D' !* [PJG] If tags are defined as! !* USER.TAGS with! !* USER the user name then set the default! ' "# -FQAF"L D'' !* [PJG] If nothing then no field! !* separator! OLOOP !H! 1:< G(M(M.M&_Get_Last_Handle)) >"N -fqa F"L D'' !* [PJG] On error! !* [PJG] get rid of the separator! OLOOP !L! 1:< G(FS LOAD AV) > OLOOP !R! HK FS Width/10+1 OLOOP !S! 34I QSearch_Default_Ring [..O .FS Word U3 ]..O FQ3 "L :I3' G3 34I OLOOP !T! FS OSTECO"E FS DATEFS FD CONV 8R-9D 8C O LOOP' :I*300FO..Q Mode_2_Time_Format U3 4003000000.,fsdatefsfdconvert -2FC OLOOP !V! IV F~(QEditor_Name)EMACS"N QEditor_Nameu3 0FO..Q3_Versionu3 Q3"N G3 45i'' GEMACS_Version 91I G(FSVERSION) 93I OLOOP !* add the TECO! !* version number! !X! 0 FO..Q Set_Mode_2_Hook "N MSet_Mode_2_Hook ' OLOOP !& Get Last Handle:! !S Get the last fork handle as a string.! Qforklist [1 FQ1 [2 0[3 0[4 [5 Qfrk "E :I*EXEC ' < Q3-Q2 ; Q3 :G1 -27 "E Q4,Q3 :G1 U5 FQ5"G Qfrk5 - Qfrk "E Q5 '' %3 U4 ' %3 > :I*  !Set Mode 2 Timeout:! !C Have Second Mode Line Updated at Arg Minute Intervals.! FF "E 1[0 ' "# [0' Q0*60*60 FS CLK INTERVAL @:I*\M(M.M&_Set_Mode2)w 0\ FS CLK MACRO 0 !Edit Mode 2 Options:! !C Enter MiniBuffer on Mode 2 Options. g(m.m ~DOC~ Mode 2)jk! QMode_2_Options [1 M(M.M&_Mini_Initialized):I*1_UMode_2_OptionsMode_2_Options 1 FS Mode Change W  !* / Local Modes: \ / MM Compile: 1: M(M.M^R Save File) M(M.MGenerate Library)MODE2MODE2 1:W \ / End: \ !