/*--------------------------------------------------------------------
 * FICHERO:  CarComp.c
 * OBJETIVO: Definir la funcin Car_Compara()
 * AUTOR:    Pedro Reina
 * FECHA:    X.2.8.1995
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Ficheros de cabecera
 *------------------------------------------------------------------*/

#include "Caracter.h"

/*--------------------------------------------------------------------
 * Tablas de conversin
 *------------------------------------------------------------------*/

#ifdef OLIMPO_PC
caracter Car_TablaComp_[256] = {

/*          0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15 */

/*   0 */   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
/*  16 */  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
/*  32 */  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
/*  48 */  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
/*  64 */  64, 65, 74, 76, 80, 82, 89, 91, 93, 95,101,103,105,107,109,113,
/*  80 */ 120,122,124,126,128,130,137,139,141,143,145,147,148,149,150,151,
/*  96 */ 152, 66, 75, 78, 81, 84, 90, 92, 94, 96,102,104,106,108,110,115,
/* 112 */ 121,123,125,127,129,132,138,140,142,144,146,153,154,155,156,157,
/* 128 */  76,132, 84, 66, 66, 66,158, 78, 84, 84, 84, 96, 96, 96, 65,159,
/* 144 */  82,145, 67,115,115,115,132,132,160,113,130,161,162,163,164,165,
/* 160 */  66, 96,115,132,112,111,166,167,168,169,170,171,172,173,174,175,
/* 176 */ 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
/* 192 */ 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
/* 208 */ 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
/* 224 */ 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
/* 240 */ 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 };
#endif

#ifdef OLIMPO_QL
caracter Car_TablaComp_[256] = {

/*          0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15 */

/*   0 */   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
/*  16 */  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
/*  32 */  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
/*  48 */  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
/*  64 */  64, 65, 76, 78, 82, 84, 91, 93, 95, 97,103,105,107,109,111,115,
/*  80 */ 126,128,130,132,134,136,143,145,147,149,151,159,160,161,162,153,
/*  96 */ 163, 68, 77, 80, 83, 86, 92, 94, 96, 98,104,106,108,110,112,117,
/* 112 */ 127,129,131,133,135,138,144,146,148,150,152,164,165,166,167,168,
/* 128 */  68, 68,155, 86,117,117,157,138, 80,114, 75,125, 68, 68, 68, 86,
/* 144 */  86, 86, 98, 98, 98, 98,117,117,117,138,138,138,158,169,170,171,
/* 160 */  65, 65,154, 84,115,117,156,136, 78,113, 74,124,172,173,174,175,
/* 176 */ 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
/* 192 */ 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
/* 208 */ 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
/* 224 */ 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
/* 240 */ 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 };
#endif

/*--------------------------------------------------------------------
 * Definicin de funciones
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------Olimpo
 * FUNCION:  Car_Compara()
 * OBJETIVO: Comparar dos caracteres con el criterio castellano
 * ENTRADAS: Dos caracteres
 * SALIDAS:  Un contador que expresa el resultado de la 
 *           comparacin:
 *             Si es negativo, el primer carcter debe ir antes
 *               que el segundo
 *             Si es cero, los dos caracteres pueden ir en 
 *               cualquier orden
 *             Si es positivo, el primer carcter debe ir 
 *               despus que el segundo
 * EJEMPLO:  Car_Convierte ('')
 *------------------------------------------------------------------*/
contador Car_Compara (c1,c2)
caracter c1, c2;
  {
  return ( (contador) (Car_TablaComp_[c1] - Car_TablaComp_[c2]) );
  }
