Commit Graph

84 Commits

Author SHA1 Message Date
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
Viktor Szakats
1e4b18564f 2012-04-19 12:15 UTC+0200 Viktor Szakats (harbour syenar.net)
* include/hbapicdp.h
  * src/rtl/hbregex.c
  * src/rtl/cdpapi.c
    + will now automatically enable UTF8 in PCRE searches, if
      the HVM CP is set to UTF8.
2012-04-19 10:15:59 +00:00
Przemyslaw Czerpak
e4736a3fb0 2012-04-03 18:43 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbapicdp.h
  * harbour/src/rtl/cdpapi.c
    + added new C functions:
      hb_cdpDupn(), hb_cdpStrDupU16(), hb_cdpnStrDupU16()

  * harbour/include/hbwinuni.h
    + added new macros: HB_CHARDUP() and HB_CHARDUPN()
      Warning: this macros uses HVM functions so cannot be used in
               code which is executed without active HVM i.e. in
               pure harbour compiler code (common library)

  * harbour/src/rtl/filesys.c
    * use hb_cdpStrDupU16()

  * harbour/src/rtl/hbproces.c
    ! fixed double OS codepage conversion in hb_fsProcessRun()
    * use HB_CHARDUP*() macros to respect _SET_CODEPAGE and _SET_OSCODEPAGE
      in Windows builds
2012-04-03 16:43:24 +00:00
Przemyslaw Czerpak
0b8e7986c3 2012-03-20 18:44 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbapicdp.h
    + added missing declaration of hb_fsNameConvU16()
2012-03-20 17:44:49 +00:00
Przemyslaw Czerpak
9723beb5c0 2012-03-13 12:55 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/package/harbour.spec
    ! added missing attribute for harbour.ld.conf file
    ! added optional hbhttpds library

  * harbour/contrib/hbct/envparam.c
  * harbour/contrib/hbct/dummy.c
  * harbour/contrib/hbct/hbct.hbp
  * harbour/contrib/hbct/hbct.hbx
    + added ENVPARM() - now it's implemented for all platforms but
      it should be tested on different *nixes - some of them may not
      support 'char * environ' public variable

  * harbour/contrib/xhb/hbserv.c
    * added missing dummy functions in DOS builds

  * harbour/utils/hbmk2/hbmk2.prg
    ! do not set binding to hb_forceLinkMainWin() when -nohblib and -gui
      switches are used together


  * harbour/include/hbapicdp.h
  * harbour/src/rtl/cdpapi.c
    + added new C functions hb_cdpnDupUpper(), hb_cdpnDupLower(),
      hb_cdpnDup2Upper() and hb_cdpnDup2Lower().
      They should be used instead of hb_strUpper() and hb_strLower()
      functions because they can work well with CPs where upper and
      lower characters uses different number of bytes, i.e. UTF8 has
      such characters.

  * harbour/src/rtl/strcase.c
  * harbour/src/rtl/fstemp.c
  * harbour/src/rtl/filesys.c
  * harbour/src/rdd/dbfcdx/dbfcdx1.c
  * harbour/src/rdd/hbsix/sxsem.c
    * replaced obsolete hb_strUpper() and hb_strLower() functions with
      new hb_cdpnDup*Upper()/hb_cdpnDup*Lower() ones.

  * harbour/src/rdd/hbsix/sxutil.c
    * replaced obsolete hb_charUpper() function with hb_cdpnDupUpper()

  * harbour/contrib/sddpg/sddpg.c
  * harbour/contrib/sddsqlt3/sddsqlt3.c
  * harbour/contrib/sddmy/sddmy.c
  * harbour/contrib/sddfb/sddfb.c
  * harbour/contrib/sddodbc/sddodbc.c
  * harbour/contrib/sddoci/sddoci.c
    ! fixed memory leaks
    * replaced obsolete hb_strUpper() and hb_strLower() functions with
      new hb_cdpnDup*Upper()/hb_cdpnDup*Lower() ones.
    ; TODO: these conversions are redundant - I'll remove them in next
            commit.
2012-03-13 11:55:43 +00:00
Przemyslaw Czerpak
d4128116bb 2011-12-23 10:43 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbapicdp.h
  * harbour/src/rtl/cdpapi.c
    ! fixed typo in hb_cdpUTF8StringPeek() declaration
2011-12-23 09:43:30 +00:00
Przemyslaw Czerpak
593b446a6a 2011-10-14 10:42 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicdp.h
  * harbour/src/rtl/cdpapi.c
    - removed hb_cdpchrcmp() function and HB_CDP_ISBYTESORT() macro
    + added new function:
         const HB_UCHAR * hb_cdpGetSortTab( PHB_CODEPAGE cdp );
      it returns binary sort table or NULL if given CP uses more
      complicated sorting algorithm.

  * harbour/include/hbrddcdx.h
  * harbour/src/rdd/dbfcdx/dbfcdx1.c
    % use hb_cdpGetSortTab() to take binary sort table used by WA CP
      instead of creating new one for each WA.
2011-10-14 08:43:06 +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
Przemyslaw Czerpak
20b5875721 2011-05-27 19:04 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicdp.h
  * harbour/src/codepage/Makefile
  + harbour/src/codepage/uc858.c
    + added CP858 - basically it's CP850 but contains EURO SIGN (U+20AC) at position 0xD5
      instead of Turkish dotless-i (U+0131)
2011-05-27 17:04:24 +00:00
Przemyslaw Czerpak
6b92949b7d 2011-05-17 15:40 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtxwc/gtxwc.c
  * harbour/src/rtl/gtwvt/gtwvt.c
  * harbour/contrib/xhb/hboutdbg.c
  * harbour/contrib/xhb/xhbfunc.c
    ! use 'hb_cmdargARGVN( 0 )' instead of 'hb_cmdargARGV()[ 0 ]' to avoid
      GPF when no arguments are initialized

  * harbour/contrib/hbwin/hbolesrv.hbc
    * use {allmingw} instead of {mingw} macro for MinGW64 builds

  * harbour/src/codepage/Makefile
  * harbour/src/codepage/uc646_yu.c
  + harbour/src/codepage/uc646yuc.c
  * harbour/include/hbapicdp.h
    + added JUS I.B1.003 - Cyrillic script variant of ISO-646-YU
      for Serbian and Macedonian language

  * harbour/src/codepage/Makefile
  + harbour/src/codepage/cpsr646.c
  + harbour/src/codepage/cpsr646c.c
  * harbour/include/hbcpage.hbx
    + added SR646 and SR646C Harbour codeapges.
      Both code pages uses the same 8-bit representation but different
      unicode values - SR646 uses Latin script and SR646C Cyrillic script.
      It means that it's useless to make any translations between SR646
      and SR646C because both versions uses the same ASCII values but they
      can help in translation to other encodings or CPs, i.e. to convert
      some Serbian text in one of the above CPs to Latin letters in UTF8
      encoding then it's enough to make:
         hb_strToUTF8( <cText>, "SR646" ) -> <cUtf8LatinText>
      and for conversion to UTF8+Cyrillic:
         hb_strToUTF8( <cText>, "SR646C" ) -> <cUtf8CyrillicText>
2011-05-17 13:40:56 +00:00
Przemyslaw Czerpak
30a8610407 2011-04-13 11:07 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicdp.h
  * harbour/include/hbcdpreg.h
  * harbour/src/rtl/cdpapi.c
  * harbour/src/rtl/cdpapihb.c
    + added support for user defined character encoding.
      Now it's possible to easy create and register in HVM CPs using any
      encoding so I expected that users interested in adding support for
      some exotic character encoding will create such mapping instead
      of asking for it.
    % moved support for codepages using multibyte characters mapped to
      single unicode values to user defined encoding - it nicely simplify
      the code and eliminate unnecessary overhead in other CPs.
    * allow to chose UTF8 as HVM CP

  * harbour/src/rtl/idle.c
    ! fixed idle mode flag resetting

  * harbour/src/rdd/hbsix/sxutil.c
    ! fixed SX_SLIMFAST() results when nested quoting with (") and (') is
      used

  + harbour/tests/big5_gen.prg
    + added code to generate C source with conversion tables between
      BIG5 and UCS16 using data defined by Unicode, Inc. in BIG5.TXT

  + harbour/src/codepage/cp_utf8.c
    + added alternative UTF8 Harbour CP (UTF8ASC) as an example Harbour
      user defined codapged using multibyte character encoding

  * harbour/src/codepage/Makefile
  + harbour/src/codepage/cp_u16le.c
    + added Harbour codepage using UTF16 little endian encoding

  * harbour/src/codepage/Makefile
  + harbour/src/codepage/big5.c
  + harbour/src/codepage/cp_big5.c
    + added BIG5 Harbour CP. It can be used with programs using Harbour
      STR API with automatic translations.
    ; This CP needs really big translation tables. I added code which
      makes some very simple compression which reduced raw size from
      176100 bytes to 77354 but it's still large 77KB so maybe we should
      think about moving this CP to other Harbour codpage library which
      is not part of harbour shared library harbour*{.dll|.so|.dyn|...}
      Alternatively I can try to reduce static size to about 30KB and
      then build necessary tables dynamically at runtime when they are
      used first time though in such case I will need additional 177KB
      of dynamic memory instead of 77KB of static memory used by current
      code.
2011-04-13 09:07:47 +00:00
Przemyslaw Czerpak
528fda3770 2011-04-10 12:43 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicdp.h
  * harbour/src/rtl/cdpapi.c
    * removed fCtrl parameter from hb_cdp*() functions. It was used only
      in very specific case for GT output translations to show characters
      with ASCII codes in range < 0x00 : 0x1F > as corresponding CGA/EGA/VGA
      glyphs and was not necessary in normal conversions
    + added new function for character translation in GT output operations:
      hb_cdpTranslateDispChar(), hb_cdpGetU16Disp(),hb_cdpStrToUTF8Disp()
    * some small fixes, simplifications and improvements in CDP translation
      code

  * harbour/src/vm/strapi.c
  * harbour/src/rtl/cdpapihb.c
  * harbour/src/rtl/hbjson.c
  * harbour/contrib/hbexpat/internal.c
    * removed not longer necessary parameter from hb_cdp*() functions

  * harbour/src/rtl/gtdos/gtdos.c
  * harbour/src/rtl/gtwin/gtwin.c
  * harbour/src/rtl/gtxwc/gtxwc.c
  * harbour/src/rtl/gtcrs/gtcrs.c
  * harbour/src/rtl/gtstd/gtstd.c
  * harbour/src/rtl/gttrm/gttrm.c
  * harbour/src/rtl/gtsln/gtsln.c
  * harbour/src/rtl/gtsln/kbsln.c
  * harbour/src/rtl/gtpca/gtpca.c
  * harbour/src/rtl/gtwvt/gtwvt.c
  * harbour/contrib/gtwvg/gtwvg.c
  * harbour/contrib/gtwvg/wvggui.c
    * use hb_cdp*Disp() functions instead of old ones with fCtrl=HB_TRUE
      parameter
    * removed not longer necessary fCtrl parameter from other hb_cdp*()
      functions

  * harbour/src/codepage/uc646_yu.c
  * harbour/src/codepage/uc737.c
  * harbour/src/codepage/uc775.c
  * harbour/src/codepage/uc850.c
  * harbour/src/codepage/uc852.c
  * harbour/src/codepage/uc855.c
  * harbour/src/codepage/uc856.c
  * harbour/src/codepage/uc857.c
  * harbour/src/codepage/uc860.c
  * harbour/src/codepage/uc861.c
  * harbour/src/codepage/uc862.c
  * harbour/src/codepage/uc863.c
  * harbour/src/codepage/uc864.c
  * harbour/src/codepage/uc865.c
  * harbour/src/codepage/uc866.c
  * harbour/src/codepage/uc869.c
  * harbour/src/codepage/uc874.c
  * harbour/src/codepage/uc1006.c
  * harbour/src/codepage/uc1125.c
  * harbour/src/codepage/uc1250.c
  * harbour/src/codepage/uc1251.c
  * harbour/src/codepage/uc1252.c
  * harbour/src/codepage/uc1253.c
  * harbour/src/codepage/uc1254.c
  * harbour/src/codepage/uc1255.c
  * harbour/src/codepage/uc1256.c
  * harbour/src/codepage/uc1257.c
  * harbour/src/codepage/uc1258.c
  * harbour/src/codepage/uc8859_1.c
  * harbour/src/codepage/uc88591b.c
  * harbour/src/codepage/uc8859_2.c
  * harbour/src/codepage/uc8859_3.c
  * harbour/src/codepage/uc8859_4.c
  * harbour/src/codepage/uc8859_5.c
  * harbour/src/codepage/uc8859_6.c
  * harbour/src/codepage/uc8859_7.c
  * harbour/src/codepage/uc8859_8.c
  * harbour/src/codepage/uc8859_9.c
  * harbour/src/codepage/uc885910.c
  * harbour/src/codepage/uc885911.c
  * harbour/src/codepage/uc885913.c
  * harbour/src/codepage/uc885914.c
  * harbour/src/codepage/uc885915.c
  * harbour/src/codepage/uc885916.c
  * harbour/src/codepage/ucascii.c
  * harbour/src/codepage/ucatari.c
  * harbour/src/codepage/uckam.c
  * harbour/src/codepage/uckoi8.c
  * harbour/src/codepage/uckoi8u.c
  * harbour/src/codepage/ucmacce.c
  * harbour/src/codepage/ucmaccyr.c
  * harbour/src/codepage/ucmacgrk.c
  * harbour/src/codepage/ucmacice.c
  * harbour/src/codepage/ucmacrom.c
  * harbour/src/codepage/ucmactrk.c
  * harbour/src/codepage/ucmaz.c
  * harbour/src/codepage/ucmik.c
  * harbour/src/codepage/ucnext.c
    * removed not longer necessary unicode codes in range < 0x00 : 0x1F >
      Now it's possible to define additional characters in this range though
      I suggest to not use edit/flow control codes (BEL, BS, TAB, LF, CR,
      XON, XOFF)

  * harbour/src/codepage/uc037.c
  * harbour/src/codepage/uc424.c
  * harbour/src/codepage/uc500.c
  * harbour/src/codepage/uc875.c
  * harbour/src/codepage/uc1026.c
    * restored EBCDIC control codes
2011-04-10 10:44:45 +00:00
Przemyslaw Czerpak
3a71036691 2010-12-05 01:04 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicdp.h
  * harbour/include/hbcdpreg.h
  * harbour/src/rtl/cdpapi.c
  * harbour/tests/cpinfo.prg
    + added support to define CPs using different letter case sorting
      in human readable form. Now it's possible to use:
         // uppers before lowers: ABCDE...abcde...
         #define HB_CP_CSSORT    HB_CDP_CSSORT_UPLO
         // uppers and lowers are mixed: AaBbCcDdEe....
         #define HB_CP_CSSORT    HB_CDP_CSSORT_MIXED
         // ignore case
         #define HB_CP_CSSORT    HB_CDP_CSSORT_IGNORE
2010-12-05 00:04:47 +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
ec5c6619dc 2010-07-14 10:10 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapicdp.h
  * src/rtl/cdpapi.c
  * src/rtl/cdpapihb.c
  + tests/utf8at.prg
    + Added hb_cdpUTF8StringAt()
    ; Patch by Carlos Bacco. Many thanks!

  * include/hbextern.ch
  * include/hbapicdp.h
  * src/rtl/cdpapi.c
  * src/rtl/cdpapihb.c
    ; my modifications to above patch:
    - Using HB_BOOL instead of int for flag value.
    % HB_UTF8AT(), HB_UTF8RAT() optimized to use hb_param(),
      plus optimized out variables.
    ! HB_UTF8AT(), HB_UTF8RAT() fixed 'nEnd < nStart' case.
    ! Some formatting.
    + Added new functions to hbextern.ch.

  * tests/utf8at.prg
    * Changed to use UTF8 string as base.
    * Avoiding "OEM" and "ANSI" Microsoft misleading terms,
      using standard CP names instead.
    ! Using HB_TRANSLATE() to convert between CPs (instead
      of non-portable, Windows-only HB_OEMTOANSI()/HB_ANSITOOEM()
      functions).
    * Formatting.
    * Using '?' instead of QOUT(), plus added simpleio.ch to
      allow redirection of output.

  * contrib/make.hbs
    * Minor step to make dependency evaluation and automatic
      sorting of components for build.

  * utils/hbmk2/hbmk2.pt_BR.po
  * utils/hbmk2/hbmk2.hu_HU.po
  * utils/hbmk2/hbmk2.prg
    + Added -vcshead support for Monotone version control
      software.
    % Cleaned and optimized "in dir" C compiler run mode.
      (currently used by mingw)
    ! Fixed "in dir" C compiler run mode when using -jobs=
      option for multithreaded builds.
    % Little optimization to --hbinfo option.
2010-07-14 08:14:32 +00:00
Viktor Szakats
8e23274cd7 2010-07-07 23:11 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/rdd/sdf1.c
  * src/rdd/delim1.c
  * include/hbrddsdf.h
  * include/hbrdddel.h
    * HB_SIZE/HB_FOFFSET renames in structs (ul* -> n*).
      (objects verified)

  * include/hbcomp.h
  * include/hbapicdp.h
    * More HB_SIZE var renames (in decl only).

  * src/rtl/filesys.c
  * include/hbapifs.h
    * HB_FOFFSET renames (ul*, ll* -> n*).
      (object verified)
2010-07-07 21:11:33 +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
1ae025e9e2 2010-07-04 12:21 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/cdpapi.c
  * src/rtl/cdpapihb.c
  * include/hbapicdp.h
    + Added new low level hb_cdpList() function.
    ! cdp list generation logic now protected with mutex.
    ! HB_CDPLIST() .prg level function moved to cdpapihb.c,
      thus clearing the last pending TOFIX here regarding
      layer separation. Low level can now be moved to
      common lib (or is there anything else missing?).

  * contrib/hbqt/hbmk2_plugin_qt.prg
    * Minor correction in one stdalone error msg.
2010-07-04 10:23:11 +00:00
Viktor Szakats
2fa7ba29cf 2010-06-03 16:43 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* package/winuni/mpkg_win_uni.nsi
    * 2.0 -> 2.1

  * src/hbextern/hbextern.prg
  * src/pp/pplib.c
  * src/pp/ppcore.c
  * src/pp/pplib2.c
  * src/pp/hbpp.c
  * src/pp/pplib3.c
  * src/main/harbour.c
  * src/debug/dbgtwin.prg
  * src/debug/dbghelp.prg
  * src/debug/dbgtmenu.prg
  * src/debug/dbgtmitm.prg
  * src/debug/dbgtobj.prg
  * src/debug/dbgbrwsr.prg
  * src/debug/dbgmenu.prg
  * src/debug/dbgthsh.prg
  * src/debug/tbrwtext.prg
  * src/debug/dbgwa.prg
  * src/debug/debugger.prg
  * src/debug/dbgtarr.prg
  * src/debug/dbgtinp.prg
  * src/common/hbgete.c
  * src/common/hbffind.c
  * src/common/hbver.c
  * src/common/hbwin.c
  * src/common/hbtrace.c
  * src/common/funcid.c
  * src/common/hbfsapi.c
  * src/common/hbprintf.c
  * src/common/hbverdsp.c
  * src/common/hbwince.c
  * src/common/hbfopen.c
  * src/common/expropt1.c
  * src/common/hbstr.c
  * src/common/expropt2.c
  * src/common/hbdate.c
  * src/common/hbmem.c
  * src/common/strwild.c
  * src/common/hbhash.c
  * src/nortl/nortl.c
  * src/macro/macro.yyc
  * src/macro/macro.y
  * src/macro/macrolex.c
  * src/compiler/compi18n.c
  * src/compiler/hbmain.c
  * src/compiler/ppcomp.c
  * src/compiler/hbfix.c
  * src/compiler/cmdcheck.c
  * src/compiler/hbdbginf.c
  * src/compiler/hbpcode.c
  * src/compiler/genhrb.c
  * src/compiler/complex.c
  * src/compiler/hbdead.c
  * src/compiler/hbcomp.c
  * src/compiler/genobj32.c
  * src/compiler/genc.c
  * src/compiler/hbopt.c
  * src/compiler/hbident.c
  * src/compiler/hbusage.c
  * src/compiler/gencc.c
  * src/compiler/hbcmplib.c
  * src/compiler/hblbl.c
  * src/compiler/harbour.yyc
  * src/compiler/hbstripl.c
  * src/compiler/harbour.y
  * src/compiler/hbfunchk.c
  * src/compiler/hbgenerr.c
  * include/hbpp.h
  * include/set.ch
  * include/achoice.ch
  * include/hbrdddbf.h
  * include/hbstdgen.ch
  * include/hbvmpub.h
  * include/hbgtinfo.ch
  * include/vm.api
  * include/hbpcode.h
  * include/hbset.h
  * include/hbver.h
  * include/hbtrace.h
  * include/extend.api
  * include/hbapicdp.h
  * include/hbrddnsx.h
  * include/button.ch
  * include/hbstack.h
  * include/item.api
  * include/inkey.ch
  * include/hbapilng.h
  * include/hbhrb.ch
  * include/tbrowse.ch
  * include/common.ch
  * include/rdd.api
  * include/gt.api
  * include/hbgtcore.h
  * include/dbinfo.ch
  * include/hbundoc.api
  * include/hbapifs.h
  * include/hbtask.h
  * include/hbsetup.ch
  * include/hbwince.h
  * include/hbvmopt.h
  * include/hb_io.h
  * include/hbthread.h
  * include/hbxvm.h
  * include/setcurs.ch
  * include/hbdefs.h
  * include/hbmsgreg.h
  * include/dbedit.ch
  * include/hblang.ch
  * include/filesys.api
  * include/hbdebug.ch
  * include/hbextcdp.ch
  * include/hbsetup.h
  * include/hbmacro.h
  * include/hbzlib.ch
  * include/hbinit.h
  * include/hbtypes.h
  * include/hbmacro.ch
  * include/hbusrrdd.ch
  * include/hbrddsdf.h
  * include/hbgtreg.h
  * include/hbwinuni.h
  * include/hbapi.h
  * include/simpleio.ch
  * include/hbmemory.ch
  * include/hbpers.ch
  * include/error.ch
  * include/hb.ch
  * include/hbapiitm.h
  * include/hbmath.h
  * include/hbmath.ch
  * include/memoedit.ch
  * include/hbvmint.h
  * include/hbver.ch
  * include/fileio.ch
  * include/rddsys.ch
  * include/hbrddntx.h
  * include/hbapicom.h
  * include/hbatomic.h
  * include/extend.h
  * include/hbznet.h
  * include/hbvm.h
  * include/std.ch
  * include/hbapidbg.h
  * include/hbmemvar.ch
  * include/hbcomp.h
  * include/hbapirdd.h
  * include/hbextlng.ch
  * include/color.ch
  * include/hbcompdf.h
  * include/hbclass.ch
  * include/hbsxdef.ch
  * include/hbmather.h
  * include/dbstruct.ch
  * include/hbsocket.ch
  * include/hbdyn.ch
  * include/hbrdddel.h
  * include/hbtrace.ch
  * include/error.api
  * include/hbapistr.h
  * include/hbwmain.c
  * include/hbexpra.c
  * include/hbexprop.h
  * include/hbiniseg.h
  * include/hbgfx.ch
  * include/hbsocket.h
  * include/hbchksum.h
  * include/hbdbf.h
  * include/hbbfish.h
  * include/hbdbsort.h
  * include/hbcdpreg.h
  * include/hbapigt.h
  * include/hbfloat.h
  * include/hbgfxdef.ch
  * include/hbsix.ch
  * include/hbextern.ch
  * include/hbapicls.h
  * include/hberrors.h
  * include/directry.ch
  * include/clipdefs.h
  * include/hboo.ch
  * include/box.ch
  * include/hbinkey.ch
  * include/hbapierr.h
  * include/hbhash.h
  * include/assert.ch
  * include/hbassert.h
  * include/getexit.ch
  * include/reserved.ch
  * include/hbregex.h
  * include/fm.api
  * include/hbthread.ch
  * include/hbexprb.c
  * include/ord.ch
  * include/hbdate.h
    * Deleted 'www.' from harbour-project.org website name.
      (www.harbour-project.org -> harbour-project.org)
2010-06-03 14:48:23 +00:00
Viktor Szakats
e5abaa5fb4 2010-02-09 02:12 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/runner.c
  * src/vm/garbage.c
  * src/vm/classes.c
  * src/rtl/cdpapi.c
  * src/rtl/cdpapihb.c
  * src/rdd/dbcmd.c
  * include/hbapicdp.h
  * include/hbapiitm.h
  * include/hbextern.ch
  * include/hbdefs.h
  * include/hbsetup.h
  * include/hbapi.h
    - Deleted code guarded with (previously disabled) HB_LEGACY_LEVEL2

  * include/rdd.api
  * include/clipdefs.h
    + Permanently enabled HB_LEGACY_LEVEL2 related changes.

  * contrib/xhb/bkgtsks.c
    - Deleted HB_OS_WIN_USED. It wasn't used.

  * include/hbapi.h
  * src/vm/cmdarg.c
    * hb_winmainArgGet() changed to not use Windows types.
      This function is declared in hbapi.h and this header
      shouldn't depend on windows.h.

  * include/hbwince.h
  * include/hbsetup.h
    * HB_OS_HAS_DRIVE_LETTER is now configured in central
      place (hbsetup.h) for WinCE platform also.

  * include/hbwince.h
  * include/hbdefs.h
    * Windows (CE and not-CE) specific declarations moved from
      hbwince.h to hbdefs.h.

  * include/hbdefs.h
    % hbwince.h inclusion now better guarded to not include it
      for non WinCE platforms.
    + HB_OS_WIN_USED macro will now autodetected by checking
      whether windows.h was included before this header.
      This is required for hbwince.h. I don't like it, since
      hbapi.h still depends on windows.h for WinCE platform, 
      which still ties us to unnecessary windows.h inclusion 
      rules. Rather, hbwince.h should be included directly
      by .c files when needed and when HB_OS_WIN_CE is defined.
      After all this our little Windows API implementation 
      for compilers which need it.

  * include/hbdefs.h
  * include/hbwmain.c
    + hb_winmainArgInit() declaration moved to hbwmain.c, the
      only place where this is used.
    * Deleted HB_EXPORT from hb_winmainArgInit. Pls speak up if
      this is wrong. It's possible to move this back to hbdefs.h,
      but parameter types should be changed to ANSI ones.

  * contrib/gtwvg/gtwvg.c
  * contrib/gtwvg/gtwvg.h
  * contrib/gtwvg/wvggui.c
  * contrib/gtwvg/wvgcuig.c
  * contrib/gtwvg/wvggui.h
  * contrib/gtwvg/wvgwin.c
  * contrib/gtwvg/wvgutils.c
  * contrib/gtwvg/wvgcore.c
  * contrib/gtwvg/wvgwing.c
    - Deleted HB_OS_WIN_USED. Now it should work without it.
      windows.h was already included in non-official method, so
      it's now okay also.
2010-02-09 01:13:25 +00:00
Przemyslaw Czerpak
42d8c77acc 2010-02-08 20:24 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicdp.h
  * harbour/src/rtl/cdpapi.c
    * replaced 'unsigned char' with 'HB_UCHAR'

  * harbour/src/rtl/cdpapihb.c
  * harbour/contrib/hbwin/wapi_shellapi.c
    % minor optimization

  * harbour/src/vm/maindllp.c
    * use already existing HB_MACRO2STRING() macro instead of locally
      defined HB_DLLSTR_()
    * respect defined but not used so far HB_DLL_NAMEMT and HB_DLL_NAMEMT2
2010-02-08 19:24:22 +00:00
Viktor Szakats
ab27cebc96 2010-02-07 14:18 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/pp/ppcore.c
  * src/vm/itemapi.c
  * src/vm/dynlibhb.c
  * src/vm/set.c
  * src/debug/dbgentry.c
  * src/common/expropt1.c
  * src/common/hbstr.c
  * src/common/expropt2.c
  * src/macro/macro.yyc
  * src/macro/macro.y
  * src/macro/macro.yyh
  * src/rtl/scroll.c
  * src/rtl/gtdos/gtdos.c
  * src/rtl/gtwin/gtwin.c
  * src/rtl/gttrm/gttrm.c
  * src/rtl/transfrm.c
  * src/rtl/dates.c
  * src/rtl/filesys.c
  * src/rtl/chrasc.c
  * src/rtl/cdpapi.c
  * src/rtl/hbi18n1.c
  * src/rtl/itemseri.c
  * src/rtl/hbhex.c
  * src/rtl/cdpapihb.c
  * src/rdd/dbsql.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbf1.c
  * src/rdd/hsx/hsx.c
  * src/rdd/hbsix/sxutil.c
  * src/rdd/hbsix/sxcompr.c
  * src/rdd/hbsix/sxcrypt.c
  * src/compiler/compi18n.c
  * src/compiler/complex.c
  * src/compiler/genc.c
  * src/compiler/harbour.yyc
  * src/compiler/harbour.y
  * src/compiler/harbour.yyh
  * include/hbpp.h
  * include/hbapicdp.h
  * include/hbrddnsx.h
  * include/hbexprb.c
  * ChangeLog
  * contrib/hbct/screen2.c
  * contrib/hbct/pos1.c
  * contrib/hbct/screen1.c
  * contrib/hbct/token1.c
  * contrib/hbct/disk.c
  * contrib/xhb/xhbmsgs.c
  * contrib/hbnf/ftattr.c
    * UCHAR -> HB_UCHAR
    ; NOTE: In cdp subsystem 'unsigned char' is used instead of HB_UCHAR
            in many places, maybe it needs cleanup (I've found 
            one inconsistency in a function declaration).
    ; QUESTION: There is one suspiciously looking usage:
                ftattr.c / iColor = ( HB_UCHAR ) *pAttrib++;
                Is it ok?
2010-02-07 13:19:33 +00:00
Viktor Szakats
f435054ba7 2010-02-05 13:54 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/gttone.c
    + Using ANSI C types.
    ! ULONG -> DWORD for Windows API calls.

  * src/rtl/direct.c
    ! ULONG -> HB_FATTR

  * src/rtl/itemseri.c
  * include/hbapiitm.h
    * ULONG -> HB_SIZE

  * src/rtl/samples.c
    + Using ANSI C types. This fixes possible
      incompatibilities with original .prg implementation
      in Clipper.

  * contrib/hbhpdf/harupdf.c
    * Conversion to libharu BOOL value cleaned.

  * include/hbapicdp.h
  * utils/hbmk2/hbmk2.prg
    * Formatting.
2010-02-05 12:55:25 +00:00
Viktor Szakats
d8df983663 2010-02-01 01:28 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/Makefile
  * src/rtl/cdpapi.c
  + src/rtl/cdpapihb.c
  * include/hbapicdp.h
    + Moved Harbour level functions to a separate file.
      I had to rename and publish three static functions.
      Eventually the low level part should go to hbcommon lib.
    ; TODO: HB_CDPLIST() is still to be moved, I couldn't find out elegant
            low-level API to solve it.
2010-02-01 00:29:02 +00:00
Viktor Szakats
003fd7c41e 2010-01-14 18:01 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/strclear.c
    + HB_STRCLEAR() return value will now precisely inform about
      successful clear operation. Thanks to Mindaugas.

  * src/vm/hashfunc.c
  * src/vm/macro.c
  * src/vm/strapi.c
  * src/vm/runner.c
  * src/vm/estack.c
  * src/vm/codebloc.c
  * src/vm/hashes.c
  * src/vm/maindll.c
  * src/vm/dynsym.c
  * src/vm/debug.c
  * src/vm/itemapi.c
  * src/vm/garbage.c
  * src/vm/asort.c
  * src/vm/hvm.c
  * src/vm/cmdarg.c
  * src/vm/mainstd.c
  * src/vm/maindllp.c
  * src/vm/arrays.c
  * src/vm/task.c
  * src/vm/fm.c
  * src/vm/proc.c
  * src/vm/thread.c
  * src/vm/memvars.c
  * src/vm/arrayshb.c
  * src/vm/eval.c
  * src/vm/extend.c
  * src/vm/dynlibhb.c
  * src/vm/set.c
  * src/vm/classes.c
  * src/debug/dbgentry.c
  * src/common/hbgete.c
  * src/common/hbffind.c
  * src/common/hbver.c
  * src/common/hbprintf.c
  * src/common/hbfsapi.c
  * src/common/hbstr.c
  * src/common/expropt1.c
  * src/common/expropt2.c
  * src/common/hbdate.c
  * src/common/strwild.c
  * src/common/hbhash.c
  * src/rtl/gtdos/gtdos.c
  * src/rtl/fscopy.c
  * src/rtl/run.c
  * src/rtl/gtwin/gtwin.c
  * src/rtl/gtxwc/gtxwc.h
  * src/rtl/gtxwc/gtxwc.c
  * src/rtl/math.c
  * src/rtl/empty.c
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/trim.c
  * src/rtl/filehb.c
  * src/rtl/hbtoken.c
  * src/rtl/fstemp.c
  * src/rtl/gtchrmap.c
  * src/rtl/strmatch.c
  * src/rtl/gtstd/gtstd.c
  * src/rtl/gttrm/gttrm.c
  * src/rtl/padr.c
  * src/rtl/hbstrfmt.c
  * src/rtl/transfrm.c
  * src/rtl/fserr.c
  * src/rtl/minmax.c
  * src/rtl/hbfeof.c
  * src/rtl/dates.c
  * src/rtl/padc.c
  * src/rtl/gtcgi/gtcgi.c
  * src/rtl/errapi.c
  * src/rtl/version.c
  * src/rtl/hbregexc.c
  * src/rtl/hbrandom.c
  * src/rtl/strtran.c
  * src/rtl/hbprocfn.c
  * src/rtl/hbsocket.c
  * src/rtl/hbinet.c
  * src/rtl/copyfile.c
  * src/rtl/errintlo.c
  * src/rtl/gtapi.c
  * src/rtl/filesys.c
  * src/rtl/padl.c
  * src/rtl/hbregex.c
  * src/rtl/hbbit.c
  * src/rtl/isprint.c
  * src/rtl/saverest.c
  * src/rtl/diskspac.c
  * src/rtl/console.c
  * src/rtl/spfiles.c
  * src/rtl/gtos2/gtos2.c
  * src/rtl/philes.c
  * src/rtl/hbbffnc.c
  * src/rtl/hbgtcore.c
  * src/rtl/cdpapi.c
  * src/rtl/dirdrive.c
  * src/rtl/hbi18n1.c
  * src/rtl/gtclip.c
  * src/rtl/mlcfunc.c
  * src/rtl/gtapiu.c
  * src/rtl/accept.c
  * src/rtl/idle.c
  * src/rtl/itemseri.c
  * src/rtl/hbrunfun.c
  * src/rtl/setcolor.c
  * src/rtl/setkey.c
  * src/rtl/gtsln/mousesln.c
  * src/rtl/gtsln/gtsln.c
  * src/rtl/gtsln/kbsln.c
  * src/rtl/gtsln/gtsln.h
  * src/rtl/disksphb.c
  * src/rtl/strc.c
  * src/rtl/gtpca/gtpca.c
  * src/rtl/gtgui/gtgui.c
  * src/rtl/hbhex.c
  * src/rtl/trace.c
  * src/rtl/gt_tpl/gt_tpl.c
  * src/rtl/inkeyapi.c
  * src/rtl/filebuf.c
  * src/rtl/gete.c
  * src/rtl/setcurs.c
  * src/rtl/hbproces.c
  * src/rtl/langapi.c
  * src/rtl/gtwvt/gtwvt.h
  * src/rtl/gtwvt/gtwvt.c
  * src/rtl/mouse53.c
  * src/rtl/fssize.c
  * src/rtl/hbbyte.c
  * src/rtl/mouseapi.c
  * src/rtl/memofile.c
  * src/rtl/valtostr.c
  * src/rtl/file.c
  * src/rtl/val.c
  * src/rtl/rat.c
  * src/rdd/hbsix/sxcompr.c
  * include/hbvmpub.h
  * include/hbset.h
  * include/hbapicdp.h
  * include/hbstack.h
  * include/hbapilng.h
  * include/hbgtcore.h
  * include/hbapifs.h
  * include/hbthread.h
  * include/hbxvm.h
  * include/hbmacro.h
  * include/hbtypes.h
  * include/hbapi.h
  * include/hbapiitm.h
  * include/hbznet.h
  * include/hbvm.h
  * include/hbapidbg.h
  * include/hbcomp.h
  * include/hbsxfunc.h
  * include/hbcompdf.h
  * include/hbmather.h
  * include/hbapistr.h
  * include/hbwmain.c
  * include/hbexpra.c
  * include/hbexprop.h
  * include/hbsocket.h
  * include/hbapigt.h
  * include/hbapicls.h
  * include/hbhash.h
  * include/hbregex.h
  * include/hbexprb.c
  * include/hbdate.h
  * contrib/gtalleg/gtalleg.c
  * contrib/xhb/hboutdbg.c
  * contrib/xhb/hbserv.h
  * contrib/xhb/bkgtsks.c
  * contrib/xhb/dbf2txt.c
  * contrib/xhb/xhbis.c
  * contrib/xhb/fparse.c
  * contrib/xhb/xhb.h
  * contrib/xhb/xhbsave.c
  * contrib/xhb/xhbmsgs.c
  * contrib/xhb/freadlin.c
  * contrib/xhb/txtline.c
  * contrib/xhb/dbgfxc.c
  * contrib/xhb/xhberrc.c
  * contrib/xhb/filestat.c
  * contrib/xhb/xhbcopyf.c
  * contrib/xhb/hbnxs.h
  * contrib/xhb/hbserv.c
  * contrib/xhb/cstructc.c
  * contrib/xhb/xhbfunc.c
  * contrib/hbmzip/hbmzip.c
  * contrib/gtqtc/gtqtc.cpp
  * contrib/gtwvg/gtwvg.c
  * contrib/gtwvg/gtwvg.h
  * contrib/gtwvg/wvggui.c
  * contrib/gtwvg/wvgcuig.c
  * contrib/gtwvg/wvggui.h
  * contrib/gtwvg/wvgwin.c
  * contrib/gtwvg/wvgutils.c
  * contrib/gtwvg/wvgcore.c
  * contrib/gtwvg/wvgwing.c
  * contrib/hbmisc/hb_f.c
  * contrib/hbmisc/dates2.c
  * contrib/hbwin/hbwapi.h
  * contrib/hbbtree/tests/ctest.c
    * BOOL  -> HB_BOOL
    * TRUE  -> HB_TRUE
    * FALSE -> HB_FALSE
    ; If possible please try to verify me, at least your own are of interest
      or expertise. Look for HB_BOOL/HB_TRUE/HB_FALSE usage in WINAPI calls,
      if you see such thing, it's wrong. Also some, HB_BOOL WINAPI BOOL
      implicit conversions may need to be cleaned.
    ; I didn't touch PP, RDD, SDD and compiler parts yet.
    ; In few places it's possible that some in-line comments are disaligned
      after this operation.
2010-01-14 17:59:30 +00:00
Viktor Szakats
528989c718 2010-01-14 11:31 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/set.c
  * src/debug/dbgentry.c
  * src/common/hbgete.c
  * src/common/hbffind.c
  * src/common/hbwince.c
  * src/common/hbstr.c
  * src/common/hbmem.c
  * src/common/strwild.c
  * src/common/hbhash.c
  * src/rtl/lennum.c
  * src/rtl/strxor.c
  * src/rtl/strcase.c
  * src/rtl/hbzlibgz.c
  * src/rtl/trim.c
  * src/rtl/base64c.c
  * src/rtl/binnum.c
  * src/rtl/hbtoken.c
  * src/rtl/ampm.c
  * src/rtl/descend.c
  * src/rtl/strpeek.c
  * src/rtl/replic.c
  * src/rtl/padr.c
  * src/rtl/hbstrfmt.c
  * src/rtl/hbntos.c
  * src/rtl/hbadler.c
  * src/rtl/at.c
  * src/rtl/fserr.c
  * src/rtl/hbcrc.c
  * src/rtl/hbmd5.c
  * src/rtl/hbascii.c
  * src/rtl/padc.c
  * src/rtl/strzero.c
  * src/rtl/hbregexc.c
  * src/rtl/strtran.c
  * src/rtl/hbsocket.c
  * src/rtl/hbinet.c
  * src/rtl/strtoexp.c
  * src/rtl/gtapi.c
  * src/rtl/filesys.c
  * src/rtl/padl.c
  * src/rtl/hbregex.c
  * src/rtl/saverest.c
  * src/rtl/right.c
  * src/rtl/hbbffnc.c
  * src/rtl/cdpapi.c
  * src/rtl/hbi18n1.c
  * src/rtl/gtclip.c
  * src/rtl/mlcfunc.c
  * src/rtl/left.c
  * src/rtl/xsavescr.c
  * src/rtl/hardcr.c
  * src/rtl/setkey.c
  * src/rtl/hbzlib.c
  * src/rtl/strc.c
  * src/rtl/stuff.c
  * src/rtl/hbhex.c
  * src/rtl/trace.c
  * src/rtl/samples.c
  * src/rtl/inkeyapi.c
  * src/rtl/inkey.c
  * src/rtl/mtran.c
  * src/rtl/gete.c
  * src/rtl/mouse53.c
  * src/rtl/colorind.c
  * src/rtl/ati.c
  * src/rtl/soundex.c
  * src/rtl/memofile.c
  * src/rtl/valtostr.c
  * src/rtl/rat.c
  * include/hbapicdp.h
  * include/hbgtcore.h
  * include/hbapifs.h
  * include/hbapi.h
  * include/hbchksum.h
  * include/hbapigt.h
  * include/hbhash.h
  * contrib/xhb/hboutdbg.c
  * contrib/xhb/hbxml.c
  * contrib/xhb/hbcrypt.c
  * contrib/xhb/dbf2txt.c
  * contrib/xhb/xstrdel.c
  * contrib/xhb/xhbsave.c
  * contrib/xhb/hbcomprs.c
  * contrib/xhb/datesxhb.c
  * contrib/xhb/xhbat.c
  * contrib/xhb/xhbmsgs.c
  * contrib/xhb/xhbarr.c
  * contrib/xhb/txtline.c
  * contrib/xhb/xhbtrim.c
  * contrib/xhb/hbserv.c
  * contrib/xhb/cstructc.c
  * contrib/xhb/xhbfunc.c
    * ULONG -> HB_SIZE

  * src/rtl/langapi.c
  * include/hbapilng.h
    * ULONG -> int
    + Marked hb_langDGetErrorDesc() with HB_LEGACY_LEVEL3.

  * src/common/hbprintf.c
    ! ULONG -> int

  * src/debug/dbgentry.c
    * Formatting.
2010-01-14 10:37:49 +00:00
Przemyslaw Czerpak
6dfe3f612f 2010-01-05 03:51 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicdp.h
    * removed unused in current code HB_CODEPAGE_INIT() macro
2010-01-05 02:52:14 +00:00
Przemyslaw Czerpak
8075ce48bf 2009-12-31 03:17 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicdp.h
  * harbour/src/codepage/Makefile
  - harbour/src/codepage/ucyuscii.c
  + harbour/src/codepage/uc646_yu.c
  * harbour/src/codepage/cphr437.c
  * harbour/src/codepage/cpsl437.c
    * renamed internal unicode table name YUSCII->ISO-646-YU
2009-12-31 02:18:15 +00:00
Przemyslaw Czerpak
bbd5bcb2e2 2009-12-30 21:22 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/nortl/nortl.c
    ! added hb_xtraced()

  * harbour/src/common/hbstr.c
    * do not fill unused part of buffer with '\0' bytes in
      hb_strncpy(), hb_strncpyLower(), hb_strncpyUpper(),
      hb_strncpyUpperTrim(), hb_strncpyTrim()

  * harbour/src/common/hbtrace.c
    % small optimization in building Unicode OutputDebugString() message

  * harbour/src/codepage/Makefile
  * harbour/include/hbapicdp.h
  + harbour/src/codepage/ucyuscii.c
    + added YUSCII unicode table

  * harbour/src/codepage/cphr437.c
  * harbour/src/codepage/cpsl437.c
    ! fixed unicode table used in HR437 and SL437 Harbour CPs.
      It's not CP-437 but YUSCII
    - removed my old note "TOFIX: is it really CP-437?"
    TOFIX: change Harbour names of above CPs, i.e. to HRYU and SLYU

  * harbour/src/codepage/uckam.c
    * removed TOFIX note I forgot to remove when committed correct
      Kamenicky Unicode table.

  * harbour/src/codepage/uckoi8.c
  * harbour/src/codepage/uc857.c
  * harbour/src/codepage/uc1250.c
  * harbour/src/codepage/uc1254.c
  * harbour/src/codepage/uc866.c
  * harbour/src/codepage/uc850.c
  * harbour/src/codepage/uc1251.c
  * harbour/src/codepage/ucmaz.c
  * harbour/src/codepage/uc1252.c
  * harbour/src/codepage/uc8859_1.c
  * harbour/src/codepage/uc88591b.c
  * harbour/src/codepage/uc852.c
  * harbour/src/codepage/uc737.c
  * harbour/src/codepage/uc1253.c
  * harbour/src/codepage/uc1257.c
  * harbour/src/codepage/uc8859_2.c
    * updated some of my old copyright messages
2009-12-30 20:23:35 +00:00
Przemyslaw Czerpak
12dc010686 2009-12-11 04:13 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapiitm.h
  * harbour/src/vm/classes.c
    * added new internal HVM macro

  * harbour/src/vm/thread.c
    + added new function
         hb_threadOnceInit( @<item> <value> ) -> <lInitialized>
      It assigns <value> to <item> if <item> is NIL in MT safe way so it's
      assigned only once. It's reduced but faster version of hb_threadOnce()

  * harbour/include/hbapicdp.h
    * define HB_WCHAR as wchar_t on Windows platforms for compilers which
      refuse to make conversions between types using the same base type.

  * harbour/contrib/hbwin/win_dll.c
    * code cleanup
2009-12-11 03:13:24 +00:00
Viktor Szakats
b69e1a68c2 2009-12-02 01:55 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/itemapi.c
  * src/vm/hvm.c
  * src/vm/set.c
  * src/rtl/gtdos/gtdos.c
  * src/rtl/gtwin/gtwin.c
  * src/rtl/gtxwc/gtxwc.h
  * src/rtl/gtxwc/gtxwc.c
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/gtcrs/gtcrs.h
  * src/rtl/gtstd/gtstd.c
  * src/rtl/gttrm/gttrm.c
  * src/rtl/gtcgi/gtcgi.c
  * src/rtl/hbgtcore.c
  * src/rtl/gtsln/gtsln.c
  * src/rtl/gtsln/kbsln.c
  * src/rtl/gtsln/gtsln.h
  * src/rtl/gtpca/gtpca.c
  * src/rtl/gtwvt/gtwvt.c
  * src/rdd/dbfntx/dbfntx1.c
  * src/rdd/hbdbsort.c
  * src/rdd/sdf1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/delim1.c
  * src/rdd/dbf1.c
  * src/rdd/hsx/hsx.c
  * src/rdd/dbffpt/dbffpt1.c
  * doc/en-EN/lang.txt
  * include/hbrdddbf.h
  * include/hbapicdp.h
  * include/hbextern.ch
  * contrib/xhb/dbf2txt.c
  * contrib/gtqtc/gtqtc.cpp
  * contrib/gtwvg/gtwvg.c
  * contrib/gtwvg/wvggui.c
  * contrib/hbbmcdx/bmdbfcdx.c
  * examples/hbdoc/examples/core_es/lang.txt
    - Deleted HB_CDP_SUPPORT_OFF.
2009-12-02 00:57:48 +00:00
Przemyslaw Czerpak
b7a1bda9c0 2009-11-10 18:24 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/tests/cpinfo.prg
  * harbour/include/hbapicdp.h
  * harbour/include/hbcdpreg.h
    * modified format used for CP definition using binary tables
    + added Latin character striping from non Latin based CPs
    * changed warning message to be more clear. In most of cases when
      this message is shown:
         Warning: irregular CP which needs verification for human
                  readable definition in Harbour
      it should be possible to create human non binary CP definition.
      Usually it should be enough to copy HB_CP_UPPER and HB_CP_LOWER
      strings and verify if final result are compatible by comparing
      automatically generated .c file with binary tables. If you will
      find some CPs where it's not compatible then please inform me
      about it and I'll try to update cpinfo.prg
      When this message is shown:
         Warning: irregular CP which needs special definition in Harbour
                  using binary tables generated by this program
      then binary tables have to be used to replicate exact CP conditions.
      If no warning message is shown then human readable form of CP
      definition can be used without (I hope ;)) additional verification.

  * harbour/src/codepage/cpno865.c
  * harbour/src/codepage/cpit850m.c
  * harbour/src/codepage/cpis850.c
  * harbour/src/codepage/cpfr850.c
  * harbour/src/codepage/cpes850c.c
  * harbour/src/codepage/cpsv850m.c
  * harbour/src/codepage/cpde850m.c
  * harbour/src/codepage/cppt860.c
  * harbour/src/codepage/cpnl850m.c
  * harbour/src/codepage/cpnl850.c
  * harbour/src/codepage/cpde850.c
  * harbour/src/codepage/cpfi850.c
  * harbour/src/codepage/cpit850.c
  * harbour/src/codepage/cpis861.c
  * harbour/src/codepage/cpes850m.c
  * harbour/src/codepage/cpfr850m.c
  * harbour/src/codepage/cpsv437c.c
  * harbour/src/codepage/cpdk865.c
  * harbour/src/codepage/cpgr437.c
    * updated for new format
2009-11-10 17:25:29 +00:00
Przemyslaw Czerpak
e14470365f 2009-11-10 02:35 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/cdpapi.c
  * harbour/include/hbapicdp.h
    + added new C functions:
         hb_cdpU16AsStrLen(), hb_cdpU16ToStr(),
         hb_cdpStrAsU16Len(), hb_cdpStrToU16()

  * harbour/contrib/gtwvg/wvgutils.c
    ! fixed NULL used by mistake instead of 0
2009-11-10 01:35:49 +00:00
Przemyslaw Czerpak
bebed22350 2009-11-09 21:18 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/ChangeLog
    * marked last TOFIX note as [DONE] - thanks to Mindaugas

  * harbour/src/rtl/cdpapi.c
    * use 1-st upper<->lower conversion pair instead of last one
      if more then one conversion pair exist - it's more natural
      form in most of cases
    % skip translation code when two different CDP modules use
      the same Unicode table

  * harbour/tests/cpinfo.prg
    + detect CPs which have corresponding upper or lower characters
      for non alpha characters and inform about it.
      Such situations is in NTXSPA.OBJ so such CP can be fully
      replicated in Harbour using alternative CP definition only
      which uses static tables.

  * harbour/src/codepage/cpes850c.c
  * harbour/src/codepage/cpesisoc.c
  * harbour/src/codepage/cpeswinc.c
    ! removed the hack with changed order for characters which do not
      have corresponding upper latter.
      Now there is only one difference between ES850C and Clipper NTXSPA.OBJ
      In NTXSPA 'UPPER( Chr( 163 ) )' gives "U" though Chr( 163 ) is not
      marked as letter and not sorted with other letters. For me it looks
      like a bug anyhow if you want to fully replicate NTXSPA.OBJ in Harbour
      then current cpes850c.c code should be replaced by code generated
      using tests/cpinfo.prg compiler by clipper and linked with ntxspa.obj.
      Such code should be generated using:
         cpinfo.exe es850c "Spanish CP-850 (ntxspa.obj compatible)" 850

      Now translations can be done between CPs using different number of
      letters or even defined for different languages so I have question
      to Spanish users: Do you need ESISOC and ESWINC for anything?
      If not then I would like to remove them.
      Similar situation is with HUISOS and HUWINS.

  * harbour/include/hbapicdp.h
  * harbour/src/rtl/cdpapi.c
  * harbour/src/codepage/ucmacce.c
  * harbour/src/codepage/uckoi8.c
  * harbour/src/codepage/uc885910.c
  * harbour/src/codepage/ucmacice.c
  * harbour/src/codepage/uc885914.c
  * harbour/src/codepage/uc874.c
  * harbour/src/codepage/uc857.c
  * harbour/src/codepage/uc1250.c
  * harbour/src/codepage/uc1254.c
  * harbour/src/codepage/uc1258.c
  * harbour/src/codepage/uckoi8u.c
  * harbour/src/codepage/uckam.c
  * harbour/src/codepage/uc424.c
  * harbour/src/codepage/ucmacrom.c
  * harbour/src/codepage/uc862.c
  * harbour/src/codepage/cpesisoc.c
  * harbour/src/codepage/uc866.c
  * harbour/src/codepage/uc8859_3.c
  * harbour/src/codepage/cpes850c.c
  * harbour/src/codepage/uc8859_7.c
  * harbour/src/codepage/ucmacgrk.c
  * harbour/src/codepage/uc037.c
  * harbour/src/codepage/uc850.c
  * harbour/src/codepage/uc885911.c
  * harbour/src/codepage/uc885915.c
  * harbour/src/codepage/uc875.c
  * harbour/src/codepage/uc1251.c
  * harbour/src/codepage/uc1255.c
  * harbour/src/codepage/uc863.c
  * harbour/src/codepage/ucmaz.c
  * harbour/src/codepage/uc1026.c
  * harbour/src/codepage/uc8859_4.c
  * harbour/src/codepage/uc8859_8.c
  * harbour/src/codepage/uc855.c
  * harbour/src/codepage/cpeswinc.c
  * harbour/src/codepage/uc885916.c
  * harbour/src/codepage/ucascii.c
  * harbour/src/codepage/uc1252.c
  * harbour/src/codepage/uc1256.c
  * harbour/src/codepage/ucatari.c
  * harbour/src/codepage/uc860.c
  * harbour/src/codepage/ucmaccyr.c
  * harbour/src/codepage/ucmik.c
  * harbour/src/codepage/uc864.c
  * harbour/src/codepage/uc1006.c
  * harbour/src/codepage/uc1125.c
  * harbour/src/codepage/uc8859_1.c
  * harbour/src/codepage/uc88591b.c
  * harbour/src/codepage/uc8859_5.c
  * harbour/src/codepage/uc8859_9.c
  * harbour/src/codepage/uc852.c
  * harbour/src/codepage/ucnext.c
  * harbour/src/codepage/uc737.c
  * harbour/src/codepage/uc885913.c
  * harbour/src/codepage/ucmactrk.c
  * harbour/src/codepage/uc856.c
  * harbour/src/codepage/uc775.c
  * harbour/src/codepage/uc1253.c
  * harbour/src/codepage/uc1257.c
  * harbour/src/codepage/uc500.c
  * harbour/src/codepage/uc861.c
  * harbour/src/codepage/uc865.c
  * harbour/src/codepage/uc869.c
  * harbour/src/codepage/uc8859_2.c
  * harbour/src/codepage/uc8859_6.c
    % declare Unicode tables with 'const' qualifier
2009-11-09 20:22:48 +00:00
Przemyslaw Czerpak
7ec5d4cc53 2009-11-08 02:43 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/vm/set.c
    ! fixed small typos in returned values (FALSE instead of NULL and 0)

  * harbour/src/vm/estack.c
    * make calling hb_stackTotalItems() safe in MT mode when stack is not
      initialized - now this function can be used to check if HVM stack
      exists and is initialized in ST and MT mode

  * harbour/src/rtl/errintlo.c
    ! fixed at least 4 GPF traps exploited when hb_errInternal() was called
      and HVM stack was not initialized

  * harbour/include/Makefile
  + harbour/include/hbcdpreg.h
  * harbour/include/hbapicdp.h
  * harbour/src/rtl/cdpapi.c
    + added new CDP API which fixes many errors and limitations in old
      implementation.
      Warning !!! some very serious bugs in national sorting have been
                  fixed. It may cause that old indexes using some national
                  sorting will not be compatible. Please rebuild existing
                  indexes.

  * harbour/src/vm/itemapi.c
  * harbour/src/rdd/hsx/hsx.c
  * harbour/src/rdd/dbfntx/dbfntx1.c
  * harbour/src/rdd/dbfnsx/dbfnsx1.c
  * harbour/src/rdd/dbfcdx/dbfcdx1.c
  * harbour/contrib/hbbmcdx/bmdbfcdx.c
  * harbour/contrib/rddads/adsx.c
  * harbour/contrib/rddsql/sqlmix.c
    * updated to work with new CDP API
    TOFIX: update adsx.c and sqlmix.c to use hb_cdpcmp() which resepcts
           sorting with accented and mulitybyts characters.
           Mindaugas, can you update above code?

  * harbour/src/codepage/cpbg866.c
  * harbour/src/codepage/cpbgiso.c
  * harbour/src/codepage/cpbgmik.c
  * harbour/src/codepage/cpbgwin.c
  * harbour/src/codepage/cpcs852.c
  * harbour/src/codepage/cpcsiso.c
  * harbour/src/codepage/cpcskam.c
  * harbour/src/codepage/cpcswin.c
  * harbour/src/codepage/cpde850.c
  * harbour/src/codepage/cpdeiso.c
  * harbour/src/codepage/cpdewin.c
  * harbour/src/codepage/cpel737.c
  * harbour/src/codepage/cpeliso.c
  * harbour/src/codepage/cpelwin.c
  * harbour/src/codepage/cpes850.c
  * harbour/src/codepage/cpes850c.c
  * harbour/src/codepage/cpesiso.c
  * harbour/src/codepage/cpesisoc.c
  * harbour/src/codepage/cpeswin.c
  * harbour/src/codepage/cpeswinc.c
  * harbour/src/codepage/cpeswinm.c
  * harbour/src/codepage/cpfr850.c
  * harbour/src/codepage/cpfriso.c
  * harbour/src/codepage/cpfrwin.c
  * harbour/src/codepage/cphr437.c
  * harbour/src/codepage/cphr852.c
  * harbour/src/codepage/cphrwin.c
  * harbour/src/codepage/cphu852.c
  * harbour/src/codepage/cphu852s.c
  * harbour/src/codepage/cphuiso.c
  * harbour/src/codepage/cphuisos.c
  * harbour/src/codepage/cphuwin.c
  * harbour/src/codepage/cphuwins.c
  * harbour/src/codepage/cpit437.c
  * harbour/src/codepage/cpit850.c
  * harbour/src/codepage/cpitisb.c
  * harbour/src/codepage/cpitiso.c
  * harbour/src/codepage/cpitwin.c
  * harbour/src/codepage/cpltwin.c
  * harbour/src/codepage/cppl852.c
  * harbour/src/codepage/cppliso.c
  * harbour/src/codepage/cpplmaz.c
  * harbour/src/codepage/cpplwin.c
  * harbour/src/codepage/cppt850.c
  * harbour/src/codepage/cpptiso.c
  * harbour/src/codepage/cpro852.c
  * harbour/src/codepage/cproiso.c
  * harbour/src/codepage/cprowin.c
  * harbour/src/codepage/cpru866.c
  * harbour/src/codepage/cpruiso.c
  * harbour/src/codepage/cprukoi.c
  * harbour/src/codepage/cpruwin.c
  * harbour/src/codepage/cpsk852.c
  * harbour/src/codepage/cpskiso.c
  * harbour/src/codepage/cpskkam.c
  * harbour/src/codepage/cpskwin.c
  * harbour/src/codepage/cpsl437.c
  * harbour/src/codepage/cpsl852.c
  * harbour/src/codepage/cpsliso.c
  * harbour/src/codepage/cpslwin.c
  * harbour/src/codepage/cpsrwin.c
  * harbour/src/codepage/cpsv850.c
  * harbour/src/codepage/cpsvclip.c
  * harbour/src/codepage/cpsviso.c
  * harbour/src/codepage/cpsvwin.c
  * harbour/src/codepage/cptr857.c
  * harbour/src/codepage/cptriso.c
  * harbour/src/codepage/cptrwin.c
  * harbour/src/codepage/cpua1125.c
  * harbour/src/codepage/cpua866.c
  * harbour/src/codepage/cpuakoi.c
  * harbour/src/codepage/cpuawin.c
  * harbour/src/codepage/uc037.c
  * harbour/src/codepage/uc1006.c
  * harbour/src/codepage/uc1026.c
  * harbour/src/codepage/uc1125.c
  * harbour/src/codepage/uc1250.c
  * harbour/src/codepage/uc1251.c
  * harbour/src/codepage/uc1252.c
  * harbour/src/codepage/uc1253.c
  * harbour/src/codepage/uc1254.c
  * harbour/src/codepage/uc1255.c
  * harbour/src/codepage/uc1256.c
  * harbour/src/codepage/uc1257.c
  * harbour/src/codepage/uc1258.c
  * harbour/src/codepage/uc424.c
  * harbour/src/codepage/uc500.c
  * harbour/src/codepage/uc737.c
  * harbour/src/codepage/uc775.c
  * harbour/src/codepage/uc850.c
  * harbour/src/codepage/uc852.c
  * harbour/src/codepage/uc855.c
  * harbour/src/codepage/uc856.c
  * harbour/src/codepage/uc857.c
  * harbour/src/codepage/uc860.c
  * harbour/src/codepage/uc861.c
  * harbour/src/codepage/uc862.c
  * harbour/src/codepage/uc863.c
  * harbour/src/codepage/uc864.c
  * harbour/src/codepage/uc865.c
  * harbour/src/codepage/uc866.c
  * harbour/src/codepage/uc869.c
  * harbour/src/codepage/uc874.c
  * harbour/src/codepage/uc875.c
  * harbour/src/codepage/uc885910.c
  * harbour/src/codepage/uc885911.c
  * harbour/src/codepage/uc885913.c
  * harbour/src/codepage/uc885914.c
  * harbour/src/codepage/uc885915.c
  * harbour/src/codepage/uc885916.c
  * harbour/src/codepage/uc88591b.c
  * harbour/src/codepage/uc8859_1.c
  * harbour/src/codepage/uc8859_2.c
  * harbour/src/codepage/uc8859_3.c
  * harbour/src/codepage/uc8859_4.c
  * harbour/src/codepage/uc8859_5.c
  * harbour/src/codepage/uc8859_6.c
  * harbour/src/codepage/uc8859_7.c
  * harbour/src/codepage/uc8859_8.c
  * harbour/src/codepage/uc8859_9.c
  * harbour/src/codepage/ucascii.c
  * harbour/src/codepage/ucatari.c
  * harbour/src/codepage/uckam.c
  * harbour/src/codepage/uckoi8.c
  * harbour/src/codepage/uckoi8u.c
  * harbour/src/codepage/ucmacce.c
  * harbour/src/codepage/ucmaccyr.c
  * harbour/src/codepage/ucmacgrk.c
  * harbour/src/codepage/ucmacice.c
  * harbour/src/codepage/ucmacrom.c
  * harbour/src/codepage/ucmactrk.c
  * harbour/src/codepage/ucmaz.c
  * harbour/src/codepage/ucmik.c
  * harbour/src/codepage/ucnext.c
    * updated for new CP API
    Warning: please test all national CPs. I'm not able to test unknown for
             me national character conditions so it's possible that I made
             something wrong. Additionally current CP API does not have
             some limitations which existed in the old one so now some hacks
             or workarounds can be cleaned. I.e. now all translations are
             done using Unicode tables so it's not necessary to use the
             same number of characters to make them working.
             Updating CP files I've found the following potential problems
             in definitions which I haven't fixed or fixed only partially:

         cpes850c.c - update for new format removing hacks for old CP
                      implementation
         cpesisoc.c  > remove, it's not longer necessary
         cpeswinc.c /
         cpeswinm.c - it is the same as cpesiso.c so it should be removed

         cphu852.c  \
         cphu852s.c  \
         cphuiso.c    > update for new format removing hacks for old CP
         cphuwin.c   /  implementation

         cphuisos.c  > remove, it's not longer necessary
         cphuwins.c /

         cphr437.c  > does it really use CP-437? and ^]\[@~}|{` instead of
         cpsl437.c /  nationalletters or it uses different then 437 CP for
                      7-bit Croatian characters encoding. It's important
                      because without valid unicode table translations will
                      not work.

         cpit437.c  - update for new version if necessary (upper characters)

         cpsv850.c \
         cpsviso.c  > they had ACCENTED_INTERLEAVED but without ACCENTED_EQUAL
         cpsvwin.c /  so this setting was ignored. Now it's not ignored.

         cpsvclip.c - update for new format to be fully not only
                      "almost compatible with Clipper's NTXSWE.OBJ"

      For sure these are not all problems inherited from old CP
      implementation so please verify all existing CPs.

  * harbour/src/codepage/cp_tpl.c
    + added new example for CP definition. Working on new CPs please read
      this description:
         If accented characters need special sorting ( HB_CDP_ACSORT_EQUAL or
         HB_CDP_ACSORT_INTERLEAVE ) then you need to mark the accented
         characters with the symbol '~' before each of them, for example:
            a~_
         If there is two-character sequence, which is considered as one, it
         should be marked with '.' before and after it, for example:
            ... h.ch.i ...
         if such multibyte character has its own Unicode representation then
         this Unicode value can be set using '=' symbol, for example:
            ....h.ch=2A7C.i
         and it will be used in translations.

         The Upper case string and the Lower case string should use the
         same letters. If some characters does not have corresponding upper
         or lower letter then space ' ' can be used as dummy character, for
         example in German CPs there is no upper case 'scharfes S' letter
         so space is used as dummy character.

         HB_CP_LATIN should be 1 if the national alphabet is based on Latin
         otherwise 0

      Please note that now you can use two versions of CP definition.
      The 1-st one which uses human readable form similar to the old CP
      definition and 2-nd which uses directly final CP tables so it
      allows to replicate any conditions which existed in Clipper or
      any other compatible language which uses static tables.
      tests/cpinfo.prg can generate automatically .c files with new CP
      definition in the 2-nd version. Now if user wants to create new
      Harbour CP which is fully Clipper compatible he only has to
      compile and link cpinfo.prg with given national sorting module
      and then execute it with new Harbour CP name as 1-st parameter.
      cp<cpname>.c file is generated which can be added to Harbour
      repository. Optional 2-nd parameter is CP description and 3-rd
      is Harbour Unicode table ID (if not given 437 is used and should
      be updated by user in .c file). This method should definitely
      resolve any problems with creating Clipper compatible CP definition.
      It also allows to easy verify if CP definitions are compatible. It's
      enough to compare generated .c files.

  * harbour/src/codepage/uckam.c
    ! fixed Kamenicky Unicode table definition - it was Mazovia CP :)

  * harbour/src/codepage/cpde850.c
  * harbour/src/codepage/cpdeiso.c
  * harbour/src/codepage/cpdewin.c
    ! fixed CP wrongly encoded CP due to limitations in old CP definition.
      Now it's possible to define different number of upper an lower
      characters (space " " can be used as dummy character) and I used
      it to eliminate hack for 'scharfes S' which does not exists as upper
      case.
      Please clean other CPs which contain similar hacks.

  * harbour/src/codepage/cphu852.c
  * harbour/src/codepage/cphuiso.c
  * harbour/src/codepage/cphuwin.c
  * harbour/src/codepage/cpua866.c
    * removed dummy letters introduced for old translation code

  * harbour/src/rtl/natmsg.c
  * harbour/src/rtl/cdpapi.c
  * harbour/include/hbextern.ch
    + added HB_CDPINFO() function
    * redirected _NATSORTVER() function to HB_CDPINFO()

   To All,
      Please check your national sorting in current version and make
      any updates if necessary or inform me about found problems.
      I've checked that Polish CPs are working fine and all existing
      CPs passes my test program which verified some technical aspects
      of CP implementation. But I cannot verify if this definitions
      satisfy users in different countries.
2009-11-08 01:46:17 +00:00
Przemyslaw Czerpak
3fddd75f6b 2009-11-06 00:15 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/strcase.c
  * harbour/src/rtl/cdpapi.c
    * moved some CP dependent functions from strcase.c to cdpapi.c
      They will be reimplemented in new CDP code.

  * harbour/src/rtl/cdpapi.c
  * harbour/include/hbapicdp.h
    + added new C functions to eliminate direct access to HB_CODEPAGE
      structure by non core code

  * harbour/src/rtl/gtcgi/gtcgi.c
  * harbour/src/rtl/gtpca/gtpca.c
  * harbour/src/rtl/gtstd/gtstd.c
  * harbour/src/rtl/gtcrs/gtcrs.c
  * harbour/src/rtl/gtsln/gtsln.c
  * harbour/src/rtl/gttrm/gttrm.c
  * harbour/src/rtl/gtxwc/gtxwc.c
  * harbour/src/rtl/gtdos/gtdos.c
  * harbour/src/rtl/gtwin/gtwin.c
  * harbour/src/rtl/gtwvt/gtwvt.c
  * harbour/contrib/gtwvg/gtwvg.c
  * harbour/contrib/gtqtc/gtqtc.cpp
    * updated to eliminate direct access to HB_CODEPAGE structure
2009-11-05 23:16:00 +00:00
Przemyslaw Czerpak
e3050ec14b 2009-11-02 12:29 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/cdpapi.c
  * harbour/include/hbapicdp.h
    + added two new functions hb_cdpU16ToStr() and hb_cdpU16LEToStr()

  * harbour/doc/xhb-diff.txt
    ! fixed typo in code example reported by Guy Roussin
    ! fixed some other typos - i.e. in detached local description
2009-11-02 11:29:24 +00:00
Przemyslaw Czerpak
041227cec3 2009-10-31 02:25 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicdp.h
  * harbour/src/rtl/cdpapi.c
    * modified hb_cdpStringInU16Length() to return size in 'HB_WCHAR'
      instead of 'char' characters
    + added hb_cdpStrnToU16n(), hb_cdpStrnToU16LEn(),
      hb_cdpStringInU16Length2()
2009-10-31 01:25:38 +00:00
Przemyslaw Czerpak
ec05ab3c34 2009-10-30 17:54 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/common/hbffind.c
    * small buffer size fix

  * harbour/src/rtl/cdpapi.c
  * harbour/include/hbapicdp.h
    + added HB_WCAHR
    * changed USHORT to HB_WCHAR

  * harbour/src/codepage/ucmacce.c
  * harbour/src/codepage/uckoi8.c
  * harbour/src/codepage/uc885910.c
  * harbour/src/codepage/ucmacice.c
  * harbour/src/codepage/uc885914.c
  * harbour/src/codepage/uc874.c
  * harbour/src/codepage/uc857.c
  * harbour/src/codepage/uc1250.c
  * harbour/src/codepage/uc1254.c
  * harbour/src/codepage/uc1258.c
  * harbour/src/codepage/uckoi8u.c
  * harbour/src/codepage/uckam.c
  * harbour/src/codepage/uc424.c
  * harbour/src/codepage/ucmacrom.c
  * harbour/src/codepage/uc862.c
  * harbour/src/codepage/uc866.c
  * harbour/src/codepage/uc8859_3.c
  * harbour/src/codepage/uc8859_7.c
  * harbour/src/codepage/ucmacgrk.c
  * harbour/src/codepage/uc037.c
  * harbour/src/codepage/uc850.c
  * harbour/src/codepage/uc885911.c
  * harbour/src/codepage/uc885915.c
  * harbour/src/codepage/uc875.c
  * harbour/src/codepage/uc1251.c
  * harbour/src/codepage/uc1255.c
  * harbour/src/codepage/uc863.c
  * harbour/src/codepage/ucmaz.c
  * harbour/src/codepage/uc1026.c
  * harbour/src/codepage/uc8859_4.c
  * harbour/src/codepage/uc8859_8.c
  * harbour/src/codepage/uc855.c
  * harbour/src/codepage/uc885916.c
  * harbour/src/codepage/ucascii.c
  * harbour/src/codepage/uc1252.c
  * harbour/src/codepage/uc1256.c
  * harbour/src/codepage/ucatari.c
  * harbour/src/codepage/uc860.c
  * harbour/src/codepage/ucmaccyr.c
  * harbour/src/codepage/ucmik.c
  * harbour/src/codepage/uc864.c
  * harbour/src/codepage/uc1006.c
  * harbour/src/codepage/uc1125.c
  * harbour/src/codepage/uc8859_1.c
  * harbour/src/codepage/uc88591b.c
  * harbour/src/codepage/uc8859_5.c
  * harbour/src/codepage/uc8859_9.c
  * harbour/src/codepage/uc852.c
  * harbour/src/codepage/ucnext.c
  * harbour/src/codepage/uc737.c
  * harbour/src/codepage/uc885913.c
  * harbour/src/codepage/ucmactrk.c
  * harbour/src/codepage/uc856.c
  * harbour/src/codepage/uc775.c
  * harbour/src/codepage/uc1253.c
  * harbour/src/codepage/uc1257.c
  * harbour/src/codepage/uc500.c
  * harbour/src/codepage/uc861.c
  * harbour/src/codepage/uc865.c
  * harbour/src/codepage/uc869.c
  * harbour/src/codepage/uc8859_2.c
  * harbour/src/codepage/uc8859_6.c
    * changed USHORT to HB_WCHAR
2009-10-30 16:56:47 +00:00
Przemyslaw Czerpak
fc6853c254 2009-10-19 10:55 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/cdpapi.c
  * harbour/include/hbapicdp.h
    + added new functions: hb_cdpStrnToU16LE() and hb_cdpStringInU16Length()

  * harbour/contrib/rddads/rddads.h
    ! define (if not defined) x64 macro in all 64bit builds not only for
      MinGW64
    * define (if not defined) unix macro in all HB_OS_UNIX builds not only
      for Linux. TOCHECK: CygWIN builds.
2009-10-19 08:55:27 +00:00
Przemyslaw Czerpak
a33106ec02 2009-10-11 19:54 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicdp.h
  * harbour/src/rtl/cdpapi.c
  * harbour/src/rtl/is.c
    * moved hb_charIs*() functions to cdpapi.c file for easier updating
      in the future
    % optimized memory allocation for new codepages

  * harbour/contrib/hbct/pos1.c
    * use hb_charIs*() functions instead of accessing HB_CODEPAGE
      structure members
2009-10-11 17:55:14 +00:00
Przemyslaw Czerpak
f575a646e2 2009-09-29 14:11 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/cdpapi.c
    * allow to use "UTF8" CP in HB_TRANSLATE() function

  * harbour/include/hbapicdp.h
  * harbour/source/rtl/itemseri.c
    + added support for optional CP translation in serialization and
      deserialization operations
    + added two new public C functions: hb_itemSerializeCP() and
      hb_itemDeserializeCP()
    + added new optional paramters <cCdpIN> and <cCdpOUT> to HB_SERIALIZE()
      function:
         HB_SERIALIZE( <xValue>, [<lNumSize>], [<cCdpIN>], [<cCdpOUT>] )
               -> <cSerialized>
      By default VM CP is used.
    + added new optional paramters <cCdpIN> and <cCdpOUT> to HB_DESERIALIZE()
      function:
         HB_DESERIALIZE( <cSerialized>, [<cCdpIN>], [<cCdpOUT>] ) -> <xValue>
      By default VM CP is used.

  * harbour/source/rdd/dbfntx/dbfntx1.c
  * harbour/source/rdd/dbfnsx/dbfnsx1.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
    * formatting
2009-09-29 12:12:04 +00:00
Przemyslaw Czerpak
7c254a3168 2009-09-11 20:37 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
    + added hb_xgrabz() and hb_xmemdup() macros

  * harbour/include/hbapicdp.h
  * harbour/source/rtl/cdpapi.c
    + added new functions which can be used in translations changing the
      size of trnaslated strings:
         hb_cdpDup(), hb_cdpnDup(), hb_cdpnDup2(), hb_cdpnDup3(),
         hb_cdpnDupLen(), hb_cdpnDup2Len()
      Now hb_cdp[n]Translate() functions are depreciated.
    + added pseduto codepage "UTF8" which can be used in trnaslations only
    + added new function hb_cdpFindExt() which allows to chose pseudo CPs

  * harbour/include/hbapi.h
  * harbour/include/hbset.h
  * harbour/source/vm/set.c
  * harbour/source/nortl/nortl.c
    - removed old functions: hb_osEncode() and hb_osDecode() with low level
      code which was using static char to char translation table
    + add new functions hb_osEncodeCP() and hb_osDecodeCP() which can make
      translations changing the size of translated strings.
      Warning all parameters have to be initialized.
      Passing NULL in second parameter means that the 1-st is dynamically
      allocated and can be used as buffer and reallocated if necessary.
      if 2-nd parameter is not NULL then the 1-st one is used as const value.
      The size of allocated buffer can be passed by reference in 3-rd
      parameter and this value is updated on reallocation.
      If buffer is two small then new bigger one is allocated and old one
      freed.

  * harbour/source/vm/set.c
    + added support for UTF8 translations in _SET_OSCODEPAGE

  * harbour/source/vm/cmdarg.c
  * harbour/source/common/hbffind.c
  * harbour/source/rtl/filesys.c
  * harbour/source/rtl/philes.c
  * harbour/source/rtl/gete.c
  * harbour/source/rtl/net.c
  * harbour/source/rtl/hbproces.c
  * harbour/source/rtl/hbrunfun.c
  * harbour/source/rtl/run.c
  * harbour/contrib/hbwin/win_misc.c
  * harbour/contrib/hbwin/wapi_shellapi.c
  * harbour/contrib/hbwin/wapi_winbase.c
    * use new hb_osEncodeCP()/hb_osDecodeCP() functions

  * harbour/source/rtl/hbi18n1.c
  * harbour/source/rtl/gtxwc/gtxwc.c
  * harbour/source/rtl/gtpca/gtpca.c
    * replaced depreciated hb_cdp[n]Translate() functions with new
      hb_cdp[n]Dup*()

  * harbour/source/rtl/gtstd/gtstd.c
  * harbour/source/rtl/gtcgi/gtcgi.c
  * harbour/source/rtl/hbgtcore.c
    * replaced depreciated hb_cdp[n]Translate() functions with new
      hb_cdp[n]Dup*()
    + added support for UTF8 translations set by hb_setDispCP() and
      hb_setTermCP() functions

  * harbour/source/rdd/delim1.c
  * harbour/source/rdd/sdf1.c
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/rdd/dbfnsx/dbfnsx1.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  * harbour/source/rdd/dbfntx/dbfntx1.c
    * replaced depreciated hb_cdp[n]Translate() functions with new
      hb_cdp[n]Dup*()
    + added support for CP translations which can change the size of
      translated strings
    ! disabled memo field translations for fields marked as binary
    + added support for UTF8 translations.
      Using UTF8 as CP disables any national sorting in indexes.
      Warning: please remember that normal character fields in tables have
               fixed size and translation to UTF8 may increase the string
               and cut results.

  * harbour/source/rdd/dbf1.c
    ! fixed GPF in dbCreate() with empty struct table
2009-09-11 18:38:10 +00:00
Viktor Szakats
61962be0dd 2009-07-14 12:15 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* source/vm/extend.c
    ! Fixed hb_parvcx() to return "" instead of NULL when dealing
      with array parameters out of bound or non-string.
      (Borrowed from xhb by Ron Pinkas. Although the fix is
      implemented differently in Harbour)

  * source/rtl/gttrm/Makefile
    * CFLAGS -> HB_USER_CFLAGS

  * include/hbapicdp.h
  * include/hbextern.ch
  * source/lang/Makefile
  * source/codepage/Makefile
  + source/codepage/cpua1125.c
  + source/codepage/uc1125.c
    + Added DOS Ukrainian 1125 codepage
      (Borrowed from xhb. Work of Pavel Tsarenko)

  * utils/hbmk2/hbmk2.prg
    * OS/2 embedded compiler autodetection order fixed.
2009-07-14 10:16:48 +00:00
Przemyslaw Czerpak
4b74e7dc3c 2009-06-26 17:06 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbrddnsx.h
  * harbour/include/hbrddcdx.h
  * harbour/include/hbrddntx.h
    * synced with DBFAREAP

  * harbour/include/hbapicdp.h
  * harbour/source/rtl/cdpapi.c
    * changed UTF8 functions to use '[const] char' buffers instead
      for '[const] BYTE'

  * harbour/source/rtl/gtxwc/gtxwc.c
  * harbour/source/rtl/gttrm/gttrm.c
    * updated for above modification
2009-06-26 15:07:08 +00:00
Przemyslaw Czerpak
9e3ae49cb6 2009-06-26 03:16 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbvm.h
  * harbour/include/hbapicdp.h
  * harbour/include/hbinit.h
  * harbour/include/hbapi.h
  * harbour/source/vm/initsymb.c
  * harbour/source/vm/macro.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/maindllp.c
  * harbour/source/vm/fm.c
  * harbour/source/vm/memvars.c
  * harbour/source/vm/set.c
  * harbour/source/rtl/cdpapi.c
    * replace old hb_vmProcessSymbols() with hb_vmProcessSymbolsEx()
      and removed hb_vmProcessSymbolsEx() - it efectively force all .prg
      code recompilation
    * removed old hb_vmProcessDllSymbols()
    * changed 'char *' to 'const char *' in:
         const char * hb_cdpSelectID( const char * );
         const char * hb_cdpID( void );
         void hb_xsetfilename( const char * szValue );
         void hb_xsetinfo( const char * szValue );
         int hb_memvarScope( const char * szVarName, ULONG ulLength );
         const char * hb_macroGetType( HB_ITEM_PTR pItem );
2009-06-26 01:17:15 +00:00
Viktor Szakats
23127c393a 2009-02-17 12:48 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbapicdp.h
   * common.mak
   * source/codepage/Makefile
   + source/codepage/ucmacce.c
   + source/codepage/ucmacice.c
   + source/codepage/uc424.c
   + source/codepage/ucmacrom.c
   + source/codepage/ucmacgrk.c
   + source/codepage/uc037.c
   + source/codepage/uc875.c
   + source/codepage/uc1026.c
   + source/codepage/ucascii.c
   + source/codepage/ucatari.c
   + source/codepage/ucmaccyr.c
   + source/codepage/uc1006.c
   + source/codepage/ucnext.c
   + source/codepage/ucmactrk.c
   + source/codepage/uc856.c
   + source/codepage/uc500.c
     + Added missing codepages. Except for multi-byte ones,
       which I believe are not supported by the current
       Harbour infrastructure.

   * utils/hbmk/hbmk.prg
     ! Minor.
2009-02-16 11:50:35 +00:00
Viktor Szakats
1e894d019e 2009-02-06 18:46 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbdefs.h
    + Added HB_ISALNUM() macro.

  * include/hbpp.h
  * include/hbapicdp.h
  * contrib/hbct/pos1.c
  * contrib/hbct/ascpos.c
  * contrib/xhb/hbxml.c
  * contrib/hbtip/utils.c
  * contrib/examples/pp/hbppcore.c
  * source/vm/itemapi.c
  * source/vm/memvars.c
  * source/vm/set.c
  * source/vm/classes.c
  * source/debug/dbgentry.c
  * source/common/hbstr.c
  * source/common/expropt2.c
  * source/rtl/strcase.c
  * source/rtl/cdpapi.c
  * source/rtl/is.c
  * source/rtl/transfrm.c
  * source/rtl/dates.c
  * source/rtl/natmsg.c
  * source/rtl/soundex.c
  * source/rtl/hbffind.c
  * source/rdd/workarea.c
  * source/compiler/hbmain.c
  * source/compiler/harbour.yyc
  * source/compiler/harbour.y
    * Replaced:
      isdigit() -> HB_ISDIGIT()
      isalpha() -> HB_ISALPHA()
      isalnum() -> HB_ISALNUM()
      isupper() -> HB_ISUPPER()
      islower() -> HB_ISLOWER()
      tolower() -> HB_TOLOWER()
      toupper() -> HB_TOUPPER()

  * source/rtl/natmsg.c
    ! Fixed to use CP sensitive case conversion in
      __NATISNEGATIVE() and __NATISAFFIRM().

  * source/rtl/is.c
    ! Fixed typo in recently added hb_charIsUpper()/hb_charIsLower()
      functions.

  ; TODO: Remove DJGPP to*() hack.
  ; TODO: Replace HB_PP_UPPER(), HB_PP_ISDIGIT() with equivalent
          new macros.
  ; TOFIX: Some of the above macros should better be replaced
           by CP sensitive versions. F.e. the one in hbtip.
  ; TOFIX: Remove remaining #include <ctype.h> lines.
2009-02-06 17:47:46 +00:00
Przemyslaw Czerpak
20271ae59a 2008-12-23 03:11 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/ChangeLog
  * harbour/contrib/rddado/adordd.ch
  * harbour/contrib/hbwin/hbwin.h
    * converted TABs to SPACEs

  * harbour/include/hbapicdp.h
    * formatting

  * harbour/config/rules.cf
  * harbour/config/w32/mingwce.cf
  * harbour/config/w32/poccce.cf
  * harbour/config/w32/msvcce.cf
    ! fixed repeated HB_FLAGS
2008-12-23 02:08:51 +00:00
Viktor Szakats
3394d890da 2008-11-02 23:10 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbapicdp.h
  * common.mak
  * source/codepage/Makefile
  + source/codepage/uc855.c
  + source/codepage/uc874.c
  + source/codepage/uc1256.c
  + source/codepage/uc1258.c
  + source/codepage/uc860.c
  + source/codepage/uc862.c
  + source/codepage/uc864.c
  + source/codepage/uc775.c
  + source/codepage/uc1255.c
  + source/codepage/uc861.c
  + source/codepage/uc863.c
  + source/codepage/uc865.c
  + source/codepage/uc869.c
    + Added missing IBM/Windows codepages.

  * source/rtl/cdpapi.c
    * Formatting.
2008-11-02 22:11:36 +00:00