]> git.eshelyaron.com Git - emacs.git/commitdiff
(kill-region): Use the new `delete-and-extract-region'
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 7 Dec 1999 06:30:44 +0000 (06:30 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 7 Dec 1999 06:30:44 +0000 (06:30 +0000)
rather than the undo log (which is incorrect with *-change-functions).

lisp/ChangeLog
lisp/simple.el

index 1885aa18b5fb66bffde23957b41b230dae655fa2..bb6d4b438d7ce729dc1d36c3a5c994d41b342514 100644 (file)
@@ -1,3 +1,14 @@
+1999-12-07  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * files.el (save-some-buffers): Turn EXITING into the more general
+       PRED argument to allow specifying a subset of buffers.
+
+       * simple.el (kill-region): Use the new `delete-and-extract-region'
+       rather than the undo log (which is incorrect with *-change-functions).
+
+       * font-lock.el (font-lock-default-fontify-region): Fix subtle
+       off-by-one problem that could force re-fontifying the whole buffer.
+
 1999-12-06  Michael Kifer  <kifer@cs.sunysb.edu>
        
        * viper-cmd.el (viper-minibuffer-standard-hook,
        (lm-summary, lm-authors, lm-maintainer, lm-creation-date)
        (lm-last-modified-date, lm-version, lm-keywords, lm-adapted-by)
        (lm-commentary, lm-verify, lm-synopsis): Use lm-with-file.
-       (lm-commentary): fix to handle the case when the change log is
+       (lm-commentary): Fix to handle the case when the change log is
        at the end of the file.
 
 1999-12-02  Kenichi Handa  <handa@etl.go.jp>
        * progmodes/compile.el (compilation-error-regexp-alist):
        Undo previous change.
 
->>>>>>> 1.97
 1999-10-28  Dave Love  <fx@gnu.org>
 
        * help.el (help-follow): Make arg optional again and really
        * emacs-lisp/cl-indent.el (common-lisp-indent-function): Use `eq'
        instead of `eql'.
 
->>>>>>> 1.86
 1999-10-14  Stefan Monnier  <monnier@cs.yale.edu>
 
        * ange-ftp.el (ange-ftp-make-tmp-name, ange-ftp-del-tmp-name):
index 63617178a67883d825ba62c098c495d5f4f899aa..9a44200059c588722d63630285522c0bc8e422a2 100644 (file)
@@ -1633,29 +1633,12 @@ the text killed this time appends to the text killed last time
 to make one entry in the kill ring."
   (interactive "*r")
   (condition-case nil
-      ;; Don't let the undo list be truncated before we can even access it.
-      (let ((undo-strong-limit (+ (- (max beg end) (min beg end)) 100))
-           (old-list buffer-undo-list)
-           tail
-           ;; If we can't rely on finding the killed text
-           ;; in the undo list, save it now as a string.
-           (string (if (or (eq buffer-undo-list t)
-                           (= beg end))
-                       (buffer-substring beg end))))
-       (delete-region beg end)
-       ;; Search back in buffer-undo-list for this string,
-       ;; in case a change hook made property changes.
-       (setq tail buffer-undo-list)
-       (unless string
-         (while (not (stringp (car (car tail))))
-           (setq tail (cdr tail)))
-         ;; If we did not already make the string to use,
-         ;; use the same one that undo made for us.
-         (setq string (car (car tail))))
-       ;; Add that string to the kill ring, one way or another.
-       (if (eq last-command 'kill-region)
-           (kill-append string (< end beg))
-         (kill-new string))
+      (let ((string (delete-and-extract-region beg end)))
+       (when string                    ;STRING is nil if BEG = END
+         ;; Add that string to the kill ring, one way or another.
+         (if (eq last-command 'kill-region)
+             (kill-append string (< end beg))
+           (kill-new string)))
        (setq this-command 'kill-region))
     ((buffer-read-only text-read-only)
      ;; The code above failed because the buffer, or some of the characters