1.1 --- a/tools/installer/InstallerUtil.cpp Sun Nov 25 02:45:12 2007 +0000
1.2 +++ b/tools/installer/InstallerUtil.cpp Sun Nov 25 04:46:18 2007 +0000
1.3 @@ -175,13 +175,13 @@
1.4 {
1.5 size_t len = _tcslen(path);
1.6
1.7 - for (size_t i = 0;
1.8 - i >= 0 && i < len - 1;
1.9 + for (size_t i = len - 1;
1.10 + i >= 0 && i < len;
1.11 i--)
1.12 {
1.13 if (path[i] == '\\' || path[i] == '/')
1.14 {
1.15 - return &path[i];
1.16 + return &path[i+1];
1.17 }
1.18 }
1.19
1.20 @@ -223,9 +223,90 @@
1.21
1.22 if (val == 0 || val == IDYES)
1.23 {
1.24 + UpdateGlobalPosition(hWnd);
1.25 EndDialog(hWnd, NULL);
1.26 return (INT_PTR)TRUE;
1.27 }
1.28
1.29 return (INT_PTR)FALSE;
1.30 }
1.31 +
1.32 +size_t UTIL_GetFileSize(const TCHAR *file_path)
1.33 +{
1.34 + HANDLE hFile;
1.35 +
1.36 + if ((hFile = CreateFile(file_path,
1.37 + GENERIC_READ,
1.38 + FILE_SHARE_READ,
1.39 + NULL,
1.40 + OPEN_EXISTING,
1.41 + FILE_ATTRIBUTE_NORMAL,
1.42 + NULL))
1.43 + != INVALID_HANDLE_VALUE)
1.44 + {
1.45 + LARGE_INTEGER size;
1.46 +
1.47 + if (GetFileSizeEx(hFile, &size))
1.48 + {
1.49 + CloseHandle(hFile);
1.50 + return (size_t)size.QuadPart;
1.51 + }
1.52 +
1.53 + CloseHandle(hFile);
1.54 + }
1.55 +
1.56 + return 0;
1.57 +}
1.58 +
1.59 +#if 0
1.60 +size_t UTIL_GetFolderSize(const TCHAR *basepath)
1.61 +{
1.62 + HANDLE hFind;
1.63 + WIN32_FIND_DATA fd;
1.64 + TCHAR search_path[MAX_PATH];
1.65 + size_t total = 0;
1.66 +
1.67 + UTIL_PathFormat(search_path,
1.68 + sizeof(search_path) / sizeof(TCHAR),
1.69 + _T("%s\\*.*"),
1.70 + basepath);
1.71 +
1.72 + if ((hFind = FindFirstFile(search_path, &fd)) == INVALID_HANDLE_VALUE)
1.73 + {
1.74 + return 0;
1.75 + }
1.76 +
1.77 + do
1.78 + {
1.79 + if (tstrcasecmp(fd.cFileName, _T(".")) == 0
1.80 + || tstrcasecmp(fd.cFileName, _T("..")) == 0)
1.81 + {
1.82 + continue;
1.83 + }
1.84 +
1.85 + if ((fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY)
1.86 + {
1.87 + UTIL_PathFormat(search_path,
1.88 + sizeof(search_path) / sizeof(TCHAR),
1.89 + _T("%s\\%s"),
1.90 + basepath,
1.91 + fd.cFileName);
1.92 + total += UTIL_GetFolderSize(search_path);
1.93 + }
1.94 + else
1.95 + {
1.96 + UTIL_PathFormat(search_path,
1.97 + sizeof(search_path) / sizeof(TCHAR),
1.98 + _T("%s\\%s"),
1.99 + basepath,
1.100 + fd.cFileName);
1.101 +
1.102 + total += UTIL_GetFileSize(search_path);
1.103 + }
1.104 + } while (FindNextFile(hFind, &fd));
1.105 +
1.106 + FindClose(hFind);
1.107 +
1.108 + return total;
1.109 +}
1.110 +#endif