+ free(indices);
+ return 1;
+}
+
+int cargar_indices(EMUFS *emu)
+{
+ char filename[100];
+ FILE *fp;
+ int cant, i; /* cantidad de indices hasta el momento */
+ t_Indice *indices;
+
+ sprintf(filename, "%s.info", emu->nombre);
+ fp = fopen(filename, "r");
+ PERR("Abri info");
+ PERR(filename);
+ if (fp == NULL) {
+ PERR("No se pudo");
+ return 0;
+ }
+
+ emu->indices = NULL;
+ fread(&cant, 1, sizeof(int), fp);
+ if (cant == 0) {
+ PERR("NO HAY INDICES EN ESTE ARCHIVO");
+ return 1;
+ }
+ indices = malloc(cant*sizeof(t_Indice));
+ fread(indices, cant, sizeof(t_Indice), fp);
+ fclose(fp);
+
+ /* Leo */
+ for(i=0; i<cant; i++) {
+ INDICE *tmp;
+ tmp = emufs_indice_abrir(emu,
+ indices[i].nombre,
+ indices[i].funcion,
+ indices[i].tipo,
+ indices[i].tipo_dato,
+ indices[i].offset,
+ indices[i].tam_bloque,
+ indices[i].str_offset
+ );
+ PERR(indices[i].nombre);
+ if (emu->indices==NULL)
+ emu->indices = tmp;
+ else {
+ tmp->sig = emu->indices;
+ emu->indices = tmp;
+ }
+ }
+
+ free(indices);