comparison plugins/spellchk.c @ 11150:0ef4fbeeefaf

[gaim-migrate @ 13230] 1. Hack around the case where period is being used as an abbreviation instead of as a full stop. 2. Fix a couple memory leaks. 3. Commit some additions to the correction list that have been building up since the big patch to this file was accepted. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Sun, 24 Jul 2005 08:15:55 +0000
parents 2714b51a0dad
children a4ce03725025
comparison
equal deleted inserted replaced
11149:239918d22c5f 11150:0ef4fbeeefaf
210 210
211 /* Pango doesn't know about the "'" character. Let's fix that. */ 211 /* Pango doesn't know about the "'" character. Let's fix that. */
212 static gboolean 212 static gboolean
213 spellchk_inside_word(GtkTextIter *iter) 213 spellchk_inside_word(GtkTextIter *iter)
214 { 214 {
215 gunichar ucs4_char = gtk_text_iter_get_char(iter);
216 gchar *utf8_str;
217 gchar c = 0;
215 gboolean result; 218 gboolean result;
216 gboolean output; 219 gboolean output;
217 220
221 utf8_str = g_ucs4_to_utf8(&ucs4_char, 1, NULL, NULL, NULL);
222 if (utf8_str != NULL)
223 {
224 c = utf8_str[0];
225 g_free(utf8_str);
226 }
227
228 /* Hack because otherwise typing things like U.S. gets difficult
229 * if you have 'u' -> 'you' set as a correction...
230 *
231 * Part 1 of 2: This marks . as being an inside-word character. */
232 if (c == '.')
233 return TRUE;
234
218 if (gtk_text_iter_inside_word (iter) == TRUE) 235 if (gtk_text_iter_inside_word (iter) == TRUE)
219 return TRUE; 236 return TRUE;
220 237
221 if (gtk_text_iter_get_char(iter) == '\'') { 238 if (c == '\'') {
222 result = gtk_text_iter_backward_char(iter); 239 result = gtk_text_iter_backward_char(iter);
223 output = gtk_text_iter_inside_word(iter); 240 output = gtk_text_iter_inside_word(iter);
224 241
225 if (result) 242 if (result)
226 gtk_text_iter_forward_char(iter); 243 gtk_text_iter_forward_char(iter);
267 static void 284 static void
268 check_range(spellchk *spell, GtkTextBuffer *buffer, 285 check_range(spellchk *spell, GtkTextBuffer *buffer,
269 GtkTextIter start, GtkTextIter end) { 286 GtkTextIter start, GtkTextIter end) {
270 287
271 gboolean result; 288 gboolean result;
289 gchar *tmp;
290 int period_count = 0;
272 gchar *word; 291 gchar *word;
273 292
274 /* We need to go backwords to find out if we are inside a word or not. */ 293 /* We need to go backwords to find out if we are inside a word or not. */
275 gtk_text_iter_backward_char(&end); 294 gtk_text_iter_backward_char(&end);
276 295
292 gtk_text_iter_forward_char(&end); 311 gtk_text_iter_forward_char(&end);
293 312
294 /* Move backwards to the beginning of the word. */ 313 /* Move backwards to the beginning of the word. */
295 spellchk_backward_word_start(&start); 314 spellchk_backward_word_start(&start);
296 315
297 spell->word = g_strdup(gtk_text_iter_get_text(&start, &end)); 316 spell->word = gtk_text_iter_get_text(&start, &end);
298 if ((word = substitute_word(gtk_text_iter_get_text(&start, &end)))) { 317
318 /* Hack because otherwise typing things like U.S. gets difficult
319 * if you have 'u' -> 'you' set as a correction...
320 *
321 * Part 2 of 2: This chops periods off the end of the word so
322 * the right substitution entry is found. */
323 tmp = g_strdup(spell->word);
324 if (tmp != NULL && *tmp != '\0') {
325 gchar *c;
326 for (c = tmp + strlen(tmp) - 1 ; c != tmp ; c--) {
327 if (*c == '.') {
328 *c = '\0';
329 period_count++;
330 } else
331 break;
332 }
333 }
334
335 if ((word = substitute_word(tmp))) {
299 GtkTextMark *mark; 336 GtkTextMark *mark;
300 GtkTextIter pos; 337 GtkTextIter pos;
338 gchar *tmp2;
339 int i;
340
341 for (i = 1 ; i <= period_count ; i++) {
342 tmp2 = g_strconcat(word, ".", NULL);
343 g_free(word);
344 word = tmp2;
345 }
301 346
302 gtk_text_buffer_delete(buffer, &start, &end); 347 gtk_text_buffer_delete(buffer, &start, &end);
303 gtk_text_buffer_insert(buffer, &start, word, -1); 348 gtk_text_buffer_insert(buffer, &start, word, -1);
304 349
305 mark = gtk_text_buffer_get_insert(buffer); 350 mark = gtk_text_buffer_get_insert(buffer);
306 gtk_text_buffer_get_iter_at_mark(buffer, &pos, mark); 351 gtk_text_buffer_get_iter_at_mark(buffer, &pos, mark);
307 spell->pos = gtk_text_iter_get_offset(&pos); 352 spell->pos = gtk_text_iter_get_offset(&pos);
308 353
354 g_free(word);
355 g_free(tmp);
309 return; 356 return;
310 } 357 }
358 g_free(tmp);
311 359
312 /* g_free(spell->word); */ 360 /* g_free(spell->word); */
313 spell->word = NULL; 361 spell->word = NULL;
314 362
315 } 363 }
524 "BAD agreemnet\nGOOD agreement\n" 572 "BAD agreemnet\nGOOD agreement\n"
525 "BAD agreemnets\nGOOD agreements\n" 573 "BAD agreemnets\nGOOD agreements\n"
526 "BAD agressive\nGOOD aggressive\n" 574 "BAD agressive\nGOOD aggressive\n"
527 "BAD agressiveness\nGOOD aggressiveness\n" 575 "BAD agressiveness\nGOOD aggressiveness\n"
528 "BAD ahd\nGOOD had\n" 576 "BAD ahd\nGOOD had\n"
577 "BAD ahold\nGOOD a hold\n"
529 "BAD ahppen\nGOOD happen\n" 578 "BAD ahppen\nGOOD happen\n"
530 "BAD ahve\nGOOD have\n" 579 "BAD ahve\nGOOD have\n"
531 "BAD allready\nGOOD already\n" 580 "BAD allready\nGOOD already\n"
532 "BAD allwasy\nGOOD always\n" 581 "BAD allwasy\nGOOD always\n"
533 "BAD allwyas\nGOOD always\n" 582 "BAD allwyas\nGOOD always\n"
695 "BAD comunity\nGOOD community\n" 744 "BAD comunity\nGOOD community\n"
696 "BAD condolances\nGOOD condolences\n" 745 "BAD condolances\nGOOD condolences\n"
697 "BAD conected\nGOOD connected\n" 746 "BAD conected\nGOOD connected\n"
698 "BAD conferance\nGOOD conference\n" 747 "BAD conferance\nGOOD conference\n"
699 "BAD confirmmation\nGOOD confirmation\n" 748 "BAD confirmmation\nGOOD confirmation\n"
749 "BAD congradulations\nGOOD congratulations\n"
700 "BAD considerit\nGOOD considerate\n" 750 "BAD considerit\nGOOD considerate\n"
701 "BAD considerite\nGOOD considerate\n" 751 "BAD considerite\nGOOD considerate\n"
702 "BAD consonent\nGOOD consonant\n" 752 "BAD consonent\nGOOD consonant\n"
703 "BAD conspiricy\nGOOD conspiracy\n" 753 "BAD conspiricy\nGOOD conspiracy\n"
704 "BAD consultent\nGOOD consultant\n" 754 "BAD consultent\nGOOD consultant\n"
719 "BAD couldthe\nGOOD could the\n" 769 "BAD couldthe\nGOOD could the\n"
720 "BAD couldve\nGOOD could've\n" 770 "BAD couldve\nGOOD could've\n"
721 "BAD cpoy\nGOOD copy\n" 771 "BAD cpoy\nGOOD copy\n"
722 "BAD creme\nGOOD crème\n" 772 "BAD creme\nGOOD crème\n"
723 "BAD ctaegory\nGOOD category\n" 773 "BAD ctaegory\nGOOD category\n"
774 "BAD cu\nGOOD see you\n"
724 "BAD cusotmer\nGOOD customer\n" 775 "BAD cusotmer\nGOOD customer\n"
725 "BAD cusotmers\nGOOD customers\n" 776 "BAD cusotmers\nGOOD customers\n"
726 "BAD cutsomer\nGOOD customer\n" 777 "BAD cutsomer\nGOOD customer\n"
727 "BAD cutsomers\nGOOD customer\n" 778 "BAD cutsomers\nGOOD customer\n"
728 "BAD cuz\nGOOD because\n" 779 "BAD cuz\nGOOD because\n"
793 "BAD doign\nGOOD doing\n" 844 "BAD doign\nGOOD doing\n"
794 "BAD doimg\nGOOD doing\n" 845 "BAD doimg\nGOOD doing\n"
795 "BAD doind\nGOOD doing\n" 846 "BAD doind\nGOOD doing\n"
796 "BAD dollers\nGOOD dollars\n" 847 "BAD dollers\nGOOD dollars\n"
797 "BAD donig\nGOOD doing\n" 848 "BAD donig\nGOOD doing\n"
849 "BAD donno\nGOOD don't know\n"
798 "BAD dont\nGOOD don't\n" 850 "BAD dont\nGOOD don't\n"
799 "BAD do'nt\nGOOD don't\n" 851 "BAD do'nt\nGOOD don't\n"
800 "BAD don;t\nGOOD don't\n" 852 "BAD don;t\nGOOD don't\n"
801 "BAD don't no\nGOOD don't know\n" 853 "BAD don't no\nGOOD don't know\n"
802 "BAD dosn't\nGOOD doesn't\n" 854 "BAD dosn't\nGOOD doesn't\n"
803 "BAD driveing\nGOOD driving\n" 855 "BAD driveing\nGOOD driving\n"
804 "BAD drnik\nGOOD drink\n" 856 "BAD drnik\nGOOD drink\n"
857 "BAD dunno\nGOOD don't know\n"
805 "BAD eclair\nGOOD éclair\n" 858 "BAD eclair\nGOOD éclair\n"
806 "BAD efel\nGOOD feel\n" 859 "BAD efel\nGOOD feel\n"
807 "BAD effecient\nGOOD efficient\n" 860 "BAD effecient\nGOOD efficient\n"
808 "BAD efort\nGOOD effort\n" 861 "BAD efort\nGOOD effort\n"
809 "BAD eforts\nGOOD efforts\n" 862 "BAD eforts\nGOOD efforts\n"
811 "BAD eligable\nGOOD eligible\n" 864 "BAD eligable\nGOOD eligible\n"
812 "BAD embarass\nGOOD embarrass\n" 865 "BAD embarass\nGOOD embarrass\n"
813 "BAD emigre\nGOOD émigré\n" 866 "BAD emigre\nGOOD émigré\n"
814 "BAD enought\nGOOD enough\n" 867 "BAD enought\nGOOD enough\n"
815 "BAD entree\nGOOD entrée\n" 868 "BAD entree\nGOOD entrée\n"
869 "BAD enuf\nGOOD enough\n"
816 "BAD equippment\nGOOD equipment\n" 870 "BAD equippment\nGOOD equipment\n"
817 "BAD equivalant\nGOOD equivalent\n" 871 "BAD equivalant\nGOOD equivalent\n"
818 "BAD esle\nGOOD else\n" 872 "BAD esle\nGOOD else\n"
819 "BAD especally\nGOOD especially\n" 873 "BAD especally\nGOOD especially\n"
820 "BAD especialyl\nGOOD especially\n" 874 "BAD especialyl\nGOOD especially\n"
913 "BAD hesaid\nGOOD he said\n" 967 "BAD hesaid\nGOOD he said\n"
914 "BAD hewas\nGOOD he was\n" 968 "BAD hewas\nGOOD he was\n"
915 "BAD hge\nGOOD he\n" 969 "BAD hge\nGOOD he\n"
916 "BAD hismelf\nGOOD himself\n" 970 "BAD hismelf\nGOOD himself\n"
917 "BAD hlep\nGOOD help\n" 971 "BAD hlep\nGOOD help\n"
972 "BAD hott\nGOOD hot\n"
918 "BAD hows\nGOOD how's\n" 973 "BAD hows\nGOOD how's\n"
919 "BAD hsa\nGOOD has\n" 974 "BAD hsa\nGOOD has\n"
920 "BAD hse\nGOOD she\n" 975 "BAD hse\nGOOD she\n"
921 "BAD hsi\nGOOD his\n" 976 "BAD hsi\nGOOD his\n"
922 "BAD hte\nGOOD the\n" 977 "BAD hte\nGOOD the\n"
931 "BAD httpL\nGOOD http:\n" 986 "BAD httpL\nGOOD http:\n"
932 "BAD hvae\nGOOD have\n" 987 "BAD hvae\nGOOD have\n"
933 "BAD hvaing\nGOOD having\n" 988 "BAD hvaing\nGOOD having\n"
934 "BAD hwich\nGOOD which\n" 989 "BAD hwich\nGOOD which\n"
935 "BAD i\nGOOD I\n" 990 "BAD i\nGOOD I\n"
991 "BAD i c\nGOOD I see\n"
936 "BAD i;d\nGOOD I'd\n" 992 "BAD i;d\nGOOD I'd\n"
937 "BAD i'd\nGOOD I'd\n" 993 "BAD i'd\nGOOD I'd\n"
938 "BAD I;d\nGOOD I'd\n" 994 "BAD I;d\nGOOD I'd\n"
939 "BAD idae\nGOOD idea\n" 995 "BAD idae\nGOOD idea\n"
940 "BAD idaes\nGOOD ideas\n" 996 "BAD idaes\nGOOD ideas\n"
1012 "BAD konw\nGOOD know\n" 1068 "BAD konw\nGOOD know\n"
1013 "BAD konwn\nGOOD known\n" 1069 "BAD konwn\nGOOD known\n"
1014 "BAD konws\nGOOD knows\n" 1070 "BAD konws\nGOOD knows\n"
1015 "BAD labratory\nGOOD laboratory\n" 1071 "BAD labratory\nGOOD laboratory\n"
1016 "BAD lastyear\nGOOD last year\n" 1072 "BAD lastyear\nGOOD last year\n"
1073 "BAD laterz\nGOOD later\n"
1017 "BAD learnign\nGOOD learning\n" 1074 "BAD learnign\nGOOD learning\n"
1018 "BAD lenght\nGOOD length\n" 1075 "BAD lenght\nGOOD length\n"
1019 "BAD let;s\nGOOD let's\n" 1076 "BAD let;s\nGOOD let's\n"
1020 "BAD let's him\nGOOD lets him\n" 1077 "BAD let's him\nGOOD lets him\n"
1021 "BAD let's it\nGOOD lets it\n" 1078 "BAD let's it\nGOOD lets it\n"
1064 "BAD must of been\nGOOD must have been\n" 1121 "BAD must of been\nGOOD must have been\n"
1065 "BAD must of had\nGOOD must have had\n" 1122 "BAD must of had\nGOOD must have had\n"
1066 "BAD mysefl\nGOOD myself\n" 1123 "BAD mysefl\nGOOD myself\n"
1067 "BAD myu\nGOOD my\n" 1124 "BAD myu\nGOOD my\n"
1068 "BAD naive\nGOOD naïve\n" 1125 "BAD naive\nGOOD naïve\n"
1126 "BAD ne way\nGOOD anyway\n"
1127 "BAD ne ways\nGOOD anyways\n"
1069 "BAD ne1\nGOOD anyone\n" 1128 "BAD ne1\nGOOD anyone\n"
1129 "BAD neway\nGOOD anyway\n"
1130 "BAD neways\nGOOD anyways\n"
1070 "BAD necassarily\nGOOD necessarily\n" 1131 "BAD necassarily\nGOOD necessarily\n"
1071 "BAD necassary\nGOOD necessary\n" 1132 "BAD necassary\nGOOD necessary\n"
1072 "BAD neccessarily\nGOOD necessarily\n" 1133 "BAD neccessarily\nGOOD necessarily\n"
1073 "BAD neccessary\nGOOD necessary\n" 1134 "BAD neccessary\nGOOD necessary\n"
1074 "BAD necesarily\nGOOD necessarily\n" 1135 "BAD necesarily\nGOOD necessarily\n"
1081 "BAD nwe\nGOOD new\n" 1142 "BAD nwe\nGOOD new\n"
1082 "BAD nwo\nGOOD now\n" 1143 "BAD nwo\nGOOD now\n"
1083 "BAD obediant\nGOOD obedient\n" 1144 "BAD obediant\nGOOD obedient\n"
1084 "BAD ocasion\nGOOD occasion\n" 1145 "BAD ocasion\nGOOD occasion\n"
1085 "BAD occassion\nGOOD occasion\n" 1146 "BAD occassion\nGOOD occasion\n"
1147 "BAD occurance\nGOOD occurrence\n"
1086 "BAD occured\nGOOD occurred\n" 1148 "BAD occured\nGOOD occurred\n"
1087 "BAD occurence\nGOOD occurrence\n" 1149 "BAD occurence\nGOOD occurrence\n"
1088 "BAD occurrance\nGOOD occurrence\n" 1150 "BAD occurrance\nGOOD occurrence\n"
1089 "BAD oclock\nGOOD o'clock\n" 1151 "BAD oclock\nGOOD o'clock\n"
1090 "BAD oculd\nGOOD could\n" 1152 "BAD oculd\nGOOD could\n"
1143 "BAD porblem\nGOOD problem\n" 1205 "BAD porblem\nGOOD problem\n"
1144 "BAD porblems\nGOOD problems\n" 1206 "BAD porblems\nGOOD problems\n"
1145 "BAD porvide\nGOOD provide\n" 1207 "BAD porvide\nGOOD provide\n"
1146 "BAD possable\nGOOD possible\n" 1208 "BAD possable\nGOOD possible\n"
1147 "BAD postition\nGOOD position\n" 1209 "BAD postition\nGOOD position\n"
1210 "BAD potatoe\nGOOD potato\n"
1211 "BAD potatos\nGOOD potatoes\n"
1148 "BAD potentialy\nGOOD potentially\n" 1212 "BAD potentialy\nGOOD potentially\n"
1149 "BAD ppl\nGOOD people\n" 1213 "BAD ppl\nGOOD people\n"
1150 "BAD pregnent\nGOOD pregnant\n" 1214 "BAD pregnent\nGOOD pregnant\n"
1151 "BAD presance\nGOOD presence\n" 1215 "BAD presance\nGOOD presence\n"
1216 "BAD primative\nGOOD primitive\n"
1152 "BAD probelm\nGOOD problem\n" 1217 "BAD probelm\nGOOD problem\n"
1153 "BAD probelms\nGOOD problems\n" 1218 "BAD probelms\nGOOD problems\n"
1219 "BAD probly\nGOOD probably\n"
1154 "BAD prominant\nGOOD prominent\n" 1220 "BAD prominant\nGOOD prominent\n"
1155 "BAD protege\nGOOD protégé\n" 1221 "BAD protege\nGOOD protégé\n"
1156 "BAD protoge\nGOOD protégé\n" 1222 "BAD protoge\nGOOD protégé\n"
1157 "BAD psoition\nGOOD position\n" 1223 "BAD psoition\nGOOD position\n"
1158 "BAD ptogress\nGOOD progress\n" 1224 "BAD ptogress\nGOOD progress\n"
1167 "BAD questiosn\nGOOD questions\n" 1233 "BAD questiosn\nGOOD questions\n"
1168 "BAD questoin\nGOOD question\n" 1234 "BAD questoin\nGOOD question\n"
1169 "BAD quetion\nGOOD question\n" 1235 "BAD quetion\nGOOD question\n"
1170 "BAD quetions\nGOOD questions\n" 1236 "BAD quetions\nGOOD questions\n"
1171 "BAD r\nGOOD are\n" 1237 "BAD r\nGOOD are\n"
1238 "BAD raeson\nGOOD reason\n"
1172 "BAD realyl\nGOOD really\n" 1239 "BAD realyl\nGOOD really\n"
1173 "BAD reccomend\nGOOD recommend\n" 1240 "BAD reccomend\nGOOD recommend\n"
1174 "BAD reccommend\nGOOD recommend\n" 1241 "BAD reccommend\nGOOD recommend\n"
1175 "BAD receieve\nGOOD receive\n" 1242 "BAD receieve\nGOOD receive\n"
1176 "BAD recieve\nGOOD receive\n" 1243 "BAD recieve\nGOOD receive\n"
1181 "BAD recomendations\nGOOD recommendations\n" 1248 "BAD recomendations\nGOOD recommendations\n"
1182 "BAD recomended\nGOOD recommended\n" 1249 "BAD recomended\nGOOD recommended\n"
1183 "BAD reconize\nGOOD recognize\n" 1250 "BAD reconize\nGOOD recognize\n"
1184 "BAD recrod\nGOOD record\n" 1251 "BAD recrod\nGOOD record\n"
1185 "BAD rediculous\nGOOD ridiculous\n" 1252 "BAD rediculous\nGOOD ridiculous\n"
1253 "BAD reguard\nGOOD regard\n"
1186 "BAD religous\nGOOD religious\n" 1254 "BAD religous\nGOOD religious\n"
1187 "BAD reluctent\nGOOD reluctant\n" 1255 "BAD reluctent\nGOOD reluctant\n"
1188 "BAD remeber\nGOOD remember\n" 1256 "BAD remeber\nGOOD remember\n"
1189 "BAD reommend\nGOOD recommend\n" 1257 "BAD reommend\nGOOD recommend\n"
1190 "BAD representativs\nGOOD representatives\n" 1258 "BAD representativs\nGOOD representatives\n"
1212 "BAD saidhe\nGOOD said he\n" 1280 "BAD saidhe\nGOOD said he\n"
1213 "BAD saidit\nGOOD said it\n" 1281 "BAD saidit\nGOOD said it\n"
1214 "BAD saidthat\nGOOD said that\n" 1282 "BAD saidthat\nGOOD said that\n"
1215 "BAD saidthe\nGOOD said the\n" 1283 "BAD saidthe\nGOOD said the\n"
1216 "BAD saidt he\nGOOD said the\n" 1284 "BAD saidt he\nGOOD said the\n"
1285 "BAD sandwhich\nGOOD sandwich\n"
1286 "BAD sandwitch\nGOOD sandwich\n"
1217 "BAD saturday\nGOOD Saturday\n" 1287 "BAD saturday\nGOOD Saturday\n"
1218 "BAD scedule\nGOOD schedule\n" 1288 "BAD scedule\nGOOD schedule\n"
1219 "BAD sceduled\nGOOD scheduled\n" 1289 "BAD sceduled\nGOOD scheduled\n"
1220 "BAD seance\nGOOD séance\n" 1290 "BAD seance\nGOOD séance\n"
1221 "BAD secratary\nGOOD secretary\n" 1291 "BAD secratary\nGOOD secretary\n"
1266 "BAD soudn\nGOOD sound\n" 1336 "BAD soudn\nGOOD sound\n"
1267 "BAD soudns\nGOOD sounds\n" 1337 "BAD soudns\nGOOD sounds\n"
1268 "BAD speach\nGOOD speech\n" 1338 "BAD speach\nGOOD speech\n"
1269 "BAD specificaly\nGOOD specifically\n" 1339 "BAD specificaly\nGOOD specifically\n"
1270 "BAD specificalyl\nGOOD specifically\n" 1340 "BAD specificalyl\nGOOD specifically\n"
1341 "BAD spelt\nGOOD spelled\n"
1271 "BAD sry\nGOOD sorry\n" 1342 "BAD sry\nGOOD sorry\n"
1272 "BAD statment\nGOOD statement\n" 1343 "BAD statment\nGOOD statement\n"
1273 "BAD statments\nGOOD statements\n" 1344 "BAD statments\nGOOD statements\n"
1274 "BAD stnad\nGOOD stand\n" 1345 "BAD stnad\nGOOD stand\n"
1275 "BAD stopry\nGOOD story\n" 1346 "BAD stopry\nGOOD story\n"
1290 "BAD sunday\nGOOD Sunday\n" 1361 "BAD sunday\nGOOD Sunday\n"
1291 "BAD suposed\nGOOD supposed\n" 1362 "BAD suposed\nGOOD supposed\n"
1292 "BAD suppossed\nGOOD supposed\n" 1363 "BAD suppossed\nGOOD supposed\n"
1293 "BAD suprise\nGOOD surprise\n" 1364 "BAD suprise\nGOOD surprise\n"
1294 "BAD suprised\nGOOD surprised\n" 1365 "BAD suprised\nGOOD surprised\n"
1366 "BAD sux\nGOOD sucks\n"
1295 "BAD swiming\nGOOD swimming\n" 1367 "BAD swiming\nGOOD swimming\n"
1296 "BAD tahn\nGOOD than\n" 1368 "BAD tahn\nGOOD than\n"
1297 "BAD taht\nGOOD that\n" 1369 "BAD taht\nGOOD that\n"
1298 "BAD talekd\nGOOD talked\n" 1370 "BAD talekd\nGOOD talked\n"
1299 "BAD talkign\nGOOD talking\n" 1371 "BAD talkign\nGOOD talking\n"
1305 "BAD termoil\nGOOD turmoil\n" 1377 "BAD termoil\nGOOD turmoil\n"
1306 "BAD tets\nGOOD test\n" 1378 "BAD tets\nGOOD test\n"
1307 "BAD tghe\nGOOD the\n" 1379 "BAD tghe\nGOOD the\n"
1308 "BAD tghis\nGOOD this\n" 1380 "BAD tghis\nGOOD this\n"
1309 "BAD thansk\nGOOD thanks\n" 1381 "BAD thansk\nGOOD thanks\n"
1382 "BAD thanx\nGOOD thanks\n"
1310 "BAD thats\nGOOD that's\n" 1383 "BAD thats\nGOOD that's\n"
1311 "BAD thatthe\nGOOD that the\n" 1384 "BAD thatthe\nGOOD that the\n"
1312 "BAD thatt he\nGOOD that the\n" 1385 "BAD thatt he\nGOOD that the\n"
1313 "BAD thecompany\nGOOD the company\n" 1386 "BAD thecompany\nGOOD the company\n"
1314 "BAD thefirst\nGOOD the first\n" 1387 "BAD thefirst\nGOOD the first\n"
1344 "BAD thme\nGOOD them\n" 1417 "BAD thme\nGOOD them\n"
1345 "BAD thna\nGOOD than\n" 1418 "BAD thna\nGOOD than\n"
1346 "BAD thne\nGOOD then\n" 1419 "BAD thne\nGOOD then\n"
1347 "BAD thnig\nGOOD thing\n" 1420 "BAD thnig\nGOOD thing\n"
1348 "BAD thnigs\nGOOD things\n" 1421 "BAD thnigs\nGOOD things\n"
1422 "BAD tho\nGOOD though\n"
1349 "BAD threatend\nGOOD threatened\n" 1423 "BAD threatend\nGOOD threatened\n"
1350 "BAD thsi\nGOOD this\n" 1424 "BAD thsi\nGOOD this\n"
1351 "BAD thsoe\nGOOD those\n" 1425 "BAD thsoe\nGOOD those\n"
1352 "BAD thta\nGOOD that\n" 1426 "BAD thta\nGOOD that\n"
1353 "BAD thursday\nGOOD Thursday\n" 1427 "BAD thursday\nGOOD Thursday\n"
1366 "BAD togehter\nGOOD together\n" 1440 "BAD togehter\nGOOD together\n"
1367 "BAD toldt he\nGOOD told the\n" 1441 "BAD toldt he\nGOOD told the\n"
1368 "BAD tomorow\nGOOD tomorrow\n" 1442 "BAD tomorow\nGOOD tomorrow\n"
1369 "BAD tongiht\nGOOD tonight\n" 1443 "BAD tongiht\nGOOD tonight\n"
1370 "BAD tonihgt\nGOOD tonight\n" 1444 "BAD tonihgt\nGOOD tonight\n"
1445 "BAD tonite\nGOOD tonight\n"
1371 "BAD totaly\nGOOD totally\n" 1446 "BAD totaly\nGOOD totally\n"
1372 "BAD totalyl\nGOOD totally\n" 1447 "BAD totalyl\nGOOD totally\n"
1373 "BAD tothe\nGOOD to the\n" 1448 "BAD tothe\nGOOD to the\n"
1374 "BAD tot he\nGOOD to the\n" 1449 "BAD tot he\nGOOD to the\n"
1375 "BAD towrad\nGOOD toward\n" 1450 "BAD towrad\nGOOD toward\n"
1404 "BAD waht\nGOOD what\n" 1479 "BAD waht\nGOOD what\n"
1405 "BAD warrent\nGOOD warrant\n" 1480 "BAD warrent\nGOOD warrant\n"
1406 "BAD wa snot\nGOOD was not\n" 1481 "BAD wa snot\nGOOD was not\n"
1407 "BAD wasnt\nGOOD wasn't\n" 1482 "BAD wasnt\nGOOD wasn't\n"
1408 "BAD wasn;t\nGOOD wasn't\n" 1483 "BAD wasn;t\nGOOD wasn't\n"
1484 "BAD wat\nGOOD what\n"
1409 "BAD watn\nGOOD want\n" 1485 "BAD watn\nGOOD want\n"
1410 "BAD we;d\nGOOD we'd\n" 1486 "BAD we;d\nGOOD we'd\n"
1411 "BAD wednesday\nGOOD Wednesday\n" 1487 "BAD wednesday\nGOOD Wednesday\n"
1488 "BAD wel\nGOOD we'll\n"
1412 "BAD wehn\nGOOD when\n" 1489 "BAD wehn\nGOOD when\n"
1413 "BAD wel\nGOOD we'll\n" 1490 "BAD we'l\nGOOD we'll\n"
1414 "BAD we;ll\nGOOD we'll\n" 1491 "BAD we;ll\nGOOD we'll\n"
1415 "BAD we;re\nGOOD we're\n" 1492 "BAD we;re\nGOOD we're\n"
1416 "BAD werent\nGOOD weren't\n" 1493 "BAD werent\nGOOD weren't\n"
1417 "BAD weren;t\nGOOD weren't\n" 1494 "BAD weren;t\nGOOD weren't\n"
1418 "BAD wern't\nGOOD weren't\n" 1495 "BAD wern't\nGOOD weren't\n"
1474 "BAD wtih\nGOOD with\n" 1551 "BAD wtih\nGOOD with\n"
1475 "BAD wuould\nGOOD would\n" 1552 "BAD wuould\nGOOD would\n"
1476 "BAD wut\nGOOD what\n" 1553 "BAD wut\nGOOD what\n"
1477 "BAD wya\nGOOD way\n" 1554 "BAD wya\nGOOD way\n"
1478 "BAD y\nGOOD why\n" 1555 "BAD y\nGOOD why\n"
1556 "BAD yeh\nGOOD yeah\n"
1479 "BAD yera\nGOOD year\n" 1557 "BAD yera\nGOOD year\n"
1480 "BAD yeras\nGOOD years\n" 1558 "BAD yeras\nGOOD years\n"
1481 "BAD yersa\nGOOD years\n" 1559 "BAD yersa\nGOOD years\n"
1482 "BAD yoiu\nGOOD you\n" 1560 "BAD yoiu\nGOOD you\n"
1483 "BAD youare\nGOOD you are\n" 1561 "BAD youare\nGOOD you are\n"