GNU bug report logs - #45693
28.0.50; abbrev does not expand two words any more

Previous Next

Package: emacs;

Reported by: Uwe Brauer <oub <at> mat.ucm.es>

Date: Wed, 6 Jan 2021 15:56:02 UTC

Severity: normal

Found in version 28.0.50

Full log


View this message in rfc822 format

From: Uwe Brauer <oub <at> mat.ucm.es>
To: Uwe Brauer <oub <at> mat.ucm.es>
Cc: larsi <at> gnus.org, Robert Pluim <rpluim <at> gmail.com>, 45693 <at> debbugs.gnu.org
Subject: bug#45693: [two word expansion works, but write-abbrev-file destroys it]
Date: Wed, 13 Jan 2021 08:37:04 +0100
[Message part 1 (text/plain, inline)]
>>> "RP" == Robert Pluim <rpluim <at> gmail.com> writes:

> Uwe Brauer <oub <at> mat.ucm.es> writes:
>>> Uwe Brauer <oub <at> mat.ucm.es> writes:
>> 
>>> What's your 'abbrev-file-name' set to? Emacs uses 'load' to read it,
>>> so it should be a complete pathname, ie "~/.abbrev_defs", or it should
>>> be in your 'load-path' somewhere.
>> 
>> Good and bad news. I repeated the test carefully looking around for old
>> abbrev.el or .abbrev_defs file.
>> 
>> 1. Good, I can confirm that your patched abbrev.el works in the
>> sense that write-abbrev-file does not destroy the properties of
>> the table.
>> 
>> 2. However I tried to add a local abbrev (or an inverse local
>> abbrev) in the fundamental mode, but I obtain 
>> 
>> obarray-get: Wrong type argument: vectorp, ([## 0 0 0 0 0 0 0 0 0 ...] [## 0 0 0 0 0 0 0 0 0 ...]) [2 times]

> Could you tell me exactly what you did? I suspect there are more
> places that are not aware of the :parents property that need fixing.

I will first describe the problem adding a local abbrev, I suspect that
fixing that problem would also fix the flyspell problem, since flyspell
uses the local-abbrev command (at least in my setting: I have
set
(setq flyspell-use-global-abbrev-table-p nil))



Steps to reproduce (I attach the files for convenience)

    1. Start emacs -Q

    2. Load the patched abbrev.el provided by Robert

    3. Load or execute the following

       a. (setq abbrev-file-name "~/Abbrev-Doble/.abbrev-new_defs") ; or
          any other path

       b. (read-abbrev-file "~/Abbrev-Doble/.abbrev-double_defs") ; file attached

       c. (setq-default abbrev-mode t)

    4. Open a file in fundamental mode, called say new.

    5. Execute (setq local-abbrev-table (list my-abbrev-table fundamental-mode-abbrev-table))

    6. Check via edit-abbrevs (note: the properties are not displayed by
       this function! Should that be fixed also?

    7. Check whether the doble expansion works:

       a. Type a que

       b. Indeed it works

    8. Add a local (inverse) abbrev:

       a. Type nacion

       b. Put the cursor at the end of the word

       c. Type C-x a i l

       d. Type nación

       e. The error pops up
          obarray-get: Wrong type argument: vectorp, ([## 0 0 0 0 0 0 0 0 0 ...] [## 0 0 0 0 0 0 0 0 0 ...])

    9. Repeat step 7 but use C-x a i g

       a. No error! Understandable because the global abbrev table does
          not have properties.

Did I explain that enough?

Uwe 


[.abbrev-double_defs (application/octet-stream, attachment)]
[new (application/octet-stream, attachment)]
[test-doble-abbrev.el (application/emacs-lisp, attachment)]
[smime.p7s (application/pkcs7-signature, attachment)]

This bug report was last modified 4 years and 156 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.