hexedit: code shrink
authorDenys Vlasenko <vda.linux@googlemail.com>
Fri, 15 Sep 2017 13:23:47 +0000 (15:23 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Fri, 15 Sep 2017 13:23:47 +0000 (15:23 +0200)
function                                             old     new   delta
hexedit_main                                        1171    1170      -1

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
miscutils/hexedit.c

index 8334181c70980b0da78956cb45d27348836c261f..bafb834b569761dc1473c5191085d29c0df9a430 100644 (file)
@@ -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();