[PATCH] Fix git-diff-files for symlinks.
authorJunio C Hamano <junkio@cox.net>
Thu, 12 May 2005 23:51:08 +0000 (16:51 -0700)
committerPetr Baudis <xpasky@machine.sinus.cz>
Fri, 13 May 2005 22:27:49 +0000 (00:27 +0200)
Again I am not sure why this was missed during the last round,
but git-diff-files mishandles symlinks on the filesystem.  This
patch fixes it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
And I'm not sure why did I miss this patch before. Sorry.

Signed-off-by: Petr Baudis <pasky@ucw.cz>
diff-files.c

index c51edc3..28f1b13 100644 (file)
@@ -126,7 +126,8 @@ int main(int argc, char **argv)
                        continue;
 
                oldmode = ntohl(ce->ce_mode);
-               mode = S_IFREG | ce_permissions(st.st_mode);
+               mode = (S_ISLNK(st.st_mode) ? S_IFLNK :
+                       S_IFREG | ce_permissions(st.st_mode));
 
                show_modified(oldmode, mode, ce->sha1, null_sha1,
                              ce->name);