On Mon, Feb 18, 2019 at 4:10 PM Enrico Sorichetti via Oorexx-devel <
oorexx-devel@lists.sourceforge.net> wrote:

> Here is the tested and WORKING code sequence
> IIRC I had to fix the testSuite in a couple of places
>
> I did run the test suite twice ,
> once on the boot volume ( case insensitive by default )
> The second time on an external disk with a case sensitive file system
>
>
> Pathconf needs  the  file or directory to exist
>
> Darwin case sensitiveness applies to each file system
> So in case of file not found it will return the system case sensitiveness
>
I did what you suggested, but wouldn't performing the check on the
directory the file is in give a more accurate result?

Rick


>
> On NOT Darwin systems it will just cost one extra call ,
> If You are trying to squeeze performance to the last bit
> The second call could be #ifdeffed  ,
>
> Cheers
> E
>
>
>
> /**
>  * indicate whether the file system is case sensitive.
>  *
>  * @return For Unix systems, always returns true. For MacOS,
>  *         this needs to be determined on a case-by-case basis.
>  *         This returns the information for the root file system
>  */
> bool SysFileSystem::isCaseSensitive()
> {
> #ifdef HAVE_PC_CASE_SENSITIVE
>     long res = pathconf("/", _PC_CASE_SENSITIVE);
>     if (res != -1)
>     {
>         return (res==1);
>     }
> #endif
>     // any error means this value is not supported for this file system
>     // so the result is most likely true (unix standard)
>     return true;
> }
>
> /**
>  * 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)
> {
> #ifdef HAVE_PC_CASE_SENSITIVE
>     long res = pathconf(name, _PC_CASE_SENSITIVE);
>     if (res != -1)
>     {
>         return (res==1) ;
>     }
>     // probably file not found
>     // returns the information for the root file system
>     res = pathconf("/", _PC_CASE_SENSITIVE);
>     if (res != -1)
>     {
>         return (res==1) ;
>     }
> #endif
>     // any error means this the value is not supported for this file system
>     // so the result is most likely true (unix standard)
>     return true;
> }
>
>
>
>
> On 18 Feb 2019, at 21:52, Erich Steinböck <erich.steinbo...@gmail.com>
> wrote:
>
> PC_CASE_SENSITIVE
>
>
> _______________________________________________
> Oorexx-devel mailing list
> Oorexx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/oorexx-devel
>
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to