Message ID | 20210505103702.521457-4-berrange@redhat.com |
---|---|
State | New |
Headers | show |
Series | replace all use of strftime() with g_date_time_format() | expand |
ping: anyone willing to give a review of this one On Wed, May 05, 2021 at 11:36:58AM +0100, Daniel P. Berrangé wrote: > The GDateTime APIs provided by GLib avoid portability pitfalls, such > as some platforms where 'struct timeval.tv_sec' field is still 'long' > instead of 'time_t'. When combined with automatic cleanup, GDateTime > often results in simpler code too. > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > --- > hw/net/rocker/rocker.h | 11 +++-------- > 1 file changed, 3 insertions(+), 8 deletions(-) > > diff --git a/hw/net/rocker/rocker.h b/hw/net/rocker/rocker.h > index 941c932265..412fa44d01 100644 > --- a/hw/net/rocker/rocker.h > +++ b/hw/net/rocker/rocker.h > @@ -25,14 +25,9 @@ > #if defined(DEBUG_ROCKER) > # define DPRINTF(fmt, ...) \ > do { \ > - struct timeval tv; \ > - char timestr[64]; \ > - time_t now; \ > - gettimeofday(&tv, NULL); \ > - now = tv.tv_sec; \ > - strftime(timestr, sizeof(timestr), "%T", localtime(&now)); \ > - fprintf(stderr, "%s.%06ld ", timestr, tv.tv_usec); \ > - fprintf(stderr, "ROCKER: " fmt, ## __VA_ARGS__); \ > + g_autoptr(GDateTime) now = g_date_time_new_now_local(); \ > + g_autofree char *nowstr = g_date_time_format(now, "%T.%f");\ > + fprintf(stderr, "%s ROCKER: " fmt, nowstr, ## __VA_ARGS__);\ > } while (0) > #else > static inline GCC_FMT_ATTR(1, 2) int DPRINTF(const char *fmt, ...) > -- > 2.31.1 > Regards, Daniel
Daniel P. Berrangé <berrange@redhat.com> wrote: > ping: anyone willing to give a review of this one > > On Wed, May 05, 2021 at 11:36:58AM +0100, Daniel P. Berrangé wrote: >> The GDateTime APIs provided by GLib avoid portability pitfalls, such >> as some platforms where 'struct timeval.tv_sec' field is still 'long' >> instead of 'time_t'. When combined with automatic cleanup, GDateTime >> often results in simpler code too. >> >> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> >> --- >> hw/net/rocker/rocker.h | 11 +++-------- >> 1 file changed, 3 insertions(+), 8 deletions(-) >> >> diff --git a/hw/net/rocker/rocker.h b/hw/net/rocker/rocker.h >> index 941c932265..412fa44d01 100644 >> --- a/hw/net/rocker/rocker.h >> +++ b/hw/net/rocker/rocker.h >> @@ -25,14 +25,9 @@ >> #if defined(DEBUG_ROCKER) >> # define DPRINTF(fmt, ...) \ >> do { \ >> - struct timeval tv; \ >> - char timestr[64]; \ >> - time_t now; \ >> - gettimeofday(&tv, NULL); \ >> - now = tv.tv_sec; \ >> - strftime(timestr, sizeof(timestr), "%T", localtime(&now)); \ >> - fprintf(stderr, "%s.%06ld ", timestr, tv.tv_usec); \ >> - fprintf(stderr, "ROCKER: " fmt, ## __VA_ARGS__); \ >> + g_autoptr(GDateTime) now = g_date_time_new_now_local(); \ >> + g_autofree char *nowstr = g_date_time_format(now, "%T.%f");\ >> + fprintf(stderr, "%s ROCKER: " fmt, nowstr, ## __VA_ARGS__);\ >> } while (0) >> #else >> static inline GCC_FMT_ATTR(1, 2) int DPRINTF(const char *fmt, ...) Reviewed-by: Juan Quintela <quintela@redhat.com>
diff --git a/hw/net/rocker/rocker.h b/hw/net/rocker/rocker.h index 941c932265..412fa44d01 100644 --- a/hw/net/rocker/rocker.h +++ b/hw/net/rocker/rocker.h @@ -25,14 +25,9 @@ #if defined(DEBUG_ROCKER) # define DPRINTF(fmt, ...) \ do { \ - struct timeval tv; \ - char timestr[64]; \ - time_t now; \ - gettimeofday(&tv, NULL); \ - now = tv.tv_sec; \ - strftime(timestr, sizeof(timestr), "%T", localtime(&now)); \ - fprintf(stderr, "%s.%06ld ", timestr, tv.tv_usec); \ - fprintf(stderr, "ROCKER: " fmt, ## __VA_ARGS__); \ + g_autoptr(GDateTime) now = g_date_time_new_now_local(); \ + g_autofree char *nowstr = g_date_time_format(now, "%T.%f");\ + fprintf(stderr, "%s ROCKER: " fmt, nowstr, ## __VA_ARGS__);\ } while (0) #else static inline GCC_FMT_ATTR(1, 2) int DPRINTF(const char *fmt, ...)
The GDateTime APIs provided by GLib avoid portability pitfalls, such as some platforms where 'struct timeval.tv_sec' field is still 'long' instead of 'time_t'. When combined with automatic cleanup, GDateTime often results in simpler code too. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- hw/net/rocker/rocker.h | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-)