Fix for time_t != long

`time_t` may not be `long`, for examples, unsigned (long) int,
long long int (64bit integer type on 32bit arch), double, and so on.

Change to use difftime(3) to retrieve seconds.

Signed-off-by: OBATA Akio <obache@wizdas.com>
(cherry picked from commit 9b8b7c1299)
pull/20/head
OBATA Akio 6 years ago committed by Slávek Banko
parent b6ae5c8687
commit 99d8c77851
No known key found for this signature in database
GPG Key ID: 608F5293A04BE668

@ -247,7 +247,7 @@ public:
if( stat(filename.c_str(), &st) == 0 )
{
char mtime[32];
sprintf(mtime,"[%ld]",st.st_mtime);
snprintf(mtime,sizeof(mtime),"[%.0f]",difftime(st.st_mtime, (time_t)0));
result += filename + mtime;
}
else

@ -1107,11 +1107,11 @@ load( void )
/* This is some kind of profiling code. I don't change it
to wm_lib_message() for now... */
#ifndef NDEBUG
long t1, t2;
time_t t1, t2;
if( getenv( "WORKMAN_DEBUG" ) != NULL )
{
time(&t1);
printf("%s (%d): search start = %ld\n", __FILE__, __LINE__, t1);
printf("%s (%d): search start = %.0f\n", __FILE__, __LINE__, difftime(t1, (time_t)0));
fflush(stdout);
}
#endif
@ -1158,7 +1158,7 @@ load( void )
if( getenv( "WORKMAN_DEBUG" ) != NULL )
{
time(&t2);
printf("%s (%d): db search end = %ld, elapsed = %ld\n", __FILE__, __LINE__, t2, t2 - t1);
printf("%s (%d): db search end = %.0f, elapsed = %.0f\n", __FILE__, __LINE__, difftime(t2, (time_t)0), difftime(t2, t1));
fflush(stdout);
}
#endif
@ -1192,7 +1192,7 @@ load( void )
if( getenv( "WORKMAN_DEBUG" ) != NULL )
{
time(&t2);
printf("%s (%d): search end = %ld, elapsed = %ld\n", __FILE__, __LINE__, t2, t2 - t1);
printf("%s (%d): search end = %.0f, elapsed = %.0f\n", __FILE__, __LINE__, difftime(t2, (time_t)0), difftime(t2, t1));
fflush(stdout);
}
#endif

Loading…
Cancel
Save