summaryrefslogtreecommitdiffstats
path: root/newlib/libc/time/wcsftime.c
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/time/wcsftime.c')
-rw-r--r--newlib/libc/time/wcsftime.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/newlib/libc/time/wcsftime.c b/newlib/libc/time/wcsftime.c
new file mode 100644
index 000000000..323a6c2eb
--- /dev/null
+++ b/newlib/libc/time/wcsftime.c
@@ -0,0 +1,64 @@
+/*
+ * 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"