ObjFW  Diff

Differences From Artifact [1a3f564904]:

To Artifact [7d2c8dc066]:


2336
2337
2338
2339
2340
2341
2342






2343
2344
2345
2346
2347






2348
2349
2350
2351
2352
2353






2354
2355
2356
2357
2358
2359
2360
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348





2349
2350
2351
2352
2353
2354






2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367







+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+







		return NAN;
	if ([stripped caseInsensitiveCompare: @"-NAN"] == OFOrderedSame)
		return -NAN;

#if defined(HAVE_STRTOF_L) || defined(HAVE_USELOCALE)
	const char *UTF8String = self.UTF8String;
#else
	OFString *decimalSeparator = [OFLocale decimalSeparator];
	const char *UTF8String;

	if ([decimalSeparator isEqual: @"."])
		UTF8String = self.UTF8String;
	else
	/*
	 * If we have no strtof_l, we have no other choice than to replace the
	 * locale's decimal point with something that will be rejected and
	 * replacing "." with the locale's decimal point.
	 */
		/*
		 * If we have no strtof_l, we have no other choice than to
		 * replace the locale's decimal point with something that will
		 * be rejected and replacing "." with the locale's decimal
		 * point.
		 */
	OFString *decimalSeparator = [OFLocale decimalSeparator];
	const char *UTF8String = [[self
	    stringByReplacingOccurrencesOfString: decimalSeparator
				      withString: @"!"]
	    stringByReplacingOccurrencesOfString: @"."
				      withString: decimalSeparator].UTF8String;
		UTF8String = [[self
		    stringByReplacingOccurrencesOfString: decimalSeparator
					      withString: @"!"]
		    stringByReplacingOccurrencesOfString: @"."
					      withString: decimalSeparator]
		    .UTF8String;
#endif
	char *endPtr = NULL;
	float value;

	errno = 0;
#if defined(HAVE_STRTOF_L)
	value = strtof_l(UTF8String, &endPtr, cLocale);
2396
2397
2398
2399
2400
2401
2402






2403
2404
2405
2406
2407






2408
2409
2410
2411
2412
2413






2414
2415
2416
2417
2418
2419
2420
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415





2416
2417
2418
2419
2420
2421






2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434







+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+







		return NAN;
	if ([stripped caseInsensitiveCompare: @"-NAN"] == OFOrderedSame)
		return -NAN;

#if defined(HAVE_STRTOD_L) || defined(HAVE_USELOCALE)
	const char *UTF8String = self.UTF8String;
#else
	OFString *decimalSeparator = [OFLocale decimalSeparator];
	const char *UTF8String;

	if ([decimalSeparator isEqual: @"."])
		UTF8String = self.UTF8String;
	else
	/*
	 * If we have no strtod_l, we have no other choice than to replace the
	 * locale's decimal point with something that will be rejected and
	 * replacing "." with the locale's decimal point.
	 */
		/*
		 * If we have no strtod_l, we have no other choice than to
		 * replace the locale's decimal point with something that will
		 * be rejected and replacing "." with the locale's decimal
		 * point.
		 */
	OFString *decimalSeparator = [OFLocale decimalSeparator];
	const char *UTF8String = [[self
	    stringByReplacingOccurrencesOfString: decimalSeparator
				      withString: @"!"]
	    stringByReplacingOccurrencesOfString: @"."
				      withString: decimalSeparator].UTF8String;
		UTF8String = [[self
		    stringByReplacingOccurrencesOfString: decimalSeparator
					      withString: @"!"]
		    stringByReplacingOccurrencesOfString: @"."
					      withString: decimalSeparator]
		    .UTF8String;
#endif
	char *endPtr = NULL;
	double value;

	errno = 0;
#if defined(HAVE_STRTOD_L)
	value = strtod_l(UTF8String, &endPtr, cLocale);