X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/03e6bac48b3be290deae9d8943940bf0067846af..78ff3129342b5ae75673aac710820805fe5e3f41:/emufs/indice_b.c diff --git a/emufs/indice_b.c b/emufs/indice_b.c index 9f3e411..df09618 100644 --- a/emufs/indice_b.c +++ b/emufs/indice_b.c @@ -145,6 +145,10 @@ int emufs_indice_b_insertar(INDICE *idx, CLAVE clave, INDICE_DATO dato) */ dummy.id = -1; dato.id = b_insertar_dup_en_pos(idx, dummy, dato); + if (dato.id != -1) + PERR("NODO INSERTADO EN POS GENERADA NUEVA"); + PERR("Ahora inserto"); + fprintf(stderr, "Nombre del coso = %s\n", idx->nombre); } b_insertar_en_nodo(idx, clave, dato, nodo_id, nodo, -1, -1); @@ -169,7 +173,6 @@ INDICE_DATO emufs_indice_b_buscar(INDICE *idx, CLAVE clave) if ((iemu_mult->grabar_registro(idx->emu_mult, - leido, - cant*sizeof(INDICE_DATO)+sizeof(int), - &error - ); + leido, + cant*sizeof(INDICE_DATO)+sizeof(int), + &error + ); + if (k.i_clave == -1) PERR("ALGO NO GRABO BIEN!!"); } else { /* Modifico el que ya existia! */ PERR("MODIFICANDO REGISTRO EXISTENTE"); error = 0; idx->emu_mult->modificar_registro(idx->emu_mult, - k.i_clave, - leido, - cant*sizeof(INDICE_DATO)+sizeof(int), - &error - ); + k.i_clave, + leido, + cant*sizeof(INDICE_DATO)+sizeof(int), + &error + ); } /* Clean up! */ free(leido); @@ -894,7 +898,7 @@ static void abreviar_claves(INDICE *idx, B_NodoEntry *array, B_NodoHeader *heade * mas de 2 letras iguales, si no no gano nada y complica las cosas */ if (iguales > 1) { - sprintf(salvar, "%d%s", iguales, resto); + sprintf(salvar, "%d|%s", iguales, resto); free(actual); error = 0; idx->emu_string->modificar_registro(idx->emu_string, array[i].clave.i_clave, salvar, strlen(salvar)+1, &error); @@ -919,10 +923,11 @@ static void desabreviar_claves(INDICE *idx, B_NodoEntry *array, B_NodoHeader *he for(i=1; icant; i++) { actual = (char *)idx->emu_string->leer_registro(idx->emu_string, array[i].clave, &size, &error); iguales = strtol(actual, &resto, 10); - if (iguales > 0) { + if ((iguales > 0) && (*resto == '|')) { + fprintf(stderr, "%s %s %d\n", primera, actual, iguales); strncpy(salvar, primera, iguales); salvar[iguales] = '\0'; - strcat(salvar, resto); + strcat(salvar, resto+1); /* +1 para saltar el separador */ idx->emu_string->modificar_registro(idx->emu_string, array[i].clave.i_clave, salvar, strlen(salvar)+1, &error); free(actual); } else {