#include "tree_viewer.h"
+#include "emufs.h"
+
+void sprint_ind(INDICE *idx, char *dst, B_NodoEntry e)
+{
+ int error;
+ char * leido;
+ EMUFS_REG_SIZE dummy;
+
+ switch (idx->tipo_dato) {
+ case IDX_INT:
+ sprintf(dst, "(%d)%d", e.clave.i_clave, e.hijo_derecho);
+ break;
+ case IDX_FLOAT:
+ sprintf(dst, "(%.2f)%d", e.clave.f_clave, e.hijo_derecho);
+ break;
+ case IDX_STRING:
+ error = 0;
+ leido = idx->emu_string->leer_registro(idx->emu_string, e.clave, &dummy, &error);
+ sprintf(dst, "(%s)%d", leido, e.hijo_derecho);
+ free(leido);
+ }
+}
int emufs_indice_b_ver(INDICE *idx, WINDOW *win, int w, int h, int id)
{
char *nodo;
char tmp[100];
int i;
- int posibles_proximos[100];
+ int posibles_proximos[1000];
int proximo;
if (id == -1) return 0;
sprintf(tmp, "%d", header.hijo_izquierdo);
waddstr(win, tmp);
for(i=0; i<header.cant; i++) {
- sprintf(tmp, "(%d)%d",
- claves[i].clave.i_clave,
- /* claves[i].dato.id,
- claves[i].dato.bloque,*/
- claves[i].hijo_derecho
- );
+ sprint_ind(idx, tmp, claves[i]);
posibles_proximos[i] = claves[i].hijo_derecho;
waddstr(win, tmp);
}