Commit Graph

2700 Commits

Author SHA1 Message Date
Viktor Szakats
42d5b4139c 2008-10-11 14:49 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/fnsplit.c
  * source/rtl/hbtoken.c
    ! HB_FNAMESPLIT(), HB_TOKENPTR() fixed to 
      reset parameters passed by reference in 
      error cases.
2008-10-11 12:49:45 +00:00
Przemyslaw Czerpak
d93996a154 2008-10-11 13:06 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/tget.prg
    ! fixed cursor positioning when new get item is added.
    ; added note about possible modification - Viktor, please verify it
2008-10-11 11:06:51 +00:00
Przemyslaw Czerpak
4176d85bb7 2008-10-11 11:21 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/common/expropt2.c
    * formatting and minor cleanup

  * harbour/source/rtl/gtapi.c
    % do not set and restore default color set in hb_gtPutText() and
      hb_gtDrawBox() but decode colors from passed string
2008-10-11 09:21:52 +00:00
Viktor Szakats
cdb27e08d2 2008-10-11 11:06 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbextern.ch
    + New functions added.

  * source/rtl/alert.prg
    % Minor optimization.
    ; NOTE: Found yet another hidden extension in Alert() code :(

  * source/rtl/radiobtn.prg
    ! Fix and optimization in recent modification.
2008-10-11 09:07:17 +00:00
Przemyslaw Czerpak
618df79c9b 2008-10-11 04:56 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapigt.h
  * harbour/source/rtl/gtapi.c
    + added C functions hb_gtLock() and hb_gtUnlock()
      They block current GT for other threads

  * harbour/source/rtl/gtfunc.c
    + added PRG functions hb_gtLock() and hb_gtUnlock()
      They block current GT for other threads - be careful using them
      and always unlock locked GT

  * harbour/source/rtl/scroll.c
    + added HB_SCROLL() function - it works like SCROLL() but supports
      2 additional parameters: color and erase char. It's stateless and
      atomic in GT access

  * harbour/source/rtl/tbrowse.prg
    * use HB_SCROLL() instead of SCROLL(). Now whole TBROWSE class
      does not depend on other thread screen output and does not
      set any GT variables except of cursor positioning to active
      cell when it's enabled

  * harbour/source/rtl/memoedit.prg
  * harbour/source/rtl/tgetlist.prg
  * harbour/source/rtl/tlabel.prg
  * harbour/source/rtl/listbox.prg
  * harbour/source/rtl/tmenusys.prg
  * harbour/source/rtl/achoice.prg
  * harbour/source/rtl/profiler.prg
  * harbour/source/rtl/teditor.prg
    * use atomic stateless functions when possible - this code should
      be checked and updated by some who know it.
2008-10-11 02:56:22 +00:00
Przemyslaw Czerpak
9113680b5a 2008-10-11 03:24 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/scrollbr.prg
  * harbour/source/rtl/getsys.prg
  * harbour/source/rtl/tpopup.prg
  * harbour/source/rtl/tgetlist.prg
  * harbour/source/rtl/radiogrp.prg
  * harbour/source/rtl/listbox.prg
  * harbour/source/rtl/checkbox.prg
  * harbour/source/rtl/browse.prg
  * harbour/source/rtl/tget.prg
  * harbour/source/rtl/ttopbar.prg
  * harbour/source/rtl/pushbtn.prg
  * harbour/source/rtl/tmenusys.prg
  * harbour/source/rtl/achoice.prg
  * harbour/source/rtl/teditor.prg
  * harbour/source/rtl/radiobtn.prg
  * harbour/source/rtl/tbrowse.prg
    * replaced DispOut() with hb_dispOut()
    * replaced DispBox() with hb_dispBox()
    % removed saving and restoring of cursor position in places where
      it's not longer necessary due to hb_dispOut()/hb_dispBox() usage
    % removed saving and restoring of SetColor() value in places where
      it's not longer necessary due to hb_dispOut()/hb_dispBox() usage
    % removed saving and restoring of MSetCursor(). If it's necessary
      low GT driver should hide and redraw mouse cursor before and after
      screen update. We do not have to make it manually

   The above modification gives faster code and allow to access screen
   from different threads simultaneously because functions like
   hb_dispOut() and hb_dispBox() are stateless and atomic in screen
   access. Not all .prg code has been updated yet. If someone is
   familiar with this code then please help. I'll add yet HB_SCROLL()
   function which will support additionally colors.
   Viktor if possible please verify this modifications.
2008-10-11 01:24:26 +00:00
Przemyslaw Czerpak
aeb6b8686e 2008-10-11 03:06 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapigt.h
  * harbour/source/rtl/gtapi.c
    + added hb_gtDrawBox() works like hb_gtBox() but does not change cursor
      posiion and support colors
    + added support for color parameter to hb_gtPutText()

  * harbour/source/rtl/console.c
    * use new hb_gtPutText() format in HB_DISPOUTAT()
      Now all screen operations inside this function is one atomic
      operation for other threads

  * harbour/source/rtl/box.c
    + added HB_DISPBOX() function - works like DISPBOX() bit does not
      change cursor position and is atomic for other threads


  * harbour/include/hbapigt.h
  * harbour/include/hbgtcore.h
  * harbour/source/rtl/hbgtcore.c
  * harbour/source/rtl/gtclip.c
  * harbour/source/rtl/gtdos/gtdos.c
  * harbour/source/rtl/gtwin/gtwin.c
  * harbour/source/rtl/gtxwc/gtxwc.c
  * harbour/source/rtl/gtcrs/gtcrs.c
  * harbour/source/rtl/gtstd/gtstd.c
  * harbour/source/rtl/gtsln/gtsln.c
  * harbour/source/rtl/gttrm/gttrm.c
  * harbour/source/rtl/gtpca/gtpca.c
  * harbour/source/rtl/gtcgi/gtcgi.c
  * harbour/source/rtl/gtwvt/gtwvt.c
  * harbour/contrib/gtalleg/gtalleg.c
  * harbour/contrib/gtalleg/ssf.h
  * harbour/contrib/gtalleg/ssf.c
  * harbour/contrib/gtwvg/gtwvg.c
    * cleanup char * casting

  * harbour/source/rtl/filesys.c
    ! do not use pread()/pwrite() in OpenWatcom Linux builds
2008-10-11 01:06:39 +00:00
Przemyslaw Czerpak
5964eac44c 2008-10-10 22:46 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/hvm.c
    * reduced the mutex lock time in thread exit state

  * harbour/source/vm/thread.c
    ; added note about possible behavior of hb_threadSelf() function
      in one very specific situation. It's documented and expected
      behavior

  * harbour/source/rtl/hbgtcore.c
    + added support for retrieving current HB_GTI_NOTIFIERBLOCK code block
    + added support for removing HB_GTI_NOTIFIERBLOCK code block without
      setting the new one
2008-10-10 20:46:50 +00:00
Przemyslaw Czerpak
f51b6c2f24 2008-10-10 21:22 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/garbage.c
    * unblock HVM before executing destructors and releasing blocks

  * harbour/source/vm/fm.c
    ! do not call internal error with active lock when FM statistic
      is enabled

  * harbour/source/vm/thread.c
    ! stop other threads in hb_threadOnce() if the 1-st one
      executes bAction block to be sure that it will be completed
      before thread leave hb_threadOnce() function

  * harbour/source/vm/set.c
    ! do not call hb_inkeyReset() in set release. It's not necessary
      and it could change keyboard buffer size for other threads using
      the same GT driver.

  * harbour/source/vm/hvm.c
    % allocate new thread stack without lock

  * harbour/source/rtl/hbgtcore.c
  * harbour/source/rtl/gtapi.c
    * moved clipboard resetting from hbgtcore.c to gtapi.c

  * harbour/source/rtl/filesys.c
    ! do not use read/write operations with given file offset in Win9X
      which seems to not support such functionality
2008-10-10 19:23:11 +00:00
Przemyslaw Czerpak
6829fa76a5 2008-10-10 01:43 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbgtcore.h
  * harbour/source/rtl/hbgtcore.c
  * harbour/source/rtl/gtapi.c
    + added new GT methods: LOCK() and UNLOCK()
    * serialize GT access in MT mode - please remember that it's only
      low level serialization to protect access to low GT resources.
      It has nothing to application level screen output from different
      threads which has to be serialized by programmer if necessary.

  * harbour/source/rtl/tthreadx.prg
    * use HB_THREAD_INHERIT_PUBLIC as thread attribute for thread
      started by oThread:start() to emulate xbase++ PUBLIC variables
      behavior
2008-10-09 23:43:41 +00:00
Przemyslaw Czerpak
15054c311b 2008-10-10 00:14 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapigt.h
  * harbour/source/rtl/gtapi.c
    + added hb_gtPutText() C function

  * harbour/source/rtl/console.c
    + added HB_DISPOUTAT() which works like DISPOUTAT but does not change
      cursor position. xBase++ users can use
         #xtranslate DispOutAt( <x,...> ) => hb_dispOutAt( <x> )
      for xBase++ compatible code
2008-10-09 22:15:01 +00:00
Przemyslaw Czerpak
af1e261b5b 2008-10-09 20:51 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/common.mak
  * harbour/source/rtl/Makefile
    + added thfuncx.prg

  * harbour/source/rtl/thfuncx.prg
    + added ThreadObject() function

  * harbour/source/rtl/tthreadx.prg
    + added xBase++ compatible TThread class.
      Special thanks to Pritpal Bedi for class skeleton with info about
      xbase++.
      Now only basic functionality is supported though it was enough to
      compile and execute examples Pritpal sent. I'm leaving rest for
      xBase++ users.
      BTW The examples suggest that in xbase++ DispOutAt() does not change
      cursor position. It's not Clipper compatible so I cannot make it
      in Harbour though I can add new function which will work in such way.
2008-10-09 18:51:31 +00:00
Przemyslaw Czerpak
42d6d50796 2008-10-09 17:03 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
+ harbour/source/rtl/thfuncx.prg
    * added xbase++ compatible functions:
         ThreadID() -> <nThId>
         ThreadWait( <aThreads>, <nTimeOut> ) -> <oThread> | <pThId> | NIL
         ThreadWaitAll( <aThreads>, <nTimeOut> ) -> <lAllFinished>
      In Harbour <aThreads> can be array of thread pointers or thread
      objects. xbase++ compatible thread class I'll add later.
2008-10-09 15:03:06 +00:00
Viktor Szakats
c3c9bc4e89 2008-10-09 09:57 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbextern.ch
    + Added missing HB_DISABLEWAITLOCKS().
    ; NOTE: This looks like a hack to add FLX_WAIT flag 
            for locks app-wide, and on Windows systems only.
            IMO we should not have such hacks in core, or if 
            this is really important it should support all 
            possible platforms.
            It also has a low-level function equivalent, 
            which is missing from hbapifs.h. There is no 
            reference to these function in any Harbour or 
            xhb changelogs.
            If there are no objections, I'd like remove 
            this functionality.

  * source/rtl/hbrandom.c
  * source/rtl/filesys.c
    * Minor formatting.
2008-10-09 08:06:47 +00:00
Viktor Szakats
8376e26915 2008-10-08 14:36 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* bin/bld.bat
  * bin/bld_os2.cmd
    + Added support for HB_INSTALL_PREFIX.
    + Added experimental support for 'set HB_MT=MT' flag, 
      to create an MT executable.

  * source/rtl/seconds.c
    * Formatting.
2008-10-08 12:37:07 +00:00
Maurilio Longo
55806b582b 2008-10-08 12:28 UTC+0200 Maurilio Longo (maurilio.longo@libero.it)
* harbour/source/rtl/seconds.c
    ! removed a couple of warnings.
2008-10-08 10:29:51 +00:00
Maurilio Longo
b22a5b9d5c 2008-10-07 19:33 UTC+0200 Maurilio Longo (maurilio.longo@libero.it)
* harbour/source/rtl/seconds.c
    ! fixed little typo after latest commit.
2008-10-07 17:35:02 +00:00
Viktor Szakats
d98434208b 2008-10-07 18:42 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/seconds.c
    * Some cleanup after latest change.
      Functionality shouldn't change. OS/2 users pls verify.
2008-10-07 16:44:37 +00:00
Maurilio Longo
195f1446b5 2008-10-07 16:33 UTC+0200 Maurilio Longo (maurilio.longo@libero.it)
* harbour/source/rtl/seconds.c
     + Added OS/2 section to secondsCPU(), but it does not work as expected :)
       In particular, user and system times are kept per thread, but when a thread
       dies the time it has spent in user and system-land gets lost, so the
       overall running time of the program decreases. Not only, if I call
       secondsCPU() before a thread starts and after it has ended I'll have
       no idea of the time that was spent by that thread.
2008-10-07 14:41:39 +00:00
Viktor Szakats
a7870bbdf2 2008-10-07 14:24 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbapierr.h
   * source/vm/extrap.c
   * source/rtl/errorint.c
     ! Fixed recent modification on Windows platform, where 
       GPF would generate an internal error.
       It didn't launch the OS error handler.
     ! Fixed hb_errInternal() being marked as HB_EXPORT 
       in the headers only.
2008-10-07 12:25:23 +00:00
Viktor Szakats
f75bc7b051 2008-10-07 09:33 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbextern.ch
  * source/rtl/inkey.c
    + Added HB_KEYCLEAR() a documented function equivalent 
      to "CLEAR TYPEAHEAD" command, or undocumented __KEYBOARD() function.

  * contrib/rddads/rddads.h
  * contrib/rddads/ads1.c
    + Added support for ADS_USE_OEM_TRANSLATION for old ads versions.
      Borrowed from xhb/Pavel Tsarenko.
2008-10-07 07:35:38 +00:00
Viktor Szakats
5b75b78079 2008-10-06 22:33 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/tobject.prg
    ! Formatting to some old code.
2008-10-06 20:33:38 +00:00
Przemyslaw Czerpak
1ec50a7d81 2008-10-06 21:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/hvm.c
    ! fixed last commit typo in thread number allocating - all threads
      where using 0 number

  * harbour/source/vm/thread.c
    ! fixed return value in recursive call to hb_mutexLock() - was FALSE
    ! fixed typo in timeout parameter number
      should be 2 instead of 1

  * harbour/source/rtl/tobject.prg
    ! fixed init() return value - it should be ignored and current
      object should be returned

  * harbour/source/rtl/tthreadx.prg
    ! probably fixed timeout parameter use in signal:wait() method
      I guess that like other xbase++ functions it's in 1/100th of
      a second

  * harbour/include/hboo.ch
  * harbour/include/hbclass.ch
  * harbour/source/vm/classes.c
  * harbour/source/rtl/tclass.prg
    + added support for SYNC object and CLASS messages working like
      in xBase++. Please remember that all locked by thread SYNC messages
      objects and classes are unblocked automatically for the time which
      thread spends in hb_subscribe[Now]() or signal:wait()
2008-10-06 19:50:53 +00:00
Viktor Szakats
9e70689436 2008-10-06 21:27 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbapifs.h
   * include/hbextern.ch
   * source/common/hbfsapi.c
   * source/rtl/hbfile.c
     + Added hb_fsNameExists() C level function.
     + Added hb_FNameExists() Harbour level function.
     ; Both will return true if any kind of directory entry 
       exists with the given name (IOW it doesn't matter 
       if it's a file or directory, or else).
2008-10-06 19:30:27 +00:00
Przemyslaw Czerpak
67cc2f7ebe 2008-10-06 15:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbthread.h
  * harbour/source/vm/thread.c
  * harbour/source/vm/hvm.c
    + add numeric HVM thread identifiers to thread structure. Now
      HB_THREADID() returns numbers in all OSes

  * harbour/include/hbexprop.h
  * harbour/include/hbexprb.c
  * harbour/source/common/expropt2.c
    + added compile time optimization for MIN() and MAX() functions

  * harbour/source/rtl/minmax.c
    * removed trailing spaces from source code
2008-10-06 13:30:47 +00:00
Przemyslaw Czerpak
423391977e 2008-10-06 02:18 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/tests/speedtst.prg
    * marked T054 as memory tests

  * harbour/source/vm/hvm.c
  * harbour/source/vm/thread.c
    * added hb_threadOnce( @<onceControl> [, <bAction> ] ) -> <lFirstCall>
      This function allow to execute some code only once. It's usefull in
      MT environment for initialization.
      <onceControl> is variable which holds the execution status and have
      to be initialized to NIL. In most of cases it will be simple static
      variable in user code.
      <bAction> is optional codeblock which is executed only once (on 1-st
      call with given <onceControl>)

  * harbour/source/rtl/filesys.c
    ! do not make any file name conversions in hb_fsNameConv() if HVM stack
      is not allocated

  * harbour/source/rtl/gtcrs/gtcrs.c
    * casting
2008-10-06 00:19:10 +00:00
Viktor Szakats
809fd031dc 2008-10-06 01:06 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/debug/debugger.prg
  * source/rtl/typefile.prg
  * source/rtl/tgetlist.prg
  * source/rtl/treport.prg
  * source/rtl/teditor.prg
    * Using [Q]QOut() functions instead of "[?]?" commands.
    * Using hb_Run() function instead of RUN command.

  * source/rtl/typefile.prg
    % Upped read buffer.
    * Formatting.
    % Got rid of a few unnecessary initialization.
2008-10-05 23:09:31 +00:00
Viktor Szakats
4f330c58bc 2008-10-05 20:10 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* common.mak
   * source/rtl/Makefile
   - source/rtl/persist.prg
   + source/rtl/tpersist.prg
   - source/rtl/symbol.prg
   + source/rtl/tsymbol.prg
   * source/rtl/achoice.prg
   * source/rtl/browse.prg
   * source/rtl/dbedit.prg
   * source/rtl/dircmd.prg
   * source/rtl/einstv52.prg
   * source/rtl/einstvar.prg
   * source/rtl/hbini.prg
   * source/rtl/tbrowse.prg
   * source/rtl/tclass.prg
   * source/rtl/tget.prg
   * source/rtl/tgetint.prg
   * source/rtl/tlabel.prg
   * source/rtl/tobject.prg
   * source/rtl/treport.prg
   * source/rtl/typefile.prg
   * source/rtl/valtoexp.prg
   * source/rdd/usrrdd/example/exhsx.prg
   * source/rdd/usrrdd/example/exfcm.prg
   * source/rdd/usrrdd/rdds/hscdx.prg
     * Some formattings and cleanup.

   * source/rtl/tclass.prg
     % ValType() optimizations.

   * source/rtl/tlabel.prg
   * source/rtl/treport.prg
     * Trim() -> RTrim()

   * source/rtl/treport.prg
     ! Hard-coded Chr(13)+Chr(10) fixed in treport.prg.
2008-10-05 18:13:15 +00:00
Viktor Szakats
e2768457a0 2008-10-05 18:46 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbwin/win_ole.c
  * source/rtl/wait.prg
  * source/rtl/tthreadx.prg
    * Minor formatting.
2008-10-05 16:47:14 +00:00
Viktor Szakats
ed672c29c9 2008-10-05 15:56 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbpers.ch
  * source/rtl/perfuncs.prg
  * source/rtl/objfunc.prg
  * source/rtl/tlabel.prg
  * source/rtl/setta.prg
  * source/rtl/dirscan.prg
  * source/rtl/tthreadx.prg
  * source/rtl/setfunc.prg
  * source/rtl/readvar.prg
  * source/rtl/tclass.prg
  * source/rtl/ttextlin.prg
  * source/rtl/profiler.prg
  * source/rtl/treport.prg
  * source/rtl/tgetint.prg
  * source/rtl/persist.prg
  * source/rtl/altd.prg
  * source/rtl/devoutp.prg
  * source/rdd/usrrdd/example/exmemo.prg
  * source/rdd/usrrdd/example/exhsx.prg
  * source/rdd/usrrdd/example/exfcm.prg
  * source/rdd/usrrdd/example/exrlx.prg
  * source/rdd/usrrdd/rdds/dbtcdx.prg
  * source/rdd/usrrdd/rdds/fptcdx.prg
  * source/rdd/usrrdd/rdds/arrayrdd.prg
  * source/rdd/usrrdd/rdds/hscdx.prg
  * source/rdd/usrrdd/rdds/rlcdx.prg
  * source/rdd/usrrdd/rdds/fcomma.prg
  * source/rdd/usrrdd/rdds/smtcdx.prg
    * Formatting. Basically finished.

  * include/hbextern.ch
    ! Added two missing functions.
2008-10-05 13:57:35 +00:00
Viktor Szakats
41a0c0c1c1 2008-10-03 09:37 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/vm/extrap.c
    + Now using standard internal error call for Windows too.
    + Implemented //BATCH for OS/2. (please test)

  * source/rtl/errorint.c
    * Upped internal buffer.
2008-10-03 07:38:19 +00:00
Viktor Szakats
b7a7705eee 2008-10-03 09:04 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbole/oleauto.prg
  * contrib/hbole/ole2.c
  * contrib/hbwin/win_tole.prg
  * contrib/hbwin/win_ole.c
    * OLESHOWEXCEPTION() implemented on the .prg level, using 
      Alert() rather than MessageBox().
    ! All MessageBox()es converted to Alert()s.
    + Added OLEEXCEPTIONSOURCE(), OLEEXCEPTIONDESCRIPTION() 
      to hbole.

  * source/vm/maindllp.c
    ! Changed MessageBox() call to internal error.

  * contrib/gtwvg/gtwvg.c
  * source/rtl/gtwvt/gtwvt.c
    ! Changed MessageBox() calls to internal error.

  * contrib/gtwvg/gtwvg.c
    * Internal error calls synced with GTWVT.

  * source/rtl/hbgtcore.c
    - Removed "Internal error" text from two internal error descriptions.

  * make_vc.mak
    - Removed reference to MessageBox() from comment.

  ; NOTE: No more MessageBox() calls in Harbour.
          (except some wrappers for user .prg code)
2008-10-03 07:06:16 +00:00
Przemyslaw Czerpak
cd9a7b9a66 2008-10-03 00:25 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/filesys.c
    * added workaround for missing S_IREAD, S_IWRITE and S_IEXEC in OS2
      when _XOPEN_SOURCE is defined
2008-10-02 22:25:29 +00:00
Przemyslaw Czerpak
ffd9b480a4 2008-10-02 14:33 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
    % enable assembler inline function to access HVM thread stack pointer
      without native compiler TLS support even if HB_STACK_PRELOAD is not
      defined in MinGW builds. It gives some additional small speed
      improvement in MT mode

  * harbour/source/rtl/idle.c
    * unlock HVM inside hb_releaseCPU() function

  * harbour/contrib/hbwin/win_ole.c
    ! fixed casting and C++ compilation in some compilers

  * harbour/include/Makefile
  + harbour/contrib/examples/rdddbt/hbrdddbt.h
  - harbour/include/hbrdddbt.h
    ! moved hbrdddbt.h to correct location

  * harbour/include/Makefile
    ! added missinf hbthread.h

  * harbour/tests/rddtest/rddmktst.prg
  * harbour/tests/rddtest/adscl52.prg
  * harbour/tests/rddtest/adscl53.prg
  * harbour/tests/rddtest/ntxcl52.prg
  * harbour/tests/rddtest/ntxcl53.prg
  * harbour/tests/rddtest/cdxcl52.prg
  * harbour/tests/rddtest/rddtst.prg
  * harbour/tests/rddtest/cdxcl53.prg
    ! fixed description in header I wrongly copied without updating
      from other files

  + harbour/tests/hsxtest.prg
    + added test code for HiPer-SEEK indexes

  * harbour/source/rtl/filesys.c
    + added new functions: hb_fsExtName(), hb_fsReadAt(), hb_fsWriteAt(),
      hb_fsTruncAt() to use with shared file handles.
      Please test it in other *nixes. I used pread[64]()/pwrite[64]()
      POSIX functions but I do not know if they are available by default
      in other supported platforms like MacOSX, BSD, HPUX, SunOS.
      If not they I will have to implement some workaround.

  * harbour/common.mak
  * harbour/source/rtl/Makefile
  * harbour/include/hbapifs.h
  + harbour/source/rtl/filebuf.c
    + added set of new file functions (hb_file*()) which are designed to
      use with shared file handles and locks (buffers in the future):
      hb_fileExtOpen(), hb_fileCreateTemp(), hb_fileClose(), hb_fileLock(),
      hb_fileReadAt(), hb_fileWriteAt(), hb_fileTruncAt(), hb_fileSize(),
      hb_fileCommit(), hb_fileHandle()
      These functions operate on PHB_FILE structure instead of HB_FHANDLE.
      Now in POSIX systems they share file handle between aliased or
      simultaneously open by other thread work areas. It resolves the
      problem with releasing all process FCNTL locks by any close()
      operation even on duplicated or open() separately handle.
      Now DOS deny flags emulation works in single process even if
      BSD locks are disabled (non Linux *nixes).
      They also keep internal file lock list what allows to synchronize
      threads and aliases with file locks in POSIX systems. In the future
      it will be used also for internal locking to synchronize threads
      without OS level locks - pseudo exclusive mode in cloned WA.
      Finally these structures will be used also for file buffers
      which will be shared between aliased WA and threads.

  * harbour/include/hbrdddbf.h
  * harbour/include/hbrddcdx.h
  * harbour/include/hbrddntx.h
  * harbour/include/hbrdddel.h
  * harbour/include/hbrddsdf.h
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/delim1.c
  * harbour/source/rdd/sdf1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/rdd/dbfntx/dbfntx1.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  * harbour/source/rdd/hsx/hsx.c
  * harbour/contrib/hbbmcdx/bmdbfcdx.c
  * harbour/contrib/hbbmcdx/hbbmcdx.h
    * use PHB_FILE and hb_file*() functions instead of HB_FHANDLE (hb_fs*())
      to access files.

  + harbour/tests/aliaslck.prg
    + added test code for file lock synchronization between aliased
      work areas
2008-10-02 12:34:36 +00:00
Viktor Szakats
bb94b2aeaf 2008-10-02 08:57 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/dbedit.prg
    ! Fixed to use local Skipped() function.
    ! Guarded some 5.3 features with HB_COMPAT_C53.
    ! Fixed stepping back to real record from append position.
      (This fixes Clipper 5.x screen trashing and 
      '87 incompatibility.)
    ! Minor keyboard handling fix.
    ! Fixed behaviour in append mode.
2008-10-02 07:00:32 +00:00
Przemyslaw Czerpak
cce3e73961 2008-09-29 11:18 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbvm.h
  * harbour/include/hbthread.h
  * harbour/source/vm/hvm.c
  * harbour/source/vm/thread.c
    + added hb_vmThreadRegister() funtion which allows to register new
      thread in HVM without HVM stack allocation
    + added hb_vmThreadRelease() which removes registered thread which
      does not have allocated HVM stack yet
    + added hb_threadStateNew() which returns new thread control state
      which can be used as parameter to hb_vmThreadInit(),
      hb_vmThreadRegister(), hb_vmThreadRelease()
    * register thread control state also for main thread
      Now hb_threadSelf() returns thread pointer also for main thread
    ! fixed possible race condition in hb_threadWaitForAll() and
      hb_threadTerminateAll() by using hb_vmThreadRegister() before
      starting thread.

  * harbour/source/rtl/idle.c
    * interrupt hb_idleSleep() on QUIT or BREAK requests

  * harbour/tests/mt/mttest09.prg
    * small cleanup
2008-09-29 09:19:46 +00:00
Przemyslaw Czerpak
88d4f41e4f 2008-09-26 21:28 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/thread.c
    * release thread return value when is retrieve

  * harbour/common.mak
  * harbour/source/rtl/Makefile
  + harbour/source/rtl/tthreadx.prg
    + added xBase++ compatible signal class

  * harbour/source/rdd/wacore.c
    ! added missing alias setting after attaching work area

  + harbour/tests/mt/mttest09.prg
    + added test code for using the same work area in different threads
2008-09-26 19:28:54 +00:00
Viktor Szakats
cd96daef69 2008-09-25 00:22 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* make_b32.mak
  * make_gcc.mak
  * make_vc.mak
  * harbour.spec
  * source/rtl/hbgtcore.c
  * source/rtl/Makefile
  * source/rtl/gtsys.c
  * config/w32/poccce.cf
  * config/w32/xcc.cf
  * config/w32/pocc.cf
    % Removed HB_GT_DEFAULT envvar, which was the exact synonym 
      of HB_GT_LIB. Please use HB_GT_LIB instead, if you - by any 
      chance - want to change the default GT at Harbour build-time.

  * tests/speedtst.prg
    ! Fixed to delete temp .dbf files before exiting.
2008-09-24 22:22:57 +00:00
Viktor Szakats
cb657c0fb5 2008-09-24 12:12 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* common.mak
  * source/rtl/gtgui/Makefile
  - source/rtl/gtgui/gtdef.c
    - Removed HB_GTGUI_HACK to masquerade GTGUI under a different 
      name and to make Windows users happier. Instead of hacking
      Windows users with GUI programs should simply use 
      this in their code:
      --
      PROCEDURE HB_GTSYS
         REQUEST HB_GT_GUI_DEFAULT
         RETURN
      --
    ; This clears up a few exceptions, make hacks and a few possible 
      confusions.
2008-09-24 10:13:27 +00:00
Viktor Szakats
f1045db35b 2008-09-24 01:37 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/gtsys.c
    * Added HB_WINCE with GTWVT to the set of defaults.

  * config/darwin/global.cf
  * config/hpux/global.cf
  * config/linux/global.cf
  * config/sunos/global.cf
  * config/bsd/global.cf
    % Removed unnecessary defaulting to GTSTD.

  * config/os2/gcc.cf
    ! Fixed minor typo in line 24 / HB_OS2_NEW_TCP.
2008-09-23 23:38:08 +00:00
Przemyslaw Czerpak
fe42f7ca94 2008-09-24 00:44 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/hbgtcore.c
  * harbour/source/rtl/gtsys.c
    * use GTTRM as default GT in *nixes
2008-09-23 22:45:16 +00:00
Viktor Szakats
454b3b49e0 2008-09-23 14:38 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbole/ole2.c
  * contrib/hbgf/hbgfwin/winapi.c
  * contrib/hbgf/hbgfos2/os2pm.c
  * contrib/hbwin/win_ole.c
  * contrib/hbwhat/wincorec.c
  * source/rtl/do.c
  * source/rdd/workarea.c
    % hb_vmPushSymbol( hb_dynsymSymbol( p ) ) -> hb_vmPushDynSym( p )

  * contrib/hbwhat/wincorec.c
    ! WHT__GETDLGPROC() fixed.
    ! hb_vmPushSymbol( hb_itemGetSymbol( p ) ) -> hb_vmPushDynSym( p )

  * contrib/hbgf/hbgfwin/winapi.c
  * contrib/hbwhat/wincorec.c
  * contrib/hbwhat/whtmsg.c
  * contrib/hbwhat/whtbmp.c
  * contrib/hbwhat/whtcomm.c
  * contrib/hbwhat/whthead.c
  * contrib/hbwhat/whthead.c
  * contrib/hbwhat/whtkbrd.c
  * contrib/hbwhat/whtlv.c
  * contrib/hbwhat/whttext.c
  * contrib/hbwhat/whtwnd.c
  * contrib/hbwhat/whtdlg.c
  * contrib/hbwhat/whttab.c
    ! Fixed few LPARAM/WPARAM passings to be 64-bit compatible.
      (hb_parnl()/hb_parni() -> hb_parnint())

  * source/vm/thread.c
  * source/rtl/do.c
  * source/rdd/usrrdd/usrrdd.c
  * contrib/hbwhat/whtlv.c
  * contrib/hbwhat/whtfont.c
    % hb_vmPushSymbol( hb_itemGetSymbol( p ) ) -> hb_vmPush()
    ; QUESTION/TOFIX: In whtlv.c and whtfont.c this may be wrong, 
                      and hb_vmPushDynSym() could be needed instead.
                      Can someone take a look pls?
2008-09-23 12:48:23 +00:00
Antonio Carlos Pantaglione
3876fb6d73 2008-09-22 14:34 UTC-0300 Antonio Carlos Pantaglione <toninho@fwi.com.br>
% source/rtl/dbedit.prg
  % source/rtl/dirscan.prg
  % source/rtl/errorsys.prg
  % source/rtl/hbini.prg
  % source/rtl/listbox.prg
  % source/rtl/objfunc.prg
  % source/rtl/tbrowse.prg
  % source/rtl/tclass.prg
  % source/rtl/tget.prg
  % source/rtl/tgetlist.prg
    % Code formating and some local decarations inlined
2008-09-22 17:39:16 +00:00
Viktor Szakats
216164681e 2008-09-22 19:19 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* make_b32.mak
  * make_vc.mak
  * common.mak
  * source/rtl/hbgtcore.c
    ! Any messing with HB_GT_LIB and HB_GT_DEFAULT was removed 
      from non-GNU make files, to leave these things to the 
      source code itself (just like in GNU-make).
    + Added automatic selection of GTWVT from source code, 
      so that it also works in GNU-make.

  * source/rdd/dbfcdx/dbfcdx1.c
    ! Restored RTE behaviour when key length is zero.
    ! Recently added C53 compatible but C52 incompatible 
      RTE enabled only if HB_COMPAT_C53 and HB_C52_STRICT 
      are both #defined to not make valid C52 apps crash.
    ; Someone pls review me.
2008-09-22 17:21:44 +00:00
Przemyslaw Czerpak
400cb4e34d 2008-09-22 16:37 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/hbregex.c
   * added hack to force linking newer PCRE versions not the one included
     in BCC RTL when Harbour is compiled without HB_PCRE_REGEX_BCC.
     If user application will uses regex expressions (directly or indirectly
     by some RTL functions) then lining it without HBPCE should give link
     time error that pcre_config() function is missing.
2008-09-22 14:37:51 +00:00
Przemyslaw Czerpak
934e7f3e8e 2008-09-22 15:23 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/hbinet.c
    ! fixed W32 compilation
2008-09-22 13:24:14 +00:00
Przemyslaw Czerpak
4be2b3ea73 2008-09-22 04:27 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/hbinet.c
    ! fixed typo in previous commit which broke MS-Win builds
    * check hb_vmReaquestQuery() after executing use codeblocks
2008-09-22 02:27:54 +00:00
Przemyslaw Czerpak
b34b792443 2008-09-22 03:49 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
  * harbour/source/vm/estack.c
  * harbour/source/vm/hvm.c
    + added support for nested hb_vmUnlock()/hb_vmLock() calls

  * harbour/source/rtl/hbinet.c
    * encapsulated all potentially slow inet functions inside
      hb_vmUnlock()/hb_vmLock() calls
2008-09-22 01:50:21 +00:00
Przemyslaw Czerpak
d94370e84e 2008-09-20 03:38 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/hvm.c
    * minor modification: #ifdef ... => #if defined( ... )

  * harbour/source/rtl/gtcrs/gtcrs.c
  * harbour/source/rtl/gttrm/gttrm.c
    ! fixed reentrance counter resetting
2008-09-20 01:39:17 +00:00
Przemyslaw Czerpak
932e4f99a6 2008-09-18 07:55 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/cdpapi.c
    * explicit casting to char * in 1-st strchr() parameter as workaround
      for wrong function prototype in DMC header files
2008-09-18 05:56:41 +00:00