From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.devel Subject: pcase-memoize: equal first branch, yet different Date: Fri, 01 Mar 2013 16:17:55 +0100 Message-ID: <87hakv6tek.fsf@web.de> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1362150973 21683 80.91.229.3 (1 Mar 2013 15:16:13 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 1 Mar 2013 15:16:13 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Mar 01 16:16:35 2013 Return-path: Envelope-to: ged-emacs-devel@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 1UBRhJ-0001d0-R7 for ged-emacs-devel@m.gmane.org; Fri, 01 Mar 2013 16:16:33 +0100 Original-Received: from localhost ([::1]:39872 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UBRgy-0004xB-It for ged-emacs-devel@m.gmane.org; Fri, 01 Mar 2013 10:16:12 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:39049) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UBRgq-0004rG-Ax for emacs-devel@gnu.org; Fri, 01 Mar 2013 10:16:10 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UBRgp-0005SL-8a for emacs-devel@gnu.org; Fri, 01 Mar 2013 10:16:04 -0500 Original-Received: from mout.web.de ([212.227.15.4]:58283) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UBRgo-0005Rp-VU for emacs-devel@gnu.org; Fri, 01 Mar 2013 10:16:03 -0500 Original-Received: from drachen.dragon ([92.74.177.220]) by smtp.web.de (mrweb003) with ESMTPSA (Nemesis) id 0MK233-1UCojd3FG1-0027ET; Fri, 01 Mar 2013 16:16:01 +0100 Mail-Followup-To: emacs-devel@gnu.org User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-Provags-ID: V02:K0:A+xZjmJif2zZVraZ63O2DH12Z6faVhniOcnl6X+OkO2 y+HTqhjCXajh4WGLO22XUgn0Gjik1/Q8liJ6oY/Jl+j6VR6CeY AKDQ12dxBvSMzfftVD/tzO6nmzTOUtIoseA5is7oZirMmWp6JR 0E0J34isRsM6MKiVMsdUNmTjrVRzODlZzcODj6UKKNvjEktNb4 vpvBJENsQOE+Pd/MWaeoFw4K7lc1aZcWvfCqTYbJ8E= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 212.227.15.4 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:157468 Archived-At: Hi, I get a not so useful message using `pcase' in the following scenario using trunk: I want to control "dired-sort-menu.el" from the mode-line in dired buffers. I want the mode-line to display diverse "ls" flags, the enabled flags are highlighted, and clicking on a flag turns the sort order. I added this expression to the mode-line: '("D[" (:eval (my-dired-flags-in-ml-flag-string "-")) (:eval (my-dired-flags-in-ml-flag-string "t")) (:eval (my-dired-flags-in-ml-flag-string "S")) "|" (:eval (my-dired-flags-in-ml-flag-string "r")) "]") ("D" stands for "dired") whereby --8<---------------cut here---------------start------------->8--- (defun my-dired-flags-in-ml-flag-string (flag) "FLAG is a string of one char." `(:propertize ,flag face ,(if (pcase flag (`"-" (not (dired-sort-menu-switch-p "[tSXUuc]"))) (_ (string-match-p flag dired-actual-switches))) 'mode-line-bold nil) help-echo ,(pcase flag (`"-" "Sort by name") (`"t" "Sort by time") (`"S" "Sort by size") (`"r" "Reverse sort order")) keymap ,(make-mode-line-mouse-map 'mouse-2 `(lambda (_event) (interactive "e") (pcase ,flag (`"-" (dired-sort-menu-set-switches "")) ((or `"t" `"S") (dired-sort-menu-set-switches ,flag)) (`"r" (dired-sort-menu-toggle-reverse))))))) --8<---------------cut here---------------end--------------->8--- This works well, but every time I click on a flag, I get this message: | pcase-memoize: equal first branch, yet different What does that mean? It's annoying. Thanks, Michael.