Commit Graph

278 Commits

Author SHA1 Message Date
Przemysław Czerpak
ff1288dc3f 2014-11-04 01:54 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
  * doc/xhb-diff.txt
    ! typos

  * doc/clipper.txt
    ! removed completely false information about 'LIST &cMacro'
    * updated information about FOR EACH
    ; in general information in this file are outdated and does not
      correctly describe current Harbour behavior. I strongly suggest
      to not use it in any other documentation. In some spare time
      I'll update this file or remove.

  * doc/cmpopt.txt
    + added information about unsupported by Clipper syntax extension:
         iif( <expr1>, <expr2>, <expr3> ) <op>= <expr4>

  * include/hbrddnsx.h
    * minor modification in comment

  * src/macro/macrolex.c
    * accept unconditionally hash 'key => value' operator

  * src/rdd/dbfnsx/dbfnsx1.c
    ! fixed very bad bug in leaf key compression. This problem could be
      exploited by keys containing containing CHR( 255 ) in encoded keys
      just before trailing empty key characters.
      This bug could cause index corruption.
    * use hb_xgrabz()
    * formatting
2014-11-04 01:54:04 +01:00
Przemysław Czerpak
ef962484be 2014-10-24 15:15 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddntx.h
  * src/rdd/workarea.c
  * src/rdd/dbf1.c
  * src/rdd/delim1.c
  * src/rdd/sdf1.c
  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfntx/dbfntx1.c
  * src/rdd/dbffpt/dbffpt1.c
  * contrib/rddads/ads1.c
  * contrib/rddads/adsfunc.c
  * contrib/rddads/adsx.c
  * contrib/rddsql/sqlbase.c
  * contrib/rddsql/sqlmix.c
  * contrib/sddfb/core.c
  * contrib/sddmy/core.c
  * contrib/sddoci/core.c
  * contrib/sddodbc/core.c
  * contrib/sddpg/core.c
  * contrib/sddsqlt3/core.c
    * cleaned AREAP casting
    * unified some variable names
    * cleaned some DBOI_* actions
    * allow to call ORDERINFO() method without itmResult item.
    * few other cleanups
2014-10-24 15:15:39 +02:00
Przemysław Czerpak
309dc0a307 2014-10-24 04:13 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/ads1.c
  * contrib/rddads/adsfunc.c
  * contrib/rddads/rddads.h
    + added support for RDDI_INDEXPAGESIZE in ADI indexes

  * src/rdd/dbf1.c
    * minor cleanup

  * include/hbrddcdx.h
  * src/rdd/dbfcdx/dbfcdx1.c
    + added support for long index keys when bigger pages are used.
      Now maximum index key size is 4082 for 8192 bytes length index pages.
      Indexes are critical for database applications so please make
      tests with current code and report problems if you find any.
2014-10-24 04:13:06 +02:00
Przemysław Czerpak
321df92cbe 2014-10-23 17:58 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddcdx.h
  * src/rdd/dbfcdx/dbfcdx1.c
    * renamed CDX_TYPE_TEMPORARY to CDX_TYPE_PARTIAL
    * eliminated Temporary member from CDXTAG structure
    * cleaned tag signature flag setting to strictly follow
      CL5.2 (SIx3) and CL5.3 (COMIX)
2014-10-23 17:58:21 +02:00
Przemysław Czerpak
e8ab404525 2014-10-23 14:11 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbfcdx/dbfcdx1.c
    * pacified warning
2014-10-23 14:11:08 +02:00
Przemysław Czerpak
537d0e78fa 2014-10-23 13:50 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbfcdx/dbfcdx1.c
    ; minor comment update

  * utils/hbmk2/hbmk2.prg
    ! fixed error/waring messages after recent modifications for -stop
      switch
2014-10-23 13:50:25 +02:00
Przemysław Czerpak
25b36d0e77 2014-10-23 13:20 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/ads1.c
  * contrib/rddads/adsfunc.c
    ! check if AE_VALUE_OVERFLOW macro exists before use
    ! fixed memory leak
    % use char* instead of UNSIGNED8* to eliminate unnecessary casting
    * use HB_IT_EVALITEM instead of HB_IT_BLOCK
    * formatting and minor cleanups

  * include/hbrddcdx.h
  * src/rdd/dbfcdx/dbfcdx1.c
    * modifications for longer index keys when bigger pages are used
      (work in progress)
2014-10-23 13:20:27 +02:00
Przemysław Czerpak
9492a2e54e 2014-10-22 10:25 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddcdx.h
  * src/rdd/dbfcdx/dbfcdx1.c
    * modifications for longer index keys when bigger pages are used
      (work in progress)
2014-10-22 10:25:27 +02:00
Przemysław Czerpak
a6b992a722 2014-10-22 02:24 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddcdx.h
  * src/rdd/dbfcdx/dbfcdx1.c
    * force default index page size when CDX header does not contain
      Harbour signature
    * added RTE when index expression returns item with unsupported
      type during indexing
    * modifications for longer index keys when bigger pages are used
      (work in progress)
    * formatting
2014-10-22 02:24:03 +02:00
Przemysław Czerpak
777e24ee87 2014-10-21 16:40 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddcdx.h
  * src/rdd/dbfcdx/dbfcdx1.c
    * added support for user defined index page size in DBFCDX.
      To change page size for newly created index it's enough to call:
         hb_rddInfo( RDDI_INDEXPAGESIZE, <nNewSize>,, "DBFCDX" )
      DBFCDX accepts page sizes which are power of 2 in from 512 to 8192.
      The upper range is my personal decision and can be easy changed
      in Harbour source code. 512 is default CDX index page size and
      only such indexes can be read by other RDDs.
      In some cases bigger pages can increase performance and reduce
      index size. In local networks probably 1024 should give optimal
      performance because can be transferred in single ethernet frame.
      Just make a tests.
    ; In next step I plan to add support for longer index keys when
      bigger pages are used.

  * utils/hbmk2/hbmk2.prg
    ! added -stop fix borrowed from Viktor's branch
2014-10-21 16:40:26 +02:00
Przemysław Czerpak
8d8558fbab 2014-10-20 17:33 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/lang2po.hb
    ! fixed negative UTC offsets to string conversion

  * include/dbinfo.ch
  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfntx/dbfntx1.c
    + added DBOI_INDEXPAGESIZE - get index page size

  * include/dbinfo.ch
  * include/hbrdddbf.h
  * src/rdd/dbf1.c
    + added RDDI_INDEXPAGESIZE - get/set default index page size

  * include/hbrddcdx.h
  * src/rdd/dbfcdx/dbfcdx1.c
    * modification for user defined index page size (work in progress)
2014-10-20 17:33:49 +02:00
Przemysław Czerpak
556a6cbc2d 2014-10-19 14:46 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtwvt/gtwvt.c
    * small cleanup in HB_GTI_UNITRANS
2014-10-19 14:46:35 +02:00
Przemysław Czerpak
dfc2f42e79 2014-10-17 14:55 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddcdx.h
  * src/rdd/dbfcdx/dbfcdx1.c
    + added support for large index files over 4GB length.
      These are slightly modified CDX indexes which stores index page numbers
      instead of index page offsets inside index file. This trick increase
      maximum index files size from 2^32 (4GB) to 2^41 (2TB). This index
      format is enabled automatically when DB_DBFLOCK_HB64 is used. This is
      the same behavior as in DBFNTX and DBFNSX for which I added support
      for large indexes (up to 4TB) few years ago.
      Warning: new CDX indexes are not backward compatible and cannot be
               read by other systems or older [x]Harbour versions.
               If you try to open new indexes using older [x]Harbour RDDs
               then RTE "DBFCDX/1012 Corruption detected" is generated.
               When current Harbour *DBFCDX/SIXCDX RDD open index file
               then it automatically recognize type of index file so it
               will work correctly with both versions without any problem.
               In short words: People using DB_DBFLOCK_HB64 should remember
               that after reindexing with new Harbour applications old ones
               cannot read new CDX indexes.
    ; In next step I plan to add support for user defined page size in CDX
      index files.

  * doc/xhb-diff.txt
    * added information about extended CDX format to section "NATIVE RDDs"

  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfntx/dbfntx1.c
    * disable record readahead buffer used during indexing when only
      one record can be stored inside
    ! generate RTE when data cannot be read into record readahead buffer
      during indexing
2014-10-17 14:55:16 +02:00
Przemysław Czerpak
bbc4258011 2014-10-14 14:05 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
    ! fixed size of picture shown by HB_GTI_DISPIMAGE
    ! fixed indexes used to restore text data after
      hb_gtInfo( HB_GTI_DISPIMAGE, "" )
2014-10-14 14:05:18 +02:00
Przemysław Czerpak
4b67bdd162 2014-10-13 18:53 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
    ! fixed recent modification (force character redrawing)
2014-10-13 18:53:49 +02:00
Przemysław Czerpak
d21d6dd5e0 2014-10-13 17:11 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/Makefile
    ! fixed to only include compilable GTs in Harbour dynlib
      (borrowed from Viktor's fork)

  * src/rtl/gtxwc/gtxwc.c
    + redraw screen area when empty string is passed as image body
      to HB_GTI_DISPIMAGE, i.e.:
            hb_gtInfo( HB_GTI_DISPIMAGE, "" [, <aCords> ] )
      If <aCords> is not given then whole screen is refreshed.
2014-10-13 17:11:44 +02:00
Przemysław Czerpak
11df11dd7a 2014-10-08 18:00 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/arrays.c
    ! added protection against internal error when ACOPY() is executed
      with the same array passed as source and target without any indexes
      which can force item move. Now ACOPY() works like in Cl*pper.
2014-10-08 18:00:07 +02:00
Przemysław Czerpak
9f3c247cf4 2014-10-08 02:00 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiosrv.c
  * src/rtl/gtpca/gtpca.c
    * pacified warnings

  * src/rtl/hbjson.c
    ! include hbjson.h
2014-10-08 02:00:37 +02:00
Przemysław Czerpak
e5897132b8 2014-10-07 10:25 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc1.cpp
  * src/rtl/gtxwc/gtxwc.c
  * src/rtl/langapi.c
    * pacified warnings

  * contrib/hbmlzo/3rd/minilzo/minilzo.hbp
    ! disabled dynamic library
2014-10-07 10:25:57 +02:00
Przemysław Czerpak
1a78d17f3b 2014-10-07 00:38 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbdefs.h
    * use strict aliasing friendly conversions in MSC builds which support
      intrinsic version of _byteswap_*() functions.
      It should also pacify some of MSC warnings.

  * include/hbdefs.h
  * src/rdd/dbffpt/dbffpt1.c
    * minor formatting

  * contrib/gtwvg/wvgcore.c
    ! fixed HANDLE to LONG casting - it's bug in 64 bit builds
2014-10-07 00:38:13 +02:00
Przemysław Czerpak
e2a9cabe96 2014-10-06 22:35 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbcomp.h
  * include/hbcompdf.h
  * src/compiler/hbmain.c
  * src/compiler/harbour.y
  * src/compiler/harbour.yyc
    * replaced 'char' type holder with 'HB_BYTE' - this is part of never
      finished code which is completely dummy in current compiler and above
      modification is only to pacify warnings which are real bugs in existing
      implementation. I do not plan to modify or fix this code. I'll remove
      it working on fully functional strong typing implementation.
2014-10-06 22:35:58 +02:00
Przemysław Czerpak
9293e31ed4 2014-10-06 22:15 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/harbour.y
  * src/macro/macro.y
    * disabled 4244 and 4702 warnings in MSVC builds - this warnings are
      from code generated by bison and they are out of our direct control

  * src/compiler/harbour.yyc
  * src/compiler/harbour.yyh
  * src/macro/macro.yyc
  * src/macro/macro.yyh
    * regenerated
2014-10-06 22:15:28 +02:00
Przemysław Czerpak
f0cacca706 2014-10-06 21:10 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
    ! fixed multiple input context initialization in HB_GTI_FONTSEL.
      Thanks to Rolf for the information.

  * contrib/hbnetio/netiocli.c
  * contrib/hbwin/wapi_winbase.c
  * src/rtl/iousr.c
  * src/vm/cmdarg.c
    * pacified MSVC warnings
2014-10-06 21:10:54 +02:00
Przemysław Czerpak
b2b672222e 2014-10-05 16:40 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/3rd/tiff/tiff.dif
  * src/3rd/tiff/tiffconf.h
    * do not redefine O_* macros in all *nix builds

  * src/compiler/harbour.yyc
  * src/compiler/harbour.yyh
  * src/macro/macro.yyc
  * src/macro/macro.yyh
    * regenerated with bison 3.0.2.

  * src/rtl/hbcom.c
    ! fixed compilation with OpenWatcom for Linux

  * src/rtl/hbsocket.c
    * pacified warning in OpenWatcom Linux builds

  * src/rtl/hbjson.c
    * own code for conversion integer numbers
2014-10-05 16:40:18 +02:00
Przemysław Czerpak
f84a6ff3d4 2014-10-05 11:45 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/harbour.y
  * src/macro/macro.y
    * update declaration depreciated in new bison version

  * src/macro/macro.yyc
  * src/macro/macro.yyh
    * regenerated
2014-10-05 11:45:14 +02:00
Przemysław Czerpak
748cd589e1 2014-10-04 21:25 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc1.cpp
    + added support for decoded image data passed to HB_GTI_DISPIMAGE like
      in GTXWC. Supported formats are RGB32, RGB16 and MONO bitmap.
      Unlike GTXWC GTQTC rescales bitmap to passed cords.

  * src/rdd/wafunc.c
    ! fixed very bad bug introduced in previous modification - in fact
      potential problem existed from the beginning anyhow recent modification
      allow to exploit it in all complex index expressions.
2014-10-04 21:25:28 +02:00
Przemysław Czerpak
4dfd5150a3 2014-10-03 19:06 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
    ! fixed typo reported by Rolf
2014-10-03 19:06:47 +02:00
Przemysław Czerpak
62478c5657 2014-10-03 16:03 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/wafunc.c
    % use dynamic symbol pointer to find field index

  * src/rdd/workarea.c
    * set default maximum field size to HB_SYMBOL_NAME_LEN characters
      (by default in Harbour builds HB_SYMBOL_NAME_LEN is 63)
      Some RDDs may set longer names but it will be respected only by
      FieldName() function and in all other cases only HB_SYMBOL_NAME_LEN
      characters is significant for Harbour so such decision should be
      well thought by RDD authors because it may confuse users.
      Warning: all 3-rd party RDDs which need to force shorter names
               should update uiMaxFieldNameLength in their NEW() method
               just after SUPER_NEW() call, i.e. like in core DBF RDD.
    ! respect uiMaxFieldNameLength when new fields are added

  * src/rdd/dbf1.c
    * set maximum field size to 10 characters

  * contrib/rddsql/sqlbase.c
    - removed code used to set uiMaxFieldNameLength to HB_SYMBOL_NAME_LEN.
      Now it's default field length value for each RDD unless it does not
      change it.

  * contrib/rddads/ads1.c
    * minor modification in adsFieldName()

  * contrib/hbwin/wapi_winbase.c
    + added support for FORMAT_MESSAGE_ALLOCATE_BUFFER and 6-th <nSize>
      parameter to wapi_FormatMessage() function. The 6-th <nSize> parameter
      has higher priority then size of string passed in the 5-th parameter.
    ! fixed potential memory leak
2014-10-03 16:03:55 +02:00
Przemysław Czerpak
36973e8622 2014-10-01 22:24 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapi.h
  * src/common/hbstr.c
    + added new function hb_strAtI() - it works like hb_strAt() but it
      ignores the case of the ASCII characters

  * src/rtl/ati.c
    * renamed local static function hb_strAtI() to s_strAtI() to avoid
      conflict with new public hb_strAtI() function.

  * contrib/xhb/xhbat.c
    - removed local static function hb_strAtI() - current public hb_strAtI()
      is compatible with it.

  * contrib/sddsqlt3/core.c
    + added new code to set column type giving the highest priority SQLITE3
      declared column types.
      Please test - I haven't made any.
    ! do not cast floating point values to integer

  * contrib/hbwin/hbwin.hbx
  * contrib/hbwin/win_prn2.c
    ! fixed win_printerGetDefault() in Win9x builds - fix and some
      formatting and casting borrowed from Viktor's fork.
    + added new PRG function:
         win_PrintDataRaw( <cPrinter>, <cData> [, <cDocName>] )
                           -> <nBytesPrinted>
      It's similar to win_PrintFileRaw() but sends to given printer passed
      in 2-nd parameter <cData> instead of file body.
      On error it returns negative value.
    * cleaned casting and minor formatting

  * src/rtl/gtxwc/gtxwc.c
    + added support for HB_GTI_DISPIMAGE. It's slightly modified code sent
      by Rolf to Harbour devel list. In comparison to original version it
      supports <nDepth> as 4-th item of array with bitmap description to use
      with some other GTs which can support different color depths or can
      make conversion. It also supports bitmaps passed as strings.
    % slightly improved HB_GFX_GETPIXEL
2014-10-01 22:24:56 +02:00
Przemysław Czerpak
daa2a7f0cd 2014-09-23 11:41 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc1.cpp
  * src/rtl/gtwvt/gtwvt.c
  * contrib/gtwvg/gtwvgd.c
    * use hb_vmRequestQuit() instead of hb_vmRequestCancel() when
      close event is received - it is GTXWC compatible behavior and
      allows to execute user EXIT PROCEDUREs.
      Please also remember that all ALWAYS sections are executed too
      regardles of requested event (QUIT, BREAK, CANCEL)

  * src/rtl/gtwvt/gtwvt.c
    ! fixed processing WM_QUERYENDSESSION and WM_ENDSESSION messages.
      Now GTWVT applications do not interrupt system shutdown process
      and do not close application if other process interrupted it.
      In the future we can also add support for blocking system shutdown
      operation, i.e. using HB_GTI_CLOSEMODE as bitfield, anyhow before
      we begin to change it we should agree final version.
    ! applied Rolf's patch which fixes circle and ellipse cords.
      I haven't tested it and I hope that they were verified visually
      on the screen - some of Windows GUI functions do not access
      border points.
2014-09-23 11:41:11 +02:00
Przemysław Czerpak
209bd5e587 2014-09-19 15:39 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
    + added support for HB_GTI_MOUSEPOS_XY and HB_GFX_GETPIXEL.
      Modifciations created by Rolf.
2014-09-19 15:39:18 +02:00
Przemysław Czerpak
cbb89e780a 2014-09-19 15:22 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbdate.c
    ! fixed typo in hb_timeUTCOffset() - this code was used in POSIX
      systems which do not support gmtime_r()/localtime_r() - many
      thanks to Teo.

  * src/debug/dbgentry.c
  * src/debug/debugger.prg
    * prepare the code to return error object when evaluated expression
      fails as proposed by Teo. This functionality is not enabled yet.
      I'm waiting for information about current public debugger API used
      in 3-rd party projects before I decide to change it.
2014-09-19 15:22:23 +02:00
Przemysław Czerpak
030baa1068 2014-09-17 16:45 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbdebug.ch
    + added HB_DBG_* constant values for arrays returned by __dbg*()
      functions

  * include/hbset.h
  * src/vm/set.c
    + added new C function: hb_setGetItem();

  * src/debug/dbgentry.c
    * use HB_DBG_* constant values
    + added new debugger function: __dbgGetSETs() - it returns array with
      all HVM SETs: { { <nSet>, <cSetName>, <xSetValue> }, ... }
    % optimized hb_dbgActivateCallStackArray() and hb_dbgActivateModuleArray()

  * src/debug/debugger.prg
    * use HB_DBG_* constant values
    * use __dbgGetSETs() for "System Settings" window
    + added support for Harbour SET extensions

  * ChangeLog.txt
    * updated description for structure of array returned
      by __dbgGetBreakPoints()
2014-09-17 16:45:44 +02:00
Przemysław Czerpak
b30c509fb0 2014-09-15 12:39 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtwvt/gtwvt.c
    ! update state of close button [x] and "Close" window menu item
      when new GTWVT window is created
2014-09-15 12:39:53 +02:00
Przemysław Czerpak
001939d5db 2014-09-14 20:48 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbmysql/tmysql.prg
    * added support for nFlags in TMySQLServer constructor as
      suggested by Fernando Athayde

  * src/rtl/gtcgi/gtcgi.c
    % replaced hb_cdpnDup() with hb_cdpnDup3() to eliminate unnecessary
      memory block duplicating when translation is not activated.

  * src/vm/itemapi.c
    * removed old ugly hack used to mark infinite or undefined double
      value using double item length field. The code which created such
      item have been eliminated many years ago.
    * use HB_DEFAULT_WIDTH instead of hardcoded 99 to force numeric value
      length recalculation.
2014-09-14 20:48:14 +02:00
Przemysław Czerpak
f4b50145f4 2014-09-12 22:08 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/estack.c
    * always set NIL in item allocated by hb_stackAllocItem() when it's
      used as function. In internal macro this step is missing so allocated
      item still may contain other simple value. All places in HVM where
      hb_stackAllocItem() is used are safe for such situation (I've just
      verified them again).
      It fixes problem reported by Mindaugas when hb_stackAllocItem()
      was used inside DBFFPT as temporary item and could unintentionally
      change memo type if allocated item containes previous numeric
      value in valid memo type range.

  * src/rdd/wafunc.c
  * src/vm/hvm.c
  * src/vm/memvars.c
    * clear passed item before RTE when accessed memvar or field does not
      exists

  * src/vm/hashfunc.c
    ! set default value before decoding 2-nd logical parameter in
      hb_HAutoAdd() function. It fixes ambiguity reported by Mindaugas.
2014-09-12 22:08:47 +02:00
Przemysław Czerpak
76049df277 2014-09-11 14:41 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/debug/dbgentry.c
    * moved code used to create callstack array to separate
      function hb_dbgActivateCallStackArray()
    * changed function order to avoid some forward declarations

  * src/debug/dbgwa.prg
    ! fixed position of some item in F6-WA window
2014-09-11 14:41:31 +02:00
Przemysław Czerpak
819df442e4 2014-09-11 12:49 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/debug/dbgentry.c
    % optimized memvar updating
2014-09-11 12:49:50 +02:00
Przemysław Czerpak
b322589103 2014-09-10 00:51 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/hvm.c
    ! added missing HB_STACK_TLS_PRELOAD - thanks to Teo
2014-09-10 00:51:46 +02:00
Przemysław Czerpak
dfb6288137 2014-09-09 20:49 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbvm.h
  * src/vm/hvm.c
    + added new HVM function: hb_vmTryEval()
      This function tries to execute given block or function
      inside BEGIN SEQUENCE / RECOVER oErr / END SEQUENCE statement.
      It return HB_TRUE if it was executed without any problem and
      HB_FALSE otherwise. Result or RTE object is stored in 1-st
      parameter and should be freed by the caller using hb_itemRelese()

  * src/debug/dbgentry.c
    ! use hb_vmTryEval() instead of hb_itemDo() to evaluate trace point
      expressions. Now debugger does not crash when user sets tracepoint
      expression which cannot be evaluated in executed context.
    ! allow to use expressions with more then 99 variables
    ! added missing protections against GPF when wrong parameters are
      passed to __dbg*() functions
    * keep original trace and watch point expression for farther
      processing
    * replaced IS_IDENT_*() macros with HB_IS*IDCHAR()
    + added new debuger function:
         __dbgGetWatchPoints() -> <aWatchTracePoints>
      <aWatchTracePoints> contains subarrays describing trace and watch
      points:
         { <cExpression>, <lTracePoint>, <lValid>, <xResult> }
      It was the last function necessary to extract all information
      about debugged context from core internals. Now it's possible
      to create fully functional standalone debugger without storing
      and updating locally any information about debugger state.
      All such information can be accessed at any time using __dbg*()
      functions.
      It should greatly simplify creating 3-rd party debuggers like
      HWDebug or HBQTDebug.

  * src/debug/debugger.prg
    ! fixed callstack window updating during tracing and stepping.
      Tanks to Rolf for reporting the problem.
2014-09-09 20:49:09 +02:00
Przemysław Czerpak
e31d7b4ca7 2014-09-08 23:40 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbct/ctwin.c
    ! fixed typo in window area checking when current window is 0
      It fixes problem with debugger reported by Rolf.

  * src/debug/dbgentry.c
    % few optimizations
    ! added few protections against GPF when wrong parameters are passed
    ! fixed missing support for symbol, date and timestamp values in
      tracepoints
    + added __dbgCntWatch()

  * src/rtl/filesys.c
  * src/rtl/hbproces.c
    * pacified warning in more aggressive way for newer GCC versions

  * include/harbour.hbx
    * refreshed
2014-09-08 23:40:20 +02:00
Przemysław Czerpak
a777fd8568 2014-09-05 13:24 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
  * src/rtl/val.c
    + added new function: hb_Val( <cStr> [, <nLen> ] ) -> <nVal>
      it works like a val but set length for numeric result to passed string
      length or <nLen> parameter if is large enough.

  * src/rtl/tget.prg
    ! use hb_Val() instead of Val() for numeric GETs to replicate Clipper
      behavior for pictures longer then 10 characters.
2014-09-05 13:24:05 +02:00
Przemysław Czerpak
e41b3fa69a 2014-09-04 21:17 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/itemseri.c
    * minor update in comments

  * contrib/hbct/ctwin.c
  * src/rtl/hbgtcore.c
    ! fixed GTCTW window handle save/restore on debugger activation
      I broke in 107b36e847
      Thanks to Rolf for the info and patch.

  * contrib/hbziparc/ziparc.prg
    * synced with Viktor's branch.
      This code should contain Rolf fixes. Please test.
2014-09-04 21:17:02 +02:00
Przemysław Czerpak
169f5f3767 2014-09-03 20:21 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtwin/gtwin.c
    + added support for disabling [x] button of console window in older
      MS-Windows versions which do not have GetConsoleWindow() function,
      i.e. Win9x/ME
2014-09-03 20:21:09 +02:00
Przemysław Czerpak
2e65a28363 2014-08-27 18:19 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbserial.ch
  * src/rtl/itemseri.c
    + added HB_SERIALIZE_IGNOREREF flag.
      This flag fully disables logic used to detect multireferences to the
      same complex (sub)items like arrays or hashes. It increses the speed
      of serialization but serialized data does not contain any information
      about refences, i.e. aVal[ 1 ] and aVal[ 2 ] in code below:
         aSub := { 1, 2, 3 }
         aVal := { aSub, aSub }
      are serialized as separated arrays. Additionally items with cyclic
      references like:
         aSub[ 2 ] := aSub
      cannot be serialized at all with HB_SERIALIZE_IGNOREREF flag because
      it will create infinite serialization loop and crash with out of
      memory message.

  * src/rtl/itemseri.c
    % rewritten algorithm used to detect cyclic and multi references in
      serialized items. The original algorithm has very high overhead when
      huge arrays were serialized, i.e. serialization of array with 1'000'000
      of subarrays needed about 30 minutes on my i5@3.30GHz. Now it needs
      less then a second and this time is only a little bit bigger then
      used by serialization with HB_SERIALIZE_IGNOREREF flag.
      This modification improve performance also in other code using Harbour
      serialization mechanism like I18N files, HBNETIO, GTNET, ... when large
      arrays or hashes are saved or transmitted.

  * include/hbapi.h
  * include/hbapicls.h
  * src/vm/arrays.c
  * src/vm/classes.c
  * src/vm/hashes.c
  * src/vm/itemapi.c
    * replaced algorithm used to detect cyclic and multi references in
      array and hash clone operations with new one similar to current
      item serial code. The speed improvement for very large arrays is
      the same as in case of serialization code.

  * src/rtl/gtsln/mousesln.c
    ! typo in while loop - synced with Viktor's branch
2014-08-27 18:19:36 +02:00
Przemysław Czerpak
e222fc9080 2014-08-22 14:41 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/hvm.c
    * map 0 and 1 byte length strings to the same addresses

  * src/vm/itemapi.c
    ! check also size if string addresses are the same
2014-08-22 14:41:21 +02:00
Przemysław Czerpak
24ae545b3e 2014-08-21 01:11 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/mail.prg
    ! fixed missing 1-st adress in CC and BCC parameters - many
       for information about the bug and patch

  * contrib/hbtip/sendmail.prg
    ! typo in comment - thanks to Heinz V Bergen too

  * src/rtl/gtwvt/gtwvt.c
    * some minor modification to sync code with Vitkor's branch

  * src/vm/hvm.c
  * src/vm/itemapi.c
    * small optimization in string comparison
2014-08-21 01:11:26 +02:00
Przemysław Czerpak
0cc7212572 2014-08-19 11:11 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/debug/debugger.prg
    + implemented commmand window resizing with ALT+U and ALT+D keys
2014-08-19 11:11:36 +02:00
Przemysław Czerpak
107b36e847 2014-08-17 23:06 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddcdx.h
    * minor clarification in commnet

  * src/rtl/hbgtcore.c
    * do not save and restore SetColor() when debugger is activated and
      closed
2014-08-17 23:06:19 +02:00
Przemysław Czerpak
a1cbbb2cbf 2014-08-13 16:27 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/debug/dbgentry.c
  * src/debug/debugger.prg
  * src/debug/tbrwtext.prg
    * use one function to divide text per lines with the same rules
      as used in Cl*pper and Harbour PP.
    ! fixed input line size in SET edit window
    ! fixed validation in some input boxes
    * process only 1-st parameter in some commands just like Cl*pper does
    + added support for FILE OPEN <name> command
    ! fixed CALLSTACK ON | OFF command
    ! fixed NUM command
    + added support for VIEW <fileName> command
    + added support for LOCATE GOTOLINE <line> command
    + added support for LOCATE FIND <text> command
    + added support for RUN SPEED <num> command
    + added support for LIST WP|TP command
    + added support for BP <funcName> command
    + added support for DELETE ALL [TP|WP] and DELETE WP|TP <number>
      commands
    % few optimizations and some other minor fixes
2014-08-13 16:27:16 +02:00