# HG changeset patch # User Paul Eggert # Date 1355811320 28800 # Node ID c09382013ecb203e42225d5e20eeb74f2a541878 # Parent 746b9c1f29d51664b7b6fdbcf9f9c3ea27c45ef8 filemode, sys_stat: Handle MPX files a la AIX. * lib/filemode.c (ftypelet): Report 'm' for MPX files. * lib/sys_stat.in.h (S_ISMPX): New macro. * tests/test-sys_stat.c: Add tests for MPX files. diff -r 746b9c1f29d5 -r c09382013ecb ChangeLog --- a/ChangeLog Wed Dec 12 11:05:45 2012 +0100 +++ b/ChangeLog Mon Dec 17 22:15:20 2012 -0800 @@ -1,3 +1,10 @@ +2012-12-17 Paul Eggert + + filemode, sys_stat: Handle MPX files a la AIX. + * lib/filemode.c (ftypelet): Report 'm' for MPX files. + * lib/sys_stat.in.h (S_ISMPX): New macro. + * tests/test-sys_stat.c: Add tests for MPX files. + 2012-12-16 Alexandre Duret-Lutz x-to-1: honor $PERL diff -r 746b9c1f29d5 -r c09382013ecb lib/filemode.c --- a/lib/filemode.c Wed Dec 12 11:05:45 2012 +0100 +++ b/lib/filemode.c Mon Dec 17 22:15:20 2012 -0800 @@ -78,7 +78,7 @@ return 'C'; if (S_ISDOOR (bits)) return 'D'; - if (S_ISMPB (bits) || S_ISMPC (bits)) + if (S_ISMPB (bits) || S_ISMPC (bits) || S_ISMPX (bits)) return 'm'; if (S_ISNWK (bits)) return 'n'; diff -r 746b9c1f29d5 -r c09382013ecb lib/sys_stat.in.h --- a/lib/sys_stat.in.h Wed Dec 12 11:05:45 2012 +0100 +++ b/lib/sys_stat.in.h Mon Dec 17 22:15:20 2012 -0800 @@ -150,6 +150,10 @@ # endif #endif +#ifndef S_ISMPX /* AIX */ +# define S_ISMPX(m) 0 +#endif + #ifndef S_ISNAM /* Xenix */ # ifdef S_IFNAM # define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM) diff -r 746b9c1f29d5 -r c09382013ecb tests/test-sys_stat.c --- a/tests/test-sys_stat.c Wed Dec 12 11:05:45 2012 +0100 +++ b/tests/test-sys_stat.c Mon Dec 17 22:15:20 2012 -0800 @@ -49,6 +49,7 @@ S_ISSOCK (S_IFREG), S_ISDOOR (S_IFREG), S_ISMPB (S_IFREG), + S_ISMPX (S_IFREG), S_ISNAM (S_IFREG), S_ISNWK (S_IFREG), S_ISPORT (S_IFREG), @@ -191,6 +192,20 @@ #endif #ifdef S_IFBLK +verify (!S_ISMPX (S_IFBLK)); +#endif +verify (!S_ISMPX (S_IFCHR)); +verify (!S_ISMPX (S_IFDIR)); +verify (!S_ISMPX (S_IFIFO)); +verify (!S_ISMPX (S_IFREG)); +#ifdef S_IFLNK +verify (!S_ISMPX (S_IFLNK)); +#endif +#ifdef S_IFSOCK +verify (!S_ISMPX (S_IFSOCK)); +#endif + +#ifdef S_IFBLK verify (!S_ISNAM (S_IFBLK)); #endif verify (!S_ISNAM (S_IFCHR));