Commit Graph

19595 Commits

Author SHA1 Message Date
Przemysław Czerpak
640164f606 2017-05-19 00:54 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/ads1.c
    + added support for "VarCharFox" and "VarBinaryFox" field types.
    ! fixed accessing "VarChar" fields longer then their size defined in
      table header (rest of longer fields is stored in memo file)
    ! do not reduce size of data stored in "VarChar" fields to the size
      of region allocated for them in table record. Such fields allows
      to store up to 64000 bytes and rest is saved in memo file.
    ! fixed RTE when strings longer then 64000 bytes are assigned to
      "VarChar" fields.
    ! fixed RTE when strings longer then declared field size are assigned
      to Unicode character fields (i.e. "nChar" or "C:U")
    ! fixed possible use of memcpy() with the same source and destination
      addresses
2017-05-19 00:54:22 +02:00
Przemysław Czerpak
47ee04a10d 2017-05-15 14:34 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbgs/hbgs.hbp
    ! respect HB_BUILD_3RDEXT=no

  * contrib/hbwin/olecore.c
    ! fixed updating unnamed parameters passed by reference together
      with named parameters
2017-05-15 14:34:33 +02:00
Przemysław Czerpak
c495cba8ca 2017-05-12 22:17 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
    ! do not use SafeArrayGetVartype() with some chosen builds C compilers
      which do not support it
2017-05-12 22:17:36 +02:00
Przemysław Czerpak
099222a923 2017-05-12 21:18 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
    * changed tagVARIANT member used in hack extracting variant value
      address from ullVal to bVal to avoid problems with some old header
      files which do not support LONGLONG values
2017-05-12 21:18:31 +02:00
Przemysław Czerpak
4ac9d09475 2017-05-12 17:37 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
    + added support for typed variant array references created
      by __oleVariantNew()
2017-05-12 17:37:06 +02:00
Przemysław Czerpak
a105eb54cc 2017-05-12 17:21 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/oleauto.prg
  * contrib/hbwin/olecore.c
  * contrib/hbwin/hbwin.hbx
    * code cleanups and some synchronizations with Viktor's branch
    + added new PRG function borrowed from Viktor's branch:
         win_oleClassExists( <cOleName> | <cCLSID> ) -> <lExists>
2017-05-12 17:21:05 +02:00
Przemysław Czerpak
21a7ff7582 2017-05-12 14:12 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
    + added support for typed variant references created by __oleVariantNew()
2017-05-12 14:12:14 +02:00
Przemysław Czerpak
7b8d91e5cd 2017-05-12 09:57 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
    + added support for VT_VARIANT items to __oleVariantNew()
2017-05-12 09:57:22 +02:00
Przemysław Czerpak
e9cb7ffa2f 2017-05-11 18:05 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
    * create resizable array instead of fixed size array when empty OLE
      array is created by __oleVariantNew()
2017-05-11 18:05:43 +02:00
Przemysław Czerpak
b21fa47ec0 2017-05-10 17:21 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
    + added functions which changes default method of NIL conversion to
      OLE variant:
         __oleVariantNil2Null( [<lNewNil2NullFlag>] ) -> <lPrevNil2NullFlag>
      By default NIL values passed to foreign OLE code are converted to
      VT_EMPTY variants. __oleVariantNil2Null( .t. ) changes this behavior
      so NIL values are converted to VT_NULL variants.
    ; Warning: This function was added for tests. Looks that it's expected
               behavior for communication with MS-Excel and allows to use
               NIL as default parameter value but potentially it may create
               problems with some custom OLE interfaces so this modification
               should be widely tested in real life before we change the
               default behavior.
2017-05-10 17:21:27 +02:00
Przemysław Czerpak
79df0b6559 2017-05-10 16:39 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
    - removed support for VT_DECIMAL and VT_PTR arrays from
      __oleVariantNew() - I found in MSDN that such types are
      unsupported in SAFEARRAYs
    ! fixed indexes in array conversion in __oleVariantNew()
    ! fixed conversion to VT_BSTR arrays in __oleVariantNew()
2017-05-10 16:39:38 +02:00
Przemysław Czerpak
a13eebf540 2017-05-10 12:27 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
    + automatically add WIN_VT_ARRAY bit in 1-st parameter of
      __oleVariantNew() when 2-nd parameter is an array
    + added support for typed variant arrays to __oleVariantNew()
      Now it's possible to create strong typed one dimensional arrays and
      pass them as parameters to foreign OLE code, i.e.
         oOle:setArrayOfStrings( ;
               __oleVariantNew( WIN_VT_BSTR, { "1-st", "2-nd", "3-rd" } ) )
         oOle:setArrayOfIntegers( ;
               __oleVariantNew( WIN_VT_INT, { 1, 2, 3, 4 } )
    + added support for array of integers initialization from strings
      passed to __oleVariantNew() in 2-nd parameter.
      Now it's possible to create strong typed one dimensional OLE array
      initialized with string bytes ASCII values, i.e.
         oOle:setUcharStr( ;
               __oleVariantNew( hb_bitOr( WIN_VT_ARRAY, WIN_VT_UI8 ), ;
                                "ABCDEF" ) )
         oOle:setArrayOfIntegers( ;
               __oleVariantNew( hb_bitOr( WIN_VT_ARRAY, WIN_VT_INT ), ;
                                "ABCDEF" ) )
    ; warning: code not tested at all, written in my Linux box,
               please make real life tests in MS-Windows
2017-05-10 12:27:49 +02:00
Przemysław Czerpak
6904545b24 2017-05-10 07:55 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
    * minor modification in order of helper functions
2017-05-10 07:55:37 +02:00
Przemysław Czerpak
568003e11f 2017-05-10 07:50 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
    * added additional protection to reduce hb_oleSafeArrayToString()
      functionality to arrays of VT_I1 and VT_UI1 items so other types
      which may also allocate 1 byte for each item are not converted.
2017-05-10 07:50:03 +02:00
Przemysław Czerpak
fc9066234e 2017-05-09 17:04 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
    % small optimization in hb_oleSafeArrayFromString()
    ! fixed named parameter conversion - the last one was ignored
2017-05-09 17:04:44 +02:00
Przemysław Czerpak
3e3d5b1776 2017-05-09 10:57 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/ads1.c
  * src/rdd/workarea.c
    * simplified the code and eliminated wrong /* fallthrough */ comments
      inside case block reported by Viktor
2017-05-09 10:57:43 +02:00
Przemysław Czerpak
451ed05cf1 2017-05-09 09:14 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/olecore.c
    + added support for named parameters in OLE method calls,
      named parameters should be passed inside hash array in
      first parameter, i.e.:
         oWorksheets:add( { "Before" => oWS, "Count" => 3 } )
      next parameters if exist are passed as unnamed ones, i.e.
         oOle:add( { "name" => "test", "value" => 12345 }, 1, 2, 3 )
    ; warning: code not tested at all, written in my Linux box,
               please make real life tests in MS-Windows
    ! fixed __oleGetNameId()
2017-05-09 09:14:20 +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
Przemysław Czerpak
4858d23510 2017-05-04 14:48 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/hbcomp.c
    ! restored protection against multiple free of the same expression
      I removed by mistake in one of my recent commits.
2017-05-04 14:48:39 +02:00
Viktor Szakats
a69b4a58ee 2017-05-03 09:10 UTC Viktor Szakats (vszakats users.noreply.github.com)
* *
    * copyright name cleanups
2017-05-03 09:11:48 +00:00
Przemysław Czerpak
8abcba1bcd 2017-04-26 14:11 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/harbour.def
    ! added missing hb_itemPutNil()
2017-04-26 14:11:26 +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
d7193b8e14 2017-04-25 15:59 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbexprb.c
    ! added missing code to restore original expression type after
      direct type change in code like:
         <var> := <var> + <exp>
      It created problems when <var> was reused later, i.e. in FOR loop:
         FOR v := v + x TO 3
    * simplified code to restore original expression type and updated
      comments

  * src/compiler/harbour.y
    * minor cleanup
2017-04-25 15:59:35 +02:00
Aleksander Czajczynski
d89e99cbb0 2017-04-22 21:22 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* contrib/hbamf/amfenc.c
    ! fix trivial mistake in AMF3_ENCODE(), which broke string
      deduplication after hash with string-keys was serialized
      in object tree. The hash itself was serialized correctly
      because keys are by definition unique.
2017-04-22 21:24:19 +02:00
Przemysław Czerpak
ad1f113511 2017-04-20 10:01 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/3rd/zlib/*
    * updated to version 1.2.11
2017-04-20 10:01:20 +02:00
Przemysław Czerpak
66ee94abcc 2017-04-20 09:14 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbcomp.h
  * src/compiler/hbmain.c
    * removed not longer necessary calls to hb_compExprLstDealloc()

  * src/compiler/hbcomp.c
    ! do not generate internal error when nested expression deallocation
      is activated

  * contrib/rddads/ads1.c
    ! fixed bad typo which effectively completely broke
      AdsTestRecLocks( .t. ) mode
2017-04-20 09:14:04 +02:00
Przemysław Czerpak
6a1f383282 2017-04-19 18:20 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbdate.c
    ! fixed compilation with HB_TR_LEVEL_DEBUG in C mode
2017-04-19 18:20:43 +02:00
Przemysław Czerpak
76c62a447a 2017-04-15 21:35 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbcompdf.h
  * include/hbexprb.c
  * src/common/expropt1.c
    * redefined all HB_ET_MACRO_* macros as bitfields

  * src/compiler/complex.c
    * small modification for future extensions in macro usage

  * src/compiler/hbcomp.c
    ! replaced old temporrary hack with internal error.

  * src/compiler/hbmain.c
    * code reformating

  * src/compiler/harbour.y
    * separated DECLARE tokens

  * src/compiler/harbour.yyc
  * src/compiler/harbour.yyh
    * regenerated

  * src/rdd/dbffpt/dbffpt1.c
    ! fixed possible bad interaction (modified default memo type) due to
      uninitialized item returned by hb_stackAllocItem(). Such items may
      contain any simple value.

  * src/vm/memvars.c
    * minor variable name cleanup

  * utils/hbtest/rt_math.prg
    * repeat tests for macro messages and macro <op>=, pre/post ++/--
      operations with and without pass by reference (-ks) optimization
2017-04-15 21:35:32 +02:00
Przemysław Czerpak
52c588287e 2017-04-15 21:19 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/common/hbdate.c
    * implemented monotonic timers in POSIX and MS-Windows builds

  * config/wce/global.mk
  * config/wce/mingwarm.mk
  * config/win/global.mk
  * utils/hbmk2/hbmk2.prg
    * added winmm/mmtimer to list of system libraries - required
      for timeGetTime()

  * ChangeLog.txt
    ! typos
2017-04-15 21:19:51 +02:00
Przemysław Czerpak
63dbef88f4 2017-04-14 17:17 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/harbour.def
    * removed hb_fsPoll() added by mistake - it's only in *nix builds
2017-04-14 17:17:31 +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
Viktor Szakats
1938dd0a70 2017-04-14 13:22 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* contrib/hbtip/ccgi.prg
  * contrib/hbtip/client.prg
  * contrib/hbtip/encb64.prg
  * contrib/hbtip/encoder.prg
  * contrib/hbtip/encqp.prg
  * contrib/hbtip/encurl.prg
  * contrib/hbtip/ftpcli.prg
  * contrib/hbtip/hbtip.hbp
  * contrib/hbtip/hbtip.hbx
  * contrib/hbtip/httpcli.prg
  * contrib/hbtip/log.prg
  * contrib/hbtip/mail.prg
  * contrib/hbtip/mime.c
  * contrib/hbtip/misc.c
  * contrib/hbtip/popcli.prg
  * contrib/hbtip/sessid.prg
  * contrib/hbtip/smtpcli.prg
  * contrib/hbtip/thtml.ch
  * contrib/hbtip/thtml.prg
  * contrib/hbtip/tip.ch
  * contrib/hbtip/url.prg
  + contrib/hbtip/base64u.prg
  + contrib/hbtip/mailassy.prg
  * contrib/hbtip/sendmail.prg -> [...]/mailsend.prg
  + contrib/hbtip/WARNING.txt
  * contrib/hbtip/tests/base64.prg
  * contrib/hbtip/tests/dbtohtml.prg
  * contrib/hbtip/tests/dnldftp.prg -> [...]/ftp_dl.prg
  * contrib/hbtip/tests/ftpadv.prg -> [...]/ftp_adv.prg
  + contrib/hbtip/tests/email.prg
  + contrib/hbtip/tests/ftp_ul.prg
  - contrib/hbtip/tests/gmail.hbp
  - contrib/hbtip/tests/gmail.prg
  * contrib/hbtip/tests/hbmk.hbm
  * contrib/hbtip/tests/httpadv.prg -> [...]/http_adv.prg
  * contrib/hbtip/tests/httpcli.prg -> [...]/http_cli.prg
  + contrib/hbtip/tests/http_qry.prg
  - contrib/hbtip/tests/loadhtml.prg
  + contrib/hbtip/tests/test.prg
  + contrib/hbtip/tests/url.prg
    * synced with 3.4 fork by Viktor Szakats
    ; the only difference is slightly edited WARNING.txt

  - contrib/hbtip/credent.prg
    % deleted TIPCredentials() class that was never implemented

  ; changes above come from vast number of commits in 3.4 repository - many
    thanks to Viktor Szakats for maintaining
2017-04-14 13:22:09 +02:00
Aleksander Czajczynski
11d3cbfa0b 2017-04-06 12:05 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* contrib/hbtip/httpcli.prg
    ! fixed uploading binary files with TIPClientHTTP:PostMultiPart()
      Thanks to Alexandre Alencar, who informed about the bug, supplied
      example test code and suggested a patch. This commit simplifies patch
      given by Alexandre.

  * ChangeLog.txt
    % stripped spaces before EOLs
2017-04-06 12:07:24 +02:00
Przemysław Czerpak
9e8e013eb9 2017-03-29 19:50 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/hbgenerr.c
    * changed "with object" in last error message to upper cases

  * src/rdd/dbf1.c
    + added assigned value to error object ARGS array when data type or
      data width error is generated inside PUTVALUE() method

  * utils/hbtest/hbtest.prg
  * utils/hbtest/rt_array.prg
  * utils/hbtest/rt_hvma.prg
  * utils/hbtest/rt_main.ch
  * utils/hbtest/rt_math.prg
  * utils/hbtest/rt_misc.prg
    + added support for alternative results to HBTEST code.
      It's enabled by default and can be turned off by -noalt hbtest
      parameter.
    + added alternative results for tests which return different then
      Cl*pper results but they are expected and not Harbour bugs.
2017-03-29 19:50:33 +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
5f1da37fd2 2017-03-24 20:02 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbcomp.h
  * src/compiler/hbmain.c
    * changed hb_compVariableScope() to static function

  * src/compiler/harbour.y
    ! added protection against GPF when nested function/procedure is
      declared inside extended block code

  * src/compiler/harbour.yyc
  * src/macro/macro.yyc
  * src/macro/macro.yyh
    * regenerated

  * include/hbexprb.c
    * minor simplification

  * include/hbexpra.c
    * use HB_SIZEOFARRAY() macro
2017-03-24 20:02:03 +01:00
Przemysław Czerpak
7bcf8e85db 2017-03-23 12:15 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/harbour.y
    * create real function in internal memory instead of dummy flow control
      error for unclosed structures when new function/procedure declaration
      is found just to reset context for farther error reporting. It leaves
      unclosed structure on Bison stack but it's unimportant for us because
      result of such compilation is ignored due to detected errors and this
      modification resolves the problem with ignored pending declarations.

  * src/compiler/harbour.yyc
    * regenerated
2017-03-23 12:15:33 +01:00
Przemysław Czerpak
9eec626663 2017-03-22 09:39 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/hbdead.c
  * src/compiler/hbfix.c
  * src/compiler/hblbl.c
  * src/compiler/hbopt.c
  * src/compiler/hbpcode.c
  * src/compiler/hbstripl.c
    * small comment cleanup in PCODE tables

  * include/hberrors.h
  * src/compiler/hbgenerr.c
    + added new compile time error messages for incorrect
      ENDWITH, ENDSWITCH and END SEQUENCE
    * changed error message:
         "CASE or OTHERWISE does not match DO CASE"
      to
         "CASE or OTHERWISE does not match DO CASE or SWITCH"

  * src/compiler/harbour.y
    * if control structure is closed by wrong statement generate
      error and close it. Cl*pper works in similar way so now compile
      time errors are much more close to Clipper in such cases and
      this modification fixes also problem with long list of errors
      reported to the end of function when in fact only one control
      structure was wrongly closed.
    * generate error messages for parts of control structures used
      in wrong context

  * src/compiler/harbour.yyc
  * src/compiler/harbour.yyh
    * regenerated

  * src/compiler/complex.c
    - removed wrongly working old error messages - initially they were
      implemented in old Flex lexer but they couldn't work correctly
      inside any lexer. When I wrote new lexer I simply copied them to
      new code with old broken logic just for backward compatibility.
      Now such messages are generated by grammar parser for all cases
      not only chose ones so I can clean lexer code.
    * set more precisely lexer state for error messages generated by
      grammar parser
    * simplified the code after above modifications

  * tests/speedtst.prg
    ! fixed memory statistic detection
2017-03-22 09:39:47 +01: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
Mindaugas Kavaliauskas
d58d0f4ca3 2017-03-20 00:58 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* src/compile/hbopt.c
    ! fixed 'assigned but not used' error detection for 'var op= val' code
2017-03-20 00:59:06 +02:00
Przemysław Czerpak
34418933fa 2017-03-15 14:39 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbdefs.h
    + added macros HB_CAST_*( double ) for conversions of double values
      to integer types - they are designed to hide some differences
      between C compilers and platforms in such conversions

  * src/common/expropt2.c
  * src/vm/extend.c
  * src/vm/itemapi.c
    * use new HB_CAST_*() macros
2017-03-15 14:39:47 +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
61a842ca59 2016-12-16 11:05 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbmisc/dates.c
    ! fixed WOY() to return some reasonable results. I have no idea what
      author wanted to reach but now WOY() be default returns ISO 8601
      week number and simple week number if 2-nd parameter is .F.
2016-12-16 11:05:10 +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
b68e5beb2f 2016-11-07 14:50 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
- doc/en/hb_set.txt
  * doc/en/set.txt
  * contrib/hbgd/doc/en/hbgd.txt -> contrib/hbgd/doc/en/gdwrp.txt
  * contrib/hbmisc/doc/en/dates2.txt -> contrib/hbmisc/doc/en/dates.txt
  * contrib/hbmisc/doc/en/ht_class.txt -> contrib/hbmisc/doc/en/fileread.txt
  * contrib/hbmisc/doc/en/ht_conv.txt -> contrib/hbmisc/doc/en/nconvert.txt
  * contrib/hbmisc/doc/en/ht_str.txt -> contrib/hbmisc/doc/en/strfmt.txt
  * contrib/hbxpp/doc/en/browse.txt -> contrib/hbxpp/doc/en/dbcmdx.txt
  * contrib/hbziparc/doc/en/hbziparc.txt -> contrib/hbziparc/doc/en/ziparc.txt
  * contrib/rddads/doc/en/adsfuncs.txt -> contrib/rddads/doc/en/adsfunc.txt
  * doc/en/array.txt -> doc/en/arrayshb.txt
  * doc/en/eval.txt -> doc/en/evalhb.txt
  * doc/en/input.txt -> doc/en/inputall.txt
  * doc/en/lang.txt -> doc/en/langall.txt
  * doc/en/nation.txt -> doc/en/natmsg.txt
  * doc/en/setmode.txt -> doc/en/gx.txt
  * doc/en/tgetlist.txt -> doc/en/readvar.txt
    * renames to sync doc filenames with source filename

  ; Above patches come from 3.4 fork commits below:

    2016-11-03 14:01 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
    2016-11-03 13:48 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
2016-11-07 14:52:06 +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