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#24997: 26.0.50; ibuffer-decompose-filter has side effects on error Date: Sun, 27 Nov 2016 12:54:30 +0900 Message-ID: <877f7py3ux.fsf@gmail.com> References: <878tsa6453.fsf@gmail.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1480218915 2796 195.159.176.226 (27 Nov 2016 03:55:15 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 27 Nov 2016 03:55:15 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) Cc: tino.calancha@gmail.com To: 24997@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Nov 27 04:55:10 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 1cAqYX-000804-89 for geb-bug-gnu-emacs@m.gmane.org; Sun, 27 Nov 2016 04:55:09 +0100 Original-Received: from localhost ([::1]:52771 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cAqYa-0003eP-N6 for geb-bug-gnu-emacs@m.gmane.org; Sat, 26 Nov 2016 22:55:12 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55592) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cAqYT-0003cu-T2 for bug-gnu-emacs@gnu.org; Sat, 26 Nov 2016 22:55:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cAqYQ-0000xx-Rd for bug-gnu-emacs@gnu.org; Sat, 26 Nov 2016 22:55:05 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:55655) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cAqYQ-0000xi-O5 for bug-gnu-emacs@gnu.org; Sat, 26 Nov 2016 22:55:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cAqYQ-0004e9-EV for bug-gnu-emacs@gnu.org; Sat, 26 Nov 2016 22:55: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: Sun, 27 Nov 2016 03:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 24997 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 24997-submit@debbugs.gnu.org id=B24997.148021888217829 (code B ref 24997); Sun, 27 Nov 2016 03:55:02 +0000 Original-Received: (at 24997) by debbugs.gnu.org; 27 Nov 2016 03:54:42 +0000 Original-Received: from localhost ([127.0.0.1]:42821 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cAqY5-0004dT-OC for submit@debbugs.gnu.org; Sat, 26 Nov 2016 22:54:41 -0500 Original-Received: from mail-pg0-f45.google.com ([74.125.83.45]:35562) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cAqY4-0004dF-6C for 24997@debbugs.gnu.org; Sat, 26 Nov 2016 22:54:40 -0500 Original-Received: by mail-pg0-f45.google.com with SMTP id p66so43581402pga.2 for <24997@debbugs.gnu.org>; Sat, 26 Nov 2016 19:54:40 -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=CtPaaJydBmYH5N5bthLpKTgSHXuCrBMcsBNe4MpSmes=; b=kHgPm/yTp+xxLHVOBQfAe2MTOoz3gJjvscD7p3SGut44o6imDdVtb8LBhuoNfOEbsJ gLJbC0nAtzHfPsfoRNMnCj2kB/HEWrScFB3XInTUThxbLZOCFRJP5CFMAO0fTtdjTcYM nRcK8lCLWbfPobMQ7oDsmVa7DeVJdUGyhhZoLq0Yg0K4yLDc+ZapUU1I+s0NgG3ojsH7 0Vr7nT92xzoupM8uPJDMZC8fRO5RaeB7aIvHATR4eIqyCy21Rcmow7Do28IbU7ajDWB4 SQc+7TyrWSo7YqO+aODayZi8coCQR0Dl2w4C7plfyOjNAYEcf9We8ADfbCOGgA/V4qzE jW+Q== 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=CtPaaJydBmYH5N5bthLpKTgSHXuCrBMcsBNe4MpSmes=; b=TbyBSfbax8L3l+8fq8BbCyHq5czPwAG61xPDFyuHG0gOYVHEeF2l/gJNBRsO7H4/Ru rCaWgWRIbqVwneAxXUawzh69b6/6JOc7ea8Qkbz9N6vPqctTDw4XX7T6QsjsPIkdTT2A csScDDLusTF1tXJm3qVtdy6+W2y6mwoVnOSojQJay24HuWbMCzv19sibJQgTDYpH8c9P ib+MdJHUuWO2Q8cCfsKB8es67+FJGW4I9EFyQRHSrpuF/cMHWAwOG0RWd8RrUndyPE+l O7YpN/XfDwmX9hD92BACUHzzjfPXA1Pgpoh39VoQ08exkMw359cltP1FC/EzT7H/Tw2U TbCg== X-Gm-Message-State: AKaTC02OEGr0tpWPlx7pKPoohQvwCDy4ELPkAMOHzYYzt+w6Q2pDX1vGi7Gf21ZOtGZz/g== X-Received: by 10.99.241.21 with SMTP id f21mr28339196pgi.110.1480218874088; Sat, 26 Nov 2016 19:54:34 -0800 (PST) Original-Received: from calancha-pc (57.92.100.220.dy.bbexcite.jp. [220.100.92.57]) by smtp.gmail.com with ESMTPSA id z9sm59809558pge.44.2016.11.26.19.54.32 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 26 Nov 2016 19:54:33 -0800 (PST) In-Reply-To: <878tsa6453.fsf@gmail.com> (Tino Calancha's message of "Wed, 23 Nov 2016 16:34:32 +0900") 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:126149 Archived-At: Previous patch had undesirable side effects on `ibuffer-saved-filters'. Updated patch: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; >From ffca1e2c713f39a0782b359279693e9e4245f791 Mon Sep 17 00:00:00 2001 From: Tino Calancha Date: Sun, 27 Nov 2016 12:46:19 +0900 Subject: [PATCH] ibuffer-decompose-filter: Avoid side effects on error * lisp/ibuf-ext.el (ibuffer-decompose-filter): Update 'ibuffer-filtering-qualifiers' only if there is no error (Bug#24997). --- lisp/ibuf-ext.el | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el index 5ef0746..63db1e6 100644 --- a/lisp/ibuf-ext.el +++ b/lisp/ibuf-ext.el @@ -840,29 +840,24 @@ ibuffer-decompose-filter be a complex filter like (OR [name: foo] [mode: bar-mode]), will be turned into two separate filters [name: foo] and [mode: bar-mode]." (interactive) - (when (null ibuffer-filtering-qualifiers) + (unless ibuffer-filtering-qualifiers (error "No filters in effect")) - (let ((lim (pop ibuffer-filtering-qualifiers))) - (pcase (car lim) - (`or - (setq ibuffer-filtering-qualifiers (append - (cdr lim) - ibuffer-filtering-qualifiers))) - (`saved - (let ((data - (assoc (cdr lim) - ibuffer-saved-filters))) - (unless data - (ibuffer-filter-disable) - (error "Unknown saved filter %s" (cdr lim))) - (setq ibuffer-filtering-qualifiers (append - (cadr data) - ibuffer-filtering-qualifiers)))) - (`not - (push (cdr lim) - ibuffer-filtering-qualifiers)) - (_ - (error "Filter type %s is not compound" (car lim))))) + (let* ((filters ibuffer-filtering-qualifiers) + (head (cdar filters)) + (tail (cdr filters)) + (value + (pcase (caar filters) + (`or (nconc head tail)) + (`saved + (let ((data (assoc head ibuffer-saved-filters))) + (unless data + (ibuffer-filter-disable) + (error "Unknown saved filter %s" head)) + (append (cadr data) tail))) + (`not (cons head tail)) + (_ + (error "Filter type %s is not compound" (caar filters)))))) + (setq ibuffer-filtering-qualifiers value)) (ibuffer-update nil t)) ;;;###autoload -- 2.10.2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; In GNU Emacs 26.0.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.3) of 2016-11-26 built on calancha-pc Repository revision: 416adda38521c6246f77877c57843264fa4ae711