Some docs on what it actually does with drive letters and UNC paths
would be nice.

> +string append_path_nt(string absolute, string ... relative)
> +{
> +  return combine_path(absolute,
> +                   @map(relative, lambda(string s) {
> +                                    if(s[1..1] == ":") {
> +                                      s = s[0..0] + s[2..];
> +                                    }
> +                                    return combine_path("/", s)[1..];
This looks wrong. Where's your test suite? ;)                     ^^^^^

> +                                  }));
> +}

> +#ifdef __NT__
> +function(string, string ... : string) append_path = append_path_nt;
> +#else
> +function(string, string ... : string) append_path = append_path_unix;
> +#endif

Please use a wrapper function instead:

  string append_path (string absolute, string ... relative)
  {
  #ifdef __NT__
    return append_path_nt (absolute, @relative);
  #else
    return append_path_unix (absolute, @relative);
  #endif
  }

It's more efficient.

Reply via email to