Commit Graph

19112 Commits

Author SHA1 Message Date
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
Przemysław Czerpak
45a2a56a69 2014-03-27 15:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/ads1.c
    * do not call memset() with zero length

  * include/hbapi.h
  * src/vm/fm.c
    + added new FM statistic C function:
         const char * hb_xinfo( void * pMem, HB_USHORT * puiLine );

  * src/rtl/filebufd.c
  * src/rtl/iousr.c
    * modified casting to pacify more restrictive strict aliasing warnings

  * src/vm/garbage.c
    * minor formatting
2014-03-27 15:03:58 +01:00
Przemysław Czerpak
3c9a89d9e5 2014-03-26 14:30 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* utils/hbtest/rt_class.prg
    * updated to follow modified RTE codes
2014-03-26 14:30:33 +01:00
Przemysław Czerpak
4c1c10ef29 2014-03-26 14:10 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/garbage.c
    ! added protection for activating GC from thread with unlocked HVM stack
      when other thread is already executing GC passes. Such situation does
      not happen in core code and the protections is only just in case.

  * src/vm/hvm.c
    ! do not release HVM thread STOP signal when GC mark pass is activated.
      It was very serious bug which could cause memory corruption when
      thread unlocked HVM stack what allow to start GC mark pass by other
      thread and then locked HVM and begin to change complex variables
      still scanned by the GC thread. This problem have existed from the
      beginning when I committed initial version of Harbour MT support.
      I do not remember why I added code to remove the STOP signal - probably
      I was experimenting with some new things working on Harbour MT code
      and I forgot to deactivate it.
      NOTE: 3-rd party developers who use GC collectible pointer items
            must not activate any PRG code execution inside their mark
            functions.
2014-03-26 14:10:01 +01:00
Przemysław Czerpak
d2ceb0e306 2014-03-25 00:38 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* tests/iotcp.prg
    ! fixed typo in macro name - thanks to Itamar for the info
2014-03-25 00:38:18 +01:00
Przemysław Czerpak
ed45b65b04 2014-03-24 22:19 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/Makefile
  + include/hbiousr.ch
  * src/rtl/Makefile
  + src/rtl/iousr.c
    + added module for writting Harbour FILE IO redirectors at PRG level

  + tests/iotcp.prg
    + example code for FILE IO redirector written in PRG.
      It's IOTCP and gives exactly the same functionality as TCP redirector
      in contrib which is written in C.

  * src/vm/runner.c
    % modified internal structure to eliminate some memory allocations

  * contrib/hbpgsql/rddcopy.c
    % small simplification
2014-03-24 22:19:45 +01:00
Przemysław Czerpak
046c9694e0 2014-03-20 14:59 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
    ! added workaround for offset returned by FSeek( hDir, 0, FS_END )
      for directories handles in some *nixes
2014-03-20 14:59:02 +01:00
Pritpal Bedi
fc14c595dc ! Fixed BOM issue in ChangeLog.txt 2014-03-20 00:56:25 -07:00
Pritpal Bedi
71a7be0661 2014-03-19 21:27 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib\gtwvg\hbgtwvg.ch
    + Added: #define GOBJ_OBJDATA_PICTUREEX            10
             #define GOBJ_OBJTYPE_LABEL_EX2            21

  * contrib\gtwvg\gtwgud.c
  * contrib\gtwvg\gtwvgd.c
    % Changed: WM_CLOSE firing K_ESC => HB_K_CLOSE in accordance rest of GTs.

  * contrib\gtwvg\wvgcuig.c
    % Changed: hb_wvg_RefreshRect() flag to erase background: FALSE => TRUE.
    % Changed: WVG_SETGOBJDATA() now returns lSUCCESS or lFAILURE.
    + Added: new CGUI object type - GOBJ_OBJDATA_PICTUREEX.
    + Added: new function
        Wvg_LabelEx2( nTop, nLeft, nBottom, nRight, aPxlOff, cLabel, nAlign,
                  nEscapement, nTextColor, nBkColor, cFontFace, nFontHeight,
                     nFontWidth, nFontWeight, nQuality,  nCharSet, lItalics,
                      lUnderline, lStrikeOut )
    + Added: 7th parameter [<lDoNotScale>] in
       Wvg_Picture( nTop, nLeft, nBottom, nRight, aPxlOff, nSlot, lDoNotScale )
    % Changed: hb_wvg_RenderPicture() code to honor scaled vs non-scaled
       rendering.

  * contrib\gtwvg\wvgutils.c
    ! Fixed: Wvt_ChooseFont() to return correctly array of 9 elements
       instead of 8.
2014-03-19 21:46:07 -07:00
Przemysław Czerpak
5873d78e2c 2014-03-20 04:01 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
  * src/rtl/filebuf.c
  * src/rtl/filebufd.c
  * contrib/hbcomio/comio.c
  * contrib/hbmemio/memio.c
  * contrib/hbnetio/netiocli.c
  * contrib/hbtcpio/tcpio.c
    * changed internal FILE IO API. Now all functions which do
      not operate on PHB_FILE receive pointer to function table
      (PHB_FILE_FUNCS) used by given redirector.

  * src/rtl/vfile.c
    * open wirtual files in READWRITE mode by default
    * translate FO_* attributes to FXO_* ones

  * src/vm/classes.c
    ! fixed typo in RTE message

  * src/vm/garbage.c
    * use different error code (1301/1302) for destructor RTE

  * src/rtl/gtxwc/gtxwc.c
  * src/rtl/gtxwc/gtxwc.h
    + added support for HB_GTI_FONTWEIGHT with HB_GTI_FONTW_* actions

  * contrib/hbpgsql/rddcopy.c
    ! fixed memory leak
    % encapsulate PQ calls in hb_vmUnlock()/hb_vmLock() to not stop
      other threads when GC is activated
2014-03-20 04:01:25 +01:00
Przemysław Czerpak
b5305f3861 2014-03-16 20:22 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/adsx.c
    * pacified warnings
2014-03-16 20:22:42 +01:00
Przemysław Czerpak
21ec946359 2014-03-16 19:54 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
  * src/rtl/filebuf.c
    * move HB_FILE_TYPE_MAX definition to header file
    % include C stat() header only in *nix builds

  * src/pp/ppcore.c
    ! force stringify when illegal characters are included inside
      square brackets []
2014-03-16 19:54:22 +01:00
Mindaugas Kavaliauskas
1fb6dd3962 2014-03-13 18:40 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* contrib/rddads/adsx.c
    * implemented intermediate index creation in case ADS can process index
      FOR or WHILE condition.
      Ex., if requested index has WHILE condition supported by server,
      but index key expression is not supported (or codeblock is used),
      server side index is created using WHILE condition. This intermediate
      index later is used to create final index.
      This logic increases speed dramatically if WHILE condition was used
      to filter a few records from a large database using subindex.
2014-03-13 18:43:00 +02:00
Przemysław Czerpak
07960b8b7d 2014-03-12 00:18 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/hbdbsort.c
    * casting

  * src/rtl/filesys.c
    + added additional method to extract file time in MS-Windows version of
      hb_fsGetFileTime()

  * include/hbapifs.h
  * src/rtl/vfile.c
    + added C functions to manipulate PRG level hb_vf*() file pointer items

  * include/hbapifs.h
  * src/rtl/filebuf.c
    + added C functions to create/extract file IO handle from raw file handle
    + added C functions to check if file IO handle points to local file

  * contrib/hbmzip/mzip.c
    * changed hb_fs*() API to hb_file*() API
    ! fixed file time setting in *nix builds
2014-03-12 00:18:12 +01:00
Przemysław Czerpak
e227af16d0 2014-03-11 09:38 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbdbsort.h
  * include/hbrddcdx.h
  * include/hbrddnsx.h
  * include/hbrddntx.h
  * include/hbsxfunc.h
  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/dbffpt/dbffpt1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfntx/dbfntx1.c
  * src/rdd/dbsql.c
  * src/rdd/hbdbsort.c
  * src/rdd/hbsix/sxcompr.c
  * src/rdd/hbsix/sxsem.c
    * changed hb_fs*() API to hb_file*() API
2014-03-11 09:38:36 +01:00
Przemysław Czerpak
74f298f8ec 2014-03-10 18:59 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtcpio/tcpio.c
    * use default timeout defined in initial hostname string in read/write
      operations

  * include/hbapicom.h
  * src/rtl/hbcom.c
    + added new C function:
         int hb_comFindPort( const char * pszDevName, HB_BOOL fCreate );
      It check if given port name is already defined and if not and second
      parameter fCreate is TRUE then it allocates such port in one of last
      free slots. On success port number is returned. If port cannot be
      found or created 0 is returned.

  * include/harbour.hbx
  * src/rtl/hbcomhb.c
    + added new PRG function:
         hb_comFindPort( <cDeviceName> [, <lCreate> = .F. ] ) -> <nPort>

  * contrib/hbplist.txt
  + contrib/hbcomio/comio.c
  + contrib/hbcomio/hbcomio.hbc
  + contrib/hbcomio/hbcomio.hbp
    + added new Harbour FILE IO redirector.
      It recognizes and process names with "COM<n>:" prefix, in form like:
         COM<n>:[<com_params>]
      <n> is port number or port name prefixed with "$" character.
      <com_params> may contain serial port parameters like baud rate, stop
      and data bits, parity and flow control (XON,XOFF,CTS, RTS,DST,DTR).
      As delimiter comma "," is accepted.
      This redirector can be used in different subsystems using Harbour
      FILE IO and stream read/write operations, i.e.
         REQUEST HB_COMIO
         SET PRINTER TO COM2:38400,N81,XONXOFF
      can be used to connect to serial printers.
      Please remember that redirectors like NETIO can be used as wrapper
      to other redirectors so code like:
         pFile := hb_vfOpen( "NET:192.168.0.1:::COM1:9600,8N1" )
      opens 1-st serial port on the server and
         pFile := hb_vfOpen( "NET:192.168.0.1:::COM$/dev/ttyUSB0:9600,8N1" )
      opens "/dev/ttyUSB0" serial device on the server.
2014-03-10 18:59:52 +01:00
Przemysław Czerpak
4f4f59a64d 2014-03-08 14:00 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/hbcmplib.c
  * src/rtl/filesys.c
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/hbproces.c
  * src/rtl/memofile.c
  * src/vm/runner.c
  * contrib/xhb/txtline.c
    * pacified warnings

  * contrib/hbmemio/memio.c
    ! fixed C&P typo
2014-03-08 14:00:05 +01:00
Przemysław Czerpak
f1783b9fa6 2014-03-06 22:35 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtcpio/tcpio.c
    ! fixed local static function prototype

  * include/harbour.hbx
    * casing
2014-03-06 22:35:36 +01:00