You missed important definitions in the same file:
#define REQ_INFO \ REQ_GROUP("View switching") \ VIEW_INFO(VIEW_REQ), \ \ REQ_GROUP("View manipulation") \ REQ_(ENTER, "Enter current line and scroll"), \ REQ_(NEXT, "Move to next"), \ REQ_(PREVIOUS, "Move to previous"), \ < output omitted as it is too long >
So, for example, the structure you showed is expanded:
static const struct request_info req_info[] = { { 0, NULL, 0, "View switching" }, < VIEW_INFO also expands to some long structure that was ommited here > { 0, NULL, 0, "View manipulation" }, { REQ_ENTER, ENTER, STRING_SIZE("ENTER"), "Enter current line and scroll"}, { REQ_NEXT, NEXT, STRING_SIZE("NEXT"), "Move to next"} < and so on > };
As mentioned in other answers, this is mainly done to synchronize multiple structures / counters.
KBart
source share