Function: sort-reorder-buffer
sort-reorder-buffer is a byte-compiled function defined in sort.el.gz.
Signature
(sort-reorder-buffer SORT-LISTS OLD)
Source Code
;; Defined in /usr/src/emacs/lisp/sort.el.gz
(defun sort-reorder-buffer (sort-lists old)
(let ((last (point-min))
(min (point-min)) (max (point-max))
(old-buffer (current-buffer))
(mb enable-multibyte-characters)
temp-buffer)
(with-temp-buffer
(set-buffer-multibyte mb)
;; Record the temporary buffer.
(setq temp-buffer (current-buffer))
;; Copy the sorted text into the temporary buffer.
(while sort-lists
(goto-char (point-max))
(insert-buffer-substring old-buffer
last
(nth 1 (car old)))
(goto-char (point-max))
(insert-buffer-substring old-buffer
(nth 1 (car sort-lists))
(cdr (cdr (car sort-lists))))
(setq last (cdr (cdr (car old)))
sort-lists (cdr sort-lists)
old (cdr old)))
(goto-char (point-max))
(insert-buffer-substring old-buffer last max)
;; Copy the reordered text from the temporary buffer
;; to the buffer we sorted (OLD-BUFFER).
(set-buffer old-buffer)
(let ((inhibit-quit t))
;; Make sure insertions done for reordering
;; saves any markers at the end of the sorted region,
;; by leaving the last character of the region.
(delete-region min (1- max))
;; Now replace the one remaining old character with the sorted text.
(goto-char (point-min))
(insert-buffer-substring temp-buffer)
(delete-region max (1+ max))))))