home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / fish / programming / mkid / src / basename.c < prev    next >
C/C++ Source or Header  |  1991-02-01  |  705b  |  49 lines

  1. /* Copyright (c) 1986, Greg McGary */
  2. static char sccsid[] = "@(#)basename.c    1.1 86/10/09";
  3.  
  4. #include    "string.h"
  5.  
  6. char *basename();
  7. char *dirname();
  8.  
  9. #define NULL ((char *) 0)
  10.  
  11. char *
  12. basename(path)
  13.     char        *path;
  14. {
  15.     char        *base;
  16.  
  17.     if ((base = strrchr(path, '/')) == 0)
  18. #ifdef AMIGA
  19.         if ((base = strchr(path,':')) != NULL)
  20.             return ++base;
  21.         else
  22. #endif
  23.         return path;
  24.     else
  25.         return ++base;
  26. }
  27.  
  28. char *
  29. dirname(path)
  30.     char        *path;
  31. {
  32.     char        *base;
  33.  
  34.     if ((base = strrchr(path, '/')) == 0)
  35. #ifdef UNIX
  36.         return ".";
  37. #endif
  38. #ifdef AMIGA
  39.     {
  40.         if ((base = strrchr(path,':')) == 0)
  41.             return "";
  42.         else
  43.             return strnsav(path, base - path + 1); /* for : */
  44.     }
  45. #endif
  46.     else
  47.         return strnsav(path, base - path);
  48. }
  49.