SgObject Sg_AbsolutePath(SgString *path)
{
  char buf[PATH_MAX];
  char *ret = realpath(Sg_Utf32sToUtf8s(path), buf);
  if (ret) {
    return Sg_Utf8sToUtf32s(buf, strlen(buf));
  }
  if (errno == ENOENT) {
    /* do some trick here */
    if (Sg_AbsolutePathP(path)) return normalise_path(path);
    return normalise_path(Sg_BuildPath(Sg_CurrentDirectory(), path));
  }
  return SG_FALSE;
}
Beispiel #2
0
static SgObject join_path(SgObject base, int sep, SgObject name)
{
  if (sep) return Sg_BuildPath(base, name);
  else     return Sg_StringAppend2(base, name);
}