Function: url-cache-create-filename-human-readable

url-cache-create-filename-human-readable is a byte-compiled function defined in url-cache.el.gz.

Signature

(url-cache-create-filename-human-readable URL)

Documentation

Return a filename in the local cache for URL.

Source Code

;; Defined in /usr/src/emacs/lisp/url/url-cache.el.gz
(defun url-cache-create-filename-human-readable (url)
  "Return a filename in the local cache for URL."
  (if url
      (let* ((urlobj (url-generic-parse-url url))
	     (protocol (url-type urlobj))
	     (hostname (url-host urlobj))
	     (host-components
	      (cons
	       (user-real-login-name)
	       (cons (or protocol "file")
		     (reverse (split-string (or hostname "localhost")
					    "\\.")))))
	     (fname    (url-filename urlobj)))
	(if (and fname (/= (length fname) 0) (= (aref fname 0) ?/))
	    (setq fname (substring fname 1 nil)))
	(if fname
	    (let ((slash nil))
	      (setq fname
		    (mapconcat
                     (lambda (x)
                       (cond
                        ((and (= ?/ x) slash)
                         (setq slash nil)
                         "%2F")
                        ((= ?/ x)
                         (setq slash t)
                         "/")
                        (t
                         (setq slash nil)
                         (char-to-string x)))) fname ""))))

	(setq fname (and fname
			 (mapconcat
                          (lambda (x)
                            (if (= x ?~) "" (char-to-string x)))
			  fname ""))
	      fname (cond
		     ((null fname) nil)
		     ((or (string= "" fname) (string= "/" fname))
		      url-directory-index-file)
		     ((= (string-to-char fname) ?/)
		      (if (string= (substring fname -1 nil) "/")
			  (concat fname url-directory-index-file)
			(substring fname 1 nil)))
		     (t
		      (if (string= (substring fname -1 nil) "/")
			  (concat fname url-directory-index-file)
			fname))))
	(and fname
	     (expand-file-name fname
			       (expand-file-name
				(mapconcat 'identity host-components "/")
				url-cache-directory))))))