From 4826035054c9b1dd2e3b52c608c14fc2eb04a8c3 Mon Sep 17 00:00:00 2001 From: rmkaplan <69548581+rmkaplan@users.noreply.github.com> Date: Fri, 7 Jul 2023 12:18:46 -0700 Subject: [PATCH] CALENDAR, AOFD: Calendar had a Y2K problem, AOFD did not allow string-streams to reopen (#1204) * CALENDAR, AOFD: Calendar had a Y2K problem, AOFD did not allow string-streams to reopen There still may be some Y2K issues, I fixed the obvious ones, including how it interacted with Tedit * try recompiling --------- Co-authored-by: Larry Masinter --- lispusers/CALENDAR | 86 ++++++++++++++++++++-------------------- lispusers/CALENDAR.LCOM | Bin 66199 -> 66091 bytes sources/AOFD | 40 ++++++++++--------- sources/AOFD.LCOM | Bin 13062 -> 14110 bytes 4 files changed, 63 insertions(+), 63 deletions(-) diff --git a/lispusers/CALENDAR b/lispusers/CALENDAR index be6b68b6..1ecaa0ce 100644 --- a/lispusers/CALENDAR +++ b/lispusers/CALENDAR @@ -1,11 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 1-Feb-2022 17:14:32" {DSK}kaplan>Local>medley3.5>my-medley>lispusers>CALENDAR.;2 173369 +(FILECREATED " 5-May-2023 22:14:14" {WMEDLEY}CALENDAR.;4 173398 - :CHANGES-TO (FNS CALTEDITSTRING) + :EDIT-BY rmk - :PREVIOUS-DATE "21-Aug-90 09:16:22" -{DSK}kaplan>Local>medley3.5>my-medley>lispusers>CALENDAR.;1) + :CHANGES-TO (FNS PACKDATE CALTEDITSTRING) + + :PREVIOUS-DATE " 1-Feb-2022 17:14:32" {WMEDLEY}CALENDAR.;2) (* ; " @@ -1118,7 +1119,8 @@ Copyright (c) 1985-1990 by Xerox Corporation. 'Abort]) (CALTEDITSTRING - [LAMBDA (STRING M D YR) (* ; "Edited 1-Feb-2022 17:13 by rmk") + [LAMBDA (STRING M D YR) (* ; "Edited 5-May-2023 21:56 by rmk") + (* ; "Edited 1-Feb-2022 17:13 by rmk") (* ; "Edited 14-Oct-88 12:48 by MJD") (* T.Bigham "12-Nov-84 11:03") @@ -1165,7 +1167,7 @@ Copyright (c) 1985-1990 by Xerox Corporation. (CHARACTER 13) "Message: >>Any text<<"))) NIL NIL NIL '(QUITFN T] - (TEDIT.SETSEL STREAM 24 12 NIL T) + (TEDIT.NEXT STREAM) (SPAWN.MOUSE) [SETQ RESULT (TEDIT STREAM CALTEDITWINDOW T '(QUITFN T] (IF (EQ RESULT 'Abort) @@ -1897,26 +1899,22 @@ Copyright (c) 1985-1990 by Xerox Corporation. W H]) (PACKDATE - [LAMBDA (MTIME M D YR) (* MJD "15-May-87 09:38") - - (* Takes a time, M, D, and YR, and packs them into a formatted date which is - returned.) - - (* If MTIME = 0, then this is an untimed rem., so store NIL in the time field.) + [LAMBDA (MTIME M D YR) (* ; "Edited 5-May-2023 22:10 by rmk") + (* MJD "15-May-87 09:38") + + (* Takes a time, M, D, and YR, and packs them into a formatted date which is + returned.) + + (* If MTIME = 0, then this is an untimed rem., so store NIL in the time field.) (CONCAT (if (IGEQ D 10) then D else (CONCAT " " D)) "-" (MONTHABBR M) - "-" - (if (IGREATERP YR 1999) - then YR - else (IDIFFERENCE YR 1900)) - " " - (if (EQ MTIME 0) - then NIL - else MTIME]) + "-" YR " " (if (EQ MTIME 0) + then NIL + else MTIME]) (PARSETIME [LAMBDA (TSTRING) (* MJD "22-Oct-85 12:06") @@ -3044,28 +3042,28 @@ Copyright (c) 1985-1990 by Xerox Corporation. FREEMENU TABLEBROWSER) (PUTPROPS CALENDAR COPYRIGHT ("Xerox Corporation" 1985 1986 1987 1988 1989 1990)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (8660 168249 (CALADDEVENT 8670 . 15774) (CALCREATEREM 15776 . 18369) (CALDELETEREM 18371 - . 21281) (CALDISPEVENT 21283 . 29466) (CALDOOPTIONS 29468 . 31251) (CALENDAR 31253 . 34327) ( -CALENDARWATCHER 34329 . 34606) (CALEXTENDSEL 34608 . 36556) (CALLOADFILE 36558 . 46400) (CALMAKEKEY -46402 . 46603) (CALMONTHBEF 46605 . 47698) (CALMONTHICONFN 47700 . 48207) (CALMONTHRBF 48209 . 49001) -(CALOPTIONMENU 49003 . 51258) (CALPEEKNEWMAIL 51260 . 54451) (CALPRINTREM 54453 . 56071) (CALREMDEF -56073 . 56314) (CALTBCLOSEFN 56316 . 56718) (CALTBCOPYFN 56720 . 59088) (CALTBNULLFN 59090 . 59316) ( -CALTBSELECTEDFN 59318 . 59715) (CALTEDITEXIT 59717 . 60010) (CALTEDITSTRING 60012 . 63568) ( -CALUPDATEFILE 63570 . 70525) (CALUPDATEINIT 70527 . 73896) (CALYEARICONFN 73898 . 74381) ( -CALYEARINRANGE 74383 . 74657) (CIRCLETODAY 74659 . 78136) (CLEARDAY 78138 . 79661) (CLOSEMONTH 79663 - . 80232) (DAYABBR 80234 . 80496) (DAYNAME 80498 . 80691) (DAYOF 80693 . 81725) (DAYPLUS 81727 . 82024 -) (DAYSIN 82026 . 82858) (DERIVENEWDATE 82860 . 86599) (DOREMINDER 86601 . 90935) (FMNWAYITEM 90937 . -91338) (GETREMDEF 91340 . 91652) (INVERTGROUP 91654 . 91922) (LISPDATEDAY 91924 . 92202) ( -LISPDATEMONTH 92204 . 92352) (LISPDATEYEAR 92354 . 92718) (MDMENUITEMREGION 92720 . 93184) (MENUITEM -93186 . 93377) (MENUREGIONITEM 93379 . 93747) (MONTHABBR 93749 . 93926) (MONTHNAME 93928 . 94167) ( -MONTHNUM 94169 . 94375) (MONTHOFDAYPLUS 94377 . 94605) (MONTHPLUS 94607 . 94912) (MONTHYEARPLUS 94914 - . 95202) (NEWPARSETIME 95204 . 100855) (NEXTMDISPLAYREGION 100857 . 103428) (PACKDATE 103430 . 104145 -) (PARSETIME 104147 . 105274) (PICKFONTSIZE 105276 . 105930) (POM 105932 . 108586) (POMDAYS 108588 . -109929) (PRINTMONTH 109931 . 113797) (REMINDERSOF 113799 . 114717) (REMINDERTIME 114719 . 114961) ( -REMINDERTIMELT 114963 . 115662) (REMSINMONTH 115664 . 115853) (REPAINTMONTH 115855 . 116257) ( -REPAINTYEAR 116259 . 116589) (SAMEDAYAS 116591 . 116994) (SAMEMONTHAS 116996 . 117281) (SCALEBITMAP -117283 . 126335) (SHOWDAY 126337 . 134583) (SHOWMONTH 134585 . 154663) (SHOWMONTHSMALL 154665 . 155801 -) (SHOWMOON 155803 . 158742) (SHOWREMSINDAY 158744 . 160234) (SHOWREMSINMONTH 160236 . 162686) ( -SHOWYEAR 162688 . 166202) (SHRINKMONTH 166204 . 166630) (SHRINKYEAR 166632 . 167161) (TIMEDREMP 167163 - . 167287) (TPLUS 167289 . 167823) (WEEKOF 167825 . 168079) (YNCONVERT 168081 . 168247))))) + (FILEMAP (NIL (8620 168278 (CALADDEVENT 8630 . 15734) (CALCREATEREM 15736 . 18329) (CALDELETEREM 18331 + . 21241) (CALDISPEVENT 21243 . 29426) (CALDOOPTIONS 29428 . 31211) (CALENDAR 31213 . 34287) ( +CALENDARWATCHER 34289 . 34566) (CALEXTENDSEL 34568 . 36516) (CALLOADFILE 36518 . 46360) (CALMAKEKEY +46362 . 46563) (CALMONTHBEF 46565 . 47658) (CALMONTHICONFN 47660 . 48167) (CALMONTHRBF 48169 . 48961) +(CALOPTIONMENU 48963 . 51218) (CALPEEKNEWMAIL 51220 . 54411) (CALPRINTREM 54413 . 56031) (CALREMDEF +56033 . 56274) (CALTBCLOSEFN 56276 . 56678) (CALTBCOPYFN 56680 . 59048) (CALTBNULLFN 59050 . 59276) ( +CALTBSELECTEDFN 59278 . 59675) (CALTEDITEXIT 59677 . 59970) (CALTEDITSTRING 59972 . 63623) ( +CALUPDATEFILE 63625 . 70580) (CALUPDATEINIT 70582 . 73951) (CALYEARICONFN 73953 . 74436) ( +CALYEARINRANGE 74438 . 74712) (CIRCLETODAY 74714 . 78191) (CLEARDAY 78193 . 79716) (CLOSEMONTH 79718 + . 80287) (DAYABBR 80289 . 80551) (DAYNAME 80553 . 80746) (DAYOF 80748 . 81780) (DAYPLUS 81782 . 82079 +) (DAYSIN 82081 . 82913) (DERIVENEWDATE 82915 . 86654) (DOREMINDER 86656 . 90990) (FMNWAYITEM 90992 . +91393) (GETREMDEF 91395 . 91707) (INVERTGROUP 91709 . 91977) (LISPDATEDAY 91979 . 92257) ( +LISPDATEMONTH 92259 . 92407) (LISPDATEYEAR 92409 . 92773) (MDMENUITEMREGION 92775 . 93239) (MENUITEM +93241 . 93432) (MENUREGIONITEM 93434 . 93802) (MONTHABBR 93804 . 93981) (MONTHNAME 93983 . 94222) ( +MONTHNUM 94224 . 94430) (MONTHOFDAYPLUS 94432 . 94660) (MONTHPLUS 94662 . 94967) (MONTHYEARPLUS 94969 + . 95257) (NEWPARSETIME 95259 . 100910) (NEXTMDISPLAYREGION 100912 . 103483) (PACKDATE 103485 . 104174 +) (PARSETIME 104176 . 105303) (PICKFONTSIZE 105305 . 105959) (POM 105961 . 108615) (POMDAYS 108617 . +109958) (PRINTMONTH 109960 . 113826) (REMINDERSOF 113828 . 114746) (REMINDERTIME 114748 . 114990) ( +REMINDERTIMELT 114992 . 115691) (REMSINMONTH 115693 . 115882) (REPAINTMONTH 115884 . 116286) ( +REPAINTYEAR 116288 . 116618) (SAMEDAYAS 116620 . 117023) (SAMEMONTHAS 117025 . 117310) (SCALEBITMAP +117312 . 126364) (SHOWDAY 126366 . 134612) (SHOWMONTH 134614 . 154692) (SHOWMONTHSMALL 154694 . 155830 +) (SHOWMOON 155832 . 158771) (SHOWREMSINDAY 158773 . 160263) (SHOWREMSINMONTH 160265 . 162715) ( +SHOWYEAR 162717 . 166231) (SHRINKMONTH 166233 . 166659) (SHRINKYEAR 166661 . 167190) (TIMEDREMP 167192 + . 167316) (TPLUS 167318 . 167852) (WEEKOF 167854 . 168108) (YNCONVERT 168110 . 168276))))) STOP diff --git a/lispusers/CALENDAR.LCOM b/lispusers/CALENDAR.LCOM index 8ec96be6fb20a2c387a5ac2296a0a1a72369c806..21c21fcc245c523e19e8867163000ecfb6828886 100644 GIT binary patch delta 481 zcmaiwF-yZh6o6YP2ob@}L6PTyn1Bh*rL{Fm@p`%1V3JCDVmqo0SZ!@d6cm*%#>GX+ z;4g4;th>9v#@Wdeq;wEHj`w&6?|a|7r#SO+n|Wvq@~XRksp2d)0Ao|niHkr+hrMpU z-3eOII|T$+doHsa*1Xy1w4?rc6ogTU5{G#f@wN4w0uq98kZ$Hy%{)eM5C$VsaM2H= zB@=cC-L?p4&=%-HW!G_FyjjyU1g-ruG5c3)0V$GPu^mQzCMcHB8y`K|;U8zv3x=^) zl)+?{&DC-f!tM!}v`V}!R#$lqWU1oSN4CjpdNHBt*@Zv90uNUvVt>kG4GwiK1l{2~ zf6jsp1~h$CC+B+_~Y^IXnOLym`TZb47BD^!T}e- it$Dmk%4J{J|2!*_XFHM%M)DcYrKLn2%n$KhaQy{H<$`?x delta 476 zcmZ48!ZN*;WkST{1&pG08cNCexdoXysVNHic?wDjT-7eY-nBNN#i>QbcG-yqIf;38 zKKaRsId-|JDLJW?#(Ji9xs|#Qj@{(_jAHc)O2&q|UWs|SMg~Sk3P#3O#wJ##rb-G) zMX4~exfD_>3W|zVtrVOceL`GaJVSy*f;|1)6*7T#x`q1qC?Ff5r>Cc+kdjyebQ6Zr zrd9?9N}606Zk|4_&Oxq@A+C%rljkx@>X7JcQAsWZLvv$eGfM?4XAeg|ch_Lu5Pt;? zH^1P?b&QJPMuxhMrRlns1_}n2R)%I)Mnc>Users>Larry>home>il>MEDLEY>SOURCES>AOFD.;2 36068 +(FILECREATED "17-May-2023 08:29:55" {DSK}larry>il>medley>sources>AOFD.;5 36263 :EDIT-BY "lmm" - :CHANGES-TO (VARS AOFDCOMS) - (FNS CLOSEF) - - :PREVIOUS-DATE "29-Apr-2023 05:38:34" -{DSK}c>Users>Larry>home>il>MEDLEY>SOURCES>AOFD.;1) + :PREVIOUS-DATE "17-May-2023 08:05:56" {DSK}larry>il>medley>sources>AOFD.;4) (PRETTYCOMPRINT AOFDCOMS) @@ -475,8 +471,14 @@ (fetch EOFFSET of STREAM]) (\BASEBYTES.OPENFN - [LAMBDA (NAME ACCESS RECOG OTHERINFO FDEV) (* ; "Edited 17-Jan-87 16:08 by bvm:") - (if (fetch FULLFILENAME of NAME) + [LAMBDA (NAME ACCESS RECOG OTHERINFO FDEV) (* ; "Edited 8-May-2023 14:05 by rmk") + (* ; "Edited 17-Jan-87 16:08 by bvm:") + (if (STREAMP NAME) + then (CL:UNLESS (\IOMODEP NAME ACCESS T) + (\SETACCESS NAME ACCESS)) + (\SETFILEPTR NAME 0) + NAME + elseif (fetch FULLFILENAME of NAME) then (OPENSTRINGSTREAM NAME ACCESS) else (\MAKEBASEBYTESTREAM (fetch CBUFPTR of NAME) (fetch BIASOFFST of NAME) @@ -759,15 +761,15 @@ (ADDTOVAR LAMA WHENCLOSE) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (2464 3583 (\ADD-OPEN-STREAM 2474 . 2755) (\GENERIC-UNREGISTER-STREAM 2757 . 3581)) ( -3624 10688 (CLOSEALL 3634 . 4112) (CLOSEF 4114 . 5328) (EOFCLOSEF 5330 . 5630) (INPUT 5632 . 6402) ( -OPENP 6404 . 6807) (OUTPUT 6809 . 7581) (POSITION 7583 . 8391) (RANDACCESSP 8393 . 8783) (\IOMODEP -8785 . 9414) (WHENCLOSE 9416 . 10686)) (10689 10811 (STREAMADDPROP 10699 . 10809)) (11769 24326 ( -\BASEBYTES.IO.INIT 11779 . 14979) (\MAKEBASEBYTESTREAM 14981 . 17909) (\MBS.OUTCHARFN 17911 . 18311) ( -\BASEBYTES.NAME.FROM.STREAM 18313 . 18772) (\BASEBYTES.BOUT 18774 . 19528) (\BASEBYTES.SETFILEPTR -19530 . 20151) (\BASEBYTES.READP 20153 . 20797) (\BASEBYTES.BIN 20799 . 21306) (\BASEBYTES.PEEKBIN -21308 . 22138) (\BASEBYTES.TRUNCATEFN 22140 . 22648) (\BASEBYTES.OPENFN 22650 . 23148) ( -\BASEBYTES.BLOCKIO 23150 . 24324)) (24449 27753 (OPENSTRINGSTREAM 24459 . 26168) (MAKE-STRING-FORMAT -26170 . 27751)) (28025 32333 (\STRINGSTREAM.INIT 28035 . 32331)) (32410 35110 (GETSTREAM 32420 . 32651 -) (\CLEAROFD 32653 . 32946) (\GETSTREAM 32948 . 35108))))) + (FILEMAP (NIL (2363 3482 (\ADD-OPEN-STREAM 2373 . 2654) (\GENERIC-UNREGISTER-STREAM 2656 . 3480)) ( +3523 10587 (CLOSEALL 3533 . 4011) (CLOSEF 4013 . 5227) (EOFCLOSEF 5229 . 5529) (INPUT 5531 . 6301) ( +OPENP 6303 . 6706) (OUTPUT 6708 . 7480) (POSITION 7482 . 8290) (RANDACCESSP 8292 . 8682) (\IOMODEP +8684 . 9313) (WHENCLOSE 9315 . 10585)) (10588 10710 (STREAMADDPROP 10598 . 10708)) (11668 24521 ( +\BASEBYTES.IO.INIT 11678 . 14878) (\MAKEBASEBYTESTREAM 14880 . 17808) (\MBS.OUTCHARFN 17810 . 18210) ( +\BASEBYTES.NAME.FROM.STREAM 18212 . 18671) (\BASEBYTES.BOUT 18673 . 19427) (\BASEBYTES.SETFILEPTR +19429 . 20050) (\BASEBYTES.READP 20052 . 20696) (\BASEBYTES.BIN 20698 . 21205) (\BASEBYTES.PEEKBIN +21207 . 22037) (\BASEBYTES.TRUNCATEFN 22039 . 22547) (\BASEBYTES.OPENFN 22549 . 23343) ( +\BASEBYTES.BLOCKIO 23345 . 24519)) (24644 27948 (OPENSTRINGSTREAM 24654 . 26363) (MAKE-STRING-FORMAT +26365 . 27946)) (28220 32528 (\STRINGSTREAM.INIT 28230 . 32526)) (32605 35305 (GETSTREAM 32615 . 32846 +) (\CLEAROFD 32848 . 33141) (\GETSTREAM 33143 . 35303))))) STOP diff --git a/sources/AOFD.LCOM b/sources/AOFD.LCOM index 6e5f1abba502132f52d6255eabb54675dc6604b1..52305183724b8959533289159ef751477a62e2f9 100644 GIT binary patch delta 3950 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 v8^|Rd&Jw0NAjGFLl^haN&pE