initial revision
* 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
* README (whole file): some initial notes
* INSTALL (whole file): some initial notes
* 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; invers 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
* 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
* 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-interactive.el (whole file): user interaction functions used by
  all Rudel components
* 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-speedbar.el (whole file): cleanup; improved comments
* 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.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
* 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
* rudel-mode.el (rudel-minor-keymap): Fixed invalid menu definition
* rudel-util.el (rudel-state-change): cleanup; added comments
* 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.el (customization): added customization group definition for
  `rudel'