On Sun, Jan 26, 2003 at 09:43:06AM -0500, Green, Paul wrote:
> Ville Herva [mailto:[EMAIL PROTECTED]] wrote:
> > Of course, whether O_TEXT is defined or not does not 
> > necessarily imply the availability of "t", but I
> > can't think of better alternative.
> 
> Stratus VOS implements O_TEXT and O_BINARY but does not recognize "t".  We
> have the options defined in ANS C and in POSIX. I'm at home and don't have
> my reference materials handy, but I think this is going to be a problem for
> us. I can see looking at the code that we will reject the open if we see
> unknown letters.
> 
> Please write a configure test.  Even if we are wrong and we should be
> ignoring it, I have hundreds of machines in the field and it will be years
> before they are upgraded.
> 
> The string concatenation thing is not an issue here.

On the systems where O_TEXT and "rt" have meaning are we
looking at anything other than converting "\r\n" to "\n"?
If not i don't think we need the O_TEXT stuff.

I did a quick survey of where you have the O_TEXT and O_TEXT_STR
and of the one other calls to fopen (logfile).

authenticate.c: fd = open(fname,O_RDONLY | O_TEXT);
        get_secret() already discards \r

authenticate.c: if ( (fd=open(filename,O_RDONLY | O_TEXT)) == -1) {
        getpassf() treats \r the same as \n

clientserver.c:         FILE *f = fopen(motd,"r" O_TEXT_STR);
        simply passes contents of motd file unchanged to client
        does it matter if there are \r chars in the file?

exclude.c:              f = fopen(fname,"r" O_TEXT_STR);
exclude.c:              f = fdopen(0, "r" O_TEXT_STR);
        the file is processed with
                while (fgets(line,MAXPATHLEN,f)) {
                        int l = strlen(line);
                        if (l && line[l-1] == '\n') l--;
                        line[l] = 0;
        if we add
                        if (l && line[l-1] == '\r') l--;
        after the \n processing that will handle the \r\n case
        or we can replace the \n line with
                        while (l && (line[l-1] == '\n'|| line[l-1] == '\r')) l--;
        and this function will be covered.

        
params.c:  OpenedFile = fopen( FileName, "r" O_TEXT_STR );
        since \r is a whitespace character it should be
        ignored.

Based on this i don't think we need to worry about O_TEXT or
"rt" mode.  The only place i can imagine we might want text
mode is the log file and i imagine that admins can cope with
EOL issues.

-- 
________________________________________________________________
        J.W. Schultz            Pegasystems Technologies
        email address:          [EMAIL PROTECTED]

                Remember Cernan and Schmitt
-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.tuxedo.org/~esr/faqs/smart-questions.html

Reply via email to