> > MSVCRT's fgets() can handle both "\r\n" and "\n" under text mode, and the
> > magic file is always a text file. Why not use text mode for it?
> 
> According to MSDN
> 'fgets reads characters from the current stream position to and including the 
> first newline character, to the end of the stream, or until the number of 
> characters read is equal to n - 1, whichever comes first.' There is no 
> mention of only \r\n or \n handling regardless of the mode of operation.

I've got a MSSDK which contains crt sources, so I've looked into them, and 
reached to that point.

> The magic file that comes bundled with Windows distro, originates from a UNIX 
> system, meaning that it'll always have \n line endings.
> The data stored in the file may contain binary characters, so the 'b' flag 
> adds a level of safety in the event it does contain binary data in the 
> future.

Right, IMO the file should consist of ASCII characters, but I agree with 
you that the file may contain other characters as long as there's no clear
specification.

Moriyoshi

> Ilia
> 
> > Anyway using "r" should be discouraged, because cli and cgi SAPI
> > forcefully set the default CR handling mode to binary with setmode()
> > function while apache SAPI doesn't.
> >
> > Moriyoshi
> >
> > "Ilia A." <[EMAIL PROTECTED]> wrote:
> > > Are you absolutely certain that it is safe to open the magic file as text
> > > and not binary on Windows?
> > >
> > > Ilia
> > >
> > > On November 15, 2002 10:13 am, Moriyoshi Koizumi wrote:
> > > > moriyoshi               Fri Nov 15 10:13:31 2002 EDT
> > > >
> > > >   Modified files:
> > > >     /php4/ext/mime_magic        mime_magic.c
> > > >   Log:
> > > >   Fixed segfault in case the specified magic file cannot be read.
> > > >
> > > >
> > > > Index: php4/ext/mime_magic/mime_magic.c
> > > > diff -u php4/ext/mime_magic/mime_magic.c:1.14
> > > > php4/ext/mime_magic/mime_magic.c:1.15 ---
> > > > php4/ext/mime_magic/mime_magic.c:1.14   Thu Nov 14 20:45:23 2002 +++
> > > > php4/ext/mime_magic/mime_magic.c        Fri Nov 15 10:13:30 2002
> > > > @@ -15,7 +15,7 @@
> > > >
> > > >    | Author: Hartmut Holzgraefe  <[EMAIL PROTECTED]>                      
> > > >    |   |
> > > >
> > > >   
> > > > +----------------------------------------------------------------------
> > > >+
> > > >
> > > > -  $Id: mime_magic.c,v 1.14 2002/11/15 01:45:23 moriyoshi Exp $
> > > > +  $Id: mime_magic.c,v 1.15 2002/11/15 15:13:30 moriyoshi Exp $
> > > >
> > > >    This module contains a lot of stuff taken from Apache
> > > > mod_mime_magic, so the license section is a little bit longer than
> > > > usual:
> > > > @@ -304,6 +304,11 @@
> > > >                 return;
> > > >         }
> > > >
> > > > +       if ((int) conf->magic == -1) {
> > > > +               php_error(E_ERROR, MODNAME " could not be initialized, magic 
>file %s
> > > > is not avaliable",  conf->magicfile); +         RETURN_FALSE;
> > > > +       }
> > > > +
> > > >         if(!conf->magic) {
> > > >                 php_error(E_WARNING, MODNAME " not initialized");
> > > >                 RETURN_FALSE;
> > > > @@ -343,10 +348,9 @@
> > > >      magic_server_config_rec *conf = &mime_global;
> > > >
> > > >      fname = conf->magicfile; /* todo cwd? */
> > > > -    f = fopen(fname, "r");
> > > > +    f = fopen(fname, "rt");
> > > >      if (f == NULL) {
> > > > -               php_error(E_WARNING,
> > > > -                                        MODNAME ": can't read magic file %s", 
>fname);
> > > > +               (int) conf->magic = -1;
> > > >                 return -1;
> > > >      }
> > >
> > > --
> > > PHP CVS Mailing List (http://www.php.net/)
> > > To unsubscribe, visit: http://www.php.net/unsub.php
> 


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to