diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-06-28 22:56:36 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-06-28 22:56:36 -0700 |
commit | d41d8ed8ed5d73aa0abcd4f6e562d06df33dc3e9 (patch) | |
tree | 23cf5d678bd9d148ac8757bd203548f6dadddfc7 | |
parent | 8e02b2cad2fe00aadd8b20e0977588f1fe1c00f3 (diff) | |
download | txr-d41d8ed8ed5d73aa0abcd4f6e562d06df33dc3e9.tar.gz txr-d41d8ed8ed5d73aa0abcd4f6e562d06df33dc3e9.tar.bz2 txr-d41d8ed8ed5d73aa0abcd4f6e562d06df33dc3e9.zip |
We would like the Windows port of TXR to open files in text
mode by default, such that "\r\n" is converted to "\n".
Cygwin's stdio streams aren't doing this. This is fine when
working in the Cygwin world, but not fine when we are making a
"native" Windows program with the help of the Cygwin DLL.
However, Cygwin supports the "t" mode letter in fopen, and
that forces a text mode which does the conversion.
* stream.c (format_mode): On Cygwin, if the mode isn't
binary, add the 't' letter to the normalized mode
string, unless compatibility <= 143 is requested.
* txr.1: Added compat notes.
-rw-r--r-- | stream.c | 5 | ||||
-rw-r--r-- | txr.1 | 4 |
2 files changed, 9 insertions, 0 deletions
@@ -1314,6 +1314,11 @@ static val format_mode(const struct stdio_mode m) if (m.binary) *ptr++ = 'b'; +#ifdef __CYGWIN__ + if (!m.binary && (!opt_compat || opt_compat > 143)) + *ptr++ = 't'; +#endif + *ptr = 0; return string(buf); } @@ -43537,6 +43537,10 @@ mark, if the symbol was previously defined as a special variable. Also, until version 143 many more places in the \*(TX pattern language used bind expressions rather than Lisp expressions. The compatibility option restores these behaviors. +Lastly, starting in version 144, on the Cygwin platform, streams +opened in text mode perform conversion between the CR-LF line +endings in the external representations and newline characters +in the stream. .IP 142 Until version 142, the \*(TX pattern language supported a prefix convention on data sources. Data sources beginning with the character |