/* Visuel Hexdiff -------------- More infos --> http://tboudet.free.fr/hexdiff/ */ #include #include #include #include #include #include #include #include #define MAIN #include "hexdiff.h" /*----------------------------------------------------------------*/ static void finish(int signal) { endwin(); exit(0); } /*----------------------------------------------------------------*/ int affiche_les_dumps(void) { int foo, bar, idx, flag; char buff[50]; char *format_offset; memset(f1.buffer, 0, T_BUFF); memset(f2.buffer, 0, T_BUFF); /* * lire les deux fichiers... */ lseek(f1.fd, f1.offset, SEEK_SET); f1.lus = read(f1.fd, f1.buffer, T_BUFF); lseek(f2.fd, f2.offset, SEEK_SET); f2.lus = read(f2.fd, f2.buffer, T_BUFF); ecrire_barres_fichiers(); /* * afficher les offsets */ format_offset = config.offsets_in_hex ? "%08lx" : "%8ld"; for (foo=0; foo15) f1.offset -= 16; if (f2.offset>15) f2.offset -= 16; break; case 'U': f1.offset -= 64; if (f1.offset<0) f1.offset=0; f2.offset -= 64; if (f2.offset<0) f2.offset=0; break; case 'd': case 'k': case KEY_DOWN: if (pas_a_la_fin) { f1.offset += 16; f2.offset += 16; } break; case 'D': if (pas_a_la_fin) { f1.offset += 64; f2.offset += 64; } break; case 'H': config.offsets_in_hex ^= 1; break; case ' ': case KEY_NPAGE: if (pas_a_la_fin) { f1.offset += (HAUT-1)*16; f2.offset += (HAUT-1)*16; } break; case KEY_PPAGE: lfoo = f1.offset - (HAUT-1)*16; if (lfoo<0) lfoo = 0; f1.offset = f2.offset = lfoo; break; case '0': case KEY_HOME: f1.offset = f2.offset = 0; break; case '7': config.show_8bits = 0; break; case '8': config.show_8bits = 1; break; case '$': /* jump to the end of the smallest file */ lfoo = (f1.taille