BSD 3 development
authorBill Joy <wnj@ucbvax.Berkeley.EDU>
Sun, 30 Dec 1979 17:49:38 +0000 (09:49 -0800)
committerBill Joy <wnj@ucbvax.Berkeley.EDU>
Sun, 30 Dec 1979 17:49:38 +0000 (09:49 -0800)
Work on file usr/src/cmd/learn/start.c

Synthesized-from: 3bsd

usr/src/cmd/learn/start.c [new file with mode: 0644]

diff --git a/usr/src/cmd/learn/start.c b/usr/src/cmd/learn/start.c
new file mode 100644 (file)
index 0000000..2bb2f0a
--- /dev/null
@@ -0,0 +1,52 @@
+#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);
+}