return TRUE;
}
-static void status_update(struct view *view);
-
static enum request
-status_request(struct view *view, enum request request, struct line *line)
+status_enter(struct view *view, struct line *line)
{
struct status *status = line->data;
char path[SIZEOF_STR] = "";
char *info;
size_t cmdsize = 0;
- if (request == REQ_STATUS_UPDATE) {
- status_update(view);
- return REQ_NONE;
- }
-
- if (request != REQ_ENTER)
- return request;
-
if (line->type == LINE_STAT_NONE ||
(!status && line[1].type == LINE_STAT_NONE)) {
report("No file to diff");
return REQ_NONE;
}
+
static bool
status_update_file(struct view *view, struct status *status, enum line_type type)
{
open_view(view, REQ_VIEW_STATUS, OPEN_RELOAD);
}
+static enum request
+status_request(struct view *view, enum request request, struct line *line)
+{
+ switch (request) {
+ case REQ_STATUS_UPDATE:
+ status_update(view);
+ break;
+
+ case REQ_ENTER:
+ status_enter(view, line);
+ break;
+
+ default:
+ return request;
+ }
+
+ return REQ_NONE;
+}
+
static void
status_select(struct view *view, struct line *line)
{