5833ed5eac3f — Sean Farley 12 years ago
fast-status: ensure mode != 000 when reporting dirty status
1 files changed, 7 insertions(+), 3 deletions(-)

M fast-hg-status.c
M fast-hg-status.c +7 -3
@@ 94,7 94,7 @@ int parse_dirstate(const char* hg_path, 
 
     PRINT("[%zu] status: %c\n", i, status);
     PRINT("[%zu] mode: %.3o\n", i, mode);
-    PRINT("[%zu] size: %u\n", i, size);
+    PRINT("[%zu] size: %lld\n", i, (long long)size);
     PRINT("[%zu] mtime: %lld\n", i, (long long)mtime);
     PRINT("[%zu] length: %u\n", i, length);
 

          
@@ 109,10 109,14 @@ int parse_dirstate(const char* hg_path, 
     if (lstat(filepath, &filestat)) return -2;
 
     if (((mode ^ filestat.st_mode) & 0111 & ~u) && ((mode & S_IFLNK) != S_IFLNK)) {
-      PRINT(("[%zu] filestat.st_mode: %.3o\n", i, filestat.st_mode));
+      PRINT("[%zu] filestat.st_mode: %.3o\n", i, filestat.st_mode);
       dirty("above file's mode changed");
       break;
-    } else if (mtime != filestat.st_mtime && size != filestat.st_size) {
+    } else if (mode && mtime != filestat.st_mtime && size != filestat.st_size) {
+      /* check that mode != 000 since after updating, certain files are not updated in the
+         dirstate? */
+      PRINT("[%zu] filestate.st_mtime: %lld\n", i, (long long)filestat.st_mtime);
+      PRINT("[%zu] filestate.st_size: %lld\n", i, filestat.st_size);
       dirty("above file's mtime and size both differ");
       break;
     }