Navigation

Operators and Keywords

Function List:

C++ API

strftime.c File Reference

#include <config.h>
#include "strftime.h"
#include <ctype.h>
#include <time.h>
#include <limits.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
Include dependency graph for strftime.c:

Defines

#define MULTIBYTE_IS_FORMAT_SAFE   1
#define DO_MULTIBYTE   (! MULTIBYTE_IS_FORMAT_SAFE)
#define CHAR_T   char
#define UCHAR_T   unsigned char
#define L_(Str)   Str
#define NLW(Sym)   Sym
#define MEMCPY(d, s, n)   memcpy (d, s, n)
#define STRLEN(s)   strlen (s)
#define SHR(a, b)
#define INT_STRLEN_BOUND(t)   ((sizeof (t) * CHAR_BIT - 1) * 146 / 485 + 2)
#define TM_YEAR_BASE   1900
#define __isleap(year)   ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
#define FPRINTFTIME   0
#define STREAM_OR_CHAR_T   CHAR_T
#define STRFTIME_ARG(x)   x,
#define memset_space(P, Len)   (memset (P, ' ', Len), (P) += (Len))
#define memset_zero(P, Len)   (memset (P, '0', Len), (P) += (Len))
#define advance(P, N)   ((P) += (N))
#define add(n, f)
#define add1(C)   add (1, *p = C)
#define cpy(n, s)
#define LOCALE_PARAM_PROTO
#define LOCALE_ARG
#define HELPER_LOCALE_ARG
#define TOUPPER(Ch, L)   toupper (Ch)
#define TOLOWER(Ch, L)   tolower (Ch)
#define ISDIGIT(Ch)   ((unsigned int) (Ch) - L_('0') <= 9)
#define ISO_WEEK_START_WDAY   1
#define ISO_WEEK1_WDAY   4
#define YDAY_MINIMUM   (-366)
#define extra_args   , ut, ns
#define extra_args_spec   , int ut, int ns
#define DO_NUMBER(d, v)
#define DO_SIGNED_NUMBER(d, negative, v)
#define DO_TZ_OFFSET(d, negative, mask, v)
#define DO_NUMBER_SPACEPAD(d, v)

Functions

size_t my_strftime (STREAM_OR_CHAR_T *s, STRFTIME_ARG(size_t maxsize) const CHAR_T *format, const struct tm *tp extra_args_spec LOCALE_PARAM_PROTO)

Define Documentation

#define __isleap (   year  )     ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
#define add (   n,
  f 
)
Value:
do                                                                          \
    {                                                                         \
      int _n = (n);                                                           \
      int _delta = width - _n;                                                \
      int _incr = _n + (_delta > 0 ? _delta : 0);                             \
      if ((size_t) _incr >= maxsize - i)                                      \
        return 0;                                                             \
      if (p)                                                                  \
        {                                                                     \
          if (digits == 0 && _delta > 0)                                      \
            {                                                                 \
              if (pad == L_('0'))                                             \
                memset_zero (p, _delta);                                      \
              else                                                            \
                memset_space (p, _delta);                                     \
            }                                                                 \
          f;                                                                  \
          advance (p, _n);                                                    \
        }                                                                     \
      i += _incr;                                                             \
    } while (0)
#define add1 (   C  )     add (1, *p = C)
#define advance (   P,
  N 
)    ((P) += (N))
#define CHAR_T   char
#define cpy (   n,
  s 
)
Value:
add ((n),                                                                 \
         if (to_lowcase)                                                      \
           memcpy_lowcase (p, (s), _n LOCALE_ARG);                            \
         else if (to_uppcase)                                                 \
           memcpy_uppcase (p, (s), _n LOCALE_ARG);                            \
         else                                                                 \
           MEMCPY ((void *) p, (void const *) (s), _n))
#define DO_MULTIBYTE   (! MULTIBYTE_IS_FORMAT_SAFE)
#define DO_NUMBER (   d,
  v 
)
Value:
digits = d;                                                         \
          number_value = v; goto do_number
#define DO_NUMBER_SPACEPAD (   d,
  v 
)
Value:
digits = d;                                                         \
          number_value = v; goto do_number_spacepad
#define DO_SIGNED_NUMBER (   d,
  negative,
  v 
)
Value:
digits = d;                                                         \
          negative_number = negative;                                         \
          u_number_value = v; goto do_signed_number
#define DO_TZ_OFFSET (   d,
  negative,
  mask,
  v 
)
Value:
digits = d;                                                         \
          negative_number = negative;                                         \
          tz_colon_mask = mask;                                               \
          u_number_value = v; goto do_tz_offset
#define extra_args   , ut, ns
#define extra_args_spec   , int ut, int ns
#define FPRINTFTIME   0
#define HELPER_LOCALE_ARG
#define INT_STRLEN_BOUND (   t  )     ((sizeof (t) * CHAR_BIT - 1) * 146 / 485 + 2)
#define ISDIGIT (   Ch  )     ((unsigned int) (Ch) - L_('0') <= 9)
#define ISO_WEEK1_WDAY   4
#define ISO_WEEK_START_WDAY   1
#define L_ (   Str  )     Str
#define LOCALE_ARG
#define LOCALE_PARAM_PROTO
#define MEMCPY (   d,
  s,
  n 
)    memcpy (d, s, n)
#define memset_space (   P,
  Len 
)    (memset (P, ' ', Len), (P) += (Len))
#define memset_zero (   P,
  Len 
)    (memset (P, '0', Len), (P) += (Len))
#define MULTIBYTE_IS_FORMAT_SAFE   1
#define NLW (   Sym  )     Sym
#define SHR (   a,
  b 
)
Value:
(-1 >> 1 == -1        \
   ? (a) >> (b)         \
   : (a) / (1 << (b)) - ((a) % (1 << (b)) < 0))
#define STREAM_OR_CHAR_T   CHAR_T
#define STRFTIME_ARG (   x  )     x,
#define STRLEN (   s  )     strlen (s)
#define TM_YEAR_BASE   1900
#define TOLOWER (   Ch,
  L 
)    tolower (Ch)
#define TOUPPER (   Ch,
  L 
)    toupper (Ch)
#define UCHAR_T   unsigned char
#define YDAY_MINIMUM   (-366)

Function Documentation

size_t my_strftime ( STREAM_OR_CHAR_T *  s,
STRFTIME_ARG(size_t maxsize) const CHAR_T *  format,
const struct tm *tp extra_args_spec  LOCALE_PARAM_PROTO 
)
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines