diff --git a/ChangeLog.txt b/ChangeLog.txt index 746526f69d..95865964b9 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,29 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2015-02-11 12:31 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * src/codepage/l_fr.h + + added 'Ç' and 'ç' characters to set of french letters + ; this modification affected "FRISO" and "FRWIN" codepages. + Users using them and above characters in index field should + reindex their databases. + + * include/hbcpage.hbx + * src/codepage/Makefile + * src/codepage/cpfr850.c + + src/codepage/cpfr850c.c + * renamed "FR850" codepage to "FR850C". This is is Cl*pper ntxfre.obj + compatible codepage. + If someone uses DBF files with indexes simultaneously with Cl*pper + applications using collation order defined in ntxfre.obj the he has + to use "FR850C" codepage in Harbour. + Warning: Any users using French "FR850" codepage so far should change + the code to "FR850C". + + added new French codepage "FR850" with all French characters and + accented equal collation rules. + + ; above modifications close issue #88 + 2015-02-11 09:49 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * src/rdd/dbf1.c * moved AutoInc field initialization to separate function diff --git a/include/hbcpage.hbx b/include/hbcpage.hbx index 897b98608f..d51705eef1 100644 --- a/include/hbcpage.hbx +++ b/include/hbcpage.hbx @@ -54,6 +54,7 @@ DYNAMIC HB_CODEPAGE_ESMWIN DYNAMIC HB_CODEPAGE_ESWIN DYNAMIC HB_CODEPAGE_FI850 DYNAMIC HB_CODEPAGE_FR850 +DYNAMIC HB_CODEPAGE_FR850C DYNAMIC HB_CODEPAGE_FR850M DYNAMIC HB_CODEPAGE_FRISO DYNAMIC HB_CODEPAGE_FRWIN diff --git a/src/codepage/Makefile b/src/codepage/Makefile index 7f1fd9c86b..116ff8412b 100644 --- a/src/codepage/Makefile +++ b/src/codepage/Makefile @@ -32,6 +32,7 @@ C_SOURCES := \ cpeswin.c \ cpfi850.c \ cpfr850.c \ + cpfr850c.c \ cpfr850m.c \ cpfriso.c \ cpfrwin.c \ diff --git a/src/codepage/cpfr850.c b/src/codepage/cpfr850.c index 2d2a9233d7..a8fd58e46b 100644 --- a/src/codepage/cpfr850.c +++ b/src/codepage/cpfr850.c @@ -2,30 +2,56 @@ * Harbour Project source code: * National Collation Support Module (FR850) * - * Copyright 2009 Przemyslaw Czerpak + * Copyright 2015 Przemyslaw Czerpak * www - http://harbour-project.org * - * This file is generated automatically by cpinfo.prg + * 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.txt. 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. + * */ #define HB_CP_ID FR850 -#define HB_CP_INFO "French CP-850 (ntxfre.obj compatible)" +#define HB_CP_INFO "French CP-850" #define HB_CP_UNITB HB_UNITB_850 -#define HB_CP_ACSORT HB_CDP_ACSORT_NONE -#define HB_CP_UPPER "AAAAABCDEEEEEFGHIIIIIJKLMNOOOOOPQRSTUUUUUVWXYZ" -#define HB_CP_LOWER "aáàâäbcdeéèêëfghiíìîïjklmnoóòôöpqrstuúùûüvwxyz" +#define HB_CP_ACSORT HB_CDP_ACSORT_EQUAL +#include "l_fr.h" #define HB_CP_UTF8 -#if 0 /* VERIFIED: 20091116 */ - -#define HB_CP_RAW - -static const unsigned char s_flags[ 256 ] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,6,6,6,6,6,0,0,6,6,6,6,6,6,0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static const unsigned char s_upper[ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,123,124,125,126,127,128,85,69,65,65,65,134,135,69,69,69,73,73,73,142,143,144,145,146,79,79,79,85,85,152,153,154,155,156,157,158,159,65,73,79,85,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 }; -static const unsigned char s_lower[ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 }; -static const unsigned char s_sort [ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,102,103,104,105,110,111,112,113,118,119,120,121,122,123,128,129,130,131,132,133,138,139,140,141,142,143,144,145,146,147,148,137,106,100,101,99,149,150,108,109,107,117,116,115,151,152,153,154,155,126,127,125,136,135,156,157,158,159,160,161,162,163,98,114,124,134,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 }; - -#endif - /* include CP registration code */ #include "hbcdpreg.h" diff --git a/src/codepage/cpfr850c.c b/src/codepage/cpfr850c.c new file mode 100644 index 0000000000..b0a42f5418 --- /dev/null +++ b/src/codepage/cpfr850c.c @@ -0,0 +1,31 @@ +/* + * Harbour Project source code: + * National Collation Support Module (FR850C) + * + * Copyright 2009 Przemyslaw Czerpak + * www - http://harbour-project.org + * + * This file is generated automatically by cpinfo.prg + */ + +#define HB_CP_ID FR850C +#define HB_CP_INFO "French CP-850 (ntxfre.obj compatible)" +#define HB_CP_UNITB HB_UNITB_850 +#define HB_CP_ACSORT HB_CDP_ACSORT_NONE +#define HB_CP_UPPER "AAAAABCDEEEEEFGHIIIIIJKLMNOOOOOPQRSTUUUUUVWXYZ" +#define HB_CP_LOWER "aáàâäbcdeéèêëfghiíìîïjklmnoóòôöpqrstuúùûüvwxyz" +#define HB_CP_UTF8 + +#if 0 /* VERIFIED: 20091116 */ + +#define HB_CP_RAW + +static const unsigned char s_flags[ 256 ] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,6,6,6,6,6,0,0,6,6,6,6,6,6,0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; +static const unsigned char s_upper[ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,123,124,125,126,127,128,85,69,65,65,65,134,135,69,69,69,73,73,73,142,143,144,145,146,79,79,79,85,85,152,153,154,155,156,157,158,159,65,73,79,85,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 }; +static const unsigned char s_lower[ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 }; +static const unsigned char s_sort [ 256 ] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,102,103,104,105,110,111,112,113,118,119,120,121,122,123,128,129,130,131,132,133,138,139,140,141,142,143,144,145,146,147,148,137,106,100,101,99,149,150,108,109,107,117,116,115,151,152,153,154,155,126,127,125,136,135,156,157,158,159,160,161,162,163,98,114,124,134,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 }; + +#endif + +/* include CP registration code */ +#include "hbcdpreg.h" diff --git a/src/codepage/l_fr.h b/src/codepage/l_fr.h index 7c84d23ddf..8f750926cd 100644 --- a/src/codepage/l_fr.h +++ b/src/codepage/l_fr.h @@ -1,4 +1,4 @@ /* Viktor Szakats (vszakats.net/harbour) */ -#define HB_CP_UPPER "A~Á~À~Â~ÄBCDE~É~È~Ê~ËFGHI~Í~Ì~Î~ÏJKLMNO~Ó~Ò~Ô~ÖPQRSTU~Ú~Ù~Û~ÜVWXYZ" -#define HB_CP_LOWER "a~á~à~â~äbcde~é~è~ê~ëfghi~í~ì~î~ïjklmno~ó~ò~ô~öpqrstu~ú~ù~û~üvwxyz" +#define HB_CP_UPPER "A~Á~À~Â~ÄBC~ÇDE~É~È~Ê~ËFGHI~Í~Ì~Î~ÏJKLMNO~Ó~Ò~Ô~ÖPQRSTU~Ú~Ù~Û~ÜVWXYZ" +#define HB_CP_LOWER "a~á~à~â~äbc~çde~é~è~ê~ëfghi~í~ì~î~ïjklmno~ó~ò~ô~öpqrstu~ú~ù~û~üvwxyz"