Author: dylan
Date: 2004-07-14 17:07:30 -0400 (Wed, 14 Jul 2004)
New Revision: 311
Added:
trunk/docs/manual/chap/concepts.tex
Modified:
trunk/clients/irssi/autogen.sh
trunk/clients/irssi/configure.in
trunk/clients/irssi/libtool
trunk/clients/irssi/src/core/Makefile
trunk/clients/irssi/src/core/haver-login.c
trunk/clients/irssi/src/core/haver-protocol.c
trunk/clients/irssi/src/core/haver-servers.c
trunk/docs/manual/Makefile
trunk/docs/manual/chap/introduction.tex
trunk/docs/manual/chap/protocol.tex
trunk/docs/manual/haver.tex
Log:
The changes in haver-irssi are not important.
Lots of "bug" fixes in the Divine Secrets of Haver.
Modified: trunk/clients/irssi/autogen.sh
===================================================================
--- trunk/clients/irssi/autogen.sh 2004-07-11 08:16:34 UTC (rev 310)
+++ trunk/clients/irssi/autogen.sh 2004-07-14 21:07:30 UTC (rev 311)
@@ -2,7 +2,7 @@
# Run this to generate all the initial makefiles, etc.
srcdir=`dirname $0`
-PKG_NAME="irssi-icq"
+PKG_NAME="irssi-haver"
DIE=0
Modified: trunk/clients/irssi/configure.in
===================================================================
--- trunk/clients/irssi/configure.in 2004-07-11 08:16:34 UTC (rev 310)
+++ trunk/clients/irssi/configure.in 2004-07-14 21:07:30 UTC (rev 311)
@@ -1,7 +1,7 @@
AC_INIT(src)
AM_CONFIG_HEADER(config-plugin.h)
-AM_INIT_AUTOMAKE(irssi-haver, 0.8.5.CVS)
+AM_INIT_AUTOMAKE(irssi-haver, 0.0.2)
AM_MAINTAINER_MODE
@@ -49,5 +49,5 @@
AC_OUTPUT(
Makefile
src/Makefile
-src/core/Makefile
-src/fe-common/Makefile)
+src/core/Makefile)
+dnlsrc/fe-common/Makefile)
Modified: trunk/clients/irssi/libtool
===================================================================
--- trunk/clients/irssi/libtool 2004-07-11 08:16:34 UTC (rev 310)
+++ trunk/clients/irssi/libtool 2004-07-14 21:07:30 UTC (rev 311)
@@ -1,7 +1,7 @@
#! /bin/sh
# libtoolT - Provide generalized library-building support services.
-# Generated automatically by (GNU irssi-haver 0.8.5.CVS)
+# Generated automatically by (GNU irssi-haver 0.0.2)
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
#
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
Modified: trunk/clients/irssi/src/core/Makefile
===================================================================
--- trunk/clients/irssi/src/core/Makefile 2004-07-11 08:16:34 UTC (rev
310)
+++ trunk/clients/irssi/src/core/Makefile 2004-07-14 21:07:30 UTC (rev
311)
@@ -93,7 +93,7 @@
RANLIB = ranlib
RC = @RC@
STRIP = strip
-VERSION = 0.8.5.CVS
+VERSION = 0.0.2
moduledir = $(libdir)/irssi/modules
Modified: trunk/clients/irssi/src/core/haver-login.c
===================================================================
--- trunk/clients/irssi/src/core/haver-login.c 2004-07-11 08:16:34 UTC (rev
310)
+++ trunk/clients/irssi/src/core/haver-login.c 2004-07-14 21:07:30 UTC (rev
311)
@@ -33,7 +33,7 @@
#include "levels.h"
#include "irssi-version.h"
-#define HAVER_VERSION 0.01
+#define HAVER_VERSION "0.01"
static void event_want(HAVER_SERVER_REC *server, char *uid, char *cid, GSList
*args)
{
Modified: trunk/clients/irssi/src/core/haver-protocol.c
===================================================================
--- trunk/clients/irssi/src/core/haver-protocol.c 2004-07-11 08:16:34 UTC
(rev 310)
+++ trunk/clients/irssi/src/core/haver-protocol.c 2004-07-14 21:07:30 UTC
(rev 311)
@@ -32,6 +32,9 @@
#include "levels.h"
#include "irssi-version.h"
+#include <string.h>
+#include <stdlib.h>
+
//#define DEBUG(msg, param...) fprintf(stderr, msg "\n" , ## param)
#define DEBUG(msg, param...) printtext(NULL, NULL, MSGLEVEL_CLIENTNOTICE, msg
,##param)
#define NOTICE(msg, param...) printtext(server, NULL, MSGLEVEL_CLIENTNOTICE,
msg ,##param)
Modified: trunk/clients/irssi/src/core/haver-servers.c
===================================================================
--- trunk/clients/irssi/src/core/haver-servers.c 2004-07-11 08:16:34 UTC
(rev 310)
+++ trunk/clients/irssi/src/core/haver-servers.c 2004-07-14 21:07:30 UTC
(rev 311)
@@ -67,6 +67,7 @@
if (server->handle != NULL) {
/* disconnect it here, so the core won't try to leave it
later - FIXME: this prevents sending a last message... */
+
net_sendbuffer_destroy(server->handle, TRUE);
server->handle = NULL;
}
Modified: trunk/docs/manual/Makefile
===================================================================
--- trunk/docs/manual/Makefile 2004-07-11 08:16:34 UTC (rev 310)
+++ trunk/docs/manual/Makefile 2004-07-14 21:07:30 UTC (rev 311)
@@ -1,7 +1,12 @@
+export RERUN=Rerun to get cross-references right
+CLEAN=-name '*.aux' \
+ -or -name '*.log' \
+ -or -name '*.bbl' \
+ -or -name '*.blg' \
+ -or -name '*.toc'
-export RERUN=Rerun to get cross-references right
base=haver
@@ -9,26 +14,40 @@
all: dvi
dvi: $(base).dvi
+
pdf: $(base).pdf
+
+html: $(base)/$(base).html
clean:
- find . \( -name '*.aux' -or -name '*.log' \) -exec rm -v {} \;
+ find . \( $(CLEAN) \) -exec rm -v {} \;
realclean:
- -rm $(base).dvi $(base).pdf
+ -rm $(base).dvi
-$(base).dvi: $(base).tex $(wildcard chap/*.tex)
+$(base).dvi: $(base).tex $(wildcard chap/*.tex) $(base).bbl
latex $< | tee dvi.log
-grep -q "$$RERUN" dvi.log && latex $<
rm dvi.log
-$(base).pdf: $(base).tex $(wildcard chap/*.tex)
+
+$(base).bbl: $(base).bib
+ -if [ ! -e $(base).aux ]; then \
+ latex $(base).tex; \
+ rm $(base).dvi; \
+ fi
+ bibtex $(base)
+
+
+$(base).pdf: $(base).tex $(wildcard chap/*.tex) $(base).bbl
pdflatex $< | tee pdf.log
-grep -q "$$RERUN" pdf.log && pdflatex $<
rm pdf.log
+$(base)/$(base).html: $(base).tex $(wildcard chap/*.tex) $(base).bbl
+ latex2html -local_icons -split 3 $<
-.PHONY: all clean dvi pdf
+.PHONY: all clean dvi
Added: trunk/docs/manual/chap/concepts.tex
===================================================================
--- trunk/docs/manual/chap/concepts.tex 2004-07-11 08:16:34 UTC (rev 310)
+++ trunk/docs/manual/chap/concepts.tex 2004-07-14 21:07:30 UTC (rev 311)
@@ -0,0 +1,6 @@
+
+\chapter{Concepts}
+
+WRITE ME.
+
+
Modified: trunk/docs/manual/chap/introduction.tex
===================================================================
--- trunk/docs/manual/chap/introduction.tex 2004-07-11 08:16:34 UTC (rev
310)
+++ trunk/docs/manual/chap/introduction.tex 2004-07-14 21:07:30 UTC (rev
311)
@@ -1,18 +1,18 @@
-
\chapter{Introduction}
-Haver\footnote{verb: To maunder; to talk foolishly; to chatter.}
-is a simple line based, tab delimited protocol. It is
-not meant as a replacement to IRC\footnote{add citation},
Jabber/XMPP\footnote{cite},
-or SILC\footnote{cite}.
+Haver is a simple line based, tab delimited protocol. It is
+not meant as a replacement to IRC\cite{rfc:1459}, \cite{jabber},
+or SILC\cite{silc}.
Nevertheless, it should be rather less difficult to write clients for
-than the above mentioned protocols. SILC is likely to be far more secure,
-however.
+than the above mentioned protocols.
\section{Servers}
-Each server must have a name.
+The server routes messages to and from clients,
+keeps track of permisions for each client,
+and a associates various key-value pairs with each client
+and channel.
\section{Clients}
@@ -23,8 +23,7 @@
Each client of a given type (which is its namespace) must have a unique id.
That is to say,
each type and id combination must be unique.
-The form of namespaces is defined in \ref{sec:format.ns},
-and the form of identifiers in \ref{sec:format.id}.
+The format of identifiers and namespaces is defined in
Section~\ref{sec:format.id}.
\subsection{Users}
@@ -45,7 +44,7 @@
\subsubsection{Agents}
Services may produce virtual user-like entities to interact with
-users. These are called agents, and are rather like privledged bots.
+users. These are called agents, and are rather like privileged bots.
% cross-ref: Authoriztion.
@@ -53,6 +52,8 @@
\section{Channels}
Channels are collections of users, much like in IRC,
-except they must be created by a server admin or by
+except they must be created by a server admin or by some other controlled
means.
Channel ids (cids) follow the same rules as identifiers for client objects
as defined in section~\ref{sec:format.id}.
+
+
Modified: trunk/docs/manual/chap/protocol.tex
===================================================================
--- trunk/docs/manual/chap/protocol.tex 2004-07-11 08:16:34 UTC (rev 310)
+++ trunk/docs/manual/chap/protocol.tex 2004-07-14 21:07:30 UTC (rev 311)
@@ -1,9 +1,9 @@
-
\chapter{Protocol}
+The haver protocol is line based, plain text protocol
+for real time Internet conferencing.
+Parsing it is not unlike parsing tab separated field files.
-Write something....
-
\section{Parsing}
The protocol is in the UTF-8 encoding, but only the first
@@ -12,9 +12,9 @@
The characters CR, LF, Tab, and Esc (see Table~\ref{tab:chars})
have special meaning. CR (Carriage Return) followed by LF (Line Feed)
-terminates a line. Each line is sub-devided into tokens separated by Tabs.
+terminates a line. Each line is subdivided into tokens separated by Tabs.
Esc is used for encoding literal CR, LF, Tab, and Esc characters.
-See Section~\ref{tab:esc} for details on escaping.
+See Section~\ref{sec:esc} for details on escaping.
\begin{table}
\caption{Special Characters}
@@ -51,9 +51,10 @@
\function{g\_strsplit} function, as well.
\subsection{Escaping and Unescaping}
+ \label{sec:esc}
Escape sequences are used to encode ``CR'', ``LF'', ``Tab'', and
``Esc'' (as defined
- in table~\ref{tab:chars}) as ``Esc r'', ``Esc n'', ``Esc t'', and ``Esc
e''
+ in Table~\ref{tab:chars}) as ``Esc r'', ``Esc n'', ``Esc t'', and ``Esc
e''
respectively.
Table~\ref{tab:esc} should provide some enlightenment to this rather
confusing definition. Thus, CR escaped is ``Esc r'', ``Esc t''
unescaped is
@@ -86,27 +87,41 @@
such as how dates, times, and time zones are formatted.
It also describes the format for identifiers (the ids of channels, users, etc).
-\subsection{Timestamps}
+\subsection{Dates and Times}
-Timestamps are in the form of ``DATE TIME TIMEZONE'',
-and the format for each of those is given below.
+Haver dates are
-An example timestamp would be 1944-06-06 12:30:41 +0100,
+\begin{table}
+\caption{Timestamp formats}
+\label{tab:format.time}
+\begin{tabular}{|l|l|} \hline
+Symbolic Name & Perl Regex & Example\\
+\hline
+\emph{Date} & \verb!/\d{4}-\d{2}-\d{2}/! & 1985-09-14 \\
+\hline
+\emph{Time} & \verb!/\d{2}:\d{2}:\d{2}(\.\d+)?/! & 01:18:14 \\
+\hline
+\emph{Timezone} & \verb!/[+-]\d{2}\d{2}/! & -0400 \\
+\hline
+\end{tabular}
+\end{table}
+
+An example time stamp would be 1944-06-06 12:30:41 +0100,
which is June 6th, 1944 at half past noon (and 41 seconds...) in the UTC + 1
time zone.
+
+
\subsubsection{Dates}
Dates are expressed as YYYY-MM-DD, which MM and DD are zero-padded if
necessary.
For example would be 1985-09-14.
-\paragraph{Perl Regex} \verb!/\d{4}-\d{2}-\d{2}/!
\subsubsection{Times}
Time is expressed as HH:MM:SS, where the hour ranges from 00 to 23,
the minute and second range from 00 to 59.
A period (``.'') me be appended to SS to express any fractional part of a
second.
-\paragraph{Perl Regex} \verb!/\d{2}:\d{2}:\d{2}(\.\d+)?/!
\subsubsection{Time Zones}
@@ -115,15 +130,14 @@
HH the hour offset and MM is the minute offset. For example, Eastern Daylight
Time is
-0400.
-\paragraph{Perl Regex} \verb!/[-+]\d{2}\d{2}/!
\subsection{Identifiers and Namespaces}
+\label{sec:format.id}
This section describes the various naming convention for
objects such as channels, users, and services within a haver server.
\subsubsection{Identifiers}
-\label{sec:format.id}
Identifiers may begin with an optional ampersand or dollar sign,
and must then be followed (or start with in the first place) a lower-case
letter,
@@ -135,20 +149,16 @@
with appropriate authority.
-\paragraph{Perl Regex} \verb!/[&$]?[a-z][a-z0-9_'@-]+/!.
+\verb!/[&$]?[a-z][a-z0-9_'@-]+/!
A user client will not be allowed to login with user ids that fail to match
\verb!/[a-z][a-z0-9_'-]+/!,
nor create channel ids fail to match the same.
\subsubsection{Namespaces}
-\label{sec:format.ns}
Namespaces are used to separate the identifiers for different types of things,
so that, for example, there may be a channel named joe and a user named joe.
Namespaces are composed of only lower case letters.
-\paragraph{Perl Regex} \verb!/[a-z]+/!
-
-It can't be very much simpler, no?
-
+\verb!/[a-z]+/!
Modified: trunk/docs/manual/haver.tex
===================================================================
--- trunk/docs/manual/haver.tex 2004-07-11 08:16:34 UTC (rev 310)
+++ trunk/docs/manual/haver.tex 2004-07-14 21:07:30 UTC (rev 311)
@@ -1,5 +1,6 @@
% Date: Wednesday, May 26 at 7:45PM
\documentclass[12pt]{report}
+\usepackage{url}
\input{macros}
\title{The Divine Secrets of Haver}
\author{Dylan William Hardison}
@@ -24,8 +25,14 @@
of using SSL sockets.
\end{abstract}
+\tableofcontents
+
\include{chap/introduction}
\include{chap/protocol}
+\include{chap/concepts}
+\bibliographystyle{plain}
+\bibliography{haver}
+
\end{document}