xgettext can now extract strings from .rsj files, produced by the
Free Pascal compiler version 3.0.0 or newer.
+* Runtime behaviour:
+ The replacements for the printf()/fprintf()/... functions that are
+ provided through <libintl.h> on native Windows and NetBSD are now POSIX
+ compliant. There is no conflict any more between these replacements
+ and other possible replacements provided by gnulib or mingw.
+
Version 0.19.8 - June 2016
* Support for reproducible builds:
#include "asnprintf.c"
#endif
+/* Users don't expect libintl_fprintf to be less POSIX compliant
+ than the fprintf implementation provided by gnulib or - on mingw -
+ the one provided by mingw libs when __USE_MINGW_ANSI_STDIO is in
+ effect. */
+#define USE_REPLACEMENT_CODE_ALWAYS 1
+
DLL_EXPORTED
int
libintl_vfprintf (FILE *stream, const char *format, va_list args)
{
+#if !USE_REPLACEMENT_CODE_ALWAYS
if (strchr (format, '$') == NULL)
return vfprintf (stream, format, args);
else
+#endif
{
size_t length;
char *result = libintl_vasnprintf (NULL, &length, format, args);
int
libintl_vsprintf (char *resultbuf, const char *format, va_list args)
{
+#if !USE_REPLACEMENT_CODE_ALWAYS
if (strchr (format, '$') == NULL)
return vsprintf (resultbuf, format, args);
else
+#endif
{
size_t length = (size_t) ~0 / (4 * sizeof (char));
char *result = libintl_vasnprintf (resultbuf, &length, format, args);
int
libintl_vsnprintf (char *resultbuf, size_t length, const char *format, va_list args)
{
+# if !USE_REPLACEMENT_CODE_ALWAYS
if (strchr (format, '$') == NULL)
return system_vsnprintf (resultbuf, length, format, args);
else
+# endif
{
size_t maxlength = length;
char *result = libintl_vasnprintf (resultbuf, &length, format, args);
int
libintl_vfwprintf (FILE *stream, const wchar_t *format, va_list args)
{
+# if !USE_REPLACEMENT_CODE_ALWAYS
if (wcschr (format, '$') == NULL)
return vfwprintf (stream, format, args);
else
+# endif
{
size_t length;
wchar_t *result = libintl_vasnwprintf (NULL, &length, format, args);
int
libintl_vswprintf (wchar_t *resultbuf, size_t length, const wchar_t *format, va_list args)
{
+# if !USE_REPLACEMENT_CODE_ALWAYS
if (wcschr (format, '$') == NULL)
return system_vswprintf (resultbuf, length, format, args);
else
+# endif
{
size_t maxlength = length;
wchar_t *result = libintl_vasnwprintf (resultbuf, &length, format, args);