diff -ru hunspell-1.2.7.orig/src/tools/hunspell.cxx hunspell-1.2.7/src/tools/hunspell.cxx --- hunspell-1.2.7.orig/src/tools/hunspell.cxx 2008-08-15 11:06:33.000000000 +0100 +++ hunspell-1.2.7/src/tools/hunspell.cxx 2008-11-19 09:13:31.000000000 +0000 @@ -1468,9 +1468,21 @@ fprintf(stdout,gettext(HUNSPELL_PIPE_HEADING)); fflush(stdout); } else if ((strcmp(argv[i],"-m")==0)) { - filter_mode = ANALYZE; + /* + if -a was used, don't override, i.e. keep ispell compatability + ispell: Make possible root/affix combinations that aren't in the dictionary. + hunspell: Analyze the words of the input text + */ + if (filter_mode != PIPE) + filter_mode = ANALYZE; } else if ((strcmp(argv[i],"-s")==0)) { - filter_mode = STEM; + /* + if -a was used, don't override, i.e. keep ispell compatability + ispell: Stop itself with a SIGTSTP signal after each line of input. + hunspell: Stem the words of the input text + */ + if (filter_mode != PIPE) + filter_mode = STEM; } else if ((strcmp(argv[i],"-t")==0)) { format = FMT_LATEX; } else if ((strcmp(argv[i],"-n")==0)) { @@ -1480,15 +1492,45 @@ } else if ((strcmp(argv[i],"-l")==0)) { filter_mode = BADWORD; } else if ((strcmp(argv[i],"-w")==0)) { - filter_mode = WORDFILTER; + /* + if -a was used, don't override, i.e. keep ispell compatability + ispell: Specify additional characters that can be part of a word. + hunspell: Print mispelled words (= lines) from one word/line input + */ + if (filter_mode != PIPE) + filter_mode = WORDFILTER; } else if ((strcmp(argv[i],"-L")==0)) { - filter_mode = BADLINE; + /* + if -a was used, don't override, i.e. keep ispell compatability + ispell: Number of lines of context to be shown at the bottom of the screen + hunspell: Print lines with mispelled words + */ + if (filter_mode != PIPE) + filter_mode = BADLINE; } else if ((strcmp(argv[i],"-u")==0)) { - filter_mode = AUTO0; + /* + if -a was used, don't override, i.e. keep ispell compatability + ispell: None + hunspell: Show typical misspellings + */ + if (filter_mode != PIPE) + filter_mode = AUTO0; } else if ((strcmp(argv[i],"-U")==0)) { - filter_mode = AUTO; + /* + if -a was used, don't override, i.e. keep ispell compatability + ispell: None + hunspell: Automatic correction of typical misspellings to stdout + */ + if (filter_mode != PIPE) + filter_mode = AUTO; } else if ((strcmp(argv[i],"-u2")==0)) { - filter_mode = AUTO2; + /* + if -a was used, don't override, i.e. keep ispell compatability + ispell: None + hunspell: Print typical misspellings in sed format + */ + if (filter_mode != PIPE) + filter_mode = AUTO2; } else if ((strcmp(argv[i],"-G")==0)) { printgood = 1; } else if ((strcmp(argv[i],"-1")==0)) {