]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/tipo3.c
* BUGFIX : Se estaba haciendo mal es split y cuando habia muchos split (como
[z.facultad/75.06/emufs.git] / emufs / tipo3.c
index ac7342937860c57efcc06d465d4a9e77c8bbe67b..a28b635f5a0d120031b4ba3de425ae98b04e3320 100644 (file)
@@ -59,13 +59,18 @@ void* emufs_tipo3_leer_registro(EMUFS *emu, CLAVE clave,
                cant_bloques = 1;
        
        /*si existe, lo busco en el archivo de bloques*/
-       if (emu->indices != NULL) {
+       if ((emu->indices != NULL) && (*err != 1)) {
                /* TODO : Verificar donde esta el indice primario */
                dato = emu->indices->existe_entrada(emu->indices, clave);
                block = dato.bloque;
                ID = dato.id;
+               PERR("Use indice");
        } else {
-               /* TODO ID de donde lo puedo sacar :-) , lo cargo en CLAVE ? */
+               /* Si no tengo claves, uso el campo entero para pasar un ID
+                * directamente.
+                */
+               PERR("Use directo");
+               ID = clave.i_clave;
                block = emufs_idx_buscar_registro(emu,ID); /*me devuelve el nro de bloque al que pertenece el registro*/
        }
        if ( block == EMUFS_NOT_FOUND ){
@@ -577,22 +582,5 @@ void emufs_tipo3_leer_bloque_raw(EMUFS *efs, EMUFS_BLOCK_ID id, char **actual, c
 
 int emufs_tipo3_insertar_ordenado(EMUFS *emu, void *ptr, CLAVE clave, int offset, EMUFS_BLOCK_ID num_bloque, int *err)
 {
-       FILE *f;
-       char f_name[255];
-       char *bloque;
-       int size;
-       CLAVE clave_ant;
-       
-       strcpy(f_name, emu->nombre);
-       strcat(f_name, ".dat");
-       
-       bloque = emufs_tipo3_leer_bloque(emu, num_bloque, err);
-       if (err){
-               PERR("NO SE PUDO LEER EL BLQUE");
-               return -1;
-       }
-       
-       
-       
        return 0;
 }