[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Bug 130397
From: |
Geoff Kuenning |
Subject: |
Re: Bug 130397 |
Date: |
18 Jan 2005 14:57:05 +0100 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 |
> I agree that marking would help ispell.el to decide which dictionary
> to use on a word. However, even without marking users might still prefer
> to check words simultaneously with multiple dictionaries
That's a good point. Unfortunately, the current implementation of
ispell makes it impossible to use two dictionaries simultaneously.
I do recall hearing from one user who used a pipe something like this:
ispell -d language-1 -l | ispell -d language-2 -l ... | sort -uf
but of course that only provides a list of misspelled words, and loses
all the correction capabilities.
Just brainstorming, it probably wouldn't be too hard to write a
postprocessing script for -a mode that turned the output of ispell -a
into something suitable for another ispell. The idea would be that
you feed:
I do not want to acept my bda lueck
and turn the output lines:
@(#) International Ispell Version 3.2.06 08/01/01
*
*
*
*
*
& acept 2 17: accept, adept
*
& bda 9 26: Ada, baa, bad, bea, bida, boa, bra, FDA, Ida
& lueck 1 30: luck
into a line of blanks and misspelled words:
acept bda lueck
which can then be fed into another ispell -a instance. The final
output would be returned to emacs. The pipe would look like:
ispell -a -d language-1 | fixispell-a | ispell -a -d language-2
In fact, this script is so easy I think I'll whip it up right now.
It's called fixispell-a, and it will be in the next ispell release.
Here it is:
#!/bin/sh
#
# $Id: fixispell-a,v 1.1 2005/01/18 13:48:52 geoff Exp geoff $
#
# Copyright 2005, Geoff Kuenning, Claremont, CA.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. All modifications to the source code must be clearly marked as
# such. Binary redistributions based on modified source code
# must be clearly marked as modified versions in the documentation
# and/or other materials provided with the distribution.
# 4. The code that causes the 'ispell -v' command to display a prominent
# link to the official ispell Web site may not be removed.
# 5. The name of Geoff Kuenning may not be used to endorse or promote
# products derived from this software without specific prior
# written permission.
#
# THIS SOFTWARE IS PROVIDED BY GEOFF KUENNING AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL GEOFF KUENNING OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# Take the output of "ispell -a" and turn it into a line that can be
# fed into another "ispell -a" instance.
#
# Usage:
#
USAGE='Usage: ispell -a <ispell-switches> | fixispell-a | ispell -a ...'
#
# BUGS:
#
# This script is probably not portable to older systems.
#
# $Log: fixispell-a,v $
# Revision 1.1 2005/01/18 13:48:52 geoff
# Initial revision
#
case "$#" in
0)
;;
*)
echo "$USAGE" 1>&2
exit 2
;;
esac
awk 'NR == 1 \
{
next
}
NF == 0 \
{
print line
line = ""
next
}
$1 == "*" || $1 == "+" || $1 == "-" \
{
next
}
$1 == "&" || $1 == "?" || $1 == "#" \
{
if ($1 == "#")
offset = $3 + 0
else
offset = substr($4, 1, length($4) - 1) + 0
if (length(line) < offset)
line = sprintf("%s%*s", line, offset - length(line), "")
line = line $2
next
}
{
print "fixispell-a: unrecognized ispell input line" $0 > "/dev/stderr"
exit(2)
}'
--
Geoff Kuenning address@hidden http://www.cs.hmc.edu/~geoff/
If a person is obviously mentally disabled, such as having Down's
syndrome or Alzheimer's, decent people exercise sympathy and
understanding in their interactions. So why, if someone merely has a
low IQ, is he treated with ridicule and contempt?
- Re: Bug 130397, (continued)
- Re: Bug 130397, Geoff Kuenning, 2005/01/09
- Re: Bug 130397, Eli Zaretskii, 2005/01/10
- Re: Bug 130397, David Kastrup, 2005/01/10
- Re: Bug 130397, Eli Zaretskii, 2005/01/10
- Re: Bug 130397, Kenichi Handa, 2005/01/13
- Re: Bug 130397, Peter Heslin, 2005/01/08
- Re: Bug 130397, Agustin Martin, 2005/01/07
- Re: Bug 130397, Juri Linkov, 2005/01/07
- Re: Bug 130397, Kenichi Handa, 2005/01/13
- Re: Bug 130397, Juri Linkov, 2005/01/18
- Re: Bug 130397,
Geoff Kuenning <=
- Re: Bug 130397, Juri Linkov, 2005/01/19
- Re: Bug 130397, Geoff Kuenning, 2005/01/19
- Re: Bug 130397, Kenichi Handa, 2005/01/18
- Re: Bug 130397, Juri Linkov, 2005/01/19
- Re: Bug 130397, Kenichi Handa, 2005/01/19
- Re: Bug 130397, David Kastrup, 2005/01/19
- Re: Bug 130397, Ken Stevens, 2005/01/07
Re: Bug 130397 (Was: Emacs - Ispell problem with i[no]german dictionary), Agustin Martin, 2005/01/07