return NULL;
}
cant_bloques = emu->tam_reg / (emu->tam_bloque - sizeof(EMUFS_REG_ID))+1;
- *size = emu->tam_bloque*cant_bloques + cant_bloques*2 - sizeof(EMUFS_REG_ID)*(cant_bloques-1);
+ *size = emu->tam_bloque*cant_bloques /*+ cant_bloques*2*/ - sizeof(EMUFS_REG_ID)*(cant_bloques-1);
bloque = (char *)malloc(*size);
cur = bloque;
*pos = 0;
}
memcpy(cur, tmp, emu->tam_bloque);
cur += emu->tam_bloque;
- memcpy(cur, "<>", 2);
- cur += 2;
+/* memcpy(cur, "<>", 2);
+ cur += 2;*/
free(tmp);
/* En resto de los bloques no pongo el ID porque ya esta en el primero */
}
memcpy(cur, tmp+sizeof(EMUFS_REG_ID), emu->tam_bloque-sizeof(EMUFS_REG_ID));
cur += emu->tam_bloque - sizeof(EMUFS_REG_ID);
- memcpy(cur, "<>", 2);
- cur += 2;
+/* memcpy(cur, "<>", 2);
+ cur += 2;*/
free(tmp);
}
(*cur) = '\0';
tam_data = emu->tam_reg-sizeof(int)*3-sizeof(float)-sizeof(EMUFS_BLOCK_ID);
} else {
cant_header = 1;
- tam_data = *size - sizeof(EMUFS_REG_ID)-sizeof(unsigned int);
+ tam_data = (*size) - sizeof(EMUFS_REG_ID)-sizeof(int)*3-sizeof(float)-sizeof(EMUFS_BLOCK_ID);
}
fprintf(stderr, "Tengo %d headers\n", cant_header);
}
tmp = ptr;
pos_actualizada = 0;
+ (*ancho) = 0;
while (i<cant_header) {
/* Verifico la pos_actual para el resaltado, asi queda coherente
* en el cambio de formato
*/
+ fprintf(stderr, "%d == %d\n", tmp-ptr, *pos_actual);
if (((tmp - ptr) == *pos_actual) && (!pos_actualizada)) {
(*pos_actual) = tmp1-salida;
pos_actualizada = 1;
tmp1 += 10;
tmp += sizeof(EMUFS_BLOCK_ID);
+ if (pos_actualizada == 1) {
+ (*ancho) = 50+strlen(flotante);
+ }
j = 0;
- /* TODO Mostrar en pantalla los items!! */
- fprintf(stderr, "DATA = %d\n", tam_data-10*sizeof(t_Item));
while (j < (tam_data-10*sizeof(t_Item))) {
if (*tmp == '\0') {
if (ant == (*tmp)){
ant = (*tmp);
tmp++;
tmp1++;
+ if (pos_actualizada == 1)
+ (*ancho)++;
j++;
}
/* Ahora proceso los items */
sprintf(tmp1, "[%08d]", *((int *)tmp));
tmp1 += 10;
tmp += sizeof(int);
+ if (pos_actualizada == 1)
+ (*ancho)+=10;
j = 0;
while (j < (sizeof(t_Item)-sizeof(int))) {
if (*tmp == '\0') {
ant = (*tmp);
tmp++;
tmp1++;
+ if (pos_actualizada == 1)
+ (*ancho)++;
j++;
}
k++;
}
+ if (pos_actualizada == 1)
+ pos_actualizada = 2;
i++;
}
- fprintf(stderr, "%lu =? %d\n", *size, tmp-ptr);
free(ptr);
PERR("Termine");
if (emu->tam_bloque > emu->tam_reg) {
(*size) = tmp1-salida;
- (*ancho) = tam_data + 15*cant_header + cant_items*10 - cant_items*sizeof(int);
} else {
- (*size) = (*size)-sizeof(EMUFS_REG_ID)-sizeof(unsigned int)+21;
- (*ancho) = (*size);
+ (*size) = tmp1-salida;
+ (*ancho) = tmp1-salida;
}
- memset(tmp1, '.', (*size)-(tmp1-salida));
salida[*size-1] = '\0';
return salida;