Commit Diff


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;