home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / emacs-19.28-src.tgz / tar.out / fsf / emacs / unixlib / src / rmdir.c < prev    next >
C/C++ Source or Header  |  1996-09-28  |  584b  |  32 lines

  1. #include "amiga.h"
  2. #include <utility/tagitem.h>
  3.  
  4. int rmdir(char *name)
  5. {
  6.   struct FileInfoBlock *fib = 0;
  7.   BPTR lock = 0;
  8.  
  9.   if ((fib = AllocDosObjectTags(DOS_FIB, TAG_END)) &&
  10.       (lock = Lock(name, ACCESS_READ)) &&
  11.       Examine(lock, fib))
  12.     {
  13.       int isdir = fib->fib_DirEntryType > 0;
  14.  
  15.       UnLock(lock);
  16.       FreeDosObject(DOS_FIB, fib);
  17.  
  18.       if (isdir)
  19.     {
  20.       if (DeleteFile(name)) return 0;
  21.       ERROR;
  22.     }
  23.       errno = ENOTDIR;
  24.       return -1;
  25.     }
  26.   errno = convert_oserr(IoErr());
  27.  
  28.   if (lock) UnLock(lock);
  29.   if (fib) FreeDosObject(DOS_FIB, fib);
  30.   return -1;
  31. }
  32.