Commit Graph

531 Commits

Author SHA1 Message Date
Przemyslaw Czerpak
3461fd6177 2010-01-22 00:33 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtxwc/gtxwc.c
    + added support for independent CP setting for BOX and normal characters
    * disabled Clipper VGA compatible memory buffer in GTXWC default
      settings to keep information about character sets (box vs normal)
    + added support for HB_GTI_BOXCP
2010-01-21 23:33:49 +00:00
Viktor Szakats
8269d61d2c 2010-01-21 16:59 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/memoedit.prg
    ! Fixed to not return edited memoedit buffer if :Saved
      flag is false. This patch is meant to fix sf.net bug #2936334.
      Again such a huge bug I wonder no one noticed it so far.
      MEMOEDIT() is the remaining last dark corners of Harbour RTL
      (maybe with AChoice()) which is not fully C5.x compatible,
      and it's a heap of patches and hacks to give answer to
      reported problems.
      Eventually some concerned MEMOEDIT() user will have to rework
      it like we did with GET/TBROWSE to give a proper fix to all
      reported issues.
      (F.e. in TEditor() there is a bug where chars are stuffed to
      the wrong position if initially we position cursor after EOL.
      Try by deleting text.txt in attached example.)
      Please test, review, fixme, look also for regressions.
    + Added initial support for ME_PAST Xbase++ event. Please test,
      I didn't make any testing against Xbase++.

  * contrib/hbwin/wapi_wingdi.c
    + WAPI_SELECTOBJECT() got support for HBRUSH.

  * contrib/hbwin/win_prn1.c
    + Added two TOFIX comments to serious security holes and potential
      GPFs to bitmap handling functions. Enough to load a malformed or
      corrupted .bmp file to exploit it.
      Any takers for fixing them?

  * contrib/hbide/idemisc.prg
    * Two STATIC variables prefixed with 's_'
2010-01-21 16:03:31 +00:00
Przemyslaw Czerpak
aa8c7c783a 2010-01-21 10:17 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/common/hbffind.c
  * harbour/src/rtl/filesys.c
  * harbour/src/rtl/spfiles.c
    ! fixed HB_TRACE() messages to work with new HB_FATTR type
2010-01-21 09:18:24 +00:00
Przemyslaw Czerpak
d248d8e892 2010-01-21 01:09 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/hbnetio/netiocli.c
  * harbour/contrib/hbnetio/readme.txt
    + added new client side function:
      NETIO_DECODE( [@]<cFullName>, [@<cServer>], [@<nPort>], [@<nTimeOut>], ;
                   [@<cPasswd>], [@<nCompressionLevel>], [@<nStrategy>] )
            -> <lDecoded>
      Decode connection parameters from <cFullName> and default settings.
      Return .T. if <cFullName> contains any connection settings.
      <cFullName> should not contain "net:" prefix.

  * harbour/src/rtl/itemseri.c
    + added support for hash array flags and default value serialization
      Warning: before this modification hash arrays were always restored
               with binary sorting with default auto assign setting and
               without any default value and resorted if necessary. Now
               only non binary hash arrays are resorted what may cause
               problems for hash arrays not using binary sorting serialized
               by old code and restored by the current one. In such case
               it's necessary to restore original flags manually using
               hb_h*() functions to force resorting.
    - removed my TODO note:
         "extended hash format with default value and hash flags"
2010-01-21 00:10:08 +00:00
Viktor Szakats
67c143f7f4 2010-01-19 00:40 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/gtwvt/gtwvt.c
  * contrib/gtwvg/gtwvg.c
    ! Fixed GFX drawing functions to forward success/failure
      results from Windows API calls.
2010-01-18 23:41:57 +00:00
Viktor Szakats
b822fa0dbf 2010-01-18 20:32 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/extrap.c
  * src/rtl/diskspac.c
  * src/rtl/disksphb.c
  * src/rtl/gtwvt/gtwvt.c
  * contrib/gtwvg/gtwvg.c
  * contrib/gtwvg/wvgwin.c
  * contrib/hbwin/win_prn2.c
  * contrib/hbwin/win_prn3.c
    + Using HBTEXT() macro on 2nd parameter of GetProcAddress()
      in _all_ cases. This can't hurt, but it's useful to never
      forget it for WinCE targets/branches.
      Recent change got also simplified after this.
      Pls review me.
2010-01-18 19:37:26 +00:00
Przemyslaw Czerpak
8f9973afd5 2010-01-18 14:56 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/src/common/hbver.c
    + added BOOL hb_iswin9x( void ) C function

  * harbour/src/rtl/version.c
    + added HB_OSISWIN9X() PRG function

  * harbour/src/rtl/gttone.c
    % simplified the code using hb_iswin9x() function

    TODO: Check if WinCE support WinNT file IO functions and if yes then
          replace in src/rtl/filesys.c 'if( hb_iswinnt() )' with 
          'if( !hb_iswin9x() )'

  * harbour/contrib/hbwin/win_tprn.prg
  * harbour/contrib/hbwin/win_prn1.c
    + added ::AskProperties in WIN_PRN class
      If it is assigned .t. prior to calling ::Create(), a DocumentProperties
      dialog is displayed. By Budyanto Dj. borrowed from xHarbour.
      NOTE: this modification does not contain win9x hack present in
            xHarbour. Please make tests and update this code if necessary
2010-01-18 13:57:04 +00:00
Viktor Szakats
57369ad95c 2010-01-15 19:55 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/set.c
    ! ULONG -> HB_FATTR. Missed this occurrence of this ULONG
      in previous global modification pass.
      Error reported by Istvan Bisz.

  * contrib/hbct/Makefile
  * contrib/hbct/disk.c
  + contrib/hbct/diskhb.c
    ! Cleaned the way Windows headers are included.
    * Cleaned TRUENAME(), GETVOLINFO() and VOLSERIAL().
    + Using new UNICODE macros in TRUENAME(), GETVOLINFO() and VOLSERIAL().
    ! GETVOLINFO(), which is not a CT function, got moved
      to a separate source file to avoid name collisions.
    ; TOFIX: It should be moved to xhb lib eventually.

  * contrib/hbct/ctnet.c
    * Cleaned NETREDIR() and NETRMTNAME() functions.
    + Reworked NETREDIR() and NETRMTNAME() functions to use new UNICODE macros.
    + Extended return buffer in network functions to 128 (from 80).
    + NETRMTNAME() got support to return embedded zeros in name string.
    + Documented a hidden xhb extension in NETREDIR().
    % hb_WNetErrorHandler() static function merged into NETREDIR().
    ; TOFIX: Above hidden extension in NETREDIR() very much looks like
             a debugging feature, so I left a TOFIX to convert it to
             HB_TRACE() call.
    ; Please test them.

  * contrib/hbsqlit3/hbsqlit3.c
  * contrib/hbmisc/dates2.c
    - Deleted two functions which were recently made static,
      and it turned out they're not even used by Harbour.
      Warning reported by Istvan Bisz.

  * src/vm/hashfunc.c
  * src/vm/asort.c
  * src/rtl/cdpapi.c
  * contrib/xhb/xhbat.c
  * contrib/xhb/txtline.c
    * LONG -> HB_ISIZ

  * contrib/xhb/bkgtsks.c
    * SHORT -> int

  * contrib/xhb/hbcomprs.c
  * contrib/xhb/xhberrc.c
    * LONG -> long
2010-01-15 18:57:35 +00:00
Viktor Szakats
9b462b15d0 2010-01-15 17:33 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/cmdarg.c
  * contrib/hbct/disk.c
    % Using HB_SIZEOFARRAY() instead of repeating declaration size.

  * src/vm/maindllp.c
  * src/vm/extend.c
  * include/hbtypes.h
  * include/hbapi.h
    + 'parinfa' retval ULONG -> HB_SIZE

  * src/vm/arrayshb.c
  * src/rtl/substr.c
  * src/rtl/replic.c
  * src/rtl/padr.c
  * src/rtl/padc.c
  * src/rtl/strtran.c
  * src/rtl/padl.c
  * src/rtl/lang.c
  * src/rtl/right.c
  * src/rtl/left.c
  * src/rtl/space.c
  * src/rtl/hbstrsh.c
  * src/rtl/rat.c
  * contrib/hbct/charsprd.c
  * contrib/xhb/xhbarr.c
  * contrib/hbpgsql/postgres.c
  * contrib/hbclipsm/stack.c
  * contrib/hbmisc/stringsx.c
    + 'long' -> HB_ISIZ

  * src/common/hbwince.c
  * include/hbwince.h
  * contrib/xhb/xhbat.c
  * contrib/xhb/cstructc.c
    + 'unsigned long' -> HB_SIZE

  * src/rtl/fstemp.c
  * src/rtl/net.c
    ! L'x' -> TEXT( 'x' ).
      'L' was used also in non-UNICODE mode, which doesn't seem right.

  * src/rtl/diskspac.c
  * contrib/hbct/disk.c
  * contrib/hbwin/win_com.c
  * contrib/hbwin/win_prn3.c
    * TCHAR literals enclosed inside TEXT() macro.

  * contrib/hbwin/win_prn1.c
    ! WIN_GETPRINTERFONTNAME(): Fixed buffer overrun in UNICODE
      mode for font names longer than 64 bytes.
      [TOMERGE 2.0]

  * ChangeLog
    + Added two missed changed to this entry:
      2010-01-15 12:01 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
        * include/hbdefs.h
          + Added HB_ISIZ temporary type to mark string/array/hash 
            index/length variable already using signed 'long' type.
            This will have to converted to HB_SIZE, one HB_SIZE
            gets also mapped to 'long'.
          * HB_FATTR mapped to HB_U32 (was: unsigned long)
2010-01-15 16:39:54 +00:00
Viktor Szakats
7903d5b170 2010-01-15 12:01 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/macro/macro.yyc
  * src/macro/macro.y
  * src/macro/macrolex.c
  * src/rtl/gtwvt/gtwvt.h
  * doc/en-EN/hb_apigt.txt
  * doc/en-EN/hb_api.txt
  * doc/en-EN/hb_vm.txt
  * doc/en-EN/hb_apiln.txt
  * doc/en-EN/hb_macro.txt
  * doc/en-EN/hb_apiit.txt
  * doc/en-EN/hb_apifs.txt
  * doc/codestyl.txt
  * include/hbthread.h
  * include/hbxvm.h
  * include/hbdefs.h
  * include/hbvm.h
  * include/hbcomp.h
  * include/hbcompdf.h
  * include/hbwmain.c
  * include/hbexpra.c
  * include/hbfloat.h
  * include/hbapicls.h
  * include/hbexprb.c
  * contrib/hbtpathy/tpos2.c
  * contrib/hbtpathy/tpunix.c
  * contrib/hbnf/prtscr.c
  * contrib/hbnf/proper.c
  * contrib/hbnf/fttext.c
  * contrib/hbnf/dispc.c
  * contrib/hbnf/ontick.c
  * contrib/hbnf/poke.c
  * contrib/hbpgsql/postgres.c
  * contrib/rddads/rddads.h
  * contrib/hbmisc/strfmt.c
  * contrib/hbmisc/ffind.c
  * contrib/hbwin/wapi_winbase.c
  * contrib/hbwin/axcore.c
  * contrib/hbwin/win_dll.c
  * examples/hbdoc/examples/core_es/hb_vm.txt
  * examples/hbdoc/examples/core_es/hb_apiln.txt
  * examples/rddado/adordd.prg
    * BOOL  -> HB_BOOL
    * TRUE  -> HB_TRUE
    * FALSE -> HB_FALSE
      ; Final touches after verification of whole codebase.
        GTWVG still needs changes.
    ! Fixed FT_FBOF() returning random value after FT_USE().
    ! Fixed some bool values stored in int types.
2010-01-15 11:06:44 +00:00
Viktor Szakats
003fd7c41e 2010-01-14 18:01 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/strclear.c
    + HB_STRCLEAR() return value will now precisely inform about
      successful clear operation. Thanks to Mindaugas.

  * src/vm/hashfunc.c
  * src/vm/macro.c
  * src/vm/strapi.c
  * src/vm/runner.c
  * src/vm/estack.c
  * src/vm/codebloc.c
  * src/vm/hashes.c
  * src/vm/maindll.c
  * src/vm/dynsym.c
  * src/vm/debug.c
  * src/vm/itemapi.c
  * src/vm/garbage.c
  * src/vm/asort.c
  * src/vm/hvm.c
  * src/vm/cmdarg.c
  * src/vm/mainstd.c
  * src/vm/maindllp.c
  * src/vm/arrays.c
  * src/vm/task.c
  * src/vm/fm.c
  * src/vm/proc.c
  * src/vm/thread.c
  * src/vm/memvars.c
  * src/vm/arrayshb.c
  * src/vm/eval.c
  * src/vm/extend.c
  * src/vm/dynlibhb.c
  * src/vm/set.c
  * src/vm/classes.c
  * src/debug/dbgentry.c
  * src/common/hbgete.c
  * src/common/hbffind.c
  * src/common/hbver.c
  * src/common/hbprintf.c
  * src/common/hbfsapi.c
  * src/common/hbstr.c
  * src/common/expropt1.c
  * src/common/expropt2.c
  * src/common/hbdate.c
  * src/common/strwild.c
  * src/common/hbhash.c
  * src/rtl/gtdos/gtdos.c
  * src/rtl/fscopy.c
  * src/rtl/run.c
  * src/rtl/gtwin/gtwin.c
  * src/rtl/gtxwc/gtxwc.h
  * src/rtl/gtxwc/gtxwc.c
  * src/rtl/math.c
  * src/rtl/empty.c
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/trim.c
  * src/rtl/filehb.c
  * src/rtl/hbtoken.c
  * src/rtl/fstemp.c
  * src/rtl/gtchrmap.c
  * src/rtl/strmatch.c
  * src/rtl/gtstd/gtstd.c
  * src/rtl/gttrm/gttrm.c
  * src/rtl/padr.c
  * src/rtl/hbstrfmt.c
  * src/rtl/transfrm.c
  * src/rtl/fserr.c
  * src/rtl/minmax.c
  * src/rtl/hbfeof.c
  * src/rtl/dates.c
  * src/rtl/padc.c
  * src/rtl/gtcgi/gtcgi.c
  * src/rtl/errapi.c
  * src/rtl/version.c
  * src/rtl/hbregexc.c
  * src/rtl/hbrandom.c
  * src/rtl/strtran.c
  * src/rtl/hbprocfn.c
  * src/rtl/hbsocket.c
  * src/rtl/hbinet.c
  * src/rtl/copyfile.c
  * src/rtl/errintlo.c
  * src/rtl/gtapi.c
  * src/rtl/filesys.c
  * src/rtl/padl.c
  * src/rtl/hbregex.c
  * src/rtl/hbbit.c
  * src/rtl/isprint.c
  * src/rtl/saverest.c
  * src/rtl/diskspac.c
  * src/rtl/console.c
  * src/rtl/spfiles.c
  * src/rtl/gtos2/gtos2.c
  * src/rtl/philes.c
  * src/rtl/hbbffnc.c
  * src/rtl/hbgtcore.c
  * src/rtl/cdpapi.c
  * src/rtl/dirdrive.c
  * src/rtl/hbi18n1.c
  * src/rtl/gtclip.c
  * src/rtl/mlcfunc.c
  * src/rtl/gtapiu.c
  * src/rtl/accept.c
  * src/rtl/idle.c
  * src/rtl/itemseri.c
  * src/rtl/hbrunfun.c
  * src/rtl/setcolor.c
  * src/rtl/setkey.c
  * src/rtl/gtsln/mousesln.c
  * src/rtl/gtsln/gtsln.c
  * src/rtl/gtsln/kbsln.c
  * src/rtl/gtsln/gtsln.h
  * src/rtl/disksphb.c
  * src/rtl/strc.c
  * src/rtl/gtpca/gtpca.c
  * src/rtl/gtgui/gtgui.c
  * src/rtl/hbhex.c
  * src/rtl/trace.c
  * src/rtl/gt_tpl/gt_tpl.c
  * src/rtl/inkeyapi.c
  * src/rtl/filebuf.c
  * src/rtl/gete.c
  * src/rtl/setcurs.c
  * src/rtl/hbproces.c
  * src/rtl/langapi.c
  * src/rtl/gtwvt/gtwvt.h
  * src/rtl/gtwvt/gtwvt.c
  * src/rtl/mouse53.c
  * src/rtl/fssize.c
  * src/rtl/hbbyte.c
  * src/rtl/mouseapi.c
  * src/rtl/memofile.c
  * src/rtl/valtostr.c
  * src/rtl/file.c
  * src/rtl/val.c
  * src/rtl/rat.c
  * src/rdd/hbsix/sxcompr.c
  * include/hbvmpub.h
  * include/hbset.h
  * include/hbapicdp.h
  * include/hbstack.h
  * include/hbapilng.h
  * include/hbgtcore.h
  * include/hbapifs.h
  * include/hbthread.h
  * include/hbxvm.h
  * include/hbmacro.h
  * include/hbtypes.h
  * include/hbapi.h
  * include/hbapiitm.h
  * include/hbznet.h
  * include/hbvm.h
  * include/hbapidbg.h
  * include/hbcomp.h
  * include/hbsxfunc.h
  * include/hbcompdf.h
  * include/hbmather.h
  * include/hbapistr.h
  * include/hbwmain.c
  * include/hbexpra.c
  * include/hbexprop.h
  * include/hbsocket.h
  * include/hbapigt.h
  * include/hbapicls.h
  * include/hbhash.h
  * include/hbregex.h
  * include/hbexprb.c
  * include/hbdate.h
  * contrib/gtalleg/gtalleg.c
  * contrib/xhb/hboutdbg.c
  * contrib/xhb/hbserv.h
  * contrib/xhb/bkgtsks.c
  * contrib/xhb/dbf2txt.c
  * contrib/xhb/xhbis.c
  * contrib/xhb/fparse.c
  * contrib/xhb/xhb.h
  * contrib/xhb/xhbsave.c
  * contrib/xhb/xhbmsgs.c
  * contrib/xhb/freadlin.c
  * contrib/xhb/txtline.c
  * contrib/xhb/dbgfxc.c
  * contrib/xhb/xhberrc.c
  * contrib/xhb/filestat.c
  * contrib/xhb/xhbcopyf.c
  * contrib/xhb/hbnxs.h
  * contrib/xhb/hbserv.c
  * contrib/xhb/cstructc.c
  * contrib/xhb/xhbfunc.c
  * contrib/hbmzip/hbmzip.c
  * contrib/gtqtc/gtqtc.cpp
  * contrib/gtwvg/gtwvg.c
  * contrib/gtwvg/gtwvg.h
  * contrib/gtwvg/wvggui.c
  * contrib/gtwvg/wvgcuig.c
  * contrib/gtwvg/wvggui.h
  * contrib/gtwvg/wvgwin.c
  * contrib/gtwvg/wvgutils.c
  * contrib/gtwvg/wvgcore.c
  * contrib/gtwvg/wvgwing.c
  * contrib/hbmisc/hb_f.c
  * contrib/hbmisc/dates2.c
  * contrib/hbwin/hbwapi.h
  * contrib/hbbtree/tests/ctest.c
    * BOOL  -> HB_BOOL
    * TRUE  -> HB_TRUE
    * FALSE -> HB_FALSE
    ; If possible please try to verify me, at least your own are of interest
      or expertise. Look for HB_BOOL/HB_TRUE/HB_FALSE usage in WINAPI calls,
      if you see such thing, it's wrong. Also some, HB_BOOL WINAPI BOOL
      implicit conversions may need to be cleaned.
    ; I didn't touch PP, RDD, SDD and compiler parts yet.
    ; In few places it's possible that some in-line comments are disaligned
      after this operation.
2010-01-14 17:59:30 +00:00
Viktor Szakats
f6a805264e 2010-01-14 13:20 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbdefs.h
    + Added HB_FATTR type to represent file attribute (mapped to unsigned long).

  * src/common/hbffind.c
  * src/rtl/fstemp.c
  * src/rtl/filesys.c
  * src/rtl/spfiles.c
  * src/rtl/philes.c
  * src/rtl/filebuf.c
  * include/hbapifs.h
  * contrib/hbct/files.c
    + ULONG -> HB_FATTR

  * contrib/hbct/charsprd.c
  * contrib/hbct/misc2.c
  * contrib/hbct/blank.c
  * contrib/hbct/disk.c
  * contrib/hbct/dattime2.c
  * contrib/hbct/expand.c
    + ULONG -> HB_SIZE

  * include/hbapifs.h
  * contrib/xhb/xhb.h
    + ULONG -> HB_SIZE (missed from prev)
2010-01-14 12:24:57 +00:00
Viktor Szakats
48a5b549cd 2010-01-14 12:36 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/xhb/hbcrypt.c
  * contrib/xhb/dbf2txt.c
  * contrib/xhb/xstrdel.c
  * contrib/xhb/hbcomprs.c
  * contrib/xhb/txtline.c
  * contrib/hbbmcdx/bmdbfcdx.c
    ! Fixed to use current APIs instead of legacy/compatibility ones.
    ; Pls review the cdp ones.

  * src/rtl/langapi.c
  * include/hbapilng.h
    + Un-marked hb_langDGetErrorDesc() with HB_LEGACY_LEVEL3. [REVERT]
2010-01-14 11:39:44 +00:00
Viktor Szakats
c5847e7452 2010-01-14 12:25 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/hashfunc.c
  * src/vm/macro.c
  * src/vm/strapi.c
  * src/vm/codebloc.c
  * src/vm/hashes.c
  * src/vm/debug.c
  * src/vm/itemapi.c
  * src/vm/asort.c
  * src/vm/hvm.c
  * src/vm/cmdarg.c
  * src/vm/maindllp.c
  * src/vm/arrays.c
  * src/vm/memvars.c
  * src/vm/arrayshb.c
  * src/vm/extend.c
  * src/vm/set.c
  * src/rtl/strtran.c
  * include/hbxvm.h
  * include/hbtypes.h
  * include/hbapi.h
  * include/hbapistr.h
    * ULONG -> HB_SIZE
2010-01-14 11:28:27 +00:00
Viktor Szakats
835220af7f 2010-01-14 11:52 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/gtwin/gtwin.c
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/gtstd/gtstd.c
  * src/rtl/gtcgi/gtcgi.c
  * src/rtl/gtpca/gtpca.c
  * src/rtl/gtgui/gtgui.c
  * src/rtl/gtwvt/gtwvt.c
  * src/rtl/transfrm.c
  * src/rtl/hbprocfn.c
  * src/rtl/console.c
  * src/rtl/hbgtcore.c
  * src/rtl/accept.c
  * src/rtl/hbproces.c
  * include/hbgtcore.h
    * ULONG -> HB_SIZE
2010-01-14 10:53:40 +00:00
Viktor Szakats
528989c718 2010-01-14 11:31 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/set.c
  * src/debug/dbgentry.c
  * src/common/hbgete.c
  * src/common/hbffind.c
  * src/common/hbwince.c
  * src/common/hbstr.c
  * src/common/hbmem.c
  * src/common/strwild.c
  * src/common/hbhash.c
  * src/rtl/lennum.c
  * src/rtl/strxor.c
  * src/rtl/strcase.c
  * src/rtl/hbzlibgz.c
  * src/rtl/trim.c
  * src/rtl/base64c.c
  * src/rtl/binnum.c
  * src/rtl/hbtoken.c
  * src/rtl/ampm.c
  * src/rtl/descend.c
  * src/rtl/strpeek.c
  * src/rtl/replic.c
  * src/rtl/padr.c
  * src/rtl/hbstrfmt.c
  * src/rtl/hbntos.c
  * src/rtl/hbadler.c
  * src/rtl/at.c
  * src/rtl/fserr.c
  * src/rtl/hbcrc.c
  * src/rtl/hbmd5.c
  * src/rtl/hbascii.c
  * src/rtl/padc.c
  * src/rtl/strzero.c
  * src/rtl/hbregexc.c
  * src/rtl/strtran.c
  * src/rtl/hbsocket.c
  * src/rtl/hbinet.c
  * src/rtl/strtoexp.c
  * src/rtl/gtapi.c
  * src/rtl/filesys.c
  * src/rtl/padl.c
  * src/rtl/hbregex.c
  * src/rtl/saverest.c
  * src/rtl/right.c
  * src/rtl/hbbffnc.c
  * src/rtl/cdpapi.c
  * src/rtl/hbi18n1.c
  * src/rtl/gtclip.c
  * src/rtl/mlcfunc.c
  * src/rtl/left.c
  * src/rtl/xsavescr.c
  * src/rtl/hardcr.c
  * src/rtl/setkey.c
  * src/rtl/hbzlib.c
  * src/rtl/strc.c
  * src/rtl/stuff.c
  * src/rtl/hbhex.c
  * src/rtl/trace.c
  * src/rtl/samples.c
  * src/rtl/inkeyapi.c
  * src/rtl/inkey.c
  * src/rtl/mtran.c
  * src/rtl/gete.c
  * src/rtl/mouse53.c
  * src/rtl/colorind.c
  * src/rtl/ati.c
  * src/rtl/soundex.c
  * src/rtl/memofile.c
  * src/rtl/valtostr.c
  * src/rtl/rat.c
  * include/hbapicdp.h
  * include/hbgtcore.h
  * include/hbapifs.h
  * include/hbapi.h
  * include/hbchksum.h
  * include/hbapigt.h
  * include/hbhash.h
  * contrib/xhb/hboutdbg.c
  * contrib/xhb/hbxml.c
  * contrib/xhb/hbcrypt.c
  * contrib/xhb/dbf2txt.c
  * contrib/xhb/xstrdel.c
  * contrib/xhb/xhbsave.c
  * contrib/xhb/hbcomprs.c
  * contrib/xhb/datesxhb.c
  * contrib/xhb/xhbat.c
  * contrib/xhb/xhbmsgs.c
  * contrib/xhb/xhbarr.c
  * contrib/xhb/txtline.c
  * contrib/xhb/xhbtrim.c
  * contrib/xhb/hbserv.c
  * contrib/xhb/cstructc.c
  * contrib/xhb/xhbfunc.c
    * ULONG -> HB_SIZE

  * src/rtl/langapi.c
  * include/hbapilng.h
    * ULONG -> int
    + Marked hb_langDGetErrorDesc() with HB_LEGACY_LEVEL3.

  * src/common/hbprintf.c
    ! ULONG -> int

  * src/debug/dbgentry.c
    * Formatting.
2010-01-14 10:37:49 +00:00
Viktor Szakats
1cce9df65f 2010-01-14 04:47 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/mousex.c
  * src/rdd/dbcmdx.c
  * contrib/xpp/mousex.c
  * contrib/xpp/dbcmdx.c
  * contrib/hbtpathy/tpwin.c
  * contrib/hbgt/bitflags.c
  * contrib/hbsqlit3/hbsqlit3.c
  * contrib/hbnf/fttext.c
  * contrib/hbnf/putkey.c
  * contrib/hbclipsm/time.c
  * contrib/hbtip/utils.c
  * contrib/hbtip/encmthd.c
    + BOOL/TRUE/FALSE -> HB_BOOL/HB_TRUE/HB_FALSE

  * contrib/hbsqlit3/hbsqlit3.c
    ! Marked local support functions as 'static'.

  * contrib/hbnf/mouse.c
    * BOOL -> int
    % Using hb_arraySet*() API.

  * contrib/hbgd/gdwrp.c
    ! Added missing hb_numToHandle() calls.
2010-01-14 03:48:59 +00:00
Viktor Szakats
80cd36488b 2010-01-14 04:04 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/binnumx.c
  * contrib/xpp/binnumx.c
  * contrib/hbmisc/stringsx.c
  * contrib/hbtip/utils.c
  * contrib/hbcairo/context.c
  * contrib/hbcairo/core.c
    * ULONG -> HB_SIZE

  * contrib/hbgt/ascposgt.c
    * ULONG -> HB_SIZE
    ! hb_parni() -> hb_parnl()

  * contrib/hbsqlit3/hbsqlit3.c
    ! ULONG -> int (var used in 3rd party interface)

  * contrib/hbmzip/hbmzip.c
    * Formatting.

  * contrib/hbclipsm/num.c
    % hb_retnl() -> hb_retni()
    * ULONG -> HB_SIZE

  * contrib/hbgd/gdwrp.c
    % Deleted few unnecessary ULONG casts.
    ! Fixed win64 problem where file handle was read from hb_parnl()
      instead of hb_parnint().
    ! Fixed 'hb_parnl( 2 ) > -1' code checking for valid file handle
      to 'hb_parnint( 2 ) != FS_ERROR'.
    * ULONG -> HB_SIZE
    % Elmininated few variables.
    * Formatting.

  * contrib/hbmisc/strfmt.c
    * ULONG -> int, HB_SIZE
    * BOOL -> HB_BOOL.
2010-01-14 03:07:23 +00:00
Przemyslaw Czerpak
b1d68f0a5e 2010-01-14 01:44 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/compiler/harbour.y
  * harbour/src/compiler/harbour.yyh
  * harbour/src/compiler/harbour.yyc
    ! pacified compile time error when ... is used as parameter in _HB_MEMBRER
      declaration. TODO: Remove or fix this strong typing grammar rules.

  * harbour/src/debug/dbgtwin.prg
  * harbour/src/debug/dbgtmenu.prg
  * harbour/src/debug/tbrwtext.prg
  * harbour/src/debug/debugger.prg
  * harbour/src/debug/dbgtinp.prg
  * harbour/src/rtl/tbcolumn.prg
  * harbour/src/rtl/listbox.prg
  * harbour/src/rtl/pushbtn.prg
  * harbour/src/rtl/treport.prg
  * harbour/src/rtl/radiogrp.prg
  * harbour/src/rtl/tthreadx.prg
  * harbour/src/rtl/checkbox.prg
  * harbour/src/rtl/tsymbol.prg
  * harbour/src/rtl/teditor.prg
  * harbour/src/rtl/tmenuitm.prg
  * harbour/src/rtl/tbrowse.prg
  * harbour/contrib/hbmysql/tmysql.prg
  * harbour/contrib/xhb/stream.prg
  * harbour/contrib/xhb/trpccli.prg
  * harbour/contrib/xhb/hblognet.prg
  * harbour/contrib/xhb/tfile.prg
  * harbour/contrib/xhb/tframe.prg
  * harbour/contrib/xhb/htjlist.prg
  * harbour/contrib/xhb/hblog.prg
  * harbour/contrib/xhb/trpc.prg
  * harbour/contrib/xhb/thtm.prg
  * harbour/contrib/xhb/tcgi.prg
  * harbour/contrib/xhb/ttable.prg
  * harbour/contrib/xhb/txml.prg
  * harbour/contrib/xhb/hjwindow.prg
  * harbour/contrib/xhb/htmutil.prg
  * harbour/contrib/hbodbc/todbc.prg
  * harbour/contrib/hbfbird/tfirebrd.prg
  * harbour/contrib/xpp/tthreadx.prg
  * harbour/contrib/hbpgsql/tpostgre.prg
  * harbour/contrib/hbgd/gdchart.prg
  * harbour/contrib/hbgd/gdimage.prg
  * harbour/contrib/hbgd/gdbar.prg
  * harbour/contrib/hbgd/gdbarcod.prg
  * harbour/contrib/hbmisc/twirler.prg
  * harbour/contrib/hbtip/thtml.prg
  * harbour/contrib/hbtip/cgi.prg
  * harbour/contrib/hbtip/httpcli.prg
  * harbour/contrib/hbtip/smtpcli.prg
  * harbour/contrib/hbtip/client.prg
  * harbour/contrib/hbtip/ftpcli.prg
  * harbour/contrib/hbtip/mail.prg
  * harbour/contrib/hbtip/popcli.prg
  * harbour/contrib/hbwin/win_tprn.prg
  * harbour/contrib/hbbtree/tbtree.prg
  * harbour/utils/hbformat/hbformat.prg
    ! fixed class method declarations to be synced with method implementations
      All of the above missdeclarations were detected by compilation with:
         HB_USER_PRGFLAGS=-DHB_CLS_PARAMS_ERR
      Few years ago in hbclass.ch I defined PP rules to force strict method
      declarations but I had to disable them due to problems with old PP.
      I defined HB_CLS_NO_PARAMS_ERR and left this note in hbclass.ch:
         > I have to enable this definition by default until we will not fix
         > preprocessor. [druzus]
      Current PP code works correctly so we can remove it and activate this
      code. Anyhow as above commit shows a lot of code has been created with
      wrong declarations. I fixed Harbour core code (except HBQT, HBXBP and
      GTWVG - I hope Pritpal or Viktor will fix it) but setting
      HB_CLS_PARAMS_ERR as default will exploit a lot of similar problems in
      user code so I would like the hear other developers' opinions about it.
2010-01-14 00:45:19 +00:00
Viktor Szakats
aab5406bdb 2010-01-14 01:35 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/memoedit.prg
    ! Fixed to set K_ESC as lastkey() if exiting with changed 
      buffer and answering 'yes' to confirmation question.
      Thanks Przemek for reporting it.
    ! Fixed to not save buffer if exiting with <Esc> and 
      SET SCOREBOARD OFF.

  * src/rtl/tget.prg
    % Minor optimization when displaying delim chars.

  * contrib/hbwin/win_prn3.c
    ! Fixed function name in file header comment.
2010-01-14 00:38:13 +00:00
Przemyslaw Czerpak
4ec1cd2b58 2010-01-13 22:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/achoice.prg
    ! fixed RTE reported by Robert Skowronek - thanks for the code example
    ! fixed not shown immediately newly added achoice items (see
      Robert's example) - please verify this modification.
2010-01-13 21:01:07 +00:00
Viktor Szakats
25f48aa426 2010-01-13 18:11 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/tget.prg
    ! Fixed cursor positioning bug, when @S picture length is
      higher than actual edit buffer length.
      Thanks to Stupar for report.
      [TOMERGE 2.0]

  * contrib/hbnetio/utils/netiosrv.prg
    * Minor.
2010-01-13 17:14:01 +00:00
Viktor Szakats
892efc393d 2010-01-13 17:12 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/Makefile
  + src/rtl/strclear.c
  * include/hbextern.ch
    + Added HB_STRCLEAR() function to safely clear the content 
      of a string variable.
      Notice that this method by itself can only work if the 
      string variable has no other references, and generally 
      you have to code carefully to avoid creating unwanted 
      copies of the string when passing it around in an app.
      So this is no silver bullet, but rather just one component 
      to solve this problem.

  * contrib/hbnetio/utils/netiosrv.prg
    + Added steps to avoid having the password stored in memory, 
      while the server is running.

  * src/rtl/philes.c
    % Minor cleanup.
2010-01-13 16:13:29 +00:00
Viktor Szakats
6e4895e9de 2010-01-13 15:10 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbsetup.ch
    * Disabled HB_LEGACY_LEVEL2 by default.
    * HB_LEGACY_OFF now controls HB_LEGACY_LEVEL3 (was HB_LEGACY_LEVEL2).
    + Added HB_LEGACY_LEVEL4
    ; SVN users notice: This may make your C code INCOMPATIBLE with
      this version, please review required changes (documented in older
      ChangeLog entries) and update your code. Look for HB_LEGACY_LEVEL2
      and INCOMPATIBLE keywords.

  * contrib/hbnetio/utils/netiosrv.prg
  + contrib/hbnetio/utils/modules.hbp
  + contrib/hbnetio/utils/modules
  + contrib/hbnetio/utils/modules/test.prg
    + Added simple command line to server.
    + Added list of possible feature as TODO. Most of these will
      need backend support from hbnetio lib.
    + Added detailed help screen.
    + Added --version option support.
    + Added support for -rpc=file.hrb option. Although for some
      reason (most likely my omission) it doesn't work yet.
    + -DHB_EXTERN will now enable inclusion of all core functions.
    + Added build file for .hrb modules.
    + Added little test module.
    + Added SETCANCEL( .F. ) to avoid irregular shutdown with Ctrl+C.

  * src/rtl/memoedit.prg
    ! Deleted hack which explicitly set lastkey to CTRL_END/W
      when exiting with changes saved. The comment said that
      it was added to make DBU happy, but it doesn't seem to be
      necessary anymore, at least I couldn't spot any problem
      without it. Pls check it.
    ! Fixed MEMOEDIT() not recognizing K_ESC as exit key when
      custom function is used.
      This fixes DBU not recognizing K_ESC as a way to exit
      memo editing. Please review, I'm not MEMOEDIT() user
      and this was such an obvious omission that I wonder
      if there was some real reason for it. Anyhow it was
      wrong before.

  * contrib/hbfimage/fi_wrp.c
  * contrib/hbclipsm/num.c
  * contrib/hbclipsm/numfloor.c
  * contrib/hbclipsm/status.c
  * contrib/hbclipsm/numceil.c
    * Formatting.
2010-01-13 14:11:50 +00:00
Przemyslaw Czerpak
af90ba9a0c 2010-01-11 12:21 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/hbznet.c
    * move hb_znetOpen() parameter validation from HB_INETCOMPRESS()
      to hb_znetOpen() - it should help keeping other code using
      hb_znetOpen() more simple

  * harbour/contrib/hbnetio/netio.h
  * harbour/contrib/hbnetio/netiocli.c
  * harbour/contrib/hbnetio/netiosrv.c
    + added support for compression and encryption in NETIO connection
      streams. Enabling encryption (password) automatically enable also
      compression. If necessary user can set compression level to
      HB_ZLIB_COMPRESSION_NONE. HB_ZLIB_COMPRESSION_DISABLE used as
      compression level removes compression and encryption.
      See below for details of NETIO server and client code modifications.

  * harbour/contrib/hbnetio/netiocli.c
    + extended NETIO_CONNECT() client side function parameters:
         NETIO_CONNECT( [<cServer>], [<cPort>], [<nTimeOut>], ;
                        [<cPasswd>], [<nCompressionLevel>], [<nStrategy>] )
            -> <lOK>
    % changed the behavior of NETIO_CONNECT() client side function.
      In the previous version this function was connecting to the server
      and then disconnecting so it was used to check if connection is
      available and to set default connection parameters.
      Now it does not disconnect after successful connection so created
      connection is keept and can be reused by any pending NETIO_*() calls.
      User can open many different connections in the same time.
      The connections are recognized by server and port address.
      The connections set by NETIO_CONNECT() function can be closed by
      NETIO_DISCONNECT() function.
      Each repeated call to NETIO_CONNECT() increase reference counter
      in the connection stream and need corresponding number of
      NETIO_DISCONNECT() calls.
    + added new PRG client side function:
         NETIO_DISCONNECT( [<cServer>], [<cPort>] ) -> <lOK>
      which closes connections set by NETIO_CONNECT().
    + added support for passing connection password as part of file path
      or function name in format:
         <server>[:<port>[:<passwd>]]:<filepath|funcname>
      i.e.:
         192.168.0.1:2941:secret:path/to/file
      Please remember that it's only an alternative method of setting
      encryption which does not allow to use CHR(0) or ":" in passwords.
      User can always set connection using NETIO_CONNECT() function which
      will be used in RPC or FILE IO calls. If more then one connection
      is set by NETIO_CONNECT() then user can chose the connection using
      only server and port. It's not necessary to pass other connection
      parameters.
    + added support for UNC paths:
         //<server>[:<port>]/<filepath|funcname>
      i.e.:
         //192.168.0.1:2941/path/to/file
      backslashes (\\) are also supported.

  * harbour/contrib/hbnetio/netiosrv.c
    % moved 1-st login identification from NETIO_ACCEPT() to NETIO_SERVER()
      Such version do not block other connection accepting when server
      waits for NETIO_LOGIN frame so it improve scalability and also
      protect against code which may want to block access to the server
      by opening dummy connections.
    + added new parameters to NETIO_ACCEPT() function which allows to set
      encryption and compression for new connections:
         NETIO_ACCEPT( <pListenSocket>, [<nTimeOut>],
                       [<cPass>], [<nCompressionLevel>], [<nStrategy>] )
            -> <pConnectionSocket> | NIL
    + added new server side function:
         NETIO_COMPRESS( <pConnectionSocket>,
                         [<cPass>], [<nCompressionLevel>], [<nStrategy>] )
            -> NIL
      which allow to set or change encryption and compression parameters
      in existing connections

  * harbour/contrib/hbnetio/netiomt.prg
    * updated to accept new connection parameters in NETIO_MTSERVER()
      function:
         NETIO_MTSERVER( [<nPort>], [<cIfAddr>], [<cRootDir>], [<lRPC>],
                         [<cPasswd>], [<nCompressionLevel>], [<nStrategy>] )
            -> <pListenSocket>

  * harbour/contrib/hbnetio/utils/netiosrv.prg
    + added 5-th parameter <passwd> which enable encryption with compression,
      current syntx is:
         netiosrv [<port>] [<inetaddr>] [<rootdir>] [<rpc>] [<passwd>]
      For default values use "" in command line for skipped parameters, i.e.:
         netiosrv "" "" "" 1 topsecret

  * harbour/contrib/hbnetio/tests/netiotst.prg
    * enable RPC, compression and encryption in test code
    + added simple code which use RPC to create directory on the server side


   Now it's possible to easy create secure NETIO connections and compression
   should help in slow connections when big number of data has to be
   exchange. In RDD file access it mostly help when tables use long records.

   Hope you will find it useful. Please make tests.
2010-01-11 11:22:05 +00:00
Przemyslaw Czerpak
45232282b9 2010-01-08 18:28 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/vm/dynsym.c
    + accept also function name (not only symbol index) as parameter
      of __DYNSISFUN()

  * harbour/src/rtl/hbznet.c
    * pacified BCC warnings
2010-01-08 17:28:54 +00:00
Przemyslaw Czerpak
25de114b61 2010-01-08 14:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/hbnetio/netiocli.c
    * pacified BCC warning

  * harbour/include/hbznet.h
  * harbour/src/rtl/hbznet.c
    + added support for blowfish encryption in HB_ZNETSTREAM
    + added C function
         void hb_znetEncryptKey( PHB_ZNETSTREAM pStream,
                                 const void * keydata, int keylen );
      which enables data encryption in HB_ZNETSTREAM
    + added 4-th parameter to <cPass> to .PRG HB_INETCOMPRESS() function:
         HB_INETCOMPRESS( <pSocket>, [<nCompressionLevel>], [<nStrategy>],
                          [<cPass>] )
         <cPass> is initial value to create blowfish key.
      Please test.
2010-01-08 13:00:37 +00:00
Viktor Szakats
dd570d683c 2010-01-07 21:10 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
    + Added free SVN book link.

  * src/vm/extrap.c
    % Marked exception filter callback as 'static'
    ; TOCHECK: Please verify that OS/2 still works this way.

  * src/rtl/oemansi.c
    ! Fixed two tabs.

  * src/rtl/gtwvt/gtwvt.c
  * contrib/gtwvg/gtwvg.c
  * contrib/rddads/adsfunc.c
    ! Fixed to not use unsafe/ANSI CharToOemBuffA() API.
    ; Please review me.

  * config/win/mingw.mk
    + Added information about MinGW alternatives for MSVC
      security features. Unfortunately they need Cygwin
      binary plus some depend on MinGW host platform
      and/or version.

  * include/hbwince.h
  * src/common/hbwince.c
    - Deleted CharToOemBuffA(), OemToCharBuffA(). No longer
      needed by Harbour.
    ; TODO: Delete rest of not anymore used ANSI WinAPI
            functions. Now Harbour never uses ANSI
            WinAPI functions in UNICODE mode.

  * config/win/global.mk
    - Deleted reference to CharToOemBuffA(), OemToCharBuffA().
2010-01-07 20:59:38 +00:00
Viktor Szakats
472c3592ed 2010-01-07 18:16 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/extrap.c
  * contrib/hbwin/win_prn3.c
    + Added TOFIXes for unsafe function usage:
       IsBadWritePtr(), IsBadReadPtr(), lstrlen(), lstrcpy(), lstrcat()
    ; QUESTION: Any idea how to fix that? win_prn3.c can
                probably be fixed with some good general coding
                idea.

  * contrib/hbwin/wce_smsc.c
    ! Fixed to not use unsafe CRTL functions.

  * src/rtl/oemansi.c
    ! Rewritten HB_OEMTOANSI() and HB_ANSITOOEM() to not use
      Windows API functions marked as unsafe. New version is a bit
      slower but won't mark Harbour apps as unsafe in an audit.
    ; Please test and review.

  * utils/hbmk2/hbmk2.prg
  * config/wce/msvcarm.mk
  * config/win/msvc.mk
    % Deleted -Gs MSVC option. Testing with MSVC 2008 I've found
      this have no effect on x86 builds, and it makes x64 builds
      slighly less efficient by forcing stack checks in each function
      call. This seems to contradict MSDN, which doesn't suggest such
      difference between x86 and x64:
         http://msdn.microsoft.com/en-us/library/9598wk25.aspx
    % Deleted -GS- MSVC option used for wce targets for MSVC >= 8.00.
      '-GS-' will disable stack cookies (on by default), thus trading
      app size/speed for security. Maybe this is preferred for wce
      users, but in Harbour I'd rather opt to pass this decision to users
      for all targets.
         Enable with: HB_USER_CFLAGS=-GS- / -cflag={allmsvc}-GS-
      MSDN:
         http://msdn.microsoft.com/en-us/library/8dbf701c.aspx
2010-01-07 17:17:24 +00:00
Przemyslaw Czerpak
4e02eab09f 2010-01-07 14:07 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/hbznet.c
  * harbour/include/hbznet.h
    * added new optional parameter to hb_znetWrite() function which allow
      to catch result of last hb_socketSend() operation
    * removed automatic flushing from hb_znetWrite() function,
      it should help in implementing more efficient C code using
      hb_znet*() functions

  * harbour/src/rtl/hbinet.c
    * flush HB_ZNETSTREAM output after write operation
    % small optimization in internal inet error setting
2010-01-07 13:07:54 +00:00
Przemyslaw Czerpak
0d4b626818 2010-01-06 17:15 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/hbznet.c
    ! do not use DEF_MEM_LEVEL to avoid potential problems when <zutil.h>
      is not available

  * harbour/contrib/hbnetio/netio.h
  * harbour/contrib/hbnetio/netiocli.c
  * harbour/contrib/hbnetio/netiosrv.c
    + implemented RPC in HBNETIO protocol
    + added the following client functions:
      check if function/procedure exists on the server side:
         NETIO_PROCEXISTS( <cProcName> ) -> <lExists>
      execute function/procedure on server the side,
      do not wait for confirmation:
         NETIO_PROCEXEC( <cProcName> [, <params,...>] ) -> <lSent>
      execute function/procedure on the server side and wait for
      confirmation:
         NETIO_PROCEXECW( <cProcName> [, <params,...>] ) -> <lExecuted>
      execute function on the server side and wait for its return value:
         NETIO_FUNCEXEC( <cFuncName> [, <params,...>] ) -> <xFuncRetVal>
      All above functions use default connection set by NETIO_CONNECT()
      for RPCs but it's also possible to specify server address and port
      in <cProcName>/<cFuncName> just like in <cFileName> parameter in RDD
      functions, i.e.:
         NETIO_PROCEXISTS( "192.168.0.1:10005:MYFUNC" )
    + added new server side functions to enable/disable/check RPC support:
         NETIO_RPC( <pListenSocket> | <pConnectionSocket> [, <lEnable> ] )
               -> <lEnabled>
      if RPC is enabled for listen socket then connection sockets inherit
      this setting.
    + added 4-th parameter <lRPC> to NETIO_LISTEN() function. .T. enable
      RPC support in returned listen socket which is later inherited by
      connection sockets
    * changed protocol version ID - current NETIO clients and servers
      cannot be used with old code

  * harbour/contrib/hbnetio/utils/netiosrv.prg
    * added option to enable RPC support in NETIO server

   If you want to make some test then you can execute netiosrv with
   non empty 4-th parameter as server, i.e.:
      ./netiosrv "" "" "" 1
   and try this code as client:

      proc main()
         // pass server address to netio_connect() for non localhost tests
         ? "NETIO_CONNECT():", netio_connect()
         ?
         ? "DATE() function is supported:", netio_procexists( "DATE" )
         ? "QOUT() function is supported:", netio_procexists( "DATE" )
         ? "HB_DATETIME() function is supported:", ;
           netio_procexists( "HB_DATETIME" )
         ?
         ? netio_procexec( "QOUT", repl( "=", 50 ) )
         ? netio_procexec( "QOUT", "This is RPC TEST", date(), hb_datetime() )
         ? netio_procexecw( "QOUT", repl( "=", 50 ) )
         ? 
         ? "SERVER DATE:", netio_funcexec( "DATE" )
         ? "SERVER TIME:", netio_funcexec( "TIME" )
         ? "SERVER DATETIME:", netio_funcexec( "HB_DATETIME" )
         ?
         ? netio_funcexec( "upper", "hello world !!!" )
      return

   Please remember that only functions linked with server are available.
   If you want to enabled all core functions in netiosrv then please
   uncomment this line in netiosrv.prg:
      REQUEST __HB_EXTERN__


   Have a fun with a new toy. I hope that many Harbour user will find it
   very interesting. Please only be careful !!!. This feature allows to
   execute remotely _ANY_ code on the server side. _NEVER_ leave open ports
   with RPC support for untrusted access.
2010-01-06 16:16:22 +00:00
Przemyslaw Czerpak
86c9511f2f 2010-01-06 07:27 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtwin/gtwin.c
    + added support for HB_GTI_ISUNICODE

  * harbour/include/hbapifs.h
    * added missing 'extern' in some declarations

  * harbour/include/hbzlib.ch
    + added HB_ZLIB_STRATEGY_* constants
    + added HB_ZLIB_COMPRESSION_DISABLE

  * harbour/include/Makefile
  + harbour/include/hbznet.h
  * harbour/include/hbextern.ch
  * harbour/src/rtl/Makefile
  * harbour/src/rtl/hbinet.c
  + harbour/src/rtl/hbznet.c
    + added support for ZLIB compression in stream sockets.
    + added .prg function:
         HB_INETCOMPRESS( <pSocket>, [<nCompressionLevel>], [<nStrategy>] )
      which enables ZLIB compression for given HB_INET*() socket.
      <pSocket> is a socket created by one of HB_INET*() functions
      <nCompressionLevel> is compression factor between 1 (fastest) and
                          9 (best) (see HB_ZLIB_COMPRESSION_*)
                          0 (none) disable compression on output data
                          but decompression is still working.
      <nStrategy> is used to tune compression algorithm,
                  see HB_ZLIB_STRATEGY_*
      The compression must be enabled on both connection sides, i.e.
      on the server side:
         conn := hb_inetAccept( sock )
         hb_inetCompress( conn )
      and on the client side:
         sock := hb_inetConnect( cServer, nPort )
         hb_inetCompress( sock )
      in the same moment but it's not necessary to enable it at the
      beginning of connection. It can be done later, i.e. when both
      sides agree to enable connection using some custom protocol.
      The compression has effect only on stream connections, i.e.
      TCP and it's ignored in datagram connections like UDP.
      This function can be executed more then once changing the compression
      parameters but it causes that all data in readahead decompression
      buffer is discarded. When called with HB_ZLIB_COMPRESSION_DISABLE
      as <nCompressionLevel> then support for stream compression is removed
      and sockets works again in raw mode.
      The compression level and strategy do not have to be the same on both
      connection sides. Each side can chose the best settings for data it's
      going to send.

      This code was written in a way which allows to easy implement
      alternative compression methods or other extensions like encryption
      in existing HB_INET*() sockets also by non core code. The public C
      functions declared in hbznet.h allows to use this extension with raw
      harbour sockets two.
2010-01-06 06:27:38 +00:00
Przemyslaw Czerpak
c02e6f1616 2010-01-05 14:03 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/hbct/video.c
    % use hb_gtColorToN() function instead of own code to decode Clipper
      color in VGAPALETTE()
    ! added protection against possible transfer buffer overflow in
      SETFONT() function
    ! return -2 when SETFONT() is not implemented

    TODO: clean these functions, add support for other DOS compilers,
          add some missing functions and redirect few of them like
          VGAPALETTE() to hb_gtInfo() in non DOS builds

  * harbour/src/rtl/hbgtcore.c
    ! fixed missing ';' => CHR( 13 ) translation in __KEYBOARD() function
      [TOMERGE 2.0]
2010-01-05 13:03:37 +00:00
Przemyslaw Czerpak
c8e91323cd 2010-01-04 13:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtxwc/gtxwc.c
    ! cleaned a little bit hack with euro sign support
    + added optional support for input respecting locale settings
      To enable it it's necessary to recompile GTXWC with HB_XWC_USE_LOCALE
      macro. It can be done globally using
         export UH_USER_CFLAGS=-DHB_XWC_USE_LOCALE
      and recompiling Harbour core code.
      When enabled GTXWC initialize locale at startup (LC_CTYPE only) what
      enable national keyboard layout support in default input context
      (XLookupString()). Current Harbour core code does not use any
      <ctype.h> functions so enabling locale should not effect user
      national settings in HVM.
      Please test.
2010-01-04 12:11:08 +00:00
Przemyslaw Czerpak
6b2f6bd054 2009-12-26 14:12 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
  * harbour/include/hbmath.h
  + harbour/include/hbmather.h
  * harbour/include/hbsetup.h
  * harbour/include/hbapi.h
    * moved math error handler definitions and settings separate header file
    * moved hb_random_num() declaration from hbmath.h to hbapi.h

    After above modification hbmath file should be use only by code which
    wants to use math functions declared usually in math.h

  + harbour/include/hbfloat.h
    + added header file with test macros for floating point numbers
      this file should be included before any other files

  * harbour/src/vm/hvmall.c
  * harbour/src/vm/itemapi.c
  * harbour/src/common/hbprintf.c
  * harbour/src/rtl/math.c
    * use new macros from hbfloat.h

  * harbour/src/rtl/math.c
    + include "hbmather.h"

  * harbour/src/rtl/hbrandom.c
  * harbour/src/rdd/dbf1.c
  * harbour/contrib/xhb/hboutdbg.c
    - removed not longer necessary include "hbmath.h"

  * harbour/contrib/hbct/ctmath.h
    - do not include <float.h> and <limits.h>

  * harbour/contrib/hbct/ct.h
    - do not include "hbmath.h" and "ctmath.h"

  * harbour/contrib/hbct/ctmath.c
  * harbour/contrib/hbct/exponent.c
  * harbour/contrib/hbct/ctc.c
    + include "ctmath.h"

  * harbour/contrib/hbct/trig.c
  * harbour/contrib/hbct/finan.c
  * harbour/contrib/hbct/ctmath2.c
    + include "ctmath.h"
    + include "hbmather.h"

  * harbour/contrib/hbct/num1.c
    + include "ctmath.h"
    + include <float.h>

  * harbour/include/hbinit.h
  * harbour/src/rtl/hbsocket.c
    * added patches from Tamas - thanks

  * harbour/bin/hb-func.sh
  * harbour/harbour.spec
    + create /etc/ld.so.conf.d/harbour.conf with Harbour shared lib directory
      if /etc/ld.so.conf.d directory exists and user has sufficient write
      permission or install package is created.
      This modification allows to install Harbour anywhere and in modern
      distros using /etc/ld.so.conf.d/ harbour shared libraries will be
      always available for all programs

   [TOMERGE 2.0]
2009-12-26 13:13:02 +00:00
Przemyslaw Czerpak
bb05aaa0e0 2009-12-23 05:36 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtwin/gtwin.c
    ! applied a little bit modified the patch from Jacek Potempa for
      setmode() in GTWIN - many thanks. Please test.
2009-12-23 04:37:00 +00:00
Viktor Szakats
5274553789 2009-12-22 23:47 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/thread.c
  * src/vm/dynlibhb.c
  * src/common/hbgete.c
  * src/common/hbffind.c
  * src/common/hbfsapi.c
  * src/rtl/gtstd/gtstd.c
  * src/rtl/hbsocket.c
  * src/rtl/filesys.c
  * src/rtl/gtpca/gtpca.c
  * src/rtl/hbproces.c
    * 'int TODO' -> 'int iTODO' patch from Tamas Tevesz. Thank you.
2009-12-22 22:48:08 +00:00
Viktor Szakats
a5a304efc2 2009-12-22 03:47 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/gtwvt/gtwvt.c
    % Deleted unnecessary cast.

  * utils/hbmk2/hbmk2.pt_BR.po
    + Uploaded new version received from Vailton Renato. Thanks!

  * utils/hbmk2/hbmk2.hu_HU.po
    + Updated.
    + Added some new translations.

  * utils/hbmk2/hbmk2.prg
    * Minor formatting.
    ! Fixed typo in one of the displayed texts.

  + examples/gtwvw
  + examples/gtwvw/Makefile
  + examples/gtwvw/hbgtwvw.h
  + examples/gtwvw/hbole.h
  + examples/gtwvw/gtwvw.c
  + examples/gtwvw/wvwdraw.c
  + examples/gtwvw/wvwmenu.c
  + examples/gtwvw/wvwstbar.c
  + examples/gtwvw/wvwcheck.c
  + examples/gtwvw/wvwfuncs.c
  + examples/gtwvw/wvwpush.c
  + examples/gtwvw/wvwedit.c
  + examples/gtwvw/wvwtbar.c
  + examples/gtwvw/gtwvw.hbc
  + examples/gtwvw/gtwvw.hbp
  + examples/gtwvw/readme.txt
  + examples/gtwvw/tests
  + examples/gtwvw/tests/wvwtest9.rc
  + examples/gtwvw/tests/prog1.prg
  + examples/gtwvw/tests/prog2.prg
  + examples/gtwvw/tests/dia_excl.ico
  + examples/gtwvw/tests/drawimg.prg
  + examples/gtwvw/tests/vouch1.bmp
  + examples/gtwvw/tests/wvwmouse.prg
  + examples/gtwvw/tests/wvwtest9.hbp
  + examples/gtwvw/tests/hbmk.hbm
  + examples/gtwvw/tests/cbtest1.prg
  + examples/gtwvw/tests/def2.bmp
  + examples/gtwvw/tests/maincoor.prg
  + examples/gtwvw/tests/wvt2wvw.ch
  + examples/gtwvw/tests/cbtest6.prg
  + examples/gtwvw/tests/wvwtest9.prg
  + examples/gtwvw/tests/ebtest7.prg
  + examples/gtwvw/tests/vouch1.gif
  + examples/gtwvw/tests/maximize.prg
  + examples/gtwvw/tests/readme.txt
  + examples/gtwvw/tests/wvwtest9.xml
  + examples/gtwvw/tests/inpfocus.prg
  + examples/gtwvw/tests/prog0.prg
  + examples/gtwvw/docs
  + examples/gtwvw/docs/funclist.txt
  + examples/gtwvw/docs/gtwvw.txt
  + examples/gtwvw/docs/whatsnew.txt
    + Added rudimentary port of GTWVW to Harbour.
      (The source was current xhb CVS repository.)
      The port is very very (very) far from anything else
      than can be found in Harbour, this port involved making
      all the minimum required steps to build and link under
      Harbour, plus some extra cleanups.
    ! Lots of cleanups and fixes.
    + Added Harbour make files (both GNU make and hbmk2)
    + Cleaned tests to avoid multiple symbols and much simpler
      interdependencies.
    ! Removed extra test.dbf and what32 dependency.
    ; TOFIX: Due to public symbol collisions, this GTWVW it's
             probably not possible to use it with gtwin lib.
    ; NOTE: GTWVW is limited to non-UNICODE, non-C++, 32-bit
            Windows (no WinCE) builds, and for a clean compiler
            I had to suppress Harbour standard warning levels.
            Anyway, not basic tests program seems to work,
            although I didn't dig into them very deeply.
            We will see if this contrib turns out to be useful
            or not, and we can decide to drop it or maybe
            moving it to contrib once it has been brought up
            to Harbour standards. Although the code is huge,
            so don't expect to happen this very soon.
2009-12-22 02:50:24 +00:00
Przemyslaw Czerpak
3428da4554 2009-12-21 20:33 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/sha2.h
    * use '__int64' instead of 'long long' in MSC builds - older MSC versions
      do not support 'long long'

  * harbour/utils/hbmk2/hbmk2.prg
    * use cleaner method proposed by Viktor for adding 'clib3r' to linked
      library list in DOS OpenWatcom builds.
2009-12-21 19:34:25 +00:00
Przemyslaw Czerpak
e7cb8c45a1 2009-12-20 22:12 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
  + harbour/include/hbtrace.ch
  * harbour/include/hbtrace.h
  * harbour/src/rtl/trace.c
  * harbour/src/common/hbtrace.c
    ! fixed hb_tracelevel() C function to change trace filter instead of
      last message level. It also fixed .prg function HB_TRACELEVEL().
    + added new C function:
         void hb_tracelog( int level, const char * file, int line,
                           const char * proc, const char * fmt, ... )
    + added new .prg functions:
         hb_traceLogLevel( <nNewLevel> ) -> <nPrevLevel>
         hb_traceLog( <xMsgItems,...> ) // generate message at
                                        // hb_traceLogLevel()
         hb_traceLogAt( <nLevel>, <msg,...> )
    + added support for HB_TRACE() messages in .prg code with the same
      functionality as in C code:
         HB_TRACE( <level>, <msg,...> )
      HB_TRACE() code if filtered at compile time by HB_TR_LEVEL_* macros
      i.e. -DHB_TR_LEVEL_INFO used as harbour compiler parameter
      and at runtime by HB_TR_LEVEL=<level> envvar (set HB_TR_LEVEL=DEBUG)
      or by hb_traceLevel( <nLevel> ) function (hb_traceLevel( HB_TR_DEBUG ))
      Default compile time and runtime trace level for C and .prg code
      is HB_TR_WARNING.
2009-12-20 21:12:54 +00:00
Viktor Szakats
60fbf7ba1d 2009-12-20 05:01 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/dynlibhb.c
  * src/rtl/hbinet.c
  * src/compiler/hbcmplib.c
  * contrib/hbpgsql/postgres.c
    ! Suppressing MSVC C mode warnings by ( void * ) casting 
      in hb_xfree() calls.
2009-12-20 04:01:34 +00:00
Viktor Szakats
5907e1d204 2009-12-19 13:34 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/sha2.c
    ! Added trick to make it compile with Pelles C 6.00.6.
      Without this trick Pelles C compiler exits with internal error.

  * doc/whatsnew.txt
    + Added NOTE about Pelles C 6.
2009-12-19 12:34:45 +00:00
Przemyslaw Czerpak
d92d3a6116 2009-12-19 11:22 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtwin/gtwin.c
    ! applied Xavi's patch fixing CTRL+C error handler setting in newly
      allocated consoles
2009-12-19 10:22:38 +00:00
Viktor Szakats
28c5ea5d32 2009-12-18 12:54 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/gtxwc/gtxwc.c
    * Prefixed static vars with s_.
2009-12-18 11:55:16 +00:00
Przemyslaw Czerpak
5a20374203 2009-12-18 11:20 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtxwc/gtxwc.c
    + accept "TEXT" selections is better forms cannot be found
    * removed hack not necessary after recent code cleanup
2009-12-18 10:21:06 +00:00
Przemyslaw Czerpak
ab6d1e7a9f 2009-12-18 04:08 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtxwc/gtxwc.c
    ! fixed yet another one memory leak
2009-12-18 03:08:30 +00:00
Przemyslaw Czerpak
e83b6c0f28 2009-12-18 03:58 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtxwc/gtxwc.c
    ! fixed memory leak caused by unreleased text property value
2009-12-18 02:58:48 +00:00
Przemyslaw Czerpak
550559695b 2009-12-18 03:02 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtxwc/gtxwc.c
    ! fixed holders for properties format 32 to be long - it's important
      for 64 bit platforms.
    ! removed unsupported in current code "COMPOUND_TEXT" target
    ! readded support for "TEXT" target
2009-12-18 02:02:21 +00:00
Przemyslaw Czerpak
0b59fa2b49 2009-12-17 12:46 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtxwc/gtxwc.c
    + added hack for accessing selections marked by FireFox which does not
      inform about UTF8_STRING target though it supports it
2009-12-17 11:46:44 +00:00
Przemyslaw Czerpak
5ac744025d 2009-12-17 11:54 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtxwc/gtxwc.c
    ! added protection against putting K_RESIZE into keyboard queue
      if XServer generates ConfigureNotify event but window size is not
      changed
    ! clear own selections on application exit - looks that some WMs have
      problems when selection owner does not response and can even crash.
      Please remember that some WMs periodically (i.e. once per second)
      create copy of existing selections to his own structures so it's
      later available even if selection owner terminates. This is VM
      behavior which is not controlled by Harbour GTXWC code so selection
      set by Harbour application is available after its termination only
      if such Window Manager is used and it has enough time to make
      selection copy.
    ! use hb_cdpFindExt() instead of hb_cdpFind() to find UTF8 CP
      It fixes national character translations in selections (clipboard)
      broken during recent modifications for new CDP API.
2009-12-17 10:54:58 +00:00