Subject: bug#79177: 31.0.50; [PATCH] [v4] Add tests to ispell.el

From: Lockywolf <[email-masked]>
Date: Thu, 07 Aug 2025 17:59:06 +0800

Eli Zaretskii <[email-masked]> writes:

>> From: Lockywolf <[email-masked]>
>> Cc: Lockywolf <[email-masked]>,  [email-masked]
>> Date: Thu, 07 Aug 2025 16:07:54 +0800
>> 
>> >> diff --git a/test/lisp/textmodes/ispell-resources/fake-aspell.bash b/test/lisp/textmodes/ispell-resources/fake-aspell.bash
>> >> new file mode 100755
>> >> index 00000000000..4406a18a22e
>> >> --- /dev/null
>> >> +++ b/test/lisp/textmodes/ispell-resources/fake-aspell.bash
>> >> @@ -0,0 +1,2 @@
>> >> +#!/bin/bash
>> >> +printf  '%s\n' "@(#) International Ispell Version 3.1.20 (but really Aspell 0.59.800)"
>> >
>> > I asked to use Emacs instead of a Bash script?  If that causes
>> > problems, let's discuss that, okay?
>> 
>> Aspell needs to parse the "-vv" command-line argument, and Emacs
>> launched in batch mode cannot do that.  Or I did not manage to make it.
>
> Sorry, I don't understand.  The Bash script just outputs a fixed
> string, and Emacs is capable of doing that.  What did you try, and if
> it didn''t work, how it failed to work?

No, it does not /just/ output a fixed string. It also _ignores_ the
command-line argument "-vv", which, if passed to emacs --batch, produces
and error Error: error ("Unknown option ‘-vv’"), and ispell.el does it
when initialising the backend.

>> >> +    (let ((test-dict "nonexistent")
>> >> +          (test-pdict "/tmp/lnonexistent.txt"))
>> >                          ^^^^^^^^^^^^^^^^^^^^^^^
>> > Likewise here: please use
>> >
>> >    (expand-file-name "lnonexistent.txt" temporary-file-directory)
>> >
>> > instead.  (There are several other places in the patch with the same
>> > problem.)
>> 
>> This is not a file path.  This is just a string which looks like a file
>> path.  If something tries to access this as if it is a path during the
>> execution of the test, this is an error.
>
> OK, but the file name you use is not an absolute file name on Windows,
> so it could cause problems.  Is there a problem with using my
> suggestion, even though you don't need a real file name?

ispell's man page says the following:

```
 The  -p  option  is  used  to  specify an alternate personal dictionary file.  If the file name does not begin with "/", $HOME is prefixed.
```

I do not want ispell to do any mangling of the "HOME" directory if this
"string which looks like a path" is by chance (if a test malfunctions)
passed to ispell binary and it creates a bogus file in the home
directory or overwrites something.
On windows "temporary-file-directory" probably does not begin with "/".

-- 
Your sincerely,
Vladimir Nikishkin (MiEr, lockywolf)
(Laptop)