Author: dylan
Date: 2005-03-27 00:49:35 -0500 (Sun, 27 Mar 2005)
New Revision: 657
Added:
trunk/docs/manual/def.texi
trunk/docs/manual/formats.texi
trunk/docs/manual/introduction.texi
trunk/docs/manual/messages.texi
trunk/docs/manual/protocol.texi
Removed:
trunk/docs/manual/fdl.texi
Modified:
trunk/
trunk/docs/manual/Makefile
trunk/docs/manual/chap/events/connection.texi
trunk/docs/manual/haver.texi
Log:
[EMAIL PROTECTED]: dylan | 2005-03-26 02:54:26 -0500
Let the documentation flow!
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk:11166
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk-merge-10131:11178
27e50396-46e3-0310-8b22-ae223a1f35ce:/local:212
e9404bb1-7af0-0310-a7ff-e22194cd388b:/haver/local:866
edfcd8bd-4ce7-0310-a97e-bb1efd40edf3:/local:238
+ 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk:11166
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk-merge-10131:11178
27e50396-46e3-0310-8b22-ae223a1f35ce:/local:212
e9404bb1-7af0-0310-a7ff-e22194cd388b:/haver/local:867
edfcd8bd-4ce7-0310-a97e-bb1efd40edf3:/local:238
Modified: trunk/docs/manual/Makefile
===================================================================
--- trunk/docs/manual/Makefile 2005-03-27 05:49:33 UTC (rev 656)
+++ trunk/docs/manual/Makefile 2005-03-27 05:49:35 UTC (rev 657)
@@ -25,7 +25,7 @@
haver.pdf: haver.texi $(texi)
texi2pdf $<
- rm haver.tp haver.ky haver.fns haver.vr \
+ rm -f haver.tp haver.ky haver.fns haver.cps haver.vr \
haver.cp haver.fn haver.pg haver.aux haver.toc \
haver.log
Modified: trunk/docs/manual/chap/events/connection.texi
===================================================================
--- trunk/docs/manual/chap/events/connection.texi 2005-03-27 05:49:33 UTC
(rev 656)
+++ trunk/docs/manual/chap/events/connection.texi 2005-03-27 05:49:35 UTC
(rev 657)
@@ -3,46 +3,8 @@
@node Connection Events
@section Connection Events
-This section describes how a client connects
-to the server and authenticates itself. It also
-describes how to disconnect, and ways for both the server
-and client of making sure the connection is alive.
-
@c *************************************
[EMAIL PROTECTED] {Client Event} HAVER client
[EMAIL PROTECTED]
-
-This event @strong{must} be the first event sent by the client. If a different
-event is received, servers @strong{must} immediately terminate the connection.
-
-
-The parameter @var{client} is the name and version
-number of the client software, comparable to the ``User-Agent:''
-in HTTP. The format should be ``Program Name/#.#.#'', where ``#''
-is a number from 0 to 9. This format shall not be strictly enforced,
-but clients are encouraged to not deviate from it.
-
-The server will respond to this event
-by sending @command{HAVER} and @command{WANT IDENT}.
-
[EMAIL PROTECTED] deffn
-
-
-
[EMAIL PROTECTED] *************************************
-
[EMAIL PROTECTED] {Server Event} HAVER server
-This event is sent after the client sends @command{HAVER}.
-The parameter @var{server} is name and version number of the server,
-for example ``Haver::Server::POE/0.07''. This is the same form as
-for client names and versions.
-
-The client can just ignore this.
[EMAIL PROTECTED] deffn
-
[EMAIL PROTECTED] *************************************
-
@deffn {Server Event} WANT cmd [EMAIL PROTECTED]
When the server sends this event, the client
Added: trunk/docs/manual/def.texi
===================================================================
--- trunk/docs/manual/def.texi 2005-03-27 05:49:33 UTC (rev 656)
+++ trunk/docs/manual/def.texi 2005-03-27 05:49:35 UTC (rev 657)
@@ -0,0 +1,18 @@
[EMAIL PROTECTED] Texinfo definitions.
+
[EMAIL PROTECTED] VERSION 4
+
[EMAIL PROTECTED] cmd=command
[EMAIL PROTECTED] param=var
+
[EMAIL PROTECTED] mustBeUser
+Services @strong{must} not send this message.
[EMAIL PROTECTED] macro
+
[EMAIL PROTECTED] mustSendOnce
+This message @strong{must} only be sent once during the lifetime of the
connection.
[EMAIL PROTECTED] macro
+
[EMAIL PROTECTED] mustBeWanted
+This message @strong{must} only be sent when the server requests it with
@command{WANT}.
[EMAIL PROTECTED] macro
Deleted: trunk/docs/manual/fdl.texi
===================================================================
--- trunk/docs/manual/fdl.texi 2005-03-27 05:49:33 UTC (rev 656)
+++ trunk/docs/manual/fdl.texi 2005-03-27 05:49:35 UTC (rev 657)
@@ -1,452 +0,0 @@
-
[EMAIL PROTECTED] GNU Free Documentation License
[EMAIL PROTECTED] GNU Free Documentation License
-
[EMAIL PROTECTED] FDL, GNU Free Documentation License
[EMAIL PROTECTED] Version 1.2, November 2002
-
[EMAIL PROTECTED]
-Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc.
-59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
[EMAIL PROTECTED] display
-
[EMAIL PROTECTED] 0
[EMAIL PROTECTED]
-PREAMBLE
-
-The purpose of this License is to make a manual, textbook, or other
-functional and useful document @dfn{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.
-
[EMAIL PROTECTED]
-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
[EMAIL PROTECTED] without markup, Texinfo input format, [EMAIL PROTECTED] input
-format, @acronym{SGML} or @acronym{XML} using a publicly available
[EMAIL PROTECTED], and standard-conforming simple @acronym{HTML},
-PostScript or @acronym{PDF} designed for human modification. Examples
-of transparent image formats include @acronym{PNG}, @acronym{XCF} and
[EMAIL PROTECTED] Opaque formats include proprietary formats that can be
-read and edited only by proprietary word processors, @acronym{SGML} or
[EMAIL PROTECTED] for which the @acronym{DTD} and/or processing tools are
-not generally available, and the machine-generated @acronym{HTML},
-PostScript or @acronym{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.
-
-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.
-
[EMAIL PROTECTED]
-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.
-
[EMAIL PROTECTED]
-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.
-
[EMAIL PROTECTED]
-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:
-
[EMAIL PROTECTED] A
[EMAIL PROTECTED]
-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.
-
[EMAIL PROTECTED]
-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.
-
[EMAIL PROTECTED]
-State on the Title page the name of the publisher of the
-Modified Version, as the publisher.
-
[EMAIL PROTECTED]
-Preserve all the copyright notices of the Document.
-
[EMAIL PROTECTED]
-Add an appropriate copyright notice for your modifications
-adjacent to the other copyright notices.
-
[EMAIL PROTECTED]
-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.
-
[EMAIL PROTECTED]
-Preserve in that license notice the full lists of Invariant Sections
-and required Cover Texts given in the Document's license notice.
-
[EMAIL PROTECTED]
-Include an unaltered copy of this License.
-
[EMAIL PROTECTED]
-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.
-
[EMAIL PROTECTED]
-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.
-
[EMAIL PROTECTED]
-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.
-
[EMAIL PROTECTED]
-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.
-
[EMAIL PROTECTED]
-Delete any section Entitled ``Endorsements''. Such a section
-may not be included in the Modified Version.
-
[EMAIL PROTECTED]
-Do not retitle any existing section to be Entitled ``Endorsements'' or
-to conflict in title with any Invariant Section.
-
[EMAIL PROTECTED]
-Preserve any Warranty Disclaimers.
[EMAIL PROTECTED] enumerate
-
-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.
-
[EMAIL PROTECTED]
-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.''
-
[EMAIL PROTECTED]
-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.
-
[EMAIL PROTECTED]
-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.
-
[EMAIL PROTECTED]
-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.
-
[EMAIL PROTECTED]
-TERMINATION
-
-You may not copy, modify, sublicense, or distribute the Document except
-as expressly provided for under this License. Any other attempt to
-copy, modify, sublicense or distribute the Document is void, and will
-automatically terminate your rights under this License. However,
-parties who have received copies, or rights, from you under this
-License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
[EMAIL PROTECTED]
-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
[EMAIL PROTECTED]/}.
-
-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.
[EMAIL PROTECTED] enumerate
-
[EMAIL PROTECTED]
[EMAIL PROTECTED] 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:
-
[EMAIL PROTECTED]
[EMAIL PROTECTED]
- Copyright (C) @var{year} @var{your name}.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.2
- 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''.
[EMAIL PROTECTED] group
[EMAIL PROTECTED] smallexample
-
-If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the ``with...Texts.'' line with this:
-
[EMAIL PROTECTED]
[EMAIL PROTECTED]
- with the Invariant Sections being @var{list their titles}, with
- the Front-Cover Texts being @var{list}, and with the Back-Cover Texts
- being @var{list}.
[EMAIL PROTECTED] group
[EMAIL PROTECTED] smallexample
-
-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.
-
[EMAIL PROTECTED] Local Variables:
[EMAIL PROTECTED] ispell-local-pdict: "ispell-dict"
[EMAIL PROTECTED] End:
-
Added: trunk/docs/manual/formats.texi
===================================================================
--- trunk/docs/manual/formats.texi 2005-03-27 05:49:33 UTC (rev 656)
+++ trunk/docs/manual/formats.texi 2005-03-27 05:49:35 UTC (rev 657)
@@ -0,0 +1,54 @@
[EMAIL PROTECTED] Formats
[EMAIL PROTECTED] Formats
+
[EMAIL PROTECTED]
+* Dates and Times:: The meaning of 1985-09-14 and such.
+* Identifiers:: The name of the beast.
+* Commands:: Nobody likes feeling invalid.
[EMAIL PROTECTED] menu
+
[EMAIL PROTECTED] Dates and Times
[EMAIL PROTECTED] Dates and Times
+
+Dates and times are always assumed to be in UTC.
+
+Whenever a date appears in the haver protocol,
+it is given in the form @code{%Y-%m-%d %H:%M:%S}.
+where:
+
[EMAIL PROTECTED] @code
[EMAIL PROTECTED] %Y
+The year, such 2004 or 1985.
+
[EMAIL PROTECTED] %m
+The month, from 01 to 12.
+
[EMAIL PROTECTED] %d
+The day, from 01 to 31.
+
[EMAIL PROTECTED] %H
+The hour, from 00 to 23.
+
[EMAIL PROTECTED] %M
+The minute, from 00 to 59.
+
[EMAIL PROTECTED] %S
+The second, from 00 to 60 (for leap seconds).
[EMAIL PROTECTED] table
+
+An example: 2005-03-22 04:10:28.
+
[EMAIL PROTECTED] Identifiers
[EMAIL PROTECTED] Identifiers
+
+A valid identifier must match the perl-style regular expression:
[EMAIL PROTECTED]/&?[a-z][a-z0-9_.'@-]+/i!}.
+Identifiers are case insensitive.
+
+Identifiers beginning with @code{&} or containing @code{@@} are reserved by
the server.
+
[EMAIL PROTECTED] Commands
[EMAIL PROTECTED] Commands
+
+The command portion of a message must match the regex:
[EMAIL PROTECTED]/[A-Z][A-Z:_-]+/}.
Modified: trunk/docs/manual/haver.texi
===================================================================
--- trunk/docs/manual/haver.texi 2005-03-27 05:49:33 UTC (rev 656)
+++ trunk/docs/manual/haver.texi 2005-03-27 05:49:35 UTC (rev 657)
@@ -1,30 +1,18 @@
-\input texinfo @c -*-texinfo-*-
+\input texinfo
@comment $Id: texinfo.txi,v 1.52 2004/04/09 21:30:07 karl Exp $
@comment %**start of header
[EMAIL PROTECTED] sample.info
[EMAIL PROTECTED] version.texi
[EMAIL PROTECTED] GNU Sample @value{VERSION}
[EMAIL PROTECTED] pg cp
[EMAIL PROTECTED] haver.info
[EMAIL PROTECTED] def.texi
[EMAIL PROTECTED] The Divine Secrets of Haver ([EMAIL PROTECTED])
[EMAIL PROTECTED] fn cp
@comment %**end of header
@copying
-This manual is for GNU Sample
-(version @value{VERSION}, @value{UPDATED}),
-which is an example in the Texinfo documentation.
+Copyright @copyright{} 2004, 2005 Dylan Hardison.
-Copyright @copyright{} 2004 Free Software Foundation, Inc.
-
@quotation
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 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 freedom to copy and modify
-this GNU Manual, like GNU software. Copies published by the Free
-Software Foundation raise funds for GNU development.''
+This work is licensed under the Creative Commons Attribution-ShareAlike
License. To view a copy of this
+license, visit @url{http://creativecommons.org/licenses/by-sa/2.0/}
+or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford,
California 94305, USA.
@end quotation
@end copying
@@ -38,7 +26,7 @@
@titlepage
@title The Divine Secrets of Haver
@subtitle A Journey into Madness
[EMAIL PROTECTED] Version @value{version}
[EMAIL PROTECTED] Version @value{VERSION}
@author Dylan William Hardison (@[EMAIL PROTECTED])
@page
@vskip 0pt plus 1filll
@@ -49,39 +37,33 @@
@ifnottex
@node Top
[EMAIL PROTECTED] GNU Sample
[EMAIL PROTECTED] The Divine Secrets of Haver
@insertcopying
@end ifnottex
+
@menu
-* Invoking sample::
-* Copying This Manual::
+* Abstract::
+* Introduction::
+* Protocol::
+* Formats::
+* Messages::
* Index::
@end menu
[EMAIL PROTECTED] Abstract
[EMAIL PROTECTED] Abstract
[EMAIL PROTECTED] Invoking sample
[EMAIL PROTECTED] Invoking sample
+Haver is a network protocol for real time textual confrencing,
+and is being developed by an international coalition of four people.
+It does @strong{not} utilize advanced technologies such as XML.
[EMAIL PROTECTED] sample
[EMAIL PROTECTED] invoking @command{sample}
[EMAIL PROTECTED] introduction.texi
[EMAIL PROTECTED] protocol.texi
[EMAIL PROTECTED] formats.texi
[EMAIL PROTECTED] messages.texi
-This is a sample manual. There is no sample program to
-invoke, but if there was, you could see its basic usage
-and command line options here.
-
-
[EMAIL PROTECTED] Copying This Manual
[EMAIL PROTECTED] Copying This Manual
-
[EMAIL PROTECTED]
-* GNU Free Documentation License:: License for copying this manual.
[EMAIL PROTECTED] menu
-
[EMAIL PROTECTED] fdl.texi
-
-
@node Index
@unnumbered Index
Added: trunk/docs/manual/introduction.texi
===================================================================
--- trunk/docs/manual/introduction.texi 2005-03-27 05:49:33 UTC (rev 656)
+++ trunk/docs/manual/introduction.texi 2005-03-27 05:49:35 UTC (rev 657)
@@ -0,0 +1,58 @@
[EMAIL PROTECTED] Introduction
[EMAIL PROTECTED] Introduction
+
+Haver is a simple line based, tab delimited protocol. It is
+not meant as a replacement to IRC, Jabber,
+or SILC. Nevertheless, it should be rather
+less difficult to write clients for haver than the above mentioned protocols.
+
+This protocol is being designed because current protocols are either
+too limited (e.g. IRC) or too complicated (e.g. jabber, SILC) to extend
+in playful and perhaps silly ways. It is an itch that we are scratching.
+
+It is also a fun programming exercise.
+
[EMAIL PROTECTED]
+* Servers::
+* Clients::
+* Channels::
+* Entities::
[EMAIL PROTECTED] menu
+
[EMAIL PROTECTED] Servers
[EMAIL PROTECTED] Servers
+
[EMAIL PROTECTED] is (mostly) a client-server protocol.
+Thus a server is needed for two haver clients to communicate.
+Servers store metadata about each client, and also maintain the list of
channels.
+
[EMAIL PROTECTED] Clients
[EMAIL PROTECTED] Clients
+
+A haver client is any TCP/IP program that conforms to the haver protocol.
+There are two varieties of clients: Users and Clients.
+
+Users are representations of either real people, chatbots, or GreenReaper.
+
+Services are privledged clients that may add new protocol commands, add new
virtual users
+called agents, and allow different forms of server linking.
+
[EMAIL PROTECTED] Channels
[EMAIL PROTECTED] Channels
+
+Channels are collections of users, as in IRC. Unlike IRC, channels are never
automagically
+created. Depending on the whim of the server admins, channels may be created
by anyone
+or that action may be restricted to users with the proper privledges.
+
[EMAIL PROTECTED] Lobby
+
+The lobby is like a special channel. It contains all the users, services, and
channels
+of the server.
+
[EMAIL PROTECTED] Entities
[EMAIL PROTECTED] Entities
+
+Channels, users, and services share many common attributes, so it is useful to
refer to them
+both as entities.
+
+
Added: trunk/docs/manual/messages.texi
===================================================================
--- trunk/docs/manual/messages.texi 2005-03-27 05:49:33 UTC (rev 656)
+++ trunk/docs/manual/messages.texi 2005-03-27 05:49:35 UTC (rev 657)
@@ -0,0 +1,57 @@
[EMAIL PROTECTED] Messages
[EMAIL PROTECTED] Messages
+
+This chapter describes all the messages that a conforming Haver
+applications can send and receive.
+It also details how error conditions are handled.
+
+A message is composed of a command and zero or more parameters.
+Commands are typeset as @cmd{COMMAND} and arguments @param{parameter}.
+Sadly, parameters appear in all uppercase in info and plain text format.
+
[EMAIL PROTECTED]
+* Connection Messages::
[EMAIL PROTECTED] menu
+
+
[EMAIL PROTECTED] Connection Messages
[EMAIL PROTECTED] Connection
+
+This section describes how a client connects
+to the server and authenticates itself. It also
+describes how to disconnect, and ways for both the server
+and client of making sure the connection is alive.
+
[EMAIL PROTECTED] *************************************
+
[EMAIL PROTECTED] {Client Event} HAVER client
[EMAIL PROTECTED]
+
+This event @strong{must} be the first event sent by the client.
+If a different event is received, servers @strong{must}
+immediately terminate the connection.
+
+The parameter @param{client} is the name and version
+number of the client software, comparable to the ``User-Agent:''
+in HTTP. The format should be ``Program Name/#.#.#'', where ``#''
+is a number from 0 to 9. This format shall not be strictly enforced,
+but clients are encouraged to not deviate from it.
+
+The server will respond to this event
+by sending @cmd{HAVER} and @cmd{WANT IDENT}.
[EMAIL PROTECTED] deffn
+
[EMAIL PROTECTED]
+
[EMAIL PROTECTED] *************************************
+
[EMAIL PROTECTED] {Server Event} HAVER server
+This event is sent after the client sends @cmd{HAVER}.
+The parameter @param{server} is name and version number of the server,
+for example ``Haver::Server::POE/0.07''. This is the same form as
+for client names and versions.
+
+The client can just ignore this.
[EMAIL PROTECTED] deffn
+
+
Added: trunk/docs/manual/protocol.texi
===================================================================
--- trunk/docs/manual/protocol.texi 2005-03-27 05:49:33 UTC (rev 656)
+++ trunk/docs/manual/protocol.texi 2005-03-27 05:49:35 UTC (rev 657)
@@ -0,0 +1,45 @@
[EMAIL PROTECTED] Protocol
[EMAIL PROTECTED] Protocol
+
+The haver protocol is relatively easy to parse:
+Simply split lines on the tab character. There is an optional escaping
+mechanism, and support for Unicode. These issues are explained next.
+
[EMAIL PROTECTED]
+* Character codes:: Unicode your friend.
+* Parsing:: Banana Split
+* ASCII NULs:: Thorny issue.
[EMAIL PROTECTED] menu
+
[EMAIL PROTECTED] Character codes
[EMAIL PROTECTED] Character codes
+
+The haver protocol is in the UTF-8 encoding, as defined in
+RFC 2279. However, only the first 127 character codes (the ASCII range)
+are used for message names, identifiers, and delimiters.
+
[EMAIL PROTECTED] Parsing
[EMAIL PROTECTED] Parsing
+
+The protocol is delimited into lines separated by CR LF (0x0D 0x0A).
+Each line is further delimited by the Tab character (0x09) into a series of
tokens.
+The first of the tokens is called the command.
+The remaining tokens (if any) are refered to as the arguments.
+The command and arguments together make up the message.
+
+If a literal tab, carriage return, or line feed needs to be sent,
+it must be written in escaped form with the Esc character (0x1b).
+In addition, Esc itself must be escaped.
+
+A literal carriage return is represented by ``<Esc>r''
+a literal line feed by ``<Esc>n'', a tab by ``<Esc>t'',
+and an Esc by ``<Esc>e''.
+Naturally, replace ``<Esc>'' with the Esc character (0x1b).
+
[EMAIL PROTECTED] ASCII NULs
[EMAIL PROTECTED] ASCII NULs
+
+Currently there is no defined behavior for ASCII NUL characters in the
protocol.
+Comments and suggestions on how to deal with them is welcome.
+
+