View Issue Details

IDProjectCategoryView StatusLast Update
0000626PluginsFTP (old)public2008-11-06 07:28
ReporterDiRTy_GaRRy Assigned Tovskirdin  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Platformx86OSWindowsOS Version2003 SP2
Product Version1.71 
Fixed in Version1.71 
Summary0000626: Для файлов размером более 4Гб размер всегда отображается на 1 байт больше
DescriptionДля файлов размером более 4Гб размер в панелях отображается на 1 байт больше, чем он есть на самом деле. Во внутренних диалогах плагина (например, диалог перезаписи) размер отображается нормально.
Steps To Reproduce1. Зайти на ftp
2. Зайти в папку, где есть файл размером более 4Гб;
3. Сравнить размер файла в панели и в листинге каталога.
Additional InformationПатч прилагаю.
TagsNo tags attached.

Activities

2008-10-29 14:48

 

ftp_large_files_size.patch (8,995 bytes)   
Index: ftp_AskOver.cpp
===================================================================
--- ftp_AskOver.cpp	(revision 2035)
+++ ftp_AskOver.cpp	(working copy)
@@ -12,7 +12,7 @@
 
     if ( p ) {
       //Size
-      FDigit( str,((__int64)p->nFileSizeHigh) * ((__int64)MAX_DWORD) + ((__int64)p->nFileSizeLow),14 );
+      FDigit( str,((__int64)p->nFileSizeHigh) << 32 | p->nFileSizeLow,14 );
       StrCat( buff,str,bsz );
 
       //Time
Index: ftp_cnUpload.cpp
===================================================================
--- ftp_cnUpload.cpp	(revision 2035)
+++ ftp_cnUpload.cpp	(working copy)
@@ -83,7 +83,7 @@
 
   if ( Host.SendAllo ) {
     if ( cmd[0] != Opt.cmdAppe[0] ) {
-      __int64 v = ((__int64)ffi.nFileSizeHigh) * MAXDWORD + ffi.nFileSizeLow;
+      __int64 v = ((__int64)ffi.nFileSizeHigh) << 32 | ffi.nFileSizeLow;
       Log(( "ALLO %I64u", v ));
       if ( command("%s %I64u",Opt.cmdAllo,v) != RPL_COMPLETE ) {
         Log(( "!allo" ));
Index: ftp_FileList.cpp
===================================================================
--- ftp_FileList.cpp	(revision 2035)
+++ ftp_FileList.cpp	(working copy)
@@ -129,8 +129,7 @@
            if ( IS_FLAG(p->FindData.dwFileAttributes,FILE_ATTRIBUTE_DIRECTORY) )
              fprintf( f,"<DIR>" );
             else
-             fprintf( f,"%10I64u",
-                      ((__int64)p->FindData.nFileSizeHigh) * MAX_DWORD + ((__int64)p->FindData.nFileSizeLow) );
+             fprintf( f,"%10I64u", ((__int64)p->FindData.nFileSizeHigh) << 32 | p->FindData.nFileSizeLow );
          }
          fprintf( f,"\n" );
 
@@ -159,7 +158,7 @@
            level = Max( 1, Opt.sli.RightBound - 10 - (int)strlen(m) - 1 );
            fprintf( f,"%*c%10I64u",
                     level,' ',
-                    ((__int64)p->FindData.nFileSizeHigh) * MAX_DWORD + ((__int64)p->FindData.nFileSizeLow) );
+                    ((__int64)p->FindData.nFileSizeHigh) << 32 | p->FindData.nFileSizeLow );
          }
          fprintf( f,"\n" );
        }
@@ -211,9 +210,7 @@
 
      for ( n = 0; n < cn; n++ ) {
        p = il->Item( MNUM(mi[n]) );
-       FDigit( str,
-               ((__int64)p->FindData.nFileSizeHigh) * ((__int64)MAX_DWORD) + ((__int64)p->FindData.nFileSizeLow),
-               -1 );
+       FDigit( str, ((__int64)p->FindData.nFileSizeHigh) << 32 | p->FindData.nFileSizeLow, -1 );
        szSize = Max( strLen(str),szSize );
 
        if ( IS_FLAG(p->FindData.dwFileAttributes,FILE_ATTRIBUTE_DIRECTORY) ) {
@@ -248,9 +245,7 @@
          *(m++) = ' ';
          *(m++) = FAR_VERT_CHAR;
          *(m++) = ' ';
-         FDigit( str,
-                 ((__int64)p->FindData.nFileSizeHigh) * ((__int64)MAX_DWORD) + ((__int64)p->FindData.nFileSizeLow),
-                 -1 );
+         FDigit( str, ((__int64)p->FindData.nFileSizeHigh) << 32 | p->FindData.nFileSizeLow, -1 );
          m += Sprintf( m,"%*s",szSize,str );
        }
 
@@ -280,8 +275,7 @@
          p = il->Item( MNUM(mi[n]) );
          if ( p->FindData.dwReserved1 != MAX_DWORD &&
               !IS_FLAG(p->FindData.dwFileAttributes,FILE_ATTRIBUTE_DIRECTORY) ) {
-           tsz += ((__int64)p->FindData.nFileSizeHigh) * ((__int64)MAX_DWORD) +
-                  ((__int64)p->FindData.nFileSizeLow);
+           tsz += ((__int64)p->FindData.nFileSizeHigh) << 32 | p->FindData.nFileSizeLow;
            tcn++;
          }
        }
Index: ftp_FPut.cpp
===================================================================
--- ftp_FPut.cpp	(revision 2035)
+++ ftp_FPut.cpp	(working copy)
@@ -207,8 +207,8 @@
       } else
       if ( (sz=FtpFileSize(hConnect,DestName.c_str())) != -1 ) {
         FindData.FindData = il.List[I].FindData;
-        FindData.FindData.nFileSizeHigh = ((DWORD) (sz / ((__int64)MAX_DWORD)) );
-        FindData.FindData.nFileSizeLow  = ((DWORD) (sz % ((__int64)MAX_DWORD)) );
+        FindData.FindData.nFileSizeHigh = (DWORD)((sz >> 32) & MAX_DWORD);
+        FindData.FindData.nFileSizeLow  = (DWORD)(sz & MAX_DWORD);
         DestAttr = 0;
         break;
       } else
Index: ftp_fUtils.cpp
===================================================================
--- ftp_fUtils.cpp	(revision 2035)
+++ ftp_fUtils.cpp	(working copy)
@@ -271,8 +271,7 @@
           return FALSE;
 
         if ( il ) {
-          il->TotalFullSize += ((__int64)pi[n].FindData.nFileSizeHigh) * ((__int64)MAX_DWORD) +
-                               ((__int64)pi[n].FindData.nFileSizeLow);
+          il->TotalFullSize += ((__int64)pi[n].FindData.nFileSizeHigh) << 32 | pi[n].FindData.nFileSizeLow;
           il->TotalFiles++;
 
           //Add
@@ -339,8 +338,8 @@
           if ( num != -1 && res ) {
             lSz = il->TotalFullSize - lSz;
             lCn = il->TotalFiles    - lCn;
-            il->Item(num)->FindData.nFileSizeHigh = (DWORD)(lSz / ((__int64)MAX_DWORD));
-            il->Item(num)->FindData.nFileSizeLow  = (DWORD)(lSz % ((__int64)MAX_DWORD));
+            il->Item(num)->FindData.nFileSizeHigh = (DWORD)((lSz >> 32) & MAX_DWORD);
+            il->Item(num)->FindData.nFileSizeLow  = (DWORD)(lSz & MAX_DWORD);
             il->Item(num)->FindData.dwReserved0   = (DWORD)lCn;
           }
         FTP_FreeFindData( DirPanelItem,DirItemsNumber,FromPlugin );
Index: ftp_Plugin.cpp
===================================================================
--- ftp_Plugin.cpp	(revision 2035)
+++ ftp_Plugin.cpp	(working copy)
@@ -284,7 +284,7 @@
   {
     __int64 sz;
     if ( pi )
-      sz = ((__int64)pi->FindData.nFileSizeHigh) * ((__int64)MAX_DWORD) + ((__int64)pi->FindData.nFileSizeLow);
+      sz = ((__int64)pi->FindData.nFileSizeHigh) << 32 | pi->FindData.nFileSizeLow;
      else
       sz = 0;
     InitFile( sz, SrcName, DestName);
@@ -294,7 +294,7 @@
   {
     __int64 sz;
     if ( pi )
-      sz = ((__int64)pi->nFileSizeHigh) * ((__int64)MAX_DWORD) + ((__int64)pi->nFileSizeLow);
+      sz = ((__int64)pi->nFileSizeHigh) << 32 | pi->nFileSizeLow;
      else
       sz = 0;
     InitFile( sz, SrcName, DestName);
Index: ftp_Queque.cpp
===================================================================
--- ftp_Queque.cpp	(revision 2035)
+++ ftp_Queque.cpp	(working copy)
@@ -503,8 +503,8 @@
          if ( FRealFile(ci.DestPath.c_str(),&fd) ) {
            if ( fsz != -1 ) {
              ffd = fd;
-             ffd.nFileSizeHigh = (DWORD)( fsz / ((__int64)MAX_DWORD) );
-             ffd.nFileSizeLow  = (DWORD)( fsz % ((__int64)MAX_DWORD) );
+             ffd.nFileSizeHigh = (DWORD)((fsz >> 32) & MAX_DWORD);
+             ffd.nFileSizeLow  = (DWORD)(fsz & MAX_DWORD);
              ci.MsgCode  = AskOverwrite( MDownloadTitle, TRUE, &fd, &ffd, ci.MsgCode );
            } else
              ci.MsgCode  = AskOverwrite( MDownloadTitle, TRUE, &fd, NULL, ci.MsgCode );
@@ -549,8 +549,8 @@
 
          if ( fsz != -1 ) {
            ffd = fd;
-           ffd.nFileSizeHigh = (DWORD)(fsz / ((__int64)MAX_DWORD));
-           ffd.nFileSizeLow  = (DWORD)(fsz % ((__int64)MAX_DWORD));
+           ffd.nFileSizeHigh = (DWORD)((fsz >> 32) & MAX_DWORD);
+           ffd.nFileSizeLow  = (DWORD)(fsz & MAX_DWORD);
            ci.MsgCode  = AskOverwrite( MUploadTitle, FALSE, &ffd, &fd, ci.MsgCode );
 
            switch( ci.MsgCode ) {
Index: lib/DirList/p_Main.cpp
===================================================================
--- lib/DirList/p_Main.cpp	(revision 2035)
+++ lib/DirList/p_Main.cpp	(working copy)
@@ -146,8 +146,8 @@
        return FALSE;
 
 //Size
-     p->FindData.nFileSizeHigh = (DWORD)( inf->size / MAX_DWORD );
-     p->FindData.nFileSizeLow  = (DWORD)( inf->size % MAX_DWORD );
+     p->FindData.nFileSizeHigh = (DWORD)((inf->size >> 32) & MAX_DWORD);
+     p->FindData.nFileSizeLow  = (DWORD)(inf->size & MAX_DWORD);
 
  return TRUE;
 }
Index: lib/Progress/p_TraficCB.cpp
===================================================================
--- lib/Progress/p_TraficCB.cpp	(revision 2035)
+++ lib/Progress/p_TraficCB.cpp	(working copy)
@@ -216,8 +216,7 @@
       for ( int i = 0; i < il->Count(); i++ )
         if ( !IS_FLAG(il->List[i].FindData.dwFileAttributes,FILE_ATTRIBUTE_DIRECTORY) &&
              il->List[i].FindData.dwReserved1 != MAX_DWORD ) {
-          TotalFullSize += ((__int64)il->List[i].FindData.nFileSizeHigh) * ((__int64)MAX_DWORD) +
-                           ((__int64)il->List[i].FindData.nFileSizeLow);
+          TotalFullSize += ((__int64)il->List[i].FindData.nFileSizeHigh) << 32 | il->List[i].FindData.nFileSizeLow;
           TotalFiles++;
         }
 }
@@ -268,8 +267,7 @@
      }
      FindClose(ff);
 
-     StartFileSize   = ((__int64)ffi.nFileSizeHigh) * ((__int64)MAX_DWORD) +
-                       ((__int64)ffi.nFileSizeLow);
+     StartFileSize   = ((__int64)ffi.nFileSizeHigh) << 32 | ffi.nFileSizeLow;
      FileSize        = 0;
 }
 
ftp_large_files_size.patch (8,995 bytes)   

DiRTy_GaRRy

2008-10-29 15:28

developer   bugnote:0001905

Упс... ещё не всё дочистил...

2008-10-29 15:40

 

ftp_large_files_size1.patch (9,983 bytes)   
Index: ftp_AskOver.cpp
===================================================================
--- ftp_AskOver.cpp	(revision 2035)
+++ ftp_AskOver.cpp	(working copy)
@@ -12,7 +12,7 @@
 
     if ( p ) {
       //Size
-      FDigit( str,((__int64)p->nFileSizeHigh) * ((__int64)MAX_DWORD) + ((__int64)p->nFileSizeLow),14 );
+      FDigit( str,((__int64)p->nFileSizeHigh) << 32 | p->nFileSizeLow,14 );
       StrCat( buff,str,bsz );
 
       //Time
Index: ftp_cnUpload.cpp
===================================================================
--- ftp_cnUpload.cpp	(revision 2035)
+++ ftp_cnUpload.cpp	(working copy)
@@ -83,7 +83,7 @@
 
   if ( Host.SendAllo ) {
     if ( cmd[0] != Opt.cmdAppe[0] ) {
-      __int64 v = ((__int64)ffi.nFileSizeHigh) * MAXDWORD + ffi.nFileSizeLow;
+      __int64 v = ((__int64)ffi.nFileSizeHigh) << 32 | ffi.nFileSizeLow;
       Log(( "ALLO %I64u", v ));
       if ( command("%s %I64u",Opt.cmdAllo,v) != RPL_COMPLETE ) {
         Log(( "!allo" ));
Index: ftp_FileList.cpp
===================================================================
--- ftp_FileList.cpp	(revision 2035)
+++ ftp_FileList.cpp	(working copy)
@@ -129,8 +129,7 @@
            if ( IS_FLAG(p->FindData.dwFileAttributes,FILE_ATTRIBUTE_DIRECTORY) )
              fprintf( f,"<DIR>" );
             else
-             fprintf( f,"%10I64u",
-                      ((__int64)p->FindData.nFileSizeHigh) * MAX_DWORD + ((__int64)p->FindData.nFileSizeLow) );
+             fprintf( f,"%10I64u", ((__int64)p->FindData.nFileSizeHigh) << 32 | p->FindData.nFileSizeLow );
          }
          fprintf( f,"\n" );
 
@@ -159,7 +158,7 @@
            level = Max( 1, Opt.sli.RightBound - 10 - (int)strlen(m) - 1 );
            fprintf( f,"%*c%10I64u",
                     level,' ',
-                    ((__int64)p->FindData.nFileSizeHigh) * MAX_DWORD + ((__int64)p->FindData.nFileSizeLow) );
+                    ((__int64)p->FindData.nFileSizeHigh) << 32 | p->FindData.nFileSizeLow );
          }
          fprintf( f,"\n" );
        }
@@ -211,9 +210,7 @@
 
      for ( n = 0; n < cn; n++ ) {
        p = il->Item( MNUM(mi[n]) );
-       FDigit( str,
-               ((__int64)p->FindData.nFileSizeHigh) * ((__int64)MAX_DWORD) + ((__int64)p->FindData.nFileSizeLow),
-               -1 );
+       FDigit( str, ((__int64)p->FindData.nFileSizeHigh) << 32 | p->FindData.nFileSizeLow, -1 );
        szSize = Max( strLen(str),szSize );
 
        if ( IS_FLAG(p->FindData.dwFileAttributes,FILE_ATTRIBUTE_DIRECTORY) ) {
@@ -248,9 +245,7 @@
          *(m++) = ' ';
          *(m++) = FAR_VERT_CHAR;
          *(m++) = ' ';
-         FDigit( str,
-                 ((__int64)p->FindData.nFileSizeHigh) * ((__int64)MAX_DWORD) + ((__int64)p->FindData.nFileSizeLow),
-                 -1 );
+         FDigit( str, ((__int64)p->FindData.nFileSizeHigh) << 32 | p->FindData.nFileSizeLow, -1 );
          m += Sprintf( m,"%*s",szSize,str );
        }
 
@@ -280,8 +275,7 @@
          p = il->Item( MNUM(mi[n]) );
          if ( p->FindData.dwReserved1 != MAX_DWORD &&
               !IS_FLAG(p->FindData.dwFileAttributes,FILE_ATTRIBUTE_DIRECTORY) ) {
-           tsz += ((__int64)p->FindData.nFileSizeHigh) * ((__int64)MAX_DWORD) +
-                  ((__int64)p->FindData.nFileSizeLow);
+           tsz += ((__int64)p->FindData.nFileSizeHigh) << 32 | p->FindData.nFileSizeLow;
            tcn++;
          }
        }
Index: ftp_FPut.cpp
===================================================================
--- ftp_FPut.cpp	(revision 2035)
+++ ftp_FPut.cpp	(working copy)
@@ -207,8 +207,8 @@
       } else
       if ( (sz=FtpFileSize(hConnect,DestName.c_str())) != -1 ) {
         FindData.FindData = il.List[I].FindData;
-        FindData.FindData.nFileSizeHigh = ((DWORD) (sz / ((__int64)MAX_DWORD)) );
-        FindData.FindData.nFileSizeLow  = ((DWORD) (sz % ((__int64)MAX_DWORD)) );
+        FindData.FindData.nFileSizeHigh = (DWORD)((sz >> 32) & MAX_DWORD);
+        FindData.FindData.nFileSizeLow  = (DWORD)(sz & MAX_DWORD);
         DestAttr = 0;
         break;
       } else
Index: ftp_fUtils.cpp
===================================================================
--- ftp_fUtils.cpp	(revision 2035)
+++ ftp_fUtils.cpp	(working copy)
@@ -271,8 +271,7 @@
           return FALSE;
 
         if ( il ) {
-          il->TotalFullSize += ((__int64)pi[n].FindData.nFileSizeHigh) * ((__int64)MAX_DWORD) +
-                               ((__int64)pi[n].FindData.nFileSizeLow);
+          il->TotalFullSize += ((__int64)pi[n].FindData.nFileSizeHigh) << 32 | pi[n].FindData.nFileSizeLow;
           il->TotalFiles++;
 
           //Add
@@ -339,8 +338,8 @@
           if ( num != -1 && res ) {
             lSz = il->TotalFullSize - lSz;
             lCn = il->TotalFiles    - lCn;
-            il->Item(num)->FindData.nFileSizeHigh = (DWORD)(lSz / ((__int64)MAX_DWORD));
-            il->Item(num)->FindData.nFileSizeLow  = (DWORD)(lSz % ((__int64)MAX_DWORD));
+            il->Item(num)->FindData.nFileSizeHigh = (DWORD)((lSz >> 32) & MAX_DWORD);
+            il->Item(num)->FindData.nFileSizeLow  = (DWORD)(lSz & MAX_DWORD);
             il->Item(num)->FindData.dwReserved0   = (DWORD)lCn;
           }
         FTP_FreeFindData( DirPanelItem,DirItemsNumber,FromPlugin );
Index: ftp_Mix.cpp
===================================================================
--- ftp_Mix.cpp	(revision 2035)
+++ ftp_Mix.cpp	(working copy)
@@ -286,7 +286,7 @@
      if ( lo == MAX_DWORD )
        return 0;
       else
-       return ((__int64)hi) * ((__int64)MAX_DWORD) + ((__int64)lo);
+       return ((__int64)hi) << 32 | lo;
 }
 
 __int64 DECLSPEC Fsize( HANDLE File )
@@ -296,12 +296,12 @@
      if ( low == MAX_DWORD )
        return 0;
       else
-       return ((__int64)hi) * ((__int64)MAX_DWORD) + ((__int64)low);
+       return ((__int64)hi) << 32 | low;
 }
 
 BOOL DECLSPEC Fmove( HANDLE file,__int64 restart )
-  {  LONG lo = (LONG)( restart % ((__int64)MAX_DWORD) ),
-          hi = (LONG)( restart / ((__int64)MAX_DWORD) );
+  {  LONG lo = (DWORD)(restart & MAX_DWORD),
+          hi = (DWORD)((restart >> 32) & MAX_DWORD);
 
     if ( SetFilePointer( file,lo,&hi,FILE_BEGIN ) == 0xFFFFFFFF &&
          GetLastError() != NO_ERROR )
Index: ftp_Plugin.cpp
===================================================================
--- ftp_Plugin.cpp	(revision 2035)
+++ ftp_Plugin.cpp	(working copy)
@@ -284,7 +284,7 @@
   {
     __int64 sz;
     if ( pi )
-      sz = ((__int64)pi->FindData.nFileSizeHigh) * ((__int64)MAX_DWORD) + ((__int64)pi->FindData.nFileSizeLow);
+      sz = ((__int64)pi->FindData.nFileSizeHigh) << 32 | pi->FindData.nFileSizeLow;
      else
       sz = 0;
     InitFile( sz, SrcName, DestName);
@@ -294,7 +294,7 @@
   {
     __int64 sz;
     if ( pi )
-      sz = ((__int64)pi->nFileSizeHigh) * ((__int64)MAX_DWORD) + ((__int64)pi->nFileSizeLow);
+      sz = ((__int64)pi->nFileSizeHigh) << 32 | pi->nFileSizeLow;
      else
       sz = 0;
     InitFile( sz, SrcName, DestName);
Index: ftp_Queque.cpp
===================================================================
--- ftp_Queque.cpp	(revision 2035)
+++ ftp_Queque.cpp	(working copy)
@@ -503,8 +503,8 @@
          if ( FRealFile(ci.DestPath.c_str(),&fd) ) {
            if ( fsz != -1 ) {
              ffd = fd;
-             ffd.nFileSizeHigh = (DWORD)( fsz / ((__int64)MAX_DWORD) );
-             ffd.nFileSizeLow  = (DWORD)( fsz % ((__int64)MAX_DWORD) );
+             ffd.nFileSizeHigh = (DWORD)((fsz >> 32) & MAX_DWORD);
+             ffd.nFileSizeLow  = (DWORD)(fsz & MAX_DWORD);
              ci.MsgCode  = AskOverwrite( MDownloadTitle, TRUE, &fd, &ffd, ci.MsgCode );
            } else
              ci.MsgCode  = AskOverwrite( MDownloadTitle, TRUE, &fd, NULL, ci.MsgCode );
@@ -549,8 +549,8 @@
 
          if ( fsz != -1 ) {
            ffd = fd;
-           ffd.nFileSizeHigh = (DWORD)(fsz / ((__int64)MAX_DWORD));
-           ffd.nFileSizeLow  = (DWORD)(fsz % ((__int64)MAX_DWORD));
+           ffd.nFileSizeHigh = (DWORD)((fsz >> 32) & MAX_DWORD);
+           ffd.nFileSizeLow  = (DWORD)(fsz & MAX_DWORD);
            ci.MsgCode  = AskOverwrite( MUploadTitle, FALSE, &ffd, &fd, ci.MsgCode );
 
            switch( ci.MsgCode ) {
Index: lib/DirList/p_Main.cpp
===================================================================
--- lib/DirList/p_Main.cpp	(revision 2035)
+++ lib/DirList/p_Main.cpp	(working copy)
@@ -146,8 +146,8 @@
        return FALSE;
 
 //Size
-     p->FindData.nFileSizeHigh = (DWORD)( inf->size / MAX_DWORD );
-     p->FindData.nFileSizeLow  = (DWORD)( inf->size % MAX_DWORD );
+     p->FindData.nFileSizeHigh = (DWORD)((inf->size >> 32) & MAX_DWORD);
+     p->FindData.nFileSizeLow  = (DWORD)(inf->size & MAX_DWORD);
 
  return TRUE;
 }
Index: lib/Progress/p_TraficCB.cpp
===================================================================
--- lib/Progress/p_TraficCB.cpp	(revision 2035)
+++ lib/Progress/p_TraficCB.cpp	(working copy)
@@ -216,8 +216,7 @@
       for ( int i = 0; i < il->Count(); i++ )
         if ( !IS_FLAG(il->List[i].FindData.dwFileAttributes,FILE_ATTRIBUTE_DIRECTORY) &&
              il->List[i].FindData.dwReserved1 != MAX_DWORD ) {
-          TotalFullSize += ((__int64)il->List[i].FindData.nFileSizeHigh) * ((__int64)MAX_DWORD) +
-                           ((__int64)il->List[i].FindData.nFileSizeLow);
+          TotalFullSize += ((__int64)il->List[i].FindData.nFileSizeHigh) << 32 | il->List[i].FindData.nFileSizeLow;
           TotalFiles++;
         }
 }
@@ -268,8 +267,7 @@
      }
      FindClose(ff);
 
-     StartFileSize   = ((__int64)ffi.nFileSizeHigh) * ((__int64)MAX_DWORD) +
-                       ((__int64)ffi.nFileSizeLow);
+     StartFileSize   = ((__int64)ffi.nFileSizeHigh) << 32 | ffi.nFileSizeLow;
      FileSize        = 0;
 }
 
ftp_large_files_size1.patch (9,983 bytes)   

DiRTy_GaRRy

2008-10-29 15:41

developer   bugnote:0001906

В патче ftp_large_files_size1.patch вроде ничего не забыл. Надо бы погонять на больших файлах...

vskirdin

2008-10-31 08:58

administrator   bugnote:0001909

проверяем: http://ifolder.ru/8839816

DiRTy_GaRRy

2008-11-04 23:15

developer   bugnote:0001921

У меня, вроде, работает. На неделе ещё погоняю.

Issue History

Date Modified Username Field Change
2008-10-29 14:48 DiRTy_GaRRy New Issue
2008-10-29 14:48 DiRTy_GaRRy File Added: ftp_large_files_size.patch
2008-10-29 15:28 DiRTy_GaRRy Note Added: 0001905
2008-10-29 15:40 DiRTy_GaRRy File Added: ftp_large_files_size1.patch
2008-10-29 15:41 DiRTy_GaRRy Note Added: 0001906
2008-10-31 08:58 vskirdin Status new => assigned
2008-10-31 08:58 vskirdin Assigned To => vskirdin
2008-10-31 08:58 vskirdin Note Added: 0001909
2008-10-31 08:58 vskirdin Status assigned => feedback
2008-11-04 23:15 DiRTy_GaRRy Note Added: 0001921
2008-11-06 05:54 DiRTy_GaRRy Status feedback => resolved
2008-11-06 05:54 DiRTy_GaRRy Resolution open => fixed
2008-11-06 07:28 vskirdin Status resolved => closed
2008-11-06 07:28 vskirdin Fixed in Version => 1.71
2013-05-20 21:30 alexy Category FTP => FTP (old)