unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Miles Bader <miles@lsi.nec.co.jp>
Cc: emacs-devel@gnu.org
Subject: Re: Attempt to modify read-only value
Date: 23 Apr 2002 17:43:17 +0900	[thread overview]
Message-ID: <buou1q2u7oa.fsf@mcspd15.ucom.lsi.nec.co.jp> (raw)
In-Reply-To: <20020423094917.6913.LEKTU@terra.es>

Juanma Barranquero <lektu@terra.es> writes:
> I'm getting "attempt to modify read-only value" while bootstraping.

I've fixed it in CVS:


2002-04-23  Miles Bader  <miles@gnu.org>

	* menu-bar.el (menu-bar-update-buffers): Don't use constant lists
	for command menu entries, since the low-level menu code modifies
	them.  Cache the resulting list.
	(menu-bar-buffers-menu-command-entries): New variable.

Index: menu-bar.el
===================================================================
RCS file: /cvs/emacs/lisp/menu-bar.el,v
retrieving revision 1.207
retrieving revision 1.208
diff -u -p -r1.207 -r1.208
--- menu-bar.el	23 Apr 2002 05:01:50 -0000	1.207
+++ menu-bar.el	23 Apr 2002 08:34:57 -0000	1.208
@@ -1282,6 +1282,9 @@ key (or menu-item)"))
 	   file))
 	(car elt)))
 
+;; Used to cache the menu entries for commands in the Buffers menu
+(defvar menu-bar-buffers-menu-command-entries nil)
+
 (defun menu-bar-update-buffers (&optional force)
   ;; If user discards the Buffers item, play along.
   (and (lookup-key (current-global-map) [menu-bar buffer])
@@ -1357,20 +1360,27 @@ key (or menu-item)"))
 			  `((frames-separator "--")
 			    (frames menu-item "Frames" ,frames-menu))))))
 
-	 ;; Add in some normal commands at the end of the menu
+	 ;; Add in some normal commands at the end of the menu.  We use
+	 ;; the copy cached in `menu-bar-buffers-menu-command-entries'
+	 ;; if it's been set already.  Note that we can't use constant
+	 ;; lists for the menu-entries, because the low-level menu-code
+	 ;; modifies them.
+	 (unless menu-bar-buffers-menu-command-entries
+	   (setq menu-bar-buffers-menu-command-entries
+		 (list '(command-separator "--")
+		       (list 'select-named-buffer
+			     'menu-item
+			     "Select Named Buffer..."
+			     'switch-to-buffer
+			     :help "Prompt for a buffer name, and select that buffer in the current window")
+		       (list 'list-all-buffers
+			     'menu-item
+			     "List All Buffers"
+			     'list-buffers
+			     :help "Pop up a window listing all emacs buffers"
+			     ))))
 	 (setq buffers-menu
-	       (nconc buffers-menu
-		      '((command-separator "--")
-			(select-named-buffer
-			 menu-item
-			 "Select Named Buffer..."
-			 switch-to-buffer
-			 :help "Prompt for a buffer name, and select that buffer in the current window")
-			(list-all-buffers
-			 menu-item
-			 "List All Buffers"
-			 list-buffers
-			 :help "Pop up a window listing all emacs buffers"))))
+	       (nconc buffers-menu menu-bar-buffers-menu-command-entries))
 
 	 (setq buffers-menu (cons 'keymap (cons "Select Buffer" buffers-menu)))
 	 (define-key (current-global-map) [menu-bar buffer]


-Miles
-- 
80% of success is just showing up.  --Woody Allen

  reply	other threads:[~2002-04-23  8:43 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-04-23  7:50 Attempt to modify read-only value Juanma Barranquero
2002-04-23  8:43 ` Miles Bader [this message]
  -- strict thread matches above, loose matches on Subject: below --
2002-04-23  8:12 Kenichi Handa
2002-04-23  8:48 ` Miles Bader
2002-04-23 11:20 Kenichi Handa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=buou1q2u7oa.fsf@mcspd15.ucom.lsi.nec.co.jp \
    --to=miles@lsi.nec.co.jp \
    --cc=emacs-devel@gnu.org \
    --cc=miles@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).