diff options
author | Denys Vlasenko | 2017-09-15 15:23:47 +0200 |
---|---|---|
committer | Denys Vlasenko | 2017-09-15 15:23:47 +0200 |
commit | e58b44755dbac7c55bf602f7f76dfb37b47323f5 (patch) | |
tree | 8f9c2935a08e1f9083636479767fa64770bb8b7f /miscutils/hexedit.c | |
parent | f3fa86525850620d31e48a742a25fd4965b1dba2 (diff) | |
download | busybox-e58b44755dbac7c55bf602f7f76dfb37b47323f5.zip busybox-e58b44755dbac7c55bf602f7f76dfb37b47323f5.tar.gz |
hexedit: code shrink
function old new delta
hexedit_main 1171 1170 -1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'miscutils/hexedit.c')
-rw-r--r-- | miscutils/hexedit.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/miscutils/hexedit.c b/miscutils/hexedit.c index 8334181..bafb834 100644 --- a/miscutils/hexedit.c +++ b/miscutils/hexedit.c @@ -432,28 +432,27 @@ int hexedit_main(int argc UNUSED_PARAM, char **argv) printf(ESC"[999;1H" CLEAR_TILL_EOL); /* go to last line */ if (read_line_input(NULL, "Go to (dec,0Xhex,0oct): ", buf, sizeof(buf)) > 0) { off_t t; - unsigned pgmask; + unsigned cursor; t = bb_strtoull(buf, NULL, 0); if (t >= G.size) t = G.size - 1; - pgmask = G_pagesize - 1; - cnt = t & pgmask; - t = t & ~(off_t)pgmask; + cursor = t & (G_pagesize - 1); + t -= cursor; if (t < 0) - cnt = t = 0; - if (t != 0 && cnt < 0x1ff) { + cursor = t = 0; + if (t != 0 && cursor < 0x1ff) { /* very close to end of page, possibly to EOF */ /* move one page lower */ t -= G_pagesize; - cnt += G_pagesize; + cursor += G_pagesize; } G.offset = t; - remap(cnt); - redraw(cnt); + remap(cursor); + redraw(cursor); break; } - /* EOF/error on input: fall through to exiting */ + /* ^C/EOF/error: fall through to exiting */ } case CTRL('X'): restore_term(); |