aboutsummaryrefslogtreecommitdiffstats
path: root/uri.txi
blob: 18fdef10d9b493949e638176c07edeab07daf3dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
@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{<A HREF="#@var{name}">} will link to this point.

@example
(html:anchor "(section 7)")
@result{}
"<A NAME=\"(section%207)\"></A>"
@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{}
"<A HREF=\"#(section%207)\">section 7</A>"
@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