+#include "stdio.h"
+#include <sys/types.h>
+#include <sys/dir.h>
+#include "lrnref"
+#define ND 64
+
+start(lesson)
+char *lesson;
+{
+ struct direct dv[ND], *dm, *dp;
+ int f, c, n;
+ char where [100];
+
+ f = open(".", 0);
+ 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->d_ino) {
+ n = strlen(dp->d_name);
+ if (dp->d_name[n-2] == '.' && dp->d_name[n-1] == 'c')
+ continue;
+ c = dp->d_name[0];
+ if (c>='a' && c<= 'z')
+ unlink(dp->d_name);
+ }
+ close(f);
+ if (ask)
+ return;
+ sprintf(where, "../../%s/L%s", sname, lesson);
+ if (access(where, 04)==0) /* there is a file */
+ return;
+ fprintf(stderr, "No lesson %s\n",lesson);
+ wrapup(1);
+}
+
+fcopy(new,old)
+char *new, *old;
+{
+ char b[BUFSIZ];
+ int n, fn, fo;
+ fn = creat(new, 0666);
+ fo = open(old,0);
+ if (fo<0) return;
+ if (fn<0) return;
+ while ( (n=read(fo, b, BUFSIZ)) > 0)
+ write(fn, b, n);
+ close(fn);
+ close(fo);
+}