[comp.sources.games] v12i035: larn - dungeon type adventure game, Patch4

billr@saab.CNA.TEK.COM (Bill Randle) (02/14/91)

Submitted-by: routley@tle.ENET.DEC.COM (Kevin Routley)
Posting-number: Volume 12, Issue 35
Archive-name: larn/Patch4
Patch-To: larn: Volume 11, Issue 84-95
Environment: Unix, VMS, MS-DOS, termcap

	[Warning: this patch has some long (> 80 chars) lines that
	 may get split if this article goes thru a bitnet site. If
	 the patches don't apply, try editing the patch file and
	 reapply the patches.  -br]

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  patches04 larn_hlp.uue
# Wrapped by billr@saab on Wed Feb 13 12:44:00 1991
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'patches04' -a "${1}" != "-c" ; then 
  echo shar: Renaming existing file \"'patches04'\" to \"'patches04.orig'\"
  mv -f 'patches04' 'patches04.orig'
fi
echo shar: Extracting \"'patches04'\" \(31787 characters\)
sed "s/^X//" >'patches04' <<'END_OF_FILE'
X*** patchlevel_orig.h	Tue Feb 12 10:53:38 1991
X--- patchlevel.h	Tue Feb 12 10:53:35 1991
X***************
X*** 1 ****
X! #define PATCHLEVEL 3
X--- 1 ----
X! #define PATCHLEVEL 4
X*** PATCHLOG_orig	Tue Feb 12 10:53:47 1991
X--- PATCHLOG	Tue Feb 12 10:53:42 1991
X***************
X*** 1,3 ****
X--- 1,33 ----
X+ Patch4
X+ ======
X+ 
X+ For Pat Rankin (nethack.rankin@eql.caltech.edu).  Under VMS, do a 
X+ getenv("TERM") before a getenv("TERMINAL").  Add more Dec terminals to the 
X+ termcap file.
X+ 
X+ Courtesy of Andreas Wettengel (andreas@nixhhs.uucp).  Modify bill.c to
X+ produce RFC822-conformant mail headers, compiled using the new RFCMAIL
X+ #define.  This allows elm and other conformant mail programs to display
X+ the Subject and Sender correctly.
X+ 
X+ To satisfy several requests, I have brought back the descriptions of the
X+ compile-time defines into the makefile.  I have also updated the list to
X+ include the more recent additions.
X+ 
X+ Modify main.c to include and make use of PATCHLEVEL.  This requires those
X+ using MSDOS or OS/2 to change patchlevel.h to patchlev.h.  The 'v' command
X+ will now print out the patchlevel as part of the version information.
X+ 
X+ As pointed out by Andreas Wettengal, the second parameter to tputs() should
X+ be one if its to have no affect.  
X+ 
X+ Fix a bug pointed out by Gordon D. (frog!gordon).  Reading a scroll of 
X+ teleport without picking it up leaves it behind when you teleport, allowing
X+ you to read it again.
X+ 
X+ Fix the help file spelling mistakes and spell-casting lister in the help file
X+ with escape sequences.
X+ 
X  Patch3
X  ======
X  
X*** bill_orig.c	Wed Jan  2 10:55:41 1991
X--- bill.c	Mon Jan  7 13:21:29 1991
X***************
X*** 23,28
X  # ifdef MAIL
X    sprintf(mail600,"%s%dmail600",MAILTMP,pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 600 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  the LRS (Larn Revenue Service)\n");
X
X--- 23,29 -----
X  # ifdef MAIL
X    sprintf(mail600,"%s%dmail600",MAILTMP,pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 600 letter\n",23); return(0);}
X+ #ifndef RFCMAIL
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  #endif /*RFCMAIL*/
X  # endif
X***************
X*** 24,29
X    sprintf(mail600,"%s%dmail600",MAILTMP,pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 600 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  the LRS (Larn Revenue Service)\n");
X    standout("\nSubject:"); lprcat("  undeclared income\n");
X
X--- 25,31 -----
X    if (lcreat(mail600) < 0) { write(1,"can't write 600 letter\n",23); return(0);}
X  #ifndef RFCMAIL
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X+ #endif /*RFCMAIL*/
X  # endif
X  #ifdef RFCMAIL
X    lprcat("From: LRS (Larn Revenue Service)\n");
X***************
X*** 25,30
X    if (lcreat(mail600) < 0) { write(1,"can't write 600 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  the LRS (Larn Revenue Service)\n");
X    standout("\nSubject:"); lprcat("  undeclared income\n");
X    lprcat("\n   We heard you survived the caverns of Larn.  Let me be the");
X
X--- 27,36 -----
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  #endif /*RFCMAIL*/
X  # endif
X+ #ifdef RFCMAIL
X+   lprcat("From: LRS (Larn Revenue Service)\n");
X+   lprcat("Subject: Undeclared Income\n\n");
X+ #else /*RFCMAIL*/
X    standout("From:"); lprcat("  the LRS (Larn Revenue Service)\n");
X    standout("\nSubject:"); lprcat("  undeclared income\n");
X  #endif /*RFCMAIL*/
X***************
X*** 27,32
X  # endif
X    standout("From:"); lprcat("  the LRS (Larn Revenue Service)\n");
X    standout("\nSubject:"); lprcat("  undeclared income\n");
X    lprcat("\n   We heard you survived the caverns of Larn.  Let me be the");
X    lprcat("\nfirst to congratulate you on your success.  It is quite a feat.");
X    lprcat("\nIt must also have been very profitable for you.");
X
X--- 33,39 -----
X  #else /*RFCMAIL*/
X    standout("From:"); lprcat("  the LRS (Larn Revenue Service)\n");
X    standout("\nSubject:"); lprcat("  undeclared income\n");
X+ #endif /*RFCMAIL*/
X    lprcat("\n   We heard you survived the caverns of Larn.  Let me be the");
X    lprcat("\nfirst to congratulate you on your success.  It is quite a feat.");
X    lprcat("\nIt must also have been very profitable for you.");
X***************
X*** 57,62
X  # ifdef MAIL
X    sprintf(mail600,"%s%dmail600",MAILTMP,pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 601 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  His Majesty King Wilfred of Larndom\n");
X
X--- 64,70 -----
X  # ifdef MAIL
X    sprintf(mail600,"%s%dmail600",MAILTMP,pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 601 letter\n",23); return(0);}
X+ #ifndef RFCMAIL
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  #endif /*RFCMAIL*/
X  # endif
X***************
X*** 58,63
X    sprintf(mail600,"%s%dmail600",MAILTMP,pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 601 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  His Majesty King Wilfred of Larndom\n");
X    standout("\nSubject:"); lprcat("  a noble deed\n");
X
X--- 66,72 -----
X    if (lcreat(mail600) < 0) { write(1,"can't write 601 letter\n",23); return(0);}
X  #ifndef RFCMAIL
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X+ #endif /*RFCMAIL*/
X  # endif
X  #ifdef RFCMAIL
X    lprcat("From: King (His Majesty King Wilfred of Larndom)\n");
X***************
X*** 59,64
X    if (lcreat(mail600) < 0) { write(1,"can't write 601 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  His Majesty King Wilfred of Larndom\n");
X    standout("\nSubject:"); lprcat("  a noble deed\n");
X    lprcat("\n   I have heard of your magnificent feat, and I, King Wilfred,");
X
X--- 68,77 -----
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  #endif /*RFCMAIL*/
X  # endif
X+ #ifdef RFCMAIL
X+   lprcat("From: King (His Majesty King Wilfred of Larndom)\n");
X+   lprcat("Subject: A Noble Deed\n\n");
X+ #else /*RFCMAIL*/
X    standout("From:"); lprcat("  His Majesty King Wilfred of Larndom\n");
X    standout("\nSubject:"); lprcat("  a noble deed\n");
X  #endif /*RFCMAIL*/
X***************
X*** 61,66
X  # endif
X    standout("From:"); lprcat("  His Majesty King Wilfred of Larndom\n");
X    standout("\nSubject:"); lprcat("  a noble deed\n");
X    lprcat("\n   I have heard of your magnificent feat, and I, King Wilfred,");
X    lprcat("\nforthwith declare today to be a national holiday.  Furthermore,");
X    lprcat("\nhence three days, Ye be invited to the castle to receive the");
X
X--- 74,80 -----
X  #else /*RFCMAIL*/
X    standout("From:"); lprcat("  His Majesty King Wilfred of Larndom\n");
X    standout("\nSubject:"); lprcat("  a noble deed\n");
X+ #endif /*RFCMAIL*/
X    lprcat("\n   I have heard of your magnificent feat, and I, King Wilfred,");
X    lprcat("\nforthwith declare today to be a national holiday.  Furthermore,");
X    lprcat("\nhence three days, Ye be invited to the castle to receive the");
X***************
X*** 78,83
X  # ifdef MAIL
X    sprintf(mail600,"%s%dmail600",MAILTMP,pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 602 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  Count Endelford\n");
X
X--- 92,98 -----
X  # ifdef MAIL
X    sprintf(mail600,"%s%dmail600",MAILTMP,pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 602 letter\n",23); return(0);}
X+ #ifndef RFCMAIL
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  #endif /*RFCMAIL*/
X  # endif
X***************
X*** 79,84
X    sprintf(mail600,"%s%dmail600",MAILTMP,pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 602 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  Count Endelford\n");
X    standout("\nSubject:"); lprcat("  You Bastard!\n");
X
X--- 94,100 -----
X    if (lcreat(mail600) < 0) { write(1,"can't write 602 letter\n",23); return(0);}
X  #ifndef RFCMAIL
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X+ #endif /*RFCMAIL*/
X  # endif
X  #ifdef RFCMAIL
X    lprcat("From: Endelford (Count Endelford)\n");
X***************
X*** 80,85
X    if (lcreat(mail600) < 0) { write(1,"can't write 602 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  Count Endelford\n");
X    standout("\nSubject:"); lprcat("  You Bastard!\n");
X    lprcat("\n   I heard (from sources) of your journey.  Congratulations!");
X
X--- 96,105 -----
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  #endif /*RFCMAIL*/
X  # endif
X+ #ifdef RFCMAIL
X+   lprcat("From: Endelford (Count Endelford)\n");
X+   lprcat("Subject: You Bastard!\n\n");
X+ #else /*RFCMAIL*/
X    standout("From:"); lprcat("  Count Endelford\n");
X    standout("\nSubject:"); lprcat("  You Bastard!\n");
X  #endif /*RFCMAIL*/
X***************
X*** 82,87
X  # endif
X    standout("From:"); lprcat("  Count Endelford\n");
X    standout("\nSubject:"); lprcat("  You Bastard!\n");
X    lprcat("\n   I heard (from sources) of your journey.  Congratulations!");
X    lprcat("\nYou Bastard!  With several attempts I have yet to endure the");
X    lprcat(" caves,\nand you, a nobody, makes the journey!  From this time");
X
X--- 102,108 -----
X  #else /*RFCMAIL*/
X    standout("From:"); lprcat("  Count Endelford\n");
X    standout("\nSubject:"); lprcat("  You Bastard!\n");
X+ #endif /*RFCMAIL*/
X    lprcat("\n   I heard (from sources) of your journey.  Congratulations!");
X    lprcat("\nYou Bastard!  With several attempts I have yet to endure the");
X    lprcat(" caves,\nand you, a nobody, makes the journey!  From this time");
X***************
X*** 97,102
X  # ifdef MAIL
X    sprintf(mail600,"%s%dmail600", MAILTMP,pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 603 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  Mainair, Duke of Larnty\n");
X
X--- 118,124 -----
X  # ifdef MAIL
X    sprintf(mail600,"%s%dmail600", MAILTMP,pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 603 letter\n",23); return(0);}
X+ #ifndef RFCMAIL
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  #endif /*RFCMAIL*/
X  # endif
X***************
X*** 98,103
X    sprintf(mail600,"%s%dmail600", MAILTMP,pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 603 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  Mainair, Duke of Larnty\n");
X    standout("\nSubject:"); lprcat("  High Praise\n");
X
X--- 120,126 -----
X    if (lcreat(mail600) < 0) { write(1,"can't write 603 letter\n",23); return(0);}
X  #ifndef RFCMAIL
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X+ #endif /*RFCMAIL*/
X  # endif
X  #ifdef RFCMAIL
X    lprcat("From: Mainair (Mainair, Duke of Larnty)\n");
X***************
X*** 99,104
X    if (lcreat(mail600) < 0) { write(1,"can't write 603 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  Mainair, Duke of Larnty\n");
X    standout("\nSubject:"); lprcat("  High Praise\n");
X    lprcat("\n   With a certainty a hero I declare to be amongst us!  A nod of");
X
X--- 122,131 -----
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  #endif /*RFCMAIL*/
X  # endif
X+ #ifdef RFCMAIL
X+   lprcat("From: Mainair (Mainair, Duke of Larnty)\n");
X+   lprcat("Subject: High Praise\n\n");
X+ #else /*RFCMAIL*/
X    standout("From:"); lprcat("  Mainair, Duke of Larnty\n");
X    standout("\nSubject:"); lprcat("  High Praise\n");
X  #endif /*RFCMAIL*/
X***************
X*** 101,106
X  # endif
X    standout("From:"); lprcat("  Mainair, Duke of Larnty\n");
X    standout("\nSubject:"); lprcat("  High Praise\n");
X    lprcat("\n   With a certainty a hero I declare to be amongst us!  A nod of");
X    lprcat("\nfavour I send to thee.  Me thinks Count Endelford this day of");
X    lprcat("\nright breath'eth fire as of dragon of whom ye are slayer.  I");
X
X--- 128,134 -----
X  #else /*RFCMAIL*/
X    standout("From:"); lprcat("  Mainair, Duke of Larnty\n");
X    standout("\nSubject:"); lprcat("  High Praise\n");
X+ #endif /*RFCMAIL*/
X    lprcat("\n   With a certainty a hero I declare to be amongst us!  A nod of");
X    lprcat("\nfavour I send to thee.  Me thinks Count Endelford this day of");
X    lprcat("\nright breath'eth fire as of dragon of whom ye are slayer.  I");
X***************
X*** 118,123
X  # ifdef MAIL
X    sprintf(mail600,"%s%dmail600", MAILTMP,pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 604 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  St. Mary's Children's Home\n");
X
X--- 146,152 -----
X  # ifdef MAIL
X    sprintf(mail600,"%s%dmail600", MAILTMP,pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 604 letter\n",23); return(0);}
X+ #ifndef RFCMAIL
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  #endif /*RFCMAIL*/
X  # endif
X***************
X*** 119,124
X    sprintf(mail600,"%s%dmail600", MAILTMP,pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 604 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  St. Mary's Children's Home\n");
X    standout("\nSubject:"); lprcat("  these poor children\n");
X
X--- 148,154 -----
X    if (lcreat(mail600) < 0) { write(1,"can't write 604 letter\n",23); return(0);}
X  #ifndef RFCMAIL
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X+ #endif /*RFCMAIL*/
X  # endif
X  #ifdef RFCMAIL
X    lprcat("From: StMary (St. Mary's Children's Home)\n");
X***************
X*** 120,125
X    if (lcreat(mail600) < 0) { write(1,"can't write 604 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  St. Mary's Children's Home\n");
X    standout("\nSubject:"); lprcat("  these poor children\n");
X    lprcat("\n   News of your great conquests has spread to all of Larndom.");
X
X--- 150,159 -----
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  #endif /*RFCMAIL*/
X  # endif
X+ #ifdef RFCMAIL
X+   lprcat("From: StMary (St. Mary's Children's Home)\n");
X+   lprcat("Subject: These Poor Children\n\n");
X+ #else /*RFCMAIL*/
X    standout("From:"); lprcat("  St. Mary's Children's Home\n");
X    standout("\nSubject:"); lprcat("  these poor children\n");
X  #endif /*RFCMAIL*/
X***************
X*** 122,127
X  # endif
X    standout("From:"); lprcat("  St. Mary's Children's Home\n");
X    standout("\nSubject:"); lprcat("  these poor children\n");
X    lprcat("\n   News of your great conquests has spread to all of Larndom.");
X    lprcat("\nMight I have a moment of a great man's time.  We here at St.");
X    lprcat("\nMary's Children's Home are very poor, and many children are");
X
X--- 156,162 -----
X  #else /*RFCMAIL*/
X    standout("From:"); lprcat("  St. Mary's Children's Home\n");
X    standout("\nSubject:"); lprcat("  these poor children\n");
X+ #endif /*RFCMAIL*/
X    lprcat("\n   News of your great conquests has spread to all of Larndom.");
X    lprcat("\nMight I have a moment of a great man's time.  We here at St.");
X    lprcat("\nMary's Children's Home are very poor, and many children are");
X***************
X*** 140,145
X  # ifdef MAIL
X    sprintf(mail600, "%s%dmail600", MAILTMP, pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 605 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  The National Cancer Society of Larn\n");
X
X--- 175,181 -----
X  # ifdef MAIL
X    sprintf(mail600, "%s%dmail600", MAILTMP, pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 605 letter\n",23); return(0);}
X+ #ifndef RFCMAIL
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  #endif
X  # endif
X***************
X*** 141,146
X    sprintf(mail600, "%s%dmail600", MAILTMP, pid); /* prepare path */
X    if (lcreat(mail600) < 0) { write(1,"can't write 605 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  The National Cancer Society of Larn\n");
X    standout("\nSubject:"); lprcat("  hope\n");
X
X--- 177,183 -----
X    if (lcreat(mail600) < 0) { write(1,"can't write 605 letter\n",23); return(0);}
X  #ifndef RFCMAIL
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X+ #endif
X  # endif
X  #ifdef RFCMAIL
X    lprcat("From: CancerSociety (The National Cancer Society of Larn)\n");
X***************
X*** 142,147
X    if (lcreat(mail600) < 0) { write(1,"can't write 605 letter\n",23); return(0);}
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  # endif
X    standout("From:"); lprcat("  The National Cancer Society of Larn\n");
X    standout("\nSubject:"); lprcat("  hope\n");
X    lprcat("\nCongratulations on your successful expedition.  We are sure much");
X
X--- 179,188 -----
X    lprcat("\n\n\n\n\n\n\n\n\n\n\n\n");
X  #endif
X  # endif
X+ #ifdef RFCMAIL
X+   lprcat("From: CancerSociety (The National Cancer Society of Larn)\n");
X+   lprcat("Subject: Hope\n\n");
X+ #else /*RFCMAIL*/
X    standout("From:"); lprcat("  The National Cancer Society of Larn\n");
X    standout("\nSubject:"); lprcat("  hope\n");
X  #endif /*RFCMAIL*/
X***************
X*** 144,149
X  # endif
X    standout("From:"); lprcat("  The National Cancer Society of Larn\n");
X    standout("\nSubject:"); lprcat("  hope\n");
X    lprcat("\nCongratulations on your successful expedition.  We are sure much");
X    lprcat("\ncourage and determination were needed on your quest.  There are");
X    lprcat("\nmany though, that could never hope to undertake such a journey");
X
X--- 185,191 -----
X  #else /*RFCMAIL*/
X    standout("From:"); lprcat("  The National Cancer Society of Larn\n");
X    standout("\nSubject:"); lprcat("  hope\n");
X+ #endif /*RFCMAIL*/
X    lprcat("\nCongratulations on your successful expedition.  We are sure much");
X    lprcat("\ncourage and determination were needed on your quest.  There are");
X    lprcat("\nmany though, that could never hope to undertake such a journey");
X*** io_orig.c	Tue Feb 12 10:52:16 1991
X--- io.c	Tue Feb 12 10:52:05 1991
X***************
X*** 748,756 ****
X  	switch (tgetent(termbuf, term))
X  # else
X  # ifdef VMS
X! 	term = getenv("TERMINAL");
X  	if (term == NULL)
X! 		term = getenv("TERM");
X  	switch (tgetent(termbuf, term))
X  # else
X  	switch (tgetent(termbuf, term = getenv("TERM")))
X--- 748,756 ----
X  	switch (tgetent(termbuf, term))
X  # else
X  # ifdef VMS
X! 	term = getenv("TERM");
X  	if (term == NULL)
X! 		term = getenv("TERMINAL");
X  	switch (tgetent(termbuf, term))
X  # else
X  	switch (tgetent(termbuf, term = getenv("TERM")))
X***************
X*** 927,949 ****
X  			{
X  			if (*str>=32)	{ ttputch (*str); curx++; }
X  			else switch (*str) {
X! 				case CLEAR:		tputs (CL, 0, ttputch);		curx = cury = 0;
X  								break;
X  
X! 				case CL_LINE:	tputs (CE, 0, ttputch);
X  								break;
X  
X! 				case CL_DOWN:	tputs (CD, 0, ttputch);
X  								break;
X  
X! 				case ST_START:	tputs (SO, 0, ttputch);
X  								break;
X  
X! 				case ST_END:	tputs (SE, 0, ttputch);
X  								break;
X  
X! 				case CURSOR:	curx = *++str - 1;		cury = *++str - 1;
X! 								tputs (tgoto (CM, curx, cury), 0, ttputch);
X  								break;
X  
X  				case '\n':		if ((cury == 23) && enable_scroll)
X--- 927,949 ----
X  			{
X  			if (*str>=32)	{ ttputch (*str); curx++; }
X  			else switch (*str) {
X! 				case CLEAR:		tputs (CL, 1, ttputch);		curx = cury = 0;
X  								break;
X  
X! 				case CL_LINE:	tputs (CE, 1, ttputch);
X  								break;
X  
X! 				case CL_DOWN:	tputs (CD, 1, ttputch);
X  								break;
X  
X! 				case ST_START:	tputs (SO, 1, ttputch);
X  								break;
X  
X! 				case ST_END:	tputs (SE, 1, ttputch);
X  								break;
X  
X! 				case CURSOR:	curx = *++str - 1;		cury = *++str - 1;
X! 								tputs (tgoto (CM, curx, cury), 0, ttputch);
X  								break;
X  
X  				case '\n':		if ((cury == 23) && enable_scroll)
X***************
X*** 953,971 ****
X  									if (++scrline > 23) scrline=19;
X  
X  									if (++scrline > 23) scrline=19;
X! 									tputs (tgoto (CM, 0, scrline), 0, ttputch);
X! 									tputs (CE, 0, ttputch);
X  
X  									if (--scrline < 19) scrline=23;
X! 									tputs (tgoto (CM, 0, scrline), 0, ttputch);
X! 									tputs (CE, 0, ttputch);
X  									}
X  								  else
X  									{
X! 									tputs (tgoto (CM, 0, 19), 0, ttputch);
X! 									tputs (DL, 0, ttputch);
X! 									tputs (tgoto (CM, 0, 23), 0, ttputch);
X! 								/*	tputs (AL, 0, ttputch); */
X  									}
X  								  }
X  								else
X--- 953,971 ----
X  									if (++scrline > 23) scrline=19;
X  
X  									if (++scrline > 23) scrline=19;
X! 									tputs (tgoto (CM, 1, scrline), 0, ttputch);
X! 									tputs (CE, 1, ttputch);
X  
X  									if (--scrline < 19) scrline=23;
X! 									tputs (tgoto (CM, 1, scrline), 0, ttputch);
X! 									tputs (CE, 1, ttputch);
X  									}
X  								  else
X  									{
X! 									tputs (tgoto (CM, 1, 19), 0, ttputch);
X! 									tputs (DL, 1, ttputch);
X! 									tputs (tgoto (CM, 1, 23), 0, ttputch);
X! 								/*	tputs (AL, 1, ttputch); */
X  									}
X  								  }
X  								else
X***************
X*** 976,986 ****
X  								break;
X  				case T_INIT:
X  					if (TI)
X! 						tputs(TI, 0, ttputch);
X  					break;
X  				case T_END:
X  					if (TE)
X! 						tputs(TE, 0, ttputch);
X  					break;
X  				default:
X  					ttputch (*str);
X--- 976,986 ----
X  								break;
X  				case T_INIT:
X  					if (TI)
X! 						tputs(TI, 1, ttputch);
X  					break;
X  				case T_END:
X  					if (TE)
X! 						tputs(TE, 1, ttputch);
X  					break;
X  				default:
X  					ttputch (*str);
X*** main_orig.c	Tue Feb 12 10:53:18 1991
X--- main.c	Tue Feb 12 10:52:54 1991
X***************
X*** 4,13 ****
X--- 4,15 ----
X  #include "errno.h"
X  #include "setjmp.h"
X  #include "stdlib.h"
X+ #include "patchlev.h"
X  #endif
X  
X  #include "header.h"
X  #ifndef MSDOS
X+ #include "patchlevel.h"
X  # ifndef VMS
X  #  include <pwd.h>
X  # endif VMS
X***************
X*** 818,824 ****
X              case 'v':   
X          yrepcount=0;    
X          cursors();
X!                 lprintf("\nCaverns of Larn, Version %d.%d, Diff=%d",(long)VERSION,(long)SUBVERSION,(long)c[HARDGAME]);
X                  if (wizard) lprcat(" Wizard"); nomove=1;
X                  if (cheat) lprcat(" Cheater");
X                  lprcat(copyright);
X--- 820,826 ----
X              case 'v':   
X          yrepcount=0;    
X          cursors();
X!                 lprintf("\nCaverns of Larn, Version %d.%d.%d, Diff=%d",(long)VERSION,(long)SUBVERSION,(long)PATCHLEVEL,(long)c[HARDGAME]);
X                  if (wizard) lprcat(" Wizard"); nomove=1;
X                  if (cheat) lprcat(" Cheater");
X                  lprcat(copyright);
X***************
X*** 1286,1296 ****
X          lprcat(" here.  Read it?");
X          if ((tempc = getyn()) == 'y')
X              {
X          if (i==OBOOK)
X!                 readbook( iarg[playerx][playery] );
X          else
X!         read_scroll( iarg[playerx][playery] );
X!         forget();
X              return;
X              }
X          else if (tempc != 'n' )
X--- 1288,1303 ----
X          lprcat(" here.  Read it?");
X          if ((tempc = getyn()) == 'y')
X              {
X+ 	    int temp = iarg[playerx][playery];
X+ 	/* destroy the scroll first, in case its a teleport scroll. but
X+ 	   also must update player's knowledge to prevent a blank spot.
X+ 	*/
X+         forget();
X+ 	know[playerx][playery] = KNOWALL ;
X          if (i==OBOOK)
X!                 readbook( temp );
X          else
X!         read_scroll( temp );
X              return;
X              }
X          else if (tempc != 'n' )
X*** Makefile_orig	Tue Feb 12 10:53:31 1991
X--- Makefile	Tue Feb 12 10:53:26 1991
X***************
X*** 1,4 ****
X--- 1,61 ----
X+ ############################################################################
X  #
X+ # A list of available compile-time defines:
X+ #
X+ #   BSD           - use BSD specific features (mostly timer and signal stuff)
X+ #   BSD4.1        - use BSD4.1 to avoid some 4.2 dependencies (must be used with
X+ #                   BSD above; do not mix with SYSV)
X+ #   DGK           - Don Kneller (ported Larn from Unix to MS-DOS) specific 
X+ #                   changes.  None are MS-DOS specific.  This option will be 
X+ #                   going away in a future version.
X+ #   DGK_MSDOS     - MS-DOS specific Don Kneller code.  This will be merged with
X+ #                   the MSDOS #define in a future version.
X+ #   DECRainbow    - DEC Rainbow specific display code.
X+ #   DOCHECKPOINTS - if not defined, checkpoint files are periodically written
X+ #                   by the larn process (no forking) if enabled in the .larnopts
X+ #                   description file.  Checkpointing is handy on an unreliable
X+ #                   system, but takes CPU. Inclusion of DOCHECKPOINTS will cause
X+ #                   fork()ing to perform the checkpoints (again if enabled in
X+ #                   the .larnopts file).  This usually avoids pauses in larn
X+ #                   while the checkpointing is being done (on large machines).
X+ #   EXTRA         - incorporates code to gather additional performance stats
X+ #   FLUSHNO=#     - Set the input queue excess flushing threshold (default 5)
X+ #   HIDEBYLINK    - if defined, the program attempts to hide from ps
X+ #   MACRORND      - Define to use macro version of rnd() and rund() (fast & big)
X+ #   MAIL          - system supports mail messages (see bill.c).  Not useful on
X+ #                   non-networked machines.
X+ #   MSDOS         - MS-DOS specific code.
X+ #   OS2LARN       - OS/2 Specific code.
X+ #   NONAP         - causes napms() to return immediately instead of delaying
X+ #                   n milliseconds.  This define may be needed on some systems
X+ #                   if the nap stuff does not work correctly (possible hang).
X+ #                   nap() is primarilly used to delay for effect when casting
X+ #                   missile type spells.
X+ #   NOVARARGS     - Define for systems that don't have varargs (a default 
X+ #                   varargs will be used).
X+ #   RFCMAIL       - mail messages are RFC822 conformant.  Must be used with 
X+ #                   MAIL above.
X+ #   SAVEINHOME    - put save files in users HOME instead of LARNHOME (default)
X+ #   SIGTSTP       - define if your system provides the tty stop signal
X+ #   SIGVTALRM     - define if your system supports the virtual time alarm signal
X+ #   SYSV          - use system III/V (instead of V7) type ioctl calls
X+ #   TIMECHECK     - incorporates code to disable play during working hours (8-5)
X+ #   UIDSCORE      - Define to use user id's to manage scoreboard.  Leaving this
X+ #                   out will cause player id's from the file ".playerids" to 
X+ #                   be used instead.  (.playerids is created upon demand).  
X+ #                   Only one entry per id # is allowed in each scoreboard
X+ #                   (winning & non-winning).
X+ #   VT100         - Compile for using vt100 family of terminals.  Omission of 
X+ #                   this define will cause larn to use termcap.
X+ #   WIZID=xxx     - this is the userid (or playerid) of the wizard.  Default is
X+ #                   zero (superuser), which disables all wizard functions.
X+ #                   Players must have this userid (or playerid) in order to
X+ #                   become the non-scoring wizard player.  Definition of WIZID
X+ #                   to non-zero will enable the special wizard debugging
X+ #                   commands.  For root to become wizard, use WIZID= -1.
X+ #
X+ ############################################################################
X+ #
X  OBJ=	action.o bill.o config.o create.o data.o diag.o display.o \
X  	fortune.o global.o help.o io.o main.o monster.o \
X  	moreobj.o movem.o msdos.o nap.o object.o regen.o savelev.o \
X***************
X*** 5,12 ****
X  	scores.o signal.o spells.o spheres.o store.o \
X  	tok.o vms.o
X  #
X  #
X- 
X  CFLAGS=-DDGK -DBSD -D'LARNHOME="/usr/users/routley/larncc/"'
X  
X  larn122: $(OBJ)
X--- 62,69 ----
X  	scores.o signal.o spells.o spheres.o store.o \
X  	tok.o vms.o
X  #
X+ #  LARNHOME is the directory where the larn data files will be installed.
X  #
X  CFLAGS=-DDGK -DBSD -D'LARNHOME="/usr/users/routley/larncc/"'
X  
X  larn122: $(OBJ)
X*** termcap_orig.vms	Tue Feb 12 10:53:57 1991
X--- termcap.vms	Tue Feb 12 10:53:53 1991
X***************
X*** 20,27 ****
X  	:rf=/usr/lib/tabset/vt100:rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
X  	:sc=\E7:se=\E[m:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\
X  	:vt#3:xn:
X! da|vt200|VT200-80|vt200-80|vt200-nam|dec vt200:\
X! 	:ae=4\E(B:as=2\E(<:tc=vt100p:
X  d0|vt100|VT100-80|vt100-80|vt100-am|dec vt100:\
X  	:cr=^M:do=^J:nl=^J:bl=^G:co#80:li#24:cl=50\E[;H\E[2J:\
X  	:le=^H:bs:am:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:\
X--- 20,35 ----
X  	:rf=/usr/lib/tabset/vt100:rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
X  	:sc=\E7:se=\E[m:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\
X  	:vt#3:xn:
X! da|vt200|VT200-80|vt2xx|vt200-80|vt220|vt220-80|vt200-nam|dec vt200:\
X! 	:ae=4\E(B:as=2\E(<:se=2\E[27m:ue=2\E[24m:tc=vt100p:
X! dd|vt200-132|vt220-132|VT200-132|vt200-w|dec vt200 132 cols:\
X! 	:co#132:tc=vt200:
X! db|vt300|vt300-80|vt3xx|dec vt300|vt320|vt320-80|vt300-nam|VT300-80|dec vt300 80 cols:\
X! 	:ds=\E[1$}\E[;H\E[K\E[0$}:\
X! 	:es:fs=\E[0$}:hs:ts=\E[1$}\E[;H\E[K:\
X! 	:tc=vt200:
X! dc|vt300-132|vt320-132|vt300-w|VT300-132|dec vt300 132 cols:\
X! 	:co#132:tc=vt300:
X  d0|vt100|VT100-80|vt100-80|vt100-am|dec vt100:\
X  	:cr=^M:do=^J:nl=^J:bl=^G:co#80:li#24:cl=50\E[;H\E[2J:\
X  	:le=^H:bs:am:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:\
X***************
X*** 33,41 ****
X  	:sc=\E7:rc=\E8:cs=\E[%i%d;%dr:
X  d1|vt100-nam|vt100 w/no am:\
X  	:am@:xn@:tc=vt100-am:
X! d3|vt132|vt132:\
X  	:al=99\E[L:dl=99\E[M:ip=7:dc=7\E[P:ei=\E[4l:im=\E[4h:xn:dN#30:tc=vt100:
X! d6|vt125|vt125-am|DEC vt125:\
X  	:cr=^M:do=^J:nl=^J:bl=^G:co#80:li#24:cl=50\E[H\E[2J:\
X  	:le=^H:am:bs:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:ce=3\E[K:cd=50\E[J:\
X  	:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:md=2\E[1m:mr=2\E[7m:mb=2\E[5m:\
X--- 41,51 ----
X  	:sc=\E7:rc=\E8:cs=\E[%i%d;%dr:
X  d1|vt100-nam|vt100 w/no am:\
X  	:am@:xn@:tc=vt100-am:
X! d3|vt132|vt132-80|dec vt132:\
X  	:al=99\E[L:dl=99\E[M:ip=7:dc=7\E[P:ei=\E[4l:im=\E[4h:xn:dN#30:tc=vt100:
X! d4|vt132-132|vt132 132 cols:\
X! 	:co#132:tc=vt132:
X! d6|vt125|vt125-80|vt125-am|DEC vt125:\
X  	:cr=^M:do=^J:nl=^J:bl=^G:co#80:li#24:cl=50\E[H\E[2J:\
X  	:le=^H:am:bs:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:ce=3\E[K:cd=50\E[J:\
X  	:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:md=2\E[1m:mr=2\E[7m:mb=2\E[5m:\
X***************
X*** 43,53 ****
X  	:ks=\E[?1h\E=:ke=\E[?1l\E>:ku=\EOA:kd=\EOB:\
X  	:kr=\EOC:kl=\EOD:kb=^H:ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:ta=^I:\
X  	:pt:sr=5\EM:vt#3:sc=\E7:rc=\E8:cs=\E[%i%d;%dr:
X! dt|vt100-w|dec vt100 132 cols (w/advanced video):\
X  	:co#132:li#24:rs=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=vt100-am:
X  dv|vt100-w-nam|dec vt100 132 cols (w/advanced video), no am:\
X  	:co#132:li#24:rs=\E>\E[?3h\E[?4l\E[?5l\E[?8h:vt@:tc=vt100-nam:
X! dw|vt52|dec vt52:\
X  	:cr=^M:do=^J:nl=^J:bl=^G:\
X  	:le=^H:bs:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :co#80:li#24:nd=\EC:\
X  	:ta=^I:pt:sr=\EI:up=\EA:ku=\EA:kd=\EB:kr=\EC:kl=\ED:kb=^H:
X--- 53,63 ----
X  	:ks=\E[?1h\E=:ke=\E[?1l\E>:ku=\EOA:kd=\EOB:\
X  	:kr=\EOC:kl=\EOD:kb=^H:ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:ta=^I:\
X  	:pt:sr=5\EM:vt#3:sc=\E7:rc=\E8:cs=\E[%i%d;%dr:
X! dt|vt100-132|vt100-w|dec vt100 132 cols (w/advanced video):\
X  	:co#132:li#24:rs=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=vt100-am:
X  dv|vt100-w-nam|dec vt100 132 cols (w/advanced video), no am:\
X  	:co#132:li#24:rs=\E>\E[?3h\E[?4l\E[?5l\E[?8h:vt@:tc=vt100-nam:
X! dw|vt52|vt52-80|dec vt52:\
X  	:cr=^M:do=^J:nl=^J:bl=^G:\
X  	:le=^H:bs:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :co#80:li#24:nd=\EC:\
X  	:ta=^I:pt:sr=\EI:up=\EA:ku=\EA:kd=\EB:kr=\EC:kl=\ED:kb=^H:
END_OF_FILE
if test 31787 -ne `wc -c <'patches04'`; then
    echo shar: \"'patches04'\" unpacked with wrong size!
fi
# end of 'patches04'
if test -f 'larn_hlp.uue' -a "${1}" != "-c" ; then 
  echo shar: Renaming existing file \"'larn_hlp.uue'\" to \"'larn_hlp.uue.orig'\"
  mv -f 'larn_hlp.uue' 'larn_hlp.uue.orig'
fi
echo shar: Extracting \"'larn_hlp.uue'\" \(11216 characters\)
sed "s/^X//" >'larn_hlp.uue' <<'END_OF_FILE'
Xbegin 644 larn.hlp
XM-R`@("!796QC;VUE('1O('1H92!G86UE(&]F($QA<FXN("!!="!T:&ES(&UO
XM;65N="P@>6]U(&9A8V4@82!G<F5A="!P<F]B;&5M+@I9;W5R(&1A=6=H=&5R
XM(&AA<R!C;VYT<F%C=&5D(&$@<W1R86YG92!D:7-E87-E+"!A;F0@;F]N92!O
XM9B!Y;W5R(&AO;64@<F5M961I97,*<V5E;2!T;R!H879E(&%N>2!E9F9E8W0N
XM("!9;W4@<V5N<V4@=&AA="!S:&4@:7,@:6X@;6]R=&%L(&1A;F=E<BP@86YD
XM('EO=2!M=7-T"G1R>2!T;R!S879E(&AE<BX@(%1I;64@86=O('EO=2!H96%R
XM9"!O9B!A(&QA;F0@;V8@9W)E870@9&%N9V5R(&%N9"!O<'!O<G1U;FET>2X*
XM4&5R:&%P<R!H97)E(&ES('1H92!S;VQU=&EO;B!Y;W4@;F5E9"X*"B`@("!)
XM="!H87,@8F5E;B!S86ED('1H870@=&AE<F4@;VYC92!W87,@82!G<F5A="!M
XM86=I8VEA;B!W:&\@8V%L;&5D(&AI;7-E;&8*4&]L:6YN96%U<RX@($UA;GD@
XM>65A<G,@86=O+"!A9G1E<B!H879I;F<@;6%N>2!M:7)A8W5L;W5S('-U8V-E
XM<W-E<RP@4&]L:6YN96%U<PIR971I<F5D('1O('1H92!C879E<FYS(&]F($QA
XM<FXL('=H97)E(&AE(&1E=F]T960@;6]S="!O9B!H:7,@=&EM92!T;R!T:&4*
XM8W)E871I;VX@;V8@;6%G:6,N("`@4G5M;W)S(&AA=F4@:70@=&AA="!O;F4@
XM9&%Y(%!O;&EN;F5A=7,@<V5T(&]U="!T;R!D:7-P96P*86X@871T86-K:6YG
XM(&%R;7D@:6X@82!F;W)E<W0@<V]M92!D:7-T86YC92!T;R!T:&4@;F]R=&@N
XM("!)="!I<R!B96QI979E9"!T:&%T"FAE<F4@:&4@;65T(&AI<R!D96UI<V4N
XM"@H@("`@5&AE(&-A=F5R;G,@;V8@3&%R;BP@:70@:7,@=&AO=6=H="P@;75S
XM="!B92!M86=N:69I8V5N="!I;B!D97-I9VXL"F%N9"!C;VYT86EN(&UU8V@@
XM;6%G:6,@86YD('1R96%S=7)E+B`@3VYE(&]P=&EO;B!Y;W4@:&%V92!I<R!T
XM;R!U;F1E<G1A:V4@80IJ;W5R;F5Y(&EN=&\@=&AE<V4@8V%V97)N<RX*"@H@
XM("`@1V]O9"!,=6-K(2`@66]U)W)E(&=O:6YG('1O(&YE960@:70A"@H*"@H@
XM("`@("`@("`@("`@("`@&ULT;4AE;'`@1FEL92!F;W(@5&AE($-A=F5R;G,@
XM;V8@3&%R;BP@4')O;7!T($UO9&4;6VT*"F(@(&UO=F4@<V]U=&AW97-T("`@
XM("`@("`@($(@(')U;B!S;W5T:'=E<W0@("`@("`@("`@("!3("!S879E('1H
XM92!G86UE"F@@(&UO=F4@;&5F="`@("`@("`@("`@("`@($@@(')U;B!L969T
XM("`@("`@("`@("`@("`@("`N("!S=&%Y(&AE<F4*:B`@;6]V92!D;W=N("`@
XM("`@("`@("`@("`@2B`@<G5N(&1O=VX@("`@("`@("`@("`@("`@(%X@(&ED
XM96YT:69Y(&$@=')A<`IK("!M;W9E('5P("`@("`@("`@("`@("`@("!+("!R
XM=6X@=7`@("`@("`@("`@("`@("`@("`@5"`@=&%K92!O9F8@87)M;W(*;"`@
XM;6]V92!R:6=H="`@("`@("`@("`@("`@3"`@<G5N(')I9VAT"FX@(&UO=F4@
XM<V]U=&AE87-T("`@("`@("`@($X@(')U;B!S;W5T:&5A<W0*=2`@;6]V92!N
XM;W)T:&5A<W0@("`@("`@("`@52`@<G5N(&YO<G1H96%S=`IY("!M;W9E(&YO
XM<G1H=V5S="`@("`@("`@("!9("!R=6X@;F]R=&AW97-T("`@("`@("`@("`@
XM7DP@<F5D<F%W('1H92!S8W)E96X*8R`@8V%S="!A('-P96QL("`@("`@("`@
XM("`@6B`@=&5L97!O<G0@>6]U<G-E;&8*9"`@9')O<"!A;B!I=&5M("`@("`@
XM("`@("`@92`@96%T('-O;65T:&EN9PIG("!G970@<')E<V5N="!P86-K('=E
XM:6=H="!0("!G:79E('1A>"!S=&%T=7,*:2`@:6YV96YT;W)Y('EO=7(@<&]C
XM:V5T<R`@22`@;&ES="!A;&P@:71E;7,@9F]U;F0@("`@(#\@('1H:7,@:&5L
XM<"!S8W)E96X*<2`@<75A9F8@82!P;W1I;VX@("`@("`@("`@42`@<75I="!T
XM:&4@9V%M90IR("!R96%D(&$@<V-R;VQL("`@("`@("`@("!V("!P<FEN="!P
XM<F]G<F%M('9E<G-I;VX*=R`@=VEE;&0@82!W96%P;VX@("`@("`@("`@5R`@
XM=V5A<B!A<FUO<B`@("`@("`@("`@("`@(%Y,(')E9')A=R!T:&4@<V-R965N
XM"@H*"@H*"B`@("`@("`@("`@("`@("`;6S1M2&5L<"!&:6QE(&9O<B!4:&4@
XM0V%V97)N<R!O9B!,87)N+"!#;VUM86YD($UO9&4;6VT*"F(@(&UO=F4@<V]U
XM=&AW97-T("`@("`@("`@($(@(')U;B!S;W5T:'=E<W0@("`@("`@("`@("!!
XM("!D97-E8W)A=&4@86X@86QT87(*8R`@8V%S="!A('-P96QL("`@("`@("`@
XM("`@0R`@8VQO<V4@82!D;V]R("`@("`@("`@("`@(%H@('1E;&5P;W)T('EO
XM=7)S96QF"F0@(&1R;W`@86X@:71E;2`@("`@("`@("`@($0@(&1R:6YK(&%T
XM(&$@9F]U;G1A:6X@("`@("`\("!G;R!U<"!S=&%I<G,@;W(*92`@96%T('-O
XM;65T:&EN9R`@("`@("`@("`@12`@96YT97(@82!S=&]R92P@9'5N9V5O;B`@
XM("`@('9O;&-A;FEC('-H869T"F<@(&=E="!P<F5S96YT('!A8VL@=V5I9VAT
XM($<@(&=I=F4@=&AE('-T86ER<R!A(&MI8VL@("`^("!G;R!D;W=N('-T86ER
XM<R!O<@IH("!M;W9E(&QE9G0@("`@("`@("`@("`@("!(("!R=6X@;&5F="`@
XM("`@("`@("`@("`@("`@("`@=F]L8V%N:6,@<VAA9G0*:2`@:6YV96YT;W)Y
XM('EO=7(@<&]C:V5T<R`@22`@;&ES="!A;&P@:71E;7,@9F]U;F0@("`@(#\@
XM('1H:7,@:&5L<"!S8W)E96X*:B`@;6]V92!D;W=N("`@("`@("`@("`@("`@
XM2B`@<G5N(&1O=VX@("`@("`@("`@("`@("`@(%X@(&ED96YT:69Y(&$@=')A
XM<`IK("!M;W9E('5P("`@("`@("`@("`@("`@("!+("!R=6X@=7`@("`@("`@
XM("`@("`@("`@("`@+"`@<&EC:R!U<"!I=&5M"FP@(&UO=F4@<FEG:'0@("`@
XM("`@("`@("`@($P@(')U;B!R:6=H="`@("`@("`@("`@("`@("`Z("!L;V]K
XM(&%T(&]B:F5C=`IN("!M;W9E('-O=71H96%S="`@("`@("`@("!.("!R=6X@
XM<V]U=&AE87-T"B`@("`@("`@("`@("`@("`@("`@("`@("`@($\@(&]P96X@
XM82!D;V]R(&]R(&-H97-T("`@("`N("!S=&%Y(&AE<F4*<"`@<')A>2!A="!A
XM;B!A;'1A<B`@("`@("`@4"`@9VEV92!T87@@<W1A='5S"G$@('%U869F(&$@
XM<&]T:6]N("`@("`@("`@(%$@('%U:70@=&AE(&=A;64*<B`@<F5A9"!A('-C
XM<F]L;"`@("`@("`@("`@4B`@<F5M;W9E(&=E;7,@9G)O;2!T:')O;F4*<R`@
XM<VET(&]N(&$@=&AR;VYE("`@("`@("`@4R`@<V%V92!T:&4@9V%M90IT("!T
XM:61Y('5P(&%T(&$@9F]U;G1A:6X@("!4("!T86ME(&]F9B!A<FUO<@IU("!M
XM;W9E(&YO<G1H96%S="`@("`@("`@("!5("!R=6X@;F]R=&AE87-T"G8@('!R
XM:6YT('!R;V=R86T@=F5R<VEO;@IW("!W:65L9"!A('=E87!O;B`@("`@("`@
XM("!7("!W96%R(&%R;6]R"GD@(&UO=F4@;F]R=&AW97-T("`@("`@("`@(%D@
XM(')U;B!N;W)T:'=E<W0@("`@("`@("`@("!>3"!R961R87<@=&AE('-C<F5E
XM;@H@("`@("`@("`@("`@("`@&ULW;5-P96-I86P@3F]T97,;6VT*"E=H96X@
XM&ULW;61R;W!P:6YG(&=O;&0;6VTL(&EF('EO=2!T>7!E("<J)R!A<R!Y;W5R
XM(&%M;W5N="P@86QL('EO=7(@9V]L9"!G971S(&1R;W!P960N"DEN(&=E;F5R
XM86PL('1Y<&EN9R!I;B`G*B<@;65A;G,@86QL(&]F('=H870@>6]U<B!I;G1E
XM<F5S=&5D(&EN+B`@5&AI<R!I<R!T<G5E"G=H96X@=FES:71I;F<@=&AE(&)A
XM;FLL(&]R('=H96X@8V]N=')I8G5T:6YG(&%T(&%L=&%R<RX*"DQA<FX@;F5E
XM9',@=&AE($%.4TDN4UE3("AO<B!P<F5F97)A8FQY+"!T:&4@3D%.4TDN4UE3
XM*2!D979I8V4@9')I=F5R(&EN<W1A;&QE9`II;B!Y;W5R($-/3D9)1RY365,@
XM9FEL92X@(%1H92!S=7!P;&EE9"`B=&5R;6-A<"(@9FEL92!D97-C<FEB97,@
XM=&AE(&5S8V%P90IS97%U96YC97,@=&\@8VAA;F=E('9I9&5O(&UO9&5S("AS
XM964@8V@@,3,@;V8@=&AE($1/4R`R+C`@;6%N=6%L*2X@(%-E92!T:&4*(E1%
XM4DU#05`B('-E8W1I;VX@:6X@3$%23BY$3T,@9F]R(&9U<G1H97(@9&5T86EL
XM<RX*"E=H96X@:6X@=&AE('-T;W)E+"!T<F%D:6YG('!O<W0L('-C:&]O;"P@
XM;W(@:&]M92P@86X@&ULW;3QE<V-A<&4^&UMM('=I;&P@9V5T('EO=2!O=70N
XM"@I7:&5N(&-A<W1I;F<@82!S<&5L;"P@:68@>6]U(&YE960@82!L:7-T(&]F
XM('-P96QL<R!Y;W4@8V%N(&-A<W0L('1Y<&4@)QM;-VU)&UMM)R!A<PIT:&4@
XM9FER<W0@;&5T=&5R(&]F('EO=7(@<W!E;&PN("!4:&4@879A:6QA8FQE(&QI
XM<W0@;V8@<W!E;&QS('=I;&P@8F4@<VAO=VXL"F%F=&5R('=H:6-H('EO=2!M
XM87D@96YT97(@=&AE('-P96QL(&-O9&4N("!4:&ES(&]N;'D@=V]R:W,@;VX@
XM=&AE(#%S="!L971T97(*;V8@=&AE('-P96QL('EO=2!A<F4@8V%S=&EN9RX*
XM"E1H92!!=71H;W(@;V8@3&%R;B!I<R!.;V%H($UO<F=A;B`H,3DX,BTS*2P@
XM0V]P>6EN9R!F;W(@4')O9FET(&ES(%!R;VAI8FET960*0V]P>7)I9VAT(#$Y
XM.#8@8GD@3F]A:"!-;W)G86XL($%L;"!2:6=H=',@4F5S97)V960N"@H*"B`@
XM("`@("`@("`@("`@("`@("`@("`@(!M;-VU,87)N($-O;6UA;F0@3&EN92!/
XM<'1I;VYS&UMM"@IL87)N("LK("`@("`@("`@("`@("`@("!R97-T;W)E(&-H
XM96-K<&]I;G1E9"!G86UE"FQA<FX@+7,@("`@("`@("`@("`@("`@(&QI<W0@
XM=&AE('-C;W)E8F]A<F0*;&%R;B`M:2`@("`@("`@("`@("`@("`@;&ES="!S
XM8V]R97,@=VET:"!I;G9E;G1O<FEE<PIL87)N("UN("`@("`@("`@("`@("`@
XM("!S=7!P<F5S<R!W96QC;VUE(&UE<W-A9V4@=VAE;B!B96=I;FYI;F<@82!G
XM86UE"FQA<FX@+6@@("`@("`@("`@("`@("`@('!R:6YT(&]U="!A;&P@=&AE
XM(&-O;6UA;F0@;&EN92!O<'1I;VYS"FQA<FX@+3QN=6UB97(^("`@("`@("`@
XM('-P96-I9GD@9&EF9FEC=6QT>2!O9B!T:&4@9V%M92`H;6%Y(&)E('5S960@
XM=VET:"`M;BD*;&%R;B`M;SQO<'1S9FEL93X@("`@("`@<W!E8VEF>2!T:&4@
XM;W!T:6]N(&9I;&4@=&\@8F4@=7-E9`IL87)N("UC("`@("`@("`@("`@("`@
XM("!C<F5A=&4@;F5W('-C;W)E8F]A<F1S("TM('!R;VUP=',@9F]R(&$@<&%S
XM<W=O<F0*;&%R;B`M;"`@("`@("`@("`@("`@("`@<')I;G0@;W5T('1H92!L
XM87)N(&QO9R!F:6QE(`IL87)N("UP("`@("`@("`@("`@("`@("!P;&%Y(&EN
XM('!R;VUP="!M;V1E"@H*"@H*"@H*"@H*("`@("`@("`@("`@&ULW;4)A8VMG
XM<F]U;F0@26YF;W)M871I;VX@9F]R($QA<FX;6VT*"B`@("!796QC;VUE('1O
XM('1H92!G86UE(&]F($QA<FXN("!!="!T:&ES(&UO;65N="P@>6]U(&9A8V4@
XM82!G<F5A="!P<F]B;&5M+@I9;W5R(&1A=6=H=&5R(&AA<R!C;VYT<F%C=&5D
XM(&$@<W1R86YG92!D:7-E87-E+"!A;F0@;F]N92!O9B!Y;W5R(&AO;64@<F5M
XM961I97,*<V5E;2!T;R!H879E(&%N>2!E9F9E8W0N("!9;W4@<V5N<V4@=&AA
XM="!S:&4@:7,@:6X@;6]R=&%L(&1A;F=E<BP@86YD('EO=2!M=7-T"G1R>2!T
XM;R!S879E(&AE<BX@(%1I;64@86=O('EO=2!H96%R9"!O9B!A(&QA;F0@;V8@
XM9W)E870@9&%N9V5R(&%N9"!O<'!O<G1U;FET>2X*4&5R:&%P<R!H97)E(&ES
XM('1H92!S;VQU=&EO;B!Y;W4@;F5E9"X*"B`@("!)="!H87,@8F5E;B!S86ED
XM('1H870@=&AE<F4@;VYC92!W87,@82!G<F5A="!M86=I8VEA;B!W:&\@8V%L
XM;&5D(&AI;7-E;&8*4&]L:6YN96%U<RX@($UA;GD@>65A<G,@86=O+"!A9G1E
XM<B!H879I;F<@;6%N>2!M:7)A8W5L;W5S('-U8V-E<W-E<RP@4&]L:6YN96%U
XM<PIR971I<F5D('1O('1H92!C879E<FYS(&]F($QA<FXL('=H97)E(&AE(&1E
XM=F]T960@;6]S="!O9B!H:7,@=&EM92!T;R!T:&4*8W)E871I;VX@;V8@;6%G
XM:6,N("`@4G5M;W)S(&AA=F4@:70@=&AA="!O;F4@9&%Y(%!O;&EN;F5A=7,@
XM<V5T(&]U="!T;R!D:7-P96P*86X@871T86-K:6YG(&%R;7D@:6X@82!F;W)E
XM<W0@<V]M92!D:7-T86YC92!T;R!T:&4@;F]R=&@N("!)="!I<R!B96QI979E
XM9"!T:&%T"FAE<F4@:&4@;65T(&AI<R!D96UI<V4N"@H@("`@5&AE(&-A=F5R
XM;G,@;V8@3&%R;BP@:70@:7,@=&AO=6=H="P@;75S="!B92!M86=N:69I8V5N
XM="!I;B!D97-I9VXL"F%N9"!C;VYT86EN(&UU8V@@;6%G:6,@86YD('1R96%S
XM=7)E+B`@3VYE(&]P=&EO;B!Y;W4@:&%V92!I<R!T;R!U;F1E<G1A:V4@80IJ
XM;W5R;F5Y(&EN=&\@=&AE<V4@8V%V97)N<RX*"B`@("!';V]D($QU8VLA("!9
XM;W4G<F4@9V]I;F<@=&\@;F5E9"!I="$*"@H*("`@("`@("`@("`@&ULW;4AO
XM=R!T;R!U<V4@=&AE(&QA<FXN;W!T(&]P=&EO;B!F:6QE&UMM"@I4:&4@9FEL
XM92`B;&%R;BYO<'0B+"!I9B!U<V5D+"!S:&]U;&0@8F4@:6X@82!D:7)E8W1O
XM<GD@86QO;F<@>6]U<B!0051(+@I!('-E<75E;F-E(&]F('=O<F1S('1E<FUI
XM;F%T960@8GD@=VAI=&5S<&%C92!I<R!U<V5D('1O('-P96-I9GD@;W!T:6]N
XM<RX*"B`@("!7;W)D("`@("`@("`@("`@("`@("`@("`@365A;FEN9PH@("`@
XM8W5R<V]R.B`@(&QO=W-C86X@:&EG:'-C86X@(&-H86YG92!T:&4@<VAA<&4@
XM;V8@=&AE(&-U<G-O<@H@("`@1$5#4F%I;F)O=R`@("`@("`@("!T96QL($Q!
XM4DX@>6]U(&AA=F4@=&AA="!C;VUP=71E<@H@("`@96YA8FQE+6-H96-K<&]I
XM;G1I;F<@("`@='5R;B!O;B!P97)I;V1I8R!C:&5C:W!O:6YT:6YG"B`@("!G
XM<F%P:&EC<SH@=V%L;&,@9FQO;W)C("!S96QE8W0@9W)A<&AI8W,@;6%Z92!C
XM:&%R86-T97)S"B`@("!K97EP860@("`@("`@("`@96YA8FQE('1H92!N=6UE
XM<FEC(&ME>7!A9"!F;W(@;6]V:6YG"B`@("!L87)N9&ER.B`@9&ER96-T;W)Y
XM("`@("!T:&4@9&ER96-T;W)Y('1O('5S92!F;W(@;&%R;B!F:6QE<PH@("`@
XM;6]N<W1E<CH@(")M;VYS="!N86UE(B`@8VAO;W-E(&$@;F%M92!F;W(@82!M
XM;VYS=&5R"B`@("!N86UE.B`@("`@(GEO=7(@;F%M92(@("!C:&]O<V4@>6]U
XM<B!P;&%Y:6YG(&YA;64*("`@(&YO+6)E97`@("`@("`@("!D:7-A8FQE(&)E
XM97!I;F<@;V8@=&AE('1E<FUI;F%L"B`@("!N;RUI;G1R;V1U8W1I;VX@("`@
XM(&1O(&YO="!D:7-P;&%Y(&EN=')O(&UE<W-A9V4*("`@('-A=F5F:6QE.B!S
XM879E+69I;&4M;F%M92`@("!D969I;F4@=VAA="!T:&4@<V%V96=A;64@9FEL
XM96YA;64@=VEL;"!B90H@("`@<W=A<&9I;&4Z('-W87`M9FEL92UN86UE("`@
XM(&1E9FEN92!T:&4@;F%M92!O9B!T:&4@<W=A<&9I;&4*"EEO=7(@;F%M92!A
XM;F0@;6]N<W1E<B!N86UE<R!M=7-T(&)E(&5N8VQO<V5D(&EN(&1O=6)L92!Q
XM=6]T871I;VX@;6%R:W,@86YD(&UA>0IB92!U<"!T;R`S-"!C:&%R86-T97)S
XM(&QO;F<N("!,;VYG97(@;F%M97,@87)E('1R=6YC871E9"X@($%N>71H:6YG
XM(&5N8VQO<V5D(&EN"G%U;W1A=&EO;B!M87)K<R!I<R!C;VYS:61E<F5D(&]N
XM92!W;W)D+"!A;F0@;75S="!B92!S97!A<F%T960@9G)O;2!O=&AE<B!W;W)D
XM<PIB>2!W:&ET97-P86-E+@H@("`@("`@("`@(!M;-VU%>'!L86YA=&EO;B!O
XM9B!T:&4@3&%R;B!S8V]R96)O87)D(&9A8VEL:71Y&UMM"@H@("`@3&%R;B!S
XM=7!P;W)T<R!45T\@<V-O<F5B;V%R9',L(&]N92!F;W(@=VEN;F5R<RP@86YD
XM(&]N92!F;W(@9&5C96%S960*8VAA<F%C=&5R<RX@($5A8V@@<&QA>65R("AB
XM>2!U<V5R:60@;W(@<&QA>65R:60L('-E92!524130T]212!I;B!-86ME9FEL
XM92D*:7,@86QL;W=E9"!O;F4@<VQO="!O;B!E86-H('-C;W)E8F]A<F0L(&EF
XM('1H92!S8V]R92!I<R!I;B!T:&4@=&]P('1E;B!F;W(*=&AA="!S8V]R96)O
XM87)D+B`@5&AI<R!D97-I9VX@:&5L<',@:6YS=7)E('1H870@9G)E<75E;G0@
XM<&QA>65R<R!O9B!,87)N"F1O(&YO="!H;V<@=&AE('-C;W)E8F]A<F0L(&%N
XM9"!G:79E<R!M;W)E('!L87EE<G,@82!C:&%N8V4@9F]R(&=L;W)Y+B`@3&5V
XM96P*;V8@9&EF9FEC=6QT>2!I<R!A;'-O(&YO=&5D(&]N('1H92!S8V]R96)O
XM87)D<RP@86YD('1H:7,@=&%K97,@<')E8V5D96YC90IO=F5R('-C;W)E(&9O
XM<B!D971E<FUI;FEN9R!W:&%T(&5N=')Y(&ES(&]N('1H92!S8V]R96)O87)D
XM+B`@1F]R(&5X86UP;&4Z"FEF(")987(L('1H92!"=6<@4VQA>65R(B!H87,@
XM82!S8V]R92!O9B`Q,C@P,#,@;VX@=&AE('-C;W)E8F]A<F0@870@9&EF9B`P
XM+`IT:&5N(&$@9V%M92!A="!D:69F(#$@86YD(&$@<V-O<F4@;V8@-#$Q,B!W
XM;W5L9"!R97!L86-E('1H92!P<F5V:6]U<PIE;G1R>2!O;B!T:&4@<V-O<F5B
XM;V%R9"X@($YO=&4@=&AA="!W:&5N(&$@<&QA>65R(&1I97,L('1H92!I;G9E
XM;G1O<GD@:7,*<W1O<F5D(&EN('1H92!S8V]R96)O87)D('-O('1H870@979E
XM<GEO;F4@8V%N('-E92!W:&%T(&ET96US('1H92!P;&%Y97(@:&%D"F%T('1H
X592!T:6UE(&]F(&1E871H+@H*"@H*
X`
Xend
X
END_OF_FILE
if test 11216 -ne `wc -c <'larn_hlp.uue'`; then
    echo shar: \"'larn_hlp.uue'\" unpacked with wrong size!
fi
# end of 'larn_hlp.uue'
echo shar: End of shell archive.
exit 0