Commit Graph

1056 Commits

Author SHA1 Message Date
Przemyslaw Czerpak
7501178afd 2007-08-24 03:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/gttrm/gttrm.c
  * harbour/source/vm/runner.c
    * code cleanup
2007-08-24 01:00:58 +00:00
Przemyslaw Czerpak
c35370c2b9 2007-08-21 16:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/memvars.c
    + added __MVSETBASE() function

  * harbour/source/pp/ppcore.c
    * redirect error messages when error trap is not defined into
      user dispout function

  * harbour/include/hbcomp.h
  * harbour/source/compiler/hbmain.c
  * harbour/source/compiler/cmdcheck.c
  * harbour/source/compiler/hbcomp.c
  * harbour/source/compiler/genjava.c
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/hbcmplib.c
  * harbour/source/compiler/ppcomp.c
  * harbour/source/compiler/gencli.c
  * harbour/source/compiler/genhrb.c
  * harbour/source/compiler/gencobj.c
  * harbour/source/compiler/genobj32.c
  * harbour/source/compiler/hbusage.c
  * harbour/source/compiler/hbgenerr.c
    + added hb_compOutStd() and hb_compOutErr()
    * redirected all compiler output to above functions
2007-08-21 14:01:01 +00:00
Przemyslaw Czerpak
c775f56f50 2007-08-20 15:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbexprb.c
    * do not generate error for QSELF()[...] - Clipper allows such
      operation and because some valid Clipper code needs it then
      I disabled error message.

  * harbour/common.mak
  * harbour/source/rtl/Makefile
  + harbour/source/rtl/einstvar.prg
    + added undocumented CA-Cl*pper function _eInstVar() used to validate
      variable type in assign messages.

  * harbour/include/hbapi.h
  * harbour/source/vm/arrays.c
    * changed 'char *' to 'const char *' in hb_arraySetC() and hb_arraySetCL()

  * harbour/source/rdd/dbcmd.c
    * cleaned DBSKIPPER() code

  * harbour/source/rtl/browdb.prg
    * use written in C DBSKIPPER() function instead of static .prg Skipped()
      when HB_COMPAT_XPP macro is enabled

  * harbour/source/rtl/browse.prg
    ! fixes in BROWSE() function:
      ! displaying box characters
      + added CL53 compatible mouse actions
      + added mouse wheel actions
      + added support for deleting records (K_DEL)
      + added support for edit mode
      + added support for append mode
2007-08-20 13:50:18 +00:00
Viktor Szakats
20f052ed91 2007-08-08 16:31 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbcompat.ch
   * include/hbextern.ch
   * contrib/libnf/fttext.c
   * source/vm/arrayshb.c
     + xhb RASCAN() added to Harbour without HB_COMPAT_XHB 
       switch, under the name HB_RASCAN().
       Translation from RASCAN() is done via hbcompat.ch
     ! NFLib/FT_FRSEEK() now works in Harbour regardless 
       of the HB_COMPAT switches.
2007-08-08 14:33:26 +00:00
Przemyslaw Czerpak
69f897a26e 2007-08-02 12:25 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapifs.h
  * harbour/source/rtl/file.c
    + added xHarbour compatible C function hb_fsIsDirectory()

  * harbour/contrib/libct/color.c
  * harbour/contrib/libct/screen1.c
    + added UNTEXTWIN(), CHARWIN(), COLORWIN(), COLORREPL()
    * changed CLEARWIN(), INVERTWIN() to use common helper functions

  + harbour/contrib/libct/screen2.c
    + added SAYDOWN(), SAYSPREAD(), SAYMOVEIN()

  + harbour/contrib/libct/cursor.c
    + added SAVECURSOR(), RESTCURSOR()

  * harbour/contrib/libct/Makefile
  * harbour/contrib/libct/makefile.bc
  * harbour/contrib/libct/makefile.vc
    * updated for new files

  * harbour/contrib/libct/ctmisc.prg
    ! fixed CSETCURS() when called with non logical parameter

  * harbour/source/vm/classes.c
    + added basic version for executing all known inherited destructors
      final version in the future after some testes

  * harbour/source/codepage/cpsv850.c
  * harbour/source/codepage/cpsk852.c
  * harbour/source/codepage/ucmik.c
  * harbour/source/codepage/cpbgmik.c
  * harbour/source/codepage/cpsvwin.c
  * harbour/source/codepage/cpskiso.c
  * harbour/source/codepage/cpskwin.c
  * harbour/source/codepage/cpsvclip.c
    * removed hardcoded CHR(13)+CHR(10) EOLs
2007-08-02 10:25:46 +00:00
Przemyslaw Czerpak
20719c1cf1 2007-07-31 21:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbexprb.c
    * disable CTOD("") optimization when -kc switch is used

  * harbour/source/macro/macro.yyc
  * harbour/source/macro/macro.y
    * fixed typo reported by Mindaugas

  * harbour/source/vm/classes.c
    * fixed typo reported by Lost
2007-07-31 19:01:07 +00:00
Przemyslaw Czerpak
94cf099be5 2007-07-06 23:15 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/libct/bitnum.c
  * harbour/contrib/libct/charlist.c
  * harbour/contrib/libct/ctnet.c
  * harbour/contrib/libct/charonly.c
  * harbour/contrib/libct/atadjust.c
  * harbour/contrib/libct/ctmath.c
  * harbour/contrib/libct/ctset.c
  * harbour/contrib/libct/charsort.c
  * harbour/contrib/libct/ctmath.h
  * harbour/contrib/libct/ctset.h
  * harbour/contrib/libct/cterror.ch
  * harbour/contrib/libct/charmix.c
  * harbour/contrib/libct/charevod.c
  * harbour/contrib/libct/charrepl.c
  * harbour/contrib/libct/charswap.c
  * harbour/contrib/libct/charop.c
  * harbour/contrib/libct/color.prg
  + harbour/contrib/libct/blank.prg
  * harbour/contrib/libct/ct.prg
  * harbour/contrib/libct/ct.ch
  * harbour/contrib/libct/charone.c
  * harbour/contrib/libct/ctchksum.c
  * harbour/contrib/libct/ascpos.c
  * harbour/contrib/libct/charmirr.c
  * harbour/contrib/libct/ctc.c
  * harbour/contrib/libct/ct.h
  * harbour/contrib/libct/atnum.c
  * harbour/contrib/libct/ctmisc.prg
  * harbour/contrib/libct/count.c
  * harbour/contrib/libct/ctcrypt.c
  * harbour/contrib/libct/addascii.c
  * harbour/contrib/libct/ctmath2.c
  * harbour/contrib/libct/ctextern.ch
  * harbour/contrib/libct/asciisum.c
  * harbour/contrib/libct/atrepl.c
  * harbour/contrib/libct/ctstr.c
  * harbour/contrib/libct/ctstr.h
    * synced with xHarbour modifications and fixes
    ! some fixes
    * indenting

  * harbour/source/rtl/errorapi.c
    * indenting

  * harbour/source/vm/hashfunc.c
    + added HB_HSETCASEMATCH(), HB_HSETAUTOADD()
    % some minor optimizations

  * harbour/include/hbcompat.ch
    + added hb_checksum() <=> hb_adler()
    * use new HB_HSET*() function to avoid warnings

  * harbour/include/hbcomp.h
  * harbour/include/hbcompdf.h
  * harbour/include/hberrors.h
  * harbour/source/compiler/hbmain.c
  * harbour/source/compiler/harbour.yyc
  * harbour/source/compiler/harbour.y
  * harbour/source/compiler/harbour.yyh
  * harbour/source/compiler/hbgenerr.c
    ! fixed using EXIT/LOOP inside WITH OBJECT / END statement
    ! fixed optimization of empty BEGIN/END sequence when recover has
      EXIT or LOOP statement
    ! forbidden using EXIT and LOOP inside ALWAYS code in BEGIN/END sequence
    ! forbidden using ALWAYS statement if RECOVER code has EXIT or LOOP
      statement
2007-07-06 21:17:36 +00:00
Przemyslaw Czerpak
7d44a4b1d9 2007-07-04 04:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/classes.c
   * do not allocate self calss casting method when class name cannot
     be used as method
2007-07-04 02:45:11 +00:00
Przemyslaw Czerpak
266aeecc82 2007-07-04 04:35 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/classes.c
   ! fixed typo in adding messages with HB_OO_MSG_PROPERTY flag
   ! fixed __clsDelMsg() to be safe with later dictionary resizing
2007-07-04 02:35:24 +00:00
Przemyslaw Czerpak
d03f0a3274 2007-07-02 14:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbcompat.ch
    + added hb_CStr() <=> CStr() translations

  * harbour/common.mak
  * harbour/source/rtl/Makefile
  + harbour/source/rtl/hbbit.c
    + added set of hb_bit*() functions for bit manipulations:
      HB_BITAND( <nVal1>, <nVal2>, [<nVal3,...>] ) => <nResult>
      HB_BITOR( <nVal1>, <nVal2>, [<nVal3,...>] ) => <nResult>
      HB_BITXOR( <nVal1>, <nVal2>, [<nVal3,...>] ) => <nResult>
      HB_BITNOT( <nVal> ) => <nResult>
      HB_BITTEST( <nVal>, <nBit> ) => <lResult>
      HB_BITSET( <nVal>, <nBit> ) => <nResult>
      HB_BITRESET( <nVal>, <nBit> ) => <nResult>
      HB_BITSHIFT( <nVal>, <nBits> ) => <nResult>

  * harbour/contrib/tip/Makefile
  * harbour/contrib/tip/utils.c
  * harbour/contrib/tip/popcln.prg
  * harbour/contrib/tip/Changelog
  * harbour/contrib/tip/cgi.prg
  * harbour/contrib/tip/url.prg
  * harbour/contrib/tip/httpcln.prg
  * harbour/contrib/tip/client.prg
  * harbour/contrib/tip/encoder.prg
  * harbour/contrib/tip/smtpcln.prg
  * harbour/contrib/tip/mail.prg
  * harbour/contrib/tip/ftpcln.prg
  + harbour/contrib/tip/thtml.prg
  + harbour/contrib/tip/thtml.ch
  - harbour/contrib/tip/cstr.prg
    * synced with recent xHarbour modifications - please test

  * harbour/source/vm/hvm.c
    * formatting

  * harbour/source/rdd/delim1.c
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/sdf1.c
    % do not copy date value to separate memory buffer but decode dates
      directly from record buffer

  * harbour/source/compiler/hbopt.c
    * optimize PCODE generated for:
         return <somefunc>([<params,...>])
2007-07-02 12:10:38 +00:00
Przemyslaw Czerpak
effd14c344 2007-06-26 23:55 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
  * harbour/harbour.spec
    * added description for -L<path> in hb* scripts

  * harbour/include/hbapicls.h
  * harbour/source/vm/classes.c
    * changed hb_objSendMsg() and hb_objSendMessage() to return
      hb_stackReturnItem() - xHarbour users asked about it. It does
      not change binary compatibility with existing code.

  * harbour/common.mak
    * replaced some hard coded values like file extensions with variables
      for future use on other platforms

  * harbour/contrib/mysql/mysql.c
    * changed code to not use non standard function filelength()
      and optimized

  * harbour/source/compiler/cmdcheck.c
    * recognize --version on platforms where '-' is option separator

  * harbour/source/compiler/hbusage.c
    * changed syntax description from:
         Syntax:  harbour <file[s][.prg]> [options]
      to:
         Syntax:  harbour <file[s][.prg]|@file> [options]
2007-06-26 21:55:46 +00:00
Przemyslaw Czerpak
685393a361 2007-06-23 11:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/gtchrmap.c
  * harbour/source/rtl/gttrm/Makefile
  * harbour/source/rtl/gttrm/gttrm.c
    + set Id keyword property

  * harbour/source/common/expropt1.c
    ! fixed typo in HB_TRACE() parameters

  * harbour/include/hbapicdp.h
  * harbour/include/hbapirdd.h
  * harbour/source/rtl/strcase.c
  * harbour/source/rtl/is.c
  * harbour/source/rtl/gtxwc/gtxwc.h
  * harbour/source/rtl/gtxwc/gtxwc.c
  * harbour/source/rtl/gtstd/gtstd.c
  * harbour/source/rtl/gtsln/gtsln.c
  * harbour/source/rtl/gtsln/gtsln.h
  * harbour/source/rtl/gtpca/gtpca.c
  * harbour/source/rtl/gtcgi/gtcgi.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  * harbour/source/vm/hvm.c
    ! fixed compilation with HB_CDP_SUPPORT_OFF - I do not plan to
      create such builds but now these macro allow to easy locate
      CDP dependent code

  * harbour/include/hbextern.ch
  * harbour/source/rtl/cdpapi.c
    + added two prg functions for translations from/to UTF-8:
         HB_STRTOUTF8( <cStr> [, <cCPID> ] ) -> <cUTF8Str>
         HB_UTF8TOSTR( <cUTF8Str> [, <cCPID> ] ) -> <cStr>
      <cCPID> is Harbour codepage id, f.e.: "EN", "ES", "ESWIN",
      "PLISO", "PLMAZ", "PL852", "PLWIN", ...
      When not given then default HVM codepage (set by HB_SETCODEPAGE())
      is used.
2007-06-23 09:13:50 +00:00
Przemyslaw Czerpak
113866e6a1 2007-06-20 21:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbgtinfo.ch
    + added GTI_ADDKEYMAP and GTI_DELKEYMAP

  * harbour/include/hbapicdp.h
  * harbour/source/rtl/cdpapi.c
    + added const to declarations of some function parameters

  * harbour/include/hbgtcore.h
  * harbour/source/rtl/Makefile
  + harbour/source/rtl/gtchrmap.c
  * harbour/source/rtl/gtcrs/Makefile
  - harbour/source/rtl/gtcrs/chrmap.c
  * harbour/source/rtl/gtcrs/gtcrs.c
  * harbour/source/rtl/gtcrs/gtcrs.h
    * hb_gt_chrmapinit() common function now for different GT drivers
    * minor cleanup in GTCRS code

  * harbour/include/hbcompat.ch
    + added some new translation rules

  * harbour/include/hbapi.h
    * cleanup comment

  * harbour/source/pp/ppcore.c
    ! fixed line numbering when errors are reported in different order
      due to preprocessing extended code block

  + harbour/source/rtl/gttrm
  + harbour/source/rtl/gttrm/Makefile
  + harbour/source/rtl/gttrm/gttrm.c
    + added new GT driver - it's terminal driver like GTCRS and GTSLN
      but it does not use any external library like [N]CURSES or SLANG
      so it can be compiled in nearly all POSIX systems. It's not such
      flexible like curses or slang base drivers because instead of
      using termcap/terminfo databases to extract terminal capabilities
      it uses some hard coded sequences for few terminals (now Linux, ANSI,
      XTERM) but it should cover users requests in 95% of cases. Terminals
      I tested are quite well supported (GTTRM works even better then GTCRS
      or GTSLN and is much faster in full screen mode - 2-4 times).
      I noticed that most terminal emulators works much better with GTTRM
      then with GTCRS or GTSLN due to limited list of used escape sequences
      so some minor differences in each terminal implementation are not
      noticeable. GTTRM automatically detects ISO/UTF8 terminal mode and
      chose valid output what should also help *nix users.
      Now I would like to ask BSD and MacOSX users to test GTTRM in these
      systems with pure text console and XWindow terminal emulators. I'm
      interesting in any problems you may found.

  * harbour/source/vm/hvm.c
    + added protection for possible GPF caused by wrong .prg code

  * harbour/source/vm/maindllp.c
    % store function addreses in static variables to improved execution
      speed
    + added support for compilers which does not use "_" as function prefix
    + added support for using with harbour*.dll

  * harbour/source/vm/memvars.c
    + added new method of detaching enumerators and array item references
      covered by HB_COMPAT_XHB macro. xHarbour does not work in such way
      but the final results are similar.

  * harbour/source/vm/dynlibhb.c
    + added protection against passing wrong pointer items to HB_LIB*()
      functions

  * harbour/source/common/reserved.c
    * cleaned warning

  * harbour/bin/hb-func.sh
  * harbour/config/hpux/global.cf
  * harbour/config/darwin/global.cf
  * harbour/config/linux/global.cf
  * harbour/config/sunos/global.cf
  * harbour/config/bsd/global.cf
    + added GTTRM to library list
2007-06-20 19:07:37 +00:00
Przemyslaw Czerpak
5c85215870 2007-06-12 23:40 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/rdd_ads/ads1.c
    * cleaned BCC warning

  * harbour/include/hbapi.h
  * harbour/source/vm/arrays.c
    + added set of hb_arraySet*() functions - I hope they will help 3-rd
      party developers to eliminate using C stack level HB_ITEM and
      reduce usage of potentially danger function like hb_arrayGetItemPtr()

  * harbour/include/hbapiitm.h
  * harbour/source/vm/itemapi.c
    + added hb_itemReturnRelease()

  * harbour/include/hbcompat.ch
    + added hb_pvalue() <-> pvalue() translations

  * harbour/source/vm/pvalue.c
    + added support for 2-nd parameter for assugb operation, f.e. now
         hb_pvalue( 3, "abc" )
      sets "abc" to 3-rd function parameter

  * harbour/source/compiler/gencc.c
  * harbour/source/compiler/hbopt.c
    ! fixed two buggy optimizations
2007-06-12 21:41:58 +00:00
Przemyslaw Czerpak
f86b9acb5d 2007-06-11 11:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/compiler/genc.c
    * allow to use #pragma begindump / enddump in .prg files without
      any .prg code

  * harbour/source/vm/hvm.c
    ! fixed assign in overloaded []
2007-06-11 09:32:03 +00:00
Przemyslaw Czerpak
4027757574 2007-06-06 12:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicls.h
    * changed extern hb_bProfiler to local HVM static variable
  * harbour/source/vm/hvm.c
    + added two macros HB_NO_TRACE and HB_NO_DEBUG for these people
      who needs/wants to test HVM speed without debugger support
      and PRG call tracing - the difference is rather small
2007-06-06 10:05:40 +00:00
Przemyslaw Czerpak
973468286a 2007-06-04 20:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbexprb.c
  * harbour/include/hbexprop.h
  * harbour/source/common/expropt2.c
    % added compile time optimization for CTOD("")
    % added compile time optimization for - used forconstant string values,
      f.e.:
         ? "Harbour   " - " Compiler"

  * harbour/source/vm/hvm.c
    % added optimization for string resizing in cVal1 - cVal2

  * harbour/source/rtl/dateshb.c
    % minor optimization - removed one not necessary ISCHAR()
2007-06-04 18:11:04 +00:00
Przemyslaw Czerpak
581507c90d 2007-06-01 15:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/harbour.spec
    * set attributes explicitly to clean some wrong attributes committed
      to CVS and minor cleanup

  * harbour/include/hbapierr.h
  * harbour/source/rtl/errorapi.c
    + added hb_errorBlock()

  * harbour/source/macro/macro.yyc
  * harbour/source/compiler/harbour.yyc
    * manual hack to pacify BCC warning messages

  * harbour/include/hbpcode.h
  * harbour/include/hbxvm.h
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/gencc.c
  * harbour/source/compiler/harbour.y
  * harbour/source/compiler/harbour.yyc
  * harbour/source/compiler/hbdead.c
  * harbour/source/compiler/hbfix.c
  * harbour/source/compiler/hblbl.c
  * harbour/source/compiler/hbmain.c
  * harbour/source/compiler/hbopt.c
  * harbour/source/compiler/hbpcode.c
  * harbour/source/compiler/hbstripl.c
  * harbour/source/vm/hvm.c
    + added support for:
         BEGIN SEQUENCE WITH <errorBlockExp>
            [<statements;...>]
         [ RECOVER [ USING oErr ] ]
            ...
         [ ALWAYS ]
            ...
         END
      It works like normal BEGIN SEQUENCE but sets <errorBlockExp> as
      ErrorBlock() before executing <statements;...> and restore
      previous ErrorBlock() at the end or when exception will appear.
      I hope it will make some xHarbour user happy ;-)

  * harbour/include/hbcompat.ch
    + added preprocessor directive for TRY / CATCH / FINALLY / END
      working like in xHarbour - translated to:
         BEGIN SEQUENCE WITH { |oErr| Break( oErr ) }
            ...
         [ RECOVER [ USING oErr ] ]
            ...
         [ ALWAYS ]
            ...
         END
2007-06-01 13:12:29 +00:00
Przemyslaw Czerpak
bedaef925f 2007-05-28 09:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/make_xmingw.sh
  * harbour/source/pp/Makefile
    * recent xHarbour fixes for MinGW Linux->W32 cross build by Phil Krylow
      with small modifications

  * harbour/config/rules.cf
    + added rules for C++ files

  * harbour/include/hbapi.h
  * harbour/source/vm/arrays.c
    + added hb_arraySetForward()

  * harbour/include/hbapi.h
  * harbour/source/rtl/strmatch.c
    + added hb_strMatchFile() - compare two strings using platform dependent
      rules for file matching, respects platform dependent wildcards
    + added hb_strMatchCaseWildExact() - compare two strings using pattern
      with wildcard (?*) ignoring the case of the characters - patern have
      to cover whole string
    * changed hb_strMatchRegExp() to use real reguar expresions, if build
      does not support regex then redirected to hb_strMatchWildExact()
    - removed not longer used hb_strMatchDOS() - in fact it was neither DOS
      nor classic wildcards (?*) compatible

  * harbour/source/common/hbstr.c
    ! casting to avoid possible problem on platforms where toupper does not
      accept negative char value

  * harbour/include/hbcomp.h
  * harbour/source/compiler/hbcomp.c
  * harbour/source/compiler/hbmain.c
    * minor modifications in cleanup functions

  * harbour/source/rtl/hbffind.c
    * use hb_strMatchFile()

  * harbour/source/vm/memvars.c
    * use hb_strMatchCaseWildExact() instead of hb_strMatchRegExp()
      I still keep the hack which translates any mask starting with '*'
      to "*" but if you think that we should fully respect wildcards
      patterns then we should remove it from function hb_memvarGetMask()
      Opinions?
2007-05-28 07:52:08 +00:00
Przemyslaw Czerpak
0724963ab3 2007-05-26 09:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/pp/ppcore.c
    ! fixed bug reported by Lorenzo

  * harbour/contrib/rdd_ads/ads1.c
    * changed static variable name from iSetListenerHandle to
      s_iSetListenerHandle to keep common naming convention

  * harbour/include/hbapi.h
  * harbour/source/vm/hashes.c
  * harbour/source/vm/hashfunc.c
  * harbour/source/vm/hvm.c
    + added new 3-rd parameter to hb_hashGetItemPtr() to control
      independently hash autoadd behavior in access/assign operation

  * harbour/include/hbrdddbf.h
  * harbour/include/hbrddntx.h
  * harbour/source/rdd/dbfntx/dbfntx1.c
    * moved static variables holding RDDI_* settings to RDDNODE data so
      they can be set separately for each RDD which inherits from DBFNTX

  * harbour/source/vm/classes.c
    + added disabled code to access hash items using messages

  * harbour/source/vm/garbage.c
    * comment
2007-05-26 07:06:07 +00:00
Przemyslaw Czerpak
541d776d85 2007-05-25 01:35 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/include/hbexpra.c
  * harbour/source/macro/macro.y
  * harbour/source/macro/macro.yyc
  * harbour/source/macro/macrolex.c
  * harbour/source/vm/macro.c
    - removed hb_macroIsIdent()
    + added hb_macroTextSymbol()
    ! fixed old bug (it exists in all [x]Harbour versions) in macrocompiler
      which caused HVM stack corruption
    * generate from lexer symbols which are well formatted
      (uppercase and size <= HB_SYMBOL_NAME_LEN)
    % use hb_dynsymGetCase() instead of hb_dynsymGet()
    % some minor speed improvement

  * harbour/source/rtl/gtwin/gtwin.c
    % use hb_dynsymFind() instead of hb_dynsymFindName()

  * harbour/source/rdd/dbcmd.c
  * harbour/source/rdd/wafunc.c
    * reenabled by default strict clipper compatible behavior for
      code select(), dbSelectArea() and alias allocating

  * harbour/source/rdd/dbf1.c
    + added DBI_ISENCRYPTED for tables encrypted by SIX3

  * harbour/source/rtl/hbinet.c
    ! added missing break (Ron fix from xHarbour)
2007-05-24 23:35:25 +00:00
Przemyslaw Czerpak
b2451d20d9 2007-05-23 12:27 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/debug.c
    ! fixed access/assign local variables from debugger in functions
      with variable number of parameters
2007-05-23 10:29:23 +00:00
Przemyslaw Czerpak
487aa9c20e 2007-05-23 11:55 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
    + added hbapidbg.h

  * harbour/source/vm/classes.c
    - removed one unused debug function

  * harbour/source/vm/debug.c
    * formatting
2007-05-23 09:55:32 +00:00
Przemyslaw Czerpak
0ae81e63e3 2007-05-22 12:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
    +  added -lpcreposix to system libraries when C_USR has -DHB_PCRE_REGEX
  * harbour/include/hbregex.h
    * removed pcre/ path from PCRE header files - if you want to build
      Harbour with PCRE regex and PCRE header files are not in default\
      path then set valid path in C_USR, f.e.:
         export C_USR="${C_USR} -DHB_PCRE_REGEX -I/usr/include/pcre"

  * harbour/include/hbxvm.h
  * harbour/source/compiler/gencc.c
  * harbour/source/vm/hvm.c
    * minor optimizatin for -gc3 output
2007-05-22 10:23:15 +00:00
Przemyslaw Czerpak
75bd21860c 2007-05-22 01:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/include/hbapicls.h
  * harbour/include/hbcomp.h
  * harbour/include/hbvm.h
  * harbour/include/hbvmpub.h
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/gencc.c
  * harbour/source/compiler/gencli.c
  * harbour/source/compiler/hbdead.c
  * harbour/source/compiler/hbfix.c
  * harbour/source/compiler/hblbl.c
  * harbour/source/compiler/hbopt.c
  * harbour/source/compiler/hbpcode.c
  * harbour/source/compiler/hbstripl.c
  * harbour/source/debug/dbgentry.c
  * harbour/source/rdd/wafunc.c
  * harbour/source/rtl/itemseri.c
  * harbour/source/rtl/gtsln/gtsln.c
  * harbour/source/vm/classes.c
  * harbour/source/vm/dynsym.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/memvars.c
  * harbour/source/vm/runner.c
    * casting: changed some 'char *' to 'const char *', added const to some
      other declarations, added workaround for GCC warnings about
      dereferencing pointer with strict-aliasing optimization, etc.
2007-05-21 23:45:41 +00:00
Przemyslaw Czerpak
c1ceed3cf0 2007-05-17 00:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/TODO
    * removed some not longer necessary TODO/TOFIX

  * harbour/common.mak
  * harbour/source/rtl/Makefile
  - harbour/source/rtl/memoline.c
  - harbour/source/rtl/mlcount.c
  - harbour/source/rtl/mlctopos.c
  - harbour/source/rtl/mlpos.c
  - harbour/source/rtl/mpostolc.c
  + harbour/source/rtl/mlcfunc.c
    * new version of memo line functions:
         MEMOLINE(), MLCOUNT(), MLPOS(), MLCTOPOS(), MPOSTOLC()

  * harbour/include/hbexpra.c
    ! fixed in HB_COMPAT_XHB build hb_enumIndex() used inside internal
      FOR/NEXT loop

  * harbour/include/hbpp.h
  * harbour/source/pp/ppcore.c
    ! removed some not longer necessary hack
    % added some speed optimizations - it's not done in the way I want to
      have in the final version but with some very small modifications it
      should make people using a lot of #[x]translate (Enrico ;-)) happy.

  * harbour/source/rtl/set.c
    * minor cleanup in HB_SET_EOL initialization

  * harbour/source/vm/hvm.c
    * clean MEMO flag in array and hash items created by { MEMOFILED, ... }
      or { "KEY" => MEMOFILED, ... } and optimized results of PLUS operation

  * harbour/utils/hbtest/rt_misc.prg
    * SET EOL to CHR(13) + CHR( 10 ) before MLCTOPOS() tests to avoid false
      alarm on platforms with differ default EOL
2007-05-16 22:20:36 +00:00
Przemyslaw Czerpak
96526823f3 2007-05-06 20:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rdd/wacore.c
  * harbour/source/vm/classes.c
  * harbour/include/hbapirdd.h
  * harbour/source/compiler/hbmain.c
    * updated HB_TRACE messages and some minor cleanups

  * harbour/source/rdd/dbcmd.c
    ! fixed initialisation of DBRELINFO dbSetRelation() - thanks to Antonio
      for locating the problem

  * harbour/source/rtl/idle.c
   * increase timeout in nanosleep() from 1 microsecond to 1 millisecond
   - removed some wrong comment
2007-05-06 18:35:11 +00:00
Przemyslaw Czerpak
0433f879a4 2007-05-06 16:15 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/classes.c
    * changed __cls_IncData() to return index to newly allocated instance
      item and __cls_DecData() to return number of local (not inherited)
      instance items
2007-05-06 14:16:19 +00:00
Viktor Szakats
1c11bc25db 2007-04-23 23:28 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* harbour/source/rtl/diskspac.c
     ! Fixed to return free space instead of disk size under Unix OSes.

   * harbour/source/rtl/tget.prg
     ! Fixed checking for invalid GET var types.
     ! More C5x compatible behaviour for invalid types.
     ! ::UnTransform() fixed when not in focus.
     - ::UnTransform() cBuffer incompatible parameter removed.
     ! ::Reform() probably made more compatible.
     + ::PosInBuffer() XBase++ compatible method implemented.
       (but not tested or compared with XBase++)
     ! ::Minus assignment fixed.
     ! ::Clear assignment fixed.
     ! ::Changed assignment fixed.
     ! ::Buffer assignment fixed.
     ! ::Block assignment fixed.
     ! ::Name assignment fixed.
     ! ::UnTransform() extra parameter removed.
     ! ::UpdateBuffer() minor fix when not in focus.
     ! ::Reform() made more compatible.
     % ::SetFocus() some superfluous stuff removed.
     % ::SetFocus() some fixes, cleanups.
     ! ::KillFocus() now sets ::TypeOut properly.
     ! ::VarPut(), ::VarGet() fixed for invalid ::Subscript contents.
     ! ::VarPut(), ::VarGet() fixed for invalid ::Block content.
     ! ::Pos rewritten to be fully compatible.
     ! ::ColorSpec made fully compatible.
     ! ::UnTransform() fixed when not in focus.
     ! ::UnTransform() fixed handling "YL" in string pictures.
     % ::UnTransform() minor optimization.
     % ::PutMask() some hacks removed.
     ! ::PutMask() invalid types handling.
     ! ::BackSpace() fixed when not in focus.
     ! ::Delete() fixed when not in focus.
     ! ::DeleteAll() fixed when not in focus.
     ! ::IsEditable() fixes.
     ! ::Picture fixes for invalid types, assignment behaviour.
     ! ::Picture hacks removed.
     ! Non-assignable vars made READONLY. (will generate
       different RTEs than in CA-Cl*pper due to the more
       refined oo engine in Harbour.)
     ! ::BadDate changed to be a METHOD.
     ! ::ToDecPos fixes.
     ! ::Row assigment and behaviour fixes.
     ! ::Col assigment and behaviour fixes.
     + Several comments and NOTEs added.

   * harbour/include/hbapigt.h
   * harbour/source/rtl/gtapi.c
   * harbour/source/rtl/setcolor.c
     + hb_gtColorsToString() public API added.
     + hb_NToColor() function added to convert a single color
       value (returned by hb_ColorToN()) back to a string.
       Used in TGet():ColorSpec implementation.

   * harbour/source/vm/fm.c
     * "Blocks" -> "Block(s)"

   * harbour/tests/rto_get.prg
     + Added many test cases.

   * harbour/source/vm/cmdarg.c
     + Added support to use "--" instead of "//" for internal
       command line options.

   * harbour/source/rtl/tbcolumn.prg
     + Formatting.

   * harbour/source/rtl/tbrowse.prg
     + Added Harbour (undocumented) extension NOTE.

   * harbour/include/Makefile
   - harbour/include/usrrdd.ch
   + harbour/include/hbusrrdd.ch
   * harbour/source/rdd/usrrdd/usrrdd.c
   * harbour/source/rdd/usrrdd/rdds/dbtcdx.prg
   * harbour/source/rdd/usrrdd/rdds/fcomma.prg
   * harbour/source/rdd/usrrdd/rdds/fptcdx.prg
   * harbour/source/rdd/usrrdd/rdds/hscdx.prg
   * harbour/source/rdd/usrrdd/rdds/rlcdx.prg
   * harbour/source/rdd/usrrdd/rdds/smtcdx.prg
   * harbour/contrib/pgsql/pgrdd.prg
     ! Changed public header filename to comply with the "hb*.ch" rule.
       (namespace protection)
2007-04-23 21:41:40 +00:00
Przemyslaw Czerpak
74adc6f86c 2007-04-23 18:25 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbcomp.h
  * harbour/include/hbcompdf.h
  * harbour/include/hbexpra.c
  * harbour/include/hbexprb.c
  * harbour/include/hbexprop.h
  * harbour/source/common/expropt1.c
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/harbour.y
  * harbour/source/compiler/hbmain.c
  * harbour/source/compiler/hbopt.c
    ! reverted fix for unnecessary -W2 warning:
         Function '...' does not end with RETURN statement
      in code like:
            func f(v)
            if v
               return "TRUE"
            else
               return "FALSE"
            endif
      Sorry but I had to make it because this fix was wrong and causes
      that code like:
            func f(v)
            if v
               ? v
            else
               return "FALSE"
            endif
      was compiled without any warnings but wrong PCODE was generated.
      In some spare time I'll try to implement valid RETURN detection,
      now simply add RETURN NIL at the end of such functions - it will
      be removed by dead code eliminator.
    ! fixed memory leak when more then one .prg file was given as compiler
      parameter
    + cleaned some code for future modifications

  * harbour/source/macro/macro.y
    + added small hack for two BCC/OW warnings
  * harbour/source/compiler/harbour.yyc
  * harbour/source/compiler/harbour.yyh
  * harbour/source/macro/macro.yyc
  * harbour/source/macro/macro.yyh
    * regenerated with modified Bison version which should give code
      without BCC warnings - I cannot promise I'll keep it in the
      future but I will try.

  * harbour/source/rdd/dbcmd.c
    ! use default RDD instead of current one in COPY TO and APPEND FROM

  * harbour/source/vm/classes.c
    * added support for (@func()):eval(...)
2007-04-23 16:27:57 +00:00
Przemyslaw Czerpak
b9e952b6c7 2007-04-19 00:15 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/gd/gdwrp.c
  * harbour/contrib/libmisc/hb_f.c
  * harbour/contrib/samples/dbf.c
  * harbour/contrib/samples/time.c
  * harbour/doc/es/hb_apiln.txt
  * harbour/include/hbapicdp.h
  * harbour/include/hbapilng.h
  * harbour/source/rdd/dbcmd.c
  * harbour/source/rdd/dbnubs.c
  * harbour/source/rdd/hsx/cftsfunc.c
  * harbour/source/rtl/accept.c
  * harbour/source/rtl/defpath.c
  * harbour/source/rtl/oemansi.c
  * harbour/source/rtl/pad.c
  * harbour/source/rtl/shadow.c
  * harbour/source/rtl/trim.c
  * harbour/source/vm/debug.c
    * changed HB_FUNCNAME( <name> )() to HB_FUNC_EXEC( <name> )

  * harbour/utils/hbrun/Makefile
    * changed order of linked libraries

  * harbour/source/rtl/empty.c
    * changed EMPTY( <symboItem> ) - not it returns .T. when <symboItem>
      is not a function symbol

  * harbour/source/rtl/errorapi.c
    % replaced all hb_dynsym{Find,Get}*() by static variables initialized
      at HVM startup variables - it reduce the cost of creating and
      initializing error object about 50%

  * harbour/include/hbapifs.h
  * harbour/source/rtl/fssize.c
  * harbour/source/rtl/filesys.c
  * harbour/source/rtl/hbffind.c
    * changed to use 64bit file API

  + harbour/contrib/libct/ctextern.ch
    + added list with EXTERN requests for our CT3 function. List generated
      automatically from final binary CT lib created on Linux.
2007-04-18 22:15:17 +00:00
Przemyslaw Czerpak
2fb8011bc5 2007-04-17 04:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/vm/dynsym.c
    * removed const from return value of hb_dynsymName() to not force
      updating of existing 3-rd party code
2007-04-17 02:21:13 +00:00
Przemyslaw Czerpak
c9e8fc84b9 2007-04-17 04:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/vm/dynsym.c
    * changed some declarations from 'char *' to 'const char *'

  * harbour/include/hbapicls.h
  * harbour/source/vm/classes.c
    * changed some declarations from 'char *' to 'const char *'
    + added hb_clsFuncName(), hb_clsFindClass(), hb_objSetClass()

  * harbour/source/rtl/itemseri.c
    ! fixed some stupid typos in previous commit
    * added support for serialization of object variables - I'm
      not sure it's good idea anyhow people ask about it so we
      have it. Probably we should add some special method like
      OnError(), f.e.: OnRestore() or sth like that and execute
      it after deserialization or object cloning.
2007-04-17 02:13:04 +00:00
Przemyslaw Czerpak
a44eae4498 2007-04-16 21:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbcompat.ch
    * always translate hash H*() function to HB_H*() ones even if
      HB_COMPAT_XHB is set. Code which uses HB_H*() functions can
      be linked with any Harbour builds

  * harbour/include/hbapi.h
  * harbour/source/vm/hashes.c
    + added hb_hashId()

  * harbour/source/pp/ppcore.c
    + added #ytranslate, #ycommand, #yuntranslate, #yuncommand
      case sensitive version of corresponding #x* directives

  * harbour/source/rtl/itemseri.c
    + added support for serialization arrays and/or hashes with cyclic
      references
2007-04-16 19:29:50 +00:00
Przemyslaw Czerpak
942d57e0f1 2007-04-16 00:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/common.mak
  * harbour/bin/pack_src.sh
  * harbour/source/vm/Makefile
  - harbour/source/vm/dbgentry.c
  * harbour/source/debug/Makefile
  + harbour/source/debug/dbgentry.c
    * moved dbgentry.c from HVM to DEBUG library

  * harbour/source/rtl/hbgtcore.c
    + added basic version of GTI_{NEW,GET,SET}WIN

  * harbour/include/hbapidbg.h
  * harbour/source/vm/hvm.c
  * harbour/source/debug/debugger.prg
  * harbour/source/debug/dbgentry.c
    + added set of .prg level functions (HB_DBG_*()) to control
      debugger internals
    * eliminated HB_INLINE() calls
    * use  to switch between user and debugger screen
    * cleaned debugger interface in HVM, removed unused variables
      added one common debug function
2007-04-15 22:20:37 +00:00
Przemyslaw Czerpak
2bb711b6c8 2007-04-15 14:35 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/compiler/hbmain.c
  * harbour/source/vm/dbgentry.c
  * harbour/source/vm/hvm.c
    ! fixed GPF in debugger
2007-04-15 12:37:15 +00:00
Viktor Szakats
56267f28dd 2007-04-14 12:40 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* harbour/include/hbstdgen.ch
   * harbour/include/box.ch
   * harbour/include/hbclass.ch
   * harbour/include/hbcommon.ch
   * harbour/include/hbextern.ch
   * harbour/include/hbgetcmt.ch
   * harbour/include/hbsetup.ch
   * harbour/include/ord.ch
   * harbour/source/rdd/dbdelim.prg
   * harbour/source/rdd/dbfuncs.prg
   * harbour/source/rdd/dbjoin.prg
   * harbour/source/rdd/dblist.prg
   * harbour/source/rdd/dbsort.prg
   * harbour/source/rdd/dbstrux.prg
   * harbour/source/rdd/dbtotal.prg
   * harbour/source/rdd/dbupdat.prg
   * harbour/source/rdd/rddord.prg
   * harbour/source/rtl/alert.prg
   * harbour/source/rtl/browdb.prg
   * harbour/source/rtl/browdbx.prg
   * harbour/source/rtl/checkbox.prg
   * harbour/source/rtl/dircmd.prg
   * harbour/source/rtl/getsys.prg
   * harbour/source/rtl/input.prg
   * harbour/source/rtl/mssgline.prg
   * harbour/source/rtl/pushbtn.prg
   * harbour/source/rtl/radiobtn.prg
   * harbour/source/rtl/radiogrp.prg
   * harbour/source/rtl/setfunc.prg
   * harbour/source/rtl/setta.prg
   * harbour/source/rtl/tbcolumn.prg
   * harbour/source/rtl/tget.prg
   * harbour/source/rtl/tgetint.prg
   * harbour/source/rtl/tmenuitm.prg
   * harbour/source/rtl/tpopup.prg
   * harbour/source/rtl/ttopbar.prg
   * harbour/source/rtl/typefile.prg
   * harbour/source/vm/harbinit.prg
   * harbour/utils/hbrun/external.prg
   * harbour/utils/hbtest/rt_main.ch
     + Following #defines are now available by default without
       the need to #include "hbsetup.ch". These are of course
       also available for applications as defined at Harbour
       build time:
       HB_EXTENSION
       HB_C52_UNDOC
       HB_C52_STRICT
       HB_COMPAT_C53
       HB_COMPAT_XPP
       HB_COMPAT_VO
       HB_COMPAT_FLAGSHIP
       HB_COMPAT_FOXPRO
       HB_COMPAT_DBASE
       HB_COMPAT_CLIP
       HB_COMPAT_XHB
       HB_SHORTNAMES
       HB_FILE_VER_STATIC

   * harbour/source/compiler/hbusage.c
     * Mail address update.
2007-04-14 10:41:54 +00:00
Przemyslaw Czerpak
b7094ed42f 2007-04-13 03:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  + harbour/include/hbapidbg.h
  * harbour/include/hbcomp.h
  * harbour/include/hbcompdf.h
  * harbour/include/hbdebug.ch
  * harbour/include/hbdefs.h
  * harbour/source/compiler/Makefile
  * harbour/source/compiler/genc.c
  + harbour/source/compiler/hbdbginf.c
  * harbour/source/compiler/hbmain.c
  * harbour/source/debug/debugger.prg
  * harbour/source/rtl/altd.prg
  * harbour/source/vm/Makefile
  + harbour/source/vm/dbgentry.c
  * harbour/source/vm/debug.c
  * harbour/source/vm/hvm.c
    + added xHarbour compatible low level debugger code
      Without some small exceptions like my hbdbginf.c most of
      the code created by Phil Krylov <phil a t newstar.rinet.ru>
      and borrowed from xHarbour with some small modifications.

  * harbour/source/rtl/gete.c
    ! fixed memory leak in GETENV()

  * harbour/source/compiler/hbmain.c
    ! fixed memory leak when -build or -credit switches were used
2007-04-13 01:06:01 +00:00
Przemyslaw Czerpak
23bc767460 2007-04-12 13:55 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbpp.h
  * harbour/include/hbcomp.h
  * harbour/source/compiler/hbgenerr.c
  * harbour/source/compiler/ppcomp.c
  * harbour/source/pp/ppcore.c
  * harbour/source/pp/pplib.c
  * harbour/utils/hbpp/hbpp.c
  * harbour/utils/hbpp/hbppcore.c
  * harbour/utils/hbpp/hbppdef.h
    * changed error and warning messages to const char *

  * harbour/source/compiler/genhrb.c
    * rewritten to work on memory buffers and with new compiler code

  * harbour/include/hbcomp.h
  * harbour/include/hbcompdf.h
  * harbour/source/compiler/hbmain.c
  * harbour/source/main/harbour.c
    + added LANG_PORT_OBJ_BUF which allow to generate .hrb files into
      memory buffers

  * harbour/source/compiler/hbcmplib.c
    + added HB_COMPILEBUF() functions which returns compiled .hrb file
      as string item

  * harbour/source/vm/runner.c
    + added support for executing compiled .hrb files stored in string
      items in __HRBRUN() function - it works just like in __HRBLOAD()

  * harbour/harbour.spec
  * harbour/utils/hbrun/hbrun.prg
    + added default include directories to hbrun
    * use HB_COMPILEBUF() instead of HB_COMPILE() to eliminate temporary
      files
2007-04-12 11:57:04 +00:00
Przemyslaw Czerpak
046d1ea4d7 2007-04-11 22:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/compiler/harbour.y
  * harbour/source/compiler/harbour.yyc
    ! fixed some possible false warning messages

  * harbour/include/hboo.ch
  * harbour/source/vm/classes.c
    + added support for HB_OO_MSG_PROPERTY and HB_OO_MSG_CLASSPROPERTY
      to make some xHarbour users happy ;-)

  * harbour/common.mak
  * harbour/harbour.spec
  * harbour/include/hbcompdf.h
  * harbour/source/compiler/Makefile
  + harbour/source/compiler/hbcmplib.c
    + added HB_COMPILE() function - it accepts exactly the same parameters
      as harbour compiler and makes the same job :-)

  * harbour/utils/hbrun/Makefile
  * harbour/utils/hbrun/hbrun.prg
    + added support for compilation and direct execution of .prg files
      Now hbrun can accept as first parameter .hrb or .prg file and if
      it's .prg file it's compiled and then executed just like .hrb one.
      In *nixes if you copy compiled hbrun to /usr/bin directory then
      you can add to your .prg files as first line:
         #!/usr/bin/hbrun
      and then after setting executable attribute you can directly
      execute them, f.e.:
         ./test.prg
      If you are using Linux then you can also chose default gt driver
      by dding to above line: //gt<name>
      F.e.
         #!/usr/bin/hbrun //gtstd
2007-04-11 20:01:18 +00:00
Przemyslaw Czerpak
3fe91afe15 2007-04-10 14:35 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
    + added hbregex.h

  * harbour/include/hbclass.ch
    + added support for ENDCLASS LOCK[ED]
    + := <clasname> { <constructorParams,...> }

  * harbour/source/debug/tbrwtext.prg
  * harbour/source/rtl/memoedit.prg
  * harbour/utils/hbdoc/ffile1.prg
  * harbour/utils/hbmake/ffile1.prg
    * changed code with:
         super:<msg>
      to
         ::super:<msg>
      I will want to remove lines with:
         [ ; #translate Super( <SuperClassN> ): => ::<SuperClassN>: ] ;
         [ ; #translate Super( <SuperClass1> ): => ::<SuperClass1>: ] ;
         [ ; #translate Super(): => ::<SuperClass1>: ] ;
         [ ; #translate Super: => ::<SuperClass1>: ] ;
         [ ; #translate ::Super : => ::<SuperClass1>: ]
      from our hbclass.ch (at least the last three ones) because they beaks
      code which uses SUPER identifier

  * harbour/source/rtl/philes.c
    * changed FSEEK() to use hb_fsSeekLarge() for OSes which supports
      large (64bit) files

  * harbour/source/vm/classes.c
    ! updated some comments about function syntax
2007-04-10 12:35:47 +00:00
Przemyslaw Czerpak
343b680230 2007-04-04 12:15 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/ChangeLog
    ! typos
  * harbour/source/vm/extend.c
    * formatting
2007-04-04 10:15:16 +00:00
Przemyslaw Czerpak
49b4fc91e3 2007-04-04 10:35 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/tip/Makefile
  - harbour/contrib/tip/atokens.c
    * removed HB_ATOKENS()

  - harbour/source/rtl/teditorl.c
    - removed __STRTOKEN(), __STRTKPTR()

  * harbour/common.mak
  * harbour/source/rtl/Makefile
  * harbour/include/hbextern.ch
  + harbour/source/rtl/hbtoken.c
    + added set of functions to manipulate string tokens:
         HB_TOKENCOUNT( <cString>, [ <cDelim> ], [ <lSkipStrings> ],
                        [ <lDoubleQuoteOnly> ] ) -> <nTokens>
         HB_TOKENGET( <cString>, <nToken>, [ <cDelim> ], [ <lSkipStrings> ],
                      [ <lDoubleQuoteOnly> ] ) -> <cToken>
         HB_TOKENPTR( <cString>, @<nSkip>, [ <cDelim> ], [ <lSkipStrings> ],
                      [ <lDoubleQuoteOnly> ] ) -> <cToken>
         HB_ATOKENS( <cString>, [ <cDelim> ], [ <lSkipStrings> ],
                     [ <lDoubleQuoteOnly> ] ) -> <aTokens>
      All these functions use the same method of tokenization. They can
      accept as delimiters string longer then one character. By default
      they are using " " as delimiter. " " delimiter has special mening
      Unlike other delimiters repeted ' ' characters does not create empty
      tokens, f.e.: HB_ATOKENS( "    1     2 3  " ) returns array { "1", "2" }
      Any other delimiters are restrictly counted, f.e. HB_ATOKENS( ",,1,,2,")
      return array: { "", "", "1", "", "2", "" }.

    + added emulation for old __STRTOKEN(), __STRTKPTR() and xHarbour's
      __STRTOKENCOUNT() by HB_TOKEN*() functions. They do not return
      exactly the same result as __STRT*() functions which in some cases
      ignored some delimiters and return wrong results.

  * harbour/source/rdd/Makefile
  + harbour/source/rdd/dbsql.c
    + added __DBSQL() function

  * harbour/include/hbsetup.h
  * harbour/source/vm/fm.c
    + added support for native Windows memory allocation functions
      It can be enabled by HB_FM_WIN32_ALLOC macro and disable C-RTL
      memory manager.

  * harbour/tests/mousetst.prg
    * touch screen output before MPRESENT() to work with GTXWC
2007-04-04 08:35:12 +00:00
Przemyslaw Czerpak
2eb7297e54 2007-04-03 14:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/vm/arrays.c
    + added hb_arrayRevScan()

  * harbour/source/vm/arrayshb.c
    + added RASCAN() covered by HB_COMPAT_XHB macro
2007-04-03 12:10:15 +00:00
Przemyslaw Czerpak
759c045f73 2007-03-30 15:12 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbexprb.c
    % optimize PCODE generated for IIF() used as statement

  * harbour/include/hbpp.h
    * fixed typo in comment

  * harbour/source/pp/ppcore.c
    * fixed .ppo output in some string expressions inside []

  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  * harbour/source/rdd/dbfntx/dbfntx1.c
    + added some missing DBOI_* actions

  * harbour/source/rtl/hbregex.c
    + added comment

  * harbour/source/vm/hashes.c
    * set autoadd by default when compiled with HB_COMPAT_XHB macro

  * harbour/source/debug/debugger.prg
  * harbour/source/rdd/dbstrux.prg
  * harbour/source/rtl/tbrowse.prg
    * removed unnecessary NIL in in IIF() statements
  * harbour/utils/hbtest/rt_misc.prg
    * removed unnecessary ::cValue in in IIF() statements
2007-03-30 13:16:10 +00:00
Przemyslaw Czerpak
88cda3200d 2007-03-22 12:55 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/common.mak
    * updated for new files - please check

  * harbour/harbour.spec
    * added compiler library

  * harbour/bin/pack_src.sh
  * harbour/bin/hb-func.sh
    * updated for new files and libraries

  * harbour/config/w32/mingw32.cf
  * harbour/config/w32/watcom.cf
  * harbour/config/w32/xcc.cf
    * added winsock libraries

  * harbour/include/hbapicdp.h
  * harbour/source/rtl/cdpapi.c
    + added hb_cdpicmp() - not case sensitive version of hb_cdpcmp()

  * harbour/include/hbapiitm.h
  * harbour/source/vm/itemapi.c
    + hb_itemStrICmp(), hb_itemCopyFromRef(), hb_itemMoveFromRef()

  * harbour/include/hbapi.h
  * harbour/include/hbcomp.h
  * harbour/include/hbcompdf.h
  * harbour/include/hbexpra.c
  * harbour/include/hbexprb.c
  * harbour/include/hbexprop.h
  * harbour/include/hbmacro.h
  * harbour/include/hbpcode.h
  * harbour/include/hbvmpub.h
  * harbour/include/hbxvm.h
  * harbour/source/common/expropt1.c
  * harbour/source/compiler/complex.c
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/gencc.c
  * harbour/source/compiler/gencli.c
  * harbour/source/compiler/genhrb.c
  * harbour/source/compiler/genobj32.c
  * harbour/source/compiler/harbour.y
  * harbour/source/compiler/harbour.yyc
  * harbour/source/compiler/harbour.yyh
  * harbour/source/compiler/hbdead.c
  * harbour/source/compiler/hbfix.c
  * harbour/source/compiler/hblbl.c
  * harbour/source/compiler/hbmain.c
  * harbour/source/compiler/hbopt.c
  * harbour/source/compiler/hbpcode.c
  * harbour/source/compiler/hbstripl.c
  * harbour/source/macro/macro.y
  * harbour/source/macro/macro.yyc
  * harbour/source/macro/macro.yyh
  * harbour/source/macro/macrolex.c
  * harbour/source/vm/Makefile
  * harbour/source/vm/arrays.c
  * harbour/source/vm/asort.c
  * harbour/source/vm/classes.c
  * harbour/source/vm/eval.c
  * harbour/source/vm/garbage.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/itemapi.c
  * harbour/source/vm/macro.c
  + harbour/source/vm/hashes.c
  + harbour/source/vm/hashfunc.c
    + added hash items, f.e.:
         local h1 := {=>}, h2 := { "a"=>1.234, "b"=>2.345 }
         ? h2[ "a" ], h2[ "b ]
    + added support for DYNAMIC function declaration - it allow to define
      functions which are lately bound at runtime, f.e.:
         /*** t01.prg ***/
         dynamic func1
         proc main()
         local h:=__hrbload("t02.hrb")
         ? func1()
         return

         /*** t02.prg ***/
         func func1
         return "Hello!!!"

    % use new FUNCALL structure to hold EXTERNAL and DYNAMIC functions,
      it reduce memory usage, FUNCALL is much smaller then FUNCTION
    % use symbol scope bits when possible instead of making some linear scan
    + added new enumarator message: __ENUMKEY - it allow to access
      key value when hash item is base enumerator value, f.e.:
         proc main()
         local v, h:={"a"=>1.000,"b"=>2.000,"c"=>3.000}
         heval( h, { |k,v,i| qout( k, v, i ) } ); ?
         for each v in h
            ? v, "=>", v:__enumKey(), v:__enumValue(), v:__enumIndex(), ;
                       valtype(v:__enumBase())
            v += 0.123
         next
         ? ;heval( h, { |k,v,i| qout( k, v, i ) } )
         return
    + added C level hb_hash*() functions
    + added support for full HASH item cloning and updated array cloning
      to also clone nested hashes - please note that xHarbour does not do
      that, in xHarbour ACLONE() clones _ONLY_ nested arrays and HCLONE()
      _DOES_NOT_ clone _ANY_ nested items.

  * harbour/include/hbextern.ch
    + added hash functions HB_H*()
    * changed INET*() functions to HB_INET*()
    + added hash functions H*() and socket functions INET*() when
      HB_COMPAT_XHB is set

  * harbour/include/hbtypes.h
    + added missing HB_EXTERN_BEGIN / HB_EXTERN_END

  * harbour/include/hbpp.h
  * harbour/source/pp/ppcore.c
    ! added protection against automatic word concatenation in some cases
    ! fixed preprocessing expressions when match marker matches ';' token

  * harbour/source/rtl/Makefile
  + harbour/source/rtl/itemseri.c
    + added functions for item serialization: HB_SERIALIZE() and
      HB_DESERIALIZE() - these function are not binary compatible
      with xHarbour functions with the same names but make very
      similar job with the exception to serialization of codeblock
      and object variables - Harbour does not allow to serialize
      codeblocks and serialize objects as arrays.
      In most cases these functions can replace the xHarbour ones
    + added HB_DESERIALBEGIN() and HB_DESERIALIZE() functions covered
      by HB_COMPAT_XHB macro - this functions are only for compatibility
      with existing xHarbour code, In Harbour HB_DESERIALBEGIN() is
      dummy function which returns first parameter and HB_DESERIALNEXT()
      is a simple wrapper to HB_DESERIALIZE() so it's not necessary to
      use them.

  * harbour/source/rtl/hbinet.c
    * changed INET*() functions to HB_INET*() and enable them for default
      build
    + added INET*() functions wrappers covered by HB_COMPAT_XHB macro

  * harbour/source/rtl/hbrandom.c
    + added HB_RANDOMINT() - xHarbour compatible

  * harbour/source/rtl/len.c
    + added support for HASHes

  * harbour/source/rtl/valtype.c
    + added support for HASHes
    + added set of HB_IS*() functions - they are a little bit faster then
      calling VALTYPE( v ) == <cVal>
    - removed HB_ISBYREF() - this function cannot longer work, it was using
      a Clipper incompatible anomalies in passing variables by reference I
      fixed so it has to stop to work. If it will be realy necessary to
      implement HB_ISBYREF() function then please inform me - it will have
      to be done at compiler level or with some much deeper HVM stack
      checking.

  * harbour/source/vm/extend.c
    ! fixed hb_extIsArray() and hb_extIsObject() to work well with
      parameters passed by reference.
      Please note that now hb_extIsArray() return TRUE only for pure arrays
      not object values.

  * harbour/contrib/Makefile
  + harbour/contrib/tip/Changelog
  + harbour/contrib/tip/Makefile
  + harbour/contrib/tip/atokens.c
  + harbour/contrib/tip/base64x.c
  + harbour/contrib/tip/cgi.prg
  + harbour/contrib/tip/client.prg
  + harbour/contrib/tip/credent.prg
  + harbour/contrib/tip/cstr.prg
  + harbour/contrib/tip/encb64.prg
  + harbour/contrib/tip/encmthd.c
  + harbour/contrib/tip/encoder.prg
  + harbour/contrib/tip/encqp.prg
  + harbour/contrib/tip/encurl.prg
  + harbour/contrib/tip/ftpcln.prg
  + harbour/contrib/tip/hbhex2n.c
  + harbour/contrib/tip/httpcln.prg
  + harbour/contrib/tip/mail.prg
  + harbour/contrib/tip/popcln.prg
  + harbour/contrib/tip/smtpcln.prg
  + harbour/contrib/tip/tip.ch
  + harbour/contrib/tip/url.prg
  + harbour/contrib/tip/utils.c
    + added TIP library - code borrowed from xHarbour



   Please test - a lot of above code is not well tested, also some peaces
   were written over year ago for different things (f.e. serialization for
   NETRDD) and now I collected them and committed.
   The TIP library was not tested at all. It can be compiled but I cannot
   say if it works - I hope that people familiar with it can make necessary
   test and fixes.
   It's also not the final version of low level HASH item code. I'm working
   on more efficient structure which uses binary tries but I cannot say when
   I'll finish it (maybe in this weekend or maybe in next year) so I committed
   working version now even if I'm not happy with overall performance (BTW
   not worser then in xHarbour)
2007-03-22 12:28:14 +00:00
Przemyslaw Czerpak
a193cd605d 2007-03-14 14:45 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapiitm.h
  * harbour/source/vm/eval.c
    + added C function hb_execFromArray()

  * harbour/common.mak
  * harbour/source/rtl/Makefile
  + harbour/source/rtl/hbinet.c
    + added xHarbour compatible INET*() functions - code borrowed
      from xHarbour with some minor modifications and fixes

  * harbour/include/hbextern.ch
    + added regex functions
    + added INET*() functions when compiled with HB_COMPAT_XHB
2007-03-14 13:47:39 +00:00
Przemyslaw Czerpak
0ef0f1aab9 2007-03-13 19:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/include/hbapiitm.h
  * harbour/source/vm/garbage.c
  * harbour/source/vm/extend.c
  * harbour/source/vm/itemapi.c
    + added hb_gcFunc(), hb_parptrGC(), hb_itemGetPtrGC()
      hb_parptrGC() and hb_itemGetPtrGC() uses GC cleanup function address
      to validate if pointer item points to expected memory block type

  * harbour/source/common/hbhash.c
  * harbour/source/compiler/hbident.c
    * formatting and minor modifications

  * harbour/source/pp/pplib.c
  * harbour/source/pp/pplib2.c
    * use hb_parptrGC() to be sure that given pointer item points
      to PP structure

  + harbour/include/hbregex.h
  + harbour/source/rtl/hbregex.c
  * harbour/source/rtl/Makefile
  * harbour/common.mak
    + added support for regular expressions. Now it's enabled by default
      only in *nixes (POSIX regex) and BCC 5.5 (PCRE regex). Setting
      HB_PCRE_REGEX macro enables Perl-Compatible Regular Expressions
      and HB_POSIX_REGEX - POSIX regular expressions. In xHarbour regex
      support is enabled for all builds because PCRE source code is stored
      in CVS. If you will want we can make the same.
    + the following C functions are available:
      hb_regexCompile(), hb_regexGet(), hb_regexFree(), hb_regexMatch()
    + the following PGR functions are available:
      HB_REGEXCOMP(), HB_ISREGEX(), HB_ATX(), HB_REGEX(), HB_REGEXMATCH(),
      HB_REGEXSPLIT(), HB_REGEXATX(), HB_REGEXALL()
      They are working in similar way to the ones in xHarbour with the
      exception to some bug fixes and form of compiled regular expression.
      In Harbour it's pointer item for which HB_ISREGEX() returns TRUE when
      in xHarbour it's binary string.

  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  * harbour/source/rdd/dbfntx/dbfntx1.c
    * enabled code to seek in index using regular expressions
      (DBOI_SKIPREGEX[BACK])
2007-03-13 18:40:56 +00:00
Przemyslaw Czerpak
8ce0d03aa0 2007-03-09 04:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/common.mak
  * harbour/makefile.bc
  * harbour/makefile.vc
  * harbour/bin/hb-func.sh
  * harbour/config/global.cf
  * harbour/include/error.ch
  * harbour/include/hbcomp.h
  * harbour/include/hbcompdf.h
  * harbour/include/hbexpra.c
  * harbour/include/hbexprb.c
  - harbour/include/hbexprc.c
  * harbour/include/hbexprop.h
  * harbour/include/hbmacro.h
  * harbour/source/Makefile
  * harbour/source/common/expropt1.c
  * harbour/source/common/expropt2.c
  * harbour/source/compiler/Makefile
  - harbour/source/compiler/exproptc.c
  - harbour/source/compiler/harbour.c
  * harbour/source/compiler/harbour.y
  * harbour/source/compiler/harbour.yyc
  * harbour/source/compiler/hbcomp.c
  * harbour/source/compiler/hbgenerr.c
  + harbour/source/compiler/hbmain.c
  * harbour/source/compiler/hbpcode.c
  * harbour/source/macro/Makefile
  * harbour/source/macro/macro.y
  * harbour/source/macro/macro.yyc
  - harbour/source/macro/macroc.c
  + harbour/source/main/Makefile
  + harbour/source/main/harbour.c
  * harbour/source/vm/macro.c
    * resolved name conflicts between compiler and macro compiler.
      Now new compiler library is created.
      There are some things which can be improved and cleaned yet
      but it's enough to create single binaries with compiler+HVM+RTLs.
      I updated non GNU make files but I cannot tested the modifications
      - please check and fix me if necessary
2007-03-09 03:44:42 +00:00
Przemyslaw Czerpak
4a6f109e4b 2007-03-01 14:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/config/os2/global.cf
  * harbour/contrib/hgf/os2pm/os2pm.c
  * harbour/include/hbdefs.h
  * harbour/include/hbgtcore.h
  * harbour/source/rdd/dbcmd.c
  * harbour/source/vm/mainpm.c
    * cleaned OS2 build errors and warnings reported by David Macias.
      Modifications not tested - OS2 users will have to make tests and
      reports problems.
2007-03-01 13:15:01 +00:00