Re: [PATCH] compat: convert modes to use portable file type values
From: Torsten Bögershausen <hidden>
Date: 2016-06-15 23:03:09
On 2014-11-30 03.41, David Michael wrote: Some minor comments:
+static inline mode_t mode_native_to_git(mode_t native_mode)
+{
+ if (S_ISREG(native_mode))
+ return 0100000 | (native_mode & 07777);
+ else if (S_ISDIR(native_mode))
+ return 0040000 | (native_mode & 07777);
+ else if (S_ISLNK(native_mode))
+ return 0120000 | (native_mode & 07777);
+ else if (S_ISBLK(native_mode))
+ return 0060000 | (native_mode & 07777);
+ else if (S_ISCHR(native_mode))
+ return 0020000 | (native_mode & 07777);
+ else if (S_ISFIFO(native_mode))
+ return 0010000 | (native_mode & 07777);
+ else /* Non-standard type bits were given. */
+ return native_mode & 07777;
+}Could the code be more human-readable ?
static inline mode_t mode_native_to_git(mode_t native_mode)
{
int perm_bits = native_mode & 07777;
if (S_ISREG(native_mode))
return 0100000 | perm_bits;
if (S_ISDIR(native_mode))
return 0040000 | perm_bits;
if (S_ISLNK(native_mode))
return 0120000 | perm_bits;
if (S_ISBLK(native_mode))
return 0060000 | perm_bits;
if (S_ISCHR(native_mode))
return 0020000 | perm_bits;
if (S_ISFIFO(native_mode))
return 0010000 | perm_bits;
/* Non-standard type bits were given. */
/* Shouldn't we die() here ?? */
return perm_bits;
}