2.9BSD/usr/src/ucb/vsh/enterf.c
#include "hd.h"
#include "mydir.h"
#include "classify.h"
/* Enterfile selects its parameter fname; Fname may either be a single
element file name (no slashes) or a full path name. Enterfile
can handle files which look like ".", "..", "file.c", or "/a/b".
For files which could look like "/a/b/", "a/b", or "./../../a" use
the procedure "file" (file expects an argument in argv format).
*/
enterfile (fname) char *fname; {
switch (classify (fname)) {
case CL_NULL: case CL_PROTPLN:
myperror (fname); return FAILURE;
case CL_DIR:
return enterdir (fname);
case CL_CORE:
f_exec (DEBUGGER, DEBUGGER, fname, 0); return SUCCESS;
case CL_AOUT:
p_exec ("/bin/nm", "nm", fname, 0); return REPLOT;
case CL_AR:
p_exec ("/bin/ar", "ar", "vt", fname, 0); return REPLOT;
case CL_CPIO:
p_exec ("/bin/cpio", "cpio", "-vt", 0); return REPLOT;
case CL_TEXT:
f_exec (EDITOR, EDITOR, fname, 0); return REPLOT;
default:
putmsg (fname); printf (": Vsh cannot handle this file");
}
return FAILURE;
}
home () { /* enter home directory */
return file (&envhome);
}