1122 |
(t |
(t |
1123 |
'(0 . 0))) |
'(0 . 0))) |
1124 |
'(0 . 0))) |
'(0 . 0))) |
|
|
|
|
(defun undo-get-state () |
|
|
"Return a handler for the current state to which we might want to undo. |
|
|
The returned handler can then be passed to `undo-revert-to-handle'." |
|
|
(unless (eq buffer-undo-list t) |
|
|
buffer-undo-list)) |
|
|
|
|
|
(defun undo-revert-to-state (handle) |
|
|
"Revert to the state HANDLE earlier grabbed with `undo-get-handle'. |
|
|
This undoing is not itself undoable (aka redoable)." |
|
|
(unless (eq buffer-undo-list t) |
|
|
(let ((new-undo-list (cons (car handle) (cdr handle)))) |
|
|
;; Truncate the undo log at `handle'. |
|
|
(when handle |
|
|
(setcar handle nil) (setcdr handle nil)) |
|
|
(unless (eq last-command 'undo) (undo-start)) |
|
|
;; Make sure there's no confusion. |
|
|
(when (and handle (not (eq handle (last pending-undo-list)))) |
|
|
(error "Undoing to some unrelated state")) |
|
|
;; Undo it all. |
|
|
(while pending-undo-list (undo-more 1)) |
|
|
;; Reset the modified cons cell to its original content. |
|
|
(when handle |
|
|
(setcar handle (car new-undo-list)) |
|
|
(setcdr handle (cdr new-undo-list))) |
|
|
;; Revert the undo info to what it was when we grabbed the state. |
|
|
(setq buffer-undo-list handle)))) |
|
|
|
|
1125 |
|
|
1126 |
(defvar shell-command-history nil |
(defvar shell-command-history nil |
1127 |
"History list for some commands that read shell commands.") |
"History list for some commands that read shell commands.") |
2797 |
(let ((swap pos1)) |
(let ((swap pos1)) |
2798 |
(setq pos1 pos2 pos2 swap))) |
(setq pos1 pos2 pos2 swap))) |
2799 |
(if (> (cdr pos1) (car pos2)) (error "Don't have two things to transpose")) |
(if (> (cdr pos1) (car pos2)) (error "Don't have two things to transpose")) |
2800 |
(let ((word2 (delete-and-extract-region (car pos2) (cdr pos2)))) |
(atomic-change-group |
2801 |
(goto-char (car pos2)) |
(let (word2) |
2802 |
(insert (delete-and-extract-region (car pos1) (cdr pos1))) |
(setq word2 (delete-and-extract-region (car pos2) (cdr pos2))) |
2803 |
(goto-char (car pos1)) |
(goto-char (car pos2)) |
2804 |
(insert word2))) |
(insert (delete-and-extract-region (car pos1) (cdr pos1))) |
2805 |
|
(goto-char (car pos1)) |
2806 |
|
(insert word2)))) |
2807 |
|
|
2808 |
(defun backward-word (arg) |
(defun backward-word (arg) |
2809 |
"Move backward until encountering the beginning of a word. |
"Move backward until encountering the beginning of a word. |