Detects the end of line style of a file.
system
detect-eol-style pathname ef-spec buffer length => new-ef-spec
pathname⇩ |
Pathname identifying location of buffer. |
ef-spec⇩ |
An external format spec. |
buffer⇩ |
A buffer whose contents are examined. |
length⇩ |
Length (an integer) up to which buffer should be examined. |
new-ef-spec |
A new external format spec created by merging ef-spec with the encoding that was found. |
The function detect-eol-style
attempts to detect the end of line style from buffer.
When the encoding in ef-spec has foreign type (unsigned-byte 8)
, search buffer up to length for the first occurrence of the byte (10)
. If found, and it is preceded in buffer by (13)
, merge ef-spec with:
(:default :eol-style :crlf)
If found and is not preceded by (13)
, merge ef-spec with:
(:default :eol-style :lf)
Thus a complete external format spec is constructed. Otherwise, return ef-spec.
When the encoding in ef-spec has foreign type (unsigned-byte 16)
, search buffer up to length for the first occurrence of the byte sequence (13 0 10)
. If found, merge ef-spec with:
(:default :eol-style :crlf)
If (13 0 10)
is not found, search buffer up to length for (10 0)
or (0 10)
. If found, merge ef-spec with:
(:default :eol-style :lf)
Thus a complete external format spec is constructed. Otherwise, return ef-spec.
LispWorks® User Guide and Reference Manual - 01 Dec 2021 19:31:02