]> Zhao Yanbai Git Server - minix.git/commitdiff
libc!setmode.c: Avoid #if inside macro call
authorAntoine Leca <antoine.leca.1@gmail.com>
Mon, 25 Oct 2010 17:03:36 +0000 (18:03 +0100)
committerBen Gras <ben@minix3.org>
Thu, 23 Jun 2011 15:54:17 +0000 (17:54 +0200)
#if inside macro call is undefined behaviour under the C standard
(3.8.3 paragraph 10 for C90, 6.8.10 paragraph 11 for C99).
The same effect can be achieved with a slightly more verbose construct,
putting the whole macro call inside the #ifdef/#else/#endif.

lib/libc/other/setmode.c

index 3eb154cbf60a439c3e3c9a332758c8c2617cae33..1c4c4bffd4ff7d550e237ae589222c0794d26954 100644 (file)
@@ -236,11 +236,11 @@ setmode(p)
                        goto out;
                }
                perm = (mode_t)lval;
-               ADDCMD('=', (STANDARD_BITS
 #ifdef S_ISTXT
-               |S_ISTXT
+               ADDCMD('=', (STANDARD_BITS|S_ISTXT), perm, mask);
+#else
+               ADDCMD('=', (STANDARD_BITS), perm, mask);
 #endif
-               ), perm, mask);
                set->cmd = 0;
                return (saveset);
        }