Subject: bug#36243: 26.2; defining inverse abbrevs include space

From: Noam Postavsky <[email-masked]>
Date: Mon, 17 Jun 2019 10:44:36 -0400

Allen Li <[email-masked]> writes:

> Defining an inverse abbrev in a buffer like so (@ is point):
>
> some text foo @
>
> C-x a i l find outer otter RET
>
> defines an abbrev "foo " -> "find outer otter"

> * lisp/abbrev.el (inverse-add-abbrev): Skip trailing nonword
> characters when defining abbrev.

>  (defun inverse-add-abbrev (table type arg)
>    (let (name exp start end)
>      (save-excursion
> -      (forward-word (1+ (- arg)))
> +      (if (<= arg 0)
> +          (forward-word (1+ (- arg)))
> +        (forward-word (- arg))
> +        (forward-word))
>        (setq end (point))
>        (backward-word 1)

This seems like a somewhat obfuscated way of skipping nonword
characters.  How about using skip-syntax-backward instead?