;;; -*-Scheme-*-
;;;
-;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/bufcom.scm,v 1.93 1992/04/16 22:30:13 cph Exp $
+;;; $Id: bufcom.scm,v 1.94 1992/09/29 21:11:24 cph Exp $
;;;
;;; Copyright (c) 1986, 1989-92 Massachusetts Institute of Technology
;;;
(create-buffer initial-buffer-name)
(kill-buffer dummy)))))
(buffer-list)))
-
+\f
(define-command rename-buffer
"Change the name of the current buffer.
Reads the new name in the echo area."
()
(lambda ()
(normal-mode (current-buffer) false)))
+
+(define-command toggle-mode-lock
+ "Change whether this buffer has its major mode locked.
+When locked, the buffer's major mode may not be changed."
+ ()
+ (lambda ()
+ (let ((buffer (current-buffer)))
+ (if (buffer-get buffer 'MAJOR-MODE-LOCKED)
+ (begin
+ (buffer-remove! buffer 'MAJOR-MODE-LOCKED)
+ (message "Major mode unlocked"))
+ (begin
+ (buffer-put! buffer 'MAJOR-MODE-LOCKED true)
+ (message "Major mode locked"))))))
\f
(define (save-buffer-changes buffer)
(if (and (buffer-pathname buffer)
;;; -*-Scheme-*-
;;;
-;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/buffer.scm,v 1.155 1992/04/07 12:30:21 cph Exp $
+;;; $Id: buffer.scm,v 1.156 1992/09/29 21:08:56 cph Exp $
;;;
;;; Copyright (c) 1986, 1989-92 Massachusetts Institute of Technology
;;;
(define (set-buffer-major-mode! buffer mode)
(if (not (and (mode? mode) (mode-major? mode)))
(error:wrong-type-argument mode "major mode" 'SET-BUFFER-MAJOR-MODE!))
+ (if (buffer-get buffer 'MAJOR-MODE-LOCKED)
+ (editor-error "The major mode of this buffer is locked: " buffer))
(without-interrupts
(lambda ()
(let ((modes (buffer-modes buffer)))