# endif
#endif
-#if !USE_SNPRINTF && HAVE_WCHAR_T && (WIDE_CHAR_VERSION || DCHAR_IS_TCHAR)
+#if (!USE_SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && HAVE_WCHAR_T && (WIDE_CHAR_VERSION || DCHAR_IS_TCHAR)
# if HAVE_WCSLEN
# define local_wcslen wcslen
# else
}
}
#endif
-#if !USE_SNPRINTF && HAVE_WCHAR_T
+#if (!USE_SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && HAVE_WCHAR_T
else if (dp->conversion == 's'
# if WIDE_CHAR_VERSION
&& a.arg[dp->arg_index].type != TYPE_WIDE_STRING
{
# if WIDE_CHAR_VERSION
/* ISO C says about %ls in fwprintf:
- "If the precision is not specified or is greater
+ "If the precision is not specified or is greater
than the size of the array, the array shall
contain a null wide character."
So if there is a precision, we must not use
tmp_length = local_wcslen (arg);
# else
/* ISO C says about %ls in fprintf:
- "If a precision is specified, no more than that
+ "If a precision is specified, no more than that
many bytes are written (including shift
sequences, if any), and the array shall contain
a null wide character if, to equal the
{
# if WIDE_CHAR_VERSION
/* ISO C says about %s in fwprintf:
- "If the precision is not specified or is greater
+ "If the precision is not specified or is greater
than the size of the converted array, the
converted array shall contain a null wide
character."