Subject: bug#45693: [two word expansion works, but write-abbrev-file destroys it]

From: Robert Pluim <[email-masked]>
Date: Mon, 11 Jan 2021 11:49:41 +0100

Uwe Brauer <[email-masked]> writes:

> The part 
>         (define-abbrev-table 'my-abbrev-table
>       '(
>         ("a que" "a qué" nil :count 0))
>       "Uwe's table"
>       :regexp "\\(\\w+ \\w+\\)")
>
> Is gone!

Yes, and it gets worse. You can get around the 'setq
local-abbrev-table' issue by using the ':parents' property:

    (define-abbrev-table 'fundamental-mode-abbrev-table
      '(
        ("asi" "así" nil :count 0))
      "Fundamental"
      :parents (list my-abbrev-table))

    (define-abbrev-table 'my-abbrev-table
      '(
        ("a que" "a qué" nil :count 0))
      "Uwe's table"
      :regexp "\\(\\w+ \\w+\\)")

but write-abbrev-table then produces the following abbrev file:

;;-*-coding: utf-8;-*-
(define-abbrev-table 'fundamental-mode-abbrev-table
  '(
    ("asi" "así" nil :count 1)
   ))

(define-abbrev-table 'my-abbrev-table
  '(
    ("a que" "a qué" nil :count 1)
   ))

so write-abbrev-file doesnʼt write any of the properties specified in
define-abbrev-table to the abbrev file.

Robert