From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Tino Calancha Newsgroups: gmane.emacs.bugs Subject: bug#25049: ibuffer bug when saving existing filter, with patches Date: Wed, 30 Nov 2016 00:06:43 +0900 Message-ID: <8737ianx4s.fsf@gmail.com> References: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1480432294 5510 195.159.176.226 (29 Nov 2016 15:11:34 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 29 Nov 2016 15:11:34 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) Cc: Christopher Genovese , tino.calancha@gmail.com To: 25049@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Nov 29 16:11:24 2016 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 1cBk43-00082m-A1 for geb-bug-gnu-emacs@m.gmane.org; Tue, 29 Nov 2016 16:11:23 +0100 Original-Received: from localhost ([::1]:37534 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cBk45-0004dK-Ji for geb-bug-gnu-emacs@m.gmane.org; Tue, 29 Nov 2016 10:11:25 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57423) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cBk0t-0002lI-HB for bug-gnu-emacs@gnu.org; Tue, 29 Nov 2016 10:08:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cBk0o-0000CR-Er for bug-gnu-emacs@gnu.org; Tue, 29 Nov 2016 10:08:07 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:59109) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cBk0o-0000CK-Ad for bug-gnu-emacs@gnu.org; Tue, 29 Nov 2016 10:08:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cBk0o-0005xG-5T for bug-gnu-emacs@gnu.org; Tue, 29 Nov 2016 10:08:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Tino Calancha Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 29 Nov 2016 15:08:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25049 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 25049-submit@debbugs.gnu.org id=B25049.148043202522759 (code B ref 25049); Tue, 29 Nov 2016 15:08:02 +0000 Original-Received: (at 25049) by debbugs.gnu.org; 29 Nov 2016 15:07:05 +0000 Original-Received: from localhost ([127.0.0.1]:46275 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cBjzt-0005v0-07 for submit@debbugs.gnu.org; Tue, 29 Nov 2016 10:07:05 -0500 Original-Received: from mail-pg0-f52.google.com ([74.125.83.52]:36721) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cBjzr-0005uO-Ip for 25049@debbugs.gnu.org; Tue, 29 Nov 2016 10:07:04 -0500 Original-Received: by mail-pg0-f52.google.com with SMTP id f188so70182573pgc.3 for <25049@debbugs.gnu.org>; Tue, 29 Nov 2016 07:07:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=8f2Fpo4cCtbkaaLg8Cvumc/Bq/tqH9JTmjT0SjLdnyQ=; b=yD2bIE1+8xOMD6QzIJe0M3vumyomBJ5fhPEYyRAVooCgwfyefHuG48D+5f1H0xypdk nZnR9CRp+O2S2VCRN+anRDx+odmTNcXG0cjJpb1GUHoEKW1qRzXJNXVQuGoEm84IK99u r70lAMdU1W8EtAx/AbA3Iw9csRY5jTXoqA6qH3cBCajAtb4aD9cjbs9lznUYcXxjNyht EY66uWpRZ5Jz1lWAwRUugMzTrIqOteuH3mLbsZVbPGYH88e20q8hG+k3N/SbmbF72Yr+ hME2zGgf5/i0GYm0CW8wgt02qBfSt4Ww/FVUTJ1ghBjrauaxGnrsCRwwN0zDbL7AV251 Q/hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=8f2Fpo4cCtbkaaLg8Cvumc/Bq/tqH9JTmjT0SjLdnyQ=; b=kIljbyoARpJuX3tYTdPt0RFwnI8E9rpmhZZIOSngWyyk+TXg7Vkkrd5keU799877tJ D2d24nCA1U+w0oWCrcKIlv2HWDBQm4N265RtsNtIq77tbJrhRw5QVvytiET/dD20SY7O 3kjA1MLjCmJnilm7OKf8biXcECnfOTlFIqdTF9Oq40b83Aumla6QCxTYZjYgZj95Wvrz 1h4S1cyIJVvLir4pQUaeOj/AaNa1UVFPNt391q+JTZ4Z6/dulgC6s2/a33Dp8ys/YopK EfzgsSWfS/Ism9QJCNmaxLjGnwEl2AVSBTnwlA9NhGMbBOgrTaixMpYMeg3Wb7ANI60I Z7eg== X-Gm-Message-State: AKaTC03ykYbrG+JcwOvc/2YmhHuJ85WgGNr8+Lz6vGC3VikS8kSj8uL9n7FP+54PsYbp9g== X-Received: by 10.99.188.2 with SMTP id q2mr50372312pge.34.1480432017866; Tue, 29 Nov 2016 07:06:57 -0800 (PST) Original-Received: from calancha-pc (177.192.218.133.dy.bbexcite.jp. [133.218.192.177]) by smtp.gmail.com with ESMTPSA id x2sm79860314pfx.65.2016.11.29.07.06.56 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 29 Nov 2016 07:06:57 -0800 (PST) In-Reply-To: (Christopher Genovese's message of "Mon, 28 Nov 2016 01:54:39 -0500") 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:126245 Archived-At: Christopher Genovese writes: > In at least Emacs 25+, the function 'ibuffer-save-filters' > handles saving existing filters and new filters inconsistently. Thank you for the bug report and the extensive analysis! Below i add some comments. > There are two immediate paths for fixing this: > > 1. Change the setcdr to add the extra level of nesting. > 2. Change the format of 'ibuffer-saved-filters' to remove > the level of testing, change the push (list->cons) and > the later accesses (cadr->cdr). > > The first is very simple, but the extra level of nesting > is unsightly, inconsistent with the structure of filter groups, > and mildly annoying when writing filters by hand. The > second is fairly simple, requiring only a few more small changes, > but introduces the complication of changing an existing > variable's format. (For what it's worth, I prefer the second.) I also prefer the larger fix 2. > I have attached a patch file with patches for three commits 1) (eval-when-compiler (require 'subr-x)) is missing 2) We might want to add :version "26.1" into `ibuffer-saved-filter' definition. 3) When `ibuffer-old-saved-filters-warning' is shown i miss that the buffer displaying it has the key binding `TAB' for `forward-button'. It might be a smarter way to do this, but i just put the buffer in help-mode as follows: @@ -11,12 +11,15 @@ (let ((fixed (ibuffer-update-saved-filters-format ibuffer-saved-filters))) (prog1 (setq ibuffer-saved-filters (cdr fixed)) - (when-let (old-format-detected? (car fixed)) + (when-let ((old-format-detected? (car fixed)) + (buffer-name "*Warnings*")) + (with-current-buffer (get-buffer-create buffer-name) + (help-mode)) (let ((warning-series t) (updated-form (with-output-to-string (pp `(setq ibuffer-saved-filters ',ibuffer-saved-filters))))) (display-warning 'ibuffer - (format ibuffer-old-saved-filters-warning updated-form)))))))) - + (format ibuffer-old-saved-filters-warning updated-form)) + nil buffer-name)))))) 4) [minor comment] It's not very common in Emacs to call a var `old-format-detected?'. Adding 'p' instead of '?' or even not suffix at all looks more usual. 5) >* lisp/ibuf-ext.el (ibuffer-saved-filters): removed extra ^^^^^^^ >nesting level in the alist values and updated docstring. >(ibuffer-save-filters): removed extra level of nesting ^^^^^^^ >in saved filter alist values when saving new filters. Please, start sentences in capital letters. Imperative form verb is prefered than pasive. removed extra nesting --> Remove extra nesting Thank you Tino