[comp.unix.questions] spell..adding new words

rwright@novavax.UUCP (Ronald K. Wright) (11/15/89)

Perhaps excesses as a youth dithered my brain; but all of TFM's that I
have read do not explain how to add words to spell's idea of correct
words.

Spell even in its most primative form would be helpful to me if I
could get it to expand its vocabulary.  

Perhaps someone could explain it to me, try to use simplistic terms.  ;-)
-- 
R. K. Wright MD JD                     | office: medexam!rkw
Chief Medical Examiner, Broward County | nova:   novavax!rwright
Associate Professor Pathology          | home:   medexam!love1!rkw
University of Miami School of Medicine | fax:    305 765 5193

gwyn@smoke.BRL.MIL (Doug Gwyn) (11/16/89)

In article <1628@novavax.UUCP> rwright@novavax.UUCP (Ronald K. Wright) writes:
>Perhaps excesses as a youth dithered my brain; but all of TFM's that I
>have read do not explain how to add words to spell's idea of correct
>words.

System V flavors of "spell" support local word lists; RTFM again.
For older flavors, you may have to add the words to the "local"
file found in the source directory for the "spell" utility and
perform a "make install" (which will run "spellin" and copy the
resulting hash list file to the needed place).

>Spell even in its most primative form would be helpful to me if I
>could get it to expand its vocabulary.  

What do monkeys have to do with this?

>Perhaps someone could explain it to me, try to use simplistic terms.  ;-)

Basically, either use System V "spell" or give your word list to
your system administrator and ask that he add them to the supported
word list for "spell".

rick@tse.uucp (11/17/89)

In article <11615@smoke.BRL.MIL> gwyn@brl.arpa (Doug Gwyn) writes:
>In article <1628@novavax.UUCP> rwright@novavax.UUCP (Ronald K. Wright) writes:
>>Perhaps excesses as a youth dithered my brain; but all of TFM's that I
>>have read do not explain how to add words to spell's idea of correct
>>words.
>
>System V flavors of "spell" support local word lists; RTFM again.
>For older flavors, you may have to add the words to the "local"
>file found in the source directory for the "spell" utility and
>perform a "make install" (which will run "spellin" and copy the
>resulting hash list file to the needed place).
>
>>Spell even in its most primative form would be helpful to me if I
>>could get it to expand its vocabulary.  
>
>What do monkeys have to do with this?
>
>>Perhaps someone could explain it to me, try to use simplistic terms.  ;-)
>
>Basically, either use System V "spell" or give your word list to
>your system administrator and ask that he add them to the supported
>word list for "spell".


... or what you might want to do is come up with an alias something like
(off the cuff but should work):

	alias spell	"spell \!* | fgrep -v -f mywordlist"

where the file mywordlist is a list of words (one per line) that you don't
want spell to match
-- 
Rick Yazwinski (geac!tse!rick)      | Sarete liberi dalla schiavitu`!
Advanced Systems Division           | E cosi diverrete tutti liberi!
The Toronto Stock Exchange          | Pero uomini e donne
                                    | Sarete tutti nudi, per fino.

chris@mimsy.umd.edu (Chris Torek) (11/22/89)

In article <11615@smoke.BRL.MIL> gwyn@smoke.BRL.MIL (Doug Gwyn) writes:
>System V flavors of "spell" support local word lists; RTFM again.
>For older flavors, you may have to add the words to the "local"
>file found in the source directory for the "spell" utility and
>perform a "make install" (which will run "spellin" and copy the
>resulting hash list file to the needed place).

Or add local word list support to your `spell' shell script:

*** /usr/bin/spell	Wed Sep  2 18:03:07 1987
--- /usr/local/bin/spell	Mon Sep 14 01:18:42 1987
***************
*** 3,4 ****
--- 3,5 ----
  #	@(#)spell.sh	1.3	(Berkeley)	83/09/10
+ #	@(#)spell.sh	(U of M Hacked: 10-Aug-84)
  #
***************
*** 5,6 ****
--- 6,10 ----
  : V data for -v, B flags, D dictionary, S stop, H history, F files, T temp
+ 
+ PATH=/usr/local/bin:/usr/ucb:/bin:/usr/bin
+ 
  V=/dev/null		B=			F= 
***************
*** 7,10 ****
  S=/usr/dict/hstop	H=/dev/null		T=/tmp/spell.$$
  next="F=$F@"
! trap "rm -f $T ${T}a ; exit" 0
  for A in $*
--- 11,21 ----
  S=/usr/dict/hstop	H=/dev/null		T=/tmp/spell.$$
+ T1=/tmp/spell1.$$
+ 
+ # next two are so that spell, spelltex, and spelllatex are almost identical,
+ # except of course for these lines:
+ ME=spell
+ DE="deroff@-w"	# @ is IFS when this is eval'd
+ 
  next="F=$F@"
! trap "rm -f $T $T1 ${T}a ; exit" 0
  for A in $*
***************
*** 20,24 ****
  	-h)	next="H=" ;;
! 	-*)	echo "Bad flag for spell: $A"
! 		echo "Usage:  spell [ -v ] [ -b ] [ -d hlist ] [ -s hstop ] [ -h spellhist ]"
! 		exit ;;
  	*)	eval $next"$A"
--- 31,35 ----
  	-h)	next="H=" ;;
! 	-*)	echo "Bad flag for $ME: $A" 1>&2
! 		echo "Usage: $ME [ -v ] [ -b ] [ -d hlist ] [ -s hstop ] [ -h spellhist ]" 1>&2
! 		exit 1;;
  	*)	eval $next"$A"
***************
*** 28,38 ****
  IFS=@
! case $H in
! /dev/null)	deroff -w $F | sort -u | /usr/lib/spell $S $T |
! 		/usr/lib/spell ${D-/usr/dict/hlista} $V $B |
! 		sort -u +0f +0 - $T ;;
! *)		deroff -w $F | sort -u | /usr/lib/spell $S $T |
! 		/usr/lib/spell ${D-/usr/dict/hlista} $V $B |
! 		sort -u +0f +0 - $T | tee -a $H
! 		who am i >> $H 2> /dev/null ;;
! esac
  case $V in
--- 39,91 ----
  IFS=@
! 
! # Cull out any words appearing in any file named in the environment
! # variable ``SPELL_LISTS''. Note that ``comm'' can't be instructed to
! # ignore case, so we must lower-caseify everything. (18-Jan-83 FLB)
! 
! if
! 	private_lists=`printenv SPELL_LISTS`
! then
! 
! #	Handle as in default, but dump output to T1
! 	case $H in
! 	/dev/null)	$DE $F | sort -u | /usr/lib/spell $S $T |
! 			/usr/lib/spell ${D-/usr/dict/hlista} $V $B |
! 			sort -u +0f +0 - $T > $T1 ;;
! 	*)		$DE $F | sort -u | /usr/lib/spell $S $T |
! 			/usr/lib/spell ${D-/usr/dict/hlista} $V $B |
! 			sort -u +0f +0 - $T | tee -a $H > $T1
! 			who am i >> $H 2> /dev/null ;;
! 	esac
! 
! #	Lower-caseify everything (ugh!)
! 	mv $T1 $T
! 	tr '[A-Z]' '[a-z]' < $T | sort -u +0f +0 > $T1
! 
! #	Comb out words appearing in user's private lists.
! 	for list in $private_lists
! 	do
! 		if
! 			[ -r "$list" ]
! 		then
! 			mv $T1 $T
! 			comm -23 $T "$list" > $T1
! 		else
! 			echo "$0: $list unreadable"
! 		fi
! 	done
! 	cat $T1
! 
! else
! #	Default case: handle as distributed by Berkeley
! 	case $H in
! 	/dev/null)	$DE $F | sort -u | /usr/lib/spell $S $T |
! 			/usr/lib/spell ${D-/usr/dict/hlista} $V $B |
! 			sort -u +0f +0 - $T ;;
! 	*)		$DE $F | sort -u | /usr/lib/spell $S $T |
! 			/usr/lib/spell ${D-/usr/dict/hlista} $V $B |
! 			sort -u +0f +0 - $T | tee -a $H
! 			who am i >> $H 2> /dev/null ;;
! 	esac
! fi
! 
  case $V in

(I am not sure why Fred used printenv instead of simply examining
$SPELL_LISTS directly.)
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163)
Domain:	chris@cs.umd.edu	Path:	uunet!mimsy!chris