/[emacs]/emacs/lisp/simple.el
ViewVC logotype

Diff of /emacs/lisp/simple.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.519 by rms, Fri Feb 1 04:20:02 2002 UTC revision 1.520 by rms, Wed Feb 6 15:08:45 2002 UTC
# Line 1122  is not *inside* the region START...END." Line 1122  is not *inside* the region START...END."
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.")
# Line 2825  With argument 0, interchanges line point Line 2797  With argument 0, interchanges line point
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.

Legend:
Removed from v.1.519  
changed lines
  Added in v.1.520

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26