Changeset 11e78d5 for util.c


Ignore:
Timestamp:
Jul 22, 2011, 7:20:26 PM (10 years ago)
Author:
Jason Gross <jgross@mit.edu>
Children:
85bb19b
Parents:
f661cee
git-author:
Jason Gross <jgross@mit.edu> (07/22/11 10:43:43)
git-committer:
Jason Gross <jgross@mit.edu> (07/22/11 19:20:26)
Message:
Show the time zone in :info; replace ctime with strftime

This fixes trac-#146.

The new function owl_util_time_to_timestr takes a const struct tm *
instead of a const time_t because, although we pass around time_t for
just about everything else, this lets the caller decide whether to use
localtime or gmtime (UTC).

Note: I'm not sure that "%c" (which is locale-dependent) will always
include the time zone.  If not, or if we want a bit more consistency, we
can switch to something like "%a %b %d %H:%M:%S %Y %Z" (like "Fri Jul 22
15:39:45 2011 EDT") or "%a %b %d, %Y %h:%M:%S %p %Z" (like "Fri Jul 22,
2011 03:39:45 PM 2011 EDT") or something.  On linerva, "%c" seems to be
equivalent to "%a %d %b %Y %h:%M:%S %p %Z" (like "Fri 22 Jul 2011
03:39:45 PM EDT").
File:
1 edited

Legend:

Unmodified
Added
Removed
  • util.c

    r8219374 r11e78d5  
    296296}
    297297
     298CALLER_OWN char *owl_util_time_to_timestr(const struct tm *time)
     299{
     300  /* 32 chosen for first attempt because timestr will end up being
     301   * something like "Www Mmm dd hh:mm:ss AM yyyy UTC\0" */
     302  size_t timestr_size = 16;
     303  char *timestr = NULL;
     304  do {
     305    timestr_size *= 2;
     306    timestr = g_realloc(timestr, sizeof(char) * timestr_size);
     307  } while (strftime(timestr, timestr_size, "%c", time) == 0);
     308  return timestr;
     309}
     310
    298311/* These are in order of their value in owl.h */
    299312static const struct {
Note: See TracChangeset for help on using the changeset viewer.