summaryrefslogtreecommitdiff
path: root/doc/lispref/abbrevs.texi
diff options
context:
space:
mode:
authorAllen Li <darkfeline@felesatra.moe>2018-09-29 15:19:04 -0700
committerEli Zaretskii <eliz@gnu.org>2018-10-12 11:44:15 +0300
commitf5896e2cbf0e537ec6b79ba139220239f934c840 (patch)
tree51604349e1190449caf75043d689694a84212441 /doc/lispref/abbrevs.texi
parent5bd8cfc14d4b0c78c07e65a583f42a10c4cbc06d (diff)
downloademacs-f5896e2cbf0e537ec6b79ba139220239f934c840.tar.gz
Rework empty abbrev table omitting
There were two problems with the original implementation: 1. It changed the behavior of insert-abbrev-table-description when READABLE is nil to sometimes insert one Emacs Lisp expression and sometimes insert nothing. 2. It broke the tests. This commit reworks this so that insert-abbrev-table-description always inserts an expressions even if no abbrevs need to be saved and making only write-abbrev-file check that a table has any abbrevs to save before calling insert-abbrev-table-description. This duplicates the work of filtering the table for savable abbrevs, but the benefit of keeping the API is worth it. * doc/lispref/abbrevs.texi (Abbrev Tables): Update documentation. * lisp/abbrev.el (write-abbrev-file): Skip tables without user abbrevs (insert-abbrev-table-description): Always insert the define expression. (abbrev--table-symbols): New function. * test/lisp/abbrev-tests.el (abbrev--table-symbols-test): Add test for abbrev--table-symbols.
Diffstat (limited to 'doc/lispref/abbrevs.texi')
-rw-r--r--doc/lispref/abbrevs.texi7
1 files changed, 3 insertions, 4 deletions
diff --git a/doc/lispref/abbrevs.texi b/doc/lispref/abbrevs.texi
index 4c9e653cb19..1e9471ba27a 100644
--- a/doc/lispref/abbrevs.texi
+++ b/doc/lispref/abbrevs.texi
@@ -122,9 +122,7 @@ System abbrevs are listed and identified as such. Otherwise the
description is a Lisp expression---a call to @code{define-abbrev-table}
that would define @var{name} as it is currently defined, but without
the system abbrevs. (The mode or package using @var{name} is supposed
-to add these to @var{name} separately.) If the Lisp expression would
-not define any abbrevs (i.e.@: it defines an empty abbrev table), this
-function inserts nothing.
+to add these to @var{name} separately.)
@end defun
@node Defining Abbrevs
@@ -234,7 +232,8 @@ Emacs commands to offer to save your abbrevs.
Save all abbrev definitions (except system abbrevs), for all abbrev
tables listed in @code{abbrev-table-name-list}, in the file
@var{filename}, in the form of a Lisp program that when loaded will
-define the same abbrevs. If @var{filename} is @code{nil} or omitted,
+define the same abbrevs. Tables that do not have any abbrevs to save
+are omitted. If @var{filename} is @code{nil} or omitted,
@code{abbrev-file-name} is used. This function returns @code{nil}.
@end deffn