Differences From Artifact [0f7da4996c]:
- File
src/of_asprintf.m
— part of check-in
[e0b659378f]
at
2020-03-09 00:54:07
on branch trunk
— of_asprintf.m: Small optimization
Don't replace the decimal point with "." if the decimal point is ".". (user: js, size: 16235) [annotate] [blame] [check-ins using]
To Artifact [36d94b6a4d]:
- File src/of_asprintf.m — part of check-in [c5beed7277] at 2020-05-16 16:46:42 on branch trunk — Do not require snprintf to return expected length (user: js, size: 16808) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
95 96 97 98 99 100 101 | } #endif #ifndef HAVE_ASPRINTF static int vasprintf(char **string, const char *format, va_list arguments) { | | | > > > > > > | | | > > > > > > > > > > > > > > > > > > > > | 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | } #endif #ifndef HAVE_ASPRINTF static int vasprintf(char **string, const char *format, va_list arguments) { int expectedLength, length; va_list argumentsCopy; va_copy(argumentsCopy, arguments); expectedLength = vsnprintf(NULL, 0, format, argumentsCopy); if (expectedLength == -1) /* * We have no way to know how large it is. Let's try 64 KB and * hope. */ expectedLength = 65535; if ((*string = malloc((size_t)expectedLength + 1)) == NULL) return -1; length = vsnprintf(*string, (size_t)expectedLength + 1, format, arguments); if (length == -1 || length > expectedLength) { free(*string); *string = NULL; return -1; } /* * In case we could not determine the size, resize to the actual size * needed, but ignore any failure to do so. */ if (length < expectedLength) { char *resized; if ((resized = realloc(*string, length + 1)) != NULL) *string = resized; } return length; } static int asprintf(char **string, const char *format, ...) { int ret; va_list arguments; |
︙ | ︙ | |||
547 548 549 550 551 552 553 554 555 556 557 558 559 560 | va_arg(ctx->arguments, long double)); break; default: return false; } #ifndef HAVE_ASPRINTF_L /* * If there's no asprintf_l, we have no other choice than to * use this ugly hack to replace the locale's decimal point * back to ".". */ point = [OFLocale decimalPoint]; | > > > | 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 | va_arg(ctx->arguments, long double)); break; default: return false; } #ifndef HAVE_ASPRINTF_L if (tmpLen == -1) return false; /* * If there's no asprintf_l, we have no other choice than to * use this ugly hack to replace the locale's decimal point * back to ".". */ point = [OFLocale decimalPoint]; |
︙ | ︙ |