Commit Graph

111 Commits

Author SHA1 Message Date
Przemysław Czerpak
624698cd5a 2014-03-04 04:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/set.c
  * src/vm/memvars.c
  * src/rtl/copyfile.c
    ! casting and pacified warnings
2014-03-04 04:03:14 +01:00
Przemysław Czerpak
2c302ae7fa 2014-03-04 01:56 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbchksum.h
  * src/rtl/hbmd5.c
    * changed C function:
         void hb_md5file( HB_FHANDLE hFile, char * digest )
      to
         HB_BOOL hb_md5file( const char * pszFileName, char * digest )
      Warning: [INCOMPATIBLE]

  * src/rtl/copyfile.c
  * src/rtl/fscopy.c
  * src/rtl/hbmd5.c
  * src/rtl/isprint.c
  * src/rtl/memofile.c
    * changed hb_fs*() API to hb_file*() API

  * contrib/hbnetio/netiocli.c
    ! fixed GPF when non attributes are passed to hb_fileDirectory()
      redirected to NETIO - thanks to Rolf for the info about the problem.

  * contrib/hbnetio/netiosrv.c
    ! allow to pass empty directory to hb_fileDirectory() redirected to NETIO
2014-03-04 01:56:15 +01:00
Przemysław Czerpak
bb9d85f0fc 2014-03-04 00:08 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/set.c
    ! added missing FXO_APPEND flag.
      It should fix #54.

  * src/vm/asort.c
    ! respect milliseconds part when timestamp values are compared in ASORT()
      Note: ASORT() does not use exact comparison so when mixed date and
      timestamp values are used only date is significant. Just like in:
         ASort( aValue, {|x, y| x < y } )

  * src/rtl/filebuf.c
    ! fixed C&P typo.
      It should fix problem with SET PRINTER TO reported by Rolf.

  * src/rtl/hbgtcore.c
    ! added missing break after HB_GTI_VERSION
2014-03-04 00:08:07 +01:00
Przemysław Czerpak
0e1377fd01 2014-02-26 23:56 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
    ! use hb_fsReadLarge()/hb_fsWriteLarge() instead of
      hb_fsRead()/hb_fsWrite() for hb_fileRead()/hb_fileWrite()
2014-02-26 23:56:05 +01:00
Przemysław Czerpak
6374c20735 2014-02-26 13:21 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
  * include/harbour.hbx
  * src/rtl/Makefile
  - src/rtl/xfile.c
  + src/rtl/vfile.c
    * renamed PRG functions HB_X*() to HB_VF*()
    * renamed PRG functions hb_vf[GS]etAttr() to hb_vfAttr[GS]et()
    * renamed PRG functions hb_vf[GS]etDateTime() to hb_vfTime[GS]et()

  * include/hbapifs.h
  * src/rtl/filebuf.c
  * src/rtl/fscopy.c
  * contrib/hbmemio/memio.c
  * contrib/hbnetio/netio.h
  * contrib/hbnetio/netiocli.c
  * contrib/hbnetio/netiosrv.c
    * renamed C functions hb_file[GS]etAttr() to hb_fileAttr[GS]et()
    * renamed C functions hb_file[GS]etFileTime() to hb_fileTime[GS]et()

  * contrib/hbnetio/netio.h
  * contrib/hbnetio/netiocli.c
  * contrib/hbnetio/netiosrv.c
    + added support for redirecting hb_vfConfig() to the server.
      NETIO does not use it anyhow NETIO works as full redirector
      to server system and it may be used on the server side.
2014-02-26 13:21:23 +01:00
Przemysław Czerpak
63403f88e4 2014-02-26 00:10 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
  * src/rtl/filebuf.c
    + added new C function hb_filePOpen()

  * include/hbset.h
  * src/vm/set.c
  * src/rtl/console.c
    * changed hb_fs*() API to hb_file*() API in HVM SETs

  * src/vm/memvars.c
    * changed hb_fs*() API to hb_file*() API in .mem files

  * src/vm/runner.c
    * changed hb_fs*() API to hb_file*() API in .hrb files

  * include/hbapifs.h
  * src/rtl/filesys.c
    * renamed hb_fsPOpen() param
2014-02-26 00:10:05 +01:00
Przemysław Czerpak
e4fff1fb61 2014-02-25 19:34 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbhpdf/3rd/libhpdf/hpdffdfj.c
    ! removed executable attribute

  * src/vm/thread.c
    ! fixed typo reported by Viktor - thanks.

  * include/hbapifs.h
  * src/rtl/hbproces.c
  * src/rtl/spfiles.c
  * src/rtl/filesys.c
  * src/rtl/file.c
    * synced parameter file and dir names used in declarations and
      implementations

  * include/hbrddcdx.h
    + added few fields used in ADI files

  * src/codepage/cp_utf8.c
  * src/rtl/cdpapi.c
    ! always return -1, 0 and 1 from hb_cdpcmp() function.
      Workaround for problem exploited by optimized memcmp() function.

  * src/rdd/dbfntx/dbfntx1.c
    ! fixed possible sort problem when optimized memcmp() is used
    * added feew missing const declarations

  * src/rdd/dbfntx/dbfntx1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfntx/dbfntx1.c
    ! fixed OrdWildSeek() to work with optimized memcmp()

  * include/hbapifs.h
  * src/rtl/disksphb.c
    + added new C function:
         double hb_fsDiskSpace( const char * pszPath, HB_USHORT uiType );

  * include/hbapifs.h
  * src/rtl/direct.c
    + added new C function:
         PHB_ITEM hb_fsDirectory( const char * pszDirSpec,
                                  const char * pszAttributes );

  * src/rtl/filesys.c
    ! report EOF in hb_fsEof() also when file position is out of file size
    * updated comment

  * include/hbapifs.h
  * src/rtl/filebuf.c
    + extended Harbour FILE IO API and added support for read/write filepos,
      directory and link operations.
      Read/write filepos support in some systems (i.e. *nixes) needs additional
      emulation code. If it's not necessary then this functionality can be
      disabled by FXO_NOSEEKPOS attribute. Now this attribute is used by our
      RDD code.

  * src/rtl/Makefile
  + src/rtl/xfile.c
    + added PRG interface to Harbour FILE IO API
      The following PRG functions are available for Harbour programmers:
         HB_XEXISTS( <cFileName>, [ @<cDestFileName> ] ) -> <lOK>
         HB_XERASE( <cFileName> ) -> <nResult>
         HB_XRENAME( <cFileSrc>, <cFileDst> ) -> <nResult>
         HB_XCOPYFILE( <cFileSrc>, <cFileDst> ) -> <nResult>
         HB_XDIREXISTS( <cDirName> ) -> <lExists>
         HB_XDIRMAKE( <cDirName> ) -> <nSuccess>
         HB_XDIRREMOVE( <cDirName> ) -> <nSuccess>
         HB_XDIRECTORY( [ <cDirSpec> ], [ <cAttr> ] ) -> <aDirectory>
         HB_XDIRSPACE( <cDirName>, [ <nInfoType> ] ) -> <nFreeSpace>
         HB_XGETATTR( <cFileName>, @<nAttr> ) -> <lOK>
         HB_XSETATTR( <cFileName>,  <nAttr> ) -> <lOK>
         HB_XGETDATETIME( <cFileName>, @<tsDateTime> ) -> <lOK>
         HB_XSETDATETIME( <cFileName>,  <tsDateTime> ) -> <lOK>
         HB_XLINK( <cExistingFileName>, <cNewFileName> ) -> <nSuccess>
         HB_XLINKSYM( <cTargetFileName>, <cNewFileName> ) -> <nSuccess>
         HB_XLINKREAD( <cFileName> ) -> <cDestFileName> | ""
         HB_XOPEN( <cFileName>, [ <nMode> ], [ <nAttr> ] ) -> <pHandle> | NIL
         HB_XCLOSE( <pHandle> ) -> <lOK>
         HB_XLOCK( <pHandle>, <nStart>, <nLen>, [ <nType> ] ) -> <lOK>
         HB_XUNLOCK( <pHandle>, <nStart>, <nLen> ) -> <lOK>
         HB_XLOCKTEST( <pHandle>, <nStart>, <nLen>, [ <nType> ] ) ;
               -> <nPID> | 0 (nolock) | -1 (err)
         HB_XREAD( <pHandle>, @<cBuff>, [ <nToRead> ], [ <nTimeOut> ] ) ;
               -> <nRead>
         HB_XWRITE( <pHandle>, <cBuff>, [ <nToWrite> ], [ <nTimeOut> ] ) ;
               -> <nWritten>
         HB_XREADAT( <pHandle>, @<cBuff>, [ <nToRead> ], [ <nAtOffset> ] ) ;
               -> <nRead>
         HB_XWRITEAT( <pHandle>, <cBuff>, [ <nToWrite> ], [ <nAtOffset> ] ) ;
               -> <nWritten>
         HB_XSEEK( <pHandle>, <nOffset>, [ <nWhence> ] ) -> <nOffset>
         HB_XTRUNC( <pHandle>, [ <nAtOffset> ] ) -> <lOK>
         HB_XSIZE( <pHandle> ) -> <nSize>
         HB_XEOF( <pHandle> ) -> <lEOF>
         HB_XFLUSH( <pHandle>, [ <lDirtyOnly> ] ) -> NIL
         HB_XCOMMIT( <pHandle> ) -> NIL
         HB_XCONFIG( <pHandle>, <nSet>, [ <nParam> ] ) -> <nResult>
         HB_XHANDLE( <pHandle> ) -> <nOsHandle>
         HB_XTEMPFILE( @<cFileName>, [ <cDir> ], [ <cPrefix> ], [ <cExt> ], ;
                       [ <nAttr> ] ) -> <pHandle> | NIL
      Please remember that not all redirectors have to support all of them.
      I.e. MEMIO allows to use directory names in files but does not allow to
      create or remove directories. It also does not support file attributes
      and times in current implementation though it can be easy added.
      HB_XCONFIG() is general function which can be used by redirector
      authors to make some special operations which are specific to given
      device.
      HB_XTEMPFILE() always creates temporary files on local system without
      switching to FILE IO redirector. It's intentional behavior.

  * src/rtl/fscopy.c
    * used Harbour FILE IO API in hb_fsCopy()/HB_FCOPY()
      Please remember that HB_FCOPY() always makes operation using current
      system when HB_XCOPY() may optimize it moving the operation to low
      level subsystem or even other computer i.e.  NETIO can do that  when
      both files are located on the same server.

  * src/rdd/delim1.c
  * src/rdd/sdf1.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/hsx/hsx.c
    * open files with FXO_NOSEEKPOS attribute to inform low level API that
      read/write filepos is not used (disables unnecessary filepos emulation).

  * contrib/hbnetio/netio.h
  * contrib/hbnetio/netiocli.c
  * contrib/hbnetio/netiosrv.c
    + added support for extended Harbour FILE IO API.

  * contrib/hbnetio/utils/hbnetio/netiomgm.hb
    ! renamed "quit" command to "shutdown" as suggested by Rolf.

  * contrib/hbnetio/utils/hbnetio/hbnetio.prg
    * allow to interrupt server process using ESC when run in console window.

  * contrib/hbmemio/memio.c
    + added support for extended Harbour FILE IO API.
      I left two minor TODO notes - maybe someone will try to implement it.
2014-02-25 19:34:33 +01:00
Przemysław Czerpak
5242917e63 2014-02-07 20:23 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/dynsym.c
  * src/rtl/saverest.c
    ! casting
2014-02-07 20:23:24 +01:00
Przemysław Czerpak
db1b307c59 2014-02-06 23:32 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/saverest.c
    ! fixed missing casting in last commit
2014-02-06 23:32:39 +01:00
Przemysław Czerpak
981d96b712 2014-02-06 15:57 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/saverest.c
    ! added protection against passing to small screen
      buffer to RestScreen() function (issue #43)

  * src/rtl/xsavescr.c
    ! save and reuse original screen size in
      __XSaveScreen()/__XRestScreen() functions
2014-02-06 15:57:42 +01:00
Przemysław Czerpak
43a0697b3d 2014-02-01 09:11 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbwince.h
    - removed GetProcAddress() redefinition which forced ANSI
      version not supported in recent Windows Mobile MSVC libraries

  * include/hbwinuni.h
    + added new macros which hide differences between Windows systems
      in GetProcAddress() usage: HB_WINAPI_GETPROCADDRESS() and
      HB_WINAPI_GETPROCADDRESST()
      The second one adds "W" or "A" suffix to function names.
    - removed not longer used HB_WINAPI_FUNCTION_NAME() macro

  * src/vm/dynlibhb.c
    * updated hb_libSymAddr() to work with Unicode version of
      GetProcAddress() in WinCE builds

  * src/vm/maindllp/dllpcode.c
    * updated hb_dllGetProcAddress() to work with Unicode version of
      GetProcAddress() in WinCE builds

  * contrib/hbwin/wapi_winbase.c
    * updated WAPI_GetProcAddress() to work with Unicode version of
      GetProcAddress() in WinCE builds

  * src/common/hbdate.c
  * src/common/hbver.c
  * src/rtl/diskspac.c
  * src/rtl/disksphb.c
  * src/rtl/fslink.c
  * src/rtl/gtwin/gtwin.c
  * src/rtl/gtwvt/gtwvt.c
  * src/vm/extrap.c
  * contrib/gtwvg/gtwvgd.c
  * contrib/gtwvg/wvgwin.c
  * contrib/hbwin/axcore.c
  * contrib/hbwin/mapi.c
  * contrib/hbwin/wapi_shellapi.c
  * contrib/hbwin/wapi_winbase.c
  * contrib/hbwin/wapi_wingdi_font.c
  * contrib/hbwin/win_prn2.c
  * contrib/hbwin/win_prn3.c
  * contrib/hbwin/win_rpc.c
  * extras/gtwvw/gtwvwd.c
    * use HB_WINAPI_GETPROCADDRESS*()
2014-02-01 09:11:23 +01:00
Przemysław Czerpak
ca49407a60 2014-01-30 10:34 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/utils.c
  * src/rtl/gtwvt/gtwvt.c
    * casting to pacify some warnings

  * src/compiler/harbour.y
  * src/compiler/harbour.yyc
  * src/compiler/harbour.yyh
    * changed type of valChar.length from int to HB_SIZE

  * include/hbpp.h
  * src/pp/ppcore.c
    * changed type of last hb_pp_tokenBlockString() parameter
      from int * to HB_SIZE *

  * src/compiler/complex.c
    * removed unnecessary casting
2014-01-30 10:34:22 +01:00
Przemysław Czerpak
f25aaf2935 2014-01-24 23:25 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/3rd/zlib/Makefile
  * src/3rd/zlib/zlib.dif
  * src/3rd/zlib/*
    * updated ZLIB 1.2.7 -> 1.2.8
2014-01-24 23:25:34 +01:00
Przemysław Czerpak
70358ad4b2 2014-01-22 03:30 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbproces.c
    ! do not use SetHandleInformation() in WinCE builds

  * config/wce/global.mk
  * utils/hbmk2/hbmk2.prg
    ! added iphlpapi to WinCE builds
2014-01-22 03:30:28 +01:00
Przemysław Czerpak
6a0dea1cac 2014-01-22 02:44 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
; modifications taken from Viktor's branch.

  * include/hb.ch
    + added hbserial.ch

  * src/rtl/base64c.c
    + HB_BASE64ENCODE(): added second parameter to request
      specific line length for the output. Line length
      should be specified in visible characters (w/o the
      2 EOL bytes). EOL is fixed to CRLF.
         https://en.wikipedia.org/wiki/Base64
    ; probably there exist more optimal implementations
    ; (code slightly modified)
2014-01-22 02:44:56 +01:00
Przemysław Czerpak
96ca3fe470 2014-01-21 20:41 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* Makefile
  * config/*
  * contrib/*
  * doc/*
  * extras/*
  * include/*
  * lib/*
  * package/*
  * src/*
  * tests/*
  * utils/*
    * removed empty lines left after removed '$' + 'Id' + '$' identifiers
2014-01-21 20:41:05 +01:00
Przemysław Czerpak
a767a89aa0 2014-01-21 20:35 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbct/ctnet.c
    ! fixed copy and past typo in previous commit

  * src/rdd/hbsix/sxcompat.prg
    ! fixed sx_Compress() and sx_Decompress() used with arrays

  ; modifications below comes from Viktor fork:

  * include/dbinfo.ch
  * src/rdd/workarea.c
    + added support for new dbInfo() action: DBI_CODEPAGE
      It returns Harbour CP used by current work area.

  * src/common/expropt2.c
    * change instruction order to protect against NULL references
      if we ever add support for dummy lists

  * src/common/hbver.c
    ! CLANG detection

  * src/lang/l_fr.c
  * src/lang/l_hu.c
    * updated translations

  * src/rtl/cdpapihb.c
  * include/harbour.hbx
    + added function hb_cdpExists( <cCDP> ) -> <lExists>
      it returns .T. if the passed codepage is supported
      and linked, .F. otherwise

  * src/rtl/hbrand.c
  * include/harbour.hbx
    + added hb_randStr( <nLen> ) -> <cBytes> which returns a strong
      random stream of bytes of requested length

  * src/vm/hashfunc.c
  * include/harbour.hbx
    + New hash function to easily check for the existence
      of a key and at the same time retrieving its corresponding
      value:
         hb_HGetRef( <hHash>, <xKey>[, <@xValue> ] ) -> <lFound>
      If the key is not found, <xValue> is also reset to NIL.
      Useful to replace hb_HPos()/hb_HValueAt() call pairs and
      associated temp variable, or to avoid multiple hash lookups
      for the cost of one temp variable.

  * src/rtl/copyfile.c
    % use 64KB buffer

  * src/rtl/tget.prg
    ! Get():Insert()/Get():OverStrike() GET freeze fix reworked
      using better solution by Heinz.

  * src/rtl/tgetlist.prg
  * src/rtl/tmenuitm.prg
  * src/rtl/tmenusys.prg
  * src/rtl/tpopup.prg
    ! fixed to precisely verify against multiple expected class names
      previously a custom class named f.e. 'LIST' was accepted in some
      places for LISTBOX
    ! fixed TOFIX where CP/encoding dependent string was
      used to determine whether a menu item is separator
      throughout the lifetime of the menu.

  * src/common/hbdate.c
  * src/common/hbprintf.c
  * src/common/hbtrace.c
  * src/common/hbver.c
  * src/compiler/compi18n.c
  * src/compiler/genc.c
  * src/compiler/gencc.c
  * src/compiler/hbusage.c
  * src/debug/dbgthsh.prg
  * src/debug/dbgtmenu.prg
  * src/debug/debugger.prg
  * src/debug/tbrwtext.prg
  * src/pp/hbpp.c
  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/dbfuncs.prg
  * src/rdd/dbtotal.prg
  * src/rdd/hbsix/sxcompat.prg
  * src/rdd/hbsix/sxini.prg
  * src/rdd/usrrdd/rdds/arrayrdd.prg
  * src/rdd/usrrdd/rdds/hscdx.prg
  * src/rtl/adir.prg
  * src/rtl/arc4.c
  * src/rtl/cdpdet.prg
  * src/rtl/dbedit.prg
  * src/rtl/dircmd.prg
  * src/rtl/diskspac.c
  * src/rtl/disksphb.c
  * src/rtl/errint.c
  * src/rtl/errintlo.c
  * src/rtl/errsys.prg
  * src/rtl/filesys.c
  * src/rtl/fslink.c
  * src/rtl/gtkbstat.c
  * src/rtl/gtwin/gtwin.c
  * src/rtl/gtwvt/gtwvt.c
  * src/rtl/hbbffnc.c
  * src/rtl/hbi18n1.c
  * src/rtl/hbi18n2.prg
  * src/rtl/hbini.prg
  * src/rtl/hbjson.c
  * src/rtl/listbox.prg
  * src/rtl/menusys.prg
  * src/rtl/mtran.c
  * src/rtl/radiogrp.prg
  * src/rtl/tgetlist.prg
  * src/rtl/tmenusys.prg
  * src/rtl/tobject.prg
  * src/rtl/tpersist.prg
  * src/rtl/tpopup.prg
  * src/rtl/tpopuphb.prg
  * src/rtl/treport.prg
  * src/rtl/tscalar.prg
  * src/rtl/ttopbar.prg
  * src/rtl/tget.prg
  * src/rtl/tlabel.prg
  * src/rtl/tmenuitm.prg
  * src/rtl/valtoexp.prg
  * src/rtl/valtype.c
  * src/vm/dlmalloc.c
  * src/vm/fm.c
    ! check module handle returned by GetModuleHandle() in MS-Windows
      builds
    ! use %u for unsigned printf formatting
    * casting, formatting, casing and some modifications in names
    * use #if 0 / #endif to mark commented blocks
    * updated year to 2014
    % use FOR EACH, SWITCH, DO CASE statements
    % use :__enumFirst() / :__enumLast()
    % eliminated some local variables and redundant declarations
    % use hb_defaultValue()
    % use $ operator instead of At() and hb_HHasKey()
    % use hb_ADel() instead of ADel()+ASize()
    * replace some functions with procedures
    * pacified some MSC warnings
    * use hb_StrFormat() for user messages
    * use :: instead of Self:
    * use ANSI date delimiters
2014-01-21 20:35:51 +01:00
Przemysław Czerpak
48166160de 2014-01-20 17:36 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
    * removed not longer valid TODO note

  * contrib/hbmisc/bbabble.c
    ! fixed buffer size calculation (it fixes buffer overflow for small
      strings, i.e. 2 bytes and does not allocate more memory then necessary
      for long ones)

  * contrib/hbct/dattime2.c
    ! fixed CToMonth() and CToDoW() to respect case intensive search for
      strings with national characters
    * variable name synced with Viktor branch

  * contrib/hbct/strswap.c
    ! fixed NULL reference when neither 1-st nor 2-nd parameter is passed
      by reference

  * contrib/hbct/fcopy.prg
    ! fixed source file positioning in case of partial write
    ! use hb_FGetDateTime() / hb_FSetDateTime() instead of
      FileDate()+FileTime() / SetFDaTi()
      It's faster and unlike FileDate() and FileTime() it does
      not leave directory open.
    ! fixed typo (RTE)
    % minor simplification

  * src/rtl/disksphb.c
    ! use dynamic binding for GetDiskFreeSpaceEx() function

  ; modifications below comes from Viktor fork:

  * contrib/hbct/ctwin.c
    % removed unnecessary declaration

  * contrib/hbct/envparam.c
    ! do not call FreeEnvironmentStrings() is it's not necessary

  * contrib/hbodbc/odbc.c
    ! fixed potential buffer overflow in SQLERROR()/SQLGETDIAGREC()

  * contrib/hbnetio/netiosrv.c
    ! fixed possible NULL reference

  * contrib/hbct/ctnet.c
    ! added missing check for result of WinAPI function call

  * contrib/hbct/cttime.prg
    ! SecToTime(): fixed regression from 2007-11-18 13:46 UTC+0100

  * contrib/hbwin/hbolesrv.c
    ! fixed char -> TCHAR after recent unicodification
2014-01-20 17:36:44 +01:00
Przemysław Czerpak
d5899fbc57 2014-01-14 23:36 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/win/global.mk
  * utils/hbmk2/hbmk2.prg
  * src/rtl/hbsocket.c
    + added support for returning NIC MAC address by hb_socketGetIFaces()
      in MS-Windows builds.
      To see physical device addresses bound with active IP interfaces use:
         #include "hbsocket.ch"
         PROCEDURE Main()
            LOCAL aIFace
            FOR EACH aIFace IN hb_socketGetIFaces( , .t. )
               ? "IP:", aIFace[ HB_SOCKET_IFINFO_ADDR ], ;
                 "   MAC:", aIFace[ HB_SOCKET_IFINFO_HWADDR ]
            NEXT
            WAIT
         RETURN
2014-01-14 23:36:33 +01:00
Przemysław Czerpak
72d883c13c 2014-01-14 15:21 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbjson.c
    ! do not indent null used as cross reference replacement if human
      readable format is disabled
2014-01-14 15:21:58 +01:00
Przemysław Czerpak
48d1ffbca3 2014-01-14 13:13 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbjson.c
    ! indent null used as cross reference replacement
    * strip space at the end of line after ":" in human readable output
      of objects with complex values
    * respect _SET_EOL setting in human readable output
    * round decoded number to keep the same final value as compiler

  * src/rtl/hbproces.c
    * minor simplification
2014-01-14 13:13:55 +01:00
Przemysław Czerpak
f790669ed4 2014-01-13 17:00 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
    % small improvement in recent modification
2014-01-13 17:00:14 +01:00
Przemysław Czerpak
30ea1b2921 2014-01-13 14:53 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
    ! process events disabled unintentionally in recent modification,
      thanks to Rolf for the information about the problem.
2014-01-13 14:53:01 +01:00
Przemysław Czerpak
14c3adaa34 2014-01-13 12:40 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbproces.c
    % optimized MS-Windows version of hb_fsProcessRun() when only single
      stream is redirected
2014-01-13 12:40:27 +01:00
Przemysław Czerpak
bbc7e93c7c 2014-01-12 20:28 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
    + added support for setting non blocking mode in MS-Windows builds
      of hb_fsPipeUnblock()

  * src/rtl/hbproces.c
    ! rewritten MS-Windows version of hb_fsProcessRun()
2014-01-12 20:28:53 +01:00
Przemysław Czerpak
f5c19a7872 2014-01-11 14:58 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbproces.c
    ! clear inheritance flag for second side of pipes passed to child process
2014-01-11 14:58:15 +01:00
Przemysław Czerpak
c98c4549e7 2014-01-09 22:51 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/tgetint.prg
    ! force linking HB_PValue
2014-01-09 22:51:12 +01:00
Przemysław Czerpak
9a636d9711 2014-01-09 20:04 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbct/ctcom1.c
    ! fixed typo reported by Rolf

  * src/rtl/hbcom.c
    + added support for 1000000 baudrate setting in *nix builds covered
      by B1000000 macro
2014-01-09 20:04:56 +01:00
Przemysław Czerpak
712b7710bb 2014-01-09 19:15 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/tgetint.prg
    ! allow to accept complex expressions passed as string to __Get()
      function. It fixes the problem I introduced in previous modification.
    ! allow to use __GetA() for hashes

  * src/vm/macro.c
    ! do not ignore additional characters after blank ones looking for
      memvar name. More restrictive behavior is necessary for to fix
      problem with code like: MemVarBlock( "GETLIST [1]" )
2014-01-09 19:15:23 +01:00
Przemysław Czerpak
bcfb15e873 2014-01-07 13:01 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
  * src/rtl/hbdef.c
    + added new PRG function hb_defaultValue(). It's similar to hb_default()
      but it returns expected value instead of setting 1-st parameter.
      New function can be used to replace code like:
         hb_default( @lParam, .T. )
         IF lParam
            [...]
         ENDIF
      with:
         IF hb_defaultValue( lParam, .T. )
            [...]
         ENDIF
      It's useful for two main reasons:
      1) we do not damage original parameter value
      2) if parameter is used only once then it's a little bit faster

  * contrib/hbfship/stroccur.prg
    ! do not generate error when wrong parameters are passed to StrOccurs()
      function (FS compatible behavior)
    ! set default value of 3-rd parameter in StrOccurs() to .T. only if it's not
      passed at all, otherwise set it to .F. (FS compatible behavior)
    % small simplification

  * src/compiler/hbmain.c
    ! extended code which resolves conflicts with multiple static
      functions with the same name compiled from different PRG modules
      into single object file to resolve conflicts also with external
      function calls. It should fix problem reported by Viktor.
2014-01-07 13:01:03 +01:00
Przemysław Czerpak
a5a9141109 2014-01-02 13:11 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/itemseri.c
    ! fixed casting for C++ builds

  * contrib/rddads/ads1.c
    + use AdsIsNull() function instead of AdsIsEmpty() in DBS_ISNULL
      action for ACE library 9.0 or newer.

  * contrib/rddads/adsfunc.c
  * contrib/rddads/rddads.hbx
    + added new PRG function: AdsIsNull()
      For ACE libraries < 9.0 it's redirected to AdsIsEmpty()
2014-01-02 13:11:38 +01:00
Przemysław Czerpak
e34407ad88 2013-12-23 17:11 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapicdp.h
  * include/hbapiitm.h
  * src/rtl/itemseri.c
    * changed 2-nd parameter in hb_itemSerialize() and hb_itemSerializeCP()
      from HB_BOOL fNumSize parameter to int iFlags.
      Previous fNumSize is replaced by HB_SERIALIZE_NUMSIZE flag.
      Warning: declaration is not backward compatible though existing code
               using these functions is binary compatible so it will work
               without recompilation.
    + added support for optional compression of serialized values.
      It can be enabled in C code by HB_SERIALIZE_COMPRESS flag.
    + added support for serialization flags passed in 2-nd parameter to
      hb_Serialize() PRG function.
    ; Info: support for compression and decompression exists only in
            programs which are linked with ZLIB library. Programmers
            which want to use it and so far the haven't used ZLIB functions
            should add to their code REQUEST HB_ZCOMPRESS

  * include/Makefile
  + include/hbserial.ch
    + added header file with Harbour serialization flags.
      Now the following flags are supported:
         HB_SERIALIZE_NUMSIZE
         HB_SERIALIZE_COMPRESS
      I'll add support for HB_SERIALIZE_OBJECTSTRUCT soon.

  * src/rtl/hbi18n1.c
  * contrib/hbnetio/netiocli.c
  * contrib/hbnetio/netiosrv.c
    * updated to use new Harbour serialization flags.
2013-12-23 17:11:36 +01:00
Przemysław Czerpak
67cb55cda8 2013-12-19 09:31 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
+ src/rtl/hbzlibc.c
    ! added file missing in previous commit
2013-12-19 09:31:19 +01:00
Przemysław Czerpak
4ffd5bb726 2013-12-18 21:05 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/Makefile
  + include/hbzlib.h
  * include/hbzlib.ch
  * src/rtl/Makefile
  * src/rtl/hbzlib.c
    + added new C functions weakly bound with ZLIB library:
         HB_SIZE hb_zlibCompressBound( HB_SIZE nLen );
         HB_SIZE hb_zlibUncompressedSize( const char * pSrc, HB_SIZE nLen,
                                          int * piResult );
         int hb_zlibCompress( char * pDst, HB_SIZE * pnDst,
                              const char * pSrc, HB_SIZE nLen, int iLevel );
         int hb_zlibUncompress( char * pDst, HB_SIZE * pnDst,
                                const char * pSrc, HB_SIZE nLen );
      these functions can be used by any C code without forcing ZLIB liking.
      If user usese in his code HB_ZCOMPRESS() function or has
         REQUEST HB_ZCOMPRESS
      then above funcitons are automatically bound with linked ZLIB library.
      Otherwise they return 0 or HB_ZLIB_RES_UNSUPPORTED error.

  * src/rdd/dbf1.c
    * small code simplification
    ; added note about alternative numeric value rounding when
      pure binary integer fields (without decimal places) are
      assigned.

  * src/common/hbdate.c
    ! added missing header for WinCE builds

  * include/hbexpra.c
    * minor simplification

  * src/vm/macro.c
    + added new implementation for MemVarBlock() function. It's much faster
      and does not force dynamic symbol table scanning on each call

  * src/rtl/Makefile
  - src/rtl/memvarbl.prg
    - removed previous implementation of MemVarBlock()

  * src/rtl/tgetint.prg
    ! fixed __Get() and __GetA() to return NIL when cVarName parameter
      is not string (CA-Cl*pper compatible)
    ! fixed __GetA() to return NIL when given aIndex parameter or value
      returned by variable block is not array (CA-Cl*pper compatible)
    ! fixed __Get() and __GetA() to use FieldWBlock() instead of manually
      created macro block which didn't respect workarea
      (CA-Cl*pper compatible)
    ! fixed __GetA() to create SET/GET block instead of access block
      (CA-Cl*pper compatible)
    ! fixed  __Get() and __GetA() to not create simple SET/GET macro
      blocks but always force memvar usage (CA-Cl*pper compatible).
      Please remember that
         &( "DATA" )
      gives code which tries to access field then memvar but
         &( "DATA := .T." )
      gives code which always tries to assign memvar and does not even
      check if "DATA" field exists in current WA. It means that macro
      compiled code like:
         &( "{|_1| iif( _1 == NIL, DATA, DATA := _1 ) }" )
      should not be used because gives higher priority for fields in
      access operation and always assigns memvars, if necessary creating
      them.
    ! allow to dynamically create memvars for get objects in error handler
      (CA-Cl*pper compatible)
    % use much faster MemVarBlock() instead of manually created codeblock
      which activates dynamic symbol table scanning on each call
2013-12-18 21:05:06 +01:00
Przemysław Czerpak
6ff1084cf0 2013-12-06 10:52 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbbfish.h
  * src/rtl/hbbffnc.c
    + added HB_BF_CIPHERBLOCK macro
2013-12-06 10:52:59 +01:00
Przemysław Czerpak
e7021f96ac 2013-12-03 09:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbmxml/3rd/minixml/mxml.hbp
    * updated source package URL

  * contrib/hbmxml/3rd/minixml/minixml.dif
    * rediffed with:
         hbmk2 ../../../../bin/3rdpatch.hb -rediff

  * src/rtl/gtxwc/gtxwc.c
    * minor cleanup
2013-12-03 09:03:49 +01:00
Przemysław Czerpak
271bb4b449 2013-11-27 20:32 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
    ! fixed typo which broke event loop processing - changed state
      was not flushed without incoming events
2013-11-27 20:32:50 +01:00
Przemysław Czerpak
24dedd84e7 2013-11-27 13:06 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
    * minor modification for future usage

  * src/rtl/hbini.prg
    ! fixed RTE on 'include' directive
2013-11-27 13:06:03 +01:00
Przemysław Czerpak
9f93fbbe81 2013-11-22 21:22 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
    * removed some old unused code
    ! restored window oriented message processing
    ! check window position on each HB_GTI_SETPOS_XY request - some
      WMs sends ConfigureNotify with 0,0 cords when window is resized
      overwriting correct values.
    * switched HB_GTI_SETPOS_XY coordinates to NorthWestGravity (upper left
      corner of window with frame and title bar) from StaticGravity (upper
      left  corner of client area). Many thanks to Rolf for the hint which
      allows to translate coordinates from StaticGravity and NorthWestGravity
    ; updated note about StaticGravity/NorthWestGravity
    ; Warning: sometime WMs report wrong size in _NET_FRAME_EXTENTS
               and then HB_GTI_SETPOS_XY returns wrong position two.
               I observed this behavior in different situations and
               different WMs, f.e. in KWIN from Ubuntu, after:
                  MAXIMIZE, FULLSCREEN-ON, FULLSCREEN-OFF
               wrong left and top offsets (3,3) are set which are later
               inherited also by NORMALSIZE window for which HB_GTI_SETPOS_XY
               returns wrong position. _NET_FRAME_EXTENTS begins to report
               correct size after next FULLSCREEN-ON.FULLSCREEN-OFF
2013-11-22 21:22:55 +01:00
Przemysław Czerpak
c793b32741 2013-11-21 12:48 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
    ! updated HB_ULONG->HB_U32 used in pCurrScr.
      I missed them in previous commit.
2013-11-21 12:48:46 +01:00
Przemysław Czerpak
3c0f1583d6 2013-11-19 19:26 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbwin/axcore.c
    ! protection against buffer underflow

  * src/rtl/gtxwc/gtxwc.c
  * src/rtl/gtxwc/gtxwc.h
    % use 32 bit screen buffer items also in 64bit systems
    ! fixed race condition in SetMode()
    ! fixed infinite loop with size updating in fullscreen and
      maximized modes
    ! fixed typo in function name used in HB_TRACE() message
    * use _MOTIF_WM_HINTS to change window decoration and buttons
      instead of _NET_WM_ALLOWED_ACTIONS:_NET_WM_ACTION_CLOSE
      _MOTIF_WM_HINTS is much more portable and looks that most of WMs
      understand it. _NET_WM_ALLOWED_ACTIONS:_NET_WM_ACTION_CLOSE works
      only with few WMs (i.e. with default WM in Ubuntu).
      Many thanks to Rolf for information about this method.
    * use _MOTIF_WM_HINTS to control some other hints (i.e. resizing)
      in WMs which do not make it automatically using information
      form XSetWMNormalHints()
    * removed \r from all debug messages
    ; added note about StaticGravity and NorthWestGravity
    ; TODO:
         1) add margins if window cannot be resized to requested size
            (i.e. in fullscreen or maximized mode)
         2) add support for HB_GTI_RESIZEMODE=HB_GTI_RESIZEMODE_FONT
2013-11-19 19:26:43 +01:00
Przemysław Czerpak
95910ec18b 2013-11-08 17:08 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
    ! missing parenthesis
2013-11-08 17:08:24 +01:00
Przemysław Czerpak
99f49f4faa 2013-11-08 17:06 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtxwc/gtxwc.c
    ! protection agains switching [x] button before window is open
2013-11-08 17:06:03 +01:00
Przemysław Czerpak
3791bab940 2013-11-08 16:50 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc.h
    ! typo in variable type

  * contrib/gtqtc/gtqtc1.cpp
    * minor simplification

  * src/rtl/gtxwc/gtxwc.c
    + added support for disabling close button [x] on HB_GTI_CLOSEMODE==2
      Thanks to Rolf for suggestion removing/adding _NET_WM_ACTION_CLOSE
      to _NET_WM_ALLOWED_ACTIONS property is honored by WMs I tested and
      they hide/show [x] button respectively.
2013-11-08 16:50:59 +01:00
Przemysław Czerpak
fcbfb7a7e8 2013-11-07 15:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc1.cpp
    ! typo in last commit - flags and state were not changed

  * src/rtl/gtxwc/gtxwc.c
    * added XSync() just after XBell() to reduce a little bit potential
      delay
2013-11-07 15:03:17 +01:00
Przemysław Czerpak
548cc2df3a 2013-11-06 23:09 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbgtinfo.ch
    + added new hb_gtInfo() switch: HB_GTI_CLOSEMODE
      It controls close event (i.e. ALT+F4 and/or [x] button in MS-Windows)
      behavior:
         == 0 - terminate application
         >= 1 - generate HB_K_CLOSE
         == 2 - disable close button

  * contrib/gtqtc/gtqtc.h
  * contrib/gtqtc/gtqtc1.cpp
    % optimized setWindowFlags() and setWindowState() to not
      execute show() when flags/state are not changed.
    + added support for HB_GTI_CLOSEMODE
    * changed HB_GTI_CLOSABLE to work line in GTXWC and GTWVT

  * src/rtl/gtxwc/gtxwc.c
    ! fixed setting window position by HB_GTI_SETPOS_XY
    + added support for HB_GTI_CLOSEMODE
    ; note: in GTXWC we cannot easy disable close button so
            HB_GTI_CLOSEMODE==2 will work like 1 until we
            do not find some portable way to inform WM that
            is should hide close button

  * src/rtl/gtwin/gtwin.c
    * added type checking in few HB_GTI_* settings
    + added support for HB_GTI_CLOSEMODE
    ; note: in GTWIN we cannot catch close event so
            HB_GTI_CLOSEMODE==1 works like 2
            In this GT HB_GTI_CLOSABLE also has to work like
            HB_GTI_CLOSEMODE==2

  * src/rtl/gtwvt/gtwvt.h
  * src/rtl/gtwvt/gtwvt.c
    * added range checking in HB_GTI_RESIZEMODE setting
    + added support for HB_GTI_CLOSEMODE
2013-11-06 23:09:59 +01:00
Przemysław Czerpak
4bd5c38361 2013-11-05 23:05 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtwin/gtwin.c
    ! do not disable console control handler when terminal is suspended.
    ! ignore HB_K_BREAK event's caught when terminal was suspended.
2013-11-05 23:05:19 +01:00
Przemysław Czerpak
b33db4fc79 2013-10-30 01:02 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/hbopt.c
    * minor: 1 => HB_TRUE

  * src/rtl/gtwvt/gtwvt.c
    ! clear margins leaving maximized mode
2013-10-30 01:02:38 +01:00
Przemysław Czerpak
f6a3c407e3 2013-10-28 17:18 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/wafunc.c
    * minor cleanup

  * src/rtl/gtos2/gtos2.c
  * src/rtl/gttrm/gttrm.c
    * added protection against wrong SetMode() parameters

  * src/rtl/gtxwc/gtxwc.h
    * changed minim console window size from 3 x 6 to 1 x 1
2013-10-28 17:18:11 +01:00
Przemysław Czerpak
9215bd6600 2013-10-23 12:41 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gttrm/gttrm.c
    * send ST (ESC \) after Linux console palette set sequence (ESC ] P).
      ESC ] is Operating System Command (OSC) which by default should
      be terminated by ESC \ (ST). Some terminals which sets LINUX
      TERM envvar but do not correctly understand Linux console palette
      set sequence may hang waiting for ST. Now ST is sent to avoid such
      situation. Linux console simply ignore ST terminator so nothing
      wrong should happen.
2013-10-23 12:41:04 +02:00