Przemysław Czerpak
75ff90a49d
2025-09-09 13:50 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
...
* include/hbdefs.h
+ added new types HB_WCHAR16 and HB_WCHAR32, existing type HB_WCHAR
is mapped to HB_WCHAR16 (just like before)
* include/hbapicdp.h
* src/harbour.def
* src/rtl/cdpapi.c
+ added new C functions for encoding and decoding UTF-8 string using
which HB_WCHAR32:
int hb_cdpU32CharToUTF8( char * szUTF8, HB_WCHAR32 wc );
HB_BOOL hb_cdpUTF8GetU32( const char * pSrc, HB_SIZE nLen,
HB_SIZE * pnIndex, HB_WCHAR32 * pWC );
HB_BOOL hb_cdpUTF8GetUCS( const char * pSrc, HB_SIZE nLen,
HB_SIZE * pnIndex, HB_WCHAR32 * pWC );
HB_BOOL hb_cdpUTF8GetU16( const char * pSrc, HB_SIZE nLen,
HB_SIZE * pnIndex, HB_WCHAR16 * pWC );
HB_BOOL hb_cdpUTF8Validate( const char * pSrc, HB_SIZE nLen );
They support full UCS and are much more restrictive against errors and
wrong UTF-8 encoding, i.e. now overlong encoding is forbidden.
The wrong characters are translated to 0xFFFD and later if such
character does not exist in final CP to '?' ASCII character.
* declaration of the following UTF-8 C functions have been changed to
operate on HB_WCHAR32 instead of HB_WCHAR:
int hb_cdpUTF8CharSize( HB_WCHAR32 wc );
HB_WCHAR32 hb_cdpUTF8StringPeek( const char * pSrc, HB_SIZE nLen,
HB_SIZE nPos );
* the following C functions have been changed to internally operate on
HB_WCHAR32 instead of HB_WCHAR:
hb_cdpUTF8StringLength()
hb_cdpUTF8StringAt()
hb_cdpUTF8StringSubstr()
* the following C functions have been changed to use new hb_cdpUTF8GetU*()
instead of step by step decoding with hb_cdpUTF8ToU16NextChar()
hb_cdpStrToUTF8Disp()
hb_cdpUTF8AsStrLen()
hb_cdpUTF8ToStr()
hb_cdpStrToU16()
hb_cdpUtf8Char()
* use HB_CDP_ERROR_* macros to mark wrong encoding
* src/rtl/cdpapihb.c
* the following UTF-8 C functions have been changed to operate on
HB_WCHAR32 instead of HB_WCHAR:
hb_utf8Chr()
hb_utf8Asc()
hb_utf8Poke()
hb_utf8Peek()
Other UTF-8 PRG functions have been adopted to HB_WCHAR32 by changes
in corresponding C functions.
* src/codepage/cp_utf8.c
* use new function hb_cdpUTF8GetU16() to decode UTF-8 strings in UTF8EX CP
* src/rtl/arc4.c
+ added new macro HB_NO_SYSCTL which allow to disable sysctl() in Linux
builds for GLIBC < 2.30
2025-09-09 13:50:42 +02:00
..
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2025-01-24 12:32:32 +01:00
2024-02-13 05:49:59 +01:00
2017-12-19 21:42:15 +01:00
2017-12-19 21:42:15 +01:00
2017-12-19 21:42:15 +01:00
2017-12-19 21:42:15 +01:00
2017-12-19 21:42:15 +01:00
2019-02-11 13:43:40 +01:00
2020-01-13 19:15:16 +01:00
2020-01-13 19:15:16 +01:00
2019-02-11 13:51:35 +01:00
2025-01-30 02:48:48 +01:00
2017-09-08 16:25:13 +00:00
2017-09-08 18:25:11 +00:00
2017-08-13 18:38:59 +00:00
2023-01-23 12:28:36 +01:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2025-09-09 13:50:42 +02:00
2013-03-16 02:11:42 +01:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2025-09-09 13:50:42 +02:00
2025-09-09 13:50:42 +02:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2023-04-20 15:12:07 +02:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-11 13:27:12 +00:00
2017-09-08 16:25:13 +00:00
2025-01-18 05:03:36 +01:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2018-01-05 14:12:06 +01:00
2023-02-01 13:43:46 +01:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2023-01-31 14:59:17 +01:00
2017-09-08 16:25:13 +00:00
2025-01-30 16:19:59 +01:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2025-08-29 12:49:40 +02:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2025-01-29 13:50:06 +01:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2024-08-17 17:37:12 +02:00
2023-12-07 16:41:09 +01:00
2017-08-13 18:38:59 +00:00
2025-01-07 12:24:59 +01:00
2018-05-11 12:32:50 +02:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 18:25:11 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2020-08-19 02:02:24 +02:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-09-11 19:56:57 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2025-01-29 13:50:06 +01:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2018-01-05 14:12:06 +01:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2021-04-14 22:25:13 +02:00
2025-03-20 06:30:10 +01:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-12 10:19:32 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-11-15 11:32:19 +01:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2018-09-14 15:36:21 +02:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2025-01-29 13:50:06 +01:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2025-01-29 13:50:06 +01:00
2023-01-17 13:10:04 -03:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2025-01-18 05:03:36 +01:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2018-09-14 15:36:21 +02:00
2018-09-14 15:36:21 +02:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-12-12 12:26:24 +01:00
2017-08-13 18:38:59 +00:00
2024-02-13 05:49:59 +01:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2025-01-10 10:15:24 +01:00
2021-04-14 22:25:13 +02:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2018-09-14 15:36:21 +02:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2025-01-29 13:50:06 +01:00
2025-01-29 13:50:06 +01:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-09-11 19:56:57 +00:00
2017-09-08 16:25:13 +00:00
2023-04-20 15:12:07 +02:00
2017-09-08 16:25:13 +00:00
2023-04-20 15:12:07 +02:00
2023-04-20 15:12:07 +02:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2023-11-11 19:37:58 +01:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-11 13:27:12 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2023-04-20 15:12:07 +02:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-09-11 13:27:12 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2013-03-16 02:11:42 +01:00
2017-09-08 16:25:13 +00:00
2013-03-16 02:11:42 +01:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-11 13:27:12 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2023-04-20 15:12:07 +02:00
2023-04-21 13:01:02 +02:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00
2023-04-20 15:12:07 +02:00
2017-08-13 18:38:59 +00:00
2023-04-20 15:12:07 +02:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2023-04-20 15:12:07 +02:00
2023-04-20 15:12:07 +02:00
2023-04-20 15:12:07 +02:00
2023-04-20 15:12:07 +02:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2023-04-20 15:12:07 +02:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2025-08-17 18:27:35 +02:00
2023-04-20 15:12:07 +02:00
2018-06-01 00:25:47 +03:00
2017-09-08 16:25:13 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2023-04-20 15:12:07 +02:00
2023-04-20 15:12:07 +02:00
2023-04-20 15:12:07 +02:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-09-11 20:37:19 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2024-10-17 15:04:53 +02:00
2025-08-22 12:00:07 +02:00
2021-04-14 22:25:13 +02:00
2017-08-13 18:38:59 +00:00
2017-08-13 18:38:59 +00:00
2017-09-08 16:25:13 +00:00
2017-09-08 16:25:13 +00:00