From 114b8ae71b8a87d4459c45bc8d571a534912a807 Mon Sep 17 00:00:00 2001 From: Allen Li Date: Sun, 31 Dec 2017 20:33:21 -0800 Subject: [PATCH] Skip writing empty abbrev tables Fixes bug#29923 * lisp/abbrev.el (insert-abbrev-table-description): Skip inserting empty tables when READABLE is non-nil. Clarify behavior in documentation string. --- lisp/abbrev.el | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/lisp/abbrev.el b/lisp/abbrev.el index cddce8f529..ac01363357 100644 --- a/lisp/abbrev.el +++ b/lisp/abbrev.el @@ -938,27 +938,32 @@ insert-abbrev-table-description a call to `define-abbrev-table', which would define the abbrev table NAME exactly as it is currently defined. -Abbrevs marked as \"system abbrevs\" are omitted." +If READABLE is nil, abbrevs marked as \"system abbrevs\" and +empty abbrev tables are omitted." (let ((table (symbol-value name)) (symbols ())) - (mapatoms (lambda (sym) (if (symbol-value sym) (push sym symbols))) table) - (setq symbols (sort symbols 'string-lessp)) - (let ((standard-output (current-buffer))) - (if readable - (progn - (insert "(") - (prin1 name) - (insert ")\n\n") - (mapc 'abbrev--describe symbols) - (insert "\n\n")) - (insert "(define-abbrev-table '") - (prin1 name) - (if (null symbols) - (insert " '())\n\n") - (insert "\n '(\n") - (mapc 'abbrev--write symbols) - (insert " ))\n\n"))) - nil))) + (mapatoms (lambda (sym) + (if (and (symbol-value sym) (or readable (not (abbrev-get sym :system)))) + (push sym symbols))) + table) + (when symbols + (setq symbols (sort symbols 'string-lessp)) + (let ((standard-output (current-buffer))) + (if readable + (progn + (insert "(") + (prin1 name) + (insert ")\n\n") + (mapc 'abbrev--describe symbols) + (insert "\n\n")) + (insert "(define-abbrev-table '") + (prin1 name) + (if (null symbols) + (insert " '())\n\n") + (insert "\n '(\n") + (mapc 'abbrev--write symbols) + (insert " ))\n\n"))) + nil)))) (defun define-abbrev-table (tablename definitions &optional docstring &rest props) -- 2.19.0.397.gdd90340f6a-goog