diff --git a/harbour/ChangeLog b/harbour/ChangeLog index ff5cb54544..337d2c30a7 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,20 @@ 2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2008-11-03 11:20 UTC+0200 Viktor Szakats (harbour.01 syenar hu) + * common.mak + * source/codepage/Makefile + - source/codepage/cpesmwin.c + + source/codepage/cpeswinm.c + + source/codepage/cpesiso.c + + source/codepage/cpesisom.c + * Renamed cpesmwin -> cpeswinm (ESMWIN -> ESWINM) (INCOMPATIBLE) + + Added Spanish ISO natsort modules. Besides their ID, + they are idendical with current ESWIN* natsorts, because + the WIN versions for some reason are using ISO-8859 CP + instead of Windows-*. This is IMO wrong, even if these CPs + are similar or identical for the Spanish language. + 2008-11-03 09:56 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * include/fileio.ch * Formatting. diff --git a/harbour/common.mak b/harbour/common.mak index 33a0b1a4ca..dfe98a58d4 100644 --- a/harbour/common.mak +++ b/harbour/common.mak @@ -839,8 +839,10 @@ CODEPAGE_LIB_OBJS = \ $(OBJ_DIR)\cpel737$(OBJEXT) \ $(OBJ_DIR)\cpelwin$(OBJEXT) \ $(OBJ_DIR)\cpes850$(OBJEXT) \ - $(OBJ_DIR)\cpesmwin$(OBJEXT) \ + $(OBJ_DIR)\cpesiso$(OBJEXT) \ + $(OBJ_DIR)\cpesisom$(OBJEXT) \ $(OBJ_DIR)\cpeswin$(OBJEXT) \ + $(OBJ_DIR)\cpeswinm$(OBJEXT) \ $(OBJ_DIR)\cpfr850$(OBJEXT) \ $(OBJ_DIR)\cpfriso$(OBJEXT) \ $(OBJ_DIR)\cpfrwin$(OBJEXT) \ diff --git a/harbour/source/codepage/Makefile b/harbour/source/codepage/Makefile index facd3f5ced..0381915f3a 100644 --- a/harbour/source/codepage/Makefile +++ b/harbour/source/codepage/Makefile @@ -19,8 +19,10 @@ C_SOURCES=\ cpel737.c \ cpelwin.c \ cpes850.c \ + cpesiso.c \ + cpesisom.c \ cpeswin.c \ - cpesmwin.c \ + cpeswinm.c \ cpfr850.c \ cpfriso.c \ cpfrwin.c \ diff --git a/harbour/source/codepage/cpesiso.c b/harbour/source/codepage/cpesiso.c new file mode 100644 index 0000000000..bd21c4ad41 --- /dev/null +++ b/harbour/source/codepage/cpesiso.c @@ -0,0 +1,104 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * National Collation Support Module (ESISO - Spanish) + * + * Copyright 2002 Alexander S.Kresin + * www - http://www.harbour-project.org + * Spanish support by Antonio Linares + * + * 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: Spanish */ +/* ISO language code (2 chars): ES */ +/* Codepage: ISO-8859-1 */ + +#include +#include "hbapi.h" +#include "hbapicdp.h" + +#define NUMBER_OF_CHARACTERS 33 /* 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 = { "ESISO", + HB_CPID_8859_1, HB_UNITB_8859_1, NUMBER_OF_CHARACTERS, + "AÁBCDEÉFGHIÍJKLMNÑOÓPQRSTUÚÜVWXYZ", + "aábcdeéfghiíjklmnñoópqrstuúüvwxyz", + IS_LATIN, ACCENTED_EQUAL, ACCENTED_INTERLEAVED, 0, 0, NULL, NULL, NULL, NULL, 0, NULL }; + +HB_CODEPAGE_INIT( ESISO ) + +#if defined( HB_PRAGMA_STARTUP ) + #pragma startup hb_codepage_Init_ESISO +#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_ESISO = hb_codepage_Init_ESISO; + #pragma data_seg() +#endif diff --git a/harbour/source/codepage/cpesisom.c b/harbour/source/codepage/cpesisom.c new file mode 100644 index 0000000000..baec65fbbf --- /dev/null +++ b/harbour/source/codepage/cpesisom.c @@ -0,0 +1,104 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * National Collation Support Module (ESISOM - Spanish Modern) + * + * Copyright 2002 Alexander S.Kresin + * www - http://www.harbour-project.org + * Spanish Windows support by Antonio Linares + * + * 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: Spanish (Modern)*/ +/* ISO language code (2 chars): ES */ +/* Codepage: ISO-8859-1 */ + +#include +#include "hbapi.h" +#include "hbapicdp.h" + +#define NUMBER_OF_CHARACTERS 43 /* 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 = { "ESISOM", + HB_CPID_8859_1, HB_UNITB_8859_1, NUMBER_OF_CHARACTERS, + "AÁÀÄBCÇDEÉÈËFGHIÍÌÏJKLMNÑOÓÒÖPQRSTUÚÙÜVWXYZ", + "aáàäbcçdeéèëfghiíìïjklmnñoóòöpqrstuúùüvwxyz", + IS_LATIN, ACCENTED_EQUAL, ACCENTED_INTERLEAVED, 0, 0, NULL, NULL, NULL, NULL, 0, NULL }; + +HB_CODEPAGE_INIT( ESISOM ) + +#if defined( HB_PRAGMA_STARTUP ) + #pragma startup hb_codepage_Init_ESISOM +#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_ESISOM = hb_codepage_Init_ESISOM; + #pragma data_seg() +#endif diff --git a/harbour/source/codepage/cpesmwin.c b/harbour/source/codepage/cpeswinm.c similarity index 95% rename from harbour/source/codepage/cpesmwin.c rename to harbour/source/codepage/cpeswinm.c index e902983fa6..c997bc37f4 100644 --- a/harbour/source/codepage/cpesmwin.c +++ b/harbour/source/codepage/cpeswinm.c @@ -84,21 +84,21 @@ same excepting the characters case, of course. */ -static HB_CODEPAGE s_codepage = { "ESMWIN", +static HB_CODEPAGE s_codepage = { "ESWINM", HB_CPID_8859_1, HB_UNITB_8859_1, NUMBER_OF_CHARACTERS, "AÁÀÄBCÇDEÉÈËFGHIÍÌÏJKLMNÑOÓÒÖPQRSTUÚÙÜVWXYZ", "aáàäbcçdeéèëfghiíìïjklmnñoóòöpqrstuúùüvwxyz", IS_LATIN, ACCENTED_EQUAL, ACCENTED_INTERLEAVED, 0, 0, NULL, NULL, NULL, NULL, 0, NULL }; -HB_CODEPAGE_INIT( ESMWIN ) +HB_CODEPAGE_INIT( ESWINM ) #if defined( HB_PRAGMA_STARTUP ) - #pragma startup hb_codepage_Init_ESMWIN + #pragma startup hb_codepage_Init_ESWINM #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_ESMWIN = hb_codepage_Init_ESMWIN; + static HB_$INITSYM hb_vm_auto_hb_codepage_Init_ESWINM = hb_codepage_Init_ESWINM; #pragma data_seg() #endif