aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2023-05-02 20:59:07 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2023-05-02 20:59:07 +0200
commitabddc3fc34b39f5a75c8f3a1b9f2e4a1d6ca6ed8 (patch)
tree3d3aa14e099dff0dcf27ba5f34af534fff4ac6b7
parentBind `j` and `k` to move up and down. (diff)
downloadhex-viewer-abddc3fc34b39f5a75c8f3a1b9f2e4a1d6ca6ed8.tar.gz
hex-viewer-abddc3fc34b39f5a75c8f3a1b9f2e4a1d6ca6ed8.tar.xz
Add search functionality.
-rw-r--r--ui.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/ui.c b/ui.c
index c22f26a..c07225c 100644
--- a/ui.c
+++ b/ui.c
@@ -294,8 +294,28 @@ int main(int argc, char *argv[]) {
draw_screen(ctx, bv);
refresh();
break;
+ case '/':
+ {
+ echo();
+ nocbreak();
+ char *s = malloc(100);
+ mvprintw(LINES - 1, 0, "/");
+ refresh();
+ getnstr(s, 99);
+ cbreak();
+ noecho();
+ char *ptr = memmem((char*)screen.mem, screen.mem_len, s, strlen(s));
+ if (ptr != NULL) {
+ size_t target = ptr - (char*) screen.mem;
+ screen.top_address = LINE_LEN * (target / LINE_LEN);
+ }
+ draw_screen(ctx, bv);
+ refresh();
+ }
+ break;
case KEY_ENTER:
goto end;
+
}
}