Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 35 additions & 27 deletions sources/EXTERNALFORMAT
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)

(FILECREATED "10-Oct-2022 18:10:56" 
{DSK}<cygdrive>c>Users>Larry>home>MEDLEY>SOURCES>EXTERNALFORMAT.;76 37395
(FILECREATED " 6-Dec-2023 23:57:52" {WMEDLEY}<sources>EXTERNALFORMAT.;82 37884

:CHANGES-TO (FNS SYSTEM-EXTERNALFORMAT)
:EDIT-BY rmk

:PREVIOUS-DATE "24-Jul-2022 14:56:07"
{DSK}<cygdrive>c>Users>Larry>home>MEDLEY>SOURCES>EXTERNALFORMAT.;75)
:CHANGES-TO (MACROS \CHECKEOLC)
(FNS \CHECKEOLC.CRLF)

:PREVIOUS-DATE "23-Oct-2023 17:07:12" {WMEDLEY}<sources>EXTERNALFORMAT.;79)


(PRETTYCOMPRINT EXTERNALFORMATCOMS)
Expand Down Expand Up @@ -519,9 +520,11 @@
FSTRING])

(\CHECKEOLC.CRLF
[LAMBDA (STREAM PEEKBINFLG COUNTP) (* ; "Edited 6-Aug-2021 23:30 by rmk:")
[LAMBDA (STREAM PEEKBINFLG COUNTP EOLC) (* ; "Edited 6-Dec-2023 23:39 by rmk")
(* ; "Edited 17-Oct-2023 11:56 by rmk")
(* ; "Edited 6-Aug-2021 23:30 by rmk:")

(* ;; "This is called only when a CR has been read and EOLC is either any or CRLF. This returns EOL if the next code is an LF")
(* ;; "This is called only when a CR has been read and EOLC is either ANY or CRLF. This returns EOL if the next code is an LF")

(* ;; "If COUNTP, that sets *BYTECOUNTER* freely with the number of LF bytes.")

Expand All @@ -530,8 +533,7 @@
[SETQ CH (COND
[PEEKBINFLG

(* ;;
 "T from PEEKC. In this case, must leave the fileptr where it was.")
(* ;; "T from PEEKC. In this case, must leave the fileptr where it was.")

(* ;; "The CR itself hasn't been read, just peeked. So here we have to read it, then peek at the next character to see if it is an LF, and then back out the CR")

Expand All @@ -545,30 +547,36 @@
(PROG1 (\PEEKCCODE STREAM T 'NOEOLC)

(* ;;
 "This has to be a call to \PEEKCODE that doesn't itself to the checkeolc")
 "This has to be a call to \PEEKCODE that doesn't itself to the checkeolc")

(* ;;
 "LF must be the next char after the CR. We back up over the CR that \INCCODE just read.")
 "LF must be the next char after the CR. We back up over the CR that \INCCODE just read.")

(\BACKCCODE STREAM)))]

(* ;; "Got the CRLF, it's an EOL")

(CHARCODE EOL))
(T (CHARCODE CR]
(T (SELECTC EOLC
((LIST ANY.EOLC 'ANY)
(CHARCODE EOL))
(CHARCODE CR]
((EQ (CHARCODE LF)
(\PEEKCCODE STREAM T 'NOEOLC))

(* ;; "Since we aren't peeking, the CR has actually been read, and we are entitled to read the LF that we just peeked at.")

(IF COUNTP
THEN (LET (NUMLFBYTES)
(DECLARE (SPECVARS NUMLFBYTES))
(\INCCODE STREAM 'NUMLFBYTES 0)
(ADD *BYTECOUNTER* NUMLFBYTES))
(DECLARE (SPECVARS NUMLFBYTES))
(\INCCODE STREAM 'NUMLFBYTES 0)
(ADD *BYTECOUNTER* NUMLFBYTES))
ELSE (\INCCODE STREAM))
(CHARCODE EOL))
(T (CHARCODE CR]
(T (SELECTC EOLC
((LIST ANY.EOLC 'ANY)
(CHARCODE EOL))
(CHARCODE CR]
CH])
)
(DECLARE%: DOEVAL@COMPILE DONTCOPY
Expand All @@ -581,10 +589,10 @@
(CHARCODE EOL))
(CHARCODE LF)))
(CR (SELECTC (OR EOLC (FFETCH (STREAM EOLCONVENTION) OF STRM))
((LIST CR.EOLC 'ANY)
((LIST CR.EOLC 'CR)
(CHARCODE EOL))
((LIST ANY.EOLC CRLF.EOLC 'CRLF 'ANY)
(\CHECKEOLC.CRLF STRM PEEKBINFLG COUNTP))
(\CHECKEOLC.CRLF STRM PEEKBINFLG COUNTP EOLC))
(CHARCODE CR)))
CH)))
)
Expand Down Expand Up @@ -712,13 +720,13 @@
(\CREATE.THROUGH.EXTERNALFORMAT)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (6559 13194 (\EXTERNALFORMAT 6569 . 10347) (MAKE-EXTERNALFORMAT 10349 . 12721) (
\EXTERNALFORMAT.DEFPRINT 12723 . 13192)) (13195 16236 (\INSTALL.EXTERNALFORMAT 13205 . 14654) (
\REMOVE.EXTERNALFORMAT 14656 . 15487) (FIND-FORMAT 15489 . 16234)) (16237 16649 (SYSTEM-EXTERNALFORMAT
16247 . 16647)) (16998 31818 (\OUTCHAR 17008 . 18225) (\INCCODE 18227 . 19380) (\BACKCCODE 19382 .
20951) (\BACKCCODE.EOLC 20953 . 23143) (\PEEKCCODE 23145 . 23470) (\PEEKCCODE.EOLC 23472 . 23851) (
\INCCODE.EOLC 23853 . 25652) (\FORMATBYTESTREAM 25654 . 27789) (\FORMATBYTESTRING 27791 . 29250) (
\CHECKEOLC.CRLF 29252 . 31816)) (33096 35332 (\NULLDEVICE 33106 . 35008) (\NULL.OPENFILE 35010 . 35330
)) (35472 37299 (\CREATE.THROUGH.EXTERNALFORMAT 35482 . 36268) (\THROUGHIN 36270 . 36690) (
\THROUGHBACKCCODE 36692 . 36959) (\THROUGHOUTCHARFN 36961 . 37297)))))
(FILEMAP (NIL (6547 13182 (\EXTERNALFORMAT 6557 . 10335) (MAKE-EXTERNALFORMAT 10337 . 12709) (
\EXTERNALFORMAT.DEFPRINT 12711 . 13180)) (13183 16224 (\INSTALL.EXTERNALFORMAT 13193 . 14642) (
\REMOVE.EXTERNALFORMAT 14644 . 15475) (FIND-FORMAT 15477 . 16222)) (16225 16637 (SYSTEM-EXTERNALFORMAT
16235 . 16635)) (16986 32303 (\OUTCHAR 16996 . 18213) (\INCCODE 18215 . 19368) (\BACKCCODE 19370 .
20939) (\BACKCCODE.EOLC 20941 . 23131) (\PEEKCCODE 23133 . 23458) (\PEEKCCODE.EOLC 23460 . 23839) (
\INCCODE.EOLC 23841 . 25640) (\FORMATBYTESTREAM 25642 . 27777) (\FORMATBYTESTRING 27779 . 29238) (
\CHECKEOLC.CRLF 29240 . 32301)) (33585 35821 (\NULLDEVICE 33595 . 35497) (\NULL.OPENFILE 35499 . 35819
)) (35961 37788 (\CREATE.THROUGH.EXTERNALFORMAT 35971 . 36757) (\THROUGHIN 36759 . 37179) (
\THROUGHBACKCCODE 37181 . 37448) (\THROUGHOUTCHARFN 37450 . 37786)))))
STOP
Binary file modified sources/EXTERNALFORMAT.LCOM
Binary file not shown.
Binary file modified sources/FASLOAD.LCOM
Binary file not shown.
Binary file modified sources/IOCHAR.LCOM
Binary file not shown.
Binary file modified sources/LLREAD.LCOM
Binary file not shown.