From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Burton Samograd Newsgroups: gmane.emacs.bugs Subject: bug#13212: 24.2.90; setf (symbol-function ...) does not set buffer local variable if present Date: Mon, 17 Dec 2012 13:31:29 -0700 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1355776374 13493 80.91.229.3 (17 Dec 2012 20:32:54 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 17 Dec 2012 20:32:54 +0000 (UTC) Cc: 13212-done@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Dec 17 21:33:08 2012 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 1TkhN5-00065L-Kb for geb-bug-gnu-emacs@m.gmane.org; Mon, 17 Dec 2012 21:33:07 +0100 Original-Received: from localhost ([::1]:47522 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TkhMr-0001ZB-VX for geb-bug-gnu-emacs@m.gmane.org; Mon, 17 Dec 2012 15:32:53 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:50727) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TkhMo-0001Yd-4k for bug-gnu-emacs@gnu.org; Mon, 17 Dec 2012 15:32:52 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TkhMk-0002OX-7D for bug-gnu-emacs@gnu.org; Mon, 17 Dec 2012 15:32:50 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:37364) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TkhMk-0002OK-4C for bug-gnu-emacs@gnu.org; Mon, 17 Dec 2012 15:32:46 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1TkhNy-0003da-Cc for bug-gnu-emacs@gnu.org; Mon, 17 Dec 2012 15:34:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Burton Samograd Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 17 Dec 2012 20:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 13212 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: notabug Original-Received: via spool by 13212-done@debbugs.gnu.org id=D13212.135577640913938 (code D ref 13212); Mon, 17 Dec 2012 20:34:02 +0000 Original-Received: (at 13212-done) by debbugs.gnu.org; 17 Dec 2012 20:33:29 +0000 Original-Received: from localhost ([127.0.0.1]:47614 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TkhNQ-0003cl-My for submit@debbugs.gnu.org; Mon, 17 Dec 2012 15:33:28 -0500 Original-Received: from [69.90.114.176] (port=59019 helo=samograd.ca) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TkhNO-0003bZ-9A for 13212-done@debbugs.gnu.org; Mon, 17 Dec 2012 15:33:26 -0500 Original-Received: from CDW764-BURTONS.QFTI.COM (localhost.localdomain [127.0.0.1]) by samograd.ca (Postfix) with ESMTP id 33C7352F403A; Mon, 17 Dec 2012 13:31:27 -0700 (MST) In-Reply-To: (Stefan Monnier's message of "Mon, 17 Dec 2012 15:06:38 -0500") User-Agent: Gnus/5.1299999999999999 (Gnus v5.13) Emacs/24.2.90 (cygwin) 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:68665 Archived-At: Stefan Monnier writes: > tags 13212 notabug > thanks > >> (make-local-variable 'cons) >> (setf (symbol-function 'cons) (lambda (x y) (+ x y))) > > buffer-local variables affect only variables, not functions. > I.e. they affect symbol-value, not symbol-function. Elisp does not provide > buffer-local functions, so you have to use things like > (if (derived-mode-p 'foo-mode) ...) instead. > An alternative is: > > (defvar-local my-foo-function (lambda () (some (default) behavior))) > > (defun my-foo () > (funcall my-foo-function)) Thanks for the explanation. -- Burton Samograd