diff options
author | 2019-01-19 21:50:30 +0530 | |
---|---|---|
committer | 2019-01-19 21:50:30 +0530 | |
commit | a8234f26e8dc95d164513b236455fff8c795fb1d (patch) | |
tree | eb6bffb9e6de886002e59d847dba88b9c114fb76 /src | |
parent | c400a19268228d1d09cb933de2ed831b3fb6e80b (diff) | |
download | nnn-a8234f26e8dc95d164513b236455fff8c795fb1d.tar.gz |
Combine navigation case
Diffstat (limited to 'src')
-rw-r--r-- | src/nnn.c | 84 |
1 files changed, 50 insertions, 34 deletions
@@ -2797,45 +2797,61 @@ nochange: printmsg("unsupported file"); goto nochange; } - case SEL_NEXT: - if (cur < ndents - 1) - ++cur; - else if (ndents) - /* Roll over, set cursor to first entry */ + case SEL_NEXT: // fallthrough + case SEL_PREV: // fallthrough + case SEL_PGDN: // fallthrough + case SEL_PGUP: // fallthrough + case SEL_HOME: // fallthrough + case SEL_END: + switch (sel) { + case SEL_NEXT: + if (cur < ndents - 1) + ++cur; + else if (ndents) + /* Roll over, set cursor to first entry */ + cur = 0; + break; + case SEL_PREV: + if (cur > 0) + --cur; + else if (ndents) + /* Roll over, set cursor to last entry */ + cur = ndents - 1; + break; + case SEL_PGDN: + if (cur < ndents - 1) + cur += MIN((LINES - 4) / 2, ndents - 1 - cur); + break; + case SEL_PGUP: + if (cur > 0) + cur -= MIN((LINES - 4) / 2, cur); + break; + case SEL_HOME: cur = 0; - break; - case SEL_PREV: - if (cur > 0) - --cur; - else if (ndents) - /* Roll over, set cursor to last entry */ + break; + default: /* case SEL_END */ cur = ndents - 1; + break; + } break; - case SEL_PGDN: - if (cur < ndents - 1) - cur += MIN((LINES - 4) / 2, ndents - 1 - cur); - break; - case SEL_PGUP: - if (cur > 0) - cur -= MIN((LINES - 4) / 2, cur); - break; - case SEL_HOME: - cur = 0; - break; - case SEL_END: - cur = ndents - 1; - break; - case SEL_CDHOME: - dir = xgetenv("HOME", path); // fallthrough - case SEL_CDBEGIN: - if (sel == SEL_CDBEGIN) - dir = ipath; // fallthrough - case SEL_CDLAST: - if (sel == SEL_CDLAST) - dir = lastdir; // fallthrough + case SEL_CDHOME: // fallthrough + case SEL_CDBEGIN: // fallthrough + case SEL_CDLAST: // fallthrough case SEL_VISIT: - if (sel == SEL_VISIT) + switch (sel) { + case SEL_CDHOME: + dir = xgetenv("HOME", path); + break; + case SEL_CDBEGIN: + dir = ipath; + break; + case SEL_CDLAST: + dir = lastdir; + break; + default: /* case SEL_VISIT */ dir = mark; + break; + } if (dir[0] == '\0') { printmsg("not set"); |