#include "amiga.h"
#include "files.h"
#include <fcntl.h>
#include <unistd.h>

#undef write

int __write(int fd, const void *buffer, unsigned int length)
{
  struct fileinfo *fi;

  chkabort();
  if (fi = _find_fd(fd))
    {
      if (fi->flags & FI_WRITE)
	{
	  if (fi->flags & O_APPEND) fi->lseek(fi->userinfo, 0, SEEK_END);
	  return fi->write(fi->userinfo, buffer, length);
	}
      errno = EACCES;
    }
  return -1;
}

int write(int fd, const void *buffer, unsigned int length)
{
  return __write(fd, buffer, length);
}

