home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / unixlib36d / src / stdio / c / rename < prev    next >
Text File  |  1994-03-08  |  823b  |  48 lines

  1. static char sccs_id[] = "@(#) rename.c 1.1 " __DATE__ " HJR";
  2.  
  3. /* rename.c (c) Copyright 1990 H.Rogers */
  4.  
  5. #include <stdio.h>
  6.  
  7. #ifdef ARCH
  8. #include <ctype.h>
  9. #endif
  10.  
  11. extern int link (char *, char *);
  12. extern int unlink (char *);
  13.  
  14. __STDIOLIB__
  15.  
  16. int
  17. rename (const char *old, const char *new)
  18. {
  19. #ifdef ARCH            /* case insensitive matching */
  20.   {
  21.     register const char *s1 = old, *s2 = new;
  22.     register int c1, c2;
  23.  
  24.     while (c1 = *s1++, c2 = *s2++)
  25.       {
  26.     if (isupper (c1))
  27.       c1 = _tolower (c1);
  28.     if (isupper (c2))
  29.       c2 = _tolower (c2);
  30.     if (c1 != c2)
  31.       break;
  32.       }
  33.     if (c1 != c2)
  34.       unlink ((char *) new);
  35.   }
  36. #else
  37.   if (!strcmp (old, new))
  38.     return (0);
  39.   unlink ((char *) new);
  40. #endif
  41.   if (link ((char *) old, (char *) new))
  42.     return (-1);
  43. #ifndef ARCH
  44.   unlink ((char *) old);
  45. #endif
  46.   return (0);
  47. }
  48.