all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Agustin Martin <agustin.martin@hispalinux.es>
To: 6539@debbugs.gnu.org
Subject: bug#6539: ispell-complete-word looks for wrong file (at least on	w32)
Date: Mon, 5 Jul 2010 13:52:22 +0200	[thread overview]
Message-ID: <20100705115222.GA2013@agmartin.aq.upm.es> (raw)
In-Reply-To: <836310bezc.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 2333 bytes --]

On Wed, Jun 30, 2010 at 08:35:35PM +0300, Eli Zaretskii wrote:
> > Date: Wed, 30 Jun 2010 14:27:47 +0200
> > From: Agustin Martin <agustin.martin@hispalinux.es>
> > Cc: 
> > 
> > > > I think that this bug report can be closed or renamed to something like
> > > > 'Improve `ispell-alternate-dictionary' docstring'.
> > > 
> > > I think the default for ispell-alternate-dictionary should be changed on w32.
> > 
> > Or, more globally, find a good and not confusing name for default personal 
> > plain wordlist that can be used in every system, be it w32 or not, so it is 
> > tried first in `ispell-alternate-dictionary', something like
> > 
> > (expand-file-name "~/.personal.words")
> 
> How will that help, exactly?  /usr/dict/words exists on almost every
> Posix system, which is why ispell.el has that as the default.  But
> there's no comparable functionality on Windows, so the only way of
> getting this work on Windows is to find or download such a file from
> somewhere, and manually install it in some arbitrary directory.  How
> is Emacs supposed to know whether such a file exists, and where?

[Really attaching diff]

My initial intention was to provide an out-of-the box default for personal
wordlist, useful for both w32 and *X systems. However, as you point out in
another message, since this is originally an Ispell feature, I think I
should not add an Emacs specific difference. Customizing
`ispell-alternate-dictionary' (or `ispell-complete-word-dict') seems the 
way to go.

However, docstrings and error handling for this complete-word stuff needs 
to be improved, so it provides useful and accurate information. I am 
currently trying something like attached patch where 
`ispell-alternate-dictionary' is set to nil if no default is found and 
checked before use. I find error message too long, but better that before.
As usually, suggestions are welcome.

It also changes `file-exists-p' to `file-readable-p' in
`ispell-alternate-dictionary' definition.

I have also noticed that ispell.el uses `ispell-alternate-dictionary' and
`ispell-complete-word-dict' in a way that seems to be interchangeable, but
confusing. The former was probably used at some time as a real alternate
dictionary for spellchecking, but current use seems to be for completion.
Have to think a bit more about this.

Cheers,

-- 
Agustin

[-- Attachment #2: ispell.el_complete-word-2.diff --]
[-- Type: text/x-diff, Size: 2056 bytes --]

--- ispell.el.orig	2010-07-05 11:31:21.000000000 +0200
+++ ispell.el	2010-07-05 13:25:03.000000000 +0200
@@ -357,21 +357,20 @@
   :group 'ispell)
 
 (defcustom ispell-alternate-dictionary
-  (cond ((file-exists-p "/usr/dict/web2") "/usr/dict/web2")
-	((file-exists-p "/usr/share/dict/web2") "/usr/share/dict/web2")
-	((file-exists-p "/usr/dict/words") "/usr/dict/words")
-	((file-exists-p "/usr/lib/dict/words") "/usr/lib/dict/words")
-	((file-exists-p "/usr/share/dict/words") "/usr/share/dict/words")
-	((file-exists-p "/usr/share/lib/dict/words")
+  (cond ((file-readable-p "/usr/dict/web2") "/usr/dict/web2")
+	((file-readable-p "/usr/share/dict/web2") "/usr/share/dict/web2")
+	((file-readable-p "/usr/dict/words") "/usr/dict/words")
+	((file-readable-p "/usr/lib/dict/words") "/usr/lib/dict/words")
+	((file-readable-p "/usr/share/dict/words") "/usr/share/dict/words")
+	((file-readable-p "/usr/share/lib/dict/words")
 	 "/usr/share/lib/dict/words")
-	((file-exists-p "/sys/dict") "/sys/dict")
-	(t "/usr/dict/words"))
-  "*Alternate dictionary for spelling help."
+	((file-readable-p "/sys/dict") "/sys/dict"))
+  "*Alternate plain word-list dictionary for spelling help."
   :type '(choice file (const :tag "None" nil))
   :group 'ispell)
 
 (defcustom ispell-complete-word-dict ispell-alternate-dictionary
-  "*Dictionary used for word completion."
+  "*Plain word-list dictionary used for word completion."
   :type '(choice file (const :tag "None" nil))
   :group 'ispell)
 
@@ -2273,6 +2272,12 @@
   (if (null lookup-dict)
       (setq lookup-dict ispell-alternate-dictionary))
 
+  (if lookup-dict
+      (unless (file-readable-p lookup-dict)
+	(error "lookup-words error: Unreadable or missing plain word-list %s."
+	       lookup-dict))
+    (error "lookup-words error: No plain word-list found at system default locations. Customize `ispell-alternate-dictionary' to set yours."))
+
   (let* ((process-connection-type ispell-use-ptys-p)
 	 (wild-p (string-match "\\*" word))
 	 (look-p (and ispell-look-p	; Only use look for an exact match.

  parent reply	other threads:[~2010-07-05 11:52 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-30  9:18 bug#6539: ispell-complete-word looks for wrong file (at least on w32) Lennart Borgman
2010-06-30 10:38 ` Agustin Martin
2010-06-30 11:45   ` Lennart Borgman
2010-06-30 12:27     ` Agustin Martin
2010-06-30 17:35       ` Eli Zaretskii
2010-07-05 11:30         ` Agustin Martin
2010-07-05 11:52         ` Agustin Martin [this message]
2010-07-05 12:27           ` Lennart Borgman
2010-07-05 17:23           ` Eli Zaretskii
2010-07-05 17:32             ` Lennart Borgman
2010-07-05 17:39               ` Eli Zaretskii
2010-07-05 17:55                 ` Lennart Borgman
2010-07-05 18:23                   ` Eli Zaretskii
2010-07-05 19:50                     ` Lennart Borgman
2010-07-06 13:48                       ` Agustin Martin
2010-07-06 15:12             ` Agustin Martin
2010-07-06 18:26               ` Eli Zaretskii
2010-06-30 18:07       ` Lennart Borgman
2010-06-30 17:31     ` Eli Zaretskii
2010-06-30 18:13       ` Lennart Borgman
2010-06-30 20:55         ` Eli Zaretskii
2010-06-30 21:04           ` Lennart Borgman
2010-07-01  3:16             ` Eli Zaretskii
2010-07-01  9:45               ` Lennart Borgman
2010-07-01 16:54                 ` Eli Zaretskii
2010-07-01 17:01                   ` Lennart Borgman
2011-07-13 23:42                   ` Lars Magne Ingebrigtsen
2010-07-01  1:34   ` Stefan Monnier
2010-07-01  3:17     ` Eli Zaretskii
2010-07-23 15:32       ` Stefan Monnier
2010-07-23 16:47         ` Agustin Martin
2010-07-23 18:01         ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100705115222.GA2013@agmartin.aq.upm.es \
    --to=agustin.martin@hispalinux.es \
    --cc=6539@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.