[net.sources] Smallc2.0 source please

wolfordj (04/12/83)

#N:pur-ee:9200006:000:328
pur-ee!wolfordj    Apr 11 21:03:00 1983

Any one who would be willing to send the source of smallc2.0 updated
could please send your me your login.  Thus far in my attempts in
obtaining a complete !!!!! copy have been unsuccessful, usually one
or more files do not make it.


				thankyou in advance for any and all
				responces

				jeff wolford
				pur-ee!wolfordj

dbeck (04/20/83)

#R:pur-ee:9200006:sri-unix:13300001:000:26946
sri-unix!dbeck    Apr 13 10:55:00 1983

bliography listed
in the Summer, Fall, and Winter issues of the Skeptical Inquirer for 1979.
The Kendrick Frazier annotations are from his "Some Recent Books" section,
included in some issues of SI (I list the specific issue with each entry).
The only Ray Hyman entry is also from the Annotated Bibliography in SI.
I haven't read all of these books;  on the other hand, in those cases
where one of the other people mentioned above had written (in my
estimation) a better blurb for the book, I have used theirs instead
of mine.  This is certainly not intended to be THE definitive bibliography;
if you have any questions, comments, or additional entries to suggest, 
by all means send 'em on in and I'll publish occasional updates (giving 
due credit, of course). I can already think of several books I've left
out, but that's probably always going to be the case...  Some of the books
are NOT annotated, because I haven't read them and couldn't find a blurb
by anybody who has.  If you've read any of the un-annotated books, feel
free to send me your assessment.

A final note:  this bibliography does not include any books on skepticism
with regard to religious topics or creationism, although there are
a bunch of good ones (depending on your point of view) out there.
This list is largely oriented towards "paranormal" and "occult" stuff.

Happy reading...

Jeff Mayhew
Tektronix


Abell, George O., and Barry Singer (eds.).  "Science and the Paranormal."
	New York:  Charles Scribner's Sons, 1981.  A broad collection
	of papers on paranormal phenomena.  Contributors include Isaac
	Asimov, Martin Gardner, James Randi, Ray Hyman, and Philip J.
	Klass.  Includes som otherwise hard-to-find discussions of
	topics like Kirlian photography and the abuse of quantum
	mechanics as a justification of parapsychology (article by
	Gardner).  Says Paul Kurtz in the foreword:  "Here at long
	last is a different kind of book, one that critically and
	dispassionately analyzes such claims---and finds them wanting.
	It is long overdue for the public to have a more balanced
	appraisal of the paranormal."  Amen.  JM

Abbot, David Phelps.  "Behind the Scenes with the Mediums."  Chicago:
	Open Court, 1907.  A handbook on the methods used by mediums,
	mostly for billet reading. RL

______.  "Fraudulent Spiritualism Unveiled."  In Julian Hawthorne, ed.,
	"Library of the World's Best Mystery and Detective Stories.
	New York:  Review of Reviews Co., 1908. RL

Adler, Irving.  "Monkey Business:  Hoaxes in the Name of Science."
	New York:  John Day, 1957.  Popular account of some of the most
	famous hoaxes:  Piltdown man, Anton Mesmer, trisected angles,
	and a few others. RL


Alcock, James E.  "Parapsychology:  Science or Magic?"  Elmsford, New
	York:  Pergamon Press, 1981.  A critical perspective on
	parapsychology by a psychologist knowledgeable about the pitfalls
	and biases of belief.  Approaches the subject with two questioning
	themes:  What are the central--and very fundamental--problems
	with parapsychology, its methods, data, and theory (or lack of
	it) that prevents it from achieving acceptance within the
	scientific community;  and if psi phenomena do not exist, what
	psychological factors account for the persistence of belief in
	them?  An important look at essential issues.  KF Spring 1982 SI

Anonymous.  "Revelations of a Spirit Medium."  London:  Kegan Paul, 1922. RL

Barber, Theodore Xenophon.  "LSD, Marihuana, Yoga, and Hypnosis."  
	Chicago:  Aldine, 1970.  Scientific treatise, supported by 
	National Institute of Mental Health grants, on the psychological
	and physiological effects of yoga, hypnosis, and psychedelic
	drugs.  Reports recent research, with the focus on observable
	behavior rather than unobservable internal states.  The
	author attempts to illustrate a method of analysis in the "soft"
	areas of psychology, which will allow the reader to think
	more critically and accept fewer assumptions. RL

Barnum, Phineas Taylor.  "The Humbugs of the World."  Detroit:  Singing
	Tree Press, 1970. (Reprint of the G. W. Carleton 1865 ed.)  A
	good debunking book written by the master showman more than a
	hundred years ago.  Although his canvass is broad (almost every
	conceivable area of "humbug" is covered) and it was written
	long ago, much of it is instructive today. RL

Bilig, Otto.  "Flying Saucers:  Magic in the Skies."  Cambridge, Ma.:
	Schenkman Publishing Co., 1982.  Billed as a "Psychohistory,"
	this is a critical examination of the flying saucer phenomenon
	from a psycho-social point of view.  The author, a professor of
	clinical psychiatry at the Vanderbilt University School of
	Medicine, has written an interesting and useful book exploring
	the emotional and psychological sources of belief in saucers in
	the absence of concrete evidence.  The book draws on psychology,
	anthropology, and medicine in seeking to understand how and why
	sincere people report seeing extraterrestrial spacecraft,
	manifestations that the author concludes are "in the minds of
	man." KF Winter 1982-1983 SI

Bracewell, Ronald N.  "The Galactic Club:  Intelligent Life In Outer
	Space."  San Francisco:  W. W. Norton, 1975.  An easy-to-read
	discussion of a wide variety of issues related to the topics
	of the existence of, and the establishment of communication
	with, extraterrestrial intelligence.  Bracewell brings out a
	number of intriguing issues, and examines the fringe claims of 
	Velikovsky and Von Daniken.  Bracewell is an astrophysicist 
	and a radio astronomer.  JM

Brackman, Jacob.  "The Put-On:  Modern Fooling and Modern Mistrust."
	Chicago:  Regnery, 1971.  Breezy exploration of a modern social
	phenomenon, the put-on:  how it works, what's behind it, and 
	what it might mean about contemporary sensibility.  Trickery
	in public events, art, literature, fashion, music, and
	advertising is examined from a sociological perspective. RL

Brian, Denis.  "The Enchanted Voyager:  The Life of J. B. Rhine."
	New York:  Prentice-Hall, 1982.  An authorized biography of
	the founder of modern parapsychology in the U.S.  Both a portrait
	of Rhine and a history of parapsychology.

Bringle, Mary.  "Jeane Dixon:  Prophet or Fraud?".  New York:  Tower,
	1970.  "Publisher's Weekly" (198 [Nov. 2, 1970]: 54) says this
	is a hatchet job on a sitting duck. RL

Burnam, Tom.  "More Misinformation."  New York:  Lippincott, 1981.
	A new collection of fables, fallacies, and fictions.  In this
	lively sequel to his "Dictionary of Misinformation" (1975),
	Burnam once again shows that the debunking of commonly
	accepted misconceptions of all kinds can be entertaining as
	well as informative.  KF Fall 1981 SI

Calder, Nigel.  "The Comet is Coming!"  New York:  Viking Press, 1980.
	A humorous look at the history of popular ideas about comets,
	including a discussion of Sir Fred Hoyle's theory of comet-
	borne viruses.  Calder deals with public reactions to comets in
	much the same way that Mackay deals with other manias (in
	"Popular Delusions and the Madness of Crowds").  JM

Campbell, John L., and Trevor H. Hall.  "Strange Things."  London:
	Routledge & Kegan Paul, 1968.  A detailed debunking of a 
	turn-of-the-century Scottish hoaxer.  Subtitle:  "The story
	of Fr. Allan McDonald, Ada Goodrich Freer, and the Society
	for Psychical Research's enquiry into Highland second sight." RL

Cantril, Hadley.  "The Invasion from Mars:  A Study in the Psychology
	of Panic, with the Complete Script of the Famous Orson Welles
	Broadcast."  Princeton, N.J.:  Princeton University Press, 1940.
	A good case history and psychological study of how people in
	1938 could easily be convinced that the earth was being invaded
	by creatures from Mars. RL

Capaldi, Nicholas.  "The Art of Deception."  Buffalo, N.Y.:  Prometheus
	Books, 1979.  A handbook for people who want to be able to
	recognize when they're being bamboozled in an argument--a clear
	discussion of logical fallacies and other tricky tactics used
	in intellectual confrontations.  Although not purely a debunking
	book, a mastery of this material will help the skeptic see
	through a lot of trash.  JM

Carpenter, William Benjamin.  "Mesmerism, Spiritualism, & Co. Historically
	and Scientifically Cons	This is our termcap entry for an ADDS VIEWPOINT.  Note that it really
doesn't have simultaneous underlining and standout but both are declared.

sz|viewp|Viewpoint:\
	:am:bs:cl=^L:cm=\EY%+ %+ :co#80:\
	:k0=\E0:k1=\E1:k2=\E2:k3=\E3:k4=\E4:k5=\E5:k6=\E6:k7=\E7:k8=\E8:k9=\E9:\
	:li#24:nd=^F:so=^N\E0P:us=^N\E0`:se=^O:ue=^O:up=^Z:ce=\EK

  Our site hasn't recieved this fil yet. If it's not being retransmitted
from the source, could someone mail it to me? Thanks.

				pur-ee ! uiucdcs ! grunwald
dI threw together the following hack.  Does anybody have something better?


if test $# -eq 0
then
	echo 'Usage:  '$0' hostname'
	exit 1
fi
cd /usr/spool/news/net.news.map
for arg in $*
do
	sed -n -e "/^Name: ${arg}$/,/^$/p" *
done
cHere's yet another way to use a line for both dial-in and dial-out.
I got the idea for this from Donn Terry (csu-cs!hp-dcd!donn) who
thinks he spotted something about this on the net.  (If anyone can
help with proper attribution of this idea, please respond by mail.)
Although this discussion relates specifically to 4.1bsd, other Un*x
should be able to fiddle this a bit to get the same results.

Randy Bentson
Colo State U - Comp Sci
Ft. Collins, CO
303/491-7016
{hplabs,lanl-a,lll-crg,hao,cires}!csu-cs!bentson

GENERAL CONCEPT
There are first class and second class citizens in the world of tty's.
The first class citizens have the OUTLINE bit set in the minor device
number.  Having the outline bit set is used for dial-in/dial-out
lines.  What happens is that a process such as init or getty can hang
an open on a second-class line and wait for carrier detect.  If a dial-
out process does an open on a first-class line, the second class line
will not open even if carrier detect does come true for the process
using the first class line until that "first class process" closes it.
Processes using a first class line can do several opens on those lines
if they wish.

/DEV ENTRIES
This is an excerpt of our /dev directory listing. Port tty06 is the real
dialer port. The ports cua0-3 are multiplex files used by the dnd daemon
which actually does the dialing on the real dialer port.

crw------- 1 root      1,  6 Mar 15 13:04 /dev/tty06
mrw-rw-rw- 1 root      9,  8 Mar 15 11:01 /dev/cua0
mrw-rw-rw- 1 root      9,  7 Mar 15 13:04 /dev/cua1
mrw-rw-rw- 1 root      9,  6 Mar 15 11:01 /dev/cua2
mrw-rw-rw- 1 root      9,  5 Mar 15 11:01 /dev/cua3

Tty05 is the second class version of the first class port cul0. That
is, both open the same line, but one has priority over the other.

crw--w--w- 1 root      1,  5 Mar 14 18:46 /dev/tty05
crw-rw-rw- 1 root      1,133 Mar 15 13:08 /dev/cul0

This is the second dial-in/dial-out port on our system.  There is no
apparent limit to the number of such dual ports beyond the maximum
second class minor device number limit of 128.

crw--w--w- 1 root      1,  4 Mar 15 12:50 /dev/tty04
crw------- 1 root      1,132 Mar 12 15:25 /dev/cul1

TTY.H FILE
Make one change to /sys/h/tty.h so that the line state can remember
that there is a request for the line as a first class citizen. It
doesn't appear that NDQB is used anywhere in the system so I preempted
use of the bit.

/* 06Mar83 RABentson changed following line from
	#define	NDQB	010000
   to the following to support first/second class open
*/
#define OUTFLAG 010000		/* first class open in progress */

DZ DRIVER
I've used diff with two lines of context.  Then here's the changes in
the dz driver. Notice that I've changed the location of the splN()
calls. I believe that this is a more stable use of the calls.

*** /sys/dev/dz.c	Tue Apr  5 16:41:06 1983
--- /sys/dev/dz.7Oct81.c	Wed Oct  7 14:46:11 1981
***************
*** 1,4
- /* 31Mar83 RABentson put delay in close so line stays on-hook for a bit */
- /* 06Mar83 RABentson added support for "first/second class open" */
  /*	dz.c	4.29	81/07/25	*/
  

--- 1,2 -----
  /*	dz.c	4.29	81/07/25	*/
  
***************
*** 30,34
   * Driver information for auto-configuration stuff.
   */
- extern	lbolt;		/* 31Mar83 */
  int	dzprobe(), dzattach(), dzrint();
  struct	uba_device *dzinfo[NDZ];

--- 28,31 -----
   * Driver information for auto-configuration stuff.
   */
  int	dzprobe(), dzattach(), dzrint();
  struct	uba_device *dzinfo[NDZ];
***************
*** 66,72
  #define	DZ_ON	1
  #define	DZ_OFF	0
- 
- /* Flag indicating first class line */ /*06Mar83*/
- #define OUTLINE 0200 /*06Mar83*/
   
  int	dzstart(), dzxint(), dzdma();

--- 63,66 -----
  #define	DZ_ON	1
  #define	DZ_OFF	0
   
  int	dzstart(), dzxint(), dzdma();
***************
*** 152,156
  	register int unit;
   
! 	unit = minor(dev & ~OUTLINE); /*06Mar83*/
  	if (unit >= dz_cnt || dzpdma[unit].p_addr == 0) {
  		u.u_error = ENXIO;

--- 146,150 -----
  	register int unit;
   
! 	unit = minor(dev);
  	if (unit >= dz_cnt || dzpdma[unit].p_addr == 0) {
  		u.u_error = ENXIO;
***************
*** 161,166
  	tp->t_oproc = dzstart;
  	tp->t_iproc = NULL;
- 	(void) spl5();
- again: /*06Mar83*/
  	tp->t_state |= WOPEN;
  	if ((tp->t_state & ISOPEN) == 0) {

--- 155,158 -----
  	tp->t_oproc = dzstart;
  	tp->t_iproc = NULL;
  	tp->t_state |= WOPEN;
  	if ((tp->t_state & ISOPEN) == 0) {
***************
*** 172,176
  	} else if (tp->t_state&XCLUDE && u.u_uid != 0) {
  		u.u_error = EBUSY;
- 		(void) spl0();
  		return;
  	} else if ((dev & OUTLINE) && !(tp->t_state & OUTFLAG)) { /*06Mar83*/

--- 164,167 -----
  	} else if (tp->t_state&XCLUDE && u.u_uid != 0) {
  		u.u_error = EBUSY;
  		return;
  	}
***************
*** 174,181
  		(void) spl0();
  		return;
- 	} else if ((dev & OUTLINE) && !(tp->t_state & OUTFLAG)) { /*06Mar83*/
- 		u.u_error = ENXIO; /*06Mar83*/
- 		(void) spl0(); /*06Mar83*/
- 		return; /*06Mar83*/
  	}
  	if (dev & OUTLINE) tp->t_state |= OUTFLAG; /*06Mar83*/

--- 165,168 -----
  		u.u_error = EBUSY;
  		return;
  	}
  	dzmodem(unit, DZ_ON);
***************
*** 179,183
  		return; /*06Mar83*/
  	}
- 	if (dev & OUTLINE) tp->t_state |= OUTFLAG; /*06Mar83*/
  	dzmodem(unit, DZ_ON);
  	if (!(tp->t_state & CARR_ON) ||

--- 166,169 -----
  		return;
  	}
  	dzmodem(unit, DZ_ON);
  	(void) spl5();
***************
*** 181,187
  	if (dev & OUTLINE) tp->t_state |= OUTFLAG; /*06Mar83*/
  	dzmodem(unit, DZ_ON);
! 	if (!(tp->t_state & CARR_ON) ||
! 	    ((tp->t_state & OUTFLAG) && /*06Mar83*/
! 	    !(dev & OUTLINE))) { /*06Mar83*/
  		tp->t_state |= WOPEN;
  		sleep((caddr_t)&tp->t_rawq, TTIPRI);

--- 167,172 -----
  	}
  	dzmodem(unit, DZ_ON);
! 	(void) spl5();
! 	while ((tp->t_state & CARR_ON) == 0) {
  		tp->t_state |= WOPEN;
  		sleep((caddr_t)&tp->t_rawq, TTIPRI);
***************
*** 186,190
  		tp->t_state |= WOPEN;
  		sleep((caddr_t)&tp->t_rawq, TTIPRI);
- 		goto again; /*06Mar83*/
  	}
  	(void) spl0();

--- 171,174 -----
  		tp->t_state |= WOPEN;
  		sleep((caddr_t)&tp->t_rawq, TTIPRI);
  	}
  	(void) spl0();
***************
*** 189,193
  	}
  	(void) spl0();
! 	(*linesw[tp->t_line].l_open)(dev & ~OUTLINE, tp); /*06Mar83*/
  }
   

--- 173,177 -----
  	}
  	(void) spl0();
! 	(*linesw[tp->t_line].l_open)(dev, tp);
  }
   
***************
*** 200,204
  	int dz;
   
! 	unit = minor(dev & ~OUTLINE); /*06Mar83*/
  	dz = unit >> 3;
  	tp = &dz_tty[unit];

--- 184,188 -----
  	int dz;
   
! 	unit = minor(dev);
  	dz = unit >> 3;
  	tp = &dz_tty[unit];
***************
*** 204,208
  	tp = &dz_tty[unit];
  	(*linesw[tp->t_line].l_close)(tp);
- 	tp->t_state &= ~OUTFLAG;
  	((struct pdma *)(tp->t_addr))->p_addr->dzbrk =
  	    (dz_brk[dz] &= ~(1 << (unit&07)));

--- 188,191 -----
  	tp = &dz_tty[unit];
  	(*linesw[tp->t_line].l_close)(tp);
  	((struct pdma *)(tp->t_addr))->p_addr->dzbrk =
  	    (dz_brk[dz] &= ~(1 << (unit&07)));
***************
*** 217,221
  	register struct tty *tp;
   
! 	tp = &dz_tty[minor(dev & ~OUTLINE)]; /*06Mar83*/
  	(*linesw[tp->t_line].l_read)(tp);
  }

--- 200,204 -----
  	register struct tty *tp;
   
! 	tp = &dz_tty[minor(dev)];
  	(*linesw[tp->t_line].l_read)(tp);
  }
***************
*** 226,230
  	register struct tty *tp;
   
! 	tp = &dz_tty[minor(dev & ~OUTLINE)]; /*06Mar83*/
  	(*linesw[tp->t_line].l_write)(tp);
  }

--- 209,213 -----
  	register struct tty *tp;
   
! 	tp = &dz_tty[minor(dev)];
  	(*linesw[tp->t_line].l_write)(tp);
  }
***************
*** 283,287
  {
  	register struct tty *tp;
! 	register int unit = minor(dev & ~OUTLINE); /*06Mar83*/
  	register int dz = unit >> 3;
   

--- 266,270 -----
  {
  	register struct tty *tp;
! 	register int unit = minor(dev);
  	register int dz = unit >> 3;
   
***************
*** 432,436
  	dzaddr = dzpdma[unit].p_addr;
  	bit = 1<<(unit&07);
! 	if (flag == DZ_OFF){
  		dzaddr->dzdtr &= ~bit;
  		/* 31Mar83 Pause at least three seconds before allowing DTR to

--- 415,419 -----
  	dzaddr = dzpdma[unit].p_addr;
  	bit = 1<<(unit&07);
! 	if (flag == DZ_OFF)
  		dzaddr->dzdtr &= ~bit;
  	else
***************
*** 434,444
  	if (flag == DZ_OFF){
  		dzaddr->dzdtr &= ~bit;
! 		/* 31Mar83 Pause a long time before allowing DTR to be
!                *  turned back on. This will ensure the line is hung-up.
!                */
! 		sleep((caddr_t)&lbolt, TTIPRI);
! 		sleep((caddr_t)&lbolt, TTIPRI);
! 		sleep((caddr_t)&lbolt, TTIPRI);
! 		sleep((caddr_t)&lbolt, TTIPRI);
! 		sleep((caddr_t)&lbolt, TTIPRI);
! 		sleep((caddr_t)&lbolt, TTIPRI);
! 		sleep((caddr_t)&lbolt, TTIPRI);
! 	}else
  		dzaddr->dzdtr |= bit;
  }

--- 417,421 -----
  	if (flag == DZ_OFF)
  		dzaddr->dzdtr &= ~bit;
! 	else
  		dzaddr->dzdtr |= bit;
  }
to create local dictionaries using the "spell" system (spell/spellin/spellout).
The following are the responses received to date on my query.
I've successfully used the first one, and have not yet tried the
others; their creators claim success. To all respondents, my sincere
gratitude for your willingness to share your expertise/experiences.

					     Gary Chappell
					     ...decvax!decwrl!qubix!gary2

P.S. I've deleted reference to the authors, as I did not feel I had
tacit/explicit approval to use their names. If any of the creators take
offense at this, please accept my apologies in advance.

       <<<<<<<<<<<<<<< SUGGESTION NUMBER 1 >>>>>>>>>>>>>>>>>>>>>>>>>>
Here is how I do it.  "spl" is my shell script to run spell with my own
dictionary.  Here is spl
-----------------
#! /bin/sh

# spell using my own dictionary

D=/unc/gb/lib/dict/myhlist spell $*
-----------------
I make the dictionary with a makefile.  Here it is:
-----------------
dict : myhlist myhlist.lax

myhlist : mywords /usr/dict/hlista
	spellin /usr/dict/hlista > myhlist < mywords

myhlist.lax : myhlist mywords.lax
	spellin myhlist > myhlist.lax < mywords.lax
-----------------
splx uses a less restrictive dictionary but is otherwise the same.  My
dictionary has only words that I am adding to the system dictionary.
Here is the first few lines of my list of words
-----------------
ACM
AEC
ALU
ANDed
ARPA
Backus
burnout
BVM
bypasssing
CAD
carotid
CCC
CCD
centimeter
CH
CID

	   <<<<<<<<<<<<< SUGGESTION NUMBER 2 >>>>>>>>>>>>>>>>>>>
>From the spell makefile (I have used it this way and it works
nicely).
	hlist: /usr/dict/words spellin
		spellin </usr/dict/words >hlist
	hlista: american local hlist spellin
		(cat american local)|spellin hlist >hlista
	hlistb: british local hlist spellin
		(cat british local)|spellin hlist >hlistb
	hstop: stop spellin
		spellin <stop >hstop

where hlist is the initial list, hlist[ab] are the american and
british spelling lists created by adding anomalous entries to the
basic list, and hstop is the list to catch spelling errors which
otherwise look like valid prefix/suffix extensions from valid entries.

	   <<<<<<<<<<<<<< SUGGESTION NUMBER 3 >>>>>>>>>>>>>>>>
this is how we implement a local dictionary. we leave
the distributed dictionary untouched:

#! /bin/sh

myname=`basename ${0} | sed -e 's/\..*//'`

spell=/usr/bin/spell
loc=/usr/local/lib/dict

eval H=/dev/null ${spell} ${@} | H=${loc}/hist D=${loc}/hlocal ${spell}

	   <<<<<<<<<<<<<< SUGGESTION NUMBER 4 >>>>>>>>>>>>>>>>
   Regarding your Usenet message, here's a copy of our manual
page for Spell.  It clarifies the matter somewhat.
.TH SPELL 1 
.SH NAME
spell, spellin, spellout \- find spelling errors
.SH SYNOPSIS
.B spell
[ option ] ...
[ file ] ...
.PP
.B spellin
[ list ]
.PP
.B spellout
[
.B \-d
] list
.SH DESCRIPTION
.I Spell
collects words from the named documents,
and looks them up in a spelling list.
Words that neither occur among nor are derivable
(by applying certain inflections,
prefixes or suffixes) from words in the spelling list
are printed on the standard output.
If no files are named,
words are collected from the standard input.
.PP
.I Spell
ignores most
.I troff,
.I tbl
and
.IR  eqn (1)
constructions.
.PP
Under the
.B \-v
option, all words not literally in the spelling list are printed,
and plausible derivations from spelling list words are indicated.
.PP
Under the 
.B \-b
option, British spelling is checked.
Besides preferring
.ft I
centre, colour, speciality, travelled,
.ft R
etc.,
this option insists upon
.I -ise
in words like
.I standardise,
Fowler and the OED to the contrary
notwithstanding.
.PP
Under the 
.B \-x
option, every plausible stem is printed with `=' for each word.
.PP
The spelling list is based on many sources,
and while more haphazard than an ordinary
dictionary, is also more effective in respect to
proper names and popular technical words.
Coverage of
the specialized vocabularies of biology,
medicine and chemistry is light.
.PP
Pertinent auxiliary files may be specified by
environment variables.  For example, to add your
own list of favorite (favourite?) proper names,
you could issue the following commands:
.br
	$ spellin /usr/dict/hlista < mynames > mynames.hash
.br
	$ D=mynames.hash ; export D
.PP
If
.I spell
is then run, words from both lists are used.
The known variables are indicated below with their
default settings.
Copies of all output
are accumulated in the history file.
The stop list filters out misspellings (e.g. thier=thy\-y+ier)
that would otherwise pass.
.PP
Two routines help maintain the hash lists used by
.I spell.
Both expect a list of words, one per line,
from the standard input.
.I Spellin
adds the words on the standard input to the
preexisting
.I list
and places a new list on the standard output.
If no 
.I list
is specified, the new list is created from scratch.
.I Spellout
looks up each word in the standard input and prints
on the standard output
those that are missing from (or present on, with
option
.BR \-d )
the hash list.
.SH FILES
D=/usr/dict/hlist[ab]: hashed spelling lists, American & British
.br
S=/usr/dict/hstop: hashed stop list
.br
H=/usr/dict/spellhist: history file
.br
/usr/lib/spell
.br
deroff(1), sort(1), tee(1), sed(1)
.SH BUGS
The spelling list's coverage is uneven;
new installations will probably wish to 
monitor the output for several months to gather
local additions.
.br
British spelling was done by an American.
-------

	   <<<<<<<<<<<< SUGGESTION NUMBER 5 >>>>>>>>>>>>>>>>>>>>>
     I, too, have given up hope that spell will perform as advertised.
In frustration, I wrote a 'csh' shell script called "Spell" to use the 
main spell routines, but then compare the output to a list of words you 
provide (the output of previous spells) and only report "newly misspelled" 
words, i.e. words not in the list.  I got tired of seeing the not-really-
misspelled words come out of spell each time I ran it on a new version 
of a paper.

     Note that the options of spell are no longer valid. Valid use of
my program is as follows:

    Spell -w fname paper1 paper2 ...

where the -w option names the list of words to ignore.  The other 
parameters are documents to be spelled.  I use the "Spell" program as 
follows.  "Spell" the document the first time without the -w option, 
and send the output to a file.  Look at the output, correct any truly 
misspelled words, and take them out of the list.  Then use the remaining 
words as the "ignore-list" for later "Spell"s.  Append later outputs to the 
list, etc.  Hope you can use this routine.

P.S.  Because of the exact match option used with fgrep, I am forced 
      to run a "strip" routine in "Spell" on the ignore-list to remove 
      trailing blanks.  This would not be necessary if the list were 
      always the direct output from previous "Spell"s, but since I edit 
      the list or make additions by hand I decided not to take the chance 
      of not "strip"ing.  The "strip" routine is included below; it is a 
      ridiculously small lex program that you can compile. 



******************************  Spell  *************************************


#/bin/csh -f
#==========================================================================
#
#				Spell
#
#
#	"spell"s, but will ignore words in list given by -w filename 
#	in the parameter list.
#
#	example:
#		Spell -w nixem doc1 doc2 doc3 ...
#
#======.SH NAME
restor \- incremental file system restore
.SH SYNOPSIS
.B restor
key [ arguments ]
.SH DESCRIPTION
.I Restor\^
is used to read magnetic tapes dumped with the
.I dump\^
command.
The
.I key\^
specifies what is to be done.
.I Key\^
is one of the characters
.BR rRcxXtT ,
optionally combined with
.BR fF .
.TP
.B  f
Use the next
.I argument\^
as the name of the tape instead
of the default.
.TP
.B  F
Use the next
.I argument\^
as the number of the file on the tape to read instead
of the default first file on the tape.
If the dump extends across multiple tapes,
the dump is assumed to continue
on the first file of all subsequent tapes.
.TP
.BR  r " or " R
The tape
is read and loaded into the file system
specified in
.IR argument .
This should not be done lightly (see below).
If the key is
.BR R ,
.I restor\^
asks which tape of a multi-volume set to start on.
This allows
.I restor\^
to be interrupted and then
restarted (an
.I fsck\^
must be done before the restart).
.TP
.B  c
The tape
is read and compared with the file system specified in
.IR argument .
Any I/O errors or checksum errors are listed,
as well as
any differences between the dump tape and the file
system are listed; the latter include:
.RS
.IP 1.
Inodes that are clear on the tape, but in use on the
file system, or
.IR "vice versa" .
.IP 2.
A difference between the information in the inode
as given on the dump tape and as stored on the file system,
except for differences in the times of last access, last modification,
and last file status change.
The error message indicates which part of the inode did not match.
.IP 3.
A difference between the data in the