Javier S. Lopez wrote:
Paul Kinnucan <[EMAIL PROTECTED]> writes:
There are probably a few ways to work around the problem 1. Set the inhibit-read-only flag 2. Make our compiles a minor mode or rewrite the way we use it. There is a new method compile-setup that takes a flag that allows you to control this behavior.
Hi Javier,
I've changed jde-compile.el according to your first idea. See diff below.
I will point you to the email thread where Richard Stallman talks about it. I
don't agree with him, I think Stefan Monnier is right on this one. http://lists.gnu.org/archive/html/emacs-devel/2004-11/msg00008.html
IMHO, RMS is right here. Programs can easily change read-only compilation buffers and users shouldn't.
Martin
Javier
Javier S. Lopez writes:
> "Anderson, Timothy K" <[EMAIL PROTECTED]> writes:
> > > Hi,
> > Using GNU Emacs CVS, JDE 2.3.4, CEDET 1.0beta3b.
> >
> > When trying to compile code with C-C C-V C-C, I am getting the
> > following error:
> >
> > save-excursion: Buffer is read-only: #<buffer *compilation*>
> > This looks familiar...
> > I had the problem when running the latest emacs from cvs. All the compilation
> buffers are read only, I don't know what a good fix for this is. I just changed
> the compile.el file to avoid making the buffers readonly. But we probably need
> a better fix for this.
>
How can the compilation buffers be read-only and allows error and other messages to be written into them? This sounds like a bug in the CVS version of Emacs.
Paul
> > Javier
> > >
> > This happens every time - I think I have tried almost every combination
> > of customize variables (at least, it feels that way).
> > Has anyone else seen this? What should I do to find the cause?
> >
> > Thanks for any help.
> >
> >
> > Tim Anderson
> >
> > > >
> >
> >
> >
> > ____________________________________________________________
> > CONFIDENTIALITY
> > This e-mail and any attachments are confidential and also may be privileged.
> > If you are not the named recipient, or have otherwise received this
> > communication in error, please delete it from your inbox, notify the sender
> > immediately, and do not disclose its contents to any other person,
> > use them for any purpose, or store or copy them in any medium.
> > Thank you for your cooperation.
> > ____________________________________________________________
> >
> >
> >
> >
> > -- > Javier S. Lopez
> Software Developer
> Forum Systems, Inc.
> 95 Sawyer Road, Suite 110, Waltham, MA 02453
> http://www.forumsys.com
> > > The information contained in this electronic mail and any attached
> document is the confidential and proprietary business information of
> Forum Systems, Inc. It is intended solely for the addressed recipient
> listed above. It may not be distributed in any manner without the
> express written consent of Forum Systems, Inc.
diff -u jde-compile.el.old jde-compile.el --- jde-compile.el.old 2004-12-17 05:29:36.000000000 +0100 +++ jde-compile.el 2005-01-25 13:14:47.585153200 +0100 @@ -714,24 +714,23 @@
(save-excursion
(set-buffer outbuf)
-
- (insert (format "cd %s\n" default-directory))
-
- (insert (concat
- compiler-path
- " "
- (mapconcat (lambda (x)
- (if (and flag
- jde-compile-option-hide-classpath)
- (progn
- (setq flag nil)
- "...")
- (if (not (string= x "-classpath"))
- x
- (progn
- (setq flag t)
- x)))) args " ")
- "\n\n"))
+ (let ((inhibit-read-only t)) ; make compilation buffer temporarily writable
+ (insert (format "cd %s\n" default-directory))
+ (insert (concat
+ compiler-path
+ " "
+ (mapconcat (lambda (x)
+ (if (and flag
+ jde-compile-option-hide-classpath)
+ (progn
+ (setq flag nil)
+ "...")
+ (if (not (string= x "-classpath"))
+ x
+ (progn
+ (setq flag t)
+ x)))) args " ")
+ "\n\n")))
(let* ((process-environment (cons "EMACS=t" process-environment))
(w32-quote-process-args ?\")
@@ -770,33 +769,27 @@
","))))(setq arg-array (concat arg-array "}"))
-
-
+
(save-excursion
(set-buffer (oref (oref this buffer) buffer))
-
- (insert "CompileServer output:\n")
- (insert "\n")
-
- (let (flag temp)
- (setq temp
- (mapconcat
- (lambda (x)
- (if (and flag
- jde-compile-option-hide-classpath)
- (progn
- (setq flag nil)
- "...")
- (if (not (string= x "-classpath"))
- x
- (progn
- (setq flag t)
- x)))) args " "))
-
- (insert temp " "))
-
- (insert source-path "\n"))
-
+ (let ((inhibit-read-only t) ; make compilation buffer temporarily writable
+ flag
+ temp)
+ (insert "CompileServer output:\n\n")
+ (setq temp
+ (mapconcat
+ (lambda (x)
+ (if (and flag
+ jde-compile-option-hide-classpath)
+ (progn
+ (setq flag nil)
+ "...")
+ (if (not (string= x "-classpath"))
+ x
+ (progn
+ (setq flag t)
+ x)))) args " "))
+ (insert temp " " source-path "\n")))
(if (not (jde-bsh-running-p))
(progn
