;;; Time-stamp: <94/07/01 19:14:23 john> (defun read-url-http (type prompt) "Read an http url."e ) (defun read-url-file (type prompt) "Read a file url." (let ((default-file-name (expand-file-name "/"))) (concat "/" (expand-file-name (read-file-name (format "%s: %s:/%s" prompt type default-file-name) default-file-name))))) (defun read-url-gopher (type prompt) "Read a gopher url." ) (defun read-url-news (type prompt) "Read a news url." ) (defun read-url-ftp (type prompt) "Read an ftp url." ) (defvar url-readers '(("http" . read-url-http) ("file" . read-url-file) ("gopher" . read-url-gopher) ("news" . read-url-news) ("ftp" . read-url-ftp)) "Alist mapping URL types to readers for them.") (defvar latest-url-type-read "file" "The url type last read by read-url") (defun read-url (prompt) "Read a url in the minibuffer, displaying PROMPT." (let ((url-type-pair (assoc (setq latest-url-type-read (completing-read prompt url-readers nil t latest-url-type-read)) url-readers))) (format "%s:%s" (car url-type-pair) (funcall (cdr url-type-pair) (car url-type-pair) prompt)))) (defun url-foo (url) "Foo URL." (interactive (list (read-url "foo URL: "))) (message "You entered the URL %s" url)) ;;; end of url-complete.el