1: #include "stdio.h"
   2: #include "lrnref"
   3: 
   4: selsub(argc,argv)
   5: char *argv[];
   6: {
   7:     char ans1[100], *cp;
   8:     static char ans2[30];
   9:     static char dirname[20];
  10:     static char subname[20];
  11: 
  12:     if (argc > 1 && argv[1][0] == '-') {
  13:         direct = argv[1]+1;
  14:         argc--;
  15:         argv++;
  16:     }
  17:     chknam(direct);
  18:     if (chdir(direct) != 0) {
  19:         fprintf(stderr, "can't cd to %s\,", direct);
  20:         exit(1);
  21:     }
  22:     sname = argc > 1 ? argv[1] : 0;
  23:     if (argc > 2)
  24:         strcpy (level=ans2, argv[2]);
  25:     else
  26:         level = 0;
  27:     if (argc > 3 )
  28:         speed = atoi(argv[3]);
  29:     if (!sname) {
  30:         printf("These are the available courses -\n");
  31:         list("Linfo");
  32:         printf("If you want more information about the courses,\n");
  33:         printf("or if you have never used 'learn' before,\n");
  34:         printf("type 'return'; otherwise type the name of\n");
  35:         printf("the course you want, followed by 'return'.\n");
  36:         fflush(stdout);
  37:         gets(sname=subname);
  38:         if (sname[0] == '\0') {
  39:             list("Xinfo");
  40:             do {
  41:                 printf("\nWhich subject?  ");
  42:                 fflush(stdout);
  43:                 gets(sname=subname);
  44:             } while (sname[0] == '\0');
  45:         }
  46:     }
  47:     chknam(sname);
  48:     if (!level) {
  49:         printf("If you were in the middle of this subject\n");
  50:         printf("and want to start where you left off, type\n");
  51:         printf("the last lesson number the computer printed.\n");
  52:         printf("To start at the beginning, just hit return.\n");
  53:         fflush(stdout);
  54:         gets(ans2);
  55:         if (ans2[0]==0)
  56:             strcpy(ans2,"0");
  57:         for (cp=ans2; *cp; cp++)
  58:             if (*cp == '(' || *cp == ' ')
  59:                 *cp= 0;
  60:         level=ans2;
  61:     }
  62: 
  63:     /* make new directory for user to play in */
  64:     if (chdir("play") != 0) {
  65:         fprintf(stderr, "can't cd to playpen\n");
  66:         exit(1);
  67:     }
  68:     sprintf(dir=dirname, "pl%da", getpid());
  69:     sprintf(ans1, "mkdir %s", dir);
  70:     system(ans1);
  71:     if (chdir(dir) < 0) {
  72:         fprintf(stderr, "Couldn't create working directory.\nBye.\n");
  73:         exit(1);
  74:     }
  75:     /* after this point, we have a working directory. */
  76:     /* have to call wrapup to clean up */
  77:     if (access(sprintf(ans1, "%s/%s/Init", direct, sname), 04)==0)
  78:         if (system(sprintf(ans1, "%s/%s/Init %s", direct,sname, level)) != 0) {
  79:             printf("Leaving learn.\n");
  80:             wrapup(1);
  81:         }
  82:     if (level[0] == '-')    /* no lesson names start with - */
  83:         ask = 1;
  84:     start(level);
  85: }
  86: 
  87: chknam(name)
  88: char *name;
  89: {
  90:     if (access(name, 05) < 0) {
  91:         printf("Sorry, there is no subject or lesson named %s.\nBye.\n", name);
  92:         exit(1);
  93:     }
  94: }

Defined functions

chknam defined in line 87; used 2 times
selsub defined in line 4; used 1 times
Last modified: 1981-07-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 800
Valid CSS Valid XHTML 1.0 Strict