/* d4defs.h   (c)Copyright Sequiter Software Inc., 1994. All rights reserved. */

#ifndef S4MDX
#ifndef S4FOX
#ifndef S4CLIPPER
#ifndef S4NDX
   error - Must compile with one of the indexing options (S4MDX, S4FOX, S4CLIPPER, OR S4NDX)
#endif
#endif
#endif
#endif

#ifdef S4MDX
#ifdef S4FOX
   error - Both S4MDX and S4FOX switches set - only one is allowed.
#endif
#ifdef S4CLIPPER
   error - Both S4MDX and S4CLIPPER switches set - only one is allowed.
#endif
#ifdef S4NDX
   error - Both S4MDX and S4NDX switches set - only one is allowed.
#endif
#endif

#ifdef S4FOX
#ifdef S4CLIPPER
   error - Both S4FOX and S4CLIPPER switches set - only one is allowed.
#endif
#ifdef S4NDX
   error - Both S4FOX and S4NDX switches set - only one is allowed.
#endif
#endif

#ifdef S4CLIPPER
#ifdef S4NDX
   error - Both S4CLIPPER and S4NDX switches set - only one is allowed.
#endif
#endif
/*   OS2 2.0 SUPPORT */
#ifdef __OS2__       /* Watcom 386, Borland C++ for OS/2 */
   #define S4OS2
#endif
#ifdef __IBMC__  /* IBM C SET/2 */
   #define S4OS2
   #define S4IBMOS2
#endif
#ifdef __IBMCPP__  /* IBM C++ SET/2 */
   #define S4OS2
   #define S4IBMOS2
#endif

#ifdef __OS2__
   #ifndef S4OS2
      #define S4OS2
   #endif
   typedef unsigned HANDLE;
   #if __BORLANDC__ == 0x400
      #define S4MEMCMP
   #endif
#endif

#ifdef S4OS2
#ifndef __WATCOMC__
   #define INCL_DOSSEMAPHORES
   #ifndef S4OS2PM
      #define INCL_NOPMAPI    /* don't include PM.H */
   #endif
   #include <os2.h>
#endif
#endif

#ifndef S4OS2
#ifndef S4UNIX
#ifndef _SIZE_T_DEFINED_     /* Watcom */
#ifndef _SIZE_T_DEFINED      /* Microsoft, Metaware */
#ifndef _SIZE_T              /* Borland  */
   typedef unsigned size_t ;
   #define _SIZE_T_DEFINED_           /* Used to resolve Watcom 386 warning */
   #define _SIZE_T
#endif
#endif
#endif
#endif
#endif

#ifndef _A_RDONLY
   #define _A_RDONLY 0x01                  /* Read-only attribute  */
#endif

#ifdef __HIGHC__           /* align structures to word alignment, Metaware */
  #pragma Align_members(2)
  #pragma Off(Char_default_unsigned)
#endif

#ifdef __SC__
   #pragma SC align 2      /* align structures to word alignment, Symantec */
#endif

#ifdef __WATCOMC__
   #pragma off(unreferenced)
#endif
                           /* Foreign language support */
#ifdef S4GERMAN
   #define S4LANGUAGE
   #ifdef S4FOX
      #define u4memcmp memcmp
   #endif
#endif

#ifdef S4FRENCH
   #define S4LANGUAGE
   #define S4VMAP
#endif

#ifdef S4SWEDISH
   #define S4LANGUAGE
   #define S4VMAP
#endif

#ifdef S4FINNISH
   #define S4LANGUAGE
   #define S4VMAP
#endif

#ifdef S4ANSI
   #define S4VMAP
#endif

#ifdef S4MEMCMP
   #ifdef __cplusplus
      extern "C" {
   #endif
      int c4memcmp(void *, void *, size_t) ;
   #ifdef __cplusplus
      }
   #endif
   #define u4memcmp c4memcmp
#else
#define c4memcmp memcmp
#ifndef S4LANGUAGE
   #define u4memcmp memcmp
#endif
#endif

#ifdef S4WIN32
   #define S4NO_FILELENGTH
   #ifdef __cplusplus
      #define S4CLASS
   #endif
#else
   #ifdef __TURBOC__
      #ifdef S4DLL
         #define S4CLASS huge
         #define S4FUNCTION far pascal
      #endif
   #endif

   #ifdef _MSC_VER
      #if _MSC_VER == 600
         #define S4NO_NEGATIVE_LOCK
      #endif
      #ifdef S4DLL
         #ifdef __cplusplus
            #define S4CLASS
         #else
            #define S4CLASS huge
         #endif
         #define S4FUNCTION far pascal
      #endif
   #endif

   #ifdef __ZTC__
      #ifdef S4DLL
         #ifdef __cplusplus
            #define S4CLASS
         #else
            #define S4CLASS huge
         #endif
         #define S4FUNCTION far pascal
      #endif
   #endif
#endif

#ifdef S4PASCAL_DOS
   #define S4PASCAL
#endif

#ifdef S4PASCAL_WIN
   #define S4PASCAL
#endif

#ifdef S4DLL_BUILD
   #ifndef S4PASCAL_DOS
      #ifdef S4WIN32
         #ifndef S4CONSOLE
            #define S4WINDOWS
         #endif
      #else
         #define S4WINDOWS
      #endif
   #endif
   #define __DLL__ 1
#else
   #ifdef S4WIN32
      #ifndef S4CONSOLE
         #define S4WINDOWS
      #endif
   #endif
#endif

#ifdef __DLL__
   #ifdef S4WIN32
      #define S4DLL
      #define S4CLASS __declspec(dllexport)
      #define S4FUNCTION
      #define S4EXPORT __declspec(dllexport)
   #else
      #ifdef S4OS2
         #define S4CLASS _export
         #define S4FUNCTION _export
      #else
         #define S4DLL
         #define S4CLASS _export
         #define S4FUNCTION far pascal _export
      #endif
   #endif
#endif

#ifndef S4CLASS
   #define S4CLASS
#endif

#ifndef S4FUNCTION
   #define S4FUNCTION
#endif

#ifndef S4EXPORT
   #define S4EXPORT
#endif

#ifdef S4DLL
   #ifndef S4WINDOWS
      #ifndef S4PASCAL_DOS
         #ifdef S4WIN32
            #ifndef S4CONSOLE
               #define S4WINDOWS
            #endif
         #else
            #define S4WINDOWS
         #endif
      #endif
   #endif
   #ifdef S4WIN32
      #define S4CALL _cdecl
   #else
      #ifdef S4OS2
         #define S4CALL
      #else
         #define S4CALL far _cdecl _export
      #endif
   #endif
#else
   #ifdef _MSC_VER
      #define S4CALL _cdecl S4FUNCTION
   #else
      #ifdef __ZTC__
         #define S4CALL _cdecl S4FUNCTION
      #else
         #define S4CALL S4FUNCTION
      #endif
   #endif
#endif

#ifdef S4WIN32
   #define S4NO_FILELENGTH
   #define INVALID_HANDLE_VALUE (HANDLE)-1    /* for Windows NT CreateFile */
#endif

#ifdef S4WINDOWS
   typedef unsigned int UINT ;
#endif

#ifdef S4WINDOWS
   #ifdef __TURBOC__
      #if __TURBOC__ == 0x297         /* Borland C++ 2.0 */
         #define M4PRINT sprintf
      #else
         #define M4PRINT wsprintf
      #endif
   #else
      #define M4PRINT wsprintf
   #endif
#else
   #define M4PRINT sprintf            /* DOS */
#endif

#ifndef S4WIN32
   #ifdef S4DLL
      #ifndef S4OS2
         #define S4PTR far
      #endif
   #endif
#endif

#ifndef S4PTR
   #define S4PTR
#endif

#ifdef S4NDX
   #define N4OTHER
   /* default is to use dBASE III+/Clipper memo file formats if using .NDX index file formats */
   #define S4MNDX
#endif

#ifdef S4CLIPPER
   #define N4OTHER
   /* default is to use dBASE III+/Clipper memo file formats if using .NTX index file formats */
   #define S4MNDX
   #define S4HAS_DESCENDING
#endif

#ifdef S4FOX
   /* default is to use foxpro memo file formats if using foxpro index file formats */
   #define S4MFOX
   #define S4HAS_DESCENDING
#endif

#ifdef S4UNIX
   #ifdef N4OTHER
      force error:  Clipper or dBase III support not allowed.
   #endif
#endif

#ifdef S4MDX
   #define S4MMDX
#endif

#ifdef S4MNDX
   #define   MEMO4SIZE   0x200
#endif

#ifndef S4UNIX
   typedef  const void S4PTR *  S4CMP_PARM ;
#endif

#ifdef S4OFF_OPTIMIZE
   #define S4OPTIMIZE_OFF
#endif

#ifdef S4OFF_INDEX
   #define S4INDEX_OFF
#endif

#ifdef S4OFF_MEMO
   #ifndef S4MEMO_OFF
      #define S4MEMO_OFF
   #endif
#endif

#ifdef S4MEMO_OFF
   #ifndef S4OFF_MEMO
      #define S4OFF_MEMO
   #endif
#endif

#ifdef S4OFF_MULTI
    #define S4SINGLE
#endif

#ifdef S4TEST
   #ifndef S4DEBUG_DEV
      #ifndef S4UNIX
      #ifndef S4MACINTOSH
      #ifndef S4WINDOWS
      #ifdef S4SINGLE
         #define S4DEBUG_DEV
      #endif
      #endif
      #endif
      #endif
   #endif
   #ifndef S4TESTING
      #define S4TESTING
   #endif
   #ifndef S4ERROR_HOOK
      #define S4ERROR_HOOK
   #endif
   #ifndef S4NO_OUT
      #define S4NO_OUT
   #endif
#endif

#ifdef S4DEBUG_DEV
   #ifndef S4INDEX_VERIFY
      #define S4INDEX_VERIFY
   #endif
#endif

#ifdef S4DLL
   #define sort4assign_cmp(s4,f)  (s4)->cmp = (S4CMP_FUNCTION S4PTR *) MakeProcInstance((FARPROC) f, (s4)->code_base->hInst)
#else
   #define sort4assign_cmp(s4,f)  (s4)->cmp = (S4CMP_FUNCTION S4PTR *) (f)
#endif

/* Integer Return Codes */
#define r4success     0
#define r4found       1       /* Primary Key Match */
#define r4after       2
#define r4eof         3
#define r4bof         4
#define r4entry       5       /* No index file entry or no record (go) */
#define r4descending 10
#define r4unique     20       /* Key is not unique, do not write/append */
#define r4unique_continue  25 /* Key is not unique, write/append anyway */
#define r4ignore     40
#define r4keep       45
#define r4locked     50
#define r4no_create  60       /* Could not create file */
#define r4no_open    70       /* Could not open file */
#define r4no_tag     80       /* DataIndex::seek, with no default tag */
#define r4terminate  90       /* no relation match with terminate set */

/* General Disk Access Errors */
#define e4close   -10
#define e4create  -20
#define e4len     -30
#define e4len_set -40
#define e4lock    -50
#define e4open    -60
#define e4read    -70
#define e4remove  -80
#define e4rename  -90
#define e4seek   -100
#define e4unlock -110
#define e4write  -120

/* Database Specific Errors */
#define e4data  -200
#define e4field_name -210     /* Invalid field name */
#define e4field_type -220
#define e4record_len -230

/* Index File Specific Errors */
#define e4entry      -300     /* Tag entry not located */
#define e4index      -310
#define e4tag_name   -330
#define e4unique     -340     /* Key is not unique */

/* Expression Errors */
#define e4comma_expected -400
#define e4complete       -410
#define e4data_name      -420
#define e4length_err     -422
#define e4not_constant   -425
#define e4num_parms      -430
#define e4overflow       -440 /* Overflow while evaluating expression */
#define e4right_missing  -450
#define e4type_sub       -460
#define e4unrec_function -470
#define e4unrec_operator -480
#define e4unrec_value    -490
#define e4unterminated   -500

/* Optimization Errors */
#define e4opt         -610
#define e4opt_suspend -620
#define e4opt_flush   -630

/* Relation Errors */
#define e4lookup_err  -710
#define e4relate      -720

/* Report Errors */
#define e4report           -810
#define e4style_create     -811
#define e4style_select     -812
#define e4style_index      -813
#define e4area_create      -814
#define e4group_create     -815
#define e4group_expr       -816
#define e4total_create     -817
#define e4obj_create       -818
#define e4rep_win          -819
#define e4rep_out          -820
#define e4rep_save         -821
#define e4rep_ret          -822
#define e4rep_data         -823

/* Critical Errors */
#define e4info     -910  /* Unexpected information in internal variable */
#define e4memory   -920  /* Out of memory */
#define e4parm     -930  /* Unexpected parameter */
#define e4demo     -940  /* Exceeded maximum record number for demo */
#define e4result   -950  /* Unexpected result */

/* Library Errors */
/* call to library function calls not supported */
#define e4not_index   -1010  /* S4OFF_INDEX */
#define e4not_memo    -1020  /* S4OFF_MEMO */
#define e4not_rename  -1030  /* S4NO_RENAME */
#define e4not_write   -1040  /* S4OFF_WRITE */
#define e4not_clipper -1050  /* S4CLIPPER */
#define e4not_lock    -1060  /* S4LOCK_HOOK */
#define e4not_hook    -1070  /* S4ERROR_HOOK */

#define E4DEMO_MAX 200

/* garbage between expression and filter is length: */
#ifdef  S4FOX
   #define I4MULTIPLY       1
   #define B4DO_BACK_LEVEL  3
   #define I4MAX_KEY_SIZE 240
   #define F4MAX_NUMERIC   20
   #define F4MAX_DECIMAL   19
   #define F4DECIMAL_OFFSET 1
#else
   #ifdef N4OTHER
      #define F4MAX_NUMERIC   19
      #define F4MAX_DECIMAL   15
      #define F4DECIMAL_OFFSET 2
   #endif
   #ifdef S4MDX
      #define F4MAX_NUMERIC   20
      #define F4MAX_DECIMAL   18
      #define F4DECIMAL_OFFSET 2
   #endif

   #define I4MULTIPLY     512

   #ifdef S4NDX
      #define I4MAX_KEY_SIZE 100
   #else
      #ifdef S4CLIPPER
         #define I4MAX_KEY_SIZE 338
      #else
         #define I4MAX_KEY_SIZE 102
      #endif
   #endif
#endif

#define D4GARBAGE_LEN  518
#define E4ACCURACY     1.0e-13
#define E4ACCURACY_DIGITS  15


/* if S4NO_NEGATIVE_LOCK is defined, there is no dBASE IV compatibility */

#ifdef N4OTHER
   #define L4LOCK_POS     1000000000L
#endif
#ifdef S4FOX
   #ifdef S4NO_NEGATIVE_LOCK
      #define L4LOCK_POS_OLD 1L
      #define L4LOCK_POS     2000000000L
   #else
      #define L4LOCK_POS_OLD 0x40000000L
      #define L4LOCK_POS     0x7FFFFFFEL
   #endif
#endif
#ifdef S4MDX
   #ifdef S4NO_NEGATIVE_LOCK
      #define L4LOCK_POS_OLD 2000000000L
      #define L4LOCK_POS     2000000000L
   #else
      #define L4LOCK_POS_OLD 0x40000000L
      #define L4LOCK_POS     0xEFFFFFFFL
   #endif
#endif

#ifdef S4MDX
   #define I4MAX_EXPR_SIZE 220
#endif
#ifdef S4NDX
   #define I4MAX_EXPR_SIZE 220
#endif
#ifdef S4FOX
   #define I4MAX_EXPR_SIZE 255
#endif
#ifdef S4CLIPPER
   #define I4MAX_EXPR_SIZE 255
#endif

#ifdef N4OTHER
   #ifdef S4NDX
      #define B4BLOCK_SIZE 512
   #else
      #ifdef S4CLIPPER
         #define B4BLOCK_SIZE 1024
      #endif
   #endif
#endif

#ifdef S4FOX
/*#define VERSION_POS 498L*/
/* next is the # of bytes of important info for T4HEADER */
#define T4HEADER_WR_LEN 0x10
/* block_size is 512 for foxpro */
#define B4BLOCK_SIZE 512
#endif

/* function names - language independent */
#ifdef S4OFF_ERROR
   #define E4_BM4DESTROY     0
   #define E4_BM4COLLAPSE    0
   #define E4_BM4COMBINE     0
   #define E4_BM4COMBINE_LF  0
   #define E4_BM4CON_COMBINE 0
   #define E4_BM4COPY        0
   #define E4_BM4FLAG_GEN    0
   #define E4_BM4REDIST      0
   #define E4_BM4SEEK        0
   #define E4_B4ALLOC        0
   #define E4_B4APPEND       0
   #define E4_B4FREE         0
   #define E4_B4GET_LK       0
   #define E4_B4INSERT       0
   #define E4_B4INSERT_BR    0
   #define E4_B4KEY          0
   #define E4_B4LEAF_SEEK    0
   #define E4_B4REMOVE       0
   #define E4_CONST4EQ       0
   #define E4_CONST4LESS_EQ  0
   #define E4_CONST4LESS     0
   #define E4_C4BCD_FROM_A   0
   #define E4_C4DTOA45       0
   #define E4_C4DESCEND      0
   #define E4_C4DESCEND_NUM  0
   #define E4_C4DESCEND_STR  0
   #define E4_C4DESCEND_DATE 0
   #define E4_DATA_LIST4REM  0
   #define E4_DATE4ASSIGN    0
   #define E4_D4ALIAS        0
   #define E4_D4ALIAS_SET    0
   #define E4_D4APPEND       0
   #define E4_D4APPEND_BL    0
   #define E4_D4APPEND_DATA  0
   #ifdef S4VBASIC
      #define E4_D4APPEND_STRT  0
   #else
      #define E4_D4APPEND_STRT  0
   #endif
   #define E4_D4BLANK        0
   #define E4_D4BOF          0
   #define E4_D4BOTTOM       0
   #define E4_D4CHANGED      0
   #define E4_D4CHECK        0
   #define E4_D4CLOSE        0
   #ifdef S4VBASIC
      #define E4_D4CLOSE_ALL    0
   #else
      #define E4_D4CLOSE_ALL    0
   #endif
   #define E4_D4CREATE       0
   #define E4_D4DATA         0
   #define E4_D4DELETE       0
   #define E4_D4DELETED      0
   #define E4_D4EOF          0
   #define E4_D4FIELD        0
   #define E4_D4FIELD_INFO   0
   #define E4_D4FIELDJ       0
   #define E4_D4FIELD_NUM    0
   #define E4_D4FLUSH        0
   #define E4_D4FLUSH_DATA   0
   #define E4_D4FLUSH_FILES  0
   #define E4_D4FREE_BLOCKS  0
   #define E4_D4GO           0
   #define E4_D4GO_DATA      0
   #define E4_D4GO_EOF       0
   #define E4_D4INDEX        0
   #define E4_D4INIT         0
   #define E4_D4INIT_UNDO    0
   #define E4_D4LOCK         0
   #define E4_D4LOCK_ALL     0
   #ifdef S4VBASIC
      #define E4_D4LOCK_APP     0
      #define E4_D4LOCK_FILE    0
      #define E4_D4LOCK_INDEX   0
   #else
      #define E4_D4LOCK_APP     0
      #define E4_D4LOCK_FILE    0
      #define E4_D4LOCK_INDEX   0
   #endif
   #define E4_D4LOCK_GROUP      0
   #define E4_D4REINDEX         0
   #define E4_D4LOCK_TEST       0
   #define E4_D4LOCK_TEST_APP   0
   #define E4_D4LOCK_TEST_FL    0
   #define E4_D4LOCK_TEST_IN    0
   #ifdef S4VBASIC
      #define E4_D4MEMO_COMP      0
   #else
      #define E4_D4MEMO_COMP      0
   #endif
   #define E4_D4NUM_FIELDS   0
   #define E4_D4PACK         0
   #define E4_D4PACK_DATA    0
   #define E4_D4OPEN         0
   #define E4_D4OPT_START    0
   #define E4_D4OPT_SUSPEND  0
   #define E4_D4OPTIMIZE     0
   #define E4_D4OPT_WRITE    0
   #define E4_D4POS          0
   #define E4_D4POS_SET      0
   #define E4_D4READ         0
   #define E4_D4READ_OLD     0
   #define E4_D4RECALL       0
   #define E4_D4RECCOUNT     0
   #define E4_D4RECNO        0
   #define E4_D4RECORD       0
   #define E4_D4RECORD_POS   0
   #define E4_D4RECORD_WIDTH 0
   #define E4_D4REFRESH      0
   #define E4_D4REFRESH_REC  0
   #define E4_D4REINDEX      0
   #define E4_D4SEEK         0
   #ifdef S4VBASIC
      #define E4_D4SEEK_DBL     0
   #else
      #define E4_D4SEEK_DBL     0
   #endif
   #define E4_D4SKIP         0
   #define E4_D4TAG          0
   #ifdef S4VBASIC
      #define E4_D4TAG_DEF      0
   #else
      #define E4_D4TAG_DEF      0
   #endif
   #ifdef S4VBASIC
      #define E4_D4TAG_NEXT     0
   #else
      #define E4_D4TAG_NEXT     0
   #endif
   #ifdef S4VBASIC
      #define E4_D4TAG_PREV     0
   #else
      #define E4_D4TAG_PREV     0
   #endif
   #ifdef S4VBASIC
      #define E4_D4TAG_SELECT   0
   #else
      #define E4_D4TAG_SELECT   0
   #endif
   #define E4_D4TAG_SELECTED 0
   #define E4_D4TOP          0
   #define E4_D4UNLOCK       0
   #define E4_D4UNLOCK_AP    0
   #define E4_D4UNLOCK_DATA  0
   #ifdef S4VBASIC
      #define E4_D4UNLOCK_FILE  0
   #else
      #define E4_D4UNLOCK_FILE  0
   #endif
   #define E4_D4UNLOCK_FILES 0
   #define E4_D4UNLOCK_INDEX 0
   #define E4_D4UNLOCK_REC   0
   #define E4_D4UPDATE       0
   #define E4_D4UPDATE_HDR   0
   #define E4_D4UPDATE_PRIO  0
   #define E4_D4UPDATE_REC   0
   #define E4_D4VALID_MID    0
   #define E4_D4WRITE        0
   #define E4_D4WRITE_DATA   0
   #define E4_D4WRITE_KEYS   0
   #define E4_D4ZAP          0
   #define E4_D4ZAP_DATA     0
   #define E4_EXPR4DOUBLE    0
   #define E4_EXPR4EXEC      0
   #define E4_EXPR4KEY       0
   #define E4_EXPR4LOOKUP    0
   #define E4_EXPR4PARSE     0
   #define E4_EXPR4PV        0
   #define E4_EXPR4TRUE      0
   #define E4_EXPR4VARY      0
   #define E4_EXPR_OM        0
   #define E4_E4HOOK         0
   #define E4_FILE_LEN       0
   #define E4_FILE4LEN       0
   #define E4_FILE4LEN_SET   0
   #define E4_F4ASSIGN       0
   #ifdef S4VBASIC
      #define E4_F4ASSIGN_CHAR  0
      #define E4_F4ASSIGN_DBL   0
      #define E4_F4ASSIGN_FLD   0
      #define E4_F4ASSIGN_INT   0
      #define E4_F4ASSIGN_LONG  0
   #else
      #define E4_F4ASSIGN_CHAR  0
      #define E4_F4ASSIGN_DBL   0
      #define E4_F4ASSIGN_FLD   0
      #define E4_F4ASSIGN_INT   0
      #define E4_F4ASSIGN_LONG  0
   #endif
   #define E4_F4ASSIGN_N     0
   #define E4_F4ASSIGN_PTR   0
   #define E4_F4BLANK        0
   #define E4_F4CHAR         0
   #define E4_F4CREATE       0
   #define E4_F4DATA         0
   #define E4_F4DECIMALS     0
   #define E4_F4DOUBLE       0
   #define E4_F4DOUBLE2      0
   #define E4_F4FLUSH        0
   #define E4_F4INT          0
   #define E4_F4LAG_AND      0
   #define E4_F4LAG_OR       0
   #define E4_F4LAG_IS_SET   0
   #define E4_F4LAG_RESET    0
   #define E4_F4LAG_SET      0
   #define E4_F4LEN          0
   #define E4_F4LOCK         0
   #define E4_F4LOCK_HOOK    0
   #define E4_F4LONG         0
   #define E4_F4LOW_FLUSH    0
   #define E4_F4MEMO_ASSIGN  0
   #ifdef S4VBASIC
      #define E4_F4MEMO_ASS_N   0
   #else
      #define E4_F4MEMO_ASS_N   0
   #endif
   #define E4_F4MEMO_CHECK   0
   #define E4_F4MEMO_FLUSH   0
   #define E4_F4MEMO_FREE    0
   #define E4_F4MEMO_LEN     0
   #define E4_F4MEMO_NCPY    0
   #define E4_F4MEMO_PTR     0
   #define E4_F4MEMO_READ    0
   #define E4_F4MEMO_READ_LW 0
   #define E4_F4MEMO_RESET   0
   #define E4_F4MEMO_SET_LEN 0
   #define E4_F4MEMO_STR     0
   #define E4_F4MEMO_UPDATE  0
   #define E4_F4MEMO_WRITE   0
   #define E4_F4NAME         0
   #define E4_F4NCY          0
   #define E4_F4OPEN         0
   #define E4_F4OPTIMIZE     0
   #define E4_F4OPTIMIZE_WR  0
   #define E4_F4PTR          0
   #define E4_F4READ         0
   #define E4_F4READ_ALL     0
   #define E4_F4REFRESH      0
   #define E4_F4REPLACE      0
   #define E4_F4STR          0
   #define E4_F4TEMP         0
   #define E4_F4SEQ_READ     0
   #define E4_F4SEQ_READ_ALL 0
   #define E4_F4SEQ_READ_IN  0
   #define E4_F4SEQ_WRITE    0
   #define E4_F4SEQ_WRT_FLSH 0
   #define E4_F4SEQ_WRT_INIT 0
   #define E4_F4SEQ_WRT_REP  0
   #define E4_F4TRUE         0
   #define E4_F4TYPE         0
   #define E4_F4UNLOCK       0
   #define E4_F4WRITE        0
   #define E4_I4ADD_TAG      0
   #define E4_I4CHECK        0
   #define E4_I4CLOSE        0
   #define E4_I4CREATE       0
   #define E4_I4EXTEND       0
   #define E4_I4FLUSH        0
   #define E4_I4GET_LAST_KEY 0
   #define E4_I4LOCK         0
   #define E4_I4OPEN         0
   #define E4_I4READ_BLOCK   0
   #define E4_I4REINDEX      0
   #define E4_I4REINDEX_ADD  0
   #define E4_I4REINDEX_BA   0
   #define E4_I4REINDEX_FN   0
   #define E4_I4REINDEX_SK   0
   #define E4_I4REINDEX_TD   0
   #define E4_I4REINDEX_THW  0
   #define E4_I4REINDEX_THWS 0
   #define E4_I4REINDEX_WK   0
   #define E4_I4SHRINK       0
   #define E4_I4TAG          0
   #define E4_I4TAG_INFO     0
   #define E4_I4UNLOCK       0
   #define E4_I4UPDATE       0
   #define E4_I4UPDATE_HDR   0
   #define E4_I4VERSION_CHK  0
   #define E4_LOG4TRUE       0
   #define E4_L4ADD          0
   #define E4_L4ADD_AFTER    0
   #define E4_L4ADD_BEFORE   0
   #define E4_L4CHECK        0
   #define E4_L4FIRST        0
   #define E4_L4LAST         0
   #define E4_L4NEXT         0
   #define E4_L4POP          0
   #define E4_L4PREV         0
   #define E4_L4REMOVE       0
   #define E4_MEMO4FILE_CR   0
   #define E4_MEMO4FILE_RD   0
   #define E4_MEMO4FILE_WR   0
   #define E4_MEM4ALLOC      0
   #define E4_MEM4CREATE     0
   #define E4_MEM4FREE       0
   #define E4_OPT4BLOCK_ADD  0
   #define E4_OPT4BLOCK_CLR  0
   #define E4_OPT4BLOCK_FLSH 0
   #define E4_OPT4BLOCK_REM  0
   #define E4_OPT4FILE_CH    0
   #define E4_OPT4FILE_DEL   0
   #define E4_OPT4FILE_FL    0
   #define E4_OPT4FILE_GB    0
   #define E4_OPT4FILE_LRUB  0
   #define E4_OPT4FILE_LRUT  0
   #define E4_OPT4FILE_RB    0
   #define E4_OPT4FILE_RD    0
   #define E4_OPT4FILE_RD_FL 0
   #define E4_OPT4FILE_RD_SB 0
   #define E4_OPT4FILE_WR    0
   #define E4_OPT4FLUSH_ALL  0
   #define E4_OPT4FLUSH_LST  0
   #define E4_OPT4FLUSH_WB   0
   #define E4_OPT4FREE       0
   #define E4_OPT4INIT       0
   #define E4_OPT4SET_PRIO   0
   #define E4_R4BOTTOM       0
   #define E4_R4CHANGED      0
   #define E4_R4CREATE_SLAVE 0
   #define E4_R4DO           0
   #define E4_R4DO_ONE       0
   #define E4_R4EOF          0
   #define E4_R4FREE         0
   #define E4_R4INIT         0
   #define E4_R4LOCK         0
   #define E4_R4LOOKUP       0
   #define E4_R4MATCH_LEN    0
   #define E4_R4NEXT         0
   #define E4_R4NEXT_RIS     0
   #define E4_R4PREV_RIS     0
   #define E4_R4QUERY_SET    0
   #define E4_R4READ_REST    0
   #define E4_R4SKIP         0
   #define E4_R4SORT         0
   #define E4_R4SORT_SET     0
   #define E4_R4TOP          0
   #define E4_RESULT_CMP     0
   #define E4_R4UNLOCK       0
   #define E4_S4GET          0
   #define E4_S4GET_INIT     0
   #define E4_S4GET_MEM_INIT 0
   #define E4_S4INIT         0
   #define E4_S4SPOOLS_INIT  0
   #define E4_S4NEXT_SP_ENT  0
   #define E4_S4PUT          0
   #define E4_T4ADD          0
   #define E4_T4ADD_CALC     0
   #define E4_T4BALANCE_BR   0
   #define E4_T4BLOCK        0
   #define E4_T4BLOCK_CHK    0
   #define E4_T4BOTTOM       0
   #define E4_T4CHECK        0
   #define E4_T4CLOSE        0
   #define E4_T4CREATE       0
   #define E4_T4DOWN         0
   #define E4_T4DO_VERSION   0
   #define E4_T4DUMP         0
   #define E4_T4EOF          0
   #define E4_T4EXTEND       0
   #define E4_T4FLUSH        0
   #define E4_T4FREE_ALL     0
   #define E4_T4GO           0
   #define E4_T4INIT         0
   #define E4_T4KEY          0
   #define E4_T4OPEN         0
   #define E4_T4POSITION     0
   #define E4_T4POSITION2    0
   #define E4_T4POSITION_SET 0
   #define E4_T4RECNO        0
   #define E4_T4REMOVE       0
   #define E4_T4REM_CALC     0
   #define E4_T4SEEK         0
   #define E4_T4SKIP         0
   #define E4_T4TOP          0
   #define E4_T4UP           0
   #define E4_T4UPDATE       0
   #define E4_T4UP_TO_ROOT   0
   #define E4_U4ALLOC_AGN    0
   #define E4_U4NAME_EXT     0
   #define E4_U4NAME_PIECE   0
   #define E4_U4NAME_RET_EXT 0
   #define E4_U4NCPY         0
#else
   #define E4_BM4DESTROY     "bitmap4destroy()"
   #define E4_BM4COLLAPSE    "bitmap4collapse()"
   #define E4_BM4COMBINE     "bitmap4combine..xx_xx()"
   #define E4_BM4COMBINE_LF  "bitmap4combine_leafs()"
   #define E4_BM4CON_COMBINE "bitmap4constant_combine()"
   #define E4_BM4COPY        "bitmap4copy()"
   #define E4_BM4FLAG_GEN    "bitmap4flag_generate()"
   #define E4_BM4REDIST      "bitmap4redistribute()"
   #define E4_BM4SEEK        "bitmap4seek()"
   #define E4_B4ALLOC        "b4alloc()"
   #define E4_B4APPEND       "b4append()"
   #define E4_B4FREE         "b4free()"
   #define E4_B4GET_LK       "b4get_last_key()"
   #define E4_B4INSERT       "b4insert()"
   #define E4_B4INSERT_BR    "b4insert_branch()"
   #define E4_B4KEY          "b4key()"
   #define E4_B4LEAF_SEEK    "b4bleaf_seek()"
   #define E4_B4REMOVE       "b4remove()"
   #define E4_CONST4EQ       "const4eq()"
   #define E4_CONST4LESS_EQ  "const4less_eq()"
   #define E4_CONST4LESS     "const4less()"
   #define E4_C4BCD_FROM_A   "c4bcd_from_a()"
   #define E4_C4DTOA45       "c4dtoa45()"
   #define E4_C4DESCEND      "c4descend()"
   #define E4_C4DESCEND_NUM  "c4descend_num()"
   #define E4_C4DESCEND_STR  "c4descend_str()"
   #define E4_C4DESCEND_DATE "c4descend_date()"
   #define E4_DATA_LIST4REM  "data_list4remove()"
   #define E4_DATE4ASSIGN    "date4assign()"
   #define E4_D4ALIAS        "d4alias()"
   #ifdef S4VBASIC
      #define E4_D4ALIAS_SET    "d4aliasSet()"
   #else
      #define E4_D4ALIAS_SET    "d4alias_set()"
   #endif
   #define E4_D4APPEND       "d4append()"
   #ifdef S4VBASIC
      #define E4_D4APPEND_BL    "d4appendBlank()"
   #else
      #define E4_D4APPEND_BL    "d4append_blank()"
   #endif
   #define E4_D4APPEND_DATA  "d4append_data()"
   #ifdef S4VBASIC
      #define E4_D4APPEND_STRT  "d4appendStart()"
   #else
      #define E4_D4APPEND_STRT  "d4append_start()"
   #endif
   #define E4_D4BLANK        "d4blank()"
   #define E4_D4BOF          "d4bof()"
   #define E4_D4BOTTOM       "d4bottom()"
   #define E4_D4CHANGED      "d4changed()"
   #define E4_D4CHECK        "d4check()"
   #define E4_D4CLOSE        "d4close()"
   #ifdef S4VBASIC
      #define E4_D4CLOSE_ALL    "d4closeAll()"
   #else
      #define E4_D4CLOSE_ALL    "d4close_all()"
   #endif
   #define E4_D4CREATE       "d4create()"
   #define E4_D4DATA         "d4data()"
   #define E4_D4DELETE       "d4delete()"
   #define E4_D4DELETED      "d4deleted()"
   #define E4_D4EOF          "d4eof()"
   #define E4_D4FIELD        "d4field()"
   #ifdef S4VBASIC
      #define E4_D4FIELD_INFO   "d4fieldInfo()"
      #define E4_D4FIELDJ       "d4fieldJ()"
      #define E4_D4FIELD_NUM    "d4fieldNumber()"
   #else
      #define E4_D4FIELD_INFO   "d4field_info()"
      #define E4_D4FIELDJ       "d4fieldj()"
      #define E4_D4FIELD_NUM    "d4field_number()"
   #endif
   #define E4_D4FLUSH        "d4flush()"
   #ifdef S4VBASIC
      #define E4_D4FLUSH_DATA   "d4flushData()"
      #define E4_D4FLUSH_FILES  "d4flushFiles()"
      #define E4_D4FREE_BLOCKS  "d4freeBlocks()"
   #else
      #define E4_D4FLUSH_DATA   "d4flush_data()"
      #define E4_D4FLUSH_FILES  "d4flush_files()"
      #define E4_D4FREE_BLOCKS  "d4free_blocks()"
   #endif
   #define E4_D4GO           "d4go()"
   #ifdef S4VBASIC
      #define E4_D4GO_DATA      "d4goData()"
      #define E4_D4GO_EOF       "d4goEof()"
   #else
      #define E4_D4GO_DATA      "d4go_data()"
      #define E4_D4GO_EOF       "d4go_eof()"
   #endif
   #define E4_D4INDEX        "d4index()"
   #define E4_D4INIT         "d4init()"
   #ifdef S4VBASIC
      #define E4_D4INIT_UNDO    "d4initUndo()"
   #else
      #define E4_D4INIT_UNDO    "d4init_undo()"
   #endif
   #define E4_D4LOCK         "d4lock()"
   #ifdef S4VBASIC
      #define E4_D4LOCK_ALL     "d4lockAll()"
      #define E4_D4LOCK_APP     "d4lockAppend()"
      #define E4_D4LOCK_FILE    "d4lockFile()"
      #define E4_D4LOCK_INDEX   "d4lockIndex()"
      #define E4_D4LOCK_GROUP   "d4lockGroup()"
   #else
      #define E4_D4LOCK_ALL     "d4lock_all()"
      #define E4_D4LOCK_APP     "d4lock_append()"
      #define E4_D4LOCK_FILE    "d4lock_file()"
      #define E4_D4LOCK_INDEX   "d4lock_index():"
      #define E4_D4LOCK_GROUP   "d4lock_group()"
   #endif
   #define E4_D4REINDEX      "d4reindex()"
   #ifdef S4VBASIC
      #define E4_D4LOCK_TEST       "d4lockTest()"
      #define E4_D4LOCK_TEST_APP   "d4lockTestAppend()"
      #define E4_D4LOCK_TEST_FL    "d4lockTestFile()"
      #define E4_D4LOCK_TEST_IN    "d4lockTestIndex()"
      #define E4_D4MEMO_COMP       "d4memoCompress():"
      #define E4_D4NUM_FIELDS      "d4numFields()"
   #else
      #define E4_D4LOCK_TEST       "d4lock_test()"
      #define E4_D4LOCK_TEST_APP   "d4lock_test_append()"
      #define E4_D4LOCK_TEST_FL    "d4lock_test_file()"
      #define E4_D4LOCK_TEST_IN    "d4lock_test_index()"
      #define E4_D4MEMO_COMP       "d4memo_compress()"
      #define E4_D4NUM_FIELDS      "d4num_fields()"
   #endif
   #define E4_D4PACK         "d4pack()"
   #ifdef S4VBASIC
      #define E4_D4PACK_DATA    "d4packData()"
   #else
      #define E4_D4PACK_DATA    "d4pack_data()"
   #endif
   #define E4_D4OPEN         "d4open()"
   #ifdef S4VBASIC
      #define E4_D4OPT_START    "d4optStart()"
      #define E4_D4OPT_SUSPEND  "d4optSuspend()"
   #else
      #define E4_D4OPT_START    "d4opt_start()"
      #define E4_D4OPT_SUSPEND  "d4opt_suspend()"
   #endif
   #define E4_D4OPTIMIZE     "d4optimize()"
   #ifdef S4VBASIC
      #define E4_D4OPT_WRITE    "d4optimizeWrite()"
   #else
      #define E4_D4OPT_WRITE    "d4optimize_write()"
   #endif
   #define E4_D4POS          "d4position()"
   #ifdef S4VBASIC
      #define E4_D4POS_SET      "d4positionSet()"
   #else
      #define E4_D4POS_SET      "d4position_set()"
   #endif
   #define E4_D4READ         "d4read()"
   #define E4_D4READ_OLD     "d4read_old()"
   #define E4_D4RECALL       "d4recall()"
   #define E4_D4RECCOUNT     "d4reccount()"
   #define E4_D4RECNO        "d4recno()"
   #define E4_D4RECORD       "d4record()"
   #ifdef S4VBASIC
      #define E4_D4RECORD_POS   "d4recordPosition()"
      #define E4_D4RECORD_WIDTH "d4recordWidth()"
   #else
      #define E4_D4RECORD_POS   "d4record_position()"
      #define E4_D4RECORD_WIDTH "d4record_width()"
   #endif
   #define E4_D4REFRESH      "d4refresh()"
   #ifdef S4VBASIC
      #define E4_D4REFRESH_REC  "d4refreshRecord()"
   #else
      #define E4_D4REFRESH_REC  "d4refresh_record()"
   #endif
   #define E4_D4REINDEX      "d4reindex()"
   #define E4_D4SEEK         "d4seek()"
   #ifdef S4VBASIC
      #define E4_D4SEEK_DBL     "d4seekDouble()"
   #else
      #define E4_D4SEEK_DBL     "d4seek_double()"
   #endif
   #define E4_D4SKIP         "d4skip()"
   #define E4_D4TAG          "d4tag()"
   #ifdef S4VBASIC
      #define E4_D4TAG_DEF      "d4tagDefault()"
   #else
      #define E4_D4TAG_DEF      "d4tag_default()"
   #endif
   #ifdef S4VBASIC
      #define E4_D4TAG_NEXT     "d4tagNext()"
   #else
      #define E4_D4TAG_NEXT     "d4tag_next()"
   #endif
   #ifdef S4VBASIC
      #define E4_D4TAG_PREV     "d4tagPrev()"
   #else
      #define E4_D4TAG_PREV     "d4tag_prev()"
   #endif
   #ifdef S4VBASIC
      #define E4_D4TAG_SELECT   "d4tagSelect()"
      #define E4_D4TAG_SELECTED "d4tagSelected()"
   #else
      #define E4_D4TAG_SELECT   "d4tag_select()"
      #define E4_D4TAG_SELECTED "d4tag_selected()"
   #endif
   #define E4_D4TOP          "d4top()"
   #define E4_D4UNLOCK       "d4unlock()"
   #define E4_D4UNLOCK_AP    "d4unlock_append()"
   #define E4_D4UNLOCK_DATA  "d4unlock_data()"
   #ifdef S4VBASIC
      #define E4_D4UNLOCK_FILE  "d4unlockFile()"
      #define E4_D4UNLOCK_FILES "d4unlockFiles()"
   #else
      #define E4_D4UNLOCK_FILE  "d4unlock_file()"
      #define E4_D4UNLOCK_FILES "d4unlock_files()"
   #endif
   #define E4_D4UNLOCK_INDEX "d4unlock_index()"
   #define E4_D4UNLOCK_REC   "d4unlock_records()"
   #define E4_D4UPDATE       "d4update()"
   #define E4_D4UPDATE_HDR   "d4update_header()"
   #define E4_D4UPDATE_PRIO  "d4update_priority()"
   #define E4_D4UPDATE_REC   "d4update_record()"
   #define E4_D4VALID_MID    "d4validate_memo_ids()"
   #define E4_D4WRITE        "d4write()"
   #define E4_D4WRITE_DATA   "d4write_data()"
   #define E4_D4WRITE_KEYS   "d4write_keys()"
   #define E4_D4ZAP          "d4zap()"
   #define E4_D4ZAP_DATA     "d4zap_data()"
   #define E4_EXPR4DOUBLE    "expr4double()"
   #define E4_EXPR4EXEC      "expr4execute()"
   #define E4_EXPR4KEY       "expr4key()"
   #define E4_EXPR4LOOKUP    "e4lookup()"
   #define E4_EXPR4PARSE     "expr4parse()"
   #define E4_EXPR4PV        "expr4parse_value()"
   #define E4_EXPR4TRUE      "expr4true()"
   #define E4_EXPR4VARY      "expr4vary()"
   #define E4_E4HOOK         "e4hook()"
   #define E4_FILE_LEN       "filelength()"
   #define E4_FILE4LEN       "file4len()"
   #define E4_FILE4LEN_SET   "file4len_set()"
   #define E4_F4ASSIGN       "f4assign()"
   #ifdef S4VBASIC
      #define E4_F4ASSIGN_CHAR  "f4assignChar()"
      #define E4_F4ASSIGN_DBL   "f4assignDouble()"
      #define E4_F4ASSIGN_FLD   "f4assignField()"
      #define E4_F4ASSIGN_INT   "f4assignInt()"
      #define E4_F4ASSIGN_LONG  "f4assignLong()"
      #define E4_F4ASSIGN_N     "f4assignN()"
   #else
      #define E4_F4ASSIGN_CHAR  "f4assign_char()"
      #define E4_F4ASSIGN_DBL   "f4assign_double()"
      #define E4_F4ASSIGN_FLD   "f4assign_field()"
      #define E4_F4ASSIGN_INT   "f4assign_int()"
      #define E4_F4ASSIGN_LONG  "f4assign_long()"
      #define E4_F4ASSIGN_N     "f4assign_n()"
   #endif
   #define E4_F4ASSIGN_PTR   "f4assign_ptr()"
   #define E4_F4BLANK        "f4blank()"
   #define E4_F4CHAR         "f4char()"
   #define E4_F4CREATE       "file4create()"
   #define E4_F4DATA         "f4data()"
   #define E4_F4DECIMALS     "f4decimals()"
   #define E4_F4DOUBLE       "f4double()"
   #define E4_F4DOUBLE2      "f4double2()"
   #define E4_F4FLUSH        "file4flush()"
   #define E4_F4INT          "f4int()"
   #define E4_F4LAG_AND      "f4flag_and()"
   #define E4_F4LAG_OR       "f4flag_or()"
   #define E4_F4LAG_IS_SET   "f4flag_is_set()"
   #define E4_F4LAG_RESET    "f4flag_reset()"
   #define E4_F4LAG_SET      "f4flag_set()"
   #define E4_F4LEN          "f4len()"
   #define E4_F4LOCK         "file4lock()"
   #define E4_F4LOCK_HOOK    "file4lock_hook()"
   #define E4_F4LONG         "file4long()"
   #define E4_F4LOW_FLUSH    "file4low_flush()"
   #ifdef S4VBASIC
      #define E4_F4MEMO_ASS_N   "f4memoAssignN()"
      #define E4_F4MEMO_ASSIGN  "f4memoAssign()"
   #else
      #define E4_F4MEMO_ASS_N   "f4memo_assign_n()"
      #define E4_F4MEMO_ASSIGN  "f4memo_assign()"
   #endif
   #define E4_F4MEMO_CHECK   "f4memo_check()"
   #define E4_F4MEMO_FLUSH   "f4memo_flush()"
   #ifdef S4VBASIC
      #define E4_F4MEMO_FREE    "f4memoFree()"
      #define E4_F4MEMO_LEN     "f4memoLen()"
   #else
      #define E4_F4MEMO_FREE    "f4memo_free()"
      #define E4_F4MEMO_LEN     "f4memo_len()"
   #endif

   #define E4_F4MEMO_NCPY    "f4memo_ncpy()"
   #define E4_F4MEMO_PTR     "f4memo_ptr()"
   #define E4_F4MEMO_READ    "f4memo_read()"
   #define E4_F4MEMO_READ_LW "f4memo_read_low()"
   #define E4_F4MEMO_RESET   "f4memo_reset()"
   #define E4_F4MEMO_SET_LEN "f4memo_set_len()"
   #ifdef S4VBASIC
      #define E4_F4MEMO_STR     "f4memoStr()"
   #else
      #define E4_F4MEMO_STR     "f4memo_str()"
   #endif

   #define E4_F4MEMO_UPDATE  "f4memo_update()"
   #define E4_F4MEMO_WRITE   "f4memo_write()"
   #define E4_F4NAME         "f4name()"
   #define E4_F4NCY          "f4ncpy()"
   #define E4_F4OPEN         "file4open()"
   #define E4_F4OPTIMIZE     "file4optimize()"
   #define E4_F4OPTIMIZE_WR  "file4optimize_write()"
   #define E4_F4PTR          "f4ptr()"
   #define E4_F4READ         "file4read()"
   #define E4_F4READ_ALL     "file4read_all()"
   #define E4_F4REFRESH      "file4refresh()"
   #define E4_F4REPLACE      "file4replace()"
   #define E4_F4STR          "file4str()"
   #define E4_F4TEMP         "file4temp()"
   #define E4_F4SEQ_READ     "file4seq_read()"
   #define E4_F4SEQ_READ_ALL "file4seq_read_all()"
   #define E4_F4SEQ_READ_IN  "file4seq_read_init()"
   #define E4_F4SEQ_WRITE    "file4seq_write()"
   #define E4_F4SEQ_WRT_FLSH "file4seq_write_flush()"
   #define E4_F4SEQ_WRT_INIT "file4seq_write_init()"
   #define E4_F4SEQ_WRT_REP  "file4seq_write_repeat()"
   #define E4_F4TRUE         "f4true()"
   #define E4_F4TYPE         "f4type()"
   #define E4_F4UNLOCK       "file4unlock()"
   #define E4_F4WRITE        "file4write()"
   #define E4_I4ADD_TAG      "i4add_tag()"
   #define E4_I4CHECK        "i4check()"
   #define E4_I4CLOSE        "i4close()"
   #define E4_I4CREATE       "i4create()"
   #define E4_I4EXTEND       "i4extend()"
   #define E4_I4FLUSH        "i4flush()"
   #define E4_I4GET_LAST_KEY "i4get_last_key()"
   #define E4_I4LOCK         "i4lock()"
   #define E4_I4OPEN         "i4open()"
   #define E4_I4READ_BLOCK   "i4read_block()"
   #define E4_I4REINDEX      "i4reindex()"
   #define E4_I4REINDEX_ADD  "r4reindex_add()"
   #define E4_I4REINDEX_BA   "r4reindex_blocks_alloc()"
   #define E4_I4REINDEX_FN   "r4reindex_finish()"
   #define E4_I4REINDEX_SK   "r4reindex_supply_keys()"
   #define E4_I4REINDEX_TD   "r4reindex_todisk()"
   #define E4_I4REINDEX_THW  "r4reindex_tag_headers_write()"
   #define E4_I4REINDEX_THWS "r4reindex_tag_headers_write_special()"
   #define E4_I4REINDEX_WK   "r4reindex_write_keys()"
   #define E4_I4SHRINK       "i4shrink()"
   #define E4_I4TAG          "i4tag()"
   #define E4_I4TAG_INFO     "i4tag_info()"
   #define E4_I4UNLOCK       "i4unlock()"
   #define E4_I4UPDATE       "i4update()"
   #define E4_I4UPDATE_HDR   "i4update_header()"
   #define E4_I4VERSION_CHK  "i4version_check()"
   #define E4_LOG4TRUE       "log4true()"
   #define E4_L4ADD          "l4add()"
   #define E4_L4ADD_AFTER    "l4add_after()"
   #define E4_L4ADD_BEFORE   "l4add_before()"
   #define E4_L4CHECK        "l4check()"
   #define E4_L4FIRST        "l4first()"
   #define E4_L4LAST         "l4last()"
   #define E4_L4NEXT         "l4next()"
   #define E4_L4POP          "l4pop()"
   #define E4_L4PREV         "l4prev()"
   #define E4_L4REMOVE       "l4remove()"
   #define E4_MEMO4FILE_CR   "memo4file_create()"
   #define E4_MEMO4FILE_RD   "memo4file_read()"
   #define E4_MEMO4FILE_WR   "memo4file_write()"
   #define E4_MEM4ALLOC      "mem4alloc()"
   #define E4_MEM4CREATE     "mem4create()"
   #define E4_MEM4FREE       "mem4free()"
   #define E4_OPT4BLOCK_ADD  "opt4block_add()"
   #define E4_OPT4BLOCK_CLR  "opt4block_clear()"
   #define E4_OPT4BLOCK_FLSH "opt4block_flush()"
   #define E4_OPT4BLOCK_REM  "opt4block_remove()"
   #define E4_OPT4FILE_CH    "opt4file_choose_block()"
   #define E4_OPT4FILE_DEL   "opt4file_delete()"
   #define E4_OPT4FILE_FL    "opt4file_find_list()"
   #define E4_OPT4FILE_GB    "opt4file_get_block()"
   #define E4_OPT4FILE_LRUB  "opt4file_lru_bottom()"
   #define E4_OPT4FILE_LRUT  "opt4file_lru_top()"
   #define E4_OPT4FILE_RB    "opt4file_return_block()"
   #define E4_OPT4FILE_RD    "opt4file_read()"
   #define E4_OPT4FILE_RD_FL "opt4file_read_file()"
   #define E4_OPT4FILE_RD_SB "opt4file_read_sp_buffer()"
   #define E4_OPT4FILE_WR    "opt4file_write()"
   #define E4_OPT4FLUSH_ALL  "opt4flush_all()"
   #define E4_OPT4FLUSH_LST  "opt4flush_lst()"
   #define E4_OPT4FLUSH_WB   "opt4flush_write_buffer()"
   #define E4_OPT4FREE       "opt4free_alloc()"
   #define E4_OPT4INIT       "opt4free_init()"
   #define E4_OPT4SET_PRIO   "opt4free_set_priority()"
   #define E4_R4BOTTOM       "relate4bottom()"
   #define E4_R4CHANGED      "relate4changed()"
   #ifdef S4VBASIC
      #define E4_R4CREATE_SLAVE "relate4createSlave()"
   #else
      #define E4_R4CREATE_SLAVE "relate4create_slave()"
   #endif
   #define E4_R4DO           "relate4do()"
   #ifdef S4VBASIC
      #define E4_R4DO_ONE       "relate4doOne()"
   #else
      #define E4_R4DO_ONE       "relate4do_one()"
   #endif
   #define E4_R4EOF          "relate4eof()"
   #define E4_R4FREE         "relate4free()"
   #define E4_R4INIT         "relate4init()"
   #define E4_R4LOOKUP       "relate4lookup()"
   #define E4_R4LOCK         "relate4lock()"
   #ifdef S4VBASIC
      #define E4_R4MATCH_LEN    "relate4matchLen()"
   #else
      #define E4_R4MATCH_LEN    "relate4match_len()"
   #endif
   #define E4_R4NEXT         "relate4next()"
   #define E4_R4NEXT_RIS     "relate4next_record_in_scan()"
   #define E4_R4PREV_RIS     "relate4prev_record_in_scan()"
   #ifdef S4VBASIC
      #define E4_R4QUERY_SET    "relate4querySet()"
   #else
      #define E4_R4QUERY_SET    "relate4query_set()"
   #endif
   #define E4_R4READ_REST    "relate4read_rest()"
   #define E4_R4SKIP         "relate4skip()"
   #define E4_R4SORT         "relate4sort()"
   #ifdef S4VBASIC
      #define E4_R4SORT_SET     "relate4sortSet()"
   #else
      #define E4_R4SORT_SET     "relate4sort_set()"
   #endif
   #define E4_R4TOP          "relate4top()"
   #define E4_R4UNLOCK       "relate4unlock()"
   #define E4_S4GET          "sort4get()"
   #define E4_S4GET_INIT     "sort4get_init()"
   #define E4_S4GET_MEM_INIT "sort4get_mem_init()"
   #define E4_S4INIT         "sort4init()"
   #define E4_S4SPOOLS_INIT  "sort4spools_init()"
   #define E4_S4NEXT_SP_ENT  "s4next_spool_entry()"
   #define E4_S4PUT          "sort4put()"
   #define E4_T4ADD          "t4add()"
   #define E4_T4ADD_CALC     "t4add_calc()"
   #define E4_T4BALANCE_BR   "t4balance_branch()"
   #define E4_T4BLOCK        "t4block()"
   #define E4_T4BLOCK_CHK    "t4block_check()"
   #define E4_T4BOTTOM       "t4bottom()"
   #define E4_T4CHECK        "t4check()"
   #define E4_T4CLOSE        "t4close()"
   #define E4_T4CREATE       "t4create()"
   #define E4_T4DOWN         "t4down()"
   #define E4_T4DO_VERSION   "t4do_version_check()"
   #define E4_T4DUMP         "t4dump"
   #define E4_T4EOF          "t4eof()"
   #define E4_T4EXTEND       "t4extend()"
   #define E4_T4FLUSH        "t4flush()"
   #define E4_T4FREE_ALL     "t4free_all()"
   #define E4_T4GO           "t4go()"
   #define E4_T4INIT         "t4init()"
   #define E4_T4KEY          "t4key()"
   #define E4_T4OPEN         "t4open()"
   #define E4_T4POSITION     "t4position()"
   #define E4_T4POSITION2    "t4position2()"
   #ifdef S4VBASIC
      #define E4_T4POSITION_SET "t4positionSet()"
   #else
      #define E4_T4POSITION_SET "t4position_set()"
   #endif
   #define E4_T4RECNO        "t4recno()"
   #define E4_T4REMOVE       "t4remove()"
   #define E4_T4REM_CALC     "t4remove_calc()"
   #define E4_T4SEEK         "t4seek()"
   #define E4_T4SKIP         "t4skip()"
   #define E4_T4TOP          "t4top()"
   #define E4_T4UP           "t4up()"
   #define E4_T4UPDATE       "t4update()"
   #define E4_T4UP_TO_ROOT   "t4up_to_root()"
   #define E4_U4ALLOC_AGN    "u4alloc_again()"
   #define E4_U4NAME_EXT     "u4name_ext()"
   #define E4_U4NAME_PIECE   "u4name_piece()"
   #define E4_U4NAME_RET_EXT "u4name_ret_ext()"
   #define E4_U4NCPY         "u4ncpy()"
#endif


#ifdef S4OFF_ERROR
   /* e4() messages */
   #define  E4_CLOSE         0
   #define  E4_CREATE_FIL    0
   #define  E4_CREATE_TEM    0
   #define  E4_CREATE_TOO    0
   #define  E4_ERROR         0
   #define  E4_ERROR_NUM     0
   #define  E4_ERROR_SEV     0
   #define  E4_ERROR_BAS     0
   #define  E4_ERROR_COD     0
   #define  E4_ERROR_CDS     0
   #define  E4_ERROR_ENT     0
   #define  E4_ERROR_KEY     0
   #define  E4_INDEX_COR     0
   #define  E4_INDEX_EXP     0
   #define  E4_INDEX_FIL     0
   #define  E4_INFO_AME      0
   #define  E4_INFO_BAC      0
   #define  E4_INFO_CAL      0
   #define  E4_INFO_CLO      0
   #define  E4_INFO_DAT      0
   #define  E4_INFO_EMF      0
   #define  E4_INFO_IFT      0
   #define  E4_INFO_INC      0
   #define  E4_INFO_KEY      0
   #define  E4_INFO_LOC      0
   #define  E4_INFO_REA      0
   #define  E4_INFO_REC      0
   #define  E4_INFO_REL      0
   #define  E4_INFO_REP      0
   #define  E4_INFO_SET      0
   #define  E4_INFO_SKI      0
   #define  E4_INFO_SKL      0
   #define  E4_INFO_TAG      0
   #define  E4_LOCK_LOC      0
   #define  E4_LOCK_UNL      0
   #define  E4_MEMORY_B      0
   #define  E4_MEMORY_S      0
   #define  E4_NUM_PARMS     0
   #define  E4_OPT_INV       0
   #define  E4_RESULT_CII    0
   #define  E4_RESULT_D4F    0
   #define  E4_RELATE_EAI    0
   #define  E4_RELATE_MEN    0
   #define  E4_RELATE_REL    0
   #define  E4_RELATE_RCS    0

/*   #define  E4_REPORT_FILE   0 */
/*   #define  E4_REPORT_ONE    0 */
/*   #define  E4_REPORT_DFILE  0 */
/*   #define  E4_REPORT_GRO    0 */
/*   #define  E4_REPORT_IFILE  0 */
/*   #define  E4_REPORT_ASTYLE 0 */
/*   #define  E4_REPORT_AGROUP 0 */
/*   #define  E4_REPORT_RGROUP 0 */
/*   #define  E4_REPORT_ATOTAL 0 */
/*   #define  E4_REPORT_ATEXT  0 */
/*   #define  E4_REPORT_HINST  0 */
/*   #define  E4_REPORT_HWND   0 */
/*   #define  E4_REPORT_RTEXT  0 */
/*   #define  E4_REPORT_RCALC  0 */
/*   #define  E4_REPORT_RTOTAL 0 */
/*   #define  E4_REPORT_TRG    0 */
/*   #define  E4_REPORT_ROBJS  0 */

   #define  E4_REP_NOSNAM    0
   #define  E4_REP_DUPSNAM   0
   #define  E4_REP_SSELECT   0
   #define  E4_REP_SINDEX    0
   #define  E4_REP_AHEIGHT   0
   #define  E4_REP_AMEM      0
   #define  E4_REP_AEXPR     0
   #define  E4_REP_OBJNXT    0
   #define  E4_REP_OBJPRV    0
   #define  E4_REP_GNAME     0
   #define  E4_REP_DUPGNAME  0
   #define  E4_REP_GEXPR     0
   #define  E4_REP_GPOS      0
   #define  E4_REP_SWPHDR    0
   #define  E4_REP_SWPFTR    0
   #define  E4_REP_RPTHDR    0
   #define  E4_REP_RSTPG     0
   #define  E4_REP_RSTPGN    0
   #define  E4_REP_GRPLK     0
   #define  E4_REP_ONE       0
   #define  E4_REP_REPALLOC  0
   #define  E4_REP_NONE      0
   #define  E4_REP_CAPALLOC  0
   #define  E4_REP_BADRESET  0
   #define  E4_REP_BADTITLE  0
   #define  E4_REP_BADSCREEN 0
   #define  E4_REP_DFILE     0
   #define  E4_REP_IFILE     0
   #define  E4_REP_NOTAG     0
   #define  E4_REP_NOMEXPR   0
   #define  E4_REP_NOSORT    0
   #define  E4_REP_NOQUERY   0
   #define  E4_REP_RELERR    0
   #define  E4_REP_TCREATEVAL 0
   #define  E4_REP_TEXPR     0
   #define  E4_REP_TMEM      0
   #define  E4_REP_TCALC     0
   #define  E4_REP_TREXPR    0
   #define  E4_REP_TLKP      0
   #define  E4_REP_OBJMEM    0
   #define  E4_REP_OBJAL     0
   #define  E4_REP_ZERO      0
   #define  E4_REP_NTYPE     0
   #define  E4_REP_LZERO     0
   #define  E4_REP_BRACK     0
   #define  E4_REP_OSTYLE    0
   #define  E4_REP_FCRN      0
   #define  E4_REP_FFILL     0
   #define  E4_REP_OLOOK     0
   #define  E4_REP_OUTWIN    0
   #define  E4_REP_PAGEWIN   0
   #define  E4_REP_PFILE     0
   #define  E4_REP_DOEXPR    0
   #define  E4_REP_SOBJ      0
   #define  E4_REP_SAREA     0
   #define  E4_REP_SGROUP    0
   #define  E4_REP_SPHF      0
   #define  E4_REP_ROBJ      0
   #define  E4_REP_RHAREA    0
   #define  E4_REP_RFAREA    0
   #define  E4_REP_RCALC     0
   #define  E4_REP_RSTYLE    0
   #define  E4_REP_RPHF      0
   #define  E4_REP_RGROUP    0
   #define  E4_REP_SFILE     0
   #define  E4_REP_SCALC     0
   #define  E4_REP_SSTYLE    0
   #define  E4_REP_SREL      0
   #define  E4_REP_RNUM      0
   #define  E4_REP_RFILE     0
   #define  E4_REP_RFILE2    0
   #define  E4_REP_PGBRK     0
   #define  E4_REP_NODSETUP  0
   #define  E4_REP_NODCREATE 0
   #define  E4_REP_NOBUFPAGE 0
   #define  E4_REP_OBJDATAAL 0

   #define  E4_RESULT_DAT    0
   #define  E4_RESULT_EXP    0
   #define  E4_RESULT_IDE    0
   #define  E4_RESULT_INT    0
   #define  E4_RESULT_LCF    0
   #define  E4_RESULT_LOS    0
   #define  E4_RESULT_REC    0
   #define  E4_RESULT_TAG    0
   #define  E4_RESULT_THE    0
   #define  E4_RESULT_UNE    0
   #define  E4_RESULT_WAS    0
   #define  E4_PARM_MUS      0
   #define  E4_PARM_OPT      0
   #define  E4_PARM_REL      0
   #define  E4_PARM_SIZ      0
   #define  E4_PARM_REP      0
   #define  E4_TYPE_SUB      0
   #define  E4_PARM_TAA      0
   #define  E4_TYPE_UFT      0
   #define  E4_PARM_WRT      0
   #define  E4_UNIQUE        0

   /* e4severe() messages */
   #define  E4_BM4_IEL       0
   #define  E4_BM4_IM        0
   #define  E4_CONST_EIN     0
   #define  E4_DATA_ILL      0
   #define  E4_DATA_COR      0
   #define  E4_DATA_DEL      0
   #define  E4_DATA_DELD     0
   #define  E4_DATA_MEM      0
   #define  E4_DATA_RECALL   0
   #define  E4_DATA_UPDATE   0
   #define  E4_EXPR_DELETED  0
   #define  E4_INFO_ACC      0
   #define  E4_INFO_ALR      0
   #define  E4_INFO_BDC      0
   #define  E4_INFO_BDI      0
   #define  E4_INFO_BLO      0
   #define  E4_INFO_BLS      0
   #define  E4_INFO_BMC      0
   #define  E4_INFO_C4C      0
   #define  E4_INFO_COD      0
   #define  E4_INFO_CIF      0
   #define  E4_INFO_CIB      0
   #define  E4_INFO_CIS      0
   #define  E4_INFO_CMF      0
   #define  E4_INFO_CRL      0
   #define  E4_INFO_DAO      0
   #define  E4_INFO_DEL      0
   #define  E4_INFO_DUP      0
   #define  E4_INFO_EPV      0
   #define  E4_INFO_EVA      0
   #define  E4_INFO_EXK      0
   #define  E4_INFO_EXP      0
   #define  E4_INFO_FAI      0
   #define  E4_INFO_FOR      0
   #define  E4_INFO_ILF      0
   #define  E4_INFO_ILL      0
   #define  E4_INFO_ILP      0
   #define  E4_INFO_IMS      0
   #define  E4_INFO_INT      0
   #define  E4_INFO_INV      0
   #define  E4_INFO_IAO      0
   #define  E4_INFO_IVE      0
   #define  E4_INFO_IVT      0
   #define  E4_INFO_LIN      0
   #define  E4_INFO_NKE      0
   #define  E4_INFO_STR      0
   #define  E4_INFO_TAO      0
   #define  E4_INFO_UNE      0
   #define  E4_INFO_UNI      0
   #define  E4_INFO_UNT      0
   #define  E4_INFO_WRO      0
   #define  E4_INFO_WT4      0
   #define  E4_MEMORY_ERR    0
   #define  E4_MEMORY_OOR    0
   #define  E4_MEMORY_SAV    0
   #define  E4_MEMORY_YPO    0
   #define  E4_MEMORY_YPU    0
   #define  E4_OPEN_NOD      0
   #define  E4_PARM_FLA      0
   #define  E4_PARM_FOR      0
   #define  E4_PARM_ILP      0
   #define  E4_PARM_IND      0
   #define  E4_PARM_INV      0
   #define  E4_PARM_NFD      0
   #define  E4_PARM_NUL      0
   #define  E4_PARM_NSD      0
   #define  E4_PARM_OSD      0
   #define  E4_PARM_REC      0
   #define  E4_PARM_TAG      0
   #define  E4_PARM_TOO      0
   #define  E4_PARM_UNI      0
   #define  E4_PARM_ZER      0
   #define  E4_RESULT_CLI    0
   #define  E4_RESULT_COM    0
   #define  E4_RESULT_COR    0
   #define  E4_RESULT_D4A    0
   #define  E4_RESULT_D4I    0
   #define  E4_RESULT_EXI    0
   #define  E4_RESULT_FRE    0
   #define  E4_RESULT_INC    0
   #define  E4_RESULT_INQ    0
   #define  E4_RESULT_LOC    0
   #define  E4_RESULT_LCO    0
   #define  E4_RESULT_MEM    0
   #define  E4_RESULT_REM    0
   #define  E4_RESULT_S4L    0
   #define  E4_RESULT_STC    0
   #define  E4_RESULT_TOO    0

   #ifdef S4WINDOWS
      #define E4_REPORT_BIT     0
      #define E4_REPORT_COD     0
      #define E4_REPORT_CRE     0
      #define E4_REPORT_DIS     0
      #define E4_REPORT_FON     0
      #define E4_REPORT_PRI     0
      #define E4_RESULT_CRE     0
      #define E4_RESULT_DEL     0
      #define E4_RESULT_END     0
      #define E4_RESULT_G4D     0
      #define E4_RESULT_G4E     0
      #define E4_RESULT_G4L     0
      #define E4_RESULT_ON      0
      #define E4_RESULT_SET     0
      #define E4_RESULT_STA     0
      #define E4_MESSAG_EXI     0
      #define E4_MESSAG_CAN     0
      #define E4_MESSAG_OK      0
      #define E4_MESSAG_PAC     0
      #define E4_MESSAG_REC     0
      #define E4_MESSAG_REI     0
      #define E4_PARM_ADD       0
      #define E4_PARM_SA        0
      #define E4_PARM_VIS       0
      #define E4_PARM_WIN       0
      #define E4_RESULT_ADD     0
      #define E4_RESULT_BUF     0
      #define E4_RESULT_CDC     0
      #define E4_RESULT_ENW     0
      #define E4_RESULT_GDC     0
      #define E4_RESULT_GTM     0
      #define E4_RESULT_ID      0
      #define E4_RESULT_IDB     0
      #define E4_RESULT_IDC     0
      #define E4_RESULT_IDD     0
      #define E4_RESULT_IDL     0
      #define E4_RESULT_IDT     0
      #define E4_RESULT_PIC     0
      #define E4_RESULT_POS     0
      #define E4_RESULT_RDC     0
      #define E4_RESULT_RES     0
      #define E4_RESULT_TA1     0
      #define E4_RESULT_TA2     0
      #define E4_RESULT_WIN     0
   #endif
#endif
