Browse Source

Bug 1655: Cannot handle Modify fact of MLSD/MLST FTP response containing fraction

https://winscp.net/tracker/1655
(cherry picked from commit 55d3e2a0a63d1da32c9bfaa273d65805c8fdf323)

Source commit: 3411aa10a9110a569a918556fcf70d30ee5eba1b
Martin Prikryl 7 years ago
parent
commit
1fac8419d5
2 changed files with 8 additions and 2 deletions
  1. 7 1
      source/filezilla/FtpListResult.cpp
  2. 1 1
      source/filezilla/FtpListResult.h

+ 7 - 1
source/filezilla/FtpListResult.cpp

@@ -1473,13 +1473,19 @@ BOOL CFtpListResult::parseAsMlsd(const char *line, const int linelen, t_director
   return TRUE;
 }
 
-bool CFtpListResult::parseMlsdDateTime(const CString value, t_directory::t_direntry::t_date &date) const
+bool CFtpListResult::parseMlsdDateTime(CString value, t_directory::t_direntry::t_date &date) const
 {
   if (value.IsEmpty())
   {
     return FALSE;
   }
 
+  int P = value.Find('.');
+  if (P >= 0)
+  {
+    value = value.Left(P);
+  }
+
   bool result = FALSE;
   int Year, Month, Day, Hours, Minutes, Seconds;
   Year=Month=Day=Hours=Minutes=Seconds=0;

+ 1 - 1
source/filezilla/FtpListResult.h

@@ -61,7 +61,7 @@ private:
   bool parseTime(const char * str, int len, t_directory::t_direntry::t_date & date) const;
   bool ParseSize(const char * str, int len, __int64 & size) const;
 
-  bool parseMlsdDateTime(const CString value, t_directory::t_direntry::t_date & date) const;
+  bool parseMlsdDateTime(CString value, t_directory::t_direntry::t_date & date) const;
 
   int pos;
   struct t_list