Commit Graph

50 Commits

Author SHA1 Message Date
Przemysław Czerpak
c89f63ee0b 2014-03-06 19:07 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/set.c
    ! fixed freed memory access exploited by interactions between
      modifications in last few years.
    ! do not try to remove trailing ^Z char reading from the stream
      if FS_END seek reports 0.
    ! if possible open printer/alternate/extra output in write only mode
      to avoid problem on devices where read access is not available.

  * src/rtl/langapi.c
    * keep EN lang active after deinitialization

  * src/rtl/filesys.c
    ! fixed condition for file time refresh in *nix builds
    ! fixed file time setting in *nix builds

  * include/hbapifs.h
  * src/rtl/Makefile
  * src/rtl/filebuf.c
  + src/rtl/filebufd.c
    * renamed hb_fileRegister2() to hb_fileRegisterFull()
    + added new function hb_fileRegisterPart() which simplifies writing
      small FILE IO redirectors.

  * contrib/hbmemio/memio.c
  * contrib/hbnetio/netiocli.c
    * use hb_fileRegisterFull()

  * contrib/hbplist.txt
  + contrib/hbtcpio/hbtcpio.hbc
  + contrib/hbtcpio/hbtcpio.hbp
  + contrib/hbtcpio/hbtcpio.hbx
  + contrib/hbtcpio/tcpio.c
    + added new Harbour FILE IO redirector.
      It recognizes and process names with "tcp:" prefix, in form like:
         tcp:<host>:<port>[:<timeout>]
      It can be used in different subsystems using Harbour FILE IO and
      stream read/write operations, i.e.
         REQUEST HB_TCPIO
         SET PRINTER TO tcp:192.168.0.110:9100
      can be used to connect to network printers using TCP direct printing.

  * utils/hbmk2/po/hbmk2.pt_BR.po
    ! fixed typo in translation
2014-03-06 19:07:49 +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
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
5b5183359f 2014-02-01 11:00 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbwince.h
    * added WINBASEAPI in declaration of redefined functions
    ; NOTE: if recent MSVC releases support above functions then they
            should be covered by some macros

  * src/rdd/dbfcdx/dbfcdx1.c
    * minor cleanup: EDBF_CREATE -> EDBF_CREATE_INDEX
2014-02-01 11:00:22 +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
c5d3403da5 2014-01-29 09:38 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
  * src/vm/dynsym.c
    + added PRG function which verifies internal global symbol table
      structure:
         __dynsVerify() -> <nError> (0 => no errors detected)

  * include/harbour.hbx
  * src/vm/hvm.c
    + added PRG function which verifies internal module symbol tables:
         __vmModulesVerify() -> <acBrokenSymbols>

  * include/harbour.hbx
  * src/vm/classes.c
    + added PRG function which verifies given class internal structure:
         __clsVerify( <nClassH> ) -> <acBrokenMessages> | NIL
2014-01-29 09:38:38 +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
9ee34a0cb9 2014-01-10 11:07 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbatomic.h
    * for GCC >= 4.1 (except MinGW) use build-in GCC __sync_*() atomic
      functions instead of our x86 assembler macros. This can be disabled
      by HB_USE_GCCATOMIC_OFF macro. Please make tests on different
      platforms. If you find some platforms on which compile or link
      errors bound with __sync_*() functions are reported then please
      send information about used platform and GCC version. GCC 4.1 or
      higher should support it during compilation but not all runtime
      libraries have implementation for __sync_*() functions. Low level
      implementations were added later for different platforms. In such
      case adding -DHB_USE_GCCATOMIC_OFF to HB_USER_CFLAGS should be
      sufficient workaround but I want to document such cases so please
      send information about it to devel list.
    ; This modification fixes problem with x86_64 CentOS and RH builds
      were default GCC does not respect volatile in our ASM macros and
      "optimize" them breaking our memory barriers.
2014-01-10 11:07:11 +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
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
8443c9754b 2013-12-20 00:24 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbexpra.c
    ! fixed silly copy and past typo
2013-12-20 00:24:04 +01:00
Przemysław Czerpak
601e995d15 2013-12-19 08:44 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbexpra.c
    + added warning for undeclared get variables, it can be enabled by -w2
      (it also fixes compilation problem after last commit - this modification
      was work in progress committed partially by mistake)
2013-12-19 08:44:48 +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
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
Mindaugas Kavaliauskas
4f0e0e0347 Revert "2013-10-24 15:34 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)" 2013-10-24 23:40:10 +03:00
Mindaugas Kavaliauskas
5c3ea08121 2013-10-24 15:34 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* include/dbinfo.ch
  * include/hbrdddbf.h
  * src/rdd/dbf1.c
    + added default codepage setting RDDI_CODEPAGE for DBF RDD (and all
      inherited RDDs). This helps to do an easy migration of application
      to unicode, using existing dbf files:
         HB_CDPSELECT("UTF8EX")
         RDDINFO(RDDI_CODEPAGE, <codepage_used_in_dbf>)
2013-10-24 15:35:53 +03:00
Viktor Szakáts
6752936b57 use web url instead of obfuscated email 2013-10-09 20:08:24 +02:00
Przemysław Czerpak
344bedfe68 2013-09-24 16:59 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbvm.h
  * src/vm/hvm.c
    * added new 7-th parameter fOverLoad to hb_vmRegisterSymbols() function.
      When it's TRUE then new public function symbols overload existing ones.

  * src/vm/runner.c
    ! use new fOverLoad parameter of hb_vmRegisterSymbols() function to
      overload existing functions (HB_HRB_BIND_OVERLOAD) instead of making
      local modifications in global symbol table. It fixes memory corruption
      when the same HRB module is reloaded with HB_HRB_BIND_OVERLOAD parameter.
      This was very old bug which has existed from the beginning when I added
      support for HB_HRB_BIND_* flags.
2013-09-24 16:59:52 +02:00
Przemysław Czerpak
42f22be280 2013-08-14 18:10 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc.hbp
    * do not use system QT directories in android builds

  * include/hbgtinfo.ch
  * contrib/gtqtc/gtqtc1.cpp
    + added new font attributte HB_GTI_FONTA_NOSTRETCH
      It disables font stretching in some GTs like QTC.
      On some platforms (i.e. MacOSX) font stretching
      does not work correctly (at least in my tests) so
      if someone wants to use GTQTC on MACs then I suggest
      to set:
         hb_gtInfo( HB_GTI_FONTATTRIBUTE, ;
               hb_bitOr( HB_GTI_FONTATTRIBUTE ), HB_GTI_FONTA_NOSTRETCH )
    ! do not use QPainter::RasterOp_SourceXorDestination to display
      cursor and selection in MacOSX builds.
      RasterOp operations are not supported in MacOSX.
2013-08-14 18:10:21 +02:00
Przemysław Czerpak
e8c7f2067d 2013-07-18 02:24 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbdate.h
  * src/common/hbdate.c
    + added new C functions:
         double hb_timeLocalToUTC( double dTimeStamp );
         long hb_timeStampUTCOffset( int iYear, int iMonth, int iDay,
                                     int iHour, int iMinutes, int iSeconds );
    ; warning: some C RTLs may not correctly detect Summer time for all past
               dates in few countries.

  * include/harbour.hbx
  * src/rtl/dateshb.c
    + added new PRG function:
         hb_TSToUTC( <tsLocal> ) -> <tsUTC>
    + added support for optional timestamp parameter in hb_UTCOffset()
      function, current syntax is:
         hb_UTCOffset( [ <tsLocal> ] ) -> <nSeconds>

  * contrib/hbtip/hbtip.hbx
  * contrib/hbtip/utils.c
    + added new PRG function:
         tip_FileNameMimeType( <cFileName> ) -> <cMimeType>
      It's a wrapper to old C function s_findFileMimeType()
      TODO: replace few independent mimetype functions by single one.
    ! fixed tip_FileMimeType() to not call hb_fsClose() or any other FS
      function with wrong handler.
    ! fixed tip_TimeStamp() using hb_timeStampUTCOffset() instead of
      hb_timeUTCOffset() to correctly calculate UTC offset for dates
      different then current one.
    ! decode time passed as numeric second() value in 2-nd parameter of
      tip_TimeStamp() only when the 1-st one contains pure date value.
2013-07-18 02:24:58 +02:00
Przemysław Czerpak
ab3f6109c1 2013-07-03 12:14 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapidbg.h
  * src/debug/dbgentry.c
  * src/debug/debugger.prg
    + added new C function hb_dbgGetModuleName() - it returns module name
      used to register module in HVM. In current version it only strips
      path part though in the future it may use some more advanced code
      which allow to debug modules with the same name but different paths
      in single application and such extension will be local to core debug
      code if upper level debugger uses hb_dbgGetModuleName()
    + added new PRG function __DBGGETMODULENAME() - it's wrapper to
      hb_dbgGetModuleName()
    + added new PRG function __DBGMODULEMATCH()
    ! use __DBGMODULEMATCH() instead of hb_FileMatch() and strip_path()
    ! eliminated strip_path() from PRG code and use hb_dbgGetModuleName()
      in C code in places where it's necessary
    ! replaced few strcmp() used to compare module names with
      FILENAME_EQUAL()
    ; above modification may fix few potential problem with breakpoints
      in debugger on some platforms if user uses different paths for
      debugger and compilers.
    ! eliminated hack with memvar/field name copy in watch points,
      it also fixes memory leak when fields are used in watch points.
    % replaced few DO CASE with SWITCH
2013-07-03 12:14:50 +02:00
Przemysław Czerpak
d606073d0c 2013-06-19 14:31 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapigt.h
  * include/hbgtcore.h
    * moved macros to manipulate Harbour extended key codes from
      hbgtcore.h to hbapigt.h
2013-06-19 14:31:24 +02:00
Przemysław Czerpak
adfcf7ad04 2013-06-17 17:02 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbgtinfo.ch
    + added new hb_gtInfo() action: HB_GTI_RESIZESTEP
      It enables/disables window resize progression.

  * contrib/gtqtc/gtqtc.h
  * contrib/gtqtc/gtqtc1.cpp
    + added optional code to enable XLib MT mode by XInitThreads()
    + added support for HB_GTI_RESIZESTEP and disabled window resize
      progression in default settings - with some XWindow managers
      it may cause bad side effects.
    * do not center window in SETMODE() if console window dimensions
      (rows and cols) are not changed.

  * contrib/hbhpdf/3rd/libhpdf/hpdfimac.c
    * modified isAligned() to not generate warnings on platforms were
      'unsigned long' is not large enough to hold pointer (Win64).
      It should pacify warnings reported by Maurizio.

  * contrib/hbhpdf/3rd/libhpdf/libhpdf.dif
    * rediffed with:
         hbmk2 ../../../../bin/3rdpatch.hb -rediff
2013-06-17 17:02:31 +02:00
Przemysław Czerpak
e888c83011 2013-06-11 20:26 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbpp.h
  * src/pp/ppcore.c
    * replaced compile time macro HB_PP_MULTILINE_STRINGS with
      runtime #pragma setting, i.e.:
         #paragma multilinestrings = on

  * src/vm/hashes.c
    % resize index during hash arrays sorting, i.e. when strict order
      is disabled or user call HB_HSORT() function
    ! fixed typo in timestamp value comparison - in practice only date
      part was significant
    ! fixed new code I added recently for resorting hash arrays with
      strict order
2013-06-11 20:26:16 +02:00
Przemysław Czerpak
3713e7046e 2013-05-23 18:16 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapi.h
  * src/vm/hvm.c
    * keep natural internal order in newly created hashes
2013-05-23 18:16:04 +02:00
Przemysław Czerpak
1062ed644b 2013-05-10 08:28 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbgtinfo.ch
    + added HB_GTI_REDRAWMAX
      It sets maximum number of unchanged neighboring chars in redrawn
      line. It may help to optimize screen updates in some GTs.

  * include/hbgtcore.h
  * src/rtl/hbgtcore.c
  * contrib/hbct/ctwin.c
    + respect HB_GTI_REDRAWMAX in default REDRAWDIFF() GT methods.

  * contrib/gtqtc/gtqtc1.cpp
    ! added protection against font resizing for degenerated console
      window size.
    % set HB_GTI_REDRAWMAX to 1

  * src/rtl/gtwvt/gtwvt.c
    ! translate screen base mouse wheel cords to window based ones.
    % set HB_GTI_REDRAWMAX to 1

  * src/rtl/gttrm/gttrm.c
    % set HB_GTI_REDRAWMAX to 8

  * src/rtl/gtwin/gtwin.c
    % set HB_GTI_REDRAWMAX to 4
2013-05-10 08:28:56 +02:00
Przemysław Czerpak
628ca90377 2013-04-26 14:31 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
+ contrib/xhb/xhbinkey.ch
  + contrib/xhb/xhbkey.c
  * contrib/xhb/xhb.hbp
  * contrib/xhb/xhb.hbx
    + added support for xHarbour compatible extended Inkey() key codes
      This functionality works with GTs which can operate on Harbour
      extended key codes which are translated at runtime to xHarbour
      extended keys (HB_EXT_INKEY).
    + added new PRG function:
         xhb_Inkey( [ <nDelay> ] [ , <nKeyMask> ] ) -> <nKey>
      which works like Inkey() but returns xHarbour extended key codes.
    + added new PRG function:
         xhb_KeyTrans( <nExtKey> ) -> <nXhbKey>
      which translates Harbour extended key code to xHarbour one.

  * include/hbapigt.h
  * src/rtl/inkeyapi.c
    + added new C function:
         int hb_inkeyKeyVal( int iKey );
      It extract key/character code from Harbour extended key code

  * include/harbour.hbx
  * src/rtl/inkey.c
    + added new PRG function:
         hb_keyVal( <nExtKey> ) -> <nKeyVal> | <nCharVal>
2013-04-26 14:31:33 +02:00
Przemysław Czerpak
b9a30a4577 2013-03-05 11:53 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapi.h
  * include/hbapigt.h
  * include/hbvm.h
  * src/rtl/inkeyapi.c
  * src/vm/cmdarg.c
  * src/vm/hvm.c
    * replaced hb_cmdargProcessVM() with hb_cmdargProcess() and removed
      unused for long time custom user cancel key functionality.
    - removed dummy hb_inkeySetCancelKeys() C function.
    - removed not used for long time HVM C functions and macros:
         hb_vmFlagEnabled(), hb_vmFlagSet(), hb_vmFlagClear(),
         HB_VMFLAG_HARBOUR, HB_VMFLAG_ARRSTR

  * include/hbgtinfo.ch
    + added new HB_GTI_* actions:
         HB_GTI_WINHANDLE   - Get console window low level handle
         HB_GTI_MOUSEPOS_XY - Get mouse position in pixels
         HB_GTI_DISPIMAGE   - Display image with given name

  * include/hbapigt.h
  * src/rtl/inkeyapi.c
    + added new C function: int hb_inkeyKeyMod( int iKey )
    + added code for translation from extended key codes to
      standard Clipper ones

  * include/harbour.hbx
  * src/rtl/inkey.c
    + added new PRG function hb_keyMod( <nExtKey> ) -> <nModifiers>
      It extract keyboard modifiers (HB_KF_*) from extended key code.

  * include/hbgtcore.h
  * src/rtl/hbgtcore.c
    + added new macros for generating extended key codes with keyboard
      modifiers for ASCII and UNICODE characters
    % strip repeated extended key codes for mouse move
    ! use standard key codes in extended ALERT() GT method

  * include/inkey.ch
    + added key modifiers/flags for extended key codes: HB_KF_*
    + added extended key codes: HB_KX_*
    - removed unused HB_K_MULTICODE macro

  * src/rtl/gttrm/gttrm.c
    * replaced old keyboard and mouse code with new one using
      extended key codes for keyboard and mouse
    + added support for keyboard modifiers in GPM events
    + added support for keyboard modifiers in terminal mouse events

  * src/rtl/gtwvt/gtwvt.h
  * src/rtl/gtwvt/gtwvt.c
    ! invert selection region in WinCE builds
    ! fixed selection in fullscreen or maximized modes with margins
    * do not add EOL to one line selections
    + added support for painting box drawing characters.
      This mode can be enabled by:
         hb_gtInfo( HB_GTI_FONTATTRIBUTE, HB_GTI_FONTA_DRAWBOX )
      and it causes that GTWVT draws all box characters as pixmap
      regardles of used font.
      So far this functionality existed only in GTXWC.
    + added support for HB_GTI_FONTA_FIXMETRIC and HB_GTI_FONTA_CLRBKG
      So far this functionality existed only in GTXWC.
    + added support for HB_GTI_WINHANDLE
    ! do not add EOL at the end of one line selection

  * src/rtl/gtxwc/gtxwc.h
  * src/rtl/gtxwc/gtxwc.c
    * replaced old keyboard and mouse code with new one using
      extended key codes for keyboard and mouse
    * renamed HB_GTXWC_* box drawing macros to HB_BOXCH_* ones
    * do not add EOL to one line selections
    ! fixed few keypad keycodes
    * use cursor blinking rate HB_GTI_CURSORBLINKRATE for whole
      show/hide period not only half of them. If someone use this
      GTI action in his code then now he should double passed
      value. [incompatible]
    ! fixed return value for HB_GTI_SETPOS_ROWCOL
    * few minor cleanups

  * tests/gtkeys.prg
    * replaced old keyboard and mouse code with new one using
      extended key codes for keyboard and mouse
    + added description for some key codes
    + added some initial HB_GTI_* actions
    + change cursor size by K_INS
    + display terminal size after HB_K_RESIZE
    + display mouse position after mouse key codes
    ! display all characters created by hb_keyChar()
    ! fixed formatting

  * src/rdd/dbf1.c
    * added more general protection against GPF in not fully
      initialized workarea
2013-04-22 15:38:35 +02:00
Przemysław Czerpak
877ddb4a06 2013-04-18 14:58 UTC+0200 Przemysław Czerpak (druzus/at/poczta.onet.pl)
* .gitignore
    ! removed executable file permission

  * package/mpkg_src.sh
    ! added executable file permission

  * contrib/hbct/screen2.c
    % use STR API for parameters instead of using local conversions

  * contrib/hbct/token1.c
    % small simplification

  * contrib/hbnetio/netiosrv.c
    + respect timeout parameter also in send operation

  * contrib/make.hb
    ! moved project name normalization and directory verification to
      AddProject() function. It fixes HB_BUILD_ADDONS envvar functionality.

  * doc/xhb-diff.txt
    + added new paragraph: DECLARATION AND INITIALIZATION OF VARIABLES

  * src/rtl/hbcom.c
    * added 3-rd parameter to TIOCEXCL and TIOCNXCL ioctl() codes
      to pacify valgrind warnings

  * include/hbexpra.c
    ! fixed compilation with HB_USE_ENUM_FUNCTIONS macro

  * include/hbapicls.h
  * include/hbcompdf.h
  * include/hbexpra.c
  * src/compiler/harbour.y
  * src/vm/classes.c
    + added support for :__enumIsFirst() iterator message. It's opposite
      to recently added :__enumIsLast()
    + added support for overloading :__enumIsFirst() and :__enumIsLast()
      functionality in custom FOR EACH implementations

  * include/hbcompdf.h
  * include/hbexpra.c
  * src/compiler/harbour.y
    + added support for reverting :__enumIsFirst() and :__enumIsLast()
      messages in descendant FOR EACH loops. It's disabled now by 2 #if 0
      but I think it should be discussed. Should we keep it enable it?
      The answer is not trivial when FOR EACH is used to iterate some
      objects. In general such names are confusing.

  * src/compiler/harbour.yyc
  * src/compiler/harbour.yyh
    * regenerated using bison 2.5

  * tests/foreach.prg
    + added :__enumIsFirst() to test code

  * tests/foreach2.prg
    ! typo in comment
2013-04-18 14:58:40 +02:00
Viktor Szakats
cfb1dfd8fa 2013-04-08 00:52 UTC+0200 Viktor Szakats (harbour syenar.net)
* bin/check.hb
    + will now check for missing copyright/license message
      in source files (except for tests and files shorter
      than 20 lines)

  * contrib/hbamf/amf.h
  * contrib/hbamf/amfstdio.c
  * contrib/hbamf/hbamfobj.prg
  * contrib/hbamf/hbcls.c
  * contrib/hbgt/strasint.c
  * contrib/hbhttpd/core.prg
  * contrib/hbhttpd/widgets.prg
  * contrib/hbmisc/hbedit.prg
  * contrib/hbmisc/hbeditc.c
  * contrib/hbmisc/stringsx.c
  * contrib/hbmisc/udpds.prg
  * contrib/hbnf/aredit.prg
  * contrib/hbnf/easter.prg
  * contrib/hbnf/mouse1.prg
  * contrib/xhb/hbsyslog.c
  * extras/guestbk/_cgi.prg
  * extras/guestbk/_inifile.prg
  * extras/guestbk/cgi.ch
  * extras/hbdroid/hvminit.c
  * extras/hbdroid/msginfo.c
  * extras/hbusb/core.c
  * extras/hbvpdf/hbvpdf.ch
    + added copyright/license headers where missing

  * tests/inifiles.prg
    + synced with another copy

  * include/hbclass.ch
  * src/compiler/expropta.c
  * src/compiler/exproptb.c
  * src/macro/macroa.c
  * src/macro/macrob.c
    * minor cleanup
2013-04-08 00:53:37 +02:00
Viktor Szakats
2ad4417ea6 2013-04-06 12:04 UTC+0200 Viktor Szakats (harbour syenar.net)
* bin/check.hb
  * tests/fixcase.hb
    ! do not strip newlines from comments

  * include/hbrddnsx.h
    ! fixcase fixups
2013-04-06 12:05:38 +02:00
Viktor Szakats
9d173b0a7b minor cleanups in comments 2013-04-05 16:35:37 +02:00
Viktor Szakats
b414d00664 2013-04-05 16:24 UTC+0200 Viktor Szakats (harbour syenar.net)
* bin/check.hb
  * tests/fixcase.hb
    + some exceptions for casing
    * deleted one file exception (a readme)

  * contrib/gtwvg/gtwvgd.c
  * contrib/gtwvg/wvgcore.c
  * contrib/gtwvg/wvgcuig.c
  * contrib/gtwvg/wvgwin.c
  * contrib/gtwvg/wvgwing.c
  * contrib/hbamf/amfenc.c
  * contrib/hbbz2/core.c
  * contrib/hbct/ctcom1.c
  * contrib/hbct/ctcom2.c
  * contrib/hbct/ctnet.c
  * contrib/hbct/ctstr.c
  * contrib/hbct/ctwfunc.c
  * contrib/hbct/ctwin.c
  * contrib/hbct/disk.c
  * contrib/hbct/finan.c
  * contrib/hbct/screen2.c
  * contrib/hbct/token1.c
  * contrib/hbct/token2.c
  * contrib/hbct/trig.c
  * contrib/hbgd/gdwrp.c
  * contrib/hbhpdf/image.c
  * contrib/hbmisc/irm.c
  * contrib/hbnetio/netiocli.c
  * contrib/hbnetio/netiosrv.c
  * contrib/hbnetio/readme.txt
  * contrib/hbnf/dispc.c
  * contrib/hbnf/ftattr.c
  * contrib/hbnf/origin.c
  * contrib/hbssl/ssl.c
  * contrib/hbwin/wapi_commctrl.c
  * contrib/hbwin/wapi_winuser.c
  * contrib/hbwin/win_dlg.c
  * contrib/hbwin/win_prn2.c
  * contrib/hbwin/win_shell.c
  * contrib/rddads/ads1.c
  * contrib/rddads/adsfunc.c
  * contrib/xhb/fparse.c
  * contrib/xhb/hbcrypt.c
  * contrib/xhb/hbserv.c
  * contrib/xhb/hbxml.c
  * contrib/xhb/txtline.c
  * contrib/xhb/xhbarr.c
  * contrib/xhb/xhbarrex.c
  * extras/gfspell/spellc.c
  * extras/gtwvw/gtwvwd.c
  * extras/gtwvw/hbgtwvw.h
  * extras/gtwvw/wvwcheck.c
  * extras/gtwvw/wvwdraw.c
  * extras/gtwvw/wvwedit.c
  * extras/gtwvw/wvwfuncs.c
  * extras/gtwvw/wvwmenu.c
  * extras/gtwvw/wvwpush.c
  * extras/gtwvw/wvwstbar.c
  * extras/gtwvw/wvwtbar.c
  * include/hbapi.h
  * include/hbapirdd.h
  * include/hbdefs.h
  * include/hbexpra.c
  * include/hbexprb.c
  * include/hbpcode.h
  * include/hbpp.h
  * include/hbrddcdx.h
  * include/hbrddnsx.h
  * src/codepage/cp_utf8.c
  * src/common/expropt1.c
  * src/common/expropt2.c
  * src/compiler/cmdcheck.c
  * src/compiler/genc.c
  * src/compiler/gencc.c
  * src/compiler/hbfunchk.c
  * src/compiler/hbopt.c
  * src/pp/pplib.c
  * src/rdd/dbcmd.c
  * src/rdd/dbf1.c
  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/hbsix/sxcompr.c
  * src/rdd/hbsix/sxord.c
  * src/rdd/hsx/hsx.c
  * src/rtl/chruni.c
  * src/rtl/cputime.c
  * src/rtl/dateshb.c
  * src/rtl/filehb.c
  * src/rtl/filesys.c
  * src/rtl/gtsln/gtsln.c
  * src/rtl/gtwvt/gtwvt.c
  * src/rtl/gtxwc/gtxwc.c
  * src/rtl/hbgtcore.c
  * src/rtl/hbinet.c
  * src/rtl/hblpphb.c
  * src/rtl/hbmd5.c
  * src/rtl/hbproces.c
  * src/rtl/hbsocket.c
  * src/rtl/hbsockhb.c
  * src/rtl/hbtoken.c
  * src/rtl/hbzlib.c
  * src/rtl/hbzlibgz.c
  * src/rtl/langapi.c
  * src/rtl/mlcfunc.c
  * src/rtl/philes.c
  * src/rtl/soundex.c
  * src/rtl/strzero.c
  * src/rtl/transfrm.c
  * src/vm/arrayshb.c
  * src/vm/classes.c
  * src/vm/dynsym.c
  * src/vm/eval.c
  * src/vm/garbage.c
  * src/vm/hvm.c
  * src/vm/macro.c
  * src/vm/memvars.c
  * src/vm/runner.c
  * src/vm/set.c
  * src/vm/thread.c
    * run tests/fixcase.hb now that it's able to fixup casing
      inside all comments
2013-04-05 16:27:40 +02:00
Viktor Szakats
38310bc781 2013-04-05 02:57 UTC+0200 Viktor Szakats (harbour syenar.net)
* bin/check.hb
    ! fixed to use local implementation instead of hb_DirScan()
      which has known bug of missing extensionless files on win.
      (due to hb_FileMatch() problem)
    + added support to optimize images and uncrustify C source
      before upload (inactive yet)
    + added necessary exceptions now that extensionless files
      properly found
    + checks for filenames without extensions
    + checks for filenames with extensions not in .gitattributes

  * bin/commit.hb
    + show helpful advice when pre-commit hook check fails
    ! fixed to propely pick filenames that result from rename operations (for check)
    ! fixed to not pick filenames of deleted files (for check)

  * config/lang.hb
  * doc/en/lang.txt
  * include/hblang.hbx
  * src/lang/Makefile
  * src/lang/l_zh_tra.c -> src/lang/l_zh.c
  * src/rtl/langcomp.prg
    * Language renamed: zh_tra -> zh (in sync with recently laid rules)
      The 'REQUEST HB_LANG_*' value become INCOMPATIBLE compared
      to previous dev versions

  * src/rtl/cdpdet.prg
    + added 'zh' country code to codepage detection

  * contrib/make.hb
  * contrib/hbplist -> contrib/hbplist.txt
    * renamed to have an extension

  * contrib/hbrun/doc/_GENERATED_ -> contrib/hbrun/doc/_autogen.txt
  * utils/hbmk2/doc/_GENERATED_ -> utils/hbmk2/doc/_autogen.txt
    * renamed to have names fitting naming rules
    + added warning message inside

  - extras/httpsrv/logs/empty
    - deleted unnecessary file with non-compliant filename

  - tests/stripeol.hb
    % deleted, now similar functionality is implemented in bin/check.hb

  * .gitattributes
    ! added missing .log and .ucf

  * contrib/hbtinymt/3rd/tinymt/tinymt.hbp
    ! deleted SVN ID

  * debian/copyright
    ! synced with COPYING.txt

  * debian/postinst
  * debian/postrm
    ! deleted multiple EOL at EOF
2013-04-05 03:02:47 +02:00
Viktor Szakats
f9d38b5ef5 2013-04-03 03:15 UTC+0200 Viktor Szakats (harbour syenar.net)
* bin/check.hb
    ! fix to filename filter (needs large cleanup)

  * config/lang.hb
  * include/hblang.hbx
  * src/lang/Makefile
  * src/rtl/langcomp.prg
  + src/lang/l_pt_br.c
    + added 'pt_br' language
2013-04-03 03:16:49 +02:00
Viktor Szakats
9493097ab2 2013-04-03 00:19 UTC+0200 Viktor Szakats (harbour syenar.net)
* include/hblang.hbx
  * src/lang/Makefile
  * src/rtl/langcomp.prg
  + src/lang/l_es_419.c
    + added 'es_419' - Spanish (Latin America) to Harbour
      core languages
    ! fixed typo in language mapping of 'sr-sp-cyrl' to 'sr_cyr'
    + accept 'zh' for Chinese (Traditional)
2013-04-03 00:22:33 +02:00
Viktor Szakats
b9d69aa3f5 2013-04-02 17:49 UTC+0200 Viktor Szakats (harbour syenar.net)
+ bin/check.hb
    + new source verifier. Able to all documented (and more)
      required text file and filename properties.

  * bin/commit.hb
    + added feature to verify all files to be committed to
      conform with certain naming and text file content rules
    + added some more feedback

  * config/postinst.hb
    + include commit.hb and check.hb in 'install'

  * include/extend.h
  * contrib/hbcairo/paths.c
  * contrib/hbcairo/png.c
  * contrib/hbcairo/util.c
  * contrib/hbtpathy/readme.txt
  * tests/harbour.ini
  * tests/parseins.ini
    ! multiple EOL at EOF

  * contrib/hbhpdf/tests/files/cp932.txt
  * contrib/hbhpdf/tests/files/cp936.txt
  * contrib/hbhpdf/tests/files/elic_jp.txt
    ! line ending spaces
    ! missing EOL at EOF

  * contrib/hbhttpd/tests/tpl/app/account/edit.tpl
  * contrib/hbhttpd/tests/tpl/app/login.tpl
  * contrib/hbhttpd/tests/tpl/app/logout.tpl
  * contrib/hbhttpd/tests/tpl/app/main.tpl
  * contrib/hbhttpd/tests/tpl/app/register.tpl
  * lib/3rd/win/bcc/unicows_license.txt
  * lib/3rd/win/mingw/libunicows_license.txt
    ! missing EOL at EOF

  * COPYING.txt
  * src/rtl/gtcrs/hb-charmap.def
  * tests/big5_gen.prg
    ! tabs

  * extras/gfspell/spell.prg
  * src/rtl/gtwin/gtwin.c
    ! ASCII 127

  * src/codepage/cp_tpl.c
    ! converted to UTF-8 (just guessing what the original CP was)

  * src/pp/hbpp.c
    ! do not generate SVN header in hbverbld.h
    + avoid SVN header string in source as is to miss matched
      in source verifier

  * src/vm/extrap.c
    ! do not generate whitespace at EOL in output

  * tests/lang2po.hb
  * tests/po2lang.hb
    + minor improvements
    ! fixed to generate consistent EOL

  * bin/3rdpatch.hb
    * newline at top deleted

  * extras/hbdoc/hbdoc.hbp
  * extras/hbdoc/hbdoc.prg
  * extras/hbdoc/_tmplates.prg -> extras/hbdoc/_tmplate.prg
  * contrib/hbcairo/tests/lightning.prg -> contrib/hbcairo/tests/lightnin.prg
    ! long filename

  * .gitattributes
  * extras/guestbk/guestbk.prg
  * extras/guestbk/guestbk.txt
  * extras/guestbk/guestbk.htm -> extras/guestbk/guestbk.html
    * deleted .htm file, now all HTML has extension .html
    * .exe references in doc made OS neutral
    ; Can only be used on non-MS-DOS systems, so it's okay
2013-04-02 17:50:36 +02:00
Viktor Szakats
f7bd4b33e7 2013-04-01 01:14 UTC+0200 Viktor Szakats (harbour syenar.net)
* include/harbour.hbx
  * src/rtl/hbi18n2.prg
    + added __i18n_potArrayClean() function that can clean source comments,
      empty translations and able to do transformations on translations via
      use supplied callback.

  * utils/hbmk2/_po_pull.hb
    + do cleansing on .po files pulled from Transifex:
      % strip source comments
      % strip empty translations
      ! strip right/left padding from translated strings
      ! convert multiple spaces to single one in translated strings
    ; This will help keeping the diffs nice and tight and the
      .po files in repo minimal in size

  - utils/hbmk2/po/!
    - deleted another accindental file :( fixed auto-script to be
      more selective.
2013-04-01 01:18:50 +02:00
Viktor Szakats
4f1db3a0b0 2013-03-31 22:52 UTC+0200 Viktor Szakats (harbour syenar.net)
* include/harbour.hbx
  * src/rtl/hbi18n2.prg
    + added __i18n_potArraySort( aTrans ) -> aTrans
      to sort .pot files to a predictable order (of first
      occurrence in file). It helps reducing unnecessarily
      large and unusable diffs when updating .pots and their
      related .po files

  * utils/hbmk2/hbmk2.prg
    * marked some string previously (and intentionally) marked
      as non-translatable, as translatable. One exception less.

  * utils/hbmk2/_po_push.hb
    + sort .pot before saving and pushing to localization service
2013-03-31 22:55:32 +02:00
Viktor Szakats
35300e401d minor doc/comment/test cleanups 2013-03-31 21:35:57 +02:00
Viktor Szakats
11e046e204 2013-03-28 14:51 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.es_PE.po
  * utils/hbmk2/hbmk2.hu_HU.po
  * utils/hbmk2/hbmk2.pt_BR.po
    ! added standard .po meta headers (manually for now)

  * include/hbexpra.c
  * src/compiler/harbour.y
  * src/compiler/harbour.yyc
  * src/vm/classes.c
  * tests/foreach.prg
    + added :__enumIsLast() enum method. It returns .T. for
      last relement, .F. else. It's useful to replace conditions
      like: 'item:__enumIndex() < Len( item:__enumBase() )'

  * tests/lang2po.hb
    + added standard .po meta header
    ; use __enumIsLast()

  * contrib/hbnetio/utils/hbnetio/_console.prg
    ! fixed wrongly initialized management plugin
      (missed to update it when adapted the plugin
      for hbrun last year)

  * contrib/hbnetio/utils/hbnetio/netiomgm.hb
    ! fixed to show proper error instead of RTE, if RPC calls
      fail to return expect values

  * contrib/hbnetio/utils/hbnetio/hbnetio.prg
    * formatting
2013-03-28 15:00:09 +01:00
Viktor Szakats
7ad75f9543 2013-03-27 16:29 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    ! fixed to suppress remaining remaining double outputs at
      startup in hbrun mode, when processing .hbc files

  * contrib/hbexpat/hbexpat.hbc
    ! added usage time detection of locally hosted 3rd party
      dependency to avoid warnings when the locally hosted
      dependency is not present (f.e. because the system
      hosted copy was used at build/install time)
      Experimental. If it works fine, should be applied to
      other similar contribs:
         hbbz2, hbhpdf, hblzf, hbmlzo, hbmxml, hbmzip, hbsqlit3, hbtinymt, hbxdiff, sddsqlt3

  * README.md
    * typographic and misc improvements

  * config/global.mk
    + detect qnx cross-compile tool (via Francesco Perillo)

  * include/hbsetup.h
  * src/common/hbtrace.c
    + added macro HB_OS_QNX_BB10 for BlackBerry 10 subplatform
    + guard some stuff that's not present in BB10 (via Francesco Perillo)

  * contrib/hbtinymt/3rd/tinymt/tinymt.hbc
    ! deleted $Id$
2013-03-27 16:31:11 +01:00
vszakats
9687850865 2013-03-16 02:10 UTC+0100 Viktor Szakats (harbour syenar.net)
* (all files)
    * stripped svn header
    * minor cleanups
    ; use following command to find out the history of files:
       git log
       git log --follow
       git blame
       git annotate
2013-03-16 02:11:42 +01:00
vszakats
a4a357a18b 2013-03-15 11:12 UTC+0100 Viktor Szakats (harbour syenar.net)
* /harbour/* -> /*
    * moved whole Harbour source tree one level up to
      avoid single 'harbour' top dir
2013-03-15 11:13:30 +01:00