X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/78ff3129342b5ae75673aac710820805fe5e3f41..91245c4c700e6740b4d00e1f36b02e05ff96dabd:/emufs/indice_b.c?ds=sidebyside diff --git a/emufs/indice_b.c b/emufs/indice_b.c index df09618..9a5118d 100644 --- a/emufs/indice_b.c +++ b/emufs/indice_b.c @@ -71,8 +71,6 @@ void emufs_indice_b_crear(INDICE *idx) header.hijo_izquierdo = -1; fp = fopen(idx->filename, "w"); - PERR("Creando indice"); - fprintf(stderr, "Archivo = (%s)\n", idx->filename); if (fp == NULL) { PERR("Error al crear el archivo"); return; @@ -120,7 +118,6 @@ int emufs_indice_b_insertar(INDICE *idx, CLAVE clave, INDICE_DATO dato) if (idx->tipo_dato == IDX_STRING) { /* Tengo que sacar el texto repetido del archivo de textos */ - PERR("Eliminando string duplicado"); idx->emu_string->borrar_registro(idx->emu_string, clave); } return 1; @@ -145,10 +142,6 @@ 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); @@ -162,9 +155,11 @@ INDICE_DATO emufs_indice_b_buscar(INDICE *idx, CLAVE clave) B_NodoHeader header; B_NodoEntry *claves; char *nodo, *tmp; + int nodo_id; /* Leo la raiz */ nodo = b_leer_nodo(idx, 0); + nodo_id = 0; while (nodo) { b_leer_header(nodo, &header); claves = b_leer_claves(nodo, &header); @@ -172,14 +167,18 @@ INDICE_DATO emufs_indice_b_buscar(INDICE *idx, CLAVE clave) while ((itam_bloque-sizeof(B_NodoHeader)); for(j=0; jtam_bloque-sizeof(B_NodoHeader)); for(j=0; jemu_mult->grabar_registro(idx->emu_mult, leido, cant*sizeof(INDICE_DATO)+sizeof(int), @@ -851,7 +862,6 @@ static EMUFS_REG_ID b_insertar_dup_en_pos(INDICE *idx, INDICE_DATO pos, INDICE_D 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, @@ -893,6 +903,10 @@ static void abreviar_claves(INDICE *idx, B_NodoEntry *array, B_NodoHeader *heade primera = (char *)idx->emu_string->leer_registro(idx->emu_string, array[0].clave, &size, &error); for(i=1; icant; i++) { actual = (char *)idx->emu_string->leer_registro(idx->emu_string, array[i].clave, &size, &error); + if (*actual == '*') { + free(actual); + continue; + } resto = abreviar(primera, actual, &iguales); /* Para que tenga sentido abreviar tengo que tener * mas de 2 letras iguales, si no no gano nada y complica las cosas @@ -922,9 +936,12 @@ static void desabreviar_claves(INDICE *idx, B_NodoEntry *array, B_NodoHeader *he primera = (char *)idx->emu_string->leer_registro(idx->emu_string, array[0].clave, &size, &error); for(i=1; icant; i++) { actual = (char *)idx->emu_string->leer_registro(idx->emu_string, array[i].clave, &size, &error); + if (*actual == '*') { + free(actual); + continue; + } iguales = strtol(actual, &resto, 10); if ((iguales > 0) && (*resto == '|')) { - fprintf(stderr, "%s %s %d\n", primera, actual, iguales); strncpy(salvar, primera, iguales); salvar[iguales] = '\0'; strcat(salvar, resto+1); /* +1 para saltar el separador */