Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
;ELC ;;; Compiled by leavens@LEAVENS on Mon Sep 15 16:19:49 2003 ;;; from file d:/emacs/ecb/tree-buffer.el ;;; in Emacs version 21.3.1 ;;; with bytecomp version 2.85.4.1 ;;; with all optimizations. ;;; This file contains multibyte non-ASCII characters ;;; and therefore cannot be loaded into Emacs 19. (if (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "20"))) (error "`tree-buffer.el' was compiled for Emacs 20 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\302B\306\307 \"\304B\n?\205 \310V\311B\312\313!\204&\312\314!\2052\312\315!\2031\315 \2022  \n\203`\316\317\320\"\210\316\321\322\"\210\316\323\324\"\210\325\326M\210\316\327\330\"\210\316\331\332\"\210\333\334M\210\335\336!\210\202\203\335\337!\210\316\317\340\"\210\316\321\341\"\210\323\342M\210\327\343M\210\331\344M\210\316\333\345\"\210\325\346M\210\347B\350\347!\204\220\351'\351\207" [current-load-list emacs-version tree-buffer-running-xemacs emacs-major-version tree-buffer-running-emacs-21 window-system string-match "XEmacs\\|Lucid" 20 tree-buffer-images-can-be-used fboundp defimage make-image-specifier display-graphic-p defalias tree-buffer-line-beginning-pos point-at-bol tree-buffer-line-end-pos point-at-eol tree-buffer-window-display-height window-displayed-height tree-buffer-event-to-key #[(event) "\301!\203\302\207\303!\203\304\207\305\306\307\217\207" [event button-release-event-p mouse-release button-press-event-p mouse-press #:G47397 (event-key event) ((error))] 3] tree-buffer-event-window event-window tree-buffer-event-point event-point tree-buffer-mouse-set-point #[(e) "\302!\210\303\304!\205 \304!\205 \305!\306 !\205\306 !Sb)\207" [e ext mouse-set-point fboundp event-over-glyph-p event-glyph-extent extent-end-position] 2 "Set POINT based on event E. Handles clicking on images in XEmacs."] require overlay avoid line-beginning-position line-end-position #[(&optional window) "\301!S\207" [window window-height] 2] #[(event) "\211A@)\211@)\207" [event position] 2] #[(event) "\211A@)\211A@:\203 A@@\202 A@)\207" [event position] 2] mouse-set-point #[(event) "\302!\211\303\232\204 \304\232\204 \305\232\203\306\2023 \307\232\204, \310\232\204, \311\232\2030\312\2023\302!)\207" [event type event-basic-type mouse-1 mouse-2 mouse-3 mouse-release down-mouse-1 down-mouse-2 down-mouse-3 mouse-press] 3] tree-buffer-root boundp nil] 3) #@244 Contains all the visible nodes in the buffer in top-to-bottom order. Each item in this list is a cons pair of the displayed node name and the node. Note that the displayed node name can be truncated and therefore different from the node name. (defvar tree-buffer-nodes nil (#$ . 2539)) (byte-code "\301B\306\301!\204\f\307\302B\306\302!\204\307\303B\306\303!\204$\307\304B\306\304!\2040\307\305B\306\305!\204<\307\310B\306\310!\204I\307\311B\306\311!\204V\307 \312B\306\312!\204c\307\n\313B\306\313!\204p\307 \314B\306\314!\204}\307\f\315B\306\315!\204\212\307 \316B\306\316!\204\227\307\317B\306\317!\204\244\307\320B\306\320!\204\261\307\321B\306\321!\204\276\307\322B\306\322!\204\313\307\323B\306\323!\204\330\307\324B\306\324!\204\345\307\325B\306\325!\204\362\307\326B\306\326!\204\377\307\327B\306\327!\204\f\307\330B\306\330!\204\307\307\207" [current-load-list tree-buffer-frame tree-buffer-key-map tree-buffer-indent tree-buffer-highlighted-node-data tree-buffer-menus boundp nil tree-buffer-menu-titles tree-buffer-type-facer tree-buffer-expand-symbol-before tree-buffer-is-click-valid-fn tree-node-selected-fn tree-node-expanded-fn tree-node-mouse-over-fn tree-node-data-equal-fn tree-buffer-highlight-overlay tree-buffer-general-face tree-buffer-general-overlay tree-buffer-incr-searchpattern tree-buffer-last-incr-searchpattern tree-buffer-incr-search tree-buffer-hor-scroll-step tree-buffer-expand-collapse-tokens tree-buffer-data-store] 2) (defalias 'tree-buffer-set-data-store #[(data) "\211\207" [data tree-buffer-data-store] 2]) (defalias 'tree-buffer-get-data-store #[nil "\207" [tree-buffer-data-store] 1]) (byte-code "\301B\305\301!\204\f\306\302B\305\302!\204\306\303B\305\303!\204$\306\304B\305\304!\2040\306\306\207" [current-load-list tree-buffers tree-buffer-saved-mouse-movement-fn tree-buffer-saved-track-mouse tree-buffer-track-mouse-timer boundp nil] 2) #@145 After this idle-time of Emacs `tree-buffer-do-mouse-tracking' is called if mouse-tracking is activated by `tree-buffer-activate-mouse-tracking' (defvar tree-buffer-track-mouse-idle-delay 0.2 (#$ . 4553)) (byte-code "\302B\303\302!\204 \204\304\202 \302\207" [current-load-list mouse-avoidance-mode tree-buffer-old-mouse-avoidance-mode boundp none] 2) #@37 Syntax-table used in a tree-buffer. (defvar tree-buffer-syntax-table nil (#$ . 4919)) (byte-code "\2047\301 \302\303\304#\210\302\305\304#\210\302\306\304#\210\302\307\304#\210\302\310\304#\210\302\311\304#\210\302\312\304#\210\302\313\304#\210\301\207" [tree-buffer-syntax-table make-syntax-table modify-syntax-entry 39 " " 34 40 41 123 125 91 93] 4) #@59 Works exactly like `message' but does not log the message (defalias 'tree-buffer-nolog-message #[(&rest args) "\203 @\204 \305\202A\204@\202\306\307\"\n\2033 \203,\310\311 \"\210\202H\312\311!\210\202H\305\211 \203C\313\314 \"\210\202G\313\305!\210* )\207" [args msg tree-buffer-running-xemacs message-truncate-lines message-log-max nil apply format display-message no-log clear-message message "%s"] 3 (#$ . 5288)]) #@62 Returns the buffer column where the name of the node starts. (defalias 'tree-buffer-get-node-name-start-column #[(node) "\302! \203\303!\203\304\202\305\\\207" [node tree-buffer-expand-symbol-before tree-buffer-get-node-indent tree-node-is-expandable 4 0] 3 (#$ . 5733)]) #@61 Returns the buffer point where the name of the node starts. (defalias 'tree-buffer-get-node-name-start-point #[(name node) "\302!\211\205\303 !\210\304 \210`\305!\\)\207" [node linenr tree-buffer-find-node goto-line beginning-of-line tree-buffer-get-node-name-start-column] 4 (#$ . 6019)]) #@59 Returns the buffer point where the name of the node ends. (defalias 'tree-buffer-get-node-name-end-point #[(name node) "\302 \"G\\\207" [name node tree-buffer-get-node-name-start-point] 3 (#$ . 6320)]) (defalias 'tree-buffer-at-expand-symbol #[(name node p) "\203\f \304\n \"SW\207 \305\n \"V\207" [tree-buffer-expand-symbol-before p name node tree-buffer-get-node-name-start-point tree-buffer-get-node-name-end-point] 4]) #@585 If the callback-function in `tree-buffer-is-click-valid-fn' returns nil then nothing is done. Otherwise: If the node is expandable and the node is not expanded then the callback-function in `tree-node-expanded-fn' is called with the node, the clicked MOUSE-BUTTON (1 for mouse-1, 2 for mouse-2, 0 for no mouse-button but a key like RET or TAB), SHIFT-PRESSED and CONTROL-PRESSED informations and the name of the tree-buffer as arguments. If the node is not expandable then the callback-function in `tree-node-selected-fn' is called with the same arguments as `tree-node-expanded-fn'. (defalias 'tree-buffer-select #[(mouse-button shift-pressed control-pressed) "\306 \232\205\201 \205\201 \n \f\307 $\205\201`\310 \211@A\211\205\200\311!\203n\312 #\203n\n\313U\203D\204n\314!\204[\203[\n \f\307 %\210\311!\203g\315!\210\316!\202\200\317\205\200\n \f\307 %,\207" [tree-buffer-frame tree-buffer-is-click-valid-fn mouse-button shift-pressed control-pressed p selected-frame buffer-name tree-buffer-get-name-node-at-point tree-node-is-expandable tree-buffer-at-expand-symbol 0 tree-node-is-expanded tree-node-toggle-expanded tree-buffer-update "" name-node name node tree-buffer-expand-symbol-before tree-node-expanded-fn tree-buffer-incr-searchpattern tree-node-selected-fn] 7 (#$ . 6754)]) (defalias 'tree-buffer-get-node-at-point #[(&optional p) "\212\203b\210\303\304`\"i\305U\203\305\202\306\\\211\n8A*\207" [p linenr tree-buffer-nodes count-lines 1 0 -1] 4]) (defalias 'tree-buffer-get-name-node-at-point #[(&optional p) "\212\203b\210\303\304`\"i\305U\203\305\202\306\\\211\n8*\207" [p linenr tree-buffer-nodes count-lines 1 0 -1] 4]) (defalias 'tree-buffer-get-node-indent #[(node) "\302 !S_\207" [tree-buffer-indent node tree-node-get-depth] 3]) (defalias 'tree-buffer-node-data-equal-p #[(node-data-1 node-data-2) "\205\f \205\f\302\303\304\217\207" [node-data-1 node-data-2 #1=#:G47398 (funcall tree-node-data-equal-fn node-data-1 node-data-2) ((error))] 3]) (defalias 'tree-buffer-find-node-data #[(node-data) "\300\301\215\207" [exit (byte-code "\304\211\203\"\n@\305\306 A! \"\203\307\310 A\"\210\nA\211\204*\304\207" [tree-buffer-nodes node #1=#:--dolist-temp--47399 node-data nil tree-buffer-node-data-equal-p tree-node-get-data throw exit] 4)] 2]) (defalias 'tree-buffer-find-name-node-data #[(node-data &optional start-node) "\300\301\215\207" [exit (byte-code "\203 \306 =\203 \202\307!B \235\206 \211\310\211\203<\f@\311\312 A! \"\2035\313\314 \"\210\fA\211\204#+\310\207" [start-node tree-buffer-nodes node-list node #1=#:--dolist-temp--47400 node-data tree-buffer-get-root tree-node-get-name nil tree-buffer-node-data-equal-p tree-node-get-data throw exit] 5)] 2]) (defalias 'tree-buffer-find-node #[(node) "\300\301\215\207" [exit (byte-code "\305 \306\211\203# @\f\nA=\203\307\310\"\210T A\211\204\n+\306\207" [linenr tree-buffer-nodes node2 #1=#:--dolist-temp--47401 node 1 nil throw exit] 4)] 2]) (defalias 'tree-buffer-get-node-facer #[(node) "\303\304! \"A\211\205 \n)\207" [node tree-buffer-type-facer facer assoc tree-node-get-type] 4]) #@61 Returns non nil if POS is horizontal visible otherwise nil. (defalias 'tree-buffer-pos-hor-visible-p #[(pos window) "\212b\210i\302 !Z\303Y\205i\302 !Z\304 !W)\207" [pos window window-hscroll 0 window-width] 3 (#$ . 9942)]) (defalias 'tree-buffer-hscroll #[(amount) "\300\301\302\217\207" [#1=#:G47402 (byte-code "\302\303!)\207" [amount current-prefix-arg call-interactively scroll-left] 2) ((error))] 3]) #@180 Read a mouse event E from the mode line and scroll horizontally. If the mouse is being clicked on the far left, or far right of the mode-line. This is only useful for non-XEmacs (defalias 'tree-buffer-mouse-hscroll #[(e) "\305A@8@\306 \307_\310 \245 \307_\n\245T\211\311W\203#\312\f[!\2025 \313 \314ZV\2032\312\f!\2025\315\316!+\207" [e x-point pixels-per-10-col click-col tree-buffer-hor-scroll-step 2 frame-pixel-width 10 frame-width 3 tree-buffer-hscroll window-width 4 tree-buffer-nolog-message "Click on the edge of the modeline to scroll left/right"] 4 (#$ . 10361) "e"]) #@380 If NODE is not visible then first recenter the window WINDOW so NODE is best visible, means NODE is displayed in the middle of the window if possible. If NODE is expanded then recenter the WINDOW so as much as possible subnodes of NODE will be visible. If NODE is not expandable then WINDOW is always displayed without empty-lines at the end, means WINDOW is always best filled. (defalias 'tree-buffer-recenter #[(node window) "\212\306\307!!\210\310 )\311e \"\311 d\"S\f\204\312\313\314\217\210\315 \"\204k \316 !W\203H\317 \212 b\210\n\320 !\321\245^\322\\[y\210\310 )\"\210\202k\317 \212\316 !b\210\311\316 ! \" \320 !\321\245^\\\323\\\320 !Zy\210\310 )\"\210\324!\203\275\325!\311\316 ! \"\212 b\210\326y\210\315` \")\205\271\212 b\210y\210\315` \")?\205\271\317 \212\316 !b\210\211\\\323\\\320 !Z^y\210\310 )\"*\202\360\327!?\205\360\320 !\311\316 !\330 \331\"\"W\205\357\317 \212\316 !b\210Zy\210\310 )\"*+\207" [node node-point point-lines-before point-lines-after tree-buffer-running-xemacs window goto-line tree-buffer-find-node tree-buffer-line-beginning-pos count-lines #1=#:G47403 (tree-buffer-hscroll -1000) ((error)) pos-visible-in-window-p window-start set-window-start tree-buffer-window-display-height 2 0 1 tree-node-is-expanded tree-node-count-subnodes-to-display -1 tree-node-is-expandable window-end t point-window-line exp-node-children-count full-lines-in-window w-height] 6 (#$ . 10955)]) (defalias 'tree-buffer-remove-highlight #[nil "\203\303!\211\203\304\n!\210)\305\211\207" [tree-buffer-highlighted-node-data node tree-buffer-highlight-overlay tree-buffer-find-node-data delete-overlay nil] 3]) #@695 Highlights in current tree-buffer the node which has as data NODE-DATA. If START-NODE is nil or equal to the root-node then all nodes of current tree-buffer are searched from beginning until the node with data NODE-DATA has been found otherwise the search starts with START-NODE. If DONT-MAKE-VISIBLE is true then no tree-buffer recentering has been done to make this node visible. If either NODE-DATA is nil or if the node belonging to NODE-DATA can not be found because it is invisible (probably because its parent-node is not expanded) then no highlighting takes place but the existing highlighting is removed and nil is returned. Otherwise the node is highlighted and not nil is returned. (defalias 'tree-buffer-highlight-node-data #[(node-data &optional start-node dont-make-visible) "\203=\306 \"\211@\nA\307p!\f\204\310 \210\311\202;\212\312\313 \f\"\314 \f\"#\210)\204:\315\f \"\210\316,\207\310 \210\311\207" [node-data start-node name-node name node w tree-buffer-find-name-node-data get-buffer-window tree-buffer-remove-highlight nil move-overlay tree-buffer-get-node-name-start-point tree-buffer-get-node-name-end-point tree-buffer-recenter t tree-buffer-highlighted-node-data tree-buffer-highlight-overlay dont-make-visible] 7 (#$ . 12635)]) #@112 This function is the value of the `help-echo' property of each tree-node. This is only used with GNU Emacs 21! (defalias 'tree-buffer-help-echo-fn #[(win obj pos) "\n\306 !\307\212\fq\210\310 !\n\205! \205!\n \311#-\207" [win window pos position buffer node window-buffer nil tree-buffer-get-node-at-point no-print tree-node-mouse-over-fn] 4 (#$ . 13916)]) #@261 Insert TEXT at point and faces it with FACER. FACER can be a face then the text gets this face or it can be a function-symbol which is called to face the inserted TEXT. Such a function gets two arguments: Point where TEXT has been inserted and the TEXT itself (defalias 'tree-buffer-insert-text #[(text &optional facer help-echo) ";\205A`c\210\305 \211G\\\306\307$\210\n\203& \204&\305 \211G\\\302\310$\210\f\205@\311\f!\2037\f \"\202@\305 \211G\\\312\f$)\207" [text p help-echo tree-buffer-running-xemacs facer put-text-property mouse-face highlight tree-buffer-help-echo-fn functionp face] 5 (#$ . 14291)]) #@300 Add an image button based on SYMBOL-STR to SYMBOL-STR which is a string. If SYMBOL-STR is unknown, do nothing. If we have an image-symbol associated with it, use that image-symbol. Symbol-strings are associated with image-symbols via `tree-buffer-expand-collapse-tokens'. Always return SYMBOL-STR. (defalias 'tree-buffer-make-image-icon-maybe #[(symbol-str) "\205\302\303G\304 \"A$\207" [symbol-str tree-buffer-expand-collapse-tokens tree-buffer-add-image-icon-maybe 0 assoc] 7 (#$ . 14920)]) #@229 Add IMAGE-ICON to SYMBOL-STR which is a string. If IMAGE-ICON-SYMBOL is not nil and has a value (which must be an image in the sense of (X)Emacs) then add this image to SYMBOL-STR otherwise do nothing. Always return SYMBOL-STR. (defalias 'tree-buffer-add-image-icon-maybe #[(start len str image-icon) "\2037 \2037 J\2037\n\203(\306 \f\\ \307 J\310\311C\312\313\314\313\257 $\210\2027\306 \211\f\\\311 J\310\311CF $\210 \207" [tree-buffer-images-can-be-used image-icon tree-buffer-running-xemacs start len str add-text-properties end-glyph rear-nonsticky display invisible t detachable] 11 (#$ . 15427)]) (defalias 'tree-buffer-add-node #[(node depth) "\306 \307 ! \f_\nG\\\310 !\203\311\202\312\\\313 !\203(A@@\202,@@ Y\203{\314 !\315=\203S\316\n\203G\317\202H\311 Z\\\320OP\202{ \204{\310 !\203{\314 !\321=\203{\n\312\203q\317\202r\311 Z\\[O\316P\322 \f_\323\"c\210 \203\230\310 !\203\230\324\325!!\210\326c\210\324\n\327 !\330#\210 \204\265\310 !\203\265\326c\210\324\325!!\210\331c\210\332!\n BC\"!\313 !\205\350\333 !\320\211\"\203\346\"@\334 T\"\210\"A\211\"\204\323*\320,\207" [ww node name depth tree-buffer-indent width window-width tree-node-get-name tree-node-is-expandable 4 0 tree-node-is-expanded tree-node-get-shorten-name beginning "..." 5 nil end make-string 32 tree-buffer-insert-text tree-buffer-make-image-icon-maybe " " tree-buffer-get-node-facer t "\n" append tree-node-get-children tree-buffer-add-node tree-buffer-expand-collapse-tokens expand-collapse-token tree-buffer-running-xemacs tree-buffer-expand-symbol-before tree-buffer-nodes #1=#:--dolist-temp--47404] 5]) #@489 Returns the number of ALL subnodes of NODE which will currently be displayed if NODE is expanded, means the number of all the children of NODE (if NODE is expanded) plus recursive the number of the children of each expanded child. Example: [-] NODE [+] child 1 [-] child 2 [+] child 2.1 [-] child 2.2 [+] child 2.2.1 [+] child 2.2.2 [+] child 2.3 [-] child 3 [+] child 3.1 [+] child 4 The result for NODE here is 10 (defalias 'tree-node-count-subnodes-to-display #[(node) "\304\305 !\2030\306 !\2030\307 !G\\\307 !\310\211\203/ @\311\n!\\ A\211\204*)\207" [result node child #1=#:--dolist-temp--47405 0 tree-node-is-expandable tree-node-is-expanded tree-node-get-children nil tree-node-count-subnodes-to-display] 4 (#$ . 17089)]) #@91 Rebuild the variable `tree-buffer-nodes' from the current children of `tree-buffer-root'. (defalias 'tree-buffer-build-tree-buffer-nodes #[nil "\304\305 !\304\211\203 @\306\n\307\"\210 A\211\204\f*\304\207" [tree-buffer-nodes tree-buffer-root node #1=#:--dolist-temp--47406 nil tree-node-get-children tree-buffer-add-node 0] 4 (#$ . 17912)]) #@467 Updates the current tree-buffer. The buffer will be completely rebuild with it´s current nodes. window-start and point will be preserved. If NODE is not nil and a valid and expanded node with at least one child then the display of this node is optimized so the node itself and as much as possible of it´s children (and also recursive the children of a child if it´s already expanded, see `tree-node-count-subnodes-to-display') are visible in current tree-buffer. (defalias 'tree-buffer-update #[(&optional node) "\306p!\307!`\310\310\311 \210\312 \210 \203\313ed#\210\314!\210\nb\210\315 \"\210\2056\316\"-\207" [w ws p buffer-read-only next-line-add-newlines tree-buffer-general-face get-buffer-window window-start nil erase-buffer tree-buffer-build-tree-buffer-nodes move-overlay tree-buffer-highlight-node-data set-window-start tree-buffer-recenter tree-buffer-general-overlay tree-buffer-highlighted-node-data node] 4 (#$ . 18269)]) #@98 Scrolls current tree-buffer. The window will start at WINDOW-START and point will stay on POINT. (defalias 'tree-buffer-scroll #[(point window-start) "b\210\302\303p! \"\207" [point window-start set-window-start get-buffer-window] 3 (#$ . 19234)]) #@1564 Set the expand level of the nodes in current tree-buffer. LEVEL specifies precisely which level of nodes should be expanded. LEVEL means the indentation-level of the nodes. A LEVEL value X means that all nodes with an indentation-level <= X are expanded and all other are collapsed. A negative LEVEL value means all visible nodes are collapsed. Nodes which are not indented have indentation-level 0! This function expands all nodes with level <= LEVEL, so the subnodes of these nodes get visible and collapses all their (recursive) subnodes with indentation-level > LEVEL. If a node has to be expanded then first the `tree-node-expanded-fn' of current tree-buffer (see `tree-buffer-create') is called with the argument-values [node 0 nil nil (buffer-name)]. This function gets two optional function-arguments which are called to test if a node should be excluded from expanding or collapsing; both functions are called with two arguments, where the first one is the expandable/collapsable node and the second one is the current level of indentation of this node: EXPAND-PRED-FN is called if a node has to be expanded and must return nil if this node should not be expanded even if its indentation level is <= LEVEL and COLLAPSE-PRED-FN is called analogous for a node which has to be collapsed and must return nil if the node should not be collapsed even if its indentation level is > then LEVEL. Examples: - LEVEL = 0 expands only nodes which have no indentation itself. - LEVEL = 2 expands nodes which are either not indented or indented once or twice. (defalias 'tree-buffer-expand-nodes #[(level &optional expand-pred-fn collapse-pred-fn) "\306!\307\211\203\n@\310 \311 \f %\210\nA\211\204\n*\312 \207" [tree-buffer-root node #1=#:--dolist-temp--47407 level expand-pred-fn collapse-pred-fn tree-node-get-children nil tree-buffer-expand-node 0 tree-buffer-update] 7 (#$ . 19491)]) #@258 Expand NODE if CURRENT-LEVEL (the indentation-level of NODE) <= LEVEL or collapses NODE if CURRENT-LEVEL > LEVEL. Do this recursive for subnodes of NODE with incremented CURRENT-LEVEL. For EXPAND-PRED-FN and COLLAPSE-PRED-FN see `tree-buffer-expand-nodes'. (defalias 'tree-buffer-expand-node #[(node current-level level expand-pred-fn collapse-pred-fn) "\306!\205u \203\307!\204 \310\311\211\312 %\210\307!\2042\313\n!\203,\n \"\2032 \fX\204K\307!\203O\313 !\203E  \"\203O \fV\203O\314!\210\315!\311\211\203s@\316 T\f\n %\210A\211\204[*\311\207" [node tree-node-expanded-fn expand-pred-fn current-level level collapse-pred-fn tree-node-is-expandable tree-node-is-expanded 0 nil buffer-name functionp tree-node-toggle-expanded tree-node-get-children tree-buffer-expand-node child #1=#:--dolist-temp--47408] 7 (#$ . 21398)]) (defalias 'tree-buffer-set-root #[(root) "\302 \303\"\207" [root tree-buffer-root tree-node-set-expanded t] 3]) (defalias 'tree-buffer-get-root #[nil "\207" [tree-buffer-root] 1]) #@62 Activate the popup-menu of current tree-buffer via keyboard. (defalias 'tree-buffer-show-menu-keyboard #[nil "\203\303 \207\304 \305 \245\306\307 `\"_\310 \311 \245i_\303 \nD\312 D!*\207" [tree-buffer-running-xemacs curr-frame-xpos curr-frame-ypos tree-buffer-show-menu frame-pixel-height frame-height count-lines window-start frame-pixel-width frame-width selected-window] 4 (#$ . 22448) nil]) (defalias 'tree-buffer-show-menu #[(&optional event) "\306 \232\205d \205d\307 \211\205c\310\311\n! \"A\310\311\n!\f\"A\211;\203+ \2028\312 !\2037 \n!\2028\313 \205b\203L\314 B!\202b\315\316 BB\"\211\205a@\n!)+)\207" [tree-buffer-frame tree-buffer-menus node menu tree-buffer-menu-titles menu-title-creator selected-frame tree-buffer-get-node-at-point assoc tree-node-get-type functionp "ECB-tree-buffer-menu" popup-menu x-popup-menu keymap menu-title tree-buffer-running-xemacs event fn] 6]) #@246 Prefix-pattern which ignores all not interesting basic stuff of a displayed token at incr. search. The following contents of a displayed token are ignored by this pattern: - beginning spaces - The expand/collapse-buttons: [+], <+> rsp. [-], <-> (defconst tree-buffer-incr-searchpattern-basic-prefix "^[ ]*\\([[<][+-][]>] \\)?" (#$ . 23377)) #@286 Prefix-pattern which ignores all not interesting stuff of a node-name at incr. search. The following contents of a node-name are ignored by this pattern: - types of a variable or return-types of a method - const specifier of variables - protection sign of a variable/method: +, - or # (defconst tree-buffer-incr-searchpattern-node-prefix "\\([^ ]+ \\|[-+#]\\)?" (#$ . 23726)) #@134 Return common substring beginning with SUBS in each element of LIS. If ONLY-PREFIX is not nil then only common prefix is returned. (defalias 'tree-buffer-find-common-substring #[(lis subs &optional only-prefix) "\203\n\306 P\202 \307\310\311\n!\312R\313\211\314\315\"\316\313\f\"\314\317\f\"\320\321\n \",\207" [only-prefix tree-buffer-incr-searchpattern-node-prefix subs alist res change-word-sub "^" "" "\\(" regexp-quote "\\)" nil mapcar #[(word) "\303 \"\205 \n\203\304\202\305\224\306O\207" [change-word-sub word only-prefix string-match 2 1 nil] 3] delq #[(r) "\301B\207" [r 1] 2] t try-completion lis completion-ignore-case] 4 (#$ . 24109)]) (defalias 'tree-node-get-all-visible-node-names #[(start-node) " \232?\205 \305 !C \232\204\306 !\2034\307 !\310\211\2033\f@\311\n\312 !\"\fA\211\204\"*\n)\207" [tree-buffer-root start-node result child #1=#:--dolist-temp--47409 tree-node-get-name tree-node-is-expanded tree-node-get-children nil append tree-node-get-all-visible-node-names] 5]) #@958 Incremental search for a node in current tree-buffer. Each display-able key (e.g. all keys normally bound to `self-insert-command') is appended to the current search-pattern. The tree-buffer tries to jump to the current search-pattern. If no match is found then nothing is done. Some special keys: - [backspace] and [delete]: Delete the last character from the search-pattern. - [home]: Delete the complete search-pattern - [end]: Expand either to a complete node if current search-pattern is already unique or expands to the greatest common prefix of the nodes. If there are at least two nodes with the same greatest common-prefix than every hit of [end] jumps to the next node with this common prefix. The current search-pattern is shown in the echo area. After selecting a node with RET the search-pattern is cleared out. Do NOT call this function directly. It works only if called from the binding mentioned above! (defalias 'tree-buffer-incremental-node-search #[nil "\306 \232\205\237\307 !\211\310\232\204\n\311\232\203# \312\211 GS]O\202\\\n\313\232\203.\314\202\\\n\315\232\203R\316\f!\317 \320\232\205C\321#\211;\203N*\202\\\n\203\\ \322\n!P\323\324\325p! \212\n\315\232\203p \230\204seb\210\326 \327\232\203\203\330\202\204\314\331 !R\332\321#)\203\227\312\225b\210\314\202\230\333$\210 \211)\207" [tree-buffer-frame last-command-event last-comm tree-buffer-incr-searchpattern tree-buffer-root node-name-list selected-frame tree-buffer-event-to-key delete backspace 0 home "" end tree-node-get-all-visible-node-names tree-buffer-find-common-substring prefix t char-to-string tree-buffer-nolog-message "%s node search: [%s]%s" buffer-name re-search-forward substring "[^()\n]*" regexp-quote nil " - no match" tree-buffer-incr-search common-prefix tree-buffer-last-incr-searchpattern tree-buffer-incr-searchpattern-basic-prefix tree-buffer-incr-searchpattern-node-prefix] 11 (#$ . 25148) nil]) #@51 Creates a popup menu from a list with menu items. (defalias 'tree-buffer-create-menu #[(menu-items) "\205U \203@\211@A)\204\211@@)\202P\304\305\306\"\211\307\211@@)I\210 \310\211@A)@\311DI\210 \312\306I\210 )\202P\211@A)@\211@@)\306BB\313A!B\207" [menu-items tree-buffer-running-xemacs x v make-vector 3 t 0 1 (tree-buffer-get-node-at-point) 2 tree-buffer-create-menu] 5 (#$ . 27136)]) #@54 Creates a popup menus from an assoc list with menus. (defalias 'tree-buffer-create-menus #[(menus) "\205\211@@)\302\211@A)!B\303A!B\207" [menus x tree-buffer-create-menu tree-buffer-create-menus] 4 (#$ . 27549)]) (defalias 'tree-buffer-follow-mouse #[(event) "\306!\307p!\310 !\203\311 !\204&\312\n!\203&\313\n! \235\203&\314!\210*\f?\205< \2034 !\207 C\244\211 \207" [event current-window window tree-buffers tree-buffer-running-xemacs tree-buffer-saved-mouse-movement-fn tree-buffer-event-window get-buffer-window window-minibuffer-p minibuffer-window-active-p windowp window-buffer tree-buffer-mouse-movement unread-command-events] 3 nil "e"]) (defalias 'tree-buffer-mouse-movement #[(event) "\304\305!!q\210\306!\307 !\205$\310 ! \205#\n\205# \n\311p!\"))\207" [event p node tree-node-mouse-over-fn window-buffer tree-buffer-event-window tree-buffer-event-point integer-or-marker-p tree-buffer-get-node-at-point get-buffer-window] 4 nil "e"]) #@135 Not nil only if there is at evaluation-time of this variable an uncompleted key sequence, e.g. the "C-h" of the key sequence "C-h v". (defvar tree-buffer-uncompleted-keyseq nil (#$ . 28533)) #@618 This function is called every time Emacs is idle for seconds defined in `tree-buffer-track-mouse-idle-delay'. It enables mouse-tracking but only if isearch is not active and if no uncompleted key sequence is open, means if this function is called by the idle timer during a key sequence is inserted by the user (e.g. between the "C-h" and the "v" of the key sequence "C-h v"), then mouse-tracking is always not enabled, because otherwise all very slightly (invisible) and unintended mouse-movements (can occur for example only by the convulsion cause of hitting keys onto the keyboard!) would break the key sequence! (defalias 'tree-buffer-do-mouse-tracking #[nil "\305\306 !\307\232\204 \n\232? \204\f\204\310\311\312\313\"\207" [track-mouse last-input-event last-command-event tree-buffer-uncompleted-keyseq isearch-mode nil tree-buffer-event-to-key mouse-movement t add-hook post-command-hook tree-buffer-stop-mouse-tracking] 3 (#$ . 28731)]) (defalias 'tree-buffer-stop-mouse-tracking #[nil "\301\302\303\"\210\304\211\207" [track-mouse remove-hook post-command-hook tree-buffer-stop-mouse-tracking nil] 3]) #@191 Activates GNU Emacs < version 21 mouse tracking for all tree-buffers. With GNU Emacs 21 this functionality is done with the `help-echo'-property and the function `tree-buffer-help-echo-fn'! (defalias 'tree-buffer-activate-mouse-tracking #[nil "\206 ?\205'\n?\205' \204\306\202 \303\306!\210 \n\307 \310\311#\211\207" [tree-buffer-running-xemacs tree-buffer-running-emacs-21 tree-buffer-track-mouse-timer mouse-avoidance-mode tree-buffer-old-mouse-avoidance-mode track-mouse none run-with-idle-timer t tree-buffer-do-mouse-tracking tree-buffer-saved-track-mouse tree-buffer-track-mouse-idle-delay] 4 (#$ . 29860)]) #@193 Deactivates GNU Emacs < version 21 mouse tracking for all tree-buffers. With GNU Emacs 21 this functionality is done with the `help-echo'-property and the function `tree-buffer-help-echo-fn'! (defalias 'tree-buffer-deactivate-mouse-tracking #[nil "\206 ?\205\n\205\306 !\210\f\307\n!\210\310\211\207" [tree-buffer-running-xemacs tree-buffer-running-emacs-21 tree-buffer-track-mouse-timer tree-buffer-old-mouse-avoidance-mode tree-buffer-saved-track-mouse track-mouse mouse-avoidance-mode cancel-timer nil] 2 (#$ . 30494)]) #@383 Activates that in all tree-buffer-windows - regardless if the active window or not - a mouse-over-node-function is called if mouse moves over a node. See also the NODE-MOUSE-OVER-FN argument of `tree-buffer-create'. This function does nothing for GNU Emacs 21; with this version this functionality is done with the `help-echo'-property and the function `tree-buffer-help-echo-fn'! (defalias 'tree-buffer-activate-follow-mouse #[nil "\306 \210\203& \307\211\203# @\212\nq\210\310\311\312\"\210) A\211\204*\307\207\f?\205B\313 \314\"\211\312\232?\205A\315 \316\312#)\207" [tree-buffer-running-xemacs tree-buffers buf #1=#:--dolist-temp--47410 tree-buffer-running-emacs-21 special-event-map tree-buffer-activate-mouse-tracking nil add-hook mode-motion-hook tree-buffer-follow-mouse lookup-key [mouse-movement] define-key [mouse-movement] saved-fn tree-buffer-saved-mouse-movement-fn] 5 (#$ . 31033)]) (defalias 'tree-buffer-deactivate-follow-mouse #[nil "\203# \306\211\203 @\212\nq\210\307\310\311\"\210) A\211\204\f*\306\207\f?\205.\312 \313\f#\207" [tree-buffer-running-xemacs tree-buffers buf #1=#:--dolist-temp--47411 tree-buffer-running-emacs-21 special-event-map nil remove-hook mode-motion-hook tree-buffer-follow-mouse define-key [mouse-movement] tree-buffer-saved-mouse-movement-fn] 4]) #@45 Perform the defined action after a TAB-hit. (defalias 'tree-buffer-tab-pressed #[nil "\303 \232\205+\304 \305 !\205*\n\203#\306 !\204#\n \307\310\211\311 %\210\312 !\210\313 !)\207" [tree-buffer-frame node tree-node-expanded-fn selected-frame tree-buffer-get-node-at-point tree-node-is-expandable tree-node-is-expanded 0 nil buffer-name tree-node-toggle-expanded tree-buffer-update] 6 (#$ . 32362) nil]) (defalias 'tree-buffer-return-pressed #[(&optional shift-pressed control-pressed) "\304 \232\205\305\306\307\n #\207" [tree-buffer-frame tree-buffer-incr-searchpattern shift-pressed control-pressed selected-frame "" tree-buffer-select 0] 4]) #@46 Perform smart arrow-key navigation/movement. (defalias 'tree-buffer-arrow-pressed #[nil "\306 \232\205a\307 \310 !\n\311\232\203-\312 !\203%\313 !\204%\314 \202`\315y\210\316 \202`\n\317\232\205`\313 !\203>\314 \202`\320 !\321\f Z]\322\323 \323 \\{\324Q\325\326\327#\210\316 +*\207" [tree-buffer-frame last-command-event arrow-key node indent tree-buffer-indent selected-frame tree-buffer-get-node-at-point tree-buffer-event-to-key right tree-node-is-expandable tree-node-is-expanded tree-buffer-tab-pressed 1 back-to-indentation left tree-buffer-get-node-indent 0 "^" tree-buffer-line-beginning-pos "[^ ]" re-search-backward nil t new-indent search-string] 4 (#$ . 33024) nil]) #@6769 Creates a new tree buffer and returns the newly created buffer. This function creates also a special data-storage for this tree-buffer which can be accessed via `tree-buffer-set-data-store' and `tree-buffer-get-data-store'. The user of this tree-buffer can store any arbitrary data in this storage. Before using the accessor-functions above the tree-buffer has to be the current buffer! NAME: Name of the buffer FRAME: Frame in which the tree-buffer is displayed and valid. All key-bindings and interactive functions of the tree-buffer work only if called in FRAME otherwise nothing is done! IS-CLICK-VALID-FN: `tree-buffer-create' rebinds down-mouse-1, down-mouse-2, RET (and TAB) and also in combination with shift and control (not with TAB). IS-CLICK-VALID-FN is called first if a node or an expand-symbol is clicked. This function is called with four arguments: - mouse-button: The clicked mouse-button or RET or TAB (0 = RET or TAB, 1 = mouse-1, 2 = mouse 2) - shift-pressed: non nil if the SHIFT-key was pressed during mouse-click or RET/TAB. - control-pressed: non nil if the CONTROL-key was pressed during mouse-click or RET/TAB. - tree-buffer-name: The buffer-name of the tree-buffer where the node has been clicked. The function must return not nil iff exactly this click/hit is accepted. If the function returns nil then really nothing is done by the tree-buffer after this click/hit! NODE-SELECTED-FN: Function to call if a node has been selected This function is called with the following parameters: - node: The selected node - mouse-button (0 = RET, 1 = mouse-1, 2 = mouse 2) - shift-pressed - control-pressed - tree-buffer-name For the last four arguments see the description above. NODE-EXPANDED-FN: Function to call if a node is expandable, point stays onto the expand-symbol and node is not already expanded. This function is called with the following parameters: - node: The selected node - mouse-button (0 = TAB, 1 = mouse-1, 2 = mouse 2) - shift-pressed - control-pressed - tree-buffer-name This function should add all children nodes to this node (if possible). NODE-MOUSE-OVER-FN: Function to call when the mouse is moved over a node. This function is called with three arguments: NODE, WINDOW, NO-PRINT, each of them related to the current tree-buffer. If NO-PRINT is nil then the function must print the text itself in any manner. This function must always return the text which either is printed by the function itself or by the caller (if NO-PRINT is not nil). The current buffer for this function is the tree-buffer. With XEmacs and GNU Emacs 20.X this function is only called if the tree-buffer track-mouse mechanism is activated (see `tree-buffer-activate-mouse-tracking'). With GNU Emacs 21 this function is called by the `help-echo' property added to each node. NODE-DATA-EQUAL-FN: Function used by the tree-buffer to test if the data of two tree-nodes are equal. The data of node can be set/get with `tree-node-set-data'/`tree-node-get-data'. MENUS: Nil or a list of one to three conses, each cons for a node-type (0, 1 or 2) Example: ((0 . menu-for-type-0) (1 . menu-for-type-1)). The cdr of a cons must be a menu. MENU-TITLES: Nil or a list of one to three conses, each cons for a node-type (0, 1 or 2). See MENUS. The cdr of a cons must be either a string or a function which will be called with current node under point and must return a string which is displayed as the menu-title. TR-LINES: Should lines in this tree buffer be truncated (not nil) READ-ONLY: Should the treebuffer be read-only (not nil) TREE-INDENT: spaces subnodes should be indented. INCR-SEARCH: Should the incremental search be enabled in the tree-buffer. Three choices: 'prefix, 'substring, nil. See `tree-buffer-incremental-node-search'. ARROW-NAVIGATION: If not nil then smart navigation with horizontal arrow keys. HOR-SCROLL: Number of columns a hor. scroll in the tree-buffer should scroll. If not nil then M-mouse-1 and M-mouse-2 scroll left and right and also M- and M-. EXPAND-COLLAPSE: A 2-elem list where the first elem is a cons cell where the car is the token-string for the expand-symbol (e.g. "[+]") and the cdr is a symbol which has as value an image in the sense of (X)Emacs. The second elem is the same for the collapse symbol. Both elems can be nil; then no expand- or collapse-symbol is drawn. If only the cdr of an elem is nil then no image-icon is used but always the token-string. TYPE-FACER: Nil or a list of one or two conses, each cons for a node-type (0 or 1). The cdr of a cons can be: - a symbol of a face - a symbol of a function which gets to arguments (see `tree-buffer-insert-text'). This function can do anything, but normally it should face a tree-buffer node. - the symbol t. Then the tree-buffer assumes that the node-text is already faces and therefore it does not face the node, means it does nothing then inserting the node-text, if the tree-buffer is updated. EXPAND-SYMBOL-BEFORE: If not nil then the expand-symbol (is displayed before the node-text. HIGHLIGHT-NODE-FACE: Face used for highlighting current node in this tree-buffer. GENERAL-FACE: General face in which the whole tree-buffer should be displayed. AFTER-CREATE-HOOK: A function or a list of functions (with no arguments) called directly after creating the tree-buffer and defining it's local keymap. For example such a function can add additional key-bindings for this tree-buffer local keymap. (defalias 'tree-buffer-create #[(name frame is-click-valid-fn node-selected-fn node-expanded-fn node-mouse-over-fn node-data-equal-fn menus menu-titles tr-lines read-only tree-indent incr-search arrow-navigation hor-scroll expand-collapse &optional type-facer expand-symbol-before highlight-node-face general-face after-create-hook) "\306\307!\203\fC\202 \310 !q\210\311\305!\210\311\312!\210\311\313!\210\311\314!\210\311\315!\210\311\316!\210\311\317!\210\311\320!\210\311\321!\210\311\322!\210\311\323!\210\311\324!\210\311\325!\210\311\326!\210\311\327!\210\311\330!\210\311\331!\210\311\332!\210\311\333!\210\311\334!\210\311\335!\210\311\336!\210\311\337!\210\311\340!\210\311\341!\210\311\342!\210\311\343!\344L\210\f\f\n@A\345  B\fCDEFGH\344\346I!J\347\350\351\350# KL\352\353\211\"\354\355M#\210N\352\353\211\"\354\355#\210\356\356O P!Q\"\357R!\210O\203(\360\361\362 S$\210\363 \364\362#\210\363 \365\362#\210\363 \366\362#\210\363 \367\362#\210\363 \370\371#\210\363 \372\373#\210\363 \374\375#\210\363 \376\377#\210\363 \201Y\201Z#\210T\203j\363 \201[\201\\#\210\363 \201]\201\\#\210\363 U\203x\201^\202{\201_\201`#\210\363 U\203\216\201a\202\221\201b\201c#\210\363 U\203\244\201d\202\247\201e\201f#\210\363 \201g\n#\210\363 \201h\n#\210\363 \201i\n#\210\363 \201j\n#\210\363 U\203\336\201k\202\341\201l\201m#\210\363 U\203\364\201n\202\367\201o\201p#\210\363 U\203\n\201q\202 \201r\201s#\210\363 \201t\n#\210\363 \201u\n#\210\363 \201v\n#\210\363 U\203;\201w\202>\201x\201y#\210\363 \201z\201{#\210\363 \201|\n#\210\363 \201}\n#\210\363 \201~\n#\210U\204\331!\203\331\363 \201\201\200#\210\363 \201\201\201\202#\210\363 \201\203\201\204#\210\363 \201\205\201\206#\210\363 \201\207\201\210#\210\363 \201\211\201\210#\210\363 \201\212\n#\210\363 \201\213\n#\210\363 \201\214\n#\210\363 \201\215\n#\210\201\216 !\210pVBVp \344W\211X\203X@\211W \210XA\211X\204\361,\207" [after-create-hook a-c-h nop name tr-lines truncate-lines #[nil "\300\207" [nil] 1 nil nil] functionp get-buffer-create make-local-variable truncate-partial-width-windows tree-buffer-key-map tree-buffer-frame tree-buffer-root tree-buffer-nodes tree-buffer-indent tree-buffer-is-click-valid-fn tree-node-selected-fn tree-node-expanded-fn tree-node-update-fn tree-node-mouse-over-fn tree-node-data-equal-fn tree-buffer-highlighted-node-data tree-buffer-menus tree-buffer-menu-titles tree-buffer-type-facer tree-buffer-expand-symbol-before tree-buffer-highlight-overlay tree-buffer-general-face tree-buffer-general-overlay tree-buffer-incr-searchpattern tree-buffer-last-incr-searchpattern tree-buffer-incr-search tree-buffer-hor-scroll-step tree-buffer-expand-collapse-tokens tree-buffer-data-store nil make-sparse-keymap tree-buffer-create-menus tree-node-new "root" 0 make-overlay 1 overlay-put face "" set-syntax-table substitute-key-definition self-insert-command tree-buffer-incremental-node-search define-key [delete] [backspace] [home] [end] " " #[nil "\300\301\211\"\207" [tree-buffer-return-pressed nil] 3 nil nil] [C-return] #[nil "\300\301\302\"\207" [tree-buffer-return-pressed nil t] 3 nil nil] [S-return] #[nil "\300\301\302\"\207" [tree-buffer-return-pressed t nil] 3 nil nil] [C-S-return] #[nil "\300\301\211\"\207" [tree-buffer-return-pressed t] 3 nil nil] read-only buffer-read-only frame is-click-valid-fn node-selected-fn node-expanded-fn node-mouse-over-fn node-data-equal-fn tree-indent menus menu-titles type-facer expand-symbol-before highlight-node-face general-face incr-search hor-scroll expand-collapse tree-buffer-syntax-table global-map arrow-navigation tree-buffer-running-xemacs tree-buffers f #1=#:--dolist-temp--47412 " " tree-buffer-tab-pressed [right] tree-buffer-arrow-pressed [left] (button1) [down-mouse-1] #[(e) "\301!\210\302\303\304\211#\207" [e tree-buffer-mouse-set-point tree-buffer-select 1 nil] 4 nil "e"] (shift button1) [S-down-mouse-1] #[(e) "\301!\210\302\303\304\305#\207" [e tree-buffer-mouse-set-point tree-buffer-select 1 t nil] 4 nil "e"] (control button1) [C-down-mouse-1] #[(e) "\301!\210\302\303\304\305#\207" [e tree-buffer-mouse-set-point tree-buffer-select 1 nil t] 4 nil "e"] [drag-mouse-1] [mouse-1] [double-mouse-1] [triple-mouse-1] (button2) [down-mouse-2] #[(e) "\301!\210\302\303\304\211#\207" [e tree-buffer-mouse-set-point tree-buffer-select 2 nil] 4 nil "e"] (shift button2) [S-down-mouse-2] #[(e) "\301!\210\302\303\304\305#\207" [e tree-buffer-mouse-set-point tree-buffer-select 2 t nil] 4 nil "e"] (control button2) [C-down-mouse-2] #[(e) "\301!\210\302\303\304\305#\207" [e tree-buffer-mouse-set-point tree-buffer-select 2 nil t] 4 nil "e"] [mouse-2] [double-mouse-2] [triple-mouse-2] (button3) [down-mouse-3] #[(e) "\301!\210\302!\207" [e tree-buffer-mouse-set-point tree-buffer-show-menu] 2 nil "e"] [-134217619] tree-buffer-show-menu-keyboard [mouse-3] [double-mouse-3] [triple-mouse-3] [M-down-mouse-1] #[(e) "\302!\210\303 [!\207" [e tree-buffer-hor-scroll-step tree-buffer-mouse-set-point tree-buffer-hscroll] 2 nil "e"] [M-down-mouse-3] #[(e) "\302!\210\303 !\207" [e tree-buffer-hor-scroll-step tree-buffer-mouse-set-point tree-buffer-hscroll] 2 nil "e"] [C-M-down-mouse-1] #[(e) "\301!\210\302\303 \304Z[!\207" [e tree-buffer-mouse-set-point tree-buffer-hscroll window-width 2] 3 nil "e"] [C-M-down-mouse-3] #[(e) "\301!\210\302\303 \304Z!\207" [e tree-buffer-mouse-set-point tree-buffer-hscroll window-width 2] 3 nil "e"] [mode-line mouse-1] tree-buffer-mouse-hscroll [mode-line mouse-2] [M-mouse-1] [M-mouse-3] [C-M-mouse-1] [C-M-mouse-3] use-local-map] 5 (#$ . 33733)]) #@25 Destroy the tree-buffer (defalias 'tree-buffer-destroy #[(buffer) "\205\302\303! \"\304\305\306\217\207" [buffer tree-buffers delq get-buffer #1=#:G47413 (kill-buffer buffer) ((error))] 3 (#$ . 46264)]) (defalias 'tree-node-add-child #[(node child) "\302\303\304! C\"\"\210\305 \"\207" [node child tree-node-set-children append tree-node-get-children tree-node-set-parent] 5]) (defalias 'tree-node-add-child-first #[(node child) "\302 \303!B\"\210\304 \"\207" [node child tree-node-set-children tree-node-get-children tree-node-set-parent] 5]) (defalias 'tree-node-sort-children #[(node sortfn) "\302\303\304! \"\"\207" [node sortfn tree-node-set-children sort tree-node-get-children] 5]) #@34 Removes the child from the node. (defalias 'tree-node-remove-child #[(node child) "\302\303\"\210\304 \305\306 !\"\"\207" [child node tree-node-set-parent nil tree-node-set-children delq tree-node-get-children] 6 (#$ . 46972)]) #@50 Finds the first child with the given child-data. (defalias 'tree-node-find-child-data #[(node child-data) "\300\301\215\207" [exit (byte-code "\304!\305\211\203\"\n@\306\307 ! \"\203\310\311 \"\210\nA\211\204\n*\305\207" [node child #1=#:--dolist-temp--47414 child-data tree-node-get-children nil tree-buffer-node-data-equal-p tree-node-get-data throw exit] 4)] 2 (#$ . 47208)]) #@79 Removes the first child with the given child-data. Returns the removed child. (defalias 'tree-node-remove-child-data #[(node child-data) "\300\301\215\207" [exit (byte-code "\304\305! \205?\306\307 @! \"\2035\n\203 \n A\241\210\202&\310 A\"\210 \304\241\210\311 @\304\"\210\312\313 \"\210  A\211\204\n\304*\207" [node cell last-cell child-data nil tree-node-get-children tree-buffer-node-data-equal-p tree-node-get-data tree-node-set-children tree-node-set-parent throw exit] 4)] 2 (#$ . 47602)]) (defalias 'tree-node-find-child-name #[(node child-name) "\300\301\215\207" [exit (byte-code "\304!\305\211\203!\n@\306 ! \232\203\307\310 \"\210\nA\211\204\n*\305\207" [node child #1=#:--dolist-temp--47415 child-name tree-node-get-children nil tree-node-get-name throw exit] 4)] 2]) (defalias 'tree-node-find-data-recursively #[(node data) "\302\303 !\"\203 \207\304\305\215\207" [data node tree-buffer-node-data-equal-p tree-node-get-data exit (byte-code "\305!\306\211\203#\n@\307 \"\211\203\310\311\f\"\210)\nA\211\204\n*\306\207" [node child #1=#:--dolist-temp--47416 data n tree-node-get-children nil tree-node-find-data-recursively throw exit] 4)] 4]) (byte-code "\301B\306\302B\307\303B\310\304B\311\305B\312\313B\314 \315B\316 \301\207" [current-load-list tree-node-name tree-node-type tree-node-data tree-node-expanded tree-node-parent 0 1 2 3 4 tree-node-children 5 tree-node-expandable 6] 2) #@367 Decides if the node name can be shortened when displayed in a narrow tree buffer window. The following values are valid: - beginning: The name is truncated at the beginning so the end is always visible. - end: The name is truncated at the end. If the node is expandable the name is truncated so that the expand symbol is visible. - nil: The name is never truncated. (defconst tree-node-shorten-name 7 (#$ . 49065)) (defalias 'tree-node-new #[(name type data &optional not-expandable parent shorten-name) "\306\307\310\"\311 \"\210\312\n\"\210\313 \"\210\314\310\"\210\315\310\"\210\316\f\"\210\317 ?\"\210\320\"\210\f\2038\321\f\"\210)\207" [a name type data parent not-expandable make-vector 8 nil tree-node-set-name tree-node-set-type tree-node-set-data tree-node-set-expanded tree-node-set-children tree-node-set-parent tree-node-set-expandable tree-node-set-shorten-name tree-node-add-child shorten-name] 3]) (defalias 'tree-node-get-name #[(node) " H\207" [node tree-node-name] 2]) (defalias 'tree-node-set-name #[(node name) " \nI\207" [node tree-node-name name] 3]) (defalias 'tree-node-get-type #[(node) " H\207" [node tree-node-type] 2]) (defalias 'tree-node-set-type #[(node type) " \nI\207" [node tree-node-type type] 3]) (defalias 'tree-node-get-data #[(node) " H\207" [node tree-node-data] 2]) (defalias 'tree-node-set-data #[(node data) " \nI\207" [node tree-node-data data] 3]) (defalias 'tree-node-is-expanded #[(node) " H\207" [node tree-node-expanded] 2]) (defalias 'tree-node-set-expanded #[(node expanded) " \nI\207" [node tree-node-expanded expanded] 3]) (defalias 'tree-node-is-expandable #[(node) " H\207" [node tree-node-expandable] 2]) (defalias 'tree-node-set-expandable #[(node expandable) " \nI\207" [node tree-node-expandable expandable] 3]) (defalias 'tree-node-get-parent #[(node) " H\207" [node tree-node-parent] 2]) (defalias 'tree-node-set-parent #[(node parent) " \nI\207" [node tree-node-parent parent] 3]) (defalias 'tree-node-get-children #[(node) " H\207" [node tree-node-children] 2]) (defalias 'tree-node-set-children #[(node children) " \nI\207" [node tree-node-children children] 3]) (defalias 'tree-node-toggle-expanded #[(node) "\301\302!?\"\207" [node tree-node-set-expanded tree-node-is-expanded] 4]) (defalias 'tree-node-get-depth #[(node) "\302!\211\203\303 !T\202\304)\207" [node parent tree-node-get-parent tree-node-get-depth 0] 3]) (defalias 'tree-node-set-shorten-name #[(node shorten) " \nI\207" [node tree-node-shorten-name shorten] 3]) (defalias 'tree-node-get-shorten-name #[(node) " H\207" [node tree-node-shorten-name] 2]) (provide 'tree-buffer)