diff --git a/20131-hunspell.patch b/20131-hunspell.patch deleted file mode 100644 index ca9d1c2..0000000 --- a/20131-hunspell.patch +++ /dev/null @@ -1,5165 +0,0 @@ -From cc86173b2d3f505ff2d08313e500301ebe65cee0 Mon Sep 17 00:00:00 2001 -From: Thomas Vigouroux -Date: Fri, 9 Sep 2022 15:21:17 +0200 -Subject: [PATCH 1/5] fixup! add benchmark data - ---- - CMakeLists.txt | 7 - cmake/FindHunspell.cmake | 11 - nvim_hunspell/builtin.lua | 57 - nvim_hunspell/words | 4291 ++++++++++++++++++++++++++++++++++++++ - src/hunspell/hunspell_wrapper.cpp | 78 - src/hunspell/hunspell_wrapper.h | 39 - src/nvim/CMakeLists.txt | 5 - src/nvim/buffer_defs.h | 5 - src/nvim/optionstr.c | 4 - src/nvim/spell.c | 161 + - src/nvim/spell_defs.h | 10 - src/nvim/spellfile.c | 86 - src/nvim/spellsuggest.c | 147 - - 14 files changed, 4778 insertions(+), 124 deletions(-) - create mode 100644 nvim_hunspell/builtin.lua - create mode 100644 nvim_hunspell/words - ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -4,7 +4,7 @@ - - # Version should match the tested CMAKE_URL in .github/workflows/ci.yml. - cmake_minimum_required(VERSION 3.10) --project(nvim C) -+project(nvim C CXX) - - if(POLICY CMP0075) - cmake_policy(SET CMP0075 NEW) -@@ -504,6 +504,11 @@ endif() - find_package(LIBVTERM 0.1 REQUIRED) - include_directories(SYSTEM ${LIBVTERM_INCLUDE_DIRS}) - -+find_package(Hunspell REQUIRED) -+include_directories(SYSTEM ${Hunspell_INCLUDE_DIRS}) -+list(APPEND CMAKE_REQUIRED_INCLUDES "${Hunspell_INCLUDE_DIRS}") -+list(APPEND CMAKE_REQUIRED_LIBRARIES "${Hunspell_LIBRARIES}") -+ - option(CLANG_ASAN_UBSAN "Enable Clang address & undefined behavior sanitizer for nvim binary." OFF) - option(CLANG_MSAN "Enable Clang memory sanitizer for nvim binary." OFF) - option(CLANG_TSAN "Enable Clang thread sanitizer for nvim binary." OFF) ---- /dev/null -+++ b/cmake/FindHunspell.cmake -@@ -0,0 +1,11 @@ -+# - Try to find hunspell -+# Once done, this will define -+# -+# Hunspell_FOUND - system has hunspell -+# Hunspell_INCLUDE_DIRS - the hunspell include directories -+# Hunspell_LIBRARIES - link these to use hunspell -+ -+include(LibFindMacros) -+ -+libfind_pkg_detect(Hunspell hunspell FIND_PATH hunspell/hunspell.h FIND_LIBRARY hunspell) -+libfind_process(Hunspell) ---- /dev/null -+++ b/nvim_hunspell/builtin.lua -@@ -0,0 +1,57 @@ -+vim.o.spelloptions = "" -+vim.o.spelllang = "en" -+vim.o.spell = true -+ -+local spell_time = 0 -+local sugg_time = 0 -+local ITERATIONS = 10 -+ -+local function time(func, ...) -+ local start_time = vim.loop.hrtime() -+ local res = func(...) -+ return vim.loop.hrtime() - start_time, res -+end -+ -+local spell_errors = 0 -+local sugg_errors = 0 -+for i = 1, ITERATIONS do -+ local file = io.open("words", "r") -+ if not file then -+ error "Could not open wordlist" -+ end -+ -+ print(i) -+ spell_errors = 0 -+ for line in function() return file:read "*l" end do -+ local bad, suggs_plain = unpack(vim.split(line, "\t", { plain = true })) -+ print(bad) -+ -+ local suggs = vim.split(suggs_plain, ', ', { plain = true, trimempty = true }) -+ -+ local stime, bad_spell = time(vim.spell.check, bad) -+ spell_time = spell_time + stime -+ bad_spell = bad_spell[1] -+ -+ if bad_spell and bad ~= bad_spell[1] then -+ if #suggs > 0 then -+ spell_errors = spell_errors + 1 -+ end -+ end -+ -+ local sug_dtime, ret_suggs = time(vim.fn.spellsuggest, bad) -+ sugg_time = sugg_time + sug_dtime -+ -+ for _, s in ipairs(suggs) do -+ if not vim.tbl_contains(ret_suggs, s) then -+ sugg_errors = spell_errors + 1 -+ end -+ end -+ end -+end -+ -+-- nr iterations + conversion from nanos to millis -+local factor = ITERATIONS * 1000 * 1000 -+print(spell_errors, spell_time / factor) -+print(sugg_errors, sugg_time / factor) -+ -+vim.cmd.quit() ---- /dev/null -+++ b/nvim_hunspell/words -@@ -0,0 +1,4291 @@ -+abandonned abandoned -+aberation aberration -+abilityes abilities -+abilties abilities -+abilty ability -+abondon abandon -+abbout about -+abotu about -+abouta about a -+aboutit about it -+aboutthe about the -+abscence absence -+abondoned abandoned -+abondoning abandoning -+abondons abandons -+aborigene aborigine -+accesories accessories -+accidant accident -+abortificant abortifacient -+abreviate abbreviate -+abreviated abbreviated -+abreviation abbreviation -+abritrary arbitrary -+absail abseil -+absailing abseiling -+absense absence -+absolutly absolutely -+absorbsion absorption -+absorbtion absorption -+abudance abundance -+abundacies abundances -+abundancies abundances -+abundunt abundant -+abutts abuts -+acadamy academy -+acadmic academic -+accademic academic -+accademy academy -+acccused accused -+accelleration acceleration -+accension accession, ascension -+acceptence acceptance -+acceptible acceptable -+accessable accessible -+acident accident -+accidentaly accidentally -+accidently accidentally -+acclimitization acclimatization -+accomadate accommodate -+accomadated accommodated -+accomadates accommodates -+accomadating accommodating -+accomadation accommodation -+accomadations accommodations -+accomdate accommodate -+accomodate accommodate -+accomodated accommodated -+accomodates accommodates -+accomodating accommodating -+accomodation accommodation -+accomodations accommodations -+accompanyed accompanied -+accordeon accordion -+accordian accordion -+accoring according -+accoustic acoustic -+accquainted acquainted -+accrediation accreditation -+accredidation accreditation -+accross across -+accussed accused -+acedemic academic -+acheive achieve -+acheived achieved -+acheivement achievement -+acheivements achievements -+acheives achieves -+acheiving achieving -+acheivment achievement -+acheivments achievements -+achievment achievement -+achievments achievements -+achive achieve, archive -+achived achieved, archived -+achivement achievement -+achivements achievements -+acknowldeged acknowledged -+acknowledgeing acknowledging -+ackward awkward, backward -+acommodate accommodate -+acomplish accomplish -+acomplished accomplished -+acomplishment accomplishment -+acomplishments accomplishments -+acording according -+acordingly accordingly -+acquaintence acquaintance -+acquaintences acquaintances -+acquiantence acquaintance -+acquiantences acquaintances -+acquited acquitted -+activites activities -+activly actively -+actualy actually -+acuracy accuracy -+acused accused -+acustom accustom -+acustommed accustomed -+adavanced advanced -+adbandon abandon -+addional additional -+addionally additionally -+additinally additionally -+additionaly additionally -+additonal additional -+additonally additionally -+addmission admission -+addopt adopt -+addopted adopted -+addoptive adoptive -+addres address, adders -+addresable addressable -+addresed addressed -+addresing addressing -+addressess addresses -+addtion addition -+addtional additional -+adecuate adequate -+adequit adequate -+adhearing adhering -+adherance adherence -+admendment amendment -+admininistrative administrative -+adminstered administered -+adminstrate administrate -+adminstration administration -+adminstrative administrative -+adminstrator administrator -+admissability admissibility -+admissable admissible -+admited admitted -+admitedly admittedly -+adolecent adolescent -+adquire acquire -+adquired acquired -+adquires acquires -+adquiring acquiring -+adres address -+adresable addressable -+adresing addressing -+adress address -+adressable addressable -+adressed addressed -+adressing addressing, dressing -+adventrous adventurous -+advertisment advertisement -+advertisments advertisements -+advesary adversary -+adviced advised -+aeriel aerial -+aeriels aerials -+afair affair -+afficianados aficionados -+afficionado aficionado -+afficionados aficionados -+affilate affiliate -+affilliate affiliate -+affort afford, effort -+aforememtioned aforementioned -+againnst against -+agains against -+agaisnt against -+aganist against -+aggaravates aggravates -+aggreed agreed -+aggreement agreement -+aggregious egregious -+aggregrator aggregator -+aggresive aggressive -+agian again -+agianst against -+agin again -+agina again, angina -+aginst against -+agravate aggravate -+agre agree -+agred agreed -+agreeement agreement -+agreemnt agreement -+agregate aggregate -+agregates aggregates -+agreing agreeing -+agression aggression -+agressive aggressive -+agressively aggressively -+agressor aggressor -+agricultue agriculture -+agriculure agriculture -+agricuture agriculture -+agrieved aggrieved -+ahev have -+ahppen happen -+ahve have -+aicraft aircraft -+aiport airport -+airbourne airborne -+aircaft aircraft -+aircrafts aircraft -+airporta airports -+airrcraft aircraft -+aisian asian -+albiet albeit -+alchohol alcohol -+alchoholic alcoholic -+alchol alcohol -+alcholic alcoholic -+alcohal alcohol -+alcoholical alcoholic -+aledge allege -+aledged alleged -+aledges alleges -+alege allege -+aleged alleged -+alegience allegiance -+algebraical algebraic -+algorhitms algorithms -+algoritm algorithm -+algoritms algorithms -+alientating alienating -+alledge allege -+alledged alleged -+alledgedly allegedly -+alledges alleges -+allegedely allegedly -+allegedy allegedly -+allegely allegedly -+allegence allegiance -+allegience allegiance -+allign align -+alligned aligned -+alliviate alleviate -+allopone allophone -+allopones allophones -+allready already -+allthough although -+alltogether altogether -+almsot almost -+alochol alcohol -+alomst almost -+alot a lot, allot -+alotted allotted -+alowed allowed -+alowing allowing -+alreayd already -+alse else -+alsot also -+alternitives alternatives -+altho although -+althought although -+altough although -+alusion allusion, illusion -+alwasy always -+alwyas always -+amalgomated amalgamated -+amatuer amateur -+amature armature, amateur -+amendmant amendment -+Amercia America -+amerliorate ameliorate -+amke make -+amking making -+ammend amend -+ammended amended -+ammendment amendment -+ammendments amendments -+ammount amount -+ammused amused -+amoung among -+amoungst amongst -+amung among -+amunition ammunition -+analagous analogous -+analitic analytic -+analogeous analogous -+anarchim anarchism -+anarchistm anarchism -+anbd and -+ancestory ancestry -+ancilliary ancillary -+andd and -+androgenous androgynous -+androgeny androgyny -+anihilation annihilation -+aniversary anniversary -+annoint anoint -+annointed anointed -+annointing anointing -+annoints anoints -+annouced announced -+annualy annually -+annuled annulled -+anohter another -+anomolies anomalies -+anomolous anomalous -+anomoly anomaly -+anonimity anonymity -+anounced announced -+anouncement announcement -+ansalisation nasalisation -+ansalization nasalization -+ansestors ancestors -+antartic antarctic -+anthromorphization anthropomorphization -+anthropolgist anthropologist -+anthropolgy anthropology -+anual annual -+anulled annulled -+anwsered answered -+anyhwere anywhere -+anyother any other -+anytying anything -+aparent apparent -+aparment apartment -+apenines apennines, Apennines -+aplication application -+aplied applied -+apolegetics apologetics -+apon upon, apron -+apparant apparent -+apparantly apparently -+appart apart -+appartment apartment -+appartments apartments -+appealling appealing, appalling -+appeareance appearance -+appearence appearance -+appearences appearances -+appenines apennines, Apennines -+apperance appearance -+apperances appearances -+appereance appearance -+appereances appearances -+applicaiton application -+applicaitons applications -+appologies apologies -+appology apology -+apprearance appearance -+apprieciate appreciate -+approachs approaches -+appropiate appropriate -+appropraite appropriate -+appropropiate appropriate -+approproximate approximate -+approxamately approximately -+approxiately approximately -+approximitely approximately -+aprehensive apprehensive -+apropriate appropriate -+aproval approval -+aproximate approximate -+aproximately approximately -+aquaduct aqueduct -+aquaintance acquaintance -+aquainted acquainted -+aquiantance acquaintance -+aquire acquire -+aquired acquired -+aquiring acquiring -+aquisition acquisition -+aquitted acquitted -+aranged arranged -+arangement arrangement -+arbitarily arbitrarily -+arbitary arbitrary -+archaelogical archaeological -+archaelogists archaeologists -+archaelogy archaeology -+archaoelogy archeology, archaeology -+archaology archeology, archaeology -+archeaologist archeologist, archaeologist -+archeaologists archeologists, archaeologists -+archetect architect -+archetects architects -+archetectural architectural -+archetecturally architecturally -+archetecture architecture -+archiac archaic -+archictect architect -+archimedian archimedean -+architecht architect -+architechturally architecturally -+architechture architecture -+architechtures architectures -+architectual architectural -+archtype archetype -+archtypes archetypes -+aready already -+areodynamics aerodynamics -+argubly arguably -+arguement argument -+arguements arguments -+arised arose -+arival arrival -+armamant armament -+armistace armistice -+arogant arrogant -+arogent arrogant -+aroud around -+arrangment arrangement -+arrangments arrangements -+arrengement arrangement -+arrengements arrangements -+arround around -+artcile article -+artical article -+artice article -+articel article -+artifical artificial -+artifically artificially -+artillary artillery -+arund around -+asetic ascetic -+asfar as far -+asign assign -+aslo also -+asociated associated -+asorbed absorbed -+asphyxation asphyxiation -+assasin assassin -+assasinate assassinate -+assasinated assassinated -+assasinates assassinates -+assasination assassination -+assasinations assassinations -+assasined assassinated -+assasins assassins -+assassintation assassination -+assemple assemble -+assertation assertion -+asside aside -+assisnate assassinate -+assit assist -+assitant assistant -+assocation association -+assoicate associate -+assoicated associated -+assoicates associates -+assosication assassination -+asssassans assassins -+assualt assault -+assualted assaulted -+assymetric asymmetric -+assymetrical asymmetrical -+asteriod asteroid -+asthetic aesthetic -+asthetical aesthetical -+asthetically aesthetically -+asume assume -+aswell as well -+atain attain -+atempting attempting -+atheistical atheistic -+athenean athenian -+atheneans athenians -+athiesm atheism -+athiest atheist -+atorney attorney -+atribute attribute -+atributed attributed -+atributes attributes -+attaindre attainder, attained -+attemp attempt -+attemped attempted -+attemt attempt -+attemted attempted -+attemting attempting -+attemts attempts -+attendence attendance -+attendent attendant -+attendents attendants -+attened attended -+attension attention -+attitide attitude -+attributred attributed -+attrocities atrocities -+audeince audience -+auromated automated -+austrailia Australia -+austrailian Australian -+auther author -+authobiographic autobiographic -+authobiography autobiography -+authorative authoritative -+authorites authorities -+authorithy authority -+authoritiers authorities -+authoritive authoritative -+authrorities authorities -+autochtonous autochthonous -+autoctonous autochthonous -+automaticly automatically -+automibile automobile -+automonomous autonomous -+autor author -+autority authority -+auxilary auxiliary -+auxillaries auxiliaries -+auxillary auxiliary -+auxilliaries auxiliaries -+auxilliary auxiliary -+availabe available -+availablity availability -+availaible available -+availble available -+availiable available -+availible available -+avalable available -+avalance avalanche -+avaliable available -+avation aviation -+avengence a vengeance -+averageed averaged -+avilable available -+awared awarded -+awya away -+bacame became -+baceause because -+backgorund background -+backrounds backgrounds -+bakc back -+banannas bananas -+bandwith bandwidth -+bankrupcy bankruptcy -+banruptcy bankruptcy -+baout about, bout -+basicaly basically -+basicly basically -+bcak back -+beachead beachhead -+beacuse because -+beastiality bestiality -+beatiful beautiful -+beaurocracy bureaucracy -+beaurocratic bureaucratic -+beautyfull beautiful -+becamae became -+becames becomes, became -+becasue because -+beccause because -+becomeing becoming -+becomming becoming -+becouse because -+becuase because -+bedore before -+beeing being -+befoer before -+beggin begin, begging -+begginer beginner -+begginers beginners -+beggining beginning -+begginings beginnings -+beggins begins -+begining beginning -+beginnig beginning -+behavour behavior, behaviour -+beleagured beleaguered -+beleif belief -+beleive believe -+beleived believed -+beleives believes -+beleiving believing -+beligum belgium -+belive believe -+belived believed, beloved -+belives believes, beliefs -+belligerant belligerent -+bellweather bellwether -+bemusemnt bemusement -+beneficary beneficiary -+beng being -+benificial beneficial -+benifit benefit -+benifits benefits -+bergamont bergamot -+Bernouilli Bernoulli -+beseige besiege -+beseiged besieged -+beseiging besieging -+beteen between -+betwen between -+beween between -+bewteen between -+bigining beginning -+biginning beginning -+bilateraly bilaterally -+billingualism bilingualism -+binominal binomial -+bizzare bizarre -+blaim blame -+blaimed blamed -+blessure blessing -+Blitzkreig Blitzkrieg -+boaut bout, boat, about -+bodydbuilder bodybuilder -+bombardement bombardment -+bombarment bombardment -+bondary boundary -+Bonnano Bonanno -+boook book -+borke broke -+boundry boundary -+bouyancy buoyancy -+bouyant buoyant -+boyant buoyant -+bradcast broadcast -+Brasillian Brazilian -+breakthough breakthrough -+breakthroughts breakthroughs -+breif brief -+breifly briefly -+brethen brethren -+bretheren brethren -+briliant brilliant -+brillant brilliant -+brimestone brimstone -+Britian Britain -+Brittish British -+broacasted broadcast -+broadacasting broadcasting -+broady broadly -+Buddah Buddha -+Buddist Buddhist -+buisness business -+buisnessman businessman -+buoancy buoyancy -+buring burying, burning, burin, during -+burried buried -+busines business -+busineses business, businesses -+busness business -+bussiness business -+caculater calculator -+cacuses caucuses -+cahracters characters -+calaber caliber -+calander calendar, calender, colander -+calculater calculator -+calculs calculus -+calenders calendars -+caligraphy calligraphy -+caluclate calculate -+caluclated calculated -+caluculate calculate -+caluculated calculated -+calulate calculate -+calulated calculated -+calulater calculator -+Cambrige Cambridge -+camoflage camouflage -+campagin campaign -+campain campaign -+campains campaigns -+candadate candidate -+candiate candidate -+candidiate candidate -+cannister canister -+cannisters canisters -+cannnot cannot -+cannonical canonical -+cannotation connotation -+cannotations connotations -+caost coast -+caperbility capability -+Capetown Cape Town -+capible capable -+captial capital -+captued captured -+capturd captured -+carachter character -+caracterized characterized -+carcas carcass, Caracas -+carefull careful -+careing caring -+carismatic charismatic -+Carmalite Carmelite -+Carnagie Carnegie -+Carnagie-Mellon Carnegie-Mellon -+carnege carnage, Carnegie -+carnige carnage, Carnegie -+Carnigie Carnegie -+Carnigie-Mellon Carnegie-Mellon -+carreer career -+carrers careers -+Carribbean Caribbean -+Carribean Caribbean -+carryng carrying -+cartdridge cartridge -+Carthagian Carthaginian -+carthographer cartographer -+cartilege cartilage -+cartilidge cartilage -+cartrige cartridge -+casette cassette -+casion caisson -+cassawory cassowary -+cassowarry cassowary -+casue cause -+casued caused -+casues causes -+casuing causing -+casulaties casualties -+casulaty casualty -+catagories categories -+catagorized categorized -+catagory category -+Cataline Catiline, Catalina -+catapillar caterpillar -+catapillars caterpillars -+catapiller caterpillar -+catapillers caterpillars -+catepillar caterpillar -+catepillars caterpillars -+catergorize categorize -+catergorized categorized -+caterpilar caterpillar -+caterpilars caterpillars -+caterpiller caterpillar -+caterpillers caterpillars -+cathlic catholic -+catholocism catholicism -+catterpilar caterpillar -+catterpilars caterpillars -+catterpillar caterpillar -+catterpillars caterpillars -+cattleship battleship -+causalities casualties -+Ceasar Caesar -+Celcius Celsius -+cellpading cellpadding -+cementary cemetery -+cemetarey cemetery -+cemetaries cemeteries -+cemetary cemetery -+cencus census -+censur censor, censure -+cententenial centennial -+centruies centuries -+centruy century -+centuties centuries -+centuty century -+ceratin certain, keratin -+cerimonial ceremonial -+cerimonies ceremonies -+cerimonious ceremonious -+cerimony ceremony -+ceromony ceremony -+certaintly certainly -+certainity certainty -+certian certain -+cervial cervical, servile, serval -+chalenging challenging -+challange challenge -+challanged challenged -+challege challenge -+Champange Champagne -+changable changeable -+charachter character -+charachters characters -+charactersistic characteristic -+charactor character -+charactors characters -+charasmatic charismatic -+charaterized characterized -+chariman chairman -+charistics characteristics -+chasr chaser, chase -+cheif chief -+cheifs chiefs -+chemcial chemical -+chemcially chemically -+chemestry chemistry -+chemicaly chemically -+childbird childbirth -+childen children -+choclate chocolate -+choosen chosen -+chracter character -+chuch church -+churchs churches -+Cincinatti Cincinnati -+Cincinnatti Cincinnati -+circulaton circulation -+circumsicion circumcision -+circut circuit -+ciricuit circuit -+ciriculum curriculum -+civillian civilian -+claer clear -+claerer clearer -+claerly clearly -+claimes claims -+clas class -+clasic classic -+clasical classical -+clasically classically -+cleareance clearance -+clera clear, sclera -+clincial clinical -+clinicaly clinically -+cmo com -+cmoputer computer -+coctail cocktail -+coform conform -+cognizent cognizant -+coincedentally coincidentally -+colaborations collaborations -+colateral collateral -+colelctive collective -+collaberative collaborative -+collecton collection -+collegue colleague -+collegues colleagues -+collonade colonnade -+collonies colonies -+collony colony -+collosal colossal -+colonizators colonizers -+comander commander, commandeer -+comando commando -+comandos commandos -+comany company -+comapany company -+comback comeback -+combanations combinations -+combinatins combinations -+combusion combustion -+comdemnation condemnation -+comemmorates commemorates -+comemoretion commemoration -+comision commission -+comisioned commissioned -+comisioner commissioner -+comisioning commissioning -+comisions commissions -+comission commission -+comissioned commissioned -+comissioner commissioner -+comissioning commissioning -+comissions commissions -+comited committed -+comiting committing -+comitted committed -+comittee committee -+comitting committing -+commandoes commandos -+commedic comedic -+commemerative commemorative -+commemmorate commemorate -+commemmorating commemorating -+commerical commercial -+commerically commercially -+commericial commercial -+commericially commercially -+commerorative commemorative -+comming coming -+comminication communication -+commision commission -+commisioned commissioned -+commisioner commissioner -+commisioning commissioning -+commisions commissions -+commited committed -+commitee committee -+commiting committing -+committe committee -+committment commitment -+committments commitments -+commmemorated commemorated -+commongly commonly -+commonweath commonwealth -+commuications communications -+commuinications communications -+communciation communication -+communiation communication -+communites communities -+compability compatibility -+comparision comparison -+comparisions comparisons -+comparitive comparative -+comparitively comparatively -+compatabilities compatibilities -+compatability compatibility -+compatable compatible -+compatablities compatibilities -+compatablity compatibility -+compatiable compatible -+compatiblities compatibilities -+compatiblity compatibility -+compeitions competitions -+compensantion compensation -+competance competence -+competant competent -+competative competitive -+competion competition, completion -+competitiion competition -+competive competitive -+competiveness competitiveness -+comphrehensive comprehensive -+compitent competent -+completedthe completed the -+completelyl completely -+completetion completion -+complier compiler -+componant component -+comprable comparable -+comprimise compromise -+compulsary compulsory -+compulsery compulsory -+computarized computerized -+concensus consensus -+concider consider -+concidered considered -+concidering considering -+conciders considers -+concieted conceited -+concieved conceived -+concious conscious -+conciously consciously -+conciousness consciousness -+condamned condemned -+condemmed condemned -+condidtion condition -+condidtions conditions -+conditionsof conditions of -+conected connected -+conection connection -+conesencus consensus -+confidental confidential -+confidentally confidentially -+confids confides -+configureable configurable -+confortable comfortable -+congradulations congratulations -+congresional congressional -+conived connived -+conjecutre conjecture -+conjuction conjunction -+Conneticut Connecticut -+conotations connotations -+conquerd conquered -+conquerer conqueror -+conquerers conquerors -+conqured conquered -+conscent consent -+consciouness consciousness -+consdider consider -+consdidered considered -+consdiered considered -+consectutive consecutive -+consenquently consequently -+consentrate concentrate -+consentrated concentrated -+consentrates concentrates -+consept concept -+consequentually consequently -+consequeseces consequences -+consern concern -+conserned concerned -+conserning concerning -+conservitive conservative -+consiciousness consciousness -+consicousness consciousness -+considerd considered -+consideres considered -+consious conscious -+consistant consistent -+consistantly consistently -+consituencies constituencies -+consituency constituency -+consituted constituted -+consitution constitution -+consitutional constitutional -+consolodate consolidate -+consolodated consolidated -+consonent consonant -+consonents consonants -+consorcium consortium -+conspiracys conspiracies -+conspiriator conspirator -+constaints constraints -+constanly constantly -+constarnation consternation -+constatn constant -+constinually continually -+constituant constituent -+constituants constituents -+constituion constitution -+constituional constitutional -+consttruction construction -+constuction construction -+contstruction construction -+consulant consultant -+consumate consummate -+consumated consummated -+contaiminate contaminate -+containes contains -+contamporaries contemporaries -+contamporary contemporary -+contempoary contemporary -+contemporaneus contemporaneous -+contempory contemporary -+contendor contender -+contian contain -+contians contains -+contibute contribute -+contibuted contributed -+contibutes contributes -+contigent contingent -+contined continued -+continential continental -+continous continuous -+continously continuously -+continueing continuing -+contravercial controversial -+contraversy controversy -+contributer contributor -+contributers contributors -+contritutions contributions -+controled controlled -+controling controlling -+controll control -+controlls controls -+controvercial controversial -+controvercy controversy -+controveries controversies -+controversal controversial -+controversey controversy -+controvertial controversial -+controvery controversy -+contruction construction -+conveinent convenient -+convenant covenant -+convential conventional -+convertables convertibles -+convertion conversion -+conviced convinced -+convienient convenient -+coordiantion coordination -+coorperation cooperation, corporation -+coorperations corporations -+copmetitors competitors -+coputer computer -+copywrite copyright -+coridal cordial -+cornmitted committed -+corosion corrosion -+corparate corporate -+corperations corporations -+correcters correctors -+correponding corresponding -+correposding corresponding -+correspondant correspondent -+correspondants correspondents -+corridoors corridors -+corrispond correspond -+corrispondant correspondent -+corrispondants correspondents -+corrisponded corresponded -+corrisponding corresponding -+corrisponds corresponds -+costitution constitution -+coucil council -+coudl could, cloud -+councellor councillor, counselor, councilor -+councellors councillors, counselors, councilors -+counries countries -+countains contains -+countires countries -+coururier courier, couturier -+coverted converted, covered, coveted -+cpoy coy, copy -+creaeted created -+creche crèche -+creedence credence -+critereon criterion -+criterias criteria -+criticists critics -+critising criticising, criticizing -+critisising criticising -+critisism criticism -+critisisms criticisms -+critisize criticise, criticize -+critisized criticised, criticized -+critisizes criticises, criticizes -+critisizing criticising, criticizing -+critized criticized -+critizing criticizing -+crockodiles crocodiles -+crowm crown -+crtical critical -+crticised criticised -+crucifiction crucifixion -+crusies cruises -+crutial crucial -+crystalisation crystallisation -+culiminating culminating -+cumulatative cumulative -+curch church -+curcuit circuit -+currenly currently -+curriculem curriculum -+cxan cyan -+cyclinder cylinder -+dacquiri daiquiri -+daed dead -+dael deal, dial, dahl -+dalmation dalmatian -+damenor demeanor -+dammage damage -+Dardenelles Dardanelles -+daugher daughter -+debateable debatable -+decendant descendant -+decendants descendants -+decendent descendant -+decendents descendants -+decideable decidable -+decidely decidedly -+decieved deceived -+decison decision -+decomissioned decommissioned -+decomposit decompose -+decomposited decomposed -+decompositing decomposing -+decomposits decomposes -+decress decrees -+decribe describe -+decribed described -+decribes describes -+decribing describing -+dectect detect -+defendent defendant -+defendents defendants -+deffensively defensively -+deffine define -+deffined defined -+definance defiance -+definate definite -+definately definitely -+definatly definitely -+definetly definitely -+definining defining -+definit definite -+definitly definitely -+definiton definition -+defintion definition -+degrate degrade -+delagates delegates -+delapidated dilapidated -+delerious delirious -+delevopment development -+deliberatly deliberately -+delusionally delusively -+demenor demeanor -+demographical demographic -+demolision demolition -+demorcracy democracy -+demostration demonstration -+denegrating denigrating -+densly densely -+deparment department -+deparmental departmental -+deparments departments -+dependance dependence -+dependancy dependency -+deram dram, dream -+deriviated derived -+derivitive derivative -+derogitory derogatory -+descendands descendants -+descibed described -+descision decision -+descisions decisions -+descriibes describes -+descripters descriptors -+descripton description -+desctruction destruction -+descuss discuss -+desgined designed -+deside decide -+desigining designing -+desinations destinations -+desintegrated disintegrated -+desintegration disintegration -+desireable desirable -+desitned destined -+desktiop desktop -+desorder disorder -+desoriented disoriented -+desparate desperate, disparate -+despict depict -+despiration desperation -+dessicated desiccated -+dessigned designed -+destablized destabilized -+destory destroy -+detailled detailed -+detatched detached -+deteoriated deteriorated -+deteriate deteriorate -+deterioriating deteriorating -+determinining determining -+detremental detrimental -+devasted devastated -+develope develop -+developement development -+developped developed -+develpment development -+devels delves -+devestated devastated -+devestating devastating -+devide divide -+devided divided -+devistating devastating -+devolopement development -+diablical diabolical -+diamons diamonds -+diaster disaster -+dichtomy dichotomy -+diconnects disconnects -+dicover discover -+dicovered discovered -+dicovering discovering -+dicovers discovers -+dicovery discovery -+dictionarys dictionaries -+dicussed discussed -+diea idea, die -+dieing dying, dyeing -+dieties deities -+diety deity -+diferent different -+diferrent different -+differentiatiations differentiations -+differnt different -+difficulity difficulty -+diffrent different -+dificulties difficulties -+dificulty difficulty -+dimenions dimensions -+dimention dimension -+dimentional dimensional -+dimentions dimensions -+dimesnional dimensional -+diminuitive diminutive -+dimunitive diminutive -+diosese diocese -+diphtong diphthong -+diphtongs diphthongs -+diplomancy diplomacy -+dipthong diphthong -+dipthongs diphthongs -+directoty directory -+dirived derived -+disagreeed disagreed -+disapeared disappeared -+disapointing disappointing -+disappearred disappeared -+disaproval disapproval -+disasterous disastrous -+disatisfaction dissatisfaction -+disatisfied dissatisfied -+disatrous disastrous -+discontentment discontent -+discribe describe -+discribed described -+discribes describes -+discribing describing -+disctinction distinction -+disctinctive distinctive -+disemination dissemination -+disenchanged disenchanted -+disiplined disciplined -+disobediance disobedience -+disobediant disobedient -+disolved dissolved -+disover discover -+dispair despair -+disparingly disparagingly -+dispence dispense -+dispenced dispensed -+dispencing dispensing -+dispicable despicable -+dispite despite -+dispostion disposition -+disproportiate disproportionate -+disputandem disputandum -+disricts districts -+dissagreement disagreement -+dissapear disappear -+dissapearance disappearance -+dissapeared disappeared -+dissapearing disappearing -+dissapears disappears -+dissappear disappear -+dissappears disappears -+dissappointed disappointed -+dissarray disarray -+dissobediance disobedience -+dissobediant disobedient -+dissobedience disobedience -+dissobedient disobedient -+distiction distinction -+distingish distinguish -+distingished distinguished -+distingishes distinguishes -+distingishing distinguishing -+distingquished distinguished -+distrubution distribution -+distruction destruction -+distructive destructive -+ditributed distributed -+diversed diverse, diverged -+divice device -+divinition divination -+divison division -+divisons divisions -+dum dumb -+doccument document -+doccumented documented -+doccuments documents -+docrines doctrines -+doctines doctrines -+documenatry documentary -+doens does -+doign doing -+dominaton domination -+dominent dominant -+dominiant dominant -+donig doing -+doub doubt, daub -+doulbe double -+dowloads downloads -+dramtic dramatic -+draughtman draughtsman -+Dravadian Dravidian -+dreasm dreams -+driectly directly -+drnik drink -+druming drumming -+drummless drumless -+dupicate duplicate -+durig during -+durring during -+duting during -+dyas dryas -+eahc each -+ealier earlier -+earlies earliest -+earnt earned -+ecclectic eclectic -+eceonomy economy -+ecidious deciduous -+eclispe eclipse -+ecomonic economic -+econoımic economic -+econoimic economic -+ect etc -+eearly early -+efel evil -+effeciency efficiency -+effecient efficient -+effeciently efficiently -+efficency efficiency -+efficent efficient -+efficently efficiently -+efford effort, afford -+effords efforts, affords -+effulence effluence -+eigth eighth, eight -+eiter either -+elction election -+electic eclectic, electric -+electon election, electron -+electrial electrical -+electricly electrically -+electricty electricity -+elementay elementary -+eleminated eliminated -+eleminating eliminating -+eles eels -+eletricity electricity -+elicided elicited -+eligable eligible -+elimentary elementary -+ellected elected -+elphant elephant -+embarass embarrass -+embarassed embarrassed -+embarassing embarrassing -+embarassment embarrassment -+embargos embargoes -+embarras embarrass -+embarrased embarrassed -+embarrasing embarrassing -+embarrasment embarrassment -+embezelled embezzled -+emblamatic emblematic -+eminate emanate -+eminated emanated -+emision emission -+emited emitted -+emiting emitting -+emition emission, emotion -+emmediately immediately -+emmigrated emigrated, immigrated -+emminent eminent, imminent -+emminently eminently -+emmisaries emissaries -+emmisarries emissaries -+emmisarry emissary -+emmisary emissary -+emmision emission -+emmisions emissions -+emmited emitted -+emmiting emitting -+emmitted emitted -+emmitting emitting -+emnity enmity -+emperical empirical -+emphaised emphasised -+emphsis emphasis -+emphysyma emphysema -+empirial empirical, imperial -+emporer emperor -+emprisoned imprisoned -+enameld enameled -+enchancement enhancement -+encouraing encouraging -+encryptiion encryption -+encylopedia encyclopedia -+endevors endeavors -+endevour endeavour -+endig ending -+endolithes endoliths -+enduce induce -+ened need -+enforceing enforcing -+engagment engagement -+engeneer engineer -+engeneering engineering -+engieneer engineer -+engieneers engineers -+enlargment enlargement -+enlargments enlargements -+Enlish English, enlist -+enourmous enormous -+enourmously enormously -+ensconsed ensconced -+entaglements entanglements -+enteratinment entertainment -+enthusiatic enthusiastic -+entitity entity -+entitlied entitled -+entrepeneur entrepreneur -+entrepeneurs entrepreneurs -+enviorment environment -+enviormental environmental -+enviormentally environmentally -+enviorments environments -+enviornment environment -+enviornmental environmental -+enviornmentalist environmentalist -+enviornmentally environmentally -+enviornments environments -+enviroment environment -+enviromental environmental -+enviromentalist environmentalist -+enviromentally environmentally -+enviroments environments -+envolutionary evolutionary -+envrionments environments -+enxt next -+epidsodes episodes -+epsiode episode -+equialent equivalent -+equalibrium equilibrium -+equelibrium equilibrium -+equilibium equilibrium -+equilibrum equilibrium -+equiped equipped -+equippment equipment -+equitorial equatorial -+equivelant equivalent -+equivelent equivalent -+equivilant equivalent -+equivilent equivalent -+equivlalent equivalent -+erally orally, really -+eratic erratic -+eratically erratically -+eraticly erratically -+erested arrested, erected -+errupted erupted -+esential essential -+esitmated estimated -+esle else -+especialy especially -+essencial essential -+essense essence -+essentail essential -+essentialy essentially -+essentual essential -+essesital essential -+estabishes establishes -+establising establishing -+ethnocentricm ethnocentrism -+ethose those, ethos -+Europian European -+Europians Europeans -+Eurpean European -+Eurpoean European -+evenhtually eventually -+eventally eventually -+eventhough even though -+eventially eventually -+eventualy eventually -+everthing everything -+everytime every time -+everyting everything -+eveyr every -+evidentally evidently -+exagerate exaggerate -+exagerated exaggerated -+exagerates exaggerates -+exagerating exaggerating -+exagerrate exaggerate -+exagerrated exaggerated -+exagerrates exaggerates -+exagerrating exaggerating -+examinated examined -+exampt exempt -+exapansion expansion -+excact exact -+excange exchange -+excecute execute -+excecuted executed -+excecutes executes -+excecuting executing -+excecution execution -+excedded exceeded -+excelent excellent -+excell excel -+excellance excellence -+excellant excellent -+excells excels -+excercise exercise -+exchanching exchanging -+excisted existed -+exculsivly exclusively -+execising exercising -+exection execution -+exectued executed -+exeedingly exceedingly -+exelent excellent -+exellent excellent -+exemple example -+exept except -+exeptional exceptional -+exerbate exacerbate -+exerbated exacerbated -+exerciese exercises -+exerpt excerpt -+exerpts excerpts -+exersize exercise -+exerternal external -+exhalted exalted -+exhibtion exhibition -+exibition exhibition -+exibitions exhibitions -+exicting exciting -+exinct extinct -+existance existence -+existant existent -+existince existence -+exliled exiled -+exludes excludes -+exmaple example -+exonorate exonerate -+exoskelaton exoskeleton -+expalin explain -+expatriot expatriate -+expeced expected -+expecially especially -+expeditonary expeditionary -+expeiments experiments -+expell expel -+expells expels -+experiance experience -+experianced experienced -+expiditions expeditions -+expierence experience -+explaination explanation -+explaning explaining -+explictly explicitly -+exploititive exploitative -+explotation exploitation -+expropiated expropriated -+expropiation expropriation -+exressed expressed -+extemely extremely -+extention extension -+extentions extensions -+extered exerted -+extermist extremist -+extint extinct, extant -+extradiction extradition -+extraterrestial extraterrestrial -+extraterrestials extraterrestrials -+extravagent extravagant -+extrememly extremely -+extremeophile extremophile -+extremly extremely -+extrordinarily extraordinarily -+extrordinary extraordinary -+eyar year, eyas -+eyars years, eyas -+eyasr years, eyas -+faciliate facilitate -+faciliated facilitated -+faciliates facilitates -+facilites facilities -+facillitate facilitate -+facinated fascinated -+facist fascist -+familes families -+familliar familiar -+famoust famous -+fanatism fanaticism -+Farenheit Fahrenheit -+fatc fact -+faught fought -+favoutrable favourable -+feasable feasible -+Febuary February -+Feburary February -+fedreally federally -+femminist feminist -+feromone pheromone -+fertily fertility -+fianite finite -+fianlly finally -+ficticious fictitious -+fictious fictitious -+fidn find -+fiel feel, field, file, phial -+fiels feels, fields, files, phials -+fiercly fiercely -+fightings fighting -+filiament filament -+fimilies families -+finacial financial -+finaly finally -+financialy financially -+firends friends -+firts flirts, first -+fisionable fissionable -+flamable flammable -+flawess flawless -+fleed fled, freed -+Flemmish Flemish -+florescent fluorescent -+flourescent fluorescent -+flourine fluorine -+fluorish flourish -+flourishment flourishing -+follwoing following -+folowing following -+fomed formed -+fomr from, form -+fonetic phonetic -+fontrier fontier -+foootball football -+forbad forbade -+forbiden forbidden -+foreward foreword -+forfiet forfeit -+forhead forehead -+foriegn foreign -+Formalhaut Fomalhaut -+formallize formalize -+formallized formalized -+formaly formally, formerly -+formelly formerly -+formidible formidable -+formost foremost -+forsaw foresaw -+forseeable foreseeable -+fortelling foretelling -+forunner forerunner -+foucs focus -+foudn found -+fougth fought -+foundaries foundries -+foundary foundry -+Foundland Newfoundland -+fourties forties -+fourty forty -+fouth fourth -+foward forward -+Fransiscan Franciscan -+Fransiscans Franciscans -+freind friend -+freindly friendly -+frequentily frequently -+frome from -+fromed formed -+froniter frontier -+fucntion function -+fucntioning functioning -+fufill fulfill -+fufilled fulfilled -+fulfiled fulfilled -+fullfill fulfill -+fullfilled fulfilled -+fundametal fundamental -+fundametals fundamentals -+funguses fungi -+funtion function -+furuther further -+futher further -+futhermore furthermore -+futhroc futhark, futhorc -+gae game, Gael, gale -+galatic galactic -+Galations Galatians -+gallaxies galaxies -+galvinized galvanized -+Gameboy Game Boy -+ganerate generate -+ganes games -+ganster gangster -+garantee guarantee -+garanteed guaranteed -+garantees guarantees -+gardai gardaí -+garnison garrison -+gauarana guaraná -+gaurantee guarantee -+gauranteed guaranteed -+gaurantees guarantees -+gaurd guard, gourd -+gaurentee guarantee -+gaurenteed guaranteed -+gaurentees guarantees -+geneological genealogical -+geneologies genealogies -+geneology genealogy -+generaly generally -+generatting generating -+genialia genitalia -+geographicial geographical -+geometrician geometer -+geometricians geometers -+gerat great -+Ghandi Gandhi -+glamourous glamorous -+glight flight -+gnawwed gnawed -+godess goddess -+godesses goddesses -+Godounov Godunov -+gogin going, Gauguin -+goign going -+gonig going -+Gothenberg Gothenburg -+Gottleib Gottlieb -+gouvener governor -+govement government -+govenment government -+govenrment government -+goverance governance -+goverment government -+govermental governmental -+governer governor -+governmnet government -+govorment government -+govormental governmental -+govornment government -+gracefull graceful -+graet great -+grafitti graffiti -+gramatically grammatically -+grammaticaly grammatically -+grammer grammar -+grat great -+gratuitious gratuitous -+greatful grateful -+greatfully gratefully -+greif grief -+gridles griddles -+gropu group -+grwo grow -+Guaduloupe Guadalupe, Guadeloupe -+Guadulupe Guadalupe, Guadeloupe -+guage gauge -+guarentee guarantee -+guarenteed guaranteed -+guarentees guarantees -+Guatamala Guatemala -+Guatamalan Guatemalan -+guerrila guerrilla -+guerrilas guerrillas -+guidence guidance -+Guilia Giulia -+Guilio Giulio -+Guiness Guinness -+Guiseppe Giuseppe -+gunanine guanine -+gurantee guarantee -+guranteed guaranteed -+gurantees guarantees -+guttaral guttural -+gutteral guttural -+habaeus habeas -+habeus habeas -+Habsbourg Habsburg -+haemorrage haemorrhage -+haev have, heave -+halarious hilarious -+halp help -+hapen happen -+hapened happened -+hapening happening -+happend happened -+happended happened -+happenned happened -+harased harassed -+harases harasses -+harasment harassment -+harasments harassments -+harassement harassment -+harras harass -+harrased harassed -+harrases harasses -+harrasing harassing -+harrasment harassment -+harrasments harassments -+harrassed harassed -+harrasses harassed -+harrassing harassing -+harrassment harassment -+harrassments harassments -+Hatian Haitian -+haviest heaviest -+headquarer headquarter -+headquater headquarter -+headquatered headquartered -+headquaters headquarters -+healthercare healthcare -+heared heard -+heathy healthy -+Heidelburg Heidelberg -+heigher higher -+heirarchy hierarchy -+heiroglyphics hieroglyphics -+helment helmet -+helpfull helpful -+helpped helped -+hemmorhage hemorrhage -+herad heard, Hera -+heridity heredity -+heroe hero -+heros heroes -+hertiage heritage -+hertzs hertz -+hesistant hesitant -+heterogenous heterogeneous -+hieght height -+hierachical hierarchical -+hierachies hierarchies -+hierachy hierarchy -+hierarcical hierarchical -+hierarcy hierarchy -+hieroglph hieroglyph -+hieroglphs hieroglyphs -+higer higher -+higest highest -+higway highway -+hillarious hilarious -+himselv himself -+hinderance hindrance -+hinderence hindrance -+hindrence hindrance -+hipopotamus hippopotamus -+hismelf himself -+histocompatability histocompatibility -+historicians historians -+hitsingles hit singles -+holf hold -+holliday holiday -+homestate home state -+homogeneize homogenize -+homogeneized homogenized -+honory honorary -+horrifing horrifying -+hosited hoisted -+hospitible hospitable -+hounour honour -+housr hours, house -+howver however -+hsitorians historians -+hstory history -+hten then, hen, the -+htere there, here -+htey they -+htikn think -+hting thing -+htink think -+htis this -+humer humor, humour -+humerous humorous, humerus -+huminoid humanoid -+humoural humoral -+humurous humorous -+husban husband -+hvae have -+hvaing having -+hvea have, heave -+hwihc which -+hwile while -+hwole whole -+hydogen hydrogen -+hydropile hydrophile -+hydropilic hydrophilic -+hydropobe hydrophobe -+hydropobic hydrophobic -+hygeine hygiene -+hyjack hijack -+hyjacking hijacking -+hypocracy hypocrisy -+hypocrasy hypocrisy -+hypocricy hypocrisy -+hypocrit hypocrite -+hypocrits hypocrites -+iconclastic iconoclastic -+idaeidae idea -+idaes ideas -+idealogies ideologies -+idealogy ideology -+identicial identical -+identifers identifiers -+ideosyncratic idiosyncratic -+idesa ideas, ides -+idiosyncracy idiosyncrasy -+Ihaca Ithaca -+illegimacy illegitimacy -+illegitmate illegitimate -+illess illness -+illiegal illegal -+illution illusion -+ilness illness -+ilogical illogical -+imagenary imaginary -+imagin imagine -+imaginery imaginary, imagery -+imanent eminent, imminent -+imcomplete incomplete -+imediately immediately -+imense immense -+imigrant emigrant, immigrant -+imigrated emigrated, immigrated -+imigration emigration, immigration -+iminent eminent, imminent, immanent -+immediatley immediately -+immediatly immediately -+immidately immediately -+immidiately immediately -+immitate imitate -+immitated imitated -+immitating imitating -+immitator imitator -+immunosupressant immunosuppressant -+impecabbly impeccably -+impedence impedance -+implamenting implementing -+impliment implement -+implimented implemented -+imploys employs -+importamt important -+impressario impresario -+imprioned imprisoned -+imprisonned imprisoned -+improvision improvisation -+improvments improvements -+inablility inability -+inaccessable inaccessible -+inadiquate inadequate -+inadquate inadequate -+inadvertant inadvertent -+inadvertantly inadvertently -+inagurated inaugurated -+inaguration inauguration -+inappropiate inappropriate -+inaugures inaugurates -+inbalance imbalance -+inbalanced imbalanced -+inbetween between -+incarcirated incarcerated -+incidentially incidentally -+incidently incidentally -+inclreased increased -+includ include -+includng including -+incompatabilities incompatibilities -+incompatability incompatibility -+incompatable incompatible -+incompatablities incompatibilities -+incompatablity incompatibility -+incompatiblities incompatibilities -+incompatiblity incompatibility -+incompetance incompetence -+incompetant incompetent -+incomptable incompatible -+incomptetent incompetent -+inconsistant inconsistent -+incoroporated incorporated -+incorperation incorporation -+incorportaed incorporated -+incorprates incorporates -+incorruptable incorruptible -+incramentally incrementally -+increadible incredible -+incredable incredible -+inctroduce introduce -+inctroduced introduced -+incuding including -+incunabla incunabula -+indefinately indefinitely -+indefineable undefinable -+indefinitly indefinitely -+indentical identical -+indepedantly independently -+indepedence independence -+independance independence -+independant independent -+independantly independently -+independece independence -+independendet independent -+indespensable indispensable -+indespensible indispensable -+indictement indictment -+indigineous indigenous -+indipendence independence -+indipendent independent -+indipendently independently -+indispensible indispensable -+indisputible indisputable -+indisputibly indisputably -+indite indict -+individualy individually -+indpendent independent -+indpendently independently -+indulgue indulge -+indutrial industrial -+indviduals individuals -+inefficienty inefficiently -+inevatible inevitable -+inevitible inevitable -+inevititably inevitably -+infalability infallibility -+infallable infallible -+infectuous infectious -+infered inferred -+infilitrate infiltrate -+infilitrated infiltrated -+infilitration infiltration -+infinit infinite -+inflamation inflammation -+influencial influential -+influented influenced -+infomation information -+informtion information -+infrantryman infantryman -+infrigement infringement -+ingenius ingenious -+ingreediants ingredients -+inhabitans inhabitants -+inherantly inherently -+inheritage heritage, inheritance -+inheritence inheritance -+inital initial -+initally initially -+initation initiation -+initiaitive initiative -+inlcuding including -+inmigrant immigrant -+inmigrants immigrants -+innoculated inoculated -+inocence innocence -+inofficial unofficial -+inot into -+inpeach impeach -+inpending impending -+inpenetrable impenetrable -+inpolite impolite -+inprisonment imprisonment -+inproving improving -+insectiverous insectivorous -+insensative insensitive -+inseperable inseparable -+insistance insistence -+insitution institution -+insitutions institutions -+inspite in spite, inspire -+instade instead -+instatance instance -+institue institute -+instuction instruction -+instuments instruments -+instutionalized institutionalized -+instutions institutions, intuitions -+insurence insurance -+intelectual intellectual -+inteligence intelligence -+inteligent intelligent -+intenational international -+intented intended, indented -+intepretation interpretation -+intepretator interpretor -+interational international -+interbread interbreed, interbred -+interchangable interchangeable -+interchangably interchangeably -+intercontinential intercontinental -+intercontinetal intercontinental -+intered interred, interned -+interelated interrelated -+interferance interference -+interfereing interfering -+intergrated integrated -+intergration integration -+interm interim -+internation international -+interpet interpret -+interrim interim -+interrugum interregnum -+intertaining entertaining -+interupt interrupt -+intervines intervenes -+intevene intervene -+intial initial -+intially initially -+intrduced introduced -+intrest interest -+introdued introduced -+intruduced introduced -+intrument instrument -+intrumental instrumental -+intruments instruments -+intrusted entrusted -+intutive intuitive -+intutively intuitively -+inudstry industry -+inumerable enumerable, innumerable -+inventer inventor -+invertibrates invertebrates -+investingate investigate -+involvment involvement -+irelevent irrelevant -+iresistable irresistible -+iresistably irresistibly -+iresistible irresistible -+iresistibly irresistibly -+iritable irritable -+iritated irritated -+ironicly ironically -+irregardless regardless -+irrelevent irrelevant -+irreplacable irreplaceable -+irresistable irresistible -+irresistably irresistibly -+Israelies Israelis -+issueing issuing -+itnroduced introduced -+iunior junior -+iwll will -+iwth with -+Janurary January -+Januray January -+Japanes Japanese -+jeapardy jeopardy -+jewllery jewellery -+Johanine Johannine -+jorunal journal -+Jospeh Joseph -+jouney journey -+journied journeyed -+journies journeys -+jstu just -+jsut just -+Juadaism Judaism -+Juadism Judaism -+judical judicial -+judisuary judiciary -+juducial judicial -+juristiction jurisdiction -+juristictions jurisdictions -+kindergarden kindergarten -+klenex kleenex -+knifes knives -+knive knife -+knowlege knowledge -+knowlegeable knowledgeable -+knwo know -+knwos knows -+konw know -+konws knows -+kwno know -+labatory lavatory, laboratory -+labled labelled, labeled -+labratory laboratory -+laguage language -+laguages languages -+laparascopic laparoscopic -+larg large -+largst largest -+larrry larry -+lastr last -+lattitude latitude -+launchs launch, launches -+launhed launched -+lavae larvae -+layed laid -+lazyness laziness -+leage league -+leanr lean, learn, leaner -+leathal lethal -+lefted left -+legitamate legitimate -+legitmate legitimate -+leibnitz leibniz -+lenght length -+leran learn -+lerans learns -+leutenant lieutenant -+levetate levitate -+levetated levitated -+levetates levitates -+levetating levitating -+levle level -+liasion liaison -+liason liaison -+liasons liaisons -+libary library -+libell libel -+libguistic linguistic -+libguistics linguistics -+libitarianisn libertarianism -+lible libel, liable -+lieing lying -+liek like -+liekd liked -+liesure leisure -+lieuenant lieutenant -+lieved lived -+liftime lifetime -+lightyear light year -+lightyears light years -+likelyhood likelihood -+linnaena linnaean -+lippizaner lipizzaner -+liquify liquefy -+liscense license, licence -+lisence license, licence -+lisense license, licence -+listners listeners -+litature literature -+literaly literally -+literture literature -+littel little -+litterally literally -+liuke like -+livley lively -+lmits limits -+loev love -+lonelyness loneliness -+longitudonal longitudinal -+lonley lonely -+lonly lonely, only -+loosing losing -+lotharingen lothringen -+lsat last -+lukid likud -+lveo love -+lvoe love -+Lybia Libya -+maching machine, marching, matching -+mackeral mackerel -+magasine magazine -+magizine magazine -+magisine magazine -+magincian magician -+magnificient magnificent -+magolia magnolia -+mailny mainly -+maintainance maintenance -+maintainence maintenance -+maintance maintenance -+maintenence maintenance -+maintinaing maintaining -+maintioned mentioned -+majoroty majority -+maked marked, made -+makse makes -+Malcom Malcolm -+maltesian Maltese -+mamal mammal -+mamalian mammalian -+managable manageable, manageably -+managment management -+maneouvre manoeuvre -+maneouvred manoeuvred -+maneouvres manoeuvres -+maneouvring manoeuvring -+manisfestations manifestations -+manoeuverability maneuverability -+manouver maneuver, manoeuvre -+manouverability maneuverability, manoeuvrability, manoeuverability -+manouverable maneuverable, manoeuvrable -+manouvers maneuvers, manoeuvres -+mantained maintained -+manuever maneuver, manoeuvre -+manuevers maneuvers, manoeuvres -+manufacturedd manufactured -+manufature manufacture -+manufatured manufactured -+manufaturing manufacturing -+manuver maneuver -+mariage marriage -+marjority majority -+markes marks -+marketting marketing -+marmelade marmalade -+marrage marriage -+marraige marriage -+marrtyred martyred -+marryied married -+Massachussets Massachusetts -+Massachussetts Massachusetts -+massmedia mass media -+masterbation masturbation -+mataphysical metaphysical -+materalists materialist -+mathamatics mathematics -+mathematican mathematician -+mathematicas mathematics -+matheticians mathematicians -+mathmatically mathematically -+mathmatician mathematician -+mathmaticians mathematicians -+mccarthyst mccarthyist -+mchanics mechanics -+meaing meaning -+meaninng meaning -+mear wear, mere, mare -+mechandise merchandise -+medacine medicine -+medeival medieval -+medevial medieval -+mediciney mediciny -+medievel medieval -+mediterainnean mediterranean -+Mediteranean Mediterranean -+meerkrat meerkat -+melieux milieux -+membranaphone membranophone -+memeber member -+menally mentally -+meranda veranda, Miranda -+mercentile mercantile -+messanger messenger -+messenging messaging -+metalic metallic -+metalurgic metallurgic -+metalurgical metallurgical -+metalurgy metallurgy -+metamorphysis metamorphosis -+metaphoricial metaphorical -+meterologist meteorologist -+meterology meteorology -+methaphor metaphor -+methaphors metaphors -+Michagan Michigan -+micoscopy microscopy -+midwifes midwives -+mileau milieu -+milennia millennia -+milennium millennium -+mileu milieu -+miliary military -+miligram milligram -+milion million -+miliraty military -+millenia millennia -+millenial millennial -+millenialism millennialism -+millenium millennium -+millepede millipede -+millioniare millionaire -+millitant militant -+millitary military -+millon million -+miltary military -+minature miniature -+minerial mineral -+ministery ministry -+minsitry ministry -+minstries ministries -+minstry ministry -+minumum minimum -+mirrorred mirrored -+miscelaneous miscellaneous -+miscellanious miscellaneous -+miscellanous miscellaneous -+mischeivous mischievous -+mischevious mischievous -+mischievious mischievous -+misdameanor misdemeanor -+misdameanors misdemeanors -+misdemenor misdemeanor -+misdemenors misdemeanors -+misfourtunes misfortunes -+misile missile -+Misouri Missouri -+mispell misspell -+mispelled misspelled -+mispelling misspelling -+missen mizzen -+Missisipi Mississippi -+Missisippi Mississippi -+missle missile -+missonary missionary -+misterious mysterious -+mistery mystery -+misteryous mysterious -+mkae make -+mkaes makes -+mkaing making -+mkea make -+moderm modem -+modle model -+moent moment -+moeny money -+mohammedans muslims -+moleclues molecules -+momento memento -+monestaries monasteries -+monestary monastery, monetary -+monickers monikers -+monolite monolithic -+Monserrat Montserrat -+montains mountains -+montanous mountainous -+Montnana Montana -+monts months -+montypic monotypic -+moreso more, more so -+morgage mortgage -+Morisette Morissette -+Morrisette Morissette -+morroccan moroccan -+morrocco morocco -+morroco morocco -+mortage mortgage -+mosture moisture -+motiviated motivated -+mounth month -+movei movie -+movment movement -+mroe more -+mucuous mucous -+muder murder -+mudering murdering -+muhammadan muslim -+multicultralism multiculturalism -+multipled multiplied -+multiplers multipliers -+munbers numbers -+muncipalities municipalities -+muncipality municipality -+munnicipality municipality -+muscels mussels, muscles -+muscial musical -+muscician musician -+muscicians musicians -+mutiliated mutilated -+myraid myriad -+mysef myself -+mysogynist misogynist -+mysogyny misogyny -+mysterous mysterious -+Mythraic Mithraic -+naieve naive -+Naploeon Napoleon -+Napolean Napoleon -+Napoleonian Napoleonic -+naturaly naturally -+naturely naturally -+naturual natural -+naturually naturally -+Nazereth Nazareth -+neccesarily necessarily -+neccesary necessary -+neccessarily necessarily -+neccessary necessary -+neccessities necessities -+necesarily necessarily -+necesary necessary -+necessiate necessitate -+neglible negligible -+negligable negligible -+negociate negotiate -+negociation negotiation -+negociations negotiations -+negotation negotiation -+neice niece, nice -+neigborhood neighborhood -+neigbour neighbour, neighbor -+neigbourhood neighbourhood -+neigbouring neighbouring, neighboring -+neigbours neighbours, neighbors -+neolitic neolithic -+nessasarily necessarily -+nessecary necessary -+nestin nesting -+neverthless nevertheless -+newletters newsletters -+nickle nickel -+nightime nighttime -+nineth ninth -+ninteenth nineteenth -+ninties 1990s -+ninty ninety -+nkow know -+nkwo know -+nmae name -+noncombatents noncombatants -+nonsence nonsense -+nontheless nonetheless -+noone no one -+norhern northern -+northen northern -+northereastern northeastern -+notabley notably -+noteable notable -+noteably notably -+noteriety notoriety -+noth north -+nothern northern -+noticable noticeable -+noticably noticeably -+noticeing noticing -+noticible noticeable -+notwhithstanding notwithstanding -+noveau nouveau -+Novermber November -+nowdays nowadays -+nowe now -+nto not -+nucular nuclear -+nuculear nuclear -+nuisanse nuisance -+Nullabour Nullarbor -+numberous numerous -+Nuremburg Nuremberg -+nusance nuisance -+nutritent nutrient -+nutritents nutrients -+nuturing nurturing -+obediance obedience -+obediant obedient -+obession obsession -+obssessed obsessed -+obstacal obstacle -+obstancles obstacles -+obstruced obstructed -+ocasion occasion -+ocasional occasional -+ocasionally occasionally -+ocasionaly occasionally -+ocasioned occasioned -+ocasions occasions -+ocassion occasion -+ocassional occasional -+ocassionally occasionally -+ocassionaly occasionally -+ocassioned occasioned -+ocassions occasions -+occaison occasion -+occassion occasion -+occassional occasional -+occassionally occasionally -+occassionaly occasionally -+occassioned occasioned -+occassions occasions -+occationally occasionally -+occour occur -+occurance occurrence -+occurances occurrences -+occured occurred -+occurence occurrence -+occurences occurrences -+occuring occurring -+occurr occur -+occurrance occurrence -+occurrances occurrences -+octohedra octahedra -+octohedral octahedral -+octohedron octahedron -+ocuntries countries -+ocuntry country -+ocurr occur -+ocurrance occurrence -+ocurred occurred -+ocurrence occurrence -+offcers officers -+offcially officially -+offereings offerings -+offical official -+offically officially -+officals officials -+officaly officially -+officialy officially -+offred offered -+oftenly often -+oging going, ogling -+olther other -+omision omission -+omited omitted -+omiting omitting -+omlette omelette -+ommision omission -+ommited omitted -+ommiting omitting -+ommitted omitted -+ommitting omitting -+omniverous omnivorous -+omniverously omnivorously -+omre more -+onot note, not -+onyl only -+openess openness -+oponent opponent -+oportunity opportunity -+opose oppose -+oposite opposite -+oposition opposition -+oppenly openly -+oppinion opinion -+opponant opponent -+oppononent opponent -+oppositition opposition -+oppossed opposed -+opprotunity opportunity -+opression oppression -+opressive oppressive -+opthalmic ophthalmic -+opthalmologist ophthalmologist -+opthalmology ophthalmology -+opthamologist ophthalmologist -+optmizations optimizations -+optomism optimism -+orded ordered -+organim organism -+organistion organisation -+organiztion organization -+orgin origin, organ -+orginal original -+orginally originally -+orginize organise -+oridinarily ordinarily -+origanaly originally -+originall original, originally -+originaly originally -+originially originally -+originnally originally -+origional original -+orignally originally -+orignially originally -+otehr other -+otherwordly otherworldly -+oublisher publisher -+ouevre oeuvre -+oustanding outstanding -+overshaddowed overshadowed -+overthere over there -+overwelming overwhelming -+overwheliming overwhelming -+owrk work -+owudl would -+oxigen oxygen -+oximoron oxymoron -+paide paid -+paitience patience -+palce place, palace -+paleolitic paleolithic -+paliamentarian parliamentarian -+Palistian Palestinian -+Palistinian Palestinian -+Palistinians Palestinians -+pallete palette -+pamflet pamphlet -+pamplet pamphlet -+pantomine pantomime -+Papanicalou Papanicolaou -+paralel parallel -+paralell parallel -+paralelly parallelly -+paralely parallelly -+parallely parallelly -+paranthesis parenthesis -+paraphenalia paraphernalia -+parellels parallels -+parisitic parasitic -+parituclar particular -+parliment parliament -+parrakeets parakeets -+parralel parallel -+parrallel parallel -+parrallell parallel -+parrallelly parallelly -+parrallely parallelly -+partialy partially -+particually particularly -+particualr particular -+particuarly particularly -+particularily particularly -+particulary particularly -+pary party -+pased passed -+pasengers passengers -+passerbys passersby -+pasttime pastime -+pastural pastoral -+paticular particular -+pattented patented -+pavillion pavilion -+payed paid -+pblisher publisher -+pbulisher publisher -+peacefuland peaceful and -+peageant pageant -+peaple people -+peaples peoples -+peculure peculiar -+pedestrain pedestrian -+peformed performed -+peice piece -+Peloponnes Peloponnesus -+penatly penalty -+penerator penetrator -+penisula peninsula -+penisular peninsular -+penninsula peninsula -+penninsular peninsular -+pennisula peninsula -+Pennyslvania Pennsylvania -+pensle pencil -+pensinula peninsula -+peom poem -+peoms poems -+peopel people -+peopels peoples -+peotry poetry -+perade parade -+percepted perceived -+percieve perceive -+percieved perceived -+pereguine peregrine -+perenially perennially -+peretrator perpetrator -+perfomance performance -+perfomers performers -+performence performance -+performes performed, performs -+perhasp perhaps -+perheaps perhaps -+perhpas perhaps -+peripathetic peripatetic -+peristent persistent -+perjery perjury -+perjorative pejorative -+permanant permanent -+permenant permanent -+permenantly permanently -+permissable permissible -+perogative prerogative -+peronal personal -+perpertrated perpetrated -+perosnality personality -+perphas perhaps -+perpindicular perpendicular -+persan person -+perseverence perseverance -+persistance persistence -+persistant persistent -+personel personnel, personal -+personell personnel -+personnell personnel -+persuded persuaded -+persue pursue -+persued pursued -+persuing pursuing -+persuit pursuit -+persuits pursuits -+pertubation perturbation -+pertubations perturbations -+pessiary pessary -+petetion petition -+Pharoah Pharaoh -+phenomenom phenomenon -+phenomenonal phenomenal -+phenomenonly phenomenally -+phenomonenon phenomenon -+phenomonon phenomenon -+phenonmena phenomena -+Philipines Philippines -+philisopher philosopher -+philisophical philosophical -+philisophy philosophy -+Phillipine Philippine -+Phillipines Philippines -+Phillippines Philippines -+phillosophically philosophically -+philospher philosopher -+philosphies philosophies -+philosphy philosophy -+Phonecian Phoenecian -+phongraph phonograph -+phylosophical philosophical -+physicaly physically -+piblisher publisher -+pich pitch -+pilgrimmage pilgrimage -+pilgrimmages pilgrimages -+pinapple pineapple -+pinnaple pineapple -+pinoneered pioneered -+plagarism plagiarism -+planation plantation -+planed planned -+plantiff plaintiff -+plateu plateau -+plausable plausible -+playright playwright -+playwrite playwright -+playwrites playwrights -+pleasent pleasant -+plebicite plebiscite -+plesant pleasant -+poenis penis -+poeoples peoples -+poety poetry -+poisin poison -+polical political -+polinator pollinator -+polinators pollinators -+politican politician -+politicans politicians -+poltical political -+polute pollute -+poluted polluted -+polutes pollutes -+poluting polluting -+polution pollution -+polyphonyic polyphonic -+polysaccaride polysaccharide -+polysaccharid polysaccharide -+pomegranite pomegranate -+pomotion promotion -+poportional proportional -+popoulation population -+popularaty popularity -+populare popular -+populer popular -+porshan portion -+porshon portion -+portait portrait -+portayed portrayed -+portraing portraying -+Portugese Portuguese -+portuguease portuguese -+portugues Portuguese -+posess possess -+posessed possessed -+posesses possesses -+posessing possessing -+posession possession -+posessions possessions -+posion poison -+positon position, positron -+possable possible -+possably possibly -+posseses possesses -+possesing possessing -+possesion possession -+possessess possesses -+possibile possible -+possibilty possibility -+possiblility possibility -+possiblilty possibility -+possiblities possibilities -+possiblity possibility -+possition position -+Postdam Potsdam -+posthomous posthumous -+postion position -+postive positive -+potatos potatoes -+potrait portrait -+potrayed portrayed -+poulations populations -+poverful powerful -+poweful powerful -+powerfull powerful -+ppublisher publisher -+practial practical -+practially practically -+practicaly practically -+practicioner practitioner -+practicioners practitioners -+practicly practically -+practioner practitioner -+practioners practitioners -+prairy prairie -+prarie prairie -+praries prairies -+pratice practice -+preample preamble -+precedessor predecessor -+preceed precede -+preceeded preceded -+preceeding preceding -+preceeds precedes -+precentage percentage -+precice precise -+precisly precisely -+precurser precursor -+predecesors predecessors -+predicatble predictable -+predicitons predictions -+predomiantly predominately -+prefered preferred -+prefering preferring -+preferrably preferably -+pregancies pregnancies -+preiod period -+preliferation proliferation -+premeire premiere -+premeired premiered -+premillenial premillennial -+preminence preeminence -+premission permission -+Premonasterians Premonstratensians -+preocupation preoccupation -+prepair prepare -+prepartion preparation -+prepatory preparatory -+preperation preparation -+preperations preparations -+preriod period -+presedential presidential -+presense presence -+presidenital presidential -+presidental presidential -+presitgious prestigious -+prespective perspective -+prestigeous prestigious -+prestigous prestigious -+presumabely presumably -+presumibly presumably -+pretection protection -+prevelant prevalent -+preverse perverse -+previvous previous -+pricipal principal -+priciple principle -+priestood priesthood -+primarly primarily -+primative primitive -+primatively primitively -+primatives primitives -+primordal primordial -+principlaity principality -+principaly principality -+principial principal -+principly principally -+prinicipal principal -+privalege privilege -+privaleges privileges -+priveledges privileges -+privelege privilege -+priveleged privileged -+priveleges privileges -+privelige privilege -+priveliged privileged -+priveliges privileges -+privelleges privileges -+privilage privilege -+priviledge privilege -+priviledges privileges -+privledge privilege -+privte private -+probabilaty probability -+probablistic probabilistic -+probablly probably -+probalibity probability -+probaly probably -+probelm problem -+proccess process -+proccessing processing -+procede proceed, precede -+proceded proceeded, preceded -+procedes proceeds, precedes -+procedger procedure -+proceding proceeding, preceding -+procedings proceedings -+proceedure procedure -+proces process -+processer processor -+proclaimation proclamation -+proclamed proclaimed -+proclaming proclaiming -+proclomation proclamation -+profesion profusion, profession -+profesor professor -+professer professor -+proffesed professed -+proffesion profession -+proffesional professional -+proffesor professor -+proffession profession -+proffessional professional -+proffessor professor -+profilic prolific -+progessed progressed -+progidy prodigy -+programable programmable -+progrom pogrom, program -+progroms pogroms, programs -+prohabition prohibition -+prologomena prolegomena -+prominance prominence -+prominant prominent -+prominantly prominently -+prominately prominently, predominately -+promiscous promiscuous -+promotted promoted -+pronomial pronominal -+pronouced pronounced -+pronounched pronounced -+pronounciation pronunciation -+proove prove -+prooved proved -+prophacy prophecy -+propietary proprietary -+propmted prompted -+propoganda propaganda -+propogate propagate -+propogates propagates -+propogation propagation -+propostion proposition -+propotions proportions -+propper proper -+propperly properly -+proprietory proprietary -+proseletyzing proselytizing -+protaganist protagonist -+protaganists protagonists -+protocal protocol -+protoganist protagonist -+protrayed portrayed -+protruberance protuberance -+protruberances protuberances -+prouncements pronouncements -+provacative provocative -+provded provided -+provicial provincial -+provinicial provincial -+provisiosn provision -+provisonal provisional -+proximty proximity -+pseudononymous pseudonymous -+pseudonyn pseudonym -+psuedo pseudo -+psycology psychology -+psyhic psychic -+pubilsher publisher -+pubisher publisher -+publiaher publisher -+publically publicly -+publicaly publicly -+publicher publisher -+publihser publisher -+publisehr publisher -+publiser publisher -+publisger publisher -+publisheed published -+publisherr publisher -+publishher publisher -+publishor publisher -+publishre publisher -+publissher publisher -+publlisher publisher -+publsiher publisher -+publusher publisher -+puchasing purchasing -+Pucini Puccini -+Puertorrican Puerto Rican -+Puertorricans Puerto Ricans -+pulisher publisher -+pumkin pumpkin -+puplisher publisher -+puritannical puritanical -+purposedly purposely -+purpotedly purportedly -+pursuade persuade -+pursuaded persuaded -+pursuades persuades -+pususading persuading -+puting putting -+pwoer power -+pyscic psychic -+qtuie quite, quiet -+quantaty quantity -+quantitiy quantity -+quarantaine quarantine -+Queenland Queensland -+questonable questionable -+quicklyu quickly -+quinessential quintessential -+quitted quit -+quizes quizzes -+qutie quite, quiet -+rabinnical rabbinical -+racaus raucous -+radiactive radioactive -+radify ratify -+raelly really -+rarified rarefied -+reaccurring recurring -+reacing reaching -+reacll recall -+readmition readmission -+realitvely relatively -+realsitic realistic -+realtions relations -+realy really -+realyl really -+reasearch research -+rebiulding rebuilding -+rebllions rebellions -+rebounce rebound -+reccomend recommend -+reccomendations recommendations -+reccomended recommended -+reccomending recommending -+reccommend recommend -+reccommended recommended -+reccommending recommending -+reccuring recurring -+receeded receded -+receeding receding -+receivedfrom received from -+recepient recipient -+recepients recipients -+receving receiving -+rechargable rechargeable -+reched reached -+recide reside -+recided resided -+recident resident -+recidents residents -+reciding residing -+reciepents recipients -+reciept receipt -+recieve receive -+recieved received -+reciever receiver -+recievers receivers -+recieves receives -+recieving receiving -+recipiant recipient -+recipiants recipients -+recived received -+recivership receivership -+recogise recognise -+recogize recognize -+recomend recommend -+recomended recommended -+recomending recommending -+recomends recommends -+recommedations recommendations -+recompence recompense -+reconaissance reconnaissance -+reconcilation reconciliation -+reconized recognized -+reconnaisance reconnaissance -+reconnaissence reconnaissance -+recontructed reconstructed -+recordproducer record producer -+recquired required -+recrational recreational -+recrod record -+recuiting recruiting -+recuring recurring -+recurrance recurrence -+rediculous ridiculous -+reedeming redeeming -+reenforced reinforced -+refect reflect -+refedendum referendum -+referal referral -+referece reference -+refereces references -+refered referred -+referemce reference -+referemces references -+referencs references -+referenece reference -+refereneced referenced -+refereneces references -+referiang referring -+refering referring -+refernce reference, references -+refernces references -+referrence reference -+referrences references -+referrs refers -+reffered referred -+refference reference -+reffering referring -+refrence reference -+refrences references -+refrers refers -+refridgeration refrigeration -+refridgerator refrigerator -+refromist reformist -+refusla refusal -+regardes regards -+regluar regular -+reguarly regularly -+regulaion regulation -+regulaotrs regulators -+regularily regularly -+rehersal rehearsal -+reicarnation reincarnation -+reigining reigning -+reknown renown -+reknowned renowned -+rela real -+relaly really -+relatiopnship relationship -+relativly relatively -+relected reelected -+releive relieve -+releived relieved -+releiver reliever -+releses releases -+relevence relevance -+relevent relevant -+reliablity reliability -+relient reliant -+religeous religious -+religous religious -+religously religiously -+relinqushment relinquishment -+relitavely relatively -+relized realised, realized -+relpacement replacement -+remaing remaining -+remeber remember -+rememberable memorable -+rememberance remembrance -+remembrence remembrance -+remenant remnant -+remenicent reminiscent -+reminent remnant -+reminescent reminiscent -+reminscent reminiscent -+reminsicent reminiscent -+rendevous rendezvous -+rendezous rendezvous -+renedered rende -+renewl renewal -+rennovate renovate -+rennovated renovated -+rennovating renovating -+rennovation renovation -+rentors renters -+reoccurrence recurrence -+reorganision reorganisation -+repatition repetition, repartition -+repblic republic -+repblican republican -+repblicans republicans -+repblics republics -+repectively respectively -+repeition repetition -+repentence repentance -+repentent repentant -+repeteadly repeatedly -+repetion repetition -+repid rapid -+reponse response -+reponsible responsible -+reportadly reportedly -+represantative representative -+representive representative -+representives representatives -+reproducable reproducible -+reprtoire repertoire -+repsectively respectively -+reptition repetition -+repubic republic -+repubican republican -+repubicans republicans -+repubics republics -+republi republic -+republian republican -+republians republicans -+republis republics -+repulic republic -+repulican republican -+repulicans republicans -+repulics republics -+requirment requirement -+requred required -+resaurant restaurant -+resembelance resemblance -+resembes resembles -+resemblence resemblance -+resevoir reservoir -+residental residential -+resignement resignment -+resistable resistible -+resistence resistance -+resistent resistant -+respectivly respectively -+responce response -+responibilities responsibilities -+responisble responsible -+responnsibilty responsibility -+responsability responsibility -+responsibile responsible -+responsibilites responsibilities -+responsiblities responsibilities -+responsiblity responsibility -+ressemblance resemblance -+ressemble resemble -+ressembled resembled -+ressemblence resemblance -+ressembling resembling -+resssurecting resurrecting -+ressurect resurrect -+ressurected resurrected -+ressurection resurrection -+ressurrection resurrection -+restarant restaurant -+restarants restaurants -+restaraunt restaurant -+restaraunteur restaurateur -+restaraunteurs restaurateurs -+restaraunts restaurants -+restauranteurs restaurateurs -+restauration restoration -+restauraunt restaurant -+resteraunt restaurant -+resteraunts restaurants -+resticted restricted -+restraunt restraint, restaurant -+resturant restaurant -+resturants restaurants -+resturaunt restaurant -+resturaunts restaurants -+resurecting resurrecting -+retalitated retaliated -+retalitation retaliation -+retreive retrieve -+returnd returned -+revaluated reevaluated -+reveiw review -+reveral reversal -+reversable reversible -+revolutionar revolutionary -+rewitten rewritten -+rewriet rewrite -+rference reference -+rferences references -+rhymme rhyme -+rhythem rhythm -+rhythim rhythm -+rhytmic rhythmic -+rigeur rigueur, rigour, rigor -+rigourous rigorous -+rininging ringing -+rised raised, rose -+Rockerfeller Rockefeller -+rococco rococo -+rocord record -+roomate roommate -+rougly roughly -+rucuperate recuperate -+rudimentatry rudimentary -+rulle rule -+runing running -+runnung running -+russina Russian -+Russion Russian -+rwite write -+rythem rhythm -+rythim rhythm -+rythm rhythm -+rythmic rhythmic -+rythyms rhythms -+sacrafice sacrifice -+sacreligious sacrilegious -+Sacremento Sacramento -+sacrifical sacrificial -+saftey safety -+safty safety -+salery salary -+sanctionning sanctioning -+sandwhich sandwich -+Sanhedrim Sanhedrin -+santioned sanctioned -+sargant sergeant -+sargeant sergeant -+sasy says, sassy -+satelite satellite -+satelites satellites -+Saterday Saturday -+Saterdays Saturdays -+satisfactority satisfactorily -+satric satiric -+satrical satirical -+satrically satirically -+sattelite satellite -+sattelites satellites -+saught sought -+saveing saving -+saxaphone saxophone -+scaleable scalable -+scandanavia Scandinavia -+scaricity scarcity -+scavanged scavenged -+schedual schedule -+scholarhip scholarship -+scholarstic scholastic, scholarly -+scientfic scientific -+scientifc scientific -+scientis scientist -+scince science -+scinece science -+scirpt script -+scoll scroll -+screenwrighter screenwriter -+scrutinity scrutiny -+scuptures sculptures -+seach search -+seached searched -+seaches searches -+secceeded seceded, succeeded -+seceed succeed, secede -+seceeded succeeded, seceded -+secratary secretary -+secretery secretary -+sedereal sidereal -+seeked sought -+segementation segmentation -+seguoys segues -+seige siege -+seing seeing -+seinor senior -+seldomly seldom -+senarios scenarios -+sence sense, since -+senstive sensitive -+sensure censure -+seperate separate -+seperated separated -+seperately separately -+seperates separates -+seperating separating -+seperation separation -+seperatism separatism -+seperatist separatist -+sepina subpoena -+sepulchure sepulchre, sepulcher -+sepulcre sepulchre, sepulcher -+sergent sergeant -+settelement settlement -+settlment settlement -+severeal several -+severley severely -+severly severely -+sevice service -+shadasloo shadaloo -+shaddow shadow -+shadoloo shadaloo -+shamen shaman, shamans -+sheat sheath, sheet, cheat -+sheild shield -+sherif sheriff -+shineing shining -+shiped shipped -+shiping shipping -+shopkeeepers shopkeepers -+shorly shortly -+shortwhile short while -+shoudl should -+shouldnt should not -+shreak shriek -+shrinked shrunk -+sicne since -+sideral sidereal -+sieze seize, size -+siezed seized, sized -+siezing seizing, sizing -+siezure seizure -+siezures seizures -+siginificant significant -+signficant significant -+signficiant significant -+signfies signifies -+signifantly significantly -+significently significantly -+signifigant significant -+signifigantly significantly -+signitories signatories -+signitory signatory -+similarily similarly -+similiar similar -+similiarity similarity -+similiarly similarly -+simmilar similar -+simpley simply -+simplier simpler -+simultanous simultaneous -+simultanously simultaneously -+sincerley sincerely -+singsog singsong -+sinse sines, since -+Sionist Zionist -+Sionists Zionists -+Sixtin Sistine -+Skagerak Skagerrak -+skateing skating -+slaugterhouses slaughterhouses -+slighly slightly -+slippy slippery -+slowy slowly -+smae same -+smealting smelting -+smoe some -+sneeks sneaks -+snese sneeze -+socalism socialism -+socities societies -+soem some -+sofware software -+sohw show -+soilders soldiers -+solatary solitary -+soley solely -+soliders soldiers -+soliliquy soliloquy -+soluable soluble -+somene someone -+somtimes sometimes -+somwhere somewhere -+sophicated sophisticated -+sophmore sophomore -+sorceror sorcerer -+sorrounding surrounding -+sotry story -+sotyr satyr, story -+soudn sound -+soudns sounds -+sould could, should, sold, soul -+sountrack soundtrack -+sourth south -+sourthern southern -+souvenier souvenir -+souveniers souvenirs -+soveits soviets -+sovereignity sovereignty -+soverign sovereign -+soverignity sovereignty -+soverignty sovereignty -+spainish Spanish -+speach speech -+specfic specific -+speciallized specialised, specialized -+specif specific, specify -+specifiying specifying -+speciman specimen -+spectauclar spectacular -+spectaulars spectaculars -+spects aspects, expects -+spectum spectrum -+speices species -+spendour splendour -+spermatozoan spermatozoon -+spoace space -+sponser sponsor -+sponsered sponsored -+spontanous spontaneous -+sponzored sponsored -+spoonfulls spoonfuls -+sppeches speeches -+spreaded spread -+sprech speech -+spred spread -+spriritual spiritual -+spritual spiritual -+sqaure square -+stablility stability -+stainlees stainless -+staion station -+standars standards -+stange strange -+startegic strategic -+startegies strategies -+startegy strategy -+stateman statesman -+statememts statements -+statment statement -+steriods steroids -+sterotypes stereotypes -+stilus stylus -+stingent stringent -+stiring stirring -+stirrs stirs -+stlye style -+stomache stomach -+stong strong -+stopry story -+storeis stories -+storise stories -+stornegst strongest -+stoyr story -+stpo stop -+stradegies strategies -+stradegy strategy -+strat start, strata -+stratagically strategically -+streemlining streamlining -+stregth strength -+strenghen strengthen -+strenghened strengthened -+strenghening strengthening -+strenght strength -+strenghten strengthen -+strenghtened strengthened -+strenghtening strengthening -+strengtened strengthened -+strenous strenuous -+strictist strictest -+strikely strikingly -+strnad strand -+stroy story, destroy -+structual structural -+stubborness stubbornness -+stucture structure -+stuctured structured -+studdy study -+studing studying -+stuggling struggling -+sturcture structure -+subcatagories subcategories -+subcatagory subcategory -+subconsiously subconsciously -+subdivisio subdivision -+subjudgation subjugation -+submachne submachine -+subpecies subspecies -+subsidary subsidiary -+subsiduary subsidiary -+subsquent subsequent -+subsquently subsequently -+substace substance -+substancial substantial -+substatial substantial -+substituded substituted -+substract subtract -+substracted subtracted -+substracting subtracting -+substraction subtraction -+substracts subtracts -+subtances substances -+subterranian subterranean -+suburburban suburban -+succceeded succeeded -+succcesses successes -+succedded succeeded -+succeded succeeded -+succeds succeeds -+succesful successful -+succesfully successfully -+succesfuly successfully -+succesion succession -+succesive successive -+successfull successful -+successully successfully -+succsess success -+succsessfull successful -+suceed succeed -+suceeded succeeded -+suceeding succeeding -+suceeds succeeds -+sucesful successful -+sucesfully successfully -+sucesfuly successfully -+sucesion succession -+sucess success -+sucesses successes -+sucessful successful -+sucessfull successful -+sucessfully successfully -+sucessfuly successfully -+sucession succession -+sucessive successive -+sucessor successor -+sucessot successor -+sucide suicide -+sucidial suicidal -+sudent student -+sudents students -+sufferage suffrage -+sufferred suffered -+sufferring suffering -+sufficent sufficient -+sufficently sufficiently -+sumary summary -+sunglases sunglasses -+suop soup -+superceeded superseded -+superintendant superintendent -+suphisticated sophisticated -+suplimented supplemented -+supose suppose -+suposed supposed -+suposedly supposedly -+suposes supposes -+suposing supposing -+supplamented supplemented -+suppliementing supplementing -+suppoed supposed -+supposingly supposedly -+suppy supply -+suprassing surpassing -+supress suppress -+supressed suppressed -+supresses suppresses -+supressing suppressing -+suprise surprise -+suprised surprised -+suprising surprising -+suprisingly surprisingly -+suprize surprise -+suprized surprised -+suprizing surprising -+suprizingly surprisingly -+surfce surface -+surley surly, surely -+suround surround -+surounded surrounded -+surounding surrounding -+suroundings surroundings -+surounds surrounds -+surplanted supplanted -+surpress suppress -+surpressed suppressed -+surprize surprise -+surprized surprised -+surprizing surprising -+surprizingly surprisingly -+surrended surrounded, surrendered -+surrepetitious surreptitious -+surrepetitiously surreptitiously -+surreptious surreptitious -+surreptiously surreptitiously -+surronded surrounded -+surrouded surrounded -+surrouding surrounding -+surrundering surrendering -+surveilence surveillance -+surveill surveil -+surveyer surveyor -+surviver survivor -+survivers survivors -+survivied survived -+suseptable susceptible -+suseptible susceptible -+suspention suspension -+swaer swear -+swaers swears -+swepth swept -+swiming swimming -+syas says -+symetrical symmetrical -+symetrically symmetrically -+symetry symmetry -+symettric symmetric -+symmetral symmetric -+symmetricaly symmetrically -+synagouge synagogue -+syncronization synchronization -+synonomous synonymous -+synonymns synonyms -+synphony symphony -+syphyllis syphilis -+sypmtoms symptoms -+syrap syrup -+sysmatically systematically -+sytem system -+sytle style -+tabacco tobacco -+tahn than -+taht that -+talekd talked -+targetted targeted -+targetting targeting -+tast taste -+tath that -+tatoo tattoo -+tattooes tattoos -+taxanomic taxonomic -+taxanomy taxonomy -+teached taught -+techician technician -+techicians technicians -+techiniques techniques -+technitian technician -+technnology technology -+technolgy technology -+teh the -+tehy they -+telelevision television -+televsion television -+telphony telephony -+temerature temperature -+tempalte template -+tempaltes templates -+temparate temperate -+temperarily temporarily -+temperment temperament -+tempertaure temperature -+temperture temperature -+temprary temporary -+tenacle tentacle -+tenacles tentacles -+tendacy tendency -+tendancies tendencies -+tendancy tendency -+tennisplayer tennis player -+tepmorarily temporarily -+terrestial terrestrial -+terriories territories -+terriory territory -+territorist terrorist -+territoy territory -+terroist terrorist -+testiclular testicular -+testomony testimony -+tghe the -+theather theater -+theese these -+theif thief -+theives thieves -+themselfs themselves -+themslves themselves -+ther there, their, the -+therafter thereafter -+therby thereby -+theri their -+thgat that -+thge the -+thier their -+thign thing -+thigns things -+thigsn things -+thikn think -+thikning thinking, thickening -+thikns thinks -+thiunk think -+thn then -+thna than -+thne then -+thnig thing -+thnigs things -+thoughout throughout -+threatend threatened -+threatning threatening -+threee three -+threshhold threshold -+thrid third -+throrough thorough -+throughly thoroughly -+throught thought, through, throughout -+througout throughout -+thru through -+thsi this -+thsoe those -+thta that -+thyat that -+tiem time, Tim -+tihkn think -+tihs this -+timeschedule time schedule -+timne time -+tiome time, tome -+tje the -+tjhe the -+tjpanishad upanishad -+tkae take -+tkaes takes -+tkaing taking -+tlaking talking -+tobbaco tobacco -+todya today -+toghether together -+toke took -+tolerence tolerance -+Tolkein Tolkien -+tomatos tomatoes -+tommorow tomorrow -+tommorrow tomorrow -+tongiht tonight -+toriodal toroidal -+tormenters tormentors -+tornadoe tornado -+torpeados torpedoes -+torpedos torpedoes -+tortise tortoise -+tothe to the -+toubles troubles -+tounge tongue -+tourch torch, touch -+towords towards -+towrad toward -+tradionally traditionally -+traditionaly traditionally -+traditionnal traditional -+traditition tradition -+tradtionally traditionally -+trafficed trafficked -+trafficing trafficking -+trafic traffic -+trancendent transcendent -+trancending transcending -+tranform transform -+tranformed transformed -+transcendance transcendence -+transcendant transcendent -+transcendentational transcendental -+transcripting transcribing, transcription -+transending transcending -+transesxuals transsexuals -+transfered transferred -+transfering transferring -+transformaton transformation -+transistion transition -+translater translator -+translaters translators -+transmissable transmissible -+transporation transportation -+tremelo tremolo -+tremelos tremolos -+trigered triggered -+triguered triggered -+triology trilogy -+troling trolling -+troup troupe -+troups troupes, troops -+truely truly -+trustworthyness trustworthiness -+turnk turnkey, trunk -+Tuscon Tucson -+tust trust -+tution tuition -+twelth twelfth -+twon town -+twpo two -+tyhat that -+tyhe they -+typcial typical -+typicaly typically -+tyranies tyrannies -+tyrany tyranny -+tyrranies tyrannies -+tyrrany tyranny -+ubiquitious ubiquitous -+ublisher publisher -+uise use -+Ukranian Ukrainian -+ultimely ultimately -+unacompanied unaccompanied -+unahppy unhappy -+unanymous unanimous -+unathorised unauthorised -+unavailible unavailable -+unballance unbalance -+unbeknowst unbeknownst -+unbeleivable unbelievable -+uncertainity uncertainty -+unchallengable unchallengeable -+unchangable unchangeable -+uncompetive uncompetitive -+unconcious unconscious -+unconciousness unconsciousness -+unconfortability discomfort -+uncontitutional unconstitutional -+unconvential unconventional -+undecideable undecidable -+understoon understood -+undesireable undesirable -+undetecable undetectable -+undoubtely undoubtedly -+undreground underground -+uneccesary unnecessary -+unecessary unnecessary -+unequalities inequalities -+unforseen unforeseen -+unforetunately unfortunately -+unforgetable unforgettable -+unforgiveable unforgivable -+unfortunatley unfortunately -+unfortunatly unfortunately -+unfourtunately unfortunately -+unihabited uninhabited -+unilateraly unilaterally -+unilatreal unilateral -+unilatreally unilaterally -+uninterruped uninterrupted -+uninterupted uninterrupted -+UnitesStates UnitedStates -+univeral universal -+univeristies universities -+univeristy university -+univerity university -+universtiy university -+univesities universities -+univesity university -+unkown unknown -+unlikey unlikely -+unmanouverable unmaneuverable, unmanoeuvrable -+unmistakeably unmistakably -+unneccesarily unnecessarily -+unneccesary unnecessary -+unneccessarily unnecessarily -+unneccessary unnecessary -+unnecesarily unnecessarily -+unnecesary unnecessary -+unoffical unofficial -+unoperational nonoperational -+unoticeable unnoticeable -+unplease displease -+unplesant unpleasant -+unprecendented unprecedented -+unprecidented unprecedented -+unrepentent unrepentant -+unrepetant unrepentant -+unrepetent unrepentant -+unsed used, unused, unsaid -+unsubstanciated unsubstantiated -+unsuccesful unsuccessful -+unsuccesfully unsuccessfully -+unsuccessfull unsuccessful -+unsucesful unsuccessful -+unsucesfuly unsuccessfully -+unsucessful unsuccessful -+unsucessfull unsuccessful -+unsucessfully unsuccessfully -+unsuprised unsurprised -+unsuprising unsurprising -+unsuprisingly unsurprisingly -+unsuprized unsurprised -+unsuprizing unsurprising -+unsuprizingly unsurprisingly -+unsurprized unsurprised -+unsurprizing unsurprising -+unsurprizingly unsurprisingly -+untill until -+untranslateable untranslatable -+unuseable unusable -+unusuable unusable -+unviersity university -+unwarrented unwarranted -+unweildly unwieldy -+unwieldly unwieldy -+upcomming upcoming -+upgradded upgraded -+upto up to -+usally usually -+useage usage -+usefull useful -+usefuly usefully -+useing using -+usualy usually -+ususally usually -+vaccum vacuum -+vaccume vacuum -+vacinity vicinity -+vaguaries vagaries -+vaieties varieties -+vailidty validity -+valetta valletta -+valuble valuable -+valueable valuable -+varations variations -+varient variant -+variey variety -+varing varying -+varities varieties -+varity variety -+vasall vassal -+vasalls vassals -+vegatarian vegetarian -+vegitable vegetable -+vegitables vegetables -+vegtable vegetable -+vehicule vehicle -+vell well -+venemous venomous -+vengance vengeance -+vengence vengeance -+verfication verification -+verison version -+verisons versions -+vermillion vermilion -+versitilaty versatility -+versitlity versatility -+vetween between -+veyr very -+vigeur vigueur, vigour, vigor -+vigilence vigilance -+vigourous vigorous -+villian villain -+villification vilification -+villify vilify -+villin villi, villain, villein -+vincinity vicinity -+violentce violence -+virtualy virtually -+virutal virtual -+virutally virtually -+visable visible -+visably visibly -+visting visiting -+vistors visitors -+vitories victories -+volcanoe volcano -+voleyball volleyball -+volontary voluntary -+volonteer volunteer -+volonteered volunteered -+volonteering volunteering -+volonteers volunteers -+volounteer volunteer -+volounteered volunteered -+volounteering volunteering -+volounteers volunteers -+volumne volume -+vreity variety -+vrey very -+vriety variety -+vulnerablility vulnerability -+vyer very -+vyre very -+waht what -+warantee warranty -+wardobe wardrobe -+warrent warrant -+warrriors warriors -+wass was -+watn want -+wayword wayward -+weaponary weaponry -+weas was -+wehn when -+weild wield, wild -+weilded wielded -+wendsay Wednesday -+wensday Wednesday -+wereabouts whereabouts -+whant want -+whants wants -+whcih which -+wheras whereas -+wherease whereas -+whereever wherever -+whic which -+whihc which -+whith with -+whlch which -+whn when -+wholey wholly -+wholy wholly, holy -+whta what -+whther whether -+wich which, witch -+widesread widespread -+wief wife -+wierd weird -+wiew view -+wih with -+wiht with -+wille will -+willk will -+willingless willingness -+wirting writing -+withdrawl withdrawal, withdraw -+witheld withheld -+withh with -+withing within -+withold withhold -+witht with -+witn with -+wiull will -+wnat want -+wnated wanted -+wnats wants -+wohle whole -+wokr work -+wokring working -+wonderfull wonderful -+wordlwide worldwide -+workststion workstation -+worls world -+worstened worsened -+woudl would -+wresters wrestlers -+wriet write -+writen written -+wroet wrote -+wrok work -+wroking working -+wtih with -+wupport support -+xenophoby xenophobia -+yaching yachting -+yaer year -+yaerly yearly -+yaers years -+yatch yacht -+yearm year -+yeasr years -+yeild yield -+yeilding yielding -+Yementite Yemenite, Yemeni -+yera year -+yrea year -+yeras years -+yersa years -+yotube youtube -+youseff yousef -+youself yourself -+ytou you -+yuo you -+zeebra zebra -+adn and -+alltime all-time -+antiapartheid anti-apartheid -+Coca Cola Coca-Cola -+co-incided coincided -+aircrafts' aircraft's -+countrie's countries, countries', country's -+didnt didn't -+doesnt doesn't -+dosen't doesn't -+Hallowean Hallowe'en, Halloween -+hasnt hasn't -+isnt isn't -+shoudln should, shouldn't -+thast that, that's -+theyre they're -+todays today's -+wasnt wasn't ---- /dev/null -+++ b/src/hunspell/hunspell_wrapper.cpp -@@ -0,0 +1,78 @@ -+#include -+#include -+#include -+ -+using std::string; -+using std::vector; -+ -+#include "hunspell_wrapper.h" -+ -+hunspell_T * hunspell_create(const char *affpath, const char *dpath) { -+ return reinterpret_cast(new Hunspell(affpath, dpath)); -+} -+ -+ -+void hunspell_destroy(hunspell_T *pHunspell) { -+ delete reinterpret_cast(pHunspell); -+} -+ -+void hunspell_add_dic(hunspell_T *pHunspell, const char *dicpath) -+{ -+ reinterpret_cast(pHunspell)->add_dic(dicpath); -+} -+ -+void hunspell_add_word(hunspell_T *pHunspell, const char *word) -+{ -+ reinterpret_cast(pHunspell)->add(string(word)); -+} -+ -+bool hunspell_is_wordchar(hunspell_T *handle, const char *p) -+{ -+ if (!handle || !p) { -+ return false; -+ } -+ -+ Hunspell * h = reinterpret_cast(handle); -+ const string &wordchars = h->get_wordchars_cpp(); -+ -+ return wordchars.find(*p) != string::npos; -+} -+ -+bool hunspell_spell_flags(hunspell_T* handle, const char *p, size_t len, int *flags) -+{ -+ string tospell(p, len); -+ Hunspell *h = reinterpret_cast(handle); -+ -+ return h->spell(tospell, flags); -+} -+ -+size_t hunspell_suggest(hunspell_T *handle, const char *word, size_t len, char ***ret) -+{ -+ string tosugg(word, len); -+ Hunspell *h = reinterpret_cast(handle); -+ -+ char ** suggtab = NULL; -+ size_t suglen = 0; -+ -+ if (ret == NULL) { -+ return 0; -+ } -+ -+ vector suggestions = h->suggest(tosugg); -+ suglen = suggestions.size(); -+ if (suglen == 0) { -+ goto theend; -+ } -+ -+ suggtab = (char **)calloc(suglen, sizeof(char *)); -+ -+ for (size_t i = 0; i < suglen; i++) { -+ suggtab[i] = strdup(suggestions[i].c_str()); -+ } -+ -+theend: -+ if (ret != NULL) { -+ *ret = suggtab; -+ } -+ return suglen; -+} ---- /dev/null -+++ b/src/hunspell/hunspell_wrapper.h -@@ -0,0 +1,39 @@ -+#ifndef HUNSPELL_WRAPPER_H -+#define HUNSPELL_WRAPPER_H -+ -+#ifdef __cplusplus -+extern "C" { -+#endif // __cplusplus -+ -+#include -+#include -+#include -+ -+#define HSPELL_COMPOUND (1 << 0) -+#define HSPELL_FORBIDDEN (1 << 1) -+#define HSPELL_ALLCAP (1 << 2) -+#define HSPELL_NOCAP (1 << 3) -+#define HSPELL_INITCAP (1 << 4) -+#define HSPELL_ORIGCAP (1 << 5) -+#define HSPELL_WARN (1 << 6) -+ -+typedef struct hunspell_S hunspell_T; -+ -+hunspell_T * hunspell_create(const char *affpath, const char *dicpath); -+ -+void hunspell_destroy(hunspell_T *pHunspell); -+ -+void hunspell_add_dic(hunspell_T *pHunspell, const char *dicpath); -+void hunspell_add_word(hunspell_T *pHunspell, const char *word); -+ -+bool hunspell_is_wordchar(hunspell_T *handle, const char *p); -+ -+bool hunspell_spell_flags(hunspell_T *handle, const char *word, size_t len, int *flags); -+ -+size_t hunspell_suggest(hunspell_T *handle, const char *word, size_t len, char ***ret); -+ -+#ifdef __cplusplus -+} -+#endif // __cplusplus -+ -+#endif // HUNSPELL_WRAPPER_H ---- a/src/nvim/CMakeLists.txt -+++ b/src/nvim/CMakeLists.txt -@@ -96,8 +96,8 @@ file(MAKE_DIRECTORY ${LINT_SUPPRESSES_RO - - glob_wrapper(NVIM_SOURCES *.c) - glob_wrapper(NVIM_HEADERS *.h) --glob_wrapper(EXTERNAL_SOURCES ../xdiff/*.c ../mpack/*.c ../cjson/*.c) --glob_wrapper(EXTERNAL_HEADERS ../xdiff/*.h ../mpack/*.h ../cjson/*.h) -+glob_wrapper(EXTERNAL_SOURCES ../xdiff/*.c ../mpack/*.c ../cjson/*.c ../hunspell/*.cpp) -+glob_wrapper(EXTERNAL_HEADERS ../xdiff/*.h ../mpack/*.h ../cjson/*.h ../hunspell/*.h) - - foreach(subdir - os -@@ -429,6 +429,7 @@ list(APPEND NVIM_LINK_LIBRARIES - ${UNIBILIUM_LIBRARIES} - ${UTF8PROC_LIBRARIES} - ${TreeSitter_LIBRARIES} -+ ${Hunspell_LIBRARIES} - ${CMAKE_THREAD_LIBS_INIT} - ) - ---- a/src/nvim/buffer_defs.h -+++ b/src/nvim/buffer_defs.h -@@ -462,8 +462,9 @@ typedef struct { - char *b_p_spf; // 'spellfile' - char *b_p_spl; // 'spelllang' - char *b_p_spo; // 'spelloptions' --#define SPO_CAMEL 0x1 --#define SPO_NPBUFFER 0x2 -+#define SPO_CAMEL (1 << 0) -+#define SPO_NPBUFFER (1 << 1) -+#define SPO_HUNSPELL (1 << 2) - unsigned b_p_spo_flags; // 'spelloptions' flags - int b_cjk; // all CJK letters as OK - uint8_t b_syn_chartab[32]; // syntax iskeyword option ---- a/src/nvim/optionstr.c -+++ b/src/nvim/optionstr.c -@@ -107,7 +107,7 @@ static char *(p_fdc_values[]) = { "auto" - "auto:6", "auto:7", "auto:8", "auto:9", "0", "1", "2", "3", "4", - "5", "6", "7", "8", "9", NULL }; - static char *(p_cb_values[]) = { "unnamed", "unnamedplus", NULL }; --static char *(p_spo_values[]) = { "camel", "noplainbuffer", NULL }; -+static char *(p_spo_values[]) = { "camel", "noplainbuffer", "hunspell", NULL }; - static char *(p_icm_values[]) = { "nosplit", "split", NULL }; - static char *(p_jop_values[]) = { "stack", "view", NULL }; - static char *(p_tpf_values[]) = { "BS", "HT", "FF", "ESC", "DEL", "C0", "C1", NULL }; -@@ -1129,6 +1129,8 @@ char *did_set_string_option(int opt_idx, - if (opt_strings_flags(curwin->w_s->b_p_spo, p_spo_values, &(curwin->w_s->b_p_spo_flags), - true) != OK) { - errmsg = e_invarg; -+ } else { -+ spell_reload(); - } - } else if (varp == &p_sps) { // 'spellsuggest' - if (spell_check_sps() != OK) { ---- a/src/nvim/spell.c -+++ b/src/nvim/spell.c -@@ -63,7 +63,9 @@ - #include // for NULL, size_t, ptrdiff_t - #include // for snprintf - #include // for memmove, strstr, memcpy, memset -+#include - -+#include "hunspell/hunspell_wrapper.h" - #include "nvim/ascii.h" // for NUL, ascii_isdigit, ascii_iswhite - #include "nvim/autocmd.h" // for apply_autocmds - #include "nvim/buffer.h" // for bufref_valid, set_bufref, buf_is_empty -@@ -321,32 +323,45 @@ size_t spell_check(win_T *wp, char_u *pt - - // If reloading fails the language is still in the list but everything - // has been cleared. -- if (mi.mi_lp->lp_slang->sl_fidxs == NULL) { -- continue; -- } -- -- // Check for a matching word in case-folded words. -- find_word(&mi, FIND_FOLDWORD); -- -- // Check for a matching word in keep-case words. -- find_word(&mi, FIND_KEEPWORD); -- -- // Check for matching prefixes. -- find_prefix(&mi, FIND_FOLDWORD); -+ if (mi.mi_lp->lp_slang->sl_hunspell != NULL -+ && wp->w_s->b_p_spo_flags & SPO_HUNSPELL) { -+ if (mi.mi_end == mi.mi_word) { -+ MB_PTR_ADV(mi.mi_end); -+ } - -- // For a NOBREAK language, may want to use a word without a following -- // word as a backup. -- if (mi.mi_lp->lp_slang->sl_nobreak && mi.mi_result == SP_BAD -- && mi.mi_result2 != SP_BAD) { -- mi.mi_result = mi.mi_result2; -- mi.mi_end = mi.mi_end2; -- } -- -- // Count the word in the first language where it's found to be OK. -- if (count_word && mi.mi_result == SP_OK) { -- count_common_word(mi.mi_lp->lp_slang, ptr, -- (int)(mi.mi_end - ptr), 1); -- count_word = false; -+ int spell_flags = 0; -+ if (hunspell_spell_flags(mi.mi_lp->lp_slang->sl_hunspell, (char *)mi.mi_word, -+ (size_t)(mi.mi_end - mi.mi_word), &spell_flags)) { -+ mi.mi_result = -+ (spell_flags & HSPELL_FORBIDDEN) ? SP_BANNED : -+ (spell_flags & HSPELL_WARN) ? SP_RARE : SP_OK; -+ } else { -+ mi.mi_result = SP_BAD; -+ } -+ } else if (mi.mi_lp->lp_slang->sl_fidxs != NULL) { -+ // Check for a matching word in case-folded words. -+ find_word(&mi, FIND_FOLDWORD); -+ -+ // Check for a matching word in keep-case words. -+ find_word(&mi, FIND_KEEPWORD); -+ -+ // Check for matching prefixes. -+ find_prefix(&mi, FIND_FOLDWORD); -+ -+ // For a NOBREAK language, may want to use a word without a following -+ // word as a backup. -+ if (mi.mi_lp->lp_slang->sl_nobreak && mi.mi_result == SP_BAD -+ && mi.mi_result2 != SP_BAD) { -+ mi.mi_result = mi.mi_result2; -+ mi.mi_end = mi.mi_end2; -+ } -+ -+ // Count the word in the first language where it's found to be OK. -+ if (count_word && mi.mi_result == SP_OK) { -+ count_common_word(mi.mi_lp->lp_slang, ptr, -+ (int)(mi.mi_end - ptr), 1); -+ count_word = false; -+ } - } - } - -@@ -1497,9 +1512,35 @@ void spell_cat_line(char_u *buf, char_u - } - } - -+static void spell_hunspell_cb(char *path, void *ud) -+{ -+ spelload_T *sl = (spelload_T *)ud; -+ -+ char *aff_path = xstrdup(path); -+ STRCPY(aff_path + STRLEN(path) - 3, "aff"); -+ -+ hunspell_T *h = hunspell_create(aff_path, path); -+ if (h != NULL) { -+ sl->sl_slang = slang_alloc((char *)sl->sl_lang); -+ sl->sl_slang->sl_hunspell = h; -+ sl->sl_slang->sl_fname = xstrdup(aff_path); -+ } -+ -+ xfree(aff_path); -+} -+ -+static void spell_hunspell_add_cb(char *path, void *ud) -+{ -+ spelload_T *sl = (spelload_T *)ud; -+ if (sl->sl_slang->sl_hunspell != NULL) { -+ DLOG("Adding %s", path); -+ hunspell_add_dic(sl->sl_slang->sl_hunspell, path); -+ } -+} -+ - // Load word list(s) for "lang" from Vim spell file(s). - // "lang" must be the language without the region: e.g., "en". --static void spell_load_lang(char_u *lang) -+static void spell_load_lang(win_T *wp, char_u *lang) - { - char fname_enc[85]; - int r; -@@ -1515,22 +1556,25 @@ static void spell_load_lang(char_u *lang - // autocommand may load it then. - for (int round = 1; round <= 2; round++) { - // Find the first spell file for "lang" in 'runtimepath' and load it. -- vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5, -- "spell/%s.%s.spl", lang, spell_enc()); -- r = do_in_runtimepath((char *)fname_enc, 0, spell_load_cb, &sl); -- -- if (r == FAIL && *sl.sl_lang != NUL) { -- // Try loading the ASCII version. -+ if (wp->w_s->b_p_spo_flags & SPO_HUNSPELL) { -+ vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5, "spell/%s.dic", lang); -+ r = do_in_runtimepath((char *)fname_enc, 0, spell_hunspell_cb, &sl); -+ } else { - vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5, -- "spell/%s.ascii.spl", lang); -+ "spell/%s.%s.spl", lang, spell_enc()); - r = do_in_runtimepath((char *)fname_enc, 0, spell_load_cb, &sl); -- -- if (r == FAIL && *sl.sl_lang != NUL && round == 1 -- && apply_autocmds(EVENT_SPELLFILEMISSING, (char *)lang, -- curbuf->b_fname, false, curbuf)) { -- continue; -+ if (r == FAIL && *sl.sl_lang != NUL) { -+ // Try loading the ASCII version. -+ vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5, -+ "spell/%s.ascii.spl", lang); -+ r = do_in_runtimepath((char *)fname_enc, 0, spell_load_cb, &sl); - } -- break; -+ } -+ -+ if (r == FAIL && *sl.sl_lang != NUL && round == 1 -+ && apply_autocmds(EVENT_SPELLFILEMISSING, (char *)lang, -+ curbuf->b_fname, false, curbuf)) { -+ continue; - } - break; - } -@@ -1550,8 +1594,17 @@ static void spell_load_lang(char_u *lang - } - } else if (sl.sl_slang != NULL) { - // At least one file was loaded, now load ALL the additions. -- STRCPY(fname_enc + STRLEN(fname_enc) - 3, "add.spl"); -- do_in_runtimepath((char *)fname_enc, DIP_ALL, spell_load_cb, &sl); -+ if (wp->w_s->b_p_spo_flags & SPO_HUNSPELL) { -+ // TODO(vigoux): probably not right and we'll have to load the .add files -+ STRCPY(fname_enc + STRLEN(fname_enc) - 3, "add"); -+ DLOG("Will try to load %s", fname_enc); -+ do_in_runtimepath((char *)fname_enc, DIP_ALL, spell_hunspell_add_cb, &sl); -+ sl.sl_slang->sl_next = first_lang; -+ first_lang = sl.sl_slang; -+ } else { -+ STRCPY(fname_enc + STRLEN(fname_enc) - 3, "add.spl"); -+ do_in_runtimepath((char *)fname_enc, DIP_ALL, spell_load_cb, &sl); -+ } - } - } - -@@ -1675,6 +1728,8 @@ void slang_clear(slang_T *lp) - lp->sl_compminlen = 0; - lp->sl_compsylmax = MAXWLEN; - lp->sl_regions[0] = NUL; -+ -+ hunspell_destroy(lp->sl_hunspell); - } - - // Clear the info from the .sug file in "lp". -@@ -1954,7 +2009,7 @@ char *did_set_spelllang(win_T *wp) - if (filename) { - (void)spell_load_file((char *)lang, (char *)lang, NULL, false); - } else { -- spell_load_lang((char_u *)lang); -+ spell_load_lang(wp, (char_u *)lang); - // SpellFileMissing autocommands may do anything, including - // destroying the buffer we are using... - if (!bufref_valid(&bufref)) { -@@ -2391,6 +2446,24 @@ bool spell_iswordp(const char_u *p, cons - { - const int l = utfc_ptr2len((char *)p); - const char_u *s = p; -+ -+ // TODO(vigoux): there is a lot more variants of iswordp -+ if (wp->w_s->b_p_spo_flags & SPO_HUNSPELL) { -+ for (int lpi = 0; lpi < wp->w_s->b_langp.ga_len; lpi++) { -+ langp_T *lp = LANGP_ENTRY(wp->w_s->b_langp, lpi); -+ -+ if (lp->lp_slang->sl_hunspell != NULL) { -+ // TODO(vigoux): correctly handle multibyte characters here -+ if (hunspell_is_wordchar(lp->lp_slang->sl_hunspell, (const char *)s)) { -+ return true; -+ } -+ } -+ } -+ int c = utf_ptr2char((char *)p); -+ // TODO(vigoux): that's certainly not right -+ return iswalnum(c); -+ } -+ - if (l == 1) { - // be quick for ASCII - if (wp->w_s->b_spell_ismw[*p]) { -@@ -2418,6 +2491,10 @@ bool spell_iswordp(const char_u *p, cons - bool spell_iswordp_nmw(const char_u *p, win_T *wp) - { - int c = utf_ptr2char((char *)p); -+ if (wp->w_s->b_p_spo_flags & SPO_HUNSPELL) { -+ return iswalnum(c); -+ } -+ - if (c > 255) { - return spell_mb_isword_class(mb_get_class(p), wp); - } ---- a/src/nvim/spell_defs.h -+++ b/src/nvim/spell_defs.h -@@ -4,6 +4,7 @@ - #include - #include - -+#include "hunspell/hunspell_wrapper.h" - #include "nvim/buffer_defs.h" - #include "nvim/garray.h" - #include "nvim/regexp_defs.h" -@@ -111,10 +112,8 @@ typedef int salfirst_T; - // Exception: when the byte is zero, the word may end here and "idxs" holds - // the flags, region mask and affixID for the word. There may be several - // zeros in sequence for alternative flag/region/affixID combinations. --typedef struct slang_S slang_T; -- --struct slang_S { -- slang_T *sl_next; // next language -+typedef struct slang_S { -+ struct slang_S *sl_next; // next language - char *sl_name; // language name "en", "en.rare", "nl", etc. - char *sl_fname; // name of .spl file - bool sl_add; // true if it's a .add file. -@@ -183,7 +182,8 @@ struct slang_S { - int sl_map_array[256]; // MAP for first 256 chars - hashtab_T sl_sounddone; // table with soundfolded words that have - // handled, see add_sound_suggest() --}; -+ hunspell_T *sl_hunspell; -+} slang_T; - - // Structure used in "b_langp", filled from 'spelllang'. - typedef struct langp_S { ---- a/src/nvim/spellfile.c -+++ b/src/nvim/spellfile.c -@@ -226,17 +226,22 @@ - // stored as an offset to the previous number in as - // few bytes as possible, see offset2bytes()) - -+#include - #include - #include - #include - -+#include "hunspell/hunspell_wrapper.h" - #include "nvim/arglist.h" - #include "nvim/ascii.h" - #include "nvim/buffer.h" -+#include "nvim/buffer_defs.h" - #include "nvim/charset.h" - #include "nvim/drawscreen.h" - #include "nvim/ex_cmds2.h" - #include "nvim/fileio.h" -+#include "nvim/globals.h" -+#include "nvim/lib/kvec.h" - #include "nvim/memline.h" - #include "nvim/memory.h" - #include "nvim/option.h" -@@ -5506,6 +5511,41 @@ void ex_spell(exarg_T *eap) - eap->cmdidx == CMD_spellundo); - } - -+void spell_hunspell_format_dic(const char *path) -+{ -+ kvec_t(char *) words = KV_INITIAL_VALUE; -+ char line[MAXWLEN * 2]; -+ FILE *fd = os_fopen(path, "r+"); -+ -+ bool first_line = true; -+ if (fd != NULL) { -+ // First read the amount of lines -+ while (!vim_fgets((char_u *)line, MAXWLEN * 2, fd)) { -+ if (first_line && *line >= '0' && *line <= '9') { -+ // Ignore the first line -+ // TODO(vigoux): maybe use that to reserve the correct amount of memory -+ // for the words array ? -+ first_line = false; -+ } else if (STRLEN(line) > 1 && *line != '#') { -+ kv_push(words, xstrdup(line)); -+ } -+ } -+ -+ if (fseek(fd, 0, SEEK_SET) != 0) { -+ PERROR(_("Seek error in spellfile")); -+ return; -+ } -+ fprintf(fd, "%lu\n", kv_size(words)); -+ for (size_t i = 0; i < kv_size(words); i++) { -+ fprintf(fd, "%s", kv_A(words, i)); -+ xfree(kv_A(words, i)); -+ } -+ -+ fclose(fd); -+ kv_destroy(words); -+ } -+} -+ - /// Add "word[len]" to 'spellfile' as a good or bad word. - /// - /// @param what SPELL_ADD_ values -@@ -5640,6 +5680,8 @@ void spell_add_word(char_u *word, int le - if (fd == NULL) { - semsg(_(e_notopen), fname); - } else { -+ // TODO(vigoux): for spo=hunspell the ?/! is recognized only if it is set -+ // accordingly in the affix file. So either we'll have to - if (what == SPELL_ADD_BAD) { - fprintf(fd, "%.*s/!\n", len, word); - } else if (what == SPELL_ADD_RARE) { -@@ -5655,8 +5697,28 @@ void spell_add_word(char_u *word, int le - } - - if (fd != NULL) { -- // Update the .add.spl file. -- mkspell(1, &fname, false, true, true); -+ // Update the spellchecking -+ // For hunspell, just add the word to the runtime session to save time -+ // For legacy engine, perform mkspell, which reloads all the spellchecking -+ if (curwin->w_s->b_p_spo_flags & SPO_HUNSPELL) { -+ if (idx == 0) { -+ // When `zG` or `zW` add the word to the internal word list -+ for (int lpi = 0; lpi < curwin->w_s->b_langp.ga_len; lpi++) { -+ langp_T *lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi); -+ if (lp->lp_slang->sl_hunspell != NULL) { -+ // TODO(vigoux): When adding a bad word, we'll have to remove -+ // instead of add -+ hunspell_add_word(lp->lp_slang->sl_hunspell, (char *)word); -+ } -+ } -+ } else { -+ spell_hunspell_format_dic(fname); -+ spell_reload(); -+ } -+ } else { -+ // Update the .add.spl file. -+ mkspell(1, &fname, false, true, true); -+ } - - // If the .add file is edited somewhere, reload it. - if (buf != NULL) { -@@ -5722,13 +5784,19 @@ static void init_spellfile(void) - "/%.*s", (int)(lend - lstart), lstart); - } - l = (int)STRLEN(buf); -- fname = (char_u *)LANGP_ENTRY(curwin->w_s->b_langp, 0) -- ->lp_slang->sl_fname; -- vim_snprintf((char *)buf + l, MAXPATHL - (size_t)l, ".%s.add", -- ((fname != NULL -- && strstr(path_tail((char *)fname), ".ascii.") != NULL) -- ? "ascii" -- : (const char *)spell_enc())); -+ slang_T *sl = LANGP_ENTRY(curwin->w_s->b_langp, 0) -+ ->lp_slang; -+ if (sl->sl_hunspell != NULL && curwin->w_s->b_p_spo_flags & SPO_HUNSPELL) { -+ // When using hunspell, only output the word on .add -+ vim_snprintf((char *)buf + l, MAXPATHL - (size_t)l, ".add"); -+ } else { -+ fname = (char_u *)sl->sl_fname; -+ vim_snprintf((char *)buf + l, MAXPATHL - (size_t)l, ".%s.add", -+ ((fname != NULL -+ && strstr(path_tail((char *)fname), ".ascii.") != NULL) -+ ? "ascii" -+ : (const char *)spell_enc())); -+ } - set_option_value_give_err("spellfile", 0L, (const char *)buf, OPT_LOCAL); - break; - } ---- a/src/nvim/spellsuggest.c -+++ b/src/nvim/spellsuggest.c -@@ -3,7 +3,9 @@ - - // spellsuggest.c: functions for spelling suggestions - -+#include "hunspell/hunspell_wrapper.h" - #include "nvim/ascii.h" -+#include "nvim/buffer_defs.h" - #include "nvim/change.h" - #include "nvim/charset.h" - #include "nvim/cursor.h" -@@ -879,77 +881,98 @@ static void spell_suggest_file(suginfo_T - /// Find suggestions for the internal method indicated by "sps_flags". - static void spell_suggest_intern(suginfo_T *su, bool interactive) - { -- // Load the .sug file(s) that are available and not done yet. -- suggest_load_files(); -+ if (curbuf->b_s.b_p_spo_flags & SPO_HUNSPELL) { -+ for (int i = 0; i < curbuf->b_s.b_langp.ga_len; i++) { -+ langp_T *lp = LANGP_ENTRY(curbuf->b_s.b_langp, i); -+ if (lp->lp_slang != NULL && lp->lp_slang->sl_hunspell != NULL) { -+ char **suggestions = NULL; -+ size_t nsuggs = -+ hunspell_suggest(lp->lp_slang->sl_hunspell, (const char *)su->su_badptr, -+ (size_t)su->su_badlen, &suggestions); -+ -+ for (size_t j = 0; j < nsuggs; j++) { -+ add_suggestion(su, &su->su_ga, suggestions[j], su->su_badlen, -+ SCORE_FILE + (int)j, 0, true, su->su_sallang, false); -+ } - -- // 1. Try special cases, such as repeating a word: "the the" -> "the". -- // -- // Set a maximum score to limit the combination of operations that is -- // tried. -- suggest_try_special(su); -- -- // 2. Try inserting/deleting/swapping/changing a letter, use REP entries -- // from the .aff file and inserting a space (split the word). -- suggest_try_change(su); -- -- // For the resulting top-scorers compute the sound-a-like score. -- if (sps_flags & SPS_DOUBLE) { -- score_comp_sal(su); -- } -- -- // 3. Try finding sound-a-like words. -- if ((sps_flags & SPS_FAST) == 0) { -- if (sps_flags & SPS_BEST) { -- // Adjust the word score for the suggestions found so far for how -- // they sounds like. -- rescore_suggestions(su); -- } -- -- // While going through the soundfold tree "su_maxscore" is the score -- // for the soundfold word, limits the changes that are being tried, -- // and "su_sfmaxscore" the rescored score, which is set by -- // cleanup_suggestions(). -- // First find words with a small edit distance, because this is much -- // faster and often already finds the top-N suggestions. If we didn't -- // find many suggestions try again with a higher edit distance. -- // "sl_sounddone" is used to avoid doing the same word twice. -- suggest_try_soundalike_prep(); -- su->su_maxscore = SCORE_SFMAX1; -- su->su_sfmaxscore = SCORE_MAXINIT * 3; -- suggest_try_soundalike(su); -- if (su->su_ga.ga_len < SUG_CLEAN_COUNT(su)) { -- // We didn't find enough matches, try again, allowing more -- // changes to the soundfold word. -- su->su_maxscore = SCORE_SFMAX2; -+ if (nsuggs > 0) { -+ xfree(suggestions); -+ } -+ } -+ } -+ } else { -+ // Load the .sug file(s) that are available and not done yet. -+ suggest_load_files(); -+ -+ // 1. Try special cases, such as repeating a word: "the the" -> "the". -+ // -+ // Set a maximum score to limit the combination of operations that is -+ // tried. -+ suggest_try_special(su); -+ -+ // 2. Try inserting/deleting/swapping/changing a letter, use REP entries -+ // from the .aff file and inserting a space (split the word). -+ suggest_try_change(su); -+ -+ // For the resulting top-scorers compute the sound-a-like score. -+ if (sps_flags & SPS_DOUBLE) { -+ score_comp_sal(su); -+ } -+ -+ // 3. Try finding sound-a-like words. -+ if ((sps_flags & SPS_FAST) == 0) { -+ if (sps_flags & SPS_BEST) { -+ // Adjust the word score for the suggestions found so far for how -+ // they sounds like. -+ rescore_suggestions(su); -+ } -+ -+ // While going through the soundfold tree "su_maxscore" is the score -+ // for the soundfold word, limits the changes that are being tried, -+ // and "su_sfmaxscore" the rescored score, which is set by -+ // cleanup_suggestions(). -+ // First find words with a small edit distance, because this is much -+ // faster and often already finds the top-N suggestions. If we didn't -+ // find many suggestions try again with a higher edit distance. -+ // "sl_sounddone" is used to avoid doing the same word twice. -+ suggest_try_soundalike_prep(); -+ su->su_maxscore = SCORE_SFMAX1; -+ su->su_sfmaxscore = SCORE_MAXINIT * 3; - suggest_try_soundalike(su); - if (su->su_ga.ga_len < SUG_CLEAN_COUNT(su)) { -- // Still didn't find enough matches, try again, allowing even -- // more changes to the soundfold word. -- su->su_maxscore = SCORE_SFMAX3; -+ // We didn't find enough matches, try again, allowing more -+ // changes to the soundfold word. -+ su->su_maxscore = SCORE_SFMAX2; - suggest_try_soundalike(su); -+ if (su->su_ga.ga_len < SUG_CLEAN_COUNT(su)) { -+ // Still didn't find enough matches, try again, allowing even -+ // more changes to the soundfold word. -+ su->su_maxscore = SCORE_SFMAX3; -+ suggest_try_soundalike(su); -+ } - } -+ su->su_maxscore = su->su_sfmaxscore; -+ suggest_try_soundalike_finish(); - } -- su->su_maxscore = su->su_sfmaxscore; -- suggest_try_soundalike_finish(); -- } -- -- // When CTRL-C was hit while searching do show the results. Only clear -- // got_int when using a command, not for spellsuggest(). -- os_breakcheck(); -- if (interactive && got_int) { -- (void)vgetc(); -- got_int = false; -- } - -- if ((sps_flags & SPS_DOUBLE) == 0 && su->su_ga.ga_len != 0) { -- if (sps_flags & SPS_BEST) { -- // Adjust the word score for how it sounds like. -- rescore_suggestions(su); -+ // When CTRL-C was hit while searching do show the results. Only clear -+ // got_int when using a command, not for spellsuggest(). -+ os_breakcheck(); -+ if (interactive && got_int) { -+ (void)vgetc(); -+ got_int = false; - } - -- // Remove bogus suggestions, sort and truncate at "maxcount". -- check_suggestions(su, &su->su_ga); -- (void)cleanup_suggestions(&su->su_ga, su->su_maxscore, su->su_maxcount); -+ if ((sps_flags & SPS_DOUBLE) == 0 && su->su_ga.ga_len != 0) { -+ if (sps_flags & SPS_BEST) { -+ // Adjust the word score for how it sounds like. -+ rescore_suggestions(su); -+ } -+ -+ // Remove bogus suggestions, sort and truncate at "maxcount". -+ check_suggestions(su, &su->su_ga); -+ (void)cleanup_suggestions(&su->su_ga, su->su_maxscore, su->su_maxcount); -+ } - } - } - diff --git a/7423-run-tests-aarch64.patch b/7423-run-tests-aarch64.patch deleted file mode 100644 index bdfe7a7..0000000 --- a/7423-run-tests-aarch64.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 59f4bd435c6754f475dfb61bb6c881ce914b17e6 Mon Sep 17 00:00:00 2001 -From: James McCoy -Date: Wed, 29 Nov 2017 10:07:12 -0500 -Subject: [PATCH] unittest: Ignore _Float128 types in ffi - -When building with certain GCC versions, a _Float128 type is present -when setting up the ffi for unit tests. - - ./test/unit/helpers.lua:256: declaration specifier expected near '_Float128' at line 396 - /usr/bin/luajit: /usr/share/lua/5.1/busted/runner.lua:99: attempt to concatenate local 'message' (a table value) - stack traceback: - /usr/share/lua/5.1/busted/runner.lua:99: in function 'fn' - /usr/share/lua/5.1/mediator.lua:103: in function 'publish' - /usr/share/lua/5.1/busted/modules/helper_loader.lua:21: in function 'helperLoader' - /usr/share/lua/5.1/busted/runner.lua:147: in function - /usr/bin/busted:3: in main chunk - [C]: at 0x004044a0 - - CMake Error at /<>/cmake/RunTests.cmake:53 (message): - Running unit tests failed with error: 1. - -Since this is being pulled in by a dependency, not directly used by -nvim, just ignore the type. - -Closes #7423 ---- - test/unit/helpers.lua | 1 + - 1 file changed, 1 insertion(+) - ---- a/test/unit/helpers.lua -+++ b/test/unit/helpers.lua -@@ -136,6 +136,7 @@ local function filter_complex_blocks(bod - if not (string.find(line, "(^)", 1, true) ~= nil - or string.find(line, "_ISwupper", 1, true) - or string.find(line, "_Float") -+ or string.find(line, "_Float128") - or string.find(line, "msgpack_zone_push_finalizer") - or string.find(line, "msgpack_unpacker_reserve_buffer") - or string.find(line, "UUID_NULL") -- static const uuid_t UUID_NULL = {...} diff --git a/_service b/_service deleted file mode 100644 index b0fff14..0000000 --- a/_service +++ /dev/null @@ -1,16 +0,0 @@ - - - 0.8.0~git - https://github.com/neovim/neovim - git - .git* - enable - mcepl@cepl.eu - - - - xz - *.tar - - - diff --git a/_servicedata b/_servicedata deleted file mode 100644 index ace9c51..0000000 --- a/_servicedata +++ /dev/null @@ -1,6 +0,0 @@ - - - https://github.com/neovim/neovim - f98cff9575e75a050d2bde01ad950c0c72bcfc3e - - \ No newline at end of file diff --git a/neovim.obsinfo b/neovim.obsinfo deleted file mode 100644 index 248d207..0000000 --- a/neovim.obsinfo +++ /dev/null @@ -1,4 +0,0 @@ -name: neovim -version: 0.8.0~git.1662905274.f98cff957 -mtime: 1662905274 -commit: f98cff9575e75a050d2bde01ad950c0c72bcfc3e diff --git a/neovim.spec b/neovim.spec index 4a274a1..3922048 100644 --- a/neovim.spec +++ b/neovim.spec @@ -48,7 +48,7 @@ Summary: Vim-fork focused on extensibility and agility License: Apache-2.0 AND Vim Group: Productivity/Text/Editors URL: https://neovim.io/ -Source0: %{name}-%{version}.tar.xz +#!RemoteAssetUrl: git+https://github.com/mcepl/neovim.git#devel Source1: sysinit.vim Source2: spec-template Source3: suse-spec-template @@ -56,11 +56,6 @@ Source3: suse-spec-template # we need /usr/bin/luajit. Fake it. Source10: lj-busted.sh Source99: neovim-rpmlintrc -# PATCH-FIX-OPENSUSE neovim-0.1.7-bitop.patch mcepl@cepl.eu build with old Lua with external bit module -Patch1: neovim-0.1.7-bitop.patch -# PATCH-FIX-UPSTREAM 7657-run-tests-aarch64.patch gh#neovim/neovim#7423 mcepl@suse.com -# fix running tests on aarch64 -Patch3: 7423-run-tests-aarch64.patch # PATCH-FEATURE-UPSTREAM 20131-hunspell.patch gh#vim/vim#4916 mcepl@suse.com # use hunspell as the spellchecking backend Patch4: 20131-hunspell.patch @@ -160,7 +155,10 @@ parts of Vim, without compromise, and more. %define vimplugin_dir %{_datadir}/vim/site %prep -%autosetup -p1 +%setup -q -n neovim -c -T + +( cd %{_sourcedir}/neovim && git checkout -f devel ) +cp -a %{_sourcedir}/neovim/* . install -p -m 0755 %{SOURCE10} .