newlib-cygwin/newlib/libc/time/wcsftime.c

65 lines
2.0 KiB
C

/*
* wcsftime.c
* Original Author: Craig Howland, for Newlib
*
* Source actually uses strftime.c.
* Documentation for wcsftime() here, with minimal overlap.
*/
/*
FUNCTION
<<wcsftime>>--convert date and time to a formatted wide-character string
INDEX
wcsftime
ANSI_SYNOPSIS
#include <time.h>
#include <wchar.h>
size_t wcsftime(wchar_t *<[s]>, size_t <[maxsize]>,
const wchar_t *<[format]>, const struct tm *<[timp]>);
DESCRIPTION
<<strftime>> is equivalent to <<strftime>>, except that:
The argument s points to the initial element of an array of wide characters
into which the generated output is to be placed.
The argument maxsize indicates the limiting number of wide characters.
The argument format is a wide-character string and the conversion specifiers
are replaced by corresponding sequences of wide characters.
The return value indicates the number of wide characters.
See <<strftime>> for the details of the format specifiers.
RETURNS
When the formatted time takes up no more than <[maxsize]> wide characters,
the result is the length of the formatted wide string. Otherwise, if the
formatting operation was abandoned due to lack of room, the result is
<<0>>, and the wide-character string starting at <[s]> corresponds to just those
parts of <<*<[format]>>> that could be completely filled in within the
<[maxsize]> limit.
PORTABILITY
C99 and POSIX require <<wcsftime>>, but do not specify the contents of
<<*<[s]>>> when the formatted string would require more than
<[maxsize]> characters. Unrecognized specifiers and fields of
<<timp>> that are out of range cause undefined results. Since some
formats expand to 0 bytes, it is wise to set <<*<[s]>>> to a nonzero
value beforehand to distinguish between failure and an empty string.
This implementation does not support <<s>> being NULL, nor overlapping
<<s>> and <<format>>.
SEEALSO
<<strftime>>
<<wcsftime>> requires no supporting OS subroutines.
*/
#include <time.h>
#include <wchar.h>
#define MAKE_WCSFTIME
#include "../time/strftime.c"