Date: 2024-09-20 Description: use gp_get_realtime to fetch time to use the same single interface everywhere consistently. --- a/devices/vector/gdevpdf.c +++ b/devices/vector/gdevpdf.c @@ -437,6 +437,7 @@ if (!pdev->OmitInfoDate) { struct tm tms; + long secs_ns[2]; time_t t; char buf[1+2+4+2+2+2+2+2+1+2+1+2+1+1+1]; /* (D:yyyymmddhhmmssZhh'mm')\0 */ int timeoffset; @@ -448,7 +449,8 @@ timesign = 'Z'; timeoffset = 0; #else - time(&t); + gp_get_realtime(secs_ns); + t = secs_ns[0]; tms = *gmtime(&t); tms.tm_isdst = -1; timeoffset = (int)difftime(t, mktime(&tms)); /* tz+dst in seconds */ --- a/devices/vector/gdevpdfe.c +++ b/devices/vector/gdevpdfe.c @@ -216,6 +216,7 @@ { /* We don't write a day time because we don't have a time zone. */ struct tm tms; + long secs_ns[2]; time_t t; char buf1[4+1+2+1+2+1]; /* yyyy-mm-dd\0 */ @@ -223,7 +224,8 @@ memset(&t, 0, sizeof(t)); memset(&tms, 0, sizeof(tms)); #else - time(&t); + gp_get_realtime(secs_ns); + t = secs_ns[0]; tms = *localtime(&t); #endif gs_snprintf(buf1, sizeof(buf1), --- a/devices/vector/gdevpsu.c +++ b/devices/vector/gdevpsu.c @@ -187,6 +187,7 @@ dev->dname); #endif { + long secs_ns[2]; time_t t; struct tm tms; @@ -194,7 +195,8 @@ memset(&t, 0, sizeof(t)); memset(&tms, 0, sizeof(tms)); #else - time(&t); + gp_get_realtime(secs_ns); + t = secs_ns[0]; tms = *localtime(&t); #endif fprintf(f, "%%%%CreationDate: %d/%02d/%02d %02d:%02d:%02d\n",