123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749 |
- This is ../../info/url, produced by makeinfo version 4.13 from url.texi.
- INFO-DIR-SECTION Emacs lisp libraries
- START-INFO-DIR-ENTRY
- * URL: (url). URL loading package.
- END-INFO-DIR-ENTRY
- This file documents the Emacs Lisp URL loading package.
- Copyright (C) 1993-1999, 2002, 2004-2012 Free Software Foundation,
- Inc.
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the GNU Free Documentation License,
- Version 1.3 or any later version published by the Free Software
- Foundation; with no Invariant Sections, with the Front-Cover texts
- being "A GNU Manual," and with the Back-Cover Texts as in (a)
- below. A copy of the license is included in the section entitled
- "GNU Free Documentation License".
- (a) The FSF's Back-Cover Text is: "You have the freedom to copy and
- modify this GNU manual. Buying copies from the FSF supports it in
- developing GNU and promoting software freedom."
- File: url, Node: Top, Next: Getting Started, Up: (dir)
- URL
- ***
- This file documents the Emacs Lisp URL loading package.
- Copyright (C) 1993-1999, 2002, 2004-2012 Free Software Foundation,
- Inc.
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the GNU Free Documentation License,
- Version 1.3 or any later version published by the Free Software
- Foundation; with no Invariant Sections, with the Front-Cover texts
- being "A GNU Manual," and with the Back-Cover Texts as in (a)
- below. A copy of the license is included in the section entitled
- "GNU Free Documentation License".
- (a) The FSF's Back-Cover Text is: "You have the freedom to copy and
- modify this GNU manual. Buying copies from the FSF supports it in
- developing GNU and promoting software freedom."
- * Menu:
- * Getting Started:: Preparing your program to use URLs.
- * Retrieving URLs:: How to use this package to retrieve a URL.
- * Supported URL Types:: Descriptions of URL types currently supported.
- * Defining New URLs:: How to define a URL loader for a new protocol.
- * General Facilities:: URLs can be cached, accessed via a gateway
- and tracked in a history list.
- * Customization:: Variables you can alter.
- * GNU Free Documentation License:: The license for this documentation.
- * Function Index::
- * Variable Index::
- * Concept Index::
- File: url, Node: Getting Started, Next: Retrieving URLs, Prev: Top, Up: Top
- 1 Getting Started
- *****************
- "Uniform Resource Locators" (URLs) are a specific form of "Uniform
- Resource Identifiers" (URI) described in RFC 2396 which updates RFC
- 1738 and RFC 1808. RFC 2016 defines uniform resource agents.
- URIs have the form SCHEME:SCHEME-SPECIFIC-PART, where the SCHEMEs
- supported by this library are described below. *Note Supported URL
- Types::.
- FTP, NFS, HTTP, HTTPS, `rlogin', `telnet', tn3270, IRC and gopher
- URLs all have the form
- SCHEME://[USERINFO@]HOSTNAME[:PORT][/PATH]
- where `[' and `]' delimit optional parts. USERINFO sometimes takes
- the form USERNAME:PASSWORD but you should beware of the security risks
- of sending cleartext passwords. HOSTNAME may be a domain name or a
- dotted decimal address. If the `:PORT' is omitted then the library will
- use the "well known" port for that service when accessing URLs. With
- the possible exception of `telnet', it is rare for ports to be
- specified, and it is possible using a non-standard port may have
- undesired consequences if a different service is listening on that port
- (e.g., an HTTP URL specifying the SMTP port can cause mail to be sent).
- The meaning of the PATH component depends on the service.
- * Menu:
- * Configuration::
- * Parsed URLs:: URLs are parsed into vector structures.
- File: url, Node: Configuration, Next: Parsed URLs, Up: Getting Started
- 1.1 Configuration
- =================
- -- Variable: url-configuration-directory
- The directory in which URL configuration files, the cache etc.,
- reside. The old default was `~/.url', and this directory is still
- used if it exists. The new default is a `url/' directory in
- `user-emacs-directory', which is normally `~/.emacs.d'.
- File: url, Node: Parsed URLs, Prev: Configuration, Up: Getting Started
- 1.2 Parsed URLs
- ===============
- The library functions typically operate on "parsed" versions of URLs.
- These are actually CL structures (vectors) of the form:
- [cl-struct-url TYPE USER PASSWORD HOST PORT FILENAME TARGET ATTRIBUTES FULLNESS USE-COOKIES]
- where
- TYPE
- is the type of the URL scheme, e.g., `http'
- USER
- is the username associated with it, or `nil';
- PASSWORD
- is the user password associated with it, or `nil';
- HOST
- is the host name associated with it, or `nil';
- PORT
- is the port number associated with it, or `nil';
- FILENAME
- is the "file" part of it, or `nil'. This doesn't necessarily
- actually refer to a file;
- TARGET
- is the target part, or `nil';
- ATTRIBUTES
- is the attributes associated with it, or `nil';
- FULLNESS
- is `t' for a fully-specified URL, with a host part indicated by
- `//' after the scheme part.
- USE-COOKIES
- is `nil' to neither send or store cookies to the server, `t'
- otherwise.
- These attributes have accessors named `url-PART', where PART is the
- name of one of the elements above, e.g., `url-host'. These attributes
- can be set with the same accessors using `setf':
- (setf (url-port url) 80)
- If PORT is NIL, `url-port' returns the default port of the protocol.
- There are functions for parsing and unparsing between the string and
- vector forms.
- -- Function: url-generic-parse-url url
- Return a parsed version of the string URL.
- -- Function: url-recreate-url url
- Recreates a URL string from the parsed URL.
- File: url, Node: Retrieving URLs, Next: Supported URL Types, Prev: Getting Started, Up: Top
- 2 Retrieving URLs
- *****************
- -- Function: url-retrieve-synchronously url
- Retrieve URL synchronously and return a buffer containing the
- data. URL is either a string or a parsed URL structure. Return
- `nil' if there are no data associated with it (the case for dired,
- info, or mailto URLs that need no further processing).
- -- Function: url-retrieve url callback &optional cbargs silent
- no-cookies
- Retrieve URL asynchronously and call CALLBACK with args CBARGS
- when finished. The callback is called when the object has been
- completely retrieved, with the current buffer containing the
- object and any MIME headers associated with it. URL is either a
- string or a parsed URL structure. Returns the buffer URL will
- load into, or `nil' if the process has already completed. If the
- optional argument SILENT is non-`nil', suppress progress messages.
- If the optional argument NO-COOKIES is non-`nil', do not store or
- send cookies.
- -- Function: url-queue-retrieve url callback &optional cbargs silent
- no-cookies
- This acts like the `url-retrieve' function, but with limits on the
- degree of parallelism. The option `url-queue-parallel-processes'
- controls the number of concurrent processes, and the option
- `url-queue-timeout' sets a timeout in seconds.
- File: url, Node: Supported URL Types, Next: Defining New URLs, Prev: Retrieving URLs, Up: Top
- 3 Supported URL Types
- *********************
- * Menu:
- * http/https:: Hypertext Transfer Protocol.
- * file/ftp:: Local files and FTP archives.
- * info:: Emacs "Info" pages.
- * mailto:: Sending email.
- * news/nntp/snews:: Usenet news.
- * rlogin/telnet/tn3270:: Remote host connectivity.
- * irc:: Internet Relay Chat.
- * data:: Embedded data URLs.
- * nfs:: Networked File System
- * cid:: Content-ID.
- * about::
- * ldap:: Lightweight Directory Access Protocol
- * imap:: IMAP mailboxes.
- * man:: Unix man pages.
- File: url, Node: http/https, Next: file/ftp, Up: Supported URL Types
- 3.1 `http' and `https'
- ======================
- The scheme `http' is Hypertext Transfer Protocol. The library supports
- version 1.1, specified in RFC 2616. (This supersedes 1.0, defined in
- RFC 1945) HTTP URLs have the following form, where most of the parts
- are optional:
- http://USER:PASSWORD@HOST:PORT/PATH?SEARCHPART#FRAGMENT
- The scheme `https' is a secure version of `http', with transmission
- via SSL. It is defined in RFC 2069. Its default port is 443. This
- scheme depends on SSL support in Emacs via the `ssl.el' library and is
- actually implemented by forcing the `ssl' gateway method to be used.
- *Note Gateways in general::.
- -- User Option: url-honor-refresh-requests
- This controls honoring of HTTP `Refresh' headers by which servers
- can direct clients to reload documents from the same URL or a or
- different one. `nil' means they will not be honored, `t' (the
- default) means they will always be honored, and otherwise the user
- will be asked on each request.
- * Menu:
- * Cookies::
- * HTTP language/coding::
- * HTTP URL Options::
- * Dealing with HTTP documents::
- File: url, Node: Cookies, Next: HTTP language/coding, Up: http/https
- 3.1.1 Cookies
- -------------
- -- User Option: url-cookie-file
- The file in which cookies are stored, defaulting to `cookies' in
- the directory specified by `url-configuration-directory'.
- -- User Option: url-cookie-confirmation
- Specifies whether confirmation is require to accept cookies.
- -- User Option: url-cookie-multiple-line
- Specifies whether to put all cookies for the server on one line in
- the HTTP request to satisfy broken servers like
- `http://www.hotmail.com'.
- -- User Option: url-cookie-trusted-urls
- A list of regular expressions matching URLs from which to accept
- cookies always.
- -- User Option: url-cookie-untrusted-urls
- A list of regular expressions matching URLs from which to reject
- cookies always.
- -- User Option: url-cookie-save-interval
- The number of seconds between automatic saves of cookies to disk.
- Default is one hour.
- File: url, Node: HTTP language/coding, Next: HTTP URL Options, Prev: Cookies, Up: http/https
- 3.1.2 Language and Encoding Preferences
- ---------------------------------------
- HTTP allows clients to express preferences for the language and
- encoding of documents which servers may honor. For each of these
- variables, the value is a string; it can specify a single choice, or it
- can be a comma-separated list.
- Normally, this list is ordered by descending preference. However,
- each element can be followed by `;q=PRIORITY' to specify its preference
- level, a decimal number from 0 to 1; e.g., for
- `url-mime-language-string', `"de, en-gb;q=0.8, en;q=0.7"'. An element
- that has no `;q' specification has preference level 1.
- -- User Option: url-mime-charset-string
- This variable specifies a preference for character sets when
- documents can be served in more than one encoding.
- HTTP allows specifying a series of MIME charsets which indicate
- your preferred character set encodings, e.g., Latin-9 or Big5, and
- these can be weighted. The default series is generated
- automatically from the associated MIME types of all defined coding
- systems, sorted by the coding system priority specified in Emacs.
- *Note Recognizing Coding Systems: (emacs)Recognize Coding.
- -- User Option: url-mime-language-string
- A string specifying the preferred language when servers can serve
- files in several languages. Use RFC 1766 abbreviations, e.g.,
- `en' for English, `de' for German.
- The string can be `"*"' to get the first available language (as
- opposed to the default).
- File: url, Node: HTTP URL Options, Next: Dealing with HTTP documents, Prev: HTTP language/coding, Up: http/https
- 3.1.3 HTTP URL Options
- ----------------------
- HTTP supports an `OPTIONS' method describing things supported by the
- URL.
- -- Function: url-http-options url
- Returns a property list describing options available for URL. The
- property list members are:
- `methods'
- A list of symbols specifying what HTTP methods the resource
- supports.
- `dav'
- A list of numbers specifying what DAV protocol/schema
- versions are supported.
- `dasl'
- A list of supported DASL search types supported (string form).
- `ranges'
- A list of the units available for use in partial document
- fetches.
- `p3p'
- The "Platform For Privacy Protection" description for the
- resource. Currently this is just the raw header contents.
- File: url, Node: Dealing with HTTP documents, Prev: HTTP URL Options, Up: http/https
- 3.1.4 Dealing with HTTP documents
- ---------------------------------
- HTTP URLs are retrieved into a buffer containing the HTTP headers
- followed by the body. Since the headers are quasi-MIME, they may be
- processed using the MIME library. *Note Emacs MIME: (emacs-mime)Top.
- File: url, Node: file/ftp, Next: info, Prev: http/https, Up: Supported URL Types
- 3.2 file and ftp
- ================
- ftp://USER:PASSWORD@HOST:PORT/FILE
- file://USER:PASSWORD@HOST:PORT/FILE
- These schemes are defined in RFC 1808. `ftp:' and `file:' are
- synonymous in this library. They allow reading arbitrary files from
- hosts. Either `ange-ftp' (Emacs) or `efs' (XEmacs) is used to retrieve
- them from remote hosts. Local files are accessed directly.
- Compressed files are handled, but support is hard-coded so that
- `jka-compr-compression-info-list' and so on have no affect. Suffixes
- recognized are `.z', `.gz', `.Z' and `.bz2'.
- -- User Option: url-directory-index-file
- The filename to look for when indexing a directory, default
- `"index.html"'. If this file exists, and is readable, then it
- will be viewed instead of using `dired' to view the directory.
- File: url, Node: info, Next: mailto, Prev: file/ftp, Up: Supported URL Types
- 3.3 info
- ========
- info:FILE#NODE
- Info URLs are not officially defined. They invoke `Info-goto-node'
- with argument `(FILE)NODE'. `#NODE' is optional, defaulting to `Top'.
- File: url, Node: mailto, Next: news/nntp/snews, Prev: info, Up: Supported URL Types
- 3.4 mailto
- ==========
- A mailto URL will send an email message to the address in the URL, for
- example `mailto:foo@bar.com' would compose a message to `foo@bar.com'.
- -- User Option: url-mail-command
- The function called whenever url needs to send mail. This should
- normally be left to default from MAIL-USER-AGENT. *Note
- Mail-Composition Methods: (emacs)Mail Methods.
- An `X-Url-From' header field containing the URL of the document that
- contained the mailto URL is added if that URL is known.
- RFC 2368 extends the definition of mailto URLs in RFC 1738. The
- form of a mailto URL is
- `mailto:MAILBOX[?HEADER=CONTENTS[&HEADER=CONTENTS]]'
- where an arbitrary number of HEADERs can be added. If the HEADER is
- `body', then CONTENTS is put in the body otherwise a HEADER header
- field is created with CONTENTS as its contents. Note that the URL
- library does not consider any headers "dangerous" so you should check
- them before sending the message.
- Email messages are defined in RFC822.
- File: url, Node: news/nntp/snews, Next: rlogin/telnet/tn3270, Prev: mailto, Up: Supported URL Types
- 3.5 `news', `nntp' and `snews'
- ==============================
- The network news URL scheme take the following forms following RFC 1738
- except that for compatibility with other clients, host and port fields
- may be included in news URLs though they are properly only allowed for
- nntp an snews.
- `news:NEWSGROUP'
- Retrieves a list of messages in NEWSGROUP;
- `news:MESSAGE-ID'
- Retrieves the message with the given MESSAGE-ID;
- `news:*'
- Retrieves a list of all available newsgroups;
- `nntp://HOST:PORT/NEWSGROUP'
- `nntp://HOST:PORT/MESSAGE-ID'
- `nntp://HOST:PORT/*'
- Similar to the `news' versions.
- `:PORT' is optional and defaults to :119.
- `snews' is the same as `nntp' except that the default port is :563. (It
- is tunneled through SSL.)
- An `nntp' URL is the same as a news URL, except that the URL may
- specify an article by its number.
- -- User Option: url-news-server
- This variable can be used to override the default news server.
- Usually this will be set by the Gnus package, which is used to
- fetch news. It may be set from the conventional environment
- variable `NNTPSERVER'.
- File: url, Node: rlogin/telnet/tn3270, Next: irc, Prev: news/nntp/snews, Up: Supported URL Types
- 3.6 rlogin, telnet and tn3270
- =============================
- These URL schemes from RFC 1738 for logon via a terminal emulator have
- the form
- telnet://USER:PASSWORD@HOST:PORT
- but the `:PASSWORD' component is ignored.
- To handle rlogin, telnet and tn3270 URLs, a `rlogin', `telnet' or
- `tn3270' (the program names and arguments are hardcoded) session is run
- in a `terminal-emulator' buffer. Well-known ports are used if the URL
- does not specify a port.
- File: url, Node: irc, Next: data, Prev: rlogin/telnet/tn3270, Up: Supported URL Types
- 3.7 irc
- =======
- "Internet Relay Chat" (IRC) is handled by handing off the IRC session
- to a function named in `url-irc-function'.
- -- User Option: url-irc-function
- A function to actually open an IRC connection. This function must
- take five arguments, HOST, PORT, CHANNEL, USER and PASSWORD. The
- CHANNEL argument specifies the channel to join immediately, this
- can be `nil'. By default this is `url-irc-rcirc'.
- -- Function: url-irc-rcirc host port channel user password
- Processes the arguments and lets `rcirc' handle the session.
- -- Function: url-irc-erc host port channel user password
- Processes the arguments and lets `ERC' handle the session.
- -- Function: url-irc-zenirc host port channel user password
- Processes the arguments and lets `zenirc' handle the session.
- File: url, Node: data, Next: nfs, Prev: irc, Up: Supported URL Types
- 3.8 data
- ========
- data:[MEDIA-TYPE][;BASE64],DATA
- Data URLs contain MIME data in the URL itself. They are defined in
- RFC 2397.
- MEDIA-TYPE is a MIME `Content-Type' string, possibly including
- parameters. It defaults to `text/plain;charset=US-ASCII'. The
- `text/plain' can be omitted but the charset parameter supplied. If
- `;base64' is present, the DATA are base64-encoded.
- File: url, Node: nfs, Next: cid, Prev: data, Up: Supported URL Types
- 3.9 nfs
- =======
- nfs://USER:PASSWORD@HOST:PORT/FILE
- The `nfs:' scheme is defined in RFC 2224. It is similar to `ftp:'
- except that it points to a file on a remote host that is handled by the
- automounter on the local host.
- -- Variable: url-nfs-automounter-directory-spec
- A string saying how to invoke the NFS automounter. Certain `%'
- sequences are recognized:
- `%h'
- The hostname of the NFS server;
- `%n'
- The port number of the NFS server;
- `%u'
- The username to use to authenticate;
- `%p'
- The password to use to authenticate;
- `%f'
- The filename on the remote server;
- `%%'
- A literal `%'.
- Each can be used any number of times.
- File: url, Node: cid, Next: about, Prev: nfs, Up: Supported URL Types
- 3.10 cid
- ========
- RFC 2111
- File: url, Node: about, Next: ldap, Prev: cid, Up: Supported URL Types
- 3.11 about
- ==========
- File: url, Node: ldap, Next: imap, Prev: about, Up: Supported URL Types
- 3.12 ldap
- =========
- The LDAP scheme is defined in RFC 2255.
- File: url, Node: imap, Next: man, Prev: ldap, Up: Supported URL Types
- 3.13 imap
- =========
- RFC 2192
- File: url, Node: man, Prev: imap, Up: Supported URL Types
- 3.14 man
- ========
- `man:PAGE-SPEC'
- This is a non-standard scheme. PAGE-SPEC is passed directly to the
- Lisp `man' function.
- File: url, Node: Defining New URLs, Next: General Facilities, Prev: Supported URL Types, Up: Top
- 4 Defining New URLs
- *******************
- * Menu:
- * Naming conventions::
- * Required functions::
- * Optional functions::
- * Asynchronous fetching::
- * Supporting file-name-handlers::
- File: url, Node: Naming conventions, Next: Required functions, Up: Defining New URLs
- 4.1 Naming conventions
- ======================
- File: url, Node: Required functions, Next: Optional functions, Prev: Naming conventions, Up: Defining New URLs
- 4.2 Required functions
- ======================
- File: url, Node: Optional functions, Next: Asynchronous fetching, Prev: Required functions, Up: Defining New URLs
- 4.3 Optional functions
- ======================
- File: url, Node: Asynchronous fetching, Next: Supporting file-name-handlers, Prev: Optional functions, Up: Defining New URLs
- 4.4 Asynchronous fetching
- =========================
- File: url, Node: Supporting file-name-handlers, Prev: Asynchronous fetching, Up: Defining New URLs
- 4.5 Supporting file-name-handlers
- =================================
- File: url, Node: General Facilities, Next: Customization, Prev: Defining New URLs, Up: Top
- 5 General Facilities
- ********************
- * Menu:
- * Disk Caching::
- * Proxies::
- * Gateways in general::
- * History::
- File: url, Node: Disk Caching, Next: Proxies, Up: General Facilities
- 5.1 Disk Caching
- ================
- The disk cache stores retrieved documents locally, whence they can be
- retrieved more quickly. When requesting a URL that is in the cache,
- the library checks to see if the page has changed since it was last
- retrieved from the remote machine. If not, the local copy is used,
- saving the transmission over the network. Currently the cache isn't
- cleared automatically.
- -- User Option: url-automatic-caching
- Setting this variable non-`nil' causes documents to be cached
- automatically.
- -- User Option: url-cache-directory
- This variable specifies the directory to store the cache files.
- It defaults to sub-directory `cache' of
- `url-configuration-directory'.
- -- User Option: url-cache-creation-function
- The cache relies on a scheme for mapping URLs to files in the
- cache. This variable names a function which sets the type of
- cache to use. It takes a URL as argument and returns the absolute
- file name of the corresponding cache file. The two supplied
- possibilities are `url-cache-create-filename-using-md5' and
- `url-cache-create-filename-human-readable'.
- -- Function: url-cache-create-filename-using-md5 url
- Creates a cache file name from URL using MD5 hashing. This is
- creates entries with very few cache collisions and is fast.
- (url-cache-create-filename-using-md5 "http://www.example.com/foo/bar")
- => "/home/fx/.url/cache/fx/http/com/example/www/b8a35774ad20db71c7c3409a5410e74f"
- -- Function: url-cache-create-filename-human-readable url
- Creates a cache file name from URL more obviously connected to URL
- than for `url-cache-create-filename-using-md5', but more likely to
- conflict with other files.
- (url-cache-create-filename-human-readable "http://www.example.com/foo/bar")
- => "/home/fx/.url/cache/fx/http/com/example/www/foo/bar"
- -- Function: url-cache-expired
- This function returns non-nil if a cache entry has expired (or is
- absent). The arguments are a URL and optional expiration delay in
- seconds (default URL-CACHE-EXPIRE-TIME).
- -- User Option: url-cache-expire-time
- This variable is the default number of seconds to use for the
- expire-time argument of the function `url-cache-expired'.
- -- Function: url-fetch-from-cache
- This function takes a URL as its argument and returns a buffer
- containing the data cached for that URL.
- File: url, Node: Proxies, Next: Gateways in general, Prev: Disk Caching, Up: General Facilities
- 5.2 Proxies and Gatewaying
- ==========================
- Proxy servers are commonly used to provide gateways through firewalls
- or as caches serving some more-or-less local network. Each protocol
- (HTTP, FTP, etc.) can have a different gateway server. Proxying is
- conventionally configured commonly amongst different programs through
- environment variables of the form `PROTOCOL_proxy', where PROTOCOL is
- one of the supported network protocols (`http', `ftp' etc.). The
- library recognizes such variables in either upper or lower case. Their
- values are of one of the forms:
- * `HOST:PORT'
- * A full URL;
- * Simply a host name.
- The `NO_PROXY' environment variable specifies URLs that should be
- excluded from proxying (on servers that should be contacted directly).
- This should be a comma-separated list of hostnames, domain names, or a
- mixture of both. Asterisks can be used as wildcards, but other clients
- may not support that. Domain names may be indicated by a leading dot.
- For example:
- NO_PROXY="*.aventail.com,home.com,.seanet.com"
- says to contact all machines in the `aventail.com' and `seanet.com'
- domains directly, as well as the machine named `home.com'. If
- `NO_PROXY' isn't defined, `no_PROXY' and `no_proxy' are also tried, in
- that order.
- Proxies may also be specified directly in Lisp.
- -- User Option: url-proxy-services
- This variable is an alist of URL schemes and proxy servers that
- gateway them. The items are of the form
- `(SCHEME . HOST:PORTNUMBER)', says that the URL SCHEME is
- gatewayed through PORTNUMBER on the specified HOST. An exception
- is the pseudo scheme `"no_proxy"', which is paired with a regexp
- matching host names not to be proxied. This variable is
- initialized from the environment as above.
- (setq url-proxy-services
- '(("http" . "proxy.aventail.com:80")
- ("no_proxy" . "^.*\\(aventail\\|seanet\\)\\.com")))
- File: url, Node: Gateways in general, Next: History, Prev: Proxies, Up: General Facilities
- 5.3 Gateways in General
- =======================
- The library provides a general gateway layer through which all
- networking passes. It can both control access to the network and
- provide access through gateways in firewalls. This may make direct
- connections in some cases and pass through some sort of gateway in
- others.(1) The library's basic function responsible for making
- connections is `url-open-stream'.
- -- Function: url-open-stream name buffer host service
- Open a stream to HOST, possibly via a gateway. The other
- arguments are as for `open-network-stream'. This will not make a
- connection if `url-gateway-unplugged' is non-`nil'.
- -- Variable: url-gateway-local-host-regexp
- This is a regular expression that matches local hosts that do not
- require the use of a gateway. If `nil', all connections are made
- through the gateway.
- -- Variable: url-gateway-method
- This variable controls which gateway method is used. It may be
- useful to bind it temporarily in some applications. It has values
- taken from a list of symbols. Possible values are:
- `telnet'
- Use this method if you must first telnet and log into a
- gateway host, and then run telnet from that host to connect
- to outside machines.
- `rlogin'
- This method is identical to `telnet', but uses `rlogin' to
- log into the remote machine without having to send the
- username and password over the wire every time.
- `socks'
- Use if the firewall has a SOCKS gateway running on it. The
- SOCKS v5 protocol is defined in RFC 1928.
- `native'
- This method uses Emacs's builtin networking directly. This
- is the default. It can be used only if there is no firewall
- blocking access.
- The following variables control the gateway methods.
- -- User Option: url-gateway-telnet-host
- The gateway host to telnet to. Once logged in there, you then
- telnet out to the hosts you want to connect to.
- -- User Option: url-gateway-telnet-parameters
- This should be a list of parameters to pass to the `telnet'
- program.
- -- User Option: url-gateway-telnet-password-prompt
- This is a regular expression that matches the password prompt when
- logging in.
- -- User Option: url-gateway-telnet-login-prompt
- This is a regular expression that matches the username prompt when
- logging in.
- -- User Option: url-gateway-telnet-user-name
- The username to log in with.
- -- User Option: url-gateway-telnet-password
- The password to send when logging in.
- -- User Option: url-gateway-prompt-pattern
- This is a regular expression that matches the shell prompt.
- -- User Option: url-gateway-rlogin-host
- Host to `rlogin' to before telnetting out.
- -- User Option: url-gateway-rlogin-parameters
- Parameters to pass to `rsh'.
- -- User Option: url-gateway-rlogin-user-name
- User name to use when logging in to the gateway.
- -- User Option: url-gateway-prompt-pattern
- This is a regular expression that matches the shell prompt.
- -- User Option: socks-server
- This specifies the default server, it takes the form
- `("Default server" SERVER PORT VERSION)' where VERSION can be
- either 4 or 5.
- -- Variable: socks-password
- If this is `nil' then you will be asked for the password,
- otherwise it will be used as the password for authenticating you to
- the SOCKS server.
- -- Variable: socks-username
- This is the username to use when authenticating yourself to the
- SOCKS server. By default this is your login name.
- -- Variable: socks-timeout
- This controls how long, in seconds, to wait for responses from the
- SOCKS server; it is 5 by default.
- -- User Option: socks-nslookup-program
- This the `nslookup' program. It is `"nslookup"' by default.
- * Menu:
- * Suppressing network connections::
- ---------- Footnotes ----------
- (1) Proxies (which only operate over HTTP) are implemented using
- this.
- File: url, Node: Suppressing network connections, Up: Gateways in general
- 5.3.1 Suppressing Network Connections
- -------------------------------------
- In some circumstances it is desirable to suppress making network
- connections. A typical case is when rendering HTML in a mail user
- agent, when external URLs should not be activated, particularly to
- avoid "bugs" which "call home" by fetch single-pixel images and the
- like. To arrange this, bind the following variable for the duration of
- such processing.
- -- Variable: url-gateway-unplugged
- If this variable is non-`nil' new network connections are never
- opened by the URL library.
- File: url, Node: History, Prev: Gateways in general, Up: General Facilities
- 5.4 History
- ===========
- The library can maintain a global history list tracking URLs accessed.
- URL completion can be done from it. The history mechanism is set up
- automatically via `url-do-setup' when it is configured to be on. Note
- that the size of the history list is currently not limited.
- The history "list" is actually a hash table,
- `url-history-hash-table'. It contains access times keyed by URL
- strings. The times are in the format returned by `current-time'.
- -- Function: url-history-update-url url time
- This function updates the history table with an entry for URL
- accessed at the given TIME.
- -- User Option: url-history-track
- If non-`nil', the library will keep track of all the URLs
- accessed. If it is `t', the list is saved to disk at the end of
- each Emacs session. The default is `nil'.
- -- User Option: url-history-file
- The file storing the history list between sessions. It defaults to
- `history' in `url-configuration-directory'.
- -- User Option: url-history-save-interval
- The number of seconds between automatic saves of the history list.
- Default is one hour. Note that if you change this variable
- directly, rather than using Custom, after `url-do-setup' has been
- run, you need to run the function `url-history-setup-save-timer'.
- -- Function: url-history-parse-history &optional fname
- Parses the history file FNAME (default `url-history-file') and
- sets up the history list.
- -- Function: url-history-save-history &optional fname
- Saves the current history to file FNAME (default
- `url-history-file').
- -- Function: url-completion-function string predicate function
- You can use this function to do completion of URLs from the
- history.
- File: url, Node: Customization, Next: GNU Free Documentation License, Prev: General Facilities, Up: Top
- 6 Customization
- ***************
- 6.1 Environment Variables
- =========================
- The following environment variables affect the library's operation at
- startup.
- `TMPDIR'
- If this is defined, URL-TEMPORARY-DIRECTORY is initialized from it.
- 6.2 General User Options
- ========================
- The following user options, settable with Customize, affect the general
- operation of the package.
- -- User Option: url-debug
- Specifies the types of debug messages which are logged to the
- `*URL-DEBUG*' buffer. `t' means log all messages. A number means
- log all messages and show them with `message'. It may also be a
- list of the types of messages to be logged.
- -- User Option: url-personal-mail-address
- -- User Option: url-privacy-level
- -- User Option: url-uncompressor-alist
- -- User Option: url-passwd-entry-func
- -- User Option: url-standalone-mode
- -- User Option: url-bad-port-list
- -- User Option: url-max-password-attempts
- -- User Option: url-temporary-directory
- -- User Option: url-show-status
- -- User Option: url-confirmation-func
- The function to use for asking yes or no functions. This is
- normally either `y-or-n-p' or `yes-or-no-p', but could be another
- function taking a single argument (the prompt) and returning `t'
- only if an affirmative answer is given.
- -- User Option: url-gateway-method
- A symbol specifying the type of gateway support to use for
- connections from the local machine. The supported methods are:
- `telnet'
- Run telnet in a subprocess to connect;
- `rlogin'
- Rlogin to another machine to connect;
- `socks'
- Connect through a socks server;
- `ssl'
- Connect with SSL;
- `native'
- Connect directly.
- File: url, Node: GNU Free Documentation License, Next: Function Index, Prev: Customization, Up: Top
- Appendix A GNU Free Documentation License
- *****************************************
- Version 1.3, 3 November 2008
- Copyright (C) 2000, 2001, 2002, 2007, 2008, 2009 Free Software Foundation, Inc.
- `http://fsf.org/'
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
- 0. PREAMBLE
- The purpose of this License is to make a manual, textbook, or other
- functional and useful document "free" in the sense of freedom: to
- assure everyone the effective freedom to copy and redistribute it,
- with or without modifying it, either commercially or
- noncommercially. Secondarily, this License preserves for the
- author and publisher a way to get credit for their work, while not
- being considered responsible for modifications made by others.
- This License is a kind of "copyleft", which means that derivative
- works of the document must themselves be free in the same sense.
- It complements the GNU General Public License, which is a copyleft
- license designed for free software.
- We have designed this License in order to use it for manuals for
- free software, because free software needs free documentation: a
- free program should come with manuals providing the same freedoms
- that the software does. But this License is not limited to
- software manuals; it can be used for any textual work, regardless
- of subject matter or whether it is published as a printed book.
- We recommend this License principally for works whose purpose is
- instruction or reference.
- 1. APPLICABILITY AND DEFINITIONS
- This License applies to any manual or other work, in any medium,
- that contains a notice placed by the copyright holder saying it
- can be distributed under the terms of this License. Such a notice
- grants a world-wide, royalty-free license, unlimited in duration,
- to use that work under the conditions stated herein. The
- "Document", below, refers to any such manual or work. Any member
- of the public is a licensee, and is addressed as "you". You
- accept the license if you copy, modify or distribute the work in a
- way requiring permission under copyright law.
- A "Modified Version" of the Document means any work containing the
- Document or a portion of it, either copied verbatim, or with
- modifications and/or translated into another language.
- A "Secondary Section" is a named appendix or a front-matter section
- of the Document that deals exclusively with the relationship of the
- publishers or authors of the Document to the Document's overall
- subject (or to related matters) and contains nothing that could
- fall directly within that overall subject. (Thus, if the Document
- is in part a textbook of mathematics, a Secondary Section may not
- explain any mathematics.) The relationship could be a matter of
- historical connection with the subject or with related matters, or
- of legal, commercial, philosophical, ethical or political position
- regarding them.
- The "Invariant Sections" are certain Secondary Sections whose
- titles are designated, as being those of Invariant Sections, in
- the notice that says that the Document is released under this
- License. If a section does not fit the above definition of
- Secondary then it is not allowed to be designated as Invariant.
- The Document may contain zero Invariant Sections. If the Document
- does not identify any Invariant Sections then there are none.
- The "Cover Texts" are certain short passages of text that are
- listed, as Front-Cover Texts or Back-Cover Texts, in the notice
- that says that the Document is released under this License. A
- Front-Cover Text may be at most 5 words, and a Back-Cover Text may
- be at most 25 words.
- A "Transparent" copy of the Document means a machine-readable copy,
- represented in a format whose specification is available to the
- general public, that is suitable for revising the document
- straightforwardly with generic text editors or (for images
- composed of pixels) generic paint programs or (for drawings) some
- widely available drawing editor, and that is suitable for input to
- text formatters or for automatic translation to a variety of
- formats suitable for input to text formatters. A copy made in an
- otherwise Transparent file format whose markup, or absence of
- markup, has been arranged to thwart or discourage subsequent
- modification by readers is not Transparent. An image format is
- not Transparent if used for any substantial amount of text. A
- copy that is not "Transparent" is called "Opaque".
- Examples of suitable formats for Transparent copies include plain
- ASCII without markup, Texinfo input format, LaTeX input format,
- SGML or XML using a publicly available DTD, and
- standard-conforming simple HTML, PostScript or PDF designed for
- human modification. Examples of transparent image formats include
- PNG, XCF and JPG. Opaque formats include proprietary formats that
- can be read and edited only by proprietary word processors, SGML or
- XML for which the DTD and/or processing tools are not generally
- available, and the machine-generated HTML, PostScript or PDF
- produced by some word processors for output purposes only.
- The "Title Page" means, for a printed book, the title page itself,
- plus such following pages as are needed to hold, legibly, the
- material this License requires to appear in the title page. For
- works in formats which do not have any title page as such, "Title
- Page" means the text near the most prominent appearance of the
- work's title, preceding the beginning of the body of the text.
- The "publisher" means any person or entity that distributes copies
- of the Document to the public.
- A section "Entitled XYZ" means a named subunit of the Document
- whose title either is precisely XYZ or contains XYZ in parentheses
- following text that translates XYZ in another language. (Here XYZ
- stands for a specific section name mentioned below, such as
- "Acknowledgements", "Dedications", "Endorsements", or "History".)
- To "Preserve the Title" of such a section when you modify the
- Document means that it remains a section "Entitled XYZ" according
- to this definition.
- The Document may include Warranty Disclaimers next to the notice
- which states that this License applies to the Document. These
- Warranty Disclaimers are considered to be included by reference in
- this License, but only as regards disclaiming warranties: any other
- implication that these Warranty Disclaimers may have is void and
- has no effect on the meaning of this License.
- 2. VERBATIM COPYING
- You may copy and distribute the Document in any medium, either
- commercially or noncommercially, provided that this License, the
- copyright notices, and the license notice saying this License
- applies to the Document are reproduced in all copies, and that you
- add no other conditions whatsoever to those of this License. You
- may not use technical measures to obstruct or control the reading
- or further copying of the copies you make or distribute. However,
- you may accept compensation in exchange for copies. If you
- distribute a large enough number of copies you must also follow
- the conditions in section 3.
- You may also lend copies, under the same conditions stated above,
- and you may publicly display copies.
- 3. COPYING IN QUANTITY
- If you publish printed copies (or copies in media that commonly
- have printed covers) of the Document, numbering more than 100, and
- the Document's license notice requires Cover Texts, you must
- enclose the copies in covers that carry, clearly and legibly, all
- these Cover Texts: Front-Cover Texts on the front cover, and
- Back-Cover Texts on the back cover. Both covers must also clearly
- and legibly identify you as the publisher of these copies. The
- front cover must present the full title with all words of the
- title equally prominent and visible. You may add other material
- on the covers in addition. Copying with changes limited to the
- covers, as long as they preserve the title of the Document and
- satisfy these conditions, can be treated as verbatim copying in
- other respects.
- If the required texts for either cover are too voluminous to fit
- legibly, you should put the first ones listed (as many as fit
- reasonably) on the actual cover, and continue the rest onto
- adjacent pages.
- If you publish or distribute Opaque copies of the Document
- numbering more than 100, you must either include a
- machine-readable Transparent copy along with each Opaque copy, or
- state in or with each Opaque copy a computer-network location from
- which the general network-using public has access to download
- using public-standard network protocols a complete Transparent
- copy of the Document, free of added material. If you use the
- latter option, you must take reasonably prudent steps, when you
- begin distribution of Opaque copies in quantity, to ensure that
- this Transparent copy will remain thus accessible at the stated
- location until at least one year after the last time you
- distribute an Opaque copy (directly or through your agents or
- retailers) of that edition to the public.
- It is requested, but not required, that you contact the authors of
- the Document well before redistributing any large number of
- copies, to give them a chance to provide you with an updated
- version of the Document.
- 4. MODIFICATIONS
- You may copy and distribute a Modified Version of the Document
- under the conditions of sections 2 and 3 above, provided that you
- release the Modified Version under precisely this License, with
- the Modified Version filling the role of the Document, thus
- licensing distribution and modification of the Modified Version to
- whoever possesses a copy of it. In addition, you must do these
- things in the Modified Version:
- A. Use in the Title Page (and on the covers, if any) a title
- distinct from that of the Document, and from those of
- previous versions (which should, if there were any, be listed
- in the History section of the Document). You may use the
- same title as a previous version if the original publisher of
- that version gives permission.
- B. List on the Title Page, as authors, one or more persons or
- entities responsible for authorship of the modifications in
- the Modified Version, together with at least five of the
- principal authors of the Document (all of its principal
- authors, if it has fewer than five), unless they release you
- from this requirement.
- C. State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
- D. Preserve all the copyright notices of the Document.
- E. Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
- F. Include, immediately after the copyright notices, a license
- notice giving the public permission to use the Modified
- Version under the terms of this License, in the form shown in
- the Addendum below.
- G. Preserve in that license notice the full lists of Invariant
- Sections and required Cover Texts given in the Document's
- license notice.
- H. Include an unaltered copy of this License.
- I. Preserve the section Entitled "History", Preserve its Title,
- and add to it an item stating at least the title, year, new
- authors, and publisher of the Modified Version as given on
- the Title Page. If there is no section Entitled "History" in
- the Document, create one stating the title, year, authors,
- and publisher of the Document as given on its Title Page,
- then add an item describing the Modified Version as stated in
- the previous sentence.
- J. Preserve the network location, if any, given in the Document
- for public access to a Transparent copy of the Document, and
- likewise the network locations given in the Document for
- previous versions it was based on. These may be placed in
- the "History" section. You may omit a network location for a
- work that was published at least four years before the
- Document itself, or if the original publisher of the version
- it refers to gives permission.
- K. For any section Entitled "Acknowledgements" or "Dedications",
- Preserve the Title of the section, and preserve in the
- section all the substance and tone of each of the contributor
- acknowledgements and/or dedications given therein.
- L. Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section
- titles.
- M. Delete any section Entitled "Endorsements". Such a section
- may not be included in the Modified Version.
- N. Do not retitle any existing section to be Entitled
- "Endorsements" or to conflict in title with any Invariant
- Section.
- O. Preserve any Warranty Disclaimers.
- If the Modified Version includes new front-matter sections or
- appendices that qualify as Secondary Sections and contain no
- material copied from the Document, you may at your option
- designate some or all of these sections as invariant. To do this,
- add their titles to the list of Invariant Sections in the Modified
- Version's license notice. These titles must be distinct from any
- other section titles.
- You may add a section Entitled "Endorsements", provided it contains
- nothing but endorsements of your Modified Version by various
- parties--for example, statements of peer review or that the text
- has been approved by an organization as the authoritative
- definition of a standard.
- You may add a passage of up to five words as a Front-Cover Text,
- and a passage of up to 25 words as a Back-Cover Text, to the end
- of the list of Cover Texts in the Modified Version. Only one
- passage of Front-Cover Text and one of Back-Cover Text may be
- added by (or through arrangements made by) any one entity. If the
- Document already includes a cover text for the same cover,
- previously added by you or by arrangement made by the same entity
- you are acting on behalf of, you may not add another; but you may
- replace the old one, on explicit permission from the previous
- publisher that added the old one.
- The author(s) and publisher(s) of the Document do not by this
- License give permission to use their names for publicity for or to
- assert or imply endorsement of any Modified Version.
- 5. COMBINING DOCUMENTS
- You may combine the Document with other documents released under
- this License, under the terms defined in section 4 above for
- modified versions, provided that you include in the combination
- all of the Invariant Sections of all of the original documents,
- unmodified, and list them all as Invariant Sections of your
- combined work in its license notice, and that you preserve all
- their Warranty Disclaimers.
- The combined work need only contain one copy of this License, and
- multiple identical Invariant Sections may be replaced with a single
- copy. If there are multiple Invariant Sections with the same name
- but different contents, make the title of each such section unique
- by adding at the end of it, in parentheses, the name of the
- original author or publisher of that section if known, or else a
- unique number. Make the same adjustment to the section titles in
- the list of Invariant Sections in the license notice of the
- combined work.
- In the combination, you must combine any sections Entitled
- "History" in the various original documents, forming one section
- Entitled "History"; likewise combine any sections Entitled
- "Acknowledgements", and any sections Entitled "Dedications". You
- must delete all sections Entitled "Endorsements."
- 6. COLLECTIONS OF DOCUMENTS
- You may make a collection consisting of the Document and other
- documents released under this License, and replace the individual
- copies of this License in the various documents with a single copy
- that is included in the collection, provided that you follow the
- rules of this License for verbatim copying of each of the
- documents in all other respects.
- You may extract a single document from such a collection, and
- distribute it individually under this License, provided you insert
- a copy of this License into the extracted document, and follow
- this License in all other respects regarding verbatim copying of
- that document.
- 7. AGGREGATION WITH INDEPENDENT WORKS
- A compilation of the Document or its derivatives with other
- separate and independent documents or works, in or on a volume of
- a storage or distribution medium, is called an "aggregate" if the
- copyright resulting from the compilation is not used to limit the
- legal rights of the compilation's users beyond what the individual
- works permit. When the Document is included in an aggregate, this
- License does not apply to the other works in the aggregate which
- are not themselves derivative works of the Document.
- If the Cover Text requirement of section 3 is applicable to these
- copies of the Document, then if the Document is less than one half
- of the entire aggregate, the Document's Cover Texts may be placed
- on covers that bracket the Document within the aggregate, or the
- electronic equivalent of covers if the Document is in electronic
- form. Otherwise they must appear on printed covers that bracket
- the whole aggregate.
- 8. TRANSLATION
- Translation is considered a kind of modification, so you may
- distribute translations of the Document under the terms of section
- 4. Replacing Invariant Sections with translations requires special
- permission from their copyright holders, but you may include
- translations of some or all Invariant Sections in addition to the
- original versions of these Invariant Sections. You may include a
- translation of this License, and all the license notices in the
- Document, and any Warranty Disclaimers, provided that you also
- include the original English version of this License and the
- original versions of those notices and disclaimers. In case of a
- disagreement between the translation and the original version of
- this License or a notice or disclaimer, the original version will
- prevail.
- If a section in the Document is Entitled "Acknowledgements",
- "Dedications", or "History", the requirement (section 4) to
- Preserve its Title (section 1) will typically require changing the
- actual title.
- 9. TERMINATION
- You may not copy, modify, sublicense, or distribute the Document
- except as expressly provided under this License. Any attempt
- otherwise to copy, modify, sublicense, or distribute it is void,
- and will automatically terminate your rights under this License.
- However, if you cease all violation of this License, then your
- license from a particular copyright holder is reinstated (a)
- provisionally, unless and until the copyright holder explicitly
- and finally terminates your license, and (b) permanently, if the
- copyright holder fails to notify you of the violation by some
- reasonable means prior to 60 days after the cessation.
- Moreover, your license from a particular copyright holder is
- reinstated permanently if the copyright holder notifies you of the
- violation by some reasonable means, this is the first time you have
- received notice of violation of this License (for any work) from
- that copyright holder, and you cure the violation prior to 30 days
- after your receipt of the notice.
- Termination of your rights under this section does not terminate
- the licenses of parties who have received copies or rights from
- you under this License. If your rights have been terminated and
- not permanently reinstated, receipt of a copy of some or all of
- the same material does not give you any rights to use it.
- 10. FUTURE REVISIONS OF THIS LICENSE
- The Free Software Foundation may publish new, revised versions of
- the GNU Free Documentation License from time to time. Such new
- versions will be similar in spirit to the present version, but may
- differ in detail to address new problems or concerns. See
- `http://www.gnu.org/copyleft/'.
- Each version of the License is given a distinguishing version
- number. If the Document specifies that a particular numbered
- version of this License "or any later version" applies to it, you
- have the option of following the terms and conditions either of
- that specified version or of any later version that has been
- published (not as a draft) by the Free Software Foundation. If
- the Document does not specify a version number of this License,
- you may choose any version ever published (not as a draft) by the
- Free Software Foundation. If the Document specifies that a proxy
- can decide which future versions of this License can be used, that
- proxy's public statement of acceptance of a version permanently
- authorizes you to choose that version for the Document.
- 11. RELICENSING
- "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
- World Wide Web server that publishes copyrightable works and also
- provides prominent facilities for anybody to edit those works. A
- public wiki that anybody can edit is an example of such a server.
- A "Massive Multiauthor Collaboration" (or "MMC") contained in the
- site means any set of copyrightable works thus published on the MMC
- site.
- "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
- license published by Creative Commons Corporation, a not-for-profit
- corporation with a principal place of business in San Francisco,
- California, as well as future copyleft versions of that license
- published by that same organization.
- "Incorporate" means to publish or republish a Document, in whole or
- in part, as part of another Document.
- An MMC is "eligible for relicensing" if it is licensed under this
- License, and if all works that were first published under this
- License somewhere other than this MMC, and subsequently
- incorporated in whole or in part into the MMC, (1) had no cover
- texts or invariant sections, and (2) were thus incorporated prior
- to November 1, 2008.
- The operator of an MMC Site may republish an MMC contained in the
- site under CC-BY-SA on the same site at any time before August 1,
- 2009, provided the MMC is eligible for relicensing.
- ADDENDUM: How to use this License for your documents
- ====================================================
- To use this License in a document you have written, include a copy of
- the License in the document and put the following copyright and license
- notices just after the title page:
- Copyright (C) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
- Texts. A copy of the license is included in the section entitled ``GNU
- Free Documentation License''.
- If you have Invariant Sections, Front-Cover Texts and Back-Cover
- Texts, replace the "with...Texts." line with this:
- with the Invariant Sections being LIST THEIR TITLES, with
- the Front-Cover Texts being LIST, and with the Back-Cover Texts
- being LIST.
- If you have Invariant Sections without Cover Texts, or some other
- combination of the three, merge those two alternatives to suit the
- situation.
- If your document contains nontrivial examples of program code, we
- recommend releasing these examples in parallel under your choice of
- free software license, such as the GNU General Public License, to
- permit their use in free software.
- File: url, Node: Function Index, Next: Variable Index, Prev: GNU Free Documentation License, Up: Top
- Command and Function Index
- **************************
|