#include <errno.h>
#include <spawn.h>
#include <stdlib.h>
#include <string.h>

#include "fdop.h"

int posix_spawn_file_actions_addopen(posix_spawn_file_actions_t* restrict fa, int fd,
                                     const char* restrict path, int flags, mode_t mode) {
  struct fdop* op = malloc(sizeof *op + strlen(path) + 1);
  if (!op)
    return ENOMEM;
  op->cmd = FDOP_OPEN;
  op->fd = fd;
  op->oflag = flags;
  op->mode = mode;
  strcpy(op->path, path);
  if ((op->next = fa->__actions))
    op->next->prev = op;
  op->prev = 0;
  fa->__actions = op;
  return 0;
}
