2009-10-22  Jan Moringen  <scymtym@users.sourceforge.net>

	* TODO (Future): added BEEP and SubEthaEdit tasks

2009-10-15  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (rudel-version): bumped to 0.3
	* Project.ede (project rudel): bumped version to 0.3

	* TODO: whitespace fixes
        (Milestone rudel-0.4): new; focus on telepathy transport
        (Milestone rudel-0.3): added infinote, document trees

2009-10-13  Jan Moringen  <scymtym@users.sourceforge.net>

	* TODO: new file; TODO items for future development and releases

2009-10-12  Phil Hagelberg  <phil@enigma>

        * rudel-mode.el
	(rudel-mode-line-publish-state--add-indicator-to-mode-line):
	Replace reference to mode-line indicator that was not present in
	Emacs 22.

        * rudel-compat.el: add rudel-get-coding-system wrapper function.
        * rudel-obby-util.el (with-parsed-args): Replace call to
	Emacs23-specific coding-system-from-name function with
	rudel-get-coding-system.

        rudel-compat.el: Add string-match-p if not present. (< Emacs 23)

        * rudel-mode.el, rudel-overlay.el: Move use of :safe flag from
	defcustom to a separate put. Required for Emacs 22 compatibility.

        * rudel-loaddefs.el: Only require rudel-zeroconf if zeroconf is
	available.

2009-10-12  Jan Moringen  <scymtym@users.sourceforge.net>

	* jupiter/jupiter-delete.el (jupiter-delete::jupiter-transform):
	fixed error message

2009-10-08  Jan Moringen  <scymtym@users.sourceforge.net>

	* jupiter/jupiter.el (header): downcased keywords
	(object-print): new method; add revisions and log length to string
	* jupiter/jupiter-nop.el (header): downcased keywords; cosmetic
	representation changes to "commentary" section
	* jupiter/jupiter-insert.el (header): downcased keywords; cosmetic
	changes to "commentary" section
	(object-print): new method; add start, end, length and data to
	string representation
	* jupiter/jupiter-delete.el (header): downcased keywords; cosmetic
	changes to "commentary" section
	(jupiter-transform): cosmetic changes
	(object-print): new method; add position and length to string
	representation
	* jupiter/jupiter-compound.el (header): downcased keywords;
	cosmetic changes to "commentary" section
	(object-print): new method; add number of children to string
	representation

2009-10-07  Jan Moringen  <scymtym@users.sourceforge.net>

	* doc/card.tex (Session Initiation): mention configured sessions;
	explain Zeroconf-advertised session in more detail

2009-10-06  Jan Moringen  <scymtym@users.sourceforge.net>

	* doc/card.tex (Joining a Session ...): added global and user
	passwords

	* rudel.el (rudel-version): use list representation instead of
	float
        (rudel-allocate-buffer-function): added documentation string

	* INSTALL (COMPILING): fixed typo

2009-10-06  Phil Hagelberg  <phil@enigma>

        * README (JOINING): Mention `rudel-configured-sessions'
	customization.

	* README (INTRODUCTION): emphasize obby backend being the only
	supported one so far
	(JOINING): update example session with passwords.

	* rudel-loaddefs.el: Add autoloads for rudel-host-session and
	rudel-speedbar

2009-10-05  Phil Hagelberg  <phil@enigma>

	* README: Mention Eshell issue and license.

2009-10-03  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-compat.el (make-pulsing-progress-reporter): removed;
	`make-progress-reporter' is sufficient
	(progress-reporter-pulse): store index in the car of the reporter;
	set last update time of the reporter
	* obby/rudel-obby.el (rudel-connect): use `make-progress-reporter'
	instead of `make-pulsing-progress-reporter'
	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-subscribe-to): cosmetic changes in
	status messages

	* ChangeLog: updated

2009-10-02  Phil Hagelberg  <phil@enigma>

	* INSTALL: Mention CEDET's inclusion in Emacs

	* rudel-state-machine.el (rudel-state-wait): update progress
	reporter usage to match rudel-compat.el

	* rudel-compat.el: Use updated progress reporters
	(progress-reporter-update): may be used by pulsing reporters too
	(make-progress-reporter): nil max value returns pulsing reporter
	(progress-reporter-force-update): may be used by pulsing reporters
	too
	(progress-reporter-pulsing-p): added
	(progress-reporter-pulse): removed message change option

2009-10-02  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-state-machine.el (rudel-state-wait): accept callback
	function instead of message; adjusted documentation string
        * obby/rudel-obby.el (rudel-obby-backend::rudel-connect): when
	calling `rudel-state-wait', provide a callback; the callback
	controls a progress reporter
        * obby/rudel-obby-client.el
        (rudel-obby-connection::rudel-subscribe-to): when calling
	`rudel-state-wait', provide a callback; the callback controls a
	progress reporter

        * rudel-compat.el (progress-reporter-pulse): store index as float

	* obby/rudel-obby-client.el
	(rudel-obby-client-state-idle::rudel-obby/obby_document_create):
	cosmetic changes of printed messages
	(rudel-obby-client-state-idle::rudel-obby/obby_document_remove):
	cosmetic changes of printed messages

	* rudel.el (rudel-session::rudel-remove-document): when necessary,
	detach document first; added documentation string
	(rudel-document::rudel-attached-p): new method; return non-nil
	when document is attached to a buffer

	* obby/rudel-obby-client.el
	(rudel-obby-client-state-idle::rudel-obby/net6_client_part):
	promoted warning severity to :warning
	(rudel-obby-client-state-idle::rudel-obby/obby_document_remove):
	fixed lookup of document; added warning message in case it is not
	found
	(rudel-obby-client-state-idle::rudel-obby/obby_document/rename):
	promoted warning severity to :warning
	(rudel-obby-connection::rudel-unpublish): new method; ask server
	to remove a document

2009-10-01  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-state-machine.el (rudel-state-wait): fixed progress range
	[0, 100] -> [0, 1]; fixed reference to reporter object
	* obby/rudel-obby.el (rudel-obby-send): removed remnants of calls
	to `working-*' functions; call `progress-reporter-pulse' just
	before `progress-reporter-done'

2009-09-30  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-compat.el: only define pulsing progress reporter when
	Emacs does not have one itself
	(header): downcased keywords
	(make-pulsing-progress-reporter): renamed
	`make-progress-reporter-pulse' ->
	`make-pulsing-progress-reporter'; cosmetic changes; explanatory
	comment
	(progress-reporter-pulse): added documentation string
	Suggested by Phil Hagelberg

	* rudel-compat.el (progress-pulse-values): new variable; indicator
	strings used by pulsing progress reporter
	(make-progress-reporter-pulse): new function; creates pulsing
	progress reporter
	(progress-reporter-pulse): new function; updates pulsing progress
	reporter
	Suggested by Phil Hagelberg

2009-09-29  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-server.el
	(rudel-obby-server-state-before-join::rudel-obby/net6_client_login):
	accept two additional arguments: global-password and user-password

	* rudel-session-initiation.el (rudel-configured-sessions):
	improved documentation string

2009-09-29  Jan Moringen  <scymtym@users.sourceforge.net>

	* INSTALL (REQUIREMENTS): wording
	(INSTALLING): mention other things that cause rudel to be
	autoloaded; minor cosmetic changes
	(COMPILING): fixed filename compile.el -> rudel-compile.el

	* rudel-compile.el (header): added copyright and meta data
	(code): let-bind rudel-dir; call `byte-recompile-directory' just
	once since it operates recursively

2009-09-28  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-server.el (header): better documentation
	(require rudel-state-machine): now required for state machine
	style handling of client connections
	(require rudel-obby-state): now required; provides base class for
	states
	(rudel-obby-server-state-new): new class; client connection state
	new
	(rudel-obby-server-state-encryption-negotiate): new class; client connection state
	for negotiating encryption
	(rudel-obby-server-state-before-join): new class; client connection state
	for waiting for login request
	(rudel-obby-server-state-new): new class; client connection state
	entered after session setup and joining is complete
	(rudel-obby-server-connection-states): new variable; list of
	states and their symbolic names
	(rudel-obby-client): now derived from rudel-state-machine

	* obby/rudel-obby.el (rudel-obby-backend::rudel-ask-connect-info):
	check for :global-password and :user-password correctly; do not
	put them into the list when they are ""
	(rudel-obby-backend::rudel-connect): comment

	* rudel-session-initiation.el
	(rudel-configured-sessions-backend::rudel-discover): let
	`rudel-session-initiation-adjust-info' do the heavy lifting
	(rudel-session-initiation-adjust-info): new function; adjust
	arguments that need adjusting in a session information property
	list

	* rudel-session-initiation.el (rudel-configured-sessions): more
	precise specification of the customization type

2009-09-27  Phil Hagelberg <technomancy@gmail.com>

	* compile.el: renamed compile.el -> rudel-compile.el

	* INSTALL: Mention new install process using compile.el and
	rudel-loaddefs.el.

	* rudel-loaddefs.el: Autoload rudel as one unit instead of
	piece-by-piece. Remove eieio dependency from autoloads.

	* compile.el: Perform compilation from Elisp

	* Makefile: Remove error-prone CEDET-autogenerated build scripts.

2009-09-27  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-session-initiation.el
	(rudel-configured-sessions-backend::rudel-discover): fixed a bug
	that dropped the last option in each configured session

	* rudel-session-initiation.el (rudel-configured-sessions): new
	customization option; contains a list of session information lists
	(rudel-ask-protocol-backend::initialize-instance): maybe call next
	method
	(rudel-configured-sessions-version): new constant; version of the
	configured-sessions backend
	(rudel-configured-sessions-backend): new class;
	configured-sessions backend
	(rudel-configured-sessions-backend::initialize-instance): new
	method; set version slot
	(rudel-configured-sessions-backend::rudel-discover): new method;
	"discover" configured sessions
	(autoload rudel-add-backend): register
	rudel-configured-sessions-backend as a protocol backend

	* rudel-chat.el (rudel-chat-buffer-name): new constant; name chat
	log buffer
	(rudel-chat-handle-buffer): raise buffer when logging a chat
	message

	* rudel-debug.el (header): fixed meta-data and license
	(rudel-debug-sent-data-face): added documentation string
	(rudel-debug-received-data-face): added documentation string
	(rudel-debug-received-processed-data-face): added documentation
	string
	(rudel-debug-state-face): added documentation string
	(rudel-debug-special-face): added documentation string
	(rudel-suspend-session-socket): added documentation string
	(rudel-resume-session-socket): added documentation string

	* obby/rudel-obby-util.el (rudel-obby-dispatch): use
	`display-warning' instead of `warn'
	* obby/rudel-obby-state.el (rudel-obby-state::rudel-accept): use
	`display-warning' instead of `warn'
	(rudel-obby-document-handler::rudel-obby/obby_document): use
	`display-warning' instead of `warn'
	* obby/rudel-obby-client.el
	(rudel-obby-client-state-idle::rudel-obby/net6_client_part): use
	`display-warning' instead of `warn'
	(rudel-obby-client-state-idle::rudel-obby/obby_document/record):
	use `display-warning' instead of `warn'
	* rudel-backend.el (rudel-backend-factory::rudel-load-backends):
	use `display-warning' instead of `warn'

	* obby/rudel-obby-client.el (require rudel-chat): used when
	handling chat messages
	(rudel-obby-client-state-idle::rudel-obby/obby_message): new
	method; handles obby 'message' messages by dispatching to
	`rudel-chat-dispatch-message'
	* rudel-chat.el (whole file): new file; handling of incoming chat
	messages
	* Project.ede (target rudel): added rudel-chat.el
	* Makefile (target rudel_LISP): added rudel-chat.el

2009-09-26  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-state.el (rudel-obby-server-connection-state):
	new class; base class for server connection states
	(rudel-obby-server-connection-state::rudel-broadcast): new method;
	broadcast message to a set of receivers

2009-09-25  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby.el (rudel-obby-backend::rudel-connect): new
	error state they-finalized; handle join-failed error specially
	* obby/rudel-obby-client.el (rudel-obby-client-state-join-failed):
	improved comments
	(rudel-obby-client-state-they-finalized): new state class; used to
	indicate that the connection was closed by the peer
	(rudel-obby-client-connection-states): added they-finalized
	(rudel-obby-connection::rudel-close): switch state machine to
	they-finalized
	(rudel-obby-connection::rudel-subscribe-to): new error state
	they-finalized

	* rudel.el (rudel-client-session::connection): allow nil value
	(rudel-client-session::rudel-end): only try to disconnect the
	connection if it is non-nil; ignore errors during disconnect

	* obby/rudel-obby-client.el
	(rudel-obby-client-state-encryption-start::rudel-obby/net6_encryption_begin):
	do not require rudel-tls; do not try to start TLS encryption if
	the connection does not support it
	* rudel-tls.el (rudel-tls-make-process): mark process as
	supporting TLS encryption

	* obby/rudel-obby-state.el (rudel-obby/net6_ping): return nil to
	prevent erratic behavior of the state machine

	* rudel-interactive.el (rudel-allocate-buffer-clear-existing):
	added missing whitespace in prompt string

2009-09-24  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-tls.el (rudel-tls-start-tls): changed displayed message
	(rudel-tls-wait-init): ignore all lines until "- Simple Client
	Mode.*" is received; then switch back old filter
	(rudel-tls-wait-handshake): ignore all lines until "-
	Compression.*" is received; then switch to established filter
	(rudel-tls-established): do not ignore any lines other than
	"- Peer has closed the GNUTLS connection"

	* obby/rudel-obby.el (rudel-ask-connect-info): ask for global and
	user passwords
	* obby/rudel-obby-client.el
	(rudel-obby-client-state-joining::rudel-enter): transmit global
	and user passwords when available

	* obby/rudel-obby-errors.el
	(rudel-obby-error-wrong-global-password): fixed error code
	(rudel-obby-error-wrong-user-password): fixed error code
	(rudel-obby-error-protocol-version-mismatch): fixed error code
	(rudel-obby-error-not-encrypted): fixed error code
	* obby/rudel-obby-client.el
	(rudel-obby-client-state-joining::rudel-obby/net6_login_failed):
	recognize wrong global/user password error codes

	* obby/rudel-obby-debug.el (whole file): new file; debugging
	functions for the obby backend
	* rudel-debug.el (whole file): new file; debugging functions

	* obby/rudel-obby-errors.el
	(rudel-obby-error-wrong-global-password): new constant; error code
	for wrong global password
	(rudel-obby-error-wrong-user-password): new constant; error code
	for wrong user password
	(rudel-obby-error-protocol-version-mismatch): new constant; error
	code for protocol version mismatch
	(rudel-obby-error-not-encrypted): new constant; error code for not
	encrypted

	* Project.ede (target rudel): added rudel-transport.el
	* Makefile (target rudel_LISP): added rudel-transport.el
	* rudel-transport.el (whole file): new file; interface for
	transport backends

2009-09-20  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-remote-operation): added byte -> char
	conversion before the operation is applied to the server-side
	document; updated comments

	* obby/rudel-obby-server.el (rudel-obby-client::rudel-broadcast):
	cosmetic changes
	(rudel-obby-client::rudel-obby/net6_client_login): cosmetic
	changes; improved comments
	(rudel-obby-client::rudel-obby/obby_document): changed
	documentation string; cosmetic changes
	(rudel-obby-client::rudel-obby/obby_document/record): added a
	comment
	(rudel-obby-client::rudel-remote-operation): improved comments

	* obby/rudel-obby-server.el (header): added header comment
	(rudel-obby-client::rudel-obby/obby_document_create): changed
	documentation comment
	(rudel-obby-client::rudel-obby/obby_document/subscribe): changed
	documentation comment; cosmetic changes
	(rudel-obby-client::rudel-obby/obby_document/unsubscribe):
	cosmetic changes
	(rudel-obby-server::initialize-instance): do not run :after; call
	next method
	(rudel-obby-server::rudel-broadcast): signal wrong-type-argument
	instead of just error; cosmetic changes
	(rudel-obby-server::rudel-check-username-and-color): changed
	comments
	(rudel-obby-server::object-print): new method; generate string
	representation with number of clients

2009-09-19  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/obby_document/record/ins):
	construct the operation and use	`rudel-remote-operation'
	(rudel-obby-client::rudel-obby/obby_document/record/del):
	construct the operation and use `rudel-remote-operation'
	(rudel-obby-client::rudel-remote-operation): new method; transform
	and apply an operation object to the server-side document; send
	operation to all other clients
	(rudel-obby-server::rudel-broadcast): cosmetic changes

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/obby_document/record/del): swapped
	local and remote revisions in the operation name to be consistent
	with record/ins; does not affect behavior

2009-09-12  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-mode.el (rudel-header-subscriptions--update-from-document):
	force mode line update
	(rudel-header-subscriptions--update-from-buffer): force mode line
	update
	(rudel-header-subscriptions-minor-mode): force mode line update

	* rudel-mode.el
	(rudel-mode-line-publish-state-unpublished-string): new
	customization option; string used to indicate that a buffer is not
	published
	(rudel-mode-line-publish-state-published-string): new
	customization option; string used to indicate that a buffer is
	published
	(rudel-mode-line-publish-state--update-string): use
	`rudel-mode-line-publish-state-unpublished-string' and
	`rudel-mode-line-publish-state-unpublished-string'

	* rudel.el (rudel-session::end-hook): new slot; stores handlers of
	the end hook
	(rudel-session::rudel-end): run end hook
	(rudel-session::rudel-join-session): install handler on session
	end hook to set `rudel-current-session' to nil
	(rudel-session::rudel-end-session): no need to run
	rudel-session-end-hook or reset `rudel-current-session'
	* rudel-hooks.el (rudel-hooks--session-start): add handler for the
	end hook of the session
	(rudel-hooks--session-end): remove the handler from end hook of
	the session; run the rudel-session-end hook
	(rudel-hooks--install-handlers): do install handler for
	rudel-session-end hook; this is now done by installing the in the
	session object
	(rudel-hooks--uninstall-handlers): no need to remove
	rudel-session-end hook

	* rudel-util.el (rudel-socket-owner::rudel-state-change): cover
	more states

	* obby/rudel-obby-client.el
	(rudel-obby-client-state-idle::rudel-obby/obby_document_remove):
	implemented, was stub; untested though

2009-09-10  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-client.el
	(rudel-obby-client-state-idle::rudel-obby/net6_client_join): check
	whether we have a user object for the specified user id; modify
	the existing object if there is one

2009-09-09  Jan Moringen  <scymtym@users.sourceforge.net>

	* zeroconf/Makefile (whole file): regenerated
	* wave/Makefile (whole file): regenerated
	* Makefile (target all): build target doc
	(target doc): new target; build documentation
	(target tags): build target tags in doc directory
	(target dist): build target dist in doc directory

2009-09-06  Jan Moringen  <scymtym@users.sourceforge.net>

	* telepathy/rudel-telepathy.el (header): fixes
	(require rudel-backend): required, since we define a backend
	(require rudel-transport): it is a transport backend
	(class rudel-telepathy-backend): derived from
	rudel-transport-backend
	(rudel-telepathy-backend::initialize-instance): new method; set
	version slot
	(autoloading): upgraded to new backend registration style

	* INSTALL (REQUIREMENTS): mention Avahi

2009-09-05  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (require rudel-util): required for `rudel-hook-object'

	* rudel-util.el (property svn:executable): removed property
	* rudel-overlay.el (property svn:executable): removed property

	* doc/Project.ede (whole file): new file; project file for the
	documentation directory
	* doc/Makefile (whole file): new file; generated Makefile for the
	documentation directory
	* doc/card.tex (whole file): new file; reference card for Rudel;
	source
	* doc/card.pdf (whole file): new file; reference card for Rudel;
	PDF

2009-09-04  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-interactive.el (rudel-read-document): added comment
	(rudel-allocate-buffer-clear-existing): handle the case in which
	case a buffer with the desired name exists and is attached to a
	different document; added some comments

	* rudel-mode.el (header): list all provided modes; bump version
	(require rudel-hooks): required for global hooks
	(rudel-mode-line-publish-state-string): new variable; buffer
	local, holds publish state string for buffer
	(rudel-mode-line-publish-state--add-indicator-to-mode-line): new
	function; add publish state indicator to mode line
	(rudel-mode-line-publish-state--remove-indicator-from-mode-line):
	new function; remove publish state indicator from mode line
	(rudel-mode-line-publish-state--update-string): new function;
	update publish state indicator according to buffer state
	(rudel-mode-line-publish-state--document-attach): new function;
	handle document attaching to buffer
	(rudel-mode-line-publish-state--document-detach): new function;
	handle document detaching from buffer
	(rudel-mode-line-publish-state-minor-mode): new minor mode;
	displays publish state of buffer in mode line
	(global-rudel-mode-line-publish-state-mode): new minor mode;
	globalization of `rudel-mode-line-publish-state-minor-mode'
	(rudel-minor-keymap): menu entries for buffer local and global
	mode line publish state mode

	* rudel.el (require rudel-hooks): required or hook variables
	(rudel-session-start-hook): moved to rudel-hooks.el
	(rudel-session-end-hook): moved to rudel-hooks.el
	* rudel-hooks.el (whole file): new file; contains hook variables
	and mapping from object hooks to global hooks
	* Project.ede (target rudel): added file rudel-hooks.el
	* Makefile (target rudel_LISP): added file rudel-hooks.el

2009-09-03  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-mode.el (rudel-header-subscriptions-minor-mode): improved
	documentation string

2009-08-30  Jan Moringen  <scymtym@users.sourceforge.net>

	* zeroconf/Makefile (whole file): new file; generated Makefile for
	the zeroconf subproject

	* wave/rudel-wave.el (whole file): new file; main class of the
	wave backend
	* wave/Project.ede (whole file): new file; project file for the
	wave subproject
	* wave/Makefile (whole file): new file; generated Makefile for the
	wave subproject
	* Project.ede (target autoloads): added wave directory
	* Makefile (LOADDIRS): added wave and zeroconf directories
	(VERSION): bumped to 0.2
	(target all): added wave and zeroconf
	(tags): descend into zeroconf and wave directories
	(dist): descend into zeroconf and wave directories

2009-08-28  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (rudel-change-color): run the change hook of the self
	user

	* rudel-overlay.el (rudel-overlay-set-face-attributes): check the
	face actually exists

2009-08-27  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-mode.el (rudel-header-subscriptions-use-images): new
	variable; controls whether images are used when formatting user
	names
	(rudel-header-subscriptions-separator): new variable; separator
	used when formatting user names
	(rudel-header-subscriptions--make-format): new function; make a
	format object for header line
	(rudel-header-subscriptions--update-from-document): new function;
	update header line from document
	(rudel-header-subscriptions--update-from-buffer): new function;
	update header line from buffer
	(rudel-header-subscriptions--options-changed): new function;
	update header line in all buffers that have
	rudel-header-subscriptions-minor-mode enabled after customization
	option change
	(rudel-header-subscriptions--user-change): new function; update
	header line after a user object change
	(rudel-header-subscriptions--add-user): new function; watch newly
	subscribed user and update header line
	(rudel-header-subscriptions--remove-user): new function; stop
	watching user and update header line
	(minor mode rudel-header-subscriptions-minor-mode): new minor
	mode; display subscribed users in buffer's header line
	(rudel-header-subscriptions--attach): new function; enable header
	subscription minor mode when attaching
	(rudel-header-subscriptions--detach): new function; disable header
	subscription minor mode when detaching
	(rudel-header-subscriptions--add-document): new function; monitor
	attaching/detaching of new document
	(rudel-header-subscriptions--remove-document): new function; stop
	monitoring attaching/detaching of new document
	(rudel-header-subscriptions--session-start): new function; watch
	documents being added/removed to/from the session
	(rudel-header-subscriptions--session-end): new function; stop
	watching documents being added/removed to/from the session
	(minor mode global-rudel-header-subscriptions-mode): global minor
	mode that controls `rudel-header-subscriptions-minor-mode' in
	buffers
	(advice global-rudel-header-subscriptions-mode): controls
	adding/removing watches for added/removed documents when the
	global mode is enabled/disabled
	(rudel-minor-keymap): Added entries for
	`rudel-header-subscriptions-minor-mode' and
	`global-rudel-header-subscriptions-mode'

2009-08-26  Jan Moringen  <scymtym@users.sourceforge.net>

	* . (property svn:ignore): added patterns
	* jupiter (property svn:ignore): added patterns
	* obby (property svn:ignore): added patterns

	* rudel.el (rudel-session::add-user-hook): new slot; add user hook
	function list
	(rudel-session::remove-user-hook): new slot; remove user hook
	function list
	(rudel-session::add-document-hook): updated documentation string
	(rudel-session::remove-document-hook): updated documentation
	string
	(rudel-session::rudel-add-user): run add user hook
	(rudel-session::rudel-remove-user): run remove user hook

	* rudel.el (rudel-session-start-hook): new variable; session start
	hook function list
	(rudel-session-end-hook): new variable; session end hook function
	list
	(rudel-join-session): run session start hook
	(rudel-end-session): run session end hook

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/obby_document_create): call
	`generate-new-buffer-name' on complete buffer name; not just name
	part

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/obby_document/subscribe): send
	number of bytes instead of number of characters

	* obby/rudel-obby-client.el
	(rudel-obby-client-state-document-synching::remaining-bytes):
	fixed initarg num-bytes -> remaining-bytes

	* rudel.el (rudel-session::add-document-hook): new slot; run when
	a document gets added to the session
	(rudel-session::remove-document-hook): new slot; run when a
	document gets removed from the session
	(rudel-session::rudel-add-document): run add document hook
	(rudel-session::rudel-remove-document): run remove document hook
	(rudel-document::unsubscribe-hook): fixed initarg subscribe-hook
	-> unsubscribe-hook

2009-08-25  Jan Moringen  <scymtym@users.sourceforge.net>

	* www/index.html (Download): link to http://bazaar-vcs.org;
	improved wording

	* www/index.html (Download): changed link to source; add browse
	source link for bzr

	* INSTALL (REQUIREMENTS): precise CEDET release version

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/obby_user_colour): run change hook
	after setting slot
	(rudel-obby-server::rudel-remove-client): run change hook after
	setting slot
	* obby/rudel-obby-client.el
	(rudel-obby-client-state-idle::rudel-obby/net6_client_part): run
	change hook after setting slots
	(rudel-obby-client-state-idle::rudel-obby/obby_user_colour): run
	change hook after setting slot
	* rudel.el (class rudel-user): derive from `rudel-hook-object'
	(rudel-user::change-hook): new slot; stores change hook functions

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/obby_user_colour): cosmetic changes
	(rudel-obby-client::rudel-obby/obby_document/subscribe): use
	`rudel-add-user'
	(rudel-obby-client::rudel-obby/obby_document/unsubscribe): use
	`rudel-remove-user'
	(rudel-obby-server::rudel-check-username-and-color): whitespace
	fixes

2009-08-23  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (rudel-document::attach-hook): new slot; attach hook
	function list
	(rudel-document::detach-hook): new slot; detach hook function list
	(rudel-document::rudel-attach-to-buffer): run hook `attach-hook'
	(rudel-document::rudel-detach-from-buffer): run hook `detach-hook'
	(rudel-document::rudel-add-user): improved documentation string
	(rudel-document::rudel-remove-user): improved documentation string

	* obby/rudel-obby.el
	(rudel-obby-user::eieio-speedbar-object-buttonname): fixed typo

2009-08-21  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-client.el
	(rudel-obby-client-state-idle::rudel-obby/obby_document/subscribe):
	call `rudel-add-user'
	(rudel-obby-client-state-idle::rudel-obby/obby_document/unsubscribe):
	call `rudel-remove-user'
	* rudel.el (class rudel-document): mixin rudel-hook-object
	(rudel-document::subscribe-hook): new slot; subscribe-hook
	function list
	(rudel-document::unsubscribe-hook): new slot; unsubscribe-hook
	function list
	(rudel-document::rudel-add-user): new method; add user to list of
	subscribed users and run subscribe-hook
	(rudel-document::rudel-remove-user): new method; remove user from
	list of subscribed users and run unsubscribe-hook

	* obby/rudel-obby.el (header): cosmetic changes
	(include rudel-icons): `rudel-display-string' uses icons
	(rudel-obby-user::eieio-speedbar-object-buttonname): use
	`rudel-display-string'
	(rudel-obby-user::rudel-display-string): new method; textual
	representation of user object
	(rudel-obby-parse-message): cosmetic changes
	* rudel.el (include rudel-icons): `rudel-display-string' uses
	icons
	(rudel-user::rudel-display-string): new method; textual
	representation of user object

	* rudel-util.el (rudel-hook-object): new class; abstract mixin for
	classes that offer hooks
	(rudel-hook-object::object-add-hook): new method; add function to
	hook list
	(rudel-hook-object::object-remove-hook): new method; remove
	function from hook list
	(rudel-hook-object::object-run-hook-with-args): new method; run
	hook functions

2009-08-20  Jan Moringen  <scymtym@users.sourceforge.net>

	* icons/plaintext.svg (new file): plaintext icon
	* icons/person.svg (new file): person icon
	* icons/encrypted.svg (new file): encrypted icon
	* icons/document.svg (new file): document icon
	* icons/disconnected.svg (new file): disconnected icon
	* icons/connected.svg (new file): connected icon
	* rudel-icons.el (new file): loading icons
	* Project.ede (target rudel): added rudel-icons.el

2009-08-19  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (rudel-join-session): renamed local variable backend to
	session-initiation-backend

2009-08-17  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-state.el (rudel-obby-state::rudel-accept): fixed
	format of warning message

	* rudel-state-machine.el (require working): needed by
	`rudel-state-wait'

	* obby/rudel-obby-client.el
	(rudel-obby-client-state-idle::rudel-obby/obby_user_colour): set
	face attributes
	* rudel.el (rudel-change-color): set face attributes
	* rudel-overlay.el (rudel-overlay-make-face): use
	`rudel-overlay-set-face-attributes'
	(rudel-overlay-set-face-attributes): new function; set face
	attributes

	* rudel-overlay.el (rudel-overlay-author-set-properties): call
	`rudel-overlay-make-face-symbol'
	(rudel-overlay-make-face-symbol): new function; return face symbol

2009-08-16  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-overlay.el (rudel-overlay-author-display): option that
	controls display of author overlays
	(rudel-make-author-overlay): call
	`rudel-overlay-author-set-properties' to set the overlay
	properties
	(rudel-overlay-author-set-properties): new function; set overlay
	properties; respects rudel-overlay-author-display
	(rudel-overlay-author-update): new function; update overlay
	properties based on associated user object
	(rudel-overlay-options-changed): new function; call
	`rudel-overlay-author-update' on all Rudel overlays in all buffers
	* rudel-mode.el (header): cosmetic changes
	(rudel-minor-menu): added menu entry to toggle display of author
	overlays

	* rudel-overlay.el (rudel-make-author-overlay): use `intern'
	instead of `make-symbol' when allocating the face name; this way,
	faces can actually be created lazily
	(rudel-overlay-make-face): call `make-face' for the new face

	* obby/rudel-obby-client.el
	(rudel-obby-client-state-document-synching::object-print): fixed
	slot name remaining-bytes

	* rudel.el (rudel-host-session): the backend object is the cdr of
	the result of `rudel-backend-choose'

2009-08-15  Jan Moringen  <scymtym@users.sourceforge.net>

	* telepathy/rudel-telepathy.el (header): added file comment
	* obby/rudel-obby-state.el (header): fixed email address
	(whole file): whitespace fixes
	* jupiter/jupiter.el (header): cosmetic changes
	(whole file): whitespace fixes
	* rudel-util.el (header): cosmetic changes
	* rudel-mode.el (header): cosmetic changes
	* rudel-errors.el (header): fixed type
	(whole file): whitespace fixes

	* obby/rudel-obby.el (rudel-ask-connect-info): added optional
	argument info; do not ask for things that are already specified in
	info
	(autoload): register obby service with the Zeroconf backend
	* zeroconf/rudel-zeroconf.el (new file): Zeroconf session
	initiation for Rudel
	* zeroconf/Project.ede (new file): subproject zeroconf
	* rudel.el (rudel-join-session): call `rudel-ask-info' to augment
	connect info
	* Project.ede (target autoloads): added directory zeroconf
	* INSTALL (INSTALLING): mention zeroconf subdirectory
	(COMPILING): mention zeroconf target

	* rudel-backend.el (rudel-backend-factory::rudel-get-backend):
	return backend as a cons
	(rudel-backend-get): new function; convenience function for
	getting backends

	* obby/rudel-obby.el (header): extended commentary and history
	(rudel-obby-version): bumped to 0.2
	(rudel-obby-backend::initialize-instance): set :version slot in
	constructor instead of using obsolete lambda expression in
	initform

2009-08-14  Jan Moringen  <scymtym@users.sourceforge.net>

	* Project.ede (project rudel): bumped version to 0.2; added
	mailing list and path to web files

	* rudel-backend.el (rudel-backend-factory): do not initialize
	backends with lambda expression
	(rudel-backend-factory::initialize-instance): new method;
	initialize backends
	(rudel-backend-cons-p): use `object-p' instead of `eieio-object-p'
	(rudel-backend-dump): changed format slightly

2009-08-13  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (include rudel-session-initiation): required for
	`rudel-join-session'
	(rudel-join-session): mostly rewritten; moved user interaction to
	`interactive' form
	* rudel-session-initiation.el (new file): session initiation
	backend interface and high-level programming interface
	* Project.ede (target rudel): added rudel-session-initiation.el
	* Makefile (rudel_LISP): added rudel-session-initiation.el

	* rudel-interactive.el (rudel-read-session): discriminate sessions
	vs. session generating objects using `rudel-backend-cons-p'

	* rudel-backend.el (rudel-backend-cons-p): new function; checks
	whether a cons consists of a backend name and object

2009-08-12  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-interactive.el (rudel-read-session): new function; read
	session by name and return it

	* rudel-interactive.el (rudel-read-backend): argument backends is
	no longer optional; always return a cons of backend name and
	object; updated documentation string
	(whole file): whitespace fixes
	* rudel-backend.el (rudel-backend-choose): always return a cons of
	backend name and object; updated documentation string

2009-08-11  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (file header): added project URL
	(whole file): improved some comments

2009-08-10  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (include eieio-base): needed for eieio-named

2009-08-04  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-state-machine.el (header section commentary): updated
	(rudel-state-machine::initialize-instance): use
	`rudel--switch-to-return-value' to allow immediate switch to
	another state
	(rudel-state-machine::rudel-switch): use
	`rudel--switch-to-return-value' to switch to successor state
	(rudel-state-machine::rudel--switch-to-return-value): new function
	switch to successor state for different kinds of specifications of
	the successor state

2009-08-03  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby.el (require rudel-backend): now necessary
	(require rudel-protocol): now necessary
	(class rudel-obby-backend): now derived from `rudel-backend';
	autoloaded
	(autoloading): use `rudel-add-backend'
	* rudel.el (require rudel-backend): backends have their own file
	(class rudel-backend): moved to rudel-backend.el
	(rudel-load-backends): moved to rudel-backend.el
	(rudel-suitable-backends): moved to rudel-backend.el
	(rudel-choose-backend): moved to rudel-backend.el
	(rudel-join-session): use `rudel-backend-choose'
	(rudel-host-session): use `rudel-backend-choose'

	* rudel-protocol.el (new file): interface for Rudel protocol
	backends
	* Project.ede (target rudel): added rudel-protocol.el
	* Makefile (rudel_LISP): added rudel-protocol.el

	* rudel-backend.el (rudel-backend-factory::rudel-get-backend):
	improved documentation string
	(rudel-backend-factory::rudel-suitable-backends): improved
	documentation string
	(rudel-backend-suitable-backends): improved documentation string
	(rudel-backend-choose): When only one backend matches, do not
	check interactivity using `interactive-p', that does not work;
	call `sit-for' correctly

2009-08-02  Jan Moringen  <scymtym@users.sourceforge.net>

	* jupiter/Makefile (whole file): regenerated; reflects CEDET
	changes
	* rudel-backend.el (new file): generic backend management, query
	and loading functions
	* Project.ede (target rudel): added rudel-backend.el to sources
	* Makefile (rudel_LISP): added rudel-backend.el

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/net6_client_login): use slot
	:object-name instead of calling object-name-string
	(rudel-obby-server::rudel-add-context): use slot :object-name
	instead of calling object-name-string
	* obby/rudel-obby-client.el
	(rudel-obby-client-state-idle::rudel-obby/obby_document/rename):
	use slot :object-name instead of calling object-name-string
	(rudel-obby-connection::rudel-add-context): use slot :object-name
	instead of calling object-name-string
	(rudel-obby-connection::rudel-publish): use slot :object-name
	instead of calling object-name-string
	* rudel.el (class rudel-user): added base class eieio-named for
	virtual slot :object-name; made abstract
	(class rudel-document): added base class eieio-named for virtual
	slot :object-name
	* rudel-overlay.el (rudel-make-author-overlay): use slot
	:object-name instead of calling object-name-string

	* rudel-state-machine.el
	(rudel-state-machine::initialize-instance): use &rest slots
	instead of just slots

2009-07-15  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (rudel-document::rudel-detach-from-buffer): call
	`rudel-overlays-remove-all'; remove `rudel-unpublish-buffer' hook
	early
	* rudel-overlay.el (rudel-overlays-remove-all): new function;
	remove all overlays from the current buffer
	(whole file): cosmetic changes; typo fixes; whitespace fixes

	* obby/rudel-obby.el (rudel-obby-document::rudel-unique-name):
	Check `next-method-p' before calling the next method
	* obby/rudel-obby-client.el
	(rudel-obby-connection::initialize-instance): Check
	`next-method-p' before calling the next method
	(rudel-obby-connection::rudel-register-state): Check
	`next-method-p' before calling the next method
	(rudel-obby-connection::rudel-disconnect): Check
	`next-method-p' before calling the next method
	* rudel.el (rudel-client-session::rudel-end): Check
	`next-method-p' before calling the next method

2009-07-13  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby.el (rudel-obby-backend::rudel-connect): only
	start the network process after everything is ready; wait for the
	connection state machine to reach a success or error state
	(rudel-obby-backend::rudel-host): cosmetic changes
	(class rudel-obby-user): cosmetic changes
	* rudel.el (rudel-join-session): reversed order of creation for
	session and connection; do not catch errors to give error messages
	a chance

	* jupiter/jupiter-insert.el (jupiter-insert::jupiter-transform):
	cosmetic changes
	(whole file): whitespace fixes

	* rudel.el (rudel-session::rudel-find-user): added documentation
	string; cosmetic changes
	(rudel-session::rudel-find-document): added documentation string;
	cosmetic changes
	(whole file): whitespace fixes

2009-07-12  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-speedbar.el (eieio-speedbar-object-buttonname): use
	`rudel-unique-name' instead of `object-name-string'

	* obby/rudel-obby-state.el (rudel-enter): return nil

	* obby/rudel-obby-client.el
	(rudel-obby-client-state-joining::rudel-enter): return nil
	(rudel-obby-client-state-join-failed::rudel-enter): return nil
	(rudel-obby-client-state-session-synching::rudel-enter): return
	nil
	(rudel-obby-client-state-session-synching::object-print): new
	method; add number of remaining items to string representation
	(rudel-obby-client-state-subscribing::rudel-enter): nil
	(rudel-obby-client-state-document-synching::rudel-enter): nil
	(rudel-obby-client-state-document-synching::object-print): new
	method; add number of remaining bytes to string representation

2009-07-11  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-util.el (with-parsed-arguments): added debug
	declaration
	(whole file): whitespace fixes
	* rudel-util.el (rudel-assemble-line-fragments): added debug
	declaration
	(rudel-loop-lines): added debug declaration
	(rudel-loop-chunks): fixed documentation string; added debug
	declaration

	* rudel-state-machine.el (rudel-no-start-state): new error symbol
	(rudel-state-machine::initialize-instance): try hard to find a
	suitable start sate; call `rudel-switch' instead of just
	`rudel-enter'
	(rudel-state-machine::rudel-switch): always return the new current
	state; accept successor state from `rudel-enter'
	(rudel-state-machine::object-print): new method; add current state
	of state machine to string representation
	(rudel-state-machine::rudel-state-wait): whitespace fixes

2009-07-07  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby.el (class rudel-obby-backend): better
	documentation string
	(rudel-obby-backend::rudel-ask-connect-info): added documentation
	string
	(rudel-obby-backend::rudel-connect): added documentation string
	(rudel-obby-backend::rudel-ask-host-info): added documentation
	string
	(rudel-obby-backend::rudel-host): added documentation string
	(rudel-obby-backend::rudel-make-document): added documentation
	string
	(rudel-obby-send): cosmetic changes
	(whole file): whitespace fixes

2009-07-05  Jan Moringen  <scymtym@users.sourceforge.net>

	* INSTALL (REQUIREMENTS): added Emacs itself and GNUTls

	* rudel-tls.el (rudel-tls-start-tls): added a message
	(rudel-tls-wait-handshake): switch to filter
	`rudel-tls-established' instead of restoring the original filter
	(rudel-tls-established): new function; filters GNUTls messages in
	encrypted connections
	(whole file): whitespace fixes

2009-07-04  Jan Moringen  <scymtym@users.sourceforge.net>

	* README (INTRODUCTION): extended a bit
	(JOINING A SESSION): added prompt/input example and an explanation
	of encryption issues in the obby backend
	(KNOWN BUGS): new section; no known bugs yet, though

2009-06-17  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-client.el (require rudel-state-machine): the
	connection now is a state machine
	(require rudel-obby-errors): used when analyzing login failures
	(require rudel-obby-state): useful base classes for states
	(rudel-obby-client-state-new): new class; initial state of new
	connections
	(rudel-obby-client-state-encryption-negotiate): new class;
	first encryption state
	(rudel-obby-client-state-encryption-start): new class; second
	encryption state
	(rudel-obby-client-state-joining): new class
	(rudel-obby-client-state-join-failed): new class; entered after
	failed login attempt
	(rudel-obby-client-state idle): new class; default state of
	established connections
	(rudel-obby-client-state-session-synching): new class;
	synchronizing session state to client
	(rudel-obby-client-state-subscribing): new class; first state of
	document subscription
	(rudel-obby-client-state-document-synching): new class;
	synchronizing document state to client
	(rudel-obby-client-connection-states): new variable; alist of
	name symbols and associated state classes
	(rudel-obby-connection::initialize-instance): register states
	(rudel-obby-connection::rudel-register-state): new method; set
	connection slot of state to its connection
	(rudel-obby-connection::rudel-add-context): cleanup
	(rudel-obby-connection::rudel-message): dispatch message using
	`rudel-accept'
	(rudel-obby-connection::rudel-subscribe-to): initiate subscription
	by switching to state 'subscribing'

	* obby/rudel-obby-state.el (rudel-obby-document-handler): new
	class; mixin class that provides handling of obby 'document'
	messages

	* rudel-state-machine.el
	(rudel-state-machine::initialize-instance): find start state in
	slots and switch into it
	(while-file): whitespace fixes

2009-06-15  Jan Moringen  <scymtym@users.sourceforge.net>

	* www/index.html (section download): fixed link to download area
	(whole file): whitespace cleanup

	* obby/rudel-obby-state.el (new file): finite state machine states
	for the rudel backend
	* obby/Project.ede (target rudel/obby): added rudel-obby-state.el
	* obby/Makefile (target obby_LISP): added rudel-obby-state.el

	* rudel-util.el (require rudel-errors): required for dispatch
	errors
	(symbol rudel-dispatch-error): new condition symbol for dispatch
	errors
	(rudel-dispatch): new function; dispatch to method based on method
	name
	(whole file): whitespace fixes

2009-06-14  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-mode.el (global-rudel-minor-mode): removed; the variable
	is created by `define-minor-mode'
	(minor-mode-alist): managed by `define-minor-mode'

	* rudel-mode.el (require easy-mmode): used to define global rudel
	minor mode
	(rudel-minor-keymap): cosmetic changes
	(global-rudel-minor-mode): use `define-minor-mode' to define the
	mode
	(whole file): whitespace cleanup

	* rudel-telepathy.el (whole file): moved to
	telepathy/rudel-telepathy.el
	* telepathy/rudel-telepathy.el (whole file): moved from
	rudel-telepathy.el

	* obby/rudel-obby-server.el (whole file): whitespace cleanup
	* obby/rudel-obby-client.el (require rudel-obby): removed;
	unnecessary
	(rudel-obby-connection::initialize-instance): use &rest for `slots'
	argument; cosmetic changes
	(rudel-obby-connection::rudel-change-color-): use own `rudel-send'
	method instead of the socket's
	(rudel-obby-connection::rudel-subscribe-to): cosmetic changes
	(rudel-obby-connection::rudel-unsubscribe-from): cosmetic changes
	(rudel-obby-connection::rudel-local-operation): cosmetic changes
	(whole file): whitespace cleanup

2009-06-13  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-errors.el (new file): error data
	* rudel-state-machine.el (new file): a simple finite state machine
	implementation
	* Project.ede (target rudel): added rudel-errors.el and
	rudel-state-machine.el
	* Makefile (target rudel_LISP): added rudel-errors.el and
	rudel-state-machine.el

2009-06-12  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-server.el (require rudel-obby-errors): now
	required
	(rudel-obby-client::rudel-obby/net6_client_login): check username
	and color before adding the client
	(rudel-obby-server::rudel-check-username-and-color): new method;
	make sure username and color are valid and there are no duplicates
	* obby/rudel-obby-errors.el (new file): error data for the obby
	backend
	* obby/Project.ede (rudel/obby): added rudel-obby-errors.el
	* obby/Makefile (obby_LISP): added rudel-obby-errors.el

	* rudel.el (rudel-user::rudel-color): added accessor `rudel-color'

	* obby/rudel-obby-server.el (require cl): required

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/net6_client_login): send suffices
	of synchronized documents

2009-06-11  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/obby_document_create): send
	document/rename message to client when the document suffix changes

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/net6_client_login): use
	`with-parsed-arguments'
	(rudel-obby-client::rudel-obby/obby_user_colour): use
	`with-parsed-arguments'
	(rudel-obby-client::rudel-obby/obby_document_create): use
	`with-parsed-arguments'
	(rudel-obby-client::rudel-obby/obby_document): use
	`with-parsed-arguments'
	(rudel-obby-client::rudel-obby/obby_document/subscribe): use
	`with-parsed-arguments'
	(rudel-obby-client::rudel-obby/obby_document/unsubscribe): use
	`with-parsed-arguments'
	(rudel-obby-client::rudel-obby/obby_document/record): use
	`with-parsed-arguments'
	(rudel-obby-client::rudel-obby/obby_document/record/ins): use
	`with-parsed-arguments'
	(rudel-obby-client::rudel-obby/obby_document/record/del): use
	`with-parsed-arguments'

	* obby/rudel-obby-server.el (header): fixed version

2009-06-10  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-local-operation): fixed wording in
	comment

	* www/images/development.png (whole file): changed size 48x48 ->
	64x64
	* www/images/development.svg (whole file): changed size 48x48 ->
	64x64
	* www/images/download.png (whole file): changed size 48x48 ->
	64x64
	* www/images/download.svg (whole file): changed size 48x48 ->
	64x64
	* www/images/info.png (whole file): changed size 48x48 -> 64x64
	* www/images/info.svg (whole file): changed size 48x48 -> 64x64

	* index.html (section introduction): wording fixes; link to Gobby
	(whole file): removed external link class for sourceforge links
	(section download): added link to INSTALL file in svn code browser
	(section footer): fixed copyright

	* compatibility.html (section footer): fixed copyright

2009-06-09  Jan Moringen  <scymtym@users.sourceforge.net>

	* INSTALL (section REQUIREMENTS): removed ERT which is not
	currently used
	(section INSTALL): some wording and file name fixes
	(section COMPILING): precise make command

	* www/index.html (section development): fixed mailing list and
	issue tracker links; removed email address

	* www/compatibility.html (head): fixed charset
	(section semantic): added missing <p> tag

	* www/compatibility.html (new file): compatibility information
	* www/index.html (new file): start page
	* www/style.css (new file): stylesheet
	* www/images/development.png (new file): development icon
	* www/images/development.svg (new file): development icon
	* www/images/download.png (new file): download icon
	* www/images/download.svg (new file): download icon
	* www/images/email-link.png (new file): icon for email links
	* www/images/external-link.png (new file): icon for external links
	* www/images/info.png (new file): info icon
	* www/images/info.svg (new file): info icon
	* www/images/screenshot.png (new file): screenshot for the start
	page

	* obby/rudel-obby-serverl.el
	(rudel-obby-client::rudel-obby/obby_document_create): find unique
	suffix for the new document; send suffix to clients

	* obby/rudel-obby.el (header): fixed license text
	* obby/rudel-obby-util.el (header): fixed license text
	* obby/rudel-obby-server.el (header): fixed license text
	* obby/rudel-obby-client.el (header): fixed license text
	* jupiter/jupiter.el (header): fixed license text
	* jupiter/jupiter-operation.el (header): fixed license text
	* jupiter/jupiter-nop.el (header): fixed license text
	* jupiter/jupiter-insert.el (header): fixed license text
	* jupiter/jupiter-delete.el (header): fixed license text
	* jupiter/jupiter-compound.el (header): fixed license text
	* rudel.el (header): fixed license text
	* rudel-util.el (header): fixed license text
	* rudel-tls.el (header): fixed license text
	* rudel-telepathy.e (header): fixed license text
	* rudel-speedbar.el (header): fixed license text
	* rudel-overlay.el (header): fixed license text
	* rudel-operators.el (header): fixed license text
	* rudel-operations.el (header): fixed license text
	* rudel-mode.el (header): fixed license text
	* rudel-interactive.el (header): fixed license text
	* rudel-compat.el (header): fixed license text

	* obby/rudel-obby-util.el (require cl): now required
	(generic rudel-obby-char->byte): new generic; char positions ->
	byte positions
	(jupiter-insert::rudel-obby-char->byte): new method; char
	positions -> byte positions
	(jupiter-delete::rudel-obby-char->byte): new method; char
	positions -> byte positions
	(jupiter-compound::rudel-obby-char->byte): new method; char
	positions -> byte positions
	(jupiter-nop::rudel-obby-char->byte): new method; char positions
	-> byte positions
	(generic rudel-obby-byte->char): new generic; byte positions ->
	char positions
	(jupiter-insert::rudel-obby-byte->char): new method; byte
	positions -> char positions
	(jupiter-delete::rudel-obby-byte->char): new method; byte
	positions -> char positions
	(jupiter-compound::rudel-obby-byte->char): new method; byte
	positions -> char positions
	(jupiter-nop::rudel-obby-byte->char): new method; byte positions
	-> char positions
	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-local-operation): call
	`rudel-obby-char->byte' before processing
	(rudel-obby-connection::rudel-remote-operation): call
	`rudel-obby-byte->char' before processing
	* rudel.el (rudel-buffer-change-workaround-data): new variable;
	holds change data for later use
	(rudel-document::rudel-attach-to-buffer): add
	`rudel-buffer-change-workaround' to 'before-change-functions'
	(rudel-document::rudel-detach-from-buffer): remove
	`rudel-buffer-change-workaround' from 'before-change-functions'
	(rudel-buffer-change-workaround): new function; stores change data
	for later use

2009-06-07  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-obby/net6_client_join): use
	`with-parsed-arguments'
	(rudel-obby-connection::rudel-obby/net6_client_part): use
	`with-parsed-arguments'
	(rudel-obby-connection::rudel-obby/obby_welcome): use
	`with-parsed-arguments'
	(rudel-obby-connection::rudel-obby/obby_sync_init): use
	`with-parsed-arguments'
	(rudel-obby-connection::rudel-obby/obby_sync_usertable_user): use
	`with-parsed-arguments'
	(rudel-obby-connection::rudel-obby/obby_user_colour): use
	`with-parsed-arguments'
	(rudel-obby-connection::rudel-obby/obby_sync_doclist_document):
	use `with-parsed-arguments'
	(rudel-obby-connection::rudel-obby/obby_document_create): use
	`with-parsed-arguments'
	(rudel-obby-connection::rudel-obby/obby_document_remove): use
	`with-parsed-arguments'
	(rudel-obby-connection::rudel-obby/obby_document): use
	`with-parsed-arguments'; cleanup
	(rudel-obby-connection::rudel-obby/obby_document/rename): use
	`with-parsed-arguments'
	(rudel-obby-connection::rudel-obby/obby_document/subscribe): use
	`with-parsed-arguments'
	(rudel-obby-connection::rudel-obby/obby_document/unsubscribe): use
	`with-parsed-arguments'
	(rudel-obby-connection::rudel-obby/obby_document/sync_chunk): use
	`with-parsed-arguments'
	(rudel-obby-connection::rudel-obby/obby_document/record): use
	`with-parsed-arguments'
	(rudel-obby-connection::rudel-obby/obby_document/record/ins): use
	`with-parsed-arguments'
	(rudel-obby-connection::rudel-obby/obby_document/record/del): use
	`with-parsed-arguments'

2009-06-06  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-obby/net6_client_part): use `eql',
	not `=' when calling `rudel-find-user' since the client id can be
	nil

	* obby/rudel-obby-util.el (require jupiter): silence byte compiler

	* obby/rudel-obby-util.el (rudel-obby-dispatch): moved inside file
	(with-parsed-arguments): new macro; executed forms with variables
	bound to parsed arguments

2009-06-04  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (require rudel-interactive): interactive functions use
	`rudel-read-backend' and `rudel-read-document'

	* rudel.el (rudel-buffer-document): mark as permanent local
	variable to prevent deletion in the event of a major-mode change
	(rudel-document::rudel-attach-to-buffer): add (buffer-locally)
	`rudel-handle-major-mode-change' to 'change-major-mode-hook' such
	that it can repair damage caused by major-mode changes
	(rudel-document::rudel-detach-from-buffer): remove
	`rudel-handle-major-mode-change' from 'change-major-mode-hook'
	(rudel-mode-changed-buffers) new variable; temporarily stores
	buffers that underwent major-mode changes
	(rudel-handle-major-mode-change): new function; schedules buffers
	for repair after major-mode changes
	(rudel-after-major-mode-change): new function; repairs buffer
	objects after major-mode changes

2009-06-03  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (rudel-buffer-has-document-p): use `buffer-local-value'
	(rudel-buffer-document): use `buffer-local-value'
	(rudel-set-buffer-document): added documentation string

2009-06-02  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (rudel-handle-buffer-change): There are three cases
	now: insert, delete and arbitrary changes; arbitrary changes
	generate a delete and insert operation

	* rudel-mode.el (rudel-minor-keymap): added some comments
	(global-rudel-minor-mode): extended documentation string; cleaned
	up code; added comments

	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-obby/net6_client_part): fixed typo
	in variable name client-id-numeric

2009-05-28  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-util.el (header): Fixed version (1.0 -> 0.1)

	* obby/rudel-obby-client.el (header): Fixed version (1.0 -> 0.1)
	(rudel-obby-connection::rudel-obby/obby_document/record/split):
	introduced temporary variable

2009-??-??  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (rudel-buffer-document): removed; replaced by
	rudel-buffer-documents hash-table
	(rudel-buffer-documents): new variable; a hash-table, which
	associates documents to buffers
	(rudel-buffer-has-document-p):
	(rudel-buffer-document):
	(rudel-set-buffer-document):

2009-03-16  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-obby/net6_client_part): do not crash
	if the client id cannot be found

	* obby/rudel-obby.el (rudel-obby-backend::rudel-make-document):
	specify value 1 for slot suffix
	(rudel-obby-document::suffix): new slot; contains the suffix
	number of the document
	(rudel-obby-document::rudel-unique-name): new method; return
	unique name based on document name and suffix
	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-obby/obby_sync_doclist_document): do
	not ignore the suffix when creating the document object
	(rudel-obby-connection::rudel-obby/obby_document_create): do not
	ignore the suffix when creating the document object
	(rudel-obby-connection::rudel-obby/obby_document/rename): change
	document name and suffix as requested
	* rudel.el (rudel-document::rudel-unique-name): new method;
	returns a unique name for the document
	(rudel-document::rudel-suggested-buffer-name): new method; returns
	a suggested name for the buffer attached to the document
	(rudel-subscribe): use `rudel-suggested-buffer-name' instead of
	the object name
	* rudel-interactive.el (rudel-read-document): use the unique names
	of the documents instead of the object names

2009-02-27  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (rudel-document::rudel-attach-to-buffer): add hook to
	detach document from the buffer when the buffer is killed
	(rudel-document::rudel-detach-from-buffer): remove unpublish
	function kill buffer hook

2009-02-23  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (rudel-document): minor cleanup
	(rudel-document::rudel-attach-to-buffer): stylistic changes
	(rudel-document::rudel-detach-from-buffer): fixed argument order in
	call to `rudel-set-buffer-document'

	* obby/rudel-obby-server.el
	(rudel-obby-server::rudel-remove-client): Make sure there is a
	user object before setting the status to offline

	* obby/rudel-obby-client.el (rudel-obby/net6_encryption_failed):
	only fail if encryption has been requested in the first
	place. otherwise, just carry on

	* rudel.el (rudel-document::rudel-attach-to-buffer): use
	`rudel-set-buffer-document'
	(rudel-document::rudel-detach-from-buffer): use
	`rudel-set-buffer-document'
	(rudel-buffer-has-document-p): new function; test whether a buffer
	has an associated document object
	(rudel-buffer-document): new function; returns associated document
	object of a buffer
	(rudel-set-buffer-document): new functions; sets associated
	document object of a buffer
	(rudel-handle-buffer-change): use `rudel-buffer-has-document-p'
	(rudel-publish-buffer): use `rudel-buffer-has-document-p'
	(rudel-unpublish-buffer): use `rudel-buffer-has-document-p' and
	`rudel-buffer-document'
	* rudel-mode.el (rudel-minor-keymap): use
	`rudel-buffer-has-document-p'

	* obby/rudel-obby-client.el (rudel-obby/obby_document/rename):
	new method; dummy implementation

	* obby/rudel-obby-client.el (rudel-obby/net6_client_join):
	stylistic change

2009-02-21  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-util.el (generic rudel-operation->message): new
	generic function; serializes an operation
	(jupiter-insert::rudel-operation->message): new method
	(jupiter-delete::rudel-operation->message): new method
	(jupiter-compound::rudel-operation->message): new method
	(jupiter-nop::rudel-operation->message): new method
	(rudel-message->operation): new function; deserializes an
	operation from a received message
	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-local-insert): do not construct
	message string; use `rudel-operation->message'
	(rudel-obby-connection::rudel-local-delete): do not construct
	message string; use `rudel-operation->message'
	(rudel-obby-connection::rudel-local-operation): new method;
	handles operation objects that represent local operations
	(rudel-obby-connection::rudel-remote-operation): new method;
	handles operation objects that represent remote operations
	(rudel-obby-connection::rudel-obby/obby_document/record/ins):
	construct operation name correctly; do not call jupiter context to
	transform operation
	(rudel-obby-connection::rudel-obby/obby_document/record/del):
	construct operation name correctly; do not call jupiter context to
	transform operation
	(rudel-obby-connection::rudel-obby/obby_document/record/split):
	new method; handles split operation messages
	(rudel-obby-connection::rudel-obby/obby_document/record/noop): new
	method; handles nop messages

2009-02-12  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby.el (rudel-obby-backend::rudel-ask-connect-info):
	ask whether to encrypt the connection
	(rudel-obby-backend::rudel-connect): create connection object
	capable of StartTLS encryption when encryption was requested
	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-obby/net6_encryption): do not fail
	when the server requests encryption
	(rudel-obby-connection::rudel-obby/net6_encryption_begin): start
	TLS encryption for the connection
	(rudel-obby-connection::rudel-obby/net6_encryption_failed): new
	method; stub
	* rudel-tls.el (new file): StartTLS encryption for Rudel
	* Project.ede ("rudel"): added rudel-tls.el
	* Makefile (rudel_LISP): added rudel-tls.el

2009-02-06  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-compat.el (header): fixed email address, keywords, legal
	notice and file commentary

2009-02-05  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby.el (rudel-compat): require rudel-compat for
	`read-color'
	* rudel.el (rudel-compat): require rudel-compat for `read-color'
	* rudel-interactive.el (rudel-compat): require rudel-compat for
	`read-color'
	* rudel-compat.el (new file): compatibility code
	* Project.ede (rudel): added rudel-compat.el
	* Makefile (rudel_LISP): regenerated: added rudel-compat.el

2009-02-04  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby.el (require rudel)
	* obby/rudel-obby-util.el (require rudel)
	* obby/rudel-obby-client.el (require rudel-obby): make compilation
	succeed

	* rudel.el (include eieio-speedbar): I need it for now; I should
	get rid of it later

	* INSTALL (REQUIREMENTS): added note that CVS version of cedet is
	required
	(INSTALLING): added subdirectories jupiter and obby in load path
	listing; fixed name of autoload file

2009-02-02  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby.el (rudel-obby-backend::rudel-ask-connect-info)
	(rudel-obby-backend::rudel-host, rudel-obby-replace-in-string)
	* obby/rudel-obby-util.el (rudel-obby-dispatch)
	* obby/rudel-obby-server.el (rudel-obby-client::rudel-obby/obby_document)
	(rudel-obby-server::rudel-broadcast, rudel-obby-server::rudel-make-user)
	* obby/rudel-obby-client.el (rudel-obby-connection::rudel-obby/net6_client_join)
	(rudel-obby-connection::rudel-obby/obby_document)
	* jupiter/jupiter-operation.el (jupiter-operation)
	* rudel.el (rudel-backend, rudel-session, rudel-server-session)
	(rudel-connection, rudel-document)
	(rudel-document::rudel-attach-to-buffer)
	(rudel-document::rudel-detach-from-buffer)
	(rudel-document::rudel-insert, rudel-document::rudel-delete)
	(rudel-change-color)
	* rudel-util.el (rudel-assemble-line-fragments, rudel-loop-lines)
	* rudel-overlay.el (rudel-make-author-overlay)
	* rudel-interactive.el (rudel-read-backend, rudel-read-user-color)
	(rudel-read-user, rudel-read-document): replaced 't by t

	* rudel-operators.el (rudel-overlay-operators::rudel-insert):
	Fixed computation of insertion offset when appending to the end of
	the buffer string

	* rudel.el (rudel-document::rudel-chunks): fixed invalid access to
	last chunk for empty buffer

	* rudel.el (rudel-document::rudel-attach-to-buffer): fixed
	incorrect slot reference

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/obby_document/subscribe): minor
	rearrangement of expressions
	(rudel-obby-client::rudel-obby/obby_document/unsubscribe): minor
	rearrangement of expressions

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/obby_document/record/ins): added
	documentation string
	(rudel-obby-client::rudel-obby/obby_document/record/del): added
	documentation string
	(rudel-obby-server): cosmetic change

	* jupiter/jupiter.el (jupiter-context::jupiter-remote-operation):
	improved documentation string; cosmetic changes

	* jupiter/jupiter-insert.el (jupiter-insert::jupiter-transform):
	improved some comments

	* rudel.el (rudel-document::rudel-attach-to-buffer): renamed
	some variables; added documentation string
	(rudel-document::rudel-insert): improved documentation string
	(rudel-document::rudel-chunks): do not create chunks when buffer
	string is empty; improved comments
	(rudel-choose-backend): compare number using `=' not `eq'

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/obby_document/record/ins): use
	`rudel-remote-operation' instead of `rudel-remote-insert'
	(rudel-obby-client::rudel-obby/obby_document/record/del): use
	`rudel-remote-operation' instead of `rudel-remote-delete'
	* obby/rudel-obby-client.el (include rudel-operations): for
	rudel-insert-op and rudel-delete-op
	(rudel-obby-connection::rudel-obby/obby_document/sync_chunk): use
	`rudel-remote-operation' with rudel-insert-op to insert chunks
	(rudel-obby-connection::rudel-obby/obby_document/record/ins): use
	`rudel-remote-operation' instead of `rudel-remote-insert'
	(rudel-obby-connection::rudel-obby/obby_document/record/del): use
	`rudel-remote-operation' instead of `rudel-remote-delete'
	* jupiter/jupiter-operation.el (include rudel-operations): for
	rudel-operation
	(jupiter-operation): derived from rudel-operation
	(jupiter-operation::jupiter-apply): removed; replaced by generic
	`rudel-apply'
	* jupiter/jupiter-nop.el (jupiter-nop::jupiter-apply): removed;
	replaced by `rudel-apply'
	(jupiter-nop::rudel-apply): new method; implements generic
	`rudel-apply'
	* jupiter/jupiter-insert.el (include rudel-operations): for
	jupiter-insert-op
	(jupiter-insert): derived from jupiter-insert-op
	(jupiter-insert::jupiter-apply): removed; inherited from
	jupiter-insert-op
	(jupiter-insert::slot-missing): removed; inherited from
	jupiter-insert-op
	* jupiter/jupiter-delete.el (include rudel-operations): for
	jupiter-delete-op
	(jupiter-delete): derived from jupiter-delete-op
	(jupiter-delete::jupiter-apply): removed; inherited from
	jupiter-delete-op
	(jupiter-delete::slot-missing): removed; inherited from
	jupiter-delete-op
	* jupiter/jupiter-compound.el (jupiter-compound::jupiter-apply):
	removed; replaced by `rudel-apply'
	(jupiter-compound::rudel-apply): new method; implements generic
	`rudel-apply'
	* rudel.el (include rudel-operations): everything is represented
	in terms of operations
	(include rudel-operators): operations apply changes to objects
	through operators
	(rudel-document::rudel-insert): new method; performs insert
	operation
	(rudel-document::rudel-delete): new method; performs delete
	operation
	(rudel-document::rudel-local-insert): removed; document does not
	deal with aspects other than the actual insert and delete
	(rudel-document::rudel-local-delete): removed; document does not
	deal with aspects other than the actual insert and delete
	(rudel-document::rudel-remote-insert): removed; document does not
	deal with aspects other than the actual insert and delete
	(rudel-document::rudel-remote-delete): removed; document does not
	deal with aspects other than the actual insert and delete
	(rudel-document::rudel-local-operation): new method; apply
	operation using overlay and connection operators
	(rudel-document::rudel-remote-operation): new method; apply
	operation using document and overlay operators
	(rudel-handle-buffer-change): realize buffer changes using
	operations
	* rudel-operators.el (new file): collections of operations on
	Rudel data types
	* rudel-operations.el (new file): operation classes

2009-02-01  Jan Moringen  <scymtym@users.sourceforge.net>

	* jupiter/jupiter-insert.el (jupiter-insert::jupiter-transform):
	handle jupiter-nop

	* jupiter/jupiter-delete.el (jupiter-delete::jupiter-transform):
	in inner cond, use matching pattern but empty body for
	no-operation cases; in outer cond, handle jupiter-nop

	* jupiter/jupiter-compound.el (jupiter-compound): now derived from
	jupiter-operation; should have been right from the start

2009-01-31  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (rudel-default-username): Default name used when
	prompting for user name; required by rudel-interactive

	* rudel-interactive.el (rudel-read-backend): fixed typo

2009-01-30  Jan Moringen  <scymtym@users.sourceforge.net>

	* jupiter/jupiter-insert.el (jupiter-insert::jupiter-transform):
	fixed two offset calculations
	* jupiter/jupiter-delete.el (jupiter-delete::jupiter-transform):
	fixed offset calculation

	* rudel.el (rudel-backend::rudel-ask-connect-info): changed from
	method to generic
	(rudel-backend::rudel-connect): changed from method to generic
	(rudel-backend::rudel-ask-host-info): changed from method to
	generic
	(rudel-backend::rudel-host): changed from method to generic
	(rudel-backend::rudel-make-document): changed from method to
	generic
	(rudel-session::rudel-disconnect): changed from method to generic
	(rudel-session::rudel-change-color-): changed from method to
	generic
	(rudel-session::rudel-publish): changed from method to generic
	(rudel-session::rudel-subscribe-to): changed from method to
	generic
	(rudel-session::rudel-unsubscribe-from): changed from method to
	generic
	(rudel-session::rudel-local-insert): changed from method to
	generic
	(rudel-session::rudel-local-delete): changed from method to
	generic
	(rudel-session::rudel-remote-insert): changed from method to
	generic
	(rudel-session::rudel-remote-delete): changed from method to
	generic

2009-01-28  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-overlay.el (header): fixed version
	(whole file): cosmetic changes
	(rudel-author-overlay-p): added documentation string
	(rudel-author-overlays): added documentation string

	* rudel-mode.el (rudel-minor-keymap): cosmetic changes

	* rudel-mode.el (rudel-minor-keymap): Separated session
	participation and hosting items

	* obby/rudel-obby.el (rudel-obby-long-message-threshold): Added
	documentation string
	(rudel-obby-long-message-chunk-size): Added documentation string
	(rudel-obby-backend::rudel-connect): Do not set process object;
	this is done in the `initialize-instance' method of the base class
	(rudel-obby-format-color): retrieve color components with
	`color-values'

	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-remove-context): improved
	documentation string
	(rudel-obby-connection::rudel-publish): added a comment
	(rudel-obby-connection::rudel-subscribe-to): added some comments;
	cleaned up code
	(rudel-obby-connection::rudel-unsubscribe-from): added a comment
	(rudel-obby-connection::rudel-obby/net6_ping): added documentation
	string
	(rudel-obby-connection::rudel-obby/net6_encryption): added
	documentation string
	(rudel-obby-connection::rudel-obby/net6_login_failed): added
	documentation string
	(rudel-obby-connection::rudel-obby/net6_client_part): use `='
	instead of `eq' to compare client ids; fixed documentation string;
	improved comments
	(rudel-obby-connection::rudel-obby/obby_user_colour): use `='
	instead of `eq' to compare user ids
	(rudel-obby-connection::rudel-obby/obby_document/sync_chunk): use
	`=' instead of `eq' to compare user ids; use accessor
	`user-id-numeric'

	* obby/rudel-obby-util.el (rudel-obby-dispatch): new functions;
	dispatches to class methods based on message name; handles errors
	properly
	* obby/rudel-obby-server.el (rudel-obby-client::rudel-message):
	use `rudel-obby-dispatch' to dispatch message
	(rudel-obby-client::rudel-obby/obby_document): use
	`rudel-obby-dispatch' to dispatch message
	(rudel-obby-client::rudel-obby/obby_document/record): use
	`rudel-obby-dispatch' to dispatch message
	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-message): use `rudel-obby-dispatch'
	to dispatch message; moved to a different location
	(rudel-obby-connection::rudel-obby/obby_document): use
	`rudel-obby-dispatch' to dispatch message
	(rudel-obby-connection::rudel-obby/obby_document/record): use
	`rudel-obby-dispatch' to dispatch message

	* obby/rudel-obby-util.el (generic rudel-message): made the method
	a generic function and updated the documentation string

2009-01-26  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby.el (rudel-obby-document::revision): removed; The
	slot is no longer needed
	* obby/rudel-obby-server.el (require jupiter): uses jupiter
	algorithm
	(rudel-obby-client::rudel-obby/obby_document_create): add a
	jupiter context for the document
	(rudel-obby-client::rudel-obby/obby_document/subscribe): add a
	jupiter context for the document
	(rudel-obby-client::rudel-obby/obby_document/unsubscribe): remove
	the jupiter context associated to the document
	(rudel-obby-client::rudel-obby/obby_document/record/ins):
	transformed the operation before applying it to the buffer; use
	the respective jupiter contexts of the receivers when sending the
	operation
	(rudel-obby-client::rudel-obby/obby_document/record/del):
	transformed the operation before applying it to the buffer; use
	the respective jupiter contexts of the receivers when sending the
	operation
	(rudel-obby-server::contexts): new slot; stores jupiter contexts
	for pairs of clients and documents
	(rudel-obby-server::initialize-instance): new method; store an
	empty hash-table in the `contexts' slot
	(rudel-obby-server::rudel-find-context): find the jupiter context
	for a pair of a client and a document
	(rudel-obby-server::rudel-add-context): add a jupiter context for
	a pair of a client and a document
	(rudel-obby-server::rudel-remove-context): remove the jupiter
	context for a pair of a client and a document
	(rudel-obby-context-key): return a list of client id and document
	id
	* obby/rudel-obby-client.el (require jupiter): uses jupiter
	algorithm
	(rudel-obby-connection::contexts): new slot; stores jupiter
	contexts for documents
	(rudel-obby-connection::initialize-instance): new method; store an
	empty hash-table in the `contexts' slot
	(rudel-obby-connection::rudel-find-context): new method; return
	the jupiter context for a document
	(rudel-obby-connection::rudel-add-context): new method; add a
	jupiter context for a document
	(rudel-obby-connection::rudel-remove-context): new method; remove
	the jupiter context for a document
	(rudel-obby-connection::rudel-publish): add a jupiter context for
	the new document
	(rudel-obby-connection::rudel-subscribe-to): add a jupiter context
	for the new document
	(rudel-obby-connection::rudel-unsubscribe-from): remove the
	jupiter context associated to the document
	(rudel-obby-connection::rudel-local-insert): use revision
	information from the jupiter context instead of the document;
	supply the operation to the jupiter context
	(rudel-obby-connection::rudel-local-delete): use revision
	information from the jupiter context instead of the document;
	supply the operation to the jupiter context
	(rudel-obby-connection::rudel-obby/obby_document/record/ins):
	transform the operation using the jupiter context instead of using
	it unmodified
	(rudel-obby-connection::rudel-obby/obby_document/record/del):
	transform the operation using the jupiter context instead of using
	it unmodified

2009-01-22  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby-client.el (rudel-obby-connection): removed
	redundant slot `socket' (inherited from base class)

2009-01-21  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel-interactive.el (rudel-read-user): added comments
	(rudel-allocate-buffer-clear-existing): added documentation string
	(rudel-allocate-buffer-make-unique): added documentation string

2009-01-19  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el, rudel-util.el, rudel-telepathy.el, rudel-speedbar.el,
	rudel-overlay.el, rudel-mode.el, jupiter/jupiter.el,
	jupiter/jupiter-operation.el, jupiter/jupiter-nop.el,
	jupiter/jupiter-insert.el, jupiter/jupiter-delete.el,
	jupiter/jupiter-compound.el, obby/rudel-obby.el,
	obby/rudel-obby-util.el, obby/rudel-obby-server.el,
	obby/rudel-obby-client.el (header): changed email address
	<scymtym@users.sourceforge.net> ->
	<scymtym@users.sourceforge.net>

	* rudel-interactive.el (header): added keywords to file header
	comment

	* jupiter/jupiter.el (new file): core Jupiter algorithm
	* jupiter/jupiter-operation.el (new file): base class for Jupiter
	operations
	* jupiter/jupiter-insert.el (new file): insert operation for
	Jupiter algorithm
	* jupiter/jupiter-delete.el (new file): delete operation for
	Jupiter algorithm
	* jupiter/jupiter-nop.el (new file): no-operation for Jupiter
	algorithm
	* jupiter/jupiter-compound.el (new file): compound operation for
	Jupiter algorithm

2009-01-11  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby.el (rudel-obby-user::client-id): added rationale
	for type (or null integer)
	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-obby/net6_client_join): added
	documentation string; cosmetic changes
	(rudel-obby-connection::rudel-obby/net6_client_part): use accessor
	`rudel-client-id' when searching for the user object; set
	client-id to nil in the user object; added documentation string
	(rudel-obby-connection::rudel-obby/obby_sync_usertable_user):
	store parsed user-id and color in temporaries
	(rudel-obby-connection::rudel-obby/obby_user_colour):store parsed
	color in a temporary; use accessor `rudel-id' when finding the
	user object

	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-change-color-): new function;
	implements changing the color

	* obby/rudel-obby-util.el
	(rudel-obby-socket-owner::rudel-receive): improved documentation
	string

2009-01-05  Jan Moringen  <scymtym@users.sourceforge.net>

	* INSTALL (REQUIREMENTS): proper list of requirements and sources
	from which they can be obtained
	(INSTALLING): initial version of installation instructions
	(COMPLETING): some notes about compiling
	* README (INTRODUCTION): short introduction
	(GETTING STARTED): some notes about enabling Rudel, joining and
	hosting sessions

2009-01-04  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby.el (rudel-obby-long-message-threshold): new
	variable; threshold for message size, above which messages are
	sent in multiple chunks
	(rudel-obby-long-message-chunk-size): Chunk size used, when
	chunking long messages.
	(rudel-obby-user::client-id): allow value nil; added accessor;
	added documentation string
	(rudel-obby-send): new function; handles low-level aspects of
	sending obby protocol messages
	* obby/rudel-obby-util.el: new file; contains helper
	functionality, mainly the class `rudel-obby-socket-owner', which
	handles sending and receiving message
	* obby/rudel-obby-server.el (includes): replaced rudel-obby with
	rudel-obby-util, since it contains `rudel-obby-socket-owner'
	(class rudel-obby-client): added base class
	`rudel-obby-socket-owner'
	(rudel-obby-client::rudel-receive): deleted, the functionality is
	provided by the base class `rudel-obby-socket-owner'
	(rudel-obby-client::rudel-send): deleted, the functionality is
	provided by the base class `rudel-obby-socket-owner'
	(rudel-obby-client::rudel-message): new method; called by base
	class when a message is received; dispatches to appropriate
	handler method
	(rudel-obby-client::rudel-obby/obby_user_colour): minor change in
	documentation string
	* obby/rudel-obby-client.el (includes): replaced rudel-obby with
	rudel-obby-util, since it contains `rudel-obby-socket-owner'
	(class rudel-obby-connection): added base class
	`rudel-obby-socket-owner'
	(rudel-obby-connection::rudel-disconnect): just call next method;
	it does what this method formerly did
	(rudel-obby-connection::rudel-close): new method; end the session,
	when the connection is closed
	(rudel-obby-connection::rudel-receive): deleted, the functionality
	is provided by the base class `rudel-obby-socket-owner'
	(rudel-obby-connection::rudel-send): deleted, the functionality is
	provided by the base class `rudel-obby-socket-owner'
	(rudel-obby-connection::rudel-message): new method; called by
	base class when a message is received; dispatches to appropriate
	handler method

	* rudel.el (rudel-document::rudel-detach-from-buffer): do nothing,
	if the document is not attached to any buffer

	* obby/rudel-obby.el (rudel-obby-user): added missing accessor
	`rudel-connected'

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/net6_client_login): transmit number
	of synchronization items; transmit list of disconnected users

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/obby_document/record/ins):
	broadcast only to clients, which are subscribed to the document;
	send user id of author instead of client id
	(rudel-obby-client::rudel-obby/obby_document/record/del):
	broadcast only to clients, which are subscribed to the document;
	send user id of author instead of client id
	(rudel-obby-client::rudel-subscribed-clients-not-self): new
	method; return a list of clients subscribed to a document
	excluding the client itself.

	* obby/rudel-obby-server.el (rudel-obby-server::next-client-id):
	first id should be 1, not 0; fixed initform accordingly
	(rudel-obby-server::next-user-id):
	first id should be 1, not 0; fixed initform accordingly

	* rudel.el (rudel-document::rudel-chunks): fixed void variable
	`chunks-' -> `augmented-chunks'

	* obby/rudel-obby-server.el
	(rudel-obby-client::rudel-obby/obby_document/subscribe): send
	individual buffer chunks with their respective authors instead of
	one large string without author information
	* rudel.el (rudel-document::rudel-chunks): new method; return a
	list of buffer position ranges and the respective authors, that
	wrote the text

2009-01-03  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby/rudel-obby.el (rudel-obby-backend::rudel-host): cleanup
	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-local-insert): accept arguments
	`position' and `data' instead of `from', `to' and `what'; since
	position is zero-based, transmit it literally
	(rudel-obby-connection::rudel-local-delete): instead of `from' and
	`to' accept argument `position'; since position is
	zero-based. transmit it literally
	(rudel-obby-connection::rudel-obby/obby_document/record):
	identified remaining arguments; dispatch actions to appropriate
	methods; identify methods by interning their symbols
	(rudel-obby-connection::rudel-obby/obby_document/record/ins): new
	method; handle remote insert actions
	(rudel-obby-connection::rudel-obby/obby_document/record/del): new
	method; handle remote delete actions
	* rudel.el (includes): include rudel-overlay
	(rudel-document::rudel-detach-from-buffer): improved readability
	(rudel-document::rudel-local-insert): instead of redundant
	arguments `from', `to' and `what' accept only `position' and
	`data'; update overlays
	(rudel-document::rudel-local-delete): instead of redundant
	arguments `from', `to' and `length' accept only `position' and
	`length'; update overlays
	(rudel-document::rudel-remote-insert): renamed arguments `from' ->
	`position', `what' -> `data'; update overlays
	(rudel-document::rudel-remote-delete): replaced arguments `from'
	and `to' by `position'; update overlays
	(rudel-handle-buffer-change): call rudel-local-{insert, delete}
	with changed arguments

2009-01-01  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (rudel-session::rudel-unsubscribed-documents): new
	method; returns documents, to which the user associated with the
	session is not yet subscribed
	(rudel-subscribe): when called interactively, use
	`rudel-unsubscribed-documents' to offer only unsubscribed
	documents in completing read

	* rudel-interactive.el (rudel-read-user-name): new function; read
	a user name; could be used to enforce certain constraints on the
	name
	(rudel-read-user-color): new function; read a user color; could be
	used to enforce certain constraints on the color

	* obby/rudel-obby.el (rudel-obby-backend::rudel-ask-host-info):
	new method; ask user for port number
	(rudel-obby-backend::rudel-host): new method; require obby server
	component, make the network process and construct the server
	* obby/rudel-obby-server.el (new file): initial revision of obby
	server for rudel
	* obby/rudel-obby-client.el (header section): added keyword and
	x-rcs
	(rudel-obby-connection::rudel-publish): new method; send document
	to server
	(rudel-obby-connection::rudel-unsubscribe-from): send unsubscribe
	notification to server
	(rudel-obby-connection::rudel-local-insert): cleanup
	(rudel-obby-connection::rudel-local-delete): new method; send
	delete record to server and increase local revision
	(rudel-obby-connection::rudel-obby/obby_document/sync_chunk):
	improved user locating code; do not complain, when the user is not
	found
	(rudel-obby-connection::rudel-obby/obby_document/record): removed
	useless debug message
	* rudel.el (class rudel-session): update documentation string
	(class rudel-server-session): new class; base class for server
	sessions
	(rudel-choose-backend): fixed void-variable when called
	interactively
	(rudel-host-session): provided initial implementation, which uses
	the selected backend to create a server
	(rudel-subscribe): call `set-window-buffer' instead of
	`show-buffer'

	* obby/rudel-obby.el (header section): fixed history
	(rudel-obby-version): new constant; holds version of the obby
	backend
	(rudel-obby-protocol-version): new constant; holds the obby
	protocol version understood by the backend
	(rudel-obby-document::rudel-both-ids): new method; useful when
	locating documents by means of owner and document id

	* rudel-mode.el (header section): added keywords

	* rudel-interactive.el (header section): added file comment

2008-12-30  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (class rudel-session): converted to base class for
	other session classes; removed slots `connection' and `self' which
	are specific for client sessions
	(rudel-session::rudel-end): empty now; derived classes do the work
	(rudel-session::rudel-add-user): use `object-add-to-list'
	(rudel-session::rudel-remove-user): use `object-remove-from-list'
	(rudel-session::rudel-add-document): use `object-add-to-list'
	(rudel-session::rudel-remove-document): use
	`object-remove-from-list'
	(class rudel-client-session): derived from `rudel-session';
	additional slots `connection' and `self'
	(rudel-client-session::rudel-end): detach buffers from documents
	and call `rudel-disconnect' on connection
	(class rudel-connection): documentation string
	(rudel-connection::rudel-disconnect): remove hook
	`after-change-functions' only locally
	(rudel-join-session): construct a proper session name; store
	backend object in the session; some comments

	* obby/rudel-obby.el (rudel-obby-document): cleanup; improved
	documentation strings

	* rudel-overlay.el (new file): functions for managing overlays,
	which indicate the authors of contributions in collaborative
	buffers

	* rudel.el (rudel-allocate-buffer-function): customization option
	for buffer allocation function
	(rudel-subscribe): call buffer allocation function instead of just
	using the provided name
	* rudel-interactive.el (rudel-allocate-buffer-clear-existing): new
	function; in case of a conflict, allocate buffer for subscription
	by clearing the existing buffer
	(rudel-allocate-buffer-make-unique): new function; in case of a
	conflict, allocate buffer for subscription by producing a unique
	name

	* rudel.el (customization): added customization group definition
	for `rudel'

	* obby/rudel-obby.el (includes): require `rudel-util' instead of
	`rudel'
	(rudel-connect): attach connection to socket object
	(rudel-obby-document): removed slot `subscribed' as it is now
	contained in the base class `rudel-document'
	(rudel-obby-escape-string): call `rudel-obby-replace-in-string'
	instead of `obby-replace-in-string'
	(rudel-obby-unescape-string): call `rudel-obby-replace-in-string'
	instead of `obby-replace-in-string'
	* obby/rudel-obby-client.el
	(rudel-obby-connection::rudel-state-change): required by
	`rudel-sentinel-dispatch'
	(rudel-obby-connection::rudel-subscribe-to): do not touch slot
	`subscribed'
	(rudel-obby-connection::rudel-obby/obby_sync_doclist_document):
	retrieve subscribed users and add to `subscribed' slot
	(rudel-obby-connection::rudel-obby/obby_document_create): add
	document owner to `subscribed' slot
	(rudel-obby-connection::rudel-obby/obby_document/subscribe): add
	user to `subscribed' slot
	(rudel-obby-connection::rudel-obby/obby_document/unsubscribe):
	remove user from `subscribed' slot
	* rudel.el (rudel-document): added slot `subscribed' which
	contains a list of subscribed users
	(rudel-subscribe): do not use `rudel-unsubscribed-documents';
	instead list all documents for now
	(rudel-publish-buffer): add self to `subscribed' slot

	* rudel-util.el (rudel-state-change): cleanup; added comments

	* rudel-mode.el (rudel-minor-keymap): Fixed invalid menu
	definition

	* obby/rudel-obby.el (whole file): moved class
	`rudel-obby-connection' and related methods into file
	`rudel-obby-client.el'
	(rudel-obby-backend): added capability `track-subscriptions'
	(rudel-obby-backend::rudel-connect): require `rudel-obby-client'
	before constructing the connection object
	* obby/rudel-obby-client.el (new file): moved class
	`rudel-obby-connection' and related methods into this file

2008-12-29  Jan Moringen  <scymtym@users.sourceforge.net>

	* rudel.el (rudel-connection::rudel-change-color-): new method
	handles color changes
	(rudel-change-color): added basic implementation, which checks the
	backend, asks the user for a new color and calls the connection
	object

	* rudel-util.el (rudel-socket-owner::rudel-state-change): called
	when the state of the connection changes
	(rudel-socket-owner::rudel-close): called when the connection is
	closed
	(rudel-sentinel-dispatch): the argument is a message, not the
	actual state, the state is retrieved with `process-state'

	* rudel-speedbar.el (whole file): cleanup; improved comments

	* rudel-mode.el (whole file): improved comments
	(rudel-read-{backend, document}): moved to rudel-interactive.el
	(rudel-minor-keymap): added key binding for `rudel-change-color';
	added `options' menu item

	* rudel-interactive.el (whole file): user interaction functions
	used by all Rudel components

	* rudel-util.el (whole file): utility functions used by all Rudel
	components

	* rudel.el (whole file): improved comments
	(rudel-backend::make-document): new function create an appropriate
	document object for the backend
	(rudel-session::rudel-end): added documentation string
	(rudel-session::rudel-add-user): added documentation string
	(rudel-session::rudel-remove-user): added documentation string
	(rudel-session::rudel-remove-document): new method; remove
	document from session
	(rudel-connection::rudel-publish): new function; called when a
	buffer is published
	(rudel-connection::rudel-unsubscribe-from): new function; called
	when a subscription is canceled
	(class rudel-user): added documentation strings
	(class rudel-document): added documentation strings
	(rudel-document::rudel-attach-to-buffer): add to
	`after-change-functions' hook only for the buffer in question;
	added some comments
	(rudel-document::rudel-detach-from-buffer): cleanup
	(rudel-document::rudel-remote-insert): added comments
	(rudel-document::rudel-remote-delete): added comments
	(rudel-handle-buffer-change): added comments
	(rudel-choose-backend): added comments
	(rudel-end-session): additional error check
	(rudel-subscribe): call `rudel-unsubscribed-documents' when
	completing document name; added comments
	(rudel-unpublish-buffer): call `rudel-detach-from-buffer' and
	`rudel-unsubscribe-from'; added comments

	* obby/rudel-obby.el (whole file): improved comments
	(rudel-obby-backend::rudel-ask-connect-info): removed :override
	tag; added comments
	(rudel-obby-backend::rudel-connect): removed :override tag; use
	`make-network-process' instead of `open-network-stream' and attach
	filter and sentinel right away; removed some debug code
	(rudel-obby-backend::rudel-disconnect): removed :override tag
	(rudel-obby-backend::rudel-subscribe-to): removed :override tag
	(rudel-obby-backend::rudel-local-insert): removed :override tag
	(rudel-obby-backend::rudel-local-delete): removed :override tag
	(rudel-obby-backend::rudel-make-document): new method; creates a
	new rudel-obby-document object
	(rudel-obby-backend::rudel-available-document-id): obtains an
	unused document id, which can be assigned to a new document
	(class rudel-obby-connection): removed useless `host' and `port'
	slots
	(rudel-obby-connection::rudel-receive): removed some debug code
	(rudel-obby-connection::rudel-send): removed some debug code
	(rudel-obby-connection::rudel-obby/net6_client_join): fixed syntax
	error
	(class rudel-obby-user): added accessors for slots `client-id' and
	`user-id'
	(rudel-obby-user::eieio-speedbar-description): removed :override
	tag
	(rudel-obby-user::eieio-speedbar-object-buttonname): removed
	:override tag
	(class rudel-obby-document): added accessors and documentation for
	slot `id'
	(rudel-obby-document::eieio-speedbar-object-buttonname): removed
	:override tag
	(rudel-obby-replace-in-string): new function; replace a set of
	patterns in a string
	(rudel-obby-escape-string): new function; replace obby control
	characters with their escape sequences
	(rudel-obby-unescape-string): new function; inverse of
	`rudel-obby-escape-string'
	(rudel-obby-parse-color): added documentation
	(rudel-obby-format-color): added documentation
	(rudel-obby-assemble-message): properly escape message components
	(rudel-obby-parse-message): properly unescape message components

	* README (whole file): some initial notes
	* INSTALL (whole file): some initial notes

2008-12-02  Jan Moringen  <scymtym@users.sourceforge.net>

	* obby (directory): new directory for files belonging to the obby
	backend
	* rudel-obby.el (whole file): moved to `obby' directory
	* obby/rudel-obby.el (whole file): moved here from parent
	directory

	* Changelog (whole file): renamed to `ChangeLog?'
	* ChangeLog? (whole file): fixed name

	* INSTALL (whole file): added

	* rudel.el (whole file): fixed some comments, removed some test
	code
	(rudel-version): new variable; global Rudel version
	(rudel-sessions): removed; we only allow one session for now
	(rudel-session): cleaned up
	(rudel-session::rudel-end): cleaned up; added some comments
	(rudel-session::rudel-add-user): cosmetic changes
	(rudel-session::rudel-remove-user): cosmetic changes
	(rudel-session::rudel-find-user): cosmetic changes
	(rudel-session::rudel-add-document): cosmetic changes
	(rudel-session::rudel-find-document): cosmetic changes
	(rudel-backend::rudel-connect): improved documentation string
	(rudel-backend::rudel-ask-host-info): renamed from
	`rudel-ask-listen-info'
	(rudel-backend::rudel-host): renamed from `rudel-listen'
	(rudel-document::rudel-attach-to-buffer): cosmetic changes
	(rudel-document::rudel-remote-insert): cleaned up
	(rudel-document::rudel-remote-delete): cleaned up
	(rudel-load-backends): cosmetic changes
	(rudel-choose-backend): fixed message display
	(rudel-host-session): improved documentation string
	(rudel-change-color): raise an error since this is not yet
	implemented
	(rudel-subscribe): added comments
	(rudel-unpublish-buffer): raise an error if the buffer has not
	been published

	* rudel.el (whole file): cleanup up some obsolete code