Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

S_IXUSR & Co macro problem - zsh does not compile under current cygwin.



Just updated to the lates cygwin-1.3.1-1

gcc -c -I.  -DHAVE_CONFIG_H -DMODULE -Wall -Wno-implicit -Wmissing-prototypes 
-O
2  -o stat..o /tools/src/zsh/Src/Modules/stat.c
/tools/src/zsh/Src/Modules/stat.c: In function `statmodeprint':
/tools/src/zsh/Src/Modules/stat.c:57: initializer element is not constant
/tools/src/zsh/Src/Modules/stat.c:57: (near initialization for `mflags[2]')
/tools/src/zsh/Src/Modules/stat.c:58: initializer element is not constant
/tools/src/zsh/Src/Modules/stat.c:58: (near initialization for `mflags[5]')
/tools/src/zsh/Src/Modules/stat.c:59: initializer element is not constant
/tools/src/zsh/Src/Modules/stat.c:59: (near initialization for `mflags[8]')

relevat part of stat.c:

    if (flags & STF_STRING) {
        static const char *modes = "?rwxrwxrwx";
        static const mode_t mflags[] = { S_IRUSR, S_IWUSR, S_IXUSR,
                                         S_IRGRP, S_IWGRP, S_IXGRP,
                                         S_IROTH, S_IWOTH, S_IXOTH };

And from /usr/include/sys/stat.h:

#if defined (__CYGWIN__) && !defined (__INSIDE_CYGWIN__)
extern unsigned const _cygwin_S_IEXEC, _cygwin_S_IXUSR, _cygwin_S_IXGRP,
_cygwin
_S_IXOTH;
#undef S_IEXEC
#undef S_IXUSR
#undef S_IXGRP
#undef S_IXOTH
#define S_IEXEC         _cygwin_S_IEXEC
#define S_IXUSR         _cygwin_S_IXUSR
#define S_IXGRP         _cygwin_S_IXGRP
#define S_IXOTH         _cygwin_S_IXOTH
#endif


SUS does not clear specify if these macros should be #defines. But, is it
necessary to make them external variables? const is real const in C++ but not
in C, sigh.

-andrej

Have a nice DOS!
B >>



Messages sorted by: Reverse Date, Date, Thread, Author