commit d6b05b5be7694f11ca2fa97e95c4de3f4adbdd3c from: Stefan Sperling date: Sat Aug 04 12:54:35 2018 UTC keep track of view types in tog commit - 69069811fa4d44f2abcf73fefdfb36fee7e9d9fe commit + d6b05b5be7694f11ca2fa97e95c4de3f4adbdd3c blob - 3913894ecf46f0dc2440ccdd0cd315f5fcfae288 blob + bee343160a857c71fd91c99a1c2c493f814e7ddc --- tog/tog.c +++ tog/tog.c @@ -82,12 +82,20 @@ static struct tog_cmd tog_commands[] = { "browse trees in repository" }, }; +enum tog_view_type { + TOG_VIEW_DIFF, + TOG_VIEW_LOG, + TOG_VIEW_TREE, + TOG_VIEW_BLAME +}; + struct tog_view { WINDOW *window; PANEL *panel; int nlines, ncols, begin_y, begin_x; int lines, cols; /* copies of LINES and COLS */ struct tog_view *parent; + enum tog_view_type type; }; static const struct got_error * @@ -115,7 +123,7 @@ close_view(struct tog_view *view) static struct tog_view * open_view(int nlines, int ncols, int begin_y, int begin_x, - struct tog_view *parent) + struct tog_view *parent, enum tog_view_type type) { struct tog_view *view = malloc(sizeof(*view)); @@ -123,6 +131,7 @@ open_view(int nlines, int ncols, int begin_y, int begi return NULL; view->parent = parent; + view->type = type; view->lines = LINES; view->cols = COLS; view->nlines = nlines ? nlines : LINES - begin_y; @@ -751,7 +760,7 @@ show_commit(struct tog_view *parent_view, struct commi goto done; } - view = open_view(0, 0, 0, 0, parent_view); + view = open_view(0, 0, 0, 0, parent_view, TOG_VIEW_DIFF); if (view == NULL) { err = got_error_from_errno(); goto done; @@ -780,7 +789,7 @@ browse_commit(struct tog_view *parent_view, struct com if (err) return err; - view = open_view(0, 0, 0, 0, parent_view); + view = open_view(0, 0, 0, 0, parent_view, TOG_VIEW_TREE); if (view == NULL) { err = got_error_from_errno(); goto done; @@ -1029,7 +1038,7 @@ cmd_log(int argc, char *argv[]) if (error != NULL) goto done; - view = open_view(0, 0, 0, 0, NULL); + view = open_view(0, 0, 0, 0, NULL, TOG_VIEW_LOG); if (view == NULL) { error = got_error_from_errno(); goto done; @@ -1264,7 +1273,7 @@ cmd_diff(int argc, char *argv[]) if (error) goto done; - view = open_view(0, 0, 0, 0, NULL); + view = open_view(0, 0, 0, 0, NULL, TOG_VIEW_DIFF); if (view == NULL) { error = got_error_from_errno(); goto done; @@ -1867,7 +1876,8 @@ show_blame_view(struct tog_view *view, const char *pat break; if (pobj == NULL && obj == NULL) break; - diff_view = open_view(0, 0, 0, 0, view); + diff_view = open_view(0, 0, 0, 0, view, + TOG_VIEW_DIFF); if (diff_view == NULL) { err = got_error_from_errno(); break; @@ -2012,7 +2022,7 @@ cmd_blame(int argc, char *argv[]) if (error != NULL) goto done; - view = open_view(0, 0, 0, 0, NULL); + view = open_view(0, 0, 0, 0, NULL, TOG_VIEW_BLAME); if (view == NULL) { error = got_error_from_errno(); goto done; @@ -2254,7 +2264,7 @@ blame_tree_entry(struct tog_view *parent_view, struct if (err) return err; - view = open_view(0, 0, 0, 0, parent_view); + view = open_view(0, 0, 0, 0, parent_view, TOG_VIEW_BLAME); if (view) { err = show_blame_view(view, path, commit_id, repo); close_view(view); @@ -2345,7 +2355,8 @@ show_tree_view(struct tog_view *view, struct got_tree_ case 'l': if (selected_entry) { struct tog_view *log_view; - log_view = open_view(0, 0, 0, 0, view); + log_view = open_view(0, 0, 0, 0, view, + TOG_VIEW_LOG); if (log_view == NULL) { err = got_error_from_errno(); goto done; @@ -2552,7 +2563,7 @@ cmd_tree(int argc, char *argv[]) if (error != NULL) goto done; - view = open_view(0, 0, 0, 0, NULL); + view = open_view(0, 0, 0, 0, NULL, TOG_VIEW_TREE); if (view == NULL) { error = got_error_from_errno(); goto done;