Commit Graph

251 Commits

Author SHA1 Message Date
Aleksander Czajczynski
8545d4b8b6 2018-02-11 23:40 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* include/hbapi.h
  * src/common/hbver.c
  * src/harbour.def
  * contrib/hbwin/win_osc.c
    * synced Windows version detection code with Viktor's work in 3.4

  * src/main/Makefile
  + src/main/harbour.rc
    * include Windows manifest in standalone compiler - "harbour.exe /build"
      should now correctly report Windows 10. "yourapp.exe //build" plus
      in-app results still depend on manual manifest inclusion within .rc
2018-02-11 23:40:11 +01: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
Aleksander Czajczynski
6e3fe511f0 2017-12-14 14:20 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* contrib/hbamf/amfenc.c
    * update amf3_Encode() serialize function with great idea of Przemek
      implemented recenly in hb_Serialize(). Checking garbage collector
      reference count can save time here too, unique arrays and hashes won't
      be indexed as references.

  * contrib/hbexpat/3rd/expat/*
    ! updated to 2.2.5 (from 2.2.1) using 3rdpatch.hb, expat.diff from
      Viktor's 3.4 fork was used - but (again) adapted for DOS 8.3 naming
      scheme. Also i've kept local patches for WinCE, OpenWatcom DOS/OS2,
      please test. Compilation in CPP mode is explicitly disabled for libexpat
      now, as upstream decided to ignore such use cases completly.

   * contrib/hbexpat/*
     * synced with Viktor's 3.4 fork

   + include/hbarc4.h
   * src/harbour.def
     + export ARC4 core routines like in 3.4 fork, updated expat lib reuses it.

   * contrib/hbtip/hbtip.hbp
     ! adapt *.hbx file specifier to hbmk2 3.2 syntax
2017-12-14 14:21:03 +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
990feed254 2017-09-28 14:55 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/pp/ppcore.c
    ! fixed line numbering in unclosed extended block
    * interrupt extended block processing if it contains internal
      FUNCTION or PROCEDURE declaration

  * include/hbcompdf.h
  * src/compiler/complex.c
  * src/compiler/harbour.y
  * src/compiler/hbmain.c
    ! fixed possible GPF when FUNCTION/PROCEDURE starts in unclosed
      control structure - thanks to Abe Buchinger for information
      about the problem
    * report all unclosed control structures when FUNCTION/PROCEDURE starts

  * src/compiler/harbour.yyc
  * src/compiler/harbour.yyh
    * regenerated
2017-09-28 14:55:41 +02:00
Viktor Szakats
31e48774dd 2017-09-27 09:24 UTC Viktor Szakats (vszakats users.noreply.github.com)
* include/hbgtinfo.ch
    * sync HB_GTI_* values between 3.2 and 3.4
2017-09-27 09:25:29 +00: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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Mindaugas Kavaliauskas
6a6f4d962d 2016-08-10 20:12 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* contrib/rddads/ads.ch
    + 64bit server type constants included

  * include/dbinfo.ch
  * contrib/rddsql/hbrddsql.h
  * contrib/rddsql/rddsql.hbc
  - contrib/rddsql/hbrddsql.ch
    * definitions of SQL related RDDI_*, DBI_* constants moved from RDDSQL
      to core code
  * include/dbinfo.ch
  * contrib/rddsql/sqlbase.c
    * RDDI_NEWID renamed to more informative RDDI_INSERTID

  * contrib/rddads/ads1.c
  * contrib/rddads/adsfunc.c
  * contrib/rddads/rddads.h
    + RDDI_CONNECT, RDDI_DISCONNECT implemented. RDDINFO() can be used instead
      of RDD specific AdsConnect*() calls
    + other SQL related RDDINFO(), DBINFO() capabilities implemented
    + DBUSEAREA() accepts prefixes "SQL:" and "TABLE:" to indicate if
      given table name should be treated as SQL query or table file name.
      If these prefixes are omitted, function parameter is treated as table
      file name except in case it begins with "SELECT " (compatibility).
2016-08-10 20:13:37 +03: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
a7e0e45857 2016-06-23 00:54 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapiitm.h
  * src/vm/itemapi.c
    + added new C function:
         PHB_ITEM hb_itemPutNil( PHB_ITEM pItem );

  * src/rdd/dbf1.c
    ! fixed yet another RDDI_SETHEADER clearing in internal DBF RDD code
    * clear few passed variables before internal SELF_INFO() and
      SELF_RDDINFO() read calls - they were safe in current code but
      potentially may badly interact with 3-rd party DBF RDD wrappers.
2016-06-23 00:54:16 +02:00
Przemysław Czerpak
7bc80aaf1d 2016-06-22 23:58 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/dbinfo.ch
    * updated few comments

  * src/rdd/dbf1.c
  * src/rdd/delim1.c
    ! fixed dbInfo( DBI_SETHEADER ) and hb_rddInfo( RDDI_SETHEADER )
      to not changer previous settings
    ! set DB_SETHEADER_APPENDSYNC as default update header mode
2016-06-22 23:58:12 +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
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
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
1f5866cce8 2016-03-30 16:35 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbdefs.h
    ! use "ll" instead of "I64" as 64bit integer modifier in *printf()
      functions in Embarcadero CLANG based compilers
2016-03-30 16:35:49 +02:00
Przemysław Czerpak
3b77191f9f 2016-03-25 17:05 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbclass.ch
    ! use more restrictive PP rules to avoid possible wrong
      interactions with code using 'var' and 'data' identifiers
    * force class name to be valid identifier
    * commented unused rules

  * include/std.ch
    ! fixed CODEPAGE clause in COPY TO and APPEND FROM commands
    + added VIA and CODEPAGE clauses to JOIN command

  * src/rdd/dbcmd.c
    * updated comments with some function syntax
2016-03-25 17:05:31 +01:00
Przemysław Czerpak
0d57fdacfa 2016-03-18 17:42 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
  * src/rdd/dbcmd.c
    + added new function:
         hb_dbGetFilter() -> <bCode> | NIL
      it returns codeblock used as work area filter or NIL

  * src/debug/dbgwa.prg
    * use hb_dbGetFilter() to check if WA filter was set without
      filter text representation

  ; above modifications created by Rolf - thanks

  * src/rdd/dbcmd.c
    ! clear filter if dbGetFilter( , "" ) is called instead of setting
      dummy one - thanks to Rolf
2016-03-18 17:42:58 +01:00
Przemysław Czerpak
ac3e681530 2016-03-16 14:19 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbclass.ch
    * typo in comment
2016-03-16 14:19:18 +01:00
Przemysław Czerpak
7966062349 2016-03-16 14:17 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbclass.ch
    * disabled DECLARE to not generate ignored by compiler noise in .ppo
      files

  * src/rdd/dbcmd.c
    ! allow to use dbSetFilter() with string only parameter without
      codeblock - Cl*pper compatibility fix.
      Cl*pper allows to set text filter without codeblock. In local
      RDDs it effectively does nothing and only dbFilter() returns it
      but RDDs with automatic filter optimization like CL53/DBFCDX /
      COMIX/ClipMore or RDDs working with remote data base servers
      may use only text version of filter and ignore or use with
      lower priority the codeblock so Harbour has to work like
      Cl*pper here.

  * src/rdd/workarea.c
    * typo in comment

  * contrib/rddads/ads1.c
    * do not validate empty text filters
2016-03-16 14:17:12 +01:00
Przemysław Czerpak
60d7395a5f 2016-03-08 14:52 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/lang/Makefile
  + src/lang/l_de_at.c
  * include/hblang.hbx
    + added new DE_AT German-Austria lang module by byte1one@gmail.com

  * src/lang/l_is.c
    ! fixes in Icelandic lang module by Isleifur Gislason
      <isleifurgisla@gmail.com>
2016-03-08 14:53:00 +01:00
Przemysław Czerpak
078899e74c 2016-02-18 17:02 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/fileio.ch
    + added HB_VF_IONAME to hb_vcConfigure() actions

  * contrib/hbbz2io/bz2io.c
  * contrib/hbcomio/comio.c
  * contrib/hbgzio/gzio.c
  * contrib/hbmemio/memio.c
  * contrib/hbnetio/netio.h
  * contrib/hbnetio/netiocli.c
  * contrib/hbpipeio/pipeio.c
  * contrib/hbtcpio/tcpio.c
  * src/rtl/filebuf.c
    + implemented HB_VF_IONAME

  * contrib/hbnetio/netiosrv.c
    ! added protection against possible buffer overflow

  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfntx/dbfntx1.c
    * restored CL5.[23] compatible tag selection - I had to broke
      it when I was adding SIX3 compatibility functions
2016-02-18 17:02:48 +01:00
Przemysław Czerpak
24633c2478 2016-02-16 22:30 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapirdd.h
  * src/rdd/wacore.c
  * src/rdd/workarea.c
    + added new C function which allows to register RDD redirector
      which depends on used table name:
         typedef LPRDDNODE ( * HB_RDDACCEPT )
               ( LPRDDNODE pRddNode, const char * szFileName );
         void hb_rddSetFileRedirector( HB_RDDACCEPT funcAccept,
                                       HB_BOOL fEnable );
    + added new C functions which allows to find RDD respecting
      active redirectors:
         const char * hb_rddFindDrv( const char * szDriver,
                                     const char * szFileName );
         LPRDDNODE hb_rddFindFileNode( LPRDDNODE pRddNode,
                                       const char * szFileName );
    * cleaned some HB_TRACE messages

  * src/rdd/dbcmd.c
  * src/rdd/wafunc.c
    + use functions which respect redirectors to find RDD
2016-02-16 22:30:22 +01:00
Przemysław Czerpak
41bf5f231d 2016-02-11 11:54 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
  * include/hbapifs.h
  * src/rtl/filesys.c
    * cleaned hb_fsOpenEx() parameters order

  * src/common/hbprintf.c
    ! typo in comment
2016-02-11 11:54:08 +01:00
Przemysław Czerpak
119c842a5b 2016-02-04 17:02 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
  * src/rtl/filesys.c
    + added new C function:
         HB_FOFFSET hb_fsGetSize( HB_FHANDLE hFileHandle );
    ! fixed SetFilePointer() error detecting - it was broken
      and we returned wrong results for offset 0xFFFFFFFF
  * src/rtl/filebuf.c
    * use hb_fsGetSize()
2016-02-04 17:02:32 +01:00
Przemysław Czerpak
08c4bf45fc 2016-01-28 15:00 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbexprb.c
  * src/common/expropt1.c
    ! fixed typo in macro alias push/pop operation
    * disable multivalue macro expansion for macro expressions enclosed in
      parenthesis, i.e.:
            s := "1,2,3"
            QOut( &s )        // 1, 2, 3
            QOut( &(s) )      // 1, 2, 3
            QOut( (&s) )      // 3

  * include/hbexprop.h
  * src/common/expropt1.c
  * src/common/expropt2.c
  * src/vm/hvm.c
    * return last array item when hb_ArrayToParams() is used in
      parenthesis, i.e.:
         QOut( hb_ArrayToParams( { 1, 2, 3 } ) )      // 1, 2, 3
         QOut( ( hb_ArrayToParams( { 1, 2, 3 } ) ) )  // 3
2016-01-28 15:00:20 +01:00
Przemysław Czerpak
c6316a4578 2016-01-26 15:44 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapierr.h
  * include/hbdefs.h
  * src/debug/dbgentry.c
  * src/rtl/filesys.c
  * src/rtl/gtcgi/gtcgi.c
  * src/rtl/gtcrs/gtcrs.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
  * src/rtl/hbhex.c
  * src/rtl/hbproces.c
  * src/rtl/hbsocket.c
  * src/vm/classes.c
  * src/vm/extrap.c
  * src/vm/itemapi.c
  * src/vm/runner.c
  * src/vm/task.c
  * contrib/gtalleg/gtallegd.c
  * contrib/gtqtc/gtqtc1.cpp
  * contrib/gtwvg/gtwgud.c
  * contrib/gtwvg/gtwvgd.c
  * contrib/gtwvg/wvgcore.c
  * contrib/gtwvg/wvgcuig.c
  * contrib/gtwvg/wvgutils.c
  * contrib/gtwvg/wvgwin.c
  * contrib/gtwvg/wvgwing.c
  * contrib/hbfbird/firebird.c
  * contrib/hbwin/axcore.c
  * contrib/hbwin/wapi_commctrl.c
  * contrib/hbwin/wapi_shellapi.c
  * contrib/hbwin/wapi_winbase.c
  * contrib/hbwin/wapi_wingdi.c
  * contrib/hbwin/win_misc.c
  * contrib/hbxdiff/core.c
  * contrib/rddads/ads1.c
  * contrib/rddads/adsx.c
  * contrib/xhb/cstructc.c
  * contrib/xhb/freadlin.c
  * extras/gtwvw/gtwvwd.c
  * extras/gtwvw/wvwfuncs.c
    * use HB_PTRUINT instead of HB_PTRDIFF in castings between pointers
      and numbers - it makes some C compilers happy and in few cases it
      also fixed bugs
2016-01-26 15:45:00 +01:00