File: //usr/share/emacs/27.1/lisp/net/tramp-archive.elc
;ELC
;;; Compiled
;;; in Emacs version 27.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 "\301_\302\303!\210)\304\305\306\"\210\304\307\310\"\207" [max-specpdl-size 2 require tramp-gvfs autoload dired-uncache "dired" url-tramp-convert-url-to-tramp "url-tramp"] 3)
#@49 Non-nil when file archive support is available.
(defvar tramp-archive-enabled (featurep 'dbusbind) (#$ . 596))
(byte-code "\302\207" [tramp-gvfs-enabled tramp-archive-enabled nil] 1)
#@88 List of suffixes which indicate a file archive.
It must be supported by libarchive(3).
(defconst tramp-archive-suffixes '("7z" "apk" "ar" "cab" "CAB" "cpio" "deb" "depot" "exe" "iso" "jar" "lzh" "LZH" "msu" "MSU" "mtree" "odb" "odf" "odg" "odp" "ods" "odt" "pax" "rar" "rpm" "shar" "tar" "tbz" "tgz" "tlz" "txz" "tzst" "warc" "xar" "xpi" "xps" "zip" "ZIP") (#$ . 787))
#@91 List of suffixes which indicate a compressed file.
It must be supported by libarchive(3).
(defconst tramp-archive-compression-suffixes '("bz2" "gz" "lrz" "lz" "lz4" "lzma" "lzo" "uu" "xz" "Z" "zst") (#$ . 1162))
#@49 Regular expression matching archive file names.
(defalias 'tramp-archive-autoload-file-name-regexp '(macro . #[0 "\300\207" [(concat "\\`" "\\(" ".+" "\\." (regexp-opt tramp-archive-suffixes) "\\(?:" "\\." (regexp-opt tramp-archive-compression-suffixes) "\\)*" "\\)" "\\(" "/" ".*" "\\)" "\\'")] 1 (#$ . 1380)]))
#@49 Regular expression matching archive file names.
(defconst tramp-archive-file-name-regexp (byte-code "\3021 \303\304!\305\304 !\306\2600\207\210\307\207" [tramp-archive-suffixes tramp-archive-compression-suffixes (error) "\\`\\(.+\\." regexp-opt "\\(?:\\." "\\)*\\)\\(/.*\\)\\'" nil] 5) (#$ . 1699))
#@35 Method name for archives in GVFS.
(defconst tramp-archive-method "archive" (#$ . 2007))
#@50 List of all methods `tramp-gvfs-methods' offers.
(defconst tramp-archive-all-gvfs-methods (byte-code "\301\302NA@A\303\304\"\262\303\305\"\211\262\262B\207" [tramp-archive-method tramp-gvfs-methods custom-type mapcar last car] 5) (#$ . 2101))
#@132 Alist of handler functions for file archive method.
Operations not mentioned here will be handled by the default Emacs primitives.
(defconst tramp-archive-file-name-handler-alist '((access-file . tramp-archive-handle-access-file) (add-name-to-file . tramp-archive-handle-not-implemented) (copy-file . tramp-archive-handle-copy-file) (delete-directory . tramp-archive-handle-not-implemented) (delete-file . tramp-archive-handle-not-implemented) (directory-file-name . tramp-archive-handle-directory-file-name) (directory-files . tramp-handle-directory-files) (directory-files-and-attributes . tramp-handle-directory-files-and-attributes) (dired-compress-file . tramp-archive-handle-not-implemented) (dired-uncache . tramp-archive-handle-dired-uncache) (exec-path . ignore) (file-accessible-directory-p . tramp-handle-file-accessible-directory-p) (file-acl . ignore) (file-attributes . tramp-archive-handle-file-attributes) (file-directory-p . tramp-handle-file-directory-p) (file-equal-p . tramp-handle-file-equal-p) (file-executable-p . tramp-archive-handle-file-executable-p) (file-exists-p . tramp-handle-file-exists-p) (file-in-directory-p . tramp-handle-file-in-directory-p) (file-local-copy . tramp-archive-handle-file-local-copy) (file-modes . tramp-handle-file-modes) (file-name-all-completions . tramp-archive-handle-file-name-all-completions) (file-name-case-insensitive-p . ignore) (file-name-completion . tramp-handle-file-name-completion) (file-newer-than-file-p . tramp-handle-file-newer-than-file-p) (file-notify-add-watch . ignore) (file-notify-rm-watch . ignore) (file-notify-valid-p . ignore) (file-ownership-preserved-p . ignore) (file-readable-p . tramp-archive-handle-file-readable-p) (file-regular-p . tramp-handle-file-regular-p) (file-selinux-context . tramp-handle-file-selinux-context) (file-symlink-p . tramp-handle-file-symlink-p) (file-system-info . tramp-archive-handle-file-system-info) (file-truename . tramp-archive-handle-file-truename) (file-writable-p . ignore) (find-backup-file-name . ignore) (insert-directory . tramp-archive-handle-insert-directory) (insert-file-contents . tramp-archive-handle-insert-file-contents) (load . tramp-archive-handle-load) (make-auto-save-file-name . ignore) (make-directory . tramp-archive-handle-not-implemented) (make-directory-internal . tramp-archive-handle-not-implemented) (make-nearby-temp-file . tramp-handle-make-nearby-temp-file) (make-process . ignore) (make-symbolic-link . tramp-archive-handle-not-implemented) (process-file . ignore) (rename-file . tramp-archive-handle-not-implemented) (set-file-acl . ignore) (set-file-modes . tramp-archive-handle-not-implemented) (set-file-selinux-context . ignore) (set-file-times . tramp-archive-handle-not-implemented) (set-visited-file-modtime . tramp-handle-set-visited-file-modtime) (shell-command . tramp-archive-handle-not-implemented) (start-file-process . tramp-archive-handle-not-implemented) (temporary-file-directory . tramp-archive-handle-temporary-file-directory) (unhandled-file-name-directory . ignore) (vc-registered . ignore) (verify-visited-file-modtime . tramp-handle-verify-visited-file-modtime) (write-region . tramp-archive-handle-not-implemented)) (#$ . 2357))
#@100 Like `tramp-file-name-for-operation', but for archive file name syntax.
(fn OPERATION &rest ARGS)
(defalias 'tramp-archive-file-name-for-operation #[385 "\300K\301\302\303\304\305!\306\"\307$\216\300\310M\210\311\312#)\207" [tramp-tramp-file-p make-byte-code 0 "\301\300M\207" vconcat vector [tramp-tramp-file-p] 2 tramp-archive-file-name-p apply tramp-file-name-for-operation] 9 (#$ . 5570)])
(put 'tramp-archive-file-name-for-operation 'byte-optimizer 'byte-compile-inline-expand)
#@169 Invoke normal file name handler for OPERATION.
First arg specifies the OPERATION, second arg ARGS is a list of
arguments to pass to the OPERATION.
(fn OPERATION ARGS)
(defalias 'tramp-archive-run-real-handler #[514 "\302=\205 B\303\"*\207" [inhibit-file-name-operation inhibit-file-name-handlers tramp-archive-file-name-handler apply] 5 (#$ . 6064)])
#@171 Invoke the file archive related OPERATION.
First arg specifies the OPERATION, second arg ARGS is a list of
arguments to pass to the OPERATION.
(fn OPERATION &rest ARGS)
(defalias 'tramp-archive-file-name-handler #[385 "\204\f \306 \210\307\"\207\310\311#\312!\211\203 \307\313C\"\203'