| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 
 | /* Copyright (c) 2009 Craig Howland */
/*
 * 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
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
<<wcsftime>> is equivalent to <<strftime>>, except that:
 
O+
o The argument s points to the initial element of an array of wide characters
into which the generated output is to be placed.
 
o The argument maxsize indicates the limiting number of wide characters.
 
o The argument format is a wide-character string and the conversion specifiers
are replaced by corresponding sequences of wide characters.
 
o The return value indicates the number of wide characters.
O-
(The difference in all of the above being wide characters versus regular
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>>.
<<wcsftime>> requires no supporting OS subroutines.
SEEALSO
<<strftime>>
*/
#define _DEFAULT_SOURCE
#include <time.h>
#include <wchar.h>
#define MAKE_WCSFTIME
#include "../time/strftime.c"
 |