Commit Graph

19129 Commits

Author SHA1 Message Date
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
Pritpal Bedi
9525224f03 2014-09-18 00:23 UTC-0800 Pritpal Bedi (bedipritpal/at/hotmail.com)
* contrib/gtwvg/gtwgud.c
    + Added: hb_gtInfo( HB_GTI_SETPOS_XY, { nRow|nX, nCol|nY } )
	   in addition to previous implementation.
2014-09-18 00:27:42 -07:00
Pritpal Bedi
f3b32e60d7 2014-09-17 14:50 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/gtwvg/wvtwin.ch
    + Added: more WAPI constants.
2014-09-17 14:57:32 -07: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
Przemysław Czerpak
3f86036f80 2014-08-11 16:21 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
+ contrib/hbcomio/hbcomio.hbx
    + added missing hbx file

  * package/harbour.spec
    ! fixed to not corrupt root filesystem during package build process.
      It was necessary to set HB_INSTALL_CONTRIB with package install prefix.
      (undocumented functionality)
      TODO: add single variable which can be used in such case for all
            HB_INSTALL_* variables.
    + added support for HBMK2 .hbc files for contrib libraries
2014-08-11 16:21:28 +02:00
Przemysław Czerpak
05fa5c0538 2014-08-11 13:54 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/debug/dbgbrwsr.prg
    ! fixed to not display last column out of browser area

  * src/debug/dbghelp.prg
  * src/debug/dbgmenu.prg
  * src/debug/debugger.prg
    * use strings to to locate help topics instead of hardcoded numeric
      offsets
    ! added support for topic specification in "HELP" command - Cl*pper
      compatibility
    ! allow to use FILE DOS (and F D shortcut) to activate OS Shell - Cl*pper
      compatibility

  * src/debug/dbgentry.c
    ! removed recent pseudo fix with memset() missing the last byte of
      allocated memory area since e59993bdb1.
      The original code was correct. In Harbour trailing 0 in all strings
      is set inside functions creating string items.

  * package/harbour.spec
    + added MXML library

  * package/mpkg_rpm.sh
    * respect HB_WITH_*=no and HB_WITH_*=local envvars
2014-08-11 13:54:18 +02:00
Viktor Szakáts
e45a1dd022 Merge branch 'master' of https://github.com/harbour/core
Conflicts [RESOLVED]:
	ChangeLog.txt
2014-08-05 20:00:37 +02:00
Viktor Szakáts
0c8947774b 2014-08-05 19:56 UTC+0200 Viktor Szakáts (vszakats users.noreply.github.com)
* src/debug/*
  + src/debug/en.txt
    * sync with 4d61fc5a25/src/debug
    * use DBS_* constants
    ! fixed to allow editing of CODEBLOCK types in hash/array/object elements
      as it was allowed in single variables
    ! fixed to detect all workareas not just the first arbitrary 512
    ! fixed memset() missing the last byte of allocated memory area
      since e59993bdb1
    + reworked help to store content in a text file out of the source code.
      It reduces binary size, makes translation possible, editing easier,
      source code leaner and easy to publish online.
    ! deleted help section explaining cld.exe
    * formatting, cleanups, optimization, translatability
2014-08-05 19:56:44 +02:00
Przemysław Czerpak
7a35350efb 2014-08-05 16:29 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/hbnetio.hbx
  * contrib/hbnetio/netiocli.c
  * contrib/hbnetio/readme.txt
    + added new client side function:
         netio_TimeOut( <pConnection> [, <nTimeOut>] ) -> [<nTimeOut>]
            Get/Set client side timeout for messages
    + inherit timeout used in socket connection and use it for farther
      message processing.
      Warning: incompatible, for slow connections or time consuming RPC
               functions people should set timeout using netio_TimeOut()
               function. In previous version timeout was set to -1 what
               means wait forever without any time limits or until
               connection is broken.
2014-08-05 16:29:37 +02:00
Przemysław Czerpak
3f78fa0b6e 2014-08-01 02:04 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* extras/gtwvw/gtwvwd.c
    ! fixed typo in WVW_SETICON() - thanks to Ash

  * src/rdd/dbcmd53.c
    ! typo in comment

  * src/rtl/dateshb.c
    % use hb_retclen() instead of hb_retc() when size is well known.

  * src/rtl/valtoexp.prg
    % use hb_defaultValue()

  * src/vm/estack.c
    * minor cleanup

  * src/vm/fm.c
    * modified a little bit HB_MEMINFO structure to force strict alignment
    + added debug code covered by HB_FM_FORCE_REALLOC macro which forces
      allocateing new block in each hb_xrealloc() call
    ! protect realloc() in HB_FM_STATISTIC by mutex, it fixes issue #77.

  * src/rtl/hbproces.c
    % unlock HVM waiting for process in OS2 builds
    ! build array of argument passed to process in hb_processRun() in
      parent process not forked one. It fixes possible deadlock in forked
      process because memory is allocated to create arguments array and
      in MT program memory managers may use mutexes internally which can
      be cloned to forked process in locked state.
      It fixes seldom and random HBMK2 freezing during compilation
      with -jobs=<n> parameter.

  * utils/hbmk2/hbmk2.prg
    ! fixed race condition in concurrent C compiler execution (-jobs=<n>)
      with script file

  * src/debug/dbgentry.c
    ! fixed crash when wrong expression is used as tracepoint
    ! fixed expression analyzer to correctly recognized extended strings e"..."
    * formatting

  * src/debug/dbgbrwsr.prg
  * src/debug/dbghelp.prg
  * src/debug/dbgtarr.prg
  * src/debug/dbgthsh.prg
  * src/debug/dbgtinp.prg
  * src/debug/dbgtmenu.prg
  * src/debug/dbgtobj.prg
  * src/debug/dbgtwin.prg
  * src/debug/dbgwa.prg
  * src/debug/debugger.prg
    * added calls to ::NotSupported() method for some still missing
      functionality
    ! do not use SetColor() but directly pass colors to used objects
      and functions
    ! do not use SetPos() and Row()/Col() for core functionality - it was
      source of few minor bugs
    % enable cursor only in input objects and disable it just after
    % eliminated code to save and restore cursor position and shape
    ! fixed initial positioning in help window
    + implemented HiLite() and DeHiLite() methods in HBDbBrowser() class
    ! fixed positioning when end of source data is reached in browser
    % eliminated some redundant or completely useless code and comments
    % use some fully functional HBDbBrowser() features instead of manual
      encoding similar functionality
    ! validate watchpoint and tracepoint expressions
    % use SWITCH statements
    ! fixed expression presentation (added __dbgValToExp() and __dbgValToStr())
    ! fixed input for new expressions
    ! fixed browser scrolling in object inspector
    ! fixed inkey() processing inside debugger (ALT+D and ALT+C)
    ! fixed browsers highliting in WA inspector
    ! fixed hardcoded limit for 512 workareas in WA inspector
    ! fixed initial WA positioning in WA inspector
    * resized WA  inspector window
    * many other minor fixes and improvements
2014-08-01 02:04:07 +02:00
Przemysław Czerpak
6529610475 2014-07-11 15:33 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtstd/gtstd.c
    ! fixed typo in for() loop counter (issue #75)
2014-07-11 15:33:32 +02:00
Przemysław Czerpak
2e24ca5fe9 2014-06-27 17:20 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/delim1.c
  * src/rdd/sdf1.c
    + added support for importing TIME and TIMESTAMP fields
      from SDF and DELIM RDDs
2014-06-27 17:20:30 +02:00
Przemysław Czerpak
a8f132e54d 2014-06-27 14:53 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
    * added workaround for missing DISP_E_BUFFERTOOSMALL declaration
      in some older C compilers i.e. BCC 5.5
2014-06-27 14:53:07 +02:00
Przemysław Czerpak
5a3e100f11 2014-06-27 12:45 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbfopen.c
    * use _wfopen() instead of fopen() in MS-Windows UNICODE builds of
      hb_fopen(). It means that now hb_fopen() makes exactly the same file
      name conversions as hb_fs*() Harbour RTL functions, i.e. hb_fsOpen()

  * contrib/hbmxml/core.c
    ! fixed unnecessary conversions to UTF8 used for file names passed
      to hb_fopen()

  * contrib/hbmzip/3rd/minizip/ioapi.c
  * contrib/hbmzip/3rd/minizip/minizip.dif
    ! fixed wrongly used hb_fopen() instead of fopen() what caused double
      file name conversions when 32-bit stdio API was used.
2014-06-27 12:45:47 +02:00
Przemysław Czerpak
97a23295d5 2014-06-26 18:42 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
    + added some additional error codes to win_oleErrorText() function

  * contrib/hbwin/hbole.ch
    + added OLE error code definitions with WIN_* prefix for errors returned
      by win_oleErrorText()

  * contrib/xhb/xhb.hbx
  * contrib/xhb/xhbole.prg
    + aded new function OleDefaultArg()
    % minor simplification

  * src/rtl/itemseri.c
    * do not generate RTE when wrong string is deserialized.
      Now RTE 3016 is generated only when compressed data is deserialized
      and ZLIB is not linked with final binaries so users can easy locate
      the source of problem.

  * src/vm/garbage.c
    % added missing static in s_gcSpinLock declaration

  * src/rtl/hbi18n1.c
    * typo in comment

  * src/rdd/dbf1.c
  * src/rdd/dbffpt/dbffpt1.c
  * src/rdd/dbsql.c
    * formatting

  * src/rdd/usrrdd/rdds/logrdd.prg
  * src/rdd/usrrdd/usrrdd.c
  * src/rtl/checkbox.prg
  * src/rtl/getsys.prg
  * src/rtl/listbox.prg
  * src/rtl/menuto.prg
  * src/rtl/pushbtn.prg
  * src/rtl/radiobtn.prg
  * src/rtl/radiogrp.prg
  * src/rtl/scrollbr.prg
  * src/rtl/tbrowse.prg
  * src/rtl/tget.prg
  * src/rtl/tgetint.prg
  * src/rtl/tgetlist.prg
  * src/rtl/tmenuitm.prg
  * src/rtl/errapi.c
  * src/rtl/hbgtcore.c
  * src/rtl/hbi18n1.c
  * src/rtl/hbinet.c
  * src/rtl/idle.c
  * src/rtl/math.c
  * src/rtl/setkey.c
  * src/vm/asort.c
  * src/vm/hashfunc.c
  * src/vm/thread.c
    * accept any EVAL item not only codeblocks. Actually it means that
      also SYMBOL items are accepted but in the future we may extend it
      and accept also objects of classes with :eval() message.

  * src/rtl/tget.prg
    ! fixed GET default PICTURE for TIMESTAMP type
      fixes https://github.com/harbour/core/issues/65
      2014-05-11 00:05 UTC+0200 Viktor Szakats
    ! fixed GET colors when _SET_INTENSITY == .F.
      2014-04-22 02:35 UTC+0200 Viktor Szakats
    % use Stuff() instead of different combinations of Left() and SubStr()

  * include/harbour.hbx
  * src/rtl/left.c
    + added new function to replace "=" operator without the SET EXACT ambiguity
      in its most common pattern of usage:
         hb_LeftEq( <cString1>, <cString2> ) -> <lResult>
      it's equivalent to this expression, but faster and shorter:
         ( Left( <cString1>, Len( <cString2> ) ) == <cString2> )
      2014-01-22 03:09 UTC+0100 Viktor Szakáts
    + added hb_LeftEqI(). Same as hb_LeftEq() but case-insensitive.
         hb_LeftEqI( <cString1>, <cString2> ) -> <lResult>
      2014-02-04 13:38 UTC+0100 Viktor Szakáts

  * include/harbour.hbx
  * src/rtl/chruni.c
    + added hb_BRAt(). Same as hb_RAt() but for raw/binary strings
      2014-06-25 19:54 UTC+0200 Viktor Szakats

  * contrib/sddsqlt3/core.c
    ! fixed missing first record of query
      2013-11-08 21:43 UTC+0100 Viktor Szakats

  ; many of above modification was borrowed directly or try to follow some
    changes in Viktor's branch - thanks.
2014-06-26 18:42:13 +02:00
Przemysław Czerpak
8505ffa043 2014-06-16 15:38 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbgtcore.c
    ! fixed typo in previous commit
    ; minor formatting
2014-06-16 15:38:44 +02:00
Przemysław Czerpak
ce68dda8ff 2014-06-12 19:29 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbgtcore.c
    + allow to use GTNUL at runtime just like any other GT driver, i.e.
      creating dynamically new GT and use it as default thread GT.
2014-06-12 19:29:42 +02:00
Przemysław Czerpak
051eaea0a9 2014-06-04 14:34 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/classes.c
    ! added missing const to variable declaration in profiler code - problem
      reported by Ron Christie
2014-06-04 14:34:09 +02:00
Przemysław Czerpak
4d9808da06 2014-05-29 02:04 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbmzip/mzip.c
    ! typo in previous commit
2014-05-29 02:04:46 +02:00
Przemysław Czerpak
5ce475d274 2014-05-29 00:34 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbmzip/mzip.c
    ! disable _LARGEFILE64_SOURCE after including system header files in
      non *nix builds just before including zlib headers.
      It's workaround for wrong condition in zconf.h
2014-05-29 00:34:16 +02:00
Przemysław Czerpak
786ba57352 2014-05-26 16:15 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbfsapi.c
  * src/rtl/filesys.c
  * src/rtl/filebuf.c
  * contrib/hbmzip/mzip.c
  * contrib/xhb/filestat.c
    ! if available always use stat64() instead of stat() in *nixes builds.
      On 32-bit platforms stat() fails for larger files (>2GB).
      It should fix problem reported by Lorenzo.
2014-05-26 16:15:46 +02:00
Przemysław Czerpak
51b88dd1ba 2014-05-23 17:01 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
    ! fixed bad typo inside hb_fileIsLocalName() - result was reverted.
      Many thanks to Juan Gálvez for locating the problem.

  * src/debug/dbgbrwsr.prg
    ! fixed typo in previous commit.
      It should fix also problem with positioning in debugger source
      window reported by Alexey Myronenko.
    % minor simplification

  * contrib/hbmisc/udpds.prg
    ! updated to send correct broadcast messages in * nixes and
      respect broadcast addresses returned by system for IP interfaces

  * src/rdd/hbdbsort.c
  * src/rdd/hbsix/sxcompr.c
    * pacified warnings
2014-05-23 17:01:17 +02:00
Przemysław Czerpak
d00d7e70db 2014-05-20 19:49 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/debug/dbgbrwsr.prg
    ! update current row position after resizing
      It should fix 2-nd problem reported by Rolf.
2014-05-20 19:49:15 +02:00
Przemysław Czerpak
fde8db1e35 2014-05-20 17:03 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/debug/debugger.prg
    ! calculate ListBox coordinates as integer value
      (it fixes RTE reported by Rolf in SWITCH statement)

  * src/debug/dbghelp.prg
    ! fixed number of help pages calculation
2014-05-20 17:03:11 +02:00
Przemysław Czerpak
da82de17b1 2014-05-06 17:32 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/cdpapi.c
  * src/rtl/iousr.c
  * src/rtl/hbjson.c
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/gtsln/gtsln.c
  * src/rtl/gttrm/gttrm.c
  * src/rtl/gtxwc/gtxwc.c
  * src/rdd/workarea.c
  * src/rdd/hbsix/sxcompr.c
  * contrib/hbct/token2.c
  * contrib/hbsqlit3/core.c
    * pacified some of -Wshadow warnings

  * include/hbapicdp.h
    ! typo in comment: bytes -> bits

  * src/vm/garbage.c
  * src/vm/thread.c
    * disabled some code with spinlocks when HB_HELGRIND_FRIENDLY macro
      is defined. It causes that final MT HVM code is slower using native
      platform mutexes but only such ones helgrind can recognize so the
      new macro can be useful for people who want to make some tests with
      helgrind. In such case they should rebuild Harbour with
         HB_USER_CFLAGS=HB_HELGRIND_FRIENDLY
      We use spinlocks and atomic integer operations also in few other
      places so it's possible that deeper tests can exploit them and
      we will have to cover them by HB_HELGRIND_FRIENDLY too just to
      easy detect real problems.
2014-05-06 17:32:45 +02:00
Przemysław Czerpak
7a211d052e 2014-04-11 17:36 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc.h
  * contrib/gtqtc/gtqtc1.cpp
    * overload inputMethodEvent() in console object and insert
      commitString() data into GT keyboard input queue.
      It's necessary for Android working with SoftwareInputPanel
      and it fixes problem with eaten standard characters.
      QT documentation says that QInputMethodEvent are generated
      only when Qt::WA_InputMethodEnabled attribute is set but
      tests shows that it's not true and these events are generated
      instead of keyPress/keyRelease ones for simple text input.
      CTRL modifier, ESC, INS, HOME, END, PGUP, PGDN and Fn keys
      still does not work with GTQTC in Android builds.

  * src/rtl/tbrowse.prg
    ! fixed compilation with HB_BRW_STATICMOUSE
    ! do not cover dummy ivar with HB_COMPAT_C53 macro
    * minor simplification

  * src/vm/arrays.c
    * removed old commented code not used with current GC
2014-04-11 17:36:36 +02:00
Przemysław Czerpak
8fe793a82a 2014-04-03 14:26 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiosrv.c
    * fully consume RPC messages even if RPC is disabled. It allows to
      continue client connection in such case and process next messages.
2014-04-03 14:26:49 +02:00
Przemysław Czerpak
a5c9a7e68e 2014-04-03 12:17 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiosrv.c
    ! added missing condition to interrupt broken client connections
2014-04-03 12:17:40 +02:00
Przemysław Czerpak
bf2a912c0e 2014-04-02 22:52 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiosrv.c
    ! fixed very bad bug in one of recent modifications which completely
      broke all servers using early authentication by netio_VerifyClient()
2014-04-02 22:52:09 +02:00
Przemysław Czerpak
6277cb38ff 2014-04-02 12:46 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebufd.c
  * src/rtl/iousr.c
    * slightly modified code to pacify warnings in some older GCC versions

  * contrib/gtwvg/gtwvg.hbx
    * regenerated with new function
2014-04-02 12:46:22 +02:00
Przemysław Czerpak
9aeaa964d6 2014-04-02 08:31 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/hashes.c
    ! added missing HB_STACK_TLS_PRELOAD
2014-04-02 08:31:40 +02:00
Przemysław Czerpak
7349602fcb 2014-04-01 12:33 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
    ! unlock HVM stack before locking local mutex and calling hb_fs*()
      functions which also unlocks HVM. It fixes possible deadlock condition
      when hb_gcAll( .T. ) is executed.

  * include/hbapi.h
  * src/vm/garbage.c
    ! changed mark function semantic.
      Adding support for user defined mark function I created race condition
      in MT GC code. It happens because blocks marked as deleted were not
      scanned by GC mark code so their subitems where not accessible.
      To fix it we have to change mark function semantic. Now mark function
      can be executed also for blocks currently deleted. It means that GC
      block destructor should clean references to just removed items and
      subblocks. The best place to make it is clearing pointers to GC blocks
      just after hb_itemRelease() or hb_gcRefFree().
      It is save to clean the reference just before hb_itemRelease() or
      hb_gcRefFree() but only for the single block passed to these functions.
      It is not save to clear reference to more then one block and then
      execute above functions.
    + check reference count after destructor execution for all blocks
      not only arrays - warning it may exploit some wrong C code.
    - removed not longer used hb_gcRefCheck() function.

  * include/hbvm.h
  * src/vm/hvm.c
    + added new internal function hb_vmLockForce()
    ! fixed to mark GC blocks with active threads

  * src/vm/thread.c
  * include/hbthread.h
    % modified sync mutexes used by xBase++ signal class emulation
      to not use item array internally
    * updated mutex destructor to new GC mark semantic
    ! mark GT items if GT is bound with thread item
    ! fixed mutex notify/subscribe code to not change GC items
      when HVM stack is unlocked
    ! use hb_vmLockForce() to eliminate potential deadlock
    + added new C function hb_threadEnterCriticalSectionGC().
      It should be used instead of hb_threadEnterCriticalSection()
      in code which manipulates GC items inside critical section.
      It's slower but eliminates possible deadlock condition.
      Please remember that remember that both functions cannot
      be used for the same mutex. So if it's necessary to use
      hb_threadEnterCriticalSectionGC() in one place then it
      has to be used in all others when the same mutex is locked.

  * src/vm/arrays.c
  * src/vm/codebloc.c
  * src/vm/hashes.c
  * src/rtl/hbgtcore.c
  * contrib/hbcurl/core.c
  * contrib/hbexpat/core.c
    * updated destructors to new GC mark semantic

  * contrib/hbxpp/dllx.c
    ! fixed destructor for pointer item created by DllPrepareCall()
      Now it respects reference counter.
    ; added note about real behavior of library handle destructor,
      I haven't changed existing code behavior but maybe it should
      be done.

  * contrib/xhb/hbserv.c
  * src/debug/dbgentry.c
  * src/rdd/wacore.c
    ! fixed possible deadlocks by using hb_threadEnterCriticalSectionGC()
      instead of hb_threadEnterCriticalSection().

  * contrib/hbmemio/memio.c
    ! slightly modified hb_memfsDirectory() code to avoid race condition
      without using hb_threadEnterCriticalSectionGC()

  * src/vm/fm.c
    % reduce the lock range in HB_FM_STAT builds

  * src/rtl/hbsocket.c
    ! added missing HVM stack unlocking in hb_socketSelect() function

  * src/rtl/gtxwc/gtxwc.c
    ! added few missing locks for version compiled with HB_XWC_XLIB_NEEDLOCKS

  * src/rdd/dbtotal.prg
    * allow to use symbols instead of codeblocks
    * modified Harbour extension which uses ordKey() as default group
      signature to work also without index. In such case all records
      are summarized into single one.

  ; Most of above modifications were critical for stability of MT programs.
    They should allow to activate GC in any place.
2014-04-01 12:33:17 +02:00
Przemysław Czerpak
8f73524d34 2014-03-27 16:13 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbpgsql/rddcopy.c
    ! fixed typos in my recent modification and potential memory corruption
      and/or wrong output due to ugly hack for last field terminator in old
      code. Thanks to Aleksander Czajczynski for reporting the problem.
2014-03-27 16:13:41 +01:00