home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume13 / rolodex / part02 / datadef.h next >
Encoding:
C/C++ Source or Header  |  1988-01-30  |  2.5 KB  |  122 lines

  1. /* datadef.h */
  2. #define ABORTSTRING "\\"
  3. #define ABORTCHAR '\\'
  4.  
  5. #define MAXMATCHES 17
  6.  
  7. #define N_BASIC_FIELDS 8
  8. #define OTHER -1
  9.  
  10. #ifdef UNIX
  11. #ifdef SYS5
  12. #define rindex(a,b) strrchr(a,b)
  13. #define index(a,b) strchr(a,b)
  14. #endif
  15. #ifdef BSD
  16. #include <string.h>
  17. #endif
  18. #endif
  19.  
  20. typedef enum Basic_Field {
  21.  
  22.     R_NAME = 0, R_WORK_PHONE, R_HOME_PHONE, R_COMPANY, R_WORK_ADDRESS,
  23.     R_HOME_ADDRESS, R_REMARKS, R_UPDATED
  24.  
  25.   };    
  26.     
  27. extern char *Field_Names[];  
  28.   
  29. /* A Rolodex entry */
  30.  
  31. typedef struct {
  32.  
  33.     char *basicfields[N_BASIC_FIELDS];
  34.     int n_others;
  35.     char **other_fields;
  36.  
  37.   } Rolo_Entry, *Ptr_Rolo_Entry;
  38.  
  39.   
  40. #define get_basic_rolo_field(n,x) (((x) -> basicfields)[(n)])
  41. #define get_n_others(x) ((x) -> n_others)  
  42. #define get_other_field(n,x) (((x) -> other_fields)[n])
  43.   
  44. #define set_basic_rolo_field(n,x,s) (((x) -> basicfields[(n)]) = (s))
  45. #define set_n_others(x,n) (((x) -> n_others) = (n))
  46. #define incr_n_others(x) (((x) -> n_others)++)
  47. #define set_other_field(n,x,s) ((((x) -> other_fields)[n]) = (s))
  48.  
  49. typedef struct link {
  50.  
  51. #ifndef VMS
  52.     Ptr_Rolo_Entry entry;
  53. #else
  54.     Ptr_Rolo_Entry ventry;
  55. #endif
  56.     int matched;
  57.     struct link *prev;
  58. #ifndef M_V7
  59.     struct link *next;
  60. #else
  61.     struct link *lnext;
  62. #endif
  63.  
  64.   } Rolo_List, *Ptr_Rolo_List;
  65.  
  66.  
  67. #ifndef M_V7
  68. #define get_next_link(x) ((x) -> next)
  69. #else
  70. #define get_next_link(x) ((x) -> lnext)
  71. #endif
  72. #define get_prev_link(x) ((x) -> prev)
  73. #ifndef VMS
  74. #define get_entry(x)     ((x) -> entry)
  75. #else
  76. #define get_entry(x)     ((x) -> ventry)
  77. #endif
  78. #define get_matched(x) ((x) -> matched)
  79.  
  80. #ifndef M_V7
  81. #define set_next_link(x,y) (((x) -> next) = (y))
  82. #else
  83. #define set_next_link(x,y) (((x) -> lnext) = (y))
  84. #endif
  85. #define set_prev_link(x,y) (((x) -> prev) = (y))
  86. #ifndef VMS
  87. #define set_entry(x,y) (((x) -> entry) = (y))
  88. #else
  89. #define set_entry(x,y) (((x) -> ventry) = (y))
  90. #endif
  91. #define set_matched(x) (((x) -> matched) = 1)
  92. #define unset_matched(x) (((x) -> matched) = 0);
  93.  
  94. extern Ptr_Rolo_List Begin_Rlist;
  95. extern Ptr_Rolo_List End_Rlist;
  96.  
  97. #define MAXLINELEN 80
  98. #define DIRPATHLEN 100
  99.  
  100. extern int changed;
  101. extern int name_changed;
  102. extern int reorder_file;
  103. extern int rololocked;
  104. extern int read_only;
  105.  
  106. extern char *rolo_emalloc();
  107. extern char *malloc();
  108. extern Ptr_Rolo_List new_link_with_entry();
  109. extern char *copystr();
  110. extern int compare_links();
  111. extern char *timestring();
  112. extern char *homedir(), *libdir();
  113. extern char *getenv();
  114. extern char *ctime();
  115. extern char *select_search_string();
  116. extern int in_search_mode;
  117.  
  118. /*
  119.  * This structure allows documentation and internal access to help files
  120.  */
  121. extern char *hlpfiles[];
  122.