fprintf(stderr, "\n");
}
-char *jacu_mtf(char *datos, int len, char **_z, int *z_len)
+unsigned char *jacu_mtf(unsigned char *datos, int len, unsigned char **_z, int *z_len)
{
- char *z;
- char *pos;
+ unsigned char *z;
+ unsigned char *pos;
int i, size;
- pos = (char *)malloc(len*sizeof(char));
+ pos = (unsigned char *)malloc(len*sizeof(unsigned char));
z = jacu_buscar_z(datos, len, &size);
- *_z = (char*)malloc(len*sizeof(char));
- memcpy(*_z, z, len*sizeof(char));
+ *_z = (unsigned char*)malloc(size*sizeof(unsigned char));
+ memcpy(*_z, z, size*sizeof(unsigned char));
for(i=0; i<len; i++){
pos[i] = get_pos(z, size, datos[i]);
if (pos[i] != 0)
pop_front(z, pos[i]);
}
(*z_len) = size;
+ free(z);
return pos;
}
-char *jacu_mtf_inv(char *z, unsigned char *pos, int len)
+unsigned char *jacu_mtf_inv(unsigned char *z, unsigned char *pos, int len)
{
char *datos;
int i;
return datos;
}
-char *jacu_buscar_z(char* datos, int len, int *size)
+unsigned char *jacu_buscar_z(unsigned char* datos, int len, int *size)
{
char *z;
int i, j=0;
{
int i;
- /* XXX Z NO TIENE 255 POSICIONES XXX */
for(i=0; i<len; i++)
if (z[i] == c)
return 0;