if (argc
> 1 && argv
[1][0] == '-') {
if (chdir(direct
) != 0) {
fprintf(stderr
, "can't cd to %s\,", direct
);
sname
= argc
> 1 ? argv
[1] : 0;
strcpy (level
=ans2
, argv
[2]);
printf("These are the available courses -\n");
printf("If you want more information about the courses,\n");
printf("or if you have never used 'learn' before,\n");
printf("type 'return'; otherwise type the name of\n");
printf("the course you want, followed by 'return'.\n");
printf("\nWhich subject? ");
} while (sname
[0] == '\0');
printf("If you were in the middle of this subject\n");
printf("and want to start where you left off, type\n");
printf("the last lesson number the computer printed.\n");
printf("To start at the beginning, just hit return.\n");
if (*cp
== '(' || *cp
== ' ')
/* make new directory for user to play in */
if (chdir("play") != 0) {
fprintf(stderr
, "can't cd to playpen\n");
sprintf(dir
=dirname
, "pl%da", getpid());
sprintf(ans1
, "mkdir %s", dir
);
fprintf(stderr
, "Couldn't create working directory.\nBye.\n");
/* after this point, we have a working directory. */
/* have to call wrapup to clean up */
if (access(sprintf(ans1
, "%s/%s/Init", direct
, sname
), 04)==0)
if (system(sprintf(ans1
, "%s/%s/Init %s", direct
,sname
, level
)) != 0) {
printf("Leaving learn.\n");
if (level
[0] == '-') /* no lesson names start with - */
if (access(name
, 05) < 0) {
printf("Sorry, there is no subject or lesson named %s.\nBye.\n", name
);