2.9BSD/usr/src/ucb/vsh/dircmd.c
#include "hd.h"
#include "mydir.h"
dircmd (cmd) register cmd; {
register ret; /* return value */
ret = REPLOT;
if (cmd == EOT) leave ();
else if (cmd == LF)
ret = enterdir (DOTDOT);
else if ((cmd == '+') || (cmd == ';') || (cmd == 'u'))
cpage = ((cpage >= tpages) ? 1 : cpage + 1);
else if (cmd >= 'a' && cmd <= 'z') {
cmd -= 'a';
if (cmd >= pageend) ret = NOREPLOT;
else if (enterfile (filename (cmd)) == FAILURE) {
longfile (cmd); ret = NOREPLOT;
}
} else if (cmd > '0' && cmd <= '9')
cpage = cmd - '0';
else if (cmd == '0') cpage = 10;
else if (cmd == '-') {
cpage--;
if (cpage < 1) cpage = tpages;
}
else ret = NOOP;
return ret;
}