Smallc2.0 source please - (nf)
utzoo!decvax!harpo!seismo!hao!hplabs!sri-unix!dbeck
utzoo!decvax!harpo!seismo!hao!hplabs!sri-unix!dbeck
Wed Apr 20 03:27:45 AEST 1983
#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
More information about the Comp.sources.unix
mailing list