On Fri, 13 Nov 2009, Szak�ts Viktor wrote:

Hi,

> All I can do is reupload the ones done with Clipper. 
> I hope someone will be able to make the tests.

Thank you very much.

> I'm still not sure what we're testing here? Whether 
> cpinfo.prg and Harbour CP engine is correct? Sorry 
> for my ignorance.

The problem is only with human readable form.
When TOVERIFY is left then it's possible that this form does not
exactly replicate Clipper's CP conditions.
The verification process is trivial and I think Harbour developers
should know it because it may be necessary for some new CPs.
Let's look at current cpde850.c:


   #define HB_CP_ID        DE850
   #define HB_CP_INFO      "German CP-850 (ntxger.obj compatible)"
   #define HB_CP_UNITB     HB_UNITB_850
   #define HB_CP_ACSORT    HB_CDP_ACSORT_NONE
   #define HB_CP_UPPER     "A�BCDEFGHIJKLMNO�PQRS TU�VWXYZ"
   #define HB_CP_LOWER     "a�bcdefghijklmno�pqrs�tu�vwxyz"

   #if 0 /* TOVERIFY: binary tables */

   #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,0,0,6,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,6,0,0,0,0,10,10,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,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
 };
   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,154,130,131,142,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,153,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_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,132,143,144,145,146,147,148,149,150,151,152,148,129,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,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,83,84,85,86,87,89,90,91,92,93,94,95,96,97,98,99,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,117,118,119,120,122,123,125,126,127,128,129,130,131,132,133,134,135,124,136,137,101,138,139,140,141,142,143,144,145,146,66,147,148,149,150,151,116,152,153,154,155,81,88,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,121,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"


by default human readable form is used. If this form is correct then
if we execute cpinfo compiled by Harbour for above DE850 codepage then
it should generate exactly the same file which will have static tables
with binary CP definitions equal.

So I'm simply making:
   cpinfo DE850
and it generates new cpde850.c file. Then I compare this file with the one
from SVN:
   diff -u cpde850.c SVN/harbour/src/codepage/cpde850.c
   --- cpde850.c   2009-11-16 03:50:03.000000000 +0100
   +++ SVN/harbour/harbour/src/codepage/cpde850.c     2009-11-14 
05:08:19.000000000 +0100
   @@ -1,5 +1,5 @@
    /*
   - * $Id: cpinfo.prg 12872 2009-11-14 15:00:50Z druzus $
   + * $Id: cpde850.c 12870 2009-11-14 03:58:36Z vszakats $
     */

Only $Id$ is different in above files so we are sure that human readable form
is correct because using it we can create binary tables for CP definitions
which are exactly the same as used in Clipper.

I've just wrote a simply scripts which verified that:
   de850, dk865, es850c, fi850, fr850, gr437, hu852, hu852c,
   is850, is861, it850, nl850, no865, pt860, sv850
are correct so we can safely remove TOVERIFY from them.

best regards,
Przemek
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to