;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305!\204\306\305\307\"\210\304\310!\204\"\306\310\311\"\210\304\312!\204/\306\312\313\314B\"\210\304\315!\204<\306\315\313\316B\"\210\304\317!\204G\306\317\320\"\210\304\321!\204R\306\321\322\"\210\304\323!\204l\306\323\324\"\210\325\326\327\"\210\325\326\330\"\210\325\326\331\"\210\300\207" [require cl-lib diff gv fboundp characterp defalias char-valid-p region-active-p #[0 "\205 \207" [transient-mark-mode mark-active] 1] registerv-make macro #[385 "\207" #1=[] 3 "\n\n(fn DATA &rest DUMMY)"] registerv-data #[257 "\207" #1# 2 "\n\n(fn DATA)"] diff-no-select #[1282 "CCC\306\242!\204\307\242!\240\210\306\242!\204#\211\307\242!\240\210\242\204,\240\210\242<\2048\211\242C\240\210\204A\310\311!\262\312\242!\312\242!\313\314 \315\242\316\317\204\\\205\203\320\n\242;\203j\n\242\202o\321 \242!\320 \242;\203} \242\202\202\321\242!F \206\213\n\242 \206\223\f\242D\244\"\"B\322#\nrq\210\323\324p!\210\323\325 \210)\326p!\210\327 \210\330\305!\210\331\332\333\334\335   $\336\"\337\340%\211\323\341\261\210)\204\342\343!\203\343\344 01%\345\346\"\210\347\331\332\350\334\335  \"\351\"\352\353%\"\266\202*\323\354\3550\356 \3561&!\210\203!\357!\210\203)\357!\210))\266\204\207" [diff-switches diff-command default-directory buffer-read-only inhibit-read-only revert-buffer-function bufferp expand-file-name get-buffer-create "*Diff*" diff-file-local-copy mapconcat identity append mapcar shell-quote-argument "-L" prin1-to-string " " t buffer-disable-undo erase-buffer buffer-enable-undo diff-mode make-local-variable make-byte-code 514 "\304\300\242\301\242\302\242\303p%\207" vconcat vector [diff-no-select] 8 "\n\n(fn IGNORE-AUTO NOCONFIRM)" "\n" fboundp start-process "Diff" set-process-filter diff-process-filter set-process-sentinel "r\302!q\210\303\304!!\210\300\203\305\300!\210\301\205\305\301!)\207" [process-buffer diff-sentinel process-exit-status delete-file] 5 "\n\n(fn PROC MSG)" diff-sentinel call-process nil delete-file shell-file-name shell-command-switch] 22 "\n\n(fn OLD NEW &optional SWITCHES NO-ASYNC BUF)"] diff-file-local-copy #[257 "\300!\203r\211q\210\301\302!\303\304\211\304\305%\210\211\262)\207\306!\207" [bufferp make-temp-file "buffer-content-" write-region nil nomessage file-local-copy] 8 "\n\n(fn FILE-OR-BUF)"] user-error error add-to-list debug-ignored-errors "^No further undo information" "^No further redo information" "^No further redo information for region"] 4) #@41 Tree of undo entries in current buffer. (defvar buffer-undo-tree nil (#$ . 2988)) (byte-code "\301\302\303\304#\210\305\302!\210\306\307\310\311\312\313%\210\314\315\316\317\320DD\321\312\307\322\323&\210\314\324\316\317\325DD\326\312\307\322\327&\210\314\330\316\317\331DD\332\312\307\322\327&\210\314\333\316\317\334DD\335\312\307\322\336&\210\314\337\316\317\340DD\341\312\307\322\342&\210\314\343\316\317\344DD\345\312\307\322\346&\210\314\347\316\317\350DD\351\312\307\322\352\353!\354\"\203\204\355\202\205\346&\210\314\356\316\317\357DD\360\312\307\322\361&\210\314\362\316\317\363DD\364\312\307\322\346&\210\314\365\316\317\366DD\367\312\307\322\346&\210\314\370\316\317\371DD\372\312\307\322\346&\210\314\373\316\317\374DD\375\312\307\322\376&\207" [emacs-version put buffer-undo-tree permanent-local t make-variable-buffer-local custom-declare-group undo-tree nil "Tree undo/redo." :group undo custom-declare-variable undo-tree-limit funcall function #[0 "\300\207" [80000000] 1] "Value of `undo-limit' used in `undo-tree-mode'.\n\nIf `undo-limit' is larger than `undo-tree-limit', the larger of\nthe two values will be used.\n\nSee also `undo-tree-strong-limit' and `undo-tree-outer-limit'.\n\nSetting this to nil prevents `undo-tree-mode' ever discarding\nundo history. (As far as possible. In principle, it is still\npossible for Emacs to discard undo history behind\n`undo-tree-mode's back.) USE THIS SETTING AT YOUR OWN RISK! Emacs\nmay crash if undo history exceeds Emacs' available memory. This\nis particularly risky if `undo-tree-auto-save-history' is\nenabled, as in that case undo history is preserved even between\nEmacs sessions." :type (choice integer (const nil)) undo-tree-strong-limit #[0 "\300\207" [120000000] 1] "Value of `undo-strong-limit' used in `undo-tree-mode'.\n\nIf `undo-strong-limit' is larger than `undo-tree-strong-limit'\nthe larger of the two values will be used." integer undo-tree-outer-limit #[0 "\300\207" [360000000] 1] "Value of `undo-outer-limit' used in `undo-tree-mode'.\n\nIf `undo-outer-limit' is larger than `undo-tree-outer-limit' the\nlarger of the two values will be used." undo-tree-mode-lighter #[0 "\300\207" [#1=" Undo-Tree"] 1 #1#] "Lighter displayed in mode line\nwhen `undo-tree-mode' is enabled." string undo-tree-incompatible-major-modes #[0 "\300\207" [(term-mode)] 1] "List of major-modes in which `undo-tree-mode' should not be enabled.\n(See `turn-on-undo-tree-mode'.)" (repeat symbol) undo-tree-enable-undo-in-region #[0 "\300\207" [nil] 1] "When non-nil, enable undo-in-region.\n\nWhen undo-in-region is enabled, undoing or redoing when the\nregion is active (in `transient-mark-mode') or with a prefix\nargument (not in `transient-mark-mode') only undoes changes\nwithin the current region." boolean undo-tree-auto-save-history #[0 "\300\207" [nil] 1] "When non-nil, `undo-tree-mode' will save undo history to file\nwhen a buffer is saved to file.\n\nIt will automatically load undo history when a buffer is loaded\nfrom file, if an undo save file exists.\n\nBy default, undo-tree history is saved to a file called\n\"..~undo-tree~\" in the same directory as the\nfile itself. To save under a different directory, customize\n`undo-tree-history-directory-alist' (see the documentation for\nthat variable for details).\n\nWARNING! `undo-tree-auto-save-history' will not work properly in\nEmacs versions prior to 24.3, so it cannot be enabled via\nthe customization interface in versions earlier than that one. To\nignore this warning and enable it regardless, set\n`undo-tree-auto-save-history' to a non-nil value outside of\ncustomize." version-list-< version-to-list (24 3) (choice (const :tag "" nil)) undo-tree-history-directory-alist #[0 "\300\207" [nil] 1] "Alist of filename patterns and undo history directory names.\nEach element looks like (REGEXP . DIRECTORY). Undo history for\nfiles with names matching REGEXP will be saved in DIRECTORY.\nDIRECTORY may be relative or absolute. If it is absolute, so\nthat all matching files are backed up into the same directory,\nthe file names in this directory will be the full name of the\nfile backed up with all directory separators changed to `!' to\nprevent clashes. This will not work correctly if your filesystem\ntruncates the resulting name.\n\nFor the common case of all backups going into one directory, the\nalist should contain a single element pairing \".\" with the\nappropriate directory name.\n\nIf this variable is nil, or it fails to match a filename, the\nbackup is made in the original file's directory.\n\nOn MS-DOS filesystems without long names this variable is always\nignored." (repeat (cons (regexp :tag "Regexp matching filename") (directory :tag "Undo history directory name"))) undo-tree-visualizer-relative-timestamps #[0 "\300\207" [t] 1] "When non-nil, display times relative to current time\nwhen displaying time stamps in visualizer.\n\nOtherwise, display absolute times." undo-tree-visualizer-timestamps #[0 "\300\207" [nil] 1] "When non-nil, display time-stamps by default\nin undo-tree visualizer.\n\n\\You can always toggle time-stamps on and off using \\[undo-tree-visualizer-toggle-timestamps], regardless of the\nsetting of this variable." undo-tree-visualizer-diff #[0 "\300\207" [nil] 1] "When non-nil, display diff by default in undo-tree visualizer.\n\n\\You can always toggle the diff display using \\[undo-tree-visualizer-toggle-diff], regardless of the\nsetting of this variable." undo-tree-visualizer-lazy-drawing #[0 "\300\207" [100] 1] "When non-nil, use lazy undo-tree drawing in visualizer.\n\nSetting this to a number causes the visualizer to switch to lazy\ndrawing when the number of nodes in the tree is larger than this\nvalue.\n\nLazy drawing means that only the visible portion of the tree will\nbe drawn initially, and the tree will be extended later as\nneeded. For the most part, the only visible effect of this is to\nsignificantly speed up displaying the visualizer for very large\ntrees.\n\nThere is one potential negative effect of lazy drawing. Other\nbranches of the tree will only be drawn once the node from which\nthey branch off becomes visible. So it can happen that certain\nportions of the tree that would be shown with lazy drawing\ndisabled, will not be drawn immediately when it is\nenabled. However, this effect is quite rare in practice." (choice (const :tag "never" nil) (const :tag "always" t) (integer :tag "> size"))] 10) #@429 Special hook to modify undo-tree elements prior to saving. Each function on this hook is called in turn on each undo element in the tree by `undo-tree-save-history' prior to writing the undo history to file. It should return either nil, which removes that undo element from the saved history, or a replacement element to use instead (which should be identical to the original element if that element should be saved unchanged). (defvar undo-tree-pre-save-element-functions nil (#$ . 9534)) #@433 Special hook to modify undo-tree undo elements after loading. Each function on this hook is called in turn on each undo element in the tree by `undo-tree-load-history' after loading the undo history from file. It should return either nil, which removes that undo element from the loaded history, or a replacement element to use instead (which should be identical to the original element if that element should be loaded unchanged). (defvar undo-tree-post-load-element-functions nil (#$ . 10031)) (byte-code "\300\301\302\303\304\305%\210\300\306\307\310\304\305%\210\300\311\312\313\304\305%\210\300\314\315\316\304\305%\210\300\317\320\321\304\305%\207" [custom-declare-face undo-tree-visualizer-default-face ((((class color)) :foreground "gray")) "Face used to draw undo-tree in visualizer." :group undo-tree undo-tree-visualizer-current-face ((((class color)) :foreground "red")) "Face used to highlight current undo-tree node in visualizer." undo-tree-visualizer-active-branch-face ((((class color) (background dark)) (:foreground "white" :weight bold)) (((class color) (background light)) (:foreground "black" :weight bold))) "Face used to highlight active undo-tree branch in visualizer." undo-tree-visualizer-register-face ((((class color)) :foreground "yellow")) "Face used to highlight undo-tree nodes saved to a register\nin visualizer." undo-tree-visualizer-unmodified-face ((((class color)) :foreground "cyan")) "Face used to highlight nodes corresponding to unmodified buffers\nin visualizer."] 6) #@30 Parent buffer in visualizer. (defvar undo-tree-visualizer-parent-buffer nil (#$ . 11548)) (byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-parent-buffer permanent-local t make-variable-buffer-local] 4) (defvar undo-tree-visualizer-parent-mtime nil) (byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-parent-mtime permanent-local t make-variable-buffer-local] 4) (defvar undo-tree-visualizer-spacing nil) (byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-spacing permanent-local t make-variable-buffer-local] 4) (defalias 'undo-tree-visualizer-calculate-spacing #[0 "\203\f \203\n\302\207\303\207\304\207" [undo-tree-visualizer-timestamps undo-tree-visualizer-relative-timestamps 9 13 3] 1]) (put 'undo-tree-visualizer-calculate-spacing 'byte-optimizer 'byte-compile-inline-expand) (defvar undo-tree-visualizer-initial-node nil) (byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-initial-node permanent-local t make-variable-buffer-local] 4) (defvar undo-tree-visualizer-selected-node nil) (byte-code "\300\301\302\303#\210\304\305!\207" [put undo-tree-visualizer-selected-node permanent-local t make-variable-buffer-local undo-tree-visualizer-selected] 4) (defvar undo-tree-visualizer-needs-extending-down nil) (byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-needs-extending-down permanent-local t make-variable-buffer-local] 4) (defvar undo-tree-visualizer-needs-extending-up nil) (byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-needs-extending-up permanent-local t make-variable-buffer-local] 4) (defvar undo-tree-inhibit-kill-visualizer nil) (defvar undo-tree-insert-face nil) (defconst undo-tree-visualizer-buffer-name " *undo-tree*") (defconst undo-tree-diff-buffer-name "*undo-tree Diff*") #@32 Keymap used in undo-tree-mode. (defvar undo-tree-map nil (#$ . 13400)) (byte-code "\204C\301 \302\303\304#\210\302\305\304#\210\302\306\304#\210\302\307\304#\210\302\310\311#\210\302\312\311#\210\302\313\311#\210\302\314\315#\210\302\316\317#\210\302\320\321#\210\301\207" [undo-tree-map make-sparse-keymap define-key [remap undo] undo-tree-undo [remap undo-only] [67108911] "" [67108927] undo-tree-redo [134217823] [remap redo] "u" undo-tree-visualize "ru" undo-tree-save-state-to-register "rU" undo-tree-restore-state-from-register] 5) #@38 Keymap used in undo-tree visualizer. (defvar undo-tree-visualizer-mode-map nil (#$ . 13961)) (byte-code "\204\323\301 \302\303\304#\210\302\305\306#\210\302\307\304#\210\302\310\304#\210\302\311\304#\210\302\312\306#\210\302\313\306#\210\302\314\306#\210\302\315\316#\210\302\317\320#\210\302\321\316#\210\302\322\316#\210\302\323\316#\210\302\324\320#\210\302\325\320#\210\302\326\320#\210\302\327\330#\210\302\331\332#\210\302\333\330#\210\302\334\332#\210\302\335\330#\210\302\336\332#\210\302\337\340#\210\302\341\342#\210\302\343\344#\210\302\345\346#\210\302\347\350#\210\302\351\352#\210\302\353\350#\210\302\354\352#\210\302\355\356#\210\302\357\360#\210\302\361\362#\210\302\363\364#\210\301\207" [undo-tree-visualizer-mode-map make-sparse-keymap define-key [remap previous-line] undo-tree-visualize-undo [remap next-line] undo-tree-visualize-redo [up] "p" "" [down] "n" "" [remap forward-char] undo-tree-visualize-switch-branch-right [remap backward-char] undo-tree-visualize-switch-branch-left [right] "f" "" [left] "b" "" [remap backward-paragraph] undo-tree-visualize-undo-to-x [remap forward-paragraph] undo-tree-visualize-redo-to-x "\373" "\375" [C-up] [C-down] [mouse-1] undo-tree-visualizer-mouse-set "t" undo-tree-visualizer-toggle-timestamps "d" undo-tree-visualizer-toggle-diff "s" undo-tree-visualizer-selection-mode "," undo-tree-visualizer-scroll-left "." undo-tree-visualizer-scroll-right "<" ">" [next] undo-tree-visualizer-scroll-up [prior] undo-tree-visualizer-scroll-down "q" undo-tree-visualizer-quit "" undo-tree-visualizer-abort] 5) #@53 Keymap used in undo-tree visualizer selection mode. (defvar undo-tree-visualizer-selection-mode-map nil (#$ . 15573)) (byte-code "\204\235\301 \302\303\304#\210\302\305\306#\210\302\307\304#\210\302\310\304#\210\302\311\304#\210\302\312\306#\210\302\313\306#\210\302\314\306#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210\302\323\324#\210\302\325\322#\210\302\326\322#\210\302\327\322#\210\302\330\324#\210\302\331\324#\210\302\332\324#\210\302\333\334#\210\302\335\336#\210\302\337\340#\210\302\341\342#\210\302\343\344#\210\302\345\346#\210\302\347\350#\210\301\207" [undo-tree-visualizer-selection-mode-map make-sparse-keymap define-key [remap previous-line] undo-tree-visualizer-select-previous [remap next-line] undo-tree-visualizer-select-next [up] "p" "" [down] "n" "" [next] #[0 "\300\301!\207" [undo-tree-visualizer-select-next 10] 2 nil nil] [prior] #[0 "\300\301!\207" [undo-tree-visualizer-select-previous 10] 2 nil nil] [remap forward-char] undo-tree-visualizer-select-right [remap backward-char] undo-tree-visualizer-select-left [right] "f" "" [left] "b" "" "," #[0 "\300\301!\207" [undo-tree-visualizer-select-left 10] 2 nil nil] "." #[0 "\300\301!\207" [undo-tree-visualizer-select-right 10] 2 nil nil] "<" #[0 "\300\301!\207" [undo-tree-visualizer-select-left 10] 2 nil nil] ">" #[0 "\300\301!\207" [undo-tree-visualizer-select-right 10] 2 nil nil] " " undo-tree-visualizer-set [mouse-1] undo-tree-visualizer-mouse-select "d" undo-tree-visualizer-selection-toggle-diff] 5) #@68 compiler-macro for inlining `undo-tree-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-p (and (memq (type-of cl-x) cl-struct-undo-tree-tags) t)) nil] 9 (#$ . 17110)]) (put 'undo-tree-p 'compiler-macro 'undo-tree-p--cmacro) #@13 (fn CL-X) (defalias 'undo-tree-p #[257 "\301!>\205 \302\207" [cl-struct-undo-tree-tags type-of t] 3 (#$ . 17439)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put undo-tree-p side-effect-free error-free put undo-tree cl-deftype-satisfies] 5) #@71 compiler-macro for inlining `undo-tree-root'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-root--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-root (or (undo-tree-p cl-x) (signal 'wrong-type-argument (list 'undo-tree cl-x))) (aref cl-x 1)) nil] 9 (#$ . 17710)]) (put 'undo-tree-root 'compiler-macro 'undo-tree-root--cmacro) #@282 Access slot "root" of `(undo-tree :named (:constructor nil) (:constructor make-undo-tree (&aux (root (undo-tree-make-node nil nil)) (current root) (size 0) (count 0) (object-pool (make-hash-table :test (quote eq) :weakness (quote value))))) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-root #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 1] 5 (#$ . 18091)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-root side-effect-free t] 4) #@74 compiler-macro for inlining `undo-tree-current'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-current--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-current (or (undo-tree-p cl-x) (signal 'wrong-type-argument (list 'undo-tree cl-x))) (aref cl-x 2)) nil] 9 (#$ . 18642)]) (put 'undo-tree-current 'compiler-macro 'undo-tree-current--cmacro) #@285 Access slot "current" of `(undo-tree :named (:constructor nil) (:constructor make-undo-tree (&aux (root (undo-tree-make-node nil nil)) (current root) (size 0) (count 0) (object-pool (make-hash-table :test (quote eq) :weakness (quote value))))) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-current #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 2] 5 (#$ . 19038)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-current side-effect-free t] 4) #@71 compiler-macro for inlining `undo-tree-size'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-size--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-size (or (undo-tree-p cl-x) (signal 'wrong-type-argument (list 'undo-tree cl-x))) (aref cl-x 3)) nil] 9 (#$ . 19598)]) (put 'undo-tree-size 'compiler-macro 'undo-tree-size--cmacro) #@282 Access slot "size" of `(undo-tree :named (:constructor nil) (:constructor make-undo-tree (&aux (root (undo-tree-make-node nil nil)) (current root) (size 0) (count 0) (object-pool (make-hash-table :test (quote eq) :weakness (quote value))))) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-size #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 3] 5 (#$ . 19979)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-size side-effect-free t] 4) #@72 compiler-macro for inlining `undo-tree-count'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-count--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-count (or (undo-tree-p cl-x) (signal 'wrong-type-argument (list 'undo-tree cl-x))) (aref cl-x 4)) nil] 9 (#$ . 20530)]) (put 'undo-tree-count 'compiler-macro 'undo-tree-count--cmacro) #@283 Access slot "count" of `(undo-tree :named (:constructor nil) (:constructor make-undo-tree (&aux (root (undo-tree-make-node nil nil)) (current root) (size 0) (count 0) (object-pool (make-hash-table :test (quote eq) :weakness (quote value))))) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-count #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 4] 5 (#$ . 20916)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-count side-effect-free t] 4) #@78 compiler-macro for inlining `undo-tree-object-pool'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-object-pool--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-object-pool (or (undo-tree-p cl-x) (signal 'wrong-type-argument (list 'undo-tree cl-x))) (aref cl-x 5)) nil] 9 (#$ . 21470)]) (put 'undo-tree-object-pool 'compiler-macro 'undo-tree-object-pool--cmacro) #@289 Access slot "object-pool" of `(undo-tree :named (:constructor nil) (:constructor make-undo-tree (&aux (root (undo-tree-make-node nil nil)) (current root) (size 0) (count 0) (object-pool (make-hash-table :test (quote eq) :weakness (quote value))))) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-object-pool #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 5] 5 (#$ . 21886)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-object-pool side-effect-free t] 4) #@46 Constructor for objects of type `undo-tree'. (defalias 'make-undo-tree #[0 "\300\301\211\"\211\302\211\303\304\305\306\307$\310\311&\207" [undo-tree-make-node nil 0 make-hash-table :test eq :weakness value record undo-tree] 12 (#$ . 22458)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-undo-tree side-effect-free t cl-struct-define undo-tree nil cl-structure-object record ((cl-tag-slot) (root) (current) (size) (count) (object-pool)) cl-struct-undo-tree-tags] 11) #@13 (fn TREE) (defalias 'undo-tree-copy #[257 "\303\304\305\306\307!\310\"\311$\216\312 \313!\210\314!>\204!\315\316\317D\"\210\320H\321_\314!>\2045\315\316\317D\"\210\320H\321_\314!>\204K\315\316\317D\"\210\211\211\322\323\314!>\204`\315\316\317D\"\210\322H\314!>\204u\315\316\317\nD\"\210\311H#I\266*\314!>\204\215\315\316\317D\"\210\211\211\324\314!>\204\240\315\316\317D\"\210\324HI\266\314!>\204\265\315\316\317D\"\210\211\211\320\314!>\204\310\315\316\317D\"\210\320HI\266\314!>\204\335\315\316\317D\"\210\211\211\325\326\314!>\204\362\315\316\317D\"\210\325H!I\266\327!\210\211\262)\207" [cl-struct-undo-tree-tags max-specpdl-size max-lisp-eval-depth make-byte-code 0 "\301\300!\207" vconcat vector [undo-tree-recircle] 2 make-undo-tree undo-tree-decircle type-of signal wrong-type-argument undo-tree 4 100 1 undo-tree-node-copy 3 5 copy-hash-table undo-tree-recircle] 12 (#$ . 22992)]) #@80 compiler-macro for inlining `undo-tree-node-previous'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-node-previous--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-previous (aref cl-x 0)) nil] 9 (#$ . 23960)]) (put 'undo-tree-node-previous 'compiler-macro 'undo-tree-node-previous--cmacro) #@416 Access slot "previous" of `(undo-tree-node (:type vector) (:constructor nil) (:constructor undo-tree-make-node (previous undo &optional redo &aux (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-node-backwards (next-node undo &optional redo &aux (next (list next-node)) (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-empty-node nil) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-node-previous #[257 "\211\300H\207" [0] 3 (#$ . 24309)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-previous side-effect-free t] 4) #@76 compiler-macro for inlining `undo-tree-node-next'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-node-next--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-next (aref cl-x 1)) nil] 9 (#$ . 24908)]) (put 'undo-tree-node-next 'compiler-macro 'undo-tree-node-next--cmacro) #@412 Access slot "next" of `(undo-tree-node (:type vector) (:constructor nil) (:constructor undo-tree-make-node (previous undo &optional redo &aux (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-node-backwards (next-node undo &optional redo &aux (next (list next-node)) (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-empty-node nil) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-node-next #[257 "\211\300H\207" [1] 3 (#$ . 25237)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-next side-effect-free t] 4) #@76 compiler-macro for inlining `undo-tree-node-undo'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-node-undo--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-undo (aref cl-x 2)) nil] 9 (#$ . 25824)]) (put 'undo-tree-node-undo 'compiler-macro 'undo-tree-node-undo--cmacro) #@412 Access slot "undo" of `(undo-tree-node (:type vector) (:constructor nil) (:constructor undo-tree-make-node (previous undo &optional redo &aux (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-node-backwards (next-node undo &optional redo &aux (next (list next-node)) (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-empty-node nil) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-node-undo #[257 "\211\300H\207" [2] 3 (#$ . 26153)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-undo side-effect-free t] 4) #@76 compiler-macro for inlining `undo-tree-node-redo'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-node-redo--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-redo (aref cl-x 3)) nil] 9 (#$ . 26740)]) (put 'undo-tree-node-redo 'compiler-macro 'undo-tree-node-redo--cmacro) #@412 Access slot "redo" of `(undo-tree-node (:type vector) (:constructor nil) (:constructor undo-tree-make-node (previous undo &optional redo &aux (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-node-backwards (next-node undo &optional redo &aux (next (list next-node)) (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-empty-node nil) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-node-redo #[257 "\211\300H\207" [3] 3 (#$ . 27069)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-redo side-effect-free t] 4) #@81 compiler-macro for inlining `undo-tree-node-timestamp'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-node-timestamp--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-timestamp (aref cl-x 4)) nil] 9 (#$ . 27656)]) (put 'undo-tree-node-timestamp 'compiler-macro 'undo-tree-node-timestamp--cmacro) #@417 Access slot "timestamp" of `(undo-tree-node (:type vector) (:constructor nil) (:constructor undo-tree-make-node (previous undo &optional redo &aux (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-node-backwards (next-node undo &optional redo &aux (next (list next-node)) (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-empty-node nil) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-node-timestamp #[257 "\211\300H\207" [4] 3 (#$ . 28010)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-timestamp side-effect-free t] 4) #@78 compiler-macro for inlining `undo-tree-node-branch'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-node-branch--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-branch (aref cl-x 5)) nil] 9 (#$ . 28612)]) (put 'undo-tree-node-branch 'compiler-macro 'undo-tree-node-branch--cmacro) #@414 Access slot "branch" of `(undo-tree-node (:type vector) (:constructor nil) (:constructor undo-tree-make-node (previous undo &optional redo &aux (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-node-backwards (next-node undo &optional redo &aux (next (list next-node)) (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-empty-node nil) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-node-branch #[257 "\211\300H\207" [5] 3 (#$ . 28951)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-branch side-effect-free t] 4) #@81 compiler-macro for inlining `undo-tree-node-meta-data'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-node-meta-data--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-meta-data (aref cl-x 6)) nil] 9 (#$ . 29544)]) (put 'undo-tree-node-meta-data 'compiler-macro 'undo-tree-node-meta-data--cmacro) #@417 Access slot "meta-data" of `(undo-tree-node (:type vector) (:constructor nil) (:constructor undo-tree-make-node (previous undo &optional redo &aux (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-node-backwards (next-node undo &optional redo &aux (next (list next-node)) (timestamp (current-time)) (branch 0))) (:constructor undo-tree-make-empty-node nil) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-node-meta-data #[257 "\211\300H\207" [6] 3 (#$ . 29898)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-meta-data side-effect-free t] 4) #@77 compiler-macro for inlining `undo-tree-make-empty-node'. (fn CL-WHOLE-ARG) (defalias 'undo-tree-make-empty-node--cmacro #[257 "\300\301\302\301\211\211%\207" [cl--defsubst-expand nil (cl-block undo-tree-make-empty-node (vector nil nil nil nil nil nil nil))] 7 (#$ . 30500)]) (put 'undo-tree-make-empty-node 'compiler-macro 'undo-tree-make-empty-node--cmacro) #@51 Constructor for objects of type `undo-tree-node'. (defalias 'undo-tree-make-empty-node #[0 "\300\301\211\211\211\211\211\211&\207" [vector nil] 8 (#$ . 30866)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-make-empty-node side-effect-free t] 4) #@87 Constructor for objects of type `undo-tree-node'. (fn NEXT-NODE UNDO &optional REDO) (defalias 'undo-tree-make-node-backwards #[898 "C\300 \301\203\302\303\304\305G\\D\"\210\306\307\307&\207" [current-time 0 signal wrong-number-of-arguments undo-tree-make-node-backwards 3 vector nil] 15 (#$ . 31136)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-make-node-backwards side-effect-free t] 4) #@110 compiler-macro for inlining `undo-tree-make-node'. (fn CL-WHOLE-ARG &cl-quote PREVIOUS UNDO &optional REDO) (defalias 'undo-tree-make-node--cmacro #[1155 "\300\301\203\302\303\304\305G\\D\"\210\306\307\310\311\211\211   \n\n&\n\207" [(current-time) 0 signal wrong-number-of-arguments undo-tree-make-node--cmacro 4 cl--defsubst-expand (previous undo redo timestamp branch) (cl-block undo-tree-make-node (vector previous nil undo redo timestamp branch nil)) nil] 18 (#$ . 31569)]) (put 'undo-tree-make-node 'compiler-macro 'undo-tree-make-node--cmacro) #@86 Constructor for objects of type `undo-tree-node'. (fn PREVIOUS UNDO &optional REDO) (defalias 'undo-tree-make-node #[898 "\300 \301\203\302\303\304\305G\\D\"\210\306\307\307&\207" [current-time 0 signal wrong-number-of-arguments undo-tree-make-node 3 vector nil] 14 (#$ . 32137)]) (byte-code "\300\301\302\303#\304\305\306\211\307\306\310\311\305\306& \207" [function-put undo-tree-make-node side-effect-free t cl-struct-define undo-tree-node nil vector ((previous) (next) (undo) (redo) (timestamp) (branch) (meta-data)) cl-struct-undo-tree-node-tags] 11) #@10 (fn N) (defalias 'undo-tree-node-p '(macro . #[257 "\300\301\211\211\211\302 \303\301&G\304\305D\306\307DEE\207" [vector nil current-time 0 and vectorp = length] 9 (#$ . 32716)])) #@36 (fn NODE &optional TREE CURRENT) (defalias 'undo-tree-node-copy #[769 "\301\302\211\211\211\211\211\211&BC\302\211A\262\242\211\262\203\256\211A\211\303\304@\303H\305\"I\266\211A\211\306\304@\306H\305\"I\266\211A\211\307\310@\307H!I\266\211A\211\311@\311HI\266\211A\211\312\313\314\315@\312HG\302\"\"I\266\203\205\211@=\203\205\316!>\204}\317\320\321D\"\210\211\303AI\266\211@\312HA\312H\203\251\211\203\251\211A\262\242\211A\262\242BB\262\202\215\266\202\207" [cl-struct-undo-tree-tags vector nil 2 copy-tree copy-vectors 3 4 copy-sequence 5 1 mapcar #[257 "\300\301\211\211\211\211\211\211&\207" [vector nil] 9 "\n\n(fn _)"] make-list type-of signal wrong-type-argument undo-tree] 14 (#$ . 32908)]) #@93 compiler-macro for inlining `undo-tree-region-data-undo-beginning'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-region-data-undo-beginning--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-region-data-undo-beginning (aref cl-x 0)) nil] 9 (#$ . 33663)]) (put 'undo-tree-region-data-undo-beginning 'compiler-macro 'undo-tree-region-data-undo-beginning--cmacro) #@379 Access slot "undo-beginning" of `(undo-tree-region-data (:type vector) (:constructor nil) (:constructor undo-tree-make-region-data (&optional undo-beginning undo-end redo-beginning redo-end)) (:constructor undo-tree-make-undo-region-data (undo-beginning undo-end)) (:constructor undo-tree-make-redo-region-data (redo-beginning redo-end)) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-region-data-undo-beginning #[257 "\211\300H\207" [0] 3 (#$ . 34077)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-region-data-undo-beginning side-effect-free t] 4) #@87 compiler-macro for inlining `undo-tree-region-data-undo-end'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-region-data-undo-end--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-region-data-undo-end (aref cl-x 1)) nil] 9 (#$ . 34665)]) (put 'undo-tree-region-data-undo-end 'compiler-macro 'undo-tree-region-data-undo-end--cmacro) #@373 Access slot "undo-end" of `(undo-tree-region-data (:type vector) (:constructor nil) (:constructor undo-tree-make-region-data (&optional undo-beginning undo-end redo-beginning redo-end)) (:constructor undo-tree-make-undo-region-data (undo-beginning undo-end)) (:constructor undo-tree-make-redo-region-data (redo-beginning redo-end)) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-region-data-undo-end #[257 "\211\300H\207" [1] 3 (#$ . 35049)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-region-data-undo-end side-effect-free t] 4) #@93 compiler-macro for inlining `undo-tree-region-data-redo-beginning'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-region-data-redo-beginning--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-region-data-redo-beginning (aref cl-x 2)) nil] 9 (#$ . 35619)]) (put 'undo-tree-region-data-redo-beginning 'compiler-macro 'undo-tree-region-data-redo-beginning--cmacro) #@379 Access slot "redo-beginning" of `(undo-tree-region-data (:type vector) (:constructor nil) (:constructor undo-tree-make-region-data (&optional undo-beginning undo-end redo-beginning redo-end)) (:constructor undo-tree-make-undo-region-data (undo-beginning undo-end)) (:constructor undo-tree-make-redo-region-data (redo-beginning redo-end)) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-region-data-redo-beginning #[257 "\211\300H\207" [2] 3 (#$ . 36033)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-region-data-redo-beginning side-effect-free t] 4) #@87 compiler-macro for inlining `undo-tree-region-data-redo-end'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-region-data-redo-end--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-region-data-redo-end (aref cl-x 3)) nil] 9 (#$ . 36621)]) (put 'undo-tree-region-data-redo-end 'compiler-macro 'undo-tree-region-data-redo-end--cmacro) #@373 Access slot "redo-end" of `(undo-tree-region-data (:type vector) (:constructor nil) (:constructor undo-tree-make-region-data (&optional undo-beginning undo-end redo-beginning redo-end)) (:constructor undo-tree-make-undo-region-data (undo-beginning undo-end)) (:constructor undo-tree-make-redo-region-data (redo-beginning redo-end)) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-region-data-redo-end #[257 "\211\300H\207" [3] 3 (#$ . 37005)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-region-data-redo-end side-effect-free t] 4) #@107 compiler-macro for inlining `undo-tree-make-redo-region-data'. (fn CL-WHOLE-ARG REDO-BEGINNING REDO-END) (defalias 'undo-tree-make-redo-region-data--cmacro #[771 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (redo-beginning redo-end) (cl-block undo-tree-make-redo-region-data (vector nil nil redo-beginning redo-end)) nil] 11 (#$ . 37576)]) (put 'undo-tree-make-redo-region-data 'compiler-macro 'undo-tree-make-redo-region-data--cmacro) #@88 Constructor for objects of type `undo-tree-region-data'. (fn REDO-BEGINNING REDO-END) (defalias 'undo-tree-make-redo-region-data #[514 "\300\301\211$\207" [vector nil] 7 (#$ . 38032)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-make-redo-region-data side-effect-free t] 4) #@107 compiler-macro for inlining `undo-tree-make-undo-region-data'. (fn CL-WHOLE-ARG UNDO-BEGINNING UNDO-END) (defalias 'undo-tree-make-undo-region-data--cmacro #[771 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (undo-beginning undo-end) (cl-block undo-tree-make-undo-region-data (vector undo-beginning undo-end nil nil)) nil] 11 (#$ . 38335)]) (put 'undo-tree-make-undo-region-data 'compiler-macro 'undo-tree-make-undo-region-data--cmacro) #@88 Constructor for objects of type `undo-tree-region-data'. (fn UNDO-BEGINNING UNDO-END) (defalias 'undo-tree-make-undo-region-data #[514 "\300\301\211$\207" [vector nil] 7 (#$ . 38791)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-make-undo-region-data side-effect-free t] 4) #@136 compiler-macro for inlining `undo-tree-make-region-data'. (fn CL-WHOLE-ARG &optional UNDO-BEGINNING UNDO-END REDO-BEGINNING REDO-END) (defalias 'undo-tree-make-region-data--cmacro #[1281 "\300\301\302\303\211\211    & \207" [cl--defsubst-expand (undo-beginning undo-end redo-beginning redo-end) (cl-block undo-tree-make-region-data (vector undo-beginning undo-end redo-beginning redo-end)) nil] 15 (#$ . 39094)]) (put 'undo-tree-make-region-data 'compiler-macro 'undo-tree-make-region-data--cmacro) #@122 Constructor for objects of type `undo-tree-region-data'. (fn &optional UNDO-BEGINNING UNDO-END REDO-BEGINNING REDO-END) (defalias 'undo-tree-make-region-data #[1024 "\300$\207" [vector] 9 (#$ . 39605)]) (byte-code "\300\301\302\303#\304\305\306\211\307\306\310\311\305\306& \207" [function-put undo-tree-make-region-data side-effect-free t cl-struct-define undo-tree-region-data nil vector ((undo-beginning) (undo-end) (redo-beginning) (redo-end)) cl-struct-undo-tree-region-data-tags] 11) #@10 (fn R) (defalias 'undo-tree-region-data-p '(macro . #[257 "\300\301\211\211\211$G\302\303D\304\305DEE\207" [vector nil and vectorp = length] 7 (#$ . 40106)])) #@13 (fn NODE) (defalias 'undo-tree-node-clear-region-data '(macro . #[257 "\300\301D\302\303\302\304\305\301D\306BBEEE\207" [setf undo-tree-node-meta-data delq nil :region plist-put (:region nil)] 10 (#$ . 40276)])) #@13 (fn NODE) (defalias 'undo-tree-node-undo-beginning '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let r plist-get undo-tree-node-meta-data (:region) ((when (undo-tree-region-data-p r) (undo-tree-region-data-undo-beginning r)))] 6 (#$ . 40499)])) #@13 (fn NODE) (defalias 'undo-tree-node-undo-end '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let r plist-get undo-tree-node-meta-data (:region) ((when (undo-tree-region-data-p r) (undo-tree-region-data-undo-end r)))] 6 (#$ . 40762)])) #@13 (fn NODE) (defalias 'undo-tree-node-redo-beginning '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let r plist-get undo-tree-node-meta-data (:region) ((when (undo-tree-region-data-p r) (undo-tree-region-data-redo-beginning r)))] 6 (#$ . 41013)])) #@13 (fn NODE) (defalias 'undo-tree-node-redo-end '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let r plist-get undo-tree-node-meta-data (:region) ((when (undo-tree-region-data-p r) (undo-tree-region-data-redo-end r)))] 6 (#$ . 41276)])) (byte-code "\300\301\302\303#\300\304\302\305#\300\306\302\307#\300\310\302\311#\300\207" [function-put undo-tree-node-undo-beginning gv-expander #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-undo-beginning #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let r plist-get undo-tree-node-meta-data (:region) unless (undo-tree-region-data-p r) setf plist-put (:region (setq r (undo-tree-make-region-data))) (undo-tree-region-data-undo-beginning r)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"] undo-tree-node-undo-end #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-undo-end #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let r plist-get undo-tree-node-meta-data (:region) unless (undo-tree-region-data-p r) setf plist-put (:region (setq r (undo-tree-make-region-data))) (undo-tree-region-data-undo-end r)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"] undo-tree-node-redo-beginning #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-redo-beginning #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let r plist-get undo-tree-node-meta-data (:region) unless (undo-tree-region-data-p r) setf plist-put (:region (setq r (undo-tree-make-region-data))) (undo-tree-region-data-redo-beginning r)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"] undo-tree-node-redo-end #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-redo-end #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let r plist-get undo-tree-node-meta-data (:region) unless (undo-tree-region-data-p r) setf plist-put (:region (setq r (undo-tree-make-region-data))) (undo-tree-region-data-redo-end r)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"]] 7) #@89 compiler-macro for inlining `undo-tree-visualizer-data-lwidth'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-visualizer-data-lwidth--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-visualizer-data-lwidth (aref cl-x 0)) nil] 9 (#$ . 43359)]) (put 'undo-tree-visualizer-data-lwidth 'compiler-macro 'undo-tree-visualizer-data-lwidth--cmacro) #@213 Access slot "lwidth" of `(undo-tree-visualizer-data (:type vector) (:constructor nil) (:constructor undo-tree-make-visualizer-data (&optional lwidth cwidth rwidth marker)) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-visualizer-data-lwidth #[257 "\211\300H\207" [0] 3 (#$ . 43753)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-visualizer-data-lwidth side-effect-free t] 4) #@89 compiler-macro for inlining `undo-tree-visualizer-data-cwidth'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-visualizer-data-cwidth--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-visualizer-data-cwidth (aref cl-x 1)) nil] 9 (#$ . 44167)]) (put 'undo-tree-visualizer-data-cwidth 'compiler-macro 'undo-tree-visualizer-data-cwidth--cmacro) #@213 Access slot "cwidth" of `(undo-tree-visualizer-data (:type vector) (:constructor nil) (:constructor undo-tree-make-visualizer-data (&optional lwidth cwidth rwidth marker)) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-visualizer-data-cwidth #[257 "\211\300H\207" [1] 3 (#$ . 44561)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-visualizer-data-cwidth side-effect-free t] 4) #@89 compiler-macro for inlining `undo-tree-visualizer-data-rwidth'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-visualizer-data-rwidth--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-visualizer-data-rwidth (aref cl-x 2)) nil] 9 (#$ . 44975)]) (put 'undo-tree-visualizer-data-rwidth 'compiler-macro 'undo-tree-visualizer-data-rwidth--cmacro) #@213 Access slot "rwidth" of `(undo-tree-visualizer-data (:type vector) (:constructor nil) (:constructor undo-tree-make-visualizer-data (&optional lwidth cwidth rwidth marker)) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-visualizer-data-rwidth #[257 "\211\300H\207" [2] 3 (#$ . 45369)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-visualizer-data-rwidth side-effect-free t] 4) #@89 compiler-macro for inlining `undo-tree-visualizer-data-marker'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-visualizer-data-marker--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-visualizer-data-marker (aref cl-x 3)) nil] 9 (#$ . 45783)]) (put 'undo-tree-visualizer-data-marker 'compiler-macro 'undo-tree-visualizer-data-marker--cmacro) #@213 Access slot "marker" of `(undo-tree-visualizer-data (:type vector) (:constructor nil) (:constructor undo-tree-make-visualizer-data (&optional lwidth cwidth rwidth marker)) (:copier nil))' struct CL-X. (fn CL-X) (defalias 'undo-tree-visualizer-data-marker #[257 "\211\300H\207" [3] 3 (#$ . 46177)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-visualizer-data-marker side-effect-free t] 4) #@120 compiler-macro for inlining `undo-tree-make-visualizer-data'. (fn CL-WHOLE-ARG &optional LWIDTH CWIDTH RWIDTH MARKER) (defalias 'undo-tree-make-visualizer-data--cmacro #[1281 "\300\301\302\303\211\211    & \207" [cl--defsubst-expand (lwidth cwidth rwidth marker) (cl-block undo-tree-make-visualizer-data (vector lwidth cwidth rwidth marker)) nil] 15 (#$ . 46592)]) (put 'undo-tree-make-visualizer-data 'compiler-macro 'undo-tree-make-visualizer-data--cmacro) #@106 Constructor for objects of type `undo-tree-visualizer-data'. (fn &optional LWIDTH CWIDTH RWIDTH MARKER) (defalias 'undo-tree-make-visualizer-data #[1024 "\300$\207" [vector] 9 (#$ . 47063)]) (byte-code "\300\301\302\303#\304\305\306\211\307\306\310\311\305\306& \207" [function-put undo-tree-make-visualizer-data side-effect-free t cl-struct-define undo-tree-visualizer-data nil vector ((lwidth) (cwidth) (rwidth) (marker)) cl-struct-undo-tree-visualizer-data-tags] 11) #@10 (fn V) (defalias 'undo-tree-visualizer-data-p '(macro . #[257 "\300\301\211\211\211$G\302\303D\304\305DEE\207" [vector nil and vectorp = length] 7 (#$ . 47544)])) #@13 (fn NODE) (defalias 'undo-tree-node-clear-visualizer-data #[257 "\211\300H\211@\301=\203\211\300AAI\262\2022\211\203)\211A@\301=\204)\211A\262\202\211\2052\211\302\233\241\207" [6 :visualizer 3] 6 (#$ . 47718)]) #@13 (fn NODE) (defalias 'undo-tree-node-lwidth '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let v plist-get undo-tree-node-meta-data (:visualizer) ((when (undo-tree-visualizer-data-p v) (undo-tree-visualizer-data-lwidth v)))] 6 (#$ . 47951)])) #@13 (fn NODE) (defalias 'undo-tree-node-cwidth '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let v plist-get undo-tree-node-meta-data (:visualizer) ((when (undo-tree-visualizer-data-p v) (undo-tree-visualizer-data-cwidth v)))] 6 (#$ . 48210)])) #@13 (fn NODE) (defalias 'undo-tree-node-rwidth '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let v plist-get undo-tree-node-meta-data (:visualizer) ((when (undo-tree-visualizer-data-p v) (undo-tree-visualizer-data-rwidth v)))] 6 (#$ . 48469)])) #@13 (fn NODE) (defalias 'undo-tree-node-marker '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let v plist-get undo-tree-node-meta-data (:visualizer) ((when (undo-tree-visualizer-data-p v) (undo-tree-visualizer-data-marker v)))] 6 (#$ . 48728)])) (byte-code "\300\301\302\303#\300\304\302\305#\300\306\302\307#\300\310\302\311#\300\207" [function-put undo-tree-node-lwidth gv-expander #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-lwidth #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let v plist-get undo-tree-node-meta-data (:visualizer) unless (undo-tree-visualizer-data-p v) setf plist-put (:visualizer (setq v (undo-tree-make-visualizer-data))) (undo-tree-visualizer-data-lwidth v)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"] undo-tree-node-cwidth #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-cwidth #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let v plist-get undo-tree-node-meta-data (:visualizer) unless (undo-tree-visualizer-data-p v) setf plist-put (:visualizer (setq v (undo-tree-make-visualizer-data))) (undo-tree-visualizer-data-cwidth v)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"] undo-tree-node-rwidth #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-rwidth #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let v plist-get undo-tree-node-meta-data (:visualizer) unless (undo-tree-visualizer-data-p v) setf plist-put (:visualizer (setq v (undo-tree-make-visualizer-data))) (undo-tree-visualizer-data-rwidth v)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"] undo-tree-node-marker #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-marker #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let v plist-get undo-tree-node-meta-data (:visualizer) unless (undo-tree-visualizer-data-p v) setf plist-put (:visualizer (setq v (undo-tree-make-visualizer-data))) (undo-tree-visualizer-data-marker v)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"]] 7) #@87 compiler-macro for inlining `undo-tree-register-data-buffer'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-register-data-buffer--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-register-data-buffer (aref cl-x 0)) nil] 9 (#$ . 50839)]) (put 'undo-tree-register-data-buffer 'compiler-macro 'undo-tree-register-data-buffer--cmacro) #@169 Access slot "buffer" of `(undo-tree-register-data (:type vector) (:constructor nil) (:constructor undo-tree-make-register-data (buffer node)))' struct CL-X. (fn CL-X) (defalias 'undo-tree-register-data-buffer #[257 "\211\300H\207" [0] 3 (#$ . 51223)]) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-register-data-buffer side-effect-free t] 4) #@85 compiler-macro for inlining `undo-tree-register-data-node'. (fn CL-WHOLE-ARG CL-X) (defalias 'undo-tree-register-data-node--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-register-data-node (aref cl-x 1)) nil] 9 (#$ . 51589)]) (put 'undo-tree-register-data-node 'compiler-macro 'undo-tree-register-data-node--cmacro) #@167 Access slot "node" of `(undo-tree-register-data (:type vector) (:constructor nil) (:constructor undo-tree-make-register-data (buffer node)))' struct CL-X. (fn CL-X) (defalias 'undo-tree-register-data-node #[257 "\211\300H\207" [1] 3 (#$ . 51963)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put undo-tree-register-data-node side-effect-free t defalias copy-undo-tree-register-data copy-sequence] 4) #@92 compiler-macro for inlining `undo-tree-make-register-data'. (fn CL-WHOLE-ARG BUFFER NODE) (defalias 'undo-tree-make-register-data--cmacro #[771 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (buffer node) (cl-block undo-tree-make-register-data (vector buffer node)) nil] 11 (#$ . 52385)]) (put 'undo-tree-make-register-data 'compiler-macro 'undo-tree-make-register-data--cmacro) #@78 Constructor for objects of type `undo-tree-register-data'. (fn BUFFER NODE) (defalias 'undo-tree-make-register-data #[514 "\300\"\207" [vector] 5 (#$ . 52782)]) (byte-code "\300\301\302\303#\304\305\306\211\307\306\310\311\305\306& \207" [function-put undo-tree-make-register-data side-effect-free t cl-struct-define undo-tree-register-data nil vector ((buffer) (node)) cl-struct-undo-tree-register-data-tags] 11) #@13 (fn DATA) (defalias 'undo-tree-register-data-p #[257 "\300!\205\211G\301U\205\300\302H!\205\211\302HG\303U\207" [vectorp 2 1 7] 4 (#$ . 53205)]) #@13 (fn DATA) (defalias 'undo-tree-register-data-print-func #[257 "\300\301\302\303H\"!\207" [princ format "an undo-tree state for buffer %s" 0] 6 (#$ . 53366)]) #@13 (fn NODE) (defalias 'undo-tree-node-register '(macro . #[257 "\300\301D\302BB\207" [plist-get undo-tree-node-meta-data (:register)] 4 (#$ . 53533)])) (byte-code "\300\301\302\303#\300\207" [function-put undo-tree-node-register gv-expander #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-register #[514 "\300\301D\302\301D\303FE\207" [setf undo-tree-node-meta-data plist-put :register] 8 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@70 Add an UNDO node to current branch of `buffer-undo-tree'. (fn UNDO) (defalias 'undo-tree-grow #[257 "\302! >\204\303\304\305D\"\210\306H\307\310\310\311 \312\310&\211\313\313HBI\266\302! >\2047\303\304\305D\"\210\211\306I\262\207" [buffer-undo-tree cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 2 vector nil current-time 0 1] 10 (#$ . 53997)]) #@247 Add new node *above* undo-tree NODE, and return new node. Note that this will overwrite NODE's "previous" link, so should only be used on a detached NODE, never on nodes that are already part of `buffer-undo-tree'. (fn NODE UNDO &optional REDO) (defalias 'undo-tree-grow-backwards #[770 "\300#\211\301I\266\211\207" [undo-tree-make-node-backwards 0] 8 (#$ . 54391)]) #@235 Splice NODE into undo tree, below node SPLICE. Note that this will overwrite NODE's "next" and "previous" links, so should only be used on a detached NODE, never on nodes that are already part of `buffer-undo-tree'. (fn NODE SPLICE) (defalias 'undo-tree-splice-node #[514 "\211\300\300HI\266\211\301\301HI\266\211\302I\266\211\211\300CI\266\211\211\301\302I\266\300H\211\205@\211@\211\211\302I\266A\266\202\202+\207" [1 5 0] 8 (#$ . 54772)]) #@40 Snip NODE out of undo tree. (fn NODE) (defalias 'undo-tree-snip-node #[257 "\211\300H\301\211\302HG\300U\203%\211\302\302HI\266\211\303\303HI\266\202\207\304\302H\"\262\303HU\203D\211\303\303H\\I\266\202\\\303HV\203\\\211\303\303H\302HGS\\I\266\300U\203u\211\302\302H\302HA\244I\266\202\207S\302H\233\262\211\302HAA\244\241\210\302H\211\205\237\211@\211\211\300I\266A\266\202\202\212\262\207" [0 nil 1 5 undo-tree-position] 10 (#$ . 55240)]) #@41 (fn --UNDO-TREE-MAPC-FUNCTION-- NODE) (defalias 'undo-tree-mapc #[514 "\211C\300\211A\262\242\211\262\205!\210\301\302H\"\262\202\207" [nil append 1] 7 (#$ . 55742)]) #@54 Return number of branches at current undo tree node. (defalias 'undo-tree-num-branches '(macro . #[0 "\300\207" [(length (undo-tree-node-next (undo-tree-current buffer-undo-tree)))] 1 (#$ . 55929)])) #@150 Find the first occurrence of NODE in LIST. Return the index of the matching item, or nil of not found. Comparison is done with `eq'. (fn NODE LIST) (defalias 'undo-tree-position #[514 "\300\3012@=\203\302\301\"\210\211T\262A\211\262\204\3030\207" [0 found throw nil] 6 (#$ . 56136)]) (defvar *undo-tree-id-counter* 0) (make-variable-buffer-local '*undo-tree-id-counter*) (defalias 'undo-tree-generate-id '(macro . #[0 "\300\207" [(let ((num (prog1 *undo-tree-id-counter* (cl-incf *undo-tree-id-counter*)))) (make-symbol (format "undo-tree-id%d" num)))] 1])) #@18 (fn UNDO-TREE) (defalias 'undo-tree-decircle #[257 "\301\302\303!>\204\304\305\306D\"\210\307H\"\207" [cl-struct-undo-tree-tags undo-tree-mapc #[257 "\211\300H\211\205\211@\211\211\301\302I\266A\266\202\202\207" [1 0 nil] 7 "\n\n(fn NODE)"] type-of signal wrong-type-argument undo-tree 1] 7 (#$ . 56713)]) #@18 (fn UNDO-TREE) (defalias 'undo-tree-recircle #[257 "\301\302\303!>\204\304\305\306D\"\210\307H\"\207" [cl-struct-undo-tree-tags undo-tree-mapc #[257 "\211\300H\211\205\211@\211\211\301I\266A\266\202\202\207" [1 0] 7 "\n\n(fn NODE)"] type-of signal wrong-type-argument undo-tree 1] 7 (#$ . 57039)]) #@12 (fn ELT) (defalias 'undo-list-marker-elt-p '(macro . #[257 "\300\301DD\207" [markerp car-safe] 4 (#$ . 57358)])) #@12 (fn ELT) (defalias 'undo-list-GCd-marker-elt-p '(macro . #[257 "\300\301D\302\303DD\304\305\306\303DDDC\307BB\310\311DD\257\207" [and car-safe symbolp car let str symbol-name ((and (> (length str) 12) (string= (substring str 0 12) "undo-tree-id"))) numberp cdr-safe] 9 (#$ . 57480)])) #@12 (fn ELT) (defalias 'undo-tree-move-GC-elts-to-pool #[257 "\303\242!\2050\211T\304\305\306\"!\262\307@\310 !\n>\204&\311\312\313 D\"\210 \314H#\210\240\262\207" [*undo-tree-id-counter* buffer-undo-tree cl-struct-undo-tree-tags markerp make-symbol format "undo-tree-id%d" puthash type-of signal wrong-type-argument undo-tree 5] 9 (#$ . 57780)]) #@12 (fn ELT) (defalias 'undo-tree-restore-GC-elts-from-pool #[257 "\211\242\203C\211@9\203C\302@!\211G\303V\205\211\304\303O\305\230\262\203C\211\243\247\203C\211\306@\307! >\204:\310\311\312D\"\210\313H\"\240\205D\207\211\207" [buffer-undo-tree cl-struct-undo-tree-tags symbol-name 12 0 "undo-tree-id" gethash type-of signal wrong-type-argument undo-tree 5] 8 (#$ . 58143)]) #@18 (fn UNDO-LIST) (defalias 'undo-list-clean-GCd-elts #[257 "\211@\242\203L\211@@9\203L\302@@!\211G\303V\205\211\304\303O\305\230\262\203L\211@\243\247\203L\306@@\307! >\204>\310\311\312D\"\210\313H\"\204\211A\262\202\211\211A\203\251\211A@\242\203\242\211A@@9\203\242\302A@@!\211G\303V\205t\211\304\303O\305\230\262\203\242\211A@\243\247\203\242\306A@@\307! >\204\225\310\311\312D\"\210\313H\"\204\242\211AA\241\210\211A\262\202M\210\207" [buffer-undo-tree cl-struct-undo-tree-tags symbol-name 12 0 "undo-tree-id" gethash type-of signal wrong-type-argument undo-tree 5] 8 (#$ . 58537)]) #@18 (fn UNDO-LIST) (defalias 'undo-list-found-canary-p #[257 "\211@\300=\206\211@?\205\211A@\300=\207" [undo-tree-canary] 3 (#$ . 59165)]) #@40 (fn UNDO-LIST &optional DISCARD-POS) (defalias 'undo-list-pop-changeset '(macro . #[513 "\300\301\302\303DDE\304\305\306\307\310DD\311\312\nDEE\306\313\306\301\n\310\fD\302\303DDF\314\301 \315\310DDE\311 \312DE\316\317D\320BB\321BBBBEE\322BBBBE\207" [when and not undo-list-found-canary-p let (changeset) while null car setq cdr (null changeset) if integerp push pop (changeset) ((undo-tree-move-GC-elts-to-pool (car changeset))) ((nreverse changeset))] 17 (#$ . 59312)])) #@18 (fn UNDO-LIST) (defalias 'undo-tree-copy-list #[257 "\300\211\203\204\301\211A\262\242!\262\202\205CC\262\262\203B\211\301\302\211A\262\242!!\241\203\"\211AC\241\210\211A\262\202\"\207" [nil undo-tree-restore-GC-elts-from-pool undo-copy-list-1] 8 (#$ . 59813)]) (defvar undo-tree-gc-flag nil) (defalias 'undo-tree-post-gc #[0 "\301\211\207" [undo-tree-gc-flag t] 2]) (defalias 'undo-list-transfer-to-tree #[0 "\304=\203\n\305\306!\210\204\307  \203\310 !\204\311 \210\312\211\304\n\2030\312\313 !\262\202\"\314\205s\310!?\205s\312@\204JA\262\202>\211\204o\203J@\203J\310!\204J\211A\262\242B\262\315@!\210\202N\211\237\262\211\262\203\331\316\312\211\312\317 \320\312&\321! >\204\223\322\323\324D\"\210\325H\326\325H!\327\321! >\204\253\322\323\324D\"\210\211\325I\266\205\373\310!?\205\373\312@\204\316A\262\202\300\211\204\367\203\316@\203\316\310!\204\316\211A\262\242B\262\315@!\210\202\322\211\237\262\211\262\203\330\"\262\326\325H!\\\262\211T\262\202\263\310!\203p\211\320I\266\211\327\327HBI\266\211\331\320I\266\321! >\204H\322\323\324D\"\210\211\332\332H\\I\266\321! >\204b\322\323\324D\"\210\211\333\333H\\I\266\202\327\321! >\204\322\323\324D\"\210\332H\320U\204\213\334\335!\210\330\312\"\262\321! >\204\240\322\323\324D\"\210\211\327I\266\321! >\204\267\322\323\324D\"\210\211\332I\266\321! >\204\315\322\323\324D\"\210\211\333I\266\336\262\266\266\337 \207" [buffer-undo-tree buffer-undo-list undo-tree-gc-flag cl-struct-undo-tree-tags t cl--assertion-failed (not (eq buffer-undo-tree t)) make-undo-tree undo-list-found-canary-p garbage-collect nil copy-tree (nil undo-tree-canary) undo-tree-move-GC-elts-to-pool vector current-time 0 type-of signal wrong-type-argument undo-tree 2 undo-list-byte-size 1 undo-tree-grow-backwards 5 3 4 message "Undo history discarded by Emacs (see `undo-limit') - rebuilding undo-tree" (nil undo-tree-canary) undo-tree-discard-history] 12]) #@18 (fn UNDO-LIST) (defalias 'undo-list-byte-size #[257 "\300\211\203\"\211@\301\\\262\211\242;\203\302@!\\\262A\266\202\202\210\211\207" [0 8 string-bytes] 7 (#$ . 61891)]) #@68 Rebuild `buffer-undo-list' from information in `buffer-undo-tree'. (defalias 'undo-list-rebuild-from-tree #[0 "\303=?\205\242\304 \210\305 \205\242\306 !\n>\204\307\310\311 D\"\210 \312HCC\313\314\315@@\211\312H\262\"\316\"B\262\211@\204V\211A@@\306 !\n>\204N\307\310\311 D\"\210 \317H=?\205\240\211@\203\320@@\211\317H\262\"\321 \210\313\314\315@@\211\312H\262\"\322\"B\262\2026\211A\262\320@@\211\323H\262\"\321 \210\211\211@\211A\240\210\266\2026\262\207" [buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags t undo-list-transfer-to-tree nil type-of signal wrong-type-argument undo-tree 1 sort mapcar identity #[514 "\300\301H\301H\"\207" [time-less-p 4] 6 "\n\n(fn A B)"] 2 append undo-boundary #[514 "\300\301H\301H\"\207" [time-less-p 4] 6 "\n\n(fn A B)"] 3] 7 (#$ . 62081)]) #@13 (fn NODE) (defalias 'undo-tree-oldest-leaf #[257 "\211\300H\203\301\302\303\300H\"\304\"@\262\202\207" [1 sort mapcar identity #[514 "\300\301H\301H\"\207" [time-less-p 4] 6 "\n\n(fn A B)"]] 6 (#$ . 62914)]) #@13 (fn NODE) (defalias 'undo-tree-discard-node #[257 "\211\302! >\204\303\304\305D\"\210\306H=?\205\310\211\302! >\204(\303\304\305D\"\210\307H=\203\211\307HG\307V\203<\310\311!\207\211\307H@\302! >\204O\303\304\305D\"\210\306H=\203X\312\207\313\314H\315\"\211\203o\316!=\203o\317\312\"\210\210\302! >\204\303\304\305D\"\210\211\307\307H@I\262\262\302! >\204\232\303\304\305D\"\210\211\320\320H\321\306H!\321\320H!\\ZI\266\302! >\204\277\303\304\305D\"\210\211\322\322HSI\266\211\211\306\312I\266\211\211\320\312I\266\211\211\323\312I\266\211\307HG\307V\204\211\307H@\302! >\204\372\303\304\305D\"\210\306H=\203\324!\207\207\211\323H\211\325H\307H8\313\314H\315\"\211\203'\316!=\203'\317\312\"\210\210\302! >\2047\303\304\305D\"\210\211\320\320H\321\306H!\321\320H!\\ZI\266\302! >\204]\303\304\305D\"\210\211\322\322HSI\266\211\307\326\307H\"I\266\211\325\327\307H\"I\266\302! >\204\222\303\304\305D\"\210\306H=\204\277\307H\203\305\302! >\204\257\303\304\305D\"\210\307H=\203\277\307HG\307V\203\305\324!\202\306\266\202\207" [buffer-undo-tree cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 2 1 error "Trying to discard undo-tree root which still has multiple branches" nil plist-get 6 :register get-register set-register 3 undo-list-byte-size 4 0 undo-tree-oldest-leaf 5 delq undo-tree-position] 11 (#$ . 63138)]) #@126 Discard undo history until we're within memory usage limits set by `undo-limit', `undo-strong-limit' and `undo-outer-limit'. (defalias 'undo-tree-discard-history #[0 "\306! >\204\307\310\311D\"\210\312H\nV\205\216\306! >\204&\307\310\311D\"\210\313H\313HG\313V\203H\314\306! >\204A\307\310\311D\"\210\313H!\202Z\306! >\204W\307\310\311D\"\210\313H\315\203\201\306! >\204n\307\310\311D\"\210\312H V\203\201\316!\262\317\262\202[\203\365\306! >\204\224\307\310\311D\"\210\312H\nV\203\365\306! >\204\253\307\310\311D\"\210\312H\306! >\204\276\307\310\311D\"\210\313H=\203\331\320\313H@\321H!\320\313H@\312H!\\\202\344\320\321H!\320\312H!\\Z\nV\203\365\316!\262\317\262\202\201\211\203\375\322\323!\210\f\203]\306! >\204\307\310\311D\"\210\312H\fV\203] \203=\324\325\326\327 \306! >\2040\307\310\311D\"\210\312H#!\203]\315\202]\330\331\325\332\327 \306! >\204R\307\310\311D\"\210\312H#\333P\334#\210\315\205\214\211\205\214!\335=\204x\"\204x\336#!\205\214r#q\210\337!\210$\205\211\340 )\262\266\202\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-limit undo-strong-limit undo-outer-limit undo-ask-before-discard type-of signal wrong-type-argument undo-tree 3 1 undo-tree-oldest-leaf nil undo-tree-discard-node t undo-list-byte-size 2 message "Undo history discarded by undo-tree (see `undo-tree-limit')" yes-or-no-p format "Buffer `%s' undo info is %d bytes long; discard it? " buffer-name display-warning (undo discard-info) "Buffer `%s' undo info was %d bytes long.\n" "The undo info was discarded because it exceeded `undo-outer-limit'.\n\nThis is normal if you executed a command that made a huge change\nto the buffer. In that case, to prevent similar problems in the\nfuture, set `undo-outer-limit' to a value that is large enough to\ncover the maximum size of normal changes you expect a single\ncommand to make, but not so large that it might exceed the\nmaximum memory allotted to Emacs.\n\nIf you did not execute any such command, the situation is\nprobably due to a bug and you should report it.\n\nYou can disable the popping up of this buffer by adding the entry\n(undo discard-info) to the user option `warning-suppress-types',\nwhich is defined in the `warnings' library.\n" :warning undo-tree-visualizer-mode get-buffer undo-tree-draw-tree undo-tree-visualizer-update-diff major-mode undo-tree-visualizer-parent-buffer undo-tree-visualizer-buffer-name undo-tree-visualizer-diff] 11 (#$ . 64594)]) #@61 Recursively compute widths for nodes below NODE. (fn NODE) (defalias 'undo-tree-compute-widths #[257 "\211C\300\205\312\301\302@!\211\262!\203(\302@!\211\262G\303U\203(\211B\262\202@\304\305H\306\"\301!\203=\211G\307U\204R\211\305\310\305H\306\311\300\211\211\211$\211\262#I\266\211\211\312\312HI\266@\304\305H\306\"\301!\203p\211G\307U\204\205\211\305\310\305H\306\311\300\211\211\211$\211\262#I\266\211\211\313\313HI\266@\304\305H\306\"\301!\203\243\211G\307U\204\270\211\305\310\305H\306\311\300\211\211\211$\211\262#I\266\211\211\314\314HI\266\211A\262\210\202\207" [nil vectorp undo-tree-node-compute-widths 7 plist-get 6 :visualizer 4 plist-put vector 0 1 2] 16 (#$ . 67109)]) #@13 (fn NODE) (defalias 'undo-tree-node-compute-widths #[257 "\211\300HG\301\211\211\302\3032\217\301U\203\250\300\262\304\305H\306\"\307!\203)\211G\310U\204>\211\305\311\305H\306\312\302\211\211\211$\211\262#I\266\211\211\301\211I\266\304\305H\306\"\307!\203Y\211G\310U\204n\211\305\311\305H\306\312\302\211\211\211$\211\262#I\266\211\211\300\211I\266\304\305H\306\"\307!\203\211\211G\310U\204\236\211\305\311\305H\306\312\302\211\211\211$\211\262#I\266\211\211\313\301I\266\202\211\314\313\"\300U\203\\\300H\262\313\245\301\211W\203G\211\304@\305H\306\"\307!\205\330\211G\310U\205\330\211\301H\262\2035\315\304@\305H\306\"\307!\205\370\211G\310U\205\370\211\301H\262\304@\305H\306\"\307!\205\211G\310U\205\211\300H\262\304@\305H\306\"\307!\205,\211G\310U\205,\211\313H\262#\\\262\202;\316\303@\"\210A\262\210\211T\262\202\272\266\304@\305H\306\"\307!\205`\211G\310U\205`\211\301H\262\203\205\304@\305H\306\"\307!\205}\211G\310U\205}\211\301H\262\\\262\202\213\316\303@\"\210\304@\305H\306\"\307!\205\242\211G\310U\205\242\211\300H\262\262\304@\305H\306\"\307!\205\276\211G\310U\205\276\211\313H\262\\\262\211A\262\313\245\301\211W\203W\211\304@\305H\306\"\307!\205\351\211G\310U\205\351\211\301H\262\203E\315\304@\305H\306\"\307!\205\211G\310U\205\211\301H\262\304@\305H\306\"\307!\205\"\211G\310U\205\"\211\300H\262\304@\305H\306\"\307!\205<\211G\310U\205<\211\313H\262#\\\262\202K\316\303@\"\210A\262\210\211T\262\202\313\266\202\211\300H\262\313\245\301\211W\203\362\211\304@\305H\306\"\307!\205\203\211G\310U\205\203\211\301H\262\203\340\315\304@\305H\306\"\307!\205\243\211G\310U\205\243\211\301H\262\304@\305H\306\"\307!\205\275\211G\310U\205\275\211\300H\262\304@\305H\306\"\307!\205\327\211G\310U\205\327\211\313H\262#\\\262\202\346\316\303@\"\210A\262\210\211T\262\202e\266\301\262\313\245\301\211W\203\207\211\304@\305H\306\"\307!\205\211G\310U\205\211\301H\262\203u\315\304@\305H\306\"\307!\2058\211G\310U\2058\211\301H\262\304@\305H\306\"\307!\205R\211G\310U\205R\211\300H\262\304@\305H\306\"\307!\205l\211G\310U\205l\211\313H\262#\\\262\202{\316\303@\"\210A\262\210\211T\262\202\373\266\312#0\207" [1 0 nil need-widths plist-get 6 :visualizer vectorp 4 plist-put vector 2 mod + throw] 19 (#$ . 67848)]) #@13 (fn TREE) (defalias 'undo-tree-clear-visualizer-data #[257 "\301\302\303!>\204\304\305\306D\"\210\307H\"\207" [cl-struct-undo-tree-tags undo-tree-mapc #[257 "\300!\207" [undo-tree-node-clear-visualizer-data] 3 "\n\n(fn N)"] type-of signal wrong-type-argument undo-tree 1] 7 (#$ . 70297)]) #@29 (fn NODE &optional MTIME) (defalias 'undo-tree-node-unmodified-p #[513 "\300\211\301H\206\302H@\211\262\205\303H\262\3042D\211\205A\211@\211:\203:\211@\305=\203:\211A:\203:\306\304A\"\210A\266\202\202\2620\262\211\205i?\206i\211A<\203[\211\232\202i\211@@U\205i\211AA@U\207" [nil 3 1 2 found t throw] 9 (#$ . 70601)]) (defvar undo-adjusted-markers nil) #@18 (fn START END) (defalias 'undo-tree-pull-undo-in-region-branch #[514 "\304\"\203 \305\207\306C\211\306C\211\307! >\204\310\311\312D\"\210\313H\314\"\306\211\306\211\211\211\211\211\211\203\235 \262 \315H@\262 \262\306 \315HG\315U\203o\316 \210 \262\307! >\204g\310\311\312D\"\210\313H\262\n\202G)\n=\203{\306\262 \211\315\317 \315H\"I\266\211\320\306I\266\262 \262\202 \315H\203\321\306\211\211\211\322 \320\306&\262\262 \323H\n\315H8\211\262 \203\366\324 \313H!\324\f\325H!\322 \321\306\320\306&\266\204\211\315\315HBI\266\315H@\262\202\265\315H@\262\306\262\307! >\204\310\311\312D\"\210\313H\262\n\3262.?\205- \205- \313H\205-\306\324 \313H!B\262A@\262\203P\327\"\262\204a\262\202a\321\306\211\306\322 \320\306&\262\262\211\203\370\330#\203\242\211:\203\203\211@;\204\200\211@\250\203\203\305\262\331\"\210\f\332A\"C\241\210\fA\262 \211AA\241\210\202\360\211:\203\267\211@\305=\203\267\211AA\241\210\202\360\333#\203\326\203\313\306\262\202\360\306\262\334\326\305\"\210\202\360\335!\211A\320U\204\353 C\241\210 A\262\f\210A\262A@\262\202a\313HA@\203\211\313H\211\313AI\210\266\202$=\203\306\262\315H@\262 \320H\262\n\2020\210 A\262 \204|\205A\211\315\315HBI\266\211\323\320I\266\211\320I\266\306\307! >\204i\310\311\312D\"\210\313H=\204w\336 \210\202Z)\306\202A\306\307! >\204\214\310\311\312D\"\210\313H\307! >\204\240\310\311\312D\"\210\313H\f=\204\257\316 \210\202\221\307! >\204\276\310\311\312D\"\210\313H=\204\314\336 \210\202\257)\266\204\321\n\306\306\322 \320\306&\262 \211\315\n\315HBI\266 \211\323\320I\266\307! >\204\310\311\312D\"\210\211\313\nI\266\202\342\204W\327\"\262 \211\315\n\315HBI\266 \211\323\320I\266\211\320\fI\266\307! >\204L\310\311\312D\"\210\211\313\nI\266\202\342\211\320\fI\266 \211\315\n\315HBI\266 \211\323\320I\266\203\266\307! >\204\211\310\311\312D\"\210\211\313\320HI\266\306\307! >\204\244\310\311\312D\"\210\313H=\204\265\336\306\337\"\210\202\225)\321\306\211\306\322 \320\306&\262\n\340\n\"\210\307! >\204\332\310\311\312D\"\210\211\313\fI\266\320H\262\n \315H@\211\262 \203@ =\204@\307! >\204\n\310\311\312D\"\210\211\341\341HTI\262\203@\307! >\204&\310\311\312D\"\210\211\325\325H\342\313H!\342\325H!\\\\I\262\204\350\305)\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-adjusted-markers mark-active undo-tree-reverting-redo-in-region-p t nil type-of signal wrong-type-argument undo-tree 2 undo-tree-repeated-undo-in-region-p 1 undo-tree-undo-1 delq 0 vector current-time 5 undo-copy-list 3 abort undo-tree-grow-backwards undo-elt-in-region undo-tree-adjust-elements-to-elt undo-tree-apply-deltas undo-elt-crosses-region throw undo-delta undo-tree-redo-1 preserve-undo undo-tree-splice-node 4 undo-list-byte-size] 29 (#$ . 70991)]) #@18 (fn START END) (defalias 'undo-tree-pull-redo-in-region-branch #[514 "\303\"\203 \304\207\305C\211\305C\211\306! >\204\307\310\311D\"\210\312H\313\"\305\211\305\211\211\211\203V\314H@\211\262\203\253\211\315\305I\266\211\314\316 \314H\"I\266\202\253\314H\203\253\317\305\211\211\211\320 \315\305&\262\262\321H\314H8\211\262\203\245\322\323H!\320 \317\305\211\315\305&\266\203\211\314\314HBI\266\314H@\262\202m\314H@\262\262\3242\250?\205\247\205\247\323H\205\247\211\323\305\323HBI\262\262A@\262\211\203n\325#\203\211:\203\370\211@;\204\365\211@\250\203\370\304\262\326\304#\210 \327 A\330#C\241\210 A\262\n\211AA\241\210\202f\211:\203-\211@\304=\203-\211AA\241\210\202f\331#\203L\203A\305\262\202f\305\262 \332\324\304\"\210\202f\333!\211A\315U\204aC\241\210A\262 \210A\262A@\262\202\326\323HA@\203\210\211\312H\211\312AI\210\266\202\235=\203\230\314H@\262\202\235\334!\210\314H@\262\202\2620\210\nA\262 \306! >\204\275\307\310\311D\"\210\312H\262\n@\204\361\205\231\205\231\211\314\314HBI\266\211\321\315I\266\211\315 I\266\305\202\231\203\376\335\305 #\202\n\317\305\211\211\320 \315\305&\262\211\314\314HBI\266\211\321\315I\266\211\315 I\266\204y\262\314H@\211\262\203y\306! >\204J\307\310\311D\"\210\211\336\336HTI\262\203y\306! >\204f\307\310\311D\"\210\211\323\323H\337 \323H!\\I\262\2040\306! >\204\210\307\310\311D\"\210\211\323\323H\337 \323H!\\I\266\304)\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-adjusted-markers undo-tree-reverting-undo-in-region-p t nil type-of signal wrong-type-argument undo-tree 2 undo-tree-repeated-redo-in-region-p 1 0 delq vector current-time 5 undo-copy-list 3 abort undo-elt-in-region undo-tree-adjust-elements-to-elt undo-tree-apply-deltas -1 undo-elt-crosses-region throw undo-delta undo-tree-snip-node undo-tree-grow-backwards 4 undo-list-byte-size] 25 (#$ . 74037)]) #@341 Adjust buffer positions of undo elements, starting at NODE's and going up the tree (or down the active branch if BELOW is non-nil) and through the nodes' undo elements until we reach UNDO-ELT. UNDO-ELT must appear somewhere in the undo changeset of either NODE itself or some node above it in the tree. (fn NODE UNDO-ELT &optional BELOW) (defalias 'undo-tree-adjust-elements-to-elt #[770 "\300!C\301H\211@\205C\211@=?\205C\211\302@\303#\240\210\211A\211\262@\204\2036\304H\305H8\262\202;\306H\262\301H\262\202\207" [undo-delta 2 undo-tree-apply-deltas -1 5 1 0] 10 (#$ . 76087)]) #@38 (fn UNDO-ELT DELTAS &optional SGN) (defalias 'undo-tree-apply-deltas #[770 "\300\211\211\203\253\211@\211@\262\211A\206\301_\262\250\203-Y\203\244Z\262\202\244:\203\244@;\203b\302A!A\303WY\203]\203U\304\202V\301Z_\241\210\266\202\244@\250\203\204@Y\203\244\211@Z\240\210\211AZ\241\210\202\244@\204\244\305\233\211@Y\203\243\211@Z\240\210\211AZ\241\210\210A\266\202\202\210\207" [nil 1 abs 0 -1 3] 13 (#$ . 76697)]) #@18 (fn START END) (defalias 'undo-tree-repeated-undo-in-region-p #[514 "\302! >\204\303\304\305D\"\210\306H\211\307H\310H8\211\262\205V\311\312H\313\"\314!\2055\211G\315U\2055\211\316H\262=\205V\311\312H\313\"\314!\205R\211G\315U\205R\211\310H\262=\207" [buffer-undo-tree cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 2 5 1 plist-get 6 :region vectorp 4 0] 6 (#$ . 77192)]) #@18 (fn START END) (defalias 'undo-tree-repeated-redo-in-region-p #[514 "\302! >\204\303\304\305D\"\210\306H\307\310H\311\"\312!\205(\211G\313U\205(\211\306H\262=\205I\307\310H\311\"\312!\205E\211G\313U\205E\211\314H\262=\207" [buffer-undo-tree cl-struct-undo-tree-tags type-of signal wrong-type-argument undo-tree 2 plist-get 6 :region vectorp 4 3] 6 (#$ . 77616)]) (byte-code "\300\301\302\"\210\300\303\304\"\207" [defalias undo-tree-reverting-undo-in-region-p undo-tree-repeated-undo-in-region-p undo-tree-reverting-redo-in-region-p undo-tree-repeated-redo-in-region-p] 3) (defvar undo-tree-timer nil) #@97 Non-nil if Undo-Tree mode is enabled. Use the command `undo-tree-mode' to change this variable. (defvar undo-tree-mode nil (#$ . 78244)) (make-variable-buffer-local 'undo-tree-mode) #@513 Toggle undo-tree mode. With no argument, this command toggles the mode. A positive prefix argument turns the mode on. A negative prefix argument turns it off. Undo-tree-mode replaces Emacs' standard undo feature with a more powerful yet easier to use version, that treats the undo history as what it is: a tree. The following keys are available in `undo-tree-mode': \{undo-tree-map} Within the undo-tree visualizer, the following keys are available: \{undo-tree-visualizer-mode-map} (fn &optional ARG) (defalias 'undo-tree-mode #[256 "\306 \307=\203 ?\202\310!\311V\211\203d\312\302!\210 \203%\n ]\202& \312\304!\210 \2035\f ]\2026 \312\313!\210 \205N \205N \205N &] \204[\314\315\316\317#'\320\321\322\323#\210\202\210\324 \210\323(\325\321\322\326#\210\327'!\203|\330'!\210\331\302!\210\331\304!\210\331\313!\210\332\333\203\222\334\202\223\335\"\210\336\337!\203\267\306 \203\247\211\306 \232\203\267\340\341\342\203\262\343\202\263\344#\266\210\345 \210\207" [undo-tree-mode undo-tree-limit undo-limit most-positive-fixnum undo-strong-limit undo-tree-strong-limit current-message toggle prefix-numeric-value 0 make-local-variable undo-outer-limit run-with-idle-timer 5 repeat undo-list-transfer-to-tree add-hook post-gc-hook undo-tree-post-gc nil undo-list-rebuild-from-tree remove-hook local timerp cancel-timer kill-local-variable run-hooks undo-tree-mode-hook undo-tree-mode-on-hook undo-tree-mode-off-hook called-interactively-p any " in current buffer" message "Undo-Tree mode %sabled%s" "en" "dis" force-mode-line-update undo-tree-outer-limit undo-tree-timer buffer-undo-tree] 8 (#$ . 78433) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)]) (defvar undo-tree-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\211%\207" [undo-tree-map undo-tree-mode-hook variable-documentation put "Hook run after entering or leaving `undo-tree-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" add-minor-mode undo-tree-mode undo-tree-mode-lighter nil] 6) #@753 Enable `undo-tree-mode' in the current buffer, when appropriate. Some major modes implement their own undo system, which should not normally be overridden by `undo-tree-mode'. This command does not enable `undo-tree-mode' in such buffers. If you want to force `undo-tree-mode' to be enabled regardless, use (undo-tree-mode 1) instead. The heuristic used to detect major modes in which `undo-tree-mode' should not be used is to check whether either the `undo' command has been remapped, or the default undo keybindings (C-/ and C-_) have been overridden somewhere other than in the global map. In addition, `undo-tree-mode' will not be enabled if the buffer's `major-mode' appears in `undo-tree-incompatible-major-modes'. (fn &optional PRINT-MESSAGE) (defalias 'turn-on-undo-tree-mode #[256 "\302\303!\204\304 \204 >\203\211\205\305\306!\207\307\310!\207" [major-mode undo-tree-incompatible-major-modes key-binding [remap undo] undo-tree-overridden-undo-bindings-p message "Buffer does not support undo-tree-mode; undo-tree-mode NOT enabled" undo-tree-mode 1] 3 (#$ . 80572) "p"]) #@285 Returns t if default undo bindings are overridden, nil otherwise. Checks if either of the default undo key bindings ("C-/" or "C-_") are overridden in the current buffer by any keymap other than the global one. (So global redefinitions of the default undo key bindings do not count.) (defalias 'undo-tree-overridden-undo-bindings-p #[0 "\300\301 \302\"\300\301 \303\"\304\305\306\"\210\304\307\306\"\210\310\311\312\313\314\"\315\"\316$\216\317\320!\2032\317\321!\306=?\206>\317\322!\205>\317\323!\306=?)\207" [lookup-key current-global-map [67108911] [31] global-set-key [67108911] undo [31] make-byte-code 0 "\302\303\300\"\210\302\304\301\"\207" vconcat vector [global-set-key [67108911] [31]] 3 key-binding [67108911] [67108911] [31] [31]] 9 (#$ . 81670)]) (defvar undo-tree-mode-major-mode nil) (byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313\314\315\316\317& \207" [make-variable-buffer-local undo-tree-mode-major-mode custom-declare-variable global-undo-tree-mode funcall function #[0 "\300\207" [nil] 1] "Non-nil if Global Undo-Tree mode is enabled.\nSee the `global-undo-tree-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `global-undo-tree-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :group undo-tree :type boolean] 12) #@359 Toggle Undo-Tree mode in all buffers. With prefix ARG, enable Global Undo-Tree mode if ARG is positive; otherwise, disable it. If called from Lisp, enable the mode if ARG is omitted or nil. Undo-Tree mode is enabled in all buffers where `turn-on-undo-tree-mode' would do it. See `undo-tree-mode' for more information on Undo-Tree mode. (fn &optional ARG) (defalias 'global-undo-tree-mode #[256 "\302 \303\300\304=\203\305\300!?\202\306!\307V\"\210\203.\310\311\312\"\210\310\313\314\"\210\310\315\316\"\210\202=\317\311\312\"\210\317\313\314\"\210\317\315\316\"\210\320 \211\203c\211@r\211q\210\203S\321 \210\202[ \203[\301\322!\210)A\266\202\202?\210\323\324\305\300!\203p\325\202q\326\"\210\327\330!\203\233\331\300!\210\302 \203\211\211\302 \232\203\233\332\333\334\305\300!\203\226\335\202\227\336#\266\210\337 \210\305\300!\207" [global-undo-tree-mode undo-tree-mode current-message set-default toggle default-value prefix-numeric-value 0 add-hook after-change-major-mode-hook global-undo-tree-mode-enable-in-buffers find-file-hook global-undo-tree-mode-check-buffers change-major-mode-hook global-undo-tree-mode-cmhh remove-hook buffer-list turn-on-undo-tree-mode -1 run-hooks global-undo-tree-mode-hook global-undo-tree-mode-on-hook global-undo-tree-mode-off-hook called-interactively-p any customize-mark-as-set "" message "Global Undo-Tree mode %sabled%s" "en" "dis" force-mode-line-update] 7 (#$ . 83107) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)]) (defvar global-undo-tree-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\300!\205\307\211%\207" [global-undo-tree-mode-map global-undo-tree-mode-hook variable-documentation put "Hook run after entering or leaving `global-undo-tree-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" add-minor-mode global-undo-tree-mode nil boundp] 6) (defvar undo-tree-mode-set-explicitly nil nil) (make-variable-buffer-local 'undo-tree-mode-set-explicitly) (defalias 'undo-tree-mode-set-explicitly #[0 "\301\211\207" [undo-tree-mode-set-explicitly t] 2]) (byte-code "\300\301\302\303#\210\304\305\301\"\207" [put undo-tree-mode-set-explicitly definition-name global-undo-tree-mode add-hook undo-tree-mode-hook] 4) (defvar global-undo-tree-mode-buffers nil) (defalias 'global-undo-tree-mode-enable-in-buffers #[0 "\305\211\211\2059\211@\306!\2032r\211q\210 \204/\n =\204/\f\203,\304\307!\210\310 \210\202/\310 \210 )A\266\202\202\262\207" [global-undo-tree-mode-buffers undo-tree-mode-set-explicitly undo-tree-mode-major-mode major-mode undo-tree-mode nil buffer-live-p -1 turn-on-undo-tree-mode] 5]) (put 'global-undo-tree-mode-enable-in-buffers 'definition-name 'global-undo-tree-mode) (defalias 'global-undo-tree-mode-check-buffers #[0 "\300 \210\301\302\303\"\207" [global-undo-tree-mode-enable-in-buffers remove-hook post-command-hook global-undo-tree-mode-check-buffers] 3]) (put 'global-undo-tree-mode-check-buffers 'definition-name 'global-undo-tree-mode) (defalias 'global-undo-tree-mode-cmhh #[0 "p\211\235\203\f\210\202\211B\210\301\302\303\"\207" [global-undo-tree-mode-buffers add-hook post-command-hook global-undo-tree-mode-check-buffers] 3]) (put 'global-undo-tree-mode-cmhh 'definition-name 'global-undo-tree-mode) #@347 Undo changes. Repeat this command to undo more changes. A numeric ARG serves as a repeat count. In Transient Mark mode when the mark is active, only undo changes within the current region. Similarly, when not in Transient Mark mode, just \[universal-argument] as an argument limits undo to changes within the current region. (fn &optional ARG) (defalias 'undo-tree-undo #[256 "\204\304\305!\210 \306=\203\304\307!\210\310!\210\311\n! >\204%\312\313\314\nD\"\210\n\315H\316HG\316V\2053\317\320!\207" [undo-tree-mode buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags user-error "Undo-tree mode not enabled in buffer" t "No undo information in this buffer" undo-tree-undo-1 type-of signal wrong-type-argument undo-tree 2 1 message "Undo branch point!"] 5 (#$ . 86477) "*P"]) #@56 (fn &optional ARG PRESERVE-REDO PRESERVE-TIMESTAMPS) (defalias 'undo-tree-undo-1 #[768 "\306\205\307 \206\205\247?\310\211\311 \210\247\203'\312!\206(\313\314\211W\203\315\211\315 !\f>\204?\316\317\320 D\"\210 \321H\314H\204K\322\323!\210 \203\\\324\325 \326 \"\204\\\322\327!\210\315 !\f>\204k\316\317\320 D\"\210 \321H\262\315 !\f>\204\316\317\320 D\"\210 \211\330\330H\331\321H!ZI\266\211\321\332\321H!I\266\315 !\f>\204\252\316\317\320 D\"\210 \211\330\330H\331\321H!\\I\266 \203\312\333 `\310\223\262\334\306\"\210\335\313\336\321H!\"\210\337 \210\203h \203\340 !\204\310 @\204\363 A\211\202\350\211\204 \203\363 @\203\363\340 !\204\363 \211A\242B\262\341@!\210\202\367\211\237\266\315 !\f>\204*\316\317\320 D\"\210 \211\330\330H\331\330H!ZI\266\211\330\332\330H!I\266\315 !\f>\204U\316\317\320 D\"\210 \211\330\330H\331\330H!\\I\266\202\371\315 !\f>\204w\316\317\320 D\"\210 \211\330\330H\331\330H!ZI\266\211\330 \205\327\340 !?\205\327\310 @\204\242 A\211\202\227\211\204\323 \203\242 @\203\242\340 !\204\242 @\250\203\302 A\211\202\247 \211A\242B\262\341@!\210\202\246\211\237\262I\266\315 !\f>\204\351\316\317\320 D\"\210 \211\330\330H\331\330H!\\I\266\315 !\f>\204\316\317\320 D\"\210 \211\321\315 !\f>\204\316\317\320 D\"\210 \321H\314HI\266\204@\315 !\f>\2046\316\317\320 D\"\210 \321H\211\342\343 I\266 \204[\211\344\345\310\345\346\347 \344H\346\310#\"\"I\266\202\305b\210\350\344H\346\"\351!\203r\211G\342U\204\207\211\344\347\344H\346\352\310\211\211\211$\211\262#I\266\211\211\314\325 I\266\350\344H\346\"\351!\203\243\211G\342U\204\270\211\344\347\344H\346\352\310\211\211\211$\211\262#I\266\211\211\313\326 I\266\310\211\223\210\210\211T\262\202)\266 ?\211+*\207" [undo-tree-enable-undo-in-region undo-in-region undo-in-progress buffer-undo-tree cl-struct-undo-tree-tags buffer-undo-list t region-active-p nil undo-list-transfer-to-tree prefix-numeric-value 1 0 type-of signal wrong-type-argument undo-tree 2 user-error "No further undo information" undo-tree-pull-undo-in-region-branch region-beginning region-end "No further undo information for region" 3 undo-list-byte-size undo-list-clean-GCd-elts make-marker set-marker-insertion-type primitive-undo undo-tree-copy-list undo-boundary undo-list-found-canary-p undo-tree-move-GC-elts-to-pool 4 current-time 6 delq :region plist-put plist-get vectorp vector deactivate-mark] 24 (#$ . 87274)]) #@305 Redo changes. A numeric ARG serves as a repeat count. In Transient Mark mode when the mark is active, only redo changes within the current region. Similarly, when not in Transient Mark mode, just \[universal-argument] as an argument limits redo to changes within the current region. (fn &optional ARG) (defalias 'undo-tree-redo #[256 "\204\304\305!\210 \306=\203\304\307!\210\310!\210\311\n! >\204%\312\313\314\nD\"\210\n\315H\316HG\316V\2053\317\320!\207" [undo-tree-mode buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags user-error "Undo-tree mode not enabled in buffer" t "No undo information in this buffer" undo-tree-redo-1 type-of signal wrong-type-argument undo-tree 2 1 message "Undo branch point!"] 5 (#$ . 89802) "*P"]) #@56 (fn &optional ARG PRESERVE-UNDO PRESERVE-TIMESTAMPS) (defalias 'undo-tree-redo-1 #[768 "\306\205\307 \206\205\247?\310\211\311 \210\247\203%\312!\206&\313\314\211W\203\261\211\315\n! >\204=\316\317\320\nD\"\210\n\321H\313H\204I\322\323!\210\203Z\324\325 \326 \"\204Z\322\327!\210\315\n! >\204i\316\317\320\nD\"\210\n\321H\262\330H\313H8\262\315\n! >\204\206\316\317\320\nD\"\210\n\211\331\331H\332\331H!ZI\266\211\331\333\331H!I\266\315\n! >\204\261\316\317\320\nD\"\210\n\211\331\331H\332\331H!\\I\266\203\321\334 `\310\223\262\335\306\"\210\336\313\337\331H!\"\210\340 \210\315\n! >\204\355\316\317\320\nD\"\210\n\211\321I\266\203\206\f\2039\341\f!\2049\310\f@\204\fA\211\202\211\2045\f\203\f@\203\341\f!\204\f\211A\242B\262\342@!\210\202\211\237\266\315\n! >\204H\316\317\320\nD\"\210\n\211\331\331H\332\321H!ZI\266\211\321\333\321H!I\266\315\n! >\204s\316\317\320\nD\"\210\n\211\331\331H\332\321H!\\I\266\202\315\n! >\204\225\316\317\320\nD\"\210\n\211\331\331H\332\321H!ZI\266\211\321\f\205\365\341\f!?\205\365\310\f@\204\300\fA\211\202\265\211\204\361\f\203\300\f@\203\300\341\f!\204\300\f@\250\203\340\fA\211\202\305\f\211A\242B\262\342@!\210\202\304\211\237\262I\266\315\n! >\204\316\317\320\nD\"\210\n\211\331\331H\332\321H!\\I\266\204$\211\343\344 I\266\204?\211\345\346\310\346\347\350 \345H\347\310#\"\"I\266\202\251b\210\351\345H\347\"\352!\203V\211G\343U\204k\211\345\350\345H\347\353\310\211\211\211$\211\262#I\266\211\211\321\325 I\266\351\345H\347\"\352!\203\207\211G\343U\204\234\211\345\350\345H\347\353\310\211\211\211$\211\262#I\266\211\211\331\326 I\266\310\211\223\210\210\211T\262\202'\266?\211)\207" [undo-tree-enable-undo-in-region undo-in-progress buffer-undo-tree cl-struct-undo-tree-tags buffer-undo-list deactivate-mark t region-active-p nil undo-list-transfer-to-tree prefix-numeric-value 1 0 type-of signal wrong-type-argument undo-tree 2 user-error "No further redo information" undo-tree-pull-redo-in-region-branch region-beginning region-end "No further redo information for region" 5 3 undo-list-byte-size undo-list-clean-GCd-elts make-marker set-marker-insertion-type primitive-undo undo-tree-copy-list undo-boundary undo-list-found-canary-p undo-tree-move-GC-elts-to-pool 4 current-time 6 delq :region plist-put plist-get vectorp vector] 24 (#$ . 90557)]) #@149 Switch to a different BRANCH of the undo tree. This will affect which branch to descend when *redoing* changes using `undo-tree-redo'. (fn BRANCH) (defalias 'undo-tree-switch-branch #[257 "\204\304\305!\210 \306=\203\304\307!\210\310\n! >\204!\311\312\313\nD\"\210\n\314H\315HG\315X\2030\304\316!\210\211\317W\204Q\211\310\n! >\204F\311\312\313\nD\"\210\n\314H\315HGSV\203U\304\320!\210\321 \210\310\n! >\204g\311\312\313\nD\"\210\n\314H\211\322I\266\323\324\"\207" [undo-tree-mode buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags user-error "Undo-tree mode not enabled in buffer" t "No undo information in this buffer" type-of signal wrong-type-argument undo-tree 2 1 "Not at undo branch point" 0 "Invalid branch number" undo-list-transfer-to-tree 5 message "Switched to branch %d"] 6 (#$ . 93022) (byte-code "\203\n\304!\206\202 \305=?\205\202\306 \205\202\307\n! >\204%\310\311\312\nD\"\210\n\313H\314H\307\n! >\2049\310\311\312\nD\"\210\n\313H\315HG\313U\203J\315Z\202\200\307\n! >\204Y\310\311\312\nD\"\210\n\313H\315HG\313V\205\200\316\317\320\307\n! >\204v\310\311\312\nD\"\210\n\313H\315HGS#!\262C\207" [prefix-arg buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags prefix-numeric-value t undo-list-transfer-to-tree type-of signal wrong-type-argument undo-tree 2 5 1 read-number format "Branch (0-%d, on %d): "] 8)]) #@43 (fn NODE &optional PRESERVE-TIMESTAMPS) (defalias 'undo-tree-set #[513 "\302\303\304\"\305\306! >\204\307\310\311D\"\210\312H\313#\210\305\313#\210\211\314H\203A\211\314H\211\315\316\211\314H\312H\"I\266\211\314H\211\262\204\306! >\204P\307\310\311D\"\210\317H\262\320\"\204d\211\314H\262\202U\306! >\204s\307\310\311D\"\210\317H=\204\204\321\322\211#\210\202d\306! >\204\223\307\310\311D\"\210\317H=\204\244\323\322\211#\210\202\204\207" [buffer-undo-tree cl-struct-undo-tree-tags make-hash-table :test eq puthash type-of signal wrong-type-argument undo-tree 1 t 0 5 undo-tree-position 2 gethash undo-tree-undo-1 nil undo-tree-redo-1] 11 (#$ . 94402)]) #@184 Store current undo-tree state to REGISTER. The saved state can be restored using `undo-tree-restore-state-from-register'. Argument is a character, naming the register. (fn REGISTER) (defalias 'undo-tree-save-state-to-register #[257 "\204\304\305!\210 \306=\203\304\307!\210\310 \210\311\312\313p\314\n! >\204)\315\316\317\nD\"\210\n\320H\"\321\322#\"\210\314\n! >\204A\315\316\317\nD\"\210\n\320H\211\211\323\324\323H\325#I\262\207" [undo-tree-mode buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags user-error "Undo-tree mode not enabled in buffer" t "No undo information in this buffer" undo-list-transfer-to-tree set-register registerv-make vector type-of signal wrong-type-argument undo-tree 2 :print-func undo-tree-register-data-print-func 6 plist-put :register] 10 (#$ . 95106) "cUndo-tree state to register: "]) #@167 Restore undo-tree state from REGISTER. The state must be saved using `undo-tree-save-state-to-register'. Argument is a character, naming the register. (fn REGISTER) (defalias 'undo-tree-restore-state-from-register #[257 "\204\303\304!\210\305!\211\306H >\204\307\310\311D\"\210\211\312H\262\n\313=\203,\303\314!\210\202E\315!\2049\303\316!\210\202Ep\306H=\204E\303\317!\210\320 \210\321\312H!\207" [undo-tree-mode cl-struct-registerv-tags buffer-undo-list user-error "Undo-tree mode not enabled in buffer" get-register 0 signal wrong-type-argument registerv 1 t "No undo information in this buffer" undo-tree-register-data-p "Register doesn't contain undo-tree state" "Register contains undo-tree state for a different buffer" undo-list-transfer-to-tree undo-tree-set] 6 (#$ . 95953) "*cRestore undo-tree state from register: "]) (defvar undo-tree-old-undo-menu-item nil) #@42 Update `undo-tree-mode' Edit menu items. (defalias 'undo-tree-update-menu-bar #[0 "\203\303\304 \305\"\236A\306\304 \307\"\310\311#\210\312\304 \313\"\314\315\303$\207\306\304 \316\"\317\n#\210\306\304 \320\"\321\322#\207" [undo-tree-mode global-map undo-tree-old-undo-menu-item undo lookup-key [menu-bar edit] define-key [menu-bar edit] [undo] (menu-item "Undo" undo-tree-undo :enable (and undo-tree-mode (not buffer-read-only) (not (eq t buffer-undo-list)) (not (eq nil buffer-undo-tree)) (undo-tree-node-previous (undo-tree-current buffer-undo-tree))) :help "Undo last operation") define-key-after [menu-bar edit] [redo] (menu-item "Redo" undo-tree-redo :enable (and undo-tree-mode (not buffer-read-only) (not (eq t buffer-undo-list)) (not (eq nil buffer-undo-tree)) (undo-tree-node-next (undo-tree-current buffer-undo-tree))) :help "Redo last operation") [menu-bar edit] [undo] [menu-bar edit] [redo] nil] 5 (#$ . 96848)]) (add-hook 'menu-bar-update-hook 'undo-tree-update-menu-bar) #@320 Create the undo history file name for FILE. Normally this is the file's name with "." prepended and ".~undo-tree~" appended. A match for FILE is sought in `undo-tree-history-directory-alist' (see the documentation of that variable for details). If the directory for the backup doesn't exist, it is created. (fn FILE) (defalias 'undo-tree-make-history-save-file-name #[257 "\302!\303!\304\305!\306R)\207" [undo-tree-history-directory-alist backup-directory-alist make-backup-file-name-1 file-name-directory "." file-name-nondirectory ".~undo-tree~"] 6 (#$ . 97846)]) #@320 Store undo-tree history to file. If optional argument FILENAME is omitted, default save file is "..~undo-tree" if buffer is visiting a file. Otherwise, prompt for one. If OVERWRITE is non-nil, any existing file will be overwritten without asking for confirmation. (fn &optional FILENAME OVERWRITE) (defalias 'undo-tree-save-history #[512 "\204\306\307!\210 \310=\203\306\311!\210\312 \210\n\205\334\n\310=?\205\334\313 \210\314\n!\210p\315\204? \2037\316 !\202=\317\320\321!\315\"\262\322!\203S\204S\323\324\325\"!\205\332\326\n!\262\327!\210\330!\f>\204k\331\332\333D\"\210\211\211\334\315I\266 \203\214\335\336\330!\f>\204\207\331\332\333D\"\210\337H\"\210\340 \341\342\343\344\345!\346\"\337$\216\211\204\241\347 \210\350\351!r\211q\210\341\342\352\344\345!\353\"\354$\216\355\356!p\"\210\357p!\210\310\315\211123\355p\"\210+\360\315\211#*\262)\262\266\202\207" [undo-tree-mode buffer-undo-list buffer-undo-tree buffer-file-name cl-struct-undo-tree-tags undo-tree-pre-save-element-functions user-error "Undo-tree mode not enabled in buffer" t "No undo information in this buffer" undo-list-transfer-to-tree undo-tree-kill-visualizer undo-tree-clear-visualizer-data nil undo-tree-make-history-save-file-name expand-file-name read-file-name "File to save in: " file-exists-p yes-or-no-p format "Overwrite \"%s\"? " undo-tree-copy undo-tree-decircle type-of signal wrong-type-argument undo-tree 5 undo-tree-mapc #[257 "\211\300HC\301\302\303\304\305\306\307!\310\"\311\312%\"\210\211\300\242I\266\211\313HC\301\302\303\304\305\306\307!\314\"\311\312%\"\210\211\313\242I\262\207" [2 run-hook-wrapped undo-tree-pre-save-element-functions make-byte-code 257 "\300\301\302\303\300\242\"\"\240\207" vconcat vector [delq nil mapcar] 7 "\n\n(fn FUN)" 3 [delq nil mapcar]] 10 "\n\n(fn NODE)"] 1 jka-compr-installed-p make-byte-code 0 "\300?\205\301 \207" vconcat vector [jka-compr-uninstall] jka-compr-install generate-new-buffer " *temp*" "\301\300!\205 \302\300!\207" [buffer-name kill-buffer] 2 prin1 sha1 terpri write-region print-level print-length print-circle] 12 (#$ . 98426) nil]) #@401 Load undo-tree history from file, for the current buffer. If optional argument FILENAME is null, default load file is "..~undo-tree" if buffer is visiting a file. Otherwise, prompt for one. If optional argument NOERROR is non-nil, return nil instead of signaling an error if file is not found. Note this will overwrite any existing undo history. (fn &optional FILENAME NOERROR) (defalias 'undo-tree-load-history #[512 "\204\306\307!\210\204 \203\310 !\202\311\312\313!\314\"\262\3152<\316!\2049\211\2034\317\315\314\"\210\2029\320\321\"\210\314\211\211p\262\322 \323\324\325\326\327!\330\"\331$\216\211\204T\332 \210\333\334!r\211q\210\323\324\335\326\327!\336\"\337$\216\340!\210eb\210\3411}\342p!\211\2620\202\224\210\343\314!\210\203\212\344\202\213\306\345\"\210\317\315\314\"\210\346!\230\204\262\343\314!\210\203\251\344\202\252\306\347!\210\317\315\314\"\210\3501\300\342p!\211\2620\202\327\210\343\314!\210\203\315\344\202\316\320\345\"\210\317\315\314\"\210\343\314!\210*\210)\210\n\203\372\351\352\353! >\204\365\354\355\356D\"\210\331H\"\210\353! >\204 \354\355\356D\"\210\211\211\357\360\361\362\363\364$I\266\365!\210\353! >\204(\354\355\356D\"\210\211\211\357\360\361\362\363\364$I\266\211\366\211\266\2030\207" [undo-tree-mode buffer-file-name undo-tree-post-load-element-functions cl-struct-undo-tree-tags buffer-undo-tree buffer-undo-list user-error "Undo-tree mode not enabled in buffer" undo-tree-make-history-save-file-name expand-file-name read-file-name "File to load from: " nil load-error file-exists-p throw error "File \"%s\" does not exist; could not load undo-tree history" jka-compr-installed-p make-byte-code 0 "\300?\205\301 \207" vconcat vector [jka-compr-uninstall] 1 jka-compr-install generate-new-buffer " *temp*" "\301\300!\205 \302\300!\207" [buffer-name kill-buffer] 2 insert-file-contents (error) read kill-buffer message "Error reading undo-tree history from \"%s\"" sha1 "Buffer has been modified; could not load undo-tree history" (error) undo-tree-mapc #[257 "\211\300HC\301\302\303\304\305\306\307!\310\"\311\312%\"\210\211\300\242I\266\211\313HC\301\302\303\304\305\306\307!\314\"\311\312%\"\210\211\313\242I\262\207" [2 run-hook-wrapped undo-tree-post-load-element-functions make-byte-code 257 "\300\301\302\303\300\242\"\"\240\207" vconcat vector [delq nil mapcar] 7 "\n\n(fn FUN)" 3 [delq nil mapcar]] 10 "\n\n(fn NODE)"] type-of signal wrong-type-argument undo-tree 5 make-hash-table :test eq :weakness value undo-tree-recircle (nil undo-tree-canary)] 13 (#$ . 100592) nil]) (defalias 'undo-tree-save-history-from-hook #[0 "\205! \205!\n\304=?\205! \205!\305\306 !!\205!\307\310\311\"\210\310\207" [undo-tree-mode undo-tree-auto-save-history buffer-undo-list buffer-file-name t file-writable-p undo-tree-make-history-save-file-name undo-tree-save-history nil overwrite] 3]) (byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias undo-tree-save-history-hook undo-tree-save-history-from-hook nil make-obsolete "`undo-tree-save-history-hook' is obsolete since undo-tree\n version 0.6.6. Use `undo-tree-save-history-from-hook' instead."] 4) (defalias 'undo-tree-load-history-from-hook #[0 "\205 \205\n\304=?\205 ?\205\305\306\307\"\207" [undo-tree-mode undo-tree-auto-save-history buffer-undo-list revert-buffer-in-progress-p t undo-tree-load-history nil noerror] 3]) (byte-code "\300\301\302\303#\210\304\301\302\305#\210\306\307\310\"\210\306\311\310\"\210\306\312\302\"\207" [defalias undo-tree-load-history-hook undo-tree-load-history-from-hook nil make-obsolete "`undo-tree-load-history-hook' is obsolete since undo-tree\n version 0.6.6. Use `undo-tree-load-history-from-hook' instead." add-hook write-file-functions undo-tree-save-history-from-hook kill-buffer-hook find-file-hook] 4) #@43 Visualize the current buffer's undo tree. (defalias 'undo-tree-visualize #[0 "\204\306\307!\210\310 \210 \311=\203\306\312!\210\313 \210\314\315\316\317\311$\210\np\320\321\322\f!!\210\211\323!\2058\324\325\323!!8&\326!'>\204J\327\330\331D\"\210\332H(\203a)\203]\333\202b\334\202b\335*\336\337!\210\336\340!\210\341 \210\336\342!\210\"\311=\206\232\"\247\205\232\326!'>\204\224\327\330\331D\"\210\343H\"Y\" \203\244\344 \210\311+\345!*\207" [undo-tree-mode buffer-undo-list buffer-undo-tree display-buffer-mark-dedicated undo-tree-visualizer-buffer-name undo-tree-visualizer-parent-buffer user-error "Undo-tree mode not enabled in buffer" deactivate-mark t "No undo information in this buffer" undo-list-transfer-to-tree add-hook before-change-functions undo-tree-kill-visualizer nil soft switch-to-buffer-other-window get-buffer-create buffer-file-name 5 file-attributes type-of signal wrong-type-argument undo-tree 2 9 13 3 make-local-variable undo-tree-visualizer-timestamps undo-tree-visualizer-diff undo-tree-visualizer-mode undo-tree-visualizer-lazy-drawing 4 undo-tree-visualizer-show-diff undo-tree-draw-tree undo-tree-visualizer-parent-mtime cl-struct-undo-tree-tags undo-tree-visualizer-initial-node undo-tree-visualizer-relative-timestamps undo-tree-visualizer-spacing inhibit-read-only] 6 (#$ . 104457) "*"]) #@20 (fn &rest DUMMY) (defalias 'undo-tree-kill-visualizer #[128 "\206\302 !??\205r q\210\303 )\207" [undo-tree-inhibit-kill-visualizer undo-tree-visualizer-buffer-name get-buffer undo-tree-visualizer-quit] 3 (#$ . 105828)]) #@18 (fn UNDO-TREE) (defalias 'undo-tree-draw-tree #[257 "\306\203\307! >\204\310\311\312D\"\210\313H\202,\307! >\204)\310\311\312D\"\210\314H\315 \210\316\211\317!\210\320!\210\203T\321\322 \313\245!\210\323\313\324 \325\245]!\210\202t\321\314!\210\323\324 \313\245\326\327! \203n)\325Z\313\245\202o\330\313#]!\210\211\331\332H\333\"\334!\203\210\211G\325U\204\235\211\332\335\332H\333\336\316\211\211\211$\211\262#I\266\211\211\337\340 I\266\341\331\332H\333\"\334!\205\274\211G\325U\205\274\211\337H\262\316\"\210\331\332H\333\"\334!\205\327\211G\325U\205\327\211\337H\262`\316\223\210\342\316*\204\356\343\306\"\210\202 \343!\210\344!\210 \262\316\211\203 \343\211A\262\242!\210\202\373)\266\345*\346\f\206)\307! >\204&\310\311\312D\"\210\314H!\210)\347\307! >\204=\310\311\312D\"\210\313H\350\")\207" [undo-tree-visualizer-lazy-drawing cl-struct-undo-tree-tags inhibit-read-only undo-tree-visualizer-needs-extending-down undo-tree-visualizer-needs-extending-up undo-tree-visualizer-timestamps t type-of signal wrong-type-argument undo-tree 2 1 erase-buffer nil undo-tree-clear-visualizer-data undo-tree-compute-widths undo-tree-move-down window-height undo-tree-move-forward window-width 4 + undo-tree-node-char-lwidth 0 plist-get 6 :visualizer vectorp plist-put vector 3 make-marker set-marker-insertion-type undo-tree-visualizer-default-face undo-tree-extend-down undo-tree-extend-up undo-tree-visualizer-active-branch-face undo-tree-highlight-active-branch undo-tree-draw-node current undo-tree-visualizer-spacing undo-tree-insert-face] 17 (#$ . 106061)]) #@30 (fn NODE &optional BOTTOM) (defalias 'undo-tree-extend-down #[513 "\301C\301\302!\203,G\303U\203,\304\305H\306\"\302!\205'\211G\307U\205'\211\310H\262\204\204:\211\211\262\301\262\203\211A\262\242\262\311=\204\246\302!\203]G\303U\203]\312H=\203\246\250\203\202\313\304\305H\306\"\302!\205{\211G\307U\205{\211\310H\262!Y\204\246\204\372\314\304\305H\306\"\302!\205\236\211G\307U\205\236\211\310H\262\301\311#\203\372\315H\203\316\304\316H\315H8\305H\306\"\302!\205\311\211G\307U\205\311\211\310H\262\204\357\304\305H\306\"\302!\205\344\211G\307U\205\344\211\310H\262b\210\317!\210\311\262\320\315H\"\262\202,B\202,\207" [undo-tree-visualizer-needs-extending-down nil vectorp 7 plist-get 6 :visualizer 4 3 t 0 line-number-at-pos pos-visible-in-window-p 1 5 undo-tree-draw-subtree append] 10 (#$ . 107700)]) #@27 (fn NODE &optional TOP) (defalias 'undo-tree-extend-up #[513 "\302\211\303!\203*G\304U\203*\305\306H\307\"\303!\205%\211G\310U\205%\211\311H\262\204r\203r\312H\262\211\203G\313=\204\240\303!\203PG\304U\203P=\203\240\250\203u\314\305\306H\307\"\303!\205n\211G\310U\205n\211\311H\262!W\204\240\204;\314`!\314\315 !^\314\305\306H\307\"\303!\205\231\211G\310U\205\231\211\311H\262!W\203;\305\306H\307\"\303!\205\266\211G\310U\205\266\211\311H\262\204l\316!\210\317!\210\211\305\306H\307\"\303!\203\327\211G\310U\204\354\211\306\320\306H\307\321\302\211\211\211$\211\262#I\266\211\211\311\322 I\266\323\305\306H\307\"\303!\205 \211G\310U\205 \211\311H\262\302\"\210\305\306H\307\"\303!\205&\211G\310U\205&\211\311H\262`\302\223\210\324\325!\"\244\313\262\202l\211\205@\302\262\202l\302\305\306H\307\"\303!\205_\211G\310U\205_\211\311H\262b\210\326\327!\210e\330 |\210\211\262\202*\207" [undo-tree-visualizer-needs-extending-down undo-tree-visualizer-needs-extending-up nil vectorp 7 plist-get 6 :visualizer 4 3 0 t line-number-at-pos window-start undo-tree-compute-widths undo-tree-move-to-parent plist-put vector make-marker set-marker-insertion-type delq undo-tree-draw-subtree undo-tree-move-up 1 line-beginning-position] 17 (#$ . 108588)]) #@26 (fn FROM &optional TO) (defalias 'undo-tree-expand-down #[513 "\205_\303\304\211\2031\305\"\262\306\307H\310\"\311!\205)\211G\312U\205)\211\313H\262b\210\314\303!\210\262\304\205\\\211\203Q\211@\305!\203J\303\262A\266\202\202;\210\211\205\\\315\316!))\266\203\207" [undo-tree-visualizer-needs-extending-down inhibit-read-only undo-tree-insert-face t nil undo-tree-extend-down plist-get 6 :visualizer vectorp 4 3 redisplay undo-tree-visualizer-active-branch-face undo-tree-highlight-active-branch] 9 (#$ . 109925)]) #@26 (fn FROM &optional TO) (defalias 'undo-tree-expand-up #[513 "\205\300\306\307\211\203s\310\"\262\311\312H\313\"\314!\205)\211G\315U\205)\211\316H\262b\210\317`!\nX\203s\320 \321U\203C\322 \323\245\202D\316!\210\310!\203O\306\262\311\312H\313\"\314!\205e\211G\315U\205e\211\316H\262b\210 \321U\204s\324\n!\210\203\200\310!\203\200\306\262\f\262\307\211\211\203\227\211@\325!\210A\266\202\202\206\210\205\275\326\327\206\271\330!>\204\265\331\332\333D\"\210\334H\"))\266\203\207" [undo-tree-visualizer-needs-extending-up inhibit-read-only scroll-margin scroll-conservatively undo-tree-visualizer-needs-extending-down undo-tree-insert-face t nil undo-tree-extend-up plist-get 6 :visualizer vectorp 4 3 line-number-at-pos undo-tree-move-up 0 window-height 2 recenter undo-tree-extend-down undo-tree-visualizer-active-branch-face undo-tree-highlight-active-branch type-of signal wrong-type-argument undo-tree 1 buffer-undo-tree cl-struct-undo-tree-tags] 10 (#$ . 110477)]) #@27 (fn NODE &optional END) (defalias 'undo-tree-highlight-active-branch #[513 "C\211\205B\211A\262\242\262=\204>\204\301\302H\303\"\304!\2050\211G\305U\2050\211\306H\262b\210\307\310\"\262\211\244\262\202\207" [undo-tree-visualizer-needs-extending-down plist-get 6 :visualizer vectorp 4 3 undo-tree-draw-subtree active] 6 (#$ . 111506)]) #@31 (fn NODE &optional CURRENT) (defalias 'undo-tree-draw-node #[513 "\306\307H\310\"\311!\205\211G\312U\205\211\313H\262b\210\203$\314 \315\245!\210\n\2053\n:\2031\n\2063\nC\306\307H\316\" \203E\317 \"\202H\317!\320\203\212\321\322!\211\323H\f>\204`\324\325\326D\"\210\211\327H\262!\203\212\322!\211\323H\f>\204|\324\325\326D\"\210\211\327H\262\211\327H\262=\204\215\320\262\203\236\330\312H $\202\271\203\250\331!\202\271\203\260\332\202\271\203\270\333\202\271\334\262\203\303\335\202\320\203\313\336\202\320\205\320\337\n\244\340!\210\314\203\343 \315\245T\202\344\327!\210\306\307H\310\"\311!\205\374\211G\312U\205\374\211\313H\262`\320\223\210\341``T\342$)\207" [undo-tree-visualizer-timestamps undo-tree-visualizer-spacing undo-tree-insert-face undo-tree-visualizer-parent-mtime cl-struct-registerv-tags undo-tree-visualizer-relative-timestamps plist-get 6 :visualizer vectorp 4 3 undo-tree-move-backward 2 :register undo-tree-node-unmodified-p nil undo-tree-register-data-p get-register 0 signal wrong-type-argument registerv 1 undo-tree-timestamp-to-string char-to-string "s" "x" "o" (undo-tree-visualizer-current-face) (undo-tree-visualizer-unmodified-face) (undo-tree-visualizer-register-face) undo-tree-insert put-text-property undo-tree-node] 11 (#$ . 111873)]) #@37 (fn NODE &optional ACTIVE-BRANCH) (defalias 'undo-tree-draw-subtree #[513 "\301HG\302\211\211\211\303!\210\304U\204\356\301U\203\312\305\301!\210\306\307!\210\310\301!\210\305\301!\210\306\307!\210\310\301!\210\305\301!\210\301H@\262\311\312\313H\314\"\315!\205S\211G\316U\205S\211\317H\262!\204\246\211\312\313H\314\"\315!\203m\211G\316U\204\202\211\313\320\313H\314\321\302\211\211\211$\211\262#I\266\211\211\317\322 I\266\323\312\313H\314\"\315!\205\241\211G\316U\205\241\211\317H\262\302\"\210\312\313H\314\"\315!\205\274\211G\316U\205\274\211\317H\262`\302\223\210\211B\262\202\356\305\301!\210\306\307!\210\310\301!\210\322 \211\262`\302\223\210\310\324!\324 \301H@!Z!\210\322 \211\262`\302\223\210\302\301HB\262\325\245\304\211W\203\373\211A\262\203\"@\n\326H \301H8=\203\331\327\325!\210\306\330\331 \325#\"\210b\210\327\301!\210\305\301!\210\306\332!\210\310\325!\210\305\301!\210\311\312@\313H\314\"\315!\205`\211G\316U\205`\211\317H\262!\204\265@\312\313H\314\"\315!\203{\211G\316U\204\220\211\313\320\313H\314\321\302\211\211\211$\211\262#I\266\211\211\317\322 I\266\323\312@\313H\314\"\315!\205\260\211G\316U\205\260\211\317H\262\302\"\210\312@\313H\314\"\315!\205\314\211G\316U\205\314\211\317H\262`\302\223\210@B\262b\210\327\333\334@!\324A@!\301$!\210`\302\223\266\211T\262\202\266\335\325\"\301U\203\337\211A\262\203\211@\326H\301H8=\203\275\305\301!\210\306\307!\210\310\301!\210\305\301!\210\311\312@\313H\314\"\315!\205E\211G\316U\205E\211\317H\262!\204\232\211@\312\313H\314\"\315!\203`\211G\316U\204u\211\313\320\313H\314\321\302\211\211\211$\211\262#I\266\211\211\317\322 I\266\323\312@\313H\314\"\315!\205\225\211G\316U\205\225\211\317H\262\302\"\210\312@\313H\314\"\315!\205\261\211G\316U\205\261\211\317H\262`\302\223\210\211@B\262b\210\327\333\334@!A@\203\324\324A@!\202\325\304\301$!\210`\302\223\210\211T\302\223\210\325\245\304\211W\203\354\211A\262\203@\n\326H \301H8=\203\272b\210\306\330\331\301#\"\210b\210\310\301!\210\305\301!\210\306\336!\210\305\301!\210\311\312@\313H\314\"\315!\205A\211G\316U\205A\211\317H\262!\204\226@\312\313H\314\"\315!\203\\\211G\316U\204q\211\313\320\313H\314\321\302\211\211\211$\211\262#I\266\211\211\317\322 I\266\323\312@\313H\314\"\315!\205\221\211G\316U\205\221\211\317H\262\302\"\210\312@\313H\314\"\315!\205\255\211G\316U\205\255\211\317H\262`\302\223\210@B\262A\203\344b\210\327\333\334@!A@\203\331\324A@!\202\332\304\301$!\210`\302\223\210\210\211T\262\202\351\266\237\207" [undo-tree-visualizer-spacing 1 nil undo-tree-draw-node 0 undo-tree-move-down undo-tree-insert 124 undo-tree-move-backward markerp plist-get 6 :visualizer vectorp 4 3 plist-put vector make-marker set-marker-insertion-type undo-tree-node-char-lwidth 2 5 undo-tree-move-forward 95 - 47 + undo-tree-node-char-rwidth mod 92] 23 (#$ . 113224)]) #@13 (fn NODE) (defalias 'undo-tree-node-char-lwidth #[257 "\211\301HG\302U\203 \302\207T\303\304H\305\"\306!\205#\211G\307U\205#\211\302H\262_\303\304H\305\"\306!\205<\211G\307U\205<\211\301H\262\302U\203J\310\245T\202K\302Z\207" [undo-tree-visualizer-spacing 1 0 plist-get 6 :visualizer vectorp 4 2] 5 (#$ . 116236)]) #@13 (fn NODE) (defalias 'undo-tree-node-char-rwidth #[257 "\211\301HG\302U\203 \302\207T\303\304H\305\"\306!\205#\211G\307U\205#\211\310H\262_\303\304H\305\"\306!\205<\211G\307U\205<\211\301H\262\302U\203J\310\245T\202K\302Z\207" [undo-tree-visualizer-spacing 1 0 plist-get 6 :visualizer vectorp 4 2] 5 (#$ . 116574)]) #@26 (fn STR &optional ARG) (defalias 'undo-tree-insert #[513 "\211\204\302\262\303!\203\304\"\262\302\262\211\305\211W\203*\211c\266\211T\262\202\266\211G_\262\306!\210\307\310!\210 \205H\311`Z`\312 $\207" [mark-active undo-tree-insert-face 1 characterp make-string 0 undo-tree-move-forward nil backward-delete-char put-text-property face] 7 (#$ . 116912)]) #@22 (fn &optional ARG) (defalias 'undo-tree-move-down #[256 "\300 i\301\204 \302\262y\210\300 \262\211\\U\204?\303W\2035\304\305#\306\"c\210Z\\y\210\202?\304ZZ\306\"c\210\307!\207" [line-number-at-pos nil 1 0 make-string - 10 undo-tree-move-forward] 9 (#$ . 117299)]) #@22 (fn &optional ARG) (defalias 'undo-tree-move-up #[256 "\211\204\300\262\301[!\207" [1 undo-tree-move-down] 3 (#$ . 117593)]) #@22 (fn &optional ARG) (defalias 'undo-tree-move-forward #[256 "\211\204\300\262\301\302Y\203,\303 `Z\262\211V\203u\202r\301\210\304Z\305\"c\202r\302W\205r[\262`\306 Z\262\211\307ZW\203k\310 `\301\223\311\312\"\210eb\210m\204g\313\304\314\315#\305\"!\210\300y\210\202Q\211b\266\206p\300[u\207" [1 nil 0 line-end-position make-string 32 line-beginning-position 2 make-marker set-marker-insertion-type t insert-before-markers - -2] 9 (#$ . 117730)]) #@22 (fn &optional ARG) (defalias 'undo-tree-move-backward #[256 "\211\204\300\262\301[!\207" [1 undo-tree-move-forward] 3 (#$ . 118213)]) #@13 (fn NODE) (defalias 'undo-tree-move-to-parent #[257 "\211\301H\211\302H\211G\303\304\305H\306\"\307!\205\211G\310U\205\211\311H\262b\210\302U\204\312\"\262\313\314\"\302U\203@\211\314\245U\204\211\314\245W\203\245\211\233\262\315\316\317@!\314\245\302#!\210\320\314\245\302#\301\211W\203\206\211A\262\315\316\321@!\317 @!\302$!\266\211T\262\202b\266\313\314\"\302U\203A\262\315\316\321@!\314\245\302#!\210\202\314\245\233\262\313\314\"\302U\203\306\322\316\317@!\314\245\302#!\210A\262\320\314\245\313\314\"#\301\211W\203\365\211\322\316\321@!\317 @!\302$!\210A\262\210\211T\262\202\321\266\322\316\321@!\314\245\302#!\210\323\311!\207" [undo-tree-visualizer-spacing 0 1 nil plist-get 6 :visualizer vectorp 4 3 undo-tree-position mod 2 undo-tree-move-forward + undo-tree-node-char-rwidth - undo-tree-node-char-lwidth undo-tree-move-backward undo-tree-move-up] 14 (#$ . 118359)]) #@54 (fn TIMESTAMP &optional RELATIVE CURRENT REGISTER) (defalias 'undo-tree-timestamp-to-string #[1025 "\203\253\300\301\302\303 \"!!\304\305\245\211\262\306V\203+\211\307V\203$\310\202v\311\312\"\202v\305\246\262\313\245\211\262\306V\203B\311\314\"\202v\313\246\262\315\245\211\262\306V\203Y\311\316\"\202v\315\246\262\317\245\211\262\306V\203p\311\320\"\202v\311\321\317\246\"\262\203\200\322\202\201\323\203\220\324\325!\326Q\202\221\327Q\262G\262\211\330W\203\251\331\330Z\332\"P\202\252\207\203\263\333\202\264\334\335\336\"\203\306\324\325!\326Q\202\307\327Q\207" [floor float-time time-subtract current-time nil 315360000 0 999 "-ages" format "-%dy" 86400 "-%dd" 3600 "-%dh" 60 "-%dm" "-%ds" "*" " " "[" char-to-string "]" " " 9 make-string 32 " *" " " format-time-string "%H:%M:%S"] 11 (#$ . 119318)]) (defvar undo-tree-visualizer-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [undo-tree-visualizer-mode-hook variable-documentation put "Hook run after entering undo-tree-visualizer mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp undo-tree-visualizer-mode-map definition-name undo-tree-visualizer-mode] 4) (defvar undo-tree-visualizer-mode-map (make-sparse-keymap)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [undo-tree-visualizer-mode-map variable-documentation put purecopy "Keymap for `undo-tree-visualizer-mode'." undo-tree-visualizer-mode derived-mode-parent special-mode] 5) #@607 Major mode used in undo-tree visualizer. The undo-tree visualizer can only be invoked from a buffer in which `undo-tree-mode' is enabled. The visualizer displays the undo history tree graphically, and allows you to browse around the undo history, undoing or redoing the corresponding changes in the parent buffer. Within the undo-tree visualizer, the following keys are available: \{undo-tree-visualizer-mode-map} In addition to any hooks its parent mode `special-mode' might have run, this mode runs the hook `undo-tree-visualizer-mode-hook', as the final or penultimate step during initialization. (defalias 'undo-tree-visualizer-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320 !\210\307\321\211)\322\323!\207" [delay-mode-hooks major-mode mode-name undo-tree-visualizer-mode-map truncate-lines cursor-type make-local-variable t special-mode undo-tree-visualizer-mode "undo-tree-visualizer" mode-class put keymap-parent set-keymap-parent current-local-map use-local-map nil run-mode-hooks undo-tree-visualizer-mode-hook undo-tree-visualizer-selected-node] 6 (#$ . 120965) nil]) #@139 Non-nil if Undo-Tree-Visualizer-Selection mode is enabled. Use the command `undo-tree-visualizer-selection-mode' to change this variable. (defvar undo-tree-visualizer-selection-mode nil (#$ . 122135)) (make-variable-buffer-local 'undo-tree-visualizer-selection-mode) #@74 Toggle mode to select nodes in undo-tree visualizer. (fn &optional ARG) (defalias 'undo-tree-visualizer-selection-mode #[256 "\306 \307=\203 ?\202\310!\311V\211\203H\312\313\n! >\204(\314\315\316\nD\"\210\n\317H \203~\320'!\321(\211\203Cr\211q\210\322 \210))\210\202~\323\211\324\313\n! >\204\\\314\315\316\nD\"\210\n\317H\325H\326\"\327!\205s\211G\330U\205s\211\331H\262b\210 \203~\332 \210\333\334\203\210\335\202\211\336\"\210\337\340!\203\255\306 \203\235\211\306 \232\203\255\341\342\343\203\250\344\202\251\345#\266\210\346 \210\207" [undo-tree-visualizer-selection-mode cursor-type buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-selected-node undo-tree-visualizer-diff current-message toggle prefix-numeric-value 0 box type-of signal wrong-type-argument undo-tree 2 get-buffer t erase-buffer nil plist-get 6 :visualizer vectorp 4 3 undo-tree-visualizer-update-diff run-hooks undo-tree-visualizer-selection-mode-hook undo-tree-visualizer-selection-mode-on-hook undo-tree-visualizer-selection-mode-off-hook called-interactively-p any " in current buffer" message "Undo-Tree-Visualizer-Selection mode %sabled%s" "en" "dis" force-mode-line-update undo-tree-diff-buffer-name inhibit-read-only] 8 (#$ . 122408) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)]) (defvar undo-tree-visualizer-selection-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\211%\207" [undo-tree-visualizer-selection-mode-map undo-tree-visualizer-selection-mode-hook variable-documentation put "Hook run after entering or leaving `undo-tree-visualizer-selection-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" add-minor-mode undo-tree-visualizer-selection-mode "Select" nil] 6) #@75 Undo changes. A numeric ARG serves as a repeat count. (fn &optional ARG) (defalias 'undo-tree-visualize-undo #[256 "\305=\204\n\306\307!\210\310 !\n>\204\311\312\313 D\"\210 \314H\315C\316 !\210\317 \210\320\321\322\323\324\"\325\"\326$\216\327\330!*\207" [major-mode buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-parent-buffer undo-tree-inhibit-kill-visualizer undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" type-of signal wrong-type-argument undo-tree 2 nil switch-to-buffer-other-window deactivate-mark make-byte-code 0 "\301\306\n! >\204\307\310\311\nD\"\210\n\312H\240\210\313\f!\210\314\315\316\300!\210*\203.\317\300\301\242\"\210\315\316\301\242\320\"\210)\205>\321 \207" vconcat vector [buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-buffer-name inhibit-read-only type-of signal wrong-type-argument undo-tree 2 switch-to-buffer-other-window undo-tree-visualizer-active-branch-face t undo-tree-draw-node undo-tree-expand-up current undo-tree-visualizer-update-diff undo-tree-insert-face undo-tree-visualizer-lazy-drawing undo-tree-visualizer-diff] 5 t undo-tree-undo-1] 10 (#$ . 124253) "p"]) #@75 Redo changes. A numeric ARG serves as a repeat count. (fn &optional ARG) (defalias 'undo-tree-visualize-redo #[256 "\305=\204\n\306\307!\210\310 !\n>\204\311\312\313 D\"\210 \314H\315C\316 !\210\317 \210\320\321\322\323\324\"\325\"\326$\216\327\330!*\207" [major-mode buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-parent-buffer undo-tree-inhibit-kill-visualizer undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" type-of signal wrong-type-argument undo-tree 2 nil switch-to-buffer-other-window deactivate-mark make-byte-code 0 "\301\306\n! >\204\307\310\311\nD\"\210\n\312H\240\210\313\f!\210\314\315\316\300!\210*\203.\317\300\301\242\"\210\315\316\301\242\320\"\210)\205>\321 \207" vconcat vector [buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-buffer-name inhibit-read-only type-of signal wrong-type-argument undo-tree 2 switch-to-buffer-other-window undo-tree-visualizer-active-branch-face t undo-tree-draw-node undo-tree-expand-down current undo-tree-visualizer-update-diff undo-tree-insert-face undo-tree-visualizer-lazy-drawing undo-tree-visualizer-diff] 5 t undo-tree-redo-1] 10 (#$ . 125445) "p"]) #@170 Switch to next branch of the undo tree. This will affect which branch to descend when *redoing* changes using `undo-tree-redo' or `undo-tree-visualizer-redo'. (fn ARG) (defalias 'undo-tree-visualize-switch-branch-right #[257 "\305=\204\n\306\307!\210\310\311 !\n>\204\312\313\314 D\"\210 \315H\316H\317\"\320!\2051\211G\321U\2051\211\322H\262b\210\323\324\325\311 !\n>\204I\312\313\314 D\"\210 \315H!\210*\311 !\n>\204^\312\313\314 D\"\210 \315H\326H\311 !\n>\204r\312\313\314 D\"\210 \315H\211\326\\\311 !\n>\204\211\312\313\314 D\"\210 \315H\327HGY\203\254\311 !\n>\204\242\312\313\314 D\"\210 \315H\327HGS\202\273\\\330X\203\270\330\202\273\\I\266\324\310\311 !\n>\204\320\312\313\314 D\"\210 \315H\316H\317\"\320!\205\347\211G\321U\205\347\211\322H\262b\210\331\325\311 !\n>\204\375\312\313\314 D\"\210 \315H!\210)\332\311 !\n>\204\312\313\314 D\"\210 \315H\333\")\207" [major-mode buffer-undo-tree cl-struct-undo-tree-tags inhibit-read-only undo-tree-insert-face undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" plist-get type-of signal wrong-type-argument undo-tree 2 6 :visualizer vectorp 4 3 undo-tree-visualizer-default-face t undo-tree-highlight-active-branch 5 1 0 undo-tree-visualizer-active-branch-face undo-tree-draw-node current] 10 (#$ . 126640) "p"]) #@174 Switch to previous branch of the undo tree. This will affect which branch to descend when *redoing* changes using `undo-tree-redo' or `undo-tree-visualizer-redo'. (fn ARG) (defalias 'undo-tree-visualize-switch-branch-left #[257 "\300[!\207" [undo-tree-visualize-switch-branch-right] 3 (#$ . 127979) "p"]) #@32 Quit the undo-tree visualizer. (defalias 'undo-tree-visualizer-quit #[0 "\303=\204\n\304\305!\210\306 !\210\307\216r\nq\210\310\311\312\313#*\207" [major-mode buffer-undo-tree undo-tree-visualizer-parent-buffer undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" undo-tree-clear-visualizer-data #[0 "\203\302 \210 \303\304\303!\210\305\216\306!\211\262\203\307!\202!\310!)\207" [undo-tree-visualizer-diff undo-tree-visualizer-parent-buffer undo-tree-visualizer-hide-diff nil kill-buffer #[0 "\300\207" [nil] 1] get-buffer-window select-window switch-to-buffer] 4] remove-hook before-change-functions undo-tree-kill-visualizer t] 4 (#$ . 128292) nil]) #@68 Quit the undo-tree visualizer and return buffer to original state. (defalias 'undo-tree-visualizer-abort #[0 "\302=\204\n\303\304!\210 \305 \210\306!\207" [major-mode undo-tree-visualizer-initial-node undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" undo-tree-visualizer-quit undo-tree-set] 3 (#$ . 128985) nil]) #@105 Set buffer to state corresponding to undo tree node at POS, or point if POS is nil. (fn &optional POS) (defalias 'undo-tree-visualizer-set #[256 "\306=\204\n\307\310!\210\211\204`\262\311\312\"\211\2056\313 !\210\314\315!\210)\313 !\210\314\316 !\210)\2056\317 \207" [major-mode undo-tree-visualizer-parent-buffer undo-tree-inhibit-kill-visualizer undo-tree-visualizer-buffer-name inhibit-read-only buffer-undo-tree undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" get-text-property undo-tree-node switch-to-buffer-other-window t undo-tree-set undo-tree-draw-tree undo-tree-visualizer-update-diff undo-tree-visualizer-diff] 4 (#$ . 129335) nil]) #@83 Set buffer to state corresponding to undo tree node at mouse event POS. (fn POS) (defalias 'undo-tree-visualizer-mouse-set #[257 "\301=\204\n\302\303!\210\304\305A@!!\207" [major-mode undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" undo-tree-visualizer-set event-start] 4 (#$ . 130028) "@e"]) #@485 Undo to last branch point, register, or saved state. If X is the symbol `branch', undo to last branch point. If X is the symbol `register', undo to last register. If X is the symbol `saved', undo to last saved state. If X is null, undo to first of these that's encountered. Interactively, a single \[universal-argument] specifies `branch', a double \[universal-argument] \[universal-argument] specifies `saved', and a negative prefix argument specifies `register'. (fn &optional X) (defalias 'undo-tree-visualize-undo-to-x #[256 "\306=\204\n\307\310!\210\311\312!\2030\211\2030\313!\262\211\314W\203#\315\202.\211\316X\203-\317\202.\320\262 \2038\n\202J\321 !\f>\204G\322\323\324 D\"\210 \325H \326\327 \210\314H\203\356 \203c\330 \210\n\211\262\202{\331 \210\321 !\f>\204u\322\323\324 D\"\210 \325H\211\262\210\203\206\317=\203\240\321 !\f>\204\225\322\323\324 D\"\210 \325H\332HG\332V\204\356\203\252\315=\203\336\333\334H\335\"\211\262\203\336\336\337!\211\314H#>\204\312\322\323\340D\"\210\211\332H\262\211\262!\203\336\332H=\204\356\203\350\320=\203O\341!\203O\205\371\342 \205\370\n!\207" [major-mode undo-tree-visualizer-selection-mode undo-tree-visualizer-selected-node buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-diff undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" called-interactively-p any prefix-numeric-value 0 register 4 branch saved type-of signal wrong-type-argument undo-tree 2 nil undo-tree-visualizer-hide-diff undo-tree-visualizer-select-previous undo-tree-visualize-undo 1 plist-get 6 :register undo-tree-register-data-p get-register registerv undo-tree-node-unmodified-p undo-tree-visualizer-show-diff cl-struct-registerv-tags] 10 (#$ . 130360) "P"]) #@485 Redo to last branch point, register, or saved state. If X is the symbol `branch', redo to last branch point. If X is the symbol `register', redo to last register. If X is the sumbol `saved', redo to last saved state. If X is null, redo to first of these that's encountered. Interactively, a single \[universal-argument] specifies `branch', a double \[universal-argument] \[universal-argument] specifies `saved', and a negative prefix argument specifies `register'. (fn &optional X) (defalias 'undo-tree-visualize-redo-to-x #[256 "\306=\204\n\307\310!\210\311\312!\2030\211\2030\313!\262\211\314W\203#\315\202.\211\316X\203-\317\202.\320\262 \2038\n\202J\321 !\f>\204G\322\323\324 D\"\210 \325H \326\327 \210\330H\203\356 \203c\331 \210\n\211\262\202{\332 \210\321 !\f>\204u\322\323\324 D\"\210 \325H\211\262\210\203\206\317=\203\240\321 !\f>\204\225\322\323\324 D\"\210 \325H\330HG\330V\204\356\203\252\315=\203\336\333\334H\335\"\211\262\203\336\336\337!\211\314H#>\204\312\322\323\340D\"\210\211\330H\262\211\262!\203\336\330H=\204\356\203\350\320=\203O\341!\203O\205\371\342 \205\370\n!\207" [major-mode undo-tree-visualizer-selection-mode undo-tree-visualizer-selected-node buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-diff undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" called-interactively-p any prefix-numeric-value 0 register 4 branch saved type-of signal wrong-type-argument undo-tree 2 nil undo-tree-visualizer-hide-diff 1 undo-tree-visualizer-select-next undo-tree-visualize-redo plist-get 6 :register undo-tree-register-data-p get-register registerv undo-tree-node-unmodified-p undo-tree-visualizer-show-diff cl-struct-registerv-tags] 10 (#$ . 132143) "P"]) #@32 Toggle display of time-stamps. (defalias 'undo-tree-visualizer-toggle-timestamps #[0 "\306=\204\n\307\310!\210 ?\211\203\n\203\311\202\312\202\313\314\315 !)\207" [major-mode undo-tree-visualizer-timestamps undo-tree-visualizer-relative-timestamps undo-tree-visualizer-spacing inhibit-read-only buffer-undo-tree undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" 9 13 3 t undo-tree-draw-tree] 3 (#$ . 133921) nil]) #@22 (fn &optional ARG) (defalias 'undo-tree-visualizer-scroll-left #[256 "\301=\204\n\302\303!\210\304\206\305\306\"\207" [major-mode undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" scroll-left 1 t] 4 (#$ . 134380) "p"]) #@22 (fn &optional ARG) (defalias 'undo-tree-visualizer-scroll-right #[256 "\301=\204\n\302\303!\210\304\206\305\306\"\207" [major-mode undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" scroll-right 1 t] 4 (#$ . 134638) "p"]) #@22 (fn &optional ARG) (defalias 'undo-tree-visualizer-scroll-up #[256 "\302=\204\n\303\304!\210\211\247\203\211\305W\204\211\306=\203\307!\207\310\216\311!\210) ?\2051m\2051\312 \207" [major-mode undo-tree-visualizer-needs-extending-down undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" 0 - undo-tree-visualizer-scroll-down #[0 "\302\303! >\204\304\305\306D\"\210\307H\310H\303! >\204$\304\305\306D\"\210\307H\311H8!\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-tree-expand-down type-of signal wrong-type-argument undo-tree 2 5 1] 6] scroll-up-command scroll-up] 3 (#$ . 134898) "P"]) #@22 (fn &optional ARG) (defalias 'undo-tree-visualizer-scroll-down #[256 "\305=\204\n\306\307!\210\211\247\203\211\310W\204\211\311=\203\312!\207\211\206'\313 Z\314\315 !S\n\203B\211W\203B\316eb\210\317Z!\210)\266\320\216\321!\210)\f?\205Vo\205V\322 \207" [major-mode next-screen-context-lines undo-tree-visualizer-needs-extending-up inhibit-read-only undo-tree-visualizer-needs-extending-down undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" 0 - undo-tree-visualizer-scroll-up window-height line-number-at-pos window-start t undo-tree-move-up #[0 "\302\303! >\204\304\305\306D\"\210\307H\310H!\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-tree-expand-up type-of signal wrong-type-argument undo-tree 2 0] 5] scroll-down-command scroll-down] 6 (#$ . 135544) "P"]) #@44 Move to previous node. (fn &optional ARG) (defalias 'undo-tree-visualizer-select-previous #[256 "\304=\204\n\305\306!\210 \30727\206\310\311\211W\2054\211\311H\204'\312\307\313\"\210\311H\262\210\211T\262\202\266\2020\210\n\203A\314 \"\210 \203O\211 =\204O\315!\210\316\317H\320\"\321!\205e\211G\322U\205e\211\323H\262b\210\211\211\207" [major-mode undo-tree-visualizer-selected-node undo-tree-visualizer-lazy-drawing undo-tree-visualizer-diff undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" top 1 0 throw t undo-tree-expand-up undo-tree-visualizer-update-diff plist-get 6 :visualizer vectorp 4 3] 8 (#$ . 136372) "p"]) #@40 Move to next node. (fn &optional ARG) (defalias 'undo-tree-visualizer-select-next #[256 "\304=\204\n\305\306!\210 \3072?\206\310\311\211W\205<\211\312H\310H8\204+\313\307\314\"\210\312H\310H8\262\210\211T\262\202\266\2020\210\n\203I\315 \"\210 \203W\211 =\204W\316!\210\317\320H\321\"\322!\205m\211G\323U\205m\211\324H\262b\210\211\211\207" [major-mode undo-tree-visualizer-selected-node undo-tree-visualizer-lazy-drawing undo-tree-visualizer-diff undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" bottom 1 0 5 throw t undo-tree-expand-down undo-tree-visualizer-update-diff plist-get 6 :visualizer vectorp 4 3] 8 (#$ . 137053) "p"]) #@51 Move right to a sibling node. (fn &optional ARG) (defalias 'undo-tree-visualizer-select-right #[256 "\303=\204\n\304\305!\210 \306\307 \310H\311\"\312!\205\"\211G\313U\205\"\211\314H\262b\210\315 \262\3162c\317\211W\205`\211\203A =\203X\306u\210\320`\321\"\262`U\2037\322\316\323\"\210\2027\210\211T\262\2020\266\2020\210\307\206j \310H\311\"\312!\205~\211G\313U\205~\211\314H\262b\210\n\203\224\203\224 =\204\224\324!\210\205\233\211\207" [major-mode undo-tree-visualizer-selected-node undo-tree-visualizer-diff undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" nil plist-get 6 :visualizer vectorp 4 3 line-end-position end 0 get-text-property undo-tree-node throw t undo-tree-visualizer-update-diff] 9 (#$ . 137747) "p"]) #@50 Move left to a sibling node. (fn &optional ARG) (defalias 'undo-tree-visualizer-select-left #[256 "\303=\204\n\304\305!\210\306`\307\"\310\311 \312H\313\"\314!\205%\211G\315U\205%\211\316H\262b\210\317 \262\3202f\321\211W\205c\211\203D =\203[\322u\210\306`\307\"\262`U\203:\323\320\324\"\210\202:\210\211T\262\2023\266\2020\210\311\206m \312H\313\"\314!\205\201\211G\315U\205\201\211\316H\262b\210\n\203\227\203\227 =\204\227\325!\210\205\236\211\207" [major-mode undo-tree-visualizer-selected-node undo-tree-visualizer-diff undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" get-text-property undo-tree-node nil plist-get 6 :visualizer vectorp 4 3 line-beginning-position beg 0 -1 throw t undo-tree-visualizer-update-diff] 9 (#$ . 138541) "p"]) #@12 (fn POS) (defalias 'undo-tree-visualizer-select #[257 "\303\304\"\211\205A\305\306H\307\"\310!\205\211G\311U\205\211\312H\262b\210\2030\313 \"\210\314 \"\210\n\203>\211 =\204>\315!\210\211\211\207" [undo-tree-visualizer-lazy-drawing undo-tree-visualizer-selected-node undo-tree-visualizer-diff get-text-property undo-tree-node plist-get 6 :visualizer vectorp 4 3 undo-tree-expand-up undo-tree-expand-down undo-tree-visualizer-update-diff] 5 (#$ . 139356)]) #@53 Select undo tree node at mouse event POS. (fn POS) (defalias 'undo-tree-visualizer-mouse-select #[257 "\301=\204\n\302\303!\210\304\305A@!!\207" [major-mode undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" undo-tree-visualizer-select event-start] 4 (#$ . 139838) "@e"]) #@46 Toggle diff display in undo-tree visualizer. (defalias 'undo-tree-visualizer-toggle-diff #[0 "\302=\204\n\303\304!\210 \203\305 \207\306 \207" [major-mode undo-tree-visualizer-diff undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" undo-tree-visualizer-hide-diff undo-tree-visualizer-show-diff] 2 (#$ . 140145) nil]) #@61 Toggle diff display in undo-tree visualizer selection mode. (defalias 'undo-tree-visualizer-selection-toggle-diff #[0 "\302=\204\n\303\304!\210 \203\305 \207\306`\307\"\211\205\310!\207" [major-mode undo-tree-visualizer-diff undo-tree-visualizer-mode user-error "Undo-tree mode not enabled in buffer" undo-tree-visualizer-hide-diff get-text-property undo-tree-node undo-tree-visualizer-show-diff] 3 (#$ . 140497) nil]) #@23 (fn &optional NODE) (defalias 'undo-tree-visualizer-show-diff #[256 "\303r q\210\304!)\305\306\307 \262\310\"\210\311!)\207" [undo-tree-visualizer-diff undo-tree-visualizer-parent-buffer display-buffer-mark-dedicated t undo-tree-diff soft nil split-window set-window-buffer shrink-window-if-larger-than-buffer] 7 (#$ . 140929)]) (defalias 'undo-tree-visualizer-hide-diff #[0 "\302\303 !\211\205$\304!r\305\306\307\310\311!\312\"\313$\216\314@\315\"\210\316 *\262\207" [undo-tree-visualizer-diff undo-tree-diff-buffer-name nil get-buffer-window internal--before-with-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord kill-buffer-and-window] 8]) #@23 (fn &optional NODE) (defalias 'undo-tree-diff #[256 "\306\211\307\310! >\204\311\312\313D\"\210\314H\315\206#\316H\206#\317\"\210\320p!\262\315\317\"\210)\266\321p\306\322\323 !%\262\307r\211q\210eb\210`\324\325!T|\210db\210\326y\210`d|\210\306\307*\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-tree-inhibit-kill-visualizer undo-tree-diff-buffer-name inhibit-read-only cursor-type nil t type-of signal wrong-type-argument undo-tree 2 undo-tree-set 0 preserve-timestamps diff-file-local-copy diff-no-select noasync get-buffer-create line-end-position 3 -2 buffer-read-only] 10 (#$ . 141673)]) #@23 (fn &optional NODE) (defalias 'undo-tree-visualizer-update-diff #[256 "rq\210\302!\210)\303 !\211\205\304 \210\305!\207" [undo-tree-visualizer-parent-buffer undo-tree-diff-buffer-name undo-tree-diff get-buffer-window balance-windows shrink-window-if-larger-than-buffer] 4 (#$ . 142302)]) (provide 'undo-tree)