Trailing-Edge
-
PDP-10 Archives
-
mit_emacs_170_teco_1220
-
emacs/clock.emacs
There are no other files named clock.emacs in the archive.
!* -*- TECO -*- !
!* [toed.xkl.com]DXX:<EMACS>CLOCK.EMACS.1, 10-Apr-96 17:10:31, Edit by ALDERSON!
!* Reconstructed from sourceless library. Commented as well as possible !
!~Filename~:! !Time macros for EMACS!
CLOCK
!& Setup CLOCK Library:! !S Setup for showing time in mode line.
Runs Q$CLOCK Setup Hook$ if there one.
Updates display every minute, but you can change this by doing
<seconds>MM & Start Realtime Modeline Clock.!
0FO..QCLOCK_Setup_Hook[1
FQ1"GM1'
"#M.M&_Set_My_Mode_LinefsModeMacro
m(m.m&_Start_Realtime_Modeline_Clock)'
!& Get Current Time:! !S Returns Time as a string of exactly 7 chars.!
[0[1[2[3[4
fs date :fs fd convert u1 !* Convert current date to string!
12,14:g1u2 !* Get minutes portion!
9,11:g1u3 !* Get hours portion!
F=200"e !* On the hour? (Minutes = 00?)!
F=300"e:i*Midnite' !* Yes, special hour 00 or 12?!
F=312"e:i*Noon___''
3/12"e !* Two-digit hour?!
:i4am' !* Assume forenoon...!
"#(3-12):\u3 !* Convert from 24hr to 12hr clock!
fq3-1"e:i3_3' !* If only 1 hour digit, pad leading space!
:i4pm' !* Afternoon...!
F=3_0"e:i312' !* If before 1am or 1pm, say 12<mumble>!
"#F=300"e:i312''
0:g3-48"e !* If the leading character still = 0!
0:F3_' !* make it a space!
:i*3:24 !* and return our string.!
!& Start Realtime Modeline Clock:! !S Get the realtime clock interrupts going.
Optional numeric argument specifies seconds between update. Default is 60.!
F F -1"n
(30 * 60) FS Clk Int'
"#
30 * (F) FS Clk Int'
0 M.V Modeline_Full_Update_Time
M.M &_Insert_Correct_Time_in_Mode_Line fs CLK Macro
0
!& Insert Correct Time In Mode Line:! !S Updates modeline display of time.!
1,M.M&_Periodic_Action"n !* Perform any defined periodic action!
M(M.M&_Periodic_Action)'
qModeline_Full_Update_Time"e !* Toggle!
1uModeline_Full_Update_Time
0'
"#
0uModeline_Full_Update_Time'
f[ ins len
qEditor_Name[0
f~..J 0 -1 -FQ0 "N oSet'
FQ..J - (FQ0+8) "l oSet'
:i0 ..J
M(M.M&_Get_Current_Time)[1
FQEditor_Name +1 :F01
F=0 ..J "e 0'
q0u..J
FR
0
!Set!
m(fs mode macro)fr
0
!& Set My Mode Line:! !S Set the ..J Mode to display options and current time.
When setting the major mode, call this with a nonzero argument and the major
mode name as a string argument. It will change the mode and run the
<modename> Mode Hook variable, if there is one.!
-(FS QP PTR * 2) FS MODE CH !* Arrange to call FS Mode Macro$ if!
!* control returns to outer stack!
QEditor_Name[0 !* Save editor name and current mode name!
QMode[1
"N :I1 Q1UMode !* Get new major mode name, if any!
0FO..Q1_Mode_Hook[2 !* Look up mode hook!
Q2"NM2'' !* If there is one, run it!
0[.1 q..J[.2
<fq.2 @; 0:g.2 - [ :@; %.1
1,fq.2 :g.2 u.2>
F~.2 0 -1 -FQ0 "N 0'
F[BBind G0 I_
g(m(m.m&_get_current_time)*)I_
0FO..QEditor_Type[2
Q2"N G2 I_'
I( G1
QSubmodeU2 FQ2"G
I[2]'
QAuto_Fill_Mode"N
I_Fill'
QAuto_Save_Mode"N
I_Save'
"# QAuto_Save_Default"N
I_Save(off)''
FS^RREPLACE"NI_Ovwrt'
FSTYISINK"NI_Def'
MSet_Mode_Line_Hook + 0 U2
FQ2"G G2'
I)__
QBuffer_NameU2
QBuffer_FilenamesU1
Q1"N Q1 F[ D FILE
F~ (FS D FN1 :F6) 2"E 0 U2''
Q2"N I2:__'
FQ1"G G1
FS OS TECO"N !* If not on ITS!
FQ1 R FS HS NAME :F6 U2
FS OS TECO -1"E !* If *really* TENEX!
FQ2 F~2"E FQ 2D''
"# 4 F~ DSK:"E 4D !* If Tops-20!
FQ2 + 2 F~ <2>"E FQ2 + 2 D'''
ZJ FS D VERS"E -2D''
I_ QInhibit_Write"L I(RO)_''
ZJ Q.1< I]_ > J Q.1,[I
HX..J
0