home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / LIBSRC.ZOO / libsrc / local / rename.c < prev    next >
Text File  |  1992-02-21  |  1KB  |  59 lines

  1. #define INCL_DOSFILEMGR
  2. #define INCL_DOSERRORS
  3. #include <os2.h>
  4. #include <errno.h>
  5.  
  6. ULONG Dos32Move() asm ("Dos32Move");
  7.  
  8. int rename (const char *from, const char *to)
  9. {
  10.    ULONG rc;
  11.  
  12.    rc = Dos32Move ((PSZ)from, (PSZ)to);
  13.  
  14.    if (rc)
  15.    {
  16.       if (rc == ERROR_PATH_NOT_FOUND || rc == ERROR_FILE_NOT_FOUND)
  17.       {
  18.          errno = ENOENT;
  19.          return (-1);
  20.       }
  21.  
  22.       if (rc == ERROR_ACCESS_DENIED)
  23.       {
  24.          errno = EACCES;
  25.          return (-1);
  26.       }
  27.  
  28.       if (rc == ERROR_NOT_SAME_DEVICE)
  29.       {
  30.          errno = EXDEV;
  31.          return (-1);
  32.       }
  33.  
  34.       if (rc == ERROR_INVALID_PARAMETER)
  35.       {
  36.          errno = EINVAL;
  37.          return (-1);
  38.       }
  39.  
  40.       if (rc == ERROR_FILENAME_EXCED_RANGE)
  41.       {
  42.          errno = ENAMETOOLONG;
  43.          return (-1);
  44.       }
  45.  
  46.       if (rc == ERROR_CIRCULARITY_REQUESTED)
  47.       {
  48.          errno = ELOOP;
  49.          return (-1);
  50.       }
  51.  
  52.       errno = EIO;
  53.       return (-1);
  54.    }
  55.  
  56.    return (0);
  57. }
  58.  
  59.