From 9ae9cbf8b9e1b237c85f26d7aaf4ae37dd134096 Mon Sep 17 00:00:00 2001 From: xamidev <121681048+xamidev@users.noreply.github.com> Date: Sun, 2 Jun 2024 12:09:58 +0200 Subject: [PATCH] Position printing and editing --- hex.c | 42 ++++++++++++++++++++++-------------------- minihex | Bin 20152 -> 20280 bytes test.txt | 2 +- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/hex.c b/hex.c index ad7b46b..c7e06e1 100644 --- a/hex.c +++ b/hex.c @@ -1,35 +1,40 @@ #include #include -// TODO: ASCII/Position printing +// TODO: Position printing // TODO: Stop appending garbage at file end -// TODO: Simplify/clean some code (useless condition/loop guard brackets) +// TODO: Skip repeating lines +// TODO: Coloring printable ASCII characters in output +// TODO: Stop scanning always for cmd & loc (for q and s commands) #define BYTES 1024 #define BYTES_PER_LINE 20 -void print_hex(unsigned char* buf, int byteno) -{ +void print_hex(unsigned char* buf, int byteno, int pos) +{ for (int i=0; i\n", argv[0]); + printf("Usage: %s \nInline commands:\n\tpX - print position X\n\teX - edit position X\n\ts - save modified buffer\n\tq - quit\n", argv[0]); return -1; } FILE* f = fopen(argv[1], "r"); unsigned char buf[BYTES]; int byteno = fread(buf, 1, BYTES, f); - print_hex(buf, byteno); + print_hex(buf, byteno, 0); for (;;) { char cmd; - int loc = 0; + int loc; + scanf("%c%d", &cmd, &loc); switch(cmd) { case 'p': case 'P': - print_hex(buf + loc, BYTES_PER_LINE); + print_hex(buf + loc, BYTES_PER_LINE, loc); break; case 'e': case 'E': @@ -99,7 +102,6 @@ int main(int argc, char** argv) case 'q': case 'Q': return 0; - break; } } } diff --git a/minihex b/minihex index 3940a6a6e6972dba8fd347e731d3e5e452d099b5..7751565a87d43a1a7cc9df8516bfbdd053d0ccbb 100755 GIT binary patch delta 4460 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 diff --git a/test.txt b/test.txt index 09ce57f..a546446 100644 --- a/test.txt +++ b/test.txt @@ -1,3 +1,3 @@ -=ello, from a text file. +?ello, from a text file. This is a public service announcement brought to you in part by Slim Shady lol