2017-09-08 16:00 UTC Viktor Szakats (vszakats users.noreply.github.com)
* *
* partial sync with the 3.4 fork codebase. These are the things
synces for the most part:
- copyright headers
- grammar/typos in comments and some readmes
- comment/whitespace/decorations
- variable scoping in C files
- DO CASE/SWITCH and some other alternate syntax usage
- minimal amount of human readable text in strings
- minor code updates
- HB_TRACE() void * casts for pointers and few other changes to
avoid C compiler warnings
- various other, minor code cleanups
- only Harbour/C code/headers were touched in src, utils, contrib,
include. No 3rd party code, no make files, and with just a few
exceptions, no 'tests' code was touched.
- certain components were not touched were 3.4 diverged too much
already, like f.e. hbmk2, hbssl, hbcurl, hbexpat
- the goal was that no actual program logic should be altered by
these changes. Except some possible minor exceptions, any such
change is probably a bug in this patch.
It's a massive patch, if you find anything broken after it, please
open an Issue with the details. Build test was done on macOS.
The goal is make it easier to see what actual code/logic was changed
in 3.4 compared to 3.2 and to make patches easier to apply in both
ways.
This commit is contained in:
@@ -48,17 +48,17 @@
|
||||
#define _ACHOICE_CH
|
||||
|
||||
/* User callback calling mode values */
|
||||
#define AC_IDLE 0 /* Idle */
|
||||
#define AC_HITTOP 1 /* Attempt to move above the first item */
|
||||
#define AC_HITBOTTOM 2 /* Attempt to move below the last item */
|
||||
#define AC_EXCEPT 3 /* Keystroke exception */
|
||||
#define AC_NOITEM 4 /* There's no selectable item */
|
||||
#define AC_IDLE 0 /* Idle */
|
||||
#define AC_HITTOP 1 /* Attempt to move above the first item */
|
||||
#define AC_HITBOTTOM 2 /* Attempt to move below the last item */
|
||||
#define AC_EXCEPT 3 /* Keystroke exception */
|
||||
#define AC_NOITEM 4 /* There's no selectable item */
|
||||
|
||||
/* User callback return values */
|
||||
#define AC_ABORT 0 /* Abort AChoice() and return zero */
|
||||
#define AC_SELECT 1 /* Select current item and return it's index */
|
||||
#define AC_CONT 2 /* Continue AChoice() */
|
||||
#define AC_ABORT 0 /* Abort AChoice() and return zero */
|
||||
#define AC_SELECT 1 /* Select current item and return it's index */
|
||||
#define AC_CONT 2 /* Continue AChoice() */
|
||||
#define AC_GOTO 3 /* Search first chars for the last pressed key */
|
||||
#define AC_REDRAW 4 /* Redraw AChoice() */
|
||||
#define AC_REDRAW 4 /* Redraw AChoice() */
|
||||
|
||||
#endif /* _ACHOICE_CH */
|
||||
|
||||
@@ -46,24 +46,24 @@
|
||||
|
||||
#ifndef HB_ASSERT_CH_
|
||||
#define HB_ASSERT_CH_
|
||||
#define _ASSERT_DEFINED /* NOTE: For complete CA-Cl*pper compatibility */
|
||||
#define _ASSERT_DEFINED /* NOTE: For complete CA-Cl*pper compatibility */
|
||||
|
||||
#ifdef NDEBUG
|
||||
|
||||
/* When NDEBUG is defined, ignore all ASSERT() calls */
|
||||
#command ASSERT( <exp> [, <msg>] ) =>
|
||||
#command ASSERT( <exp> [, <msg>] ) =>
|
||||
|
||||
#else
|
||||
|
||||
#command ASSERT( <exp> [, <msg>] ) => ;
|
||||
IF !( <exp> ) ;
|
||||
; OutStd( ;
|
||||
hb_eol() + ProcName( 0 ) + ;
|
||||
"(" + hb_ntos( ProcLine() ) + ")" + ;
|
||||
" Assertion failed: " + ;
|
||||
iif( <.msg.>, <msg>, <"exp"> ) ;
|
||||
) ;
|
||||
; QUIT ;
|
||||
#command ASSERT( <exp> [, <msg>] ) => ;
|
||||
IF !( <exp> ) ;
|
||||
; OutStd( ;
|
||||
hb_eol() + ProcName( 0 ) + ;
|
||||
"(" + hb_ntos( ProcLine() ) + ")" + ;
|
||||
" Assertion failed: " + ;
|
||||
iif( <.msg.>, <msg>, <"exp"> ) ;
|
||||
) ;
|
||||
; QUIT ;
|
||||
; END
|
||||
|
||||
#endif /* NDEBUG */
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
#define HB_BLOB_CH_
|
||||
|
||||
#ifndef HB_DBINFO_CH_
|
||||
#include "dbinfo.ch"
|
||||
#include "dbinfo.ch"
|
||||
#endif
|
||||
|
||||
#xtranslate BLOBRootLock() => dbInfo( DBI_BLOB_ROOT_LOCK )
|
||||
|
||||
@@ -116,7 +116,7 @@ typedef HB_VMHANDLE HANDLE;
|
||||
typedef ERRCODE IHELP;
|
||||
typedef ERRCODE ICODE;
|
||||
|
||||
/* default func ptr -- USHORT return, USHORT param */
|
||||
/* default function pointer -- USHORT return, USHORT param */
|
||||
typedef USHORT ( * FUNCP )( USHORT param, ...);
|
||||
typedef FUNCP * FUNCPP;
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
#define HB_COMMON_CH_
|
||||
|
||||
#if defined( HB_LEGACY_LEVEL4 )
|
||||
# include "hbhash.ch"
|
||||
#include "hbhash.ch"
|
||||
#endif
|
||||
|
||||
/* Friendly logical aliases */
|
||||
|
||||
@@ -48,15 +48,15 @@
|
||||
#define _DBEDIT_CH
|
||||
|
||||
/* User function entry modes */
|
||||
#define DE_IDLE 0 /* Idle */
|
||||
#define DE_HITTOP 1 /* Attempt to cursor past top of file */
|
||||
#define DE_HITBOTTOM 2 /* Attempt to cursor past bottom of file */
|
||||
#define DE_EMPTY 3 /* No records in work area */
|
||||
#define DE_EXCEPT 4 /* Key exception */
|
||||
#define DE_IDLE 0 /* Idle */
|
||||
#define DE_HITTOP 1 /* Attempt to cursor past top of file */
|
||||
#define DE_HITBOTTOM 2 /* Attempt to cursor past bottom of file */
|
||||
#define DE_EMPTY 3 /* No records in work area */
|
||||
#define DE_EXCEPT 4 /* Key exception */
|
||||
|
||||
/* User function return codes */
|
||||
#define DE_ABORT 0 /* Abort dbEdit() */
|
||||
#define DE_CONT 1 /* Continue dbEdit() */
|
||||
#define DE_ABORT 0 /* Abort dbEdit() */
|
||||
#define DE_CONT 1 /* Continue dbEdit() */
|
||||
#define DE_REFRESH 2 /* Force reread/redisplay of all data rows */
|
||||
#ifdef HB_CLP_UNDOC
|
||||
#define DE_APPEND 3 /* Undocumented CA-Cl*pper append mode in DBEdit */
|
||||
|
||||
@@ -49,10 +49,7 @@
|
||||
#ifndef HB_DBINFO_CH_
|
||||
#define HB_DBINFO_CH_
|
||||
|
||||
/*
|
||||
Constants for SELF_RDDINFO ()
|
||||
*/
|
||||
|
||||
/* Constants for SELF_RDDINFO() */
|
||||
#define RDDI_ISDBF 1 /* Does this RDD support DBFs? */
|
||||
#define RDDI_CANPUTREC 2 /* Can this RDD Put Records? */
|
||||
#define RDDI_DELIMITER 3 /* The field delimiter (as a string) */
|
||||
@@ -69,7 +66,7 @@
|
||||
#define RDDI_CONNECTION 12 /* Get/Set default connection */
|
||||
#define RDDI_TABLETYPE 13 /* Type of table file */
|
||||
#define RDDI_MEMOTYPE 14 /* Type of MEMO file DB_MEMO_*: DBT, SMT, FPT(FP,SIX3,FLEXIII) */
|
||||
#define RDDI_LARGEFILE 15 /* Is large file size (>=4GB) supported */
|
||||
#define RDDI_LARGEFILE 15 /* Is large file size (>= 4 GiB) supported */
|
||||
#define RDDI_LOCKSCHEME 16 /* Locking scheme used by RDD */
|
||||
#define RDDI_RECORDMAP 17 /* Does RDD support record map functionality? */
|
||||
#define RDDI_ENCRYPTION 18 /* Does RDD support encryption */
|
||||
@@ -117,63 +114,60 @@
|
||||
#define RDDI_AFFECTEDROWS 67 /* number of affected rows after UPDATE */
|
||||
#define RDDI_QUERY 68 /* last executed query */
|
||||
|
||||
/*
|
||||
Constants for SELF_ORDINFO ()
|
||||
*/
|
||||
|
||||
#define DBOI_CONDITION 1 /* The order's conditional expression */
|
||||
#define DBOI_EXPRESSION 2 /* The order's key expression */
|
||||
#define DBOI_POSITION 3 /* The current key position in scope and filter */
|
||||
/* Constants for SELF_ORDINFO() */
|
||||
#define DBOI_CONDITION 1 /* The order's conditional expression */
|
||||
#define DBOI_EXPRESSION 2 /* The order's key expression */
|
||||
#define DBOI_POSITION 3 /* The current key position in scope and filter */
|
||||
#define DBOI_RECNO 4 /* The current key position disregarding filters */
|
||||
#define DBOI_NAME 5 /* The name of the order */
|
||||
#define DBOI_NAME 5 /* The name of the order */
|
||||
#define DBOI_NUMBER 6 /* The numeric position in the list of orders */
|
||||
#define DBOI_BAGNAME 7 /* The name of the file containing this order */
|
||||
#define DBOI_BAGNAME 7 /* The name of the file containing this order */
|
||||
#define DBOI_BAGEXT 8 /* The extension of the file containing this order */
|
||||
#define DBOI_INDEXEXT DBOI_BAGEXT
|
||||
#define DBOI_INDEXNAME DBOI_BAGNAME
|
||||
#define DBOI_ORDERCOUNT 9 /* The count of ORDERS contained in an index file or in total */
|
||||
#define DBOI_FILEHANDLE 10 /* The OS file handle of the index */
|
||||
#define DBOI_FILEHANDLE 10 /* The OS file handle of the index */
|
||||
#define DBOI_ISCOND 11 /* Does the order have a FOR condition? */
|
||||
#define DBOI_ISDESC 12 /* Is the order DESCENDing? */
|
||||
#define DBOI_UNIQUE 13 /* Does the order have the UNIQUE attribute? */
|
||||
|
||||
/* 53-level constants */
|
||||
#define DBOI_FULLPATH 20 /* The full path to the index file (Bag) */
|
||||
#define DBOI_KEYTYPE 24 /* The type of the order's key */
|
||||
#define DBOI_KEYSIZE 25 /* The length of the order's key */
|
||||
#define DBOI_KEYTYPE 24 /* The type of the order's key */
|
||||
#define DBOI_KEYSIZE 25 /* The length of the order's key */
|
||||
#define DBOI_KEYCOUNT 26 /* The count of keys in scope and filter */
|
||||
#define DBOI_SETCODEBLOCK 27 /* The codeblock that produces the key */
|
||||
#define DBOI_KEYDEC 28 /* The # of decimals in a numeric key */
|
||||
#define DBOI_HPLOCKING 29 /* Using High Performance locking for this order? */
|
||||
#define DBOI_LOCKOFFSET 35 /* The offset used for logical locking */
|
||||
#define DBOI_SETCODEBLOCK 27 /* The codeblock that produces the key */
|
||||
#define DBOI_KEYDEC 28 /* The # of decimals in a numeric key */
|
||||
#define DBOI_HPLOCKING 29 /* Using High Performance locking for this order? */
|
||||
#define DBOI_LOCKOFFSET 35 /* The offset used for logical locking */
|
||||
|
||||
#define DBOI_KEYADD 36 /* Custom Index: Was Key added successfully? */
|
||||
#define DBOI_KEYDELETE 37 /* Custom Index: Was Key Deletion successful? */
|
||||
#define DBOI_KEYVAL 38 /* The value of the current key */
|
||||
#define DBOI_SCOPETOP 39 /* Get or Set the scope top */
|
||||
#define DBOI_SCOPEBOTTOM 40 /* Get or Set the scope bottom */
|
||||
#define DBOI_SCOPETOPCLEAR 41 /* Clear the scope top */
|
||||
#define DBOI_SCOPEBOTTOMCLEAR 42 /* Clear the scope bottom */
|
||||
#define DBOI_CUSTOM 45 /* Is this a Custom Index? */
|
||||
#define DBOI_SKIPUNIQUE 46 /* Was a skip to adjacent unique Key successful? */
|
||||
#define DBOI_KEYADD 36 /* Custom Index: Was Key added successfully? */
|
||||
#define DBOI_KEYDELETE 37 /* Custom Index: Was Key Deletion successful? */
|
||||
#define DBOI_KEYVAL 38 /* The value of the current key */
|
||||
#define DBOI_SCOPETOP 39 /* Get or Set the scope top */
|
||||
#define DBOI_SCOPEBOTTOM 40 /* Get or Set the scope bottom */
|
||||
#define DBOI_SCOPETOPCLEAR 41 /* Clear the scope top */
|
||||
#define DBOI_SCOPEBOTTOMCLEAR 42 /* Clear the scope bottom */
|
||||
#define DBOI_CUSTOM 45 /* Is this a Custom Index? */
|
||||
#define DBOI_SKIPUNIQUE 46 /* Was a skip to adjacent unique Key successful? */
|
||||
|
||||
#define DBOI_KEYSINCLUDED 50 /* Number of keys in the index order */
|
||||
/* key numbers and counts */
|
||||
#define DBOI_KEYGOTO DBOI_POSITION
|
||||
#define DBOI_KEYGOTORAW DBOI_KEYNORAW
|
||||
#define DBOI_KEYNO DBOI_POSITION
|
||||
#define DBOI_KEYNORAW 51 /* The key number disregarding filters */
|
||||
#define DBOI_KEYCOUNTRAW 52 /* The key count disregarding filter */
|
||||
#define DBOI_KEYNORAW 51 /* The key number disregarding filters */
|
||||
#define DBOI_KEYCOUNTRAW 52 /* The key count disregarding filter */
|
||||
|
||||
/* Query Optimization */
|
||||
#define DBOI_OPTLEVEL 53 /* Optimization level for current query */
|
||||
|
||||
/* These shouldn't need an open table */
|
||||
#define DBOI_STRICTREAD 60 /* Flag for avoiding RDD hierarchy and using a bigger buffer when indexing */
|
||||
#define DBOI_OPTIMIZE 61 /* Flag for whether to use query optimization */
|
||||
#define DBOI_AUTOOPEN 62 /* Flag for automatically opening structural indexes */
|
||||
#define DBOI_STRICTREAD 60 /* Flag for avoiding RDD hierarchy and using a bigger buffer when indexing */
|
||||
#define DBOI_OPTIMIZE 61 /* Flag for whether to use query optimization */
|
||||
#define DBOI_AUTOOPEN 62 /* Flag for automatically opening structural indexes */
|
||||
#define DBOI_AUTOORDER 63 /* When a structural index is opened, the order to be set */
|
||||
#define DBOI_AUTOSHARE 64 /* When a network is detected, open the index shared, otherwise open exclusively */
|
||||
#define DBOI_AUTOSHARE 64 /* When a network is detected, open the index shared, otherwise open exclusively */
|
||||
|
||||
/* Harbour extensions */
|
||||
#define DBOI_SKIPEVAL 100 /* skip while code block doesn't return TRUE */
|
||||
@@ -194,7 +188,7 @@
|
||||
|
||||
#define DBOI_ISMULTITAG 114 /* does RDD support multi tag in index file */
|
||||
#define DBOI_ISSORTRECNO 115 /* is record number part of key in sorting */
|
||||
#define DBOI_LARGEFILE 116 /* is large file size (>=4GB) supported */
|
||||
#define DBOI_LARGEFILE 116 /* is large file size (>= 4 GiB) supported */
|
||||
#define DBOI_TEMPLATE 117 /* order with free user keys */
|
||||
#define DBOI_MULTIKEY 118 /* custom order with multikeys */
|
||||
#define DBOI_CHGONLY 119 /* update only existing keys */
|
||||
@@ -242,43 +236,43 @@
|
||||
#define DBRI_RECSIZE 3
|
||||
#define DBRI_RECNO 4
|
||||
#define DBRI_UPDATED 5
|
||||
#define DBRI_ENCRYPTED 6
|
||||
#define DBRI_RAWRECORD 7
|
||||
#define DBRI_RAWMEMOS 8
|
||||
#define DBRI_RAWDATA 9
|
||||
#define DBRI_ENCRYPTED 6 /* Harbour extension */
|
||||
#define DBRI_RAWRECORD 7 /* Harbour extension */
|
||||
#define DBRI_RAWMEMOS 8 /* Harbour extension */
|
||||
#define DBRI_RAWDATA 9 /* Harbour extension */
|
||||
|
||||
/* constants for dbInfo() */
|
||||
/* constants for dbInfo() */
|
||||
#define DBI_ISDBF 1 /* Does this RDD support DBFs? */
|
||||
#define DBI_CANPUTREC 2 /* Can this RDD Put Records? */
|
||||
#define DBI_GETHEADERSIZE 3 /* Data file's header size */
|
||||
#define DBI_LASTUPDATE 4 /* The last date this file was written to */
|
||||
#define DBI_GETDELIMITER 5 /* The delimiter (as a string) */
|
||||
#define DBI_SETDELIMITER 6 /* The delimiter (as a string) */
|
||||
#define DBI_GETRECSIZE 7 /* The size of 1 record in the file */
|
||||
#define DBI_CANPUTREC 2 /* Can this RDD Put Records? */
|
||||
#define DBI_GETHEADERSIZE 3 /* Data file's header size */
|
||||
#define DBI_LASTUPDATE 4 /* The last date this file was written to */
|
||||
#define DBI_GETDELIMITER 5 /* The delimiter (as a string) */
|
||||
#define DBI_SETDELIMITER 6 /* The delimiter (as a string) */
|
||||
#define DBI_GETRECSIZE 7 /* The size of 1 record in the file */
|
||||
#define DBI_GETLOCKARRAY 8 /* An array of locked records' numbers */
|
||||
#define DBI_TABLEEXT 9 /* The data file's file extension */
|
||||
#define DBI_FULLPATH 10 /* The Full path to the data file */
|
||||
#define DBI_TABLEEXT 9 /* The data file's file extension */
|
||||
#define DBI_FULLPATH 10 /* The Full path to the data file */
|
||||
|
||||
#define DBI_ISFLOCK 20 /* Is there a file lock active? */
|
||||
#define DBI_CHILDCOUNT 22 /* Number of child relations set */
|
||||
#define DBI_FILEHANDLE 23 /* The data file's OS file handle */
|
||||
#define DBI_BOF 26 /* Same as Bof() */
|
||||
#define DBI_EOF 27 /* Same as Eof() */
|
||||
#define DBI_DBFILTER 28 /* Current Filter setting */
|
||||
#define DBI_FOUND 29 /* Same as Found() */
|
||||
#define DBI_FCOUNT 30 /* How many fields in a record? */
|
||||
#define DBI_LOCKCOUNT 31 /* Number of record locks */
|
||||
#define DBI_VALIDBUFFER 32 /* Is the record buffer valid? */
|
||||
#define DBI_ALIAS 33 /* Name (alias) for this workarea */
|
||||
#define DBI_GETSCOPE 34 /* The codeblock used in LOCATE */
|
||||
#define DBI_ISFLOCK 20 /* Is there a file lock active? */
|
||||
#define DBI_CHILDCOUNT 22 /* Number of child relations set */
|
||||
#define DBI_FILEHANDLE 23 /* The data file's OS file handle */
|
||||
#define DBI_BOF 26 /* Same as Bof() */
|
||||
#define DBI_EOF 27 /* Same as Eof() */
|
||||
#define DBI_DBFILTER 28 /* Current Filter setting */
|
||||
#define DBI_FOUND 29 /* Same as Found() */
|
||||
#define DBI_FCOUNT 30 /* How many fields in a record? */
|
||||
#define DBI_LOCKCOUNT 31 /* Number of record locks */
|
||||
#define DBI_VALIDBUFFER 32 /* Is the record buffer valid? */
|
||||
#define DBI_ALIAS 33 /* Name (alias) for this workarea */
|
||||
#define DBI_GETSCOPE 34 /* The codeblock used in LOCATE */
|
||||
#define DBI_LOCKOFFSET 35 /* The offset used for logical locking */
|
||||
#define DBI_SHARED 36 /* Was the file opened shared? */
|
||||
#define DBI_MEMOEXT 37 /* The memo file's file extension */
|
||||
#define DBI_MEMOHANDLE 38 /* File handle of the memo file */
|
||||
#define DBI_MEMOBLOCKSIZE 39 /* Memo File's block size */
|
||||
#define DBI_SHARED 36 /* Was the file opened shared? */
|
||||
#define DBI_MEMOEXT 37 /* The memo file's file extension */
|
||||
#define DBI_MEMOHANDLE 38 /* File handle of the memo file */
|
||||
#define DBI_MEMOBLOCKSIZE 39 /* Memo File's block size */
|
||||
|
||||
#define DBI_DB_VERSION 101 /* Version of the Host driver */
|
||||
#define DBI_RDD_VERSION 102 /* current RDD's version */
|
||||
#define DBI_DB_VERSION 101 /* Version of the Host driver */
|
||||
#define DBI_RDD_VERSION 102 /* current RDD's version */
|
||||
|
||||
/* Harbour extension */
|
||||
#define DBI_LOCKSCHEME 128 /* Locking scheme used by RDD */
|
||||
@@ -363,7 +357,7 @@
|
||||
#define DB_DBF_STD 1
|
||||
#define DB_DBF_VFP 2
|
||||
|
||||
/* MEMO TYPES: RDDI_MEMOTYPE, DBI_MEMOTYPE, */
|
||||
/* MEMO TYPES: RDDI_MEMOTYPE, DBI_MEMOTYPE */
|
||||
#define DB_MEMO_NONE 0
|
||||
#define DB_MEMO_DBT 1
|
||||
#define DB_MEMO_FPT 2
|
||||
@@ -384,8 +378,8 @@
|
||||
#define DB_DBFLOCK_CLIPPER 1 /* default Cl*pper locking scheme */
|
||||
#define DB_DBFLOCK_COMIX 2 /* COMIX and CL53 DBFCDX hyper locking scheme */
|
||||
#define DB_DBFLOCK_VFP 3 /* [V]FP, CL52 DBFCDX, SIx3 SIXCDX, CDXLOCK.OBJ */
|
||||
#define DB_DBFLOCK_HB32 4 /* Harbour hyper locking scheme for 32bit file API */
|
||||
#define DB_DBFLOCK_HB64 5 /* Harbour hyper locking scheme for 64bit file API */
|
||||
#define DB_DBFLOCK_HB32 4 /* Harbour hyper locking scheme for 32-bit file API */
|
||||
#define DB_DBFLOCK_HB64 5 /* Harbour hyper locking scheme for 64-bit file API */
|
||||
#define DB_DBFLOCK_CLIPPER2 6 /* extended Cl*pper locking scheme NTXLOCK2.OBJ */
|
||||
|
||||
/* for backward compatibility */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Header file for error hanlding
|
||||
* Header file for error handling
|
||||
*
|
||||
* Copyright 1999 {list of individual authors and e-mail addresses}
|
||||
*
|
||||
@@ -95,12 +95,12 @@
|
||||
#define EG_APPENDLOCK 40
|
||||
#define EG_LOCK 41
|
||||
|
||||
#define EG_DESTRUCTOR 45 /* Harbour special */
|
||||
#define EG_ARRACCESS 46 /* Harbour special */
|
||||
#define EG_ARRASSIGN 47 /* Harbour special */
|
||||
#define EG_ARRDIMENSION 48 /* Harbour special */
|
||||
#define EG_NOTARRAY 49 /* Harbour special */
|
||||
#define EG_CONDITION 50 /* Harbour special */
|
||||
#define EG_DESTRUCTOR 45 /* Harbour extension */
|
||||
#define EG_ARRACCESS 46 /* Harbour extension */
|
||||
#define EG_ARRASSIGN 47 /* Harbour extension */
|
||||
#define EG_ARRDIMENSION 48 /* Harbour extension */
|
||||
#define EG_NOTARRAY 49 /* Harbour extension */
|
||||
#define EG_CONDITION 50 /* Harbour extension */
|
||||
|
||||
/* Internal errors */
|
||||
#define HB_EI_ERRUNRECOV 9000 /* "Unrecoverable error %lu: " */
|
||||
|
||||
@@ -50,10 +50,10 @@
|
||||
#define _FILEIO_CH
|
||||
|
||||
/* File create flags */
|
||||
#define FC_NORMAL 0 /* No file attributes are set */
|
||||
#define FC_NORMAL 0 /* No file attributes are set */
|
||||
#define FC_READONLY 1 /* Read-only file attribute is set */
|
||||
#define FC_HIDDEN 2 /* Hidden file attribute is set */
|
||||
#define FC_SYSTEM 4 /* System file attribute is set */
|
||||
#define FC_HIDDEN 2 /* Hidden file attribute is set */
|
||||
#define FC_SYSTEM 4 /* System file attribute is set */
|
||||
|
||||
/* File attributes flags */
|
||||
#define HB_FA_ALL 0x00000000
|
||||
@@ -93,31 +93,38 @@
|
||||
#define HB_FA_XOTH 0x00010000 /* 0001 execute/search by others */
|
||||
|
||||
/* File access flags */
|
||||
#define FO_READ 0 /* File is opened for reading */
|
||||
#define FO_WRITE 1 /* File is opened for writing */
|
||||
#define FO_READ 0 /* File is opened for reading */
|
||||
#define FO_WRITE 1 /* File is opened for writing */
|
||||
#define FO_READWRITE 2 /* File is opened for reading and writing */
|
||||
|
||||
/* File open flags */
|
||||
#define FO_CREAT 0x0100 /* create and open file */
|
||||
#define FO_TRUNC 0x0200 /* open with truncation */
|
||||
#define FO_EXCL 0x0400 /* create and open only if file doesn't exist */
|
||||
#define FO_DEFAULTS 0x1000 /* Use SET command defaults */
|
||||
#define HB_FO_CREAT 0x0100 /* create and open file */
|
||||
#define HB_FO_TRUNC 0x0200 /* open with truncation */
|
||||
#define HB_FO_EXCL 0x0400 /* create and open only if file doesn't exist */
|
||||
#define HB_FO_DEFAULTS 0x1000 /* Use SET command defaults */
|
||||
|
||||
/* Constants breaking Cl*pper namespace.
|
||||
Leaving it here for compatibility */
|
||||
#define FO_CREAT HB_FO_CREAT /* Harbour extension */
|
||||
#define FO_TRUNC HB_FO_TRUNC /* Harbour extension */
|
||||
#define FO_EXCL HB_FO_EXCL /* Harbour extension */
|
||||
#define FO_DEFAULTS HB_FO_DEFAULTS /* Use SET command defaults */
|
||||
|
||||
/* File sharing flags */
|
||||
#define FO_COMPAT 0 /* No sharing specified */
|
||||
#define FO_EXCLUSIVE 16 /* Deny further attempts to open the file */
|
||||
#define FO_COMPAT 0 /* No sharing specified */
|
||||
#define FO_EXCLUSIVE 16 /* Deny further attempts to open the file */
|
||||
#define FO_DENYWRITE 32 /* Deny further attempts to open the file for writing */
|
||||
#define FO_DENYREAD 48 /* Deny further attempts to open the file for reading */
|
||||
#define FO_DENYNONE 64 /* Do not deny any further attempts to open the file */
|
||||
#define FO_DENYNONE 64 /* Do not deny any further attempts to open the file */
|
||||
#define FO_SHARED FO_DENYNONE
|
||||
|
||||
/* File seek mode flags */
|
||||
#define FS_SET 0 /* Seek from beginning of file */
|
||||
#define FS_SET 0 /* Seek from beginning of file */
|
||||
#define FS_RELATIVE 1 /* Seek from current file pointer */
|
||||
#define FS_END 2 /* Seek from end of file */
|
||||
#define FS_END 2 /* Seek from end of file */
|
||||
|
||||
/* File mode flags */
|
||||
#define FD_BINARY 1 /* Binary mode (raw) */
|
||||
#define FD_BINARY 1 /* Binary mode (raw) */
|
||||
#define FD_RAW FD_BINARY
|
||||
#define FD_TEXT 2 /* Text mode (cooked) */
|
||||
#define FD_COOKED FD_TEXT
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Main Harbour header
|
||||
*
|
||||
* Copyright 2010 Viktor Szakats (vszakats.net/harbour)
|
||||
* Copyright 2010-2017 Viktor Szakats (vszakats.net/harbour)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -54,6 +54,7 @@
|
||||
#include "hbgtinfo.ch"
|
||||
#include "hbhash.ch"
|
||||
#include "hbserial.ch"
|
||||
#include "hbver.ch"
|
||||
#include "inkey.ch"
|
||||
#include "setcurs.ch"
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* A platform indpendent include file to include unistd.h and/or io.h
|
||||
* Platform independent include file to include unistd.h and/or io.h
|
||||
*
|
||||
* Copyright 2001 {list of individual authors and e-mail addresses}
|
||||
*
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/* TOFIX: There are several things in this file which are not part of the
|
||||
/* FIXME: There are several things in this file which are not part of the
|
||||
standard Harbour API, in other words these things are not
|
||||
guaranteed to remain unchanged. To avoid confusion these should be
|
||||
moved to somewhere else (like hbrtl.h). [vszakats] */
|
||||
@@ -114,7 +114,7 @@ HB_EXTERN_BEGIN
|
||||
* These macros are slower but can be usable in debugging some code.
|
||||
* They are a little bit more safe in buggy code but they can
|
||||
* also hide bugs which should be exploited as soon as possible to
|
||||
* know that sth is wrong and has to be fixed.
|
||||
* know that something is wrong and has to be fixed.
|
||||
* the version below which check only chosen bits allow compiler to
|
||||
* use some optimizations if used CPU supports it. F.e. on standard
|
||||
* x86 machines they can save few CPU cycles. [druzus]
|
||||
@@ -144,8 +144,8 @@ HB_EXTERN_BEGIN
|
||||
#define HB_IS_COMPLEX( p ) ( ( HB_ITEM_TYPE( p ) & HB_IT_COMPLEX ) != 0 )
|
||||
#define HB_IS_GCITEM( p ) ( ( HB_ITEM_TYPE( p ) & HB_IT_GCITEM ) != 0 )
|
||||
#define HB_IS_EVALITEM( p ) ( ( HB_ITEM_TYPE( p ) & HB_IT_EVALITEM ) != 0 )
|
||||
#define HB_IS_BADITEM( p ) ( ( HB_ITEM_TYPE( p ) & HB_IT_COMPLEX ) != 0 && ( HB_ITEM_TYPE( p ) & ~( HB_IT_COMPLEX | HB_IT_MEMOFLAG ) ) != 0 )
|
||||
#define HB_IS_HASHKEY( p ) ( ( HB_ITEM_TYPE( p ) & HB_IT_HASHKEY ) != 0 )
|
||||
#define HB_IS_BADITEM( p ) ( ( HB_ITEM_TYPE( p ) & HB_IT_COMPLEX ) != 0 && ( HB_ITEM_TYPE( p ) & ~( HB_IT_COMPLEX | HB_IT_MEMOFLAG ) ) != 0 )
|
||||
#define HB_IS_OBJECT( p ) ( HB_IS_ARRAY( p ) && HB_ARRAY_OBJ( p ) )
|
||||
#define HB_IS_NUMBER( p ) HB_IS_NUMERIC( p )
|
||||
|
||||
@@ -346,7 +346,7 @@ struct hb_struRefer
|
||||
union {
|
||||
struct _HB_BASEARRAY * array; /* array (statics and array item references) */
|
||||
struct _HB_CODEBLOCK * block; /* codeblock */
|
||||
struct _HB_ITEM * itemPtr; /* item pointer */
|
||||
struct _HB_ITEM * itemPtr; /* item pointer */
|
||||
struct _HB_ITEM ** *itemsbasePtr; /* local variables */
|
||||
} BasePtr;
|
||||
HB_ISIZ offset; /* 0 for static variables */
|
||||
@@ -542,18 +542,19 @@ extern void * hb_xRefResize( void * pMem, HB_SIZE nSave, HB_SIZE nSize, HB_S
|
||||
|
||||
#define hb_xgrabz( n ) memset( hb_xgrab( ( n ) ), 0, ( n ) )
|
||||
#define hb_xmemdup( p, n ) memcpy( hb_xgrab( ( n ) ), ( p ), ( n ) )
|
||||
#define hb_xreallocz( p, n ) memset( hb_xrealloc( ( p ), ( n ) ), 0, ( n ) )
|
||||
|
||||
/* #if UINT_MAX == ULONG_MAX */
|
||||
/* it fails on 64bit platforms where int has 32 bit and long has 64 bit.
|
||||
/* it fails on 64-bit platforms where int has 32 bits and long has 64 bits.
|
||||
we need these functions only when max(size_t) < max(long)
|
||||
and only on 16bit platforms, so the below condition seems to be
|
||||
and only on 16-bit platforms, so the below condition seems to be
|
||||
more reasonable. */
|
||||
#if UINT_MAX > USHRT_MAX
|
||||
/* NOTE: memcpy/memset can work with HB_SIZE data blocks */
|
||||
/* NOTE: memcpy()/memset() can work with HB_SIZE data blocks */
|
||||
#define hb_xmemcpy memcpy
|
||||
#define hb_xmemset memset
|
||||
#else
|
||||
/* NOTE: otherwise, the hb_xmemcpy and hb_xmemset functions
|
||||
/* NOTE: otherwise, the hb_xmemcpy() and hb_xmemset() functions
|
||||
will be used to copy and/or set HB_SIZE data blocks */
|
||||
extern HB_EXPORT void * hb_xmemcpy( void * pDestArg, const void * pSourceArg, HB_SIZE nLen ); /* copy more than memcpy() can */
|
||||
extern HB_EXPORT void * hb_xmemset( void * pDestArg, int iFill, HB_SIZE nLen ); /* set more than memset() can */
|
||||
@@ -681,18 +682,18 @@ extern HB_EXPORT void * hb_parvptrGC( const HB_GC_FUNCS * pFuncs, int iPar
|
||||
extern HB_EXPORT HB_LONGLONG hb_parvnll( int iParam, ... ); /* retrieve a numeric parameter as a long long */
|
||||
#endif
|
||||
|
||||
extern HB_EXPORT int hb_pcount( void ); /* returns the number of suplied parameters */
|
||||
extern HB_EXPORT int hb_pcount( void ); /* returns the number of supplied parameters */
|
||||
extern HB_EXPORT void hb_ret( void ); /* post a NIL return value */
|
||||
extern HB_EXPORT void hb_retc( const char * szText ); /* returns a string */
|
||||
extern HB_EXPORT void hb_retc_null( void ); /* returns an empty string */
|
||||
extern HB_EXPORT void hb_retc_buffer( char * szText ); /* sames as above, but accepts an allocated buffer */
|
||||
extern HB_EXPORT void hb_retc_buffer( char * szText ); /* same as above, but accepts an allocated buffer */
|
||||
extern HB_EXPORT void hb_retc_const( const char * szText ); /* returns a string as a pcode based string */
|
||||
extern HB_EXPORT void hb_retclen( const char * szText, HB_SIZE nLen ); /* returns a string with a specific length */
|
||||
extern HB_EXPORT void hb_retclen_buffer( char * szText, HB_SIZE nLen ); /* sames as above, but accepts an allocated buffer */
|
||||
extern HB_EXPORT void hb_retclen_buffer( char * szText, HB_SIZE nLen ); /* same as above, but accepts an allocated buffer */
|
||||
extern HB_EXPORT void hb_retclen_const( const char * szText, HB_SIZE nLen ); /* returns a string with a specific length formed from a constant buffer */
|
||||
extern HB_EXPORT void hb_retds( const char * szDate ); /* returns a date, must use YYYYMMDD format */
|
||||
extern HB_EXPORT void hb_retd( int iYear, int iMonth, int iDay ); /* returns a date */
|
||||
extern HB_EXPORT void hb_retdl( long lJulian ); /* returns a long value as a julian date */
|
||||
extern HB_EXPORT void hb_retdl( long lJulian ); /* returns a long value as a Julian date */
|
||||
extern HB_EXPORT void hb_rettd( double dTimeStamp ); /* returns a double value as a timestamp */
|
||||
extern HB_EXPORT void hb_rettdt( long lJulian, long lMilliSec ); /* returns two long values as a timestamp */
|
||||
extern HB_EXPORT void hb_retl( int iTrueFalse ); /* returns a logical integer */
|
||||
@@ -794,7 +795,7 @@ extern HB_EXPORT int hb_storvnll( HB_LONGLONG llValue, int iParam, ... ); /*
|
||||
|
||||
/* array management */
|
||||
extern HB_EXPORT HB_BOOL hb_arrayNew( PHB_ITEM pItem, HB_SIZE nLen ); /* creates a new array */
|
||||
extern HB_EXPORT HB_SIZE hb_arrayLen( PHB_ITEM pArray ); /* retrieves the array len */
|
||||
extern HB_EXPORT HB_SIZE hb_arrayLen( PHB_ITEM pArray ); /* retrieves the array length */
|
||||
extern HB_EXPORT HB_BOOL hb_arrayIsObject( PHB_ITEM pArray ); /* retrieves if the array is an object */
|
||||
extern HB_EXPORT void * hb_arrayId( PHB_ITEM pArray ); /* retrieves the array unique ID */
|
||||
extern HB_EXPORT PHB_ITEM hb_arrayFromId( PHB_ITEM pItem, void * pArrayId );
|
||||
@@ -958,9 +959,9 @@ extern HB_EXPORT int hb_printf_params( const char * format );
|
||||
|
||||
extern HB_EXPORT HB_BOOL hb_strMatchFile( const char * pszString, const char * szPattern ); /* compare two strings using platform dependent rules for file matching */
|
||||
extern HB_EXPORT HB_BOOL hb_strMatchRegExp( const char * szString, const char * szPattern ); /* compare two strings using a regular expression pattern */
|
||||
extern HB_EXPORT HB_BOOL hb_strMatchWild( const char * szString, const char * szPattern ); /* compare two strings using pattern with wildcard (?*) - patern have to be prefix of given string */
|
||||
extern HB_EXPORT HB_BOOL hb_strMatchWildExact( const char * szString, const char * szPattern ); /* compare two strings using pattern with wildcard (?*) - patern have to cover whole string */
|
||||
extern HB_EXPORT HB_BOOL hb_strMatchCaseWildExact( const char * szString, const char * szPattern ); /* compare two strings using pattern with wildcard (?*) ignoring the case of the characters - patern have to cover whole string */
|
||||
extern HB_EXPORT HB_BOOL hb_strMatchWild( const char * szString, const char * szPattern ); /* compare two strings using pattern with wildcard (?*) - pattern have to be prefix of given string */
|
||||
extern HB_EXPORT HB_BOOL hb_strMatchWildExact( const char * szString, const char * szPattern ); /* compare two strings using pattern with wildcard (?*) - pattern have to cover whole string */
|
||||
extern HB_EXPORT HB_BOOL hb_strMatchCaseWildExact( const char * szString, const char * szPattern ); /* compare two strings using pattern with wildcard (?*) ignoring the case of the characters - pattern have to cover whole string */
|
||||
extern HB_EXPORT HB_BOOL hb_strEmpty( const char * szText, HB_SIZE nLen ); /* returns whether a string contains only white space */
|
||||
extern HB_EXPORT void hb_strDescend( char * szStringTo, const char * szStringFrom, HB_SIZE nLen ); /* copy a string to a buffer, inverting each character */
|
||||
extern HB_EXPORT HB_SIZE hb_strAt( const char * szSub, HB_SIZE nSubLen, const char * szText, HB_SIZE nLen ); /* returns an index to a sub-string within another string */
|
||||
@@ -981,8 +982,8 @@ extern HB_EXPORT HB_BOOL hb_strIsDigit( const char * szChar );
|
||||
extern HB_EXPORT HB_BOOL hb_strIsAlpha( const char * szChar );
|
||||
extern HB_EXPORT HB_BOOL hb_strIsLower( const char * szChar );
|
||||
extern HB_EXPORT HB_BOOL hb_strIsUpper( const char * szChar );
|
||||
extern HB_EXPORT char * hb_strncpy( char * pDest, const char * pSource, HB_SIZE nLen ); /* copy at most nLen bytes from string buffer to another buffer and _always_ set 0 in destin buffer */
|
||||
extern HB_EXPORT char * hb_strncat( char * pDest, const char * pSource, HB_SIZE nLen ); /* copy at most nLen-strlen(pDest) bytes from string buffer to another buffer and _always_ set 0 in destin buffer */
|
||||
extern HB_EXPORT char * hb_strncpy( char * pDest, const char * pSource, HB_SIZE nLen ); /* copy at most nLen bytes from string buffer to another buffer and _always_ set 0 in destination buffer */
|
||||
extern HB_EXPORT char * hb_strncat( char * pDest, const char * pSource, HB_SIZE nLen ); /* copy at most nLen-strlen(pDest) bytes from string buffer to another buffer and _always_ set 0 in destination buffer */
|
||||
extern HB_EXPORT char * hb_strncpyTrim( char * pDest, const char * pSource, HB_SIZE nLen );
|
||||
extern HB_EXPORT char * hb_strncpyLower( char * pDest, const char * pSource, HB_SIZE nLen ); /* copy an existing string buffer to another buffer, as lower case */
|
||||
extern HB_EXPORT char * hb_strncpyUpper( char * pDest, const char * pSource, HB_SIZE nLen ); /* copy an existing string buffer to another buffer, as upper case */
|
||||
@@ -1048,11 +1049,11 @@ extern HB_LONG hb_dynsymCount( void ); /* number of dynamic symbols
|
||||
/* Symbol management */
|
||||
extern HB_EXPORT PHB_SYMB hb_symbolNew( const char * szName ); /* create a new symbol */
|
||||
|
||||
/* Command line and environment argument management */
|
||||
extern HB_EXPORT void hb_cmdargInit( int argc, char * argv[] ); /* initialize command line argument API's */
|
||||
extern HB_EXPORT int hb_cmdargARGC( void ); /* retrieve command line argument count */
|
||||
extern HB_EXPORT char ** hb_cmdargARGV( void ); /* retrieve command line argument buffer pointer */
|
||||
extern HB_EXPORT const char * hb_cmdargARGVN( int argc ); /* retrieve given command line argument */
|
||||
/* Command-line and environment argument management */
|
||||
extern HB_EXPORT void hb_cmdargInit( int argc, char * argv[] ); /* initialize command-line argument API's */
|
||||
extern HB_EXPORT int hb_cmdargARGC( void ); /* retrieve command-line argument count */
|
||||
extern HB_EXPORT char ** hb_cmdargARGV( void ); /* retrieve command-line argument buffer pointer */
|
||||
extern HB_EXPORT const char * hb_cmdargARGVN( int argc ); /* retrieve given command-line argument */
|
||||
extern HB_EXPORT HB_BOOL hb_cmdargIsInternal( const char * szArg, int * piLen ); /* determine if a string is an internal setting */
|
||||
extern HB_EXPORT char * hb_cmdargProgName( void ); /* return application name with path or NULL if not set, caller must free returned value with hb_xfree() if not NULL */
|
||||
extern HB_EXPORT char * hb_cmdargBaseProgName( void ); /* return application name without path or NULL if not set, caller must free returned value with hb_xfree() if not NULL */
|
||||
@@ -1061,7 +1062,7 @@ extern void hb_cmdargUpdate( void ); /* update arguments afte
|
||||
extern HB_BOOL hb_cmdargCheck( const char * pszName ); /* Check if a given internal switch (like //INFO) was set */
|
||||
extern char * hb_cmdargString( const char * pszName ); /* Returns the string value of an internal switch (like //GT:cgi) */
|
||||
extern int hb_cmdargNum( const char * pszName ); /* Returns the numeric value of an internal switch (like //F:90) */
|
||||
extern void hb_cmdargProcess( void ); /* Check for command line internal arguments */
|
||||
extern void hb_cmdargProcess( void ); /* Check for command-line internal arguments */
|
||||
#if defined( HB_OS_WIN )
|
||||
extern HB_EXPORT void hb_winmainArgInit( void * hInstance, void * hPrevInstance, int iCmdShow ); /* Set WinMain() parameters */
|
||||
extern HB_EXPORT HB_BOOL hb_winmainArgGet( void * phInstance, void * phPrevInstance, int * piCmdShow ); /* Retrieve WinMain() parameters */
|
||||
@@ -1084,7 +1085,7 @@ extern void hb_memvarGetValue( PHB_ITEM pItem, PHB_SYMB pMemvarS
|
||||
extern void hb_memvarGetRefer( PHB_ITEM pItem, PHB_SYMB pMemvarSymb ); /* copy a reference to a symbol value into an item, with error trapping */
|
||||
extern HB_SIZE hb_memvarGetPrivatesBase( void ); /* retrieve current PRIVATE variables stack base */
|
||||
extern void hb_memvarSetPrivatesBase( HB_SIZE nBase ); /* release PRIVATE variables created after specified base */
|
||||
extern void hb_memvarUpdatePrivatesBase( void ); /* Update PRIVATE base ofsset so they will not be removed when function return */
|
||||
extern void hb_memvarUpdatePrivatesBase( void ); /* Update PRIVATE base offset so they will not be removed when function return */
|
||||
extern void hb_memvarNewParameter( PHB_SYMB pSymbol, PHB_ITEM pValue );
|
||||
extern char * hb_memvarGetStrValuePtr( char * szVarName, HB_SIZE * pnLen );
|
||||
extern void hb_memvarCreateFromItem( PHB_ITEM pMemvar, int iScope, PHB_ITEM pValue );
|
||||
@@ -1136,7 +1137,7 @@ extern void hb_macroPushSymbol( PHB_ITEM pItem ); /* handle a
|
||||
extern void hb_macroRun( PHB_MACRO pMacro ); /* executes pcode compiled by macro compiler */
|
||||
extern PHB_MACRO hb_macroCompile( const char * szString ); /* compile a string and return a pcode buffer */
|
||||
extern void hb_macroDelete( PHB_MACRO pMacro ); /* release all memory allocated for macro evaluation */
|
||||
extern char * hb_macroTextSymbol( const char * szString, HB_SIZE nLength, HB_BOOL * pfNewString ); /* substitute macro variables occurences within a given string and check if result is a valid function or variable name */
|
||||
extern char * hb_macroTextSymbol( const char * szString, HB_SIZE nLength, HB_BOOL * pfNewString ); /* substitute macro variables occurrences within a given string and check if result is a valid function or variable name */
|
||||
extern char * hb_macroExpandString( const char * szString, HB_SIZE nLength, HB_BOOL * pfNewString ); /* expands valid '&' operator */
|
||||
extern void hb_macroPopAliasedValue( PHB_ITEM pAlias, PHB_ITEM pVar, int flags ); /* compiles and evaluates an aliased macro expression */
|
||||
extern void hb_macroPushAliasedValue( PHB_ITEM pAlias, PHB_ITEM pVar, int flags ); /* compiles and evaluates an aliased macro expression */
|
||||
@@ -1181,7 +1182,7 @@ extern HB_EXPORT const char * hb_verCPU( void ); /* retrieves a cons
|
||||
extern HB_EXPORT const char * hb_verPlatformMacro( void ); /* retrieves a constant string with OS platform (as it appears in __PLATFORM__* macro) */
|
||||
extern HB_EXPORT char * hb_verPlatform( void ); /* retrieves a newly allocated buffer containing platform version */
|
||||
extern HB_EXPORT char * hb_verCompiler( void ); /* retrieves a newly allocated buffer containing compiler version */
|
||||
extern HB_EXPORT char * hb_verHarbour( void ); /* retrieves a newly allocated buffer containing harbour version */
|
||||
extern HB_EXPORT char * hb_verHarbour( void ); /* retrieves a newly allocated buffer containing Harbour version */
|
||||
extern HB_EXPORT char * hb_verPCode( void ); /* retrieves a newly allocated buffer containing PCode version */
|
||||
extern HB_EXPORT char * hb_verBuildDate( void ); /* retrieves a newly allocated buffer containing build date and time */
|
||||
extern HB_EXPORT void hb_verBuildInfo( void ); /* display harbour, compiler, and platform versions to standard console */
|
||||
@@ -1213,7 +1214,7 @@ extern HB_EXPORT HB_BOOL hb_iswinver( int iMajorVersion, int iMinorVersion, int
|
||||
extern HB_EXPORT HB_BOOL hb_printerIsReady( const char * pszPrinterName );
|
||||
|
||||
/* OS/Harbour codepage conversion */
|
||||
extern HB_EXPORT HB_BOOL hb_osUseCP( void ); /* Is OS<->Harbour codepage conversion enabled? */
|
||||
extern HB_EXPORT HB_BOOL hb_osUseCP( void ); /* Is OS<->Harbour codepage conversion enabled? */
|
||||
extern HB_EXPORT const char * hb_osEncodeCP( const char * szName, char ** pszFree, HB_SIZE * pnSize ); /* Convert a string sent to a system call, from Harbour codepage. */
|
||||
extern HB_EXPORT const char * hb_osDecodeCP( const char * szName, char ** pszFree, HB_SIZE * pnSize ); /* Convert a string received from a system call, to Harbour codepage. */
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* serial communication functions and constant values
|
||||
* Serial communication functions and constant values
|
||||
*
|
||||
* Copyright 2010 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* debugger C API
|
||||
* Debugger C API
|
||||
*
|
||||
* Copyright 2007 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -60,28 +60,28 @@ HB_EXTERN_BEGIN
|
||||
#define FL_MASK 0x00FF /* Mask for lock type */
|
||||
|
||||
/* Extended file locking flags */
|
||||
#define FLX_EXCLUSIVE 0x0000 /* Exclusive lock */
|
||||
#define FLX_SHARED 0x0100 /* Shared lock */
|
||||
#define FLX_WAIT 0x0200 /* Wait for lock until success */
|
||||
#define FLX_EXCLUSIVE HB_FLX_EXCLUSIVE /* Exclusive lock */
|
||||
#define FLX_SHARED HB_FLX_SHARED /* Shared lock */
|
||||
#define FLX_WAIT HB_FLX_WAIT /* Wait for lock until success */
|
||||
|
||||
/* File inheritance flags */
|
||||
#define FO_INHERITED 0x0000 /* Spawned processes can inherit this file handle */
|
||||
#define FO_INHERITED 0x0000 /* Spawned processes can inherit this file handle */
|
||||
#define FO_PRIVATE 0x0080 /* Spawned processes can not inherit this file handle */
|
||||
|
||||
/* Extended file open mode flags */
|
||||
#define FXO_TRUNCATE 0x0100 /* Create (truncate if exists) */
|
||||
#define FXO_APPEND 0x0200 /* Create (append if exists) */
|
||||
#define FXO_APPEND 0x0200 /* Create (append if exists) */
|
||||
#define FXO_UNIQUE 0x0400 /* Create unique file FO_EXCL ??? */
|
||||
#define FXO_FORCEEXT 0x0800 /* Force default extension */
|
||||
#define FXO_DEFAULTS 0x1000 /* Use SET command defaults */
|
||||
#define FXO_DEVICERAW 0x2000 /* Open devices in raw mode */
|
||||
#define FXO_FORCEEXT 0x0800 /* Force default extension */
|
||||
#define FXO_DEFAULTS 0x1000 /* Use SET command defaults */
|
||||
#define FXO_DEVICERAW 0x2000 /* Open devices in raw mode */
|
||||
/* Harbour extension */
|
||||
#define FXO_NOSEEKPOS FXO_DEVICERAW /* seek pos not needed in regular file */
|
||||
#define FXO_SHARELOCK 0x4000 /* emulate MS-DOS SH_DENY* mode in POSIX OS */
|
||||
#define FXO_COPYNAME 0x8000 /* copy final szPath into pszFileName */
|
||||
#define FXO_SHARELOCK 0x4000 /* emulate MS-DOS SH_DENY* mode in POSIX OS */
|
||||
#define FXO_COPYNAME 0x8000 /* copy final szPath into pszFileName */
|
||||
|
||||
/* these definitions should be cleared,
|
||||
* now they only help to clean lower level code
|
||||
* now they only help to clean lower-level code
|
||||
*/
|
||||
#define HB_FA_FIFO HB_FA_TEMPORARY /* S_ISFIFO() */
|
||||
#define HB_FA_FILE HB_FA_ARCHIVE /* S_ISREG() */
|
||||
@@ -135,31 +135,31 @@ extern HB_EXPORT int hb_fsCurDrv ( void ); /* retrieve current drive
|
||||
extern HB_EXPORT HB_BOOL hb_fsDelete ( const char * pszFileName ); /* delete a file */
|
||||
extern HB_EXPORT HB_BOOL hb_fsEof ( HB_FHANDLE hFileHandle ); /* determine if an open file is position at end-of-file */
|
||||
extern HB_EXPORT HB_ERRCODE hb_fsError ( void ); /* retrieve file system error */
|
||||
extern HB_EXPORT HB_ERRCODE hb_fsOsError ( void ); /* retrieve system dependant file system error */
|
||||
extern HB_EXPORT HB_ERRCODE hb_fsOsError ( void ); /* retrieve system dependent file system error */
|
||||
extern HB_EXPORT HB_BOOL hb_fsFile ( const char * pszFileName ); /* determine if a file exists */
|
||||
extern HB_EXPORT HB_BOOL hb_fsIsDirectory ( const char * pszFileName );
|
||||
extern HB_EXPORT HB_FOFFSET hb_fsFSize ( const char * pszFileName, HB_BOOL bUseDirEntry ); /* determine the size of a file */
|
||||
extern HB_EXPORT HB_FHANDLE hb_fsExtOpen ( const char * pszFileName, const char * pDefExt,
|
||||
HB_FATTR nFlags, const char * pPaths, PHB_ITEM pError ); /* open a file using default extension and a list of paths */
|
||||
extern HB_EXPORT char * hb_fsExtName ( const char * pszFileName, const char * pDefExt,
|
||||
HB_FATTR nExFlags, const char * pPaths ); /* convert file name for hb_fsExtOpen, caller must free the returned buffer */
|
||||
HB_FATTR nExFlags, const char * pPaths ); /* convert file name for hb_fsExtOpen(), caller must free the returned buffer */
|
||||
extern HB_EXPORT HB_ERRCODE hb_fsIsDrv ( int iDrive ); /* determine if a drive number is a valid drive */
|
||||
extern HB_EXPORT HB_BOOL hb_fsIsDevice ( HB_FHANDLE hFileHandle ); /* determine if a file is attached to a device (console?) */
|
||||
extern HB_EXPORT HB_BOOL hb_fsLock ( HB_FHANDLE hFileHandle, HB_ULONG ulStart, HB_ULONG ulLength, HB_USHORT uiMode ); /* request a lock on a portion of a file */
|
||||
extern HB_EXPORT HB_BOOL hb_fsLockLarge ( HB_FHANDLE hFileHandle, HB_FOFFSET nStart,
|
||||
HB_FOFFSET nLength, HB_USHORT uiMode ); /* request a lock on a portion of a file using 64bit API */
|
||||
HB_FOFFSET nLength, HB_USHORT uiMode ); /* request a lock on a portion of a file using 64-bit API */
|
||||
extern HB_EXPORT int hb_fsLockTest ( HB_FHANDLE hFileHandle, HB_FOFFSET nStart,
|
||||
HB_FOFFSET nLength, HB_USHORT uiMode );
|
||||
extern HB_EXPORT HB_BOOL hb_fsMkDir ( const char * pszDirName ); /* create a directory */
|
||||
extern HB_EXPORT HB_FHANDLE hb_fsOpen ( const char * pszFileName, HB_USHORT uiFlags ); /* open a file */
|
||||
extern HB_EXPORT HB_FHANDLE hb_fsOpenEx ( const char * pszFileName, HB_USHORT uiFlags, HB_FATTR nAttr ); /* open or create a file with given attributes */
|
||||
extern HB_EXPORT HB_USHORT hb_fsRead ( HB_FHANDLE hFileHandle, void * pBuff, HB_USHORT uiCount ); /* read contents of a file into a buffer (<=64K) */
|
||||
extern HB_EXPORT HB_SIZE hb_fsReadLarge ( HB_FHANDLE hFileHandle, void * pBuff, HB_SIZE nCount ); /* read contents of a file into a buffer (>64K) */
|
||||
extern HB_EXPORT HB_SIZE hb_fsReadAt ( HB_FHANDLE hFileHandle, void * pBuff, HB_SIZE nCount, HB_FOFFSET nOffset ); /* read from given offset contents of a file into a buffer (>64K) */
|
||||
extern HB_EXPORT HB_USHORT hb_fsRead ( HB_FHANDLE hFileHandle, void * pBuff, HB_USHORT uiCount ); /* read contents of a file into a buffer (<=64 KiB) */
|
||||
extern HB_EXPORT HB_SIZE hb_fsReadLarge ( HB_FHANDLE hFileHandle, void * pBuff, HB_SIZE nCount ); /* read contents of a file into a buffer (>64 KiB) */
|
||||
extern HB_EXPORT HB_SIZE hb_fsReadAt ( HB_FHANDLE hFileHandle, void * pBuff, HB_SIZE nCount, HB_FOFFSET nOffset ); /* read from given offset contents of a file into a buffer (> 64 KiB) */
|
||||
extern HB_EXPORT HB_BOOL hb_fsRmDir ( const char * pszDirName ); /* remove a directory */
|
||||
extern HB_EXPORT HB_BOOL hb_fsRename ( const char * pszOldName, const char * pszNewName ); /* rename a file */
|
||||
extern HB_EXPORT HB_ULONG hb_fsSeek ( HB_FHANDLE hFileHandle, HB_LONG lOffset, HB_USHORT uiMode ); /* reposition an open file */
|
||||
extern HB_EXPORT HB_FOFFSET hb_fsSeekLarge ( HB_FHANDLE hFileHandle, HB_FOFFSET nOffset, HB_USHORT uiFlags ); /* reposition an open file using 64bit API */
|
||||
extern HB_EXPORT HB_FOFFSET hb_fsSeekLarge ( HB_FHANDLE hFileHandle, HB_FOFFSET nOffset, HB_USHORT uiFlags ); /* reposition an open file using 64-bit API */
|
||||
extern HB_EXPORT HB_FOFFSET hb_fsTell ( HB_FHANDLE hFileHandle ); /* retrieve the current position of a file */
|
||||
extern HB_EXPORT HB_FOFFSET hb_fsGetSize ( HB_FHANDLE hFileHandle ); /* retrieve the size of a file, it may change current seek position */
|
||||
extern HB_EXPORT int hb_fsSetDevMode ( HB_FHANDLE hFileHandle, int iDevMode ); /* change the device mode of a file (text/binary) */
|
||||
@@ -196,7 +196,7 @@ extern HB_EXPORT HB_BOOL hb_fsLinkSym ( const char * pszTarget, const cha
|
||||
extern HB_EXPORT char * hb_fsLinkRead ( const char * pszFileName ); /* returns the link pointed to */
|
||||
|
||||
#if defined( HB_OS_UNIX ) || defined( __DJGPP__ )
|
||||
/* for POSIX systems only, hides low level select()/poll() access,
|
||||
/* for POSIX systems only, hides low-level select()/poll() access,
|
||||
intentionally covered by HB_OS_UNIX / __DJGPP__ macros to generate
|
||||
compile time error in code which tries to use it on other platforms */
|
||||
|
||||
@@ -233,7 +233,7 @@ extern HB_EXPORT int hb_fsCanWrite ( HB_FHANDLE hFileHandle, HB_MAXINT
|
||||
! defined( __WATCOMC__ ) && ! defined( HB_USE_BSDLOCKS )
|
||||
/* default usage of BSD locks in *BSD systems for emulating
|
||||
* MS-DOS/Windows DENY_* flags has been disabled because tests
|
||||
* on FreeBSD 6.2 and OS X shows that this implementation
|
||||
* on FreeBSD 6.2 and macOS shows that this implementation
|
||||
* can create self deadlock when used simultaneously with
|
||||
* POSIX locks - thanks to Phil and Lorenzo for locating the
|
||||
* problem and tests [druzus]
|
||||
@@ -298,7 +298,7 @@ typedef struct
|
||||
} HB_FFIND, * PHB_FFIND;
|
||||
|
||||
/* File Find API functions */
|
||||
extern HB_EXPORT PHB_FFIND hb_fsFindFirst( const char * pszFileName, HB_FATTR ulAttrMask );
|
||||
extern HB_EXPORT PHB_FFIND hb_fsFindFirst( const char * pszFileMask, HB_FATTR attrmask );
|
||||
extern HB_EXPORT HB_BOOL hb_fsFindNext( PHB_FFIND ffind );
|
||||
extern HB_EXPORT void hb_fsFindClose( PHB_FFIND ffind );
|
||||
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
* Header file for the Terminal API
|
||||
*
|
||||
* Copyright 1999 {list of individual authors and e-mail addresses}
|
||||
* Copyright 1999 David G. Holm <dholm@jsd-llc.com> (Keyboard related declarations, Cursor declarations)
|
||||
* Copyright 1999-2001 Viktor Szakats (vszakats.net/harbour) (Mouse related declarations, Undocumented GT API declarations)
|
||||
* Copyright 2005 Przemyslaw Czerpak < druzus /at/ priv.onet.pl > (Internal GT code reimplemented in different way)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -44,25 +47,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* The following parts are Copyright of the individual authors.
|
||||
*
|
||||
* Copyright 1999 David G. Holm <dholm@jsd-llc.com>
|
||||
* Keyboard related declarations
|
||||
* Cursor declarations
|
||||
* See above for licensing terms.
|
||||
*
|
||||
* Copyright 1999-2001 Viktor Szakats (vszakats.net/harbour)
|
||||
* Mouse related declarations
|
||||
* Undocumented GT API declarations
|
||||
*
|
||||
* Copyright 2005 Przemyslaw Czerpak < druzus /at/ priv.onet.pl >
|
||||
* Internal GT code reimplemented in different way
|
||||
*
|
||||
* See COPYING.txt for licensing terms.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef HB_APIGT_H_
|
||||
#define HB_APIGT_H_
|
||||
|
||||
@@ -177,7 +161,7 @@ extern HB_EXPORT int hb_gtMaxCol( void );
|
||||
extern HB_EXPORT int hb_gtMaxRow( void );
|
||||
extern HB_EXPORT HB_ERRCODE hb_gtPostExt( void );
|
||||
extern HB_EXPORT HB_ERRCODE hb_gtPreExt( void );
|
||||
extern HB_EXPORT HB_ERRCODE hb_gtSuspend( void ); /* prepare the reminal for shell output */
|
||||
extern HB_EXPORT HB_ERRCODE hb_gtSuspend( void ); /* prepare the terminal for shell output */
|
||||
extern HB_EXPORT HB_ERRCODE hb_gtResume( void ); /* resume the terminal after the shell output */
|
||||
extern HB_EXPORT int hb_gtReadKey( int iEventMask );
|
||||
extern HB_EXPORT HB_ERRCODE hb_gtRectSize( int iTop, int iLeft, int iBottom, int iRight, HB_SIZE * pnBuffSize );
|
||||
@@ -277,7 +261,7 @@ extern HB_EXPORT void hb_gtWCurrent( HB_GT_WND * wnd );
|
||||
extern HB_EXPORT void hb_gtWPos( HB_GT_WND * wnd, HB_GT_RECT * rect );
|
||||
extern HB_EXPORT HB_BOOL hb_gtWVis( HB_GT_WND * wnd, HB_USHORT uiStatus );
|
||||
|
||||
extern HB_EXPORT HB_ERRCODE hb_gtSLR( HB_GT_SLR * pSLR ); /* System Level Request */
|
||||
extern HB_EXPORT HB_ERRCODE hb_gtSLR( HB_GT_SLR * pSLR ); /* System-Level Request */
|
||||
extern HB_EXPORT HB_ERRCODE hb_gtModalRead( void * );
|
||||
extern HB_EXPORT HB_ERRCODE hb_gtFlushCursor( void );
|
||||
extern HB_EXPORT HB_ERRCODE hb_gtSetColor( HB_GT_RGB * color );
|
||||
@@ -310,7 +294,7 @@ extern HB_EXPORT int hb_inkeySetLast( int iKey ); /* Set new LastKey()
|
||||
extern HB_EXPORT void hb_inkeyExit( void ); /* reset inkey pool to default state and free any allocated resources */
|
||||
|
||||
extern HB_EXPORT HB_SIZE hb_inkeyKeyString( int iKey, char * buffer, HB_SIZE nSize ); /* convert key value to string */
|
||||
extern HB_EXPORT int hb_inkeyKeyStd( int iKey ); /* convert Harbour extended key code to cl*pper inkey code */
|
||||
extern HB_EXPORT int hb_inkeyKeyStd( int iKey ); /* convert Harbour extended key code to Cl*pper inkey code */
|
||||
extern HB_EXPORT int hb_inkeyKeyExt( int iKey ); /* extract function/edit key code value HB_KX_* from Harbour extended key code */
|
||||
extern HB_EXPORT int hb_inkeyKeyMod( int iKey ); /* extract keyboard modifiers HB_KF_* from Harbour extended key code */
|
||||
extern HB_EXPORT int hb_inkeyKeyVal( int iKey ); /* extract key/character code from Harbour extended key code */
|
||||
|
||||
@@ -155,7 +155,7 @@ extern HB_EXPORT HB_BOOL hb_itemEqual ( PHB_ITEM pItem1, PHB_ITEM pItem
|
||||
extern HB_EXPORT HB_BOOL hb_itemCompare ( PHB_ITEM pItem1, PHB_ITEM pItem2, HB_BOOL bForceExact, int * piResult ); /* For compatible types compare pItem1 with pItem2 setting piResult to -1, 0 or 1 if pItem1 is <, == or > then pItem2 and return true otherwise return false. */
|
||||
extern HB_EXPORT int hb_itemStrCmp ( PHB_ITEM pFirst, PHB_ITEM pSecond, HB_BOOL bForceExact ); /* our string compare */
|
||||
extern HB_EXPORT int hb_itemStrICmp ( PHB_ITEM pFirst, PHB_ITEM pSecond, HB_BOOL bForceExact ); /* our string compare */
|
||||
extern HB_EXPORT void hb_itemCopy ( PHB_ITEM pDest, PHB_ITEM pSource ); /* copies an item to one place to another respecting its containts */
|
||||
extern HB_EXPORT void hb_itemCopy ( PHB_ITEM pDest, PHB_ITEM pSource ); /* copies an item to one place to another respecting its content */
|
||||
extern HB_EXPORT void hb_itemCopyToRef ( PHB_ITEM pDest, PHB_ITEM pSource );
|
||||
extern HB_EXPORT void hb_itemCopyFromRef( PHB_ITEM pDest, PHB_ITEM pSource );
|
||||
extern HB_EXPORT void hb_itemMove ( PHB_ITEM pDest, PHB_ITEM pSource ); /* moves the value of an item without incrementing of reference counters, source is cleared */
|
||||
@@ -212,7 +212,7 @@ extern PHB_ITEM hb_itemPutPtrRawGC( PHB_ITEM pItem, void * pValue );
|
||||
# define hb_itemRawMove( dst, src ) hb_itemMove( (dst), (src) )
|
||||
#endif
|
||||
|
||||
/* intentional low level hack to eliminate race condition in
|
||||
/* intentional low-level hack to eliminate race condition in
|
||||
* unprotected readonly access in few places in core code only.
|
||||
* hb_item[Raw]Move() moves HB_ITEM structure members first coping
|
||||
* 'type' and then 'item' parts of HB_ITEM. In this macro the order
|
||||
|
||||
@@ -112,7 +112,7 @@ HB_EXTERN_BEGIN
|
||||
#define HB_FF_HIDDEN 0x0001 /* System Column (not visible to user) */
|
||||
#define HB_FF_NULLABLE 0x0002 /* Column can store null values */
|
||||
#define HB_FF_BINARY 0x0004 /* Binary column */
|
||||
#define HB_FF_AUTOINC 0x0008 /* Column is autoincrementing */
|
||||
#define HB_FF_AUTOINC 0x0008 /* Column is auto-incrementing */
|
||||
#define HB_FF_COMPRESSED 0x0010 /* Column is compressed */
|
||||
#define HB_FF_ENCRYPTED 0x0020 /* Column is encrypted */
|
||||
#define HB_FF_UNICODE 0x0040 /* Column stores Unicode strings */
|
||||
@@ -282,7 +282,7 @@ typedef struct
|
||||
PHB_ITEM itmOrder; /* Name or Number of the Order */
|
||||
PHB_ITEM itmCobExpr; /* Code block containing the KEY expression */
|
||||
PHB_ITEM itmResult; /* Operation result */
|
||||
PHB_ITEM itmNewVal; /* New Setting */
|
||||
PHB_ITEM itmNewVal; /* New Setting */
|
||||
HB_BOOL fAllTags; /* Open all tags */
|
||||
} DBORDERINFO;
|
||||
|
||||
@@ -738,7 +738,7 @@ typedef struct _RDDFUNCS
|
||||
DBENTRYP_VLO setLocate; /*-Set the locate scope for the specified WorkArea. */
|
||||
DBENTRYP_VOS setScope; /* */
|
||||
DBENTRYP_VPL skipScope; /* */
|
||||
DBENTRYP_B locate; /* reposition cursor to postions set by setLocate */
|
||||
DBENTRYP_B locate; /* reposition cursor to positions set by setLocate */
|
||||
|
||||
|
||||
/* Miscellaneous */
|
||||
@@ -750,7 +750,7 @@ typedef struct _RDDFUNCS
|
||||
|
||||
/* Network operations */
|
||||
|
||||
DBENTRYP_VSP rawlock; /* Perform a lowlevel network lock in the specified WorkArea. */
|
||||
DBENTRYP_VSP rawlock; /* Perform a low-level network lock in the specified WorkArea. */
|
||||
DBENTRYP_VL lock; /* Perform a network lock in the specified WorkArea. */
|
||||
DBENTRYP_I unlock; /* Release network locks in the specified WorkArea. */
|
||||
|
||||
@@ -790,7 +790,7 @@ typedef RDDFUNCS * PRDDFUNCS;
|
||||
|
||||
#define RDDFUNCSCOUNT ( sizeof( RDDFUNCS ) / sizeof( DBENTRYP_V ) )
|
||||
|
||||
/* RDD Node structure */
|
||||
/* RDD Node structure */
|
||||
typedef struct _RDDNODE
|
||||
{
|
||||
char szName[ HB_RDD_MAX_DRIVERNAME_LEN + 1 ]; /* Name of RDD */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* string API functions
|
||||
* String API functions
|
||||
*
|
||||
* Copyright 2009 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* header file with functions for atomic operations
|
||||
* Header file with functions for atomic operations
|
||||
*
|
||||
* Copyright 2008 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
@@ -513,8 +513,7 @@ HB_EXTERN_BEGIN
|
||||
# define HB_SPINLOCK_REPEAT 63
|
||||
# endif
|
||||
|
||||
/* workaround for borland C/C++ compiler limitation */
|
||||
#if defined( __BORLANDC__ )
|
||||
#if defined( __BORLANDC__ ) /* workaround for compiler limitation */
|
||||
# define hb_spinlock_acquire_r( sl ) \
|
||||
do { \
|
||||
HB_SPINLOCK_T * l = &(sl)->lock; \
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/*
|
||||
* This code implements BlowFish algorithm designed by Bruce Schneier.
|
||||
* The description of BlowFish algorithm can be found at:
|
||||
* http://www.schneier.com/paper-blowfish-fse.html
|
||||
* This code uses for initial s-boxes and p-array values PI hex digits
|
||||
* taken from tables public at:
|
||||
* http://www.schneier.com/blowfish.html
|
||||
* which can be downloaded from:
|
||||
* http://www.schneier.com/code/constants.txt
|
||||
* The description of BlowFish algorithm can be found at:
|
||||
* https://www.schneier.com/paper-blowfish-fse.html
|
||||
* This code uses for initial s-boxes and p-array values PI hex digits
|
||||
* taken from tables public at:
|
||||
* https://www.schneier.com/blowfish.html
|
||||
* which can be downloaded from:
|
||||
* https://www.schneier.com/code/constants.txt
|
||||
*
|
||||
* Copyright 2009 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* code used to register new CP definition
|
||||
* Code used to register new CP definition
|
||||
*
|
||||
* Copyright 2009 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* header files for functions to calculate different checksums
|
||||
* Header files for functions to calculate different checksums
|
||||
*
|
||||
* Copyright 2007 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
* Header file for Class commands
|
||||
*
|
||||
* Copyright 1999 Antonio Linares <alinares@fivetechsoft.com>
|
||||
* Copyright 2000-07 JF. Lefebvre <jfl@mafact.com> & RA. Cuylen <rac@mafact.com> (Class(y), TopClass and Visual Object compatibility, multiple inheritance)
|
||||
* Copyright 2000-08-2001 JF. Lefebvre <jfl@mafact.com> (Scoping, Delegating, DATA Shared, Support of 10 Chars limits)
|
||||
* Copyright 2006 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
* most of rules rewritten
|
||||
*
|
||||
@@ -46,22 +48,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* The following parts are Copyright of the individual authors.
|
||||
*
|
||||
* Copyright 2000 ( ->07/2000 ) JF. Lefebvre <jfl@mafact.com> & RA. Cuylen <rac@mafact.com>
|
||||
* Support for Class(y), TopClass and Visual Object compatibility
|
||||
* Support for MI (multiple inheritance),
|
||||
|
||||
* Copyright 2000-2001 ( 08/2000-> ) JF. Lefebvre <jfl@mafact.com>
|
||||
* Scoping (Protect, Hidden and Readonly),
|
||||
* Delegating, DATA Shared
|
||||
* Support of 10 Chars limits
|
||||
*
|
||||
* See COPYING.txt for licensing terms.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef HB_CLASS_CH_
|
||||
#define HB_CLASS_CH_
|
||||
|
||||
@@ -82,7 +68,7 @@
|
||||
|
||||
/* There is also two compatibility define you can use */
|
||||
/* HB_CLS_NOTOBJECT which IF DEFINED, disable the auto inherit of HBObject */
|
||||
/* (which in fact also disable the classy compatibility :new(...) => :Init(...) */
|
||||
/* (which in fact also disable the classy compatibility :new(...) => :Init(...) */
|
||||
/* HB_CLS_NOAUTOINIT which disable the (VO like) AutoInit for Logical, Numeric, */
|
||||
/* Date and Timestamp when not specifically initiated */
|
||||
/* These two are disabled by default */
|
||||
@@ -279,7 +265,7 @@ DECLARE HBClass ;
|
||||
local Self AS CLASS <ClassName> := QSelf() AS CLASS <ClassName>
|
||||
|
||||
#xcommand __HB_CLS_DECLARE_METHOD <MethodName> <!ClassName!> => ;
|
||||
#xcommand METHOD \<type: FUNCTION, PROCEDURE> <MethodName> CLASS <ClassName> _CLASS_IMPLEMENTATION_ => ;
|
||||
#xcommand METHOD \<type: FUNCTION, PROCEDURE> <MethodName> CLASS <ClassName> _CLASS_IMPLEMENTATION_ => ;
|
||||
DECLARED METHOD \<type> <MethodName> CLASS <ClassName>
|
||||
|
||||
#xcommand __HB_CLS_DECLARE_METHOD <!MethodName!> <!ClassName!> => ;
|
||||
|
||||
@@ -47,8 +47,8 @@
|
||||
#ifndef HB_COMP_H_
|
||||
#define HB_COMP_H_
|
||||
|
||||
#include "hbmacro.ch"
|
||||
#include "hbapi.h"
|
||||
#include "hbmacro.ch"
|
||||
#include "hberrors.h"
|
||||
#include "hbpp.h"
|
||||
#include "hbmacro.h"
|
||||
@@ -83,7 +83,7 @@ extern void hb_compParserRun( HB_COMP_DECL );
|
||||
#define HB_VSCOMP_MEMVAR ( HB_VSCOMP_PUBLIC | HB_VSCOMP_PRIVATE )
|
||||
#define HB_VSCOMP_TH_STATIC ( HB_VSCOMP_STATIC | HB_VSCOMP_THREAD )
|
||||
|
||||
/* return detailed information about a class of variable */
|
||||
/* return detailed information about a class of variable */
|
||||
#define HB_VS_UNDECLARED 0
|
||||
/* variables declared in a current codeblock/function/procedure */
|
||||
#define HB_VS_CBLOCAL_VAR 1 /* func/proc local variables and parameters used in codeblock (detached) */
|
||||
@@ -116,7 +116,7 @@ extern void hb_compParserRun( HB_COMP_DECL );
|
||||
#define HB_FUNF_WITH_RETURN 0x0020 /* there was RETURN statement in previous line */
|
||||
#define HB_FUNF_EXTBLOCK 0x0040 /* it's extended codeblock */
|
||||
#define HB_FUNF_FILE_DECL 0x0080 /* pseudo function with file wide declarations */
|
||||
#define HB_FUNF_FILE_FIRST 0x0100 /* 1-st real or pseudo function in compiled .prg module */
|
||||
#define HB_FUNF_FILE_FIRST 0x0100 /* 1st real or pseudo function in compiled .prg module */
|
||||
#define HB_FUNF_ATTACHED 0x0200 /* function attached to function list */
|
||||
|
||||
extern void hb_compFunctionAdd( HB_COMP_DECL, const char * szFunName, HB_SYMBOLSCOPE cScope, int iType ); /* starts a new Clipper language function definition */
|
||||
@@ -342,27 +342,27 @@ extern const HB_BYTE hb_comp_pcode_len[];
|
||||
#define HB_IDENT_FREE 1
|
||||
#define HB_IDENT_COPY 2
|
||||
|
||||
/* /GC command line setting types */
|
||||
/* /GC command-line setting types */
|
||||
#define HB_COMPGENC_COMPACT 0
|
||||
#define HB_COMPGENC_NORMAL 1
|
||||
#define HB_COMPGENC_VERBOSE 2
|
||||
#define HB_COMPGENC_REALCODE 3
|
||||
|
||||
/* /ES command line setting types */
|
||||
/* /ES command-line setting types */
|
||||
#define HB_EXITLEVEL_DEFAULT 0
|
||||
#define HB_EXITLEVEL_SETEXIT 1
|
||||
#define HB_EXITLEVEL_DELTARGET 2
|
||||
|
||||
/* /kx command line setting types - compatibility modes
|
||||
/* /kx command-line setting types - compatibility modes
|
||||
* (turn on a bit in HB_ULONG word)
|
||||
*/
|
||||
#define HB_COMPFLAG_HARBOUR HB_SM_HARBOUR /* 1 -kh */
|
||||
#define HB_COMPFLAG_XBASE HB_SM_XBASE /* 2 -kx */
|
||||
#define HB_COMPFLAG_SHORTCUTS HB_SM_SHORTCUTS /* 8 -z enable sortcuts for logical operators */
|
||||
#define HB_COMPFLAG_SHORTCUTS HB_SM_SHORTCUTS /* 8 -z enable shortcuts for logical operators */
|
||||
#define HB_COMPFLAG_ARRSTR HB_SM_ARRSTR /* 16 -ks strings as array of bytes */
|
||||
#define HB_COMPFLAG_EXTOPT HB_SM_EXTOPT /* 32 -ko clipper incompatible optimizations */
|
||||
#define HB_COMPFLAG_EXTOPT HB_SM_EXTOPT /* 32 -ko Cl*pper incompatible optimizations */
|
||||
#define HB_COMPFLAG_RT_MACRO HB_SM_RT_MACRO /* 64 -kr */
|
||||
#define HB_COMPFLAG_OPTJUMP 0x0100 /* -kj turn off jump optimalization */
|
||||
#define HB_COMPFLAG_OPTJUMP 0x0100 /* -kj turn off jump optimization */
|
||||
#define HB_COMPFLAG_HB_INLINE 0x0200 /* -ki hb_inLine(...) { ... } support */
|
||||
#define HB_COMPFLAG_MACROTEXT 0x0400 /* -kM turn off macrotext substitution */
|
||||
#define HB_COMPFLAG_USERCP 0x0800 /* -ku strings in user encoding */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* definitions shared by compiler and macro compiler
|
||||
* Definitions shared by compiler and macro compiler
|
||||
*
|
||||
* Copyright 2006 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
@@ -44,11 +44,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#ifndef HB_COMPDF_H_
|
||||
#define HB_COMPDF_H_
|
||||
|
||||
#include "hbapi.h"
|
||||
#include "hbpp.h"
|
||||
#include "hbhash.h"
|
||||
|
||||
@@ -101,7 +99,7 @@ typedef struct _HB_HVAR
|
||||
const char * szAlias; /* variable alias namespace */
|
||||
int iUsed; /* number of times used */
|
||||
int iDeclLine; /* declaration line number */
|
||||
HB_USHORT uiFlags; /* optional falgs, f.e. THREAD STATIC */
|
||||
HB_USHORT uiFlags; /* optional flags, f.e. THREAD STATIC */
|
||||
HB_BYTE cType; /* optional strong typing */
|
||||
PHB_HCLASS pClass;
|
||||
struct _HB_HVAR * pNext; /* pointer to next defined variable */
|
||||
@@ -145,9 +143,9 @@ typedef struct _HB_VARTYPE
|
||||
typedef enum
|
||||
{
|
||||
HB_EA_REDUCE = 0, /* reduce the expression into optimized one */
|
||||
HB_EA_ARRAY_AT, /* check if the expession can be used as array */
|
||||
HB_EA_ARRAY_INDEX, /* check if the expession can be used as index */
|
||||
HB_EA_LVALUE, /* check if the expression can be used as lvalue (left side of an assigment) */
|
||||
HB_EA_ARRAY_AT, /* check if the expression can be used as array */
|
||||
HB_EA_ARRAY_INDEX, /* check if the expression can be used as index */
|
||||
HB_EA_LVALUE, /* check if the expression can be used as lvalue (left side of an assignment) */
|
||||
HB_EA_PUSH_PCODE, /* generate the pcodes to push the value of expression */
|
||||
HB_EA_POP_PCODE, /* generate the pcodes to pop the value of expression */
|
||||
HB_EA_PUSH_POP, /* generate the pcodes to push and pop the expression */
|
||||
@@ -167,7 +165,7 @@ typedef enum
|
||||
#define HB_ET_MACRO_ALIASED 0x0004 /* &alias->&variable */
|
||||
#define HB_ET_MACRO_EXPR 0x0008 /* &( expr ) */
|
||||
#define HB_ET_MACRO_LIST 0x0010 /* &variable used as in literal arrays or function call argument. */
|
||||
#define HB_ET_MACRO_PARE 0x0020 /* &variable used as parentesised expressions. */
|
||||
#define HB_ET_MACRO_PARE 0x0020 /* &variable used as parenthesized expressions. */
|
||||
#define HB_ET_MACRO_REFER 0x0040 /* ¯o used in @ (pass by reference) */
|
||||
#define HB_ET_MACRO_ASSIGN 0x0080 /* o:&msgname := value */
|
||||
#define HB_ET_MACRO_NOLIST ( HB_ET_MACRO_SYMBOL | HB_ET_MACRO_ALIASED | \
|
||||
@@ -215,7 +213,7 @@ typedef enum
|
||||
HB_ET_VARIABLE,
|
||||
HB_EO_POSTINC, /* post-operators -> lowest precedence */
|
||||
HB_EO_POSTDEC,
|
||||
HB_EO_ASSIGN, /* assigments */
|
||||
HB_EO_ASSIGN, /* assignments */
|
||||
HB_EO_PLUSEQ,
|
||||
HB_EO_MINUSEQ,
|
||||
HB_EO_MULTEQ,
|
||||
@@ -360,12 +358,12 @@ typedef struct HB_EXPR_
|
||||
struct
|
||||
{
|
||||
char * string; /* literal strings */
|
||||
HB_BOOL dealloc; /* automatic deallocate on expresion deletion */
|
||||
HB_BOOL dealloc; /* automatically deallocate on expression deletion */
|
||||
} asString;
|
||||
struct
|
||||
{
|
||||
struct HB_EXPR_ * pMacro; /* macro variable */
|
||||
const char * szName; /* variable name */
|
||||
const char * szName; /* variable name */
|
||||
} asRTVar; /* PUBLIC or PRIVATE variable declaration */
|
||||
struct
|
||||
{
|
||||
@@ -384,7 +382,7 @@ typedef struct HB_EXPR_
|
||||
} asNum;
|
||||
struct
|
||||
{
|
||||
long lDate; /* julian date */
|
||||
long lDate; /* Julian date */
|
||||
long lTime; /* time in milliseconds */
|
||||
} asDate;
|
||||
struct
|
||||
@@ -516,7 +514,7 @@ typedef struct _HB_HFUNC
|
||||
HB_SIZE nJumps; /* Jumps Counter */
|
||||
int iStaticsBase; /* base for this function statics */
|
||||
int iFuncSuffix; /* function suffix for multiple static functions with the same name */
|
||||
int iEarlyEvalPass; /* !=0 if early evaluaded block is compiled - accessing of declared (compile time) variables is limited */
|
||||
int iEarlyEvalPass; /* !=0 if early evaluated block is compiled - accessing of declared (compile time) variables is limited */
|
||||
HB_BOOL fVParams; /* HB_TRUE if variable number of parameters is used */
|
||||
HB_BOOL bError; /* error during function compilation */
|
||||
HB_BOOL bBlock; /* HB_TRUE if simple codeblock body is compiled */
|
||||
@@ -537,7 +535,7 @@ typedef struct _HB_HFUNC
|
||||
HB_USHORT wWithObjectCnt;
|
||||
} HB_HFUNC, * PHB_HFUNC;
|
||||
|
||||
/* structure to hold PP #define variables passed as command line parameters */
|
||||
/* structure to hold PP #define variables passed as command-line parameters */
|
||||
typedef struct _HB_PPDEFINE
|
||||
{
|
||||
char * szName; /* name of PP #define variable */
|
||||
@@ -567,7 +565,7 @@ typedef struct _HB_HFUNCALL
|
||||
/* structure to control all Clipper defined functions */
|
||||
typedef struct
|
||||
{
|
||||
PHB_HFUNC pFirst; /* pointer to the first defined funtion */
|
||||
PHB_HFUNC pFirst; /* pointer to the first defined function */
|
||||
PHB_HFUNC pLast; /* pointer to the last defined function */
|
||||
int iCount; /* number of defined functions */
|
||||
} HB_HFUNCTION_LIST;
|
||||
@@ -785,8 +783,8 @@ typedef struct _HB_COMP
|
||||
PHB_I18NTABLE pI18n;
|
||||
HB_BOOL fI18n;
|
||||
|
||||
void ( * outStdFunc ) ( void *, const char* );
|
||||
void ( * outErrFunc ) ( void *, const char* );
|
||||
void ( * outStdFunc ) ( void *, const char * );
|
||||
void ( * outErrFunc ) ( void *, const char * );
|
||||
PHB_PP_MSG_FUNC outMsgFunc;
|
||||
void * cargo;
|
||||
|
||||
@@ -819,7 +817,7 @@ typedef struct _HB_COMP
|
||||
int iVarScope; /* holds the scope for next variables to be defined */
|
||||
int iLanguage; /* default Harbour generated output language */
|
||||
int iGenCOutput; /* C code generation should be verbose (use comments) or not */
|
||||
int ilastLineErr; /* line numer with last syntax error */
|
||||
int ilastLineErr; /* line number with last syntax error */
|
||||
int iTraceInclude; /* trace included files and generate dependencies list */
|
||||
int iSyntaxCheckOnly; /* syntax check only */
|
||||
int iErrorFmt; /* error message formatting mode (default: Clipper) */
|
||||
@@ -828,12 +826,12 @@ typedef struct _HB_COMP
|
||||
HB_BOOL fGauge; /* hide line counter gauge (-ql) */
|
||||
HB_BOOL fFullQuiet; /* be quiet during compilation disable all messages */
|
||||
HB_BOOL fExit; /* force breaking compilation process */
|
||||
HB_BOOL fPPO; /* flag indicating, is ppo output needed */
|
||||
HB_BOOL fPPT; /* flag indicating, is ppt output needed */
|
||||
HB_BOOL fPPO; /* flag indicating, is .ppo output needed */
|
||||
HB_BOOL fPPT; /* flag indicating, is .ppt output needed */
|
||||
HB_BOOL fLineNumbers; /* holds if we need pcodes with line numbers */
|
||||
HB_BOOL fAnyWarning; /* holds if there was any warning during the compilation process */
|
||||
HB_BOOL fAutoMemvarAssume; /* holds if undeclared variables are automatically assumed MEMVAR (-a)*/
|
||||
HB_BOOL fForceMemvars; /* holds if memvars are assumed when accesing undeclared variable (-v)*/
|
||||
HB_BOOL fForceMemvars; /* holds if memvars are assumed when accessing undeclared variable (-v)*/
|
||||
HB_BOOL fDebugInfo; /* holds if generate debugger required info */
|
||||
HB_BOOL fHideSource; /* do not embed original source filename into generated source code */
|
||||
HB_BOOL fNoStartUp; /* C code generation embed HB_FS_FIRST or not */
|
||||
|
||||
@@ -54,10 +54,10 @@ HB_EXTERN_BEGIN
|
||||
extern HB_EXPORT double hb_secondsCPU( int n );
|
||||
|
||||
extern HB_EXPORT double hb_dateSeconds( void );
|
||||
/* return UTC julian timestamp in milliseconds */
|
||||
/* return UTC Julian timestamp in milliseconds */
|
||||
extern HB_EXPORT HB_MAXUINT hb_dateMilliSeconds( void );
|
||||
|
||||
/* functions to operate on julian date values */
|
||||
/* functions to operate on Julian date values */
|
||||
|
||||
extern HB_EXPORT void hb_dateTimeStr( char * pszTime );
|
||||
extern HB_EXPORT void hb_dateToday( int * piYear, int * piMonth, int * piDay );
|
||||
@@ -162,7 +162,7 @@ HB_EXTERN_END
|
||||
! defined( HB_OS_DARWIN_5 )
|
||||
# define HB_HAS_LOCALTIME_R
|
||||
# elif defined( __WATCOMC__ )
|
||||
# if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ == 1
|
||||
# if defined( __STDC_WANT_LIB_EXT1__ ) && __STDC_WANT_LIB_EXT1__ == 1
|
||||
# define HB_HAS_LOCALTIME_R
|
||||
# define localtime_r localtime_s
|
||||
# define gmtime_r gmtime_s
|
||||
|
||||
@@ -64,7 +64,7 @@ typedef struct _DBFHEADER
|
||||
HB_BYTE uiRecordLen[ 2 ];
|
||||
HB_BYTE bReserved1[ 2 ];
|
||||
HB_BYTE bTransaction; /* 1-transaction begin */
|
||||
HB_BYTE bEncrypted; /* 1-encryptpted table */
|
||||
HB_BYTE bEncrypted; /* 1-encrypted table */
|
||||
HB_BYTE bReserved2[ 12 ];
|
||||
HB_BYTE bHasTags; /* bit filed: 1-production index, 2-memo file in VFP */
|
||||
HB_BYTE bCodePage;
|
||||
@@ -85,8 +85,8 @@ typedef struct _DBFFIELD
|
||||
HB_BYTE bLen;
|
||||
HB_BYTE bDec;
|
||||
HB_BYTE bFieldFlags; /* 1-system column, 2-nullable, 4-binary */
|
||||
HB_BYTE bCounter[ 4 ]; /* autoincrement counter */
|
||||
HB_BYTE bStep; /* autoincrement step */
|
||||
HB_BYTE bCounter[ 4 ]; /* auto-increment counter */
|
||||
HB_BYTE bStep; /* auto-increment step */
|
||||
HB_BYTE bReserved2[ 7 ];
|
||||
HB_BYTE bHasTag;
|
||||
} DBFFIELD;
|
||||
|
||||
@@ -49,13 +49,13 @@
|
||||
#ifndef HB_DEBUGGER_CH_
|
||||
#define HB_DEBUGGER_CH_
|
||||
|
||||
/* Mode of __dbgEntry calls (the first parameter) */
|
||||
#define HB_DBG_MODULENAME 1 /* 2nd argumment is a module name */
|
||||
/* Mode of __dbgEntry() calls (the first parameter) */
|
||||
#define HB_DBG_MODULENAME 1 /* 2nd argument is a module name */
|
||||
#define HB_DBG_LOCALNAME 2 /* 2nd argument is a local var name */
|
||||
#define HB_DBG_STATICNAME 3 /* 2nd arg is a static var name */
|
||||
#define HB_DBG_ENDPROC 4 /* exit from a procedure */
|
||||
#define HB_DBG_SHOWLINE 5 /* show current line */
|
||||
#define HB_DBG_GETENTRY 6 /* initialize C __dbgEntry function pointer */
|
||||
#define HB_DBG_GETENTRY 6 /* initialize C __dbgEntry() function pointer */
|
||||
#define HB_DBG_ACTIVATE 7 /* activate debugger interface */
|
||||
#define HB_DBG_VMQUIT 8 /* call internal debugger destructors */
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
#define HB_DBG_WP_RESULT 4 /* expression result */
|
||||
#define HB_DBG_WP_LEN 4
|
||||
|
||||
/* Information structure stored in __dbgGetBreakPoints array */
|
||||
/* Information structure stored in __dbgGetBreakPoints() array */
|
||||
#define HB_DBG_BP_LINE 1 /* line number */
|
||||
#define HB_DBG_BP_MODULE 2 /* module name */
|
||||
#define HB_DBG_BP_FUNC 3 /* function name */
|
||||
|
||||
@@ -78,8 +78,7 @@
|
||||
# if defined( HB_OS_VXWORKS ) && defined( _INTPTR ) && ! defined( _INTPTR_T )
|
||||
# define _INTPTR_T
|
||||
# endif
|
||||
/* workaround for BCC 5.8 bug */
|
||||
#if ( defined( __BORLANDC__ ) && __BORLANDC__ >= 0x0582 )
|
||||
#if ( defined( __BORLANDC__ ) && __BORLANDC__ >= 0x0582 ) /* workaround for compiler bug */
|
||||
#undef INT32_MIN
|
||||
#define INT32_MIN ((int32_t) (-INT32_MAX-1))
|
||||
#undef INT64_MIN
|
||||
@@ -89,10 +88,20 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
#if ( defined( __GNUC__ ) || defined( __SUNPRO_C ) || defined( __SUNPRO_CC ) ) && \
|
||||
( defined( _ISOC99_SOURCE ) || defined( _STDC_C99 ) || \
|
||||
( defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L ) )
|
||||
#define HB_C99_STATIC static
|
||||
#define HB_C99_RESTRICT restrict
|
||||
#else
|
||||
#define HB_C99_STATIC
|
||||
#define HB_C99_RESTRICT
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
#define HB_CLIPPER_INT_ITEMS
|
||||
#define HB_LONG_LONG_OFF
|
||||
*/
|
||||
#endif
|
||||
|
||||
#if defined( HB_OS_WIN )
|
||||
#if defined( HB_OS_WIN_64 )
|
||||
@@ -640,7 +649,7 @@ typedef HB_U32 HB_FATTR;
|
||||
#if ! defined( HB_PDP_ENDIAN ) && ! defined( HB_BIG_ENDIAN ) && \
|
||||
! defined( HB_LITTLE_ENDIAN )
|
||||
|
||||
/* I intentionaly move the first two #if/#elif to the begining
|
||||
/* I intentionaly move the first two #if/#elif to the beginning
|
||||
to avoid compiler error when this macro will be defined as
|
||||
empty statement in next conditions, F.e. SunOS
|
||||
*/
|
||||
@@ -1480,7 +1489,7 @@ typedef HB_U32 HB_FATTR;
|
||||
#define HB_SYMBOL_UNUSED( symbol ) ( void ) symbol
|
||||
#endif
|
||||
|
||||
/* ***********************************************************************
|
||||
/*
|
||||
* The name of starting procedure
|
||||
* Note: You have to define it in case when Harbour cannot find the proper
|
||||
* starting procedure (due to unknown order of static data initialization)
|
||||
|
||||
@@ -50,9 +50,9 @@
|
||||
#define HBDYN_CH_
|
||||
|
||||
/* C calling conventions */
|
||||
#define HB_DYN_CALLCONV_CDECL 0x0000000 /* C default */
|
||||
#define HB_DYN_CALLCONV_STDCALL 0x0100000 /* Windows API default */
|
||||
#define HB_DYN_CALLCONV_SYSCALL 0x0200000 /* OS/2 32-bit default */
|
||||
#define HB_DYN_CALLCONV_CDECL 0x0000000 /* C default */
|
||||
#define HB_DYN_CALLCONV_STDCALL 0x0100000 /* Windows API default */
|
||||
#define HB_DYN_CALLCONV_SYSCALL 0x0200000 /* OS/2 32-bit default */
|
||||
|
||||
/* String encodings */
|
||||
#define HB_DYN_ENC_ASCII 0x0000000
|
||||
|
||||
@@ -44,11 +44,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include "hbcomp.h"
|
||||
|
||||
/* ************************************************************************ */
|
||||
|
||||
#ifndef HB_MACRO_SUPPORT
|
||||
HB_SIZE hb_compExprListEval( HB_COMP_DECL, PHB_EXPR pExpr, PHB_COMP_CARGO_FUNC pEval )
|
||||
{
|
||||
@@ -246,7 +243,6 @@ PHB_EXPR hb_compExprNewFunCall( PHB_EXPR pName, PHB_EXPR pParms, HB_COMP_DECL )
|
||||
/* Reserved Clipper function used to handle GET variables
|
||||
*/
|
||||
PHB_EXPR pArg, pNext;
|
||||
HB_USHORT uiCount;
|
||||
|
||||
/* pArg has to be reduced to eliminate possible problems with
|
||||
* cloned expressions in SETGET block
|
||||
@@ -268,6 +264,8 @@ PHB_EXPR hb_compExprNewFunCall( PHB_EXPR pName, PHB_EXPR pParms, HB_COMP_DECL )
|
||||
|
||||
if( pArg->ExprType == HB_ET_ARRAYAT )
|
||||
{
|
||||
HB_USHORT uiCount;
|
||||
|
||||
/* replace:
|
||||
_GET_( a[1], "a[1]", , , )
|
||||
into:
|
||||
@@ -297,7 +295,7 @@ PHB_EXPR hb_compExprNewFunCall( PHB_EXPR pName, PHB_EXPR pParms, HB_COMP_DECL )
|
||||
/* create a set only codeblock */
|
||||
if( pVar->ExprType == HB_ET_MACRO )
|
||||
{
|
||||
/* &var[1] */
|
||||
/* &var[ 1 ] */
|
||||
HB_COMP_EXPR_FREE( pVar );
|
||||
pVar = hb_compExprNewNil( HB_COMP_PARAM );
|
||||
}
|
||||
@@ -330,12 +328,12 @@ PHB_EXPR hb_compExprNewFunCall( PHB_EXPR pName, PHB_EXPR pParms, HB_COMP_DECL )
|
||||
pVar->pNext = hb_compExprNewNil( HB_COMP_PARAM );
|
||||
pVar = pVar->pNext;
|
||||
}
|
||||
if( pVar->pNext ) /* Delete 6-th argument if present */
|
||||
if( pVar->pNext ) /* Delete 6th argument if present */
|
||||
{
|
||||
pIndex->pNext = pVar->pNext->pNext;
|
||||
HB_COMP_EXPR_FREE( pVar->pNext );
|
||||
}
|
||||
pVar->pNext = pIndex; /* Set a new 6-th argument */
|
||||
pVar->pNext = pIndex; /* Set a new 6th argument */
|
||||
|
||||
/* Remove the index expression from a string representation
|
||||
*/
|
||||
@@ -442,7 +440,7 @@ PHB_EXPR hb_compExprNewFunCall( PHB_EXPR pName, PHB_EXPR pParms, HB_COMP_DECL )
|
||||
*/
|
||||
PHB_EXPR pFirst = pArg; /* save first argument */
|
||||
|
||||
pArg = hb_compExprNewNil( HB_COMP_PARAM ); /* replace 1-st with NIL */
|
||||
pArg = hb_compExprNewNil( HB_COMP_PARAM ); /* replace 1st with NIL */
|
||||
if( pFirst->pNext && pFirst->pNext->ExprType == HB_ET_STRING )
|
||||
pArg->pNext = pFirst->pNext;
|
||||
else
|
||||
@@ -558,8 +556,7 @@ PHB_EXPR hb_compExprNewArrayAt( PHB_EXPR pArray, PHB_EXPR pIndex, HB_COMP_DECL )
|
||||
return pExpr;
|
||||
}
|
||||
|
||||
|
||||
/* ************************************************************************* */
|
||||
/* === */
|
||||
|
||||
#ifndef HB_MACRO_SUPPORT
|
||||
|
||||
@@ -691,7 +688,7 @@ PHB_EXPR hb_compExprAssignStatic( PHB_EXPR pLeftExpr, PHB_EXPR pRightExpr, HB_CO
|
||||
|
||||
PHB_EXPR hb_compExprSetCodeblockBody( PHB_EXPR pExpr, HB_BYTE * pCode, HB_SIZE nLen )
|
||||
{
|
||||
HB_TRACE( HB_TR_DEBUG, ( "hb_compExprSetCodeblockBody(%p,%p,%" HB_PFS "u)", pExpr, pCode, nLen ) );
|
||||
HB_TRACE( HB_TR_DEBUG, ( "hb_compExprSetCodeblockBody(%p,%p,%" HB_PFS "u)", ( void * ) pExpr, ( void * ) pCode, nLen ) );
|
||||
|
||||
pExpr->value.asCodeblock.string = ( char * ) hb_xgrab( nLen + 1 );
|
||||
memcpy( pExpr->value.asCodeblock.string, pCode, nLen );
|
||||
@@ -756,7 +753,7 @@ PHB_EXPR hb_compExprGenPop( PHB_EXPR pExpr, HB_COMP_DECL )
|
||||
*/
|
||||
PHB_EXPR hb_compExprGenStatement( PHB_EXPR pExpr, HB_COMP_DECL )
|
||||
{
|
||||
HB_TRACE( HB_TR_DEBUG, ( "hb_compExprGenStatement(%p)", pExpr ) );
|
||||
HB_TRACE( HB_TR_DEBUG, ( "hb_compExprGenStatement(%p)", ( void * ) pExpr ) );
|
||||
if( pExpr )
|
||||
{
|
||||
if( pExpr->ExprType == HB_EO_EQUAL )
|
||||
@@ -776,5 +773,3 @@ PHB_EXPR hb_compExprReduce( PHB_EXPR pExpr, HB_COMP_DECL )
|
||||
return HB_EXPR_USE( pExpr, HB_EA_REDUCE );
|
||||
}
|
||||
#endif
|
||||
|
||||
/* ************************************************************************* */
|
||||
|
||||
@@ -45,7 +45,6 @@
|
||||
*/
|
||||
|
||||
#include "hbcomp.h"
|
||||
#include "hbmacro.ch"
|
||||
|
||||
#if ! defined( HB_HASH_USES_ARRAY_INDEXES )
|
||||
# define HB_HASH_USES_ARRAY_INDEXES
|
||||
@@ -174,7 +173,7 @@ const PHB_EXPR_FUNC hb_comp_ExprTable[ HB_EXPR_COUNT ] = {
|
||||
hb_compExprUseVariable,
|
||||
hb_compExprUsePostInc, /* post-operators -> lowest precedence */
|
||||
hb_compExprUsePostDec,
|
||||
hb_compExprUseAssign, /* assigments */
|
||||
hb_compExprUseAssign, /* assignments */
|
||||
hb_compExprUsePlusEq,
|
||||
hb_compExprUseMinusEq,
|
||||
hb_compExprUseMultEq,
|
||||
@@ -1202,7 +1201,7 @@ static HB_EXPR_FUNC( hb_compExprUseArgList )
|
||||
}
|
||||
|
||||
/* NOTE: In PUSH operation it leaves all expressions on the eval stack,
|
||||
* the expresions are divided into macro compiled blocks
|
||||
* the expressions are divided into macro compiled blocks
|
||||
*/
|
||||
static HB_EXPR_FUNC( hb_compExprUseMacroArgList )
|
||||
{
|
||||
@@ -1342,10 +1341,10 @@ static HB_EXPR_FUNC( hb_compExprUseArrayAt )
|
||||
*/
|
||||
PHB_EXPR pNew = HB_COMP_EXPR_NEW( HB_ET_NONE );
|
||||
memcpy( pNew, pExpr, sizeof( HB_EXPR ) );
|
||||
/* This will suppres releasing of memory occupied by components of
|
||||
/* This will suppress releasing of memory occupied by components of
|
||||
* the expression - we have just copied them into the new expression.
|
||||
* This method is simpler then traversing the list and releasing all
|
||||
* but this choosen one.
|
||||
* but this chosen one.
|
||||
*/
|
||||
pExpr->ExprType = HB_ET_NONE;
|
||||
/* Here comes the magic */
|
||||
@@ -1602,7 +1601,7 @@ static HB_EXPR_FUNC( hb_compExprUseMacro )
|
||||
{
|
||||
/* complex macro expression: prefix&var.suffix
|
||||
* all components should be placed as a string that will
|
||||
* be compiled after text susbstitution
|
||||
* be compiled after text substitution
|
||||
*/
|
||||
|
||||
/* Check if macrotext variable does not refer to
|
||||
@@ -1694,7 +1693,7 @@ static HB_EXPR_FUNC( hb_compExprUseMacro )
|
||||
{
|
||||
/* complex macro expression: prefix&var.suffix
|
||||
* all components should be placed as a string that will
|
||||
* be compiled after text susbstitution
|
||||
* be compiled after text substitution
|
||||
*/
|
||||
|
||||
/* Check if macrotext variable does not refer to
|
||||
@@ -2358,7 +2357,7 @@ static HB_EXPR_FUNC( hb_compExprUseAliasVar )
|
||||
return pSelf;
|
||||
}
|
||||
|
||||
/* handler for expression->( exression, ... ) syntax
|
||||
/* handler for expression->( expression, ... ) syntax
|
||||
*/
|
||||
static HB_EXPR_FUNC( hb_compExprUseAliasExpr )
|
||||
{
|
||||
@@ -2396,7 +2395,7 @@ static HB_EXPR_FUNC( hb_compExprUseAliasExpr )
|
||||
HB_EXPR_USE( pSelf->value.asAlias.pExpList, HB_EA_PUSH_PCODE );
|
||||
/* swap the two last items on the eval stack: one item is a
|
||||
* value returned by evaluated expression and the second item
|
||||
* is previously selected workarea. After swaping select again
|
||||
* is previously selected workarea. After swapping select again
|
||||
* the restored workarea.
|
||||
*/
|
||||
HB_GEN_FUNC1( PCode1, HB_P_SWAPALIAS );
|
||||
@@ -2535,7 +2534,7 @@ static HB_EXPR_FUNC( hb_compExprUseVariable )
|
||||
* operator only (if 'any_expr' is not a string) - an alias value
|
||||
* is placed on the eval stack before macro compilation.
|
||||
* The HB_MACRO_GEN_ALIASED flag is used to signal that we have to
|
||||
* genearate alias aware pcode even if we known a variable part only.
|
||||
* generate alias aware pcode even if we known a variable part only.
|
||||
*/
|
||||
if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_ALIASED )
|
||||
HB_GEN_FUNC4( PushAliasedVar, pSelf->value.asSymbol.name, HB_FALSE, NULL, 0 );
|
||||
@@ -2713,7 +2712,7 @@ static HB_EXPR_FUNC( hb_compExprUseSend )
|
||||
}
|
||||
else
|
||||
{
|
||||
/* acces to instance variable */
|
||||
/* access to instance variable */
|
||||
hb_compExprPushSendPush( pSelf, HB_COMP_PARAM );
|
||||
HB_GEN_FUNC2( PCode2, HB_P_SENDSHORT, 0 );
|
||||
}
|
||||
@@ -2910,7 +2909,7 @@ static HB_EXPR_FUNC( hb_compExprUseAssign )
|
||||
break;
|
||||
|
||||
case HB_EA_PUSH_PCODE:
|
||||
/* NOTE: assigment to an object instance variable needs special handling
|
||||
/* NOTE: assignment to an object instance variable needs special handling
|
||||
*/
|
||||
if( pSelf->value.asOperator.pLeft->ExprType == HB_ET_SEND )
|
||||
{
|
||||
@@ -4551,11 +4550,11 @@ static HB_BOOL hb_compExprCodeblockPush( PHB_EXPR pSelf, int iEarlyEvalPass, HB_
|
||||
pExpr->pNext = pNext; /* restore the link to next expression */
|
||||
}
|
||||
|
||||
/* Generate push/pop pcodes for all expresions except the last one
|
||||
/* Generate push/pop pcodes for all expressions except the last one
|
||||
* The value of the last expression is used as a return value
|
||||
* of a codeblock evaluation
|
||||
*/
|
||||
/* NOTE: This will genereate warnings if constant value is
|
||||
/* NOTE: This will generate warnings if constant value is
|
||||
* used as an expression - some operators will generate it too
|
||||
* e.g.
|
||||
* Eval( {|| 3+5, func()} )
|
||||
@@ -4624,7 +4623,7 @@ static void hb_compExprCodeblockEarly( PHB_EXPR pSelf, HB_COMP_DECL )
|
||||
}
|
||||
else
|
||||
{
|
||||
/* generate code to check if macroexpression refers to local, static
|
||||
/* generate code to check if macro-expression refers to local, static
|
||||
* or field variables and generate error in such case or disable
|
||||
* iEarlyEvalPass when -kd (MACRODECL) switch is used.
|
||||
* In the 2nd case hb_compExprCodeblockPush() returns true and generated
|
||||
@@ -4741,7 +4740,7 @@ static void hb_compExprPushSendPopPush( PHB_EXPR pObj, PHB_EXPR pValue,
|
||||
/* Push message */
|
||||
if( pObj->value.asMessage.szMessage )
|
||||
{
|
||||
/* HB_TRUE used intnetionally to not push object variable in WITH OBJECT */
|
||||
/* HB_TRUE used intentionally not to push object variable in WITH OBJECT */
|
||||
HB_GEN_FUNC2( Message, pObj->value.asMessage.szMessage, HB_TRUE );
|
||||
}
|
||||
else
|
||||
@@ -5476,7 +5475,7 @@ static PHB_EXPR hb_compExprReduceList( PHB_EXPR pList, HB_COMP_DECL )
|
||||
{
|
||||
PHB_EXPR * pExpr;
|
||||
|
||||
/* NOTE: During optimalization an expression on the list can be
|
||||
/* NOTE: During optimization an expression on the list can be
|
||||
* replaced by the new one
|
||||
*/
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* All HB_CODEPAGE_* externals.
|
||||
* (Compatibility header)
|
||||
* All HB_CODEPAGE_* externals. (Compatibility header)
|
||||
*
|
||||
* Copyright 2009 Viktor Szakats (vszakats.net/harbour)
|
||||
*
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* The declarations for all harbour defined functions/procedures.
|
||||
* (Compatibility header)
|
||||
* The declarations for all Harbour defined functions/procedures. (Compatibility header)
|
||||
*
|
||||
* Copyright 2010 Viktor Szakats (vszakats.net/harbour)
|
||||
* Copyright 1999 Ryszard Glab <rglab@imid.med.pl>
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
/*
|
||||
* All HB_LANG_* externals.
|
||||
* (Compatibility header)
|
||||
* All HB_LANG_* externals. (Compatibility header)
|
||||
*
|
||||
* Copyright 2009 April White <april users.sourceforge.net>
|
||||
* Copyright 2009 April White <bright.tigra gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -221,7 +221,7 @@
|
||||
#endif
|
||||
|
||||
|
||||
/* NOTE: Workaround for Pellec C 5.00 not having an 'inf' (HUGE_VAL)
|
||||
/* NOTE: Workaround for Pelles C 5.00 not having an 'inf' (HUGE_VAL)
|
||||
in '-Tarm-coff' mode. [vszakats] */
|
||||
#if defined( __POCC__ ) && defined( HB_OS_WIN_CE )
|
||||
#undef HUGE_VAL
|
||||
|
||||
@@ -54,9 +54,9 @@
|
||||
/*
|
||||
* NOTE: ACQUIRE / RELEASE screen pair must work same way DispBegin()/DispEnd() pair does
|
||||
* (that is, with an internal counter), as lots of function may want to 'acquire/release' it.
|
||||
* However, a GT must properly manage its gfx output if the user didn't requested to acquire the
|
||||
* However, a GT must properly manage its GFX output if the user didn't requested to acquire the
|
||||
* screen, so this is under user choice.
|
||||
* (the user just needs to know that it is not the same to aquire the screen, draw 100 lines, then
|
||||
* (the user just needs to know that it is not the same to acquire the screen, draw 100 lines, then
|
||||
* release screen, than simply drawing 100 lines -as the GT will be acquiring/releasing the screen
|
||||
* 100 times, which will slow down things a lot-) [Mauricio]
|
||||
*/
|
||||
|
||||
@@ -52,17 +52,17 @@
|
||||
/*
|
||||
* NOTE: ACQUIRE / RELEASE screen pair must work same way DispBegin()/DispEnd() pair does
|
||||
* (that is, with an internal counter), as lots of function may want to 'acquire/release' it.
|
||||
* However, a GT must properly manage its gfx output if the user didn't requested to acquire the
|
||||
* However, a GT must properly manage its GFX output if the user didn't requested to acquire the
|
||||
* screen, so this is under user choice.
|
||||
* (the user just needs to know that it is not the same to aquire the screen, draw 100 lines, then
|
||||
* (the user just needs to know that it is not the same to acquire the screen, draw 100 lines, then
|
||||
* release screen, than simply drawing 100 lines -as the GT will be acquiring/releasing the screen
|
||||
* 100 times, which will slow down things a lot-) [Mauricio]
|
||||
*/
|
||||
|
||||
/* Misc, internals */
|
||||
#define HB_GFX_ACQUIRESCREEN 1 /* Some GTs may require that you 'acquire' the screen before doing gfx things */
|
||||
#define HB_GFX_ACQUIRESCREEN 1 /* Some GTs may require that you 'acquire' the screen before doing GFX things */
|
||||
#define HB_GFX_RELEASESCREEN 2 /* Release a previously 'acquired' screen */
|
||||
#define HB_GFX_MAKECOLOR 3 /* Calculate gfx color number based on RGBA values */
|
||||
#define HB_GFX_MAKECOLOR 3 /* Calculate GFX color number based on RGBA values */
|
||||
/* Functions that affect drawing area */
|
||||
#define HB_GFX_CLIPTOP 10
|
||||
#define HB_GFX_CLIPLEFT 11
|
||||
@@ -86,7 +86,7 @@
|
||||
/* Drawing mode constants */
|
||||
#define HB_GFX_MODE_SOLID 1 /* Solid mode, no translucency, no patterned primitives */
|
||||
#define HB_GFX_MODE_XOR 2 /* XOR with current screen contents */
|
||||
#define HB_GFX_MODE_ALPHA 3 /* Use alpha for transluced effect (SLOW) */
|
||||
#define HB_GFX_MODE_ALPHA 3 /* Use alpha for translucent effect (SLOW) */
|
||||
/* TODO: add patterned mode drawings */
|
||||
|
||||
#endif /* _HBGFXDEF_CH_ */
|
||||
|
||||
@@ -492,7 +492,7 @@ extern HB_EXPORT void hb_gt_gcMark( void );
|
||||
#define HB_GTSELF_WHOCARES(g,p) (g)->pFuncTable->WhoCares(g,p)
|
||||
|
||||
#ifndef HB_GTSUPERTABLE
|
||||
# define HB_GTSUPERTABLE(g) HB_GTSUPER
|
||||
#define HB_GTSUPERTABLE(g) HB_GTSUPER
|
||||
#endif
|
||||
|
||||
#define HB_GTSUPER_LOCK(g) (HB_GTSUPERTABLE(g))->Lock(g)
|
||||
@@ -624,7 +624,7 @@ extern HB_EXPORT void hb_gt_gcMark( void );
|
||||
extern HB_EXPORT HB_BOOL hb_gtRegister( const HB_GT_INIT * gtInit );
|
||||
extern HB_EXPORT PHB_GT hb_gtLoad( const char * szGtName, PHB_GT pGT, PHB_GT_FUNCS pSuperTable );
|
||||
|
||||
/* low level GT functions common to different GTs supported by RTL */
|
||||
/* low-level GT functions common to different GTs supported by RTL */
|
||||
extern int hb_gt_chrmapinit( int * piTransTbl, const char * pszTerm, HB_BOOL fSetACSC );
|
||||
extern HB_BOOL hb_gt_setClipboard( const char * szClipData, HB_SIZE nLen );
|
||||
extern HB_BOOL hb_gt_getClipboard( char ** pszClipData, HB_SIZE * pnLen );
|
||||
|
||||
@@ -59,15 +59,15 @@
|
||||
#define HB_GTI_DESKTOPHEIGHT 7 /* Get height of desktop in pixels */
|
||||
#define HB_GTI_DESKTOPDEPTH 8 /* Amount of bits used for colors in system */
|
||||
#define HB_GTI_COMPATBUFFER 9 /* Use DOS CGA/EGA/VGA character/attribute buffer in SAVE/REST SCREEN */
|
||||
#define HB_GTI_KBDSHIFTS 10 /* Keyboard shift/ctrl/alt, caps/num/scroll & winkeys state */
|
||||
#define HB_GTI_KBDSHIFTS 10 /* Keyboard shift/ctrl/alt, caps/num/scroll/windows keys' state */
|
||||
#define HB_GTI_KBDSPECIAL 11 /* This will get/set the status of the top row
|
||||
shift state handling. Enable to correct a
|
||||
documented keyboard handling bug under Win9x.
|
||||
Enable if the caps-lock key affects the top
|
||||
row keys. (Alternate language keys are not
|
||||
row keys. (Alternate language keys are not
|
||||
handled properly by this temporary fix.
|
||||
Default is disabled. */
|
||||
#define HB_GTI_KBDALT 12 /* This will get/set the status of the alt-numpad
|
||||
#define HB_GTI_KBDALT 12 /* This will get/set the status of the Alt-NumPad
|
||||
key handling.
|
||||
Default is Enabled. */
|
||||
#define HB_GTI_ISSCREENPOS 13 /* Is full screen cursor positioning supported by GT driver? */
|
||||
@@ -79,7 +79,7 @@
|
||||
#define HB_GTI_DESKTOPROWS 20 /* Get Size of desktop in character rows */
|
||||
#define HB_GTI_DESKTOPCOLS 21 /* Get Size of desktop in character cols */
|
||||
#define HB_GTI_FONTWEIGHT 22 /* Get/set the weight of the font used in application */
|
||||
#define HB_GTI_FONTQUALITY 23 /* Get/set quality of font rendering in the appl. */
|
||||
#define HB_GTI_FONTQUALITY 23 /* Get/set quality of font rendering in the application */
|
||||
#define HB_GTI_FONTNAME 24 /* Set-only font name */
|
||||
#define HB_GTI_CODEPAGE 25 /* codepage */
|
||||
#define HB_GTI_WINTITLE 26 /* title */
|
||||
@@ -94,11 +94,11 @@
|
||||
#define HB_GTI_ESCDELAY 33 /* Get/Set escape key delay */
|
||||
|
||||
/* these 2 are used for MaxCol(?) and MaxRow(?) */
|
||||
#define HB_GTI_VIEWMAXHEIGHT 34 /* Maximum viewable height:for current mode */
|
||||
#define HB_GTI_VIEWMAXWIDTH 35 /* Maximum viewable width:either win or full scrn */
|
||||
#define HB_GTI_VIEWMAXHEIGHT 34 /* Maximum viewable height: for current mode */
|
||||
#define HB_GTI_VIEWMAXWIDTH 35 /* Maximum viewable width: either window or full screen */
|
||||
|
||||
#define HB_GTI_VIEWPORTHEIGHT 36 /* Current viewport height:for current mode */
|
||||
#define HB_GTI_VIEWPORTWIDTH 37 /* Current viewport width:either win or full scrn */
|
||||
#define HB_GTI_VIEWPORTHEIGHT 36 /* Current viewport height: for current mode */
|
||||
#define HB_GTI_VIEWPORTWIDTH 37 /* Current viewport width: either window or full screen */
|
||||
|
||||
#define HB_GTI_STDOUTCON 38 /* redirect STDOUT to console */
|
||||
#define HB_GTI_STDERRCON 39 /* redirect STDERR to console */
|
||||
@@ -143,7 +143,7 @@
|
||||
#define HB_GTI_MAXIMIZED 66 /* Get/Set Window's Maximized status (supported by: GTWVT) */
|
||||
#define HB_GTI_FONTATTRIBUTE 67 /* Get/Set font attribute */
|
||||
#define HB_GTI_UNITRANS 68 /* Set translation table for UNICODE characters */
|
||||
#define HB_GTI_WINHANDLE 69 /* Get console window low level handle */
|
||||
#define HB_GTI_WINHANDLE 69 /* Get console window low-level handle */
|
||||
#define HB_GTI_MOUSEPOS_XY 70 /* Get mouse position in pixels */
|
||||
#define HB_GTI_DISPIMAGE 71 /* Display image with given name */
|
||||
#define HB_GTI_REDRAWMAX 72 /* Maximum number of unchanged neighboring chars in redrawn line */
|
||||
@@ -196,7 +196,7 @@
|
||||
#define HB_GTE_RESIZED 5
|
||||
#endif
|
||||
|
||||
/* Harbour GT Reszing mode constants */
|
||||
/* Harbour GT resizing mode constants */
|
||||
#define HB_GTI_RESIZEMODE_FONT 0 /* Default */
|
||||
#define HB_GTI_RESIZEMODE_ROWS 1
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* code used to register GT driver
|
||||
* Code used to register GT driver
|
||||
*
|
||||
* Copyright 2009 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
#define HB_HAUTOADD_NEVER 0x00
|
||||
#define HB_HAUTOADD_ACCESS 0x01
|
||||
#define HB_HAUTOADD_ASSIGN 0x02
|
||||
#define HB_HAUTOADD_ALWAYS ( HB_HAUTOADD_ACCESS + HB_HAUTOADD_ASSIGN )
|
||||
#define HB_HAUTOADD_ALWAYS hb_bitOr( HB_HAUTOADD_ACCESS, HB_HAUTOADD_ASSIGN )
|
||||
#define HB_HAUTOADD_REFERENCE HB_HAUTOADD_ALWAYS
|
||||
|
||||
/* hb_HMerge() modes */
|
||||
|
||||
@@ -82,7 +82,7 @@ extern HB_EXPORT_INT PHB_HASH_TABLE hb_hashTableCreate( HB_SIZE nSize,
|
||||
PHB_HASH_FUNC pComp );
|
||||
extern HB_EXPORT_INT void hb_hashTableKill( PHB_HASH_TABLE pTable ); /* release all items and the hash table */
|
||||
extern HB_EXPORT_INT HB_BOOL hb_hashTableAdd( PHB_HASH_TABLE pTable, const void * pKey, const void * pValue ); /* add a new item into the table */
|
||||
extern HB_EXPORT_INT HB_BOOL hb_hashTableDel( PHB_HASH_TABLE pTable, const void * pKey ); /* delete an item from the table */
|
||||
extern HB_EXPORT_INT HB_BOOL hb_hashTableDel( PHB_HASH_TABLE pTable, const void * pKey ); /* delete an item from the table */
|
||||
extern HB_EXPORT_INT const void * hb_hashTableFind( PHB_HASH_TABLE pTable, const void * pKey ); /* return the pointer to item's value or NULL if not found */
|
||||
extern HB_EXPORT_INT PHB_HASH_TABLE hb_hashTableResize( PHB_HASH_TABLE pTable, HB_SIZE nNewSize ); /* resize the hash table */
|
||||
extern HB_EXPORT_INT HB_SIZE hb_hashTableSize( PHB_HASH_TABLE pTable ); /* return the hash table size */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Header file for dynmaic PCODE modules (HRB) options
|
||||
* Header file for dynamic PCODE modules (HRB) options
|
||||
*
|
||||
* Copyright 2009 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
/*
|
||||
* startup code using special data segments
|
||||
* Startup code using special data segments
|
||||
*
|
||||
* Copyright 2009 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
* This code uses MSC startup macros created by
|
||||
* Paul Tucker <ptucker /at/ sympatico.ca>
|
||||
*
|
||||
|
||||
@@ -53,7 +53,7 @@ HB_EXTERN_BEGIN
|
||||
|
||||
extern HB_EXPORT PHB_SYMB hb_vmProcessSymbols( PHB_SYMB pSymbols, HB_USHORT uiSymbols, const char * szModuleName, HB_ULONG ulID, HB_USHORT uiPcodeVer ); /* module symbols initialization with extended information */
|
||||
|
||||
#define HB_INIT_SYMBOLS_END( func ) HB_INIT_SYMBOLS_EX_END( func, __FILE__, 0L, 0x0000 )
|
||||
#define HB_INIT_SYMBOLS_END( func ) HB_INIT_SYMBOLS_EX_END( func, "", 0L, 0x0000 )
|
||||
|
||||
/* By default in all C++ builds use static variable initialization as startup
|
||||
code with the exception for GCC which new versions show warning about
|
||||
@@ -163,7 +163,7 @@ extern HB_EXPORT PHB_SYMB hb_vmProcessSymbols( PHB_SYMB pSymbols, HB_USHORT uiSy
|
||||
defined( __GNUC__ ) || \
|
||||
defined( __SUNPRO_C ) || defined( __SUNPRO_CC ) || \
|
||||
defined( __DCC__ ) || \
|
||||
defined( __TINYC__ ) /* TOFIX: __TINYC__ */ || \
|
||||
defined( __TINYC__ ) /* FIXME: __TINYC__ */ || \
|
||||
defined( __clang__ )
|
||||
|
||||
#if defined( HB_PRAGMA_STARTUP ) || defined( HB_DATASEG_STARTUP )
|
||||
@@ -265,7 +265,7 @@ extern HB_EXPORT PHB_SYMB hb_vmProcessSymbols( PHB_SYMB pSymbols, HB_USHORT uiSy
|
||||
static HB_$INITSYM _s_init_func_##func = func;
|
||||
|
||||
/* After each '*_END' symbol, additional 'hooks' are required
|
||||
* See the C output of a generated prg for example
|
||||
* See the C output of a generated .prg for example
|
||||
*/
|
||||
|
||||
#elif defined( __WATCOMC__ )
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* IOUSRD - module to create new FILE IO redirectors at prg level
|
||||
* IOUSRD - module to create new FILE IO redirectors at .prg level
|
||||
*
|
||||
* Copyright 2014 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
/* runtime settings for macro compiler */
|
||||
#define HB_SM_HARBOUR 1 /* extended Harbour features */
|
||||
#define HB_SM_XBASE 2 /* extended Xbase++ compatibility */
|
||||
#define HB_SM_SHORTCUTS 8 /* enable/disable sortcuts for logical operators */
|
||||
#define HB_SM_SHORTCUTS 8 /* enable/disable shortcuts for logical operators */
|
||||
#define HB_SM_ARRSTR 16 /* enable/disable strings as array of bytes */
|
||||
#define HB_SM_EXTOPT 32 /* enable/disable operator optimizations */
|
||||
#define HB_SM_RT_MACRO 64 /* disable automatic setup of macro flag */
|
||||
|
||||
@@ -47,8 +47,8 @@
|
||||
#ifndef HB_MACRO_H_
|
||||
#define HB_MACRO_H_
|
||||
|
||||
#include "hbcompdf.h"
|
||||
#include "hbapi.h"
|
||||
#include "hbcompdf.h"
|
||||
#include "hbapiitm.h"
|
||||
#include "hbapierr.h"
|
||||
#include "hbvm.h"
|
||||
@@ -64,7 +64,7 @@ HB_EXTERN_BEGIN
|
||||
#define HB_MACRO_GEN_POP 2 /* generate POP pcodes */
|
||||
#define HB_MACRO_GEN_ALIASED 4 /* force aliased variable */
|
||||
#define HB_MACRO_GEN_TYPE 8 /* check the type of expression (from Type() function) */
|
||||
#define HB_MACRO_GEN_PARE 16 /* generate parentesized list */
|
||||
#define HB_MACRO_GEN_PARE 16 /* generate parenthesized list */
|
||||
#define HB_MACRO_GEN_LIST 32 /* generate push operation for every comma separated expressions */
|
||||
#define HB_MACRO_GEN_REFER 64 /* generate PUSH pcodes for reference to given expression */
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Header file for MATHDEFERRMODE function
|
||||
* Header file for hb_matherMode() function
|
||||
*
|
||||
* Copyright 2002 IntTec GmbH, Neunlindenstr 32, 79106 Freiburg, Germany
|
||||
* Author: Martin Vogel <vogel@inttec.de>
|
||||
@@ -48,7 +48,7 @@
|
||||
#ifndef HB_MATH_CH_
|
||||
#define HB_MATH_CH_
|
||||
|
||||
/* map the C math lib error definitions to harbour constants */
|
||||
/* map the C math lib error definitions to Harbour constants */
|
||||
#define HB_MATH_ERR_UNKNOWN -1
|
||||
#define HB_MATH_ERR_NONE 0
|
||||
#define HB_MATH_ERR_DOMAIN 1
|
||||
@@ -64,13 +64,13 @@
|
||||
#define HB_MATH_ERRMODE_CDEFAULT 1 /* handle error by using the C RTL correction values */
|
||||
#define HB_MATH_ERRMODE_USER 2 /* throw Harbour error, user MUST correct math error within Harbour error
|
||||
handling */
|
||||
#define HB_MATH_ERRMODE_USERDEFAULT 3 /* dito, but if user does not correct math error, default
|
||||
#define HB_MATH_ERRMODE_USERDEFAULT 3 /* ditto, but if user does not correct math error, default
|
||||
error handling, i.e. by individual function applies */
|
||||
#define HB_MATH_ERRMODE_USERCDEFAULT 4 /* as ERRMODE_USER, but if user does not correct math error, C RTL
|
||||
correction values are used */
|
||||
|
||||
/* array element indices in aInfo parameter passed to math errorblock */
|
||||
#define HB_MATHERRORBLOCK_RETVAL 1
|
||||
#define HB_MATHERRORBLOCK_HANDLED 2
|
||||
#define HB_MATHERRORBLOCK_RETVAL 1
|
||||
#define HB_MATHERRORBLOCK_HANDLED 2
|
||||
|
||||
#endif /* HB_MATH_CH */
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
#include <math.h>
|
||||
#endif
|
||||
|
||||
/* NOTE: Workaround for Pellec C 5.00 not having an 'inf' (HUGE_VAL)
|
||||
/* NOTE: Workaround for Pelles C 5.00 not having an 'inf' (HUGE_VAL)
|
||||
in '-Tarm-coff' mode. [vszakats] */
|
||||
#if defined( __POCC__ ) && defined( HB_OS_WIN_CE )
|
||||
#undef HUGE_VAL
|
||||
|
||||
@@ -54,7 +54,7 @@ HB_EXTERN_BEGIN
|
||||
|
||||
#if defined( __WATCOMC__ )
|
||||
#define HB_MATH_HANDLER
|
||||
#if ( __WATCOMC__ > 1000 ) /* && defined( __cplusplus ) */
|
||||
#if __WATCOMC__ > 1000 /* && defined( __cplusplus ) */
|
||||
#define exception _exception
|
||||
#endif
|
||||
#elif defined( __BORLANDC__ )
|
||||
@@ -93,21 +93,21 @@ HB_EXTERN_BEGIN
|
||||
|
||||
typedef struct _HB_MATH_EXCEPTION
|
||||
{
|
||||
int type;
|
||||
const char * funcname;
|
||||
const char * error;
|
||||
double arg1;
|
||||
double arg2;
|
||||
double retval;
|
||||
int retvalwidth;
|
||||
int retvaldec;
|
||||
int handled;
|
||||
int type;
|
||||
const char * funcname;
|
||||
const char * error;
|
||||
double arg1;
|
||||
double arg2;
|
||||
double retval;
|
||||
int retvalwidth;
|
||||
int retvaldec;
|
||||
int handled;
|
||||
} HB_MATH_EXCEPTION;
|
||||
|
||||
typedef int ( * HB_MATH_HANDLERPROC )( HB_MATH_EXCEPTION * err );
|
||||
|
||||
extern HB_EXPORT void hb_mathResetError( HB_MATH_EXCEPTION * phb_exc );
|
||||
extern HB_EXPORT HB_BOOL hb_mathGetError( HB_MATH_EXCEPTION * phb_exc, const char *szFunc, double arg1, double arg2, double dResult );
|
||||
extern HB_EXPORT HB_BOOL hb_mathGetError( HB_MATH_EXCEPTION * phb_exc, const char * szFunc, double arg1, double arg2, double dResult );
|
||||
|
||||
extern HB_EXPORT int hb_mathSetErrMode( int imode );
|
||||
extern HB_EXPORT int hb_mathGetErrMode( void );
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* code used to register new lang definition
|
||||
* Code used to register new lang definition
|
||||
*
|
||||
* Copyright 2009 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
* Header file for low-level object engine
|
||||
*
|
||||
* Copyright 1999-2001 Viktor Szakats (vszakats.net/harbour)
|
||||
* Copyright 2000 JF Lefebvre <jfl@mafact.com> and RA Cuylen <rac@mafact.com> (Many enhancements (scopes, class methods))
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -44,25 +45,15 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* The following parts are Copyright of the individual authors.
|
||||
*
|
||||
* Copyright 2000 JF Lefebvre <jfl@mafact.com> and RA Cuylen <rac@mafact.com>
|
||||
* Many enhancements (scopes, class methods)
|
||||
*
|
||||
* See COPYING.txt for licensing terms.
|
||||
*
|
||||
*/
|
||||
|
||||
/* NOTE: This file is also used by C code. */
|
||||
|
||||
#ifndef HB_OO_CH_
|
||||
#define HB_OO_CH_
|
||||
|
||||
/* Used by objfunc.prg (__objGetMsgList) and classes.c (hb___msgClsSel()) */
|
||||
#define HB_MSGLISTALL 0
|
||||
#define HB_MSGLISTCLASS 1
|
||||
#define HB_MSGLISTPURE 2
|
||||
/* Used by objfunc.prg (__objGetMsgList()) and classes.c (hb___msgClsSel()) */
|
||||
#define HB_MSGLISTALL 0
|
||||
#define HB_MSGLISTCLASS 1
|
||||
#define HB_MSGLISTPURE 2
|
||||
|
||||
/* Method or Data attribute (nScope)*/
|
||||
#define HB_OO_CLSTP_EXPORTED 1 /* No comment, default */
|
||||
|
||||
@@ -77,7 +77,7 @@ typedef enum
|
||||
HB_P_FUNCTIONSHORT, /* 12 instructs the virtual machine to execute a function saving its result */
|
||||
HB_P_FRAME, /* 13 instructs the virtual machine about how many parameters and locals a function uses */
|
||||
HB_P_FUNCPTR, /* 14 returns a function address pointer */
|
||||
HB_P_GREATER, /* 15 checks if the second latest value on the stack is greater that the lastest one */
|
||||
HB_P_GREATER, /* 15 checks if the second latest value on the stack is greater that the latest one */
|
||||
HB_P_GREATEREQUAL, /* 16 checks if the second latest value on the stack is greater equal that the latest one, leaves the result only */
|
||||
HB_P_DEC, /* 17 decrements the latest value on the virtual machine stack */
|
||||
HB_P_DIVIDE, /* 18 divides the latest two values on the stack, removing them and leaving the result */
|
||||
@@ -97,7 +97,7 @@ typedef enum
|
||||
HB_P_JUMPTRUE, /* 32 checks a logic expression of the stack and jumps to a relative offset */
|
||||
HB_P_JUMPTRUEFAR, /* 33 checks a logic expression of the stack and jumps to a relative offset */
|
||||
HB_P_LESSEQUAL, /* 34 checks if the second latest value on the stack is less equal that the latest one, leaves the result only */
|
||||
HB_P_LESS, /* 35 checks if the second latest value on the stack is less that the lastest one */
|
||||
HB_P_LESS, /* 35 checks if the second latest value on the stack is less that the latest one */
|
||||
HB_P_LINE, /* 36 currently compiled source code line number */
|
||||
HB_P_LOCALNAME, /* 37 sets the name of local variable */
|
||||
HB_P_MACROPOP, /* 38 compile and run - pop a value from the stack */
|
||||
@@ -135,7 +135,7 @@ typedef enum
|
||||
HB_P_NOT, /* 68 logically negates the latest value on the stack */
|
||||
HB_P_NOTEQUAL, /* 69 checks if the latest two stack values are equal, leaves just the result */
|
||||
HB_P_OR, /* 70 performs the logical OR of two latest stack values, removes them and places result */
|
||||
HB_P_PARAMETER, /* 71 creates PRIVATE variables and assigns values to functions paramaters */
|
||||
HB_P_PARAMETER, /* 71 creates PRIVATE variables and assigns values to functions parameters */
|
||||
HB_P_PLUS, /* 72 adds the latest two values on the stack, removing them and leaving the result */
|
||||
HB_P_POP, /* 73 removes the latest value from the stack */
|
||||
HB_P_POPALIAS, /* 74 pops the item from the eval stack and selects the current workarea */
|
||||
@@ -194,12 +194,12 @@ typedef enum
|
||||
HB_P_MACROPUSHREF, /* 127 Reference to macro variable @&mvar */
|
||||
HB_P_PUSHLONGLONG, /* 128 places an integer number on the virtual machine stack */
|
||||
HB_P_ENUMSTART, /* 129 Start of FOR EACH loop */
|
||||
HB_P_ENUMNEXT, /* 130 Next item of FOR EACH loop */
|
||||
HB_P_ENUMPREV, /* 131 Previous item of FOR EACH loop */
|
||||
HB_P_ENUMNEXT, /* 130 Next item of FOR EACH loop */
|
||||
HB_P_ENUMPREV, /* 131 Previous item of FOR EACH loop */
|
||||
HB_P_ENUMEND, /* 132 End of FOR EACH loop */
|
||||
HB_P_SWITCH, /* 133 SWITCH using long values */
|
||||
HB_P_PUSHDATE, /* 134 places a data constant value on the virtual machine stack */
|
||||
/* optimalization of inlined math operations */
|
||||
/* optimization of inlined math operations */
|
||||
HB_P_PLUSEQPOP, /* 135 adds a value to the variable reference */
|
||||
HB_P_MINUSEQPOP, /* 136 subs a value from the variable reference */
|
||||
HB_P_MULTEQPOP, /* 137 multiplies a variable reference by a value */
|
||||
@@ -211,7 +211,7 @@ typedef enum
|
||||
HB_P_WITHOBJECTSTART, /* 143 start WITH OBJECT code */
|
||||
HB_P_WITHOBJECTMESSAGE, /* 144 push message for WITH OBJECT */
|
||||
HB_P_WITHOBJECTEND, /* 145 end WITH OBJECT code */
|
||||
HB_P_MACROSEND, /* 146 send operator with macrlist params */
|
||||
HB_P_MACROSEND, /* 146 send operator with macro list params */
|
||||
HB_P_PUSHOVARREF, /* 147 pushes reference to object variable */
|
||||
HB_P_ARRAYPUSHREF, /* 148 pushes reference to array element */
|
||||
HB_P_VFRAME, /* 149 frame with variable number of parameters */
|
||||
@@ -224,7 +224,7 @@ typedef enum
|
||||
HB_P_MODEQ, /* 156 calculates the modulus of var reference and a value, leave result on the stack */
|
||||
HB_P_EXPEQ, /* 157 calculates the power of var reference and a value, leave result on the stack */
|
||||
HB_P_DUPLUNREF, /* 158 places a copy of the latest virtual machine stack value on to the stack and unreference the source one */
|
||||
HB_P_MPUSHBLOCKLARGE, /* 159 code block generated by the macro compiler larger then 64kb */
|
||||
HB_P_MPUSHBLOCKLARGE, /* 159 code block generated by the macro compiler larger then 64 KiB */
|
||||
HB_P_MPUSHSTRLARGE, /* 160 Macro compiled pushed string */
|
||||
HB_P_PUSHBLOCKLARGE, /* 161 start of a codeblock definition */
|
||||
HB_P_PUSHSTRLARGE, /* 162 places a string on the virtual machine stack */
|
||||
|
||||
@@ -54,6 +54,6 @@
|
||||
|
||||
#xcommand ARRAY <obj> LEN <nLen> => <obj> := Array( <nLen> )
|
||||
|
||||
#xcommand ENDARRAY => /* Just used to ease the read of the ascii file */
|
||||
#xcommand ENDARRAY => /* Just used to ease the read of the ASCII file */
|
||||
|
||||
#endif
|
||||
|
||||
@@ -62,9 +62,9 @@ HB_EXTERN_BEGIN
|
||||
#define HB_PP_STREAM_OFF 0 /* standard preprocessing */
|
||||
#define HB_PP_STREAM_COMMENT 1 /* multiline comment */
|
||||
#define HB_PP_STREAM_DUMP_C 2 /* pragma BEGINDUMP */
|
||||
#define HB_PP_STREAM_CLIPPER 3 /* clipper compatible TEXT/ENDTEXT */
|
||||
#define HB_PP_STREAM_CLIPPER 3 /* Cl*pper compatible TEXT/ENDTEXT */
|
||||
#define HB_PP_STREAM_PRG 4 /* TEXT/ENDTEXT lines joined with LF */
|
||||
#define HB_PP_STREAM_C 5 /* TEXT/ENDTEXT lines joined and ESC seq processed */
|
||||
#define HB_PP_STREAM_C 5 /* TEXT/ENDTEXT lines joined and ESC sequences processed */
|
||||
#define HB_PP_STREAM_INLINE_C 6 /* hb_inLIne() {...} data, should not be preprocessed */
|
||||
#define HB_PP_STREAM_BINARY 7 /* __binarystreaminclude */
|
||||
|
||||
@@ -355,7 +355,7 @@ typedef HB_PP_MSG_FUNC_( ( * PHB_PP_MSG_FUNC ) );
|
||||
HB_PP_TOKEN_ISEXPVAL( (t)->pNext->type ) ) )
|
||||
|
||||
#ifdef HB_CLP_STRICT
|
||||
/* Clipper supports quoting by [] for 1-st token in the line so we
|
||||
/* Clipper supports quoting by [] for 1st token in the line so we
|
||||
are not checking for HB_PP_TOKEN_NUL in this macro */
|
||||
#define HB_PP_TOKEN_CANQUOTE(t) ( HB_PP_TOKEN_TYPE(t) != HB_PP_TOKEN_KEYWORD && \
|
||||
HB_PP_TOKEN_TYPE(t) != HB_PP_TOKEN_MACROVAR && \
|
||||
@@ -413,10 +413,10 @@ HB_PP_TOKEN, * PHB_PP_TOKEN;
|
||||
#define HB_PP_TRANSLATE 2
|
||||
#define HB_PP_COMMAND 4
|
||||
|
||||
/* comparision modes */
|
||||
/* comparison modes */
|
||||
#define HB_PP_CMP_ADDR 0 /* compare token addresses */
|
||||
#define HB_PP_CMP_STD 1 /* standard comparison, ignore the case of the characters */
|
||||
#define HB_PP_CMP_DBASE 2 /* dbase keyword comparison (accepts at least four character shortcuts) ignore the case of the characters */
|
||||
#define HB_PP_CMP_DBASE 2 /* dBase keyword comparison (accepts at least four character shortcuts) ignore the case of the characters */
|
||||
#define HB_PP_CMP_CASE 3 /* case sensitive comparison */
|
||||
|
||||
#define HB_PP_CMP_MODE(t) ( (t) & 0xff )
|
||||
@@ -495,8 +495,8 @@ HB_PP_MARKER, * PHB_PP_MARKER;
|
||||
typedef struct _HB_PP_RULE
|
||||
{
|
||||
struct _HB_PP_RULE * pPrev; /* previous rule */
|
||||
PHB_PP_TOKEN pMatch; /* match patern or NULL */
|
||||
PHB_PP_TOKEN pResult; /* result patern or NULL */
|
||||
PHB_PP_TOKEN pMatch; /* match pattern or NULL */
|
||||
PHB_PP_TOKEN pResult; /* result pattern or NULL */
|
||||
HB_USHORT mode; /* comparison mode HB_PP_CMP_* */
|
||||
HB_USHORT markers; /* number of markers in marker table */
|
||||
/* filled when pattern matches for substitution, cleared after */
|
||||
@@ -606,7 +606,7 @@ typedef struct
|
||||
HB_USHORT usLastType; /* last token type */
|
||||
HB_BOOL fCanNextLine; /* ';' token found and we do not know yet if it's command separator or line concatenator */
|
||||
HB_BOOL fDirective; /* # directives is parsed */
|
||||
HB_BOOL fNewStatement; /* set to HB_TRUE at line begining or after each ';' token */
|
||||
HB_BOOL fNewStatement; /* set to HB_TRUE at line beginning or after each ';' token */
|
||||
PHB_PP_TOKEN pFuncOut; /* function used for each line in HB_PP_STREAM_* dumping */
|
||||
PHB_PP_TOKEN pFuncEnd; /* end function for HB_PP_STREAM_* dumping */
|
||||
PHB_MEM_BUFFER pStreamBuffer; /* buffer for stream output */
|
||||
|
||||
@@ -140,9 +140,9 @@ HB_EXTERN_BEGIN
|
||||
#define CDX_TYPE_COMPOUND 0x40 /* FoxPro */
|
||||
#define CDX_TYPE_STRUCTURE 0x80 /* FoxPro */
|
||||
|
||||
#define CDX_CMP_EXACT 0x00 /* exact comparision */
|
||||
#define CDX_CMP_PREFIX 0x01 /* prefix comparision */
|
||||
#define CDX_CMP_DATE 0x02 /* date comparision */
|
||||
#define CDX_CMP_EXACT 0x00 /* exact comparison */
|
||||
#define CDX_CMP_PREFIX 0x01 /* prefix comparison */
|
||||
#define CDX_CMP_DATE 0x02 /* date comparison */
|
||||
|
||||
/*
|
||||
SIx3 order temperature flags:
|
||||
@@ -183,7 +183,7 @@ HB_EXTERN_BEGIN
|
||||
0x20 - in index header: ADI file, in ADI tag header: ASCII
|
||||
0x00 - in ADI tag header: UNICODE
|
||||
*/
|
||||
/* CDX index node strucutres */
|
||||
/* CDX index node structures */
|
||||
/* Compact Index Header Record */
|
||||
typedef struct _CDXTAGHEADER
|
||||
{
|
||||
@@ -234,7 +234,7 @@ typedef struct _CDXEXTNODE
|
||||
HB_BYTE recBits; /* number of bits for record number */
|
||||
HB_BYTE dupBits; /* number of bits for duplicate count */
|
||||
HB_BYTE trlBits; /* number of bits for trailing count */
|
||||
HB_BYTE keyBytes; /* total number of bytes for recnn/dup/trail info */
|
||||
HB_BYTE keyBytes; /* total number of bytes for recno/dup/trail info */
|
||||
} CDXEXTNODE;
|
||||
|
||||
|
||||
@@ -275,12 +275,12 @@ typedef struct _CDXPAGE
|
||||
HB_BOOL fChanged;
|
||||
HB_BOOL fBufChanged;
|
||||
|
||||
HB_SHORT bufKeyNum; /* do not change these vars' order */
|
||||
HB_SHORT bufKeyPos; /* they have to be just after the node */
|
||||
HB_SHORT bufKeyLen; /* and maybe temporary overwriten when adding */
|
||||
HB_SHORT iFree; /* new key to interior node record. */
|
||||
HB_SHORT bufKeyNum; /* do not change these vars' order */
|
||||
HB_SHORT bufKeyPos; /* they have to be just after the node */
|
||||
HB_SHORT bufKeyLen; /* and maybe temporary overwritten when adding */
|
||||
HB_SHORT iFree; /* new key to interior node record. */
|
||||
|
||||
HB_BYTE * pKeyBuf; /* pointer to uncompressed leaf page key pool */
|
||||
HB_BYTE * pKeyBuf; /* pointer to uncompressed leaf page key pool */
|
||||
|
||||
struct _CDXPAGE * Owner;
|
||||
struct _CDXPAGE * Child;
|
||||
@@ -317,13 +317,13 @@ typedef struct _CDXTAG
|
||||
PHB_ITEM pForItem; /* item with a macro pcode for a tag for expression */
|
||||
HB_USHORT uiType; /* a type of key expression value */
|
||||
HB_USHORT uiLen; /* length of the key expression value */
|
||||
HB_USHORT nField; /* Field number for simple (one field) key expersion */
|
||||
HB_USHORT nField; /* Field number for simple (one field) key expression */
|
||||
HB_BYTE bTrail; /* trailing character for shorter key value */
|
||||
HB_BYTE OptFlags; /* index options flag */
|
||||
HB_BOOL AscendKey; /* ascending/descending order flag */
|
||||
HB_BOOL UniqueKey; /* unique order flag */
|
||||
HB_BOOL Custom; /* custom order flag */
|
||||
HB_BOOL Template; /* user keyadata in ordKeyAdd()/ordKeyDel() accepted */
|
||||
HB_BOOL Template; /* user key data in ordKeyAdd()/ordKeyDel() accepted */
|
||||
HB_BOOL MultiKey; /* repeated key values in custom indexes accepted */
|
||||
HB_BOOL Partial; /* order is updated only partially - missing keys possible */
|
||||
HB_BOOL ChgOnly; /* only existing key modifications are updated, no new key added */
|
||||
@@ -392,8 +392,8 @@ typedef struct _CDXINDEX
|
||||
HB_BOOL RdLck;
|
||||
HB_BOOL WrLck;
|
||||
#endif
|
||||
HB_BOOL fChanged; /* changes written to index, need upadte ulVersion */
|
||||
HB_BOOL fFlush; /* changes written to index, need upadte ulVersion */
|
||||
HB_BOOL fChanged; /* changes written to index, need to update ulVersion */
|
||||
HB_BOOL fFlush; /* changes written to index, need to update ulVersion */
|
||||
HB_ULONG ulVersion; /* network version/update flag */
|
||||
} CDXINDEX, * LPCDXINDEX;
|
||||
|
||||
@@ -418,13 +418,13 @@ typedef struct
|
||||
HB_BOOL fReindex; /* HB_TRUE if reindexing is in process */
|
||||
HB_ULONG ulMaxRec; /* the highest record number */
|
||||
HB_ULONG ulTotKeys; /* total number of keys indexed */
|
||||
HB_ULONG ulKeys; /* keys in curently created page */
|
||||
HB_ULONG ulKeys; /* keys in currently created page */
|
||||
HB_ULONG ulPages; /* number of pages */
|
||||
HB_ULONG ulCurPage; /* current page */
|
||||
HB_ULONG ulPgKeys; /* maximum number of key in page memory buffer */
|
||||
HB_ULONG ulMaxKey; /* maximum number of keys in single page */
|
||||
HB_BYTE * pKeyPool; /* memory buffer for current page then for pages */
|
||||
HB_BYTE * pStartKey; /* begining of key pool after sorting */
|
||||
HB_BYTE * pStartKey; /* beginning of key pool after sorting */
|
||||
LPCDXSWAPPAGE pSwapPage; /* list of pages */
|
||||
LPCDXPAGE NodeList[ CDX_STACKSIZE ]; /* Stack of pages */
|
||||
HB_ULONG ulFirst;
|
||||
@@ -451,15 +451,15 @@ typedef struct _CDXAREA
|
||||
DBFAREA dbfarea;
|
||||
|
||||
/*
|
||||
* CDX's additions to the workarea structure
|
||||
*
|
||||
* Warning: The above section MUST match DBFAREA exactly! Any
|
||||
* additions to the structure MUST be added below, as in this
|
||||
* example.
|
||||
*/
|
||||
* CDX's additions to the workarea structure
|
||||
*
|
||||
* Warning: The above section MUST match DBFAREA exactly! Any
|
||||
* additions to the structure MUST be added below, as in this
|
||||
* example.
|
||||
*/
|
||||
|
||||
LPCDXSORTINFO pSort; /* Index build structure */
|
||||
LPCDXINDEX lpIndexes; /* Pointer to indexes array */
|
||||
LPCDXINDEX lpIndexes; /* Pointer to indexes array */
|
||||
const HB_UCHAR * sortTab; /* Table with sorted characters */
|
||||
HB_BOOL fCdxAppend; /* Appended record changed */
|
||||
HB_BOOL fSortCDP; /* Use CDP functions for sorting */
|
||||
|
||||
@@ -204,7 +204,7 @@ typedef struct _DBFAREA
|
||||
HB_USHORT uiNullCount; /* Number of null flags */
|
||||
HB_BYTE bTableType; /* DBF type */
|
||||
HB_BYTE bMemoType; /* MEMO type used in DBF memo fields */
|
||||
HB_BYTE bLockType; /* Type of locking shemes */
|
||||
HB_BYTE bLockType; /* Type of locking schemes */
|
||||
HB_BYTE bCryptType; /* Type of used encryption */
|
||||
HB_UINT uiSetHeader; /* DBF header updating modes DBI_SETHEADER */
|
||||
DBFHEADER dbfHeader; /* DBF header buffer */
|
||||
@@ -217,8 +217,8 @@ typedef struct _DBFAREA
|
||||
HB_BOOL fHasMemo; /* WorkArea with Memo fields */
|
||||
HB_BOOL fHasTags; /* WorkArea with MDX or CDX index */
|
||||
HB_BOOL fModStamp; /* WorkArea with modification autoupdate fields */
|
||||
HB_BOOL fDataFlush; /* data was written to DBF and not commited */
|
||||
HB_BOOL fMemoFlush; /* data was written to MEMO and not commited */
|
||||
HB_BOOL fDataFlush; /* data was written to DBF and not committed */
|
||||
HB_BOOL fMemoFlush; /* data was written to MEMO and not committed */
|
||||
HB_BOOL fShared; /* Shared file */
|
||||
HB_BOOL fReadonly; /* Read only file */
|
||||
HB_BOOL fTemporary; /* Temporary file */
|
||||
@@ -233,10 +233,10 @@ typedef struct _DBFAREA
|
||||
HB_BOOL fFLocked; /* HB_TRUE if file is locked */
|
||||
HB_BOOL fHeaderLocked; /* HB_TRUE if DBF header is locked */
|
||||
HB_BOOL fPackMemo; /* Pack memo file in pack operation */
|
||||
HB_BOOL fTransRec; /* HB_TRUE if records are transfered to this area, allow to change autoupdate fields and disable their initialization */
|
||||
HB_BOOL fTransRec; /* HB_TRUE if records are transferred to this area, allow to change autoupdate fields and disable their initialization */
|
||||
HB_BOOL fTrigger; /* Execute trigger function */
|
||||
LPDBOPENINFO lpdbOpenInfo; /* Pointer to current dbOpenInfo structure in OPEN/CREATE methods */
|
||||
LPDBRELINFO lpdbPendingRel; /* Pointer to parent rel struct */
|
||||
LPDBRELINFO lpdbPendingRel; /* Pointer to parent relation struct */
|
||||
HB_ULONG * pLocksPos; /* List of records locked */
|
||||
HB_ULONG ulNumLocksPos; /* Number of records locked */
|
||||
char * pCryptKey; /* Pointer to encryption key */
|
||||
|
||||
@@ -102,7 +102,7 @@ typedef struct _DELIMAREA
|
||||
HB_ULONG ulRecNo; /* Current record */
|
||||
HB_ULONG ulRecCount; /* Number of records (in export) */
|
||||
HB_BOOL fTransRec; /* Can put whole records */
|
||||
HB_BOOL fFlush; /* Data was written to table and not commited */
|
||||
HB_BOOL fFlush; /* Data was written to table and not committed */
|
||||
HB_BOOL fShared; /* Shared file */
|
||||
HB_BOOL fReadonly; /* Read only file */
|
||||
HB_BOOL fPositioned; /* Positioned record */
|
||||
|
||||
@@ -94,8 +94,8 @@ HB_EXTERN_BEGIN
|
||||
#define FPTIT_DUMMY 0xDEADBEAF
|
||||
#define FPTIT_BINARY 0x0000
|
||||
#define FPTIT_PICT 0x0000 /* Picture */
|
||||
#define FPTIT_TEXT 0x0001 /* Text */
|
||||
#define FPTIT_OBJ 0x0002 /* Object */
|
||||
#define FPTIT_TEXT 0x0001 /* Text */
|
||||
#define FPTIT_OBJ 0x0002 /* Object */
|
||||
|
||||
#define FPTIT_SIX_NIL 0x0000 /* NIL VALUE (USED ONLY IN ARRAYS) */
|
||||
#define FPTIT_SIX_LNUM 0x0002 /* LONG LE */
|
||||
@@ -109,29 +109,29 @@ HB_EXTERN_BEGIN
|
||||
/* #define FPTIT_SIX_VREF 0x2000 */
|
||||
/* #define FPTIT_SIX_MREF 0x4000 */
|
||||
|
||||
#define FPTIT_FLEX_GC 0x03E8 /* 1000 */
|
||||
#define FPTIT_FLEX_UNUSED 0x03E9 /* 1001 */
|
||||
#define FPTIT_FLEX_ARRAY 0x03EA /* 1002 */
|
||||
#define FPTIT_FLEX_GC 0x03E8 /* 1000 */
|
||||
#define FPTIT_FLEX_UNUSED 0x03E9 /* 1001 */
|
||||
#define FPTIT_FLEX_ARRAY 0x03EA /* 1002 */
|
||||
#define FPTIT_FLEX_OBJECT 0x03EB /* 1003 ! */
|
||||
#define FPTIT_FLEX_VOARR 0x03EC /* 1004 ! */
|
||||
#define FPTIT_FLEX_VOOBJ 0x03ED /* 1005 ! */
|
||||
#define FPTIT_FLEX_NIL 0x03EE /* 1006 */
|
||||
#define FPTIT_FLEX_TRUE 0x03EF /* 1007 */
|
||||
#define FPTIT_FLEX_FALSE 0x03F0 /* 1008 */
|
||||
#define FPTIT_FLEX_LDATE 0x03F1 /* 1009 */
|
||||
#define FPTIT_FLEX_CHAR 0x03F2 /* 1010 */
|
||||
#define FPTIT_FLEX_UCHAR 0x03F3 /* 1011 */
|
||||
#define FPTIT_FLEX_SHORT 0x03F4 /* 1012 */
|
||||
#define FPTIT_FLEX_USHORT 0x03F5 /* 1013 */
|
||||
#define FPTIT_FLEX_LONG 0x03F6 /* 1014 */
|
||||
#define FPTIT_FLEX_ULONG 0x03F7 /* 1015 */
|
||||
#define FPTIT_FLEX_DOUBLE 0x03F8 /* 1016 */
|
||||
#define FPTIT_FLEX_NIL 0x03EE /* 1006 */
|
||||
#define FPTIT_FLEX_TRUE 0x03EF /* 1007 */
|
||||
#define FPTIT_FLEX_FALSE 0x03F0 /* 1008 */
|
||||
#define FPTIT_FLEX_LDATE 0x03F1 /* 1009 */
|
||||
#define FPTIT_FLEX_CHAR 0x03F2 /* 1010 */
|
||||
#define FPTIT_FLEX_UCHAR 0x03F3 /* 1011 */
|
||||
#define FPTIT_FLEX_SHORT 0x03F4 /* 1012 */
|
||||
#define FPTIT_FLEX_USHORT 0x03F5 /* 1013 */
|
||||
#define FPTIT_FLEX_LONG 0x03F6 /* 1014 */
|
||||
#define FPTIT_FLEX_ULONG 0x03F7 /* 1015 */
|
||||
#define FPTIT_FLEX_DOUBLE 0x03F8 /* 1016 */
|
||||
#define FPTIT_FLEX_LDOUBLE 0x03F9 /* 1017 ! */
|
||||
#define FPTIT_FLEX_COMPRCH 0x03FA /* 1018 ! */
|
||||
|
||||
/* Flex II types */
|
||||
#define FPTIT_FLEX_DBLITEM 0x2710 /* 10000 14-bytes Clipper double item */
|
||||
#define FPTIT_FLEX_LOGICAL 0x2711 /* 10001 4-bytes logical value */
|
||||
#define FPTIT_FLEX_LOGICAL 0x2711 /* 10001 4-bytes logical value */
|
||||
#define FPTIT_FLEX_NULSTR 0x2722 /* 10002 empty string */
|
||||
|
||||
|
||||
@@ -176,7 +176,7 @@ typedef struct _FPTHEADER
|
||||
{
|
||||
HB_BYTE nextBlock[ 4 ]; /* Next free block in the file */
|
||||
HB_BYTE blockSize[ 4 ]; /* Size of block */
|
||||
HB_BYTE signature1[ 10 ]; /* Signature: "SixMemo", "Harbour", "Made by CLIP"-overwrites next bytes*/
|
||||
HB_BYTE signature1[ 10 ]; /* Signature: "SixMemo", "Harbour", "Made by CLIP"-overwrites next bytes */
|
||||
HB_BYTE nGCitems[ 2 ]; /* number of GC items in reserved2 (max 82)*/
|
||||
HB_BYTE reserved2[ 492 ]; /* */
|
||||
HB_BYTE signature2[ 12 ]; /* Signature: "FlexFile3\003" */
|
||||
|
||||
@@ -83,17 +83,17 @@ NSX description:
|
||||
during update operation if previous key value with valid record
|
||||
number cannot be located. Harbour RDD does not have such limit
|
||||
and can support 2^32-2 records = 4294967294.
|
||||
7. Branch nodes have also field to mark record len (RecNoLen) but
|
||||
7. Branch nodes have also field to mark record length (RecNoLen) but
|
||||
it seems to be unused (filled with 0 or 4) and record number is
|
||||
always stored in 4 bytes.
|
||||
8. Maximum key len is set to 250 but in fact with 4 bytes record len
|
||||
such keys cannot be supported without adding some hack because
|
||||
8. Maximum key length is set to 250 but in fact with 4 bytes record
|
||||
length such keys cannot be supported without adding some hack because
|
||||
RecNoLen[4] + Size[1] + DupCount[1] + 250 gives 256 and it cannot
|
||||
be stored in 1 byte (Size). We can add support for such long
|
||||
indexes but we have to define that Size=0 means Size=256. It can
|
||||
be done because Size=0 cannot appear in other way. I implemented
|
||||
it and Harbour works well with such indexes.
|
||||
9. In root header is address of 1-st available free page in index file,
|
||||
9. In root header is address of 1st available free page in index file,
|
||||
addresses of next pages are stored in the free pages at the same
|
||||
position as in root header (offset = 6)
|
||||
10.Leaf nodes use for duplicate compression keys' values from upper
|
||||
@@ -136,10 +136,10 @@ NSX description:
|
||||
or:
|
||||
rddInfo( RDDI_MEMOTYPE, DB_MEMO_DBT, "DBFNSX" )
|
||||
16.Harbour NSX implementation in default format supports NSX files
|
||||
upto 4GB. This is maximum keeping binary compatibility with SIX3
|
||||
NSX RDD. But Harbour can support files up to 4TB - it's a little
|
||||
up to 4 GiB. This is maximum keeping binary compatibility with SIX3
|
||||
NSX RDD. But Harbour can support files up to 4 TiB - it's a little
|
||||
bit modified format with 'I' instead of 'i' in index header signature.
|
||||
Such indexes are created when locking mode is set to 64bit. On open
|
||||
Such indexes are created when locking mode is set to 64-bit. On open
|
||||
Harbour RDDs automatically recognize type of index files so it
|
||||
can use new format also with different locking schemes. SIX3 NSX
|
||||
cannot use new index.
|
||||
@@ -151,7 +151,7 @@ LEAF KEY COMPRESSION:
|
||||
a. store record number (RecNo)
|
||||
b. count duplicated characters
|
||||
c. if full key is duplicated then key size = n + 1 and goto @g
|
||||
d. count trailng characters to the duplicate limit
|
||||
d. count trailing characters to the duplicate limit
|
||||
e. if rest of key value (without dup and trail chars) is not empty
|
||||
then store it using RLE compression:
|
||||
- replace each repeated 3 or more characters with with FF xx yy
|
||||
@@ -220,9 +220,9 @@ HB_EXTERN_BEGIN
|
||||
#define NSX_TYPE_ANYNUM ( NSX_TYPE_LNUM | NSX_TYPE_DNUM )
|
||||
#define NSX_TYPE_ANYEXP ( NSX_TYPE_ANYNUM | NSX_TYPE_CHAR | NSX_TYPE_LDATE | NSX_TYPE_TIMESTAMP | NSX_TYPE_LOG )
|
||||
|
||||
#define NSX_CMP_EXACT 0x00 /* exact comparision */
|
||||
#define NSX_CMP_PREFIX 0x01 /* prefix comparision */
|
||||
#define NSX_CMP_DATE 0x02 /* date comparision */
|
||||
#define NSX_CMP_EXACT 0x00 /* exact comparison */
|
||||
#define NSX_CMP_PREFIX 0x01 /* prefix comparison */
|
||||
#define NSX_CMP_DATE 0x02 /* date comparison */
|
||||
|
||||
#define NSX_TAG_FULLUPDT 0x00
|
||||
#define NSX_TAG_PARTIAL 0x01
|
||||
@@ -281,7 +281,7 @@ typedef struct _NSXTAGHEADER
|
||||
HB_UCHAR KeyType[ 2 ]; /* index key type: NSX_TYPE_* */
|
||||
HB_UCHAR KeySize[ 2 ]; /* index key size */
|
||||
HB_UCHAR Unique[ 2 ]; /* 0x0001 for UNIQUE indexes */
|
||||
HB_UCHAR Descend[ 2 ]; /* 0x0001 for descond indexes */
|
||||
HB_UCHAR Descend[ 2 ]; /* 0x0001 for descend indexes */
|
||||
HB_UCHAR KeyExpr[ NSX_MAXEXPLEN ]; /* index KEY expression ASCIIZ */
|
||||
HB_UCHAR ForExpr[ NSX_MAXEXPLEN ]; /* index FOR expression ASCIIZ */
|
||||
HB_UCHAR Unused[ NSX_PAGELEN - 14 - NSX_MAXEXPLEN - NSX_MAXEXPLEN ];
|
||||
@@ -310,7 +310,7 @@ typedef struct _NSXLEAFPAGE
|
||||
HB_UCHAR NodeID[ 1 ]; /* NSX_LEAFPAGE | ( lRoot ? NSX_ROOTPAGE : 0 ) */
|
||||
HB_UCHAR RecNoLen[ 1 ]; /* number of bytes for recno in leaf keys */
|
||||
HB_UCHAR KeyCount[ 2 ]; /* number of key in page */
|
||||
HB_UCHAR UsedArea[ 2 ]; /* arrea used in page -> offset to free area */
|
||||
HB_UCHAR UsedArea[ 2 ]; /* area used in page -> offset to free area */
|
||||
HB_UCHAR KeyData[ NSX_PAGELEN - NSX_LEAFKEYOFFSET ]; /* with branch keys */
|
||||
} NSXLEAFPAGE;
|
||||
typedef NSXLEAFPAGE * LPNSXLEAFPAGE;
|
||||
@@ -320,20 +320,20 @@ typedef NSXLEAFPAGE * LPNSXLEAFPAGE;
|
||||
variable member sizes */
|
||||
typedef struct _NSXBRANCHKEY
|
||||
{
|
||||
HB_UCHAR Page[4]; /* page offset wih higher keys values */
|
||||
HB_UCHAR RecNo[n]; /* where n is RecNoLen */
|
||||
HB_UCHAR KeyData[l]; /* key value where l is KeySize */
|
||||
HB_UCHAR Page[ 4 ]; /* page offset with higher keys values */
|
||||
HB_UCHAR RecNo[ n ]; /* where n is RecNoLen */
|
||||
HB_UCHAR KeyData[ l ]; /* key value where l is KeySize */
|
||||
} NSXBRANCHKEY;
|
||||
typedef NSXBRANCHKEY * LPNSXBRANCHKEY;
|
||||
|
||||
typedef struct _NSXLEAFKEY
|
||||
{
|
||||
HB_UCHAR RecNo[n]; /* where n is RecNoLen */
|
||||
HB_UCHAR Size[1]; /* key data size with this byte and n RecNo HB_BYTEs
|
||||
HB_UCHAR RecNo[ n ]; /* where n is RecNoLen */
|
||||
HB_UCHAR Size[ 1 ]; /* key data size with this byte and n RecNo HB_BYTEs
|
||||
* if Size == n + 1 then key is fully duplicated
|
||||
*/
|
||||
HB_UCHAR DupCount[1]; /* number of bytes from previous key */
|
||||
HB_UCHAR KeyData[m]; /* rest of key value with RLE compression:
|
||||
HB_UCHAR DupCount[ 1 ]; /* number of bytes from previous key */
|
||||
HB_UCHAR KeyData[ m ]; /* rest of key value with RLE compression:
|
||||
* FF xx yy => Replicate(yy, xx)
|
||||
* FF 01 => FF
|
||||
* m = Size - n - 2
|
||||
@@ -528,13 +528,13 @@ typedef struct
|
||||
HB_BOOL fReindex; /* HB_TRUE if reindexing is in process */
|
||||
HB_ULONG ulMaxRec; /* the highest record number */
|
||||
HB_ULONG ulTotKeys; /* total number of keys indexed */
|
||||
HB_ULONG ulKeys; /* keys in curently created page */
|
||||
HB_ULONG ulKeys; /* keys in currently created page */
|
||||
HB_ULONG ulPages; /* number of pages */
|
||||
HB_ULONG ulCurPage; /* current page */
|
||||
HB_ULONG ulPgKeys; /* maximum number of key in page memory buffer */
|
||||
HB_ULONG ulMaxKey; /* maximum number of keys in single page */
|
||||
HB_UCHAR * pKeyPool; /* memory buffer for current page then for pages */
|
||||
HB_UCHAR * pStartKey; /* begining of key pool after sorting */
|
||||
HB_UCHAR * pStartKey; /* beginning of key pool after sorting */
|
||||
LPNSXSWAPPAGE pSwapPage; /* list of pages */
|
||||
LPPAGEINFO NodeList[ NSX_STACKSIZE ]; /* Stack of pages */
|
||||
HB_ULONG ulFirst;
|
||||
|
||||
@@ -77,11 +77,11 @@ HB_EXTERN_BEGIN
|
||||
|
||||
#define CTX_MAX_TAGS 63
|
||||
|
||||
#define NTX_MAX_KEY 256 /* Max len of key */
|
||||
#define NTX_MAX_EXP 256 /* Max len of KEY/FOR expression */
|
||||
#define NTX_MAX_KEY 256 /* Max length of key */
|
||||
#define NTX_MAX_EXP 256 /* Max length of KEY/FOR expression */
|
||||
#define NTXBLOCKBITS 10 /* Size of NTX block in bits */
|
||||
#define NTXBLOCKSIZE (1<<NTXBLOCKBITS) /* Size of block in NTX file */
|
||||
#define NTX_MAX_TAGNAME 10 /* Max len of tag name */
|
||||
#define NTX_MAX_TAGNAME 10 /* Max length of tag name */
|
||||
#define NTX_HDR_UNUSED 473 /* the unused part of header */
|
||||
#define NTX_PAGES_PER_TAG 8
|
||||
#define NTX_STACKSIZE 32 /* Maximum page stack size */
|
||||
@@ -92,32 +92,32 @@ HB_EXTERN_BEGIN
|
||||
|
||||
typedef struct _NTXHEADER /* Header of NTX file */
|
||||
{
|
||||
HB_BYTE type[2];
|
||||
HB_BYTE version[2];
|
||||
HB_BYTE root[4];
|
||||
HB_BYTE next_page[4];
|
||||
HB_BYTE item_size[2];
|
||||
HB_BYTE key_size[2];
|
||||
HB_BYTE key_dec[2];
|
||||
HB_BYTE max_item[2];
|
||||
HB_BYTE half_page[2];
|
||||
HB_BYTE type[ 2 ];
|
||||
HB_BYTE version[ 2 ];
|
||||
HB_BYTE root[ 4 ];
|
||||
HB_BYTE next_page[ 4 ];
|
||||
HB_BYTE item_size[ 2 ];
|
||||
HB_BYTE key_size[ 2 ];
|
||||
HB_BYTE key_dec[ 2 ];
|
||||
HB_BYTE max_item[ 2 ];
|
||||
HB_BYTE half_page[ 2 ];
|
||||
HB_BYTE key_expr[ NTX_MAX_EXP ];
|
||||
HB_BYTE unique[1];
|
||||
HB_BYTE unknown1[1];
|
||||
HB_BYTE descend[1];
|
||||
HB_BYTE unknown2[1];
|
||||
HB_BYTE unique[ 1 ];
|
||||
HB_BYTE unknown1[ 1 ];
|
||||
HB_BYTE descend[ 1 ];
|
||||
HB_BYTE unknown2[ 1 ];
|
||||
HB_BYTE for_expr[ NTX_MAX_EXP ];
|
||||
HB_BYTE tag_name[ NTX_MAX_TAGNAME + 2 ];
|
||||
HB_BYTE custom[1];
|
||||
HB_BYTE custom[ 1 ];
|
||||
HB_BYTE unused[ NTX_HDR_UNUSED ];
|
||||
} NTXHEADER;
|
||||
typedef NTXHEADER * LPNTXHEADER;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
HB_BYTE type[2];
|
||||
HB_BYTE version[2];
|
||||
HB_BYTE root[4];
|
||||
HB_BYTE type[ 2 ];
|
||||
HB_BYTE version[ 2 ];
|
||||
HB_BYTE root[ 4 ];
|
||||
} NTXHEADERUPDT;
|
||||
|
||||
typedef struct _CTXTAGITEM /* TAG item in compound NTX (CTX) header */
|
||||
@@ -308,13 +308,13 @@ typedef struct
|
||||
HB_BOOL fReindex; /* HB_TRUE if reindexing is in process */
|
||||
HB_ULONG ulMaxRec; /* the highest record number */
|
||||
HB_ULONG ulTotKeys; /* total number of keys indexed */
|
||||
HB_ULONG ulKeys; /* keys in curently created page */
|
||||
HB_ULONG ulKeys; /* keys in currently created page */
|
||||
HB_ULONG ulPages; /* number of pages */
|
||||
HB_ULONG ulCurPage; /* current page */
|
||||
HB_ULONG ulPgKeys; /* maximum number of key in page memory buffer */
|
||||
HB_ULONG ulMaxKey; /* maximum number of keys in single page */
|
||||
HB_BYTE * pKeyPool; /* memory buffer for current page then for pages */
|
||||
HB_BYTE * pStartKey; /* begining of key pool after sorting */
|
||||
HB_BYTE * pStartKey; /* beginning of key pool after sorting */
|
||||
LPNTXSWAPPAGE pSwapPage; /* list of pages */
|
||||
LPPAGEINFO NodeList[ NTX_STACKSIZE ]; /* Stack of pages */
|
||||
HB_ULONG ulFirst;
|
||||
|
||||
@@ -88,7 +88,7 @@ typedef struct _SDFAREA
|
||||
HB_ULONG ulRecNo; /* Current record */
|
||||
HB_ULONG ulRecCount; /* Number of records (in export) */
|
||||
HB_BOOL fTransRec; /* Can put whole records */
|
||||
HB_BOOL fFlush; /* Data was written to SDF and not commited */
|
||||
HB_BOOL fFlush; /* Data was written to SDF and not committed */
|
||||
HB_BOOL fShared; /* Shared file */
|
||||
HB_BOOL fReadonly; /* Read only file */
|
||||
HB_BOOL fPositioned; /* Positioned record */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
*
|
||||
* Regex header
|
||||
*
|
||||
* Copyright 2007 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
@@ -83,16 +83,19 @@ typedef HB_REGEX * PHB_REGEX;
|
||||
#define HB_REGMATCH_SIZE( n ) ( ( n ) * 3 )
|
||||
#define HB_REGMATCH_SO( p, n ) ( p )[ ( n ) * 2 ]
|
||||
#define HB_REGMATCH_EO( p, n ) ( p )[ ( n ) * 2 + 1 ]
|
||||
#define HB_REGMATCH_UNSET ( -1 )
|
||||
#elif defined( HB_POSIX_REGEX )
|
||||
#define HB_REGMATCH regmatch_t
|
||||
#define HB_REGMATCH_SIZE( n ) ( n )
|
||||
#define HB_REGMATCH_SO( p, n ) ( p )[ n ].rm_so
|
||||
#define HB_REGMATCH_EO( p, n ) ( p )[ n ].rm_eo
|
||||
#define HB_REGMATCH_UNSET ( -1 )
|
||||
#else
|
||||
#define HB_REGMATCH int
|
||||
#define HB_REGMATCH_SIZE( n ) ( ( n ) * 2 )
|
||||
#define HB_REGMATCH_SO( p, n ) ( p )[ ( n ) * 2 ]
|
||||
#define HB_REGMATCH_EO( p, n ) ( p )[ ( n ) * 2 + 1 ]
|
||||
#define HB_REGMATCH_UNSET ( -1 )
|
||||
#endif
|
||||
|
||||
typedef void ( * HB_REG_FREE )( PHB_REGEX );
|
||||
@@ -103,10 +106,10 @@ extern void hb_regexInit( HB_REG_FREE pFree, HB_REG_COMP pComp, HB_REG_EXEC pExe
|
||||
extern HB_BOOL hb_regexIs( PHB_ITEM pItem );
|
||||
|
||||
#ifndef REG_EXTENDED
|
||||
# define REG_EXTENDED 0x00
|
||||
#define REG_EXTENDED 0x00
|
||||
#endif
|
||||
#ifndef REG_NOSUB
|
||||
# define REG_NOSUB 0x00
|
||||
#define REG_NOSUB 0x00
|
||||
#endif
|
||||
|
||||
#else
|
||||
@@ -124,7 +127,7 @@ typedef void * PHB_REGEX;
|
||||
#define HBREG_DOTALL 0x40
|
||||
|
||||
#ifndef REGEX_MAX_GROUPS
|
||||
# define REGEX_MAX_GROUPS 16
|
||||
#define REGEX_MAX_GROUPS 16
|
||||
#endif
|
||||
|
||||
HB_EXTERN_BEGIN
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* header file for item serialization flags
|
||||
* Header file for item serialization flags
|
||||
*
|
||||
* Copyright 2013 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -48,12 +48,12 @@
|
||||
#ifndef HB_SETUP_H_
|
||||
#define HB_SETUP_H_
|
||||
|
||||
/* ***********************************************************************
|
||||
/*
|
||||
* Include settings common for .prg and .c files
|
||||
*/
|
||||
#include "hbsetup.ch"
|
||||
|
||||
/* ***********************************************************************
|
||||
/*
|
||||
* Define PCODE version number
|
||||
* HB_PCODE_VER_MIN define minimum supported PCODE by HVM
|
||||
*/
|
||||
@@ -61,25 +61,25 @@
|
||||
#define HB_PCODE_VER 0x0003
|
||||
#define HB_PCODE_VER_MIN 0x0002
|
||||
|
||||
/* ***********************************************************************
|
||||
* NOTE: You can select the default language modul used by Harbour, by
|
||||
* defining this to a valid language modul identifier.
|
||||
/*
|
||||
* NOTE: You can select the default language module used by Harbour, by
|
||||
* defining this to a valid language module identifier.
|
||||
*/
|
||||
|
||||
#ifndef HB_LANG_DEFAULT
|
||||
#define HB_LANG_DEFAULT EN
|
||||
#endif
|
||||
|
||||
/* ***********************************************************************
|
||||
/*
|
||||
* NOTE: You can select the default codepage used by Harbour, by
|
||||
* defining this to a valid codepage modul identifier.
|
||||
* defining this to a valid codepage module identifier.
|
||||
*/
|
||||
|
||||
#ifndef HB_CODEPAGE_DEFAULT
|
||||
#define HB_CODEPAGE_DEFAULT EN
|
||||
#endif
|
||||
|
||||
/* ***********************************************************************
|
||||
/*
|
||||
* Enable profiler support in HVM
|
||||
* By default this is turned off. Define HB_USE_PROFILER to turn it on.
|
||||
*/
|
||||
@@ -88,7 +88,7 @@
|
||||
#define HB_NO_PROFILER
|
||||
#endif
|
||||
|
||||
/* ***********************************************************************
|
||||
/*
|
||||
* This symbol defines if Harbour is compiled using C compiler
|
||||
* that support strict ANSI C only
|
||||
*
|
||||
@@ -96,7 +96,7 @@
|
||||
* to call functions before the 'main' module is called.
|
||||
* This trick is used to automatically join all symbol tables defined
|
||||
* in run-time support modules and in user defined modules.
|
||||
* If strict ANSI C compability is required then all symbol tables
|
||||
* If strict ANSI C compatibility is required then all symbol tables
|
||||
* have to be joined manually by calling special function named
|
||||
* hb_vm_SymbolInit_<module_name>
|
||||
* (for example for myfirst.prg it will be: 'hb_vm_SymbolInit_MYFIRST'
|
||||
@@ -107,17 +107,17 @@
|
||||
*/
|
||||
/* #define HB_STRICT_ANSI_C */
|
||||
|
||||
/* ***********************************************************************
|
||||
/*
|
||||
* Define this option if you want the /y YACC trace option to be available
|
||||
* in the Harbour compiler.
|
||||
*
|
||||
* Note that if you turn this on, the compiler will slighly grow in size.
|
||||
* Note that if you turn this on, the compiler will slightly grow in size.
|
||||
*
|
||||
* By default this is turned off.
|
||||
*/
|
||||
/* #define HB_YYDEBUG */
|
||||
|
||||
/* ***********************************************************************
|
||||
/*
|
||||
* Use native Windows memory allocation functions (HB_OS_WIN)
|
||||
* This option can disable compiler memory allocation optimization
|
||||
* so you should really have a good reason to enable it
|
||||
@@ -125,13 +125,13 @@
|
||||
|
||||
/* #define HB_FM_WIN_ALLOC */
|
||||
|
||||
/* ***********************************************************************
|
||||
/*
|
||||
* CPU detection
|
||||
*/
|
||||
|
||||
/* Partially based on:
|
||||
http://predef.sourceforge.net/prearch.html
|
||||
http://poshlib.hookatooka.com/poshlib/trac.cgi/browser/posh.h
|
||||
https://sourceforge.net/p/predef/wiki/
|
||||
http://guest:guest123@poshlib.hookatooka.com/poshlib/trac.cgi/browser/posh.h
|
||||
[vszakats]
|
||||
*/
|
||||
|
||||
@@ -254,7 +254,7 @@
|
||||
|
||||
#endif
|
||||
|
||||
/* ***********************************************************************
|
||||
/*
|
||||
* You can select here, what type of main entry will be used in the
|
||||
* application (main() or WinMain()).
|
||||
*
|
||||
@@ -282,10 +282,17 @@
|
||||
Visual Studio 2010, version 10.0 1600
|
||||
Visual Studio 2012, version 11.0 1700
|
||||
Visual Studio 2013, version 12.0 1800
|
||||
Visual Studio 2015, version 14.0 1900
|
||||
Visual Studio 2017, version 14.1 1910
|
||||
|
||||
For newer versions, refer to this page:
|
||||
https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Internal_version_numbering
|
||||
*/
|
||||
|
||||
/* ***********************************************************************
|
||||
/*
|
||||
* Platform detection
|
||||
*
|
||||
* Ref: http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system
|
||||
*/
|
||||
|
||||
#if defined( __WATCOMC__ )
|
||||
@@ -393,7 +400,7 @@
|
||||
#ifndef HB_OS_QNX
|
||||
#if defined( __QNX__ ) || defined( __QNXNTO__ )
|
||||
#define HB_OS_QNX
|
||||
#if defined( __QNXNTO__ ) /* TOFIX */
|
||||
#if defined( __QNXNTO__ ) /* FIXME */
|
||||
#define HB_OS_QNX_BB10
|
||||
#endif
|
||||
#endif
|
||||
@@ -462,7 +469,7 @@
|
||||
#define HB_NO_FNMATCH
|
||||
#endif
|
||||
|
||||
/* ***********************************************************************
|
||||
/*
|
||||
* Operating system specific definitions
|
||||
*/
|
||||
#if defined( HB_OS_UNIX )
|
||||
@@ -496,7 +503,7 @@
|
||||
|
||||
#define HB_PATH_MAX 264 /* with trailing 0 byte */
|
||||
|
||||
/* ***********************************************************************
|
||||
/*
|
||||
* Here you can force the EOL string to be CRLF
|
||||
*
|
||||
* By default, the EOL string depends upon the detected platform.
|
||||
@@ -507,13 +514,13 @@
|
||||
#define HB_OS_EOL_LEN 2
|
||||
#endif
|
||||
|
||||
/* ***********************************************************************
|
||||
/*
|
||||
* See also the following files for task specific definitions/settings
|
||||
*
|
||||
* hbmather.h - math errors handling
|
||||
*/
|
||||
|
||||
/* ***********************************************************************
|
||||
/*
|
||||
* Extern "C" detection
|
||||
*/
|
||||
|
||||
@@ -527,6 +534,22 @@
|
||||
#define HB_EXTERN_END
|
||||
#endif
|
||||
|
||||
#if defined( __GNUC__ )
|
||||
#define HB_GCC_VER ( ( ( __GNUC__ - 0 ) * 100 ) + ( __GNUC_MINOR__ - 0 ) )
|
||||
# if HB_GCC_VER >= 406
|
||||
#define HB_GCC_HAS_DIAG
|
||||
# else
|
||||
#undef HB_GCC_HAS_DIAG
|
||||
# endif
|
||||
# if HB_GCC_VER >= 404
|
||||
#define HB_GCC_HAS_OPTIMIZE
|
||||
# else
|
||||
#undef HB_GCC_HAS_OPTIMIZE
|
||||
# endif
|
||||
#else
|
||||
#define HB_GCC_VER 0
|
||||
#endif
|
||||
|
||||
#if defined( __GNUC__ ) && ( __GNUC__ - 0 >= 3 )
|
||||
|
||||
#define HB_DEPRECATED __attribute__ (( __deprecated__ ))
|
||||
|
||||
@@ -49,9 +49,7 @@
|
||||
|
||||
#include "hbsxdef.ch"
|
||||
|
||||
/*
|
||||
* obsolete SIx Driver functions
|
||||
*/
|
||||
/* obsolete SIx Driver functions */
|
||||
#xtranslate Sx_IndexFilter( [<nOrder>] ) => ordFor( [<nOrder>] )
|
||||
#xtranslate Sx_TagName([<nOrder>]) => iif( Used(), ordName( [<nOrder>] ), "" )
|
||||
#xtranslate Sx_SetTagOrder( [<xOrder>] [,<cBag>] ) => sx_SetTag( [<xOrder>] [,<cBag>] )
|
||||
@@ -67,9 +65,7 @@
|
||||
#xtranslate Sx_DirtyArea( [<param>] ) => sx_TurboArea( [<param>] )
|
||||
|
||||
|
||||
/*
|
||||
* USE command with support for TRIGGER and PASSWORD clauses
|
||||
*/
|
||||
/* USE command with support for TRIGGER and PASSWORD clauses */
|
||||
#command USE <(db)> [VIA <rdd>] [ALIAS <a>] [<nw: NEW>] ;
|
||||
[<ex: EXCLUSIVE>] [<sh: SHARED>] [<ro: READONLY>] ;
|
||||
[CODEPAGE <cp>] [INDEX <(index1)> [, <(indexN)>]] ;
|
||||
@@ -82,9 +78,7 @@
|
||||
[; dbSetIndex( <(indexN)> )]
|
||||
|
||||
|
||||
/*
|
||||
* SORT command with USECURRENT clause
|
||||
*/
|
||||
/* SORT command with USECURRENT clause */
|
||||
#command SORT [TO <(f)>] [ON <fields,...>] ;
|
||||
[FOR <for>] [WHILE <while>] [NEXT <next>] ;
|
||||
[RECORD <rec>] [<rest:REST>] [ALL] [VIA <rdd>] ;
|
||||
@@ -94,15 +88,11 @@
|
||||
<{for}>, <{while}>, <next>, <rec>, <.rest.>, <rdd>,, <cp> )
|
||||
|
||||
|
||||
/*
|
||||
* Seek using wildcards
|
||||
*/
|
||||
/* Seek using wildcards */
|
||||
#xcommand WILDSEEK <str> => sx_WildSeek( <str> )
|
||||
#xcommand WILDSEEKNEXT <str> => sx_WildSeek( <str>, .T. )
|
||||
|
||||
/*
|
||||
* order management commands
|
||||
*/
|
||||
/* order management commands */
|
||||
#command CLEAR ORDER <order> => sx_ClearOrder( <order> )
|
||||
#command SET TAGORDER TO <order> => ordSetFocus( <order> )
|
||||
#command SET TAGORDER TO => ordSetFocus( 0 )
|
||||
@@ -119,9 +109,7 @@
|
||||
#command DELETE TAG ALL [OF <(bag)>] => sx_KillTag( .T., <(bag)> )
|
||||
|
||||
|
||||
/*
|
||||
* order scope commands
|
||||
*/
|
||||
/* order scope commands */
|
||||
#command CLEAR SCOPE => sx_ClrScope()
|
||||
#xcommand SET SCOPETOP TO <value> => sx_SetScope( 0, <value> )
|
||||
#xcommand SET SCOPETOP TO => sx_ClrScope( 0 )
|
||||
@@ -131,23 +119,17 @@
|
||||
#command SET SCOPE TO <value> => sx_SetScope( 0, <value> ) ;
|
||||
; sx_SetScope( 1, <value> )
|
||||
|
||||
/*
|
||||
* TURBO(DIRTY) READ commands
|
||||
*/
|
||||
/* TURBO(DIRTY) READ commands */
|
||||
#command SET TURBOREAD ON => sx_SetTurbo( .T. )
|
||||
#command SET TURBOREAD OFF => sx_SetTurbo( .F. )
|
||||
|
||||
|
||||
/*
|
||||
* MEMO commands
|
||||
*/
|
||||
/* MEMO commands */
|
||||
#command MEMOPACK [BLOCK <size>] [OPTION <opt> [STEP <step>]] => ;
|
||||
sx_MemoPack( <size>, <{opt}>, <step> )
|
||||
#command SET MEMOBLOCK TO <value> => sx_SetMemoBlock( <value> )
|
||||
|
||||
/*
|
||||
* indexing
|
||||
*/
|
||||
/* indexing */
|
||||
#command SUBINDEX ON <key> TO <(file)> ;
|
||||
[OPTION <eval> [STEP <every>]] ;
|
||||
[<filter: FILTERON>] ;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* socket related constant values
|
||||
* Socket related constant values
|
||||
*
|
||||
* Copyright 2009 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
@@ -197,11 +197,11 @@
|
||||
#define HB_SOCKET_IFF_MULTICAST 0x0010 /* Supports multicast */
|
||||
|
||||
/* Harbour interface information indexes */
|
||||
#define HB_SOCKET_IFINFO_FAMILY 1 /* adress family */
|
||||
#define HB_SOCKET_IFINFO_FAMILY 1 /* address family */
|
||||
#define HB_SOCKET_IFINFO_NAME 2 /* interface name */
|
||||
#define HB_SOCKET_IFINFO_FLAGS 3 /* flags HB_SOCKET_IFF_* */
|
||||
#define HB_SOCKET_IFINFO_ADDR 4 /* interface address */
|
||||
#define HB_SOCKET_IFINFO_NETMASK 5 /* subnetmask */
|
||||
#define HB_SOCKET_IFINFO_NETMASK 5 /* subnet mask */
|
||||
#define HB_SOCKET_IFINFO_BROADCAST 6 /* broadcast address */
|
||||
#define HB_SOCKET_IFINFO_P2PADDR 7 /* point-to-point address */
|
||||
#define HB_SOCKET_IFINFO_HWADDR 8 /* hardware address */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* socket C API
|
||||
* Socket C API
|
||||
*
|
||||
* Copyright 2009 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/* TOFIX: There are several things in this file which are not part of the
|
||||
/* FIXME: There are several things in this file which are not part of the
|
||||
standard Harbour API, in other words these things are not
|
||||
guaranteed to remain unchanged. To avoid confusion these should be
|
||||
moved to somewhere else (like hbrtl.h). [vszakats] */
|
||||
@@ -154,7 +154,7 @@ typedef struct
|
||||
HB_ISIZ nWithObject; /* stack offset to base current WITH OBJECT item */
|
||||
HB_ISIZ nRecoverBase; /* current SEQUENCE envelope offset or 0 if no SEQUENCE is active */
|
||||
HB_USHORT uiActionRequest;/* request for some action - stop processing of opcodes */
|
||||
HB_USHORT uiQuitState; /* HVM is quiting */
|
||||
HB_USHORT uiQuitState; /* HVM is quitting */
|
||||
HB_STACK_STATE state; /* first (default) stack state frame */
|
||||
HB_STACKRDD rdd; /* RDD related data */
|
||||
char szDate[ 9 ]; /* last returned date from hb_pards() YYYYMMDD format */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
*
|
||||
* Built-in PP rules
|
||||
*
|
||||
* Copyright 2006 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -47,9 +47,7 @@
|
||||
#ifndef HB_SIX_DEF_CH_
|
||||
#define HB_SIX_DEF_CH_
|
||||
|
||||
/*
|
||||
* Event Constants for Trigger System
|
||||
*/
|
||||
/* Event Constants for Trigger System */
|
||||
#define EVENT_PREUSE 1
|
||||
#define EVENT_POSTUSE 2
|
||||
#define EVENT_UPDATE 3
|
||||
@@ -65,21 +63,15 @@
|
||||
#define EVENT_PREMEMOPACK 13
|
||||
#define EVENT_POSTMEMOPACK 14
|
||||
|
||||
/*
|
||||
* Trigger Toggle Values
|
||||
*/
|
||||
/* Trigger Toggle Values */
|
||||
#define TRIGGER_ENABLE 1
|
||||
#define TRIGGER_DISABLE 2
|
||||
#define TRIGGER_REMOVE 3
|
||||
#define TRIGGER_INSTALL 4
|
||||
#define TRIGGER_PENDING 5 /* Internal Use Only */
|
||||
|
||||
|
||||
/*
|
||||
* sx_File2Blob() actions
|
||||
*/
|
||||
/* sx_File2Blob() actions */
|
||||
#define BLOB_FILECOMPRESS 1
|
||||
#define BLOB_FILEENCRYPT 2
|
||||
|
||||
|
||||
#endif /* HB_SIX_DEF_CH_ */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* header file for SIX compatible functions
|
||||
* Header file for SIX compatible functions
|
||||
*
|
||||
* Copyright 2005 Przemyslaw Czerpak <druzus@acn.waw.pl>
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* platform independent task system. It's used when when OS does not
|
||||
* support threads
|
||||
* Platform independent task system. It's used when when OS does not
|
||||
* support threads
|
||||
*
|
||||
* Copyright 2009 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* header file with MT mode constant values
|
||||
* Header file with MT mode constant values
|
||||
*
|
||||
* Copyright 2008 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* header file with MT mode functions
|
||||
* Header file with MT mode functions
|
||||
*
|
||||
* Copyright 2008 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
@@ -365,7 +365,7 @@ typedef HB_THREAD_STARTFUNC( PHB_THREAD_STARTFUNC );
|
||||
|
||||
extern HB_EXPORT void hb_threadReleaseCPU( void );
|
||||
|
||||
/* atomic oprtations */
|
||||
/* atomic operations */
|
||||
extern HB_EXPORT void hb_atomic_set( volatile HB_COUNTER * pCounter, HB_COUNTER value );
|
||||
extern HB_EXPORT HB_COUNTER hb_atomic_get( volatile HB_COUNTER * pCounter );
|
||||
extern HB_EXPORT void hb_atomic_inc( volatile HB_COUNTER * pCounter );
|
||||
|
||||
@@ -48,9 +48,7 @@
|
||||
#ifndef HB_TRACE_CH_
|
||||
#define HB_TRACE_CH_
|
||||
|
||||
/*
|
||||
* Tracing levels.
|
||||
*/
|
||||
/* Tracing levels. */
|
||||
#define HB_TR_ALWAYS 0
|
||||
#define HB_TR_FATAL 1
|
||||
#define HB_TR_ERROR 2
|
||||
@@ -64,16 +62,12 @@
|
||||
#define HB_TR_ALWAYS HB_TR_LAST
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Default tracing level.
|
||||
*/
|
||||
/* Default tracing level. */
|
||||
#define HB_TR_DEFAULT HB_TR_WARNING
|
||||
|
||||
/*
|
||||
* If we compiled without specifying a -DHB_TR_LEVEL, use the value
|
||||
/* If we compiled without specifying a -DHB_TR_LEVEL, use the value
|
||||
* for HB_TR_DEFAULT.
|
||||
*/
|
||||
|
||||
#ifdef HB_TR_LEVEL_ALWAYS
|
||||
#define HB_TR_LEVEL HB_TR_ALWAYS
|
||||
#endif
|
||||
@@ -99,7 +93,7 @@
|
||||
|
||||
#xtranslate HB_TRACE_STEALTH( <l>, <x,...> ) => HB_TRACE( <l>, <x> )
|
||||
#xtranslate HB_TRACE( <l>, ( <x,...> ) ) => HB_TRACE( <l>, <x> )
|
||||
#xtranslate HB_TRACE( <l>, <x,...> ) => ;
|
||||
#xtranslate HB_TRACE( <l>, <x,...> ) => ;
|
||||
iif( HB_TR_LEVEL >= <l>, hb_traceLogAt( <l>, <x> ), )
|
||||
|
||||
#endif /* HB_TRACE_CH_ */
|
||||
|
||||
@@ -153,7 +153,7 @@ HB_EXTERN_BEGIN
|
||||
#define HB_TRACE(l, x) HB_ECHO_TRACE_##l(x)
|
||||
|
||||
/* NOTE: This will print tracing info without changing current
|
||||
* filename/linenum information - this is usefull if we want to
|
||||
* filename/linenum information - this is useful if we want to
|
||||
* trace the source of unreleased memory blocks
|
||||
*/
|
||||
#define HB_ECHO_STEALTH( l, x ) do \
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/* Movement and positioning methods */
|
||||
#define UR_BOF 1
|
||||
#define UR_EOF 2
|
||||
@@ -158,7 +157,7 @@
|
||||
#define UR_READDBHEADER 92
|
||||
#define UR_WRITEDBHEADER 93
|
||||
|
||||
/* non WorkArea functions */
|
||||
/* non WorkArea functions */
|
||||
#define UR_INIT 94
|
||||
#define UR_EXIT 95
|
||||
#define UR_DROP 96
|
||||
|
||||
@@ -77,7 +77,7 @@ extern HB_EXPORT PHB_SYMB hb_vmProcessDynLibSymbols( PHB_SYMB pSymbols, HB_USHOR
|
||||
{
|
||||
PHB_SYMB pModuleSymbols; /* pointer to module symbol table */
|
||||
HB_USHORT uiModuleSymbols; /* number of symbols on that table */
|
||||
HB_USHORT uiStaticsOffset; /* ofset of statics base symbol */
|
||||
HB_USHORT uiStaticsOffset; /* offset of statics base symbol */
|
||||
struct _HB_SYMBOLS * pNext; /* pointer to the next SYMBOLS structure */
|
||||
HB_SYMBOLSCOPE hScope; /* scope collected from all symbols in module used to speed initialization code */
|
||||
void * hDynLib; /* handler to dynamic library */
|
||||
@@ -135,7 +135,7 @@ extern HB_EXPORT HB_BOOL hb_vmIsReady( void );
|
||||
#define HB_BREAK_REQUESTED 2 /* break to nearest RECOVER/END sequence */
|
||||
#define HB_ENDPROC_REQUESTED 4 /* immediately return from procedure (error handler in macro evaluation) */
|
||||
#ifdef _HB_API_INTERNAL_
|
||||
#define HB_VMSTACK_REQUESTED 0x100 /* inetrnel flag to signal thread local stack */
|
||||
#define HB_VMSTACK_REQUESTED 0x100 /* internal flag to signal thread local stack */
|
||||
#endif
|
||||
|
||||
/* Public PCode functions */
|
||||
|
||||
@@ -177,7 +177,7 @@ struct _HB_SYMB;
|
||||
typedef void HB_STACK;
|
||||
|
||||
/*
|
||||
* The first version reduce the number of modification in existing 3-rd
|
||||
* The first version reduce the number of modification in existing 3rd
|
||||
* party code but in longer terms I'd prefer to disable it and left
|
||||
* only the second one where PHB_DYNS is mapped to void*.
|
||||
* This will allow us to fully redesign dynamic symbol internals
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
*
|
||||
* WinCE compatibility header
|
||||
*
|
||||
* Copyright 2007 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
#define HB_STRNCAT( dst, src, len ) hb_wstrncat( dst, src, len )
|
||||
#define HB_STRCMP( s1, s2 ) hb_wstrcmp( s1, s2 )
|
||||
#define HB_STRNCMP( s1, s2, len ) hb_wstrncmp( s1, s2, len )
|
||||
#define HB_FSNAMECONV( fname, pfree ) ( ( LPCTSTR ) ( *(pfree) = hb_fsNameConvU16( fname ) ) )
|
||||
#define HB_FSNAMECONV( fname, pfree ) ( ( LPCTSTR ) ( *( pfree ) = hb_fsNameConvU16( fname ) ) )
|
||||
#define HB_CHARDUP( str ) hb_osStrU16Encode( str )
|
||||
#define HB_CHARDUPN( str, len ) hb_osStrU16EncodeN( str, len )
|
||||
#define HB_OSSTRDUP( str ) hb_osStrU16Decode( str )
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
int WINAPI WinMain( HINSTANCE hInstance, /* handle to current instance */
|
||||
HINSTANCE hPrevInstance, /* handle to previous instance */
|
||||
HB_LPSTR lpCmdLine, /* pointer to command line */
|
||||
HB_LPSTR lpCmdLine, /* pointer to command-line */
|
||||
int iCmdShow ) /* show state of window */
|
||||
{
|
||||
int iErrorCode;
|
||||
|
||||
@@ -86,7 +86,7 @@ extern HB_EXPORT HB_BOOL hb_xvmSwitchGet( PHB_ITEM * );
|
||||
|
||||
extern HB_EXPORT void hb_xvmSetLine( HB_USHORT uiLine ); /* set .prg line number information */
|
||||
|
||||
extern HB_EXPORT void hb_xvmFrame( int iLocals, int iParams ); /* increases the stack pointer for the amount of locals and params suplied */
|
||||
extern HB_EXPORT void hb_xvmFrame( int iLocals, int iParams ); /* increases the stack pointer for the amount of locals and params supplied */
|
||||
extern HB_EXPORT void hb_xvmVFrame( int iLocals, int iParams ); /* increases the stack pointer for the amount of locals and variable params */
|
||||
extern HB_EXPORT void hb_xvmSFrame( PHB_SYMB pSymbol );
|
||||
extern HB_EXPORT void hb_xvmStatics( PHB_SYMB pSymbol, HB_USHORT uiStatics );
|
||||
@@ -110,8 +110,8 @@ extern HB_EXPORT void hb_xvmPushBlockLarge( const HB_BYTE * pCode, PHB_SYMB p
|
||||
extern HB_EXPORT void hb_xvmPushSelf( void );
|
||||
extern HB_EXPORT void hb_xvmPushVParams( void );
|
||||
extern HB_EXPORT void hb_xvmPushAParams( void );
|
||||
extern HB_EXPORT void hb_xvmPushLocal( HB_SHORT iLocal ); /* pushes the containts of a local onto the stack */
|
||||
extern HB_EXPORT void hb_xvmPushLocalByRef( HB_SHORT iLocal ); /* pushes a local by refrence onto the stack */
|
||||
extern HB_EXPORT void hb_xvmPushLocal( HB_SHORT iLocal ); /* pushes the content of a local onto the stack */
|
||||
extern HB_EXPORT void hb_xvmPushLocalByRef( HB_SHORT iLocal ); /* pushes a local by reference onto the stack */
|
||||
extern HB_EXPORT void hb_xvmPopLocal( HB_SHORT iLocal ); /* pops the stack latest value onto a local */
|
||||
extern HB_EXPORT HB_BOOL hb_xvmPushField( PHB_SYMB pSymbol );
|
||||
extern HB_EXPORT HB_BOOL hb_xvmPopField( PHB_SYMB pSymbol );
|
||||
@@ -131,7 +131,7 @@ extern HB_EXPORT HB_BOOL hb_xvmSwapAlias( void ); /* swaps item
|
||||
extern HB_EXPORT HB_BOOL hb_xvmLocalAddInt( int iLocal, HB_LONG lAdd ); /* add integer to given local variable */
|
||||
extern HB_EXPORT HB_BOOL hb_xvmLocalInc( int iLocal ); /* increment given local variable */
|
||||
extern HB_EXPORT HB_BOOL hb_xvmLocalDec( int iLocal ); /* decrement given local variable */
|
||||
extern HB_EXPORT HB_BOOL hb_xvmLocalIncPush( int iLocal ); /* increment given local variable and pussh it on HVM stack */
|
||||
extern HB_EXPORT HB_BOOL hb_xvmLocalIncPush( int iLocal ); /* increment given local variable and push it on HVM stack */
|
||||
|
||||
extern HB_EXPORT HB_BOOL hb_xvmAnd( void );
|
||||
extern HB_EXPORT HB_BOOL hb_xvmOr( void );
|
||||
@@ -154,7 +154,7 @@ extern HB_EXPORT HB_BOOL hb_xvmInstring( void ); /* check whet
|
||||
extern HB_EXPORT HB_BOOL hb_xvmPlus( void ); /* sums the latest two values on the stack, removes them and leaves the result */
|
||||
extern HB_EXPORT HB_BOOL hb_xvmPlusEq( void );
|
||||
extern HB_EXPORT HB_BOOL hb_xvmPlusEqPop( void );
|
||||
extern HB_EXPORT HB_BOOL hb_xvmMinus( void ); /* substracts the latest two values on the stack, removes them and leaves the result */
|
||||
extern HB_EXPORT HB_BOOL hb_xvmMinus( void ); /* subtracts the latest two values on the stack, removes them and leaves the result */
|
||||
extern HB_EXPORT HB_BOOL hb_xvmMinusEq( void );
|
||||
extern HB_EXPORT HB_BOOL hb_xvmMinusEqPop( void );
|
||||
extern HB_EXPORT HB_BOOL hb_xvmMult( void ); /* multiplies the latest two values on the stack, removes them and leaves the result */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* dynamic reference to ZLIB functions
|
||||
* Dynamic reference to ZLIB functions
|
||||
*
|
||||
* Copyright 2013 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
|
||||
355
include/inkey.ch
355
include/inkey.ch
@@ -62,7 +62,7 @@
|
||||
#define INKEY_MMIDDLE 32 /* Harbour extension middle button mask */
|
||||
#define INKEY_MWHEEL 64 /* Harbour extension mouse wheel mask */
|
||||
#define INKEY_KEYBOARD 128
|
||||
#define INKEY_ALL 255
|
||||
#define INKEY_ALL ( INKEY_KEYBOARD + INKEY_MOVE + INKEY_LDOWN + INKEY_LUP + INKEY_RDOWN + INKEY_RUP + INKEY_MMIDDLE + INKEY_MWHEEL )
|
||||
|
||||
#define HB_INKEY_RAW 256 /* Harbour extension */
|
||||
#define HB_INKEY_GTEVENT 1024 /* Harbour extension */
|
||||
@@ -103,160 +103,160 @@
|
||||
|
||||
/* Cursor movement keys */
|
||||
|
||||
#define K_UP 5 /* Up arrow, Ctrl-E */
|
||||
#define K_DOWN 24 /* Down arrow, Ctrl-X */
|
||||
#define K_LEFT 19 /* Left arrow, Ctrl-S */
|
||||
#define K_RIGHT 4 /* Right arrow, Ctrl-D */
|
||||
#define K_HOME 1 /* Home, Ctrl-A */
|
||||
#define K_END 6 /* End, Ctrl-F */
|
||||
#define K_PGUP 18 /* PgUp, Ctrl-R */
|
||||
#define K_PGDN 3 /* PgDn, Ctrl-C */
|
||||
#define K_UP 5 /* Up arrow, Ctrl-E */
|
||||
#define K_DOWN 24 /* Down arrow, Ctrl-X */
|
||||
#define K_LEFT 19 /* Left arrow, Ctrl-S */
|
||||
#define K_RIGHT 4 /* Right arrow, Ctrl-D */
|
||||
#define K_HOME 1 /* Home, Ctrl-A */
|
||||
#define K_END 6 /* End, Ctrl-F */
|
||||
#define K_PGUP 18 /* PgUp, Ctrl-R */
|
||||
#define K_PGDN 3 /* PgDn, Ctrl-C */
|
||||
|
||||
#define K_CTRL_UP 397 /* * Ctrl-Up arrow */
|
||||
#define K_CTRL_DOWN 401 /* * Ctrl-Down arrow */
|
||||
#define K_CTRL_LEFT 26 /* Ctrl-Left arrow, Ctrl-Z */
|
||||
#define K_CTRL_RIGHT 2 /* Ctrl-Right arrow, Ctrl-B */
|
||||
#define K_CTRL_HOME 29 /* Ctrl-Home, Ctrl-] */
|
||||
#define K_CTRL_END 23 /* Ctrl-End, Ctrl-W */
|
||||
#define K_CTRL_PGUP 31 /* Ctrl-PgUp, Ctrl-Hyphen */
|
||||
#define K_CTRL_PGDN 30 /* Ctrl-PgDn, Ctrl-^ */
|
||||
#define K_CTRL_UP 397 /* * Ctrl-Up arrow */
|
||||
#define K_CTRL_DOWN 401 /* * Ctrl-Down arrow */
|
||||
#define K_CTRL_LEFT 26 /* Ctrl-Left arrow, Ctrl-Z */
|
||||
#define K_CTRL_RIGHT 2 /* Ctrl-Right arrow, Ctrl-B */
|
||||
#define K_CTRL_HOME 29 /* Ctrl-Home, Ctrl-] */
|
||||
#define K_CTRL_END 23 /* Ctrl-End, Ctrl-W */
|
||||
#define K_CTRL_PGUP 31 /* Ctrl-PgUp, Ctrl-Hyphen */
|
||||
#define K_CTRL_PGDN 30 /* Ctrl-PgDn, Ctrl-^ */
|
||||
|
||||
#define K_ALT_UP 408 /* * Alt-Up arrow */
|
||||
#define K_ALT_DOWN 416 /* * Alt-Down arrow */
|
||||
#define K_ALT_LEFT 411 /* * Alt-Left arrow */
|
||||
#define K_ALT_RIGHT 413 /* * Alt-Right arrow */
|
||||
#define K_ALT_HOME 407 /* * Alt-Home */
|
||||
#define K_ALT_END 415 /* * Alt-End */
|
||||
#define K_ALT_PGUP 409 /* * Alt-PgUp */
|
||||
#define K_ALT_PGDN 417 /* * Alt-PgDn */
|
||||
#define K_ALT_UP 408 /* * Alt-Up arrow */
|
||||
#define K_ALT_DOWN 416 /* * Alt-Down arrow */
|
||||
#define K_ALT_LEFT 411 /* * Alt-Left arrow */
|
||||
#define K_ALT_RIGHT 413 /* * Alt-Right arrow */
|
||||
#define K_ALT_HOME 407 /* * Alt-Home */
|
||||
#define K_ALT_END 415 /* * Alt-End */
|
||||
#define K_ALT_PGUP 409 /* * Alt-PgUp */
|
||||
#define K_ALT_PGDN 417 /* * Alt-PgDn */
|
||||
|
||||
/* Misc. keys */
|
||||
|
||||
#define K_ENTER 13 /* Enter, Ctrl-M */
|
||||
#define K_INTRO 13 /* */
|
||||
#define K_RETURN 13 /* Return, Ctrl-M */
|
||||
#define K_SPACE 32 /* Space bar */
|
||||
#define K_ESC 27 /* Esc, Ctrl-[ */
|
||||
#define K_ENTER 13 /* Enter, Ctrl-M */
|
||||
#define K_INTRO 13 /* */
|
||||
#define K_RETURN 13 /* Return, Ctrl-M */
|
||||
#define K_SPACE 32 /* Space bar */
|
||||
#define K_ESC 27 /* Esc, Ctrl-[ */
|
||||
|
||||
#define K_CTRL_ENTER 10 /* Ctrl-Enter */
|
||||
#define K_CTRL_RETURN 10 /* Ctrl-Return */
|
||||
#define K_CTRL_RET 10 /* Ctrl-Return (Compatibility) */
|
||||
#define K_CTRL_PRTSCR 379 /* * Ctrl-Print Screen */
|
||||
#define K_CTRL_QUESTION 309 /* Ctrl-? */
|
||||
#define K_CTRL_ENTER 10 /* Ctrl-Enter */
|
||||
#define K_CTRL_RETURN 10 /* Ctrl-Return */
|
||||
#define K_CTRL_RET 10 /* Ctrl-Return (Compatibility) */
|
||||
#define K_CTRL_PRTSCR 379 /* * Ctrl-Print Screen */
|
||||
#define K_CTRL_QUESTION 309 /* Ctrl-? */
|
||||
|
||||
#define K_ALT_ENTER 284 /* * Alt-Enter */
|
||||
#define K_ALT_RETURN 284 /* * Alt-Return */
|
||||
#define K_ALT_ESC 257 /* * Alt-Esc */
|
||||
#define K_ALT_ENTER 284 /* * Alt-Enter */
|
||||
#define K_ALT_RETURN 284 /* * Alt-Return */
|
||||
#define K_ALT_ESC 257 /* * Alt-Esc */
|
||||
|
||||
/* Keypad keys */
|
||||
|
||||
#define KP_CENTER 332 /* * Keypad 5 */
|
||||
#define KP_CENTER 332 /* * Keypad 5 */
|
||||
|
||||
#define KP_ALT_ENTER 422 /* * Keypad Alt-Enter */
|
||||
#define KP_ALT_ENTER 422 /* * Keypad Alt-Enter */
|
||||
|
||||
#define KP_CTRL_5 399 /* * Keypad Ctrl-5 */
|
||||
#define KP_CTRL_SLASH 405 /* * Keypad Ctrl-/ */
|
||||
#define KP_CTRL_ASTERISK 406 /* * Keypad Ctrl-* */
|
||||
#define KP_CTRL_MINUS 398 /* * Keypad Ctrl-- */
|
||||
#define KP_CTRL_PLUS 400 /* * Keypad Ctrl-+ */
|
||||
#define KP_CTRL_5 399 /* * Keypad Ctrl-5 */
|
||||
#define KP_CTRL_SLASH 405 /* * Keypad Ctrl-/ */
|
||||
#define KP_CTRL_ASTERISK 406 /* * Keypad Ctrl-* */
|
||||
#define KP_CTRL_MINUS 398 /* * Keypad Ctrl-- */
|
||||
#define KP_CTRL_PLUS 400 /* * Keypad Ctrl-+ */
|
||||
|
||||
#define KP_ALT_5 5 /* * Keypad Alt-5 */
|
||||
#define KP_ALT_SLASH 420 /* * Keypad Alt-/ */
|
||||
#define KP_ALT_ASTERISK 311 /* * Keypad Alt-* */
|
||||
#define KP_ALT_MINUS 330 /* * Keypad Alt-- */
|
||||
#define KP_ALT_PLUS 334 /* * Keypad Alt-+ */
|
||||
#define KP_ALT_5 5 /* * Keypad Alt-5 */
|
||||
#define KP_ALT_SLASH 420 /* * Keypad Alt-/ */
|
||||
#define KP_ALT_ASTERISK 311 /* * Keypad Alt-* */
|
||||
#define KP_ALT_MINUS 330 /* * Keypad Alt-- */
|
||||
#define KP_ALT_PLUS 334 /* * Keypad Alt-+ */
|
||||
|
||||
/* Editing keys */
|
||||
|
||||
#define K_INS 22 /* Ins, Ctrl-V */
|
||||
#define K_DEL 7 /* Del, Ctrl-G */
|
||||
#define K_BS 8 /* Backspace, Ctrl-H */
|
||||
#define K_TAB 9 /* Tab, Ctrl-I */
|
||||
#define K_SH_TAB 271 /* Shift-Tab */
|
||||
#define K_INS 22 /* Ins, Ctrl-V */
|
||||
#define K_DEL 7 /* Del, Ctrl-G */
|
||||
#define K_BS 8 /* Backspace, Ctrl-H */
|
||||
#define K_TAB 9 /* Tab, Ctrl-I */
|
||||
#define K_SH_TAB 271 /* Shift-Tab */
|
||||
|
||||
#define K_CTRL_INS 402 /* * Ctrl-Ins */
|
||||
#define K_CTRL_DEL 403 /* * Ctrl-Del */
|
||||
#define K_CTRL_BS 127 /* Ctrl-Backspace */
|
||||
#define K_CTRL_TAB 404 /* * Ctrl-Tab */
|
||||
#define K_CTRL_INS 402 /* * Ctrl-Ins */
|
||||
#define K_CTRL_DEL 403 /* * Ctrl-Del */
|
||||
#define K_CTRL_BS 127 /* Ctrl-Backspace */
|
||||
#define K_CTRL_TAB 404 /* * Ctrl-Tab */
|
||||
|
||||
#define K_ALT_INS 418 /* * Alt-Ins */
|
||||
#define K_ALT_DEL 419 /* * Alt-Del */
|
||||
#define K_ALT_BS 270 /* * Alt-Backspace */
|
||||
#define K_ALT_TAB 421 /* * Alt-Tab */
|
||||
#define K_ALT_INS 418 /* * Alt-Ins */
|
||||
#define K_ALT_DEL 419 /* * Alt-Del */
|
||||
#define K_ALT_BS 270 /* * Alt-Backspace */
|
||||
#define K_ALT_TAB 421 /* * Alt-Tab */
|
||||
|
||||
#define K_CTRL_SH_TAB 423 /* * Ctrl-Shift-Tab */
|
||||
#define K_SH_BS 423 /* * Shift-Backspace */
|
||||
#define K_CTRL_SH_TAB 423 /* * Ctrl-Shift-Tab */
|
||||
#define K_SH_BS 423 /* * Shift-Backspace */
|
||||
|
||||
/* Control keys */
|
||||
|
||||
#define K_CTRL_A 1 /* Ctrl-A, Home */
|
||||
#define K_CTRL_B 2 /* Ctrl-B, Ctrl-Right arrow */
|
||||
#define K_CTRL_A 1 /* Ctrl-A, Home */
|
||||
#define K_CTRL_B 2 /* Ctrl-B, Ctrl-Right arrow */
|
||||
#define K_CTRL_C 3 /* Ctrl-C, PgDn, Ctrl-ScrollLock */
|
||||
#define K_CTRL_D 4 /* Ctrl-D, Right arrow */
|
||||
#define K_CTRL_E 5 /* Ctrl-E, Up arrow */
|
||||
#define K_CTRL_F 6 /* Ctrl-F, End */
|
||||
#define K_CTRL_G 7 /* Ctrl-G, Del */
|
||||
#define K_CTRL_H 8 /* Ctrl-H, Backspace */
|
||||
#define K_CTRL_I 9 /* Ctrl-I, Tab */
|
||||
#define K_CTRL_J 10 /* Ctrl-J */
|
||||
#define K_CTRL_K 11 /* Ctrl-K */
|
||||
#define K_CTRL_L 12 /* Ctrl-L */
|
||||
#define K_CTRL_M 13 /* Ctrl-M, Return */
|
||||
#define K_CTRL_N 14 /* Ctrl-N */
|
||||
#define K_CTRL_O 15 /* Ctrl-O */
|
||||
#define K_CTRL_P 16 /* Ctrl-P */
|
||||
#define K_CTRL_Q 17 /* Ctrl-Q */
|
||||
#define K_CTRL_R 18 /* Ctrl-R, PgUp */
|
||||
#define K_CTRL_S 19 /* Ctrl-S, Left arrow */
|
||||
#define K_CTRL_T 20 /* Ctrl-T */
|
||||
#define K_CTRL_U 21 /* Ctrl-U */
|
||||
#define K_CTRL_V 22 /* Ctrl-V, Ins */
|
||||
#define K_CTRL_W 23 /* Ctrl-W, Ctrl-End */
|
||||
#define K_CTRL_X 24 /* Ctrl-X, Down arrow */
|
||||
#define K_CTRL_Y 25 /* Ctrl-Y */
|
||||
#define K_CTRL_Z 26 /* Ctrl-Z, Ctrl-Left arrow */
|
||||
#define K_CTRL_D 4 /* Ctrl-D, Right arrow */
|
||||
#define K_CTRL_E 5 /* Ctrl-E, Up arrow */
|
||||
#define K_CTRL_F 6 /* Ctrl-F, End */
|
||||
#define K_CTRL_G 7 /* Ctrl-G, Del */
|
||||
#define K_CTRL_H 8 /* Ctrl-H, Backspace */
|
||||
#define K_CTRL_I 9 /* Ctrl-I, Tab */
|
||||
#define K_CTRL_J 10 /* Ctrl-J */
|
||||
#define K_CTRL_K 11 /* Ctrl-K */
|
||||
#define K_CTRL_L 12 /* Ctrl-L */
|
||||
#define K_CTRL_M 13 /* Ctrl-M, Return */
|
||||
#define K_CTRL_N 14 /* Ctrl-N */
|
||||
#define K_CTRL_O 15 /* Ctrl-O */
|
||||
#define K_CTRL_P 16 /* Ctrl-P */
|
||||
#define K_CTRL_Q 17 /* Ctrl-Q */
|
||||
#define K_CTRL_R 18 /* Ctrl-R, PgUp */
|
||||
#define K_CTRL_S 19 /* Ctrl-S, Left arrow */
|
||||
#define K_CTRL_T 20 /* Ctrl-T */
|
||||
#define K_CTRL_U 21 /* Ctrl-U */
|
||||
#define K_CTRL_V 22 /* Ctrl-V, Ins */
|
||||
#define K_CTRL_W 23 /* Ctrl-W, Ctrl-End */
|
||||
#define K_CTRL_X 24 /* Ctrl-X, Down arrow */
|
||||
#define K_CTRL_Y 25 /* Ctrl-Y */
|
||||
#define K_CTRL_Z 26 /* Ctrl-Z, Ctrl-Left arrow */
|
||||
|
||||
/* Alt keys */
|
||||
|
||||
#define K_ALT_A 286 /* Alt-A */
|
||||
#define K_ALT_B 304 /* Alt-B */
|
||||
#define K_ALT_C 302 /* Alt-C */
|
||||
#define K_ALT_D 288 /* Alt-D */
|
||||
#define K_ALT_E 274 /* Alt-E */
|
||||
#define K_ALT_F 289 /* Alt-F */
|
||||
#define K_ALT_G 290 /* Alt-G */
|
||||
#define K_ALT_H 291 /* Alt-H */
|
||||
#define K_ALT_I 279 /* Alt-I */
|
||||
#define K_ALT_J 292 /* Alt-J */
|
||||
#define K_ALT_K 293 /* Alt-K */
|
||||
#define K_ALT_L 294 /* Alt-L */
|
||||
#define K_ALT_M 306 /* Alt-M */
|
||||
#define K_ALT_N 305 /* Alt-N */
|
||||
#define K_ALT_O 280 /* Alt-O */
|
||||
#define K_ALT_P 281 /* Alt-P */
|
||||
#define K_ALT_Q 272 /* Alt-Q */
|
||||
#define K_ALT_R 275 /* Alt-R */
|
||||
#define K_ALT_S 287 /* Alt-S */
|
||||
#define K_ALT_T 276 /* Alt-T */
|
||||
#define K_ALT_U 278 /* Alt-U */
|
||||
#define K_ALT_V 303 /* Alt-V */
|
||||
#define K_ALT_W 273 /* Alt-W */
|
||||
#define K_ALT_X 301 /* Alt-X */
|
||||
#define K_ALT_Y 277 /* Alt-Y */
|
||||
#define K_ALT_Z 300 /* Alt-Z */
|
||||
#define K_ALT_BACKQUOTE 297 /* Alt-` */
|
||||
#define K_ALT_1 376 /* Alt-1 */
|
||||
#define K_ALT_2 377 /* Alt-2 */
|
||||
#define K_ALT_3 378 /* Alt-3 */
|
||||
#define K_ALT_4 379 /* Alt-4 */
|
||||
#define K_ALT_5 380 /* Alt-5 */
|
||||
#define K_ALT_6 381 /* Alt-6 */
|
||||
#define K_ALT_7 382 /* Alt-7 */
|
||||
#define K_ALT_8 383 /* Alt-8 */
|
||||
#define K_ALT_9 384 /* Alt-9 */
|
||||
#define K_ALT_0 385 /* Alt-0 */
|
||||
#define K_ALT_A 286 /* Alt-A */
|
||||
#define K_ALT_B 304 /* Alt-B */
|
||||
#define K_ALT_C 302 /* Alt-C */
|
||||
#define K_ALT_D 288 /* Alt-D */
|
||||
#define K_ALT_E 274 /* Alt-E */
|
||||
#define K_ALT_F 289 /* Alt-F */
|
||||
#define K_ALT_G 290 /* Alt-G */
|
||||
#define K_ALT_H 291 /* Alt-H */
|
||||
#define K_ALT_I 279 /* Alt-I */
|
||||
#define K_ALT_J 292 /* Alt-J */
|
||||
#define K_ALT_K 293 /* Alt-K */
|
||||
#define K_ALT_L 294 /* Alt-L */
|
||||
#define K_ALT_M 306 /* Alt-M */
|
||||
#define K_ALT_N 305 /* Alt-N */
|
||||
#define K_ALT_O 280 /* Alt-O */
|
||||
#define K_ALT_P 281 /* Alt-P */
|
||||
#define K_ALT_Q 272 /* Alt-Q */
|
||||
#define K_ALT_R 275 /* Alt-R */
|
||||
#define K_ALT_S 287 /* Alt-S */
|
||||
#define K_ALT_T 276 /* Alt-T */
|
||||
#define K_ALT_U 278 /* Alt-U */
|
||||
#define K_ALT_V 303 /* Alt-V */
|
||||
#define K_ALT_W 273 /* Alt-W */
|
||||
#define K_ALT_X 301 /* Alt-X */
|
||||
#define K_ALT_Y 277 /* Alt-Y */
|
||||
#define K_ALT_Z 300 /* Alt-Z */
|
||||
#define K_ALT_BACKQUOTE 297 /* Alt-` */
|
||||
#define K_ALT_1 376 /* Alt-1 */
|
||||
#define K_ALT_2 377 /* Alt-2 */
|
||||
#define K_ALT_3 378 /* Alt-3 */
|
||||
#define K_ALT_4 379 /* Alt-4 */
|
||||
#define K_ALT_5 380 /* Alt-5 */
|
||||
#define K_ALT_6 381 /* Alt-6 */
|
||||
#define K_ALT_7 382 /* Alt-7 */
|
||||
#define K_ALT_8 383 /* Alt-8 */
|
||||
#define K_ALT_9 384 /* Alt-9 */
|
||||
#define K_ALT_0 385 /* Alt-0 */
|
||||
#define K_ALT_MINUS 386
|
||||
#define K_ALT_EQUALS 387 /* * Alt-Equals */
|
||||
#define K_ALT_EQUALS 387 /* * Alt-Equals */
|
||||
#define K_ALT_OSB 282
|
||||
#define K_ALT_CSB 283
|
||||
#define K_ALT_BACKSLASH 299
|
||||
@@ -264,68 +264,67 @@
|
||||
#define K_ALT_QUOTE 296
|
||||
#define K_ALT_COMMA 307
|
||||
#define K_ALT_PERIOD 308
|
||||
#define K_ALT_SLASH 309 /* Alt-Slash (fyi Ctrl-? doesn't
|
||||
work - maybe just under xp?) */
|
||||
#define K_ALT_SLASH 309 /* Alt-Slash (FYI: Ctrl-? doesn't work - maybe just under Windows XP?) */
|
||||
|
||||
/* Function keys */
|
||||
|
||||
#define K_F1 28 /* F1, Ctrl-Backslash */
|
||||
#define K_F2 -1 /* F2 */
|
||||
#define K_F3 -2 /* F3 */
|
||||
#define K_F4 -3 /* F4 */
|
||||
#define K_F5 -4 /* F5 */
|
||||
#define K_F6 -5 /* F6 */
|
||||
#define K_F7 -6 /* F7 */
|
||||
#define K_F8 -7 /* F8 */
|
||||
#define K_F9 -8 /* F9 */
|
||||
#define K_F10 -9 /* F10 */
|
||||
#define K_F11 -40 /* * F11 */
|
||||
#define K_F12 -41 /* * F12 */
|
||||
#define K_F1 28 /* F1, Ctrl-Backslash */
|
||||
#define K_F2 -1 /* F2 */
|
||||
#define K_F3 -2 /* F3 */
|
||||
#define K_F4 -3 /* F4 */
|
||||
#define K_F5 -4 /* F5 */
|
||||
#define K_F6 -5 /* F6 */
|
||||
#define K_F7 -6 /* F7 */
|
||||
#define K_F8 -7 /* F8 */
|
||||
#define K_F9 -8 /* F9 */
|
||||
#define K_F10 -9 /* F10 */
|
||||
#define K_F11 -40 /* * F11 */
|
||||
#define K_F12 -41 /* * F12 */
|
||||
|
||||
/* Control-function keys */
|
||||
|
||||
#define K_CTRL_F1 -20 /* Ctrl-F1 */
|
||||
#define K_CTRL_F2 -21 /* Ctrl-F2 */
|
||||
#define K_CTRL_F3 -22 /* Ctrl-F4 */
|
||||
#define K_CTRL_F4 -23 /* Ctrl-F3 */
|
||||
#define K_CTRL_F5 -24 /* Ctrl-F5 */
|
||||
#define K_CTRL_F6 -25 /* Ctrl-F6 */
|
||||
#define K_CTRL_F7 -26 /* Ctrl-F7 */
|
||||
#define K_CTRL_F8 -27 /* Ctrl-F8 */
|
||||
#define K_CTRL_F9 -28 /* Ctrl-F9 */
|
||||
#define K_CTRL_F10 -29 /* Ctrl-F10 */
|
||||
#define K_CTRL_F11 -44 /* * Ctrl-F11 */
|
||||
#define K_CTRL_F12 -45 /* * Ctrl-F12 */
|
||||
#define K_CTRL_F1 -20 /* Ctrl-F1 */
|
||||
#define K_CTRL_F2 -21 /* Ctrl-F2 */
|
||||
#define K_CTRL_F3 -22 /* Ctrl-F4 */
|
||||
#define K_CTRL_F4 -23 /* Ctrl-F3 */
|
||||
#define K_CTRL_F5 -24 /* Ctrl-F5 */
|
||||
#define K_CTRL_F6 -25 /* Ctrl-F6 */
|
||||
#define K_CTRL_F7 -26 /* Ctrl-F7 */
|
||||
#define K_CTRL_F8 -27 /* Ctrl-F8 */
|
||||
#define K_CTRL_F9 -28 /* Ctrl-F9 */
|
||||
#define K_CTRL_F10 -29 /* Ctrl-F10 */
|
||||
#define K_CTRL_F11 -44 /* * Ctrl-F11 */
|
||||
#define K_CTRL_F12 -45 /* * Ctrl-F12 */
|
||||
|
||||
/* Alt-function keys */
|
||||
|
||||
#define K_ALT_F1 -30 /* Alt-F1 */
|
||||
#define K_ALT_F2 -31 /* Alt-F2 */
|
||||
#define K_ALT_F3 -32 /* Alt-F3 */
|
||||
#define K_ALT_F4 -33 /* Alt-F4 */
|
||||
#define K_ALT_F5 -34 /* Alt-F5 */
|
||||
#define K_ALT_F6 -35 /* Alt-F6 */
|
||||
#define K_ALT_F7 -36 /* Alt-F7 */
|
||||
#define K_ALT_F8 -37 /* Alt-F8 */
|
||||
#define K_ALT_F9 -38 /* Alt-F9 */
|
||||
#define K_ALT_F10 -39 /* Alt-F10 */
|
||||
#define K_ALT_F11 -46 /* * Alt-F11 */
|
||||
#define K_ALT_F12 -47 /* * Alt-F12 */
|
||||
#define K_ALT_F1 -30 /* Alt-F1 */
|
||||
#define K_ALT_F2 -31 /* Alt-F2 */
|
||||
#define K_ALT_F3 -32 /* Alt-F3 */
|
||||
#define K_ALT_F4 -33 /* Alt-F4 */
|
||||
#define K_ALT_F5 -34 /* Alt-F5 */
|
||||
#define K_ALT_F6 -35 /* Alt-F6 */
|
||||
#define K_ALT_F7 -36 /* Alt-F7 */
|
||||
#define K_ALT_F8 -37 /* Alt-F8 */
|
||||
#define K_ALT_F9 -38 /* Alt-F9 */
|
||||
#define K_ALT_F10 -39 /* Alt-F10 */
|
||||
#define K_ALT_F11 -46 /* * Alt-F11 */
|
||||
#define K_ALT_F12 -47 /* * Alt-F12 */
|
||||
|
||||
/* Shift-function keys */
|
||||
|
||||
#define K_SH_F1 -10 /* Shift-F1 */
|
||||
#define K_SH_F2 -11 /* Shift-F2 */
|
||||
#define K_SH_F3 -12 /* Shift-F3 */
|
||||
#define K_SH_F4 -13 /* Shift-F4 */
|
||||
#define K_SH_F5 -14 /* Shift-F5 */
|
||||
#define K_SH_F6 -15 /* Shift-F6 */
|
||||
#define K_SH_F7 -16 /* Shift-F7 */
|
||||
#define K_SH_F8 -17 /* Shift-F8 */
|
||||
#define K_SH_F9 -18 /* Shift-F9 */
|
||||
#define K_SH_F10 -19 /* Shift-F10 */
|
||||
#define K_SH_F11 -42 /* * Shift-F11 */
|
||||
#define K_SH_F12 -43 /* * Shift-F12 */
|
||||
#define K_SH_F1 -10 /* Shift-F1 */
|
||||
#define K_SH_F2 -11 /* Shift-F2 */
|
||||
#define K_SH_F3 -12 /* Shift-F3 */
|
||||
#define K_SH_F4 -13 /* Shift-F4 */
|
||||
#define K_SH_F5 -14 /* Shift-F5 */
|
||||
#define K_SH_F6 -15 /* Shift-F6 */
|
||||
#define K_SH_F7 -16 /* Shift-F7 */
|
||||
#define K_SH_F8 -17 /* Shift-F8 */
|
||||
#define K_SH_F9 -18 /* Shift-F9 */
|
||||
#define K_SH_F10 -19 /* Shift-F10 */
|
||||
#define K_SH_F11 -42 /* * Shift-F11 */
|
||||
#define K_SH_F12 -43 /* * Shift-F12 */
|
||||
|
||||
|
||||
/* key flags used by extended key codes */
|
||||
|
||||
@@ -48,26 +48,26 @@
|
||||
#define _MEMOEDIT_CH
|
||||
|
||||
/* User callback status modes */
|
||||
#define ME_IDLE 0 /* Idle, all keys processed */
|
||||
#define ME_UNKEY 1 /* Unknown key, memo unaltered */
|
||||
#define ME_UNKEYX 2 /* Unknown key, memo altered */
|
||||
#define ME_INIT 3 /* Initialization mode */
|
||||
#define ME_IDLE 0 /* Idle, all keys processed */
|
||||
#define ME_UNKEY 1 /* Unknown key, memo unaltered */
|
||||
#define ME_UNKEYX 2 /* Unknown key, memo altered */
|
||||
#define ME_INIT 3 /* Initialization mode */
|
||||
#ifndef HB_CLP_STRICT
|
||||
#define ME_REQUEST 4 /* Memoedit requests an input from */
|
||||
/* the user function, e.g. after */
|
||||
/* ME_PASTE */ /* Xbase++ extension */
|
||||
#define ME_REQUEST 4 /* MemoEdit() requests an input from */
|
||||
/* the user function, e.g. after */
|
||||
/* ME_PASTE */ /* Xbase++ extension */
|
||||
#endif
|
||||
|
||||
/* User callback return codes */
|
||||
#define ME_DEFAULT 0 /* Perform default action */
|
||||
#define ME_IGNORE 32 /* Ignore unknown key */
|
||||
#define ME_DATA 33 /* Treat unknown key as data */
|
||||
#define ME_TOGGLEWRAP 34 /* Toggle word-wrap mode */
|
||||
#define ME_TOGGLESCROLL 35 /* Toggle scrolling mode */
|
||||
#define ME_WORDRIGHT 100 /* Perform word-right operation */
|
||||
#define ME_BOTTOMRIGHT 101 /* Perform bottom-right operation */
|
||||
#define ME_DEFAULT 0 /* Perform default action */
|
||||
#define ME_IGNORE 32 /* Ignore unknown key */
|
||||
#define ME_DATA 33 /* Treat unknown key as data */
|
||||
#define ME_TOGGLEWRAP 34 /* Toggle word-wrap mode */
|
||||
#define ME_TOGGLESCROLL 35 /* Toggle scrolling mode */
|
||||
#define ME_WORDRIGHT 100 /* Perform word-right operation */
|
||||
#define ME_BOTTOMRIGHT 101 /* Perform bottom-right operation */
|
||||
#ifndef HB_CLP_STRICT
|
||||
#define ME_PASTE 110 /* Paste string into buffer */ /* Xbase++ extension */
|
||||
#define ME_PASTE 110 /* Paste string into buffer */ /* Xbase++ extension */
|
||||
#endif
|
||||
|
||||
/* NOTE: Return codes 1-31 cause MemoEdit() to perform the */
|
||||
|
||||
@@ -71,21 +71,21 @@
|
||||
|
||||
|
||||
/*
|
||||
* This pseudofunction is only document in CL5.3 NG but not implemented
|
||||
* This pseudo-function is only document in CL5.3 NG but not implemented
|
||||
* in Cl*pper
|
||||
*/
|
||||
|
||||
#ifdef HB_COMPAT_C53
|
||||
|
||||
#xtranslate ORDCOND( [FOR <for>] ;
|
||||
[<all:ALL>] [WHILE <while>] ;
|
||||
[EVAL <eval>] [EVERY <every>] ;
|
||||
[RECORD <rec>] [NEXT <next>] ;
|
||||
[<rest:REST>] [<descend: DESCENDING>] ) ;
|
||||
=> ordCondSet( <"for">, <{for}>, ;
|
||||
[<.all.>], <{while}>, ;
|
||||
<{eval}>, <every>, ;
|
||||
RecNo(), <next>, <rec>, ;
|
||||
#xtranslate ORDCOND( [FOR <for>] ;
|
||||
[<all:ALL>] [WHILE <while>] ;
|
||||
[EVAL <eval>] [EVERY <every>] ;
|
||||
[RECORD <rec>] [NEXT <next>] ;
|
||||
[<rest:REST>] [<descend: DESCENDING>] ) ;
|
||||
=> ordCondSet( <"for">, <{for}>, ;
|
||||
[<.all.>], <{while}>, ;
|
||||
<{eval}>, <every>, ;
|
||||
RecNo(), <next>, <rec>, ;
|
||||
[<.rest.>], [<.descend.>] )
|
||||
|
||||
#endif
|
||||
|
||||
@@ -130,4 +130,8 @@
|
||||
#define HB_SET_BASE 100
|
||||
#define HB_SET_COUNT ( _SET_DBCODEPAGE - HB_SET_BASE + 1 )
|
||||
|
||||
#define HB_SET_CASE_MIXED 0
|
||||
#define HB_SET_CASE_LOWER 1
|
||||
#define HB_SET_CASE_UPPER 2
|
||||
|
||||
#endif /* _SET_CH */
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
#ifndef _SETCURS_CH
|
||||
#define _SETCURS_CH
|
||||
|
||||
#define SC_UNDEF -1 /* NOTE: This is a Harbour extension. */
|
||||
#define SC_UNDEF -1 /* NOTE: This is a Harbour extension. */
|
||||
#define SC_NONE 0
|
||||
#define SC_NORMAL 1
|
||||
#define SC_INSERT 2
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
*
|
||||
* Standard PP rules
|
||||
*
|
||||
* Copyright 2006 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
*
|
||||
@@ -621,7 +621,7 @@
|
||||
[BMPOFF X <bX> Y <bY>] => ;
|
||||
SetPos( <row>, <col> ) ;;
|
||||
AAdd( GetList, _GET_( <v>, <(v)>, NIL, <{valid}>, <{when}> ) ) ;;
|
||||
ATail( GetList ):Control := _PushButt_( <cap>, <msg>, <clr>, <{fb}>,;
|
||||
ATail( GetList ):Control := _PushButt_( <cap>, <msg>, <clr>, <{fb}>, ;
|
||||
<{sb}>, <stl>, <sX>, <sY>, <cX>, <cY>, <bmap>, <bX>, <bY> ) ;;
|
||||
ATail( GetList ):reader := {| a, b, c, d | GUIReader( a, b, c, d ) } ;;
|
||||
[ ATail( GetList ):<snd> ;] [ ATail( GetList ):Control:<gsnd> ;] ;
|
||||
@@ -635,7 +635,7 @@
|
||||
SetPos( <top>, <left> ) ;;
|
||||
AAdd( GetList, _GET_( <v>, <(v)>, NIL, <{valid}>, <{when}> ) ) ;;
|
||||
ATail( GetList ):Control := _RadioGrp_( ATail( Getlist ):row, ;
|
||||
ATail( Getlist ):col, <bottom>, <right>, <v>, <buttons>, <cap>,;
|
||||
ATail( Getlist ):col, <bottom>, <right>, <v>, <buttons>, <cap>, ;
|
||||
<msg>, <clr>, <{fb}>, <stl> ) ;;
|
||||
ATail( GetList ):reader := {| a, b, c, d | GUIReader( a, b, c, d ) } ;;
|
||||
[ ATail( GetList ):<snd> ;] [ ATail( GetList ):Control:<gsnd> ;] ;
|
||||
|
||||
@@ -47,14 +47,12 @@
|
||||
#ifndef _TBROWSE_CH
|
||||
#define _TBROWSE_CH
|
||||
|
||||
/* tBrowse ApplyKey() method return codes */
|
||||
#define TBR_EXIT -1
|
||||
/* TBrowse ApplyKey() method return codes */
|
||||
#define TBR_EXIT -1
|
||||
#define TBR_CONTINUE 0
|
||||
#define TBR_EXCEPTION 1
|
||||
|
||||
|
||||
/* tBrowse Styles */
|
||||
|
||||
/* TBrowse styles */
|
||||
#define TBR_APPEND 1
|
||||
#define TBR_APPENDING 2
|
||||
#define TBR_MODIFY 3
|
||||
@@ -62,9 +60,7 @@
|
||||
#define TBR_SIZE 5
|
||||
#define TBR_CUSTOM 6
|
||||
|
||||
|
||||
/* tBcolumn Styles */
|
||||
|
||||
/* TBColumn styles */
|
||||
#define TBC_READWRITE 1
|
||||
#define TBC_MOVE 2
|
||||
#define TBC_SIZE 3
|
||||
|
||||
@@ -46,10 +46,8 @@
|
||||
|
||||
/* DON'T USE THIS FILE FOR NEW HARBOUR C CODE */
|
||||
|
||||
/* -------------------------------------------------------- */
|
||||
/* Warning: VM functionality is not supported by Harbour. */
|
||||
/* All functions will emulate constant failure. */
|
||||
/* -------------------------------------------------------- */
|
||||
/* WARNING: VM functionality is not supported by Harbour.
|
||||
All functions will emulate constant failure. */
|
||||
|
||||
#ifndef _VM_API
|
||||
#define _VM_API
|
||||
|
||||
Reference in New Issue
Block a user