]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/emufs.c
* BUGFIX : Se estaba haciendo mal es split y cuando habia muchos split (como
[z.facultad/75.06/emufs.git] / emufs / emufs.c
index ad1495544d5da4991540bc92175a649458592717..96460cdeec2a18eeec627e49b56b21000d77101e 100644 (file)
@@ -349,6 +349,7 @@ int emufs_agregar_indice(EMUFS *emu, char *nombre, INDICE_FUNCION funcion, INDIC
 
        /* Verifico que no existe un indice con el mismo nombre */
        /* y que no exista un indice primario */
+       PERR("Agregando indice");
        tmp = emu->indices;
        while (tmp) {
                if (strcmp(tmp->nombre, nombre)==0) {
@@ -359,6 +360,7 @@ int emufs_agregar_indice(EMUFS *emu, char *nombre, INDICE_FUNCION funcion, INDIC
                        error = 2;
                        break;
                }
+               tmp = tmp->sig;
        }
 
        if (tmp != NULL) {
@@ -368,17 +370,18 @@ int emufs_agregar_indice(EMUFS *emu, char *nombre, INDICE_FUNCION funcion, INDIC
                        break;
                        case 2:
                                PERR("EMUFS ya tiene indice primario!!");
-                       break;
-                       default:
-                               PERR("Error no esperado!!");
                }
                return 0;
        }
 
        /* Creo el nuevo indice */
+       PERR("Creando indice\n");
        tmp = emufs_indice_crear(emu, nombre, funcion, tipo, tipo_dato, offset, tam_bloque);
 
-       if (tmp == NULL) return 0;
+       if (tmp == NULL) {
+               PERR("NO SE PUDO CREAR INDICE!!!");
+               return 0;
+       }
 
        if (emu->indices==NULL)
                emu->indices = tmp;
@@ -389,12 +392,15 @@ int emufs_agregar_indice(EMUFS *emu, char *nombre, INDICE_FUNCION funcion, INDIC
        return 1;
 }
 
-INDICE_DATO *emufs_buscar_registros(EMUFS *emu, char *indice, CLAVE clave, int *cant)
+INDICE_DATO *emufs_buscar_registros(EMUFS *emu, char *indice, char *data, int *cant)
 {
+       CLAVE k;
        INDICE *tmp;
+
        tmp = emu->indices;
        while (tmp) {
                if (strcmp(tmp->nombre, indice) == 0) break;
+               tmp = tmp->sig;
        }
 
        if (tmp == NULL) {
@@ -403,6 +409,10 @@ INDICE_DATO *emufs_buscar_registros(EMUFS *emu, char *indice, CLAVE clave, int *
                return NULL;
        }
 
-       return tmp->buscar_entradas(tmp, clave, cant);
+       PERR("GENERANDO CLAVE")
+       PERR(data);
+       k = emufs_indice_generar_clave_desde_valor(tmp, data);
+       PERR("DONE");
+       return tmp->buscar_entradas(tmp, k, cant);
 }