Commit Graph

362 Commits

Author SHA1 Message Date
maurilio
9183c2a865 2018-05-11 12:23 UTC+0200 maurilio (maurilio.longo@libero.it)
* contrib/hbssl/hbssl.hbx
  * contrib/hbssl/ssl.c
    + Added function SSL_set_tlsext_host_name() which is needed to access
      a virtual host when using HTTPS.
      See https://en.wikipedia.org/wiki/Server_Name_Indication
    + Added function SSL_set_verify().
  * src/rtl/fstemp.c
    ! hb_fsTempName() was not returning a valid temp name on OS/2
2018-05-11 12:32:50 +02:00
Przemysław Czerpak
12880a1b7f 2018-01-05 14:12 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapiitm.h
  * src/rtl/hbdef.c
  * src/vm/itemapi.c
  * src/harbour.def
    + added new public C function
         HB_BOOL hb_itemTypeCmp( PHB_ITEM pItem1, PHB_ITEM pItem2 );
      which uses low level item type comparison code taken from hb_default()
      and hb_defaultValue() PRG functions

  * include/harbour.hbx
  * src/harbour.def
  * src/vm/hashfunc.c
    + added new PRG function
         hb_HSetDef( <hVal>, <xKey> [, <xDefVal> ] )
      it checks if <xKey> exists and if not then adds it to hash array
      and optionally sets key value to <xDefVal> otherwise (the key
      exists in hash array) and <xDefVal> is given then it checks if
      the type of key's value is compatible with <xDefVal> and if not
      then replaces key's value with <xDefVal>.
      In other words it's combination of hb_HGetDef() and hb_default()
      and works like this PRG code:
            FUNCTION hb_HSetDef( hVal, xKey, xDefVal )
               IF xKey $ hVal
                  hb_default( @hVal[ xKey ], xDefVal )
               ELSE
                  hVal[ xKey ] := xDefVal
               ENDIF
            RETURN hVal
      but much faster.

  * src/rtl/dirscan.prg
    * remove READONLY attribute from deleted directories.
      Be careful. Now this function allows to recursively remove
      all directories even if they have READONLY attribute.
2018-01-05 14:12:06 +01:00
Przemysław Czerpak
b872d7b62c 2017-12-19 21:42 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/darwin/clang.mk
  * config/darwin/gcc.mk
  * config/darwin/global.mk
  * config/darwin/icc.mk
  * config/darwin/libs.mk
  * utils/hbmk2/hbmk2.prg
    * synced with Viktor's modifications in 3.4 branch:
    ; 2017-11-11 13:14 UTC Viktor Szakats:
    * switch to call the C compiler to link dynamic libs on darwin,
      which is the recommended way to do this, as suggested by Apple.
      This also aligns the platform better with other *nix platforms.
      'libtool' was used before, but that started having intermittent
      issues around Sierra (mitigated by disabling parallel build),
      which returned and got worse in High Sierra (with no remedy).
      The symptom was 'ld: file not found: ' errors with the filename
      not shown or appearing as garbage, then a 'libtool: internal link
      edit command failed'. This was reported and will be fixed in a
      future Xcode release.
      Ref: Apple Radar 34944562

  * config/global.mk
  * config/rules.mk
    + added new user build envvar HB_USER_DCFLAGS
      It allows to set C compiler parameters to compile .c code for
      dynamic libraries.

  * src/rtl/hbsocket.c
    ! fixed fcntl(F_SETFL) 3-rd parameter in hb_socketSetBlockingIO(),
      By mistake I used long instead of int. it created problem on big
      endian 64 bit machines.

  * include/hbgtcore.h
  * src/rtl/hbgtcore.c
    + added new C functions for GT programmers:
         void hb_gt_BaseUnlock( PHB_GT pGT );
         void hb_gt_BaseLock( PHB_GT pGT );
         void hb_gtSleep( PHB_GT pGT, double dSeconds );

  * src/rtl/hbgtcore.c
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/gtdos/gtdos.c
  * src/rtl/gtgui/gtgui.c
  * src/rtl/gtos2/gtos2.c
  * src/rtl/gtpca/gtpca.c
  * src/rtl/gtsln/gtsln.c
  * src/rtl/gtstd/gtstd.c
  * src/rtl/gttrm/gttrm.c
  * src/rtl/gtwin/gtwin.c
  * src/rtl/gtwvt/gtwvt.c
  * src/rtl/gtxwc/gtxwc.c
    * use new functions to unblock GT when low level TONE() code is
      executed. It allows other threads to access shared GT driver
      when one of them executes TONE()

  * contrib/hbexpat/hbexpat.hbx
    * regenerated automatically
2017-12-19 21:42:15 +01:00
Przemysław Czerpak
2b4c4b3b5f 2017-12-12 12:26 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnf/fttext.c
  * contrib/hbnf/hbnf.hbx
    * synced with Viktor's modifications:
         - use FILE API instead of FS API
         - protection against GPF when FT area has no valid file handle
         - alternative function names which exceeds 10 character Cl*pper limit
    ! fixed handle and memory leak when new file is open in FT area which
      already has open file

  * include/harbour.hbx
  * src/harbour.def
  * src/vm/hvm.c
    + added new PRG function: __vmItemRefs( <xVal> ) -> <nRefs>
      Please remember that passed <xVal> parameter increases the counter so
      if you want to eliminate it then pass it by reference, i,e.:
         aVal := {}
         ? __vmItemRefs( aVal ), __vmItemRefs( @aVal )

  * include/hbapi.h
  * src/harbour.def
  * src/vm/arrays.c
  * src/vm/codebloc.c
  * src/vm/hashes.c
    + added new C functions:
         HB_COUNTER hb_arrayRefs( PHB_ITEM pArray );
         HB_COUNTER hb_hashRefs( PHB_ITEM pHash );
         HB_COUNTER hb_codeblockRefs( PHB_ITEM pItem );

  * src/rtl/itemseri.c
    * added new internal function to replace 3 times repeated code for
      resizing array of references.
    % use new functions to check number of references to hashes, arrays and
      objects to ignore in system detecting multiple references the items
      which have reference counter smaller then 2. Such items cannot have
      multiple references.
      In practice this modification resolves the time problem when very big
      items are serialized to the level comparable to HB_SERIALIZE_IGNOREREF
      so now this flag is useless though I'll keep it because only in such
      mode serialization code can be used as filter in streams.
      I also created binary tree to store references but after this
      modifications it is not necessary so I decided to not commit it yet.
      Please only remember that practice limit of such serialization code
      is created by physical memory attached by OS to the process. When this
      limit is exceed then swap is actively used what completely kill the
      performance. The CPU usage is reduced to less then 1% because it waits
      for restoring swapped memory pages by extremely heavy used disks. In
      such case I cannot help.
2017-12-12 12:26:24 +01:00
Przemysław Czerpak
bf91e4c243 2017-11-15 11:32 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbjson.h
  * src/rtl/hbjson.c
    * changed 3-rd parameter 'HB_BOOL fHuman' in hb_jsonEncode() and
      hb_jsonEncodeCP() C functions to 'int iIndent'
         char * hb_jsonEncode( PHB_ITEM pValue, HB_SIZE * pnLen,
                               int iIndent );
         char * hb_jsonEncodeCP( PHB_ITEM pValue, HB_SIZE * pnLen,
                                 int iIndent, PHB_CODEPAGE cdp );
      Positive iIndent value defines number of spaces used for indenting,
      0 disables indenting and  -1 means TAB ( ASCII:9 ) indenting.
      This modification is binary compatible though in C code using HB_TRUE
      as 3-rd parameter it changes indenting from 2 spaces to 1 so please
      update the code if it's significant.

    + added optional support for numeric value in 2-nd parameter of
      hb_jsonEncode() PRG function. Current syntax is:
         hb_jsonEncode( <xValue>, [ <lHuman> | <nIndent> ], [ <cDestCP> ] )
               -> <cJSONString>

  * contrib/rddads/ads1.c
    * minor simplification

  * include/hbapigt.h
    * formatting
2017-11-15 11:32:19 +01:00
Przemysław Czerpak
fbe077d628 2017-09-26 14:54 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbmemio/memio.c
    ! fixed FO_TRUNC attribute in MEM: file IO - thanks to Miroslav Georgiev
      for information about the problem

  * include/hbgtinfo.ch
  * src/rtl/gtwvt/gtwvt.h
  * src/rtl/gtwvt/gtwvt.c
    + added new hb_gtInfo() action HB_GTI_SYSMENUADD
      It allows to add new items to window system menu which
      selected add defined by user key code into keyboard queue, i.e.
         hb_gtInfo( HB_GTI_SYSMENUADD, HB_K_MENU, "Settings" )
    * In WinCE builds use DeleteMenu() + AppendMenu() instead of
      missing ModifyMenu()
    ! pacified warning in non UNICODE builds
2017-09-26 14:54:59 +02:00
Viktor Szakats
0764e1b746 SELF/self -> Self (3.4 sync) 2017-09-14 01:12:12 +00:00
Viktor Szakats
760112e3c5 2017-09-12 15:13 UTC Viktor Szakats (vszakats users.noreply.github.com)
* bin/check.hb
  * config/*/*.mk
  * contrib/gtwvg/wvgwing.c
  * contrib/hbcomm/comm.prg
  * contrib/hbfbird/tfirebrd.prg
  * contrib/hbfimage/fi_wrp.c
  * contrib/hbformat/hbfmtcls.prg
  * contrib/hbformat/utils/hbformat.prg
  * contrib/hbhttpd/core.prg
  * contrib/hbnetio/utils/hbnetio/hbnetio.prg
  * contrib/hbnetio/utils/hbnetio/netiomgm.hb
  * contrib/hbsqlit3/hdbc.prg
  * contrib/hbwin/win_bmp.c
  * contrib/xhb/htmutil.prg
  * contrib/xhb/thtm.prg
  * contrib/xhb/xhbarr.c
  * contrib/xhb/xhbtedit.prg
  * ChangeLog.txt
  * debian/control
  * debian/copyright
  * doc/*.txt
  * LICENSE.txt
  * package/harbour.spec
  * README.md
  * src/compiler/hbusage.c
  * src/pp/hbpp.c
  * src/rtl/memoedit.prg
  * src/rtl/teditor.prg
  * src/rtl/tget.prg
  * src/rtl/version.c
  * utils/hbi18n/hbi18n.prg
  * utils/hbmk2/hbmk2.prg
  * utils/hbmk2/po/hbmk2.hu.po
  * utils/hbtest/hbtest.prg
    * sync with 3.4 fork (no change in functionality)
      CC3 -> CC4 license, copyright banners, some strings, minor
      code changes, doc folder, TOFIX -> FIXME
2017-09-12 15:15:14 +00:00
Viktor Szakats
15795f6330 2017-09-12 10:19 UTC Viktor Szakats (vszakats users.noreply.github.com)
* contrib/gtwvg/class.prg
  * contrib/gtwvg/menubar.prg
  * contrib/gtwvg/paint.prg
  * contrib/gtwvg/tests/_activex.prg
  * contrib/gtwvg/tests/_dyndlgs.prg
  * contrib/gtwvg/tests/_modal.prg
  * contrib/gtwvg/tests/_tbrowse.prg
  * contrib/gtwvg/tests/_utils.prg
  * contrib/gtwvg/tests/_wvtcls.prg
  * contrib/gtwvg/tests/_xbp.prg
  * contrib/gtwvg/tests/demowvg.prg
  * contrib/gtwvg/tests/demowvg1.prg
  * contrib/gtwvg/tests/demoxbp.prg
  * contrib/hbhttpd/core.prg
  * contrib/hbhttpd/tests/eshop.prg
  * contrib/hbhttpd/widgets.prg
  * contrib/hbtip/thtml.prg
  * src/debug/dbgtobj.prg
  * src/rdd/hbsix/sxini.prg
  * src/rtl/hbi18n2.prg
  * src/rtl/tbrowse.prg
  * utils/hbtest/rt_array.prg
    * sync with 3.4 fork (no change in functionality)
2017-09-12 10:19:32 +00:00
Viktor Szakats
25e0853a49 2017-09-11 20:36 UTC Viktor Szakats (vszakats users.noreply.github.com)
* contrib/hbwin/hbwin.hbp
  * contrib/hbwin/wapi_winbase.c -> contrib/hbwin/wapi_winbase_1.c
  * contrib/hbwin/wapi_winuser.c -> contrib/hbwin/wapi_winuser_1.c
  * contrib/hbwin/win_misc.c -> contrib/hbwin/win_misc_1.c
  + contrib/hbwin/wapi_winbase_2.c
  + contrib/hbwin/wapi_winuser_2.c
  + contrib/hbwin/win_misc_2.c
    % sync file-splits with 3.4 fork

  * src/rtl/val.c
    * sync with 3.4 fork (no change in functionality)
2017-09-11 20:37:19 +00:00
Viktor Szakats
ff3fbd8e40 core/contrib: whitespace/minor [ci skip] 2017-09-11 19:56:57 +00:00
Viktor Szakats
e00f50079e 2017-09-11 13:12 UTC Viktor Szakats (vszakats users.noreply.github.com)
* contrib/gtqtc/gtqtc1.cpp
  * contrib/gtwvg/gtwgud.c
  * contrib/gtwvw/wvwdraw.c
  * contrib/hbamf/amfdec.c
  * contrib/hbamf/amfstdio.c
  * contrib/hbbz2io/bz2io.c
  * contrib/hbgzio/gzio.c
  * contrib/hbhpdf/core.c
  * contrib/hbmemio/memio.c
  * contrib/hbmisc/irm.c
  * contrib/hbmisc/spd.c
  * contrib/hbnetio/netiosrv.c
  * contrib/hbssl/ssl_sock.c
  * contrib/hbwin/olecore.c
  * contrib/hbwin/wapi_commctrl.c
  * contrib/hbwin/wapi_winuser.c
  * contrib/hbwin/win_bmpd.c
  * contrib/hbwin/win_misc.c
  * contrib/hbzebra/qrcode.c
  * contrib/rddads/ads1.c
  * contrib/rddads/adsfunc.c
  * contrib/rddsql/sqlmix.c
  * contrib/sddfb/core.c
  * contrib/xhb/cstructc.c
  * contrib/xhb/hboutdbg.c
  * contrib/xhb/hbserv.c
  * include/hbdefs.h
  * include/hbexprb.c
  * include/hbrddcdx.h
  * include/hbthread.h
  * include/hbwmain.c
  * src/common/hbffind.c
  * src/compiler/complex.c
  * src/compiler/hbmain.c
  * src/compiler/hbopt.c
  * src/debug/dbgentry.c
  * src/rdd/dbf1.c
  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/dbffpt/dbffpt1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfntx/dbfntx1.c
  * src/rdd/hbsix/sxcompr.c
  * src/rdd/wacore.c
  * src/rdd/workarea.c
  * src/rtl/cputime.c
  * src/rtl/dates.c
  * src/rtl/gtchrmap.c
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/gtpca/gtpca.c
  * src/rtl/gtsln/gtsln.c
  * src/rtl/gtsln/kbsln.c
  * src/rtl/gtsln/keytrans.c
  * src/rtl/gtstd/gtstd.c
  * src/rtl/gttrm/gttrm.c
  * src/rtl/gtwvt/gtwvt.c
  * src/rtl/gtxwc/gtxwc.c
  * src/rtl/hbcom.c
  * src/rtl/hbproces.c
  * src/rtl/itemseri.c
  * src/rtl/langapi.c
  * src/rtl/run.c
  * src/rtl/sha1.c
  * src/rtl/space.c
  * src/vm/classes.c
  * src/vm/hvm.c
  * src/vm/itemapi.c
  * src/vm/set.c
  * src/vm/thread.c
    * convert commented C code to #if 0 blocks, or clean them up in
      different ways
2017-09-11 13:27:12 +00:00
Viktor Szakats
03ac58b17b 2017-09-08 18:22 UTC Viktor Szakats (vszakats users.noreply.github.com)
* bin/commit.hb
  * config/detect.mk
  * config/detfun.mk
  * config/detplat.mk
  * config/dir.mk
  * config/dirsh.mk
  * config/global.mk
  * config/globsh.mk
  * config/instsh.mk
  * config/lang.hb
  * config/lang2po.hb
  * config/po2lang.hb
  * config/postinst.hb
  * contrib/hbexpat/tests/tohash.prg
  * contrib/hbformat/utils/hbformat.ini
  * contrib/hbmisc/hbedit.prg
  * contrib/hbmxml/tests/testmxml.prg
  * contrib/hbnetio/utils/hbnetio/_console.prg
  * contrib/hbnetio/utils/hbnetio/_winsvc.prg
  * contrib/hbnetio/utils/hbnetio/hbnetio.prg
  * contrib/hbnetio/utils/hbnetio/netiomgm.hb
  * contrib/hbwin/tests/ole.prg
  * contrib/hbwin/tests/oletst2.js
  * contrib/hbwin/tests/oletst2.vbs
  * contrib/hbxpp/doc/en/binnumx.txt
  * contrib/hbxpp/doc/en/dbcmdx.txt
  * contrib/xhb/htmutil.prg
  * contrib/xhb/tfile.prg
  * contrib/xhb/tframe.prg
  * contrib/xhb/thtm.prg
  * ChangeLog.txt
  * debian/copyright
  * doc/class_tp.txt
  * doc/hdr_tpl.txt
  * doc/xhb-diff.txt
  * LICENSE.txt
  * package/harbour-wce.spec.in
  * package/harbour-win.spec.in
  * package/harbour.spec
  * package/mpkg_rpm_wce.sh
  * package/mpkg_rpm_win.sh
  * package/mpkg_rpm.sh
  * package/mpkg_src.sh
  * package/mpkg_ver.sh
  * src/rtl/achoice.prg
  * src/rtl/getsys53.prg
  * src/rtl/tgetlist.prg
  * src/rtl/tlabel.prg
  * src/rtl/tmenusys.prg
  * tests/hbdoc.prg
  * tests/langmsg.prg
  * tests/rto_get.prg
  * tests/rto_tb.prg
  + doc/en/ati.txt
  + doc/en/dirdrive.txt
  + doc/en/hashfunc.txt
  + doc/en/hbtoken.txt
  + doc/en/left.txt
  + doc/en/proc.txt
  + doc/en/strtran.txt
  + doc/en/transfrm.txt
  + doc/en/typefile.txt
  * doc/en/*
    * more partial sync with 3.4 fork
2017-09-08 18:25:11 +00:00
Viktor Szakats
5a2a287752 2017-09-08 16:00 UTC Viktor Szakats (vszakats users.noreply.github.com)
* *
    * partial sync with the 3.4 fork codebase. These are the things
      synces for the most part:
      - copyright headers
      - grammar/typos in comments and some readmes
      - comment/whitespace/decorations
      - variable scoping in C files
      - DO CASE/SWITCH and some other alternate syntax usage
      - minimal amount of human readable text in strings
      - minor code updates
      - HB_TRACE() void * casts for pointers and few other changes to
        avoid C compiler warnings
      - various other, minor code cleanups
      - only Harbour/C code/headers were touched in src, utils, contrib,
        include. No 3rd party code, no make files, and with just a few
        exceptions, no 'tests' code was touched.
      - certain components were not touched were 3.4 diverged too much
        already, like f.e. hbmk2, hbssl, hbcurl, hbexpat
      - the goal was that no actual program logic should be altered by
        these changes. Except some possible minor exceptions, any such
        change is probably a bug in this patch.
      It's a massive patch, if you find anything broken after it, please
      open an Issue with the details. Build test was done on macOS.
      The goal is make it easier to see what actual code/logic was changed
      in 3.4 compared to 3.2 and to make patches easier to apply in both
      ways.
2017-09-08 16:25:13 +00:00
Viktor Szakats
d55bdd18b7 2017-09-07 08:38 UTC Viktor Szakats (vszakats users.noreply.github.com)
* contrib/hbct/charsprd.c
  * contrib/hbct/dattime3.c
  * contrib/hbct/expand.c
  * contrib/hbct/misc2.c
  * contrib/hbct/screen2.c
  * contrib/hbcurl/core.c
  * contrib/hbfship/strpeek.c
  * contrib/hbnetio/netiocli.c
  * contrib/hbwin/olecore.c
  * contrib/rddads/adsx.c
  * contrib/rddads/rddads.h
  * contrib/rddsql/sqlmix.c
  * contrib/sddmy/core.c
  * contrib/sddpg/core.c
  * contrib/xhb/hbcompat.h
  * contrib/xhb/hbxml.c
  * contrib/xhb/xhb.h
  * src/common/hbstr.c
  * src/compiler/harbour.y
  * src/compiler/harbour.yyc
  * src/compiler/hbcmplib.c
  * src/macro/macrolex.c
  * src/rdd/dbffpt/dbffpt1.c
  * src/rdd/hbsix/sxcompr.c
  * src/rdd/hbsix/sxcrypt.c
  * src/rdd/hbsix/sxtable.c
  * src/rdd/hsx/hsx.c
  * src/rtl/cdpapi.c
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/gtxwc/gtxwc.c
  * src/rtl/hbtoken.c
  * src/rtl/net.c
  * src/rtl/netusr.c
  * src/vm/hvm.c
    * update HB_SIZE variable name prefixes to use `n` instead of `ul`
    % adjust some variables
    % sync variables scopes and some other minor things with 3.4 fork
2017-09-07 08:39:50 +00:00
Viktor Szakats
9f16c2bf8e 2017-08-13 18:27 UTC Viktor Szakats (vszakats users.noreply.github.com)
* *
    * update copyright headers with new FSF postal address
    * COPYING.txt -> LICENSE.txt (rest of repo to be synced)
2017-08-13 18:38:59 +00:00
Przemysław Czerpak
7e482b9011 2017-08-03 20:24 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/dirscan.prg
    ! fixed type in hb_DirRemoveAll() result - it always returned .F.

  * src/rtl/itemseri.c
    ! fixed internal error when HB_SERIALIZE_COMPRESS is passed to
      hb_Serialize() and ZLIB was not linked with application

  * src/rtl/tpersist.prg
    ! fixed deserialization of multidimensional arrays - thanks to Peter

  * contrib/rddads/ads1.c
    * pacified 'fall through' warnings
2017-08-03 20:24:47 +02:00
Przemysław Czerpak
9eccf9414a 2017-07-27 18:57 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbexpat/3rd/expat/_hbconf.h
  * contrib/hbexpat/3rd/expat/xmlparse.c
    ! fixed WINCE builds
    ! fixed OpenWatcom DOS builds
    ! fixed OpenWatcom OS2 builds

  * contrib/hbexpat/3rd/expat/expat.dif
    * rediffed

  * include/harbour.hbx
  * include/hbvm.h
  * src/harbour.def
  * src/vm/hvm.c
  * src/vm/thread.c
    + added new C function
         HB_BOOL hb_vmThreadIsMain( void * );
      it checks if given or current thread is main HVM thread
    + added new PRG function
         hb_threadIsMain( [ <pThID> ] ) -> <lMainHvmThread>
      it returns true if given or current thread is main HVM thread
    + added new PRG function
         hb_mutexExists( <pMtx> ) -> <lExists>
      it returns true if passed <pMtx> parameter is pointer item to
      fully functional mutex

  * src/rtl/tpersist.prg
    ! fixed problem with array item deserialization - many thanks
      to Peter Rees for exact information about the problem.

  * src/rtl/val.c
    * minor simplification
2017-07-27 18:57:32 +02:00
Przemysław Czerpak
d1a58966c8 2017-05-09 09:12 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbct/charswap.c
  * contrib/hbct/token1.c
  * contrib/hbnetio/netiosrv.c
  * contrib/hbssl/ssl_sock.c
  * contrib/rddads/ads1.c
  * include/hbexprb.c
  * src/common/hbprintf.c
  * src/compiler/cmdcheck.c
  * src/compiler/complex.c
  * src/compiler/gencc.c
  * src/compiler/hbmain.c
  * src/compiler/hbopt.c
  * src/pp/ppcore.c
  * src/rdd/dbf1.c
  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/dbffpt/dbffpt1.c
  * src/rdd/dbfntx/dbfntx1.c
  * src/rdd/hsx/hsx.c
  * src/rdd/workarea.c
  * src/rtl/dates.c
  * src/rtl/gtclip.c
  * src/rtl/gtwin/gtwin.c
  * src/rtl/gtwvt/gtwvt.c
  * src/rtl/hbgtcore.c
  * src/rtl/itemseri.c
  * src/rtl/strtoexp.c
  * src/vm/classes.c
  * src/vm/task.c
    * added and verified (following Viktor's patch)
      /* fallthrough */ comment for GCC >= 7.
    ; I haven't found any errors in existing code.
      /cc @vszakats

  * src/rdd/dbf1.c
    * minor improvement in dbf1.c
2017-05-09 09:12:35 +02:00
Viktor Szakats
4a4f2c30ae 2017-04-25 17:45 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* src/harbour.def
    ! add hb_rand*() functions, fixing hbtip regression (#154) after
      1938dd0a70

  ; import of 2014-12-10 14:38 UTC+0100 functions from Viktor's 3.4 fork
  * src/rtl/hbrand.c
    ! hb_randStr(): fixed possible GPF and other errors when passing
       negative size

  * include/harbour.hbx
  * include/hbapi.h
  * src/rtl/hbrandom.c
    + added C level hb_random_num_secure() which works like hb_random_num()
      but uses arc4 internally
    + added hb_randInt() which works the same as hb_RandomInt() but uses
      arc4 internally
    + added hb_randNum() which works the same as hb_Random() but uses
      arc4 internally
2017-04-25 17:47:05 +02:00
Przemysław Czerpak
e150da6f93 2017-04-14 16:36 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
  * src/rtl/filesys.c
    + added new C functions for UNIX and DJGPP builds:
         int hb_fsPollFD( PHB_POLLFD pPollSet, int iCount,
                          HB_MAXINT nTimeOut );
         int hb_fsCanRead( HB_FHANDLE hFileHandle, HB_MAXINT nTimeOut );
         int hb_fsCanWrite( HB_FHANDLE hFileHandle, HB_MAXINT nTimeOut );
      These functions should be used instead of select() in C code to hide
      low level access to select()/poll() functionality in *nix builds
      (they are supported by DJGPP only to simplify existing code common
      for DJGPP and *nix builds). Maximum file handle value which can be
      used in select() is limited by FD_SETSIZE. Please note that it's
      file handle value not number of file handles in the set. It creates
      serious problem for applications which operate on great number of
      handles (i.e. servers which have to keep open many sockets, pipes,
      files, etc. for their clients) so the new file/socket/pipe/...
      handle value can easy exceed FD_SETSIZE limit and in such case
      cannot be used with select(). The modification on
         2016-04-05 21:24 UTC+0200 Przemyslaw Czerpak
      resolved the problem only for sockets and pipes in code which uses
      corresponding hb_socket*() and hb_fsPipe*() API but not for all
      other cases. This one is for POSIX compilant code which needs pure
      POSIX select()/poll() functionality.
      Please note that HB_POLLFD structure should is compatible with
      struct pollfd defined by POSIX.1-2001 anyhow not all platforms
      confirm this standard so portable Harbour code should always use
      HB_POLLFD and HB_POLL* constant values instead of POLL* ones.

  * include/hbdate.h
  * src/common/hbdate.c
    + added new C functions to calculate timeouts:
         HB_MAXUINT hb_timerGet( void );
         HB_MAXUINT hb_timerInit( HB_MAXINT nTimeOut );
         HB_MAXINT  hb_timerTest( HB_MAXINT nTimeOut, HB_MAXUINT * pnTimer );
      They are designed to be used instead of direct access to
      hb_dateMilliSeconds(). Now they internally use hb_dateMilliSeconds()
      but it can be easy replaced by any other system monotonic clock by
      one local modification inside hb_timerGet() function.

  * src/rtl/filesys.c
    * use hb_timer*() functions instead of hb_dateMilliSeconds()
    * use hb_fsCanRead()/hb_fsCanWrite() instead of select()/poll()
      It also fixed timeout processing inside hb_fsPipeIsData() and
      hb_fsPipeWrite() in builds using poll()

  * src/rtl/filesys.c
  * src/rtl/gtcrs/gtcrs.h
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/gtpca/gtpca.c
  * src/rtl/gtsln/gtsln.c
  * src/rtl/gtsln/mousesln.c
  * src/rtl/gtstd/gtstd.c
  * src/rtl/gttrm/gttrm.c
  * src/rtl/gtxwc/gtxwc.c
    * use hb_timer*() functions instead of hb_dateMilliSeconds()
    * use hb_fsCanRead()/hb_fsCanWrite() instead of select()/poll()

  * src/vm/thread.c:
  * src/rtl/gtwin/gtwin.c
  * src/rtl/hbcom.c
  * src/rtl/hbgtcore.c
  * src/rtl/hblpp.c
  * src/rtl/idle.c
  * contrib/hbnetio/netiosrv.c:
  * contrib/hbssl/ssl_sock.c:
    * use hb_timer*() functions instead of hb_dateMilliSeconds()

  * contrib/xhb/hboutdbg.c
    * use hb_fsCanWrite() instead of select()

  * src/rtl/hbsocket.c
    ! repeat select() interrupted by signal inside hb_socketSelect()
      when poll() function is not available

  * src/3rd/hbdossrl/serial.c
    ! fixed -Wshift-negative-value GCC warnings
2017-04-14 16:36:50 +02:00
Przemysław Czerpak
9153285bdf 2017-03-28 23:02 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbcomp.h
  * include/hbcompdf.h
  * include/hberrors.h
  * include/hbexprb.c
  * src/common/expropt1.c
  * src/compiler/hbgenerr.c
  * src/compiler/hbmain.c
    + added new macros HB_ET_MACRO_NOLIST and HB_ET_MACRO_NOPARE
    % use new HB_ET_MACRO_* macros
    + added new compile time error:
         "Code block contains both macro and with object messages ':%s'"
      NOTE: -kd compiler switch allows to compile codeblocks with macros
            and declared symbols / with object messages
    * replaced hb_compErrorCodeblock() with hb_compErrorCodeblockDecl() and
      hb_compErrorCodeblockWith()
    + added new C function hb_compPushMacroVar()
    * code simplification
    ; added few comments

  * utils/hbtest/rt_math.prg
    * extended test code for macro messages and macro <op>=, pre/post ++/--
      operations

  * src/vm/hvm.c
    ! protection against executing hb_threadStateNew() during GC pass
      inside hb_vmRequestReenterExt()

  * src/vm/garbage.c
    ! add volatile attribute to s_bCollecting variable
    * small modification in hb_gcAll() parameter

  * src/rtl/errsys.prg
    ; minor comment cleanup

  * doc/xhb-diff.txt
    * extended a little bit section STRONG TYPED VARIABLES
2017-03-28 23:02:28 +02:00
Przemysław Czerpak
5008371567 2017-03-20 12:28 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbgs/core.c
    ! fixed to build with new GS versions - fix borrowed from Viktor's
      branch

  * src/rtl/setkey.c
    + in hb_SetKey() and hb_SetKeyCheck() if extended keycode is passed
      and does not have associated action check also for actions bound
      with corresponding standard keycode
    ! honor user parameters passed by reference to hb_SetKeyCheck()
    ! fixed hardcoded 4 parameter limit in hb_SetKeyCheck()

  * src/compiler/hbopt.c
    ! fixed 'assigned but not used' warning detection - it should not
      mark initial HB_P_PUSHLOCALREF PCODE as used when next <op>=
      operation leaves result on HVM stack.
    * optimize 'var <op>= 0', 'var <op>= 1' and 'var <op>= <timestamp>'
      operations
    * small cleanup
2017-03-20 12:28:11 +01:00
Przemysław Czerpak
0046cb2b8c 2017-03-15 13:54 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbdefs.h
  * include/hbmather.h
  * src/common/hbprintf.c
  * contrib/gtwvg/wvgwing.c
  * contrib/hbfbird/firebird.c
  * contrib/hbxdiff/3rd/libxdiff/_hbconf.h
  * contrib/sddfb/core.c
    * use hexadecimal numbers checking __BORLAND__ macro

  * src/rtl/sha2.c
    * use standard harbour macros from hbdefs.h
2017-03-15 13:54:27 +01:00
Przemysław Czerpak
06c1134d2c 2017-03-15 09:50 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* package/harbour.spec
  * contrib/hbbz2/hbbz2.hbp
  * package/mpkg_rpm.sh
    + added support for '--with localbz2' RPM build parameter

  * include/hbpp.h
  * src/pp/ppcore.c
  * src/compiler/hbmain.c
    * modified hb_pp_inBuffer() parameters. Now it supports optional
      szFileName parameter.
      Warning: it's incompatible with previous version but I do not think
      that anyone used this function outside core code so I decided to not
      add new function but simply change the existing one.
      [INCOMPATIBLE]

  * src/rtl/filebuf.c
    ! do not resepct SET DEFAULT/PATH in hb_fileExists() when 2nd parameter
      is NULL in default file IO drivers. It also changes the behvior of
      PRG function hb_vfOpen() which now honors SET DEFAULT/PATH only if
      its 2nd parameter is passed by reference - this modification is
      compatible with 2016-01-25 18:16 UTC+0100 Viktor Szakats in his fork.

  * src/rdd/dbf1.c
  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfntx/dbfntx1.c
    * updated to work correctly with modified hb_fileExists() behavior
    ; CL5.2 DBFCDX and Six3 CDX/NSX RDDs looking for production indexes
      respect SET PATH but Harbour in core DBF* index RDDs is CL5.3/COMIX
      compatible and looks for production indexes only in the directory
      where DBF file is located and only SIXCDX Harbour RDD is CL5.2/Six3
      compatible.
      Please also note that it's significant only for situations when
      DBF file is located in current directory. If it's open from
      SET DEFAULT/PATH directory then corresponding path is added
      to DBF file name what effectively disables SET DEFAULT/PATH
      processing when production index is open.

  * src/rtl/filebuf.c
  * src/rtl/filebufd.c
  * src/rtl/iousr.c
  * contrib/hbmemio/memio.c
    ; cleaned name of hb_fileCopy() paramter

  * include/hbapifs.h
  * src/rtl/filebuf.c
  * src/harbour.def
    + added new C function:
         HB_BOOL hb_fileMove( const char * pszSrcFile,
                              const char * pszDstFile );
  * src/rtl/vfile.c
  * include/harbour.hbx
  * src/harbour.def
    + added new PRG function:
         hb_vfMoveFile( <cFileSrc>, <cFileDst> ) -> <nResult>

  ; unlike hb_fileRename()/hb_vfRename() new hb_fileMove()/hb_vfMoveFile()
    functions allow to move files between different file systems/drives
    and also different Harbour file IO drivers. Please note that it means
    that file name IO driver prefix is significant in both source and
    destination file names unless it's local FS operation. New functions
    when both file names point to the same Harbour file IO driver try to
    use simple rename operation. If it fails then they try to copy the
    file and remove the source one.

  * ChangeLog.txt
    ! typo

  * include/hbfloat.h
  * contrib/xhb/xhbctbit.c
  * src/compiler/hbcmplib.c
  * src/compiler/hbcomp.c
  * src/compiler/hbusage.c
    ! pacified new GCC warnings and partially synced with Viktor's fork

  * src/compiler/hbusage.c
    * added Klas Engwall to credits list
    * added Rolf to credits list
    * updated April White email address
    ; please verify it and update if necessary
2017-03-15 09:50:10 +01:00
Przemysław Czerpak
459cd1a2c5 2017-02-08 19:36 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc1.cpp
    ! fixed clipboard selection with shift + left mouse button to not report
      mouse events during selection

  * include/hbdate.h
  * src/common/hbdate.c
    + added support for ISO 8601 week dates (YYYY-Www-D) in timestamp
      literals
    + added support for ISO 8601 ordinal dates (YYYY-DDD) in timestamp
      literals
    + added new C functions:
         HB_BOOL hb_dateDecWeek( long lJulian, int * piYear,
                                 int * piWeek, int * piDay );
         long hb_dateEncWeek( int iYear, int iWeek, int iDay );
      to decode/encode ISO 8601 week dates

  * src/rtl/dateshb.c
    + added new PRG function get week number and other parts ISO 8601
      week date:
         hb_Week( <dDate>, [@<nYear>], [@<nDayOfWeek>] ) -> <nWeek>

  * include/harbour.hbx
  * src/harbour.def
    * updated for new functions
2017-02-08 19:36:46 +01:00
Przemysław Czerpak
a52a2e57a4 2016-12-15 12:51 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
  * src/harbour.def
  * src/rtl/dateshb.c
    + added new PRG functions which convert time difference to hours,
      minutes, seconds and milliseconds. Except milliseconds the results
      are floating point numbers with fractional part representing the
      rest of conversion:
         hb_NToHour( <nTimeDiff> )  => <nHours>
         hb_NToMin ( <nTimeDiff> )  => <nMinutes>
         hb_NToSec ( <nTimeDiff> )  => <nSeconds>
         hb_NToMSec( <nTimeDiff> )  => <nMilliseconds>
    + added new PRG functions which convert timestamp value to hours,
      minutes, seconds and milliseconds. Except milliseconds the results
      are floating point numbers with fractional part representing the
      rest of conversion:
         hb_TToHour( <tTimeStamp> ) => <nHours>
         hb_TToMin ( <tTimeStamp> ) => <nMinutes>
         hb_TToSec ( <tTimeStamp> ) => <nSeconds>
         hb_TToMSec( <tTimeStamp> ) => <nMilliseconds>

  * src/rtl/gtsln/gtsln.c
    ! fixed cleanup string sent to terminal to remove test UTF-8 character

  * src/rtl/gtsln/kbsln.c
    + added workaround for some broken Linux kernel which wrongly sets
      tty device as ready for reading

  * src/rtl/hbsocket.c
    * added comment

  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfntx/dbfntx1.c
    ! added missing tag root page restoring cleared after discarding buffers
      due to concurrent access to multitag indexes.
      Many thanks for Karsten Stucker for self contain example.

  * src/rdd/dbfntx/dbfntx1.c
    * discard buffers when next free page is changed even without touching
      version number - minor protection for potentially broken 3-rd party
      NTX code or very old [x]Harbour NTX RDDs which do not increment
      version number on update.
2016-12-15 12:51:24 +01:00
Przemysław Czerpak
0b8990ede5 2016-11-16 16:10 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbssl/hbssl.h
  * contrib/hbssl/evppkey.c
    + added new C function
         void hb_EVP_PKEY_ret( EVP_PKEY * pkey );

  * contrib/hbssl/hbssl.hbx
  * contrib/hbssl/pem.c
    + added new PRG functions:
         PEM_READ_PRIVATEKEY()
         PEM_READ_PUBKEY()

  * contrib/hbssl/ssl_sock.c
    ! added missing HB_SOCKET_ERR_TIMEOUT setting in hb_ssl_socketRead()
    ! fixed cleared to early SSL error code in hb_ssl_socketWrite()

  * contrib/hbssl/tests/inetssl.prg
    ! interrupt test program if server thread stops
    * load server certificates before listen socket is created

  * src/rdd/dbfnsx/dbfnsx1.c
    ! code cleanup to pacify warnings in new GCC versions

  * src/rtl/filesys.c
    ! check if child's fork() was executed successfully

  * src/rtl/hbproces.c
    ! use hb_fsCloseRaw() instead of close() in hb_fsProcessExec() to avoid
      lost handles when close() operation is interrupted by signal.
    ! repeat waitpid() calls interrupted by signal
2016-11-16 16:10:37 +01:00
Viktor Szakats
c80292f490 2016-10-28 12:29 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
* include/hbver.ch
    + add new HB_VER_* constants from 3.4

  * src/rtl/version.c
    + return meaningful value for HB_VERSION_URL_BASE
    * return dummy values for HB_VERSION_URL_SOURCE,
      HB_VERSION_BUILD_TIMESTAMP_UTC, HB_VERSION_OPTIONS
2016-10-28 12:32:02 +02:00
Viktor Szakats
c1bde05495 2016-10-26 12:50 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
- extras/hbdoc/_tmplate.prg
  - extras/hbdoc/hbdoc.ch
  * extras/hbdoc/_genbase.prg
  * extras/hbdoc/_genhtml.prg
  * extras/hbdoc/_gentxt.prg
  * extras/hbdoc/_genxml.prg
  * extras/hbdoc/hbdoc.hbp
  * extras/hbdoc/hbdoc.prg
    + improve readability by paragraphs spacing in DESCRIPTION sections
    + improve divs in section content for better control via CSS
    + improve readability of tables with borders and
      header hightlights
    * change default output to single-file
    + add support for the old <table>/<fixed> tags in html output until they
      are converted to something better
    + add support for <b>/<b>, <URL:url>, Markdown `inline code`,
      _emphasis_, *bold*, character escaping \*, line separators ===/---,
      and fenced code using triple backticks.
      Very limited and not with standard compliance or completeness
      in mind, just to be able to use some basic formatting.
    ; TODO: Markdown URL and lists, then replace all <b>,<URL>,<fixed>
            markup with Markdown equivalents in docs
    + better localization support
    + add support for one file per component output via -output-component
      cmdline option
    % assemble output in memory and write to disk in a single call
    % integrate external header
    % replace almost all internal arrays with hashes
    % replace self-modifying class and macro expansion with
      regular hashes
    % internal cleanups
    % switch to simpler method for sort weighting
    + merge category/subcategory values into tag list. It
      means they will be now be included in the output
    % cleanup/fix/simplify value expansions for 'compliance',
      'status' and 'platform' fields
    % cleanup the way output engines are handles internally
    + add support for 'TAGS' entry to replace/extend the rigid and
      ambiguous CATEGORY/SUBCATEGORY-based categorization. It is meant
      to be a comma-separated list of freeform tags, possibly with a set
      of standard common tags, with the freedom to use anything else deemed
      useful by component/doc authors.
    + add footer showing the build date of the doc
    + include Git revision the doc is based on, link to the relevant
      source tree version.
    * various code refactoring steps to avoid unnecessary
      classes, arrays, macro evaluation, and using undocumented
      functions
    % various HTML5 tag improvements and optimizations
    + load HBX file contents and lookup each referenced
      symbol. Emit warning in verbose mode, if docs refers
      to non-existing one.
      (this replaces slow and broken logic based on hbextern.ch)
    + use core hbdoc API to load the documentation instead
      of locally rolled logic
    * always show those content problems that are considered
      fatal and the input doc to be skipped
    + filter docs to English language by default
    + add ability to choose language using a command-line option
    ! fix faulty validation logic that resulted in
      erronously skipping certain entries
    + identify docs' 'component' property automatically
    ! fix to not eat empty lines from examples
    + convert "see also" items to links (this works correctly only
      in single file output mode)
    ! fix to not break words (f.e. URLs) when outputting HTML
    % use shorter class names
    ! fix invalid element ID generated
    ! fix RTE when trying to create output by category
    % delete dummy "HTML2" output mode
    * convert more ASCII chars to better Unicode equivalents
    + mark more text as code automatically
    * drop MS-DOS compatibility

  * src/rtl/hbdoc.prg
    ! fix filling '_LANG' property with the correct value
    * switch to use LF instead of CRLF in the field contents

  * contrib/hbct/doc/en/*.txt
  * contrib/hbgd/doc/en/hbgd.txt
  * contrib/hbgt/doc/en/hbgt.txt
  * contrib/hbmisc/doc/en/dates2.txt
  * contrib/hbnf/doc/en/*.txt
  * contrib/rddads/doc/en/adsfuncs.txt
  * doc/en/*.txt
    * cleanups and fixes
    ! casing
    ! fix to always delimit "see also" items with comma (",")
    ! fix various casing issues and old typos
    ! various fixes after detecting them using updated hbdoc
    ! eliminate/fix various rare/unnecessary/invalid field values
    ! move some embedded docs from hbdoc into their respective
      doc sources
    ! fix a typo
    * use backtick
    * replace code copyright with reference to COPYING.txt (=LICENSE.txt)
    + mark tables without a header or with double height header

  ; Above patches come from 3.4 fork commits below:

    2016-10-26 12:43 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-26 12:34 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-26 12:20 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-26 03:21 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-26 02:47 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-25 15:05 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-25 14:51 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-25 14:30 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-25 13:19 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-25 12:35 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-25 11:47 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-25 02:48 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-24 22:26 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-24 18:35 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-24 17:58 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-24 16:12 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-24 15:44 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-24 03:36 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-24 02:40 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-24 00:23 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-23 23:09 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-23 16:39 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-23 16:10 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
    2016-10-23 13:15 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-26 13:07:21 +02:00
Przemysław Czerpak
35fe3becc7 2016-09-28 19:55 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbssl/hbssl.h
  * contrib/hbssl/ssl_sock.c
  * contrib/hbssl/ssl_inet.c
    + added new 'PHB_ITEM pSSL' parameter to hb_sockexNewSSL() and
      hb_ssl_socketNew() C functions - it allows to bind harbour item
      with SSL pointer which should not be released before connection
      is closed. In new OpenSSL version such tricks can be replaced
      by SSL_up_ref()
      This modification also fixes possible GPF trap when SSL filter
      socket was create dynamically from C code without SSL pointer
      item on HVM stack in 2-nd parameter and removes old hack which
      saved internally 2-nd HVM stack parameter.
    + allow to pass SSL_CTX instead of SSL in "ssl", "ctx" or "key" items
      of hash array used to initialize SSL socket filter. Using SSL_CTX
      allows to use the same hash array to set SSL socket filter for
      different connections
    + allow to use codeblocks or function pointers as "ssl", "ctx" or
      "key" items of hash array used to initialize SSL socket filter

  * contrib/hbssl/hbssl.h
  * contrib/hbssl/sslctx.c
    + added new C function:
         SSL_CTX * hb_SSL_CTX_itemGet( PHB_ITEM pItem )

  * contrib/hbssl/ssl_sock.c
  * src/rtl/hbcom.c
  * src/rtl/hbsocket.c
    ! fixed timeout checking in select()/poll()

  * src/rtl/hbsockhb.c
    ! fixed possible GPF trap when socket filter refuse to create new
      socket wrapper

  * include/hbinit.h
    * in GCC C++ builds for startup code use GCC constructor function
      attribute instead of static variable initialization to avoid
      warnings in new GCC versions

  * src/rtl/hbntos.c
    ! fixed missing '-' in result of negative integer numbers - thanks
      to Luigi Ferraris

  * src/common/hbstr.c
    + added code to round integer part when the size of number is greater
      then double precision (~16 digits).
2016-09-28 19:55:11 +02:00
Przemysław Czerpak
72016f2bc3 2016-09-22 15:47 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapi.h
  * include/hbvmpub.h
    * removed casting C style casting from commonly used macros

  * contrib/gtqtc/gtqtc1.cpp
    * use C++ casting instead of C casting

  * contrib/rddads/ads1.c
  * contrib/rddads/adsx.c
  * contrib/rddsql/sqlmix.c
  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfntx/dbfntx1.c
  * src/rdd/dbsql.c
  * src/rdd/workarea.c
    * cleaned HB_IT_* usage

  * contrib/rddads/ads1.c
    ! fixed typo in low level code of ordDescend() / DBOI_ISDESC,
      now ordDescend() should work with ADS* RDDs just like with
      native RDDs

  * contrib/hbfoxpro/relfunc.c
    ! fixed typo in Between() function - thanks to Petr Chorney

  * src/rtl/gtwvt/gtwvt.c
    ! added workaround for keyboard drivers which sets CTRL key modifier
      flag when only ALTGR is pressed - thanks to Maurizio la Cecilia
2016-09-22 15:47:08 +02:00
Przemysław Czerpak
085b9d828e 2016-09-20 17:38 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* doc/xhb-diff.txt
    + added information about support for strong typed variables in [x]Harbour
    * updated information about typed object items
    ! typos

  * include/hbclass.ch
    * updated information about initialization of typed object items

  * include/hbatomic.h
    * do not force OSSpinLock usage in OSX builds

  * include/hbapifs.h
  * src/rtl/filesys.c
    + added new C function hb_fsCloseRaw() - it works like hb_fsClose() but
      does not change hb_fsError()

  * src/rtl/filebuf.c
    * changed the condition in hb_fileLoadData() used to detect file
      descriptors without full support for file seek - now it's possible
      to use [hb_]MemoRead() to read /proc/* files in Linux

  * src/rtl/filesys.c
    ! detach printer process to not leave zombie processes after printing
      in programs which do not catch SIGCHLD signal in *nixes builds

  * src/rtl/filesys.c
  * src/rtl/hbproces.c
    * use hb_fsCloseRaw() instead of hb_fsClose() to safe original error code

  * src/rtl/hbsocket.c
    ! fixed OpenWatcom Linux builds
    + added HB_WINSOCK_USE_OLDFUNC macro which disables new WinSock functions
      in MS-Windows builds

  * src/rtl/gtxwc/gtxwc.c
    ! fixed recursive mutex lock
    ! added some missing locks
    + added support for X11 XLockDisplay()/XUnlockDisplay() in default builds
      when MT HVM is used. X11 locks can be disabled by HB_XWC_XLOCK_OFF
      macro - it may be necessary on some old platforms which do not support
      them.
    ! disabled resize step when font size is changed to reduce possible
      problem with reduced number of columns and rows by this operation.
      Please remember that X Server/Window Manager may still ignore
      suggested window size and force their own dimensions so application
      has to be ready to accept final screen size set by server/WM.

  * contrib/hbnf/shadow.c
    ! use 8 instead of 7 as default color attribute in FT_Shadow() function
2016-09-20 17:38:57 +02:00
Przemysław Czerpak
4cce9c8403 2016-07-18 20:32 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbssl/hbssl.hbx
  * contrib/hbssl/pem.c
  * contrib/hbssl/x509.c
    + added new prg functions: PEM_READ_X509(), PEM_READ_X509_AUX() and
      X509_get_PubKey()

  * src/debug/dbgmenu.prg
    ! fixed wrong method name :ToggleBreakPoint() -> BreakPointToggle()
      Thanks to Viktor.

  * src/rtl/gtwin/gtwin.c
    * hardcoded some LEFT_ALT + <key> to return K_ALT_* value instead of
      national characters, i.e. in EL keyboard layout. Please test it.
      I cannot check it in my MS-Windows version.
2016-07-18 20:32:04 +02:00
Przemysław Czerpak
8465bce36b 2016-07-04 19:01 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtwvg/wvgcore.c
  * contrib/gtwvg/wvgcuig.c
    ! use HB_MIN() macro instead of non-standard min() function
    ! use casting to double instead of float which may strip significant
      bits from 32bit numbers

  * include/hbapicdp.h
    + added hb_cdpGetID() macro
    * formatting

  * src/rtl/hbjson.c
    * modified codepage parameter behavior in JSON encode/decode functions.
      Now they can be used for codepage translation.

  * src/rtl/gtwvt/gtwvt.c
    * ignore national characters when WM_SYSCHAR message is generated.
      It should resolve the problem with Greek keyboard layout reported
      by Pete anyhow it's possible that it may create new problems with
      some other keyboard layouts so please report them if any.
2016-07-04 19:01:10 +02:00
Przemysław Czerpak
bc5832c719 2016-06-29 23:02 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/dbffpt/dbffpt1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfntx/dbfntx1.c
  * src/rdd/delim1.c
  * src/rdd/sdf1.c
  * src/rdd/hsx/hsx.c
  * src/rdd/dbcmd.c
  * src/rdd/dbcmd53.c
    * next SELF_INFO() and SELF_RDDINFO() cleanups

  * src/rtl/gtwvt/gtwvt.c
    ! fixed reverted LEFT and RIGHT ALT modifiers in my last commit
2016-06-29 23:02:51 +02:00
Przemysław Czerpak
6df7fc6132 2016-06-20 21:59 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* doc/cmpopt.txt
    * enumeration
    ! typos

  * src/codepage/uckam.c
    + added info about Kamenicky codepage number: CP895

  * include/hbapi.h
  * src/common/hbstr.c
    + added new C function:
         char * hb_dblToStr( char * szBuf, HB_SIZE nSize,
                             double dNumber, int iMaxDec );
      it converts numeric value to string trying to keep all significant
      digits in double numbers

  * include/harbour.hbx
  * src/rtl/hbntos.c
    + added new PRG function:
         hb_ntoc( <nValue> ) -> cValue
      it converts numeric value to string trying to keep all significant
      digits in double numbers

  * src/rtl/hbsocket.c
    + added support for error codes returned by
      getaddrinfo() / getnameinfo() and gethostbyname() / gethostbyaddr()

  * src/rtl/hbinet.c
    + set HB_SOCKET_ERR_WRONGADDR error code if hb_socketResolveAddr()
      returns NULL without setting error code

  * src/vm/arrays.c
  * src/vm/hashfunc.c
    ! fix hb_HScan(), AScan(), hb_AScan() and hb_RAScan() for very large
      integers with more then 53 significant bits. Such bits were lost
      after conversion to double value used in scan process

  * src/vm/itemapi.c
    * formatting

  * src/rtl/gtwvt/gtwvt.c
    ! do not convert characters received with ALTGR or ALT+CTRL flags to
      extended keycodes - some national keyboards may use such combination
      for national characters and even pure ASCII ones
2016-06-20 21:59:34 +02:00
Przemysław Czerpak
88fc3b1579 2016-05-04 15:50 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
    ! fixed very bad typo which caused buffer overflow on 32bit
      platforms using poll() instead of select() in hb_socketSelect()
2016-05-04 15:50:31 +02:00
Przemysław Czerpak
0f93e22120 2016-05-04 13:29 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtwin/gtwin.c
    ! strip ALT+CTRL and ALTGR from extended keycode when these modifiers
      are used with ASCII characters - it should fix problem with some
      national keyboards
2016-05-04 13:29:21 +02:00
Przemysław Czerpak
b00774f5c5 2016-04-29 16:25 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
  * src/rtl/hbcom.c
  * src/rtl/hbproces.c
  * src/rtl/hbsocket.c
    + added support for user build time macro HB_NO_POLL which disables
      poll() usage

  * src/rtl/hbsocket.c
    ! fixed bug which caused that structure passed to poll() had
      uninitialized events member.

  * include/hbclass.ch
    * disabled by default VO compatible object constructors:
         <className>{ <params,...> }
      If someone needs them then he should add:
         #define HB_VO_CONSTRUCTOR
      before:
         #include "hbclass.ch"

  * src/compiler/harbour.y
    * typo in comment
2016-04-29 16:25:28 +02:00
Przemysław Czerpak
79dd4228cf 2016-04-20 18:03 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbstrfmt.c
    ! restored pointer incrementation I removed unintentionally
2016-04-20 18:03:26 +02:00
Przemysław Czerpak
c0b5c749e0 2016-04-20 17:31 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbstrfmt.c
    * add to output trailing % in format pattern just like other % characters
      which are not part of valid format string, i.e. in this code:
         ? hb_StrFormat( "%-% %1%q%*%" )
      only the last % was silently eaten from output
2016-04-20 17:31:18 +02:00
Przemysław Czerpak
f03c7b9e69 2016-04-20 17:19 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbstrfmt.c
    ! fixed wrongly added to output character after unclosed format strings,
      i.e.
         ? hb_StrFormat( "%1" )
         ? hb_StrFormat( "%1%s", "x" )
2016-04-20 17:19:11 +02:00
Przemysław Czerpak
7d513fad62 2016-04-19 14:49 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtwin/gtwin.c
    ! fixed wrong translation in my previous commit
2016-04-19 14:49:11 +02:00
Przemysław Czerpak
7d2caa12d3 2016-04-18 18:41 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc1.cpp
  * src/rtl/gtwin/gtwin.c
  * src/rtl/gtwvt/gtwvt.c
    ! fixed stupid C&P typo in my previous modification - thanks to Lorenzo.
2016-04-18 18:41:39 +02:00
Przemysław Czerpak
836e6420ba 2016-04-18 18:05 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/strrepl.c
    ! fixed hb_strReplace() for strings longer then 1024 bytes and
      array used in 3-rd parameter.
2016-04-18 18:05:02 +02:00
Przemysław Czerpak
7d1b59482d 2016-04-18 17:33 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc1.cpp
  * src/rtl/gtwin/gtwin.c
  * src/rtl/gtwvt/gtwvt.c
    ! changed extended keycodes generated for ASCII characters
      combined with ALT and/or CTRL flags. It fixes problems with
      code giving the highest priority for:
         ! hb_keyChar( nKey ) == ""
      i.e. MemoEdit()

  * contrib/hbmzip/mziperr.prg
    % replaced DO CASE / ENDCASE with SWITCH / ENDSWITCH
    ! fixed repeated error codes
2016-04-18 17:33:43 +02:00
Przemysław Czerpak
7ab8ae631d 2016-04-08 14:30 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbsocket.ch
  * src/rtl/hbsocket.c
    + added support for high-priority/out-of-bound data in select()
      emulated by poll()
    + added macros for socket send()/recv() flags: HB_SOCKET_MSG_*

  * src/rtl/filesys.c
  * src/rtl/hbcom.c
  * src/rtl/hbproces.c
    * include <poll.h> when HB_HAS_POLL macro is set manually by user
      (thanks to Teo)

  * contrib/hbnetio/netiosrv.c
    * minor optimization
2016-04-08 14:30:05 +02:00
Przemysław Czerpak
2f1bf5ee72 2016-04-07 18:34 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbprintf.c
    * pacified warning

  * src/rtl/filesys.c
    ! return -1 instead of from hb_fsPipeIsData() when poll() detects
      error or end of stream - 0 should indicate timeout only.

  * src/rtl/hbcom.c
    ! fixed bad typo which blocked hb_comSend() in *nixes
      using select() instead of poll()

  * src/rtl/filesys.c
  * src/rtl/hbcom.c
  * src/rtl/hbproces.c
  * src/rtl/hbsocket.c
    ; updated #if/#else/#endif comments
2016-04-07 18:34:30 +02:00
Przemysław Czerpak
d2cfbe3d56 2016-04-06 15:18 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbstr.c
  * src/rtl/hbcom.c
  * src/rtl/hbproces.c
    * pacified few warnings - thanks to Viktor

  * contrib/sddfb/core.c
    ! fixed code which extracted float number from uninitialized memory.
      On some systems it could even cause GPF or other (ie. FPE) exception.
2016-04-06 15:18:50 +02:00