1*12063SmckusickNote that play directories are created in /tmp, no longer 2*12063Smckusickin /usr/lib/learn/play. The C script is not complete; 3*12063Smckusickuse at your own risk. The editor script still smacks of ed. 411269Smckusick 511269SmckusickLessons are in 611269Smckusick /usr/lib/learn/* 7*12063Smckusickand auxilliary programs are in 8*12063Smckusick /usr/lib/learn/bin 911269Smckusick 1011269SmckusickMake a learn by 1111269Smckusick make 12*12063SmckusickCheck that it's sensible with 1311269Smckusick make check 1411269SmckusickIf that doesn't print any messages, 1511269Smckusickyou're probably in good shape. 1611269Smckusick 17*12063SmckusickLesson directories may be protected. 1811269Smckusick 19*12063SmckusickLearn collects a log file for each script in the .../learn/log 20*12063Smckusickdirectory, with a file for each script (files, editor, etc.) 21*12063Smckusickcontaining an entry for each lesson attempted. 22*12063SmckusickThese files will grow without bound, 2311269Smckusickunless they are periodically truncated. 2411269SmckusickThe log files should have general write permission. 2511269SmckusickIf you don't want logging (a sensible position to take), 26*12063Smckusickset the variable "logging" to zero in source/learn.c 27*12063Smckusickbefore making learn, remove the log directory, or just 28*12063Smckusickturn off write permission for a particular log file. 2911269Smckusick 3011269SmckusickLearn requires about 1500 blocks to make itself, 3111269Smckusickand about 1000 when completely made. 3211269Smckusick 33*12063SmckusickThe best way to get ex to prompt within learn was to modify 34*12063Smckusickthe user's environment variables PATH and EXINIT. 35*12063Smckusick 36*12063SmckusickDue to inane assumptions in the VAX versions of csh -i and ex 37*12063Smckusickwhen stdin and stdout are not terminals, kludges have been 38*12063Smckusickadded with #if's. In particular, I use the old terminal driver 39*12063Smckusickto keep #copyout working and make sh -i masquerades as 40*12063Smckusicka csh -i (by setting PS1=% ) to keep #pipe working. 41*12063Smckusick 42*12063Smckusick"#create" can now end in an incomplete last line with ....#\n 43*12063SmckusickOn input the string %s is converted to the lesson directory. 44*12063SmckusickOn output with "#copyout", prompt signs ("% ") are removed. 45*12063Smckusick"#cmp" now takes a trailing number specifying that only that 46*12063Smckusickmany lines are to be compared. 47*12063Smckusick 48*12063SmckusickThe new command "xyzzy" prints the answer (i.e. the last part 49*12063Smckusickof the lesson), and "xyzzy x" prints the whole lesson text. 50*12063SmckusickA new routine called getlesson tries to construct a valid 51*12063Smckusicklesson number from in invalid one before giving up. 52*12063SmckusickThe commands "where", "skip", and "again" are also new. 53*12063SmckusickGreeting, closing, and reminder messages have been expanded. 54*12063Smckusick 55*12063SmckusickPlease report problems, bad lessons, contributions, etc., to 56*12063SmckusickJohn Kunze, UC Berkeley, 415-642-1530, ucbvax!ucbernie.jak . 57*12063SmckusickThanks. 58