zsh-workers
 help / color / mirror / code / Atom feed
From: "Dave Korn" <dk@artimi.com>
To: <zsh-workers@sunsite.dk>, <cygwin@cygwin.com>
Subject: RE: zsh and line breaks
Date: Fri, 2 Apr 2004 10:49:47 +0100	[thread overview]
Message-ID: <NUTMEGDMqgKqKTnwjiv00000328@NUTMEG.CAM.ARTIMI.COM> (raw)
In-Reply-To: <Pine.LNX.4.53.0404011224320.9892@gremlin.fruitbat.org>

> -----Original Message-----
> From: cygwin-owner On Behalf Of Peter A. Castro
> Sent: 01 April 2004 22:21

>   In system.h I've added a #define in the #ifdef 
> __CYGWIN__ section of:
> #define ORO_TEXT | O_TEXT
> And for the #else case:
> #define ORO_TEXT
> 
> Then in code which needs it I have modified it to look like this:
> 
> if ((fd = open(name, O_RDONLY ORO_TEXT)) < 0) {
> 
> It's really just utilizing the macro ability of the compiler, 
> and it's a
> style judgement call.  I don't have a problem with it, obviously, but
> others might look at it and wonder how it could possible 
> compile if they
> didn't look in system.h first.  If you think that might present
> confusion, then I'll change it to be explicitly "| OR_TEXT" and have
> #define O_TEXT to be 0 if not defined at all.
> 
> Any thoughts on this?

  It's pretty reasonable but as you say could be confusing.  Here's another
approach that might seem nicer because it's kind of function-like:

#ifdef __CYGWIN__
#define MAYBE_ADD_O_TEXT_FLAG(x) (O_TEXT | (x))
#else
#define MAYBE_ADD_O_TEXT_FLAG(x) (x)
#endif

Then say

if ((fd = open(name, MAYBE_ADD_O_TEXT_FLAG(O_RDONLY))) < 0) {

You might well want to choose a better name for the function-like macro than
that, but I think the pattern is slightly clearer.

> The primary problem is with running scripts with CR/LFs.  
> That gets fixed
> with adding O_TEXT everywhere.  A secondary problem is with redirected
> input and/or output which is processed by the shell.
> 
> I've been reviewing this problem and I think maybe I've been 
> attacking it
> incorrectly.  I had though that adding O_TEXT everywhere 
> would solve this
> problem.  However, the environment is complicating things :)
> 
> Here's the deal:

>  So where the file located in the filesystem 
> determines
> the default handling of translation when opened as a text file.
> This is for normal unix style coding of opens without any O_TEXT or
> O_BINARY cruft.
> 
> Now, adding an explicit O_TEXT or O_BINARY forces one mode or 
> the other,
> ignoring the filesystem mount attributes.  The problem is, I 
> don't want
> to force the mode, 
> 
> Thanks for listening.  Any suggestions are welcome.

  Doesn't the POSIX standard specify something about shells should open
stdin, stdout and stderr in textmode?  IOW, aren't you obliged to force the
mode?



    cheers, 
      DaveK
-- 
Can't think of a witty .sigline today....


  reply	other threads:[~2004-04-02 10:18 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <s38u10erwrz.fsf@ackusativ.ling.uu.se>
     [not found] ` <1vvf60l9i7n4nlobcroik2le5ofe6v2rn4@4ax.com>
     [not found]   ` <Pine.LNX.4.53.0403291441160.5939@gremlin.fruitbat.org>
2004-03-30  9:32     ` Oliver Kiddle
2004-03-30 18:54       ` Peter A. Castro
2004-03-31 12:45         ` Oliver Kiddle
2004-03-31 17:53           ` Peter A. Castro
2004-04-01  9:09             ` Oliver Kiddle
2004-04-01 21:20               ` Peter A. Castro
2004-04-02  9:49                 ` Dave Korn [this message]
2004-04-02 16:59                   ` Peter A. Castro
2004-04-03  1:23                 ` Peter A. Castro
2004-04-03 20:35                   ` Bart Schaefer
2004-04-04 19:29                     ` Peter Stephenson
2004-04-05 16:19                       ` Peter A. Castro
2004-04-05 17:40                         ` Peter Stephenson
2004-04-05 22:08                           ` Peter A. Castro
2004-04-05 23:08                             ` Clint Adams
2004-04-05 23:25                               ` Peter A. Castro
2004-04-07 21:10                                 ` Clint Adams
2004-04-08  1:16                                   ` Peter A. Castro
2004-04-09  5:00                                     ` Felix Rosencrantz
2004-04-09 16:26                                       ` Peter A. Castro
2004-04-06  9:43                             ` Peter Stephenson
2004-04-06 22:25                               ` Peter A. Castro
2004-04-15  5:03                             ` Clint Adams
2004-04-15  6:43                               ` Peter A. Castro
2004-04-15 10:35                                 ` Clint Adams
2004-04-15 16:57                                   ` Peter A. Castro
2004-04-15 18:14                                     ` Clint Adams
2005-01-31  5:07                             ` Patch for 4.2.3 building on Cygwin Peter A. Castro
2005-01-31 11:37                               ` Peter Stephenson
2005-01-31 20:48                                 ` Peter A. Castro
2005-02-01 10:53                                   ` Peter Stephenson
2005-02-01 16:03                                     ` Bart Schaefer
2005-02-01 18:04                                       ` Peter Stephenson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=NUTMEGDMqgKqKTnwjiv00000328@NUTMEG.CAM.ARTIMI.COM \
    --to=dk@artimi.com \
    --cc=cygwin@cygwin.com \
    --cc=zsh-workers@sunsite.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).