+/*
+ * User requests
+ */
+
+#define REQ_INFO \
+ /* XXX: Keep the view request first and in sync with views[]. */ \
+ REQ_GROUP("View switching") \
+ REQ_(VIEW_MAIN, "Show main view"), \
+ REQ_(VIEW_DIFF, "Show diff view"), \
+ REQ_(VIEW_LOG, "Show log view"), \
+ REQ_(VIEW_HELP, "Show help page"), \
+ REQ_(VIEW_PAGER, "Show pager view"), \
+ \
+ REQ_GROUP("View manipulation") \
+ REQ_(ENTER, "Enter current line and scroll"), \
+ REQ_(NEXT, "Move to next"), \
+ REQ_(PREVIOUS, "Move to previous"), \
+ REQ_(VIEW_NEXT, "Move focus to next view"), \
+ REQ_(VIEW_CLOSE, "Close the current view"), \
+ REQ_(QUIT, "Close all views and quit"), \
+ \
+ REQ_GROUP("Cursor navigation") \
+ REQ_(MOVE_UP, "Move cursor one line up"), \
+ REQ_(MOVE_DOWN, "Move cursor one line down"), \
+ REQ_(MOVE_PAGE_DOWN, "Move cursor one page down"), \
+ REQ_(MOVE_PAGE_UP, "Move cursor one page up"), \
+ REQ_(MOVE_FIRST_LINE, "Move cursor to first line"), \
+ REQ_(MOVE_LAST_LINE, "Move cursor to last line"), \
+ \
+ REQ_GROUP("Scrolling") \
+ REQ_(SCROLL_LINE_UP, "Scroll one line up"), \
+ REQ_(SCROLL_LINE_DOWN, "Scroll one line down"), \
+ REQ_(SCROLL_PAGE_UP, "Scroll one page up"), \
+ REQ_(SCROLL_PAGE_DOWN, "Scroll one page down"), \
+ \
+ REQ_GROUP("Misc") \
+ REQ_(PROMPT, "Bring up the prompt"), \
+ REQ_(SCREEN_UPDATE, "Update the screen"), \
+ REQ_(SCREEN_REDRAW, "Redraw the screen"), \
+ REQ_(SCREEN_RESIZE, "Resize the screen"), \
+ REQ_(SHOW_VERSION, "Show version information"), \
+ REQ_(STOP_LOADING, "Stop all loading views"), \
+ REQ_(TOGGLE_LINENO, "Toggle line numbers"),
+
+
+/* User action requests. */
+enum request {
+#define REQ_GROUP(help)
+#define REQ_(req, help) REQ_##req
+
+ /* Offset all requests to avoid conflicts with ncurses getch values. */
+ REQ_OFFSET = KEY_MAX + 1,
+ REQ_INFO
+
+#undef REQ_GROUP
+#undef REQ_
+};
+
+struct request_info {
+ enum request request;
+ char *help;
+};
+
+static struct request_info req_info[] = {
+#define REQ_GROUP(help) { 0, (help) },
+#define REQ_(req, help) { REQ_##req, (help) }
+ REQ_INFO
+#undef REQ_GROUP
+#undef REQ_
+};
+