THE SPELLUTILS PACKAGE

Spellutils is a suite of programs which are used to isolate some
parts from various types of files and hand them over to another
program which may change the texts; it is typically a spell checker.
Afterwards the possibly changed text parts are copied back in place
in the original file.


THE POSPELL PROGRAM

The program pospell will isolate the translations from a .po-file
then call some other program which may change the translations (e.g.
a spell checker), and eventually copy them back in place in the
.po-file.

Usage: pospell [-fsv] [-l language] -n pofile -p program [-- [arguments...]]

It copies the translation strings of the pofile to a temporary
file, called the spellfile, and then calls the program `program'
with all the `arguments'. Afterwards the possibly changed strings
is copied back into `pofile' and the spellfile is deleted.

If you specify `-' as pofile, pospell will read the file from
standard input and later write it back to standard output.

`%f' in the `program-argument's will be expanded to the name of the
temporary body file. `%%' gives a literal `%'.

The optional flags mean:
  -f: The called program is a filter so don't make a temporary file,
      but pipe the spellfile to its standard input, and later read
      its standard output.
  -l language: Only translations with the indicated language code are
      copied to the spellfile.
  -s: Quit with an error message if unrecognized items are found in
      the `pofile' or `spellfile'.
  -v: Print version and exit.

Examples:

Check the spelling of the Danish texts in a .po-file with ispell:

$ pospell -n da.po -p ispell -- -d dansk -x %f

See how the generated spellfile really looks like:

$ pospell -n da.po -p less -- %f

Check the spelling of the Danish texts in a multilingual .po-file
with ispell:

$ pospell -l da -n some_program.po -p ispell -- -d dansk -x %f


THE NEWSBODY PROGRAM

The program newsbody will isolate the body part of a news or email
message, then call some other program which may change the body,
and eventually merge the headers with the possibly changed body.

Command line options exist to also exclude quotes and signature,
and to keep certain or all header lines.

The program was originally made to be called from slrn's
post_filter_hook, but nothing prevents other uses of it.

Usage: newsbody [-fhqsv] [-k headername] -n newsfile -p program
       [-- [arguments...]]

It copies the body of the news article in `newsfile' to a temporary
file and then calls the program `program' with all the `arguments'.
Afterwards the possibly changed body is copied back into 'newsfile'
and the temporary file is deleted.

If you specify `-' as newsfile, newsbody will read the file from
standard input and later write it back to standard output.

`%f' in the `program-argument's will be expanded to the name of the
temporary body file. `%%' gives a literal `%'.

The optional flags mean:
  -f: The called program is a filter so don't make a temporary
      file, but pipe the body to its standard input, and later
      read its standard output.
  -h: Keep the entire header. This flag can also be used if
      `newsfile' doesn't have a header at all.
  -k headername: Keep these header lines in the body file.
      (Multiple -k flags are allowed).
  -q: Also remove quotes before filtering the body.
      Lines starting with `>' are considered quotes.
  -s: Also remove signature before filtering the body.
  -v: Print version and exit.

Examples:

Use newsbody to call ispell from the Mutt mailer, but don't
spell check your quotes (they should not be changed) or your
signature.

Method 1 using Mutt's built-in ispell command:
 - Make a shell script with this command:
   newsbody -hqs -n $2 -p ispell -- -x %f
 - Make Mutt's ispell command call the script by means of this
   command in your .muttrc:
   set ispell=path/to/script

Method 2 using a filter:
 - Define this Mutt macro in your .muttrc:
   macro compose i \
           "<filter-entry>newsbody -hqs -n - -p ispell -- -x %f<enter>" \
           "run ispell on the selected part"


REQUIREMENTS TO MAKE THE SPELLUTILS PROGRAMS

Nothing special besides a C compiler which understands standard ISO C
(also called ANSI C), and a make program.

I have tried to make the programs as portable as possible. If
something have to be done to build or run it on your particular
system, please tell me about it.


INSTALLATION

Spellutils uses GNU autoconf, so these few command should be
sufficient to make and install the programs:

$ ./configure
$ make
$ make install

You are also highly recommended to install gettext when building
the program in order to enable i18n/l10n support.


COPYRIGHT AND LICENSE

Copyright (C) Byrial Jensen <byrial@image.dk>

Some included parts are taken from the GNU libc, GNU autoconf, GNU
automake and GNU gettext packages: Copyright (C) Free Software
Foundation, Inc.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

The GNU General Public License is in the COPYING file.


AUTHOR

Byrial Jensen <byrial@image.dk>.
Comments, suggestions, and bug reports are welcome.
