add interactive mode to spell checking (allow direct replace or ignore)

This commit is contained in:
Denis Rouzaud 2017-01-12 20:29:08 +01:00
parent c484742eb7
commit 46f786eb52
6 changed files with 7661 additions and 590 deletions

View File

@ -1,59 +0,0 @@
#!/bin/bash
###########################################################################
# chkspelling_ag.sh
# ---------------------
# Date : December 2016
# Copyright : (C) 2016 by Denis Rouzaud
# Email : denis.rouzaud@gmail.com
###########################################################################
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 2 of the License, or #
# (at your option) any later version. #
# #
###########################################################################
# optional arguments: files to be checked
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
AGIGNORE=${DIR}/.agignore
# This will try to look for mispelling within larger words.
# Condition is hard to explain in words.
# You can test it here: https://regex101.com/r/7kznVA/9
# extra words that should not be checked in longer words
WHOLEWORDS=$(echo "("; perl -ne 'print if not /^(\w)(\w)\w{2,}(\w)(\w):(\2\2|\1(?:(?!\1)\w)|(?:(?!\1)\w)\2|(?:(?!\1)\w)(?:(?!\1)\w)|\2\1)\w*(\3\3|(?:(?!\4)\w)(?:(?!\3)\4)|\3(?:(?!\4).)|(?:(?!\4)\w)(?:(?!\4)\w)|\4\3)(?!:\*)$/' scripts/spelling.dat | cut -d: -f1 | tr '\n' '\|' | sed -e 's/|$//'; echo ")")
INWORDS=$( echo "("; perl -ne 'print if /^(\w)(\w)\w{2,}(\w)(\w):(\2\2|\1(?:(?!\1)\w)|(?:(?!\1)\w)\2|(?:(?!\1)\w)(?:(?!\1)\w)|\2\1)\w*(\3\3|(?:(?!\4)\w)(?:(?!\3)\4)|\3(?:(?!\4).)|(?:(?!\4)\w)(?:(?!\4)\w)|\4\3)(?!:\*)$/' scripts/spelling.dat | cut -d: -f1 | tr '\n' '\|' | sed -e 's/|$//'; echo ")")
if [ ! $# -eq 0 ]; then
EXCLUDE=$(cat $AGIGNORE | sed -e 's/\s*#.*$//' -e '/^\s*$/d' | tr '\n' '|' | sed -e 's/|$//')
FILES=$(echo $@ | tr -s '[[:blank:]]' '\n' | egrep -iv "$EXCLUDE" | tr '\n' ' ' )
echo "Running spell check on files: $FILES"
else
FILES="."
fi
SPELLOK='(#\s*spellok|<!--#\s*spellok-->)$'
exec 5>&1
# "path-to-ignore" option differs on ag version: --path-to-ignore on fedora, --path-to-agignore on ubuntu 16.04: using short option
OUTPUT=$(unbuffer ag --smart-case --all-text --nopager --numbers --word-regexp -p $AGIGNORE "${WHOLEWORDS}"'(?!.*'"${SPELLOK}"')' $FILES | tee /dev/fd/5 ; \
unbuffer ag --smart-case --all-text --nopager --numbers -p $AGIGNORE "${INWORDS}"'(?!.*'"${SPELLOK}"')' $FILES | tee /dev/fd/5)
ESCSPELLOK=$(echo $SPELLOK | sed 's/(/\\\\(/' | sed 's/)/\\\\)/' | sed 's/|/\\\\|/')
if [[ ! -z $OUTPUT ]]; then
echo "Spelling errors have been found"
echo "****"
# < ---------- get files + error ---------------------------------------------------------------------------> <-- generate sed command .... <------------------------------ get correction word ----------------------------------> <------------------------------- match case -------------------------------------------> <-----replace : by / and add word boundary------> ...finalize sed command> remove duplicate line
ag --smart-case --only-matching --nogroup --nonumbers --all-text --word-regexp -p $AGIGNORE "${WHOLEWORDS}"'(?!.*'"${SPELLOK}"')' $FILES | sed -e 's/\(\S*\):\([[:alnum:]]*\)$/ echo "sed -i \x27\/'"$ESCSPELLOK"'\/! s\/"$( echo "\2:$(ag --nonumbers --ignore-case --word-regexp \2 scripts\/spelling.dat | cut -d: -f2)" | sed -r \x27s\/([A-Z]+):(.*)\/\\1:\\U\\2\/; s\/([A-Z][a-z]+):([a-z])\/\\1:\\U\\2\\L\/\x27 | sed -r \x27s\/(\\S\*):\/\\\\b\\1\\\\b\\\/\/\x27)"\/g\x27 \1" /e' | sort -u
ag --smart-case --only-matching --nogroup --nonumbers --all-text -p $AGIGNORE "${INWORDS}"'(?!.*'"${SPELLOK}"')' $FILES | sed -e 's/\(\S*\):\([[:alnum:]]*\)$/ echo "sed -i \x27\/'"$ESCSPELLOK"'\/! s\/"$( echo "\2:$(ag --nonumbers --ignore-case --word-regexp \2 scripts\/spelling.dat | cut -d: -f2)" | sed -r \x27s\/([A-Z]+):(.*)\/\\1:\\U\\2\/; s\/([A-Z][a-z]+):([a-z])\/\\1:\\U\\2\\L\/\x27 | sed -r \x27s\/(\\S\*):\/\\1\\\/\/\x27)"\/g\x27 \1" /e' | sort -u
echo "****"
echo "Run above commands to fix spelling errors or add #spellok at the end of the line to discard spell check on this line."
exit 1
else
exit 0
fi

View File

@ -41,7 +41,7 @@ set -e
# determine changed files
MODIFIED=$(git status --porcelain| sed -ne "s/^ *[MA] *//p" | sort -u)
${TOPLEVEL}/scripts/chkspelling_ag.sh $MODIFIED
${TOPLEVEL}/scripts/spell_check/check_spelling.sh $MODIFIED
if [ -z "$MODIFIED" ]; then

View File

@ -25,6 +25,8 @@ src/plugins/grass/qtermwidget/
ChangeLog
debian/qgis.desktop
debian/qbrowser.desktop
debian/qgis-provider-grass.lintian-overrides
debian/qgis-plugin-grass.lintian-overrides
doc/contributors.json
Exception_to_GPL_for_Qt.txt
images/themes/default/svgbase/hammer.svg
@ -35,7 +37,7 @@ python/plugins/processing/tests/testdata/expected/orthagonal_lines.gml
python/plugins/processing/tests/testdata/expected/orthagonal_lines.gfs
python/plugins/processing/tests/testdata/expected/orthagonal_polys.gfs
python/plugins/processing/tests/testdata/qgis_algorithm_tests.yaml
spelling.dat
scripts/spell_check/spelling.dat
src/server/qgis_wms.xmi
resources/cpt-city-qgis-min/fme/metres/DESC.xml
resources/cpt-city-qgis-min/selections/reds.xml

View File

@ -0,0 +1,162 @@
#!/bin/bash
###########################################################################
# chkspelling_ag.sh
# ---------------------
# Date : December 2016
# Copyright : (C) 2016 by Denis Rouzaud
# Email : denis.rouzaud@gmail.com
###########################################################################
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 2 of the License, or #
# (at your option) any later version. #
# #
###########################################################################
# -i: enter interactive mode to fix errors
# optional argument: list of files to be checked
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
AGIGNORE=${DIR}/.agignore
# ARGUMENTS
INTERACTIVE=YES
while getopts ":r" opt; do
case $opt in
r)
echo "interactive mode turned off" >&2
INTERACTIVE=NO
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
esac
done
shift $(expr $OPTIND - 1)
if [ ! $# -eq 0 ]; then
EXCLUDE=$(cat $AGIGNORE | sed -e 's/\s*#.*$//' -e '/^\s*$/d' | tr '\n' '|' | sed -e 's/|$//')
INPUTFILES=$(echo $@ | tr -s '[[:blank:]]' '\n' | egrep -iv "$EXCLUDE" | tr '\n' ' ' )
echo "Running spell check on files: $INPUTFILES"
else
INPUTFILES="."
fi
SPELLOK='(#\s*spellok|<!--#\s*spellok-->)$'
# split into several files to avoid too long regexes
SPLIT=4
GNUPREFIX=
if [[ "$OSTYPE" =~ darwin* ]]; then
GNUPREFIX=g
fi
${GNUPREFIX}split --number=l/$SPLIT --numeric-suffixes=1 --suffix-length=1 --additional-suffix=~ ${DIR}/spelling.dat spelling
for ((I=1;I<=$SPLIT;I++)) ; do
SPELLFILE=spelling$I~;
# This will try to look for mispelling within larger words.
# Condition is hard to explain in words.
# You can test it here: https://regex101.com/r/7kznVA/9
# extra words that should not be checked in longer words
WHOLEWORDS=$(echo "("; perl -ne 'print if not /^(\w)(\w)\w{2,}(\w)(\w):(\2\2|\1(?:(?!\1)\w)|(?:(?!\1)\w)\2|(?:(?!\1)\w)(?:(?!\1)\w)|\2\1)\w*(\3\3|(?:(?!\4)\w)(?:(?!\3)\4)|\3(?:(?!\4).)|(?:(?!\4)\w)(?:(?!\4)\w)|\4\3)(?!:\*)$/' $SPELLFILE | cut -d: -f1 | tr '\n' '\|' | sed -e 's/|$//'; echo ")")
INWORDS=$( echo "("; perl -ne 'print if /^(\w)(\w)\w{2,}(\w)(\w):(\2\2|\1(?:(?!\1)\w)|(?:(?!\1)\w)\2|(?:(?!\1)\w)(?:(?!\1)\w)|\2\1)\w*(\3\3|(?:(?!\4)\w)(?:(?!\3)\4)|\3(?:(?!\4).)|(?:(?!\4)\w)(?:(?!\4)\w)|\4\3)(?!:\*)$/' $SPELLFILE | cut -d: -f1 | tr '\n' '\|' | sed -e 's/|$//'; echo ")")
FILE=$INPUTFILES # init with input files (if ag is run with single file, file path is now in output)
COMMANDS=""
ERRORFOUND=NO
while read -u 3 -r LINE; do
echo "$LINE"
ERRORFOUND=YES
if [[ "$INTERACTIVE" =~ YES ]]; then
NOCOLOR=$(echo "$LINE" | ${GNUPREFIX}sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g')
if [[ "$NOCOLOR" =~ ^[[:alnum:]][[:alnum:]\/\._-]+$ ]]; then
FILE=$NOCOLOR
fi
if [[ "$NOCOLOR" =~ ^[0-9]+: ]]; then
if [[ -z $FILE ]]; then
echo "Error: no file"
exit 1
fi
NUMBER=$(echo "$NOCOLOR" | cut -d: -f1)
ERROR=$(echo "$LINE" | ${GNUPREFIX}sed -r 's/^.*\x1B\[30;43m(.*?)\x1B\[0m.*$/\1/')
CORRECTION=$(ag --nonumbers --ignore-case --word-regexp "$ERROR" ${DIR}/spelling.dat | cut -d: -f2)
SPELLOKSTR='//#spellok'
if [[ "$FILE" =~ \.(txt|html|htm)$ ]]; then
SPELLOKSTR='<!--#spellok-->'
fi
if [[ "$FILE" =~ \.(h|cpp|sip)$ ]]; then
if [[ "$NOCOLOR" =~ ^\s*(\/*)|(\/\/) ]]; then
SPELLOKSTR='#spellok'
fi
fi
if [[ "$FILE" =~ \.(py)$ ]]; then
SPELLOKSTR='#spellok'
fi
echo ""
echo -e " \x1B[4mr\x1B[0meplace by \x1B[33m$CORRECTION\x1B[0m"
echo -e " \x1B[4ma\x1B[0mppend \x1B[33m$SPELLOKSTR\x1B[0m at the end of the line to avoid spell check on this line"
echo -e " en\x1B[4mt\x1B[0mer your own correction"
echo -e " ignore and \x1B[4mc\x1B[0montinue"
echo -e " ignore and \x1B[4me\x1B[0mxit"
while read -n 1 n; do
echo ""
case $n in
r)
MATCHCASE="$ERROR:$CORRECTION"
CORRECTIONCASE=$(echo "$MATCHCASE" | ${GNUPREFIX}sed -r 's/([A-Z]+):(.*)/\U\2/;s/([A-Z][a-z]+):([a-z])/\U\2\L/')
echo -e "replacing \x1B[33m$ERROR\x1B[0m by \x1B[33m$CORRECTION\x1B[0m in \x1B[33m$FILE\x1B[0m at line \x1B[33m$NUMBER\x1B[0m"
${GNUPREFIX}sed -i "${NUMBER}s/$ERROR/$CORRECTION/g" $FILE
break
;;
a)
echo -e "appending \x1B[33m$SPELLOKSTR\x1B[0m to \x1B[33m$FILE\x1B[0m at line \x1B[33m$NUMBER\x1B[0m"
SPELLOKSTR=$(echo "$SPELLOKSTR" | ${GNUPREFIX}sed -r 's/\//\\\//g')
${GNUPREFIX}sed -i "${NUMBER}s/\$/ $SPELLOKSTR/" $FILE
break
;;
t)
echo "Enter the correction: "
read CORRECTION
MATCHCASE="$ERROR:$CORRECTION"
CORRECTIONCASE=$(echo "$MATCHCASE" | ${GNUPREFIX}sed -r 's/([A-Z]+):(.*)/\U\2/;s/([A-Z][a-z]+):([a-z])/\U\2\L/')
echo -e "replacing \x1B[33m$ERROR\x1B[0m by \x1B[33m$CORRECTION\x1B[0m in \x1B[33m$FILE\x1B[0m at line \x1B[33m$NUMBER\x1B[0m" sed -i "${NUMBER}s/$ERROR/$CORRECTION/g" $FILE
break
;;
c)
break
;;
e)
exit 1
;;
*) invalid option;;
esac
done
fi
if [[ "$NOCOLOR" =~ ^\s*$ ]]; then
FILE=""
fi
fi
done 3< <(unbuffer ag --smart-case --all-text --nopager --color-match "30;43" --numbers --nomultiline --word-regexp -p $AGIGNORE "${WHOLEWORDS}"'(?!.*'"${SPELLOK}"')' $INPUTFILES ; \
unbuffer ag --smart-case --all-text --nopager --color-match "30;43" --numbers --nomultiline -p $AGIGNORE "${INWORDS}"'(?!.*'"${SPELLOK}"')' $INPUTFILES )
rm $SPELLFILE
if [[ "$ERRORFOUND" =~ YES ]]; then
echo -e "\x1B[1msome errors have been found.\x1B[0m"
exit 1
else
exit 0
fi
done
exit

File diff suppressed because it is too large Load Diff

View File

@ -1,529 +0,0 @@
abandonning:abandoning
abigious:ambiguous
abitrate:arbitrate
abov:above
absolut:absolute
accelleration:acceleration
accesing:accessing
accesnt:accent
accessable:accessible
accidentaly:accidentally
accidentually:accidentally
accomadate:accommodate
accomodate:accommodate
accomodates:accommodates
accout:account
acess:access
acheive:achieve
acording:according
actully:actually
acumulating:accumulating
addional:additional
additionaly:additionally
adress:address
adresses:addresses
adviced:advised
afecting:affecting
albumns:albums
alegorical:allegorical
algorith:algorithm
algorithmical:algorithmically
allpication:application
alot:a lot
alows:allows
als:also
altough:although
ambigious:ambiguous
amoung:among
amout:amount
an other:another
analysator:analyzer
analysies:analyses
annoucement:announcement
aplication:application
appearence:appearance
appropiate:appropriate
appropriatly:appropriately
aquired:acquired
architechture:architecture
arguement:argument
arguements:arguments
aribitary:arbitrary
aritmetic:arithmetic
arne't:aren't
arount:around
arraival:arrival
artefact:artifact
artefacts:artifacts
artifical:artificial
artillary:artillery
assigment:assignment
assigments:assignments
assistent:assistant
asuming:assuming
atomatically:automatically
attemps:attempts
attemtps:attempts
attribut:attribute
attruibutes:attributes
authentification:authentication
automaticaly:automatically
automaticly:automatically
automatize:automate
automatized:automated
automatizes:automates
auxilliary:auxiliary
avaiable:available
availabel:available
availabled:available:*
availablity:availability
availale:available
availavility:availability
availble:available
availiable:available
avaliable:available
backgroud:background
baloons:balloons
batery:battery
becomming:becoming
becuase:because
begining:beginning
behaviour:behavior
calender:calendar
cancelation:cancellation
capabilites:capabilities
capatibilities:capabilities
capitalise:capitalize
cariage:carriage
centimetre:centimeter
centimetres:centimeters
challanges:challenges
changable:changeable
charachters:characters
charcter:character
chnages:changes
choosen:chosen
colorfull:colorful
colour:color
colours:colors
comand:command
comit:commit
commerical:commercial
comminucation:communication
commiting:committing
committ:commit
commoditiy:commodity
compability:compatibility
comparaison:comparison
compatability:compatibility
compatable:compatible
compatibiliy:compatibility
compatibilty:compatibility
compleatly:completely
complient:compliant
compres:compress
compresion:compression
connectinos:connections
consistancy:consistency
containes:contains
containging:containing
containts:contains
contence:contents
continous:continuous
continueing:continuing
contraints:constraints
convertor:converter
convinient:convenient
corected:corrected
cryptocraphic:cryptographic
deamon:daemon
debain:Debian
debians:Debian's
decompres:decompress
definate:definite
definately:definitely
definintion:definition
deimiter:delimiter
delemeter:delimiter
delemiter:delimiter
delimeter:delimiter
delimted:delimited
dependancies:dependencies
dependancy:dependency
dependant:dependent
descencing:descending
detabase:database
determin:determine
developement:development
developped:developed
deveolpment:development
devided:divided
dictionnary:dictionary
diplay:display
disapeared:disappeared
disolve:dissolve
dispertion:dispersion
dissapears:disappears
docuentation:documentation
documantation:documentation
documentaion:documentation
dont:don't
easilly:easily
ecspecially:especially
edditable:editable
editting:editing
eletronic:electronic
emited:emitted
emmited:emitted
emmitted:emitted
enchanced:enhanced
encorporating:incorporating
endianess:endianness
enhaced:enhanced
enlightnment:enlightenment
enterily:entirely
enviroiment:environment
enviroment:environment
environement:environment
excecutable:executable
exceded:exceeded
excellant:excellent
exlcude:exclude
expecially:especially
explicitely:explicitly
expresion:expression
exprimental:experimental
extention:extension
failuer:failure
familar:familiar
fatser:faster
fetaures:features
feture:feature
flter:filter
flavour:flavor
flavours:flavors
forse:force
fortan:fortran
forwardig:forwarding
framwork:framework
frist:first
fuction:function
fuctions:functions
functionaly:functionally
functionnality:functionality
functonality:functionality
furter:further
futher:further
futhermore:furthermore
generiously:generously
grahical:graphical
grahpical:graphical
granulatiry:granularity
grapic:graphic
guage:gauge
halfs:halves
heigh:height
heigth:height
heirarchically:hierarchically
helpfull:helpful
hierachy:hierarchy
hierarchie:hierarchy
howver:however
immediatelly:immediately
implemantation:implementation
implementaed:implemented
incomming:incoming
incompatabilities:incompatibilities
incompatable:incompatible
inconsistant:inconsistent
indendation:indentation
indended:intended
independant:independent
informatiom:information
informations:information
infromation:information
initalize:initialize
initators:initiators
initialisation:initialization
initializiation:initialization
inofficial:unofficial
instersction:intersection
integreated:integrated
integrety:integrity
integrey:integrity
intendet:intended
interactivly:interactively
interchangable:interchangeable
intermittant:intermittent
intersecton:intersection
intersectons:intersections
interupted:interrupted
intialised:initialized
intreface:interface
jave:java
kilometre:kilometer
kilometres:kilometers
labelling:labeling
labour:labor
langage:language
langauage:language
langugage:language
lauch:launch
lenght:length
lesstiff:lesstif
libaries:libraries
libary:library
libraris:libraries
licenceing:licencing
loggging:logging
loggin:login:*
logile:logfile
machinary:machinery
maintainance:maintenance
maintainence:maintenance
makeing:making
managable:manageable
manger:manager
manoeuvering:maneuvering
mathimatic:mathematic
mathimatical:mathematical
mathimatics:mathematics
ment:meant
messsages:messages
metres:meters
microprocesspr:microprocessor
millimetre:millimeter
millimetres:millimeters
milliseonds:milliseconds
minimise:minimize
miscelleneous:miscellaneous
misformed:malformed
mispelled:misspelled
mmnemonic:mnemonic
modulues:modules
monochorome:monochrome
monochromo:monochrome
monocrome:monochrome
mroe:more
multidimensionnal:multidimensional
navagating:navigating
nead:need
neccesary:necessary
neccessary:necessary
necesary:necessary
negotation:negotiation
nescessary:necessary
nessessary:necessary
noticable:noticeable
notications:notifications
nubmer:number
o'caml:OCaml
occured:occurred
occurence:occurrence
occuring:occurring
omitt:omit
ommitted:omitted:*
opps:oops
optionnal:optional
optmizations:optimizations
orientatied:orientated
orientied:oriented
orthagonal:orthogonal
orthagonalize:orthogonalize
overaall:overall
overidden:overridden
overide:override
overiden:overridden
overriden:overridden
pacakge:package
pachage:package
packacge:package
packege:package
packge:package
pakage:package
palletted:paletted
paramameters:parameters
parameterize:parametrize
paramter:parameter
paramters:parameters
particularily:particularly
pased:passed
peference:preference
peprocessor:preprocessor
perfoming:performing
permissons:permissions
persistant:persistent
plattform:platform
ploting:plotting
posible:possible
postgressql:PostgreSQL
postion:position
powerfull:powerful
preceeded:preceded
preceeding:preceding
precendence:precedence
precission:precision
prefered:preferred
prefferably:preferably
prepaired:prepared
primative:primitive
princliple:principle
priorty:priority
prioritise:prioritize
prioritising:prioritizing
proccesors:processors
proces:process
processessing:processing
processpr:processor
processsing:processing
progams:programs
programers:programmers
programm:program
programms:programs
promps:prompts
pronnounced:pronounced
prononciation:pronunciation
pronouce:pronounce
pronunce:pronounce
propery:property
prosess:process
protable:portable
protcol:protocol
protecion:protection
protocoll:protocol
psychadelic:psychedelic
quering:querying
rasterise:rasterize
recieve:receive
recieved:received
reciever:receiver
recognizeable:recognizable
recommanded:recommended
recommeneded:recommended
redircet:redirect
redirectrion:redirection
reenable:re-enable
reenabled:re-enabled
reencode:re-encode
refence:reference
registerd:registered:*
registraration:registration
regulamentations:regulations
remoote:remote
removeable:removable
repectively:respectively
replacments:replacements
requiere:require
requred:required
resizeable:resizable
ressize:resize
ressource:resource
retransmited:retransmitted
retrun:return
rigth:right
runnning:running
safly:safely
savable:saveable
searchs:searches:*
secific:specific
secund:second
separatly:separately
sepcify:specify
seperate:separate
seperated:separated
seperately:separately
seperatly:separately
seperator:separator
sequencial:sequential
serveral:several
setts:sets
signto:sign to
similiar:similar
simliar:similar
sofware:software
speach:speech
speciefied:specified
specifed:specified
specificaton:specification
specifing:specifying
speficied:specified
speling:spelling
splitted:split
staically:statically
standart:standard
staticly:statically
statics:statistics:*
stoped:stopped:*
subdirectoires:subdirectories
succesful:successful
succesfully:successfully
sucess:success
sucessful:successful
sucessfully:successfully
superceded:superseded
superflous:superfluous
superseeded:superseded
suplied:supplied
suport:support
suppored:supported
supportin:supporting
suppoted:supported
suppport:support
suppported:supported
supress:suppress
surpress:suppress
suspicously:suspiciously
swaped:swapped:*
symbo:symbol
syle:style
symetrical:symmetrical
synax:syntax
synchonized:synchronized
syncronize:synchronize
syncronizing:synchronizing
syncronus:synchronous
syste:system
sythesis:synthesis
taht:that
teh:the
throught:through
tranform:transform
transfering:transferring
traslates:translates
trasmission:transmission
treshold:threshold
trigerring:triggering
unexecpted:unexpected
unfortunatelly:unfortunately
unknonw:unknown
unkown:unknown
unselect:deselect
unuseful:useless
useable:usable
useage:usage
usefull:useful
usera:users
usetnet:Usenet
utilites:utilities
utillities:utilities
utilties:utilities
utiltity:utility
utitlty:utility
vaild:valid
variantions:variations
varient:variant
verbse:verbose
verison:version
verisons:versions
verson:version
vicefersa:vice-versa
vitual:virtual
whataver:whatever
wheter:whether
wich:which
widht:width
wierd:weird
writeable:writable
writting:writing
xwindows:X
yur:your