This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Compile-time detection of EOL translation mode (CLISP)

Dave Korn wrote:

From within the C preprocessor, how do I find out whether
a Cygwin installation is set to use dos or unix EOLs?

You don't. Whatever you're trying to do, this is the wrong way to go about it.

What is the /end/ result you're trying to achieve here?

When CLISP does text output, it opens the file in binary mode and does EOL translation itself, according to the requested line terminator mode. For instance, the following function writes a file with LF, CRLF, or CR EOLs depending on whether its argument is :unix, :dos, or :mac.

 ;; See
 (defun newlinetest (line-terminator)
     (out "eoltest.txt" :external-format
       (ext:make-encoding :line-terminator line-terminator)
       :direction :output
       :if-does-not-exist :create
       :if-exists :new-version)
     (format out "foo~%bar~%")))

That works exactly as intended.  My problem is that if I
don't specify a :line-terminator, :dos is used instead of
:unix.  (This is controlled by *default-file-encoding*,
which itself is set by line 2571 of encoding.d when CLISP is
compiled.)  The reason I expect :unix to be the default
rather than :dos is that when I ran the Cygwin setup.exe, I
selected the "Unix / binary (RECOMMENDED)" radio button
under "Default Text File Type".  Is this expectation

The one-sentence version of the problem: CLISP writes
newlines as "\r\n" by default, when I want the default to be

I could just specify :unix every time, but that's a hassle
and is (as far as I can tell) impossible with standard



-- Unsubscribe info: Problem reports: Documentation: FAQ:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]