diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 65efc99bc7..be5e42fc09 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,19 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2007-04-10 13:31 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * harbour/common.mak + * harbour/source/codepage/Makefile + * harbour/source/codepage/cphu852.c + + harbour/source/codepage/cphu852s.c + ! Default Hungarian 852 codepage made 100% compatible with + ntxhu852.obj for CA-Cl*pper 5.x. + + Added Hungarian 852 codepage 100% compatible with + sixhu852.obj for S*ccessWare SIx Driver. + (this was formerly used as the default Hungarian 852 + codepage for Harbour, the only change now is the ID and + comment cleanup.) + 2007-04-10 11:20 UTC+0200 Lorenzo Fiorini (lorenzo.fiorini/at/gmail.com) * harbour/contrib/gd * added new directory diff --git a/harbour/common.mak b/harbour/common.mak index a393947baa..913b495735 100644 --- a/harbour/common.mak +++ b/harbour/common.mak @@ -621,6 +621,7 @@ CODEPAGE_LIB_OBJS = \ $(OBJ_DIR)\cphr437.obj \ $(OBJ_DIR)\cphr852.obj \ $(OBJ_DIR)\cphu852.obj \ + $(OBJ_DIR)\cphu852s.obj \ $(OBJ_DIR)\cphuiso.obj \ $(OBJ_DIR)\cphuwin.obj \ $(OBJ_DIR)\cpit437.obj \ diff --git a/harbour/source/codepage/Makefile b/harbour/source/codepage/Makefile index 929239d9ec..721d149b7c 100644 --- a/harbour/source/codepage/Makefile +++ b/harbour/source/codepage/Makefile @@ -25,6 +25,7 @@ C_SOURCES=\ cphr437.c \ cphr852.c \ cphu852.c \ + cphu852s.c \ cphuiso.c \ cphuwin.c \ cpit437.c \ diff --git a/harbour/source/codepage/cphu852.c b/harbour/source/codepage/cphu852.c index fe0344a083..66831ecb65 100644 --- a/harbour/source/codepage/cphu852.c +++ b/harbour/source/codepage/cphu852.c @@ -6,7 +6,7 @@ * Harbour Project source code: * National Collation Support Module (HU852) * - * Copyright 1999-2005 Viktor Szakats + * Copyright 1999-2007 Viktor Szakats * www - http://www.harbour-project.org * * This program is free software; you can redistribute it and/or modify @@ -52,13 +52,13 @@ /* Language name: Hungarian */ /* ISO language code (2 chars): HU */ -/* Codepage: 852 */ +/* Codepage: 852 (ntxhu852 compatible) */ #include #include "hbapi.h" #include "hbapicdp.h" -#define NUMBER_OF_CHARACTERS 36 /* The number of single characters in the +#define NUMBER_OF_CHARACTERS 42 /* The number of single characters in the alphabet, two-as-one aren't considered here, accented - are considered. */ #define IS_LATIN 1 /* Should be 1, if the national alphabet @@ -83,13 +83,21 @@ same excepting the characters case, of course. */ -/* NOTE: Ž/„ has been added to make it more compatible with sixhu852 for C52 +/* NOTE: Several chars have been added above the standard 852 Hungarian + ones to make it 100% compatible with ntxhu852.obj for CA-Cl*pper 5.x. [vszakats] */ +/* NOTE: Since there is no possibility in Harbour to have different number + of uppercase and lowercase accented chars, a simple workaround + was used to solve the problem; notice that some uppercase chars + have the same lowercase values. Testing showed that both the + ordering and Lower()/Upper() functions worked alright. + [20070410] [vszakats] */ + static HB_CODEPAGE s_codepage = { "HU852", CPID_852, UNITB_852, NUMBER_OF_CHARACTERS, - "AµŽBCDEFGHIÖJKLMNOà™ŠPQRSTUéšëVWXYZ", - "a „bcde‚fghiĦjklmno˘”‹pqrstu£ûvwxyz", + "AµŽBCDEFGHIÖJKLMNO•à™§ŠPQRSTU—隘ëVWXYZ", + "a  „bcde‚fghiĦĦjklmno˘˘”“‹pqrstu££–ûvwxyz", IS_LATIN, ACCENTED_EQUAL, ACCENTED_INTERLEAVED, 0, 0, NULL, NULL, NULL, NULL, 0, NULL }; HB_CODEPAGE_INIT( HU852 ) diff --git a/harbour/source/codepage/cphu852s.c b/harbour/source/codepage/cphu852s.c new file mode 100644 index 0000000000..38b6258563 --- /dev/null +++ b/harbour/source/codepage/cphu852s.c @@ -0,0 +1,109 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * National Collation Support Module (HU852S) + * + * Copyright 1999-2007 Viktor Szakats + * www - http://www.harbour-project.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ + +/* Language name: Hungarian */ +/* ISO language code (2 chars): HU */ +/* Codepage: 852 (sixhu852 compatible) */ + +#include +#include "hbapi.h" +#include "hbapicdp.h" + +#define NUMBER_OF_CHARACTERS 36 /* The number of single characters in the + alphabet, two-as-one aren't considered + here, accented - are considered. */ +#define IS_LATIN 1 /* Should be 1, if the national alphabet + is based on Latin */ +#define ACCENTED_EQUAL 0 /* Should be 1, if accented character + has the same weight as appropriate + unaccented. */ +#define ACCENTED_INTERLEAVED 0 /* Should be 1, if accented characters + sort after their unaccented counterparts + only if the unaccented versions of all + characters being compared are the same + ( interleaving ) */ + +/* If ACCENTED_EQUAL or ACCENTED_INTERLEAVED is 1, 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 ... + + The Upper case string and the Lower case string should be absolutely the + same excepting the characters case, of course. + */ + +/* NOTE: Ž/„ has been added to make it fully compatible with sixhu852.obj for + S*ccessWare SIx Driver. + [vszakats] */ + +static HB_CODEPAGE s_codepage = { "HU852S", + CPID_852, UNITB_852, NUMBER_OF_CHARACTERS, + "AµŽBCDEFGHIÖJKLMNOà™ŠPQRSTUéšëVWXYZ", + "a „bcde‚fghiĦjklmno˘”‹pqrstu£ûvwxyz", + IS_LATIN, ACCENTED_EQUAL, ACCENTED_INTERLEAVED, 0, 0, NULL, NULL, NULL, NULL, 0, NULL }; + +HB_CODEPAGE_INIT( HU852S ) + +#if defined(HB_PRAGMA_STARTUP) + #pragma startup hb_codepage_Init_HU852S +#elif defined(HB_MSC_STARTUP) + #if _MSC_VER >= 1010 + #pragma data_seg( ".CRT$XIY" ) + #pragma comment( linker, "/Merge:.CRT=.data" ) + #else + #pragma data_seg( "XIY" ) + #endif + static HB_$INITSYM hb_vm_auto_hb_codepage_Init_HU852S = hb_codepage_Init_HU852S; + #pragma data_seg() +#endif