;ELC   
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



(require 'url-parse)
#@60 Convert URL to a fully specified URL, and canonicalize it.
(autoload 'url-expand-file-name "url-expand" '(#$ . 105))
#@63 Dissect the current buffer and return a list of MIME handles.
(autoload 'mm-dissect-buffer "mm-decode" '(#$ . 228))
#@31 Get PROPERTY of a URL SCHEME.
(autoload 'url-scheme-get-property "url-methods" '(#$ . 350))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315&\207" [custom-declare-variable url-handler-mode funcall function #[0 "\300\207" [nil] 1 ""] "Non-nil if Url-Handler mode is enabled.\nSee the `url-handler-mode' command\nfor 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 `url-handler-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :type boolean :group url] 12)
#@857 Handle URLs as if they were file names throughout Emacs.
After switching on this minor mode, Emacs file primitives handle
URLs.  For instance:

This is a minor mode.  If called interactively, toggle the
`Url-Handler mode' mode.  If the prefix argument is positive, enable
the mode, and if it is zero or negative, disable the mode.

If called from Lisp, toggle the mode if ARG is `toggle'.  Enable the
mode if ARG is nil, omitted, or is a positive number.  Disable the
mode if ARG is a negative number.

To check whether the minor mode is enabled in the current buffer,
evaluate `(default-value \='url-handler-mode)'.

The mode's hook is called both when the mode is enabled and when it is
disabled.

  (file-exists-p "https://www.gnu.org/")
  => t

and `C-x C-f https://www.gnu.org/ RET' will give you the HTML at
that URL in a buffer.

(fn &optional ARG)
(defalias 'url-handler-mode #[256 "\304 \305\302\306=\203 \307\302!?\202! \247\203  \310W\203  \311\202! \312\"\210\313\300!\2038 \314\302\"\307\302!\2038 \302B\314\315\316	\"	\"\n\203J \316B	B\317\320\307\302!\203V \321\202W \322\"\210\323\324!\203 \325\302!\210\304 \203o \211\304 \232\203 \326\327\307\302!\203{ \330\202| \331\332#\210\210\333 \210\307\302!\207" [global-minor-modes file-name-handler-alist url-handler-mode url-handler-regexp current-message set-default toggle default-value 1 nil t boundp delq rassq url-file-handler run-hooks url-handler-mode-hook url-handler-mode-on-hook url-handler-mode-off-hook called-interactively-p any customize-mark-as-set message "Url-Handler mode %sabled%s" "en" "dis" "" force-mode-line-update] 6 (#$ . 983) (byte-code "\203\n \301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar url-handler-mode-hook nil)
(byte-code "\301\302N\204\f \303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205# \310\211%\210\314\315\316\317\320DD\321\322\323\324\325\326\327\330\331&\207" [url-handler-mode-map url-handler-mode-hook variable-documentation put "Hook run after entering or leaving `url-handler-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode url-handler-mode boundp custom-declare-variable url-handler-regexp funcall function #[0 "\300\207" ["\\`\\(?:https?\\|ftp\\|file\\|nfs\\|ssh\\|scp\\|rsync\\|telnet\\)://"] 1 ""] "Regular expression for URLs handled by `url-handler-mode'.\nWhen URL Handler mode is enabled, this regular expression is\nadded to `file-name-handler-alist'.\n\nSome valid URL protocols just do not make sense to visit\ninteractively (about, data, info, irc, mailto, etc.).  This\nregular expression avoids conflicts with local files that look\nlike URLs (Gnus is particularly bad at this)." :group url :type regexp :version "25.1" :set #[514 "\300\301!\210\302\"\210\211\205 \300 \207" [url-handler-mode 0 set-default] 6 "\n\n(fn SYMBOL VALUE)"]] 12)
#@23 

(fn OPERATION ARGS)
(defalias 'url-run-real-handler #[514 "\302=\205 	B\303\"*\207" [inhibit-file-name-operation inhibit-file-name-handlers url-file-handler apply] 5 (#$ . 3987)])
#@27 Check for recursive load.
(defvar url-file-handler-load-in-progress nil (#$ . 4183))
#@214 Function called from the `file-name-handler-alist' routines.
OPERATION is what needs to be done (`file-exists-p', etc.).
ARGS are the arguments that would have been passed to OPERATION.

(fn OPERATION &rest ARGS)
(defalias 'url-file-handler #[385 "\203 	\203 \305\"\207\3062L \nB\211\205I \211@\211;\203B \307!\310!>\2043 \311\312\313D\"\210\211\314H\262\f\235\203B \315\306\316\"\210A\266\202\202 \2620\203W \317\320#\202\242 \321N\322\204p \323\324\325\326\"!!\203p \327\330\"\210\203\205 \331 \332\333\"\216\317\")\262\202\211 \305\"\262\334\335\336\203\226 \337\202\227 \340&\210\262)\207" [load-in-progress url-file-handler-load-in-progress default-directory cl-struct-url-tags url-tramp-protocols url-run-real-handler :do url-generic-parse-url type-of signal wrong-type-argument url 1 throw t apply url-tramp-file-handler url-file-handlers nil fboundp intern-soft format "url-%s" error "Missing URL handler mapping for %s" match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] url-debug handlers "%s %S%S => %S" "Hooked" "Real"] 11 (#$ . 4275)])
#@26 

(fn ARG &rest IGNORED)
(defalias 'url-file-handler-identity #[385 "\207" [] 3 (#$ . 5401)])
(byte-code "\300\301\302\303#\210\300\304\302\305#\210\300\306\302\307#\210\300\310\302\311#\210\300\312\302\313#\210\300\314\302\315#\210\300\316\302\317#\210\300\320\302\321#\210\300\322\302\323#\210\300\324\302\323#\210\300\325\302\323#\207" [put file-readable-p url-file-handlers url-file-exists-p substitute-in-file-name url-file-handler-identity file-name-absolute-p #[128 "\300\207" [t] 2 "\n\n(fn &rest IGNORED)"] expand-file-name url-handler-expand-file-name directory-file-name url-handler-directory-file-name file-name-directory url-handler-file-name-directory unhandled-file-name-directory url-handler-unhandled-file-name-directory file-remote-p url-handler-file-remote-p file-writable-p ignore file-symlink-p vc-registered] 4)
#@28 

(fn FILE &optional BASE)
(defalias 'url-handler-expand-file-name #[513 "\300!\203 \301\302\"\207\303\"\207" [file-name-absolute-p expand-file-name "/" url-expand-file-name] 5 (#$ . 6242)])
#@12 

(fn DIR)
(defalias 'url-handler-directory-file-name #[257 "\300\301\"\203 \207\302\303C\"\207" [string-suffix-p "//" url-run-real-handler directory-file-name] 4 (#$ . 6444)])
#@17 

(fn FILENAME)
(defalias 'url-handler-unhandled-file-name-directory #[257 "\301!\302!>\204 \303\304\305D\"\210\211\306H\307\232\2052 \310\302!>\204* \303\304\305D\"\210\311H!\2062 \312\207" [cl-struct-url-tags url-generic-parse-url type-of signal wrong-type-argument url 1 "file" file-name-as-directory 6 "/"] 7 (#$ . 6630)])
#@12 

(fn DIR)
(defalias 'url-handler-file-name-directory #[257 "\301!\302!>\204 \303\304\305D\"\210\211\306H\307\232\204: \302!>\204) \303\304\305D\"\210\211\310H\211\311\230\262\203: \312\313P!\207\314\315C\"\207" [cl-struct-url-tags url-generic-parse-url type-of signal wrong-type-argument url 1 "file" 6 "" url-handler-file-name-directory "/" url-run-real-handler file-name-directory] 6 (#$ . 6972)])
#@52 

(fn FILENAME &optional IDENTIFICATION CONNECTED)
(defalias 'url-handler-file-remote-p #[769 "\301!\302!>\204 \303\304\305D\"\210\211\306H\205\302!>\204' \303\304\305D\"\210\211\306H\307\232?\205\310\267\202\202 \302!>\204E \303\304\305D\"\210\211\306H\207\302!>\204X \303\304\305D\"\210\211\311H\207\302!>\204k \303\304\305D\"\210\211\312H\207\302!>\204~ \303\304\305D\"\210\211\313H\207\314\302!>\204\222 \303\304\305D\"\210\306H\302!>\204\244 \303\304\305D\"\210\311H\302!>\204\267 \303\304\305D\"\210\312H\302!>\204\312 \303\304\305D\"\210\211\315H\206\372 \302!>\204\337 \303\304\305D\"\210\211\306H\205\372 \316\302!>\204\365 \303\304\305D\"\210\306H\317\"\262\320\305\321\321\211\211\211\211\322\211&\266\204!\207" [cl-struct-url-tags url-generic-parse-url type-of signal wrong-type-argument url 1 "file" #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (method 54 user 73 host 92 localname 111)) 2 4 6 url-recreate-url 5 url-scheme-get-property default-port record nil t] 23 (#$ . 7390)])
#@341 Copy URL to NEWNAME.  Both arguments must be strings.
Signal a `file-already-exists' error if file NEWNAME already
exists, unless a third argument OK-IF-ALREADY-EXISTS is supplied
and non-nil.  An integer as third argument means request
confirmation if NEWNAME already exists.

(fn URL NEWNAME &optional OK-IF-ALREADY-EXISTS &rest IGNORED)
(defalias 'url-copy-file #[898 "\301!\203 \203 \250\203 \302\303\304\"!\204 \305\306\307D\"\210\310!\206- \305\311\312\313E\"r\211q\210\314\315!)\316 \317\"\210)\320!\210\321!\207" [mm-attachment-file-modes file-exists-p yes-or-no-p format "File %s already exists; copy to it anyway? " signal file-already-exists "File already exists" url-retrieve-synchronously file-missing "Opening URL" "No such file or directory" mm-dissect-buffer t default-file-modes mm-save-part-to-file kill-buffer mm-destroy-parts] 9 (#$ . 8488)])
(put 'copy-file 'url-file-handlers 'url-copy-file)
#@149 Copy URL into a temporary file on this machine.
Returns the name of the local copy, or nil, if FILE is directly
accessible.

(fn URL &rest IGNORED)
(defalias 'url-file-local-copy #[385 "\300\301!\302\303#\210\207" [make-temp-file "url" url-copy-file ok-if-already-exists] 7 (#$ . 9427)])
(put 'file-local-copy 'url-file-handlers 'url-file-local-copy)
#@552 Insert the body of a URL object.
BUFFER should be a complete URL buffer as returned by `url-retrieve'.
If the headers specify a coding-system (and current buffer is multibyte),
it is applied to the body before it is inserted.
Returns a list of the form (SIZE CHARSET), where SIZE is the size in bytes
of the inserted text and CHARSET is the charset that was specified in the
header, or nil if none was found.
BEG and END can be used to only insert a subpart of the body.
They count bytes from the beginning of the body.

(fn BUFFER &optional BEG END)
(defalias 'url-insert #[769 "rq\210\301\302!)r\211@q\210\203# e\\\203 e\\\202 d{\202% \303 )\2050 \304A@\305\"\306!\210\211\203A \307\310!\"\202B c\210GD\207" [enable-multibyte-characters mm-dissect-buffer t buffer-string mail-content-type-get charset mm-destroy-parts mm-decode-string mm-charset-to-coding-system] 10 (#$ . 9787)])
#@214 Insert the contents of BUFFER into current buffer.
This is like `url-insert', but also decodes the current buffer as
if it had been inserted from a file named URL.

(fn BUFFER URL &optional VISIT BEG END REPLACE)
(defalias 'url-insert-buffer-contents #[1538 "\203 \212`\301#\302!\210\203 e|\210`d|\210\211A@\2045 \303e`					&\210\211@\304	\"\206B D\262\266\202)\207" [buffer-file-name url-insert kill-buffer decode-coding-inserted-region after-insert-file-set-coding] 16 (#$ . 10692)])
#@44 

(fn URL &optional VISIT BEG END REPLACE)
(defalias 'url-insert-file-contents #[1281 "\300!\211\204 \301\302\303D\"\210\304\305!\203 \305#\210\306&\207" [url-retrieve-synchronously signal file-error "No Data" fboundp url-http--insert-file-helper url-insert-buffer-contents] 13 (#$ . 11209)])
(put 'insert-file-contents 'url-file-handlers 'url-insert-file-contents)
#@42 

(fn URL DIRECTORY &optional PREDICATE)
(defalias 'url-file-name-completion #[770 "\207" [] 4 (#$ . 11603)])
(put 'file-name-completion 'url-file-handlers 'url-file-name-completion)
#@23 

(fn FILE DIRECTORY)
(defalias 'url-file-name-all-completions #[514 "\300\207" [nil] 3 (#$ . 11793)])
(put 'file-name-all-completions 'url-file-handlers 'url-file-name-all-completions)
#@20 

(fn METHOD ARGS)
(defalias 'url-handlers-create-wrapper '(macro . #[514 "\300\301\302\303\304\"!\303\305\306	\307\"\206 \310#\311\312\313\314\315\316\317DE\320\321\320\322\"\"BBE\257\323\324\317D\325BB\326\317D\327\330\302\303\304\f\"!DFEE\207" [progn defun intern format "url-%s" "URL file-name-handler wrapper for `%s' call.\n---\n%s" documentation t "No original documentation." (setq url (url-generic-parse-url url)) when (url-type url) funcall url-scheme-get-property (url-type url) quote remq &rest &optional unless get ('url-file-handlers) put 'url-file-handlers function] 17 (#$ . 11985)]))
#@392 URL file-name-handler wrapper for `file-exists-p' call.
---
Return t if file FILENAME exists (whether or not you can read it).
Return nil if FILENAME does not exist, or if there was trouble
determining whether the file exists.
See also `file-readable-p' and `file-attributes'.
This returns nil for a symlink to a nonexistent file.
Use `file-symlink-p' to test for such links.

(fn FILENAME)
(defalias 'url-file-exists-p #[257 "\301!\262\302!>\204 \303\304\305D\"\210\211\306H\2051 \307\302!>\204* \303\304\305D\"\210\306H\310\"!\207" [cl-struct-url-tags url-generic-parse-url type-of signal wrong-type-argument url 1 url-scheme-get-property file-exists-p] 6 (#$ . 12610)])
(byte-code "\300\301N\204\f \302\300\301\303#\210\300\207" [file-exists-p url-file-handlers put url-file-exists-p] 4)
#@2125 URL file-name-handler wrapper for `file-attributes' call.
---
Return a list of attributes of file FILENAME.
Value is nil if specified file does not exist.

ID-FORMAT specifies the preferred format of attributes uid and gid (see
below) - valid values are `string' and `integer'.  The latter is the
default, but we plan to change that, so you should specify a non-nil value
for ID-FORMAT if you use the returned uid or gid.

To access the elements returned, the following access functions are
provided: `file-attribute-type', `file-attribute-link-number',
`file-attribute-user-id', `file-attribute-group-id',
`file-attribute-access-time', `file-attribute-modification-time',
`file-attribute-status-change-time', `file-attribute-size',
`file-attribute-modes', `file-attribute-inode-number', and
`file-attribute-device-number'.

Elements of the attribute list are:
 0. t for directory, string (name linked to) for symbolic link, or nil.
 1. Number of links to file.
 2. File uid as a string or (if ID-FORMAT is `integer' or a string value
  cannot be looked up) as an integer.
 3. File gid, likewise.
 4. Last access time, in the style of `current-time'.
  (See a note below about access time on FAT-based filesystems.)
 5. Last modification time, likewise.  This is the time of the last
  change to the file's contents.
 6. Last status change time, likewise.  This is the time of last change
  to the file's attributes: owner and group, access mode bits, etc.
 7. Size in bytes, as an integer.
 8. File modes, as a string of ten letters or dashes as in ls -l.
 9. An unspecified value, present only for backward compatibility.
10. inode number, as a nonnegative integer.
11. Filesystem device number, as an integer.

Large integers are bignums, so `eq' might not work on them.
On most filesystems, the combination of the inode and the device
number uniquely identifies the file.

On MS-Windows, performance depends on `w32-get-true-file-attributes',
which see.

On some FAT-based filesystems, only the date of last access is recorded,
so last access time will always be midnight of that day.

(fn FILENAME &optional ID-FORMAT)
(defalias 'url-file-attributes #[513 "\301!\262\302!>\204 \303\304\305D\"\210\306H\2052 \307\302!>\204* \303\304\305D\"\210\306H\310\"\"\207" [cl-struct-url-tags url-generic-parse-url type-of signal wrong-type-argument url 1 url-scheme-get-property file-attributes] 7 (#$ . 13420)])
(byte-code "\300\301N\204\f \302\300\301\303#\210\300\207" [file-attributes url-file-handlers put url-file-attributes] 4)
#@381 URL file-name-handler wrapper for `file-symlink-p' call.
---
Return non-nil if file FILENAME is the name of a symbolic link.
The value is the link target, as a string.
Return nil if FILENAME does not exist or is not a symbolic link,
of there was trouble determining whether the file is a symbolic link.

This function does not check whether the link target exists.

(fn FILENAME)
(defalias 'url-file-symlink-p #[257 "\301!\262\302!>\204 \303\304\305D\"\210\211\306H\2051 \307\302!>\204* \303\304\305D\"\210\306H\310\"!\207" [cl-struct-url-tags url-generic-parse-url type-of signal wrong-type-argument url 1 url-scheme-get-property file-symlink-p] 6 (#$ . 15969)])
(byte-code "\300\301N\204\f \302\300\301\303#\210\300\207" [file-symlink-p url-file-handlers put url-file-symlink-p] 4)
#@138 URL file-name-handler wrapper for `file-writable-p' call.
---
Return t if file FILENAME can be written or created by you.

(fn FILENAME)
(defalias 'url-file-writable-p #[257 "\301!\262\302!>\204 \303\304\305D\"\210\211\306H\2051 \307\302!>\204* \303\304\305D\"\210\306H\310\"!\207" [cl-struct-url-tags url-generic-parse-url type-of signal wrong-type-argument url 1 url-scheme-get-property file-writable-p] 6 (#$ . 16771)])
(byte-code "\300\301N\204\f \302\300\301\303#\210\300\207" [file-writable-p url-file-handlers put url-file-writable-p] 4)
#@538 URL file-name-handler wrapper for `file-directory-p' call.
---
Return t if FILENAME names an existing directory.
Return nil if FILENAME does not name a directory, or if there
was trouble determining whether FILENAME is a directory.

As a special case, this function will also return t if FILENAME is the
empty string ("").  This quirk is due to Emacs interpreting the
empty string (in some cases) as the current directory.

Symbolic links to directories count as directories.
See `file-symlink-p' to distinguish symlinks.

(fn FILENAME)
(defalias 'url-file-directory-p #[257 "\301!\262\302!>\204 \303\304\305D\"\210\211\306H\2051 \307\302!>\204* \303\304\305D\"\210\306H\310\"!\207" [cl-struct-url-tags url-generic-parse-url type-of signal wrong-type-argument url 1 url-scheme-get-property file-directory-p] 6 (#$ . 17334)])
(byte-code "\300\301N\204\f \302\300\301\303#\210\300\207" [file-directory-p url-file-handlers put url-file-directory-p] 4)
#@281 URL file-name-handler wrapper for `file-executable-p' call.
---
Return t if FILENAME can be executed by you.
For a directory, this means you can access files in that directory.
(It is generally better to use `file-accessible-directory-p' for that
purpose, though.)

(fn FILENAME)
(defalias 'url-file-executable-p #[257 "\301!\262\302!>\204 \303\304\305D\"\210\211\306H\2051 \307\302!>\204* \303\304\305D\"\210\306H\310\"!\207" [cl-struct-url-tags url-generic-parse-url type-of signal wrong-type-argument url 1 url-scheme-get-property file-executable-p] 6 (#$ . 18301)])
(byte-code "\300\301N\204\f \302\300\301\303#\210\300\207" [file-executable-p url-file-handlers put url-file-executable-p] 4)
#@725 URL file-name-handler wrapper for `directory-files' call.
---
Return a list of names of files in DIRECTORY.
There are four optional arguments:
If FULL is non-nil, return absolute file names.  Otherwise return names
 that are relative to the specified directory.
If MATCH is non-nil, mention only file names whose non-directory part
 matches the regexp MATCH.
If NOSORT is non-nil, the list is not sorted--its order is unpredictable.
 Otherwise, the list returned is sorted with `string-lessp'.
 NOSORT is useful if you plan to sort the result yourself.
If COUNT is non-nil and a natural number, the function will return
 COUNT number of file names (if so many are present).

(fn DIRECTORY &optional FULL MATCH NOSORT COUNT)
(defalias 'url-directory-files #[1025 "\301!\262\302!>\204 \303\304\305D\"\210\306H\2056 \307\302!>\204, \303\304\305D\"\210\306H\310\"$\207" [cl-struct-url-tags url-generic-parse-url type-of signal wrong-type-argument url 1 url-scheme-get-property directory-files] 9 (#$ . 19015)])
(byte-code "\300\301N\204\f \302\300\301\303#\210\300\207" [directory-files url-file-handlers put url-directory-files] 4)
#@366 URL file-name-handler wrapper for `file-truename' call.
---
Return the truename of FILENAME.
If FILENAME is not absolute, first expands it against `default-directory'.
The truename of a file name is found by chasing symbolic links
both at the level of the file and at the level of the directories
containing it, until no links are left at any level.

(fn FILENAME)
(defalias 'url-file-truename #[769 "\301!\262\302!>\204 \303\304\305D\"\210\306H\2054 \307\302!>\204+ \303\304\305D\"\210\306H\310\"#\207" [cl-struct-url-tags url-generic-parse-url type-of signal wrong-type-argument url 1 url-scheme-get-property file-truename] 8 (#$ . 20168)])
(byte-code "\300\301N\204\f \302\300\301\303#\210\304\305\306\"\207" [file-truename url-file-handlers put url-file-truename add-hook find-file-hook url-handlers-set-buffer-mode] 4)
#@69 Set correct modes for the current buffer if visiting a remote file.
(defalias 'url-handlers-set-buffer-mode #[0 "\205 	\303\304\305#)\266\203\205 \306\307!\207" [buffer-file-name url-handler-regexp inhibit-changing-match-data nil t string-match auto-save-mode 0] 7 (#$ . 21013)])
(provide 'url-handlers)
