> Date: Sun, 27 Jan 2008 12:00:19 -0500
> From: [EMAIL PROTECTED]

> thanks for the report
> we have not built on interix in a long time
> so reports of trouble/success there are appreciated

The latest ksh93 sources configure and build without problem under Windows 
Vista SUA 
except for a problem in libast/misc/glob.c.  However ksh93 fails to glob 
correctly under 
certain conditions.  For example ls a*b/*  fails.  

The quick fix was to modify glob.c as follows (I have left out guard defines 
for clarify)
to use stat together with the IFTODT macro.

#include <sys/stat.h>
#define IFTODT(mode) (((mode) & 0170000) >> 12)

#define DT_UNKNOWN       0

#define DT_DIR                 4

#define DT_LNK                10

.......

static char*
gl_dirnext(glob_t* gp, void* handle)
{
        struct dirent*  dp;
        struct stat       statbuf;
        int                  dt;

        while (dp = (struct dirent*)(*gp->gl_readdir)(handle))
        {
            stat(dp->d_name, &statbuf);
            dt = IFTODT(statbuf.st_mode);
            if (dt != DT_UNKNOWN && dt != DT_DIR && dt != DT_LNK)
                gp->gl_status |= GLOB_NOTDIR;
            return dp->d_name;
        }
        return 0;
}

Seems to be some issue around the use of D_FILENO, and D_TYPE  is not
supported on Interix 6.0.  When I get a chance I will try and figure out 
what is really going with both of these items.  A more elegant fix is 
probably possible :-)  

Regards,

Finnbarr P. Murphy



_______________________________________________
ast-users mailing list
[email protected]
https://mailman.research.att.com/mailman/listinfo/ast-users

Reply via email to