err(1, where);
err(1, "%s", where);
start(char *lesson){	struct direct {		int inode; 		char name[14];	};	struct direct dv[ND], *dm, *dp;	int f, c, n;	char where [1024];#if	0	/* I'm not sure the point of this loop to unlink files, it may be	 * some kind of cleanup. I'm sure I don't like unlinking files	 * like this and, anyway, it would all have to be recoded using	 * opendir() and readdir(). 	-- Ian	 */	f = open(".", O_RDONLY);	n = read(f, dv, ND*sizeof(*dp));	n /= sizeof(*dp);	if (n==ND)		fprintf(stderr, "lesson too long\n");	dm = dv+n;	for(dp=dv; dp<dm; dp++)		if (dp->inode) {			n = strlen(dp->name);			if (dp->name[n-2] == '.' && dp->name[n-1] == 'c')				continue;			c = dp->name[0];			if (c>='a' && c<= 'z')				unlink(dp->name);		}	close(f);	if (ask)		return;#endif	snprintf(where, sizeof where, "%s/%s/L%s", _PATH_LLIB, sname, lesson);	if (access(where, R_OK)==0)	/* there is a file */		return;	fprintf(stderr, "No lesson %s\n",lesson);	err(1, where);	wrapup(1);}