@code{(require 'uri)} @ftindex uri @noindent Implements @dfn{Uniform Resource Identifiers} (URI) as @cindex Uniform Resource Identifiers described in RFC 2396. @defun make-uri @defunx make-uri fragment @defunx make-uri query fragment @defunx make-uri path query fragment @defunx make-uri authority path query fragment @defunx make-uri scheme authority path query fragment Returns a Uniform Resource Identifier string from component arguments. @end defun @defun uri:make-path path Returns a URI string combining the components of list @var{path}. @end defun @defun html:anchor name Returns a string which defines this location in the (HTML) file as @var{name}. The hypertext @samp{} will link to this point. @example (html:anchor "(section 7)") @result{} "" @end example @end defun @defun html:link uri highlighted Returns a string which links the @var{highlighted} text to @var{uri}. @example (html:link (make-uri "(section 7)") "section 7") @result{} "section 7" @end example @end defun @defun html:base uri Returns a string specifying the @dfn{base} @var{uri} of a document, for @cindex base inclusion in the HEAD of the document (@pxref{HTML, head}). @end defun @defun html:isindex prompt Returns a string specifying the search @var{prompt} of a document, for inclusion in the HEAD of the document (@pxref{HTML, head}). @end defun @defun uri->tree uri-reference base-tree @defunx uri->tree uri-reference Returns a list of 5 elements corresponding to the parts (@var{scheme} @var{authority} @var{path} @var{query} @var{fragment}) of string @var{uri-reference}. Elements corresponding to absent parts are #f. The @var{path} is a list of strings. If the first string is empty, then the path is absolute; otherwise relative. The optional @var{base-tree} is a tree as returned by @code{uri->tree}; and is used as the base address for relative URIs. If the @var{authority} component is a @dfn{Server-based Naming Authority}, then it is a list of the @cindex Server-based Naming Authority @var{userinfo}, @var{host}, and @var{port} strings (or #f). For other types of @var{authority} components the @var{authority} will be a string. @example (uri->tree "http://www.ics.uci.edu/pub/ietf/uri/#Related") @result{} (http "www.ics.uci.edu" ("" "pub" "ietf" "uri" "") #f "Related") @end example @end defun @defun uri:split-fields txt chr Returns a list of @var{txt} split at each occurrence of @var{chr}. @var{chr} does not appear in the returned list of strings. @end defun @defun uri:decode-query query-string Converts a @dfn{URI} encoded @var{query-string} to a query-alist. @cindex URI @end defun @noindent @code{uric:} prefixes indicate procedures dealing with URI-components. @defun uric:encode uri-component allows Returns a copy of the string @var{uri-component} in which all @dfn{unsafe} octets @cindex unsafe (as defined in RFC 2396) have been @samp{%} @dfn{escaped}. @cindex escaped @code{uric:decode} decodes strings encoded by @code{uric:encode}. @end defun @defun uric:decode uri-component Returns a copy of the string @var{uri-component} in which each @samp{%} escaped characters in @var{uri-component} is replaced with the character it encodes. This routine is useful for showing URI contents on error pages. @end defun @defun uri:path->keys path-list ptypes @var{path-list} is a path-list as returned by @code{uri:split-fields}. @code{uri:path->keys} returns a list of items returned by @code{uri:decode-path}, coerced to types @var{ptypes}. @end defun @subheading File-system Locators and Predicates @defun path->uri path Returns a URI-string for @var{path} on the local host. @end defun @defun absolute-uri? str Returns #t if @var{str} is an absolute-URI as indicated by a syntactically valid (per RFC 2396) @dfn{scheme}; otherwise returns @cindex scheme #f. @end defun @defun absolute-path? file-name Returns #t if @var{file-name} is a fully specified pathname (does not depend on the current working directory); otherwise returns #f. @end defun @defun null-directory? str Returns #t if changing directory to @var{str} would leave the current directory unchanged; otherwise returns #f. @end defun @defun glob-pattern? str Returns #t if the string @var{str} contains characters used for specifying glob patterns, namely @samp{*}, @samp{?}, or @samp{[}. @end defun @noindent Before RFC 2396, the @dfn{File Transfer Protocol} (FTP) served a @cindex File Transfer Protocol similar purpose. @defun parse-ftp-address uri Returns a list of the decoded FTP @var{uri}; or #f if indecipherable. FTP @dfn{Uniform Resource Locator}, @dfn{ange-ftp}, and @dfn{getit} @cindex Uniform Resource Locator @cindex ange-ftp @cindex getit formats are handled. The returned list has four elements which are strings or #f: @enumerate 0 @item username @item password @item remote-site @item remote-directory @end enumerate @end defun