;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.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@22 Version of revive.el
(defconst revive:version "$Id: revive.el,v 2.23 2015/03/20 04:03:45 yuuji Exp $" (#$ . 410))
(defconst revive:version-prefix ";;;")
(defvar revive:emacs-19 (byte-code "\301\302\303O\231\207" [emacs-version "18" 0 2] 4))
(defvar revive:xemacs-p nil)
#@27 Borrowed from tapestry.el
(defalias 'revive:window-edges #[(&optional window) "\304\305!\203B \203B \305	!\306\211\211\211@\307\310!\245\240\210\nA\211\211@\311\310!\245\240\210\nA\211\211@\307\310!\245\240\210\nA\211\211@\311\310!\245\240\210*\207\312	!\207" [revive:xemacs-p window tmp edges fboundp window-pixel-edges nil face-width default face-height window-edges] 5 (#$ . 687)])
(byte-code "\300\301!\203 \302\301M\210\303\304M\210\202& \300\305!\203\" \302\305M\210\303\306M\210\202& \307\310!\210\300\207" [fboundp screen-height revive:screen-height revive:screen-width screen-width frame-height frame-width error "I don't know how to run revive.el on this Emacs..."] 2)
(defalias 'revive:minx #[nil "\300\207" [0] 1])
(defalias 'revive:miny #[nil "\203\f \301\302\303!!A@\207\304\207" [revive:emacs-19 revive:window-edges frame-first-window nil 0] 3])
#@45 Return the all window list in sorted order.
(defalias 'revive:window-list #[nil "\303 \211\304\305\306\215\204 \307\310!\210		C\311	\312\"\211=\204* \313\n	C\"\202 \n+\207" [curwin win wlist selected-window nil found (byte-code "\302 \303!@U\203 \304 \303!A@U\203 \305\306\307\"\210\310!\211	=\203  \305\306\311\"\210\202  " [win curwin revive:minx revive:window-edges revive:miny throw found t next-window nil] 3) error "Unexpected window configuration." next-window "w/o mini" append] 5 (#$ . 1564)])
#@99 Return the all shown buffer list.
Each element consists of '(buffer-file-name window-start point)
(defalias 'revive:window-buffer-list #[nil "\303 \304 \305\212	\203< \306	@!\210\307	@!q\210\310\311\312!\203, \313 \203, \312\313 !\202. \313 \314 `EC\"	A\211\204 \306\n!\210,\207" [wblist wlist curw selected-window revive:window-list nil select-window window-buffer append fboundp abbreviate-file-name buffer-file-name window-start] 6 (#$ . 2089)])
#@39 Return the all windows edges by list.
(defalias 'revive:all-window-edges #[nil "\302 \303\211\203 \304\305	@!C\"	A\211\204	 *\207" [edges wlist revive:window-list nil append revive:window-edges] 5 (#$ . 2552)])
#@114 Select window whose north west corner is (X, Y).
If the matching window is not found, select the nearest window.
(defalias 'revive:select-window-by-edge #[(x y) "\306 \307!\310\211\311\310\312\313\215\206 \314!.\207" [curwin win edges s2 min minwin selected-window next-window nil 99999 found (byte-code "\306!\211@\nZ	@\nZ_	A@Z	A@Z_\\\211\307U\203, \310!\210\311\312\313\"\210\2027 \fW\2037 \f=\203C \311\312\314\"\210\315!\202  " [win edges x y s2 min revive:window-edges 0 select-window throw found t nil next-window minwin curwin] 5) select-window] 3 (#$ . 2777)])
#@40 Same as split-window but avoids error.
(defalias 'revive:split-window-safe #[(window size &optional hor-flag) "\305	\203\n \n\202 \f]	\203 \306\307 \n\310#\202  \306\311 \310#^	#\207" [window hor-flag window-min-width window-min-height size split-window - revive:screen-width 1 revive:screen-height] 7 (#$ . 3378)])
#@143 Restore partial window configuration.
Assume (X1, Y1), (X2, Y2) as diagonal corners of partial window.
EDGES is a list of sub-windows' edges.
(defalias 'revive:restore-winconf #[(x1 y1 x2 y2 edges) "@\nZZ\306\211G\307U\203 \306\202]\f\310	8	@ZU\203P A\311\"\210\312\306\313	8	A@Z\"\210\314@@@A@\n%\202]\313	8	A@ZU\203\204 A\311\"\210\312\306\310	8	@Z\315#\210\314@@@A@\n%\202]	CA\306\211\211\211\211\203\346 @@U\203\261 @=\203\306 @A@U\203\323 A@=\204\323 @\316@C\"A\211\204\240 @A@@U\203#\311\"\210\312\306Z\"\210\314\n%\210\314\n%\210\317\320!\202[A@U\203X\311\"\210\312\306Z\315#\210\314%\210\314\n%\210\317\321!\202[\317\322!.-\207" [edges topwin x2 x1 width y2 nil 1 2 revive:select-window-by-edge revive:split-window-safe 3 revive:restore-winconf t append message "==" "||" "dame!" y1 height right lower latter former div-y div-x divwin elist flist] 8 (#$ . 3706)])
#@49 Default alist of `major-mode' vs. command name.
(defvar revive:major-mode-command-alist-default '((gnus-Group-mode . gnus) (gnus-group-mode . gnus) (mh-folder-mode . revive:mh) (mew-summary-mode . revive:mew) (shell-mode . revive:shell) (sokoban-mode . sokoban) (dired-mode . revive:dired) (view-mode . revive:view) (Info-mode . info) (mpg123-mode . revive:mpg123) (twittering-mode . revive:twittering)) (#$ . 4744))
#@47 *User defined revive:major-mode-command-alist
(defvar revive:major-mode-command-alist-private nil (#$ . -5167))
#@41 *Alist of `major-mode' vs. commandname.
(defvar revive:major-mode-command-alist nil (#$ . -5285))
(byte-code "\303	\"\303\207" [revive:major-mode-command-alist-private revive:major-mode-command-alist-default revive:major-mode-command-alist append] 3)
#@43 Default list of global variables to save.
(defvar revive:save-variables-global-default '(truncate-partial-width-windows make-backup-files version-control visible-bell file-name-history buffer-name-history minibuffer-history) (#$ . 5544))
#@53 *User defined list of the global variables to save.
(defvar revive:save-variables-global-private nil (#$ . -5788))
#@36 *List of global variables to save.
(defvar revive:save-variables-global nil (#$ . -5909))
(byte-code "\303	\"\303\207" [revive:save-variables-global-private revive:save-variables-global-default revive:save-variables-global append] 3)
#@46 Default list of the local variables to save.
(defvar revive:save-variables-local-default '(buffer-read-only truncate-lines fill-column fill-prefix case-fold-search default-directory) (#$ . 6151))
#@52 *User defined list of the local variables to save.
(defvar revive:save-variables-local-private nil (#$ . -6353))
#@185 Default list of the mode specific local variables to save.
Actually, revive doesn't make the buffer local variables assuming
those variable have already localized by their major mode.
(defvar revive:save-variables-mode-local-default '((dired-mode dired-actual-switches) (yatex-mode YaTeX-math-mode YaTeX-modify-mode YaTeX-parent-file) (yahtml-mode YaTeX-parent-file) (c-mode c-indentation-style c-basic-offset) (cc-mode c-indentation-style c-basic-offset) (java-mode c-indentation-style c-basic-offset) (twittering-mode twittering-timeline-spec-string)) (#$ . 6473))
#@66 *User defined list of the mode specific local variables to save.
(defvar revive:save-variables-mode-local-private nil (#$ . -7046))
#@36 *File to save window configuration
(defvar revive:configuration-file (byte-code "\301=\203 \302\207\303\207" [system-type ms-dos "~/_revive.el" "~/.revive.el"] 2) (#$ . -7184))
#@47 *Regexp of buffer names revive should ignore.
(defvar revive:ignore-buffer-pattern "^ \\*" (#$ . -7369))
#@128 Normalize all coordinates for current screen size.
'(WIDTH, HEIGHT) is old screen size and EDGELIST is a list of
window-edges.
(defalias 'revive:normalize-edges #[(width height edgelist) "\306\307 \310 \306\211\232\203 \n\f\232\203 \202h \203g @	@_\311\245\\\245\n	A@_\f\311\245\\\f\245\311	8_\311\245\\\245\n\312	8_\f\311\245\\\f\245F\313\fC\"A\211\204# \f-\207" [n e curh curw normalized width nil revive:screen-width revive:screen-height 2 3 append height edgelist] 7 (#$ . 7481)])
#@71 Restore window configuration by EDGELIST.  EDGELIST should be sorted.
(defalias 'construct-window-configuration #[(edgelist) "\301 \210\302\303 \304 \305 \306 S%\207" [edgelist delete-other-windows revive:restore-winconf revive:minx revive:miny revive:screen-width revive:screen-height] 6 (#$ . 8006)])
#@568 Return the printable current-window-configuration.
This configuration will be stored by restore-window-configuration.
Returned configurations are list of:
'(Screen-Width Screen-Height Edge-List Buffer-List)

Edge-List is a return value of revive:all-window-edges, list of all
window-edges whose first member is always of north west window.

Buffer-List is a list of buffer property list of all windows.  This
property lists are stored in order corresponding to Edge-List.  Buffer
property list is formed as
'((buffer-file-name) (buffer-name) (point) (window-start)).
(defalias 'current-window-configuration-printable #[nil "\304 \305 \306 \307\212\n\203A \310\n@!\210\311\n@!q\210\312\313 \203/ \314\315!\203/ \315\313 !\2021 \313 \316 `\317 FC\"\nA\211\204 \310!\210\320 \321 	F-\207" [buflist edges wlist curwin selected-window revive:window-list revive:all-window-edges nil select-window window-buffer append buffer-file-name fboundp abbreviate-file-name buffer-name window-start revive:screen-width revive:screen-height] 7 (#$ . 8317)])
(defalias 'revive:get-file '(macro . #[(x) "\301D\207" [x car] 2]))
(defalias 'revive:get-buffer '(macro . #[(x) "\301\302E\207" [x nth 1] 3]))
(defalias 'revive:get-point '(macro . #[(x) "\301\302E\207" [x nth 2] 3]))
(defalias 'revive:get-window-start '(macro . #[(x) "\301\302E\207" [x nth 3] 3]))
#@41 Make the best effort to find-file FILE.
(defalias 'revive:find-file #[(file) "\203	 ;\204 \301\207\302!\203 \303!\210p\207\304\305\"\2030 \306\307\310\"\210\311\312!\2051 \313\314\315\217\210p\207\301\207" [file nil file-exists-p find-file string-match ":" load "ange-ftp" t featurep ange-ftp err (find-file file) ((ftp-error (byte-code "\301\302\"\210\303\304\305\217\207" [file message "Can't remote file `%s'" err2 (find-file file) ((ftp-error (error "Maybe you made mistake twice.")))] 3)))] 3 (#$ . 9679)])
#@117 Restore the window configuration.
Configuration CONFIG should be created by
current-window-configuration-printable.
(defalias 'restore-window-configuration #[(config) "@A@\3068\3078\310\311\312!q\210\313\f#\314!\210\315\316 \317 \"\210\n\205~ \n@\211A@\203T \320	A@!\203T \321	A@!\210\307	8b\210\322\310`\"\210\306	8b\210\202t 	@;\203t \323	@!\204t \324	@!\203t \322\310\307	8\"\210\306	8b\210\nA\325\326!\210\202' -\207" [config buf buflist edges height width 2 3 nil get-buffer-create "*scratch*" revive:normalize-edges construct-window-configuration revive:select-window-by-edge revive:minx revive:miny get-buffer switch-to-buffer set-window-start file-directory-p revive:find-file other-window 1] 6 (#$ . 10206)])
(defalias 'revive:buffer-list #[nil "\300\301\302\303\304 \"\"\207" [delq nil mapcar #[(b) "\302\303	!\"?\205 	\207" [revive:ignore-buffer-pattern b string-match buffer-name] 4] buffer-list] 5])
#@13 Wipe Emacs.
(defalias 'wipe #[nil "\300 \210\301\302\303 \"\207" [save-some-buffers mapcar kill-buffer revive:buffer-list] 3 (#$ . 11142) nil])
#@62 Return the (variable . value) list of variables in VAR2SAVE.
(defalias 'revive:varlist #[(var2save) "\301\302\303\304\"\"\207" [var2save delq nil mapcar #[(s) "\205 \301!\205 \211JB\207" [s boundp] 2]] 5 (#$ . 11292)])
#@99 Return sub-list if a car component of list in ALIST matches STRING.
That car component is regexp.
(defalias 'revive:map-string-match #[(string alist) "\301\302\303\215)\207" [regex nil match (byte-code "\205' @@\211\203 	;\203 \303@@\n\"\203 \304\305\306\"\210A\211\204 \307\207" [alist regex string string-match throw match t nil] 4)] 2 (#$ . 11523)])
#@61 *Evaluated at the beginning of revive:buffer-property-list.
(defvar revive:buffer-property-list-hook nil (#$ . -11893))
#@228 Return buffers property list.
Returned list is a form of: '(Buffer-List Variable-List).
Buffer-List is a list as
'((buffer-file-name) (buffer-name) major-mode (point) (mark)).
Variable-List is a return value of revive:varlist.
(defalias 'revive:buffer-property-list #[nil "\306 \307\310	\"\310\n\"\212\311\312!\210\203\211 @q\210\236\204H \313\314 \"\204H \315\316!\203C \317 \203C \316\317 !\202E \317 \203\200 \310\315\316!\203] \317 \203] \316\317 !\202_ \317 \314 `\203o \320\321!\202q \320 \322\310\f\236\"!\257C\"A\211\204 )\322!,D\207" [revive:save-variables-local-default revive:save-variables-local-private revive:save-variables-mode-local-default revive:save-variables-mode-local-private mode-local-var local-var revive:buffer-list nil append run-hooks revive:buffer-property-list-hook revive:map-string-match buffer-name fboundp abbreviate-file-name buffer-file-name mark t revive:varlist plist buflist major-mode revive:major-mode-command-alist revive:emacs-19 revive:save-variables-global] 13 (#$ . 12020)])
(defalias 'revive:prop-file-name '(macro . #[(x) "\301D\207" [x car] 2]))
(defalias 'revive:prop-buffer-name '(macro . #[(x) "\301\302E\207" [x nth 1] 3]))
(defalias 'revive:prop-major-mode '(macro . #[(x) "\301\302E\207" [x nth 2] 3]))
(defalias 'revive:prop-point '(macro . #[(x) "\301\302E\207" [x nth 3] 3]))
(defalias 'revive:prop-mark '(macro . #[(x) "\301\302E\207" [x nth 4] 3]))
(defalias 'revive:prop-varlist '(macro . #[(x) "\301\302E\207" [x nth 5] 3]))
(defalias 'revive:prop-get-value '(macro . #[(x y) "\302\303\304\305	EED\207" [y x cdr assq nth 5] 6]))
#@67 Save current window/buffer configuration into configuration file.
(defalias 'save-current-configuration #[(&optional num) "\306 \307 \310\311\n!!q\210\312 \210~\210eb\210\313\314\315#\203* \316\224b\203* `\317y\210`|\210\320\321\f#c\210\2066 \317\322\320\323\"\314\315#\203U \316\224b\210`\324\317!\210`|\210\325\317!\210\202X db\210\326 \210n\204c \327\317!\210\320\330\331	E!\"c\210\332 \210\333p!*\207" [config bufs revive:configuration-file revive:version-prefix revive:version num revive:buffer-property-list current-window-configuration-printable find-file-noselect expand-file-name emacs-lisp-mode search-forward nil t 0 1 format "%s%s\n" re-search-forward "^(%d" forward-list delete-char delete-blank-lines newline "%s\n" prin1-to-string basic-save-buffer kill-buffer] 6 (#$ . 13663) "p"])
#@71 Restore variables in VLIST which is a return value of revive:varlist.
(defalias 'revive:restore-value #[(vlist) "\205 @\203 @<\203 @@@AL\210A\211\204 \301\207" [vlist nil] 3 (#$ . 14476)])
#@44 *Run at the end of revive:restore-buffers.
(defvar revive:restore-buffers-hook nil (#$ . -14682))
#@75 Restore all buffers in BUFLIST which is from revive:buffer-property-list.
(defalias 'revive:restore-buffers #[(buflist) "@\306\211\211	\307A@!\210\203\253 @\306\3108\n\236\206+ \311A@\n\"\211\2038 \312\313\314\217\210\202h \315@!\203h \3108=\204f \316\3108!\203f \317\3108!\203a \320\3108!\210\202f \3108 \210\321\203\242 A@\322 \230\204\203 \323A@!\204\203 \324A@!\210\325\3268!\210\3278b\210\316\330!\203\234 \330 \203\234 \331 \210\307\3328!\210A\211\204 \333\334!-\207" [buflist revive:major-mode-command-alist mmc-alist success command x nil revive:restore-value 2 assoc err (byte-code "\303\304	A!\203 \305	A!\210\306)\303\207" [noninteractive command success nil fboundp call-interactively t] 2) ((error (byte-code "\302\303A	#\210\304\305!\207" [command err message "%s: %s." sit-for 1] 4))) revive:find-file fboundp commandp call-interactively t buffer-name get-buffer rename-buffer set-mark 4 3 region-active-p deactivate-mark 5 run-hooks revive:restore-buffers-hook blist major-mode] 6 (#$ . 14786)])
#@28 *Run at the end of resume.
(defvar resume-hook nil (#$ . -15846))
#@98 Resume window/buffer configuration.
Configuration should be saved by save-current-configuration.
(defalias 'resume #[(&optional num) "\206 \306\307\211\211\211\310\311!!\210eb\210\312 \210\313\307\314#\204' \315\316!\210`\307\210`{\230\204= \317\320!\204= \315\321!\210\322\323\324\"\307\314#\204L \315\325!\210\326\224b\210\327p!\211A@\330\f8\331p!\210\332!\210\333	!\210\334\335!,\207" [num config x bufs sexp revive:configuration-file 1 nil find-file expand-file-name emacs-lisp-mode search-forward t error "Configuration file collapsed." y-or-n-p "Configuration file's version conflicts. Continue?" "Configuration file is old.  Please update." re-search-forward format "^(%d" "Configuration empty." 0 read 2 kill-buffer revive:restore-buffers restore-window-configuration run-hooks resume-hook revive:version-prefix revive:version] 5 (#$ . 15918) "p"])
#@74 Restore dired buffer referring the variable x of revive:restore-buffers.
(defalias 'revive:dired #[nil "\304\303\3058\236A	;\203& \306	!\203& \307	\310\3058\236A\"\210	\311	!\202* \312\313	\"*\207" [x dir find-file-run-dired default-directory t 5 file-directory-p dired dired-actual-switches cd error "Directory [%s] not found"] 5 (#$ . 16799) nil])
#@29 Restore view-mode's buffer.
(defalias 'revive:view #[nil "\301\302!\210\303\304!\203 \305@!\207\306\307N?\2052 \310\311\312@\313Q!!\210\314\315!c\210\316\317!\210\320\306\307\321#\210\322\323!\207" [x require view fboundp view-exit view-file revive:view warning switch-to-buffer create-file-buffer "** out of use - " " **" message "Skip view-modes' buffer since your view.el may use recursive-edit." kill-buffer nil put t sit-for 5] 5 (#$ . 17160) nil])
#@24 Restore mh-e's buffer.
(defalias 'revive:mh #[nil "\303\304!\210\303\305!\210\306 \210\307\310!\210\311A@\312\"\210@\302\3138\236A\206# \314\315\n!\207" [x buffer-file-name default-directory require mh-e mh-utils mh-find-path get-buffer-create " *mh-temp*" mh-visit-folder "all" 5 "~/" cd] 3 (#$ . 17623) nil])
#@31 Restore mew's summary buffer.
(defalias 'revive:mew #[nil "\305\306!\210\307A@!q\210\301\3108\236A\206 \311\312\302!\203  \n\204, \313\314!\203, \315\314 \210)\316 \210\307\317!\210A@\313\320!\203C \320\f!\202T \313\321!\203S \322\f!\210\321\f!\202T \315)\207" [x default-directory mew-path mew-demo b require mew get-buffer-create 5 "~/" boundp fboundp mew-init nil mew-cache-flush " *mew tmp*" mew-summary-folder-create mew-summary-switch-to-folder kill-buffer] 3 (#$ . 17945) nil])
#@30 Restore shell-mode's buffer.
(defalias 'revive:shell #[nil "\302\303!q\210\301\3048\236A\206 \305\306 \210\307	!\210\310\303!)\207" [x default-directory get-buffer-create " *tmp*" 5 "." shell cd kill-buffer] 3 (#$ . 18443) nil])
#@31 Restore mpg123-mode's buffer.
(defalias 'revive:mpg123 #[nil "\302\3038\236A\211\205 \304	!\205 \305\306!\210\306	!)\207" [x d default-directory 5 file-directory-p require mpg123] 4 (#$ . 18681) nil])
#@44 Restore c-style of C/C++/Java(by cc-mode).
(defalias 'revive:c-set-style #[nil "\301\302!\210\303@!\210\3048 \210\305\306\3078\236A\206 \310!\207" [x require cc-mode revive:find-file 2 c-set-style c-indentation-style 5 "gnu"] 4 (#$ . 18892) nil])
#@108 Restore buffer of twittering mode.
This functionality is considered to be migrated from `twittering-mode'.
(defalias 'revive:twittering #[nil "\301\302!\210\303\304\3058\236A!\207" [x require twittering-mode twittering-visit-timeline twittering-timeline-spec-string 5] 4 (#$ . 19150) nil])
(provide 'revive)
