strftime man page is garbled

Marco Atzeri marco.atzeri@gmail.com
Thu Jun 4 05:32:00 GMT 2015



On 6/4/2015 3:18 AM, Wayne Pollock wrote:
> The description section of the strftime man page is
> garbled.  The first paragraph shows as this:
>
> =============================
>
>         into a null-terminated string, starting at S and occupying no more than
> MAXSIZE characters.
>
>            You  control the format of the output using the string at FORMAT.
> literally into the formatted string, and
>         time conversion specifications.  Time conversion specifications are two- and
> three-character sequences  begin‐
>         ning  with  ''%'' (use ''%%'' to include a percent sign in the output).  Each
> defined conversion specification
>         selects only the specified field(s) of calendar time data from '*TIMP', and
> converts it to a string in one  of
>         the following ways:
>
> ============================
>
> In addition, none of the option letters show, only the
> option descriptions.  The info node at
> "info libc timefns strftime" appears to be fine.
>
> I have cygwin-doc version 1.7.35-1.
> (I have a locale of C.UTF-8, if it matters.)
>

Works fine for me, I have a complete man page
see attached.

looks at the output of
   man -d strftime

for any hint.

Regards
Marco
-------------- next part --------------
STRFTIME(3)                         NEWLIB                         STRFTIME(3)



NAME
       9.8 'strftime'--convert date and time to a formatted string


SYNOPSIS
            #include <time.h>
            size_t strftime(char *restrict S, size_t MAXSIZE,
                const char *restrict FORMAT,
                const struct tm *restrict TIMP);


DESCRIPTION
       into a null-terminated string, starting at S and occupying no more than
       MAXSIZE characters.

          You control the format of the output using  the  string  at  FORMAT.
       literally  into  the  formatted  string, and time conversion specifica�
       tions.  Time conversion specifications  are  two-  and  three-character
       sequences beginning with ''%'' (use ''%%'' to include a percent sign in
       the output).  Each defined conversion specification  selects  only  the
       specified  field(s) of calendar time data from '*TIMP', and converts it
       to a string in one of the following ways:

            The abbreviated weekday name according to the current locale.
            [tm_wday]

            The full weekday name according to the current locale.  In the
            default "C" locale, one of ''Sunday'', ''Monday'', ''Tuesday'',
            ''Wednesday'', ''Thursday'', ''Friday'', ''Saturday''.  [tm_wday]

            The abbreviated month name according to the current locale.
            [tm_mon]

            The full month name according to the current locale.  In the
            default "C" locale, one of ''January'', ''February'', ''March'',
            ''April'', ''May'', ''June'', ''July'', ''August'', ''September'',
            ''October'', ''November'', ''December''.  [tm_mon]

            The preferred date and time representation for the current locale.
            [tm_sec, tm_min, tm_hour, tm_mday, tm_mon, tm_year, tm_wday]

            The century, that is, the year divided by 100 then truncated.  For
            4-digit years, the result is zero-padded and exactly two
            characters; but for other years, there may a negative sign or more
            digits.  In this way, ''%C%y'' is equivalent to ''%Y''.  [tm_year]
            The day of the month, formatted with two digits (from ''01'' to
            ''31'').  [tm_mday]

            A string representing the date, in the form ''"%m/%d/%y"''.
            [tm_mday, tm_mon, tm_year]

            The day of the month, formatted with leading space if single digit
            (from ''1'' to ''31'').  [tm_mday]

            In some locales, the E modifier  selects  alternative  representa�
       tions
            of  certain  modifiers 'x'.  In newlib, it is ignored, and treated
       as
            %'x'.

            A string representing the ISO 8601:2000 date format, in the form
            ''"%Y-%m-%d"''.  [tm_mday, tm_mon, tm_year]

            The last two digits of the week-based year, see specifier %G (from
            ''00'' to ''99'').  [tm_year, tm_wday, tm_yday]

            The week-based year.  In the ISO 8601:2000 calendar, week 1 of the
            year includes January 4th, and begin on Mondays.  Therefore, if
            January 1st, 2nd, or 3rd falls on a Sunday, that day and earlier
            belong to the last week of the  previous  year;  and  if  December
       29th,
            30th, or 31st falls on Monday, that day and later belong to week 1
            of the next year.  For consistency with %Y, it always has at least
            four  characters.   Example:  "%G"  for  Saturday 2nd January 1999
       gives
            "1998",  and  for  Tuesday  30th  December  1997   gives   "1998".
       [tm_year,
            tm_wday, tm_yday]

            Synonym for "%b".  [tm_mon]

            The hour (on a 24-hour clock), formatted with two digits (from
            ''00'' to ''23'').  [tm_hour]

            The hour (on a 12-hour clock), formatted with two digits (from
            ''01'' to ''12'').  [tm_hour]

            The count of days in the year, formatted with three digits (from
            ''001'' to ''366'').  [tm_yday]

            The hour (on a 24-hour clock), formatted with leading space if
            single digit (from ''0'' to ''23'').  Non-POSIX extension (c.p.
            %I). [tm_hour]

            The hour (on a 12-hour clock), formatted with leading space if
            single digit (from ''1'' to ''12'').  Non-POSIX extension (c.p.
            %H). [tm_hour]

            The month number, formatted with two digits (from ''01'' to
            ''12'').  [tm_mon]

            The minute, formatted with two digits (from ''00'' to ''59'').
            [tm_min]

            A newline character (''0').

            In some locales, the O modifier selects alternative digit
            characters for certain modifiers 'x'.  In newlib, it is ignored,
            and treated as %'x'.

            Either ''AM'' or ''PM'' as appropriate, or the corresponding
            strings for the current locale.  [tm_hour]

            Same as ''%p'', but in lowercase.  This is a GNU extension.
            [tm_hour]

            Replaced by the time in a.m.  and p.m.  notation.  In the "C"
            locale  this  is  equivalent  to  "%I:%M:%S %p".  In locales which
       don't
            define a.m./p.m.  notations, the result is an empty string.
            [tm_sec, tm_min, tm_hour]

            The 24-hour time, to the minute.  Equivalent to "%H:%M". [tm_min,
            tm_hour]

            The second, formatted with two digits  (from  ''00''  to  ''60'').
       The
            value 60 accounts for the occasional leap second.  [tm_sec]

            A tab character ('''').

            The 24-hour time, to the second.  Equivalent to "%H:%M:%S".
            [tm_sec, tm_min, tm_hour]

            The  weekday  as  a  number,  1-based  from  Monday (from ''1'' to
       ''7'').
            [tm_wday]

            The week number, where weeks start on Sunday, week 1 contains the
            first Sunday in a year, and earlier days are in week 0.  Formatted
            with  two  digits  (from  ''00''  to  ''53'').   See  also   '%W'.
       [tm_wday,
            tm_yday]

            The week number, where weeks start on Monday, week 1 contains
            January 4th, and earlier days are in the previous year.  Formatted
            with   two  digits  (from  ''01''  to  ''53'').   See  also  '%G'.
       [tm_year,
            tm_wday, tm_yday]

            The weekday as a  number,  0-based  from  Sunday  (from  ''0''  to
       ''6'').
            [tm_wday]

            The week number, where weeks start on Monday, week 1 contains the
            first Monday in a year, and earlier days are in week 0.  Formatted
            with two digits (from ''00'' to ''53'').  [tm_wday, tm_yday]

            Replaced by the preferred date representation in the current
            locale.  In the "C" locale this is equivalent to "%m/%d/%y".
            [tm_mon, tm_mday, tm_year]

            Replaced by the preferred time representation in the current
            locale.  In the "C" locale this is equivalent to "%H:%M:%S".
            [tm_sec, tm_min, tm_hour]

            The  last  two  digits  of  the  year  (from  ''00''  to  ''99'').
       [tm_year]
            (Implementation interpretation: always positive, even for negative
            years.)

            The full year, equivalent to '%C%y'.  It will always have at least
            four characters, but may have more.  The  year  is  accurate  even
       when
            tm_year added to the offset of 1900 overflows an int.  [tm_year]

            The offset from UTC. The format consists of a sign (negative is
            west  of  Greewich),  two characters for hour, then two characters
       for
            minutes (-hhmm or +hhmm).  If tm_isdst is negative, the offset is
            unknown and no output is generated; if it is zero, the offset is
            the standard offset for the current time zone; and if it is
            positive, the offset is the daylight savings offset for  the  cur�
       rent
            timezone.  The offset is determined from the TZ environment
            variable, as if by calling tzset().  [tm_isdst]

            The time zone name.  If tm_isdst is negative, no output is
            generated.  Otherwise, the time zone name is based on the TZ
            environment variable, as if by calling tzset().  [tm_isdst]

            A single character, ''%''.



RETURNS
       When  the  formatted time takes up no more than MAXSIZE characters, the
       result is the length of the formatted string.  Otherwise, if  the  for�
       matting operation was abandoned due to lack of room, the result is



PORTABILITY
       ANSI  C  requires 'strftime', but does 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'.

          'strftime' requires no supporting OS subroutines.


          *Bugs* hard-coding the "C" locale settings.



SEE ALSO
       strftime  is  part  of  the libc:_(libc)._the_ansi_c_library.  library.
       The full documentation for libc:_(libc)._the_ansi_c_library.  is  main�
       tained      as      a      Texinfo     manual.      If     info     and
       libc:_(libc)._the_ansi_c_library.  are properly installed at your site,
       the command

              info libc:_(libc)._the_ansi_c_library.

       will give you access to the complete manual.



NEWLIB                            March 2015                       STRFTIME(3)
-------------- next part --------------
--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


More information about the Cygwin mailing list