Esempio n. 1
0
void rtems_filesystem_eval_path_next_token(
  rtems_filesystem_eval_path_context_t *ctx
)
{
  rtems_filesystem_eval_path_eat_delimiter(ctx);
  next_token(ctx);
}
Esempio n. 2
0
static void rtems_ftpfs_eval_path(
  rtems_filesystem_eval_path_context_t *self
)
{
  rtems_filesystem_eval_path_eat_delimiter(self);

  if (rtems_filesystem_eval_path_has_path(self)) {
    const char *path = rtems_filesystem_eval_path_get_path(self);
    size_t pathlen = rtems_filesystem_eval_path_get_pathlen(self);
    char *pathdup = malloc(pathlen + 1);

    rtems_filesystem_eval_path_clear_path(self);

    if (pathdup != NULL) {
      rtems_filesystem_location_info_t *currentloc =
        rtems_filesystem_eval_path_get_currentloc(self);

      memcpy(pathdup, path, pathlen);
      pathdup [pathlen] = '\0';
      currentloc->node_access = pathdup;
      currentloc->handlers = &rtems_ftpfs_handlers;
    } else {
      rtems_filesystem_eval_path_error(self, ENOMEM);
    }
  }
}