#include <fs/path.h>
#include <string/string.h>

void path_parse(const char *in, char *mp, char *path) {
  if (in == 0 || *in == 0) {
    mp[0] = 0;
    path[0] = 0;
    return;
  }

  int i = 0, j = 0, colonfound = 0;

  while (in[i]) {
    if (in[i] == ':') {
      if (colonfound) {
        mp[0] = 0;
        path[0] = 0;
        return;
      }
      colonfound = 1;
      mp[i] = 0;
      i++;
      continue;
    }

    if (!colonfound) {
      mp[i] = in[i];
    } else {
      path[j++] = in[i];
    }

    i++;
  }

  if (!colonfound) {
    mp[i] = 0;
    path[0] = 0;
  } else {
    path[j] = 0;
  }
}

const char *path_basename(const char *path) {
  if (!path) {
    return NULL;
  }

  const char *aftercolon = string_strchr(path, ':');
  if (aftercolon) {
    path = aftercolon + 1;
  }
  const char *lastslash = NULL;
  for (const char *p = path; *p; p++) {
    if (*p == '/') {
      lastslash = p;
    }
  }
  return lastslash ? lastslash + 1 : path;
}

