all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Richard Stallman <rms@gnu.org>
Cc: yamaoka@jpl.org, teirllm@dms.auburn.edu, emacs-devel@gnu.org
Subject: Re: undo in loaddefs.el buffer
Date: Sun, 26 Dec 2004 23:09:30 -0500	[thread overview]
Message-ID: <E1CimCI-0003Du-75@fencepost.gnu.org> (raw)
In-Reply-To: <87ekhdk9iw.fsf@jurta.org> (message from Juri Linkov on Sun, 26 Dec 2004 04:43:11 +0200)

    The question is asked after `decode-coding-region' is called from
    `decode-coding-inserted-region' from `jka-compr-insert-file-contents'.
    Perhaps undo should be disabled temporarily in `jka-compr-insert-file-contents'
    during visiting a gzipped file, but not permanently because buffers of
    gzipped files are editable.

Does this replacement function make it work right?
It is designed to make buffer-undo-list empty in the case of visiting
a file, and optimize it in the other case.



(defun decode-coding-inserted-region (from to filename
					   &optional visit beg end replace)
  "Decode the region between FROM and TO as if it is read from file FILENAME.
Optional arguments VISIT, BEG, END, and REPLACE are the same as those
of the function `insert-file-contents'."
  (save-excursion
    (save-restriction
      (let ((coding coding-system-for-read)
	    undo-list-saved)
	(if visit
	    ;; Temporarily turn off undo recording, if we're decoding the
	    ;; text of a visited file.
	    (setq buffer-undo-list t)
	  ;; Otherwise, if we can recognize the undo elt for the insertion,
	  ;; remove it and get ready to replace it later.
	  ;; In the mean time, turn off undo recording.
	  (let ((last (car buffer-undo-list))) 
	    (if (and (consp last) (eql (car last) from) (eql (cdr last) to))
		(setq undo-list-saved (cdr buffer-undo-list)
		      buffer-undo-list t))))
	(narrow-to-region from to)
	(goto-char (point-min))
	(or coding
	    (setq coding (funcall set-auto-coding-function
				  filename (- (point-max) (point-min)))))
	(or coding
	    (setq coding (car (find-operation-coding-system
			       'insert-file-contents
			       filename visit beg end replace))))
	(if (coding-system-p coding)
	    (or enable-multibyte-characters
		(setq coding
		      (coding-system-change-text-conversion coding 'raw-text)))
	  (setq coding nil))
	(if coding
	    (decode-coding-region (point-min) (point-max) coding)
	  (setq last-coding-system-used coding))
	;; If we're decoding the text of a visited file,
	;; the undo list should start out empty.
	(if visit
	    (setq buffer-undo-list nil)
	  ;; If we decided to replace the undo entry for the insertion,
	  ;; do so now.
	  (if undo-list-saved
	      (setq buffer-undo-list
		    (cons (cons from (point-max)) undo-list-saved))))))))

  reply	other threads:[~2004-12-27  4:09 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-21 14:14 undo in loaddefs.el buffer Luc Teirlinck
2004-12-21 15:41 ` Luc Teirlinck
2004-12-22  4:31   ` Katsumi Yamaoka
2004-12-22  4:58     ` Katsumi Yamaoka
2004-12-23  0:01     ` Richard Stallman
2004-12-23  0:26       ` David Kastrup
2004-12-25 15:13         ` Richard Stallman
2004-12-24  1:45     ` Juri Linkov
2004-12-24 21:39       ` Luc Teirlinck
2004-12-26  9:14         ` Richard Stallman
2004-12-27  5:29           ` Luc Teirlinck
2004-12-27 22:35             ` Richard Stallman
2004-12-24 23:59       ` Luc Teirlinck
2004-12-25 15:12       ` Richard Stallman
2004-12-26  2:06         ` Luc Teirlinck
2004-12-26  2:32           ` Juri Linkov
2004-12-26  3:59             ` Luc Teirlinck
2004-12-27  2:40             ` Luc Teirlinck
2004-12-27 20:16               ` Juri Linkov
2004-12-28  4:57                 ` Richard Stallman
2004-12-27  4:09             ` Richard Stallman
2004-12-26 16:15           ` Jan D.
2004-12-27  2:31             ` Luc Teirlinck
2004-12-27 10:21               ` Jan D.
2004-12-27 11:05                 ` Jan D.
2004-12-27 22:35                 ` Richard Stallman
2004-12-28 13:16                   ` Jan D.
2004-12-28 20:57                     ` Richard Stallman
2004-12-29 12:59                       ` Jan D.
2004-12-28  5:03                 ` Luc Teirlinck
2004-12-28 17:25                   ` Richard Stallman
2004-12-29  2:07                     ` Luc Teirlinck
2004-12-29 20:46                       ` Richard Stallman
2004-12-30  1:14                         ` Luc Teirlinck
2004-12-30 16:43                           ` Richard Stallman
2004-12-31  1:54                             ` Luc Teirlinck
2004-12-31  9:22                               ` David Kastrup
2004-12-31 15:04                                 ` Luc Teirlinck
2005-01-01  5:25                                   ` Richard Stallman
2005-01-02 16:02                                     ` Luc Teirlinck
2005-01-03  0:58                                       ` Richard Stallman
2005-01-04  3:07                                         ` Luc Teirlinck
2005-01-04 17:00                                           ` Richard Stallman
2004-12-31  2:14                             ` Luc Teirlinck
2004-12-30  5:06                     ` Luc Teirlinck
2004-12-30 20:58                       ` Richard Stallman
2004-12-27 18:05             ` Richard Stallman
2004-12-27 19:33               ` Jan D.
2004-12-28  4:57                 ` Richard Stallman
2004-12-28  8:11                   ` Jan D.
2004-12-28 21:05                 ` Jason Rumney
2004-12-29 23:22                   ` Jan D.
2004-12-27  4:09           ` Richard Stallman
2004-12-27  4:42             ` Luc Teirlinck
2004-12-26  2:43         ` Juri Linkov
2004-12-27  4:09           ` Richard Stallman [this message]
2005-01-04  9:05     ` Juri Linkov
2004-12-21 21:57 ` Kevin Rodgers
2004-12-22  0:17   ` Luc Teirlinck
2004-12-22  0:17 ` Richard Stallman

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

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

  git send-email \
    --in-reply-to=E1CimCI-0003Du-75@fencepost.gnu.org \
    --to=rms@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=teirllm@dms.auburn.edu \
    --cc=yamaoka@jpl.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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.