Code

Eliminate unneeded calls to redrawwin
[tig.git] / tig.c
diff --git a/tig.c b/tig.c
index 095e9c6e92e11dbd41c86e73b5569afdb914cdb4..4fac53286e2beeecda9b688d90fda3bac10f3eec 100644 (file)
--- a/tig.c
+++ b/tig.c
@@ -2061,7 +2061,6 @@ redraw_view_dirty(struct view *view)
 
        if (!dirty)
                return;
-       redrawwin(view->win);
        if (input_mode)
                wnoutrefresh(view->win);
        else
@@ -2078,7 +2077,6 @@ redraw_view_from(struct view *view, int lineno)
                        break;
        }
 
-       redrawwin(view->win);
        if (input_mode)
                wnoutrefresh(view->win);
        else
@@ -2285,7 +2283,6 @@ do_scroll_view(struct view *view, int lines)
                        draw_view_line(view, view->lineno - view->offset);
        }
 
-       redrawwin(view->win);
        wrefresh(view->win);
        report("");
 }
@@ -2419,7 +2416,6 @@ move_view(struct view *view, enum request request)
        /* Draw the current line */
        draw_view_line(view, view->lineno - view->offset);
 
-       redrawwin(view->win);
        wrefresh(view->win);
        report("");
 }
@@ -2447,7 +2443,6 @@ select_view_line(struct view *view, unsigned long lineno)
                if (view_is_displayed(view)) {
                        draw_view_line(view, old_lineno);
                        draw_view_line(view, view->lineno - view->offset);
-                       redrawwin(view->win);
                        wrefresh(view->win);
                } else {
                        view->ops->select(view, &view->line[view->lineno]);
@@ -3609,22 +3604,13 @@ static struct view_ops diff_ops = {
 static bool
 help_open(struct view *view)
 {
-       int lines = ARRAY_SIZE(req_info) + 2;
+       char buf[SIZEOF_STR];
+       size_t bufpos;
        int i;
 
        if (view->lines > 0)
                return TRUE;
 
-       for (i = 0; i < ARRAY_SIZE(req_info); i++)
-               if (!req_info[i].request)
-                       lines++;
-
-       lines += run_requests + 1;
-
-       view->line = calloc(lines, sizeof(*view->line));
-       if (!view->line)
-               return FALSE;
-
        add_line_text(view, "Quick reference for tig keybindings:", LINE_DEFAULT);
 
        for (i = 0; i < ARRAY_SIZE(req_info); i++) {
@@ -3643,8 +3629,14 @@ help_open(struct view *view)
                if (!*key)
                        key = "(no key defined)";
 
-               add_line_format(view, LINE_DEFAULT, "    %-25s %s",
-                               key, req_info[i].help);
+               for (bufpos = 0; bufpos <= req_info[i].namelen; bufpos++) {
+                       buf[bufpos] = tolower(req_info[i].name[bufpos]);
+                       if (buf[bufpos] == '_')
+                               buf[bufpos] = '-';
+               }
+
+               add_line_format(view, LINE_DEFAULT, "    %-25s %-20s %s",
+                               key, buf, req_info[i].help);
        }
 
        if (run_requests) {
@@ -3655,8 +3647,6 @@ help_open(struct view *view)
        for (i = 0; i < run_requests; i++) {
                struct run_request *req = get_run_request(REQ_NONE + i + 1);
                const char *key;
-               char cmd[SIZEOF_STR];
-               size_t bufpos;
                int argc;
 
                if (!req)
@@ -3667,12 +3657,12 @@ help_open(struct view *view)
                        key = "(no key defined)";
 
                for (bufpos = 0, argc = 0; req->argv[argc]; argc++)
-                       if (!string_format_from(cmd, &bufpos, "%s%s",
+                       if (!string_format_from(buf, &bufpos, "%s%s",
                                                argc ? " " : "", req->argv[argc]))
                                return REQ_NONE;
 
                add_line_format(view, LINE_DEFAULT, "    %-10s %-14s `%s`",
-                               keymap_table[req->keymap].name, key, cmd);
+                               keymap_table[req->keymap].name, key, buf);
        }
 
        return TRUE;