From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Leo Liu Newsgroups: gmane.emacs.bugs Subject: bug#13152: 24.2.90; [REGRESSION] dired-get-marked-files changed Date: Wed, 09 Jan 2013 19:07:57 +0800 Message-ID: References: <87fw3bpqir.fsf@mail.jurta.org> <8738zasw5w.fsf@mail.jurta.org> <87obhxbgdw.fsf@mail.jurta.org> <50CAFEBC.6000208@gmx.at> <50E67FE0.6030500@gmx.at> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1357729741 19014 80.91.229.3 (9 Jan 2013 11:09:01 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 9 Jan 2013 11:09:01 +0000 (UTC) Cc: 13152@debbugs.gnu.org To: Glenn Morris Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Jan 09 12:09:18 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TstX1-0002HI-Ep for geb-bug-gnu-emacs@m.gmane.org; Wed, 09 Jan 2013 12:09:15 +0100 Original-Received: from localhost ([::1]:57721 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TstWl-0004JC-Fd for geb-bug-gnu-emacs@m.gmane.org; Wed, 09 Jan 2013 06:08:59 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:35000) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TstWi-0004Ir-5K for bug-gnu-emacs@gnu.org; Wed, 09 Jan 2013 06:08:57 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TstWf-0006ZJ-FG for bug-gnu-emacs@gnu.org; Wed, 09 Jan 2013 06:08:56 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:44731) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TstWf-0006ZE-C3 for bug-gnu-emacs@gnu.org; Wed, 09 Jan 2013 06:08:53 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1TstWo-0004Ca-6r for bug-gnu-emacs@gnu.org; Wed, 09 Jan 2013 06:09:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Leo Liu Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 09 Jan 2013 11:09:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 13152 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 13152-submit@debbugs.gnu.org id=B13152.135772971116108 (code B ref 13152); Wed, 09 Jan 2013 11:09:02 +0000 Original-Received: (at 13152) by debbugs.gnu.org; 9 Jan 2013 11:08:31 +0000 Original-Received: from localhost ([127.0.0.1]:57972 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TstWI-0004Bk-JK for submit@debbugs.gnu.org; Wed, 09 Jan 2013 06:08:31 -0500 Original-Received: from mail-pa0-f42.google.com ([209.85.220.42]:60486) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TstWG-0004BX-0W for 13152@debbugs.gnu.org; Wed, 09 Jan 2013 06:08:29 -0500 Original-Received: by mail-pa0-f42.google.com with SMTP id rl6so972509pac.1 for <13152@debbugs.gnu.org>; Wed, 09 Jan 2013 03:08:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:references:face:date:in-reply-to :message-id:user-agent:mime-version:content-type; bh=yYynUOOkeJKf+UCvYeG3tega5XHdX84HbAexlMkwsUU=; b=JPsJXLxvzmCJt0GUvrUps0OXr4fyk+bmpeoj9OgOeVSjM5uyMzw/+8KD4SoD99ew7W E7jj1T3HMAopm8z9U1u3ahyCtRgsrvzhsPj8v9xO1AnQPG3V7MQvvfLxoQxpVsEfg/cm 5qJ8OBnlInOScfkYSns1OvioXoMHy7+T3CRV/ZCQ33ejzhJw6xKcOLWGxtxBNXu3YqMS 2Arblqb59g738q1gUZ809jm14cEDwS1s1xVZtaNRZAnk3UVQI/2B2WC3MF/DZpk6ORdG OxFHwBSq0MEpwOlCIYNF9kcXv/4qyMTmneEq9r0/7s/aR8iet8qwlYtfgYOU/oL4Mhyv B4LA== X-Received: by 10.68.211.42 with SMTP id mz10mr210132374pbc.100.1357729692935; Wed, 09 Jan 2013 03:08:12 -0800 (PST) Original-Received: from Shidais-iMac.local ([119.255.41.67]) by mx.google.com with ESMTPS id nf9sm41460675pbc.17.2013.01.09.03.08.09 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 09 Jan 2013 03:08:11 -0800 (PST) Face: iVBORw0KGgoAAAANSUhEUgAAACgAAAAoBAMAAAB+0KVeAAAAG1BMVEUAAAA9Cgm3Hx1WWFWA gn+WmJWsrqv4+vcCAwCRl2MkAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAYoA AAGKATOXMFgAAAAHdElNRQfXAQwDNR+ZJmElAAABIklEQVQoz22SPW+DQAyGWUq65qasd9PNUSX4 AZHK2C1rJy5jpDS4IwRVup9dn7GNafpKIPPgzztXFSujqq1eM2n8h22oMkvxI/i9C97kRfMRUN55 dS3BrsAwBXUtMLAO4lryh8kTjOxKpQNniNxAgZOEe4bZwsDTFhKdqZRLNII4OQNHhEuq/RMkm6Cj TnnEA/fk0BorcYn5qA3oaeAxbaBOLrX+9G48NZ2Fzc2tzDM8Q+tMypEOqYHh8mAWaaK3U/cDMOT5 aMZMABgPXc7zPMs1A8DXO756GFJ/4fMEq47hTsAdn5avoxZ4ywl0c2w4Flu2Ybeyb3S+EqxX2DYA H8veJGEDTnHnrXvRaPyt+2kSfK6rfBZ2tUtfP/mR+pR6sX8BUZ/cDV7tvkoAAAAASUVORK5CYII= In-Reply-To: (Glenn Morris's message of "Tue, 08 Jan 2013 17:35:44 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.91 (OS X 10.8.2) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 140.186.70.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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:69538 Archived-At: On 2013-01-09 06:35 +0800, Glenn Morris wrote: > Maybe you can just make dired-get-marked-files throw an explicit error > "Not in Dired mode" unless (derived-mode-p 'dired-mode), though I still > don't see what the big deal is here. You would need to check ever caller > to make sure this did not break anything. After looking at this function more closely, I am reluctant to put in a (derived-mode-p 'dired-mode) check since all the related functions work more generally (using regexps) and do not depend on mode checking. So I propose the following patch instead which avoids returning values such as (nil) or (t nil). What do you think? - Leo diff --git a/lisp/dired.el b/lisp/dired.el index b62b4d1a..2f7d5b37 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -620,12 +620,14 @@ (defun dired-get-marked-files (&optional localp arg filter distinguish-one-marke If DISTINGUISH-ONE-MARKED is non-nil, then if we find just one marked file, return (t FILENAME) instead of (FILENAME). Don't use that together with FILTER." - (let* ((all-of-them - (save-excursion - (dired-map-over-marks - (dired-get-filename localp 'no-error-if-not-filep) - arg nil distinguish-one-marked))) - result) + (let ((all-of-them + (save-excursion + (delq nil (dired-map-over-marks + (dired-get-filename localp 'no-error-if-not-filep) + arg nil distinguish-one-marked)))) + result) + (when (equal all-of-them '(t)) + (setq all-of-them nil)) (if (not filter) (if (and distinguish-one-marked (eq (car all-of-them) t)) all-of-them