Commit Graph

380 Commits

Author SHA1 Message Date
Przemyslaw Czerpak
710c40b8a7 2012-11-16 09:39 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbapi.h
  * harbour/src/vm/cmdarg.c
    ! fixed to compile without UNICODE macro
    + added new C functions: hb_cmdargBaseProgName(), hb_cmdargPushArgs()
    * marked places which needs TCHAR conversions in MS-Windows builds

  * harbour/src/vm/hvm.c
    * use hb_cmdargPushArgs()

  * harbour/src/rtl/hbproces.c
    ! fixed to compile without UNICODE macro

  * harbour/src/rtl/gtxwc/gtxwc.c
    * modified code to set window title to always operate on UTF8 values
    * use hb_cmdargBaseProgName()

  * harbour/src/rtl/gtwvt/gtwvt.c
  * harbour/contrib/gtwvg/gtwgud.c
  * harbour/contrib/gtwvg/gtwvgd.c
  * harbour/contrib/gtalleg/gtalleg.c
  * harbour/extras/gtwvw/gtwvwd.c
    * use hb_cmdargBaseProgName()

  * harbour/contrib/hbodbc/odbc.c
    ! keep references to parent handles in sub-handles pointer structures
    ; please make real life tests if it works correctly
2012-11-16 08:39:35 +00:00
Viktor Szakats
bc745c3b75 2012-10-07 22:49 UTC+0200 Viktor Szakats (vszakats syenar.net)
* contrib/hbhttpd/readme.txt
  * doc/dirstruc.txt
  * doc/xhb-diff.txt
  * include/hbapi.h
  * INSTALL
  * NEWS
  * src/common/hbver.c
  * src/main/harbour.c
  * src/pp/hbpp.c
  * src/rtl/version.c
  * src/vm/cmdarg.c
    * Avoiding the word "SVN" (use 'source repository',
      'repository' or 'repo' for short)
    * Added new names that don't refer to SVN:
      C level:
      - hb_verRevision()           (was: hb_verSvnID())
      - hb_verChangeLogID()        (was: hb_verSvnChangeLogID())
      - hb_verChangeLogLastEntry() (was: hb_verSvnLastEntry())
      .prg level:
      - HB_VER_REVID built-in macro (was: HB_VER_SVNID)
    ; Old functions/macros will be deleted after next major
      revision, start using the new names until then.
2012-10-07 20:54:02 +00:00
Viktor Szakats
6382cdb0dd 2012-07-20 14:02 UTC+0200 Viktor Szakats (harbour syenar.net)
* include/clipdefs.h
  * include/extend.api
  * include/hbapi.h
  * include/hbdefs.h
    * deprecated HB_LEGACY_TYPES_ON build-time option. Use native
      Harbour types instead. (deprecated using HB_LEGACY_LEVEL4)
    + added HB_PARAMNO Harbour type to denote parameter number.
    ; TOFIX: Use HB_PARAMNO instead of HB_BYTE, HB_USHORT, int, HB_ULONG

  * src/rtl/version.c
    * deprecated HB_BUILDDATE(). use HB_VERSION( HB_VERSION_BUILD_DATE_STR ) instead
    * deprecated HB_PCODEVER(). use HB_VERSION( HB_VERSION_PCODE_VER_STR ) instead
    ; both deprecated using HB_LEGACY_LEVEL4
2012-07-20 12:07:37 +00:00
Przemyslaw Czerpak
8789944a3d 2012-06-11 17:17 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/contrib/hbct/misc1.c
    % optimized XTOC()

  * harbour/doc/xhb-diff.txt
    * added some additional description to the section
      OOP AND CLASS OBJECT/CLASS MESSAGES

  * harbour/doc/Makefile
    * added xhb-diff.txt

  * harbour/include/hbapi.h
  * harbour/src/vm/arrays.c
    + added new C function hb_arrayFromId()

  * harbour/contrib/hbqt/qtcore/hbqt_bind.cpp
    * use hb_arrayFromId() instead of local hb_arrayCreateClone()
      with hb_arrayPushBase() inside
    * do not use hbvmint.h
    ! fixed few bugs in this code. I haven't analyzed this code deeply
      and how it's used so I cannot say it's correct. I only fixed few
      completly wrong places which caused HVM stack corruption, internal
      GC item list corruption or were completly dummy calls.
2012-06-11 15:18:06 +00:00
Viktor Szakats
851b8d63d2 2012-06-10 17:19 UTC+0200 Viktor Szakats (harbour syenar.net)
* include/hbapi.h
    ! minor correction to compatibility macro definition
2012-06-10 15:20:32 +00:00
Viktor Szakats
e43cdcc5cd 2012-06-07 00:23 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/xhb/bkgtsks.c
  * doc/en/hb_api.txt
  * doc/en/hb_apird.txt
  * include/hbapi.h
  * include/hbapicls.h
  * include/hbapierr.h
  * include/hbapirdd.h
  * include/hbcompdf.h
  * include/hbstack.h
  * include/hbtypes.h
  * include/hbvmpub.h
  * src/rdd/nulsys/nulsys.c
  * src/rdd/wafunc.c
  * src/rtl/idle.c
  * src/rtl/type.c
  * src/vm/arrays.c
  * src/vm/classes.c
  * src/vm/estack.c
  * src/vm/garbage.c
  * src/vm/hvm.c
  * src/vm/itemapi.c
  * src/vm/macro.c
  * src/vm/maindllp/dllext.c
  * src/vm/memvars.c
    % HB_ITEM_PTR -> PHB_ITEM
    * HB_ITEM_PTR, PHB_CODEBLOCK and HB_BASEARRAY_PTR marked
      with HB_LEGACY_LEVEL4, latter two were unused
      inside Harbour SVN.

  * contrib/xhb/bkgtsks.c
  * src/vm/dynsym.c
    % two more local pointer type synonyms deleted
2012-06-06 22:26:21 +00:00
Viktor Szakats
d0234ae015 2012-06-06 19:17 UTC+0200 Viktor Szakats (harbour syenar.net)
* include/hbapi.h
    - deleted unused old HB_BASEARRAY_PTR type. INCOMPATIBLE.
      Same as PHB_BASEARRAY, use this instead.

  * include/hbtypes.h
  * src/vm/maindllp/dllext.c
    + added hb_macroTextValue() to hbmaindllp.

  ; TODO: rename all HB_ITEM_PTR to PHB_ITEM and delete former.
          pls shout if there is any difference in usage between 
          these two.
2012-06-06 17:19:43 +00:00
Przemyslaw Czerpak
93d3a46d84 2012-04-20 17:52 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbdefs.h
    * moved HB_WCHAR definition from hbapicdp.h to hbdefs.h

  * harbour/include/hbapicdp.h
  * harbour/include/hbcdpreg.h
  * harbour/src/rtl/cdpapi.c
  * harbour/src/rtl/cdpapihb.c
    + added support for custom sorting redirected from HVM
    + added support for custom character indexes in strings
    + added support for custom character flags (upper, lower, alpha, digit)
    + added support for custom upper/lower conversions
    + added support for CPs using unicode character values instead of
      ASCII ones
    + added new CP functions which respects custom CP settings:
        hb_cdpUpperWC(), hb_cdpTextLen(), hb_cdpTextPos(),
        hb_cdpTextPosEx(), hb_cdpTextGetU16(), hb_cdpTextPutU16(),
        hb_cdpCharEq(), hb_cdpCharCaseEq()
    + added new conversion functions:
        hb_cdpGetUC(), hb_cdpGetWC(), hb_cdpGetU16Ctrl()
    + added macros to detect codepage parameters:
         HB_CDP_ISBINSORT() - codepage uses simple binary sorting
         HB_CDP_ISCUSTOM()  - codepage uses custom string decoding
         HB_CDP_ISCHARIDX() - codepage use character indexes instead
                              of bytes ones
         HB_CDP_ISCHARUNI() - CHR(), ASC() and similar functions operates
                              on Unicode values instead of bytes
         HB_CDP_ISUTF8()    - codepage uses UTF-8 encoding

  * harbour/include/inkey.ch
    - removed HB_INKEY_EXTENDED - it was not used in Harbour
    + added new flag HB_INKEY_EXT - it allows to used different
      event encoding system with automatic translation to
      standard Clipper values. It will be used in the future
      as base for low level GTs code. Now it's possible to
      selectively switch to the new system. New codes are
      unique and do not interacts with Clipper.
    + added HB_INKEY_ALL macro - it's similar to INKEY_ALL but
      enables also GTEVENT keys.

  * harbour/include/hbgtcore.h
  * harbour/src/rtl/hbgtcore.c
    * changed character values in internal screen buffer to unicode.
      Warning: this modification interacts with SAVESCREE()/RESTSCREEN()
               data. Now all GTs uses extended definition. If somene
               has code which needs VGA like screen buffers returned
               by SAVESCREE() then it can be forced by
                  hb_gtInfo( HB_GTI_COMPATBUFFER, .t. )
               Anyhow it will for to use only one CP in output.
    + added new GT methods which operated on HB_WCHAR values
    * modified existing methods using HB_WCHAR/HB_USHORT parameters
      to operate on HB_WCHAR values
    + added codepage conversion code directly to core code so it can
      be eliminated from low level GT drivers which do not need some
      special operations on it.
    + added support for extended inkey codes, they allow to encoded
      unicode values, mouse events with flags, keyboard events with
      modifier flags (shift,alt,ctrl,...), etc.
      Now in low level GT code only unicode key values are used but
      I plan to updated all GTs and switch to new code - it should
      resolve many small problems inheriting with Clipper inkey codes.

  * harbour/include/hbapifs.h
    * moved hb_fsNameConvU16() definition from hbapicdp.h to hbapifs.h

  * harbour/include/hbxvm.h
    - removed comment copied by mistake from GT header file

  * harbour/include/hbwinuni.h
    * changed HB_CHARDUP() and HB_CHARDUPN() macros - now they
      operate on functions which can be used without active HVM.
      In such case ANSI CP is used as source encoding.
    + added new macros: HB_OSSTRDUP() and HB_OSSTRDUP2().
      They make conversions from OS encoding to HVM one.
      They can be used without active HVM and in such case ANSI CP
      is used as destination encoding.

  * harbour/include/hbapi.h
  * harbour/src/vm/cmdarg.c
    + added new function hb_cmdargProgName()
      It returns application name with path or NULL if not set,
      caller must free returned value with hb_xfree() if not NULL.
      The string is in HVM encoding so it does not need any additional
      encodings.
    * modified hb_cmdargString() to return strings in HVM encoding.
    % some small code optimizations
    ; NOTE: parameters passed to MS-WINDOWS GUI programs which use
            WinMain() instead of main() as startup entry are translated
            to ANSICP before they can be accessed by application.
            This can be eliminated though not for console programs
            using where C compiler makes such translation to main()
            parameters.
            in all systems parameters are passed to application
            startup and init functions before programmer can set OS CP.
            This can be resolved by adding:
               INIT PROC CLIPINIT()
                  SET( _SET_CODEPAGE, <userCP> )
                  SET( _SET_OSCODEPAGE, <systemCP> )
               RETURN
            to linked code. INIT procedures called CLIPINIT() are
            executed before any other ones.

  * harbour/include/hbapi.h
  * harbour/src/vm/set.c
    + added new functions for CP converisons which can be used with
      and without active HVM:
         hb_osStrEncode(), hb_osStrEncodeN(),
         hb_osStrDecode(), hb_osStrDecode2(),
         hb_osStrU16Encode(), hb_osStrU16EncodeN(),
         hb_osStrU16Decode(), hb_osStrU16Decode2(),

  * harbour/include/hbvm.h
  * harbour/src/vm/hvm.c
    + added new function hb_vmIsReady() - it's similar to hb_vmActive()
      but it also checks if current thread has active HVM stack.
    * moved hb_cdpReleaseAll() to the end of HVM cleanup code so
      CP conversions are longer active.

  * harbour/include/hbcomp.h
  * harbour/src/compiler/cmdcheck.c
  * harbour/src/compiler/hbusage.c
  * harbour/src/common/expropt2.c
    + added new compiler switch:
         -ku  - strings in user encoding
      Now it informs compiler that strings use custom encoding so some
      optimizations which are byte oriented cannot be used.
      It's possible that in the future we will change above definition
      to sth like: "strings in UTF8 encoding" but now I would like to
      keep more general.

  * harbour/src/vm/macro.c
    * inform macrocompiler about custom CPs using own character indexes
      to disable byte oriented optimizations.

  * harbour/include/hbapigt.h
  * harbour/src/rtl/gtapi.c
  * harbour/src/rtl/inkeyapi.c
    + added HB_B_*_W macros with unicode box character definitions
    + added HB_MBUTTON_* macros
    + added new GT functions: hb_gtHostCP() and hb_gtBoxCP() which
      allows to extract CPs used in translations by GTs.
    + added new function hb_inkeyKeyString() - it converts inkey value
      to corresponding string
    + added new function hb_inkeyKeyStd() - it converts new extended
      key value to standard Clipper one.

  * harbour/include/hbapifs.h
  * harbour/src/common/hbffind.c
    * moved OS codepage translations fully to hb_fsFind*() functions.
      It fixes few problems which existed before, i.e. double CP
      conversions in MS-Windows builds and simplifies upper level code.

  * harbour/src/pp/hbpp.c
  * harbour/src/rtl/direct.c
  * harbour/src/rtl/fssize.c
  * harbour/src/rtl/file.c
  * harbour/contrib/hbct/files.c
    * eliminated not longer necessary CP conversions in code calling
      hb_fsFind*() functions.

  * harbour/src/common/hbgete.c
    * moved OS codepage translations to hb_getenv(), hb_getenv_buffer()
      and hb_setenv() functions. It fixes few problems which existed
      before, i.e. double CP conversions in MS-Windows builds and
      simplifies upper level code.

  * harbour/src/rtl/net.c
  * harbour/src/rtl/gete.c
    * eliminated not longer necessary CP conversions in code calling
      hb_getenv()/hb_setenv() functions.
    ; NOTE: additional parameters in HB_GETENV() and HB_SETENV() which
            disabled CP conversions are not longer supported.
            They were strictly platform dependent and ignored in chosen
            cases (i.e. in MS-Windows UNICODE builds we always have to
            convert strings transferred between HVM and OS. If someone
            needs old functionality for other platform then he should
            temporary disable _SET_OSCODEPAGE.

  * harbour/src/common/hbver.c
  * harbour/src/common/hbfsapi.c
  * harbour/src/rtl/fstemp.c
  * harbour/src/rtl/fslink.c
    * eliminated HB_TCHAR_*() macros

  * harbour/src/common/strwild.c
    + added supprot for custom CPs using own character indexes in:
         hb_strMatchWild(),
         hb_strMatchWildExact(),
         hb_strMatchCaseWildExact()

  * harbour/src/nortl/nortl.c
    + added new dummy function replacement for binaries which are not
      linked with HVM.

  * harbour/src/rtl/filesys.c
    ! fixed double CP conversions in MS-Windows builds of hb_fsCurDirBuff()
    * use hb_vmIsReady() instead of hb_stackId() in file name conversions.
    * use hb_cmdargProgName() in hb_fsBaseDirBuff()

  * harbour/src/rtl/philes.c
    * use hb_cmdargProgName() in HB_PROGNAME() function.

  * harbour/src/rtl/gtcgi/gtcgi.c
  * harbour/src/rtl/gtstd/gtstd.c
  * harbour/src/rtl/gtpca/gtpca.c
  * harbour/src/rtl/gtdos/gtdos.c
  * harbour/src/rtl/gtos2/gtos2.c
  * harbour/src/rtl/gtwin/gtwin.c
  * harbour/src/rtl/gtwvt/gtwvt.h
  * harbour/src/rtl/gtwvt/gtwvt.c
  * harbour/src/rtl/gttrm/gttrm.c
  * harbour/src/rtl/gtcrs/gtcrs.c
  * harbour/src/rtl/gtsln/gtsln.c
  * harbour/src/rtl/gtsln/kbsln.c
  * harbour/src/rtl/gtsln/gtsln.h
  * harbour/src/rtl/gtxwc/gtxwc.h
  * harbour/src/rtl/gtxwc/gtxwc.c
  * harbour/contrib/gtwvg/gtwvg.c
  * harbour/contrib/gtwvg/gtwvg.h
  * harbour/contrib/gtalleg/gtalleg.c
  * harbour/contrib/hbqt/gtqtc/gtqtc.cpp
  * harbour/contrib/hbqt/gtqtc/gtqtc.h
    * updated to work with new unicode GT API
      please make tests with different GTs - I'm not able to test
      all of them, i.e. I do not have any OS2 machine.

  * harbour/src/rtl/box.c
  * harbour/src/rtl/oldbox.c
  * harbour/src/rtl/scroll.c
  * harbour/src/rtl/console.c
    * updated to work with new unicode GT API and
      CPs using custom character indexes

  * harbour/src/rtl/at.c
  * harbour/src/rtl/ati.c
  * harbour/src/rtl/rat.c
  * harbour/src/rtl/len.c
  * harbour/src/rtl/transfrm.c
  * harbour/src/rtl/left.c
  * harbour/src/rtl/right.c
  * harbour/src/rtl/substr.c
  * harbour/src/rtl/stuff.c
  * harbour/src/rtl/padc.c
  * harbour/src/rtl/padl.c
  * harbour/src/rtl/padr.c
    * updated to work with CPs using custom character indexes

  * harbour/src/rtl/chrasc.c
    + added support for HB_CDP_ISCHARUNI() CPs.

  * harbour/src/rtl/mlcfunc.c
    * rewritten from scratch to work with CPs using custom character
      indexes

  * harbour/src/rtl/accept.c
    * updated to work with unicode inkey values and
      CPs using custom character indexes

  * harbour/src/rtl/strmatch.c
    % small optimization

  * harbour/src/rtl/Makefile
  + harbour/src/rtl/chruni.c
    + added new PRG functions which allows to make byte/binary and
      unicode/character operations on strings:
         HB_UCHAR( <nCode> ) -> <cText>
            return string with U+nCode character in HVM CP encoding
         HB_BCHAR( <nCode> ) -> <cText>
            return 1 byte string with <nCode> value
         HB_UCODE( <cText> ) -> <nCode>
            return unicode value of 1-st character (not byte) in given string
         HB_BCODE( <cText> ) -> <nCode>
            return value of 1-st byte in given string
         HB_ULEN( <cText> ) -> <nChars>
            return string length in characters
         HB_BLEN( <cText> ) -> <nBytes>
            return string length in bytes
         HB_UPEEK( <cText>, <n> ) -> <nCode>
            return unicode value of <n>-th character in given string
         HB_BPEEK( <cText>, <n> ) -> <nCode>
            return value of <n>-th byte in given string
         HB_UPOKE( [@]<cText>, <n>, <nVal> ) -> <cText>
            change <n>-th character in given string to unicode <nVal> one and
            return modified text
         HB_BPOKE( [@]<cText>, <n>, <nVal> ) -> <cText>
            change <n>-th byte in given string to <nVal> and return modified
            text

  * harbour/src/rtl/hbdoc.prg
  * harbour/src/rtl/memvarhb.prg
    * use HB_BCHAR() for binary string definitions

  * harbour/src/rtl/hbi18n2.prg
    * use hb_utf8CHR( 0xFEFF ) instead of hardcoded binary sting and
      HB_BLEN() instead of LEN()

  * harbour/src/rtl/inkey.c
    + added new functions:
         HB_KEYCHAR( <nKey> ) -> <cChar>
         HB_KEYSTD( <nExtKey> ) -> <nClipKey>
    ! use HB_INKEY_ALL instead of INKEY_ALL in LASTKEY()

  * harbour/src/rtl/achoice.prg
  * harbour/src/rtl/browse.prg
  * harbour/src/rtl/menuto.prg
  * harbour/src/rtl/tgetlist.prg
  * harbour/src/rtl/teditor.prg
  * harbour/src/rtl/tlabel.prg
  * harbour/src/rtl/tpopup.prg
  * harbour/src/rtl/radiobtn.prg
  * harbour/src/rtl/radiogrp.prg
  * harbour/src/rtl/wait.prg
    * updated to work with unicode inkey() values

  * harbour/src/rtl/listbox.prg
    * use box.ch macros instead of explicit CHR(...) definitions

  * harbour/src/rtl/ttopbar.prg
    * updated to work with different type of CPs

  * harbour/src/rtl/scrollbr.prg
    * formatting

  * harbour/src/rtl/mouse53.c
    * use HB_MBUTTON_* macros instead of local ones

  * harbour/src/codepage/cp_utf8.c
  + harbour/src/codepage/uc16def.c
  + harbour/src/codepage/utf8sort.c
    * replaced UTF8ASC with new CP: UTF8EX
      This CP uses character indexes instead of bytes one
      and operates on unicode characters flags.
      Tables for upper/lower conversions and upper/lower/alpha/digit
      flags were generated automatically from
         http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
      It also uses custom collation rules. It's very simple one
      level sorting based on UTF8 C collation.
      If someone needs some advanced sorting rules, then it's enough
      to create copy of this cp with user custom version of UTF8_cmp()
      and UTF8_cmpi() functions, i.e. they can be redirected to some
      external library like ICU (icu-project.org).

  * harbour/contrib/hbct/ctwin.c
  * harbour/contrib/hbct/ctwin.h
  * harbour/contrib/hbct/ctwfunc.c
    * added support for new unicode GT API

  * harbour/contrib/xhb/xhbfunc.c
    * redirected HB_CMDARGARGV() to HB_PROGNAME()

  * harbour/contrib/hbnf/origin.c
    * redirected FT_ORIGIN() to HB_PROGNAME()

  * harbour/contrib/hbnf/getenvrn.c
    ! windows version of FT_GETE() fully rewritten - it should
      fix well known problems reported to the devel list. Please test.
    % small optimization for other systems

  * harbour/contrib/hbfship/exec.c
    * use hb_cmdargProgName() in EXECNAME()

  + harbour/tests/uc16_gen.prg
    + added code which generates tables with unicode character flags
      from http://www.unicode.org/Public/UNIDATA/UnicodeData.txt.
      harbour/src/codepage/uc16def.c was generated by this code.

  * harbour/tests/inkeytst.prg
  * harbour/tests/wvtext.prg
  * harbour/tests/gtkeys.prg
    * use HB_INKEY_ALL

  * harbour/include/harbour.hbx
  * harbour/include/hbcpage.hbx
  * harbour/include/hblang.hbx
    * regenerated

   ; It was quite big peace of modifications and for sure not everything
     is well tested so please make test and report problems you will find.
   ; This is basic version which introduce to HVM CPs with custom encodings.
     Some contrib code has to be updated to work correctly with it.
     I hope that developers interesting in will make necessary updates.
     I haven't touched GTWVW code at all - sorry but it needs very serious
     work to make it production ready and fix all existing problems.
   ; Special thanks to OTC - this firm sponsored adding basic UTF8 support
     to HVM.
2012-04-20 15:55:44 +00:00
Mindaugas Kavaliauskas
401423620e 2012-01-27 18:25 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* src/vm/hashes.c
  * src/vm/hashfunc.c
    + implemented posibility to use hashes a sorted arays with binary search.

      Implemented HB_BOOL hb_hashScanSoft( pHash, pKey, &nPos ). Function 
      if similar to, but returns nPos even if pKey is not found in pHash.

      Extended HB_HHASKEY( aHash, xKey [, @nPos ] ) --> lFound
      Function optionaly returns position of the item with a largest key 
      smaller or equal to xKey. If xKey is less than all keys in hash, 
      zero position is returned. I.e., 
        aHash := {10=>, 20=>}
        ? HB_HHASKEY( aHash,  5, @nPos ), nPos  //  .F.          0
        ? HB_HHASKEY( aHash, 10, @nPos ), nPos  //  .T.          1
        ? HB_HHASKEY( aHash, 15, @nPos ), nPos  //  .F.          1
        ? HB_HHASKEY( aHash, 20, @nPos ), nPos  //  .T.          2
        ? HB_HHASKEY( aHash, 25, @nPos ), nPos  //  .F.          2
2012-01-27 16:25:55 +00:00
Przemyslaw Czerpak
69bfb809d4 2011-10-10 19:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/src/rtl/cdpapi.c
    + added new string C functions operating on current HVM CP:
         HB_BOOL hb_strIsDigit( const char * szChar );
         HB_BOOL hb_strIsAlpha( const char * szChar );
         HB_BOOL hb_strIsLower( const char * szChar );
         HB_BOOL hb_strIsUpper( const char * szChar );

  * harbour/src/rtl/is.c
    * use hb_strIs*() functions instead of hb_charIs*()

  * harbour/include/hbapi.h
  * harbour/src/vm/set.c
    + added new function to check if OS<->Harbour codepage conversion
      is enabled:
         HB_BOOL hb_osUseCP( void );

  * harbour/src/rtl/filesys.c
    * use hb_osUseCP() function

  * harbour/include/hbapicdp.h
    + added HB_CDP_ISBINSORT(cdp) and HB_CDP_ISBYTESORT(cdp) macros

  * harbour/src/vm/itemapi.c
  * harbour/src/rdd/dbfntx/dbfntx1.c
  * harbour/src/rdd/dbfnsx/dbfnsx1.c
  * harbour/src/rdd/dbfcdx/dbfcdx1.c
  * harbour/contrib/rddsql/sqlmix.c
  * harbour/contrib/rddads/adsx.c
    * use HB_CDP_IS*SORT() macros

  * harbour/src/rdd/dbfcdx/dbfcdx1.c
    % simplified hb_cdxFindBag()

  * harbour/src/rtl/hbascii.c
    ! fixed HB_ASCIIUPPER() and HB_ASCIILOWER() functions: hb_strUpper()
      was wrongly used inside both functions - probably C&P mistake
      [TOMERGE 3.0]

  * harbour/src/rdd/dbf1.c
    * updated comment
2011-10-10 17:50:44 +00:00
Viktor Szakats
2ae90b92ba 2011-09-20 17:12 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
  * src/rtl/hbrandom.c
    + Changed Harbour's core pseudo-random generator from STD C rand()/srand()
      to superior implementation. New implementation fixed MT problems with 
      the standard solution on certain targets (f.e. win/mingw, win/msvc)
      Based on Przemek's patch which is in turn based on algorithm by 
      Steve Park: http://www.cs.wm.edu/~va/software/park/ suggested by me 
      on the list. Further modifications:
         * HB_RANDOMINTMAX() adapted. Checkme, I'm not sure about this.
         * HB_RANDOMSEED() updated.
         + headers cleaned, copyright updated, note added
         + automatic seed defaulting like in previous version (checkme, 
           we may as well drop it, though it will be create incompatibility)
         ; per-thread seed didn't work well for me (even with new engine) 
           so I didn't implement it.
         + added proto for hb_random_seed()
2011-09-22 15:14:21 +00:00
Viktor Szakats
44306c955c 2011-07-17 16:21 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/extend.api
  * include/harbour.hbx
  * include/hbdefs.h
  * include/hbapi.h
  * include/hbvm.h
  * include/hbapigt.h
  * include/clipdefs.h
  - src/pp/pplib3.c
  * src/pp/Makefile
  * src/vm/hvm.c
  * src/rtl/hbtoken.c
  * src/rtl/inkey.c
  * src/rdd/usrrdd/usrrdd.c
  * contrib/hbmysql/hbmysql.hbx
  - contrib/hbmysql/mysqlold.c
  * contrib/hbmysql/mysql.c
  * contrib/hbmysql/hbmysql.hbp
  * contrib/hbmysql/mysql.ch
  * contrib/hbpgsql/hbpgsql.hbx
  * contrib/hbpgsql/postgres.c
  * contrib/hbwin/hbwin.hbp
  * contrib/hbwin/hbwin.hbx
  - contrib/hbwin/legacy.prg
  - contrib/hbwin/legacycd.c
  - contrib/hbwin/legacyco.c
  - contrib/hbwin/legacycp.c
  * contrib/hbodbc/hbodbc.hbx
  - contrib/hbodbc/odbcold.c
  * contrib/hbodbc/odbc.c
  * contrib/hbodbc/hbodbc.hbp
  * contrib/hbtip/utils.c
  * contrib/hbtip/hbtip.hbx
    * deleted things marked with HB_LEGACY_LEVEL3, finishing cleanup
      job started many years ago.
    ; this also means that windows.h and os2.h will no longer be
      included by Harbour headers, HB_OS_WIN_USED is thus ineffective,
      so if someone needs these headers to access system APIs, they
      should be manually included in each source file. Some old
      hacks have also been removed which disabled some Clipper
      compatibility macros/types in compatibility headers (clipdefs.h, *.api),
      if someone uses these alongside windows.h/os2.h inclusion, it will
      be broken, here the strategy is to move to Harbour types and
      Harbour API headers, simply Clipper headers and newer OS headers
      are not compatible.
    ; HB_DONT_DEFINE_BASIC_TYPES is not effective anymore.
    ; INKEY_RAW is no more, use HB_INKEY_RAW instead.
    ; NEXTKEY() hidden parameter extension is disabled. Use HB_KEYNEXT()
      Harbour alternative which has it.
    ; Some legacy PP functions are no more.
    ; hb_vmPushState()/hb_vmPopState() APIs were now permanently deleted.
    ; __STR*() token handling legacy functions are no more, use native HB_TOKEN*()
      ones instead.
    ; WRITEBHEADER in USRRDD is no more, WRITEDBHEADER is the replacement.
    ; hbmysql, hbodbc compatibilty and deprecated functions were deleted
    ; hbwin compatibility functions were deleted. If there is demand, mainly to
      help migrating xhb users, they can be readded to xhb lib by interested
      developers, now deleted code should be changed to fall back to dummies
      on non-Windows builds.
    ; some deprecated hbpgsql functions were deleted
    ; hbtip HB_BASE64() is deleted. Use core HB_BASE64ENCODE() instead.

    ; Anyone affected by above changes has the option to stick with 3.0.x Harbour
      versions or to update their source code according to above instructions
      (or instructions included in past ChangeLog entries)

    ; Some fallouts in Harbour build is possible after these changes
2011-07-17 14:23:26 +00:00
Viktor Szakats
efe1e5b58b 2011-07-17 15:26 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/extend.api
  * include/hbdefs.h
  * include/hbapi.h
  * include/clipdefs.h
  * contrib/hbpost.hbm
  * contrib/hbfimage/hbfimage.hbp
  * config/rules.mk
    - deleted HB_LEGACY_TYPES_OFF macro. it is the default
      in post 3.0.x Harbour versions.
    + added HB_LEGACY_TYPES_ON macro. This should be used when 
      building C code which uses Clipper/Harbour legacy types 
      (f.e. LONG or BOOL).
      It will stay until next stable version when all legacy 
      types will be permanently removed. This gives time for
      3rd party developers to update code to use Harbour 
      (non-legacy) types in C code.
      See '2009-11-01 11:35 UTC+0100 Viktor Szakats' ChangeLog 
      entry about non-legacy Harbour types.
2011-07-17 13:26:52 +00:00
Przemyslaw Czerpak
16037cfc6f 2011-05-11 16:01 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/src/vm/hashes.c
    + add new public C function: HB_BOOL hb_hashClear( PHB_ITEM pHash )
    * do not generate RTE when unexisting key is passed to HB_HDEL()
      now code which makes sth like:
         if xKey $ hValue
            hb_hDel( hValue, xKey )
         endif
      can be reduced to:
         hb_hDel( hValue, xKey )

  * harbour/src/vm/hashfunc.c
    + added new PRG function: HB_HCLEAR( <hValue> ) -> <hValue>
2011-05-11 14:02:04 +00:00
Viktor Szakats
7b3c518a60 2011-04-21 10:33 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/harbour.hbx
  * include/hbapi.h
  * src/common/hbver.c
  * src/rtl/version.c
    + hb_verHostCPU() to return CPU architecture the host OS
      is running under. (long time TODO)
      It may or may not give precise answer depending on 
      target OS. For win, it works as exptected.
    + HB_OSCPU() -> <cCPU> same for .prg level apps.

  * contrib/hbmxml/3rd/minixml/mxml_str.c
    ! Ultimate isdigit() fix. [Tamas Tevesz]
2011-04-21 08:36:15 +00:00
Viktor Szakats
6f535fd1e8 2011-04-16 20:27 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbstack.h
  * include/hbapi.h
    ! Marked functions as HB_EXPORT (should be HB_EXPORT_INT in the future)
      which are used by hbdebug lib. It caused link error when using
      '-b -shared' hbmk2 options on non-mingw windows compilers:
         hb_stackDebugInfo
         hb_macroGetType
         hb_macroGetValue
         hb_memvarGetValueBySym
2011-04-16 18:28:20 +00:00
Viktor Szakats
76ea49c864 2011-04-15 22:03 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
  * include/harbour.hbx
  * src/common/hbver.c
  * src/rtl/version.c
    + added hb_verHostBitWidth( void ) -> int which retrieves bit width of host OS
    + added HB_OSBITWIDTH() -> <nBits>
    ; It will currently work on win platform, falling back to target arch bits
      for others. Pls extend it for *nixes. For MS-DOS, 32 will be returned with
      both currently supported compilers.
2011-04-15 20:04:02 +00:00
Przemyslaw Czerpak
a5fa7383a9 2011-03-27 12:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/src/rtl/hbrandom.c
    added new C functions which fills memory block with random values:
         void hb_random_block( void * data, HB_SIZE len )
    this function should be used with "good enough" random generator
    so in the future it may be changed to use internally sth different
    then rand().

  * harbour/src/vm/thread.c
    * pacified minor warning
2011-03-27 10:45:35 +00:00
Przemyslaw Czerpak
37bfb36fc3 2011-03-10 17:12 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbpp.h
  * harbour/include/hbvmpub.h
  * harbour/include/hbapi.h
  * harbour/include/hbcomp.h
  * harbour/include/hbcompdf.h
  * harbour/include/hbexpra.c
  * harbour/include/hbexprop.h
  * harbour/include/hbhash.h
  * harbour/src/compiler/harbour.yyc
  * harbour/src/compiler/harbour.y
    * simplified function type declarations

  * harbour/src/common/hbstr.c
    ! fixed potential GPF in hb_strnicmp() HB_TR_DEBUG message
2011-03-10 16:12:35 +00:00
Przemyslaw Czerpak
f9823284df 2011-02-28 21:42 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbpp.h
  * harbour/include/hbapilng.h
  * harbour/include/hbapi.h
  * harbour/include/hbcomp.h
  * harbour/src/pp/pplib.c
  * harbour/src/pp/ppcore.c
  * harbour/src/common/hbstr.c
  * harbour/src/rtl/sha2.c
  * harbour/src/rtl/hbinet.c
  * harbour/src/compiler/ppcomp.c
  * harbour/src/compiler/hbfunchk.c
  * harbour/src/compiler/hbgenerr.c
  * harbour/contrib/hbtip/utils.c
    % added missing const to some variable declarations so they can be
      stored in readonly segments

  * harbour/doc/xhb-diff.txt
    ! fixed few typos
2011-02-28 20:43:05 +00:00
Viktor Szakats
d430d3b278 2011-02-28 20:53 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbdefs.h
    + Added HB_EXPORT_INT macro similar to HB_EXPORT, but used for
      exported _internal_ functions. (we may easily rename this
      to something else if a better idea pops up)
    ; TODO: Change HB_EXPORT to HB_EXPORT_INT for rest of internal functions.

  * include/hbpp.h
  * include/hbapi.h
  * include/hbcomp.h
  * include/hbexprop.h
  * include/hbhash.h
    + Using HB_EXPORT_INT to export functions.

  * contrib/hbide/hbide.hbp
  * contrib/hbrun/hbrun.hbp
    ! Deleted bad hack linking in hbcplr, hbpp, hbcommon on non-mingw
      win compilers.
2011-02-28 19:54:13 +00:00
Viktor Szakats
8210edac3b 2011-01-31 01:52 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
+ Added HB_EXPORT flag to these functions: (required by xhb, hbfship)
      hb_stackBaseOffset()
      hb_stackItem()
      hb_stackBaseProcOffset()
      hb_stackGetRecoverBase()
      hb_stackWithObjectOffset()
      hb_memvarSaveInArray()
2011-01-31 00:54:05 +00:00
Przemyslaw Czerpak
a59b602a04 2011-01-15 17:50 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/src/vm/cmdarg.c
    ! use 'void *' instead of HANDLE in hb_winmainArgInit() parameters
2011-01-15 16:50:25 +00:00
Przemyslaw Czerpak
82df9ab45a 2011-01-15 12:07 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/include/hbwmain.c
  * harbour/src/vm/cmdarg.c
    * moved declaration of hb_winmainArgInit() to header file

  * harbour/contrib/hbmxml/3rd/minixml/mxml_fil.c
  * harbour/contrib/hbmxml/3rd/minixml/mxml.h
    ! fixed to compile with WinCE builds
    ; I cannot regenerate .diff file because
         ../../../../bin/hb3rdpat.hbs -rediff
      generates RT error:
         Error BASE/1123  Argument error: HB_ATOKENS
         Called from HB_ATOKENS(0)
         Called from URL_GETFILENAME(810)
         Called from FETCHANDEXTRACT(673)
         Called from MAIN(412)
      Sorry, probably I'm missing sth what was already discussed
      but I was not able to follow all post on the list in last
      weeks so I would like to ask Viktor or Tamas for the help.
2011-01-15 11:08:03 +00:00
Viktor Szakats
4a22ee33f7 2010-11-26 13:44 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
  * src/common/hbver.c
    + Added hb_iswin2k3().

  * src/rtl/hbsocket.c
    + Comment.
    ; TOFIX: Use SO_EXCLUSIVEADDRUSE on Windows.
             See: http://paste.lisp.org/display/59751

  - examples/udpds
  + contrib/hbmisc/tests/udpdstst.prg
  + contrib/hbmisc/udpds.prg
  * contrib/hbmisc/hbmisc.hbp
    + Moved UDPDS functions to hbmisc lib. Added hb_ prefix to names,
      plus formatted with hbformat.

  * contrib/hbhttpd/tests/webapp.prg
    * Formatting.

  ; Patch from Tamas:

  * config/bsd/gcc.mk
  * config/bsd/clang.mk
    * switch bsd to -fPIC, otherwise not even core builds (on 8.1/amd64)
    * while there, bring bsd/gcc.mk in line with linux/gcc.mk (now they
      are identical)
    * ditto for bsd/clang.mk

  * contrib/hbqt/hbqt_common.hbc
    * for hbqt, switch static supc++ to dynamic stdc++, otherwise dyn hbqt
      doesn't build. this is because on at least fbsd supc++ is apparently
      not pic; but switching from static supc++ to dynamic stdc++ easily
      fixes it.
2010-11-26 12:46:14 +00:00
Przemyslaw Czerpak
3134021021 2010-11-19 11:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/ChangeLog
    * marked may last TODO note as DONE - thanks to Viktor and Mindaugas

  * harbour/include/hbmacro.h
    ! added missing const in hb_macroGenPCodeN() declaration

  * harbour/include/hbapi.h
    * added const to HB_CODEBLOCK.pCode

  * harbour/include/hbcompdf.h
    ! added missing const to HB_MACRO.string

  * harbour/src/pp/ppcore.c
  * harbour/src/common/hbstr.c
  * harbour/src/compiler/hbmain.c
  * harbour/src/compiler/hbfix.c
  * harbour/src/compiler/complex.c
  * harbour/src/compiler/hbdead.c
  * harbour/src/compiler/genc.c
  * harbour/src/compiler/hbident.c
  * harbour/src/compiler/gencc.c
  * harbour/src/compiler/hblbl.c
  * harbour/src/compiler/harbour.yyc
  * harbour/src/compiler/harbour.y
  * harbour/src/compiler/harbour.yyh
  * harbour/src/vm/macro.c
  * harbour/src/vm/codebloc.c
  * harbour/src/vm/itemapi.c
  * harbour/src/vm/hvm.c
  * harbour/src/rtl/hbjson.c
  * harbour/src/rtl/sha1.c
  * harbour/src/rtl/sha2hmac.c
  * harbour/src/rtl/hbsocket.c
  * harbour/src/rtl/hbbffnc.c
  * harbour/src/rtl/itemseri.c
  * harbour/src/rtl/filebuf.c
  * harbour/src/rtl/hbbfish.c
  * harbour/src/rtl/gttrm/gttrm.c
  * harbour/src/rdd/workarea.c
  * harbour/src/macro/macrolex.c
  * harbour/src/rdd/usrrdd/usrrdd.c
    * cleaned const pointer casting

  * harbour/src/rdd/usrrdd/usrrdd.c
    ! fixed very serious bug located during const pointer cleanup
      which should cause GPF on user code creating indexes

  * harbour/src/rtl/sha2.c
    * minor formatting

   ; TOFIX: Seems that there is sth wrong with src/rtl/sha1.c.
            Function SHA1_Transform() wrongly declares 2-nd parameter
            buffer[64] as const when in fact it changes it what can be
            seen if
               BYTE64QUAD16    *block;
            is changed to:
               const BYTE64QUAD16 *block;
            This casting which removes const hides potentially very serious
            bug - modifying readonly memory area. SHA1_Transform() changes
            the buffer so the 2-nd parameter must be declared without const.
            After such modification C compiler should warn when const buffers
            are passed to this function and such places should be fixed.
            In fact it seems to be only line 136:
               SHA1_Transform(context->state, &data[i]);
            Viktor can you look at it and fix the code?
2010-11-19 10:11:29 +00:00
Przemyslaw Czerpak
bc30cabde4 2010-11-17 21:11 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbpp.h
    ! removed repeated declaration of hb_pp_eof()

  * harbour/include/hbapicdp.h
  * harbour/include/hbapilng.h
  * harbour/include/hbgtcore.h
    * added extern declaration to HB_*_REQUEST() macros to pacify
      undeclared global functions warnings

  * harbour/include/hbstack.h
    ! added missing hb_stackDec() declaration

  * harbour/include/hbdefs.h
    ! added missing const in some endian macros
    * removed some unnecessary casting which may hide bugs
      in the code

  * harbour/include/hbapi.h
    ! removed repeated declaration of hb_strVal()

  * harbour/include/hbznet.h
    ! removed repeated declaration of hb_znetError()

  * harbour/include/hbcompdf.h
    * minor comment

  * harbour/src/vm/hvm.c
    ! added missing static to hb_vmTSVarClean() declaration
    * added extern hb_vmForceLink() declaration to pacify
      undeclared global functions warnings

  * harbour/src/vm/thread.c
    * make hb_threadInit() and hb_threadExit() internal HVM
      functions available only in MT mode

  * harbour/src/rtl/dates.c
    ! added missing static to hb_dateUnformatRaw() declaration

  * harbour/src/macro/macrolex.c
    * added extern hb_macro_yylex() declaration to pacify
      undeclared global functions warnings

  * harbour/src/rdd/workarea.c
    * added extern _hb_rddWorkAreaForceLink() declaration to pacify
      undeclared global functions warnings

  * harbour/src/compiler/complex.c
    * added extern hb_comp_yylex() declaration to pacify
      undeclared global functions warnings

  * harbour/contrib/hbnetio/netiocli.c
    ! added missing static to s_fileFlush() declaration

  * harbour/contrib/hbct/tempfile.prg
    ! respect in TmepFile() function default file attributes set by
      SetFCreate()

  * harbour/contrib/hbct/ctstrfil.h
    ! added missing declarations for ct_getfcreate() and ct_setfcreate()

  * harbour/contrib/hbwin/legacy.prg
    * removed dummy RETURN statement

  * harbour/contrib/xhb/fparse.c
    ! added missing static to hb_ParseLine() declaration

  * harbour/contrib/xhb/freadlin.c
    ! added missing static to hb_fsReadLine() declaration

  * harbour/contrib/xhb/txtline.c
    ! added missing static to hb_readLine() and hb_tabexpand() declarations
    ! fixed uninitialized variable warning exploited by above modification
      (static function was automatically inlined increasing optimizations)

  * harbour/contrib/xhb/hbserv.c
    ! removed repeated declaration of hb_isService() and hb_serviceExit()

  * harbour/contrib/xhb/cstructc.c
    * disabled public C functions hb_retclenAdoptRaw() and hb_retclenStatic()

  * harbour/contrib/xhb/xhbat.c
    * declare C function hb_AtSkipStrings() as static
      Warning: this functions is part of public xHarbour C API.

   ; TODO: The following functions are declared as public but without
           any prototypes in header files so they should be made static
           or we should add them to some header files:
               hbver.c:143:  hb_verHostCPU()
               hbjson.c:640: hb_jsonEncode()
               hbjson.c:665: hb_jsonDecode()
               sha2.c:228:   sha256_transf()
               sha2.c:445:   sha512_transf()
           I would like to ask authors to look at them and chose
           best solution.
2010-11-17 20:12:12 +00:00
Viktor Szakats
ab28161da8 2010-11-01 16:42 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
  * src/common/hbver.c
    + Added hb_verPlatformMacro(), which returns string as it appears
      in __PLATFORM__* macro.
      This function will have to be extended for each new platform
      Harbour is getting ported to.

  * src/pp/ppcore.c
    ! Changed to use hb_verPlatformMacro() value to form __PLATFORM__*
      macro, instead of using hb_verPlatform(), which offers no
      guarantee for the value on *nix systems and it's was hack
      on other platforms too (f.e. it got messed up when Windows
      version string was changed to show "wine" at the beginning
      of the human readable platform string).
    % Made forming of __PLATFORM__* macros simpler, using hb_snprintf().
    ! Now WINCE builds of pp will also defined __PLATFORM__WINDOWS.

  ; Please review/test.
2010-11-01 15:44:47 +00:00
Przemyslaw Czerpak
e22c6c7e28 2010-10-08 10:17 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/src/common/hbstr.c
    + added new C function:
         double hb_numExpConv( double dNum, int iExp )
  * harbour/src/rdd/dbf1.c
    + added support for decoding exponents part from 'F' fields
2010-10-08 08:17:16 +00:00
Viktor Szakats
8a34ffb5fc 2010-08-03 09:38 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbgtcore.h
  * include/hbapifs.h
  * include/hbapi.h
    + Added HB_EXPORT flag to these functions: (required by xhb, gtwvg and minizip)
      hb_gt_ItemBase()
      hb_gt_gcMark()
      hb_gt_winapi_setClipboard()
      hb_gt_winapi_getClipboard()
      hb_gt_winapi_getKbdState()
      hb_gt_winapi_setKbdState()
      hb_gt_winapi_tone()
      hb_fsAttrFromRaw()
      hb_fsAttrToRaw()
      hb_fsAttrEncode()
      hb_fsAttrDecode()
      hb_fopen()
      hb_gcCollect()
      hb_gcCollectAll()

    ; TOFIX: I didn't want to add these as they look heavily internal (some even 
             marked as such, they are all used by xhb lib:
               hb_stackBaseOffset()
               hb_stackItem()
               hb_stackBaseProcOffset()
               hb_stackWithObjectOffset()

  * contrib/gtalleg/gtalleg.hbm
    ! Fixed missing -a implib flag for bcc.

  * contrib/hbqt/qscintilla/hbqscintilla.hbc
    + Added lib dependency name.

  * contrib/hbide/hbide.prg
    ! Fix to prev.
2010-08-03 07:39:10 +00:00
Viktor Szakats
9036f0d9ca 2010-08-03 09:07 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    + Added trick to filter out target lib name from input lib list -hblib 
      mode and to filter out target implib name from input lib list in 
      -hbdyn mode. This fixes problems when linking -hbdyn by speccing both
      project .hbp and .hbc files. I'm still thinking of a better solution 
      to solve this problem.

  * contrib/make.hbs
    ! Fixed recent bug in filter processing.

  * include/hbapi.h
    + Added HB_EXPORT to hb_releaseCPU(), hb_idle*() and hb_cmdarg*() functions.

  * contrib/hbide/idemisc.prg
  * contrib/hbide/hbide.ch
  * contrib/hbide/hbide.prg
    * Cleanup.
2010-08-03 07:09:20 +00:00
Viktor Szakats
a64a5ff52f 2010-07-30 16:09 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    ! Fixed RTE when using post-process command on systems without
      implib functionality. Recent regression.
    % Fixed bad performance in default -head=partial mode, which made
      it slower than -head=full. Now they are on par, so maybe -head=full
      should be made the default and partial mode deleted.
    ; Thanks to Przemek for bug reports.

  * include/hbset.h
  * include/hbgtcore.h
  * include/hbapi.h
    + Added some HB_EXPORT flags.
2010-07-30 14:10:16 +00:00
Viktor Szakats
62ec573bbf 2010-07-14 11:46 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
  * src/common/Makefile
  + src/common/hbstrbm.c
    + Added hb_strAtTBM() which provides fast text search using
      Turbo Boyer-Moore(-Crochemore) algorithm. The interface is
      the same as hb_strAt().
      HB_AT()/AT() could use it beyond some haystack sizes to
      speed up the results.

  + contrib/hbqt/tests/testbrow.prg
    + Added useful browse example implemented using QT.

  * tests/utf8at.prg
    + Changed to not use high chars.
2010-07-14 09:47:43 +00:00
Viktor Szakats
53093e704f 2010-07-08 09:24 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/macro.c
  * src/vm/hashes.c
  * src/vm/itemapi.c
  * src/vm/hvm.c
  * src/vm/arrays.c
  * src/vm/extend.c
  * src/common/expropt1.c
  * src/common/expropt2.c
  * src/rtl/hbgtcore.c
  * src/compiler/hbmain.c
  * include/hbgtcore.h
  * include/hbmacro.h
  * include/hbapi.h
  * include/hbapiitm.h
  * include/hbvm.h
  * include/hbcomp.h
  * include/hbexprop.h
    * Variable name cleanups.
    * Corrections/completions in declarations.
2010-07-08 07:24:58 +00:00
Viktor Szakats
14122cb345 2010-07-07 15:40 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/extend.c
  * include/hbapicdp.h
  * include/hbstack.h
  * include/hbgtcore.h
  * include/hbapifs.h
  * include/hbxvm.h
  * include/hbdefs.h
  * include/hbmacro.h
  * include/hbapi.h
  * include/hbapiitm.h
  * include/hbcomp.h
  * include/hbsxfunc.h
  * include/hbexprop.h
  * include/hbapigt.h
  * include/hbhash.h
  * include/hbregex.h
    * HB_SIZE/HB_ISIZ/some HB_MAXINT variables renamed.
2010-07-07 13:42:39 +00:00
Viktor Szakats
6ac45c3680 2010-07-06 22:28 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/hashfunc.c
  * src/vm/macro.c
  * src/vm/pcount.c
  * src/vm/estack.c
  * src/vm/debug.c
  * src/vm/hvm.c
  * src/vm/pvalue.c
  * src/vm/arrays.c
  * src/vm/fm.c
  * src/vm/proc.c
  * src/vm/memvars.c
  * src/vm/arrayshb.c
  * src/vm/eval.c
  * src/vm/classes.c
  * include/hbstack.h
  * include/hbapi.h
    * Renamed HB_ISIZ variables to have 'n' prefix.
      (verified to generate the same objects as before)

  * src/vm/fm.c
    ! Fixed HB_ISIZ values to be displayed using HB_PFS format
      string.

  * src/vm/hvm.c
    * HB_ISIZ -> HB_LONG in places where it was wrong.
2010-07-06 20:29:34 +00:00
Viktor Szakats
db1fbb5aed 2010-07-06 21:00 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbrun/hbrun.prg
    ! Don't search passed program in PATH and hbrun dir, if
      program name has path component.

  * contrib/xhb/xhbenum.c
  * contrib/xhb/xhbqself.c
  * contrib/xhb/xhbwith.c
  * contrib/xhb/xhberrc.c
    ! Fixed msvc64 warnings after HB_SIZE extension in stack API.

  * contrib/make.hbs
    + Added logic to protect against case when 'clean install'
      is used but hbrun or hbmk2 isn't available when launching
      the make process. In this case 'clean' phase won't be executed
      for contribs, which is solved by forcing a -rebuild in
      'install' phase.

  * src/vm/strapi.c
  * src/vm/runner.c
  * src/vm/itemapi.c
  * src/vm/asort.c
  * src/vm/hvm.c
  * src/vm/arrays.c
  * src/vm/memvars.c
  * src/vm/set.c
  * src/vm/classes.c
  * src/rtl/lennum.c
  * src/rtl/strcase.c
  * src/rtl/replic.c
  * src/rtl/padr.c
  * src/rtl/padc.c
  * src/rtl/strtran.c
  * src/rtl/strtoexp.c
  * src/rtl/padl.c
  * src/rtl/saverest.c
  * src/rtl/right.c
  * src/rtl/philes.c
  * src/rtl/mlcfunc.c
  * src/rtl/left.c
  * src/rtl/xsavescr.c
  * src/rtl/setkey.c
  * src/rtl/stuff.c
  * src/rtl/trace.c
  * src/rtl/samples.c
  * src/rtl/inkeyapi.c
  * src/rtl/inkey.c
  * src/rtl/mtran.c
  * src/rtl/colorind.c
  * src/rtl/rat.c
  * include/hbapi.h
  * include/hbapistr.h
    * Renamed HB_SIZE variables to have 'n' prefix.
      (verified to generate the same objects as before)

  * src/rtl/philes.c
    * Changed hb_retnint()/hb_retni() to hb_retns().

  * contrib/hbgd/gdwrp.c
    * Formatting.
2010-07-06 19:02:19 +00:00
Viktor Szakats
26ca5da0db 2010-06-30 19:17 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/extend.c
  * include/hbapi.h
    + Added hb_retclen_const() to return constant byte arrays.

  * contrib/hbqt/hbmk2_plugin_qt.prg
  * contrib/hbide/hbide.prg
    + Implemented pure Harbour .c QT resource support.
      Commented, waiting for HBQT API to load resources
      from byte stream.
      This method will create a pure .c source files
      from binary QT resource, so it doesn't require
      QT headers to be present.

  * contrib/hbqt/hbmk2_plugin_qt.prg
  * contrib/hbide/idemisc.prg
  * contrib/hbide/ideskeletons.prg
    * Changed 'ui' prefix to 'hbqtui_' for compiled .ui
      file entry function names.

  * utils/hbmk2/hbmk2.prg
    + Added hbmk2_FNameToSymbol() plugin function to convert
      filename to Harbour symbol name.

  * contrib/hbide/hbide.env
    - Deleted QT setup from compilers where QT is not supported.
2010-06-30 17:18:38 +00:00
Viktor Szakats
89ef883626 2010-06-23 11:59 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbdefs.h
    + Added new abstract type: HB_RECNO.
      To replace HB_ULONG usage where it means record number.

  * src/vm/hvm.c
  * src/vm/cmdarg.c
  * include/hbapi.h
  * include/hbvm.h
    * HB_ULONG -> HB_U32 for VM flags.
2010-06-23 10:00:00 +00:00
Viktor Szakats
496ea57dae 2010-06-22 16:50 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/dynsym.c
  * include/hbapi.h
    * Minimal cleanup: using HB_LONG in place of long, just to make
      this type usage easier to find in the future.

  * src/vm/hvm.c
    + Added cast to pacify long time msvc warning

  * src/vm/fm.c
    + Added pragmas to silence msvc64 warnings in dlmalloc (foreign) code.

  * src/vm/extend.c
    * Formatting.
2010-06-22 14:51:57 +00:00
Viktor Szakats
59a257f1b2 2010-06-22 05:38 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/estack.c
  * src/vm/debug.c
  * src/vm/hvm.c
  * src/vm/pvalue.c
  * src/vm/arrays.c
  * src/vm/proc.c
  * src/vm/memvars.c
  * src/vm/eval.c
  * src/vm/classes.c
  * include/hbstack.h
  * include/hbapi.h
    + Win64 support for HVM stack and other related internals.
      (HB_ULONG -> HB_SIZE, HB_LONG -> HB_ISIZ, long -> HB_ISIZ)
    + Using size API in debug functions.
    ; TOFIX: These two warnings remain in HVM (not counting dlmalloc):
      ---
      hvm.c(10695) : warning C4244: 'argument' : conversion from 'HB_MAXINT' to 'double', possible loss of data
      macro.c(1315) : warning C4310: cast truncates constant value
      ---

  * src/vm/eval.c
    * HB_FORNEXT() loop value can now be 64-bit values (was 32).

  * src/vm/runner.c
    * Formatting.
2010-06-22 03:39:16 +00:00
Viktor Szakats
0cbaf318af 2010-06-22 04:35 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbhash.h
  * src/common/hbhash.c
    + hash key changed from HB_ULONG to HB_SIZE.

  * src/rtl/cdpapi.c
  * src/compiler/hbmain.c
    * Added casts to pacify long time msvc warnings.

  * include/hbapi.h
    ! HB_IS_VALID_INDEX() macro fixed to use HB_SIZE.
    * Changed hb_struRefer.offset structure member from HB_LONG to
      HB_ISIZ, fixing one pending Win64 type mismatch.
      The change doesn't modify HB_ITEM size.

  * include/hbapicls.h
    + Added parameter name to one declaration.
2010-06-22 02:36:40 +00:00
Viktor Szakats
a99675b91d 2010-06-22 01:15 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbcomp.h
  * include/hbcompdf.h
  * include/hbexpra.c
  * include/hbexprb.c
  * include/hbexprop.h
  * include/hbmacro.h
  * src/common/expropt1.c
  * src/common/expropt2.c
  * src/compiler/genc.c
  * src/compiler/gencc.c
  * src/compiler/harbour.y
  * src/compiler/harbour.yyc
  * src/compiler/hbdbginf.c
  * src/compiler/hbdead.c
  * src/compiler/hbident.c
  * src/compiler/hblbl.c
  * src/compiler/hbmain.c
  * src/compiler/hbopt.c
  * src/compiler/hbpcode.c
  * src/vm/macro.c
    + Adding Win64 support for compiler/macro subsystems.
      * HB_ULONG -> HB_SIZE where applicable.
      * HB_LONG -> HB_ISIZ where applicable.
      * Some now unnecessary cast deleted.
      * hb_compExprAsStringLen() return value changed to HB_SIZE from int.
      * hb_compNOOPfill() 3rd parameter changed to HB_ISIZ from int.
      - Deleted unused hb_compExprMacroListLen().
    ; TOFIX: Use '$<lNumber>$' (or maybe newly added sNumber)
             instead of '$<iNumber>$' in .y code.
             Przemek, what do you think?

  * src/compiler/Makefile
    * C files sorted.

  * src/vm/hvm.c
    ! hb_vmStaticsCount() changed to use HB_SIZE instead of
      HB_ULONG. Fixing pending warnings.

  * include/hbapi.h
    * Changed hb_struEnum.offset structure member from HB_LONG
      to HB_ISIZ, fixing one more pending Win64 type mismatch
      problem. The change doesn't modify HB_ITEM size.
      Please verify me.

  * src/vm/classes.c
    ! Using size API after above change.
    ; QUESTION: In itemapi asEnum.offset is stored using
                hb_itemPutNInt(). Should this be changed to
                hb_itemPutNS()?

  * contrib/hbct/ctstr.c
    + Cleaned away some HB_ULONG casts and using HB_PFS format
      strings instead.

  * contrib/hbct/tab.c
    ! Fixed regression from 2010-06-20 12:34 UTC+0200 Viktor Szakats,
      by deleting now unnecessary casts. Shown by mingw64 4.6.0exp.
      I'd appreciate if someone could check me!!
2010-06-21 23:20:16 +00:00
Viktor Szakats
4a57af0fc7 2010-06-21 22:12 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
    * Changed hb_struRefer.value structure member from HB_LONG to
      HB_ISIZ, fixing one pending Win64 type mismatch also signaled
      by msvc64 warning. The change doesn't modify HB_ITEM size.
      Please verify me.
2010-06-21 20:12:56 +00:00
Viktor Szakats
722c306052 2010-06-20 19:29 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/cmdarg.c
  * src/vm/fm.c
  * src/nortl/nortl.c
  * src/rtl/fmhb.c
  * include/hbapi.h
    + hb_xquery() return value changed from HB_ULONG to HB_SIZE.
      Also fixes all msvc64 warnings
2010-06-20 17:30:31 +00:00
Viktor Szakats
d442c6fee9 2010-06-20 11:06 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/cmdarg.c
  * src/common/hbffind.c
  * src/common/hbtrace.c
  * src/common/hbfsapi.c
  * src/common/hbhash.c
  * src/rtl/setkey.c
  * src/compiler/hbmain.c
  * src/compiler/hbcmplib.c
  * src/compiler/harbour.yyc
  * src/compiler/harbour.y
  * include/hbapi.h
  * contrib/hbmemio/memio.c
  * contrib/hbhpdf/harupdf.c
  * contrib/hbpgsql/postgres.c
  * examples/pp/hbppcore.c
  * examples/pp/hbppcomp.c
    * Deleted unnecessary '( void * )' casts.
      Pls Check me.
2010-06-20 09:09:08 +00:00
Viktor Szakats
0c2f806800 2010-06-19 14:12 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/itemapi.c
  * src/vm/arrays.c
  * src/vm/extend.c
  * include/hbapi.h
  * include/hbapiitm.h
    * Changed new size API calls to use HB_ISIZ instead of HB_SIZE.
      This is required until we switch HB_SIZE to be signed value,
      and to not step backwards plus keep signedness compatibility
      with 'long' API calls.

  * contrib/xhb/xhbhasha.c
  * contrib/hbcurl/hbcurl.c
    + Using size API.

  * contrib/xhb/xhbhasha.c
    ! HAAGETREALPOS(): Fixed return value to be numeric.
2010-06-19 12:15:22 +00:00
Viktor Szakats
f798129d72 2010-06-19 13:41 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
  * include/hbapiitm.h
  * src/vm/itemapi.c
  * src/vm/arrays.c
  * src/vm/extend.c
    + Added hb_storvns().
    + Added hb_parvns().
    ; TOFIX: hb_itemPutNS() gives these (not quite unexpected) mingw warnings:
             ---
             itemapi.c:993:8: warning: comparison between signed and unsigned integer expressions
             itemapi.c:998:38: warning: comparison between signed and unsigned integer expressions
             itemapi.c:1004:35: warning: comparison between signed and unsigned integer expressions
             itemapi.c:1004:7: warning: comparison is always false due to limited range of data type
             ---

  * src/rtl/philes.c
  * src/rtl/mlcfunc.c
  * src/rtl/rat.c
    + Using size APIs.
    % Also deleting '( HB_SIZE )' casts along the way.

  * src/rtl/oemansi.c
    ! Cast to make Win64 happy. Quite interesting that almost no
      Windows API don't support proper 64-bit strings, so here
      Windows will be the limitation, not Harbour.
2010-06-19 11:49:23 +00:00
Viktor Szakats
73eae980a9 2010-06-19 12:52 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/itemapi.c
  * src/vm/arrays.c
  * include/hbapi.h
    * Renamed hb_arrayGetNSize(), hb_arraySetNSize(),
      hb_itemGetNSize(), hb_itemPutNSize() functions to
      hb_arrayGetNS(), hb_arraySetNS(),
      hb_itemGetNS(), hb_itemPutNS().

  * src/rtl/at.c
  * src/rtl/ati.c
  * contrib/xhb/xhbat.c
    * Started to use hb_*ns() instead of hb_*nl() for size values.
2010-06-19 10:53:28 +00:00
Viktor Szakats
aed2388134 2010-06-19 12:46 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/extend.c
  * include/hbapi.h
    * hb_*nsize() functions renamed to hb_*ns():
        hb_parns(), hb_retns(), hb_storns()
    + Added hb_parnsdef().
2010-06-19 10:46:53 +00:00