diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-05-02 20:59:07 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-05-02 20:59:07 +0200 |
commit | abddc3fc34b39f5a75c8f3a1b9f2e4a1d6ca6ed8 (patch) | |
tree | 3d3aa14e099dff0dcf27ba5f34af534fff4ac6b7 | |
parent | Bind `j` and `k` to move up and down. (diff) | |
download | hex-viewer-abddc3fc34b39f5a75c8f3a1b9f2e4a1d6ca6ed8.tar.gz hex-viewer-abddc3fc34b39f5a75c8f3a1b9f2e4a1d6ca6ed8.tar.xz |
Add search functionality.
-rw-r--r-- | ui.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -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; + } } |