From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Allen Li Newsgroups: gmane.emacs.bugs Subject: bug#29923: [PATCH] Skip writing empty abbrev tables Date: Fri, 14 Sep 2018 18:22:07 -0700 Message-ID: References: <87tvmyflla.fsf@gmail.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000006d4d880575dec5f3" X-Trace: blaine.gmane.org 1536974471 18610 195.159.176.226 (15 Sep 2018 01:21:11 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 15 Sep 2018 01:21:11 +0000 (UTC) Cc: Allen Li , 29923@debbugs.gnu.org To: Noam Postavsky Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Sep 15 03:21:06 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g0zGj-0004hv-P5 for geb-bug-gnu-emacs@m.gmane.org; Sat, 15 Sep 2018 03:21:06 +0200 Original-Received: from localhost ([::1]:53985 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g0zIq-0002OS-5r for geb-bug-gnu-emacs@m.gmane.org; Fri, 14 Sep 2018 21:23:16 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60467) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g0zIg-0002OL-2E for bug-gnu-emacs@gnu.org; Fri, 14 Sep 2018 21:23:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g0zIc-0000Dk-1r for bug-gnu-emacs@gnu.org; Fri, 14 Sep 2018 21:23:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:36762) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g0zIb-0000Dc-OV for bug-gnu-emacs@gnu.org; Fri, 14 Sep 2018 21:23:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1g0zIb-00059q-KL for bug-gnu-emacs@gnu.org; Fri, 14 Sep 2018 21:23:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Allen Li Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 15 Sep 2018 01:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 29923 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 29923-submit@debbugs.gnu.org id=B29923.153697454719783 (code B ref 29923); Sat, 15 Sep 2018 01:23:01 +0000 Original-Received: (at 29923) by debbugs.gnu.org; 15 Sep 2018 01:22:27 +0000 Original-Received: from localhost ([127.0.0.1]:41020 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g0zI2-000590-S6 for submit@debbugs.gnu.org; Fri, 14 Sep 2018 21:22:27 -0400 Original-Received: from mail-io1-f66.google.com ([209.85.166.66]:39614) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g0zI0-00058j-TK for 29923@debbugs.gnu.org; Fri, 14 Sep 2018 21:22:25 -0400 Original-Received: by mail-io1-f66.google.com with SMTP id l7-v6so7447024iok.6 for <29923@debbugs.gnu.org>; Fri, 14 Sep 2018 18:22:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=felesatra-moe.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=kTTWPaNmNqBauf1zmdMcCwQ8yfAECFYGymeJVx2vJPU=; b=vnEsdN4q5bs3D+wPg31lxT11yVPGjlLSbT61+3FWHMbL+pe3UHljL/fvLL0hiGTrg0 m2LfFN/I2FwdKTdQ5cubfI/OAdO8ZDG+E4DU1OwU4rHLcEP4SA96V5KjevQCEQ1z/TD4 cyCGGTQvy4jt/EPU2EWat8qZkZ83GM0EZKx5ISgKaOn3FiDFnbwGFsJIiYCJaSB4I6XD srOQcVErnCvf1paPCGOt+m8Er/WpTCQFfvUOWXLlLcZhRsZ4FmiJpzu4emXzATDxrZ/7 GKpEDL7SjAH5G+iSgUZOyB2eOFGGdw38pRGvKlcMjy/O7lLdieWE1E1uVFnVsnZBq31R VOyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=kTTWPaNmNqBauf1zmdMcCwQ8yfAECFYGymeJVx2vJPU=; b=pQ+yAMZpLgVpZK/D+ZK7e3Cr/eYD3Tp7CrQ524IChEQsoBU4jamqbQ3n20SgbC8CN6 7k7JUH7clwd48Q1kbZ1w/XpQ341IE7gJG9AgbflkaOwMeo9stWmxzxlPC4hpKGYT9ERV PR0G6hCxdKTNXA8GOH+NwZk5t1mBf8etzp/iP5an/iDg/q6VbeWTqsE5i8eHjP4TSzRE moMaVspWzA3O9YQamQYRuiLfjH3rNG6iPmsw9JoVsZBE9uhVSYqIXEqOe5LEnQB4IMlG EvDqo8Mj0h/yJOobTkaJ5AI6AfNx1dkaAsfXHE1b+qXyoyukSUq/jwIxKCrSKyCKg54d IBdg== X-Gm-Message-State: APzg51DtNOgMeIeWlHOtQ9o7Nw+0aCsjEDRF3Yd0NDElIASD51Qn+xSq zvdyeZaYQ3AE+oLMPox4Fax9I4opS9VfpUPyEklLGw== X-Google-Smtp-Source: ANB0VdalWfBEijXo6ExDWDgTM/IS+Cwpo/ndfgoLPArXd4ORQvJ6oOyZn/GeuqE6Sq5N+a9kWj9yzvp5vcTZlR6jglU= X-Received: by 2002:a5e:8d18:: with SMTP id m24-v6mr12758642ioj.217.1536974539002; Fri, 14 Sep 2018 18:22:19 -0700 (PDT) In-Reply-To: <87tvmyflla.fsf@gmail.com> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:150325 Archived-At: --0000000000006d4d880575dec5f3 Content-Type: text/plain; charset="UTF-8" On Sun, Sep 9, 2018 at 1:43 PM Noam Postavsky wrote: > > Allen Li writes: > > > Subject: [PATCH] Skip writing empty abbrev tables > > > > Fixes bug#29923 > > > > * lisp/abbrev.el (write-abbrev-file): Pass SKIPEMPTY to > > insert-abbrev-table-description. > > (insert-abbrev-table-description): Add SKIPEMPTY optional > > parameter. Skip inserting empty tables if SKIPEMPTY is non-nil. > > > > (eval-when-compile (require 'cl-lib)) > > (require 'obarray) > > +(require 'seq) > > You didn't end up using seq, as far as I can tell. Thanks, removed. > > > -(defun insert-abbrev-table-description (name &optional readable) > > +(defun insert-abbrev-table-description (name &optional readable skipempty) > > "Insert before point a full description of abbrev table named NAME. > > NAME is a symbol whose value is an abbrev table. > > If optional 2nd arg READABLE is non-nil, a human-readable description > > is inserted. Otherwise the description is an expression, > > a call to `define-abbrev-table', which would > > define the abbrev table NAME exactly as it is currently defined. > > +If optional arg SKIPEMPTY is non-nil, skip insertion if table is empty. > > > > Abbrevs marked as \"system abbrevs\" are omitted." > > > - (mapatoms (lambda (sym) (if (symbol-value sym) (push sym symbols))) table) > > + (mapatoms (lambda (sym) > > + (if (and (symbol-value sym) (not (abbrev-get sym :system))) > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > Looks like the second check you added implements the "Abbrevs marked as > \"system abbrevs\" are omitted" part. I guess that actually fixes an > additional bug? Worth mentioning in the commit message, I think. The system abbrev omitting worked (if readable is nil); it's implemented in abbrev--write. However, that doesn't allow us to skip writing a table if it only contains system abbrevs; we'll still see a table with abbrevs, write the opening of the define-abbrev-table form, and then realize in abbrev-write that all of the abbrevs are system abbrevs. I noticed a bug in my patch where it would skip system abbrevs if readable was non-nil when it did not skip system abbrevs previously. I fixed this and also fixed the docstring to match what I believe is the intended behavior. --0000000000006d4d880575dec5f3 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Skip-writing-empty-abbrev-tables.patch" Content-Disposition: attachment; filename="0001-Skip-writing-empty-abbrev-tables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jm2qx2x90 RnJvbSAxMTRiOGFlNzFiOGE4N2Q0NDU5YzQ1YmM4ZDU3MWE1MzQ5MTJhODA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGxlbiBMaSA8ZGFya2ZlbGluZUBmZWxlc2F0cmEubW9lPgpE YXRlOiBTdW4sIDMxIERlYyAyMDE3IDIwOjMzOjIxIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gU2tp cCB3cml0aW5nIGVtcHR5IGFiYnJldiB0YWJsZXMKCkZpeGVzIGJ1ZyMyOTkyMwoKKiBsaXNwL2Fi YnJldi5lbCAoaW5zZXJ0LWFiYnJldi10YWJsZS1kZXNjcmlwdGlvbik6ClNraXAgaW5zZXJ0aW5n IGVtcHR5IHRhYmxlcyB3aGVuIFJFQURBQkxFIGlzIG5vbi1uaWwuCkNsYXJpZnkgYmVoYXZpb3Ig aW4gZG9jdW1lbnRhdGlvbiBzdHJpbmcuCi0tLQogbGlzcC9hYmJyZXYuZWwgfCA0MyArKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjQg aW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9hYmJyZXYu ZWwgYi9saXNwL2FiYnJldi5lbAppbmRleCBjZGRjZThmNTI5Li5hYzAxMzYzMzU3IDEwMDY0NAot LS0gYS9saXNwL2FiYnJldi5lbAorKysgYi9saXNwL2FiYnJldi5lbApAQCAtOTM4LDI3ICs5Mzgs MzIgQEAgaW5zZXJ0LWFiYnJldi10YWJsZS1kZXNjcmlwdGlvbgogYSBjYWxsIHRvIGBkZWZpbmUt YWJicmV2LXRhYmxlJywgd2hpY2ggd291bGQKIGRlZmluZSB0aGUgYWJicmV2IHRhYmxlIE5BTUUg ZXhhY3RseSBhcyBpdCBpcyBjdXJyZW50bHkgZGVmaW5lZC4KIAotQWJicmV2cyBtYXJrZWQgYXMg XCJzeXN0ZW0gYWJicmV2c1wiIGFyZSBvbWl0dGVkLiIKK0lmIFJFQURBQkxFIGlzIG5pbCwgYWJi cmV2cyBtYXJrZWQgYXMgXCJzeXN0ZW0gYWJicmV2c1wiIGFuZAorZW1wdHkgYWJicmV2IHRhYmxl cyBhcmUgb21pdHRlZC4iCiAgIChsZXQgKCh0YWJsZSAoc3ltYm9sLXZhbHVlIG5hbWUpKQogICAg ICAgICAoc3ltYm9scyAoKSkpCi0gICAgKG1hcGF0b21zIChsYW1iZGEgKHN5bSkgKGlmIChzeW1i b2wtdmFsdWUgc3ltKSAocHVzaCBzeW0gc3ltYm9scykpKSB0YWJsZSkKLSAgICAoc2V0cSBzeW1i b2xzIChzb3J0IHN5bWJvbHMgJ3N0cmluZy1sZXNzcCkpCi0gICAgKGxldCAoKHN0YW5kYXJkLW91 dHB1dCAoY3VycmVudC1idWZmZXIpKSkKLSAgICAgIChpZiByZWFkYWJsZQotCSAgKHByb2duCi0J ICAgIChpbnNlcnQgIigiKQotCSAgICAocHJpbjEgbmFtZSkKLQkgICAgKGluc2VydCAiKVxuXG4i KQotCSAgICAobWFwYyAnYWJicmV2LS1kZXNjcmliZSBzeW1ib2xzKQotCSAgICAoaW5zZXJ0ICJc blxuIikpCi0JKGluc2VydCAiKGRlZmluZS1hYmJyZXYtdGFibGUgJyIpCi0JKHByaW4xIG5hbWUp Ci0JKGlmIChudWxsIHN5bWJvbHMpCi0JICAgIChpbnNlcnQgIiAnKCkpXG5cbiIpCi0JICAoaW5z ZXJ0ICJcbiAgJyhcbiIpCi0JICAobWFwYyAnYWJicmV2LS13cml0ZSBzeW1ib2xzKQotCSAgKGlu c2VydCAiICAgKSlcblxuIikpKQotICAgICAgbmlsKSkpCisgICAgKG1hcGF0b21zIChsYW1iZGEg KHN5bSkKKyAgICAgICAgICAgICAgICAoaWYgKGFuZCAoc3ltYm9sLXZhbHVlIHN5bSkgKG9yIHJl YWRhYmxlIChub3QgKGFiYnJldi1nZXQgc3ltIDpzeXN0ZW0pKSkpCisgICAgICAgICAgICAgICAg ICAgIChwdXNoIHN5bSBzeW1ib2xzKSkpCisgICAgICAgICAgICAgIHRhYmxlKQorICAgICh3aGVu IHN5bWJvbHMKKyAgICAgIChzZXRxIHN5bWJvbHMgKHNvcnQgc3ltYm9scyAnc3RyaW5nLWxlc3Nw KSkKKyAgICAgIChsZXQgKChzdGFuZGFyZC1vdXRwdXQgKGN1cnJlbnQtYnVmZmVyKSkpCisgICAg ICAgIChpZiByZWFkYWJsZQorICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgIChpbnNl cnQgIigiKQorICAgICAgICAgICAgICAocHJpbjEgbmFtZSkKKyAgICAgICAgICAgICAgKGluc2Vy dCAiKVxuXG4iKQorICAgICAgICAgICAgICAobWFwYyAnYWJicmV2LS1kZXNjcmliZSBzeW1ib2xz KQorICAgICAgICAgICAgICAoaW5zZXJ0ICJcblxuIikpCisgICAgICAgICAgKGluc2VydCAiKGRl ZmluZS1hYmJyZXYtdGFibGUgJyIpCisgICAgICAgICAgKHByaW4xIG5hbWUpCisgICAgICAgICAg KGlmIChudWxsIHN5bWJvbHMpCisgICAgICAgICAgICAgIChpbnNlcnQgIiAnKCkpXG5cbiIpCisg ICAgICAgICAgICAoaW5zZXJ0ICJcbiAgJyhcbiIpCisgICAgICAgICAgICAobWFwYyAnYWJicmV2 LS13cml0ZSBzeW1ib2xzKQorICAgICAgICAgICAgKGluc2VydCAiICAgKSlcblxuIikpKQorICAg ICAgICBuaWwpKSkpCiAKIChkZWZ1biBkZWZpbmUtYWJicmV2LXRhYmxlICh0YWJsZW5hbWUgZGVm aW5pdGlvbnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wdGlvbmFs IGRvY3N0cmluZyAmcmVzdCBwcm9wcykKLS0gCjIuMTkuMC4zOTcuZ2RkOTAzNDBmNmEtZ29vZwoK --0000000000006d4d880575dec5f3--