Hello Rick

Here is the modified function 

/**
 * test if an individual file is a case sensitive name
 *
 * @return For Unix systems, always returns true. For MacOS,
 *         this needs to be determined on a case-by-case basis.
 */
bool SysFileSystem::isCaseSensitive(const char *name)
{
#ifndef HAVE_PC_CASE_SENSITIVE
    return true;
#else
    char  *tmp = strdup(name);
    size_t len;

    while ( !SysFileSystem::exists(tmp) )
    {
        len = strlen(tmp);
        // scan backwards to find the previous directory delimiter
        for (; len > 0; len --)
        {
            // is this the directory delimiter?
            if (tmp[len] == '/')
            {
                tmp[len] = '\0';
                break;
            }
        }
        // ugly hack . . . to preserve the "/"
        if ( len == 0 )
            tmp[len+1] = '\0';
    }

    // at this point the tmp variable contains something that exists
    long res = pathconf(tmp, _PC_CASE_SENSITIVE);
    free(tmp) ;
    if (res != -1)
    {
        return (res == 1);
    }

    // non-determined, just return true
    return true;
#endif
}



There is a spelling glitch in config.h.i.cmake , the good one is

/* Define to 1 if _PC_CASE_SENSITIVE is a valid value */
#cmakedefine HAVE_PC_CASE_SENSITIVE

E






> On 19 Feb 2019, at 13:23, Rick McGuire <object.r...@gmail.com> wrote:
> 
>  did what you suggested, but wouldn't performing the check on the directory 
> the file is in give a more accurate result?

_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to