*** rcs_import.cc~ 2005-03-20 11:05:48.000000000 +0000 --- rcs_import.cc 2005-04-18 11:07:52.674944723 +0100 *************** *** 712,729 **** memset(&t, 0, sizeof(t)); char const * dp = delta->second->date.c_str(); L(F("Calculating time of %s\n") % dp); - #ifdef WIN32 I(sscanf(dp, "%d.%d.%d.%d.%d.%d", &(t.tm_year), &(t.tm_mon), &(t.tm_mday), &(t.tm_hour), &(t.tm_min), &(t.tm_sec))==6); t.tm_mon--; // Apparently some RCS files have 2 digit years, others four; tm always // wants a 2 (or 3) digit year (years since 1900). if (t.tm_year > 1900) t.tm_year-=1900; - #else - if (strptime(dp, "%y.%m.%d.%H.%M.%S", &t) == NULL) - I(strptime(dp, "%Y.%m.%d.%H.%M.%S", &t) != NULL); - #endif time=mktime(&t); L(F("= %i\n") % time); } --- 712,732 ---- memset(&t, 0, sizeof(t)); char const * dp = delta->second->date.c_str(); L(F("Calculating time of %s\n") % dp); I(sscanf(dp, "%d.%d.%d.%d.%d.%d", &(t.tm_year), &(t.tm_mon), &(t.tm_mday), &(t.tm_hour), &(t.tm_min), &(t.tm_sec))==6); t.tm_mon--; + + //Some very old RCS files have the datestamp as dd.mm.yy.hh.mm.ss + if (t.tm_year <= 31) { + unsigned int y = t.tm_year; + t.tm_year = t.tm_mday; + t.tm_mday = y; + } + // Apparently some RCS files have 2 digit years, others four; tm always // wants a 2 (or 3) digit year (years since 1900). if (t.tm_year > 1900) t.tm_year-=1900; time=mktime(&t); L(F("= %i\n") % time); }