#include "articulos.h"
/* Se encarga de reemplazar los \0 un caracter visual, y segurar un \0 al final */
-static char *procesar_registro_articulo(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *size, int *pos_actual);
+static char *procesar_registro_articulo_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *size, int *pos_actual);
#define ACT 0
#define ANT 1
ant_indice = 1;
data = (char *)fp->leer_registro_raw(fp, emufs_idx_get_id_at(fp, ant_indice), &size, &pos_actual);
- data = procesar_registro_articulo(fp, data, &size, &pos_actual);
+ data = procesar_registro_articulo_tipo3(fp, data, &size, &pos_actual);
ancho_registro = sizeof(t_Articulo)-sizeof(unsigned int)*2+20;
mvwaddstr(padre, h-5, 35, "Leyenda :");
wattroff(padre, A_BOLD);
wattroff(padre, COLOR_PAIR(COLOR_RED));
- mvwaddstr(padre, h-4, 38, "| = Separador de campo");
+ mvwaddstr(padre, h-4, 38, "| = Separador de campo . = Libre");
mvwaddstr(padre, h-3, 38, "[XXX] = Campo numerico");
mvwaddstr(padre, h-2, 38, "(XXX) = ID de registro");
case 'e':
case 'E':
fp->borrar_registro(fp, emufs_idx_get_id_at(fp, ant_indice));
- data = (char *)fp->leer_registro_raw(fp, emufs_idx_get_id_at(fp, ant_indice), &size, &pos_actual);
- data = procesar_registro_articulo(fp, data, &size, &pos_actual);
total_indice = emufs_idx_get_count(fp);
if (ant_indice >= total_indice) {
ant_indice = total_indice - 1;
}
+
+ data = (char *)fp->leer_registro_raw(fp, emufs_idx_get_id_at(fp, ant_indice), &size, &pos_actual);
+ data = procesar_registro_articulo_tipo3(fp, data, &size, &pos_actual);
break;
case 'g':
case 'G':
art_agregar(NULL);
free(data);
data = (char *)fp->leer_registro_raw(fp, emufs_idx_get_id_at(fp, ant_indice), &size, &pos_actual);
- data = procesar_registro_articulo(fp, data, &size, &pos_actual);
+ data = procesar_registro_articulo_tipo3(fp, data, &size, &pos_actual);
total_indice = emufs_idx_get_count(fp);
mvwaddstr(padre, h-5, 35, "Leyenda :");
wattroff(padre, A_BOLD);
wattroff(padre, COLOR_PAIR(COLOR_RED));
- mvwaddstr(padre, h-4, 38, "| = Separador de campo");
+ mvwaddstr(padre, h-4, 38, "| = Separador de campo . = Libre");
mvwaddstr(padre, h-4, 8, "Salir = ENTER");
box(actual[0], 0, 0);
wrefresh(actual[0]);
free(data);
data = (char *)fp->leer_registro_raw(fp, emufs_idx_get_id_at(fp, ant_indice), &size, &pos_actual);
- data = procesar_registro_articulo(fp, data, &size, &pos_actual);
+ data = procesar_registro_articulo_tipo3(fp, data, &size, &pos_actual);
/* Tengo que re-pintar algunas cosas */
wattron(padre, A_BOLD);
mvwaddstr(padre, h-5, 35, "Leyenda :");
wattroff(padre, A_BOLD);
wattroff(padre, COLOR_PAIR(COLOR_RED));
- mvwaddstr(padre, h-4, 38, "| = Separador de campo");
+ mvwaddstr(padre, h-4, 38, "| = Separador de campo . = Libre");
mvwaddstr(padre, h-4, 8, "Salir = ENTER");
box(actual[0], 0, 0);
wrefresh(actual[0]);
if (ant_indice >= total_indice) ant_indice = total_indice-1;
if (data) free(data);
data = (char *)fp->leer_registro_raw(fp, emufs_idx_get_id_at(fp, ant_indice), &size, &pos_actual);
- data = procesar_registro_articulo(fp, data, &size, &pos_actual);
+ data = procesar_registro_articulo_tipo3(fp, data, &size, &pos_actual);
}
break;
case 'k':
if (ant_indice == EMUFS_NOT_FOUND) ant_indice = 0;
if (data) free(data);
data = (char *)fp->leer_registro_raw(fp, emufs_idx_get_id_at(fp, ant_indice), &size, &pos_actual);
- data = procesar_registro_articulo(fp, data, &size, &pos_actual);
+ data = procesar_registro_articulo_tipo3(fp, data, &size, &pos_actual);
}
}
curs_set(1);
}
-static char *procesar_registro_articulo(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *size, int *pos_actual)
+char *procesar_registro_articulo_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *size, int *pos_actual)
{
- char *tmp, *salida, *tmp1, pos_actualizada;
+ char *tmp, *salida, *tmp1, pos_actualizada, ant;
int cant_header, i=0, j;
if (ptr == NULL) return NULL;
tmp1 = salida;
pos_actualizada = 0;
while (i<cant_header) {
+ /* Verifico la pos_actual para el resaltado, asi queda coherente
+ * en el cambio de formato
+ */
if (((tmp - ptr) == *pos_actual) && (!pos_actualizada)) {
(*pos_actual) = tmp1-salida;
pos_actualizada = 1;
j = 0;
while (j < (sizeof(t_Articulo)-sizeof(unsigned int))) {
if (*tmp == '\0') {
- (*tmp1) = '|';
+ if (ant == (*tmp))
+ (*tmp1) = '.';
+ else
+ (*tmp1) = '|';
} else {
(*tmp1) = (*tmp);
}
+ ant = (*tmp);
tmp++;
tmp1++;
j++;