From bf2750e535970ee4f1ee7f8852f52be3205af79a Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sun, 2 Nov 2008 15:34:10 +0000 Subject: [PATCH] 2008-11-02 16:33 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * include/hbextern.ch * common.mak * source/codepage/Makefile + source/codepage/cpro852.c + source/codepage/cprowin.c + Added Romanian codepages. ; TODO: Add ROISO variant. * source/codepage/uc1250.c * source/codepage/uc1251.c * source/codepage/uc1252.c * source/codepage/uc8859_5.c * source/codepage/uckam.c * Minor formatting. --- harbour/ChangeLog | 16 +++++ harbour/common.mak | 2 + harbour/include/hbextern.ch | 2 + harbour/source/codepage/Makefile | 2 + harbour/source/codepage/cpro852.c | 103 +++++++++++++++++++++++++++++ harbour/source/codepage/cprowin.c | 103 +++++++++++++++++++++++++++++ harbour/source/codepage/uc1250.c | 2 +- harbour/source/codepage/uc1251.c | 2 +- harbour/source/codepage/uc1252.c | 3 +- harbour/source/codepage/uc8859_5.c | 4 +- harbour/source/codepage/uckam.c | 1 + 11 files changed, 235 insertions(+), 5 deletions(-) create mode 100644 harbour/source/codepage/cpro852.c create mode 100644 harbour/source/codepage/cprowin.c diff --git a/harbour/ChangeLog b/harbour/ChangeLog index c9a1078e71..239ee3d434 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,22 @@ 2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2008-11-02 16:33 UTC+0200 Viktor Szakats (harbour.01 syenar hu) + * include/hbextern.ch + * common.mak + * source/codepage/Makefile + + source/codepage/cpro852.c + + source/codepage/cprowin.c + + Added Romanian codepages. + ; TODO: Add ROISO variant. + + * source/codepage/uc1250.c + * source/codepage/uc1251.c + * source/codepage/uc1252.c + * source/codepage/uc8859_5.c + * source/codepage/uckam.c + * Minor formatting. + 2008-11-02 14:56 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * include/hbextern.ch ! Readded HB_LANG_EN. diff --git a/harbour/common.mak b/harbour/common.mak index efd40f386d..b593202a30 100644 --- a/harbour/common.mak +++ b/harbour/common.mak @@ -862,6 +862,8 @@ CODEPAGE_LIB_OBJS = \ $(OBJ_DIR)\cpplwin$(OBJEXT) \ $(OBJ_DIR)\cppt850$(OBJEXT) \ $(OBJ_DIR)\cpptiso$(OBJEXT) \ + $(OBJ_DIR)\cpro852$(OBJEXT) \ + $(OBJ_DIR)\cprowin$(OBJEXT) \ $(OBJ_DIR)\cpru866$(OBJEXT) \ $(OBJ_DIR)\cpruiso$(OBJEXT) \ $(OBJ_DIR)\cprukoi$(OBJEXT) \ diff --git a/harbour/include/hbextern.ch b/harbour/include/hbextern.ch index 5546654128..1d45e36662 100644 --- a/harbour/include/hbextern.ch +++ b/harbour/include/hbextern.ch @@ -1006,6 +1006,8 @@ EXTERNAL HB_CODEPAGE_PLMAZ EXTERNAL HB_CODEPAGE_PLWIN EXTERNAL HB_CODEPAGE_PT850 EXTERNAL HB_CODEPAGE_PTISO +EXTERNAL HB_CODEPAGE_RO852 +EXTERNAL HB_CODEPAGE_ROWIN EXTERNAL HB_CODEPAGE_RU1251 EXTERNAL HB_CODEPAGE_RU866 EXTERNAL HB_CODEPAGE_RUISO diff --git a/harbour/source/codepage/Makefile b/harbour/source/codepage/Makefile index b1700e52aa..f80ec65d22 100644 --- a/harbour/source/codepage/Makefile +++ b/harbour/source/codepage/Makefile @@ -42,6 +42,8 @@ C_SOURCES=\ cpplwin.c \ cppt850.c \ cpptiso.c \ + cpro852.c \ + cprowin.c \ cpru866.c \ cpruiso.c \ cprukoi.c \ diff --git a/harbour/source/codepage/cpro852.c b/harbour/source/codepage/cpro852.c new file mode 100644 index 0000000000..450b4911c1 --- /dev/null +++ b/harbour/source/codepage/cpro852.c @@ -0,0 +1,103 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * National Collation Support Module (RO852) + * + * Copyright 2008 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: Romanian */ +/* ISO language code (2 chars): RO */ +/* Codepage: 852 */ + +#include +#include "hbapi.h" +#include "hbapicdp.h" + +#define NUMBER_OF_CHARACTERS 31 /* 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. + */ + +static HB_CODEPAGE s_codepage = { "RO852", + HB_CPID_852, HB_UNITB_852, NUMBER_OF_CHARACTERS, + "AƶBCDEFGHI×JKLMNOPQRS¸TÝUVWXYZ", + "aǃbcdefghiŒjklmnopqrs­tîuvwxyz", + IS_LATIN, ACCENTED_EQUAL, ACCENTED_INTERLEAVED, 0, 0, NULL, NULL, NULL, NULL, 0, NULL }; + +HB_CODEPAGE_INIT( RO852 ) + +#if defined( HB_PRAGMA_STARTUP ) + #pragma startup hb_codepage_Init_RO852 +#elif defined( HB_MSC_STARTUP ) + #if defined( HB_OS_WIN_64 ) + #pragma section( HB_MSC_START_SEGMENT, long, read ) + #endif + #pragma data_seg( HB_MSC_START_SEGMENT ) + static HB_$INITSYM hb_vm_auto_hb_codepage_Init_RO852 = hb_codepage_Init_RO852; + #pragma data_seg() +#endif diff --git a/harbour/source/codepage/cprowin.c b/harbour/source/codepage/cprowin.c new file mode 100644 index 0000000000..09ebeed639 --- /dev/null +++ b/harbour/source/codepage/cprowin.c @@ -0,0 +1,103 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * National Collation Support Module (ROWIN) + * + * Copyright 2008 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: Romanian */ +/* ISO language code (2 chars): RO */ +/* Codepage: Windows-1250 */ + +#include +#include "hbapi.h" +#include "hbapicdp.h" + +#define NUMBER_OF_CHARACTERS 31 /* 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. + */ + +static HB_CODEPAGE s_codepage = { "ROWIN", + HB_CPID_1250, HB_UNITB_1250, NUMBER_OF_CHARACTERS, + "AÃÂBCDEFGHIÎJKLMNOPQRSªTÞUVWXYZ", + "aãâbcdefghiîjklmnopqrsºtþuvwxyz", + IS_LATIN, ACCENTED_EQUAL, ACCENTED_INTERLEAVED, 0, 0, NULL, NULL, NULL, NULL, 0, NULL }; + +HB_CODEPAGE_INIT( ROWIN ) + +#if defined( HB_PRAGMA_STARTUP ) + #pragma startup hb_codepage_Init_ROWIN +#elif defined( HB_MSC_STARTUP ) + #if defined( HB_OS_WIN_64 ) + #pragma section( HB_MSC_START_SEGMENT, long, read ) + #endif + #pragma data_seg( HB_MSC_START_SEGMENT ) + static HB_$INITSYM hb_vm_auto_hb_codepage_Init_ROWIN = hb_codepage_Init_ROWIN; + #pragma data_seg() +#endif diff --git a/harbour/source/codepage/uc1250.c b/harbour/source/codepage/uc1250.c index 4d77efc83d..a9dec3d381 100644 --- a/harbour/source/codepage/uc1250.c +++ b/harbour/source/codepage/uc1250.c @@ -4,7 +4,7 @@ /* * xHarbour Project source code: - * + * * * Copyright 2003 Przemyslaw Czerpak * www - http://www.xharbour.org diff --git a/harbour/source/codepage/uc1251.c b/harbour/source/codepage/uc1251.c index fbbfc7e467..eb86052e80 100644 --- a/harbour/source/codepage/uc1251.c +++ b/harbour/source/codepage/uc1251.c @@ -4,7 +4,7 @@ /* * xHarbour Project source code: - * + * * * Copyright 2003 Przemyslaw Czerpak * www - http://www.xharbour.org diff --git a/harbour/source/codepage/uc1252.c b/harbour/source/codepage/uc1252.c index f52b66c296..f804f12cac 100644 --- a/harbour/source/codepage/uc1252.c +++ b/harbour/source/codepage/uc1252.c @@ -4,7 +4,8 @@ /* * xHarbour Project source code: - * + * + * * Copyright 2003 Przemyslaw Czerpak * www - http://www.xharbour.org * diff --git a/harbour/source/codepage/uc8859_5.c b/harbour/source/codepage/uc8859_5.c index 874f1f2f3d..f96fad66f7 100644 --- a/harbour/source/codepage/uc8859_5.c +++ b/harbour/source/codepage/uc8859_5.c @@ -3,8 +3,8 @@ */ /* - * xHarbour Project source code: - * + * Harbour Project source code: + * ISO-8859-5 <--> Unicode conversion table * * Copyright 1999-2005 Viktor Szakats * www - http://www.harbour-project.org diff --git a/harbour/source/codepage/uckam.c b/harbour/source/codepage/uckam.c index 923a29ca59..e9a39a4b27 100644 --- a/harbour/source/codepage/uckam.c +++ b/harbour/source/codepage/uckam.c @@ -5,6 +5,7 @@ /* * Harbour Project source code: * + * * Copyright 2006 Vojtech Obrdlik * adapted from David Kozub - http://linux.fjfi.cvut.cz/%7Ezub/cp895/ * www - http://www.harbour-project.org