diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 895b31a7a0..e2b6441fb7 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,134 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2007-10-16 12:50 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * source/rtl/isprint.c + ! Fixed ISPRINTER() on Win32 after last changes. + Thanks Guillermo, pls test now. + + * source/rdd/dbcmd.c + ! Marked as HB_EXTENSION: FIELDLEN(), FIELDDEC(), FIELDTYPE() + + * include/hbextern.ch + * source/rdd/dbcmd.c + ! Marked as HB_EXTENSION: DBDROP(), DBEXISTS(), RDDINFO() + (they were properly marked in hbextern.ch but not in source) + + * include/hbextern.ch + * source/rtl/disksphb.c + * source/rtl/fssize.c + * source/rtl/fstemp.c + * source/rtl/inkey.c + * source/rtl/oemansi.c + * source/rtl/philes.c + * source/rtl/setcolor.c + * source/rtl/setfunc.prg + * source/rtl/setkey.c + * source/rtl/shadow.c + * source/rtl/trace.c + * source/rtl/valtostr.c + * source/vm/dynsym.c + + Removed HB_EXTENSION from all the .prg level functions + prefixed with HB_. + (there was a mixed situation here, but there's no need + to mark any HB_ functions as extensions, as it's obvious + by their name. So as a rule, no HB_ prefixed function + should ever be marked as HB_EXTENSION anymore.) + ! Fixed some inconsistencies in HB_EXTENSION between + hbextern.ch and actual sources. + + * source/rtl/tgetlist.prg + * One HB_EXTENSION changed to !HB_C52_STRICT because it + was guarding a bugfix rather than a real extension. + + * source/rtl/gui.prg + * _GetNumCol() is now always strictly compatible. + NOTE added about sloppy C5.3 behaviour. + + * source/rtl/inkey.c + * contrib/xhb/xhb.ch + * contrib/xhb/xhbfunc.c + ! __KEYBOARD() xhb hidden parameter extension moved to + xhb lib. For similar functionality inside Harbour + pls use HB_KEYPUT(). __KEYBOARD is now 100% C5.x + compatible. + + * source/rtl/setfunc.prg + * __SetFunction() extension now uses HB_KEYPUT() instead + of __KEYBOARD() extended parameters. + + * source/compiler/hbfunchk.c + * source/rtl/at.c + ! AT() extra parameters handled when HB_EXTENSION is on + (was !HB_C52_STRICT). (The first extra parameter is + XPP and Flagship compatible. The three parameter version + of this function is called AT3() in CAVO.) + ! TRIM()/RTRIM() extra parameters handled on compiler level + when HB_EXTENSION is on (default). + ! FILE() parameter check turned off in compiler. + (to be C5.x compatible) + + * source/rtl/alert.prg + ! ALERT() Harbour extended parameter (1st parameter type) + is now guarded with HB_EXTENSION instead of HB_C52_STRICT. + + * source/rtl/gete.c + ! GETE[NV]() Harbour extended parameter guarded with HB_EXTENSION. + + * source/vm/proc.c + ! PROCFILE() Harbour extended parameter guarded with HB_EXTENSION. + + * source/rtl/mlcfunc.c + ! Harbour extended parameters for MEMOLINE()/MLCOUNT()/ + MLPOS()/MLCTOPOS()/MPOSTOLC() are now guarded with HB_EXTENSION + (instead of HB_C52_STRICT). It seems to be possible to + specify custom EOLs for all these functions. (Maybe simple + automatic Unix/Win EOL style handling would be better here) + + * source/vm/memvars.c + ! Guarded Harbour extension in __MVRESTORE() with HB_EXTENSION. + + ; After this cleanup: + - HB_EXTENSION is marking extra features living inside existing C5.x + functions or classes, or Harbour extension functions + not complying with the HB_ prefix rule (we have six + such functions in RDD). If there are more extended + parameters in Harbour pls mark them with HB_EXTENSION + too. + - HB_C52_STRICT is guarding bugfixes compared to C5.x. + - No HB_ functions are guarded with HB_EXTENSION anymore. + - We'd pbly need to review each HB_EXTENSIONs to check whether they + are safe or not. + - A list of HB_EXTENSIONs: + - MLCOUNT() + MEMOLINE() + MLPOS() + MLCPOS() + MPOSTOLC() - 5th and up can specify custom EOLs. + - ALERT() - 1st parameter type can be any type in Harbour, char only in C5.x + - SET FUNCTION TO + __SETFUNCTION - 2nd parameter can be numeric or array of numeric in Harbour. + - SETKEY() - 3rd codeblock parameter ("isactive" block) + - SAVESCREEN() - 5th parameter: lNoCheck (?) + RESTSCREEN() - 6th parameter: lNoCheck (?) + - AT() - 3rd and 4th parameters to set search range. 3rd parameter is + also supported by XPP and FS. Results in compiler error in C5.x. + (CAVO uses AT2() and AT3() for extended versions.) + - TRIM() + RTRIM() - 2nd parameter is an extension regarding space trimming mode. + Results in compiler error in C5.x. + - ALLTRIM() - 2nd parameter is an extension regarding space trimming mode. + - GETE() + GETENV() - 2nd parameter specifies a default value. Can be found in HB_GETENV(). + - PROCFILE() - 1st parameter is a Harbour extension. Undocumented function in C5.x. + The extension looks similar to the one found in Flagship. + - __MVRESTORE() - 3rd/4th parameters are Harbour extensions to set variable name + mask. Redirected from the internal 5.x function named __MRESTORE(). + - DB*() - cRDD, nConnection, cCodePage extra parameters in many DB*() functions. + TOFIX: None of them is marked as HB_EXTENSION. + - SET()s - These are not marked as HB_EXTENSION. + - ? - Is there anything else? + 2007-10-16 09:29 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * include/hbextern.ch * source/rtl/gete.c diff --git a/harbour/contrib/xhb/xhb.ch b/harbour/contrib/xhb/xhb.ch index e67ac4659a..1b9fbb8f4f 100644 --- a/harbour/contrib/xhb/xhb.ch +++ b/harbour/contrib/xhb/xhb.ch @@ -60,6 +60,8 @@ #ifndef __XHARBOUR__ #pragma -ks+ REQUEST XHB_LIB + + #xtranslate __Keyboard([]) => xhb__Keyboard() #endif #endif /* __HARBOUR__ */ diff --git a/harbour/contrib/xhb/xhbfunc.c b/harbour/contrib/xhb/xhbfunc.c index 92fea42f71..093245a67e 100644 --- a/harbour/contrib/xhb/xhbfunc.c +++ b/harbour/contrib/xhb/xhbfunc.c @@ -53,6 +53,36 @@ #include "hbapi.h" #include "hbapiitm.h" +HB_FUNC_EXTERN( __KEYBOARD ); + +HB_FUNC( XHB__KEYBOARD ) +{ + if( ISCHAR( 1 ) ) + { + HB_FUNC_EXEC( __KEYBOARD ); + } + else if( ISNUM( 1 ) ) + { + hb_inkeyReset(); + hb_inkeyPut( hb_parni(1) ); + } + else if( ISARRAY( 1 ) ) + { + PHB_ITEM pArray = hb_param( 1, HB_IT_ARRAY ); + ULONG ulElements = hb_arrayLen( pArray ), ulIndex; + + hb_inkeyReset(); + + for( ulIndex = 1; ulIndex <= ulElements; ulIndex++ ) + { + if( hb_arrayGetType( pArray, ulIndex ) & HB_IT_NUMERIC ) + hb_inkeyPut( hb_arrayGetNI( pArray, ulIndex ) ); + } + } + else + hb_inkeyReset(); +} + HB_FUNC_EXTERN( HB_DESERIALIZE ); HB_FUNC( HB_DESERIALBEGIN ) diff --git a/harbour/include/hbextern.ch b/harbour/include/hbextern.ch index 5bd5c410ef..f10ea510ae 100644 --- a/harbour/include/hbextern.ch +++ b/harbour/include/hbextern.ch @@ -334,254 +334,13 @@ EXTERNAL VERSION EXTERNAL WORD EXTERNAL YEAR -/* Harbour extensions, always on */ +/* Harbour extensions */ +#ifdef HB_EXTENSION EXTERNAL DBDROP EXTERNAL DBEXISTS EXTERNAL RDDINFO - -EXTERNAL HB_ARGC -EXTERNAL HB_ARGCHECK -EXTERNAL HB_ARGSTRING -EXTERNAL HB_ARGV -EXTERNAL HB_COLORINDEX -EXTERNAL HB_COMPILER -EXTERNAL HB_PCODEVER -EXTERNAL HB_BUILDDATE -EXTERNAL HB_FNAMEMERGE -EXTERNAL HB_FNAMESPLIT -EXTERNAL HB_LANGNAME -EXTERNAL HB_LANGSELECT -EXTERNAL HB_LANGERRMSG -EXTERNAL HB_LANGMESSAGE -#ifndef HB_CDP_SUPPORT_OFF -EXTERNAL HB_SETCODEPAGE -EXTERNAL HB_TRANSLATE -EXTERNAL HB_CDPLIST -EXTERNAL HB_STRTOUTF8 -EXTERNAL HB_UTF8TOSTR -EXTERNAL HB_UTF8LEN -EXTERNAL HB_UTF8LEFT -EXTERNAL HB_UTF8RIGHT -EXTERNAL HB_UTF8PEEK -EXTERNAL HB_UTF8POKE -EXTERNAL HB_UTF8STUFF -EXTERNAL HB_UTF8SUBSTR -EXTERNAL HB_UTF8STRTRAN #endif -EXTERNAL HB_ISARRAY -EXTERNAL HB_ISBLOCK -EXTERNAL HB_ISCHAR -EXTERNAL HB_ISDATE -EXTERNAL HB_ISHASH -EXTERNAL HB_ISLOGICAL -EXTERNAL HB_ISMEMO -EXTERNAL HB_ISNIL -EXTERNAL HB_ISNULL -EXTERNAL HB_ISNUMERIC -EXTERNAL HB_ISOBJECT -EXTERNAL HB_ISPOINTER -EXTERNAL HB_ISSTRING -EXTERNAL HB_ISSYMBOL - -EXTERNAL HB_IDLEADD -EXTERNAL HB_IDLEDEL -EXTERNAL HB_IDLERESET -EXTERNAL HB_IDLESLEEP -EXTERNAL HB_IDLESTATE -EXTERNAL HB_RELEASECPU - -EXTERNAL HB_OSNEWLINE -EXTERNAL HB_APARAMS -EXTERNAL HB_PVALUE -EXTERNAL HB_FORNEXT -EXTERNAL HB_EXECFROMARRAY -EXTERNAL HB_METHODNAME -EXTERNAL HB_SETMACRO -EXTERNAL HB_STOD -EXTERNAL HB_WILDMATCH -EXTERNAL HB_CLOCKS2SECS -EXTERNAL HB_MATHERMODE -EXTERNAL HB_MATHERBLOCK -EXTERNAL HB_SERIALIZE -EXTERNAL HB_DESERIALIZE -EXTERNAL HB_HEXTONUM -EXTERNAL HB_NUMTOHEX -EXTERNAL HB_HEXTOSTR -EXTERNAL HB_STRTOHEX -EXTERNAL HB_ISPRINTER -EXTERNAL HB_GETENV - -EXTERNAL HB_INISETCOMMENT -EXTERNAL HB_INIREAD -EXTERNAL HB_INIWRITE - -EXTERNAL HBCLASS -EXTERNAL HBOBJECT -EXTERNAL HBSCALAR -EXTERNAL HBARRAY -EXTERNAL HBBLOCK -EXTERNAL HBCHARACTER -EXTERNAL HBDATE -EXTERNAL HBLOGICAL -EXTERNAL HBNIL -EXTERNAL HBNUMERIC - -EXTERNAL HB_LIBLOAD -EXTERNAL HB_LIBFREE -EXTERNAL HB_LIBDO -EXTERNAL HB_LIBERROR - -EXTERNAL HB_RANDOM -EXTERNAL HB_RANDOMINT -EXTERNAL HB_RANDOMSEED - -EXTERNAL HB_BITAND -EXTERNAL HB_BITOR -EXTERNAL HB_BITXOR -EXTERNAL HB_BITNOT -EXTERNAL HB_BITSET -EXTERNAL HB_BITRESET -EXTERNAL HB_BITTEST -EXTERNAL HB_BITSHIFT - -EXTERNAL HB_ADLER32 -EXTERNAL HB_CRC -EXTERNAL HB_CRC16 -EXTERNAL HB_CRC32 -EXTERNAL HB_CRCCT -EXTERNAL HB_MD5 -EXTERNAL HB_MD5FILE - -EXTERNAL HB_GTALERT -EXTERNAL HB_GTVERSION -EXTERNAL HB_GTSYS -EXTERNAL HB_GTINFO -EXTERNAL HB_SETDISPCP -EXTERNAL HB_SETKEYCP -EXTERNAL HB_SETTERMCP -EXTERNAL HB_GFXPRIMITIVE -EXTERNAL HB_GFXTEXT - -EXTERNAL HB_GETSTDERR -EXTERNAL HB_GETSTDIN -EXTERNAL HB_GETSTDOUT - -EXTERNAL __DYNSN2PTR -EXTERNAL __DYNSP2NAME - -/* Codepage support */ -EXTERNAL HB_CODEPAGE_BG866 -EXTERNAL HB_CODEPAGE_BGISO -EXTERNAL HB_CODEPAGE_BGMIK -EXTERNAL HB_CODEPAGE_BGWIN -EXTERNAL HB_CODEPAGE_CS852 -EXTERNAL HB_CODEPAGE_CSISO -EXTERNAL HB_CODEPAGE_CSKAM -EXTERNAL HB_CODEPAGE_CSWIN -EXTERNAL HB_CODEPAGE_DE -EXTERNAL HB_CODEPAGE_DEWIN -EXTERNAL HB_CODEPAGE_EL -EXTERNAL HB_CODEPAGE_ELWIN -EXTERNAL HB_CODEPAGE_ES -EXTERNAL HB_CODEPAGE_ESMWIN -EXTERNAL HB_CODEPAGE_ESWIN -EXTERNAL HB_CODEPAGE_FR -EXTERNAL HB_CODEPAGE_HR1250 -EXTERNAL HB_CODEPAGE_HR437 -EXTERNAL HB_CODEPAGE_HR852 -EXTERNAL HB_CODEPAGE_HU852 -EXTERNAL HB_CODEPAGE_HU852S -EXTERNAL HB_CODEPAGE_HUISO -EXTERNAL HB_CODEPAGE_HUISOS -EXTERNAL HB_CODEPAGE_HUWIN -EXTERNAL HB_CODEPAGE_HUWINS -EXTERNAL HB_CODEPAGE_IT437 -EXTERNAL HB_CODEPAGE_IT850 -EXTERNAL HB_CODEPAGE_ITISB -EXTERNAL HB_CODEPAGE_ITISO -EXTERNAL HB_CODEPAGE_LT -EXTERNAL HB_CODEPAGE_PL852 -EXTERNAL HB_CODEPAGE_PLISO -EXTERNAL HB_CODEPAGE_PLMAZ -EXTERNAL HB_CODEPAGE_PLWIN -EXTERNAL HB_CODEPAGE_PT850 -EXTERNAL HB_CODEPAGE_PTISO -EXTERNAL HB_CODEPAGE_RU1251 -EXTERNAL HB_CODEPAGE_RU866 -EXTERNAL HB_CODEPAGE_RUKOI8 -EXTERNAL HB_CODEPAGE_SK852 -EXTERNAL HB_CODEPAGE_SKISO -EXTERNAL HB_CODEPAGE_SKKAM -EXTERNAL HB_CODEPAGE_SKWIN -EXTERNAL HB_CODEPAGE_SL437 -EXTERNAL HB_CODEPAGE_SL852 -EXTERNAL HB_CODEPAGE_SLISO -EXTERNAL HB_CODEPAGE_SLWIN -EXTERNAL HB_CODEPAGE_SRWIN -EXTERNAL HB_CODEPAGE_SV850 -EXTERNAL HB_CODEPAGE_SVCLIP -EXTERNAL HB_CODEPAGE_SVWIN -EXTERNAL HB_CODEPAGE_TR857 -EXTERNAL HB_CODEPAGE_TRWIN -EXTERNAL HB_CODEPAGE_UA1251 -EXTERNAL HB_CODEPAGE_UA866 -EXTERNAL HB_CODEPAGE_UAKOI8 - -/* lang support */ -EXTERNAL HB_LANG_BG866 -EXTERNAL HB_LANG_BGISO -EXTERNAL HB_LANG_BGWIN -EXTERNAL HB_LANG_CA -EXTERNAL HB_LANG_CS852 -EXTERNAL HB_LANG_CSISO -EXTERNAL HB_LANG_CSKAM -EXTERNAL HB_LANG_CSWIN -EXTERNAL HB_LANG_DE -EXTERNAL HB_LANG_DEWIN -EXTERNAL HB_LANG_EL -EXTERNAL HB_LANG_ELWIN -EXTERNAL HB_LANG_EN -EXTERNAL HB_LANG_EO -EXTERNAL HB_LANG_ES -EXTERNAL HB_LANG_ESWIN -EXTERNAL HB_LANG_EU -EXTERNAL HB_LANG_FR -EXTERNAL HB_LANG_GL -EXTERNAL HB_LANG_HE862 -EXTERNAL HB_LANG_HEWIN -EXTERNAL HB_LANG_HR852 -EXTERNAL HB_LANG_HRISO -EXTERNAL HB_LANG_HU852 -EXTERNAL HB_LANG_HUCWI -EXTERNAL HB_LANG_HUISO -EXTERNAL HB_LANG_HUWIN -EXTERNAL HB_LANG_ID -EXTERNAL HB_LANG_IS850 -EXTERNAL HB_LANG_IT -EXTERNAL HB_LANG_KO -EXTERNAL HB_LANG_NL -EXTERNAL HB_LANG_PL852 -EXTERNAL HB_LANG_PLISO -EXTERNAL HB_LANG_PLMAZ -EXTERNAL HB_LANG_PLWIN -EXTERNAL HB_LANG_PT -EXTERNAL HB_LANG_RO -EXTERNAL HB_LANG_RU866 -EXTERNAL HB_LANG_RUKOI8 -EXTERNAL HB_LANG_RUWIN -EXTERNAL HB_LANG_SL437 -EXTERNAL HB_LANG_SL852 -EXTERNAL HB_LANG_SLISO -EXTERNAL HB_LANG_SLWIN -EXTERNAL HB_LANG_SR852 -EXTERNAL HB_LANG_SRISO -EXTERNAL HB_LANG_SRWIN -EXTERNAL HB_LANG_TR857 -EXTERNAL HB_LANG_TRWIN -EXTERNAL HB_LANG_ZHB5 -EXTERNAL HB_LANG_ZHGB - /* HiPer-SEEK / CFTS compatible functions */ @@ -626,8 +385,6 @@ EXTERNAL SX_DECRYPT EXTERNAL SX_DTOP EXTERNAL SX_PTOD - - /* CA-Cl*pper compatible internal functions */ EXTERNAL CLIPPER520 @@ -690,6 +447,20 @@ EXTERNAL __XSAVESCREEN EXTERNAL __DBSQL EXTERNAL __RDDGETTEMPALIAS +EXTERNAL __GETMSGPRF +EXTERNAL __OPGETPRF +EXTERNAL __OPCOUNT +EXTERNAL __SETPROFILER +EXTERNAL __TRACEPRGCALLS + +EXTERNAL __DYNSN2PTR +EXTERNAL __DYNSP2NAME +EXTERNAL __DYNSCOUNT +EXTERNAL __DYNSGETINDEX +EXTERNAL __DYNSGETNAME +EXTERNAL __DYNSISFUN +EXTERNAL __DYNSN2SYM +EXTERNAL __DYNSGETPRF EXTERNAL __CLASSADD EXTERNAL __CLASSH @@ -714,27 +485,6 @@ EXTERNAL __CLSMODMSG EXTERNAL __CLSNEW EXTERNAL __CLSPARENT -EXTERNAL __ERRINHANDLER -EXTERNAL __ERRRT_BASE -EXTERNAL __ERRRT_SBASE -EXTERNAL __HRBRUN -EXTERNAL __HRBLOAD -EXTERNAL __HRBDO -EXTERNAL __HRBUNLOAD -EXTERNAL __HRBGETFU -EXTERNAL __HRBDOFU -EXTERNAL __MVCLEAR -EXTERNAL __MVDBGINFO -EXTERNAL __MVEXIST -EXTERNAL __MVGET -EXTERNAL __MVPRIVATE -EXTERNAL __MVPUBLIC -EXTERNAL __MVPUT -EXTERNAL __MVRELEASE -EXTERNAL __MVRESTORE -EXTERNAL __MVSAVE -EXTERNAL __MVSCOPE -EXTERNAL __MVXRELEASE EXTERNAL __OBJADDDATA EXTERNAL __OBJADDINLINE EXTERNAL __OBJADDMETHOD @@ -756,6 +506,37 @@ EXTERNAL __OBJSENDMSG EXTERNAL __OBJSETVALUELIST EXTERNAL __SENDER +EXTERNAL __PP_INIT +EXTERNAL __PP_PATH +EXTERNAL __PP_RESET +EXTERNAL __PP_ADDRULE +EXTERNAL __PP_PROCESS +EXTERNAL __PP_STDRULES + +EXTERNAL __HRBRUN +EXTERNAL __HRBLOAD +EXTERNAL __HRBDO +EXTERNAL __HRBUNLOAD +EXTERNAL __HRBGETFU +EXTERNAL __HRBDOFU + +EXTERNAL __ERRINHANDLER +EXTERNAL __ERRRT_BASE +EXTERNAL __ERRRT_SBASE + +EXTERNAL __MVCLEAR +EXTERNAL __MVDBGINFO +EXTERNAL __MVEXIST +EXTERNAL __MVGET +EXTERNAL __MVPRIVATE +EXTERNAL __MVPUBLIC +EXTERNAL __MVPUT +EXTERNAL __MVRELEASE +EXTERNAL __MVRESTORE +EXTERNAL __MVSAVE +EXTERNAL __MVSCOPE +EXTERNAL __MVXRELEASE + /* The debugger interface */ EXTERNAL HB_DBG_INVOKEDEBUG @@ -991,26 +772,233 @@ EXTERNAL _TYPEFILE /* Harbour extensions */ -#ifdef HB_EXTENSION +EXTERNAL HB_ARGC +EXTERNAL HB_ARGCHECK +EXTERNAL HB_ARGSTRING +EXTERNAL HB_ARGV +EXTERNAL HB_COLORINDEX +EXTERNAL HB_COMPILER +EXTERNAL HB_PCODEVER +EXTERNAL HB_BUILDDATE +EXTERNAL HB_FNAMEMERGE +EXTERNAL HB_FNAMESPLIT +EXTERNAL HB_LANGNAME +EXTERNAL HB_LANGSELECT +EXTERNAL HB_LANGERRMSG +EXTERNAL HB_LANGMESSAGE +#ifndef HB_CDP_SUPPORT_OFF +EXTERNAL HB_SETCODEPAGE +EXTERNAL HB_TRANSLATE +EXTERNAL HB_CDPLIST +EXTERNAL HB_STRTOUTF8 +EXTERNAL HB_UTF8TOSTR +EXTERNAL HB_UTF8LEN +EXTERNAL HB_UTF8LEFT +EXTERNAL HB_UTF8RIGHT +EXTERNAL HB_UTF8PEEK +EXTERNAL HB_UTF8POKE +EXTERNAL HB_UTF8STUFF +EXTERNAL HB_UTF8SUBSTR +EXTERNAL HB_UTF8STRTRAN +#endif +EXTERNAL HB_ISARRAY +EXTERNAL HB_ISBLOCK +EXTERNAL HB_ISCHAR +EXTERNAL HB_ISDATE +EXTERNAL HB_ISHASH +EXTERNAL HB_ISLOGICAL +EXTERNAL HB_ISMEMO +EXTERNAL HB_ISNIL +EXTERNAL HB_ISNULL +EXTERNAL HB_ISNUMERIC +EXTERNAL HB_ISOBJECT +EXTERNAL HB_ISPOINTER +EXTERNAL HB_ISSTRING +EXTERNAL HB_ISSYMBOL -EXTERNAL __DYNSCOUNT -EXTERNAL __DYNSGETINDEX -EXTERNAL __DYNSGETNAME -EXTERNAL __DYNSISFUN -EXTERNAL __DYNSN2SYM -EXTERNAL __DYNSGETPRF -EXTERNAL __GETMSGPRF -EXTERNAL __OPGETPRF -EXTERNAL __OPCOUNT -EXTERNAL __SETPROFILER -EXTERNAL __TRACEPRGCALLS +EXTERNAL HB_IDLEADD +EXTERNAL HB_IDLEDEL +EXTERNAL HB_IDLERESET +EXTERNAL HB_IDLESLEEP +EXTERNAL HB_IDLESTATE +EXTERNAL HB_RELEASECPU -EXTERNAL __PP_INIT -EXTERNAL __PP_PATH -EXTERNAL __PP_RESET -EXTERNAL __PP_ADDRULE -EXTERNAL __PP_PROCESS -EXTERNAL __PP_STDRULES +EXTERNAL HB_OSNEWLINE +EXTERNAL HB_APARAMS +EXTERNAL HB_PVALUE +EXTERNAL HB_FORNEXT +EXTERNAL HB_EXECFROMARRAY +EXTERNAL HB_METHODNAME +EXTERNAL HB_SETMACRO +EXTERNAL HB_STOD +EXTERNAL HB_WILDMATCH +EXTERNAL HB_CLOCKS2SECS +EXTERNAL HB_MATHERMODE +EXTERNAL HB_MATHERBLOCK +EXTERNAL HB_SERIALIZE +EXTERNAL HB_DESERIALIZE +EXTERNAL HB_HEXTONUM +EXTERNAL HB_NUMTOHEX +EXTERNAL HB_HEXTOSTR +EXTERNAL HB_STRTOHEX +EXTERNAL HB_ISPRINTER +EXTERNAL HB_GETENV + +EXTERNAL HB_INISETCOMMENT +EXTERNAL HB_INIREAD +EXTERNAL HB_INIWRITE + +EXTERNAL HB_LIBLOAD +EXTERNAL HB_LIBFREE +EXTERNAL HB_LIBDO +EXTERNAL HB_LIBERROR + +EXTERNAL HB_RANDOM +EXTERNAL HB_RANDOMINT +EXTERNAL HB_RANDOMSEED + +EXTERNAL HB_BITAND +EXTERNAL HB_BITOR +EXTERNAL HB_BITXOR +EXTERNAL HB_BITNOT +EXTERNAL HB_BITSET +EXTERNAL HB_BITRESET +EXTERNAL HB_BITTEST +EXTERNAL HB_BITSHIFT + +EXTERNAL HB_ADLER32 +EXTERNAL HB_CRC +EXTERNAL HB_CRC16 +EXTERNAL HB_CRC32 +EXTERNAL HB_CRCCT +EXTERNAL HB_MD5 +EXTERNAL HB_MD5FILE + +EXTERNAL HB_GTALERT +EXTERNAL HB_GTVERSION +EXTERNAL HB_GTSYS +EXTERNAL HB_GTINFO +EXTERNAL HB_SETDISPCP +EXTERNAL HB_SETKEYCP +EXTERNAL HB_SETTERMCP +EXTERNAL HB_GFXPRIMITIVE +EXTERNAL HB_GFXTEXT + +EXTERNAL HB_GETSTDERR +EXTERNAL HB_GETSTDIN +EXTERNAL HB_GETSTDOUT + +/* Codepage support */ +EXTERNAL HB_CODEPAGE_BG866 +EXTERNAL HB_CODEPAGE_BGISO +EXTERNAL HB_CODEPAGE_BGMIK +EXTERNAL HB_CODEPAGE_BGWIN +EXTERNAL HB_CODEPAGE_CS852 +EXTERNAL HB_CODEPAGE_CSISO +EXTERNAL HB_CODEPAGE_CSKAM +EXTERNAL HB_CODEPAGE_CSWIN +EXTERNAL HB_CODEPAGE_DE +EXTERNAL HB_CODEPAGE_DEWIN +EXTERNAL HB_CODEPAGE_EL +EXTERNAL HB_CODEPAGE_ELWIN +EXTERNAL HB_CODEPAGE_ES +EXTERNAL HB_CODEPAGE_ESMWIN +EXTERNAL HB_CODEPAGE_ESWIN +EXTERNAL HB_CODEPAGE_FR +EXTERNAL HB_CODEPAGE_HR1250 +EXTERNAL HB_CODEPAGE_HR437 +EXTERNAL HB_CODEPAGE_HR852 +EXTERNAL HB_CODEPAGE_HU852 +EXTERNAL HB_CODEPAGE_HU852S +EXTERNAL HB_CODEPAGE_HUISO +EXTERNAL HB_CODEPAGE_HUISOS +EXTERNAL HB_CODEPAGE_HUWIN +EXTERNAL HB_CODEPAGE_HUWINS +EXTERNAL HB_CODEPAGE_IT437 +EXTERNAL HB_CODEPAGE_IT850 +EXTERNAL HB_CODEPAGE_ITISB +EXTERNAL HB_CODEPAGE_ITISO +EXTERNAL HB_CODEPAGE_LT +EXTERNAL HB_CODEPAGE_PL852 +EXTERNAL HB_CODEPAGE_PLISO +EXTERNAL HB_CODEPAGE_PLMAZ +EXTERNAL HB_CODEPAGE_PLWIN +EXTERNAL HB_CODEPAGE_PT850 +EXTERNAL HB_CODEPAGE_PTISO +EXTERNAL HB_CODEPAGE_RU1251 +EXTERNAL HB_CODEPAGE_RU866 +EXTERNAL HB_CODEPAGE_RUKOI8 +EXTERNAL HB_CODEPAGE_SK852 +EXTERNAL HB_CODEPAGE_SKISO +EXTERNAL HB_CODEPAGE_SKKAM +EXTERNAL HB_CODEPAGE_SKWIN +EXTERNAL HB_CODEPAGE_SL437 +EXTERNAL HB_CODEPAGE_SL852 +EXTERNAL HB_CODEPAGE_SLISO +EXTERNAL HB_CODEPAGE_SLWIN +EXTERNAL HB_CODEPAGE_SRWIN +EXTERNAL HB_CODEPAGE_SV850 +EXTERNAL HB_CODEPAGE_SVCLIP +EXTERNAL HB_CODEPAGE_SVWIN +EXTERNAL HB_CODEPAGE_TR857 +EXTERNAL HB_CODEPAGE_TRWIN +EXTERNAL HB_CODEPAGE_UA1251 +EXTERNAL HB_CODEPAGE_UA866 +EXTERNAL HB_CODEPAGE_UAKOI8 + +/* lang support */ +EXTERNAL HB_LANG_BG866 +EXTERNAL HB_LANG_BGISO +EXTERNAL HB_LANG_BGWIN +EXTERNAL HB_LANG_CA +EXTERNAL HB_LANG_CS852 +EXTERNAL HB_LANG_CSISO +EXTERNAL HB_LANG_CSKAM +EXTERNAL HB_LANG_CSWIN +EXTERNAL HB_LANG_DE +EXTERNAL HB_LANG_DEWIN +EXTERNAL HB_LANG_EL +EXTERNAL HB_LANG_ELWIN +EXTERNAL HB_LANG_EN +EXTERNAL HB_LANG_EO +EXTERNAL HB_LANG_ES +EXTERNAL HB_LANG_ESWIN +EXTERNAL HB_LANG_EU +EXTERNAL HB_LANG_FR +EXTERNAL HB_LANG_GL +EXTERNAL HB_LANG_HE862 +EXTERNAL HB_LANG_HEWIN +EXTERNAL HB_LANG_HR852 +EXTERNAL HB_LANG_HRISO +EXTERNAL HB_LANG_HU852 +EXTERNAL HB_LANG_HUCWI +EXTERNAL HB_LANG_HUISO +EXTERNAL HB_LANG_HUWIN +EXTERNAL HB_LANG_ID +EXTERNAL HB_LANG_IS850 +EXTERNAL HB_LANG_IT +EXTERNAL HB_LANG_KO +EXTERNAL HB_LANG_NL +EXTERNAL HB_LANG_PL852 +EXTERNAL HB_LANG_PLISO +EXTERNAL HB_LANG_PLMAZ +EXTERNAL HB_LANG_PLWIN +EXTERNAL HB_LANG_PT +EXTERNAL HB_LANG_RO +EXTERNAL HB_LANG_RU866 +EXTERNAL HB_LANG_RUKOI8 +EXTERNAL HB_LANG_RUWIN +EXTERNAL HB_LANG_SL437 +EXTERNAL HB_LANG_SL852 +EXTERNAL HB_LANG_SLISO +EXTERNAL HB_LANG_SLWIN +EXTERNAL HB_LANG_SR852 +EXTERNAL HB_LANG_SRISO +EXTERNAL HB_LANG_SRWIN +EXTERNAL HB_LANG_TR857 +EXTERNAL HB_LANG_TRWIN +EXTERNAL HB_LANG_ZHB5 +EXTERNAL HB_LANG_ZHGB EXTERNAL HB_ANSITOOEM EXTERNAL HB_CLRAREA @@ -1125,7 +1113,16 @@ EXTERNAL HB_INETCRLF EXTERNAL HB_INETISSOCKET #endif /* __PLATFORM__DOS */ -#endif /* HB_EXTENSION */ +EXTERNAL HBCLASS +EXTERNAL HBOBJECT +EXTERNAL HBSCALAR +EXTERNAL HBARRAY +EXTERNAL HBBLOCK +EXTERNAL HBCHARACTER +EXTERNAL HBDATE +EXTERNAL HBLOGICAL +EXTERNAL HBNIL +EXTERNAL HBNUMERIC /* FlagShip extension */ diff --git a/harbour/source/compiler/hbfunchk.c b/harbour/source/compiler/hbfunchk.c index 39193644c5..0f6cb7078f 100644 --- a/harbour/source/compiler/hbfunchk.c +++ b/harbour/source/compiler/hbfunchk.c @@ -47,10 +47,10 @@ static HB_FUNCINFO hb_StdFunc[] = { "AADD" , 2, 2 }, { "ABS" , 1, 1 }, { "ASC" , 1, 1 }, -#if defined( HB_C52_STRICT ) - { "AT" , 2, 2 }, -#else +#if defined( HB_EXTENSION ) { "AT" , 2, 4 }, +#else + { "AT" , 2, 2 }, #endif { "BOF" , 0, 0 }, { "BREAK" , 0, 1 }, @@ -72,9 +72,7 @@ static HB_FUNCINFO hb_StdFunc[] = { "EXP" , 1, 1 }, { "FCOUNT" , 0, 0 }, { "FIELDNAME" , 1, 1 }, -#if !defined( HB_C52_STRICT ) { "FILE" , 1, 1 }, -#endif { "FLOCK" , 0, 0 }, { "FOUND" , 0, 0 }, { "INKEY" , 0, 2 }, @@ -99,7 +97,11 @@ static HB_FUNCINFO hb_StdFunc[] = { "RLOCK" , 0, 0 }, { "ROUND" , 2, 2 }, { "ROW" , 0, 0 }, +#if defined( HB_EXTENSION ) { "RTRIM" , 1, 2 }, /* Second parameter is a Harbour extension */ +#else + { "RTRIM" , 1, 1 }, +#endif { "SECONDS" , 0, 0 }, { "SELECT" , 0, 1 }, { "SETPOS" , 2, 2 }, @@ -110,7 +112,11 @@ static HB_FUNCINFO hb_StdFunc[] = { "SUBSTR" , 2, 3 }, { "TIME" , 0, 0 }, { "TRANSFORM" , 2, 2 }, +#if defined( HB_EXTENSION ) { "TRIM" , 1, 2 }, /* Second parameter is a Harbour extension */ +#else + { "TRIM" , 1, 1 }, +#endif { "TYPE" , 1, 1 }, { "UPPER" , 1, 1 }, { "VAL" , 1, 1 }, diff --git a/harbour/source/rdd/dbcmd.c b/harbour/source/rdd/dbcmd.c index 22ad9aaed7..5d3b9f9125 100644 --- a/harbour/source/rdd/dbcmd.c +++ b/harbour/source/rdd/dbcmd.c @@ -884,6 +884,47 @@ HB_FUNC( FCOUNT ) hb_retni( uiFields ); } +HB_FUNC( FIELDGET ) +{ + PHB_ITEM pItem = hb_itemNew( NULL ); + AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer(); + USHORT uiField = hb_parni( 1 ); + + if( pArea && uiField ) + { + SELF_GETVALUE( pArea, uiField, pItem ); + } + + hb_itemReturnForward( pItem ); + hb_itemRelease( pItem ); +} + +#ifdef HB_EXTENSION + +HB_FUNC( FIELDLEN ) +{ + AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer(); + + if( pArea ) + { + USHORT uiIndex; + if( ( uiIndex = hb_parni( 1 ) ) > 0 ) + { + PHB_ITEM pItem = hb_itemNew( NULL ); + + if( SELF_FIELDINFO( pArea, uiIndex, DBS_LEN, pItem ) == SUCCESS ) + { + hb_itemReturnForward( pItem ); + hb_itemRelease( pItem ); + return; + } + hb_itemRelease( pItem ); + } + } + + hb_retni(0); +} + HB_FUNC( FIELDDEC ) { AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer(); @@ -909,33 +950,19 @@ HB_FUNC( FIELDDEC ) hb_retni(0); } -HB_FUNC( FIELDGET ) -{ - PHB_ITEM pItem = hb_itemNew( NULL ); - AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer(); - USHORT uiField = hb_parni( 1 ); - - if( pArea && uiField ) - { - SELF_GETVALUE( pArea, uiField, pItem ); - } - - hb_itemReturnForward( pItem ); - hb_itemRelease( pItem ); -} - -HB_FUNC( FIELDLEN ) +HB_FUNC( FIELDTYPE ) { AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer(); if( pArea ) { USHORT uiIndex; + if( ( uiIndex = hb_parni( 1 ) ) > 0 ) { PHB_ITEM pItem = hb_itemNew( NULL ); - if( SELF_FIELDINFO( pArea, uiIndex, DBS_LEN, pItem ) == SUCCESS ) + if( SELF_FIELDINFO( pArea, uiIndex, DBS_TYPE, pItem ) == SUCCESS ) { hb_itemReturnForward( pItem ); hb_itemRelease( pItem ); @@ -945,9 +972,11 @@ HB_FUNC( FIELDLEN ) } } - hb_retni(0); + hb_retc( NULL ); } +#endif + HB_FUNC( FIELDNAME ) { char * szName; @@ -1004,31 +1033,6 @@ HB_FUNC( FIELDPUT ) } } -HB_FUNC( FIELDTYPE ) -{ - AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer(); - - if( pArea ) - { - USHORT uiIndex; - - if( ( uiIndex = hb_parni( 1 ) ) > 0 ) - { - PHB_ITEM pItem = hb_itemNew( NULL ); - - if( SELF_FIELDINFO( pArea, uiIndex, DBS_TYPE, pItem ) == SUCCESS ) - { - hb_itemReturnForward( pItem ); - hb_itemRelease( pItem ); - return; - } - hb_itemRelease( pItem ); - } - } - - hb_retc( NULL ); -} - HB_FUNC( FLOCK ) { AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer(); @@ -2489,6 +2493,8 @@ HB_FUNC( DBFILEPUT ) } #endif +#ifdef HB_EXTENSION + /*******************************************/ /* here we have the NEW RDD level functions DBDROP, DBEXISTS, RDDINFO */ HB_FUNC( DBDROP ) @@ -2571,6 +2577,8 @@ HB_FUNC( RDDINFO ) } } +#endif + /* __dbTrans( nDstArea, aFieldsStru, bFor, bWhile, nNext, nRecord, lRest ) */ HB_FUNC( __DBTRANS ) { diff --git a/harbour/source/rtl/alert.prg b/harbour/source/rtl/alert.prg index 9f8c14e1e1..27faf406e4 100644 --- a/harbour/source/rtl/alert.prg +++ b/harbour/source/rtl/alert.prg @@ -34,8 +34,7 @@ /* NOTE: Clipper will return NIL if the first parameter is not a string, but this is not documented. This implementation converts the first parameter to a string if another type was passed. You can switch back - to Clipper compatible mode by defining constant - HB_C52_STRICT. [vszakats] */ + to Clipper compatible mode by undefining constant HB_EXTENSION. [vszakats] */ /* NOTE: Clipper handles these buttons { "Ok", "", "Cancel" } in a buggy way. This is fixed. [vszakats] */ @@ -62,15 +61,7 @@ FUNCTION Alert( xMessage, aOptions, cColorNorm, nDelay ) #endif -#ifdef HB_C52_STRICT - - IF !ISCHARACTER( xMessage ) - RETURN NIL - ENDIF - - cMessage := StrTran( xMessage, ";", Chr( 10 ) ) - -#else +#ifdef HB_EXTENSION IF PCount() == 0 RETURN NIL @@ -83,7 +74,7 @@ FUNCTION Alert( xMessage, aOptions, cColorNorm, nDelay ) lFirst := .T. FOR nEval := 1 TO Len( xMessage ) IF ISCHARACTER( cLine := xMessage[ nEval ] ) - cMessage += IIF( lFirst, "", Chr( 10 ) ) + cLine + cMessage += iif( lFirst, "", Chr( 10 ) ) + cLine lFirst := .F. ENDIF NEXT @@ -103,6 +94,14 @@ FUNCTION Alert( xMessage, aOptions, cColorNorm, nDelay ) ENDIF +#else + + IF !ISCHARACTER( xMessage ) + RETURN NIL + ENDIF + + cMessage := StrTran( xMessage, ";", Chr( 10 ) ) + #endif IF !ISARRAY( aOptions ) @@ -133,11 +132,11 @@ FUNCTION Alert( xMessage, aOptions, cColorNorm, nDelay ) #ifdef HB_C52_STRICT /* NOTE: Clipper allows only four options [vszakats] */ ELSEIF Len( aOptionsOK ) > 4 - aSize( aOptionsOK, 4 ) + ASize( aOptionsOK, 4 ) #endif ENDIF - RETURN HB_gtAlert( cMessage, aOptionsOK, cColorNorm, cColorHigh, nDelay ); + RETURN hb_gtAlert( cMessage, aOptionsOK, cColorNorm, cColorHigh, nDelay ); #ifdef HB_C52_UNDOC @@ -148,4 +147,3 @@ PROCEDURE __NONOALERT() RETURN #endif - diff --git a/harbour/source/rtl/at.c b/harbour/source/rtl/at.c index 86e0b4dfb9..32ecd22a50 100644 --- a/harbour/source/rtl/at.c +++ b/harbour/source/rtl/at.c @@ -56,23 +56,7 @@ /* locates a substring in a string */ -#if defined( HB_C52_STRICT ) - -HB_FUNC( AT ) -{ - PHB_ITEM pSub = hb_param( 1, HB_IT_STRING ); - PHB_ITEM pText = hb_param( 2, HB_IT_STRING ); - - if( pText && pSub ) - { - hb_retnl( hb_strAt( hb_itemGetCPtr( pSub ), hb_itemGetCLen( pSub ), - hb_itemGetCPtr( pText ), hb_itemGetCLen( pText ) ) ); - } - else - hb_errRT_BASE_SubstR( EG_ARG, 1108, NULL, "AT", HB_ERR_ARGS_BASEPARAMS ); -} - -#else +#if defined( HB_EXTENSION ) HB_FUNC( AT ) { @@ -103,4 +87,20 @@ HB_FUNC( AT ) hb_errRT_BASE_SubstR( EG_ARG, 1108, NULL, "AT", HB_ERR_ARGS_BASEPARAMS ); } +#else + +HB_FUNC( AT ) +{ + PHB_ITEM pSub = hb_param( 1, HB_IT_STRING ); + PHB_ITEM pText = hb_param( 2, HB_IT_STRING ); + + if( pText && pSub ) + { + hb_retnl( hb_strAt( hb_itemGetCPtr( pSub ), hb_itemGetCLen( pSub ), + hb_itemGetCPtr( pText ), hb_itemGetCLen( pText ) ) ); + } + else + hb_errRT_BASE_SubstR( EG_ARG, 1108, NULL, "AT", HB_ERR_ARGS_BASEPARAMS ); +} + #endif diff --git a/harbour/source/rtl/disksphb.c b/harbour/source/rtl/disksphb.c index bb345e6db0..b1835f91ac 100644 --- a/harbour/source/rtl/disksphb.c +++ b/harbour/source/rtl/disksphb.c @@ -66,8 +66,6 @@ #include #endif -#ifdef HB_EXTENSION - HB_FUNC( HB_DISKSPACE ) { char szPathBuf[ 4 ]; @@ -374,5 +372,3 @@ HB_FUNC( HB_DISKSPACE ) hb_retnlen( dSpace, -1, 0 ); } - -#endif diff --git a/harbour/source/rtl/fssize.c b/harbour/source/rtl/fssize.c index bbf4797e53..b731e9583c 100644 --- a/harbour/source/rtl/fssize.c +++ b/harbour/source/rtl/fssize.c @@ -100,12 +100,8 @@ HB_FOFFSET hb_fsFSize( BYTE * pszFileName, BOOL bUseDirEntry ) return 0; } -#ifdef HB_EXTENSION - HB_FUNC( HB_FSIZE ) { hb_retnint( ISCHAR( 1 ) ? hb_fsFSize( ( BYTE * ) hb_parc( 1 ), ISLOG( 2 ) ? hb_parl( 2 ) : TRUE ) : 0 ); } - -#endif diff --git a/harbour/source/rtl/fstemp.c b/harbour/source/rtl/fstemp.c index 12bf37678b..93b8becde1 100644 --- a/harbour/source/rtl/fstemp.c +++ b/harbour/source/rtl/fstemp.c @@ -243,8 +243,6 @@ HB_EXPORT FHANDLE hb_fsCreateTemp( const BYTE * pszDir, const BYTE * pszPrefix, #endif -#ifdef HB_EXTENSION - HB_FUNC( HB_FTEMPCREATE ) { BYTE szName[ _POSIX_PATH_MAX + 1 ]; @@ -256,5 +254,3 @@ HB_FUNC( HB_FTEMPCREATE ) hb_storc( ( char *) szName, 4 ); } - -#endif diff --git a/harbour/source/rtl/gete.c b/harbour/source/rtl/gete.c index b3dba80549..c5bfe32b02 100644 --- a/harbour/source/rtl/gete.c +++ b/harbour/source/rtl/gete.c @@ -107,7 +107,11 @@ HB_FUNC( GETENV ) { if( szValue ) hb_xfree( szValue ); +#ifdef HB_EXTENSION hb_retc( hb_parc( 2 ) ); +#else + hb_retc( NULL ); +#endif } } else diff --git a/harbour/source/rtl/gui.prg b/harbour/source/rtl/gui.prg index 1aff65e777..b539c6932f 100644 --- a/harbour/source/rtl/gui.prg +++ b/harbour/source/rtl/gui.prg @@ -67,6 +67,10 @@ FUNCTION _SetVideoMode( nMode ) RETURN 0 +/* NOTE: Original _GetNumCol() will not recognize colors written + in lowercase. We're replicating this behaviour in this + compatibility function. [vszakats] */ + FUNCTION _GetNumCol( cColor ) LOCAL nPos @@ -76,9 +80,6 @@ FUNCTION _GetNumCol( cColor ) IF ( nPos := At( ",", cColor ) ) > 0 cColor := Left( cColor, nPos - 1 ) ENDIF - #ifndef HB_C52_STRICT - cColor := Upper( cColor ) - #endif RETURN AScan( { "B", "G", "BG", "R", "RB", "GR", "W", "N+", "B+", "G+", "BG+", "R+", "RB+", "GR+", "W+" }, {| tmp | tmp == cColor } ) diff --git a/harbour/source/rtl/inkey.c b/harbour/source/rtl/inkey.c index 001a6032c0..253912ad1e 100644 --- a/harbour/source/rtl/inkey.c +++ b/harbour/source/rtl/inkey.c @@ -570,26 +570,8 @@ HB_FUNC( __KEYBOARD ) s_StrBufferPos = 0; } } -#if defined( HB_EXTENSION ) - else if( ISNUM( 1 ) ) - { - hb_inkeyPut( hb_parni(1) ); - } - else if( ISARRAY( 1 ) ) - { - PHB_ITEM pArray = hb_param( 1, HB_IT_ARRAY ); - ULONG ulElements = hb_arrayLen( pArray ), ulIndex; - - for( ulIndex = 1; ulIndex <= ulElements; ulIndex++ ) - { - if( hb_arrayGetType( pArray, ulIndex ) & HB_IT_NUMERIC ) - hb_inkeyPut( hb_arrayGetNI( pArray, ulIndex ) ); - } - } -#endif } -#ifdef HB_EXTENSION HB_FUNC( HB_KEYPUT ) { if( ISNUM( 1 ) ) @@ -615,7 +597,6 @@ HB_FUNC( HB_KEYPUT ) } } } -#endif HB_FUNC( NEXTKEY ) { diff --git a/harbour/source/rtl/isprint.c b/harbour/source/rtl/isprint.c index c538388563..a3e79ced7f 100644 --- a/harbour/source/rtl/isprint.c +++ b/harbour/source/rtl/isprint.c @@ -124,19 +124,6 @@ HB_EXPORT BOOL hb_printerIsReady( char * pszPrinterName ) bIsPrinter = FALSE; } -#elif defined(HB_WIN_32_PRINTERS) - - { - HANDLE hPrinter; - - bIsPrinter = FALSE; - if( *pszPrinterName && OpenPrinter( pszPrinterName, &hPrinter, NULL ) ) - { - bIsPrinter = ! IsPrinterError( hPrinter ); - CloseHandle( hPrinter ); - } - } - #else /* NOTE: Platform independent method, at least it will compile and run @@ -172,10 +159,25 @@ HB_FUNC( ISPRINTER ) HB_FUNC( HB_ISPRINTER ) { #if defined(HB_WIN_32_PRINTERS) + + /* NOTE: This Win32 specific bitmap printer support would have to + go somewhere else. [vszakats] */ + char DefaultPrinter[MAXBUFFERSIZE]; DWORD pdwBufferSize = MAXBUFFERSIZE; + HANDLE hPrinter; + char * pszPrinterName; DPGetDefaultPrinter( ( LPTSTR ) &DefaultPrinter, &pdwBufferSize ); - hb_retl( hb_printerIsReady( ISCHAR( 1 ) ? hb_parc( 1 ) : ( char * ) DefaultPrinter ) ); + pszPrinterName = ISCHAR( 1 ) ? hb_parc( 1 ) : ( char * ) DefaultPrinter; + + if( *pszPrinterName && OpenPrinter( pszPrinterName, &hPrinter, NULL ) ) + { + hb_retl( ! IsPrinterError( hPrinter ) ); + CloseHandle( hPrinter ); + } + else + hb_retl( FALSE ); + #else char * pszPrinter = hb_parc( 1 ); hb_retl( hb_printerIsReady( pszPrinter ? pszPrinter : ( char * ) "LPT1" ) ); diff --git a/harbour/source/rtl/mlcfunc.c b/harbour/source/rtl/mlcfunc.c index abe1774e31..db9f2f4404 100644 --- a/harbour/source/rtl/mlcfunc.c +++ b/harbour/source/rtl/mlcfunc.c @@ -149,7 +149,7 @@ static PHB_EOL_INFO hb_mlGetEOLs( int iParam, int * piEOLs ) int iEOLs = 0; char * szEOL; -#ifndef HB_C52_STRICT +#ifdef HB_EXTENSION ULONG ulLen, ul; szEOL = hb_parc( iParam ); diff --git a/harbour/source/rtl/oemansi.c b/harbour/source/rtl/oemansi.c index 07ca879e19..11d6caaf31 100644 --- a/harbour/source/rtl/oemansi.c +++ b/harbour/source/rtl/oemansi.c @@ -58,8 +58,6 @@ #include "hbapi.h" #include "hbapiitm.h" -#ifdef HB_EXTENSION - HB_FUNC( HB_ANSITOOEM ) { PHB_ITEM pString = hb_param( 1, HB_IT_STRING ); @@ -102,8 +100,6 @@ HB_FUNC( HB_OEMTOANSI ) hb_retc( NULL ); } -#endif - #ifdef HB_COMPAT_XPP /* NOTE: Xbase++ compatible function */ diff --git a/harbour/source/rtl/philes.c b/harbour/source/rtl/philes.c index b796898aa0..52328f7e62 100644 --- a/harbour/source/rtl/philes.c +++ b/harbour/source/rtl/philes.c @@ -87,8 +87,6 @@ HB_FUNC( FCREATE ) } } -#ifdef HB_EXTENSION - HB_FUNC( HB_FCREATE ) { if( ISCHAR( 1 ) ) @@ -105,8 +103,6 @@ HB_FUNC( HB_FCREATE ) } } -#endif - HB_FUNC( FREAD ) { PHB_ITEM pBuffer = hb_param( 2, HB_IT_STRING ); @@ -269,8 +265,6 @@ HB_FUNC( CURDIR ) hb_retc( ( char * ) byBuffer ); } -#ifdef HB_EXTENSION - HB_FUNC( HB_FEOF ) { USHORT uiError = 6; @@ -329,5 +323,3 @@ HB_FUNC( HB_OSDRIVESEPARATOR ) hb_retc( NULL ); #endif } - -#endif diff --git a/harbour/source/rtl/setcolor.c b/harbour/source/rtl/setcolor.c index aead353923..3d1f9f2b04 100644 --- a/harbour/source/rtl/setcolor.c +++ b/harbour/source/rtl/setcolor.c @@ -89,8 +89,6 @@ HB_FUNC( SETBLINK ) hb_retl( bPreviousBlink ); } -#ifdef HB_EXTENSION - HB_FUNC( HB_COLORTON ) { if( ISCHAR( 1 ) ) @@ -115,5 +113,3 @@ HB_FUNC( HB_NTOCOLOR ) else hb_retc( "N/N" ); } - -#endif diff --git a/harbour/source/rtl/setfunc.prg b/harbour/source/rtl/setfunc.prg index ca466bffbd..db41ee81af 100644 --- a/harbour/source/rtl/setfunc.prg +++ b/harbour/source/rtl/setfunc.prg @@ -72,7 +72,7 @@ PROCEDURE __SetFunction( nFunctionKey, xKeySeq ) #else IF ISCHARACTER( xKeySeq ) #endif - SetKey( nFunctionKey, {|| __Keyboard( xKeySeq ) } ) + SetKey( nFunctionKey, {|| __Keyboard(), hb_KeyPut( xKeySeq ) } ) ELSE SetKey( nFunctionKey, NIL ) ENDIF diff --git a/harbour/source/rtl/setkey.c b/harbour/source/rtl/setkey.c index 42fbf81457..6ffe26939b 100644 --- a/harbour/source/rtl/setkey.c +++ b/harbour/source/rtl/setkey.c @@ -216,8 +216,6 @@ HB_FUNC( SETKEY ) } } -#if defined( HB_EXTENSION ) - /* Sets the same block for an array of keycodes */ HB_FUNC( HB_SETKEYARRAY ) @@ -344,5 +342,3 @@ HB_FUNC( HB_SETKEYCHECK ) hb_retl( bIsKeySet ); } - -#endif diff --git a/harbour/source/rtl/shadow.c b/harbour/source/rtl/shadow.c index 678e515000..27edf07473 100644 --- a/harbour/source/rtl/shadow.c +++ b/harbour/source/rtl/shadow.c @@ -53,8 +53,6 @@ #include "hbapi.h" #include "hbapigt.h" -#ifdef HB_EXTENSION - HB_FUNC( HB_SHADOW ) { if( hb_pcount() >= 4 ) @@ -75,8 +73,6 @@ HB_FUNC( HB_CLRAREA ) hb_parni( 5 ) ); } -#endif - #ifdef HB_C52_UNDOC HB_FUNC( DBGSHADOW ) diff --git a/harbour/source/rtl/tgetlist.prg b/harbour/source/rtl/tgetlist.prg index d7c43b4edf..3c1473baae 100644 --- a/harbour/source/rtl/tgetlist.prg +++ b/harbour/source/rtl/tgetlist.prg @@ -1238,7 +1238,7 @@ METHOD TBApplyKey( oGet, oTB, nKey, oMenu, aMsg ) CLASS HBGetList oGet:ExitState := GE_UP CASE nKey == K_ENTER -#ifdef HB_EXTENSION +#ifndef HB_C52_STRICT IF !oTb:Stable() oTb:ForceStable() ENDIF diff --git a/harbour/source/rtl/trace.c b/harbour/source/rtl/trace.c index e1e85bb3b7..66a98d0bb6 100644 --- a/harbour/source/rtl/trace.c +++ b/harbour/source/rtl/trace.c @@ -53,8 +53,6 @@ #include "hbapi.h" #include "hbtrace.h" -#ifdef HB_EXTENSION - HB_FUNC( HB_TRACESTATE ) { hb_retni( hb_tracestate( ISNUM( 1 ) ? hb_parni( 1 ) : -1 ) ); @@ -73,5 +71,3 @@ HB_FUNC( HB_TRACESTRING ) HB_TRACE(HB_TR_ALWAYS, (szMessage) ); } } - -#endif diff --git a/harbour/source/rtl/valtostr.c b/harbour/source/rtl/valtostr.c index 202e2d0415..352f430be3 100644 --- a/harbour/source/rtl/valtostr.c +++ b/harbour/source/rtl/valtostr.c @@ -53,8 +53,6 @@ #include "hbapi.h" #include "hbapiitm.h" -#ifdef HB_EXTENSION - HB_FUNC( HB_VALTOSTR ) { ULONG ulLen; @@ -149,6 +147,3 @@ HB_FUNC( HB_STRTOEXP ) hb_retclen_buffer( pszResult, ulRet ); } } - -#endif - diff --git a/harbour/source/vm/dynsym.c b/harbour/source/vm/dynsym.c index 767d079a23..fc2978c73c 100644 --- a/harbour/source/vm/dynsym.c +++ b/harbour/source/vm/dynsym.c @@ -485,8 +485,6 @@ void hb_dynsymRelease( void ) } } -#ifdef HB_EXTENSION - HB_FUNC( __DYNSCOUNT ) /* How much symbols do we have: dsCount = __dynsymCount() */ { hb_retnl( ( long ) s_uiDynSymbols ); @@ -553,8 +551,6 @@ HB_FUNC( __DYNSGETPRF ) /* profiler: It returns an array with a function or proc #endif } -#endif - HB_FUNC( __DYNSN2PTR ) { char * szName = hb_parc( 1 ); diff --git a/harbour/source/vm/memvars.c b/harbour/source/vm/memvars.c index b79918201e..5ecc24e009 100644 --- a/harbour/source/vm/memvars.c +++ b/harbour/source/vm/memvars.c @@ -1435,7 +1435,11 @@ HB_FUNC( __MVRESTORE ) { /* Clipper checks for the number of arguments here here, but we cannot in Harbour since we have two optional parameters as an extension. */ +#ifdef HB_EXTENSION if( ISCHAR( 1 ) && ISLOG( 2 ) ) +#else + if( hb_pcount() == 2 && ISCHAR( 1 ) && ISLOG( 2 ) ) +#endif { PHB_FNAME pFileName; char szFileName[ _POSIX_PATH_MAX + 1 ]; @@ -1478,8 +1482,13 @@ HB_FUNC( __MVRESTORE ) BYTE buffer[ HB_MEM_REC_LEN ]; char * pszMask; +#ifdef HB_EXTENSION pszMask = hb_memvarGetMask( 3 ); bIncludeMask = !ISLOG( 4 ) || hb_parl( 4 ); +#else + pszMask = "*"; + bIncludeMask = TRUE; +#endif while( hb_fsRead( fhnd, buffer, HB_MEM_REC_LEN ) == HB_MEM_REC_LEN ) { diff --git a/harbour/source/vm/proc.c b/harbour/source/vm/proc.c index c29c21e9e7..18cc37193b 100644 --- a/harbour/source/vm/proc.c +++ b/harbour/source/vm/proc.c @@ -73,8 +73,6 @@ #include "hbstack.h" #include "hbvm.h" -#ifdef HB_EXTENSION - HB_FUNC( HB_METHODNAME ) { char szName[ HB_SYMBOL_NAME_LEN + HB_SYMBOL_NAME_LEN + 5 ]; @@ -82,8 +80,6 @@ HB_FUNC( HB_METHODNAME ) hb_retc( hb_procname( hb_parni( 1 ) + 1, szName, TRUE ) ); } -#endif - HB_FUNC( PROCNAME ) { char szName[ HB_SYMBOL_NAME_LEN + HB_SYMBOL_NAME_LEN + 5 ]; @@ -108,6 +104,7 @@ HB_FUNC( PROCLINE ) HB_FUNC( PROCFILE ) { +#ifdef HB_EXTENSION PHB_SYMB pSym = NULL; if( ISSYMBOL( 1 ) ) @@ -140,6 +137,9 @@ HB_FUNC( PROCFILE ) } hb_retc( hb_vmFindModuleSymbolName( hb_vmGetRealFuncSym( pSym ) ) ); +#else + hb_retc( NULL ); +#endif } #endif