@@ -15,10 +15,11 @@ */ #include "config.h" #include +#include #include #import "OFNumber.h" #import "OFString.h" #import "OFXMLElement.h" @@ -904,21 +905,37 @@ case OF_NUMBER_TYPE_INTPTR: return [OFString stringWithFormat: @"%jd", [self intMaxValue]]; case OF_NUMBER_TYPE_FLOAT: ret = [OFMutableString stringWithFormat: @"%g", _value.float_]; - if (![ret containsString: @"."]) - [ret appendString: @".0"]; + { + void *pool = objc_autoreleasePoolPush(); + OFString *decimalPoint = [OFString stringWithUTF8String: + localeconv()->decimal_point]; + + if (![ret containsString: decimalPoint]) + [ret appendFormat: @"%@0", decimalPoint]; + + objc_autoreleasePoolPop(pool); + } [ret makeImmutable]; return ret; case OF_NUMBER_TYPE_DOUBLE: ret = [OFMutableString stringWithFormat: @"%g", _value.double_]; - if (![ret containsString: @"."]) - [ret appendString: @".0"]; + { + void *pool = objc_autoreleasePoolPush(); + OFString *decimalPoint = [OFString stringWithUTF8String: + localeconv()->decimal_point]; + + if (![ret containsString: decimalPoint]) + [ret appendFormat: @"%@0", decimalPoint]; + + objc_autoreleasePoolPop(pool); + } [ret makeImmutable]; return ret; default: