slang-users mailing list

[2007 Date Index] [2007 Thread Index] [Other years]
[Thread Prev] [Thread Next]      [Date Prev] [Date Next]

[slang-users] path_* functions -- suggestions


Hi,

I have some suggestens for the path functions:
1. It would be very helpful if the directory separator would be
   available.

2. I would like to have a function path_compress() or path_canonicalize()
   to remove .. and . from a path to make it easier to compare two paths
   with strcmp(). Or a function pathcmp().

3. path_concat() should compress the path on the concatenation point.

private define path_concat(left, right)
{
    if (path_basename(left) == "")
      % left has a trailing dir separator
      left = path_dirname(left);

    forever
    {
#ifdef UNIX
        if (strncmp(right, "../", 3) == 0)
#else
        if (strncmp(right, "..\\", 3) == 0)
#endif
        {
            left = path_dirname(left);
            right = substr(right, 4, -1);
        }
#ifdef UNIX
        else if (strncmp(right, "./", 2) == 0)
#else
        else if (strncmp(right, ".\\", 2) == 0)
#endif
          right = substr(right, 3, -1);
        else
          break;
    }

    return Global->path_concat(left, right);
}

4. It would be handy to have a function to get the leading directory.
   This would make it possible to say in the code above
   path_first(right) == ".."

Bye, Jörg.
-- 
Nutze die Talente, die du hast. Die Wälder wären sehr still,
wenn nur die begabtesten Vögel sängen.                (Henry van Dyke)



[2007 date index] [2007 thread index]
[Thread Prev] [Thread Next]      [Date Prev] [Date Next]