home *** CD-ROM | disk | FTP | other *** search
- ; If you load this in your .emacs, write-file will be redefined to do
- ; what is described below. If you like it please tell us so
- ; that we could provide it by default.
- ;
- ; The function implements semantic 1. Comment out the lines marked -2
- ; to get semantic 2 and comment out the lines marked -3 to get semantic 3.
- ;
- ; semantic 1: If it is assumed that C-x C-w _should_ rename the
- ; buffer as well as writing to the _new_ file,
- ; Energize is concerned, this should look as if I had copied the
- ; buffer, reverted the original to the disk image, and killed the
- ; reverted buffer, leaving only the new buffer without
- ; Energize dependencies or attachments.
- ;
- ; semantic 2: ... I would
- ; either want it to simply create the new file, leaving the buffer
- ; alone...
- ;
- ; semantic 3: ... or second best creating the file and a new buffer for it,
- ; so that I had two buffers, one for each named version of the
- ; file.
-
-
- (defun energize-write-file (filename)
- "Write the current buffer into file FILENAME.
- Revert and kill the current buffer and replaces it by a new buffer
- showing FILENAME."
- (interactive
- (list (if buffer-file-name
- (read-file-name "Energize write file: "
- nil nil nil nil)
- (read-file-name "Energize write file: "
- (cdr (assq 'default-directory
- (buffer-local-variables)))
- nil nil (buffer-name)))))
- (if (and (file-exists-p filename)
- (not
- (yes-or-no-p (format "File %s already exists. Overwrite it? "
- filename))))
- (error "Aborted"))
- (write-region (point-min) (point-max) filename nil nil)
- (if buffer-file-name ; -2 -3
- (revert-buffer t t)) ; -2 -3
- (kill-buffer nil) ; -2 -3
- (set-window-buffer ; -2
- (selected-window) ; -2
- (find-file-noselect filename)) ; -2
- )
-
-
- ; Pick just one of the following
- ; This uses the new function for all buffers
- (define-key ctl-x-map '(control w) 'energize-write-file)
- ; This preserves old behavior for non-energize buffers
- ; (energize-advise-function 'write-file)
-
-