Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.8, 0.8.1, and 0.8.2

Directory.h: define our own thg_stat struct

Changeset 18a295567930

Parent 41302b34fba4

by Adrian Buehlmann

Changes to 3 files · Browse files at 18a295567930 Showing diff from parent 41302b34fba4 Diff from another changeset...

 
22
23
24
25
 
26
27
28
 
36
37
38
39
40
 
 
 
41
42
43
44
45
46
 
47
48
49
50
51
52
 
 
53
54
55
 
220
221
222
223
 
224
225
226
 
22
23
24
 
25
26
27
28
 
36
37
38
 
 
39
40
41
42
43
44
45
46
 
47
48
49
50
51
 
 
52
53
54
55
56
 
221
222
223
 
224
225
226
227
@@ -22,7 +22,7 @@
 #include <shlwapi.h>     -int lstat(const char* file, struct _stat& rstat) +int lstat(const char* file, thg_stat& rstat)  {   const __int64 days_between_epochs = 134774L; /* days between 1.1.1601 and 1.1.1970 */   const __int64 secs_between_epochs = (__int64)days_between_epochs * 86400L; @@ -36,20 +36,21 @@
  return -1;   FindClose(hfind);   - rstat.st_mtime = *(__int64*)&data.ftLastWriteTime / divisor - secs_between_epochs; - rstat.st_size = (data.nFileSizeHigh << sizeof(data.nFileSizeHigh)) | data.nFileSizeLow; + rstat.mtime = *(__int64*)&data.ftLastWriteTime / divisor - secs_between_epochs; + rstat.size = (data.nFileSizeHigh << sizeof(data.nFileSizeHigh)) | data.nFileSizeLow; + rstat.isdir = (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0;     return 0;  }     -char Direntry::status(const struct _stat& stat) const +char Direntry::status(const thg_stat& stat) const  {   switch (this->state)   {   case 'n': - if (this->mtime == (unsigned)stat.st_mtime - && this->size == (unsigned)stat.st_size + if (this->mtime == (unsigned)stat.mtime + && this->size == (unsigned)stat.size   )   return 'C';   else @@ -220,7 +221,7 @@
  added = true;   }   - struct _stat stat; + thg_stat stat;   const std::string hrs = hgroot + '\\';   for (FilesT::iterator i = files_.begin(); i != files_.end(); ++i)   {
 
21
22
23
24
 
 
 
 
 
 
 
 
25
26
27
 
34
35
36
37
 
38
39
40
 
21
22
23
 
24
25
26
27
28
29
30
31
32
33
34
 
41
42
43
 
44
45
46
47
@@ -21,7 +21,14 @@
 #include <vector>     -int lstat(const char* file, struct _stat& rstat); +struct thg_stat +{ + unsigned size; + unsigned mtime; + bool isdir; +}; + +int lstat(const char* file, thg_stat& rstat);      struct Direntry @@ -34,7 +41,7 @@
    std::string name;   - char status(const struct _stat& stat) const; + char status(const thg_stat& stat) const;  };    
 
167
168
169
170
 
171
172
173
 
183
184
185
186
 
187
188
 
189
190
191
 
258
259
260
261
 
262
263
264
 
167
168
169
 
170
171
172
173
 
183
184
185
 
186
187
 
188
189
190
191
 
258
259
260
 
261
262
263
264
@@ -167,7 +167,7 @@
    std::string path = hgroot + "\\.hg\\dirstate";   - struct _stat stat; + thg_stat stat;     bool stat_done = false;   @@ -183,9 +183,9 @@
  TDEBUG_TRACE("Dirstatecache::get: lstat(" << path <<") ok ");   }   - if (stat_done && iter->mtime < stat.st_mtime) + if (stat_done && iter->mtime < stat.mtime)   { - iter->mtime = stat.st_mtime; + iter->mtime = stat.mtime;   if (iter->dstate) {   delete iter->dstate;   iter->dstate = 0; @@ -258,7 +258,7 @@
  if (!e)   return 0;   - struct _stat stat; + thg_stat stat;   if (0 != lstat(path.c_str(), stat)) {   TDEBUG_TRACE("HgQueryDirstate: lstat(" << path << ") failed");   return 0;