From: Wolfgang Bauer Date: Thu, 07 Jan 2016 12:38:55 +0000 Subject: [kio_ftp] fix display of file/directory modification time/date X-Git-Url: http://quickgit.kde.org/?p=kio.git&a=commitdiff&h=68af1d7e89b7fed136d4cc62b76c1c6ded2d94eb --- [kio_ftp] fix display of file/directory modification time/date - QDate() treats the year literally (i.e. 90 is really year 90, not 1990), so subtracting 1900 is wrong. - Use QDate::currentDate() instead of QDateTime::currentDateTime(), we only need the current date anyway - Initialize day, month, and year to the current date instead of 0. In the case when no year is mentioned in the server's reply (the year is implicit), it wasn't set to the current year at all, so the result was either 0 or -1. BUG: 354597 FIXED-IN: 5.19.0 REVIEW: 126659 --- --- a/src/ioslaves/ftp/ftp.cpp +++ b/src/ioslaves/ftp/ftp.cpp @@ -1763,18 +1763,16 @@ // Parsing the date is somewhat tricky // Examples : "Oct 6 22:49", "May 13 1999" - // First get current time - we need the current month and year - QDateTime currentTime(QDateTime::currentDateTime()); - int currentMonth = currentTime.date().month(); + // First get current date - we need the current month and year + QDate currentDate(QDate::currentDate()); + int currentMonth = currentDate.month(); //qDebug() << "Current time :" << asctime( tmptr ); - // Reset time fields - currentTime.setTime(QTime(0, 0, 0)); - // Get day number (always second field) - int day = 0; - int month = 0; - int year = 0; + int day = currentDate.day(); + int month = currentDate.month(); + int year = currentDate.year(); int minute = 0; int hour = 0; + // Get day number (always second field) if (p_date_2) { day = atoi(p_date_2); } @@ -1794,7 +1792,7 @@ // Parse third field if (qstrlen(p_date_3) == 4) { // 4 digits, looks like a year - year = atoi(p_date_3) - 1900; + year = atoi(p_date_3); } else { // otherwise, the year is implicit // according to man ls, this happens when it is between than 6 months