From ab9a9e8ca8b39f256ca037e9086d4d770493bd39 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Mon, 19 Apr 2004 01:01:52 +0000 Subject: [PATCH] * BUGFIX : Estaba mal la condicion de salida en el while de preguntar_id * Ahora el buscar en Ver bloques anda. --- emufs_gui/viewer.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/emufs_gui/viewer.c b/emufs_gui/viewer.c index 3f85ab1..9d7d0f3 100644 --- a/emufs_gui/viewer.c +++ b/emufs_gui/viewer.c @@ -58,10 +58,9 @@ void mostrar_info(WINDOW *padre, int h, int offset_alto, int opt) wattroff(padre, A_BOLD); wattroff(padre, COLOR_PAIR(COLOR_RED)); mvwaddstr(padre, h-offset_alto+2, 48, " | = Separador de campo"); - mvwaddstr(padre, h-offset_alto+3, 48, "[XXX] = Campo numerico"); - mvwaddstr(padre, h-offset_alto+4, 48, "(XXX) = ID de registro"); - mvwaddstr(padre, h-offset_alto+5, 48, "{XXX} = Tam. de registro"); - mvwaddstr(padre, h-offset_alto+6, 48, " . = Esp. Libre"); + mvwaddstr(padre, h-offset_alto+3, 48, "(XXX) = ID de registro"); + mvwaddstr(padre, h-offset_alto+4, 48, "{XXX} = Tam. de registro"); + mvwaddstr(padre, h-offset_alto+5, 48, " . = Esp. Libre"); } char *juntar_memoria(char *s1, char *s2, char *s3, int size1, int size2, int size3) @@ -188,12 +187,20 @@ void ver_bloques(WINDOW *padre, int w, int h, int cual) box(dlg, 0, 0); indices_actual = preguntar_id(dlg, fp); if (indices_actual < 0) indices_actual = 0; - if (indices_actual > indices_total) indices_actual = indices_total-1; + if (indices_actual >= indices_total) indices_actual = indices_total-1; werase(dlg); wrefresh(dlg); delwin(dlg); wrefresh(padre); curs_set(0); + if (data) free(data); + fp->leer_bloque_raw(fp, indices_actual, &bloque_actual, &bloque_anterior, &bloque_siguiente, &size_actual, &size_anterior, &size_siguiete); + bloque_actual = procesar(fp, bloque_actual, &size_actual, &pos_actual, &ancho_registro); + bloque_siguiente = procesar(fp, bloque_siguiente, &size_siguiete, &pos_actual, &ancho_registro); + bloque_anterior = procesar(fp, bloque_anterior, &size_anterior, &pos_actual, &ancho_registro); + pos_actual = size_anterior; /* Resalta desde el fin del bloque anterior */ + ancho_registro = size_actual; + data = juntar_memoria(bloque_anterior, bloque_actual, bloque_siguiente, size_anterior, size_actual, size_siguiete); break; case 'a': /* Scroll */ scroll--; @@ -338,7 +345,9 @@ void ver_registros(WINDOW *padre, int w, int h, int cual) case 'B': dlg = newwin(4, 50, h/2-2, w/2-25); box(dlg, 0, 0); - preguntar_id(dlg, fp); + indices_actual = preguntar_id(dlg, fp); + if (indices_actual < 0) indices_actual = 0; + if (indices_actual >= indices_total) indices_actual = indices_total - 1; werase(dlg); wrefresh(dlg); delwin(dlg); @@ -461,7 +470,7 @@ int preguntar_id(WINDOW *win, EMUFS *fp) form_ejecutar(form, 1,1); n = form_obtener_valor_int(form, "ID a buscar"); - } while (n>0); + } while (n<0); form_destruir(form); return n; -- 2.43.0