- break;
- }
- tok = strtok(line, " ");
- }
- DEBUGP(("second token: '%s'\n", tok));
-
- /* Third/Second column: Date DD-MMM-YYYY. */
-
- tok = strtok(NULL, "-");
- if (tok == NULL) continue;
- DEBUGP(("day: '%s'\n",tok));
- day = atoi(tok);
- tok = strtok(NULL, "-");
- if (!tok)
- {
- /* If the server produces garbage like
- 'EA95_0PS.GZ;1 No privilege for attempted operation'
- the first strtok(NULL, "-") will return everything until the end
- of the line and only the next strtok() call will return NULL. */
- DEBUGP(("nonsense in VMS listing, skipping this line\n"));
- xfree (line);
- break;
- }
- for (i=0; i<12; i++) if (!strcmp(tok,months[i])) break;
- /* Uknown months are mapped to January */
- month = i % 12 ;
- tok = strtok (NULL, " ");
- if (tok == NULL) continue;
- year = atoi (tok) - 1900;
- DEBUGP(("date parsed\n"));
-
- /* Fourth/Third column: Time hh:mm[:ss] */
- tok = strtok (NULL, " ");
- if (tok == NULL) continue;
- min = sec = 0;
- p = tok;
- hour = atoi (p);
- for (; *p && *p != ':'; ++p)
- ;
- if (*p)
- min = atoi (++p);
- for (; *p && *p != ':'; ++p)
- ;
- if (*p)
- sec = atoi (++p);
-
- DEBUGP(("YYYY/MM/DD HH:MM:SS - %d/%02d/%02d %02d:%02d:%02d\n",
- year+1900, month, day, hour, min, sec));
-
- /* Build the time-stamp (copy & paste from above) */
- timestruct.tm_sec = sec;
- timestruct.tm_min = min;
- timestruct.tm_hour = hour;
- timestruct.tm_mday = day;
- timestruct.tm_mon = month;
- timestruct.tm_year = year;
- timestruct.tm_wday = 0;
- timestruct.tm_yday = 0;
- timestruct.tm_isdst = -1;
- cur.tstamp = mktime (×truct); /* store the time-stamp */
-
- DEBUGP(("Timestamp: %ld\n", cur.tstamp));
-
- /* Skip the fifth column */
-
- tok = strtok(NULL, " ");
- if (tok == NULL) continue;