Skip to content

Commit

Permalink
use strtold_dm when building against VC runtime
Browse files Browse the repository at this point in the history
  • Loading branch information
rainers committed Aug 31, 2015
1 parent 92c138d commit ea9f51a
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions src/root/port.d
Expand Up @@ -13,11 +13,15 @@ import core.stdc.string;
import core.math;

version(CRuntime_DigitalMars) __gshared extern (C) extern const(char)* __locale_decpoint;
version(CRuntime_Microsoft) extern(C++) struct longdouble {}
version(CRuntime_Microsoft) extern(C++) struct longdouble { real r; }

extern (C) float strtof(const(char)* p, char** endp);
extern (C) double strtod(const(char)* p, char** endp);
extern (C) real strtold(const(char)* p, char** endp);

version(CRuntime_Microsoft)
extern (C++) longdouble strtold_dm(const(char)* p, char** endp);
else
extern (C) real strtold(const(char)* p, char** endp);

extern (C++) struct Port
{
Expand Down Expand Up @@ -159,7 +163,11 @@ extern (C++) struct Port
auto save = __locale_decpoint;
__locale_decpoint = ".";
}
auto r = .strtold(p, endp);

version (CRuntime_Microsoft)
auto r = .strtold_dm(p, endp).r;
else
auto r = .strtold(p, endp);
version (CRuntime_DigitalMars) __locale_decpoint = save;
return r;
}
Expand Down

0 comments on commit ea9f51a

Please sign in to comment.