home *** CD-ROM | disk | FTP | other *** search
/ Atari FTP / ATARI_FTP_0693.zip / ATARI_FTP_0693 / Mint / mntlib25.zoo / rename.c < prev    next >
C/C++ Source or Header  |  1991-10-19  |  638b  |  34 lines

  1. /* a public domain rename, by ERS */
  2.  
  3. #include <limits.h>
  4. #include <errno.h>
  5. #include <osbind.h>
  6. #include <string.h>
  7. #include <unistd.h>
  8. #include "lib.h"
  9.  
  10. int rename(_oldname, _newname)
  11.     const char *_oldname, *_newname;
  12. {
  13.     char oldname[PATH_MAX], newname[PATH_MAX];
  14.     int rval;
  15.  
  16.     if (!strcmp(_oldname, _newname)) {
  17.         rval = 0;    /* no-op */
  18.     }
  19.  
  20.     if (!access(_newname, 0)) {    /* new name already exists */
  21.         if (unlink(_newname))
  22.             return -1;
  23.     }
  24.  
  25.     _unx2dos(_oldname, oldname);
  26.     _unx2dos(_newname, newname);
  27.  
  28.     if ( (rval = Frename(0, oldname, newname)) < 0 ) {
  29.         errno = -rval;
  30.         rval = -1;
  31.     }
  32.     return rval;
  33. }
  34.