home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / dr2v41b1.zip / OPENDOOR.H < prev    next >
C/C++ Source or Header  |  1994-09-29  |  20KB  |  599 lines

  1. #define INCL_DOSPROCESS
  2. #define INCL_DOSSEMAPHORES
  3.  
  4. #include <os2.h>
  5.  
  6. #ifdef INCLUDE_PRAGMA
  7.    #include "pragma.h"
  8. #endif
  9.  
  10. /*             ╔════════════════════════════════════════════════════╗
  11.  *             ║     ┌─────┐                                                       ║
  12.  *             ║     │      │┌────┐┌───┐┌──┐                                   ║
  13.  *             ║     │      ││     │├───┘│  │                                   ║
  14.  *             ║     └─────┘├────┘└─── │  ├────┐                              ║
  15.  *             ║              │                 │     │┌───┐┌───┐┌─── ┌──      ║
  16.  *             ║                                 │     ││   ││     ││     └──┐   ║
  17.  *             ║                                 └────┘└───┘└───┘│      ──┘   ║
  18.  *             ║                            ────────────                          ║
  19.  *             ║         Door Programming Toolkit - Version 4.10          ║
  20.  *             ╚════════════════════════════════════════════════════╝
  21.  *         (C) Copyright 1991-1993 by Brian Pirie. All Rights Reserved.
  22.  *
  23.  *
  24.  *                           UNREGISTERED EVALUATION VERSION
  25.  *                                           ─────────
  26.  *  This version of OpenDoors may be used for a reasonable evaluation
  27.  *  period, and doors written with it may NOT be distributed. Your low $28
  28.  *  registration fee will entitle you to continue using OpenDoors,
  29.  *  distribute or even sell programs written with it, and you will be entitled
  30.  *  to free upgrades to newer versions of OpenDoors. Unlike other libraries
  31.  *  of this sort, OpenDoors requires no additional licencing fees - once you
  32.  *  have paid your $28, you will be entitled to unlimited use of the
  33.  *  package. For more information, see the accompanying OPENDOOR.DOC file.
  34.  */
  35.  
  36.  
  37. #ifndef OPENDOOR_H                                        /* Only parse OPENDOOR.H once */
  38. #define OPENDOOR_H
  39.  
  40.  
  41.  
  42.                                                              /* OPENDOORS GLOBAL DEFINITIONS */
  43.                                                              /* ---------------------------- */
  44.  
  45. #ifdef __cplusplus                      /* Compiler-dependant function definitions */
  46. #define FUNCDEF extern "C"
  47. #else
  48. #define FUNCDEF
  49. #endif
  50.  
  51. // Added by Joel Downer
  52.  
  53. typedef char boolean;
  54.  
  55. /* Format for internode message. */
  56.  
  57. typedef struct {
  58.    short    length;
  59.    short    source_node;
  60.    short    event;
  61.    boolean  from_player;
  62.    char     name[36];
  63.    char     text[256];
  64.    } tInternodeMsg;
  65.  
  66.  
  67. /* Semaphore formats used by the tInternodeMsg event field. */
  68.  
  69. enum NODE_EVENT { EVT_NONE, EVT_INIT, EVT_ACK, EVT_CHAT_INIT,
  70.    EVT_CHAT_ACK, EVT_CHAT_BYE, EVT_CHAT_MSG, EVT_BYE };
  71.  
  72.    
  73. extern char od_registered_to[36];            /* Program information variables */
  74. extern unsigned long od_registration_key;
  75. extern char od_program_name[40];
  76.  
  77.  
  78.  
  79. #ifndef __OS2__
  80. #define FALSE 0                                         /* Boolean constant definitions */
  81. #define TRUE !FALSE
  82. #else
  83. #define XS 32                                    // Size of extended keypress buffer
  84. #define BS 128                                 // Size of the incoming keypress buffer
  85. #define DEST_ALL_NODES -1
  86. #define DEST_TEST_NODES -2
  87. #endif
  88. #define MAYBE 2
  89. #define OD_MAX_STRING 1024
  90.  
  91. #define ERROR -32767
  92. #define OK 0
  93.  
  94.                                           /* OPENDOORS DOORDRIVER FUNCTIONS DEFINITIONS */
  95.                                           /* ------------------------------------------ */
  96.  
  97. /* Low-Level serial I/O interface routines.    Use FOSSIL or MCOMM. */
  98.  
  99. FUNCDEF void             od_send_char(char c, boolean local_echo);
  100. FUNCDEF int              od_receive_char(void);
  101. FUNCDEF void             hang_up(void);
  102. FUNCDEF void             clear_rx_buffer(void);
  103. FUNCDEF void             clear_tx_buffer(void);
  104. FUNCDEF boolean         bytes_received(void);
  105. FUNCDEF void             comm_close(void);
  106. FUNCDEF boolean         od_carrier(void);
  107.  
  108. /* OpenDoors door driver functions */
  109.  
  110. FUNCDEF void             od_clear_keybuffer(void);
  111. FUNCDEF void             od_clr_line(void);
  112. FUNCDEF void             od_clr_scr(void);
  113. FUNCDEF unsigned char od_colour_config(char *config_line);
  114. FUNCDEF void             od_disp(char *buffer, int size, char local_echo);
  115. FUNCDEF void             od_disp_str(char *string);
  116. FUNCDEF void             od_send_block(char *buf, int num_chars, boolean
  117.                                 local_echo);
  118. FUNCDEF int              od_draw_box(char left, char top, char right, char bottom);
  119. FUNCDEF unsigned int  od_edit_str(char *input_string, char *format_string,
  120.                                              int row, int col, unsigned char normal_colour,
  121.                                              unsigned char highlight_colour,
  122.                                              char character, unsigned int flags);
  123. FUNCDEF void             od_emulate(register char in_char);
  124. FUNCDEF void             od_exit(int errorlevel, char term_call);
  125. FUNCDEF char             od_get_answer(char *string);
  126. FUNCDEF int              od_get_key(int wait);
  127. FUNCDEF char             od_hotkey_menu(char *filename, char *hotkeys, char wait);
  128. FUNCDEF void             od_init(void);
  129. FUNCDEF void             od_init_with_config(char *filename,
  130.                                                         void (*custom_line_function)
  131.                                                               (char *keyword,char *options));
  132. FUNCDEF void             od_input_str(char *string, int max_len,
  133.                                              unsigned char minchar, unsigned char maxchar);
  134. FUNCDEF void             od_kernal(void);
  135. FUNCDEF int              od_list_files(char *directory);
  136. FUNCDEF int              od_log_open(void);
  137. FUNCDEF int              od_log_write(char *message);
  138. FUNCDEF void             od_page(void);
  139. FUNCDEF void             od_printf(char *format, ...);
  140. FUNCDEF void             od_putch(int character);
  141. FUNCDEF void             od_repeat(char value, unsigned char times);
  142. FUNCDEF int              od_send_file(char *filename);
  143. FUNCDEF void             od_set_attrib(int colour);
  144. #define                     od_set_colour(x, y) od_set_attrib(x|(y<<4))
  145. FUNCDEF void             od_set_cursor(int row, int col);
  146. FUNCDEF void             od_set_statusline(char setting);
  147. FUNCDEF int              od_spawn(char *command_line);
  148. FUNCDEF int              od_spawnvpe(int modeflag, char *path, char *argv[],
  149.                                              char *envp[]);
  150. FUNCDEF char          od_keys_in_buffer(void);
  151. /* Substitute for bioskey(0)... */
  152. FUNCDEF int              getxkey(void);
  153. FUNCDEF void             od_flush(void);
  154. FUNCDEF void          od_blank_display(char *pchBlankStr); /* Turns on secure mode. */
  155. FUNCDEF void          od_restore_display(void);            /* Turns off secure mode. */
  156. FUNCDEF void          od_gettext(int lcol, int lrow, int rcol, int rrow,
  157.                          void *buf);
  158. FUNCDEF int           SendMessage(short dest_node, char *player, short event,
  159.                          boolean from_player, char *format, ...);
  160. FUNCDEF int           od_wherex(void);
  161. FUNCDEF int           od_wherey(void);
  162. FUNCDEF int           od_get_attrib(void);
  163. FUNCDEF int           od_random(int max);
  164. FUNCDEF void          dv_sleep(short seconds);
  165.  
  166.  
  167. #define P_WAIT     0                                                 /* od_spawnvpe() flags */
  168. #define CURRENT    0
  169. #define IRET        1
  170.  
  171.  
  172. #define EDIT_FLAG_NORMAL             0x0000                     /* od_edit_str() flags */
  173. #define EDIT_FLAG_NO_REDRAW         0x0001
  174. #define EDIT_FLAG_FIELD_MODE         0x0002
  175. #define EDIT_FLAG_EDIT_STRING      0x0004
  176. #define EDIT_FLAG_STRICT_INPUT     0x0008
  177. #define EDIT_FLAG_PASSWORD_MODE     0x0010
  178. #define EDIT_FLAG_ALLOW_CANCEL     0x0020
  179. #define EDIT_FLAG_FILL_STRING      0x0040
  180. #define EDIT_FLAG_AUTO_ENTER         0x0080
  181. #define EDIT_FLAG_AUTO_DELETE      0x0100
  182. #define EDIT_FLAG_KEEP_BLANK         0x0200
  183. #define EDIT_FLAG_PERMALITERAL     0x0400
  184. #define EDIT_FLAG_LEAVE_BLANK      0x0800
  185.  
  186.  
  187.  
  188. #define EDIT_RETURN_ERROR             0               /* od_edit_str() return values */
  189. #define EDIT_RETURN_CANCEL          1
  190. #define EDIT_RETURN_ACCEPT          2
  191. #define EDIT_RETURN_PREVIOUS         3
  192. #define EDIT_RETURN_NEXT             4
  193.  
  194.  
  195.  
  196. #define STATUS_NORMAL        1                      /* OpenDoors status line settings */
  197. #define STATUS_NONE            10
  198. #define STATUS_HELP            9
  199. #define STATUS_USER1         2
  200. #define STATUS_USER2         3
  201. #define STATUS_USER3         5
  202. #define STATUS_USER4         6
  203. #define STATUS_SYSTEM        4
  204.  
  205.  
  206.  
  207. #define D_BLACK     0                                  /* OpenDoors colour definitions */
  208. #define D_BLUE      1
  209. #define D_GREEN     2
  210. #define D_CYAN      3
  211. #define D_RED         4
  212. #define D_MAGENTA  5
  213. #define D_BROWN     6
  214. #define D_GREY      7
  215. #define L_BLACK     8
  216. #define L_BLUE      9
  217. #define L_GREEN     10
  218. #define L_CYAN      11
  219. #define L_RED         12
  220. #define L_MAGENTA  13
  221. #define L_YELLOW     14
  222. #define L_WHITE     15
  223. #define B_BLACK     L_BLACK
  224. #define B_BLUE      L_BLUE
  225. #define B_GREEN     L_GREEN
  226. #define B_CYAN      L_CYAN
  227. #define B_RED         L_RED
  228. #define B_MAGENTA  L_MAGENTA
  229. #define B_BROWN     L_YELLOW
  230. #define B_GREY      L_WHITE
  231.  
  232. #define TIMING_NICE -1
  233. #define TIMING_NORMAL 0
  234. #define TIMING_NASTY 1
  235.  
  236.  
  237.  
  238.                                                 /* OPENDOORS DOORDRIVER CONTROL STRUCTURE */
  239.                                                 /* -------------------------------------- */
  240.  
  241. /* Note:  in order to incorporate v. 5.0 ODoors changes, I am updating the
  242.     *USER SETTING* section of _od_control to square with 5.0.  I am *NOT*
  243.     updating any other section. */
  244.  
  245. struct _od_control                      /* OpenDoors door driver control structure */
  246.     {
  247.     char              info_path[60];              /* Location of door information file */
  248.     char              od_infofile[25];          /* Allow user to specify dropfile */
  249.                                                       // J. Downer, 3/94
  250.  
  251.  
  252. #ifdef __OS2__
  253.     unsigned long handle;
  254.    TID           comm_tid;
  255.     TID              kbd_tid;
  256.    TID           kernal_tid;
  257.    TID           commout_tid;
  258.    HMTX          InBufSem;      /* controls access to bhead, btail,
  259.                                    input_buffer, and input_remote */
  260.    HMTX          TimeOutSem;    /* Controls access to timeout data. */
  261.    HMTX          NodeSem;       /* Control access to the list of active nodes. */
  262.    HEV           ReqExitSem;    /* Posted by input threads to request exit. */
  263.    HEV           AllowComSem;   /* Used to block the comm threads. */
  264.    HEV           AllowKbdSem;   /* Used to block the keyboard input thread. */
  265.    HEV           AllowMsgSem;   /* Used to block the inbound msg. thread. */
  266.    HEV           AllowMainSem;  /* To block main thread when other terminates. */
  267.    HEV           RXSem;         /* Indicates that keystrokes are in buffer. */
  268.    HEV           MsgSem;        /* Indicates a message has been received. */
  269.    HEV           InactWarn;     /* Need an inactivity warning. */
  270.    HEV           TimeWarn;      /* Need to warn about remaining time. */
  271.    HMUX          KeyOrTimeOrInact; /* Generic event muxwait. */
  272.    char          use_port;
  273.    boolean       od_no_messages;       // Disable the message thread?
  274.    int           od_max_nodes;         // What's the highest node number?
  275.    int           od_timing;     /* How "kind and gentle" is the door? */
  276. #endif
  277.     char              port;                        // Modem information.
  278.     unsigned int  baud;
  279.    /* Configuration to control internal async under DOS.  Irrelevant
  280.       under OS/2. */
  281.    boolean       fossil;
  282.     boolean          od_no_fossil;            // Set true to force internal async.
  283.     boolean          od_accept_baud;         // Open port at current bps rate.
  284.     boolean          od_fifo_disable;
  285.     int              force_address;
  286.     int              force_irq;
  287.     unsigned int  lockbps;
  288.  
  289.     char              system_name[40];                      /* Caller & BBS information */
  290.     char              sysop_name[40];
  291.     long              system_calls;
  292.     char              system_last_caller[36];
  293.     char              timelog_start_date[9];
  294.     int              timelog_busyperhour[24];
  295.     int              timelog_busyperday[7];
  296.  
  297.     char              user_name[36];
  298.     char              user_location[26];
  299.     char              user_password[16];
  300.     char              user_dataphone[16];
  301.     char              user_homephone[16];
  302.     char              user_lasttime[6];
  303.     char              user_lastdate[9];
  304.     char              user_attribute;
  305.     char              user_flags[4];
  306.     unsigned long user_net_credit;
  307.     unsigned long user_pending;
  308.     unsigned int  user_messages;
  309.     unsigned long user_lastread;
  310.     unsigned int  user_security;
  311.     unsigned long user_numcalls;
  312.     unsigned long user_uploads;
  313.     unsigned long user_downloads;
  314.     unsigned long user_upk;
  315.     unsigned long user_downk;
  316.     unsigned long user_todayk;
  317.     unsigned int  user_time_used;
  318.     unsigned int  user_screen_length;
  319.     char              user_last_pwdchange;
  320.     char              user_attrib2;
  321.     unsigned int  user_group;
  322.     // unsigned int  user_xi_record;
  323.  
  324.     char              event_status;
  325.     char              event_starttime[6];
  326.     unsigned char event_errorlevel;
  327.     char              event_days;
  328.     char              event_force;
  329.     char              event_last_run[9];
  330.  
  331.     char              user_netmailentered;
  332.     char              user_echomailentered;
  333.     char              user_logintime[6];
  334.     char              user_logindate[9];
  335.     int              user_timelimit;
  336.     long              user_loginsec;
  337.     long              user_credit;
  338.     unsigned int  user_num;
  339.     int              user_readthru;
  340.     int              user_numpages;
  341.     int              user_downlimit;
  342.     char              user_timeofcreation[6];
  343.     char              user_logonpassword[16];
  344.     char              user_wantchat;
  345.     char              user_ansi;
  346.  
  347.     int              user_deducted_time;
  348.     // Spitfire keeps track of seconds awarded beyond normal limit.
  349.     int              user_bonus_time;
  350.     char              user_menustack[50][9];
  351.     char              user_menustackpointer;
  352.     char              user_handle[36];
  353.     char              user_comment[81];
  354.     char              user_firstcall[9];
  355.     char              user_combinedrecord[200];
  356.     char              user_birthday[9];
  357.     char              user_subdate[9];
  358.     unsigned char user_screenwidth;
  359.     // unsigned char user_msg_area;
  360.     // unsigned char user_file_area;
  361.     unsigned char user_language;
  362.     unsigned char user_date_format;
  363.     char              user_forward_to[36];
  364.     char              user_error_free;
  365.     char              sysop_next;
  366.     char              user_emsi_session;
  367.     char              user_emsi_crtdef[41];
  368.     char              user_emsi_protocols[41];
  369.     char              user_emsi_capabilities[41];
  370.     char              user_emsi_requests[41];
  371.     char              user_emsi_software[41];
  372.     unsigned char user_hold_attr1;
  373.     unsigned char user_hold_attr2;
  374.     unsigned char user_hold_len;
  375.  
  376.     char              user_reasonforchat[78];
  377.     char              user_callsign[12];
  378.     unsigned int  user_msg_area;
  379.     unsigned int  user_file_area;
  380.     char              user_protocol;
  381.     unsigned int  user_file_group;
  382.     unsigned char user_last_birthday_check;
  383.     char              user_sex;
  384.     unsigned long user_xi_record;
  385.     unsigned int  user_msg_group;
  386.     char              user_avatar;
  387.     char              user_org[51];
  388.     char              user_address[3][51];
  389.     long              user_pwd_crc;
  390.     long              user_logon_pwd_crc;
  391.     char              user_last_cost_menu[9];
  392.     unsigned int  user_menu_cost;
  393.     char              user_rip;
  394.  
  395.  
  396.     char              od_info_type;                /* Door information file statistics */
  397.     char              od_extended_info;
  398.     unsigned int  od_node;
  399.     char              od_ra_info;
  400.  
  401.  
  402.     char              od_okaytopage;                                         /* Door settings */
  403.     int              od_pagestartmin;
  404.     int              od_pageendmin;
  405.     char              od_user_keyboard_on;
  406.     char              od_page_pausing;
  407.     char              od_last_input;
  408.     char              od_logfile_name[80];
  409.     char              od_logfile_disable;
  410.     unsigned int  od_maxtime;
  411.     int              od_maxtime_deduction;
  412.  
  413.  
  414.     char              od_box_chars[6];          /* OpenDoors customization variables */
  415.     char              od_colour_char;
  416.     char              od_colour_delimiter;
  417.     char              od_clear_on_exit;
  418.     unsigned char od_disable;
  419.     int              od_inactivity;
  420.     int              od_last_hot;
  421.     /* 04/27/93 - D. Roseen - The following line creates a control variable for
  422.     *                                 erasing/keeping status bar during spawn.  Default
  423.     *                                 for this variable is set to erase for consistency
  424.     *                                 with existing programs.  This method permits
  425.     *                                 all existing code for other programs to work as
  426.     *                                 intended, and without any further modification. */
  427.     int              od_spawn_big_window;
  428.     char              od_list_pause;
  429.     char              od_list_stop;
  430.     char              od_nocopyright;
  431.     char              od_noexit;
  432.     char              od_page_len;
  433.     char              od_status_on;
  434.     char              od_spawn_freeze_time;
  435.     char              od_swapping_disable;
  436.     char              od_swapping_noems;
  437.     char              od_swapping_path[80];
  438.  
  439.     char              od_chat_disable;
  440.     char              od_shell_disable;
  441.  
  442.     void              (*od_before_exit)(void);               /* Custom function hooks */
  443.     void              (*od_cbefore_chat)(void);
  444.     void              (*od_cafter_chat)(void);
  445.     void              (*od_cbefore_shell)(void);
  446.     void              (*od_cafter_shell)(void);
  447.     void              (*od_warnfunc)(char *str);
  448.     void              (*od_cbefore_status)(void);
  449.     void              (*od_cafter_status)(void);
  450.    void          (*od_node_message)(tInternodeMsg *);
  451.  
  452.  
  453.     unsigned int  key_chat;              /* OpenDoors function key customizations */   unsigned int          key_dosshell;
  454.     unsigned int  key_drop2bbs;
  455.     unsigned int  key_hangup;
  456.     unsigned int  key_keyboardoff;
  457.     unsigned int  key_lesstime;
  458.     unsigned int  key_lockout;
  459.     unsigned int  key_moretime;
  460.     unsigned int  key_status[8];
  461.     unsigned int  key_sysopnext;
  462.  
  463.     char              od_num_keys;                           /* Additional function keys */
  464.     int              od_hot_key[16];
  465.  
  466.  
  467.     char *            od_after_chat;              /* OpenDoors prompt customizations */
  468.     char *            od_after_shell;
  469.     char *            od_before_chat;
  470.     char *            od_before_shell;
  471.     char *            od_chat_reason;
  472.     char *            od_day[7];
  473.     char *            od_help_text;
  474.     char *            od_help_text2;
  475.     char *            od_inactivity_timeout;
  476.     char *            od_inactivity_warning;
  477.     char *            od_month[12];
  478.     char *            od_no_keyboard;
  479.     char *            od_no_sysop;
  480.     char *            od_no_response;
  481.     char *            od_no_time;
  482.     char *            od_offline;
  483.     char *            od_paging;
  484.     char *            od_press_key;
  485.     char *            od_status_line[15];
  486.     char *            od_sysop_next;
  487.     char *            od_time_left;
  488.     char *            od_time_warning;
  489.     char *            od_want_chat;
  490.  
  491.     char *            od_continue;
  492.    #ifdef __OS2__
  493.    char *         od_pipe_name;
  494.    #endif
  495.     char                od_continue_yes;
  496.     char                od_continue_no;
  497.     char                od_continue_nonstop;
  498.  
  499.  
  500.     char              od_chat_colour1;             /* OpenDoors colour customizations */
  501.     char              od_chat_colour2;
  502.     char              od_list_comment_col;
  503.     char              od_list_name_col;
  504.     char              od_list_offline_col;
  505.     char              od_list_size_col;
  506.     char              od_list_title_col;
  507.     };
  508.  
  509. extern struct _od_control od_control;             /* od_control external variable */
  510.  
  511. #define DORINFO1             0                           /* Door information file types */
  512. #define EXITINFO             1
  513. #define RA1EXITINFO         2
  514. #define CHAINTXT             3
  515. #define SFDOORSDAT         4
  516. #define CALLINFO             5
  517. #define DOORSYS_GAP         6
  518. #define DOORSYS_DRWY      7
  519. #define QBBS275EXITINFO  8
  520. #define CUSTOM              9
  521. #define DOORSYS_WILDCAT  10
  522. #define RA2EXITINFO         11
  523. #define PCBOARD             12
  524.  
  525.  
  526. #define DIS_INFOFILE          0x01                          /* Function disable flags */
  527. #define DIS_CARRIERDETECT     0x02
  528. #define DIS_TIMEOUT             0x04
  529. #define DIS_LOCAL_OVERRIDE  0x08
  530.  
  531. #define ES_DELETED 0                                           /* Event status settings */
  532. #define ES_ENABLED 1
  533. #define ES_DISABLED 2
  534.  
  535. extern char *od_log_messages[12];                            /* External text arrays */
  536. extern char od_config_text[31][33];
  537. extern char od_config_lines[24][33];
  538. extern char od_config_colours[12][33];
  539.  
  540.  
  541.                                                                  /* OLD VERSION COMPATIBILITY */
  542.                                                                  /* ───────────────────────── */
  543.  
  544. #define key_help                                key_status[6]
  545. #define key_nohelp                            key_status[0]
  546. #define od_chat_color1                        od_chat_colour1
  547. #define od_chat_color2                        od_chat_colour2
  548. #define od_set_color(x, y)                 od_set_attrib(x|(y<<4))
  549. #define user_credit                            user_net_credit
  550. #define caller_netmailentered             user_netmailentered
  551. #define caller_echomailentered            user_echomailentered
  552. #define caller_logintime                    user_logintime
  553. #define caller_logindate                    user_logindate
  554. #define caller_timelimit                    user_timelimit
  555. #define caller_loginsec                     user_loginsec
  556. #define caller_credit                        user_credit
  557. #define caller_userrecord                    user_num
  558. #define caller_readthru                     user_readthru
  559. #define caller_numpages                     user_numpages
  560. #define caller_downlimit                    user_downlimit
  561. #define caller_timeofcreation             user_timeofcreation
  562. #define caller_logonpassword                user_logonpassword
  563. #define caller_wantchat                     user_wantchat
  564. #define caller_ansi                            user_ansi
  565. #define ra_deducted_time                    user_deducted_time
  566. #define ra_menustack                         user_menustack
  567. #define ra_menustackpointer                user_menustackpointer
  568. #define ra_userhandle                        user_handle
  569. #define ra_comment                            user_comment
  570. #define ra_firstcall                         user_firstcall
  571. #define ra_combinedrecord                    user_combinedrecord
  572. #define ra_birthday                            user_birthday
  573. #define ra_subdate                            user_subdate
  574. #define ra_screenwidth                        user_screenwidth
  575. #define ra_msg_area                            user_msg_area
  576. #define ra_file_area                         user_file_area
  577. #define ra_language                            user_language
  578. #define ra_date_format                        user_date_format
  579. #define ra_forward_to                        user_forward_to
  580. #define ra_error_free                        user_error_free
  581. #define ra_sysop_next                        sysop_next
  582. #define ra_emsi_session                     user_emsi_session
  583. #define ra_emsi_crtdef                        user_emsi_crtdef
  584. #define ra_emsi_protocols                    user_emsi_protocols
  585. #define ra_emsi_capabilities                user_emsi_capabilities
  586. #define ra_emsi_requests                    user_emsi_requests
  587. #define ra_emsi_software                    user_emsi_software
  588. #define ra_hold_attr1                        user_hold_attr1
  589. #define ra_hold_attr2                        user_hold_attr2
  590. #define ra_hold_len                            user_hold_len
  591. #define caller_usernum                        user_num
  592. #define caller_callsign                     user_callsign
  593. #define caller_sex                            user_sex
  594. #define od_avatar                             user_avatar
  595. #define B_YELLOW                                L_YELLOW
  596. #define B_WHITE                                L_WHITE
  597. #define od_rbbs_node                         od_node
  598. #endif
  599.