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
next prev parent 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).