浏览代码

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

https://winscp.net/tracker/1655

Source commit: 76d5154b4eb12ac26441c64b508842f386f41c8d
Martin Prikryl 7 年之前
父节点
当前提交
55d3e2a0a6
共有 2 个文件被更改,包括 8 次插入2 次删除
  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