by Graf Zahl » Sat Dec 03, 2016 6:54 am
Damnit. This isn't solvable at the high level. The entire parser from the bottom up and all code using it would have to be changed, it's a huge shitload of work I'm just not willing to do for such a minor thing. There's a good reason why the parser defined an implicit MAXINT constant for such cases that is guaranteed to produce a working value.
The problem here is that Linux longs are 64 bit om 64 bit platforms, but Windows longs are 32 bit, so the strtol function works differently on both platforms, but all the parsing code is blissfully unaware of this and stores everything in 32 bit. But since this goes down to the deepest bowels of ZDoom's inner workings - the parser is used everywhere - a change will not only be extremely extensive but may also subtly break other things.
Damnit. This isn't solvable at the high level. The entire parser from the bottom up and all code using it would have to be changed, it's a huge shitload of work I'm just not willing to do for such a minor thing. There's a good reason why the parser defined an implicit MAXINT constant for such cases that is guaranteed to produce a working value.
The problem here is that Linux longs are 64 bit om 64 bit platforms, but Windows longs are 32 bit, so the strtol function works differently on both platforms, but all the parsing code is blissfully unaware of this and stores everything in 32 bit. But since this goes down to the deepest bowels of ZDoom's inner workings - the parser is used everywhere - a change will not only be extremely extensive but may also subtly break other things.