Ævar Arnfjörð Bjarmason wrote:
- unsigned mode = canon_mode(S_IFREG | 0644);
+ unsigned mode = canon_mode((S_IFREG | 0644));
Just curious:
#define canon_mode(mode) \
(S_ISREG(mode) ? (S_IFREG | ce_permissions(mode)) : \
S_ISLNK(mode) ? S_IFLNK : S_ISDIR(mode) ? S_IFDIR : S_IFGITLINK)
#define ce_permissions(mode) (((mode) & 0100) ? 0755 : 0644)
Since S_ISREG et al are macros, typically they would put their
argument in parentheses in the definition. How are they defined
in NetBSD sys/stat.h? What is canon_mode(S_IFREG | 0644) being
misinterpreted to mean?