.#*ü" 32 ' CalDays ) CalMonths , CalStartWeek ) CalPrompt+,*ü" 34 & months+ & months°) CalMonths†/ calendar_months,*ü" 35 $ days+ $ days°' CalDays†- calendar_days,*ü" 36 # day+ # day°, CalStartWeek†3 calendar_start_week,*ü" 37 & prompt+ & prompt°) Cal Prompt†/ calendar_promptýýü" 42# Jan# Feb# Mar# Apr# May# Jun# Jul# Aug# Sep# Oct# Nov# Decàþ / calendar_monthsýü" 444 S M Tu W Th F Sþ - calendar_daysýü" 46! 0þ 3 calendar_start_weekýü" 48+ Month Year:þ / calendar_prompt,*ü" 51 $ year +ü" 53 $ year! 4EN $ year# 100ECü" 54 $ year# 400ENDwü" 51…/ cal_leap_year_p,*ü" 58 % month # day $ year+*ü" 60 ! d+ü" 61" 31 % month! 1:; # day9°! dü" 62 % month! 2?.ü" 64 ! d % month! 4;" 239" 10<:°! dýü" 65 $ yearþ / cal_leap_year_p.·! d/c/c ü" 67 ! dwü" 58…. cal_day_number,*ü" 71 % month # day $ year+*ü" 73 ! c % delta ! n ! a ! b+ýü" 75 % month # day $ yearþ . cal_day_number°! nü" 76¹$ yearü" 78 ! n $ year9 $ year! 4<9°! aü" 79 $ year# 100<! 3;°! c! 0°! bü" 80 ! c! 4E.! 1°! b/cü" 82 ! a ! b ! c! 4<9: , CalStartWeek:! 7Ewü" 71…/ cal_day_of_week,*ü" 86 & indent % month $ year # day ) highlight+*ü" 88 * month_name % first " nm " ny # max ! i $ istr+ýü" 91 % month! 1 $ yearþ / cal_day_of_week°% firstü" 92 % month! 19°" nmü" 93 $ yea r°" nyü" 94 " nm" 13A.ü" 95" 31°# max/.ýü" 97 " nm! 1 " nyþ . cal_day_numberý % month! 1 $ yearþ . cal_day_number:°# max/dü" 99·& indentü# 100 # bobýü# 103 % month! 1: ) CalMonths!°* month_nameýü# 104 & indentý ' CalDaysþ & strlený * month_nameþ & st rlen:! 5:! 2<9þ + goto_columnýü# 105 * month_nameþ & insert 3 insert_single_spaceýý $ yearþ & stringþ & insertü# 106 & down_1. ' newline/býü# 109 & indentþ + goto_columnýü# 110 ' CalDaysþ & insertü# 111 & down_1. ' newline/býü# 114 % first! 3; & indent 9þ + goto_column.ü# 115! 1°! i/. ! i # max>/.·! i/.ü# 117 % first! 7A.ü# 119 & down_1.ü# 120 # eol ' newline/býü# 122 & indentþ + goto_columnü# 123! 0°% first/cü# 127 # day ! iA ) highlightC.ü# 129 # day" 10=.ýü# 130# * þ & insert/.ýü# 132# ** þ & insert/d/.ýü# 134$ %2d ! iþ ' vinsert/dü# 135·% first/gü" 86…. cal_make_month,*ü# 142 ! t ! n ! m & months % month * month_name # day $ year+ü# 144 $ time°! týü# 145 ! t! 1" 32þ / extract_element°* month_nameü# 148O Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec°& months.ü# 150! 0°! m/. ! m" 12=/.·! m/.ýü# 152 & months ! m" 32þ / extract_element°% monthýü# 153 * month_name % monthþ & strcmp.ü# 154 ! m! 19°% monthv/b/gýü# 159 ! t! 2" 32þ / extract_element°# dayü# 161! 0°! nýü# 164 # dayþ & strlen! 0A.ýü# 166 ! t! 3" 32þ / extract_element°# dayü# 167! 1°! n/cýü# 169 ! t! 4 ! n9" 32þ / extract_element°$ yearýü# 171 $ yearþ ' integer % monthýý # day! 0þ + strtrim_begþ ' integerwü# 140…, cal_get_date,*ü# 175 * month_name+*ü# 177 ! m+ýü# 178 * month_nameþ & strlow°* month_nameýü# 180 * month_nameý + String_Type}& strlow ) CalMonthsþ ) array_mapAþ % where°! mýü# 181 ! mþ & length.ýü# 182! 0 ! m!! 19w/cýü# 185 * month_nameþ ' integerwü# 175…1 cal_convert_month,*ü# 191 ! t % month $ year & nlines & wlines $ obuf ' default+*ü# 192 ( this_day * this_month ) this_year+ýü# 1942 calendar_mode_hookþ . run_mode_hooksü# 196 ' whatbuf°$ obufü# 200 , cal_get_date°( this_day°* this_month°) this_yearýü# 201% %s %dý * this_month! 1: ) CalMonths! ) this_yearþ ' sprintf°' defaultýýü# 203 ) CalPrompt ' default + Null_Stringþ ) read_miniþ ' strtrim°! týýü# 205 ! t! 0" 32þ / extract_elementþ 1 cal_convert_month°% monthýýü# 206 ! t! 1" 32þ / extract_elementþ ' integer°$ yearýü# 208* *calendar*þ ' p op2bufý! 0þ , set_readonly , erase_bufferü# 212¹% month % month! 0A." 12°% month¹$ year/cýü# 213! 0 % month $ year ( this_dayü# 214 % month * this_monthA $ year ) this_yearACþü# 213 . cal_make_monthü# 216·% month % month" 13A.! 1°% month·$ year/cýü# 217" 25 % month $ year ( this_dayü# 218 % month * this_monthA $ year ) this_yearACþü# 217 . cal_make_monthü# 220·% month % month" 13A.! 1°% month·$ year/cýü# 221" 50 % month $ year ( this_dayü# 222 % month * this_monthA $ year ) this_yearACþü# 221 . cal_make_monthü# 226 ( nwindows! 2A.ü# 228 # eobý$$ \n þ + bskip_charsü# 229 ) what_lineý# 114þ + window_info:°& nlinesü# 231 & nlines! 0?.ü# 233 & nlines.ý. enlarge_windowþ $ call/i/.ýü# 237, other_windowþ $ callü# 238 & nlinesQ.ý. enlarge_window þ $ call/iýü# 239, other_windowþ $ call/dü# 241 # bob/cýü# 244! 1þ , set_readonlyý! 0þ 8 set_buffer_modified_flagü# 245 # bobý $ obufþ ' pop2bufýü# 248 $ timeþ ' messageü# 189†( calendar