home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume1 / 8712 / mkmf / 2 / src / path.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-07-13  |  2.0 KB  |  61 lines

  1. /* $Header: path.h,v 1.1 85/03/14 15:33:11 nicklin Exp $ */
  2.  
  3. /*
  4.  * Pathname definitions
  5.  *
  6.  * Author: Peter J. Nicklin
  7.  */
  8.  
  9. /*
  10.  * Buffer sizes
  11.  */
  12. #define ALIASSIZE    30        /* project directory alias size */
  13. #define TYPESIZE    30        /* project directory type label size */
  14. #define DIRDESCSIZE    128        /* project directory description size */
  15. #define P_BUFSIZE    1024        /* pathname buffer size */
  16. #define    PATHSIZE    256        /* maximum pathname length */
  17. #define PPATHSIZE    128        /* maximum project pathname length */
  18. #define TYPBUFSIZE    256        /* directory type labels buffer */
  19.  
  20. /* 
  21.  * Nomenclature (WARNING: Check definition usage BEFORE changing)
  22.  */
  23. #define _CDIRC        '.'        /* current directory character */
  24. #define _HDIRC        '~'        /* home directory character */
  25. #define _PDIRC        '^'        /* project root directory character */
  26. #define _PDTSC        '/'        /* project dir type labels sep char */
  27. #define _PPSC        '^'        /* project path separator character */
  28. #define _PSC        '/'        /* pathname separator character */
  29. #define _RDIRC        '/'        /* root directory character */
  30. #define CURDIR        "."        /* current directory */
  31. #define PARENTDIR    ".."        /* parent directory */
  32. #define PATHSEP        "/"        /* pathname separator */
  33. #define PPATHSEP    "^"        /* project pathname separator */
  34. #define ROOTDIR        "/"        /* root directory */
  35. #define ROOTPROJECT    "^"        /* root project */
  36. #define USERPROJECT    "~"        /* user's root project */
  37.  
  38. /*
  39.  * Pathname types
  40.  */
  41. #define P_IFMT        0xf0000        /* project pathname mask */
  42. #define    P_IFNEW        0x00000        /* new directory or file */
  43. #define P_IFREG        0x10000        /* regular directory or file */
  44. #define    P_IFHOME    0x20000        /* root project root directory */
  45. #define P_IFPDIR    0x30000        /* project directory */
  46. #define    P_IFPROOT    0x40000        /* project root directory */
  47.  
  48. /*
  49.  * Pathname struct
  50.  */
  51. typedef struct _path
  52.     {
  53.     unsigned long p_mode;        /* type of pathname */
  54.     char *p_alias;            /* pathname alias */
  55.     char *p_path;            /* pathname */
  56.     char *p_type;            /* project directory type labels */
  57.     char *p_desc;            /* project directory description */
  58.     char p_buf[P_BUFSIZE];        /* pathname buffer */
  59.     char p_project[PATHSIZE];    /* pathname's project */
  60.     } PATH;
  61.