;ELC   
;;; Compiled
;;; in Emacs version 24.5.1
;;; 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\303\304\305\306\307\310%\210\311\312\313\314\315\316\307\304&\210\311\317\320\321\307\304\315\322&\210\311\323\324\325\307\304\315\326&\210\311\327\330\331\307\304\332\333\315\334&	\210\311\335\320\336\307\304\315\337&\210\340\341!\204b \342\341\343\344B\"\210\345\341\346\347#\210\345\341\350\320#\210\305\207" [require cl-lib cl custom-declare-group perspective-mode nil "Customization for Perspective mode" :group frames custom-declare-variable persp-initial-frame-name "main" "Name used for the initial perspective when enabling `persp-mode'." :type string persp-show-modestring t "Determines if `persp-modestring' is shown in the modeline.\nIf the value is 'header, `persp-modestring' is shown in the\nheader line instead." (choice (const :tag "Off" nil) (const :tag "Modeline" t) (const :tag "Header" 'header)) persp-modestring-dividers '("[" "]" "|") "Plist of strings used to created `persp-modestring'.\nFirst string is the start of the modestring, second is the\nclosing of the mode string, and the last is the divider between\nperspectives." (list (string :tag "Open") (string :tag "Close") (string :tag "Divider")) persp-mode-prefix-key (kbd "C-x x") "Prefix key to activate perspective-map" :set #[(sym value) "\304\300!\203 \203 \304\301!\203 	\203 \305\n!\210\306\n\"\207" [persp-mode-map perspective-map value sym boundp persp-mode-set-prefix-key set-default] 3] key-sequence persp-switch-wrap "Whether `persp-next' and `persp-prev' should wrap." boolean fboundp with-selected-frame defalias macro #[(frame &rest body) "\304\305!\304\306!\307	\310B\311BD\312\313\314\nDBB\315\316	D\314	DE\315\317D\320DEFE*\207" [old-buffer old-frame frame body make-symbol "old-frame" "old-buffer" let ((selected-frame)) ((current-buffer)) unwind-protect progn select-frame if frame-live-p buffer-live-p set-buffer] 9 "Execute the forms in BODY with FRAME as the selected frame.\nThe value returned is the value of the last form in BODY.\nSee also `with-temp-buffer'."] put lisp-indent-function 1 edebug-form-spec] 10)
#@308 Like `let', but properly handles frame-local variables.
Bind variables according to BINDINGS then eval BODY.

In Emacs >= 23.2, frame-local variables are not reset after a
`let' expression.  This hacks around that by manually resetting
them in Emacs >= 23.2.  In older versions, this is identical to
`let'.
(defalias 'persp-frame-local-let '(macro . #[(bindings &rest body) "\305W\204 \305U\203 	\306W\203 \307\nBB\207\310\311\n\"\307\310\312\f\"\313\314\315\310\316\n\"\"B\310\317\f\"BBE)\207" [emacs-major-version emacs-minor-version bindings body binding-syms 23 2 let mapcar #[(binding) "@\301 D\207" [binding cl-gensym] 2] #[(binding) "\211A@\262@\302\303\304\305	DD	E\304\305	DDE)D\207" [binding name cons when boundp quote] 6] unwind-protect progn append #[(binding) "\301@\211A@\262E\207" [binding setq] 4] #[(binding) "\301\302\211A@\262D\303@\304\211A@\262DE\305\306@DDF\207" [binding if cdr setq car makunbound quote] 7]] 8 (#$ . 2485)]))
(byte-code "\300\301\302\303#\210\304\305\306\307#\210\304\310\311\312#\207" [put persp-frame-local-let lisp-indent-function 1 byte-code "\300\301\302\"\207" [defalias #1=#:persp-name--cmacro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block persp-name (or (and (memq (aref cl-x 0) cl-struct-perspective-tags)) (error "%s accessing a non-%s" 'persp-name 'perspective)) (aref cl-x 1)) nil] 7]] 3 "\300\301\302\303#\207" [put persp-name compiler-macro #1#] 4] 4)
(defalias 'persp-name #[(cl-x) "\302H	>\204 \303\304\305\306#\210\307H\207" [cl-x cl-struct-perspective-tags 0 error "%s accessing a non-%s" persp-name perspective 1] 4])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:persp-buffers--cmacro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block persp-buffers (or (and (memq (aref cl-x 0) cl-struct-perspective-tags)) (error "%s accessing a non-%s" 'persp-buffers 'perspective)) (aref cl-x 2)) nil] 7]] 3 "\300\301\302\303#\207" [put persp-buffers compiler-macro #1#] 4] 4)
(defalias 'persp-buffers #[(cl-x) "\302H	>\204 \303\304\305\306#\210\307H\207" [cl-x cl-struct-perspective-tags 0 error "%s accessing a non-%s" persp-buffers perspective 2] 4])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:persp-killed--cmacro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block persp-killed (or (and (memq (aref cl-x 0) cl-struct-perspective-tags)) (error "%s accessing a non-%s" 'persp-killed 'perspective)) (aref cl-x 3)) nil] 7]] 3 "\300\301\302\303#\207" [put persp-killed compiler-macro #1#] 4] 4)
(defalias 'persp-killed #[(cl-x) "\302H	>\204 \303\304\305\306#\210\307H\207" [cl-x cl-struct-perspective-tags 0 error "%s accessing a non-%s" persp-killed perspective 3] 4])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:persp-local-variables--cmacro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block persp-local-variables (or (and (memq (aref cl-x 0) cl-struct-perspective-tags)) (error "%s accessing a non-%s" 'persp-local-variables 'perspective)) (aref cl-x 4)) nil] 7]] 3 "\300\301\302\303#\207" [put persp-local-variables compiler-macro #1#] 4] 4)
(defalias 'persp-local-variables #[(cl-x) "\302H	>\204 \303\304\305\306#\210\307H\207" [cl-x cl-struct-perspective-tags 0 error "%s accessing a non-%s" persp-local-variables perspective 4] 4])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:persp-buffer-history--cmacro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block persp-buffer-history (or (and (memq (aref cl-x 0) cl-struct-perspective-tags)) (error "%s accessing a non-%s" 'persp-buffer-history 'perspective)) (aref cl-x 5)) nil] 7]] 3 "\300\301\302\303#\207" [put persp-buffer-history compiler-macro #1#] 4] 4)
(defalias 'persp-buffer-history #[(cl-x) "\302H	>\204 \303\304\305\306#\210\307H\207" [cl-x cl-struct-perspective-tags 0 error "%s accessing a non-%s" persp-buffer-history perspective 5] 4])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:persp-window-configuration--cmacro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block persp-window-configuration (or (and (memq (aref cl-x 0) cl-struct-perspective-tags)) (error "%s accessing a non-%s" 'persp-window-configuration 'perspective)) (aref cl-x 6)) nil] 7]] 3 "\300\301\302\303#\207" [put persp-window-configuration compiler-macro #1#] 4] 4)
(defalias 'persp-window-configuration #[(cl-x) "\302H	>\204 \303\304\305\306#\210\307H\207" [cl-x cl-struct-perspective-tags 0 error "%s accessing a non-%s" persp-window-configuration perspective 6] 4])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:persp-point-marker--cmacro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block persp-point-marker (or (and (memq (aref cl-x 0) cl-struct-perspective-tags)) (error "%s accessing a non-%s" 'persp-point-marker 'perspective)) (aref cl-x 7)) nil] 7]] 3 "\300\301\302\303#\207" [put persp-point-marker compiler-macro #1#] 4] 4)
(defalias 'persp-point-marker #[(cl-x) "\302H	>\204 \303\304\305\306#\210\307H\207" [cl-x cl-struct-perspective-tags 0 error "%s accessing a non-%s" persp-point-marker perspective 7] 4])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:perspective-p--cmacro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block perspective-p (and (vectorp cl-x) (>= (length cl-x) 8) (memq (aref cl-x 0) cl-struct-perspective-tags) t)) nil] 7]] 3 "\300\301\302\303#\207" [put perspective-p compiler-macro #1#] 4] 4)
(defalias 'perspective-p #[(cl-x) "\302!\205 G\303Y\205 \304H	>\205 \305\207" [cl-x cl-struct-perspective-tags vectorp 8 0 t] 2])
(defalias 'copy-perspective #[(x) "\301!\207" [x copy-sequence] 2])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #2=#:make-persp-internal--cmacro #[(cl-whole &rest #1=#:--cl-rest--) "\306\307\"A@\306\310\"A@\306\311\"A@\306\312\"A@\306\313\"\206$ \314A@\306\315\"\206/ \316A@\306\317\"\206; \320A@\203r @\321>\203Y AA\211\202D \322>A@\203h \323\211\202D \324\325@\"\210\202B )\326\327\330\323\323	\n\f&\f.\207" [#1# name buffers killed local-variables buffer-history plist-member :name :buffers :killed :local-variables :buffer-history (nil buffer-name-history) :window-configuration (nil (current-window-configuration)) :point-marker (nil (point-marker)) (:name :buffers :killed :local-variables :buffer-history :window-configuration :point-marker :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:name :buffers :killed :local-variables :buffer-history :window-configuration :point-marker)" cl--defsubst-expand (name buffers killed local-variables buffer-history window-configuration point-marker) (cl-block make-persp-internal (vector 'cl-struct-perspective name buffers killed local-variables buffer-history window-configuration point-marker)) window-configuration point-marker #:--cl-keys-- cl-whole] 14 "\n\n(fn CL-WHOLE &cl-quote &key NAME BUFFERS KILLED LOCAL-VARIABLES BUFFER-HISTORY WINDOW-CONFIGURATION POINT-MARKER)"]] 3 "\300\301\302\303#\207" [put make-persp-internal compiler-macro #2#] 4] 4)
#@98 

(fn &key NAME BUFFERS KILLED LOCAL-VARIABLES BUFFER-HISTORY WINDOW-CONFIGURATION POINT-MARKER)
(defalias 'make-persp-internal #[(&rest #1=#:--cl-rest--) "\306\307\"A@\306\310\"A@\306\311\"A@\306\312\"A@\306\313\"\206& \314DA@\306\315\"\2065 \314\316 DA@\306\317\"\206D \314\320 DA@\203{ @\321>\203b AA\211\202M \322>A@\203q \314\211\202M \323\324@\"\210\202K )\325\326	\n\f&.\207" [#1# name buffers killed local-variables buffer-name-history plist-member :name :buffers :killed :local-variables :buffer-history nil :window-configuration current-window-configuration :point-marker point-marker (:name :buffers :killed :local-variables :buffer-history :window-configuration :point-marker :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:name :buffers :killed :local-variables :buffer-history :window-configuration :point-marker)" vector cl-struct-perspective buffer-history window-configuration #2=#:--cl-keys--] 10 (#$ . 10219)])
(byte-code "\301C\302\303\304\305#\210\302\303\306\307#\210\302\303\310\311#\210\302\303\312\313#\210\302\314\315\313#\210\302\316\315\317#\210\302\320\315\313#\210\302\321\315\313#\210\302\322\315\313#\210\302\323\315\313#\210\302\324\315\313#\210\302\325\315\313#\210\302\326\315\313#\210\327\330\324\331#\207" [cl-struct-perspective-tags cl-struct-perspective put perspective cl-struct-slots ((cl-tag-slot) (name) (buffers) (killed) (local-variables) (buffer-history buffer-name-history) (window-configuration (current-window-configuration)) (point-marker (point-marker))) cl-struct-type (vector nil) cl-struct-include nil cl-struct-print t copy-perspective side-effect-free perspective-p error-free persp-point-marker persp-window-configuration persp-buffer-history persp-local-variables persp-killed persp-buffers persp-name defalias persp-killed-p "Return whether the perspective CL-X has been killed."] 4)
#@82 The function which is used by perspective.el to interactivly complete user input
(defvar persp-interactive-completion-function (byte-code "\203 \301\207\302\207" [ido-mode ido-completing-read completing-read] 1) (#$ . 12141))
#@93 A hook that's run before `persp-switch'.
Run with the previous perspective as `persp-curr'.
(defvar persp-before-switch-hook nil (#$ . 12375))
#@97 A hook that's run after `persp-switch'.
Run with the newly created perspective as `persp-curr'.
(defvar persp-switch-hook nil (#$ . 12524))
#@58 A hook that's run after `persp-mode' has been activated.
(defvar persp-mode-hook nil (#$ . 12670))
#@113 A hook that's run after a perspective has been created.
Run with the newly created perspective as `persp-curr'.
(defvar persp-created-hook nil (#$ . 12776))
#@117 A hook that's run just before a perspective is destroyed.
Run with the perspective to be destroyed as `persp-curr'.
(defvar persp-killed-hook nil (#$ . 12940))
#@102 A hook that's run after a perspective has been activated.
Run with the activated perspective active.
(defvar persp-activated-hook nil (#$ . 13107))
#@30 Keymap for perspective-mode.
(defvar persp-mode-map (make-sparse-keymap) (#$ . 13261))
(byte-code "\303\302!\210\304	\302#\210\304\n\305\306#\210\304\n\307\310#\210\304\n\311\312#\210\304\n\313\314#\210\304\n\315\316#\210\304\n\317\320#\210\304\n\321\322#\210\304\n\323\324#\210\304\n\325\326#\210\304\n\327\326#\210\304\n\330\331#\210\304\n\332\331#\210\304\n	\333#\207" [persp-mode-map persp-mode-prefix-key perspective-map define-prefix-command define-key "s" persp-switch "k" persp-remove-buffer "c" persp-kill "r" persp-rename "a" persp-add-buffer "A" persp-set-buffer "b" persp-switch-to-buffer "i" persp-import "n" persp-next [right] "p" persp-prev [left] persp-switch-last] 4)
#@43 Set the prefix key to activate persp-mode
(defalias 'persp-mode-set-prefix-key #[(newkey) "\302\303\304#\210\305	\303#\207" [persp-mode-map newkey substitute-key-definition perspective-map nil define-key] 4 (#$ . 13953)])
(byte-code "\300\301\302!!\210\300\303\302!!\210\300\304\302!!\210\300\305\302!!\210\300\306\302!!\210\307\310\311\312#\207" [make-variable-frame-local (lambda (#1=#:def-tmp-var) (defvar perspectives-hash #1# "A hash containing all perspectives. The keys are the\nperspectives' names. The values are persp structs,\nwith the fields NAME, WINDOW-CONFIGURATION, BUFFERS,\nBUFFER-HISTORY, KILLED, POINT-MARKER, and LOCAL-VARIABLES.\n\nNAME is the name of the perspective.\n\nWINDOW-CONFIGURATION is the configuration given by\n`current-window-configuration' last time the perspective was\nsaved (if this isn't the current perspective, this is when the\nperspective was last active).\n\nBUFFERS is a list of buffer objects that are associated with this\nperspective.\n\nBUFFER-HISTORY is the list of buffer history values for this\nperspective.\n\nKILLED is non-nil if the perspective has been killed.\n\nPOINT-MARKER is the point position in the active buffer.\nOtherwise, when multiple windows are visiting the same buffer,\nall but one of their points will be overwritten.\n\nLOCAL-VARIABLES is an alist from variable names to their\nperspective-local values.")) nil (lambda (#1#) (defvar persp-curr #1# "The current perspective.")) (lambda (#1#) (defvar persp-recursive #1# "The current perspective before beginning a recursive edit.")) (lambda (#1#) (defvar persp-last #1# "The last perspective accessed before the current perspective.")) (lambda (#1#) (defvar persp-modestring #1# "The string displayed in the modeline representing the perspectives.")) put persp-modestring risky-local-variable t] 4)
#@107 Whether a perspective error should cause persp-mode to be disabled.
Dynamically bound by `persp-protect'.
(defvar persp-protected nil (#$ . 15787))
(custom-declare-face 'persp-selected-face '((t (:weight bold :foreground "Blue"))) "The face used to highlight the current perspective on the modeline.")
#@114 Wrap BODY to disable persp-mode when it errors out.
This prevents the persp-mode from completely breaking Emacs.
(defalias 'persp-protect '(macro . #[(&rest body) "\302\303\304\305	)B\306BBB\207" [persp-protected body t condition-case err progn ((persp-error (message "Fatal persp-mode error: %S" err) (persp-mode -1)))] 4 (#$ . 16096)]))
(put 'persp-protect 'lisp-indent-function 0)
#@139 Like `error', but marks it as a persp-specific error.
Used along with `persp-protect' to ensure that persp-mode doesn't
bring down Emacs.
(defalias 'persp-error #[(&rest args) "\203 \302\303\304\305	\"C\"\207\304\306	\"\207" [persp-protected args signal persp-error apply format error] 5 (#$ . 16488)])
#@42 Raise an error if PERSP has been killed.
(defalias 'check-persp #[(persp) "\204 \302\303!\207\304!\205\" \302\305\306H	>\204 \307\310\311\312#\210\313H\"\207" [persp cl-struct-perspective-tags persp-error "Expected perspective, was nil" persp-killed-p "Using killed perspective `%s'" 0 error "%s accessing a non-%s" persp-name perspective 1] 6 (#$ . 16799)])
#@285 Create a new perspective struct and put it in `perspectives-hash'.

ARGS is a list of keyword arguments followed by an optional BODY.
The keyword arguments set the fields of the perspective struct.
If BODY is given, it is executed to set the window configuration
for the perspective.
(defalias 'make-persp '(macro . #[(&rest args) "\304\305	@!\203& \306\307\nW\203\" 	\211A\242B\nT\211\202 *\202 \310!\311\312\313BDC\314\315\316\317	\205< \320	B)\321BBB\322BBBBB\207" [keywords args _ --dotimes-limit-- nil keywordp 2 0 reverse let persp make-persp-internal (when persp-curr (setf (persp-local-variables persp) (persp-local-variables persp-curr))) (puthash (persp-name persp) persp perspectives-hash) with-perspective (persp-name persp) save-excursion ((run-hooks 'persp-created-hook)) (persp)] 9 (#$ . 17171)]))
(put 'make-persp 'lisp-indent-function 'defun)
#@137 Save the current perspective state.
Specifically, save the current window configuration and
perspective-local variables to `persp-curr'
(defalias 'persp-save #[nil "\205q \306H	>\204 \307\310\311\312#\210\211\313\314\315\306H	>\204& \307\310\311\312#\210\313H\"I\210)\306H	>\204; \307\310\316\312#\210\211\317\fI\210)\306H	>\204Q \307\310\320\312#\210\211\321\322 I\210)\306H	>\204h \307\310\323\312#\210\211\324\325 I)\207" [persp-curr cl-struct-perspective-tags #1=#:v #2=#:v buffer-name-history #3=#:v 0 error "%s accessing a non-%s" persp-local-variables perspective 4 mapcar #[(c) "@\211\211J)D\207" [c name] 3] persp-buffer-history 5 persp-window-configuration 6 current-window-configuration persp-point-marker 7 point-marker #4=#:v] 9 (#$ . 18051)])
#@72 Return a list of the names of all perspectives, sorted alphabetically.
(defalias 'persp-names #[nil "\302\303\304\305	\"\210\237)\306\"\207" [#1=#:--cl-var-- perspectives-hash sort nil maphash #[(name #2=#:--cl-var--) "	B\211\207" [name #1#] 2] string<] 4 (#$ . 18833)])
#@86 Return a list of the perspective names for all frames.
Excludes NOT-FRAME, if given.
(defalias 'persp-all-names #[(&optional not-frame) "\300\301\302\303\304 \"\"\207" [cl-reduce union mapcar #[(frame) "	\232?\205 \304 p\305\216\306\307\"\210\310 +\207" [frame not-frame #1=#:old-buffer #2=#:old-frame selected-frame ((byte-code "\302!\203 \303\304\"\210\305	!\203 	q\210\302\207" [#2# #1# frame-live-p select-frame norecord buffer-live-p] 3)) select-frame norecord persp-names] 3] frame-list] 5 (#$ . 19114)])
#@148 Prompt for the name of a perspective.

DEFAULT is a default value for the prompt.

REQUIRE-MATCH can take the same values as in `completing-read'.
(defalias 'persp-prompt #[(&optional default require-match) "\303	\203 \304	\305Q\202 \306\307Q\310 \311\n\311\211	&\207" [persp-interactive-completion-function default require-match "Perspective name" " (default " ")" "" ": " persp-names nil] 8 (#$ . 19641)])
#@64 Switch to the perspective given by NAME while evaluating BODY.
(defalias 'with-perspective '(macro . #[(name &rest body) "\303 \304\305\306B\307B\310\304\311	D\nBB\312\311DEE)\313BBBD\207" [old name body cl-gensym progn let ((when persp-curr (persp-name persp-curr))) ((last-persp-cache persp-last)) unwind-protect persp-switch when ((setq persp-last last-persp-cache))] 9 (#$ . 20059)]))
(put 'with-perspective 'lisp-indent-function 1)
#@141 Return a new perspective with name NAME.
The new perspective will start with only an `initial-major-mode'
buffer called "*scratch* (NAME)".
(defalias 'persp-new #[(name) "\306\307\"\n\203/ 	\310H>\204 \311\312\313\314#\210	\211\315\n\310H>\204) \311\312\313\314#\210\n\315HI\210)\316	\310H>\204> \311\312\317\314#\210	\320H	#\210\n\205Z \n\310H>\204W \311\312\317\314#\210\n\320H\321\216\322	\310H>\204q \311\312\317\314#\210	\320H!\210\212\323\324\325Q!\210 \210\326 \210)\327\330!\210)*	)\207" [name persp persp-curr cl-struct-perspective-tags #1=#:v perspectives-hash make-persp-internal :name 0 error "%s accessing a non-%s" persp-local-variables perspective 4 puthash persp-name 1 ((byte-code "\203 \301!\210\301\207" [#2=#:G45701 persp-switch] 2)) persp-switch switch-to-buffer "*scratch* (" ")" delete-other-windows run-hooks persp-created-hook persp-last last-persp-cache #2# initial-major-mode] 7 (#$ . 20507)])
#@141 Raise BUFFERS to the top of the most-recently-selected list.
Returns BUFFERS with all non-living buffers removed.

See also `other-buffer'.
(defalias 'persp-reactivate-buffers #[(buffers) "\304!\305\211	:\203& 	@\306\n!\203 \nC\244\307\n!\210	A\211\202	 \304!+\207" [buffers #1=#:--cl-var-- buf living-buffers reverse nil buffer-name switch-to-buffer] 3 (#$ . 21461)])
#@93 Set the local variables given in VARS.
VARS should be an alist of variable names to values.
(defalias 'persp-set-local-variables #[(vars) "\303\211\205 \n@\304\305	\"\210\nA\211\204 \303*\207" [vars var --dolist-tail-- nil apply set] 4 (#$ . 21846)])
#@200 Intersperse a value into a list.
Return a new list made from taking LIST and inserting
INTERSPERSED-VAL between every pair of items.

For example, (persp-intersperse '(1 2 3) 'a) gives '(1 a 2 a 3).
(defalias 'persp-intersperse #[(list interspersed-val) "\301\302\303\304\305$!\207" [list reverse cl-reduce #[(list el) "\203\n 	\nBB\207	C\207" [list el interspersed-val] 3] :initial-value nil] 6 (#$ . 22111)])
(defconst persp-mode-line-map (byte-code "\301 \302\303\304#\210)\207" [map make-sparse-keymap define-key [mode-line down-mouse-1] persp-mode-line-click] 4))
#@89 Select the clicked perspective.
EVENT is the click event triggering this function call.
(defalias 'persp-mode-line-click #[(event) "\301\302\303\304\305!!@\"!\207" [event persp-switch format "%s" posn-string event-start] 6 (#$ . 22692) "e"])
#@115 Update `persp-modestring' to reflect the current perspectives.
Has no effect when `persp-show-modestring' is nil.
(defalias 'persp-update-modestring #[nil "\205  	@C	A@C\306	8\307\f\310\311\312\313 \"\n\"#\211+\207" [persp-show-modestring persp-modestring-dividers sep close open persp-modestring 2 append persp-intersperse mapcar persp-format-name persp-names] 6 (#$ . 22942)])
#@78 Format the perspective name given by NAME for display in `persp-modestring'.
(defalias 'persp-format-name #[(name) "\305\306\"\n\307H>\204 \310\311\312\313#\210\n\314H\232\203# \315	\316\317#\202* \315	\320\f\321\322%)\207" [name string-name persp-curr cl-struct-perspective-tags persp-mode-line-map format "%s" 0 error "%s accessing a non-%s" persp-name perspective 1 propertize face persp-selected-face local-map mouse-face mode-line-highlight] 6 (#$ . 23333)])
#@276 Return the name of the first perspective that begins with CHAR.
Perspectives are sorted alphabetically.

PREV can be the name of a perspective.  If it's passed,
this will try to return the perspective alphabetically after PREV.
This is used for cycling between perspectives.
(defalias 'persp-get-quick #[(char &optional prev) "\302	\303 #\207" [char prev persp-get-quick-helper persp-names] 4 (#$ . 23809)])
(defalias 'persp-get-quick-helper #[(char prev names) "\205E @\n\204 \304	!=\203 	\202D 	\n\232\203> A\2038 \304\211A@\262!=\2038 \211A@\262\202D \305!\202D \306\nA#)\207" [names name prev char string-to-char persp-get-quick persp-get-quick-helper] 4])
#@60 Switch to the perspective accessed before the current one.
(defalias 'persp-switch-last #[nil "\204 \302\303!\210\304\305H	>\204 \302\306\307\310#\210\311H!\207" [persp-last cl-struct-perspective-tags error "There is no last perspective" persp-switch 0 "%s accessing a non-%s" persp-name perspective 1] 5 (#$ . 24492) nil])
#@341 Switch to the perspective given by NAME.
If it doesn't exist, create a new perspective and switch to that.

Switching to a perspective means that all buffers associated with
that perspective are reactivated (see `persp-reactivate-buffers'),
the perspective's window configuration is restored, and the
perspective's local variables are set.
(defalias 'persp-switch #[(name) "\204 \306	\205 	\307H\n>\204 \310\311\312\313#\210	\314H!\203; \307H\n>\204/ \310\311\312\313#\210\314H\232\203; \210\202U \315\f\"\204J \316!\317\320!\210\321!\210\210)\317\322!\207" [name persp-last cl-struct-perspective-tags persp-curr perspectives-hash persp persp-prompt 0 error "%s accessing a non-%s" persp-name perspective 1 gethash persp-new run-hooks persp-before-switch-hook persp-activate persp-switch-hook] 5 (#$ . 24828) "i"])
#@59 Activate the perspective given by the persp struct PERSP.
(defalias 'persp-activate #[(persp) "\304!\210\305 \210\306\307H\n>\204 \310\311\312\313#\210\314H!\210\315\307H\n>\204, \310\311\316\313#\210\317H!\210\307H\n>\204? \310\311\320\313#\210\321H\322\307H\n>\204R \310\311\323\313#\210\324H!\210\307H\n>\204e \310\311\325\313#\210\326Hb\210\327 \210\330\331!\207" [persp persp-curr cl-struct-perspective-tags buffer-name-history check-persp persp-save persp-set-local-variables 0 error "%s accessing a non-%s" persp-local-variables perspective 4 persp-reactivate-buffers persp-buffers 2 persp-buffer-history 5 set-window-configuration persp-window-configuration 6 persp-point-marker 7 persp-update-modestring run-hooks persp-activated-hook] 5 (#$ . 25668)])
#@192 Switch to the first perspective, alphabetically, that begins with CHAR.

Sets `this-command' (and thus `last-command') to (persp-switch-quick . CHAR).

See `persp-switch', `persp-get-quick'.
(defalias 'persp-switch-quick #[(char) ":\203 @	=\203 \304\nA\"\202 \304\n!	B\203& \305!\202- \306\307\310\n!P!)\207" [last-command this-command char persp persp-get-quick persp-switch persp-error "No perspective name begins with " string] 4 (#$ . 26452) "c"])
#@44 Switch to next perspective (to the right).
(defalias 'persp-next #[nil "\305 \306	\307H\n>\204 \310\311\312\313#\210	\314H\"\211\204! \315 \202: GSU\2034 \f\205: \316@!\202: \316T8!*\207" [names persp-curr cl-struct-perspective-tags pos persp-switch-wrap persp-names cl-position 0 error "%s accessing a non-%s" persp-name perspective 1 persp-find-some persp-switch] 6 (#$ . 26921) nil])
#@47 Switch to previous perspective (to the left).
(defalias 'persp-prev #[nil "\305 \306	\307H\n>\204 \310\311\312\313#\210	\314H\"\211\204! \315 \202; \307U\2035 \f\205; \316GS8!\202; \316S8!*\207" [names persp-curr cl-struct-perspective-tags pos persp-switch-wrap persp-names cl-position 0 error "%s accessing a non-%s" persp-name perspective 1 persp-find-some persp-switch] 6 (#$ . 27323) nil])
#@367 Return the name of a valid perspective.

This function tries to return the "most appropriate"
perspective to switch to.  It tries:

  * The perspective given by `persp-last'.
  * The main perspective.
  * The first existing perspective, alphabetically.

If none of these perspectives can be found, this function will
create a new main perspective and return "main".
(defalias 'persp-find-some #[nil "\203 \306H	>\204 \307\310\311\312#\210\313H\207\314\n\"\203 \n\207\315!\306V\203+ \316 @\207\317\320\321\n\322\323 \324\325 \326\327 &\203f \f\306H	>\204M \307\310\330\312#\210\f\211\331\306H	>\204` \307\310\330\312#\210\331HI\210)\332\f\306H	>\204u \307\310\311\312#\210\f\313H\f#\210\205\221 \306H	>\204\216 \307\310\311\312#\210\313H !\333\216\334\f\306H	>\204\247 \307\310\311\312#\210\f\313H!\210\335\336!\210) *\f)!\210\n\207" [persp-last cl-struct-perspective-tags persp-initial-frame-name perspectives-hash persp persp-curr 0 error "%s accessing a non-%s" persp-name perspective 1 gethash hash-table-count persp-names persp-activate make-persp-internal :name :buffers buffer-list :window-configuration current-window-configuration :point-marker point-marker persp-local-variables 4 puthash ((byte-code "\203 \301!\210\301\207" [#1=#:G45702 persp-switch] 2)) persp-switch run-hooks persp-created-hook #2=#:v last-persp-cache #1#] 11 (#$ . 27733)])
#@100 Associate BUFFER with the current perspective.

See also `persp-switch' and `persp-remove-buffer'.
(defalias 'persp-add-buffer #[(buffer) "\304!\211	\305H\n>\204 \306\307\310\311#\210	\312H>?\2054 	\305H\n>\204) \306\307\310\311#\210	\211\312\312HBI))\207" [buffer persp-curr cl-struct-perspective-tags #1=#:v get-buffer 0 error "%s accessing a non-%s" persp-buffers perspective 2] 6 (#$ . 29122) (list (let ((read-buffer-function nil)) (read-buffer "Add buffer to perspective: ")))])
#@82 Associate BUFFER-NAME with the current perspective and remove it from any other.
(defalias 'persp-set-buffer #[(buffer-name) "\306!\203D \307!\210\310\311\306!!\211\203A \n\205+ \n\312H>\204( \313\314\315\316#\210\n\317H\f\320\216\321	A!\210\322!\210)*\202\f )\310\207\323\324\"\207" [buffer-name other-persp persp-curr cl-struct-perspective-tags persp-last last-persp-cache get-buffer persp-add-buffer nil persp-buffer-in-other-p 0 error "%s accessing a non-%s" persp-name perspective 1 ((byte-code "\203 \301!\210\301\207" [#1=#:G45703 persp-switch] 2)) persp-switch persp-remove-buffer message "buffer %s doesn't exist" #1#] 5 (#$ . 29619) (list (let ((read-buffer-function nil)) (read-buffer "Set buffer to perspective: ")))])
#@202 Returns nil if BUFFER is only in the current perspective.
Otherwise, returns (FRAME . NAME), the frame and name of another
perspective that has the buffer.

Prefers perspectives in the selected frame.
(defalias 'persp-buffer-in-other-p #[(buffer) "\300\301\215\207" [--cl-block-persp-buffer-in-other-p-- (byte-code "\305\306 \307\"\310:\203) @\311\312\313 p\314\216\315	\316\"\210\f+\"\210A\211\202	 *\310\207" [#1=#:--cl-var-- frame #2=#:old-buffer #3=#:old-frame perspectives-hash sort frame-list #[(frame1 frame2) "\301 =\207" [frame2 selected-frame] 2] nil maphash #[(#4=#:--cl-var-- persp) "\305 \232\205* 	\306H\n>\204 \307\310\311\312#\210	\313H\306H\n>\204& \307\310\311\312#\210\313H\232?\205Z \f	\306H\n>\204= \307\310\314\312#\210	\315H>\205Z \316\317	\306H\n>\204U \307\310\311\312#\210	\313HB\"\207" [frame persp cl-struct-perspective-tags persp-curr buffer selected-frame 0 error "%s accessing a non-%s" persp-name perspective 1 persp-buffers 2 throw --cl-block-persp-buffer-in-other-p--] 7] selected-frame ((byte-code "\302!\203 \303\304\"\210\305	!\203 	q\210\302\207" [#3# #2# frame-live-p select-frame norecord buffer-live-p] 3)) select-frame norecord] 6)] 2 (#$ . 30373)])
#@76 Like `switch-to-buffer', but switches to another perspective if necessary.
(defalias 'persp-switch-to-buffer #[(buffer-or-name) "\305!\211\n\306H>\204 \307\310\311\312#\210\n\313H>\203  \314	!\2025 \315	!\211\242\316 =\2031 \317\fA!\210\314	!))\207" [buffer-or-name buffer persp-curr cl-struct-perspective-tags other-persp window-normalize-buffer-to-switch-to 0 error "%s accessing a non-%s" persp-buffers perspective 2 switch-to-buffer persp-buffer-in-other-p selected-frame persp-switch] 6 (#$ . 31590) (list (let ((read-buffer-function nil)) (read-buffer-to-switch "Switch to buffer: ")))])
#@100 Disassociate BUFFER with the current perspective.

See also `persp-switch' and `persp-add-buffer'.
(defalias 'persp-remove-buffer #[(buffer) "\304!\305!\203' \306!\204 \307!\210\202' p=\203# \310 \210\202' \310!\210	\311H\n>\2045 \312\313\314\315#\210	\211\316\317	\311H\n>\204I \312\313\314\315#\210	\316H\"I)\207" [buffer persp-curr cl-struct-perspective-tags #1=#:v get-buffer buffer-live-p persp-buffer-in-other-p kill-buffer bury-buffer 0 error "%s accessing a non-%s" persp-buffers perspective 2 remq] 9 (#$ . 32196) "bRemove buffer from perspective: \n"])
#@142 Kill the perspective given by NAME.

Killing a perspective means that all buffers associated with that
perspective and no others are killed.
(defalias 'persp-kill #[(name) "\204 \306	\307H\n>\204 \310\311\312\313#\210	\314H\315\"	\205. 	\307H\n>\204+ \310\311\312\313#\210	\314H\316\216\317!\210\320\321!\210\322\323	\307H\n>\204K \310\311\324\313#\210	\325H\"\210	\307H\n>\204^ \310\311\326\313#\210	\211\327\315I\210*\f*\330\"\210\331 \210\307H\n>\204\202 \310\311\312\313#\210\314H\232\203\213 \332	\307H\n>\204\232 \310\311\312\313#\210	\314H\232\205\267 \333\303!\205\250 \333\303!B \334\216\317\335 !*\207" [name persp-curr cl-struct-perspective-tags persp-last last-persp-cache #1=#:G45704 persp-prompt 0 error "%s accessing a non-%s" persp-name perspective 1 t ((byte-code "\203 \301!\210\301\207" [#1# persp-switch] 2)) persp-switch run-hooks persp-killed-hook mapc persp-remove-buffer persp-buffers 2 persp-killed 3 remhash persp-update-modestring nil boundp ((byte-code "A\203 @\202 \302\301!\210\302\207" [#2=#:G45705 persp-last makunbound] 2)) persp-find-some #3=#:v perspectives-hash #2#] 7 (#$ . 32776) "i"])
#@41 Rename the current perspective to NAME.
(defalias 'persp-rename #[(name) "\305	\"\203\f \306\307\"\207\310\n\311H>\204 \312\313\314\315#\210\n\316H	\"\210\317\n	#\210\n\311H>\2045 \312\313\314\315#\210\n\211\316I\210)\320 \207" [name perspectives-hash persp-curr cl-struct-perspective-tags #1=#:v gethash persp-error "Perspective `%s' already exists" remhash 0 error "%s accessing a non-%s" persp-name perspective 1 puthash persp-update-modestring] 6 (#$ . 33937) "sNew name: "])
#@186 Returns the list of buffers for a perspective named NAME from any
frame other than NOT-FRAME.

This doesn't return the window configuration because those can't be
copied across frames.
(defalias 'persp-all-get #[(name not-frame) "\300\301\215\207" [--cl-block-persp-all-get-- (byte-code "\306 \307\211\205J 	@\211\n\232\204B \310 p\311\216\312\313\"\210\314\"\211\203A \315\316\317H>\204; \320\321\322\323#\210\324H\"\210,	A\211\204	 \307*\207" [frame --dolist-tail-- not-frame #1=#:old-buffer #2=#:old-frame name frame-list nil selected-frame ((byte-code "\302!\203 \303\304\"\210\305	!\203 	q\210\302\207" [#2# #1# frame-live-p select-frame norecord buffer-live-p] 3)) select-frame norecord gethash throw --cl-block-persp-all-get-- 0 error "%s accessing a non-%s" persp-buffers perspective 2 perspectives-hash persp cl-struct-perspective-tags] 7)] 2 (#$ . 34432)])
#@249 A replacement for the built-in `read-buffer'.
Meant to be used with `read-buffer-function'. Return the name of
the buffer selected, only selecting from buffers within the
current perspective.

With a prefix arg, uses the old `read-buffer' instead.
(defalias 'persp-read-buffer #[(prompt &optional def require-match) "\300\301\302\217\207" [err (byte-code "\306	\203 \307\n\f#\202$ \310 \306\311\312\216\313\314\315#\210\307\n\f#+)\207" [read-buffer-function current-prefix-arg prompt def require-match persp-read-buffer-hook nil read-buffer persp-complete-buffer #[nil "\303\304\"\210	\211\207" [persp-read-buffer-hook rb-completion-table minibuffer-completion-table remove-hook minibuffer-setup-hook] 3] ((byte-code "\301\302\"\207" [persp-read-buffer-hook remove-hook minibuffer-setup-hook] 3)) add-hook minibuffer-setup-hook t rb-completion-table] 4) ((persp-error (byte-code "\301\302\"\210\303\304!\207" [err message "Fatal persp-mode error: %S" persp-mode -1] 3)))] 3 (#$ . 35328)])
#@67 Perform completion on all buffers within the current perspective.
(defalias 'persp-complete-buffer #[nil "\305\306!\211\211\307\310\n\311H>\204 \312\313\314\315#\210\n\316H\"L\210)\317\320\f\206% \321\322\323\324\325\326D\325D\327FE\330$)\207" [#1=#:--cl-persp-names-- #2=#:v persp-curr cl-struct-perspective-tags minibuffer-completion-table make-symbol "--persp-names--" mapcar buffer-name 0 error "%s accessing a non-%s" persp-buffers perspective 2 apply-partially completion-table-with-predicate internal-complete-buffer lambda (&rest --cl-rest--) apply quote #[(#3=#:G45706 name) ":\203\n @\202 	J\235\207" [name #3#] 2] --cl-rest-- nil] 10 (#$ . 36336)])
#@137 Import a perspective named NAME from another frame.  If DONT-SWITCH
is non-nil or with prefix arg, don't switch to the new perspective.
(defalias 'persp-import #[(name &optional dont-switch) "\300\301\215\207" [--cl-block-persp-import-- (byte-code "\204 	\306\307\310 !\311\312$\313\n\"\203# \314\315\316Q!\204# \317\320\311\"\210\321\310 \"\311\211\2044 \322\323\"\210\324\325\326\f$\203h \327H)>\204N \330\331\332\333#\210\211*\334\327H)>\204b \330\331\332\333#\210\334HI\210)\335\327H)>\204x \330\331\336\333#\210\337H\n#\210\205\225 \327H)>\204\222 \330\331\336\333#\210\337H+,-\340\216\341\327H)>\204\255 \330\331\336\333#\210\337H!\210\212\342\f.\311/\3120\3111.:\203\352 .@/\343/!\203\335 /1\311\2110\202\336 \312\203\352 .A\211.\202\302 1,!\210\344 \210)\345\346!\210),+*)2\203\n\347 \202\350!*\207" [name persp-interactive-completion-function perspectives-hash persp buffers persp-curr "Import perspective: " persp-all-names selected-frame nil t gethash yes-or-no-p "Perspective `" "' already exits. Continue? " throw --cl-block-persp-import-- persp-all-get persp-error "Perspective `%s' doesn't exist in another frame" make-persp-internal :name :buffers 0 error "%s accessing a non-%s" persp-local-variables perspective 4 puthash persp-name 1 ((byte-code "\203 \301!\210\301\207" [#1=#:G45707 persp-switch] 2)) persp-switch switch-to-buffer buffer-live-p delete-other-windows run-hooks persp-created-hook persp-update-modestring persp-activate cl-struct-perspective-tags #2=#:v persp-last last-persp-cache #1# #3=#:--cl-var-- buffer #4=#:--cl-var-- #5=#:--cl-var-- dont-switch] 7)] 2 (#$ . 37012) "i\nP"])
(byte-code "\300\301\302\303\304$\210\300\305\306\303\304$\210\300\307\310\303\304$\210\300\311\312\313\304$\210\300\314\315\313\304$\210\300\316\317\320\304$\210\321\322\304\323\324\325\326\327\330\331\332\333&\207" [ad-add-advice switch-to-buffer (persp-add-buffer-adv nil t (advice lambda nil "Add BUFFER to the current perspective.\n\nSee also `persp-add-buffer'." (persp-protect (let ((buf (ad-get-arg 0))) (when buf (persp-add-buffer buf)))))) after nil display-buffer (persp-add-buffer-adv nil t (advice lambda nil "Add BUFFER to the perspective for the frame on which it's displayed.\n\nSee also `persp-add-buffer'." (persp-protect (when ad-return-value (let ((buf (ad-get-arg 0)) (frame (window-frame ad-return-value))) (when (and buf frame) (with-selected-frame frame (persp-add-buffer buf)))))))) set-window-buffer (persp-add-buffer-adv nil t (advice lambda nil "Add BUFFER to the perspective for window's frame.\n\nSee also `persp-add-buffer'." (persp-protect (let ((buf (ad-get-arg 1)) (frame (window-frame (ad-get-arg 0)))) (when (and buf frame) (with-selected-frame frame (persp-add-buffer buf))))))) switch-to-prev-buffer (persp-ensure-buffer-in-persp nil t (advice lambda nil "Ensure that the selected buffer is in WINDOW's perspective." (let* ((window (window-normalize-window window t)) (frame (window-frame window)) (old-buffer (window-buffer window))) ad-do-it (let ((buffer (window-buffer window))) (with-selected-frame frame (unless (memq buffer (persp-buffers persp-curr)) (let ((name (concat "*scratch* (" (persp-name persp-curr) ")"))) (when (and bury-or-kill (equal name (buffer-name old-buffer))) (setq name (concat "*scratch*  (" (persp-name persp-curr) ")"))) (with-selected-window window (switch-to-buffer name) (funcall initial-major-mode))))))))) around recursive-edit (persp-preserve-for-recursive-edit nil t (advice lambda nil "Preserve the current perspective when entering a recursive edit." (persp-protect (persp-save) (persp-frame-local-let ((persp-recursive persp-curr)) (let ((old-hash (copy-hash-table perspectives-hash))) ad-do-it (maphash (lambda (key new-persp) (let ((persp (gethash key old-hash))) (when persp (setf (persp-buffers persp) (persp-buffers new-persp))))) perspectives-hash) (setq perspectives-hash old-hash)))))) exit-recursive-edit (persp-restore-after-recursive-edit nil t (advice lambda nil "Restore the old perspective when exiting a recursive edit." (persp-protect (if persp-recursive (persp-switch (persp-name persp-recursive)))))) before custom-declare-variable persp-mode "Non-nil if Persp mode is enabled.\nSee the command `persp-mode' for 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 `persp-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :group persp :type boolean] 12)
#@135 Toggle perspective mode.
When active, keeps track of multiple 'perspectives',
named collections of buffers and window configurations.
(defalias 'persp-mode #[(&optional arg) "\306 	\307=\203 \n?\202 \310	!\311V\211\203  \312\313\314\217\210\2027 \315\316!\210\317\320\321\"\210\317\322\323\"\210\324\211\325\326\"\327\330\n\203A \331\202B \332\"\210\333\334!\203g \335\302!\210\306 \203Z \306 \232\203g \336\337\n\203d \340\202e \341\"\210)\342 \210\n\207" [#1=#:last-message arg persp-mode read-buffer-function perspectives-hash global-mode-string current-message toggle prefix-numeric-value 0 err (byte-code "\304\305!\210\304\306!\210\304\307!\210\304\310!\210\304\311!\210\304\312!\210\313\314\315\"\210\313\316\317\"\210\320\321\315\322 \"\210	\323H\n>\2048 \324\325\326\327#\210	\211\330\331 I\210)\332\333!\207" [read-buffer-function persp-curr cl-struct-perspective-tags #2=#:v ad-activate switch-to-buffer display-buffer set-window-buffer switch-to-prev-buffer recursive-edit exit-recursive-edit add-hook after-make-frame-functions persp-init-frame ido-make-buffer-list-hook persp-set-ido-buffers persp-read-buffer mapc frame-list 0 error "%s accessing a non-%s" persp-buffers perspective 2 buffer-list run-hooks persp-mode-hook] 5) ((persp-error (byte-code "\301\302\"\210\303\304!\207" [err message "Fatal persp-mode error: %S" persp-mode -1] 3))) ad-deactivate-regexp "^persp-.*" remove-hook after-make-frame-functions persp-init-frame ido-make-buffer-list-hook persp-set-ido-buffers nil delq persp-modestring run-hooks persp-mode-hook persp-mode-on-hook persp-mode-off-hook called-interactively-p any customize-mark-as-set message "Persp mode %sabled" "en" "dis" force-mode-line-update] 4 (#$ . 41588) (list (or current-prefix-arg 'toggle))])
#@175 Hook run after entering or leaving `persp-mode'.
No problems result if this variable is not bound.
`add-hook' automatically binds it.  (This is true for all hook variables.)
(defvar persp-mode-hook nil (#$ . 43363))
(byte-code "\301\302\303\303\211%\207" [persp-mode-map add-minor-mode persp-mode nil] 6)
#@87 Initialize the perspectives system in FRAME.
By default, this uses the current frame.
(defalias 'persp-init-frame #[(frame) "\306 p\307\216\310\n\311\"\210\312\n\313\"\210\314\315\316\317\320$\f\203U \f\321=\203< \322\323!\206) \324\325>\2048 \326\323\327\330\"\"\210)\202R 1\206B \3311\3251>\204R \3271\332\"1\333 \210\334\335\3362\337pC\340\341 \342\343 &34\203\231 3\344H5>\204| \345\346\347\350#\2103\2116\3514\344H5>\204\222 \345\346\347\350#\2104\351HI\210)\3523\344H5>\204\252 \345\346\353\350#\2103\354H3#\2104\205\314 4\344H5>\204\310 \345\346\353\350#\2104\354H789\355\216\3563\344H5>\204\345 \345\346\353\350#\2103\354H!\210\357\360!\210)87*3)!+\207" [#1=#:old-buffer #2=#:old-frame frame perspectives-hash persp-show-modestring val selected-frame ((byte-code "\302!\203 \303\304\"\210\305	!\203 	q\210\302\207" [#2# #1# frame-live-p select-frame norecord buffer-live-p] 3)) select-frame norecord modify-frame-parameters ((perspectives-hash) (persp-curr) (persp-last) (persp-recursive) (persp-modestring)) make-hash-table :test equal :size 10 header default-value header-line-format (#3="") persp-modestring set-default append (persp-modestring) (#3#) (persp-modestring) persp-update-modestring persp-activate make-persp-internal :name :buffers :window-configuration current-window-configuration :point-marker point-marker 0 error "%s accessing a non-%s" persp-local-variables perspective 4 puthash persp-name 1 ((byte-code "\203 \301!\210\301\207" [#4=#:G45708 persp-switch] 2)) persp-switch run-hooks persp-created-hook global-mode-string persp-initial-frame-name persp persp-curr cl-struct-perspective-tags #5=#:v persp-last last-persp-cache #4#] 11 (#$ . 43675)])
#@288 Make VARIABLE become perspective-local.
This means that whenever a new perspective is switched into, the
variable will take on its local value for that perspective.  When
a new perspective is created, the variable will inherit its value
from the current perspective at time of creation.
(defalias 'persp-make-variable-persp-local #[(variable) "	\306H\n>\204 \307\310\311\312#\210	\313H\236?\205F \211JD\314 \315\211\205E @\316\317\320 p\321\216\322\f\323\"\210+\"\210A\211\204% \315+\207" [variable persp-curr cl-struct-perspective-tags entry frame --dolist-tail-- 0 error #3="%s accessing a non-%s" persp-local-variables perspective 4 frame-list nil maphash #[(#1=#:--cl-var-- persp) "\304H	>\204 \305\306\307\310#\210\211\311\n\311HBI)\207" [persp cl-struct-perspective-tags #2=#:v entry 0 error #3# persp-local-variables perspective 4] 6] selected-frame ((byte-code "\302!\203 \303\304\"\210\305	!\203 	q\210\302\207" [#4=#:old-frame #5=#:old-buffer frame-live-p select-frame norecord buffer-live-p] 3)) select-frame norecord #5# #4# perspectives-hash] 6 (#$ . 45408)])
#@199 Add code that should be run to set up the perspective named NAME.
Whenever a new perspective named NAME is created, runs BODY in
it. In addition, if one exists already, runs BODY in it immediately.
(defalias 'persp-setup-for '(macro . #[(name &rest body) "\302\303\304\305\306\307\310\311E	BBE\312BBB\307\313\314BB\315	BBEE\207" [name body progn add-hook 'persp-created-hook lambda nil when string= (persp-name persp-curr) ('append) gethash (perspectives-hash) with-perspective] 9 (#$ . 46513)]))
(put 'persp-setup-for 'lisp-indent-function 1)
#@53 Restrict the ido buffer to the current perspective.
(defalias 'persp-set-ido-buffers #[nil "\306\307\310\311\312H	>\204 \313\314\315\316#\210\317H\"\"\320\321\322\"\f\307\312:\203C @\323\324!\n#\210AT\202% +\fG\325\326\")\211*\207" [persp-curr cl-struct-perspective-tags indices persp-names ido-temp-list #1=#:--cl-var-- remq nil mapcar buffer-name 0 error "%s accessing a non-%s" persp-buffers perspective 2 make-hash-table :test equal puthash copy-sequence sort #[(a b) "\304\305!	\n#\304\305!	\n#W\207" [a indices length b gethash copy-sequence] 5] elt i length] 8 (#$ . 47066)])
#@162 Bind quick key commands to switch to perspectives.
All C-S-letter key combinations are bound to switch to the first
perspective beginning with the given letter.
(defalias 'quick-perspective-keys #[nil "\302\211\303X\203! \304	\305\306\307!P!\310\311\312\313DF#\210T\211\202 )\311\207" [c persp-mode-map 97 122 define-key read-kbd-macro "C-S-" string lambda nil (interactive) persp-switch-quick] 9 (#$ . 47686)])
#@40 Deactivate the perspective modestring.
(defalias 'persp-turn-off-modestring #[nil "\302\211\211\207" [persp-modestring persp-show-modestring nil] 3 (#$ . 48110) nil])
#@38 Activate the perspective modestring.
(defalias 'persp-turn-on-modestring #[nil "\301\302 \207" [persp-show-modestring t persp-update-modestring] 1 (#$ . 48285) nil])
(provide 'perspective)
