On Wed, 7 Jan 2004 16:41:38 +0100 (CET)
Pavel harry_x Palát <[EMAIL PROTECTED]> wrote:

> > Looks like a problem with the new def_max_anisotropy option. It's the
> > first floating-point option. I don't understand why this is happening,
> > though. It works just fine in the radeon driver and the definitions of
> > __driConfigOptions are identical in both drivers (see r200_screen.c).
> >
> > Also, you should see the same problem with any OpenGL app. If this is
> > application-specific then it's really mysterious.
> >
> > Can you send the output of "xdriinfo options r200"?
> 
> I have just experienced the same problem. The problem is that character
> which strtod recognise as decimal point depends on current locale.
> 
> And in xmlconfig.c there is this part of code:
>       case DRI_FLOAT:
>         v->_float = strtod (string, (char **)&tail);
>         break;
> And if the locale is set (which could be done by application or library
> like Xt), the parser will fail.

Thanks for this important piece of information. I didn't know that
strtod depends on the locale. I just double checked it in the libc
manual and you're right. Even about strtol it says:

     In a locale other than the standard `"C"' locale, this function
     may recognize additional implementation-dependent syntax.

Apperently I shouldn't rely on libc functions for number parsing in the
config file parser at all.

> 
> Because of that I think that this code shouldn't depend on strtod(). The
> GNU extensions that allow to select locale in strtod call are non-standard.
> I think that best approach would be to have internal strtod do the conversion.
> Here is small trivial patch that do it.

Ok. I'm going apply your patch plus a __strtol function when I get home.
Thanks again.

> 
> Sincerely
> 
> Pavel Palát
> 
> P.S.: This is my first post and patch here, so sorry for any inconvenience
> ;-)

No inconvenience at all. I'm no expert but I believe your mail would
even meet the standards for lklm ;o)

> 
>  --
> Pavel "harry_x" Palát
>     [EMAIL PROTECTED]
>     irc: #mistral.cz on IRCnet
> 
>     The only way of finding the limits to the possible is by going beyond them to 
> the impossible
>                                                   Arthur C. Clark

Cheers,
  Felix

------------    __\|/__    ___     ___       -------------------------
 Felix       ___\_e -_/___/ __\___/ __\_____   You can do anything,
   Kühling  (_____\Ä/____/ /_____/ /________)  just not everything
 [EMAIL PROTECTED]       \___/   \___/   U        at the same time.


-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
--
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to