;ELC   
;;; Compiled by buildd@akateko.buildd on Fri Oct 25 13:52:56 2013
;;; from file /build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el
;;; in Emacs version 23.4.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.

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


(custom-declare-group 'tar nil "Simple editing of tar files." :prefix "tar-" :group 'data)
#@519 The blocksize of tar files written by Emacs, or nil, meaning don't care.
The blocksize of a tar file is not really the size of the blocks; rather, it is
the number of blocks written with one system call.  When tarring to a tape,
this is the size of the *tape* blocks, but when writing to a file, it doesn't
matter much.  The only noticeable difference is that if a tar file does not
have a blocksize of 20, tar will tell you that; all this really controls is
how many null padding bytes go on the end of the tar file.
(custom-declare-variable 'tar-anal-blocksize '20 '(#$ . 630) :type '(choice integer (const nil)) :group 'tar)
#@477 Non-nil means Tar mode should play fast and loose with sub-file datestamps.
If this is true, then editing and saving a tar file entry back into its
tar file will update its datestamp.  If false, the datestamp is unchanged.
You may or may not want this - it is good in that you can tell when a file
in a tar archive has been changed, but it is bad for the same reason that
editing a file in the tar archive at all is bad - the changed version of
the file never exists on disk.
(custom-declare-variable 'tar-update-datestamp 'nil '(#$ . 1265) :type 'boolean :group 'tar)
#@143 Non-nil means Tar mode should show the date/time of each subfile.
This information is useful, but it takes screen space away from file names.
(custom-declare-variable 'tar-mode-show-date 'nil '(#$ . 1841) :type 'boolean :group 'tar)
(byte-code "\301B\302\301!\204 \303\301\304\"\210\305B\302\305!\204 \303\305\304\"\210\306B\302\306!\204- \303\306\304\"\210\307B\302\307!\204< \303\307\304\"\210\310B\302\310!\204K \303\310\304\"\210\311\305\312\313#\210\311\306\312\313#\207" [current-load-list tar-parse-info default-boundp set-default nil tar-superior-buffer tar-superior-descriptor tar-subfile-mode tar-file-name-coding-system put permanent-local t] 4)
#@45 Buffer that holds the actual raw tar bytes.
(defvar tar-data-buffer nil (#$ . 2516))
(make-variable-buffer-local 'tar-data-buffer)
#@59 If non-nil, `tar-data-buffer' indeed holds raw tar bytes.
(defvar tar-data-swapped nil (#$ . 2653))
(make-variable-buffer-local 'tar-data-swapped)
#@57 Return non-nil if the tar-data is in `tar-data-buffer'.
(defalias 'tar-data-swapped-p #[nil "\302!\205! \303!\303 U\204  	\303!\303 V=\204  \304\305\306C\"\210	\207" [tar-data-buffer tar-data-swapped buffer-live-p buffer-size signal cl-assertion-failed (or (= (buffer-size tar-data-buffer) (buffer-size)) (eq tar-data-swapped (> (buffer-size tar-data-buffer) (buffer-size))))] 3 (#$ . 2806)])
#@143 Swap buffer contents between current buffer and `tar-data-buffer'.
Preserve the modified states of the buffers and set `buffer-swapped-with'.
(defalias 'tar-swap-data #[nil "\304!\304 \305!\210?\306\n!\210rq\210\306	!+\207" [tar-data-buffer current-buffer-modified-p data-buffer-modified-p tar-data-swapped buffer-modified-p buffer-swap-text restore-buffer-modified-p] 2 (#$ . 3209)])
(byte-code "\301\302\303\304#\210\302\305N\204 \301\302\305\306#\210\307\301\302\310\311\312!!#\210)\301\207" [file put tar-header-data-start cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-data-start (or (and (memq (aref cl-x 0) cl-struct-tar-header-tags)) (error "tar-header-data-start accessing a non-tar-header")) (aref cl-x 1)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-data-start #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-data-start accessing a non-tar-header" 1] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-data-start setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-data-start #1=(and (memq (aref cl-x 0) cl-struct-tar-header-tags)) 1] 6] tar-header-name cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-name (or #1# (error "tar-header-name accessing a non-tar-header")) (aref cl-x 2)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-name #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-name accessing a non-tar-header" 2] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-name setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-name #1=(and (memq (aref cl-x 0) cl-struct-tar-header-tags)) 2] 6] tar-header-mode cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-mode (or #1# (error "tar-header-mode accessing a non-tar-header")) (aref cl-x 3)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-mode #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-mode accessing a non-tar-header" 3] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-mode setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-mode #1=(and (memq (aref cl-x 0) cl-struct-tar-header-tags)) 3] 6] tar-header-uid cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-uid (or #1# (error "tar-header-uid accessing a non-tar-header")) (aref cl-x 4)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-uid #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-uid accessing a non-tar-header" 4] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-uid setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-uid #1=(and (memq (aref cl-x 0) cl-struct-tar-header-tags)) 4] 6] tar-header-gid cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-gid (or #1# (error "tar-header-gid accessing a non-tar-header")) (aref cl-x 5)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-gid #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-gid accessing a non-tar-header" 5] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-gid setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-gid #1=(and (memq (aref cl-x 0) cl-struct-tar-header-tags)) 5] 6] tar-header-size cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-size (or #1# (error "tar-header-size accessing a non-tar-header")) (aref cl-x 6)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-size #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-size accessing a non-tar-header" 6] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-size setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-size #1=(and (memq (aref cl-x 0) cl-struct-tar-header-tags)) 6] 6] tar-header-date cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-date (or #1# (error "tar-header-date accessing a non-tar-header")) (aref cl-x 7)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-date #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-date accessing a non-tar-header" 7] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-date setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-date #1=(and (memq (aref cl-x 0) cl-struct-tar-header-tags)) 7] 6] tar-header-checksum cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-checksum (or #1# (error "tar-header-checksum accessing a non-tar-header")) (aref cl-x 8)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-checksum #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-checksum accessing a non-tar-header" 8] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-checksum setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-checksum #1=(and (memq (aref cl-x 0) cl-struct-tar-header-tags)) 8] 6] tar-header-link-type cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-link-type (or #1# (error "tar-header-link-type accessing a non-tar-header")) (aref cl-x 9)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-link-type #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-link-type accessing a non-tar-header" 9] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-link-type setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-link-type #1=(and (memq (aref cl-x 0) cl-struct-tar-header-tags)) 9] 6] tar-header-link-name cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-link-name (or #1# (error "tar-header-link-name accessing a non-tar-header")) (aref cl-x 10)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-link-name #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-link-name accessing a non-tar-header" 10] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-link-name setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-link-name #1=(and (memq (aref cl-x 0) cl-struct-tar-header-tags)) 10] 6] tar-header-magic cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-magic (or #1# (error "tar-header-magic accessing a non-tar-header")) (aref cl-x 11)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-magic #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-magic accessing a non-tar-header" 11] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-magic setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-magic #1=(and (memq (aref cl-x 0) cl-struct-tar-header-tags)) 11] 6] tar-header-uname cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-uname (or #1# (error "tar-header-uname accessing a non-tar-header")) (aref cl-x 12)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-uname #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-uname accessing a non-tar-header" 12] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-uname setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-uname #1=(and (memq (aref cl-x 0) cl-struct-tar-header-tags)) 12] 6] tar-header-gname cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-gname (or #1# (error "tar-header-gname accessing a non-tar-header")) (aref cl-x 13)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-gname #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-gname accessing a non-tar-header" 13] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-gname setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-gname #1=(and (memq (aref cl-x 0) cl-struct-tar-header-tags)) 13] 6] tar-header-dmaj cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-dmaj (or #1# (error "tar-header-dmaj accessing a non-tar-header")) (aref cl-x 14)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-dmaj #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-dmaj accessing a non-tar-header" 14] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-dmaj setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-dmaj #1=(and (memq (aref cl-x 0) cl-struct-tar-header-tags)) 14] 6] tar-header-dmin cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-dmin (or #1# (error "tar-header-dmin accessing a non-tar-header")) (aref cl-x 15)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-dmin #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-dmin accessing a non-tar-header" 15] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-dmin setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-dmin #1=(and (memq (aref cl-x 0) cl-struct-tar-header-tags)) 15] 6] tar-header-header-start cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-header-start (or #1# (error "tar-header-header-start accessing a non-tar-header")) (aref cl-x 16)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-header-start #[(cl-x) "\302H	>\204\f \303\304!\210\305H\207" [cl-x cl-struct-tar-header-tags 0 error "tar-header-header-start accessing a non-tar-header" 16] 2])
(byte-code "\301\302\303\304#\210\301\305\306\307#\210\305\310N\204% \301\305\310\311#\210\312\301\305\313\314\315!!#\210)\301\207" [file put tar-header-header-start setf-method #[(cl-x) "\301\302\303\304\305%\207" [cl-x cl-struct-setf-expander tar-header tar-header-header-start (and #1=(memq (aref cl-x 0) cl-struct-tar-header-tags)) 16] 6] tar-header-p cl-compiler-macro #[(--cl-whole-arg-- cl-x) "\301\302\303\304\211\211&\207" [cl-x cl-defsubst-expand (cl-x) (block tar-header-p (and (vectorp cl-x) (>= (length cl-x) 17) #1# t)) nil] 7] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'tar-header-p #[(cl-x) "\302!\205 G\303Y\205 \304H	>\205 \305\207" [cl-x cl-struct-tar-header-tags vectorp 17 0 t] 2])
(defalias 'copy-tar-header #[(x) "\301!\207" [x copy-sequence] 2])
(byte-code "\301\302\303\304#\210\302\305N\204 \301\302\305\306#\210\307\301\302\310\311\312!!#\210)\301\207" [file put make-tar-header cl-compiler-macro #[(--cl-whole-arg-- data-start name mode uid gid size date checksum link-type link-name magic uname gname dmaj dmin) "\306\307\310\311\312\211	\n\f\f&\207" [data-start name mode uid gid size cl-defsubst-expand (data-start name mode uid gid size date checksum link-type link-name magic uname gname dmaj dmin) (block make-tar-header (vector 'tar-header data-start name mode uid gid size date checksum link-type link-name magic uname gname dmaj dmin nil)) t nil date checksum link-type link-name magic uname gname dmaj dmin] 21] byte-compile cl-byte-compile-compiler-macro "/build/buildd/emacs23-23.4+1/debian/build-x/lisp/tar-mode.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'make-tar-header #[(data-start name mode uid gid size date checksum link-type link-name magic uname gname dmaj dmin) "\306\307	\n\f	\n\f\310&\207" [data-start name mode uid gid size vector tar-header nil date checksum link-type link-name magic uname gname dmaj dmin] 18])
(byte-code "\306C\307\306\310\311#\210\307\306\312\313#\210\307\306\314\315#\210\307\306\316\315#\210\307\317\320\321#\210\307\322\320\321#\210\307\323\320\324#\210\307\325\320\321#\210\307\326\320\321#\210\307\327\320\321#\210\307\330\320\321#\210\307\331\320\321#\210\307\332\320\321#\210\307\333\320\321#\210\307\334\320\321#\210\307\335\320\321#\210\307\336\320\321#\210\307\337\320\321#\210\307\340\320\321#\210\307\341\320\321#\210\307\342\320\321#\210\307\343\320\321#\210\307\344\320\321#\210\302	B\345\346!\210\303	B\347\n\350\\!\210\304	B\351\352\\!\210\305	B\353\f\352\\!\210\354	B\355\352\\!\210\356	B\357,\360\\!\210\361	B\362.\360\\!\210\363	B\3641\352\\!\210\365	B\3663T!\210\367	B\3705\350\\!\210\371	B\3727\352\\!\210\373	B\3749\375\\!\210\376	B\377;\375\\!\210\201@ 	B\201B >\352\\!\210\201A 	B\201C @\352\\!\210\201D 	B\201E A\201F \\!\207" [cl-struct-tar-header-tags current-load-list tar-name-offset tar-mode-offset tar-uid-offset tar-gid-offset tar-header put cl-struct-slots ((cl-tag-slot) (data-start) (name) (mode) (uid) (gid) (size) (date) (checksum) (link-type) (link-name) (magic) (uname) (gname) (dmaj) (dmin) (header-start)) cl-struct-type (vector t) cl-struct-include nil cl-struct-print make-tar-header side-effect-free t copy-tar-header tar-header-p error-free tar-header-header-start tar-header-dmin tar-header-dmaj tar-header-gname tar-header-uname tar-header-magic tar-header-link-name tar-header-link-type tar-header-checksum tar-header-date tar-header-size tar-header-gid tar-header-uid tar-header-mode tar-header-name tar-header-data-start (lambda (#1=#:defconst-tmp-var) (defconst tar-name-offset #1#)) 0 (lambda (#2=#:defconst-tmp-var) (defconst tar-mode-offset #2#)) 100 (lambda (#3=#:defconst-tmp-var) (defconst tar-uid-offset #3#)) 8 (lambda (#4=#:defconst-tmp-var) (defconst tar-gid-offset #4#)) tar-size-offset (lambda (#5=#:defconst-tmp-var) (defconst tar-size-offset #5#)) tar-time-offset (lambda (#6=#:defconst-tmp-var) (defconst tar-time-offset #6#)) 12 tar-chk-offset (lambda (#7=#:defconst-tmp-var) (defconst tar-chk-offset #7#)) tar-linkp-offset (lambda (#8=#:defconst-tmp-var) (defconst tar-linkp-offset #8#)) tar-link-offset (lambda (#9=#:defconst-tmp-var) (defconst tar-link-offset #9#)) tar-magic-offset (lambda (#10=#:defconst-tmp-var) (defconst tar-magic-offset #10#)) tar-uname-offset (lambda (#11=#:defconst-tmp-var) (defconst tar-uname-offset #11#)) tar-gname-offset (lambda (#12=#:defconst-tmp-var) (defconst tar-gname-offset #12#)) 32 tar-dmaj-offset (lambda (#13=#:defconst-tmp-var) (defconst tar-dmaj-offset #13#)) tar-dmin-offset tar-prefix-offset (lambda (#14=#:defconst-tmp-var) (defconst tar-dmin-offset #14#)) (lambda (#15=#:defconst-tmp-var) (defconst tar-prefix-offset #15#)) tar-end-offset (lambda (#16=#:defconst-tmp-var) (defconst tar-end-offset #16#)) 155] 4)
#@41 Round S up to the next multiple of 512.
(defalias 'tar-roundup-512 #[(s) "\301\211\302\\\303\"\304\"\207" [s ash 511 -9 9] 4 (#$ . 22925)])
#@128 Return a `tar-header' structure.
This is a list of name, mode, uid, gid, size,
write-date, checksum, link-type, and link-name.
(defalias 'tar-header-block-tokenize #[(pos coding) "\306\\dV\203\f \307\310!\210\311\312eZ\306\"!\204 \313\314\315C\"\210	\203' \313\314\316C\"\210\211\306\\\211{\211\317H\317U\203@ \n\320H\317U?\205S23S45S6\n7H8\n9\321ZO\211:\322\235@;\323\211<=\324>\325>\n?#\203~ \f\317\225S^\325>\n@#\203\220 2\317\225S^2\325>\n9#\203\242 4\317\225S^4\325>\n3#\203\264 6\317\225S^6\n?\fO<8\317U\206\306 8\326U?\205\316 8\326Z8\n@2O=;\327\232\203\377 \325>\nA#\203\377 \317\225ATV\203\377 \nA\317\225SO\330<Q<\331\301!\203\332<B\"<\332=B\"=8\204%\325\333<\"\203%\3348<\335\232\203\267:\336\235\203\267\337\nCD#E\332\340E\341#{B\"<\342\343E!\\B\"F8\344=\203uF\317HG>\204k\307\345!\210F\321<I\210\202\2308\346=\203\224F\317HG>\204\212\307\347!\210F\350<I\210\202\230\351\352!\210F\317HG>\204\246\307\353!\210F\354\355\306Z\356\"I\210F+\202\357\360\355\323\"<\337\nH#\337\nHI#\337\nIC#\337\nCD#\361\nDJ#\337\nJ7#8=;\211\205\374\332\n94OB\";\205\332\n36OB\"\337\n5K#\337\nKA#\323&.\n)\207" [pos enable-multibyte-characters string tar-mode-offset name-end tar-magic-offset 512 error "Malformed Tar header" zerop mod signal cl-assertion-failed (zerop (mod (- pos (point-min)) 512)) (not enable-multibyte-characters) 0 101 2 ("ustar " "ustar ") nil "[^ ]* " string-match 48 "ustar " "/" default-value decode-coding-string "/\\'" 5 "././@LongLink" ("ustar " "ustar ") tar-parse-octal-integer + -1 tar-header-block-tokenize tar-roundup-512 28 "tar-header-name storing a non-tar-header" 27 "tar-header-link-name storing a non-tar-header" 10 message "Unrecognized GNU Tar @LongLink format" "tar-header-header-start storing a non-tar-header" 16 copy-marker t vector tar-header tar-parse-octal-long-integer link-end tar-gname-offset uname-end tar-dmaj-offset gname-end tar-linkp-offset link-p tar-uname-offset magic-str uname-valid-p name linkname nulsexp tar-name-offset tar-link-offset tar-prefix-offset coding tar-size-offset tar-time-offset size descriptor cl-struct-tar-header-tags tar-uid-offset tar-gid-offset tar-chk-offset tar-dmin-offset] 21 (#$ . 23073)])
(defalias 'tar-header-data-end #[(descriptor) "\306H	>\204\f \307\310!\210\311H\306H	>\204 \307\312!\210\313H\306H	>\204, \307\314!\210\315H\316>\203: \317\202; \306\320\n\204O \f\306V\203O \321\f!\202P \306#,\207" [descriptor cl-struct-tar-header-tags data-start link-type size fudge 0 error "tar-header-data-start accessing a non-tar-header" 1 "tar-header-link-type accessing a non-tar-header" 9 "tar-header-size accessing a non-tar-header" 6 (20 55) 512 + tar-roundup-512] 5])
(defalias 'tar-parse-octal-integer #[(string &optional start end) "\204 \304	\204 \nG\nH\304U\203 \304\207\304	W\203< \nH\305W\203+ \2024 \306_\nH\305Z\\T\211\202 )\207" [start end string n 0 48 8] 4])
(defalias 'tar-parse-octal-long-integer #[(string &optional start end) "\204 \305	\204 \nG\nH\305U\203 \305\211D\207\305\211	W\203J \nH\306Y\203C \f\307_\nH\306Z\\\307_\310\f\311\"\\\312\f\313\"T\211\202 \f*D\207" [start end string hi lo 0 48 8 ash -16 logand 65535] 5])
(defalias 'tar-parse-octal-integer-safe #[(string) "\301G!\203 \302\303!\210\304\305\"\210\306!\207" [string zerop error "empty string" mapc #[(c) "\301W\204\f \302V\205 \303\304\"\207" [c 48 55 error "`%c' is not an octal digit"] 3] tar-parse-octal-integer] 3])
#@62 Compute and return a tar-acceptable checksum for this block.
(defalias 'tar-header-block-checksum #[(string) "\306!\203\f \307\310\311C\"\210	\211\312\\\313\211\313\nW\203) \fH\\T\211\202 \211\314W\203> \fH\\T\211\202, \f\315\\,\207" [string tar-chk-offset chk-field-start chk-field-end sum i multibyte-string-p signal cl-assertion-failed (not (multibyte-string-p string)) 8 0 512 256] 4 (#$ . 26664)])
#@57 Beep and print a warning if the checksum doesn't match.
(defalias 'tar-header-block-check-checksum #[(hblock desired-checksum file-name) "\303	!U?\205 \304 \210\305\306\n\"\207" [desired-checksum hblock file-name tar-header-block-checksum beep message "Invalid checksum for file %s!"] 3 (#$ . 27091)])
(defalias 'tar-clip-time-string #[(time) "\302!\303	\304\305O	\306\307OQ)\207" [time str current-time-string " " 4 16 19 24] 5])
#@105 Construct a `-rw--r--r--' string indicating MODE.
MODE should be an integer which is a file mode value.
(defalias 'tar-grind-file-mode #[(mode) "\301\302\303\304\"!\203 \305\202 \306\302\303\307\"!\203 \305\202 \310\302\303\311\"!\2037 \302\303\312\"!\2033 \305\2028 \313\2028 \314\302\303\315\"!\203E \305\202F \306\302\303\316\"!\203S \305\202T \310\302\303\317\"!\203n \302\303\320\"!\203j \305\202o \313\202o \314\302\303\321\"!\203| \305\202} \306\302\303\322\"!\203\212 \305\202\213 \310\302\303\323\"!\203\230 \305\202\231 \313&	\207" [mode string zerop logand 256 45 114 128 119 1024 64 120 115 32 16 2048 8 4 2 1] 13 (#$ . 27533)])
#@52 Return a line similar to the output of `tar -vtf'.
(defalias 'tar-header-block-summarize #[(tar-hblock &optional mod-p) "\306H	>\204\f \307\310!\210\311H\306H	>\204 \307\312!\210\313H\306H	>\204* \307\314!\210\315H\306H	>\2049 \307\316!\210\317H\306H	>\204H \307\320!\210\321H\306H	>\204W \307\322!\210\323H\306H	>\204f \307\324!\210\325H\306H	>\204u \307\326!\210\327H\306H	>\204\204 \307\330!\210\331H\306H	>\204\223 \307\332!\210\333H>?@ABC\334\335D\203\261 \336\202\262 \337\340=\204\276 \306=\203\302 \341\202;\342=\203\314 \343\202;\311=\203\326 \344\202;\313=\203\340 \345\202;\315=\203\352 \346\202;\317=\203\364 \347\202;\325=\203\376 \350\202;\351=\203\336\202;\352=\203\353\202;\354=\203\355\202;\356=\203&\357\202;\360=\2030\361\202;\362=\203:\363\202;\337\364B!?G\306U\203LA\202N?>G\306U\203[@\202]>E\203i\365\f!\202j\366\367C\370\371\372\373%\342=\204~\311=\203\216\342U\203\210\374\202\211\375\nP\202\217\366&\n.\n\207" [tar-hblock cl-struct-tar-header-tags link-name type time size 0 error "tar-header-name accessing a non-tar-header" 2 "tar-header-mode accessing a non-tar-header" 3 "tar-header-uid accessing a non-tar-header" 4 "tar-header-gid accessing a non-tar-header" 5 "tar-header-uname accessing a non-tar-header" 12 "tar-header-gname accessing a non-tar-header" 13 "tar-header-size accessing a non-tar-header" 6 "tar-header-date accessing a non-tar-header" 7 "tar-header-link-type accessing a non-tar-header" 9 "tar-header-link-name accessing a non-tar-header" 10 format "%c%c%s %7s/%-7s %7s%s %s%s" 42 32 nil 45 1 104 108 99 98 100 112 20 28 76 29 77 35 83 38 86 55 72 tar-grind-file-mode tar-clip-time-string "" propertize mouse-face highlight help-echo "mouse-2: extract this file into a buffer" " ==> " " --> " gname uname gid uid mode name mod-p tar-mode-show-date] 15 (#$ . 28195)])
#@73 Extract all archive members in the tar-file into the current directory.
(defalias 'tar-untar-buffer #[nil "r\306 \203\f \n\202 pq\210\307\310!\210	\310\211\203\301 \f@\211\311H>\204* \312\313!\210\314H \311H>\204; \312\315!\210\316H\317=\203H  \202L \320 !!\311H>\204Z \312\321!\210\322H\211\"\311H>\204l \312\323!\210\324H\\#\325 !\204\271 \326\327 \"\210!\203\221 \330!!\204\221 \331!\332\"\210\325 !\204\245 \333$\334\"# #\210)\335 \311H>\204\264 \312\336!\210\337H\"\210,\fA\211\204 ,\310\207" [tar-parse-info descriptors tar-data-buffer descriptor #1=#:--cl-dolist-temp-- cl-struct-tar-header-tags tar-data-swapped-p set-buffer-multibyte nil 0 error "tar-header-name accessing a non-tar-header" 2 "tar-header-link-type accessing a non-tar-header" 9 5 file-name-directory "tar-header-data-start accessing a non-tar-header" 1 "tar-header-size accessing a non-tar-header" 6 file-directory-p message "Extracting %s" file-exists-p make-directory t no-conversion write-region set-file-modes "tar-header-mode accessing a non-tar-header" 3 name dir start end coding-system-for-write] 5 (#$ . 30107) nil])
#@59 Parse the contents of the tar file in the current buffer.
(defalias 'tar-summarize-buffer #[nil "\306 \204 \307\310\311C\"\210\312 \313erq\210\314\315ed#)\"\313#rq\210\ndW\203\217 \316\n\f\"\211#\203\217 #\317H$>\204E \320\321!\210#\322H\211%\317W\203i \320\323#\317H$>\204a \320\324!\210#\325H%#\210)#	B\326#!\"\n&'&'@Y\203\213 \327'&\"\210*\202' )\330\331!\210	\237#\204\245 \332\"!\210\202\251 \333\334!\210eb\210\335\336\337\340#()(\340\261\210*eb\210\341!.\207" [modified result pos tar-file-name-coding-system coding tar-data-buffer tar-data-swapped-p signal cl-assertion-failed (tar-data-swapped-p) buffer-modified-p nil make-progress-reporter "Parsing tar file..." tar-header-block-tokenize 0 error "tar-header-size accessing a non-tar-header" 6 "%s has size %s - corrupted" "tar-header-name accessing a non-tar-header" 2 tar-header-data-end progress-reporter-do-update make-local-variable tar-parse-info progress-reporter-done message "Warning: premature EOF parsing tar file" t mapconcat tar-header-block-summarize "\n" restore-buffer-modified-p progress-reporter descriptor cl-struct-tar-header-tags size value reporter total-summaries inhibit-read-only] 6 (#$ . 31254)])
#@37 Local keymap for Tar mode listings.
(defvar tar-mode-map (byte-code "\301 \302!\210\303\304\305#\210\303\306\307#\210\303\310\311#\210\303\312\311#\210\303\313\314#\210\303\315\314#\210\303\316\314#\210\303\317\320#\210\303\321\322#\210\303\323\324#\210\303\325\305#\210\303\326\305#\210\303\327\305#\210\303\330\331#\210\303\332\333#\210\303\334\335#\210\303\336\333#\210\303\337\333#\210\303\340\341#\210\303\342\343#\210\303\344\345#\210\303\346\347#\210\303\350\351#\210\303\352\331#\210\303\353\354#\210\303\355\356#\210\303\357\360#\210\303\361\362#\210\303\363\364#\210\303\365\366\367\366!B#\210\303\370\371#\210\303\372\373#\210\303\374\375#\210\303\376\377#\210\303\201@ \201A \367\201A !B#\210\303\201B \201C #\210\303\201D \201E #\210\303\201F \201G #\210\303\201H \201I \367\201I !B#\210\303\201J \201K #\210\303\201L \201M #\210\303\201N \201O #\210\303\201P \201Q #\210\303\201R \201S #\210\303\201T \201U #\210)\207" [map make-keymap suppress-keymap define-key " " tar-next-line "C" tar-copy "d" tar-flag-deleted "" "e" tar-extract "f" "" [mouse-2] tar-mouse-extract "g" revert-buffer "h" describe-mode "n" "" [down] "o" tar-extract-other-window "p" tar-previous-line "q" quit-window "" [up] "R" tar-rename-entry "u" tar-unflag "v" tar-view "x" tar-expunge "" tar-unflag-backwards "E" "M" tar-chmod-entry "G" tar-chgrp-entry "O" tar-chown-entry [follow-link] mouse-face [menu-bar edit] undefined [menu-bar immediate] "Immediate" make-sparse-keymap [menu-bar immediate view] ("View This File" . tar-view) [menu-bar immediate display] ("Display in Other Window" . tar-display-other-window) [menu-bar immediate find-file-other-window] ("Find in Other Window" . tar-extract-other-window) [menu-bar immediate find-file] ("Find This File" . tar-extract) [menu-bar mark] "Mark" [menu-bar mark unmark-all] ("Unmark All" . tar-clear-modification-flags) [menu-bar mark deletion] ("Flag" . tar-flag-deleted) [menu-bar mark unmark] ("Unflag" . tar-unflag) [menu-bar operate] "Operate" [menu-bar operate chown] ("Change Owner..." . tar-chown-entry) [menu-bar operate chgrp] ("Change Group..." . tar-chgrp-entry) [menu-bar operate chmod] ("Change Mode..." . tar-chmod-entry) [menu-bar operate rename] ("Rename to..." . tar-rename-entry) [menu-bar operate copy] ("Copy to..." . tar-copy) [menu-bar operate expunge] ("Expunge Marked Files" . tar-expunge)] 6) (#$ . 32485))
(byte-code "\300\301\302\303#\210\300\304\302\303#\207" [put tar-mode mode-class special tar-subfile-mode] 4)
(defalias 'tar-change-major-mode-hook #[nil "\301 \203 \302 \210\303!\205 \304!\207" [tar-data-buffer tar-data-swapped-p tar-swap-data buffer-live-p kill-buffer] 2])
(defalias 'tar-mode-kill-buffer-hook #[nil "\301!\205	 \302!\207" [tar-data-buffer buffer-live-p kill-buffer] 2])
(byte-code "\302\303N\204 \304\302\303\305\306!#\210\307\310!\204 \304\310\311\312#\210\310B\313\310!\204* \314\310\315 \"\210\310\303N\2048 \304\310\303\305\316!#\210\307\317!\204D \304\317\311\312#\210\317B\313\317!\204T \314\317\320 \"\210\317\303N\204b \304\317\303\305\321!#\210\304\301\311\312#\210\301B\313\301!\204| \314\301\322\301\323\"\210	\"\210\301\303N\204\212 \304\301\303\305\324!#\210\304\312\325\323#\207" [current-load-list tar-mode-abbrev-table tar-mode-hook variable-documentation put purecopy "Hook run when entering Tar mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp tar-mode-map definition-name tar-mode default-boundp set-default make-sparse-keymap "Keymap for `tar-mode'." tar-mode-syntax-table make-syntax-table "Syntax table for `tar-mode'." define-abbrev-table nil "Abbrev table for `tar-mode'." derived-mode-parent] 5)
#@813 Major mode for viewing a tar file as a dired-like listing of its contents.
You can move around using the usual cursor motion commands.
Letters no longer insert themselves.
Type `e' to pull a file out of the tar file and into its own buffer;
or click mouse-2 on the file's line in the Tar mode buffer.
Type `c' to copy an entry from the tar file into another file on disk.

If you edit a sub-file of this archive (as with the `e' command) and
save it with \[save-buffer], the contents of that buffer will be
saved back into the tar-file buffer; in this way you can edit a file
inside of a tar archive without extracting it and re-archiving it.

See also: variables `tar-update-datestamp' and `tar-anal-blocksize'.
\{tar-mode-map}

This mode runs the hook `tar-mode-hook', as the final step
during initialization.
(defalias 'tar-mode #[nil "\306\300!\210\307\310 \210\311\312\313!\210\314\f!\210.\306\315!\210\306\316!\210\317\306\320!\210\317\306\321!\210\317\306\322!\210/\206A 0\206A 1\306\323!\210\307\324 \210~\210\325 \203Z \326\327\330C\"\210\306\331!\210\332\333\334\335\317\307$\210\333\336\337\317\307$\210\333\340\341\317\307$\210\342\317!\210\306\343!\210\344\345\346\3472\206\211 \350 !\"!#\351\352\353\217\210)\354\355!\207" [delay-mode-hooks major-mode mode-name tar-mode-map tar-mode-syntax-table tar-mode-abbrev-table make-local-variable t kill-all-local-variables tar-mode "Tar" use-local-map set-syntax-table tar-parse-info require-final-newline nil local-enable-local-variables next-line-add-newlines tar-file-name-coding-system file-precious-flag buffer-disable-undo tar-data-swapped-p signal cl-assertion-failed (not (tar-data-swapped-p)) revert-buffer-function tar-mode-revert add-hook write-region-annotate-functions tar-write-region-annotate kill-buffer-hook tar-mode-kill-buffer-hook change-major-mode-hook tar-change-major-mode-hook set-buffer-multibyte tar-data-buffer generate-new-buffer format " *tar-data %s*" file-name-nondirectory buffer-name err (byte-code "\300 \210\301 \210\302\303!\207" [tar-swap-data tar-summarize-buffer tar-next-line 0] 2) ((error (byte-code "\301 \210\302@A\"\207" [err fundamental-mode signal] 3))) run-mode-hooks tar-mode-hook local-abbrev-table file-name-coding-system default-file-name-coding-system locale-coding-system buffer-file-name] 5 (#$ . 36265) nil])
#@235 Minor mode for editing an element of a tar-file.
This mode arranges for "saving" this buffer to write the data
into the tar-file buffer that it came from.  The changes will actually
appear on disk when you save the tar-file's buffer.
(defalias 'tar-subfile-mode #[(p) "\304\300!\203\n \204 \305\306!\210\307\302!\210	\204 \n?\202  \310	!\311V\211\2036 \312\313\314\315\316$\210\317\320!\210\315\321\322!\207\323\313\314\316#\207" [tar-superior-buffer p tar-subfile-mode buffer-auto-save-file-name boundp error "This buffer is not an element of a tar file" make-local-variable prefix-numeric-value 0 add-hook write-file-functions tar-subfile-save-buffer nil t auto-save-mode -1 run-hooks tar-subfile-mode-hook remove-hook] 6 (#$ . 38618) "P"])
(defalias 'tar-mode-revert #[(&optional no-auto-save no-confirm) "\304\216\305\306 \203\f \307 \210\310	\n\311#\210\312!\203 \313!\210\314 *\207" [revert-buffer-function no-auto-save no-confirm tar-data-buffer ((byte-code "\300 \204 \301 \210\300\207" [tar-data-swapped-p tar-swap-data] 1)) nil tar-data-swapped-p tar-swap-data revert-buffer preserve-modes buffer-live-p kill-buffer tar-mode] 4])
#@73 Move cursor vertically down ARG lines and to the start of the filename.
(defalias 'tar-next-line #[(arg) "y\210\301`\302\"\206 `b\207" [arg next-single-property-change mouse-face] 3 (#$ . 39774) "p"])
#@71 Move cursor vertically up ARG lines and to the start of the filename.
(defalias 'tar-previous-line #[(arg) "\301[!\207" [arg tar-next-line] 2 (#$ . 39983) "p"])
#@69 Return the tar-descriptor of the current line, or signals an error.
(defalias 'tar-current-descriptor #[(&optional noerror) "\302e\303 \"8\206 	?\205 \304\305!\207" [tar-parse-info noerror count-lines line-beginning-position error "This line does not describe a tar-file entry"] 3 (#$ . 40151)])
(defalias 'tar-get-descriptor #[nil "\304 \211\305H	>\204 \306\307!\210\310H\305H	>\204 \306\311!\210\312H\211\203r \306\313\314=\2033 \315\202p \316=\203= \317\202p \320=\203G \321\202p \322=\203Q \323\202p \324=\203[ \325\202p \326=\203e \327\202p \330=\203o \331\202p \332\"\210\333\n!\203| \334\335!\210+\207" [descriptor cl-struct-tar-header-tags size link-p tar-current-descriptor 0 error "tar-header-size accessing a non-tar-header" 6 "tar-header-link-type accessing a non-tar-header" 9 "This is %s, not a real file" 5 "a directory" 20 "a tar directory header" 28 "a next has longname" 29 "a multivolume-continuation" 35 "a sparse entry" 38 "a volume header" 55 "an extended pax header" "a link" zerop message "This is a zero-length file"] 5])
#@55 Extract a file whose tar directory line you click on.
(defalias 'tar-mouse-extract #[(event) "r\302\211:\203 \3038:\203 \303\202 \3048\202  \305 `\306\307F)\211@)!q\210\212\211:\203A \3038:\203; \303\202< \3048\202G \305 `\306\307F)\310	8\206` 	A@:\203] 	A@@\202` 	A@)b\210\311 \210*\312\211:\203\200 \3038:\203z \303\202{ \3048\202\206 \305 `\306\307F)\211@)!\210\211:\203\245 \3038:\203\237 \303\202\240 \3048\202\253 \305 `\306\307F)\310	8\206\304 	A@:\203\301 	A@@\202\304 	A@)b\210\313 \207" [event position window-buffer 2 1 selected-window (0 . 0) 0 5 tar-get-descriptor select-window tar-extract] 6 (#$ . 41223) "e"])
#@36 Helper function for `tar-extract'.
(defalias 'tar-file-name-handler #[(op &rest args) "\303=\206 \304\305\n\")\207" [op file-name-handler-alist args file-exists-p nil apply] 3 (#$ . 41878)])
#@70 In Tar mode, extract this entry of the tar file into its own buffer.
(defalias 'tar-extract #[(&optional other-window-p) "\306=\307 \211\310H>\204 \311\312!\210\n\313H\n\310H>\204# \311\314!\210\n\315H\n\310H>\2043 \311\316!\210\n\317H\2118\\9p:\320 ;\321\f!\322;\323R<=\206T 	>\324;\325\326\327\f\"\203e \f\202h \330\fPQ!?\331?!@\332\211AB@\204U\333<!@r@q\210CB\334C)\320@!<\334ArDq\210\332E89}\2108b\210F\206\315 G\203\301 G\f98Z\"\206\315 \335H\336\337\fpB\334#@)\211E\203\334 \340E!\341=\203\345 \34289\334#E\343\344!\203\375 \345E\346\"\203\375 r@q\210\347\332!\210)~\210\35089E@$\210*r@q\210eb\210?I\351I!J\352K\334\"\210r:q\210L)L\353<!\210\354\332!\210BC\355 \210\356\357!\210:/\356\360!\210\n0>=\361\317!\210)	\203f\362@A\205b\363\"\202\202\364=\203s\365@!\202\202\203~\366@!\202\202\367@!.\207" [other-window-p view-p descriptor cl-struct-tar-header-tags name size view tar-get-descriptor 0 error "tar-header-name accessing a non-tar-header" 2 "tar-header-size accessing a non-tar-header" 6 "tar-header-data-start accessing a non-tar-header" 1 buffer-name file-name-nondirectory " (" ")" expand-file-name "!" string-match "/" "./" get-file-buffer nil generate-new-buffer t (("" . tar-file-name-handler)) find-operation-coding-system insert-file-contents coding-system-type undecided detect-coding-region default-value enable-multibyte-characters coding-system-get :for-unibyte set-buffer-multibyte decode-coding-region abbreviate-file-name set-buffer-file-coding-system rename-buffer set-buffer-modified-p normal-mode make-local-variable tar-superior-buffer tar-superior-descriptor tar-subfile-mode view-buffer kill-buffer-if-not-modified display display-buffer switch-to-buffer-other-window switch-to-buffer start end tar-buffer tarname bufname buffer-read-only read-only-p new-buffer-file-name buffer just-created undo-list buffer-undo-list tar-data-buffer coding coding-system-for-read set-auto-coding-function file-name-handler-alist buffer-file-name buffer-file-truename last-coding-system-used default-directory] 7 (#$ . 42079) nil])
#@65 In Tar mode, find this entry of the tar file in another window.
(defalias 'tar-extract-other-window #[nil "\300\301!\207" [tar-extract t] 2 (#$ . 44224) nil])
#@68 In Tar mode, display this entry of the tar file in another window.
(defalias 'tar-display-other-window #[nil "\300\301!\207" [tar-extract display] 2 (#$ . 44389) nil])
#@52 In Tar mode, view the tar file entry on this line.
(defalias 'tar-view #[nil "\300\301!\207" [tar-extract view] 2 (#$ . 44563) nil])
#@57 Read a file name with this line's entry as the default.
(defalias 'tar-read-file-name #[(&optional prompt) "\204 \305\306\307 \211\310H\n>\204 \311\312!\210	\313H)!\306\314\315!\316$!\317\f!\320\230\2045 \321\f!\203L \322\323\f\"\203E \f\310\211\225SO\202F \f\324\317!Q\f*\207" [prompt cl-x cl-struct-tar-header-tags default-file target "Copy to: " expand-file-name tar-current-descriptor 0 error "tar-header-name accessing a non-tar-header" 2 read-file-name file-name-directory nil file-name-nondirectory "" file-directory-p string-match "/$" "/"] 7 (#$ . 44702)])
#@167 In Tar mode, extract this entry of the tar file into a file on disk.
If TO-FILE is not supplied, it is prompted for, defaulting to the name of
the current tar-entry.
(defalias 'tar-copy #[(&optional to-file) "\306 \211\307H	>\204 \310\311!\210\312H\307H	>\204 \310\313!\210\314H\307H	>\204/ \310\315!\210\316H\211\\r\317 \203J \202K pq\210\320\n\321\"\322=\203p \320\321\"\322=\203p \322\321=\205j B\321\323\321\f\324\211\211\325&\210*\326\327\n#.\207" [descriptor cl-struct-tar-header-tags name size start end tar-get-descriptor 0 error "tar-header-name accessing a non-tar-header" 2 "tar-header-size accessing a non-tar-header" 6 "tar-header-data-start accessing a non-tar-header" 1 tar-data-swapped-p find-file-name-handler write-region jka-compr-handler no-conversion nil t message "Copied tar entry %s to %s" inhibit-file-name-handlers inhibit-file-name-operation tar-data-buffer to-file coding-system-for-write] 9 (#$ . 45287) (list (tar-read-file-name))])
#@112 In Tar mode, mark this sub-file to be deleted from the tar file.
With a prefix argument, mark that many files.
(defalias 'tar-flag-deleted #[(p &optional unflag) "\304 \210\305!\306	\nW\2038 \307!\203$ \310\311!\210\203! \312\202\" \313c\210\306W\203. \314\202/ \311y\210	T\211\202\n *m?\205@ \315u\207" [p i #1=#:--cl-dotimes-temp-- unflag beginning-of-line abs 0 tar-current-descriptor delete-char 1 " " "D" -1 36] 3 (#$ . 46299) "p"])
#@124 In Tar mode, un-mark this sub-file if it is marked to be deleted.
With a prefix argument, un-mark that many files forward.
(defalias 'tar-unflag #[(p) "\301\302\"\207" [p tar-flag-deleted t] 3 (#$ . 46751) "p"])
#@125 In Tar mode, un-mark this sub-file if it is marked to be deleted.
With a prefix argument, un-mark that many files backward.
(defalias 'tar-unflag-backwards #[(p) "\301[\302\"\207" [p tar-flag-deleted t] 3 (#$ . 46971) "p"])
#@54 Expunge the tar-entry specified by the current line.
(defalias 'tar-expunge-internal #[nil "\304 \305 \305\306!|\210\307	\"r\nq\210\310H>\204 \311\312!\210\313H\2066 \310H>\2041 \311\314!\210\315H\316Z\317!|*\207" [descriptor tar-parse-info tar-data-buffer cl-struct-tar-header-tags tar-current-descriptor line-beginning-position 2 delq 0 error "tar-header-header-start accessing a non-tar-header" 16 "tar-header-data-start accessing a non-tar-header" 1 512 tar-header-data-end] 3 (#$ . 47202)])
#@163 In Tar mode, delete all the archived files flagged for deletion.
This does not modify the disk image; you must save the tar file itself
for this to be permanent.
(defalias 'tar-expunge #[(&optional noconfirm) "\204\n \302\303!\205> \304\212eb\210m\204) \305\306!\203# \307 \210	T\202 \310y\210\202 \311 \210)\312	!\2039 \313\314!\202= \313\315	\")\207" [noconfirm n y-or-n-p "Expunge files marked for deletion? " 0 looking-at "D" tar-expunge-internal 1 tar-pad-to-blocksize zerop message "Nothing to expunge." "%s files expunged.  Be sure to save this buffer."] 3 (#$ . 47716) nil])
#@49 Remove the stars at the beginning of each line.
(defalias 'tar-clear-modification-flags #[nil "\212eb\210m?\205 g\300=\204 \301\302!\210\303c\210\302y\210\202 )\207" [32 delete-char 1 " "] 2 (#$ . 48310) nil])
#@367 Change the user-id associated with this entry in the tar file.
If this tar file was written by GNU tar, then you will be able to edit
the user id as a string; otherwise, you must edit it as a number.
You can force editing as a number by calling this with a prefix arg.
This does not modify the disk image; you must save the tar file itself
for this to be permanent.
(defalias 'tar-chown-entry #[(new-uid) ";\203$ \306 \211\307H\n>\204 \310\311!\210	\312I\210)\313\314\f\"\315P\"\207\306 \211\307H\n>\2043 \310\316!\210\317I\210)\313\320\321\"\307\322O\323P\"\207" [new-uid #1=#:--cl-x-- cl-struct-tar-header-tags tar-uname-offset tar-file-name-coding-system #2=#:--cl-x-- tar-current-descriptor 0 error "tar-header-uname storing a non-tar-header" 12 tar-alter-one-field encode-coding-string " " "tar-header-uid storing a non-tar-header" 4 format "%6o" 6 "  " tar-uid-offset] 6 (#$ . 48530) (list (let ((descriptor (tar-current-descriptor))) (if (or current-prefix-arg (not (tar-header-magic descriptor))) (read-number "New UID number: " (format "%s" (tar-header-uid descriptor))) (read-string "New UID string: " (tar-header-uname descriptor)))))])
#@369 Change the group-id associated with this entry in the tar file.
If this tar file was written by GNU tar, then you will be able to edit
the group id as a string; otherwise, you must edit it as a number.
You can force editing as a number by calling this with a prefix arg.
This does not modify the disk image; you must save the tar file itself
for this to be permanent.
(defalias 'tar-chgrp-entry #[(new-gid) ";\203$ \306 \211\307H\n>\204 \310\311!\210	\312I\210)\313\314\f\"\315P\"\207\306 \211\307H\n>\2043 \310\316!\210\317I\210)\313\320\321\"\307\322O\323P\"\207" [new-gid #1=#:--cl-x-- cl-struct-tar-header-tags tar-gname-offset tar-file-name-coding-system #2=#:--cl-x-- tar-current-descriptor 0 error "tar-header-gname storing a non-tar-header" 13 tar-alter-one-field encode-coding-string " " "tar-header-gid storing a non-tar-header" 5 format "%6o" 6 "  " tar-gid-offset] 6 (#$ . 49697) (list (let ((descriptor (tar-current-descriptor))) (if (or current-prefix-arg (not (tar-header-magic descriptor))) (read-number "New GID number: " (format "%s" (tar-header-gid descriptor))) (read-string "New GID string: " (tar-header-gname descriptor)))))])
#@158 Change the name associated with this entry in the tar file.
This does not modify the disk image; you must save the tar file itself
for this to be permanent.
(defalias 'tar-rename-entry #[(new-name) "\306\230\203\n \307\310!\210\311	\"\312 \313\314H>\204  \307\315!\210\316H\203* \307\317!\210\fG\320V\203i \321\322\f\211G\323Z#\203i \314\224\324W\203i \314H>\204O \307\325!\210\326H\327\232\204] \330\331\"\210\f\314\211\224O\f\314\225\313O\fG\320V\203t \307\332!\210\314H>\204\200 \307\333!\210\334I\210\330\314\f\335\323\314\"P\314\323O\"\210\n\205\243 \330\n\335\324\314\"P\314\324O\"+\207" [new-name tar-file-name-coding-system prefix descriptor encoded-new-name cl-struct-tar-header-tags "" error "zero length name" encode-coding-string tar-current-descriptor nil 0 "tar-header-header-start accessing a non-tar-header" 16 "Rename with @LongLink format is not implemented" 98 string-match "/" 99 155 "tar-header-magic accessing a non-tar-header" 11 "ustar " tar-alter-one-field "ustar 00" "name too long" "tar-header-name storing a non-tar-header" 2 make-string tar-magic-offset tar-prefix-offset] 6 (#$ . 50866) (list (read-string "New name: " (tar-header-name (tar-current-descriptor))))])
#@169 Change the protection bits associated with this entry in the tar file.
This does not modify the disk image; you must save the tar file itself
for this to be permanent.
(defalias 'tar-chmod-entry #[(new-mode) "\304 \211\305H	>\204 \306\307!\210\310\nI\210)\311\312\313\n\"\305\314O\315P\"\207" [#1=#:--cl-x-- cl-struct-tar-header-tags new-mode tar-mode-offset tar-current-descriptor 0 error "tar-header-mode storing a non-tar-header" 3 tar-alter-one-field format "%6o" 6 "  "] 6 (#$ . 52090) (list (tar-parse-octal-integer-safe (read-string "New protection (octal): ")))])
(defalias 'tar-alter-one-field #[(data-position new-data-string &optional descriptor) "\204 \306 i\307 \310y\210`\311!\312\261\210|\210\313y\210\314	!\210)\315 \204+ \316\317\320C\"\210r\nq\210\321H>\204; \322\323!\210\310H\324Z\211\\b\210``G\\|\210 \204Z \325!\203` \316\317\326C\"\210c\210\327\f\211\324\\{!!\f\"\\b\210``\330\\|\210\331\332!\"c\210\321H>\204\214 \322\333!\210\330!I\210\334\f\211\324\\{!\321H>\204\246 \322\335!\210\336H#+\207" [descriptor col tar-data-buffer cl-struct-tar-header-tags start data-position tar-current-descriptor line-beginning-position 1 tar-header-block-summarize "\n" -1 move-to-column tar-data-swapped-p signal cl-assertion-failed (tar-data-swapped-p) 0 error "tar-header-data-start accessing a non-tar-header" 512 multibyte-string-p (not (or enable-multibyte-characters (multibyte-string-p new-data-string))) tar-header-block-checksum 8 format "%6o  " "tar-header-checksum storing a non-tar-header" tar-header-block-check-checksum "tar-header-name accessing a non-tar-header" 2 new-data-string enable-multibyte-characters chk tar-chk-offset] 6])
(defalias 'tar-octal-time #[(timeval) "@A@\303\304\305\n\306\"\307\305\310\n\311\"\312\"\310	\313\"\314V\203\" \312\202# \314\"\310	\315\"$*\207" [timeval lobits hibits format "%05o%01o%05o" lsh -2 logior logand 3 1 32768 0 32767] 8])
#@182 In tar subfile mode, save this buffer into its parent tar-file buffer.
This doesn't write anything to disk; you must save the parent tar-file buffer
to make your changes permanent.
(defalias 'tar-subfile-save-buffer #[nil "\306\300!\203\n \204 \307\310!\210\306\301!\203 	\204 \307\311!\210p\n	\312$rq\210\f\313H%>\2046 \307\314!\210\f\315H&\f\313H%>\204H \307\316!\210\f\317H'\f\313H%>\204Z \307\320!\210\f\321H(\f)>\211*\204m \307\322!\210r+q\210&\211,\323(!\\-,-}\210ed|\210,b\210p.r$q\210\214~\210\324ed.$\210+deZ\323!/db\210\325/Z\313\"c\210\f\313H%>\204\302 \307\326!\210\f\321I\210~\210,)G*GZ0eb\2100y\210\3271\330\331\"\"\2102\203\363 \3273\332\333 !\334P\"\210)\335 \210,\336\337!\210\340\313!\210)\336\312!\210\341\342\343!\"\210\n4,\337\207" [tar-superior-buffer tar-superior-descriptor buffer-file-coding-system subfile-size descriptor coding boundp error "This buffer has no superior tar file buffer" "This buffer doesn't have an index into its superior tar file!" nil 0 "tar-header-data-start accessing a non-tar-header" 1 "tar-header-name accessing a non-tar-header" 2 "tar-header-size accessing a non-tar-header" 6 "Can't find this tar file entry in its parent tar file!" tar-roundup-512 encode-coding-region make-string "tar-header-size storing a non-tar-header" tar-alter-one-field format "%11o " tar-octal-time current-time " " tar-pad-to-blocksize set-buffer-modified-p t tar-next-line message "Saved into tar-buffer `%s'.  Be sure to save that buffer!" buffer-name subfile cl-struct-tar-header-tags start name size tar-parse-info head tar-data-buffer data-start data-end dest subfile-size-pad position tar-size-offset tar-update-datestamp tar-time-offset last-coding-system-used] 6 (#$ . 54027) nil])
#@100 If we are being anal about tar file blocksizes, fix up the current buffer.
Leaves the region wide.
(defalias 'tar-pad-to-blocksize #[nil "\205\202 	GS	8\211\306H>\204 \307\310!\210\n\311H\n\306H>\204& \307\312!\210\n\313H\211\2032 \306\202A \n\306H>\204> \307\314!\210\n\315H\f\\\316\313\"\211\211eZ\245_\\rq\210e\\dV\203u d|\202\200 db\210\317dZ\306\"c.	\207" [tar-anal-blocksize tar-parse-info last-desc cl-struct-tar-header-tags start link-p 0 error "tar-header-data-start accessing a non-tar-header" 1 "tar-header-link-type accessing a non-tar-header" 9 "tar-header-size accessing a non-tar-header" 6 ash make-string size data-end bbytes pad-to tar-data-buffer goal-end] 5 (#$ . 55802)])
(defalias 'tar-write-region-annotate #[(start end) "\206 \302 ??\205 \303 \210	q\210\304\207" [start tar-data-buffer tar-data-swapped-p tar-clear-modification-flags nil] 1])
(provide 'tar-mode)
