URI: 
       ttest-parse_yearmonthday.c - mixmaster - mixmaster 3.0 patched for libressl
  HTML git clone git://parazyd.org/mixmaster.git
   DIR Log
   DIR Files
   DIR Refs
   DIR README
       ---
       ttest-parse_yearmonthday.c (1138B)
       ---
            1 #include <stdio.h>
            2 #include <stdlib.h>
            3 #include <time.h>
            4 
            5 #define LINELEN 128
            6 
            7 time_t parse_yearmonthday(char* str)
            8 {
            9   time_t date;
           10   int day, month, year;
           11 
           12   if (sscanf( str, "%d-%d-%d", &year, &month, &day) == 3 ) {
           13     struct tm timestruct;
           14     char *tz;
           15 
           16     tz = getenv("TZ");
           17 #ifdef HAVE_SETENV
           18     setenv("TZ", "GMT", 1);
           19 #else /* end of HAVE_SETENV */
           20     putenv("TZ=GMT");
           21 #endif /* else if not HAVE_SETENV */
           22     tzset();
           23     memset(&timestruct, 0, sizeof(timestruct));
           24     timestruct.tm_mday = day;
           25     timestruct.tm_mon = month - 1;
           26     timestruct.tm_year = year - 1900;
           27     date = mktime(&timestruct);
           28 #ifdef HAVE_SETENV
           29     if (tz)
           30       setenv("TZ", tz, 1);
           31     else
           32       unsetenv("TZ");
           33 #else  /* end of HAVE_SETENV */
           34     if (tz) {
           35       char envstr[LINELEN];
           36       snprintf(envstr, LINELEN, "TZ=%s", tz);
           37       putenv(envstr);
           38     } else
           39       putenv("TZ=");
           40 #endif /* else if not HAVE_SETENV */
           41     tzset();
           42     return date;
           43   } else
           44     return -1;
           45 }
           46 
           47 int main()
           48 {
           49         int t;
           50         
           51         t = parse_yearmonthday("2003-04-02");
           52         if (t == 1049241600) {
           53                 printf("OK.\n");
           54                 exit(0);
           55         } else {
           56                 printf("Failed.\n");
           57                 exit(1);
           58         }
           59 }