mktime32.c raw

   1  #include "time32.h"
   2  #include <time.h>
   3  #include <errno.h>
   4  #include <stdint.h>
   5  
   6  time32_t __mktime32(struct tm *tm)
   7  {
   8  	struct tm tmp = *tm;
   9  	time_t t = mktime(&tmp);
  10  	if (t < INT32_MIN || t > INT32_MAX) {
  11  		errno = EOVERFLOW;
  12  		return -1;
  13  	}
  14  	*tm = tmp;
  15  	return t;
  16  }
  17