|
Lines 554-560
FILE *log_fp(void)
Link Here
|
| 554 |
* args are like printf, with the addition of the following format chars: |
554 |
* args are like printf, with the addition of the following format chars: |
| 555 |
* - %m expands to strerror(errno) |
555 |
* - %m expands to strerror(errno) |
| 556 |
* - %t expands to strftime("%x %X") [ locally preferred short date/time ] |
556 |
* - %t expands to strftime("%x %X") [ locally preferred short date/time ] |
| 557 |
* - %T expands to rfc822 date time [ "dd Mon yyyy hh:mm:ss GMT offset" ] |
557 |
* - %T expands to rfc2822 date time [ "dd, Mon yyyy hh:mm:ss GMT offset" ] |
| 558 |
* |
558 |
* |
| 559 |
* simple format specifiers are handled explicitly to avoid calls to |
559 |
* simple format specifiers are handled explicitly to avoid calls to |
| 560 |
* vsnprintf and allow dynamic sizing of the message buffer. If a call |
560 |
* vsnprintf and allow dynamic sizing of the message buffer. If a call |
|
Lines 599-606
static char *vxstrfmt(const char *fmt, va_list ap)
Link Here
|
| 599 |
case 't': /* "%t" => locally preferred date/time*/ |
599 |
case 't': /* "%t" => locally preferred date/time*/ |
| 600 |
xstrftimecat(buf, "%x %X"); |
600 |
xstrftimecat(buf, "%x %X"); |
| 601 |
break; |
601 |
break; |
| 602 |
case 'T': /* "%T" => "dd Mon yyyy hh:mm:ss off" */ |
602 |
case 'T': /* "%T" => "dd, Mon yyyy hh:mm:ss off" */ |
| 603 |
xstrftimecat(buf, "%a %d %b %Y %H:%M:%S %z"); |
603 |
xstrftimecat(buf, "%a, %d %b %Y %H:%M:%S %z"); |
| 604 |
break; |
604 |
break; |
| 605 |
#if defined USE_USEC_CLOCK |
605 |
#if defined USE_USEC_CLOCK |
| 606 |
case 'M': /* "%M" => "usec" */ |
606 |
case 'M': /* "%M" => "usec" */ |