home *** CD-ROM | disk | FTP | other *** search
- #include "cpconv.h"
-
- static unsigned char cp850to1004[] = {
- /*0*/ 0x00,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,
- /*1*/ CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,
- /*2*/ 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
- /*3*/ 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
- /*4*/ 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
- /*5*/ 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
- /*6*/ 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
- /*7*/ 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,CNUL,
-
- /* 0 1 2 3 4 5 6 7 8 9 A B C D E F */
-
- /*8*/ 0xc7,0xfc,0xe9,0xe2,0xe4,0xe0,0xe5,0xe7,0xea,0xeb,0xe8,0xef,0xee,0xec,0xc4,0xc5,
- /*9*/ 0xc9,0xe6,0xc6,0xf4,0xf6,0xf2,0xfb,0xf9,CNUL,0xd6,0xdc,0xf8,0xa3,0xd8,0xd7,CNUL,
- /*A*/ 0xe1,0xed,0xf3,0xfa,0xf1,0xd1,0xaa,0xba,0xbf,0xae,0xac,0xbd,0xbc,0xa1,0xab,0xbb,
- /*B*/ CNUL,CNUL,CNUL,CNUL,CNUL,0xc1,0xc2,0xc0,0xa9,CNUL,CNUL,CNUL,CNUL,0xa2,0xa5,CNUL,
- /*C*/ CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,0xe3,0xc3,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,0xa4,
- /*D*/ 0xf0,0xd0,0xca,0xcb,0xc8,CNUL,0xcd,0xce,0xcf,CNUL,CNUL,CNUL,CNUL,0xa6,0xcc,CNUL,
- /*E*/ 0xd3,0xdf,0xd4,0xd2,0xf5,0xd5,0xb5,0xfe,0xde,0xda,0xdb,0xd9,0xfd,0xdd,0xaf,0xb4,
- /*F*/ 0xad,0xb1,CNUL,0xbe,0xb6,0xa7,0xf7,0xb8,0xb0,0xa8,0xb7,0xb9,0xb3,0xb2,CNUL,0xa0
- };
-
-
- static unsigned char cp1004to850[] = {
- /*0*/ 0x00,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,
- /*1*/ CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,
- /*2*/ 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
- /*3*/ 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
- /*4*/ 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
- /*5*/ 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
- /*6*/ 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
- /*7*/ 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,CNUL,
-
- /* 0 1 2 3 4 5 6 7 8 9 A B C D E F */
-
- /*8*/ CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,
- /*9*/ CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,CNUL,
- /*A*/ 0xff,0xad,0xbd,0x9c,0xcf,0xbe,0xdd,0xf5,0xf9,0xb8,0xa6,0xae,0xaa,0xf0,0xa9,0xee,
- /*B*/ 0xf8,0xf1,0xfd,0xfc,0xef,0xe6,0xf4,0xfa,0xf7,CNUL,CNUL,0xaf,0xac,0xab,0xf3,0xa8,
- /*C*/ 0xb7,0xb5,0xb6,0xc7,0x8e,0x8f,0x92,0x80,0xd4,0x90,0xd2,0xd3,0xde,0xd6,0xd7,0xd8,
- /*D*/ 0xd1,0xa5,0xe3,0xe0,0xe2,0xe5,0x99,0x9e,0x9d,0xeb,0xe9,0xea,0x9a,0xed,0xe8,0xe1,
- /*E*/ 0x85,0xa0,0x83,0xc6,0x84,0x86,0x91,0x87,0x8a,0x82,0x88,0x89,0x8d,0xa1,0x8c,0x8b,
- /*F*/ 0xd0,0xa4,0x95,0xa2,0x93,0xe4,0x94,0xf6,0x9b,0x97,0xa3,0x96,0x81,0xec,0xe7,0x98
- };
-
-
- /*******************************************************************************/
- /* Conversion routine accepting a pointer to a string. The characters in the */
- /* string will be converted to the code page of the database. */
- /*******************************************************************************/
-
- short cp_appl_to_db( unsigned char far *str )
- {
- while ( *str ) {
- if ( *str != CNUL && cp1004to850[ *str ] != CNUL )
- *str = cp1004to850[ *str ];
- else
- return( CONVERSION_ERROR );
- ++str;
- }
- return( 0 );
- }
-
- /*******************************************************************************/
- /* Conversion routine accepting a pointer to a string. The characters in the */
- /* string will be converted to the code page of the application. */
- /*******************************************************************************/
-
- short cp_db_to_appl( unsigned char far *str )
- {
- while ( *str ) {
- if ( *str != CNUL && cp850to1004[ *str ] != CNUL )
- *str = cp850to1004[ *str ];
- else
- return( CONVERSION_ERROR );
- ++str;
- }
- return( 0 );
- }
-