Commit Graph

358 Commits

Author SHA1 Message Date
Przemysław Czerpak
cd940c3f35 2016-01-23 13:47 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/xhb/hbcompat.ch
  * contrib/xhb/xhb.hbp
  * contrib/xhb/xhb.hbx
  + contrib/xhb/xhbbit.c
    + added xhb_bitAnd(), xhb_bitOr() and xhb_bitXor() functions which
      are compatible with xHarbour &, | and ^^ operators
2016-01-23 13:47:51 +01:00
Przemysław Czerpak
9f0089e966 2016-01-23 11:49 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/hbusage.c
  * src/pp/hbpp.c
  * package/harb_win.mft
  * package/harb_win.rc
  * utils/hbi18n/hbi18n.prg
  * utils/hbmk2/hbmk2.prg
  * utils/hbmk2/po/hbmk2.hu.po
  * utils/hbtest/hbtest.prg
  * contrib/hbformat/utils/hbformat.prg
  * contrib/hbnetio/utils/hbnetio/hbnetio.prg
    * bumped copyright year to 2016
2016-01-23 11:49:17 +01:00
Przemysław Czerpak
fdd75b00bf 2016-01-22 16:55 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/ads1.c
  * src/rdd/hbsix/sxcompr.c
  * src/rtl/gtxwc/gtxwc.c
    ! cleaned C++ casting
2016-01-22 16:55:41 +01:00
Przemysław Czerpak
ae90545eb1 2016-01-21 20:42 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtalleg/gtallegd.c
  * contrib/hbamf/amfdec.c
  * contrib/hbamf/amfenc.c
  * contrib/hbbz2/core.c
  * contrib/hbbz2io/bz2io.c
  * contrib/hbct/atrepl.c
  * contrib/hbct/charrepl.c
  * contrib/hbct/envparam.c
  * contrib/hbct/pack.c
  * contrib/hbct/token2.c
  * contrib/hbfimage/fi_wrp.c
  * contrib/hbgd/gdwrp.c
  * contrib/hbgs/core.c
  * contrib/hbgzio/gzio.c
  * contrib/hbhpdf/core.c
  * contrib/hbhpdf/image.c
  * contrib/hbmlzo/core.c
  * contrib/hbmxml/core.c
  * contrib/hbodbc/odbc.c
  * contrib/hbsqlit3/core.c
  * contrib/hbssl/bio.c
  * contrib/hbssl/ssl.c
  * contrib/rddads/ads1.c
  * contrib/rddads/adsfunc.c
  * contrib/rddads/adsmgmnt.c
  * contrib/rddads/adsx.c
  * contrib/rddads/rddads.h
  * contrib/sddodbc/core.c
  * contrib/xhb/cstructc.c
  * include/hbapi.h
  * include/hbdefs.h
  * src/common/expropt1.c
  * src/common/expropt2.c
  * src/common/hbmem.c
  * src/compiler/complex.c
  * src/compiler/harbour.y
  * src/compiler/harbour.yyc
  * src/compiler/harbour.yyh
  * src/compiler/hbident.c
  * src/macro/macrolex.c
  * src/nortl/nortl.c
  * src/pp/ppcore.c
  * src/rdd/hbsix/sxcompr.c
  * src/rdd/hbsix/sxfname.c
  * src/rdd/usrrdd/usrrdd.c
  * src/rtl/cdpapi.c
  * src/rtl/filebuf.c
  * src/rtl/filesys.c
  * src/rtl/fslink.c
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/gtsln/gtsln.c
  * src/rtl/gtsln/mousesln.c
  * src/rtl/gtxwc/gtxwc.c
  * src/rtl/hbbfsock.c
  * src/rtl/hbgtcore.c
  * src/rtl/hbsocket.c
  * src/rtl/hbzlib.c
  * src/rtl/hbznet.c
  * src/rtl/hbzsock.c
  * src/rtl/iousr.c
  * src/rtl/langapi.c
  * src/vm/cmdarg.c
  * src/vm/codebloc.c
  * src/vm/hvm.c
  * src/vm/itemapi.c
  * src/vm/macro.c
  * src/vm/set.c
  * src/vm/strapi.c
    * cleaned const qualifier dropping
    ! fixed few bugs I found analyzing related code
    ; I left untouched two places in HBSSL which IMO should be fixed yet
2016-01-21 20:42:30 +01:00
Przemysław Czerpak
5b4cb6058a 2016-01-21 20:29 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/ads1.c
    * do not use long type names in array returned by dbStruct() if
      corresponding types exist in core code and have their own name
      recognized by other RDDs.
      Now only one long type name can be returned: "CICHARACTER"
2016-01-21 20:29:25 +01:00
Przemysław Czerpak
93163f1e04 2016-01-18 12:16 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
    * indenting

  * config/darwin/clang.mk
  * config/darwin/gcc.mk
  * config/darwin/icc.mk
  * utils/hbmk2/hbmk2.prg
    * use -no_warning_for_no_symbols in MacOSX builds - many thanks
      to Lorenzo
  * contrib/xhb/xhb.ch
    + added #pragma -kd+

  * doc/xhb-diff.txt
    ! typos
2016-01-18 12:16:42 +01:00
Viktor Szakats
cef75de547 2016-01-15 15:20 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
* *
    % remove brandings and homepage from copyright header. Pass 3 - manual.
    * project homepage and name is described in README, amongst others
    ; this should make the diff between 3.4 and 3.2 easier to manage
2016-01-15 15:21:27 +01:00
Przemysław Czerpak
bd92a307f5 2016-01-15 11:15 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc.h
  * contrib/gtqtc/gtqtc1.cpp
    * renamed few variables to avoid -Wshadow warnings

  * contrib/hbfimage/fi_wrp.c
    * removed unnecessary ;

  * contrib/hbodbc/odbc.c
    ! replaced '\0' with NULL in pointer initialization

  * src/3rd/jpeg/Makefile
    % added missing HAVE_UNSIGNED_CHAR build macro. Without it LIBJPEG
      uses SHORT to hold unsigned 8 bit integers what increases memory
      usage and reduces the speed.

  * src/pp/hbpp.c
    * minor modification to keep string constant C90 comnpatible

  * src/rtl/filesys.c
    * simplified DOS to POSIX file attribute translation
    + respect hidden and system file attribute in DOS builds of hb_fsOpenEx()

  * src/vm/fm.c
    ! added yet another missing HB_STACK_TLS_PRELOAD
2016-01-15 11:15:55 +01:00
Viktor Szakats
3ed9fa0f45 2016-01-14 19:33 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
* *
    % remove brandings and homepage from copyright header. Pass 2 - semi-auto.
    * project homepage and name is described in README, amongst others
    ; this should make the diff between 3.4 and 3.2 easier to manage
2016-01-14 19:35:07 +01:00
Viktor Szakats
58faf91453 2016-01-14 19:17 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
* *
    % remove brandings and homepage [1] from copyright header. Pass 1 - using script.
      [1] nobody has access to it anymore AFAIK - and it's also just
          a redirect since long
    ! update url in copyright header
    ; this should make the diff between 3.4 and 3.2 easier to manage
2016-01-14 19:18:17 +01:00
Przemysław Czerpak
04283dd94f 2016-01-14 11:02 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/global.mk
    * set HARBOUR=F:100 during build process in OS2 builds - it increases
      maximum number of open handles per process from 20 to 100 so it should
      be possible to use -j<n> switch during Harbour compilation - please
      test, i.e.:
         os2-make -j3

  * contrib/xhb/hbcompat.ch
    ! fixed pp rules for Str(,,, <lStrip> ) translation

  * include/hbapifs.h
  * src/rtl/filesys.c
    + added new C function:
         HB_FHANDLE hb_fsOpenEx( const char * pszFileName, HB_FATTR nAttr,
                                 HB_USHORT uiFlags );
    * minor cleanup

  * include/hbmemory.ch
  * src/vm/fm.c
    + added two new actions for Memory() function:
         HB_MEM_STATISTICS - return non 0 value if FM statistic is enabled
         HB_MEM_ISLIMIT    - return non 0 value if used memory limit is
                             supported
    + added new PRG function:
         __fm_allocLimit( [ <nNewLimit> ] ) -> <nPrevLimit>
      It allows to set limit for maximum used memory in some memory
      managers, -1 means no limit.
      Now it works with DLMALLOC and in ST mode it's limit for memory
      allocated from system for whole application. In MT mode when
      HB_FM_DLMT_ALLOC (default for DLMALLOC) is enabled it's limit for
      single MSPACE (Harbour allocates 16 MSPACES and balance them
      between threads to improve scalability) so it's rather per thread
      limit. If memory statistic module is enabled during Harbour build
      process then this limit works with any memory manager and defines
      limit for total memory allocated by Harbour application regardles
      of MT or ST mode.

  * src/vm/hvm.c
    * use HB_MEM_STATISTICS instead of HB_MEM_USEDMAX to check if memory
      statistic module is enabled
2016-01-14 11:02:51 +01:00
Przemysław Czerpak
ca9bb39a23 2016-01-13 15:25 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/encurlc.c
    ! fixed C&P typos in tip_URLEncode() and tip_URLDecode() in may
      previous commit

  * src/pp/ppcore.c
    * pacified warning

  * src/common/hbver.c
  * src/rtl/hbsocket.c
    * updated for Digital Mars C compilation
2016-01-13 15:25:21 +01:00
Przemysław Czerpak
05bbf52617 2016-01-13 11:08 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbsocket.h
  * src/rtl/hbsockhb.c
    + added new C function:
         HB_BOOL hb_sockexItemReplace( PHB_ITEM pItem, PHB_SOCKEX pSock );

  * contrib/hbssl/ssl_sock.c
    + replace passed socket structure to hb_socketNewSSL_connect() and
      hb_socketNewSSL_accept() with new one using SSL filter if it was
      passed by reference, current syntax is:
         hb_socketNewSSL_connect( [@]<pSocket>, <pSSL> [, <nTimeout> ] )
                     -> <pSocketSSL>
         hb_socketNewSSL_accept( [@]<pSocket>, <pSSL> [, <nTimeout> ] )
                     -> <pSocketSSL>

  * contrib/hbssl/hbssl.hbm
  * contrib/hbssl/hbssl.hbx
  + contrib/hbssl/ssl_hbcon.prg
    + added new PRG functions which can be used for fast initialization of
      SSL connection:
         hb_SSL_new() -> <pSSL>
         hb_SSL_connect_inet( <pSocket>, [ <nTimeOut> ], [ @<cInfo> ] )
                     -> <lConnected>
         hb_SSL_connect_socket( <pSocket>, [ <nTimeOut> ], [ @<cInfo> ] )
                     -> <lConnected>
      They do not need any addiitonal initialization code and can be called
      as first and the only SSL functions in user code.

  * contrib/hbtip/mail.prg
    ! fixed bug reported by Lorenzo - thanks
    * use hb_MemoWrit() in :detachFile() to honor Harbour File IO API
    * cleanup

  * src/common/hbffind.c
  * src/rtl/gtos2/gtos2.c
  * src/rtl/hbproces.c
    * cleaned DosAllocMem() flags

  * src/common/hbfsapi.c
  * src/rtl/hbproces.c
    * pacified OS2 GCC warnings

  * config/global.mk
    * show information about HB_MT build parameter if set by user
2016-01-13 11:08:23 +01:00
Przemysław Czerpak
6be1156f7c 2016-01-12 21:13 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/encurlc.c
    ! fixed url decoding - thanks to Lorenzo for reporting the problem
    * small simplification of url encoding code

  * src/rtl/hbproces.c
    ! use DosAllocMem() instead of hb_xgrab() to allocate memory for
      DosExecPgm() parameters - it should fix the problem with random
      build crashes when pipes are used for redirection of child
      process standard IO handles - please test in real OS2 environment.
2016-01-12 21:13:30 +01:00
Przemysław Czerpak
29fc87a1ef 2016-01-10 20:42 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/hvm.c
    * allow to use == operator for codeblocks

  * utils/hbtest/rt_hvm.prg
    * updated for == operator which accepts codeblocks

  * utils/hbtest/rt_main.ch
    * do not define __CLIPPER__ macro when ITK Clip compiler is used

  * contrib/hbbz2/errint.c
    * added HB_EXPORT to bz_internal_error() declaration
2016-01-10 20:42:57 +01:00
Przemysław Czerpak
0fe070fc4a 2016-01-09 20:57 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
+ contrib/hbbz2/errint.c
    + added file I forgot to add to git in one of previous commits
2016-01-09 20:57:22 +01:00
Przemysław Czerpak
e94f96cc9e 2016-01-09 20:54 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbbz2io/bz2io.c
    * pacified warning
2016-01-09 20:54:14 +01:00
Przemysław Czerpak
332fb10134 2016-01-09 20:30 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbbz2/core.c
  * contrib/hbbz2/hbbz2.hbp
    * moved bz_internal_error() definition to separate file to avoid
      conflicts when more modules need it and/or define their own.

  * contrib/hbplist.txt
  + contrib/hbbz2io/bz2io.c
  + contrib/hbbz2io/hbbz2io.hbc
  + contrib/hbbz2io/hbbz2io.hbp
  + contrib/hbbz2io/hbbz2io.hbx
    + added new Harbour File IO driver for BZIP2 compressed streams.
      It redirects files with "bz:" and "bz[1-9]:" prefixes and can be
      used with hb_vf*() functions and transfer RDDs like SDF or DELIM,
      i.e.
            REQUEST HB_BZ2IO, HB_MEMIO
            USE test
            COPY TO mem:bz:test.txt.bz DELIMITED WITH TAB
            FOR EACH cLine IN ;
                        hb_ATokens( hb_MemoRead( "mem:bz:test.txt.bz" ), .t. )
               ? cLine
            NEXT
      or:
            REQUEST HB_GZIO, HB_BZ2IO
            FUNCTION GZip2Bz2( cFile )
            RETURN hb_vfCopy( "GZ:" + cFile + ".gz", "BZ:" + cFile + ".bz2" )
      In summary BZ2IO works like GZIO but uses BZIP2 slower though more
      efficient compression BZIP2 method instead of GZIP format.
2016-01-09 20:30:49 +01:00
Przemysław Czerpak
cafafa03d8 2016-01-09 20:15 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbgzio/gzio.c
    * do not clear timeout when at least one byte was read or written,
      it may be useful for code which was not designed to work with
      partially finished file read/write operations.
2016-01-09 20:15:54 +01:00
Przemysław Czerpak
6f3550d8ed 2016-01-09 20:09 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbfoxpro/hbfoxpro.hbp
  * contrib/hbfoxpro/hbfoxpro.hbx
  + contrib/hbfoxpro/relfunc.c
    + added FoxPro compatible functions:
         Between( <xValue>, <xMinVal>, <xMaxVal> ) -> <lBetween>
         InList( <xValue>, <xItem1> [, <xItemN,...>] ) -> <lExists>
2016-01-09 20:09:09 +01:00
Przemysław Czerpak
d46b6b8916 2016-01-09 02:17 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbgzio/gzio.c
    ! fixed license text in file header - by mistake I committed wrong one,
      thanks to Tamas TEVESZ for information
2016-01-09 02:17:17 +01:00
Przemysław Czerpak
9e3fe580b5 2016-01-08 12:13 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbfoxpro/hbfoxpro.ch
    + added new PP rules suggested by Jeff Stone for THIS., .NULL. and CD

  * contrib/hbfoxpro/hbfoxpro.hbx
  * contrib/hbfoxpro/misc.prg
  * contrib/hbfoxpro/miscfunc.c
    + added new functions Id(), Program() and LineNo()
    + added SYS( 1 ), SYS( 11 ), SYS( 2003 )
    ! fixed SYS( 10 ) to return date as character string
2016-01-08 12:13:52 +01:00
Pritpal Bedi
aeb2a15261 2016-01-07 12:16 UTC-0800 Pritpal Bedi (bedipritpal/at/hotmail.com)
* contrib/gtwvg/wvgcore.c
  * contrib/gtwvg/wvgcuig.c
    ! Fixed ( again ) Wvt_DrawImage() and Wvg_Image() where images were not
	   being rendered correctly if the height of image is greater than
	   width of the image. The behavior is only affected when <bDoNotScale>
	   is set to be TRUE. Thanks Sergy for reporting and providing
	   code to debug.
2016-01-07 12:23:52 -08:00
Przemysław Czerpak
cd1baed369 2016-01-04 23:55 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbgzio/gzio.c
    * pacified warning
2016-01-04 23:55:43 +01:00
Przemysław Czerpak
92941d1bf9 2016-01-04 22:57 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbplist.txt
    + added HBGZIO library
2016-01-04 22:57:30 +01:00
Przemysław Czerpak
ad865dde3e 2016-01-04 22:54 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
+ contrib/hbgzio/gzio.c
  + contrib/hbgzio/hbgzio.hbc
  + contrib/hbgzio/hbgzio.hbp
  + contrib/hbgzio/hbgzio.hbx
    + added new Harbour File IO driver for GZIP compressed streams.
      It redirects files with "gz:" and "gz[0-9]:" prefixes and can be
      used with hb_vf*() functions and transfer RDDs like SDF or DELIM,
      i.e.
            REQUEST HB_GZIO
            USE test
            COPY TO gz:test.txt.gz DELIMITED WITH TAB
      or:
            REQUEST HB_GZIO, HB_MEMIO
            hb_vfCopy( "file.txt", "gz9:mem:file.txt.gz" )
            USE test
            APPEND FROM "gz:mem:file.txt.gz"
            hb_vfErase( "mem:file.txt.gz" )
      or:
            REQUEST HB_GZIO
            FUNCTION GZIP( cFile )
            RETURN hb_vfCopy( cFile, "GZ:" + cFile + ".gz" )

      Have a fun with new toy in a new year ;)
2016-01-04 22:54:05 +01:00
Pritpal Bedi
b29e6acfc3 2016-01-03 09:24 UTC-0800 Pritpal Bedi (bedipritpal/at/hotmail.com)
* contrib/gtwvg/wvgcore.c
  * contrib/gtwvg/wvgcuig.c
    ! Fixed Wvt_DrawImage() and Wvg_Image() where images were not
	   being rendered correctly if the height of image is greater than
	   width of the image. The behavior is only affected when <bDoNotScale>
	   is set to be TRUE. Thanks Sergy for reporting and providing
	   code to debug.
2016-01-03 09:31:49 -08:00
Przemysław Czerpak
6383f993e9 2015-12-14 14:05 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/utils/hbnetio/hbnetio.hbp
  * utils/hbmk2/Makefile
  * utils/hbmk2/hbmk2.hbp
    ! fixed build process without MT support: HB_MT=no
2015-12-14 14:05:13 +01:00
Przemysław Czerpak
cbbba78f09 2015-12-09 23:15 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbssl/ssl_sock.c
    + recognize "ssl" item in hash array socket filter as alternative to
      "ctx" and "key"
2015-12-09 23:15:05 +01:00
Przemysław Czerpak
d087133e36 2015-12-04 22:56 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiosrv.c
    ! fixed typo in previous modification
2015-12-04 22:56:17 +01:00
Przemysław Czerpak
9625679001 2015-12-03 22:08 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiosrv.c
    ! fixed wrongly set error code when last stream is closed.
      It was minor problem invisible for client PRG code without any
      side effects.
    * lock stream mutex a little bit earlier to avoid problems with
      future code extensions - i.e. streams closed asynchronously by
      other server threads

  * contrib/hbnetio/netiocli.c
    * allow to send data to currently registered stream.
      Now if server stream function sends some data to stream before it
      returns then this data is not dropped be client but saved and later
      can be accessed by netio_GetData() function
2015-12-03 22:08:08 +01:00
Przemysław Czerpak
380760672d 2015-12-03 12:26 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbstack.h
  * src/vm/estack.c
    + added new C function:
         HB_ISIZ hb_stackBaseSymbolOffset( PHB_SYMB pSymbol );
      it returns offset of pSymbol function frame on HVM stack or -1
      if function/procedure pointed by pSymbol is not called.

  * contrib/hbnetio/readme.txt
  * contrib/hbnetio/netiosrv.c
  * contrib/hbnetio/hbnetio.hbx
    + added new server side function:
         netio_ServedConnection() -> <pConnectionSocket>
      It returns connection served by netio_Server() in current thread and
      can be used inside executed RPC functions to access <pConnectionSocket>
2015-12-03 12:26:07 +01:00
Przemysław Czerpak
b66470b9a5 2015-10-21 19:26 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbfoxpro/hbfoxpro.hbx
  * contrib/hbfoxpro/occurs.prg
    + added FoxPro compatible At() function with 3-rd <nOccurrence>
      parameter:
            fox_At( <cSubstr>, <cString>, <nOccurrence> ) -> <nPos>

  * contrib/hbfoxpro/hbfoxpro.ch
    + added PP rule for At() with FoxPro like 3 parameters,
      please remember that such At() extension is not compatible with
      xHarbour one so do not include hbcompat.ch or xhb.ch - they
      redefines At() with 3 or more parameters to xHarbour compatible
      function: hb_At()
2015-10-21 19:26:38 +02:00
Przemysław Czerpak
62f2ca6ee6 2015-10-13 13:16 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiocli.c
    * strip connection parameters (server name, port, password,...) from
      second parameter of hb_vfRename(), hb_vfLink() and hb_vfSymLink()
      functions redirected to HBNETIO if it's the same as in the first
      parameter.
      Now it's possible to use above functions with path containing connection
      parameters in second argument. Please only remember that both parameters
      have to point to the same server in above functions. If not then DOS
      error 2 is set.
      In case of hb_vfCopy() the parameters can point to different servers
      so it's possible to copy files between different HBNETIO servers or
      even different Harbour File IO redirectors.
2015-10-13 13:16:06 +02:00
Przemysław Czerpak
6458e3a963 2015-09-30 10:55 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
  * src/vm/hvm.c
    + added internal PRG function to test number of HVM threads and stacks
         __vmCountThreads( [ @<nStacks> ], [ @<nThreads> ] ) -> <nThreads>

  * src/rtl/filesys.c
  * contrib/gtqtc/gtqtc1.cpp
  * contrib/gtwvg/gtwvgd.c
  * contrib/gtwvg/wvgcore.c
  * contrib/hbamf/amfdec.c
  * contrib/xhb/fparse.c
  * contrib/xhb/hbserv.c
  * contrib/xhb/hbxml.c
    * cleaned ;; usage in C code
2015-09-30 10:55:41 +02:00
Przemysław Czerpak
7c0914cd43 2015-09-25 11:41 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
    ! removed unnecessary HB_EXPORT attribute

  * contrib/hbwin/oleuuid.c
    ! added missing HB_EXPORT attrinute for OpenWatcom builds

  * contrib/hbcomio/comio.c
  * contrib/hbpipeio/pipeio.c
  * contrib/hbtcpio/tcpio.c
  * src/rtl/hbsockhb.c
    ! cleaned integer types and casting
2015-09-25 11:41:09 +02:00
Przemysław Czerpak
004399c75d 2015-09-24 22:14 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbcom.c
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/gtpca/gtpca.c
  * src/rtl/gtstd/gtstd.c
  * src/rtl/gttrm/gttrm.c
    * added workaround for bug in some Linux kernels (i.e.
      3.13.0-64-generic Ubuntu) in which select() unconditionally
      accepts terminal device for reading if c_cc[ VMIN ] = 0
      It's very serious problem, i.e. in GTTRM no input is possible
      in such kernels without this workaround.

  * src/rtl/dirscan.prg
    * modified hb_DirScan() and hb_DirRemoveAll() to work with Harbour
      File IO API (hb_vf*() functions)
    + added new PRG function:
         hb_FileDelete( <cFileMask> [, <cAttr> ] ) -> <lResult>
      this function removes files which match given <cFileMask>
      (it may contain path) and returns .T. if at least one file
      was deleted. Optional <cAttr> parameter can be used to include
      system ("S") and hidden ("H") files. If <cAttr> contains "R"
      letter then before deleting READONLY attribute is removed from
      files (it's necessary to remove files with READONLY attribute
      in systems like DOS, MS-Windows or OS2). This function uses
      Harbour File IO API (hb_vf*() functions)
    * remove READONLY attribute from files in hb_DirRemoveAll()

 * include/harbour.hbx
    + added hb_DirRemoveAll() and hb_FileDelete()

  * contrib/hbct/files.c
    ! do not allow to remove empty directories by FileDelete() function
      even if user explicitly sets directory attribute - CT3 compatible fix.
    ! remove READONLY attribute before deleting READONLY files if 2-nd
      parameter of FileDelete() contains READONLY bit

  * src/rtl/filesys.c
    * formatting

  * ChangeLog.txt
    ! typo
2015-09-24 22:14:14 +02:00
Tamas TEVESZ
026408a2bb 2015-09-17 10:58 UTC+0200 Tamas TEVESZ (ice extreme.hu)
* contrib/gtqtc/gtqtc.hbp
    + Qt5 include path on FreeBSD
2015-09-17 10:58:50 +02:00
Przemysław Czerpak
dc326d6f4a 2015-09-09 23:16 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbhpdf/3rd/libhpdf/hpdfimac.c
    ! removed obsolete memory.h

  * contrib/hbhpdf/3rd/libhpdf/libhpdf.dif
    * rediffed

  * include/hbdate.h
    * enabled reentrant safe version of localtime() and gmtime() in all
      OpenWatcom builds
2015-09-09 23:16:24 +02:00
Przemysław Czerpak
38af08e97d 2015-09-02 15:54 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
  * src/rtl/filebuf.c
    * added new C function hb_fileLoadData() - it can be used to load data
      from already opened regular files and streams

  * include/harbour.hbx
  * src/rtl/vfile.c
    + added new PRG function:
         hb_vfLoad( <cFileName>, [ <nMaxSize> ] ) -> <cFileBody> | NIL

  * src/vm/runner.c
    * use hb_fileLoadData()

  * contrib/hbwin/win_bmp.c
    * use hb_fileLoad()
2015-09-02 15:54:08 +02:00
Przemysław Czerpak
118ab63dc9 2015-09-01 22:16 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbplist.txt
    + added hbpipeio to list of contrib libraries
2015-09-01 22:16:18 +02:00
Przemysław Czerpak
00246c9048 2015-09-01 17:05 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
  * src/rtl/filebufd.c
    * moved HB_FILE_ERR_UNSUPPORTED macro to header file

  * include/hbapifs.h
  * src/rtl/filebuf.c
    * added new C function hb_fileLoad() - it can be used to load data
      from regular files and streams

  * src/rtl/memofile.c
    * modified [hb_]Memo{Read|Writ}() to work with streams, i.e. now
      this code works:

         REQUEST HB_PIPEIO
         cDir := hb_memoRead( "|ls -la" )
         ? upper( cDir )

      or:

         cData := hb_memoRead( "|xz -c data.gz" )
         ? hb_memoWrit( "data2.txt", cData )
         ? hb_memoWrit( "|sh -c 'xz -9 -e > data2.xz'", cData )

  * src/rtl/fscopy.c
    * removed not used in current code unix header files
2015-09-01 17:05:30 +02:00
Przemysław Czerpak
310e2134bd 2015-08-31 23:48 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbnetio/netiosrv.c
    ! removed unnecessary casting (c&p typo)
2015-08-31 23:48:08 +02:00
Przemysław Czerpak
db3fe4b8d4 2015-08-31 23:43 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbmzip/mzip.c
  * contrib/hbnetio/netiocli.c
  * contrib/hbnetio/netiosrv.c
  * contrib/hbwin/win_prn2.c
  * contrib/xhb/xhbcopyf.c
  * src/rdd/dbffpt/dbffpt1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/delim1.c
  * src/rdd/hbsix/sxcompr.c
  * src/rdd/sdf1.c
  * src/rtl/copyfile.c
  * src/rtl/filesys.c
  * src/rtl/fscopy.c
  * src/rtl/hbmd5.c
  * src/rtl/memofile.c
  * src/rtl/philes.c
  * src/rtl/vfile.c
    * updated for possible -1 result returned by hb_fileRead()/hb_fileWrite()
2015-08-31 23:43:30 +02:00
Przemysław Czerpak
f90e0be4fd 2015-08-31 13:26 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsockhb.c
    + added new PRG function:
         hb_socketAutoShutdown( hSocket, [ lNewSetting ] ) --> lPrevSetting
      it allows to enable/disable automatic shutdown when connected socket
      is closed.

  * contrib/hbpipeio/pipeio.c
    * removed trailing space

  * contrib/hbpipeio/tests/test.prg
    * cleaned the code and messages
2015-08-31 13:26:26 +02:00
Przemysław Czerpak
2606996d15 2015-08-31 12:45 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtcpio/tcpio.c
  * contrib/hbpipeio/pipeio.c
    * modified hb_fileWrite() to return 0 in case of timeout or unblocking
      write and -1 on other errors.

  * contrib/hbcomio/comio.c
    * modified hb_fileRead() to return 0 in case of timeout or unblocking
      read and -1 on other errors.

  * src/rtl/filesys.c
    * return -1 instead of 0 from hb_fsPipeWrite() in MS-Windows and OS2
      builds if PIPE state cannot be read

  * ChangeLog.txt
    ! c&p typo in previous ChangeLog entry
2015-08-31 12:45:47 +02:00
Przemysław Czerpak
ce68e02a15 2015-08-27 17:49 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
+ contrib/hbpipeio/hbpipeio.hbc
  + contrib/hbpipeio/hbpipeio.hbp
  + contrib/hbpipeio/hbpipeio.hbx
  + contrib/hbpipeio/pipeio.c
  + contrib/hbpipeio/tests/hbmk.hbm
  + contrib/hbpipeio/tests/test.prg
    + added PIPEIO new Harbour FILE IO redirector
      As file name prefix "PIPE:" and "|" can be used.
      This redirector executes command passed as file name with its
      stdin and stdout handles redirected to Harbour FILE handle, i.e.:

         REQUEST HB_PIPEIO
         pFile := hb_vfOpen( "PIPE:ls -la", 0 )
         ? upper( hb_vfReadLen( pFile, 10000 ) )
         hb_vfClose( pFile )

      PIPEIO has also two new PRG functions:
         hb_vfFromPipes( [<hReads>], [<hWrite>], [<hProcess>], ;
                         [<nTimeout>] -> <pHandle> | NIL
         hb_vfOpenProcess( <cCommand>, [<nMode>=FO_READ], ;
                           [<nTimeout>], [<lDetach>] ) -> <pHandle> | NIL
      The first one can be used to create Harbour file redirector for
      process created by hb_processOpen(), i.e.:
            hProcess := hb_processOpen( cCommand, @hStdIn, @hStdOut )
            pFile := hb_vfFromPipes( hStdOut, hStdIn, hProcess, 5000 )
      The second one can be used directly:
            pFile := hb_vfFromPipes( cCommand, FO_READWRITE, 5000 )
      Usually process which reads from its stdin works until its input
      stream is closed by other process. If user wants to close input
      stream for command redirected to Harbour PIPE FILE IO then he can
      execute:
         hb_vfConfig( pFile, HB_VF_SHUTDOWN, FO_WRITE )
      Look at the test code for real life example. It opens 'gzip' command
      in FO_READWRITE mode, sends data to gzip, reads gzip output and finally
      decompress it using hb_ZUncompress() to check if result is equal to
      initial data.
2015-08-27 17:49:32 +02:00
Przemysław Czerpak
1be1c7da9c 2015-08-27 16:46 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/fileio.ch
    + added few HB_VF_* macros for hb_vfConfig() settings

  * contrib/hbcomio/comio.c
  * contrib/hbtcpio/tcpio.c
    + implemented HB_VF_TIMEOUT, HB_VF_PORT, HB_VF_SHUTDOWN, HB_VF_RDHANDLE
      and HB_VF_WRHANDLE hb_vfConfig() settings, i.e. now
         hb_vfConfig( pFile, HB_VF_TIMEOUT, <nTimeOut> ) -> <nTimeOut>
      can be used to change default timeout in TCP and COM Harbour File IO
      handles.
2015-08-27 16:46:12 +02:00
Przemysław Czerpak
41b8ecb6c7 2015-08-26 15:51 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbsocket.h
  * src/rtl/hbsockhb.c
    + added socket filters to standard socket API.
      At C level hb_sockex*() function with PHB_SOCKEX handler can be
      used to operate on socket filters. At PRG level standard hb_socket*()
      functions can be used.
      The following things has been changed in PRG hb_socket*() functions:
      hb_socketErorrString() can accept <pSocket> as 1-st or 2-nd parameter
      and redirect call to socket filter errorStr() method.
      hb_socketClose() executes automatically shutdown() for connected
      sockets - it is important in windows only where without explicit
      call to shutdown() before close transmitted data can be lost.
      hb_socketSend() and hb_socketRecv() can be redirected to filter
      streams if filter set such redirection. If filter does not redirect
      them then they operate on raw sockets. If hb_socketSend() is
      redirected then sent data is flushed automatically.
      The following new PRG functions has been added:
      Add/replace socket filter:
         hb_socketSetFilter( <pSocket>, [<cFilterName>], [<hParams>] )
               -> <pSocket> | NIL
            <cFilterName> is filter name, It's possible to set many filters
            in single hb_socketSetFilter() call separating filter names
            with "|" character, i.e.:
               pSock := hb_socketSetFilter( pSock, "ZSOCK|BFSOCK", hParams )
            <hParams> is hash array with initialization parameters used by
            given socket filter. The core implementation recognize the
            following settings:
               "readahead" - numeric value with size of read ahead buffer
               "flush" - numeric value with auto flush parameter (for more
                         information look at hb_socketAutoFlush() below)
               "redir" - logical value which can be use to enable/disable
                         hb_socketSend() and hb_socketRecv() redirection
                         to filter stream.
      Return filter name used by socket:
         hb_socketGetFilter( <pSocket> ) -> <cFilterName>
      Read from socket stream:
         hb_socketRead( <pSocket>, @<cData>, [<nLen> = Len( cData )],
                        [<nTimeout> = FOREVER] ) -> <nRead>
         this function is similar to hb_socketRecv() but is always
         redirected to socket stream filters.
      Write to socket stream:
         hb_socketWrite( <pSocket>, <cData>, [<nLen> = Len( cData )],
                         [<nTimeout> = FOREVER] ) -> <nWritten>
         this function is similar to hb_socketSend() but it is always
         redirected to socket stream filters. Written data is not flushed
         by default and it should be flushed explicitly by hb_socketFlush().
         Automatic flushing can be enabled by hb_socketAutoFlush() function.
      Flush data written to socket:
         hb_socketFlush( <pSocket>, [<nTimeout> = FOREVER], [<lSync>] )
                     -> <nNotFlushed>
            <lSync> parameter is logical value which can be used to force
            special synchronization method in some filters. Usually users
            do not have to use it in normal code.
      Enable/disable automatic flushing of written data.
         hb_socketAutoFlush( <pSocket>, [ <nTimeout> ] ) -> <nTimeout>
            <nTimeout> is timeout for automatic flush operation on written
            data in milliseconds. <nTimeout> = -1 means wait forever and
            <nTimeout> = 0 disables auto flush.
         automatic flushing can help in adopting existing code anyhow it
         may strongly reduce the performance in some filters, i.e.
         compression filters like ZSOCK have to add special data to the
         stream after each flush operation so it's suggested to call
         flush explicitly when we want to force delivering written data
         to the peer.

  * include/hbznet.h
  * src/rtl/hbznet.c
    + added ZNET socket filter - compressed and encrypted streams are
      compatible with hb_znet*() streams. The old hb_znet*() interface
      is obsolete for pure socket communication and if not used as
      hb_inet*() filter then should be replaced by hb_sockex*() in
      user programs.
      ZNET socket filter can be created by new PRG functions:
         hb_socketNewZNet( <pSocket>, [<cPass>], [<nCompressionLevel>], ;
                           [<nStrategy>] ) -> <pSocket> | NIL
      or by standard socket API with "ZNET" as filter name.
      ZNET filter recognize the following settings in initialization
      hash array:
         "key" or "pass" - string with encryption password
         "zlib" - numeric compression level (HB_ZLIB_COMPRESSION_*)
         "zs" - numeric ZLIB compression strategy (HB_ZLIB_STRATEGY_*)
      ZNET filter always disables any other filters and operates on raw
      socket.
      Please remember that it's optional module. If programmer does not
      use hb_socketNewZNet() explicitly and prefers using hb_socketNew()
      then he should force linking this module by REQUEST hb_socketNewZNet

    + added fSync parameter to hb_znetFlush()
      [INCOMPATIBLE]

  * src/rtl/hbinet.c
    * call flush filter function before socket is closed

  * src/rtl/Makefile
  + src/rtl/hbzsock.c
    + added ZSOCK socket filter - ZLIB and GZIP compression for socket
      streams.
      ZSOCK socket filter can be created by new PRG functions:
         hb_socketNewZSock( <pSocket>, [<hParams>] ) -> <pSocket> | NIL
      or by standard socket API with "ZSOCK" as filter name.
      Programmers using hb_socketNew() can force linking this module by
         REQUEST hb_socketNewZSock
      ZSOCK filter can be used with other filters.
      ZSOCK filter recognize the following settings in initialization
      hash array:
         "zlib" - numeric compression level (HB_ZLIB_COMPRESSION_*)
         "zs" - numeric ZLIB compression strategy (HB_ZLIB_STRATEGY_*)
         "zin" - logical value which allow to enable/disable ZLIB
                 decompression on input stream (default)
         "gzin" - logical value which allow to enable/disable GZIP
                  decompression on input stream - it's possible to
                  enable both ZLIB and GZIP decompression together
                  so both streams can be decompress
         "zout" - logical value which allow to enable/disable ZLIB
                  compression on output stream (default)
         "gzout" - logical value which allow to enable/disable GZIP
                   compression on output stream - if both "zout" and
                   "gzout" are enabled GZIP compression is used.

  * src/rtl/Makefile
  + src/rtl/hbbfsock.c
    + added BFSOCK socket filter - BlowFish input and output stream
      encryption in CTR mode.
      BFSOCK socket filter can be created by new PRG functions:
         hb_socketNewBFSock( <pSocket>, [<hParams>] ) -> <pSocket> | NIL
      or by standard socket API with "BFSOCK" as filter name.
      Programmers using hb_socketNew() can force linking this module by
         REQUEST hb_socketNewBFSock
      BFSOCK filter can be used with other filters, i.e. with ZSOCK.
      Please only remember that good encryption algorithms have to
      generate data which cannot be compressed so using "BFSOCK|ZSOCK"
      only wastes resources and correct filter order is "ZSOCK|BFSOCK".
      BFSOCK filter recognize the following settings in initialization
      hash array:
         "key" or "pass" - string with encryption password
         "iv" - string with initialization vector for CTR mode

  * contrib/hbssl/hbssl.ch
  * contrib/hbssl/hbssl.h
  * contrib/hbssl/hbssl.hbm
  * contrib/hbssl/hbssl.hbx
  * contrib/hbssl/ssl.c
  * contrib/hbssl/ssl_inet.c
  + contrib/hbssl/ssl_sock.c
    + added SSL socket filter
      SSL socket filter can be created by new PRG functions:
         hb_socketNewSSL_connect( <pSocket>, <pSSL> [, <nTimeout> ] )
               -> <pSocketSSL> | NIL
         hb_socketNewSSL_accept( <pSocket>, <pSSL> [, <nTimeout> ] )
               -> <pSocketSSL> | NIL
      or by standard socket API with "SSL" as filter name.
      Programmers using hb_socketNew() can force linking this module by
         REQUEST hb_socketNewSSL_connect
      or
         REQUEST hb_socketNewSSL_accept
      SSL filter always disables any other filters and operates on raw
      socket.
      SSL filter recognize the following settings in initialization hash
      array:
         "ctx" or "key" - pointer SSL item <pSSL>
         "timeout" - timeout (numeric)
         "client" - logical value indicating client mode (SSL_connect())
         "server" - logical value indicating server mode (SSL_accept())

  * contrib/hbssl/tests/inetssl.prg
    ! cleaned typo in local function name

  * contrib/hbnetio/netiocli.c
  * contrib/hbnetio/netiosrv.c
    * use new Harbour extended socket API (hb_sockex*()) instead of
      raw sockets and hb_znet*()

  * contrib/hbtcpio/tcpio.c
    * use new Harbour extended socket API (hb_sockex*()) instead of
      raw sockets
    + implemented hb_fileFlush()
2015-08-26 15:51:35 +02:00
Przemysław Czerpak
482e06d0fd 2015-08-17 15:29 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbsocket.h
  * src/rtl/hbsocket.c
  * src/rtl/hbsockhb.c
    + added new C functions:
         hb_socketAutoInit( void );
         hb_socketSetError( int iError );

  * contrib/hbtcpio/tcpio.c
    ! initialize socket subsystem - it fixes issue #105
2015-08-17 15:29:43 +02:00