Skip to content

Commit

Permalink
Fix two more problems with time zones and epoch handling
Browse files Browse the repository at this point in the history
src/cmd/ksh93/edit/history.c:
 - The `time_t` data type is usually 64-bit, so cast `t` to an
   unsigned long and use the correct format specifier with sfprintf.

src/lib/libast/tm/tmdata.c:
 - Update the leap second array by adding the current leap
   seconds that were absent, being:

   2016-12-31+23:59:60  1483228826
   2015-06-30+23:59:60  1435708825
   2012-06-30+23:59:60  1341100824

   I couldn't find a proper list of leap seconds in Unix Epoch time,
   so I used an Epoch Converter:
   https://www.epochconverter.com/
   The converter doesn't support leap seconds, so each conversion
   had to be corrected by adding the number of leap seconds required
   (e.g. 1230767999 + 24 = 1230768023, for 2008-12-31+23:59:60 in GMT).
  • Loading branch information
JohnoKing committed Jun 14, 2020
1 parent 6109f54 commit 51f97cf
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/cmd/ksh93/edit/history.c
Original file line number Diff line number Diff line change
Expand Up @@ -834,7 +834,7 @@ static int hist_write(Sfio_t *iop,const void *buff,register int insize,Sfdisc_t*
if(hp->auditfp)
{
time_t t=time((time_t*)0);
sfprintf(hp->auditfp,"%u;%u;%s;%*s%c",sh_isoption(SH_PRIVILEGED)?shgd->euserid:shgd->userid,t,hp->tty,size,buff,0);
sfprintf(hp->auditfp,"%u;%lu;%s;%*s%c",sh_isoption(SH_PRIVILEGED)?shgd->euserid:shgd->userid,(unsigned long)t,hp->tty,size,buff,0);
sfsync(hp->auditfp);
}
#endif /* SHOPT_AUDIT */
Expand Down
3 changes: 3 additions & 0 deletions src/lib/libast/tm/tmdata.c
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,9 @@ static short sum[] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 36

static Tm_leap_t leap[] =
{
1483228826, 27, /* 2016-12-31+23:59:60-0000 */
1435708825, 26, /* 2015-06-30+23:59:60-0000 */
1341100824, 25, /* 2012-06-30+23:59:60-0000 */
1230768023, 24, /* 2008-12-31+23:59:60-0000 */
1136073622, 23, /* 2005-12-31+23:59:60-0000 */
915148821, 22, /* 1998-12-31+23:59:60-0000 */
Expand Down

0 comments on commit 51f97cf

Please sign in to comment.