[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/rudel 9ec4b84: * rudel-backend.el: Try and fix compilat
From: |
Stefan Monnier |
Subject: |
[elpa] externals/rudel 9ec4b84: * rudel-backend.el: Try and fix compilation problem |
Date: |
Sun, 10 Jul 2016 22:17:52 +0000 (UTC) |
branch: externals/rudel
commit 9ec4b84e27f3faae8ad3eb5d3e96c523ce1fece2
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>
* rudel-backend.el: Try and fix compilation problem
* rudel-backend.el (rudel--with-memoization): New macro.
(rudel-get-factory): Use it. Use eieio-oref-default to access the
class's slots.
(rudel-backend-get-factory): Use the rudel-backend-factory class name
directly rather than the var holding the class name.
(rudel-backend-dump): Use oref-default to access the
class's slots.
(rudel-backend--format-backend-normal): Use slot names rather than
initarg names when accessing slots.
---
ChangeLog | 4857 -----------------------------------------------------
GNUmakefile | 4 +-
rudel-backend.el | 47 +-
rudel-loaddefs.el | 38 +-
4 files changed, 50 insertions(+), 4896 deletions(-)
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index 0a00c5e..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,4857 +0,0 @@
-2010-07-25 Joseph Corneli <address@hidden>
-
- Extensive documentation changes, new README sections
- * README: Extensive documentation changes, including
- documentation for renamed functions and also:
- (LISTING BACKENDS): new section
- (SAVING AND REUSING CONFIGURED SESSIONS): new section
- (WORKING WITHIN A CONNECTED SESSION): new section
- (EXTRA MINOR MODES): new section
-
- Renamed rudel-end-session to rudel-leave-session
- * rudel.el (rudel-end-session): changed
- rudel-end-session to rudel-leave-session
- * rudel-mode.el (rudel-minor-keymap): likewise
-
- Renamed rudel-unpublish-buffer to rudel-unsubscribe
- * rudel.el (rudel-attach-to-buffer): changed
- rudel-unpublish-buffer to rudel-unsubscribe
- (rudel-detach-from-buffer): likewise
- (rudel-unsubscribe): likewise
- * rudel-mode.el (rudel-minor-keymap): likewise
- * rudel-interactive.el (rudel-allocate-buffer-clear-existing):
- likewise
-
- Updates to INSTALL file.
- * INSTALL: Rearranged and updated instructions so they make more
- sense.
-
-2010-07-02 Jan Moringen <address@hidden>
-
- Proper comments for local variables in README, INSTALL
- * README: added proper comments to local variables
- * INSTALL: added proper comments to local variables
-
-2010-06-15 Jan Moringen <address@hidden>
-
- Require rudel-util.el in rudel-mode.el
- * rudel-mode.el (header): minor fix in history section
- (require rudel-util): new require; for object-{add,remove}-hook
-
- New milestones and tags, reassigned items in TODO
- * TODO (Future): reassigned and updated some items
- (Milestone rudel-0.5): new milestone
- (Milestone rudel-0.4): added tag 0.4; scheduled tasks "show cursor
- positions of other users", "integrate unit tests", "only read
- color hue"; minor fixes
- (Milestone rudel-0.3): added tag 0.3
- (Milestone rudel-0.2): added tags 0.2 and released
- (Milestone rudel-0.1): added tags 0.1 and released
-
- Hopefully fixed some notorious problems in rudel-compile.el
- * rudel-compile.el (require cl): new require; for flet
- (toplevel compilation): let-bind filename since there have been
- some compilation problems related to `filename' being void; inject
- requires for cl and rudel-backend into rudel-loaddefs.el
-
- Mention Debian/Ubuntu packages in INSTALL
- * INSTALL (REQUIREMENTS): mention Debian/Ubuntu packages for
- gnutls-cli and Avahi
- (footer): added settings startup, title and author
-
- Removed redundant checks in -factory::rudel-suitable-backends
- * rudel-backend.el
- (rudel-backend-factory::rudel-suitable-backends): do not check the
- cdr being an object twice
-
- Better handling of loading errors in rudel-backend.el
- * rudel-backend.el (header): minor fix in history
- (rudel-backend-factory::rudel-all-backends): added optional
- argument only-loaded; only return unloaded backends if requested
- (rudel-backend-factory::rudel-suitable-backends): only consider
- loaded backends
- (rudel-backend-factory::rudel-load-backends): if the loading
- fails, install the error message as a symbol property of the
- backend name symbol
- (rudel-backend-dump): format backends differently depending on
- whether they have been loaded successfully or not
- (rudel-backend--format-backend-normal): new function; format a
- loaded or unloaded backend
- (rudel-backend--format-backend-error): new function; format a
- backend for which loading has failed
-
-2010-06-14 Jan Moringen <address@hidden>
-
- Added some docstrings in infinote/rudel-infinote-group.el
- * infinote/rudel-infinote-group.el
- (rudel-infinote-group::connection): added documentation string
- (rudel-infinote-group::rudel-register-state): added documentation
- string
- (rudel-infinote-group::rudel-send): added documentation string
-
- Improved session startup in infinote/rudel-infinote{,client}.el
- * infinote/rudel-infinote.el
- (rudel-infinote-backend::rudel-connect): use `rudel-wait' to
- ensure the connection is ready for use; handle missing :host
- property
- (rudel-infinote-backend::rudel-make-node): do not set the :group
- slot when creating nodes
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::initialize-instance): cosmetic
- changes
- (rudel-infinote-client-connection::rudel-make-and-add-group):
- added a comment
- (rudel-infinote-client-connection::rudel-make-and-add-node): added
- a comment
- (rudel-infinote-client-connection::rudel-receive): added comments
- (rudel-infinote-client-connection::rudel-wait): new method; block
- until the connection is ready for use; this is determined by
- monitoring the state of the directory group
-
-2010-06-13 Jan Moringen <address@hidden>
-
- Improved docstring of rudel-xmpp-backend::rudel-make-connection
- * xmpp/rudel-xmpp.el (rudel-xmpp-backend::rudel-make-connection):
- improved documentation string
-
- Removed temporary slots id and status from rudel-infinote-user
- * infinote/rudel-infinote-user.el (rudel-infinote-user::id):
- removed; was temporary
- (rudel-infinote-user::status): removed; was temporary
-
- Added new class rudel-hook-state-machine to rudel-state-machine.el
- * rudel-state-machine.el (header): fixed keyword; added version
- 0.2 to history section
- (require rudel-util): new require; used by the hook state machine
- (rudel-state-machine::state): added writer method
- `rudel-set-state'
- (rudel-state-machine::initialize-instance): use `rudel-set-state'
- (rudel-state-machine::rudel-switch): use `rudel-set-state'
- (rudel-hook-state-machine): new class; a state machine that runs
- hooks when it accepts input or when it switches states
-
-2010-06-12 Jan Moringen <address@hidden>
-
- Added docs, comments to infinote/rudel-infinote-group-document.el
- * infinote/rudel-infinote-group-document.el
- (rudel-infinote-group-document-state-idle::rudel-infinote/sync-begin):
- added documentation string; added some comments
-
(rudel-infinote-group-document-state-idle::rudel-infinote/session-close):
- added documentation string; added some comments
-
(rudel-infinote-group-document-state-synchronizing::rudel-infinote/sync-user):
- cleanup; updated some comments
-
(rudel-infinote-group-document-state-synchronizing::rudel-infinote/sync-segment):
- added documentation string; added some comments
-
(rudel-infinote-group-document-state-synchronizing::rudel-infinote/sync-end):
- added some comments
-
(rudel-infinote-group-document-state-synchronizing::rudel-infinote/sync-cancel):
- added some comments
- (rudel-infinote-group-document-state-joining::rudel-infinote/user-join):
- improved handling of self user; added documentation string
-
- Specialize rudel-display-string on rudel-infinote-document-user
- * infinote/rudel-infinote-display.el
- (rudel-infinote-document-user::rudel-display-string): specialize
- for `rudel-infinote-document-user' instead of
- `rudel-infinote-user'
-
- Only set :session-user if unset in rudel-infinote-document
- * infinote/rudel-infinote-document.el
- (rudel-infinote-document::rudel-add-user): only set the value of
- the :session-user slot if it unset
-
- Handle document users in infinote/rudel-infinote-group-document.el
- * infinote/rudel-infinote-group-document.el
- (rudel-infinote-group-document-state-idle::rudel-infinote/user-join):
- display a warning if the user is already subscribed; do not use
- the document slot explicitly
- (rudel-infinote-group-document-state-idle::rudel-infinote/user-rejoin):
- use writer methods to update user's slots; do not use the document
- slot explicitly
-
(rudel-infinote-group-document-state-idle::rudel-infinote/user-status-change):
- use writer methods to update user's slots; do not use the document
- slot explicitly
-
(rudel-infinote-group-document-state-idle::rudel-infinote/user-color-change):
- use writer methods to update user's slots; do not use the document
- slot explicitly
- (rudel-infinote-group-document-state-idle::rudel-infinote/request):
- do not use the document slot explicitly
-
(rudel-infinote-group-document-state-synchronizing::rudel-infinote/sync-user):
- construct an instance of `rudel-infinote-document-user', not
- `rudel-infinote-user'
- (rudel-infinote-group-document-state-joining::rudel-enter): the
- session user does not have a status, send "active" instead; no dot
- explicitly use the :document slot
- (rudel-infinote-group-document-state-joining::rudel-infinote/user-join):
- add a document user object to the document; set the self user of
- the document
-
(rudel-infinote-group-document-state-joining::rudel-infinote/user-rejoin):
- use writer methods to update user's slots; do not use the document
- slot explicitly
- (rudel-infinote-group-document): added superclasses
- `rudel-impersonator' and `rudel-delegator'
-
-2010-06-11 Jan Moringen <address@hidden>
-
- Added handling of self user to infinote/rudel-infinote-document.el
- * infinote/rudel-infinote-document.el
- (rudel-infinote-document::self): new slot; the self user of the
- document
- (rudel-infinote-document::rudel-add-user): new method; add a user
- to the document, also adding it to the session if necessary
- (rudel-infinote-document::rudel-set-self): set the self user of
- the document also setting the self user of the session if possible
-
- Split accessor of rudel-user::color into reader and writer
- * rudel.el (rudel-user::color): split accessor into reader and
- writer
-
- Added reader rudel-set-id to rudel-infinote-document-user::id
- * infinote/rudel-infinote-user.el
- (rudel-infinote-document-user::id): added reader `rudel-set-id'
-
- Added class rudel-infinote-document-user to infinote backend
- * infinote/rudel-infinote-user.el (require rudel-util): new
- require; for `rudel-impersonator' and `rudel-delegator'
- (rudel-infinote-document-user): new class; specialized infinote
- user class for documents; in infinote, user properties can vary on
- a per-session basis
-
- Added args to infinote-client-connection::rudel-make-and-add-group
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::initialize-instance): cosmetic
- changes
- (rudel-infinote-client-connection::rudel-make-and-add-group):
- accept additional arguments name, method and node
-
- Removed unused require in infinote/rudel-infinote-user.el
- * infinote/rudel-infinote-user.el (require rudel-icons): remove;
- unused
-
-2010-06-07 Jan Moringen <address@hidden>
-
- Moved display functions of infinote backend into separate file
- * infinote/Project.ede (target infinote): added
- infinote/rudel-infinote-display.el
- * infinote/rudel-infinote-user.el
- (rudel-infinote-user::rudel-display-string): moved to file
- infinote/rudel-infinote-display.el
- * infinote/rudel-infinote-display.el: new file; display functions
- for infinote objects
-
-2010-06-06 Jan Moringen <address@hidden>
-
- Fixed incorrect parenthesis in infinote/rudel-infinote-user.el
- * infinote/rudel-infinote-user.el
- (rudel-infinote-user::rudel-display-string): fixed incorrect
- parenthesis
-
- Added rudel-make-{node, group} to rudel-infinote-backend
- * infinote/rudel-infinote.el
- (rudel-infinote-backend::rudel-make-node): new method; create node
- object according to specified type and properties
- (rudel-infinote-backend::rudel-make-group): new method; create
- group object according to specified type and properties
-
- Changed initarg of rudel-infinote-user::id to :id
- * infinote/rudel-infinote-user.el (rudel-infinote-user::id):
- changed initarg to :id
- (rudel-infinote-user::rudel-display-string): minor cosmetic
- changes
-
- Added some docs in infinote/rudel-infinote-text-document.el
- * infinote/rudel-infinote-text-document.el (header): added
- commentary section
- (rudel-infinote-text-document): added documentation string
-
- Use correct users in requests of infinote-group-text-document
- * infinote/rudel-infinote-group-text-document.el
-
(rudel-infinote-group-text-document-state-idle::rudel-infinote/request/insert):
- accept user argument; use passed in user object instead of dummy
- user object
-
(rudel-infinote-group-text-document-state-idle::rudel-infinote/request/insert-caret):
- use passed in user object instead of dummy user object
-
(rudel-infinote-group-text-document-state-idle::rudel-infinote/request/delete):
- use passed in user object instead of dummy user object
-
(rudel-infinote-group-text-document-state-idle::rudel-infinote/request/delete-caret):
- use passed in user object instead of dummy user object
-
(rudel-infinote-group-text-document-state-idle::rudel-infinote/request/delete-caret):
- accept user argument; use passed in user object instead of dummy
- user object
-
(rudel-infinote-group-text-document-state-idle::rudel-infinote/request/no-op):
- accept user argument
-
(rudel-infinote-group-text-document-state-idle::rudel-infinote/request/move):
- use passed in user object instead of dummy user object
-
(rudel-infinote-group-text-document-state-synchronizing::rudel-infinote/sync-segment):
- find user object in document and use it instead of the dummy user
- object
- (rudel-infinote-group-text-document::parent): restrict type to
- rudel-infinote-node-directory-child
- (rudel-infinote-group-text-document::initialize-instance): reset
- state list before adding rudel-infinote-group-text-document-states
-
- Use correct users in infinote document group states idle, joining
- * infinote/rudel-infinote-group-document.el
- (rudel-infinote-group-document-state-idle::rudel-infinote/request):
- retrieve user object from document object and use it in request
- processing
- (rudel-infinote-group-document-state-joining::rudel-enter): do not
- use a dummy user object, but the self object from the session
-
-2010-06-03 Jan Moringen <address@hidden>
-
- Added rudel-color.el and use it in infinote backend
- * rudel-color.el: new file; utility functions for color
- manipulation; currently RGB <-> HSV conversion
- * Project.ede (target rudel): added rudel-color.el
- * infinote/rudel-infinote-group-document.el (require rudel-color):
- new require; used to convert hue values to RGB colors
- (rudel-infinote-group-document-state-idle::rudel-infinote/user-join):
- (rudel-infinote-group-document-state-idle::rudel-infinote/user-rejoin):
-
(rudel-infinote-group-document-state-idle::rudel-infinote/user-color-change):
-
(rudel-infinote-group-document-state-synchronizing::rudel-infinote/sync-user):
- (rudel-infinote-group-document-state-joining::rudel-infinote/user-join):
-
(rudel-infinote-group-document-state-joining::rudel-infinote/user-rejoin):
- use `rudel-hsv->string' and `rudel-color-background-value'
-
- New method rudel-document::rudel-clear-users for infinote backend
- * rudel.el (rudel-document::rudel-clear-users): new method; clear
- list of subscribed users
- * infinote/rudel-infinote-group-document.el
- (rudel-infinote-group-document-state-synchronizing::rudel-enter):
- use `rudel-clear-users'; users are added by the synchronization
- process
-
- Fixed state superclasses in rudel-infinote-group-text-document.el
- * infinote/rudel-infinote-group-text-document.el
- (rudel-infinote-group-text-document-state-idle): fixed superclass
- rudel-infinote-document-state-idle ->
- rudel-infinote-group-document-state-idle
- (rudel-infinote-group-text-document-state-synchronizing): fixed
- superclass rudel-infinote-document-state-synchronizing ->
- rudel-infinote-group-document-state-synchronizing
-
- Better updates of user status in rudel-infinote-group-document.el
- * infinote/rudel-infinote-group-document.el
- (rudel-infinote-group-document-state-idle::rudel-infinote/user-join):
- update the status slot of the user
- (rudel-infinote-group-document-state-joining::rudel-infinote/user-join):
- warn if the self user cannot be found
-
- Updated user state handlers in rudel-infinote-group-document.el
- * infinote/rudel-infinote-group-document.el
-
(rudel-infinote-group-document-state-idle::rudel-infinote/user-status-change):
- try to find the user in the list of subscribed user of the
- document and update its status
-
(rudel-infinote-group-document-state-idle::rudel-infinote/user-color-change):
- new method; handle 'user-color-change' message
-
- Added comments, docs to infinote/rudel-infinote-group-document.el
- * infinote/rudel-infinote-group-document.el
-
(rudel-infinote-group-document-state-synchronizing::rudel-infinote/sync-end):
- added comments and display a warning when the number of received
- synchronization items differs from the expected number
- (rudel-infinote-group-document-state-joining): added documentation
- string
-
- Added a 'closed' state to infinote group classes
- * infinote/rudel-infinote-group-text-document.el
- (rudel-infinote-group-text-document-states): added closed state
- * infinote/rudel-infinote-group-document.el
- (rudel-infinote-group-document-states): added closed state
- * infinote/rudel-infinote-group-directory.el
- (rudel-infinote-directory-state-new): added a comment
- (rudel-infinote-group-directory-states): added closed state
-
- Added new class rudel-infinote-group-state-closed
- * infinote/rudel-infinote-group.el
- (rudel-infinote-group-state-closed): new closed; groups enter this
- state when a close message is received
- (this rudel-infinote-group-state-closed::rudel-accept): new
- method; ignore all messages
-
-2010-06-02 Jan Moringen <address@hidden>
-
- Handle user joining in infinote/rudel-infinote-group-document.el
- * infinote/rudel-infinote-group-document.el (require warnings):
- new require; required for displaying warnings
- (rudel-infinote-group-document-state-idle::rudel-infinote/user-join):
- create a user object and add it to the document
- (rudel-infinote-group-document-state-idle::rudel-infinote/user-rejoin):
- find the user in the document and update its slots; warn if the
- user cannot be found
-
(rudel-infinote-group-document-state-synchronizing::rudel-infinote/sync-user):
- create a user object and add it to the document
- (rudel-infinote-group-document-state-joining::rudel-infinote/user-join):
- find the self user and update its slots; then add it to the
- document
-
(rudel-infinote-group-document-state-joining::rudel-infinote/user-rejoin):
- find the self user and update its slots; make the self user and
- the document user agree; warn if one is not found or they do not
- agree
-
- Renamed group states in infinote/rudel-infinote-group-document.el
- * infinote/rudel-infinote-group-document.el
- (rudel-infinote-group-document-state-idle): renamed
- rudel-infinote-document-state-idle ->
- rudel-infinote-group-document-state-idle
- (rudel-infinote-group-document-state-synchronizing):
- rudel-infinote-document-state-synchronizing ->
- rudel-infinote-group-document-state-synchronizing
- (rudel-infinote-group-document-states): changed names of group
- states
-
- Store and use id in infinote/rudel-infinote-group-directory.el
- * infinote/rudel-infinote-group-directory.el
- (rudel-infinote-directory-state-subscribing::id): new slot; stores
- the id ob the target node of the subscription
- (rudel-infinote-directory-state-subscribing::rudel-enter): store
- id; added documentation string
-
(rudel-infinote-directory-state-subscribing::rudel-infinote/subscribe-session):
- check the received id against the stored id; send message through
- group
-
- Subscription ack in infinote/rudel-infinote-group-directory.el
- * infinote/rudel-infinote-group-directory.el
- (rudel-infinote-directory-state-subscribing;:rudel-leave): new
- method; send subscription acknowledgment
-
- Reversed order of superclasses of rudel-infinote-document
- * infinote/rudel-infinote-document.el (rudel-infinote-document):
- reversed order of superclasses; added documentation string
-
-2010-06-01 Jan Moringen <address@hidden>
-
- Fixed parens in rudel-infinote-embed-in-request
- * infinote/rudel-infinote-util.el
- (rudel-infinote-parse-sequence-number): validate input
- (rudel-infinote-embed-in-request): fixed parens
-
- Exploit auto sequence numbers in rudel-infinote-group-directory
- * infinote/rudel-infinote-group-directory.el
- (rudel-infinote-directory-state-exploring::rudel-enter): do not
- add sequence number to message since the super class of the group
- does that automatically
- (rudel-infinote-group-directory): changed superclass to
- `rudel-infinote-sequence-number-group' to get automatic sequence
- number injection
-
- New rudel-make-and-add-group in rudel-infinote-group-directory.el
- * infinote/rudel-infinote-group-directory.el
- (rudel-infinote-group-directory::rudel-add-node): changed call
- `rudel-add-new-node' -> `rudel-make-and-add-node'
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::rudel-make-and-add-group): new
- method; create a new group object and add it to the list of groups
- (rudel-infinote-client-connection::rudel-make-and-add-node):
- renamed `rudel-add-new-node' -> `rudel-make-and-add-node'
-
- Use self user in rudel-local-operation in rudel-infinote-client.el
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::rudel-local-operation): obtain
- self user from session object
-
- Added methods rudel-self and rudel-find-user in rudel.el
- * rudel.el (rudel-client-session::rudel-self): new reader method;
- returns the self user
- (rudel-document::rudel-find-user): new method; finds ands returns
- a specified user
-
- Removed obsolete method from infinote/rudel-infinote-client.el
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::rudel-register-state): removed
- obsolete method
-
- Added slot plugins to class rudel-infinote-client-connection
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::plugins): new slot; list of
- plugins advertised by the remote side
- (rudel-infinote-client-connection::initialize-instance): minor
- cleanup
-
-2010-05-30 Jan Moringen <address@hidden>
-
- Store remote side id in infinote/rudel-infinote-group.el
- * infinote/rudel-infinote-group.el
- (rudel-infinote-sequence-number-group::remote-id): new slot;
- stores id assigned by remote side
-
- Store sequence number and plugins in rudel-infinote/welcome
- * infinote/rudel-infinote-group-directory.el
- (rudel-infinote-directory-state-new::sequence-number): new slot;
- stores the sequence number transmitted by the remote side
- (rudel-infinote-directory-state-new::plugins): new slot; stores
- the plugin list transmitted by the remote side
- (rudel-infinote-directory-state-new::rudel-infinote/welcome):
- store sequence number and plugin list received form remote side
-
- Warning severity in infinote/rudel-infinote-group-directory.el
- * infinote/rudel-infinote-group-directory.el
- (rudel-infinote-directory-state-exploring::rudel-infinote/explore-end):
- specify warning severity in call to `display-warning'
-
- Improved commentary section in infinote/rudel-infinote-group.el
- * infinote/rudel-infinote-group.el (header): extended commentary
- section; added 0.2 to version section
-
- Added documentation strings in infinote/rudel-infinote-group.el
- * infinote/rudel-infinote-group.el (rudel-infinote-group): made
- abstract; added documentation string
- (rudel-infinote-embed-in-group): added documentation string
-
- More data in warnings in rudel-infinote-group-state::rudel-accept
- * infinote/rudel-infinote-group.el
- (rudel-infinote-group-state::rudel-accept): include more data in
- warning messages for failed requests
-
- Added class rudel-infinote-sequence-number-group
- * infinote/rudel-infinote-group.el
- (rudel-infinote-sequence-number-group): new class; added
- automatically incrementing sequence numbers to messages sent
- through the group
-
- Improved docstring of method rudel-obby/obby_document/sync_init
- * obby/rudel-obby-client.el
-
(rudel-obby-client-state-subscribing::rudel-obby/obby_document/sync_init):
- improved documentation string
-
- New function rudel-obtain-password, used in XMPP SASL mechanism
- * rudel-interactive.el (rudel-obtain-password): new function; try
- to obtain from different sources, falling back to prompting the
- user
- * xmpp/rudel-xmpp-sasl.el
- (rudel-xmpp-state-sasl-mechanism-step::rudel-accept): bind
- `sasl-read-passphrase' to `rudel-obtain-sasl-password' to make it
- overridable
- (rudel-xmpp-state-sasl-mechanism-step::rudel-obtain-sasl-password):
- call `rudel-obtain-password'
- * obby/rudel-obby.el (rudel-obby-backend::rudel-ask-connect-info):
- use `rudel-obtain-password' instead of `read-string'
-
- Contents of header commentary section in xmpp/rudel-xmpp-sasl.el
- * xmpp/rudel-xmpp-sasl.el (header): added contents of commentary
- section
-
- Match response types with case in xmpp/rudel-xmpp-sasl.el
- * xmpp/rudel-xmpp-sasl.el
- (rudel-xmpp-state-sasl-mechanism-step::rudel-accept): use `case'
- instead of `cond' when matching response types
-
- Improved customization group definition in rudel.el
- * rudel.el (defgroup rudel): added group communication and :link s
- to the library, the Sourceforge project page and the Emacs Wiki
- page
-
-2010-05-28 Jan Moringen <address@hidden>
-
- Make xml->string not pretty-print unless requested
- * rudel-xml.el (xml->string): use new utility function
- rudel-xml-print-node when not pretty-printing
- (rudel-xml-print-node): new utility function; print XML node
- (rudel-xml-print-attr): new utility function; print XML attribute
-
- Added documentation and comments in rudel-xml.el
- * rudel-xml.el (do-tag-children): added documentation string
- (rudel-xml-toplevel-tag-positions): Improved documentation string;
- added some comments
-
- Allow access to text child nodes in with-tag-attrs
- * rudel-xml.el (with-tag-attrs): allow second position in binding
- specification to text; look up child text node
-
-2010-05-27 Jan Moringen <address@hidden>
-
- Added some branch tags in TODO
- * TODO (Future): added branch tags; multiple listeners task is
- started
- (Milestone 0.4): added branch tags
-
- Associated rudel-unsubscribed-documents to rudel-client-session
- * rudel.el (rudel-client-session::rudel-unsubscribed-documents):
- changed specializer rudel-session -> rudel-client-session
- (rudel-document::rudel-chunks): write functions with #' syntax
- (rudel-mode-changed-buffers): reflowed documentation string
-
-2010-05-25 Jan Moringen <address@hidden>
-
- Warn if document does not exist when handling obby_document msg
- * obby/rudel-obby-server.el (require warnings): new require; used
- to display warning messages
- (rudel-obby-server-state-idle::rudel-obby/obby_document): check
- whether the document does exist; display a warning if it does not
-
- Pass new session to session initiation in rudel-host-session
- * rudel.el (rudel-host-session): call
- rudel-session-initiation-advertise when the new session object has
- been constructed
-
- Cosmetic changes and doc improvements in obby/rudel-obby-client.el
- * obby/rudel-obby-client.el
- (rudel-obby-client-state-session-synching::rudel-obby/net6_client_join):
- improved comment; cosmetic changes
- (rudel-obby/obby_document/sync_chunk): improved documentation
- string; changed let* -> let; use zerop instead of = ... 0; added a
- comment
- (rudel-obby-connection::rudel-publish): added a documentation
- string
-
-2010-05-24 Jan Moringen <address@hidden>
-
- Removed &rest from slots arg of init-inst of rudel-obby-connection
- * obby/rudel-obby-client.el
- (rudel-obby-connection::initialize-instance): removed &rest from
- slots argument
-
- Minor fixes and improvements in obby/rudel-obby-client.el
- * obby/rudel-obby-client.el
- (rudel-obby-client-state-idle::rudel-obby/net6_client_join): use
- test = when locating user; improved comment
- (rudel-obby-client-state-idle::rudel-obby/obby_document_create):
- added TODO item regarding not displaying messages from the backend
- (rudel-obby-client-state-idle::rudel-obby/obby_document/rename):
- improved documentation string
- (rudel-obby-client-state-session-synching): reflowed documentation
- strings of slots
-
(rudel-obby-client-state-subscribing::rudel-obby/obby_document/sync_init):
- fixed name of document slot
-
- Added version to header in rudel.el and update rule to Project.ede
- * rudel.el (header): added Version field
- * Project.ede (target rudel): added rudel.el to :versionsource
-
-2010-05-23 Jan Moringen <address@hidden>
-
- Small improvements and updates in doc/card.tex
- * doc/card.tex (macros): removed metabox macro; renamed \ccc ->
- \prefix
- (Backends): improved wording; added infinote and IRC backends
- (Examples): reorganized; added prompts for transport and protocol
- backends
- (Debugging): new section; explain dumping backends and loading the
- debug library
-
- Added clickable status icon task to milestone Future in TODO
- * TODO (Future): added status icon should be clickable task;
- document history is in irc branch
-
- Improved arg handling rudel-find-{user, document} in rudel.el
- * rudel.el (rudel-session::rudel-find-user):
- (rudel-session::rudel-find-document): handle optional arguments
- more efficiently
- (rudel-user): added a comment
-
- Wait for idle state in rudel-infinote-backend::rudel-connect
- * infinote/rudel-infinote.el
- (rudel-infinote-backend::rudel-connect): wait for the infinote
- connection object to enter its idle state
-
- Improved documentation string of class rudel-infinote-node
- * infinote/rudel-infinote-node.el (rudel-infinote-node): improved
- documentation string
-
- Disabled query on exit for TLS and socket transport processes
- * tls/rudel-tls.el (rudel-tls-make-process): set query on exit
- flag of the process to nil
- * socket/rudel-socket.el
- (rudel-tcp-backend::rudel-make-connection):
- (rudel-tcp-backend::rudel-wait-for-connections): set :noquery flag
- of the new process
-
- Improved docstring of global-rudel-minor-mode in rudel-mode.el
- * rudel-mode.el (header): updated copyright
- (rudel-header-subscriptions--add-user): renamed lexical-let
- binding for clarity
- (global-rudel-minor-mode): Added key bindings to documentation
- string
-
- Small fixes and improvements in README
- * README (INTRODUCTION): fixed a typo
- (GETTING STARTED): added comment about enabling
- global-rudel-minor-mode in .emacs; added markup to example
-
- Added branches as tags and other updates in TODO
- * TODO (Future): added tasks typing notification, document
- history, session log, activity indicator, tracking of chunk
- modifications, peer view indication; added branch tags
- (Milestone 0.4): added branch tags
-
-2010-05-21 Jan Moringen <address@hidden>
-
- Fixed header sections in rudel-operators.el
- * rudel-operators.el (header): updated copyright; minor
- improvements in commentary section; minor improvements in history
- section
-
- Fixed XMPP TLS state name in xmpp/rudel-xmpp-tls.el
- * xmpp/rudel-xmpp-tls.el (rudel-xmpp-tls-states): fixed class name
- for start-tls state rudel-xmpp-start-tls-start ->
- rudel-xmpp-state-tls-start
-
- Fixed class name in methods in xmpp/rudel-xmpp-tunnel.el
- * xmpp/rudel-xmpp-tunnel.el
- (rudel-xmpp-tunnel-transport::rudel-send):
- (rudel-xmpp-tunnel-transport::rudel-message): fixed class name in
- method definition rudel-xmpp-transport ->
- rudel-xmpp-tunnel-transport
-
-2010-05-16 Jan Moringen <address@hidden>
-
- Updated IRC, TLS and infinote related issues in TODO
- * TODO (Future): added task for IRC backend
- (Milestone 0.3): marked TLS start state problem as fixed; marked
- document tree-related tasks as started
-
- Add new nodes to list in infinote/rudel-infinote-client.el
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::rudel-add-new-node): call
- rudel-add-node to add the new nodes to the node list of the client
- connection
-
- Moved rudel-unique-name from infinote-document to infinote-node
- * infinote/rudel-infinote-node.el
- (rudel-infinote-node::rudel-unique-name): new method; move to
- rudel-infinote-note from rudel-infinote-document
- * infinote/rudel-infinote-document.el
- (rudel-infinote-document::rudel-unique-name): removed; moved to
- rudel-infinote-node
-
- Fixed slot in rudel-infinote-client-connection::rudel-find-node
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::rudel-find-node): fixed name of
- slot documents -> nodes
-
- Renamed r-add-document -> r-add-new-node in -infinote-client.el
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::rudel-add-new-node): renamed
- rudel-add-document -> rudel-add-new-node; added comments
-
- Renamed -document to -node in rudel-infinote-group-directory.el
- * infinote/rudel-infinote-group-directory.el
- (rudel-infinote-directory-state-idle::rudel-infinote/add-node):
- call rudel-add-node instead of rudel-add-document
- (rudel-infinote-directory-state-exploring::rudel-infinote/add-node):
- call rudel-add-node instead of rudel-add-document
- (rudel-infinote-group-directory::rudel-add-node): renamed
- rudel-add-document -> rudel-add-node
- (rudel-infinote-group-directory::rudel-remove-node): renamed
- rudel-remove-document -> rudel-remove-node
-
- Improved creation of root node in rudel-infinote-client-connection
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::initialize-instance): add the
- root directory as a node, not as a document
-
- Docstrings of groups and nodes of rudel-infinote-client-connection
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::groups): added documentation
- string
- (rudel-infinote-client-connection::nodes): added documentation
- string
-
- Extended rudel-remove-group infinote/in rudel-infinote-client.el
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::rudel-remove-group): changed
- argument to allow for group name or group object; added
- documentation string
-
- Methods of rudel-infinote-client to find, add, remove nodes
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::rudel-find-node): new method;
- find node by its id or by other criteria
- (rudel-infinote-client-connection::rudel-add-node): added
- documentation string
- (rudel-infinote-client-connection::rudel-remove-node): new method;
- remove a node
-
- Signal proper errors in infinote/rudel-infinote-client.el
- * infinote/rudel-infinote-client.el (require cl): new require; we
- use cl functions
- (require rudel-infinote-errors): new require; for specialized
- infinote errors
- (rudel-infinote-client-connection::rudel-add-document): when we
- cannot find a parent node, signal rudel-infinote-no-such-node;
- added a comment
-
- Added error conditions for the infinote backend
- * infinote/rudel-infinote-errors.el: new file; contains
- definitions of error conditions for the infinote backend
- * infinote/Project.ede (target infinote): added
- rudel-infinote-errors.el
-
-2010-05-15 Jan Moringen <address@hidden>
-
- Fixed invalid state switch in xmpp/rudel-xmpp.el
- * xmpp/rudel-xmpp.el (rudel-xmpp-backend::rudel-make-connection):
- call `rudel-start' of the TCP transport, not the XMPP transport
- (rudel-xmpp-state-negotiate-stream::rudel-enter): removed
- whitespace in stream template string
-
- Sequence numbers start at 1 in infinote/rudel-infinote-client.el
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::sequence-number): start at 1,
- not 0
-
-2010-05-02 Jan Moringen <address@hidden>
-
- Improved comment in rudel-infinote-group-state::rudel-accept
- * infinote/rudel-infinote-group.el
- (rudel-infinote-group-state::rudel-accept): improved a comment
-
- Removed class rudel-infinote-group-state in rudel-infinote-state.el
- * infinote/rudel-infinote-state.el (header): added file commentary
- (rudel-infinote-group-state): removed class; this is now handled
- in rudel-infinote-group.el
-
- Silence the byte-compiler in obby/rudel-obby-server.el
- * obby/rudel-obby-server.el (require rudel-obby): required to
- silence the byte-compiler
-
- Fixed state list in rudel-infinote-backend::rudel-connect
- * infinote/rudel-infinote.el
- (rudel-infinote-backend::rudel-connect): wait for transport to go
- to idle state, instead of established; expect disconnected error
- state
-
- Fixed parentheses in infinote/rudel-infinote-group.el
- * infinote/rudel-infinote-group.el
- (rudel-infinote-embed-in-group): fixed parentheses
-
- Cleanup in infinote/rudel-infinote-group-text-document.el
- * infinote/rudel-infinote-group-text-document.el
- (rudel-infinote-group-text-document-states): fixed comment
- (rudel-infinote-group-text-document::initialize-instance): leave
- initialization of state list to state-machine class
-
- Use `display-warning' in infinote/rudel-infinote-group-directory.el
- * infinote/rudel-infinote-group-directory.el
- (rudel-infinote-directory-state-exploring::rudel-infinote/explore-end):
- use `display-warning' instead of `warn'
-
-2010-04-17 Jan Moringen <address@hidden>
-
- Require warnings library where display-warning is used
- * rudel-backend.el (header): updated copyright
- (require warnings):
- * obby/rudel-obby-state.el (require warnings):
- * obby/rudel-obby-client.el (require warnings):
- * infinote/rudel-infinote-group.el (require warnings):
- * infinote/rudel-infinote-group-directory.el (require warnings):
- * infinote/rudel-infinote-client.el (require warnings): new
- require; this is needed since display-warning is used
-
-2010-04-10 Jan Moringen <address@hidden>
-
- Warn for dispatch errors in infinote/rudel-infinote-group.el
- * infinote/rudel-infinote-group.el
- (rudel-infinote-group-state::rudel-accept): handle dispatch errors
- by displaying a warning
-
- New state in infinote/rudel-infinote-group-directory.el
- * infinote/rudel-infinote-group-directory.el (require xml):
- (require rudel-xml): new require; used for XML processing
- (rudel-infinote-directory-state-new): new class; initial state of
- the infinote directory group
- (rudel-infinote-directory-state-new::rudel-infinote/welcome): new
- method; handle infinote welcome message
- (rudel-infinote-directory-state-exploring::rudel-enter): use
- sequence number of group object instead of local fake binding
- (rudel-infinote-group-directory-states): added new state to state
- list; added documentation string
- (rudel-infinote-group-directory): added documentation string
- (rudel-infinote-group-directory::sequence-number): new slot;
- sequence number used when sending requests
-
- Delegation for group states in infinote/rudel-infinote-group.el
- * infinote/rudel-infinote-group.el (require rudel-util): new
- require; for rudel-impersonator and rudel-delegator
- (rudel-infinote-group-state): added superclasses
- `rudel-impersonator' and `rudel-delegator'
- (rudel-infinote-group-state::impersonation-target-slot): new slot
- specification; specify group as impersonation target
- (rudel-infinote-group-state::delegation-target-slot): new slot
- specification; specify group as delegation target
-
- Check color on entering joining state in obby/rudel-obby-client.el
- * obby/rudel-obby-client.el
- (rudel-obby-client-state-joining::rudel-enter): check color before
- trying to login; switch to failure state if the color is invalid
-
- Seq. number parsing/generation in infinote/rudel-infinote-util.el
- * infinote/rudel-infinote-util.el
- (rudel-infinote-parse-sequence-number): new function; parse
- infinote sequence number
- (rudel-infinote-generate-sequence-number): new function; generate
- infinote sequence number
-
- Quote in rudel-operation->xml in infinote/rudel-infinote-util.el
- * infinote/rudel-infinote-util.el
- (adopted-compound::rudel-operation->xml): fixed missing quote of
- split element in XML generation
-
- Added idea enable modes by default? in TODO
- * TODO (Milestone 0.3): new task; enable modes by default?
-
- Minor whitespace cleanup in rudel.el
- * rudel.el (rudel-allocate-buffer-function): whitespace cleanup
-
- Added docstrings to rudel-obby-server in obby/rudel-obby-server.el
- * obby/rudel-obby-server.el (rudel-obby-server::clients):
- (rudel-obby-server::next-client-id):
- (rudel-obby-server::next-user-id):
- (rudel-obby-server::contexts): added documentation strings
-
-2010-04-03 Jan Moringen <address@hidden>
-
- Updated fragment assembling and looping functions
- * rudel-util.el (rudel-assemble-line-fragments): removed; replaced
- by generic `rudel-assemble-fragments'
- (rudel-assemble-fragments): simplified; call function with two
- arguments instead of a list
- (rudel-assemble-lines): take two arguments, data and storage
- (rudel-loop-lines): removed; replaced by generic
- `rudel-loop-fragments'
- * rudel-xml.el (rudel-xml-assemble-tags): take two arguments, data
- and storage; extended documentation string
- * xmpp/rudel-xmpp-util.el (rudel-xmpp-assemble-stream): take two
- arguments, data and storage; handle cases in which the initial
- chuck contains other elements than stream and features; added some
- comments
-
-2010-03-31 Jan Moringen <address@hidden>
-
- Added idea consolidate operations before sending to TODO
- * TODO (Future): new task; delay and consolidate operations before
- sending in order to conserve bandwidth
-
-2010-03-26 Jan Moringen <address@hidden>
-
- Added idle state and shelving of data to XMPP transport
- * xmpp/rudel-xmpp.el (rudel-xmpp-state-established::rudel-enter):
- removed; handled by method specialized on base class
- (rudel-xmpp-state-established::rudel-accept): new method; store
- received data for later processing in successor states
- (rudel-xmpp-state-idle): new class; idle state; the transport
- enters this state after establishing the connection
- (rudel-xmpp-state-idle::rudel-enter): new method; process stored
- data
- (rudel-xmpp-state-idle::rudel-accept): new method; pass received
- data to filter function
- (rudel-xmpp-states): added idle state
- (rudel-xmpp-transport::shelve-buffer): new slot; used to store
- data that cannot be processing in current state for later
- processing
- (rudel-xmpp-transport::rudel-start): new method; put the transport
- into idle state; this can trigger processing of shelved data
-
- Added &rest args to rudel-xmpp-state::rudel-enter
- * xmpp/rudel-xmpp-state.el (rudel-xmpp-state::rudel-enter): added
- &rest args
-
-2010-03-24 Jan Moringen <address@hidden>
-
- Fixed typo in a docstring in xmpp/rudel-xmpp.el
- * xmpp/rudel-xmpp.el (rudel-xmpp-backend::rudel-ask-connect-info):
- fixed typo in documentation string
-
- Fixed spelling error in docstring in rudel-util.el
- * rudel-util.el (rudel-dispatch): fixed spelling error in
- documentation string
-
- Escaped parens in a docstring in rudel-util.el
- * rudel-util.el (header): updated copyright
- (rudel-assemble-lines): Escaped top-level-looking parenthesis in
- documentation string
-
- Removed &rest from initialize-instance in wave/rudel-wave.el
- * wave/rudel-wave.el (header): updated copyright
- (rudel-wave-backend::initialize-instance): remove &rest from
- arguments
-
- Added rudel-adebug-discover to rudel-debug.el
- * rudel-debug.el (rudel-adebug-discover): new function; analyze
- discoverable session in a data debug buffer
-
-2010-03-22 Jan Moringen <address@hidden>
-
- Added idea multiple listeners to Future milestone in TODO
- * TODO (Future): new task; allow multiple transport listeners to
- be associated with a server session
-
-2010-03-20 Jan Moringen <address@hidden>
-
- Escaped parentheses in docstring in rudel-session-initiation.el
- * rudel-session-initiation.el (rudel-configured-sessions): escaped
- parentheses in documentation string
-
- Fixed error in rudel-session-initiation-adjust-info
- * rudel-session-initiation.el
- (rudel-session-initiation-adjust-info): push elements onto
- intermediate result in reverse order, then reverse the whole list
-
-2010-03-19 Jan Moringen <address@hidden>
-
- Added ideas (passwords, buffer names) to Future milestone in TODO
- * TODO (Future): new task; obtain password from auth-source.el or
- secrets.el; new task; when subscribing to a document set the
- buffer filename
-
- Added directory infinote/doc for infinote backend documentation
- * infinote/doc: new directory; for documentation concerning the
- infinote backend
-
-2010-03-18 Jan Moringen <address@hidden>
-
- Added node base class rudel-infinote-node to infinote backend
- * infinote/Project.ede (target infinote): added
- rudel-infinote-node.el; renamed
- rudel-infinote-directory-document.el to
- rudel-infinote-node-directory.el
- * infinote/rudel-infinote-node.el: new file; contains
- `rudel-infinote-node' class which is the base class for all node
- classes
- * infinote/rudel-infinote-node-directory.el: renamed
- `rudel-infinote-directory-document.el' ->
- `rudel-infinote-node-directory.el'
- (header): bumped version to 0.2
- (rudel-infinote-directory-node): renamed
- `rudel-infinote-directory-document' ->
- `rudel-infinote-node'-directory; added documentation string
- (rudel-infinote-node-directory::child-cache): added documentation
- string
- (provide rudel-infinote-node-directory): changed
- rudel-infinote-directory-document -> rudel-infinote-node-directory
- * infinote/rudel-infinote-document.el (rudel-infinote-document):
- now derived from `rudel-document' and `rudel-infinote-node'
- (rudel-infinote-document::id):
- (rudel-infinote-document::parent):
- (rudel-infinote-document::group): moved into `rudel-infinote-node'
- (rudel-infinote-document::rudel-unique-name): added documentation
- string
- * infinote/rudel-infinote-client.el
- (require rudel-infinote-node-directory): changed
- rudel-infinote-directory-document -> rudel-infinote-node-directory
- (rudel-infinote-client-connection::initialize-instance):
- (rudel-infinote-client-connection::rudel-add-document):
- instantiate `rudel-infinote-node-directory' instead of
- `rudel-infinote-directory-document'
-
- Removed invalid files from infinote/Project.ede
- * infinote/Project.ede (target infinote): removed invalid files
- rudel-infinote-server.el and rudel-infinote-document-group.el
-
-2010-03-14 Jan Moringen <address@hidden>
-
- Project files for telepathy backend
- * Project.ede (target autoloads): added telepathy
- * telepathy/Project.ede: new file; project file for telepathy
- sub-directory
- * telepathy/rudel-telepathy.el (header): updated copyright;
- updated version
- (rudel-telepathy-backend::initialize-instance): removed &rest from
- slots argument
- * rudel-compile.el (top level autoloads):
- (top level): added telepathy sub-directory
-
- Removed &rest from initialize-instance in obby/rudel-obby.el
- * obby/rudel-obby.el (rudel-obby-backend::initialize-instance):
- removed &rest from slots arguments
-
-2010-03-12 Jan Moringen <address@hidden>
-
- Ensure self user is present in after sync in obby backend
- * obby/rudel-obby-client.el (rudel-obby/obby_sync_final): switch
- to we-finalized when the self user is missing
-
- Updated copyright, year and version in reference card
- * doc/card.tex (header): updated version and copyright
- (constants): updated version and copyright
- * doc/card.pdf: regenerated
-
-2010-03-10 Jan Moringen <address@hidden>
-
- Improved some error messages in infinote backend
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::rudel-receive):
- (rudel-infinote-client-connection::rudel-add-document): improved
- error messages
-
- Added tasks concerning data queuing and new hooks to TODO
- * TODO (Future): new task, provide additional hooks; new task,
- always queue outgoing data first; new task, display queued data
-
- Added draft of package diagram describing Rudel's architecture
- * doc/architecture.svg: new draft of a package diagram;
- architectural overview
- * doc/architecture.png: generated
-
- Improved some error messages in obby backend
- * obby/rudel-obby-state.el (header): updated copyright
- (rudel-obby-document-handler::rudel-obby/obby_document): improved
- error message
- * obby/rudel-obby-client.el (header): updated copyright
- (rudel-obby-client-state-idle::rudel-obby/net6_client_part):
- (rudel-obby-client-state-idle::rudel-obby/obby_document_remove):
- (rudel-obby-client-state-idle::rudel-obby/obby_document/record):
- improved error messages
-
- Handle all object types when writing to debug streams
- * rudel-debug.el (rudel-debug-write-to-stream): handle objects
- types other than string and object by calling `prin1-to-string'
-
-2010-03-01 Jan Moringen <address@hidden>
-
- Require rudel-infinote-state, not rudel-infinote-states
- * infinote/rudel-infinote-group.el (require rudel-infinote-state):
- fixed require rudel-infinote-states -> rudel-infinote-state
-
- Infinote mock user has to be of class rudel-infinote-user
- * infinote/rudel-infinote-client.el (require rudel-infinote-user):
- required for mock user creation
- (rudel-infinote-client-connection::initialize-instance): mock user
- has to be an object of class rudel-infinote-user
-
- Extended capability list of infinote backend
- * infinote/rudel-infinote.el
- (rudel-infinote-backend::capabilities): added group-undo
- capability
- (rudel-infinote-backend::rudel-connect): better object name for
- the created connection object
-
- Added "Commentary" comment to infinote/rudel-infinote-group.el
- * infinote/rudel-infinote-group.el (header): added a "Commentary"
- comment
-
- Added task to investigate XEP 0047 for xmpp tunnel to TODO
- * TODO (Future): added task to investigate XEP 0047 for xmpp
- tunnel
-
- Added standard draft for XEP-0047: In-Band Bytestreams to xmpp/doc
- * xmpp/doc/xep-0047.html: new file; standard draft for XEP-0047:
- In-Band Bytestreams
-
- Fixed docstring typo in infinote/rudel-infinote.el
- * infinote/rudel-infinote.el (rudel-connect): fixed typo in
- docstring obby -> infinote
-
- Provide customization to append chat messages at top or bottom
- * rudel-chat.el (header): updated copyright
- (rudel-chat-handler-function): split "log into buffer" behavior
- into "append at bottom" and "appending at top"
- (rudel-chat-handle-buffer-top): renamed `rudel-chat-handle-buffer
- -> `rudel-chat-handle-buffer-top
- (rudel-chat-handle-buffer-bottom): new function; append chat
- messages at bottom of target buffer
-
-2010-02-06 Jan Moringen <address@hidden>
-
- Fixed use of rudel-state-wait in infinote/rudel-infinote-client.el
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::rudel-publish): added a comment
- (rudel-infinote-client-connection::rudel-subscribe-to): fixed use
- of `rudel-state-wait'; added more comments
-
- Fixed some comments in infinote/rudel-infinote-client.el
- * infinote/rudel-infinote-client.el
- (rudel-infinote-client-connection::rudel-publish):
- (rudel-infinote-client-connection::rudel-subscribe-to): fixed
- comments
-
-2010-02-04 Jan Moringen <address@hidden>
-
- Extended rudel-infinote-client-connection::rudel-receive
- * infinote/rudel-infinote-client.el (header): fixed X-RCS field
- (rudel-receive): enabled handler code; use `display-warning'
- instead of `warn'
-
- Added docstrings in infinote/rudel-infinote-group-directory.el
- * infinote/rudel-infinote-group-directory.el
- (rudel-infinote-directory-state-idle): added documentation string
- (rudel-infinote-directory-state-idle::rudel-infinote/sync-in):
- return nil to avoid state switch
- (rudel-infinote-directory-state-exploring): added documentation
- string
- (rudel-infinote-directory-state-subscribing): added documentation
- string
-
-2010-02-02 Jan Moringen <address@hidden>
-
- Initial import of infinote backend
- * Project.ede (target autoloads): added infinote directory
- * rudel-compile.el (top level autoload):
- (top level): added infinote directory
- * infinote/Project.ede: mew file; project file for
- * infinote/rudel-infinote.el: new file; infinote backend main file
- * infinote/rudel-infinote-util.el: new file; infinote backend
- miscellaneous functions
- * infinote/rudel-infinote-user.el: new file; infinote user class
- * infinote/rudel-infinote-text-document.el: new file; infinote
- text document class
- * infinote/rudel-infinote-state.el: new file; infinote state base
- classes
- * infinote/rudel-infinote-group.el: new file; infinote
- communication group base class
- * infinote/rudel-infinote-group-text-document.el: new file; text
- document communication group class
- * infinote/rudel-infinote-group-document.el: new file; document
- communication group class
- * infinote/rudel-infinote-group-directory.el: new file; directory
- communication group class
- * infinote/rudel-infinote-document.el: new file; infinote document
- class
- * infinote/rudel-infinote-directory-document.el: new file;
- infinote directory document class
- * infinote/rudel-infinote-client.el: new file; infinote client
- functionality
-
- Added operation classes for point, range, cursor and selection
- * rudel-operations.el (header): updated copyright; fixed and
- extended commentary section; bumped version to 0.2
- (rudel-point-operation): new abstract class; base class for
- point-type operations
- (rudel-range-operation): new abstract class; base class for
- range-type operations
- (rudel-insert-op): now subclass of rudel-point-operation
- (rudel-delete-op): now subclass of rudel-range-operation
- (rudel-delete-op::slot-missing): moved to `rudel-range-op'
- (rudel-move-cursor-op): new class; objects represent cursor
- movements
- (rudel-move-selection-op): new class; objects represent movements
- of the selection
-
-2010-01-31 Jan Moringen <address@hidden>
-
- Initial import of Adopted algorithm
- * Project.ede (autoloads): added adopted directory
- * rudel-compile.el (header): updated copyright
- (top level autoload):
- (top level): added adopted directory
- * adopted/Project.ede: new file; project file adopted subdirectory
- * adopted/adopted.el: new file; Adopted algorithm entry point
- * adopted/adopted-operation.el: new file; Adopted operation base class
- * adopted/adopted-nop.el: new file; Adopted no operation class
- * adopted/adopted-insert.el: new file; Adopted insert operation
- * adopted/adopted-delete.el: new file; Adopted delete operation
- * adopted/adopted-compound.el: new file Adapted compound operation
-
-2010-01-27 Jan Moringen <address@hidden>
-
- Integrated new debugging framework
- * rudel-debug.el (header): updated copyright; fixed keywords;
- extended commentary section; added 0.2 to history section
- (require rudel-transport-util):
- (require rudel-socket): now required, since we install methods
- (rudel-debug-tag-faces): changed from constant to variable
- (rudel-state-change :before):
- (rudel-debug-stream-name):
- (rudel-debug-stream-insert): removed; replaced by
- `rudel-debug-write-to-stream' and `rudel-debug-write'
- (rudel-debug-target): new generic function; determine debug stream
- for an object
- (rudel-debug-write-to-stream): new function; write information to
- debug stream
- (rudel-debug-write): new function; write information to debug
- stream for a specific object
- (rudel-debug-old-state):
- (rudel-state-machine::rudel-switch :before):
- (rudel-state-machine::rudel-switch :after): new variable/methods;
- state machine debugging
- (rudel-assembling-transport-filter::rudel-set-assembly-function
:before):
- (rudel-assembling-transport-filter::rudel-set-filter):
- (rudel-assembling-transport-filter::rudel-send :before): new
- methods; debugging for `rudel-assembling-transport-filter'
- (rudel-parsing-transport-filter::rudel-set-parse-function :before):
- (rudel-parsing-transport-filter::rudel-set-generate-function :before):
- (rudel-parsing-transport-filter::rudel-set-filter):
- (rudel-parsing-transport-filter::rudel-send :before): new methods;
- debugging for `rudel-parsing-transport-filter'
- (rudel-socket-transport::rudel-set-filter):
- (rudel-socket-transport::rudel-send :before): new methods;
- debugging for `rudel-socket-transport'
- * xmpp/rudel-xmpp-debug.el (header): fixed keywords; added 0.2 to
- history section
- (require rudel-xmpp-state): now required, since we install methods
- (rudel-xmpp-debug-old-state):
- (rudel-xmpp-transport::rudel-send :before):
- (rudel-xmpp-transport::rudel-accept :before):
- (rudel-xmpp-transport::rudel-switch :before):
- (rudel-xmpp-transport::rudel-switch :after): removed; handled by
- generic stuff in rudel-debug.el now
- (rudel-xmpp-state::rudel-debug-target): new method; debug target
- for XMPP states
- (rudel-xmpp-state-sasl-mechanism-step::rudel-send):
- (rudel-xmpp-state-sasl-mechanism-step::rudel-send :after):
- (rudel-xmpp-state-sasl-mechanism-step::rudel-accept :before):
- rewritten for new debugging framework
- * obby/rudel-obby-debug.el (header): updated copyright; added 0.2
- to history section
- (require eieio):
- (require rudel-obby-util): removed; no longer needed
- (require rudel-obby-server): now required, since we install
- methods on server classes
- (rudel-obby-debug-old-state):
- (rudel-obby-connection::rudel-send :before):
- (rudel-obby-connection::rudel-accept :before):
- (rudel-obby-connection::rudel-switch :before):
- (rudel-obby-connection::rudel-switch :after): removed; handled by
- generic stuff in rudel-debug.el now
- (rudel-obby-connection::rudel-debug-target): new method; debug
- target for `rudel-obby-connection'
- (rudel-obby-client::rudel-debug-target): new method; debug target
- for `rudel-obby-client'
- * TODO (Milestone 0.3): integrate new debugging framework is DONE
-
- Updated TODO
- * TODO (Future):
- (Milestone 0.4): minor adjustments
- (Milestone 0.3): new task, integrate new debugging framework; new
- task, add XMPP transport backend; minor adjustments
-
- Better error and response data handling in xmpp/rudel-xmpp-sasl.el
- * xmpp/rudel-xmpp-sasl.el
- (rudel-xmpp-state-sasl-mechanism-start::rudel-enter): send
- "initial response" in auth element, if the mechanism wants that
- (rudel-xmpp-state-sasl-mechanism-step::rudel-accept): handle
- invalid-authzid; use `xml-node-name' instead of `xml-tag-name'
-
- Fix use of XML library in rudel-xmpp-state::rudel-accept
- * xmpp/rudel-xmpp-state.el (rudel-xmpp-state::rudel-accept): use
- `xml-node-name' instead of `xml-tag-name'; tag name is
- 'stream:error, not "stream:error"
-
-2010-01-26 Jan Moringen <address@hidden>
-
- Switch stream to string mode in rudel-xmpp-state-we-finalize
- * xmpp/rudel-xmpp.el
- (rudel-xmpp-state-negotiate-stream::rudel-accept): fixed a comment
- (rudel-xmpp-state-we-finalize::rudel-enter): set generate function
- to identity before trying to send a string
-
- Repair filter in rudel-start-tls-transport::initialize-instance
- * tls/rudel-tls.el
- (rudel-start-tls-transport::initialize-instance): reinstall
- `rudel-tls-wait-init' which get overwritten by the superclass
-
- Prevent byte-compilation of xmpp/rudel-xmpp-debug.el
- * xmpp/rudel-xmpp-debug.el (local variables): prevent byte-compilation
-
-2010-01-24 Jan Moringen <address@hidden>
-
- Fixed require for rudel-socket in xmpp/rudel-xmpp.el
- * xmpp/rudel-xmpp.el (require rudel-socket): changed rudel-tcp ->
- rudel-socket
-
- Removed require base64 from xmpp/rudel-xmpp-tunnel.el
- * xmpp/rudel-xmpp-tunnel.el (require base64): removed; fantasy
- library does not exist
-
-2010-01-23 Jan Moringen <address@hidden>
-
- Add SASL XMPP states when rudel-xmpp gets loaded
- * xmpp/rudel-xmpp-sasl.el (state registration): add SASL states to
- state list after loading of rudel-xmpp
-
- Minor improvement in xmpp/rudel-xmpp.el
- * xmpp/rudel-xmpp.el (rudel-xmpp-backend::rudel-make-connection):
- better object name for transport object
- (rudel-xmpp-state-established): added documentation string
- (rudel-xmpp-state-established::rudel-accept): use filter slot of
- the transport object
-
- Removed require base64 from xmpp/rudel-xmpp-debug.el
- * xmpp/rudel-xmpp-debug.el (require base64): removed; fantasy
- library does not exist
-
- Updated header of xmpp/rudel-xmpp-debug.el
- * xmpp/rudel-xmpp-debug.el (header): added xmpp keyword; fixed
- commentary
-
- Added connect capability to XMPP backend
- * xmpp/rudel-xmpp.el (rudel-xmpp-backend::capabilities): added
- capability connect
-
-2010-01-22 Jan Moringen <address@hidden>
-
- Analyze XMPP failures in rudel-xmpp-state-sasl-mechanism-step
- * xmpp/rudel-xmpp-sasl.el (require base64):removed; nonsense
- (rudel-xmpp-state-sasl-mechanism-step::rudel-accept): analyze
- failure responses more thoroughly
-
- Improved rudel-xmpp-backend::rudel-make-connection
- * xmpp/rudel-xmpp.el (rudel-xmpp-backend::rudel-make-connection):
- call info-callback when info elements are missing; improved
- documentation string; added comments
-
- XMPP backend improvements
- * xmpp/rudel-xmpp.el (header): added commentary section
- (require rudel-state-machine): required for the state classes
- (require rudel-tcp): required since the TCP transport underlies
- the XMPP transport
- (rudel-xmpp-transport-version): bumped to 0.2
- (rudel-xmpp-backend): added documentation string
- (rudel-xmpp-backend::initialize-instance): removed &rest from
- slots; added documentation string
- (rudel-xmpp-backend::rudel-make-connection): improved
- documentation string; cosmetic changes
- (rudel-xmpp-state-new::rudel-enter): pass jid and server name to
- successor state; added documentation string
- (rudel-xmpp-state-negotiate-stream::success-state): changed type
- to include list
- (rudel-xmpp-state-negotiate-stream::rudel-enter): some cleanup
- (rudel-xmpp-state-negotiate-stream::rudel-leave): added
- documentation string; improved comment
- (rudel-xmpp-state-negotiate-stream::rudel-accept): handle symbol
- and list successor state specification
- (rudel-xmpp-state-authenticated::rudel-enter): pass server- and
- username to successor state; hack
- (rudel-xmpp-state-authentication-failed::rudel-enter): new method;
- switch to we-finalize
- (rudel-xmpp-states): added documentation string
- (rudel-xmpp-transport::initialize-instance): some cleanup
- (rudel-xmpp-transport::rudel-register-state): call next method in
- a safe manner
- (rudel-xmpp-transport::rudel-close): switch to closing state;
- added documentation string
- (rudel-xmpp-transport::rudel-disconnect): removed; obsolete
-
- Removed function rudel-xmpp-state::rudel-set-assembly-function
- * xmpp/rudel-xmpp-state.el
- (rudel-xmpp-state::rudel-set-assembly-function): obsolete; removed
-
- Improved XMPP SASL implementation
- * xmpp/rudel-xmpp-sasl.el
- (rudel-xmpp-state-sasl-start::rudel-enter): accept additional
- arguments and pass them to sasl-try-one successor
- (rudel-xmpp-state-sasl-try-one::rudel-enter): accept additional
- arguments name and server and pass them to sasl-try-one when
- self-transitioning
- (rudel-xmpp-state-sasl-mechanism-start::rudel-enter): accept
- additional arguments name and server and use them when calling
- `sasl-make-client'; also pass them to sasl-mechanism-step
- (rudel-xmpp-state-sasl-mechanism-step::name): new slot; stores
- username
- (rudel-xmpp-state-sasl-mechanism-step::server): new slot; stores
- server name
- (rudel-xmpp-state-sasl-mechanism-step::schema): added
- documentation string
- (rudel-xmpp-state-sasl-mechanism-step::client): added
- documentation string
- (rudel-xmpp-state-sasl-mechanism-step::step): added documentation
- string
- (rudel-xmpp-state-sasl-mechanism-step::rest): added documentation
- string
- (this rudel-xmpp-state-sasl-mechanism-step::rudel-enter): accept
- arguments name and server and store them
- (rudel-xmpp-state-sasl-mechanism-step::rudel-accept): pass name
- and server to sasl-try-one and to sasl-mechanism-step when
- self-transitioning
-
-2010-01-21 Jan Moringen <address@hidden>
-
- Support specifying a host and JID in the XMPP transport
- * xmpp/rudel-xmpp.el (rudel-xmpp-backend::rudel-ask-connect-info):
- ask for JID and return it
- (rudel-xmpp-backend::rudel-make-connection): extract jid property;
- pass host, jid and start state to transport constructor
- (rudel-xmpp-state-new::rudel-enter): accept arguments to and jid;
- pass to negotiate-stream state
- (rudel-xmpp-state-negotiate-stream::rudel-enter): accept to and
- jid arguments; use to and jid when constructing opening stream
- tag; added documentation string; cleanup
- (rudel-xmpp-state-negotiate-stream::rudel-accept): added comment
- (rudel-xmpp-state-authenticated::rudel-enter): added comment
- (rudel-xmpp-transport::initialize-instance): removed &rest from
- slots argument
-
- Fixed license of xmpp/rudel-xmpp.el
- * xmpp/rudel-xmpp.el (header): fixed license
-
- Added notes file to xmpp documentation
- * xmpp/doc/notes.org: new file; notes concerning the XMPP backend
-
- Minor cleanup in xmpp/rudel-xmpp-sasl.el
- * xmpp/rudel-xmpp-sasl.el
- (rudel-xmpp-state-sasl-mechanism-step::rudel-accept): minor
- cleanup
-
- Added RFC 3921 to xmpp documentation
- * xmpp/doc/rfc3921: new file; XMPP messaging and presence RFC
-
- Fixed error in rudel-xmpp-state-sasl-start::rudel-enter
- * xmpp/rudel-xmpp-sasl.el
- (rudel-xmpp-state-sasl-start::rudel-enter): use `let*' instead of
- `let'
- (rudel-xmpp-sasl-states): added documentation string
-
- New class rudel-xmpp-state-tls-start
- * xmpp/rudel-xmpp-tls.el (header): added commentary
- (require rudel-tls): removed; require it when needed
- (rudel-xmpp-state-tls-start): new class; state used to enable TLS
- encryption for a connection
- (rudel-xmpp-state-tls-start::rudel-enter): new method; enable TLS
- encryption for the associated connection and switch to
- authenticated state
- (add-to-list rudel-xmpp-states): fixed typo
-
-2010-01-20 Jan Moringen <address@hidden>
-
- Handle invalid color on the obby protocol level
- * obby/rudel-obby.el (rudel-connect): check for
- `rudel-obby-invalid-color' and reset the color value in that case
- * obby/rudel-obby-server.el (header): updated copyright
- (rudel-check-username-and-color): send value of
- `rudel-obby-error-color' when the color is invalid
- * obby/rudel-obby-errors.el (header): updated copyright
- (rudel-obby-invalid-color): new condition symbol; used to
- indicated an invalid color
- (rudel-obby-error-color-invalid): new constant; proposed obby
- protocol error code for invalid color
- * obby/rudel-obby-client.el (rudel-obby/net6_login_failed): check
- for reason rudel-obby-error-color-invalid and return appropriate
- error
-
- Fixed error symbol rudel-obby-username-invalid in obby client
- * obby/rudel-obby.el (header): updated copyright
- (rudel-obby-backend::rudel-connect): fixed error symbol
- rudel-obby-username-invalid -> rudel-obby-invalid-username
- * obby/rudel-obby-client.el (header): updated copyright
- (rudel-obby-client-state-joining::rudel-obby/net6_login_failed):
- fixed error symbol rudel-obby-username-invalid ->
- rudel-obby-invalid-username
-
-2010-01-17 Jan Moringen <address@hidden>
-
- Fixed a typo in documentation string of rudel-make-connection
- * rudel-transport.el
- (rudel-transport-backend::rudel-make-connection): fixed a typo in
- the documentation string
-
- Fixed problems in rudel-after-major-mode-change
- * rudel.el (rudel-after-major-mode-change): when repairing
- document <-> buffer relations, ignore deleted buffers; reset
- `rudel-mode-changed-buffers' after all buffers have been processed
-
- Fixed typo in rudel-collecting-transport-filter::delay
- * rudel-transport-util.el
- (rudel-collecting-transport-filter::delay): fixed typo in
- :initform
-
-2010-01-16 Jan Moringen <address@hidden>
-
- New collecting transport filter
- * rudel-transport-util.el (header): mention collecting transport
- filter in commentary and history section
- (rudel-collecting-transport-filter): new class; queue data until a
- certain amount is available for transmission
-
-2010-01-14 Jan Moringen <address@hidden>
-
- Fixed call to object-run-hook... in rudel-detach-from-buffer
- * rudel.el (rudel-document::rudel-detach-from-buffer): pass the
- saved buffer to `object-run-hook-with-args' properly
-
- Let transport ask for connect info in rudel-join-session
- * rudel.el (rudel-join-session): use `rudel-ask-connect-info' as
- info-callback when calling `rudel-make-connection'
-
- Improved robustness of rudel-session-initiation-discover
- * rudel-session-initiation.el (rudel-session-initiation-discover):
- try to find specified backend in primary and fallback backend
- lists
-
- Let transport ask for connect info in rudel-ask-protocol-backend
- * rudel-session-initiation.el
- (rudel-ask-protocol-backend::rudel-discover): call
- `rudel-ask-connect-info' of the transport backend in addition to
- the protocol backend
-
- Added rudel-ask-connect-info for transport backends
- * rudel-transport.el (rudel-ask-connect-info): new generic
- function; obtain required information for making a connection
- * socket/rudel-socket.el
- (rudel-tcp-backend::rudel-ask-connect-info):
- * tls/rudel-tls.el (rudel-start-tls-backend::rudel-ask-connect-info):
- * xmpp/rudel-xmpp.el (rudel-xmpp-backend::rudel-ask-connect-info):
- new method; ask for hostname and port
-
-2010-01-10 Jan Moringen <address@hidden>
-
- Added writer for rudel-set-dispatcher in socket/rudel-socket.el
- * socket/rudel-socket.el (header): updated copyright
- (rudel-socket-listener::dispatch): added writer
- `rudel-set-dispatcher'
- (rudel-socket-listener::rudel-set-dispatcher): removed; replaced
- by automatic writer
-
- Fix rudel-progress-reporting-transport-filter
- * rudel-transport-util.el (header): updated copyright; updated
- commentary section
- (rudel-progress-reporting-transport-filter::initialize-instance):
- install a handler in the underlying transport
-
- Added autoload cookie to rudel-xmpp-backend
- * xmpp/rudel-xmpp.el (rudel-xmpp-backend): added autoload cookie
-
- Minor fixes in rudel-session-initiation.el
- * rudel-session-initiation.el (header): updated copyright
- (rudel-session-initiation-discover): fixed documentation string
- (rudel-ask-protocol-backend::initialize-instance):
- (rudel-configured-sessions-backend::initialize-instance): removed
- &rest from slots argument
-
- Added sanity check to rudel-{join, host}-session
- * rudel-errors.el (rudel-incomplete-info): new error symbol
- * rudel.el (rudel-join-session): added sanity checks for info
- argument
- (rudel-host-session): added sanity checks for info argument
-
-2010-01-06 Jan Moringen <address@hidden>
-
- Added state list to xmpp/rudel-xmpp-tls.el
- * xmpp/rudel-xmpp-tls.el (rudel-xmpp-tls-states): new variable;
- list of TLS-related states
- (rudel-xmpp-states): use `add-to-list' to add the states
-
- Renamed rudel-connect -> rudel-make-connection in xmpp/rudel-xmpp.el
- * xmpp/rudel-xmpp.el (rudel-xmpp-backend::rudel-make-connection):
- renamed `rudel-connect' -> `rudel-make-connection'
- (rudel-xmpp-state-new): added documentation string
- (rudel-xmpp-state-negotiate-stream): added documentation string
- (rudel-xmpp-state-negotiate-stream::success-state): added
- documentation string
- (rudel-xmpp-state-negotiate-stream::rudel-enter): fixed stream
-
- Cosmetic changes in xmpp/rudel-xmpp-sasl.el
- * xmpp/rudel-xmpp-sasl.el
- (rudel-xmpp-state-sasl-start::rudel-enter): added documentation
- string; cosmetic changes
- (rudel-xmpp-state-sasl-try-one::rudel-enter): added documentation
- string
- (rudel-xmpp-state-sasl-mechanism-step::rudel-enter): added
- documentation string
- (rudel-xmpp-state-sasl-mechanism-step::rudel-accept): added
- documentation string; added some comments
- (rudel-xmpp-sasl-states): new variable; list of states used by the
- SASL implementation; states are added to `rudel-xmpp-states'
-
- Added line breaks in long comment in rudel-xmpp-util.el
- * xmpp/rudel-xmpp-util.el (rudel-xmpp-assemble-stream): added line
- breaks in long comment
-
-2010-01-05 Jan Moringen <address@hidden>
-
- Added task for comment functionality
- * TODO (Future): added task for comment functionality
-
- Removed last traces of progress reporters
- * rudel-state-machine.el (header): updated copyright
- (require rudel-compat): removed; no longer required
- (rudel-state-wait): mention callback instead of progress reporter
- in comment
-
- Do not detach documents that have no buffer
- * rudel.el (header): updated copyright
- (rudel-session::rudel-remove-document): use
- `rudel-maybe-detach-from-buffer' instead of an explicit check
- (rudel-client-session::rudel-end): use
- `rudel-maybe-detach-from-buffer' instead of blindly detaching all
- documents
- (rudel-document::rudel-detach-from-buffer): do not check whether
- buffer is non-nil; it is now an error to call this method when
- buffer is nil
- (rudel-document::rudel-maybe-detach-from-buffer): new method; call
- `rudel-detach-from-buffer' is the document is attached
-
-2010-01-04 Jan Moringen <address@hidden>
-
- Added XMPP backend
- * Project.ede (target autoloads): added directory xmpp
- * xmpp/Project.ede: new file; project file for xmpp subproject
- * xmpp/rudel-xmpp-debug.el: new file; XMPP debugging functions
- * xmpp/rudel-xmpp-sasl.el: new file; SALS authentication
- mechanisms
- * xmpp/rudel-xmpp-state.el: new file; base class for XMPP state
- machine states
- * xmpp/rudel-xmpp-tls.el: new file; TLS encryption for XMPP
- transport
- * xmpp/rudel-xmpp-tunnel.el: new file; XMPP tunnel transport
- backend
- * xmpp/rudel-xmpp-util.el: new file; XMPP utility functions
- * xmpp/rudel-xmpp.el: new file; XMPP transport backend
- * xmpp/doc/rfc3920: new file; XMPP RFC
- * xmpp/doc/xmpp-states.cogre: new file; state transition diagram
- * xmpp/doc/xmpp-states.png: new file; state transition diagram;
- image
-
- Added `rudel-xml-assemble-tags'
- * rudel-xml.el (rudel-xml-assemble-tags): assemble complete XML
- tags from strings
-
- Added pretty-print argument to `xml->string'
- * rudel-xml.el (xml->string): added optional argument pretty-print
-
-2010-01-01 Jan Moringen <address@hidden>
-
- Include XMPP backend in compilation and autoload generation
- * rudel-compile.el (top level autoload):
- (top level): added xmpp directory
-
- Some cleanup in rudel-xml.el
- * rudel-xml.el (header): started commentary section
- (do-tag-children): use `nth' instead of `car' and `cadr'
- (rudel-xml-toplevel-tag-positions):
- (rudel-xml-toplevel-tags): added documentation string
-
- Added rudel-xml.el
- * Project.ede (target compile): added rudel-xml.el
- * rudel-xml.el: new file; XML functions for Rudel
-
-2009-12-31 Jan Moringen <address@hidden>
-
- Load file name determination
- * rudel-compile.el (top level autoload):
- (top level): changed load file name determination
-
- * TODO (Milestone 0.3): connection reset problem fixed
-
- Autoload load path manipulation
- * rudel-compile.el (top level): added autoloaded form that adds
- Rudel directories to `load-path'
-
-2009-12-30 Jan Moringen <address@hidden>
-
- Removed unused functions
- * rudel-util.el (rudel-process-object):
- (rudel-set-process-object): removed; this is handled by
- `process-get' and `process-put'
-
- Use `process-put' and `process-get' instead
- `rudel-set-process-object' and `rudel-process-object'
- * tls/rudel-tls.el (rudel-tls-make-process):
- (rudel-tls-start-tls):
- (rudel-tls-wait-init):
- (rudel-tls-wait-handshake):
- (rudel-tls-established): use `process-put' and `process-get'
- instead `rudel-set-process-object' and `rudel-process-object'
-
- Better handling of session termination and connection aborts
- * obby/rudel-obby.el (rudel-obby-backend::rudel-connect): new
- error states we-finalized and disconnect; signal proper errors for
- error states they-finalized and we-finalized
- * obby/rudel-obby-server.el
- (rudel-obby-client::initialize-instance): install a sentinel that
- closes the connection
- * obby/rudel-obby-client.el
- (rudel-obby-client-state-we-finalized): used to indicate that we
- closed the connection
- (rudel-obby-client-state-they-finalized::reason): new slot; stores
- for finalization
- (rudel-obby-client-state-they-finalized::rudel-enter): new method;
- store reason and cleanup connection
- (rudel-obby-client-state-disconnected): new class; used to
- indicated that the connection is closed
- (rudel-obby-client-connection-states): added `we-finalized' and
- `disconnected'
- (rudel-obby-connection::initialize-instance): install a sentinel
- that closes the connection
- (rudel-obby-connection::rudel-disconnect): switch to `we-finalize'
- and wait for `disconnected'; added documentation string
- (rudel-obby-connection::rudel-close): added documentation string
- (rudel-obby-connection::rudel-subscribe-to): handle new error
- states
-
- * rudel-debug.el (require rudel-state-machine): required since
- state machine methods are instrumented
-
- * socket/rudel-socket.el
- (rudel-socket-transport::initialize-instance): in sentinel,
- include finished in the list of "close indicators"
-
-2009-12-29 Jan Moringen <address@hidden>
-
- * rudel-transport-util.el
- (rudel-assembling-transport-filter::initialize-instance):
- (rudel-parsing-transport-filter::initialize-instance):
- (rudel-buffering-transport-filter::initialize-instance): forward
- sentinel events to user-provided handler
-
- * TODO (Future): added backend factory hooks
- (Milestone 0.3): added read-only buffer problem and srecode field
- edit problem
-
- * rudel-compile.el (local variables): prevent byte-compilation
-
- * socket/rudel-socket.el (rudel-socket-transport::filter): new
- slot; store original filter function
- (rudel-socket-transport::sentinel): new slot; store original
- sentinel function
- (rudel-socket-transport::initialize-instance): new method; install
- dispatch functions for filter and sentinel
- (rudel-socket-transport::rudel-filter):
- (rudel-socket-transport::rudel-set-filter):
- (rudel-socket-transport::rudel-sentinel):
- (rudel-socket-transport::rudel-set-sentinel): removed; we can use
- automatic readers and writers now
-
- * tls/rudel-tls.el (rudel-start-tls-backend): added capability
- encrypt
-
- * tls/rudel-tls.el (rudel-tls-make-process): stop the process
- object after creation
-
-2009-12-28 Jan Moringen <address@hidden>
-
- * rudel-icons.el (rudel-icons-directory): compute icons directory
- name based on load file name of rudel-icons.el
-
-2009-12-26 Jan Moringen <address@hidden>
-
- * TODO (Milestone 0.4): new task integrate unit tests
-
-2009-12-24 Jan Moringen <address@hidden>
-
- * rudel.el (rudel-document::rudel-insert):
- (rudel-document::rudel-delete): use `with-current-buffer' and
- `save-excursion' instead of `save-excursion' and `set-buffer'
- * rudel-backend.el (rudel-backend-dump): removed pointless use of
- `save-excursion'
-
-2009-12-21 Jan Moringen <address@hidden>
-
- * rudel-speedbar.el (header): fixed history
- (rudel-speedbar-key-map): updated documentation string
- (rudel-speedbar-menu): renamed Compile -> Subscribed; dummy entry
- for now
- (rudel-find-nearest-file-line):
- (rudel-session::eieio-speedbar-derive-line-path):
- (rudel-session::eieio-speedbar-description):
- (rudel-project::eieio-speedbar-object-buttonname):
- (rudel-project::eieio-speedbar-object-children):
- (rudel-file-find):
- (rudel-create-tag-buttons):
- (rudel-tag-expand):
- (rudel-tag-find): removed; obsolete
-
- * rudel-session-initiation.el
- (rudel-ask-protocol-backend::rudel-discover): pass partial info
- list to `rudel-ask-connect-info' instead of append the lists
- manually
-
- * obby/rudel-obby.el (rudel-obby-user::rudel-display-string):
- removed; now in obby/rudel-obby-display.el
-
- * rudel-mode.el (require rudel-display): required for
- `rudel-display-string'
- * rudel-display.el (require rudel): required to ensure
- `rudel-user' and `rudel-document' are defined
- * obby/rudel-obby.el (require rudel-obby-display): make sure
- `rudel-display-string' is defined for obby classes
- * obby/rudel-obby-display.el (require rudel-obby): required to
- ensure `rudel-obby-user' is defined
-
-2009-12-20 Jan Moringen <address@hidden>
-
- * obby/rudel-obby-state.el (header): fixed history
- (rudel-obby-document-handler::rudel-obby/obby_document): go
- through the connection object for now
- * obby/rudel-obby-client.el
- (rudel-obby-client-state-idle::document-container-slot):
- (rudel-obby-client-state-subscribing::document-container-slot):
- (rudel-obby-client-state-document-synching::document-container-slot):
- set initial value to 'session
-
- * rudel.el (rudel-user::rudel-display-string): moved to
- rudel-display.el
- * rudel-display.el: new file; functions that create text
- representations of Rudel objects
- * obby/rudel-obby-display.el: new file; functions that create text
- representations of obby objects
- * obby/Project.ede (target obby): added rudel-display.el
- * Project.ede (target rudel): added rudel-display.el
-
- * TODO (Future): removed duplicate task SubEthaEdit client
- functionality
- (Milestone 0.3): use transports is done
-
- * obby/rudel-obby-server.el
- (rudel-obby-server-state-idle::rudel-obby/obby_document):
- (rudel-obby-server-state-idle::rudel-obby/obby_document/record):
- use `rudel-dispatch' instead of `rudel-obby-dispatch'
-
- * INSTALL (INSTALLING): link to REQUIREMENTS
- (COMPILING): link to rudel-compile.el
-
- * doc/notes-for-developers.org: new file; some notes which may be
- relevant for Rudel developers
-
- * rudel-debug.el (local variables): prevent byte-compilation
- * obby/rudel-obby-debug.el (header): downcased keywords
- (local variables): prevent byte-compilation
-
- * rudel.el (rudel-user::rudel-change-notify): new method; run
- change hook
- * obby/rudel-obby-server.el
- (rudel-obby-server-state-idle::rudel-obby/obby_user_colour): call
- `rudel-change-notify' instead of `object-run-hook-with-args' after
- modifying the user object
- * obby/rudel-obby-client.el
- (rudel-obby-client-state-idle::rudel-rudel-obby/net6_client_join):
- call `rudel-change-notify' after modifying the user object
-
-2009-12-19 Jan Moringen <address@hidden>
-
- * obby/rudel-obby.el (rudel-ask-connect-info): when extracting
- properties from info list, there is no need to ensure info being
- non-nil
-
- * rudel.el (rudel-host-session): pass partial info list to
- `rudel-ask-host-info'; cleanup; extended documentation string
- * obby/rudel-obby.el (rudel-obby-backend::rudel-ask-host-info):
- try extract address and port from info list before prompting
-
- * TODO (Future): added display of error message property,
- synchronization of objects; moved BEEP transport to 0.4
- (Milestone 0.3): added TLS does not start in stopped state,
- zeroconf delay, connection reset problem, use transports
-
- * rudel-util.el (rudel-impersonator::slot-missing): fixed slot
- name `impersonating-target-slot' -> `impersonation-target-slot'
-
- * rudel-compile.el (require bytecomp): make sure we can redefine
- `byte-compile-cl-warn'
- (top level): redefine `byte-compile-cl-warn' to silence
- byte-compiler
-
- * rudel-backend.el (rudel-backend-choose): mention which kind of
- backend we are asking for
-
-2009-12-17 Jan Moringen <address@hidden>
-
- * rudel.el (rudel-host-session): use cdrs of backend cells
-
- * rudel.el (rudel-host-session): added mandatory argument info;
- interactive specification uses `rudel-backend-choose' and
- `rudel-ask-host-info' to assemble a suitable value for info
-
-2009-12-06 Jan Moringen <address@hidden>
-
- * obby/rudel-obby-errors.el (require rudel-errors): not really
- required, but logical
- (rudel-obby-invalid-username):
- (rudel-obby-username-in-use):
- (rudel-obby-color-in-use): new error symbols
-
- * obby/rudel-obby-util.el (header): updated keywords; extended
- commentary section; cosmetic changes to history section
- (rudel-obby-dispatch): removed; obsolete
- * obby/rudel-obby-state.el (header): updated keywords
- (rudel-obby-document-handler): make abstract
- (rudel-obby-document-handler::document-container-slot): new slot;
- name of slot which holds the object with the document list
- (rudel-obby-document-handler::rudel-obby/obby_document): find
- document list in the named slot
-
- * socket/rudel-socket.el (require cl): added `eval-when-compile'
- to the require
-
- * rudel-util.el (rudel-delegator): removed base class
- `rudel-state'; should not have been there
-
- * rudel-util.el (header): expanded commentary section; bumped
- version to 0.2
- (rudel-impersonator): new class; allows derived classes to
- transparently access slots of a target object
- (rudel-delegator): new class; allows derived classes to let
- methods of a target object appear as their own
-
-2009-12-05 Jan Moringen <address@hidden>
-
- * obby/rudel-obby-server.el
- (rudel-obby-client::initialize-instance): removed &rest from slots
- argument; updated documentation string
- (rudel-obby-client::rudel-broadcast): renamed argument arguments
- -> args; updated documentation string
- (rudel-obby-server::initialize-instance): removed &rest from slots
- argument; added documentation string
-
-2009-12-04 Jan Moringen <address@hidden>
-
- * socket/rudel-socket.el (rudel-socket-listener): new class;
- implements `rudel-listener'
- (rudel-tcp-backend::rudel-wait-for-connections): removed argument
- dispatch-callback; added argument info-callback; ensure info
- contains required properties; create a listener socket and pass it
- to a new listener object
- * rudel.el (rudel-host-session): added argument info; generate
- empty info list in interactive form; create a listener object and
- pass it to the protocol backend
- * rudel-transport.el (rudel-listener): new abstract class; generic
- functionality for accepting incoming connections
- (rudel-transport-backend::rudel-wait-for-connections): removed
- argument dispatch-callback; added argument info-callback; updated
- documentation string
- * rudel-protocol.el
- (rudel-protocol-backend::rudel-ask-connect-info): added optional
- argument info; updated documentation string
- (rudel-protocol-backend::rudel-ask-host-info): added optional
- argument info; updated documentation string
- * obby/rudel-obby.el (rudel-obby-backend::rudel-ask-host-info):
- added optional argument info
- (rudel-obby-backend::rudel-host): renamed argument
- `transport-backend' -> `listener'; do not install dispatch
- function; the server does this itself
- * obby/rudel-obby-server.el (require rudel-obby): required to
- silence the byte-compiler
- (rudel-obby-server::listener): new slot; stores listener object of
- the server
- (rudel-obby-server::initialize-instance): install
- `rudel-add-client' into the listener as dispatch function
-
-2009-12-03 Jan Moringen <address@hidden>
-
- * rudel.el (rudel-host-session): determine a transport and a
- protocol backend; ask the protocol backend to create the session
- * rudel-util.el (rudel-socket-owner):
- (rudel-filter-dispatch):
- (rudel-sentinel-dispatch): removed; made obsolete by transports
- * rudel-protocol.el (rudel-protocol-backend::rudel-host): added
- backend argument, which is the transport backend; updated
- documentation string
- * rudel-debug.el (rudel-state-machine::rudel-state-change):
- attached method to `rudel-state-machine' instead of
- `rudel-socket-owner'
- (rudel-debug-stream-name): determine the name from a transport
- object instead of a socket
- * obby/rudel-obby.el (require rudel-transport): required for
- transports
- (rudel-obby-backend::rudel-connect): use a transport object
- instead of a socket
- (rudel-obby-backend::rudel-ask-host-info): added :address property
- (rudel-obby-backend::rudel-host): added transport-backend
- argument; do not create a socket but call the
- `rudel-wait-for-connections' method of the transport backend
- (rudel-obby-send): removed; made obsolete by transports
- (rudel-obby-generate-message): new function; used in parsing
- transport filters to serialize obby messages
- * obby/rudel-obby-util.el (require rudel-transport-util): new; for
- `rudel-transport-make-filter-stack'
- (rudel-obby-socket-owner): removed; made obsolete by transports
- * obby/rudel-obby-server.el (header): bumped version to 0.3
- (rudel-obby-client): removed base class `rudel-obby-socket-owner'
- (rudel-obby-client::transport): new slot; stores transport object
- (rudel-obby-client::initialize-instance): build a transport filter
- stack and install `rudel-accept' as filter
- (rudel-obby-client::rudel-message): removed; `rudel-accept' is
- called by the transport
- (rudel-obby-client::rudel-send): new; send data through transport
- (rudel-obby-server): removed base class `rudel-socket-owner'
- (rudel-obby-server::rudel-add-client): expect a transport object
- instead of a socket
- * obby/rudel-obby-debug.el (header): cosmetic changes
- (require rudel-obby-client): new; required since all methods are
- now attached to the `rudel-obby-connection' class
- (rudel-obby-connection::rudel-send): now attached to the
- `rudel-obby-connection' class
- (rudel-obby-connection::rudel-accept): renamed `rudel-receive' ->
- `rudel-accept'; now attached to the `rudel-obby-connection' class
- (rudel-obby-socket-owner::rudel-message): removed; obsolete
- (rudel-obby-connection::rudel-switch): now attached to the
- `rudel-obby-connection' class
- * obby/rudel-obby-client.el (header): bumped version to 0.3
-
(rudel-obby-client-state-encryption-start::rudel-obby/net6_encryption_begin):
- call transport method to enable encryption
- (rudel-obby-connection): removed base class `rudel-socket-owner'
- (rudel-obby-connection::transport): new slot; stores transport
- object
- (rudel-obby-connection::initialize-instance): build a transport
- filter stack and install `rudel-accept' as filter
- (rudel-obby-connection::rudel-send): new; send data through the
- transport
- (rudel-obby-connection::rudel-message): removed; obsolete
-
- * socket/rudel-socket.el
- (rudel-tcp-backend::rudel-wait-for-connections): when creating the
- network process, set filter and sentinel to `ignore'
-
- * tls/rudel-tls.el
- (rudel-start-tls-backend::rudel-make-connection): create transport
- object of class `rudel-start-tls-transport' not
- `rudel-socket-transport'
-
-2009-12-02 Jan Moringen <address@hidden>
-
- * obby/rudel-obby.el (rudel-obby-default-port): new constant; used
- as default when reading the port number
- (rudel-obby-backend::rudel-ask-connect-info): use specialized read
- functions; handle transport and protocol backend better
-
- * rudel-session-initiation.el (header): bumped version to 0.2 in
- history section
- (rudel-configured-sessions): added :transport-backend and
- :protocol-backend in type specification and documentation string
- (rudel-ask-protocol-version): bumped version to 0.2
- (rudel-ask-protocol-backend::rudel-discover): handle transport and
- protocol backend
- (rudel-configured-sessions-version): bumped version to 0.2
- (rudel-session-initiation-adjust-info): handle :transport-backend
- and :protocol-backend keywords
-
- * rudel.el (rudel-join-session): use
- `rudel-make-state-progress-callback' to construct callbacks for
- connecting and joining operations
- * rudel-interactive.el (rudel-make-state-progress-callback): new
- function; return a callback suitable for `rudel-state-wait'
-
- * rudel.el (rudel-join-session): do not call
- `rudel-ask-connect-info' as this is done by the protocol backend
- when needed
- * rudel-protocol.el (generic rudel-connect): added arguments
- info-callback and progress-callback; updated documentation string
- * obby/rudel-obby.el (rudel-obby-backend::rudel-connect): added
- arguments info-callback and progress-callback; removed progress
- reporter, since callback is used instead; in case of recoverable
- errors, do not signal but try again
- * obby/rudel-obby-client.el
-
(rudel-obby-client-state-encryption-start::rudel-obby/net6_encryption_begin):
-
(rudel-obby-client-state-encryption-start::rudel-obby/net6_encryption_failed):
- new successor state is waiting-for-join-info
- (rudel-obby-client-state-waiting-for-join-info): new class; state
- entered when waiting for join info
- (rudel-obby-client-state-joining::rudel-enter): new argument info;
- do not retrieve info from connection object
- (rudel-obby-client-connection-states): added waiting-for-join-info
-
-2009-12-01 Jan Moringen <address@hidden>
-
- added initial support for the transport abstraction to affected
- components
- * obby/rudel-obby-client (require rudel-tls): required for
- STARTTLS encryption
- * obby/rudel-obby.el (header): added version 0.3 to history
- section
- (rudel-obby-backend::rudel-ask-connect-info): return info list
- containing entries for transport and protocol backend
- (rudel-obby-backend::rudel-connect): added transport argument; use
- transport object instead of creating a socket
- (zeroconf service registration): register transport and protocol
- backend
- * rudel-protocol.el (header): history section fix
- (rudel-protocol-backend::rudel-ask-connect-info): renamed
- `rudel-ask-join-info' -> `rudel-ask-connect-info'
- (rudel-protocol-backend::rudel-connect): renamed `rudel-join ->
- `rudel-connect; added argument transport; updated documentation
- string
- * rudel.el (header): added version 0.2 to history section
- (rudel-join-session): obtain transport and protocol backends from
- info; create a transport object; return created session object
- * zeroconf/rudel-zeroconf.el (header): downcased keywords; updated
- commentary section; added version 0.2 to history
- (rudel-zeroconf-version): bumped to 0.2
- (rudel-zeroconf-service-types): updated documentation string
- (rudel-zeroconf-service-backend): removed
- (rudel-zeroconf-transport-backend): new; accessor for transport
- backend
- (rudel-zeroconf-protocol-backend): new; accessor for protocol
- backend
- (rudel-zeroconf-register-service): accept a transport and a
- protocol backend argument; update documentation string
- (initialize-instance): remove &rest from argument slots
- (rudel-advertise): handle transport and protocol backend
- (rudel-zeroconf-services): updated to work with new service
- representation
- (rudel-zeroconf-services-present-p): updated to work with new
- service representation
- (rudel-zeroconf-publish): accept a transport and a protocol
- backend argument
- (rudel-zeroconf-service->plist): handle transport and protocol
- backends
-
-2009-11-30 Jan Moringen <address@hidden>
-
- * rudel-compile.el (top-level): added tls directory to list of
- directories with autoloads
- * tls/rudel-tls.el (header): added 0.2 to version section
- (require rudel-socket): required since base class of
- `rudel-start-tls-transport'
- (rudel-start-tls-transport): new class; socket transport with
- START TLS ability
- (rudel-start-tls-transport::rudel-enable-encryption): new method;
- enable TLS encryption
- (rudel-start-tls-backend): new class; START TLS transport backend
- (rudel-start-tls-backend::initialize-instance): new method
- (rudel-start-tls-backend::rudel-make-connection): new method;
- create new START TLS transport object
- (autoloading): added autoloaded registration of the backend
-
- * rudel-util.el: (rudel-assemble-lines): new function assemble
- complete lines from string fragments
-
- * socket/rudel-socket.el (footer): changed provided feature
- rudel-tcp -> rudel-socket; changed comment
-
- * tls/rudel-tls.el (rudel-tls-wait-init): use
- `rudel-assemble-fragments' instead of
- `rudel-assemble-line-fragments'; use `rudel-loop-fragments'
- instead of `rudel-loop-lines'
- (rudel-tls-wait-handshake): use `rudel-assemble-fragments' instead
- of `rudel-assemble-line-fragments'; use `rudel-loop-fragments'
- instead of `rudel-loop-lines'
- (rudel-tls-established): use `rudel-assemble-fragments' instead of
- `rudel-assemble-line-fragments'; use `rudel-loop-fragments'
- instead of `rudel-loop-lines'
-
- * rudel-util.el (rudel-loop-fragments): new macro; call a form for
- each fragment
-
- * tls/rudel-tls.el: moved to tls directory
- * tls/Project.ede (target tls): added rudel-tls.el
- * Project.ede (target autoloads): added tls directory
- (target compile): removed rudel-tls.el
-
- * rudel-compat.el (progress-spinner-values):
- (progress-reporter-spinner-p):
- (progress-reporter-force-update):
- (progress-reporter-update):
- (progress-reporter-spin):
- (make-progress-reporter): always define these functions since the
- spinning progress reporter patch has not been accepted anyway
-
- * rudel-state-machine.el (rudel-state-machine::initialize-instance):
- use `rudel-state-machine-strip-initargs' to get rid of virtual
- initargs
- (rudel-state-machine-strip-initargs): new function; remove certain
- initargs from a property list of initargs
-
- * rudel-state-machine.el (rudel-state-machine::initialize-instance):
- value of :start can now be a rudel-state-child, a symbol, or a list
- starting with a symbol; improved documentation string documentation
- string
- (rudel-state-machine::object-print): pass strings argument to next
- method
-
- * rudel-state-machine.el (rudel-state-machine::initialize-instance):
- new method; remove :start initarg
- (rudel-state-machine::initialize-instance :after): allow :start
- initarg to specify arguments to start state
-
-2009-11-29 Jan Moringen <address@hidden>
-
- * socket/rudel-socket.el
- (rudel-tcp-backend::rudel-wait-for-connections): new method; wait
- for incoming connections and dispatch to callback
- (rudel-tcp-handle-connect): new function; helper function to wrap
- incoming connection sockets in transport objects
-
- * socket/rudel-socket.el (header): added version 0.2 to history
- (rudel-tcp-version): renamed `rudel-socket-transport-version' ->
- `rudel-tcp-version'; bumped to 0.2
- (rudel-socket-transport::filter): removed; stored in process
- object
- (rudel-socket-transport::sentinel): removed; stored in process
- object
- (rudel-socket-transport::rudel-filter): new method; retrieve
- filter from process
- (rudel-socket-transport::rudel-set-filter): set filter of process
- (rudel-socket-transport::rudel-sentinel): new method; retrieve
- sentinel from process
- (rudel-tcp-transport::rudel-set-sentinel): set sentinel of process
- (rudel-tcp-transport::rudel-receive): removed; now handled
- directly
- (rudel-tcp-backend::initialize-instance): use `rudel-tcp-version'
- (rudel-tcp-backend::rudel-make-connection): pass constructed
- socket to a `rudel-socket-transport'; do not install filter or
- sentinel
-
- * socket/rudel-socket.el (rudel-tcp-backend::initialize-instance):
- added documentation string
-
- * socket/rudel-socket.el (rudel-make-connection): made object name
- of transport object more unique
-
- * socket/rudel-socket.el (require cl): required for `every'
- (rudel-tcp-backend::rudel-make-connection): added arguments
- info-callback and progress-callback; call info-callback when info
- elements are missing
-
- * socket/rudel-socket.el: new file; socket transport backend for
- Rudel; currently provides TCP-based transport
- * socket/Project.ede: new file; project file for socket transport
- backend
- * rudel-compile.el (top-level): add socket directory to
- `load-path' when compiling
- * Project.ede (target autoloads): added directory socket
-
- * rudel-debug.el (require eieio): silence byte-compiler
- (rudel-debug-received-processed-data-face): removed; will be
- distinguished by other means
- (rudel-debug-tag-faces): removed entry for received-processed face
- (rudel-debug-stream-insert): whitespace cleanup
- * obby/rudel-obby-debug.el
- (rudel-obby-socket-owner::rudel-message :before): use tag
- :received instead of :received-processed
-
- * rudel-loaddefs.el: removed; this file is now generated by
rudel-compile.el
- * rudel-compile.el (header): extended commentary section; added
- 0.2 to history section
- (top-level): added generation of autoloads in rudel-loaddefs.el
-
- * obby/rudel-obby.el (rudel-display-string): fixed invalid format
- specifier
-
- * jupiter/jupiter-insert.el (header): history section
- (require jupiter-nop): added; cross-operation dependency
- * jupiter/jupiter-delete.el (header): history section
- (require jupiter-nop):
- (require jupiter-insert): added; cross-operation dependency
-
- * rudel.el (rudel-document::rudel-remove-user): fixed invalid this
- reference
-
- * rudel-util.el (rudel-assemble-fragments): new macro; assemble
- complete fragments from data and store partial fragments; used by
- assembling transport filter
-
- * rudel-transport-util.el (rudel-long-message-threshold):
- (rudel-long-message-chunk-size): new constants; used by
- `rudel-progress-reporting-transport-filter'
- (rudel-progress-reporting-transport-filter::rudel-send): call
- `rudel-send' correctly
-
- * rudel-interactive.el (header): history-section
- (require rudel-backend): required for `rudel-backend-cons-p' to
- silence the byte-compiler
-
- * rudel-compat.el: reordered top-level forms and added some
- section headers
- (header): history section
-
- * rudel-backend.el (rudel-backend-factory): added autoload cookie
-
-2009-11-28 Jan Moringen <address@hidden>
-
- * rudel-transport-util.el (rudel-transport-filter::slot-missing):
- added virtual slot :root-transport that recursively finds the
- underlying transport
-
- * rudel-transport.el (header): updated history section
- (require rudel-errors): added a commit
-
- * rudel-transport-util.el (require rudel-errors): required for
- `rudel-error' condition
- (rudel-invalid-state): new condition
- (rudel-buffering-transport-filter): new class; a transport filter
- that can queue incoming and outgoing data
- (rudel-buffering-transport-filter::initialize-instance): new method;
- initialize slots and install filter
- (rudel-buffering-transport-filter::rudel-send): new method send or
- queue data
- (rudel-buffering-transport-filter::rudel-stop): new method; stop the
- filter
- (rudel-buffering-transport-filter::rudel-start): new method; start
- the filter
- (rudel-buffering-transport-filter::rudel-handle): new method; handle
- incoming data
-
- * rudel-transport-util.el
- (rudel-assembling-transport-filter::fragment-function): new slot;
- optional fragmentation function
- (rudel-assembling-transport-filter::rudel-send): if there is a
- fragmentation function, use it
- (rudel-injecting-transport-filter): new class; inject data using
- method calls instead of receiving it from an underlying transport
- (rudel-injecting-transport-filter::rudel-inject): new method; inject
- data into transport filter
-
- * rudel-transport.el (rudel-wait-for-connections): renamed argument
- dispatch -> dispatch-callback
-
- * rudel-transport-util.el (header): cosmetic changes
- (rudel-parsing-transport-filter::parse-function): added reader and
- writer
- (rudel-parsing-transport-filter::generate-function): added reader
- and writer
-
- * rudel-transport.el (rudel-transport-backend::rudel-make-connection):
- added argument info-callback; renamed argument callback ->
- progress-callback; improved and extended documentation string
- (rudel-transport-backend::rudel-wait-for-connections): documentation
- string wording
-
- * rudel-transport.el (require rudel-errors): new require; for
- condition names
- (rudel-malformed-message): new error condition
-
- * rudel-transport-util.el (rudel-transport-filter::filter): use reader
- and writer instead of accessor; removed `rudel-set-filter' method
- (rudel-transport-filter::sentinel): use reader and writer instead of
- accessor; removed `rudel-set-sentinel method
- (rudel-transport-filter::no-applicable-method): delegate method
- calls to underlying transport
- (rudel-assembling-transport-filter::buffer): changed type to list
-
- * rudel-transport.el (rudel-transport-backend::rudel-make-connection):
- added optional argument callback; improved documentation string
- (rudel-transport-backend::rudel-wait-for-connections): added
- argument dispatch; fixed and improved documentation string
-
- * rudel-transport-util.el (rudel-transport-filter::slot-missing): new
- method; makes slots of the underlying transport available as virtual
- slots of the filter
- (rudel-progress-reporting-transport-filter::reporter): fixed initarg
-
- * rudel-transport.el: socket-like interface for transports
- (header): downcased keywords; expanded "Commentary" section
- (rudel-transport::rudel-set-filter): renamed
- `rudel-transport-set-handler' -> rudel-set-filter
- (rudel-transport::rudel-set-sentinel): new method; like
- `set-process-sentinel'
- (rudel-send): renamed `rudel-transport-send' -> `rudel-send'
- (rudel-transport::rudel-start): new method start stopped transport
- (rudel-transport-backend::rudel-make-connection): expanded
- documentation string
-
- * rudel-transport-util.el (initialize-instance): in generated handler,
- do not loop over fragments
-
- * rudel-transport-util.el
- (rudel-assembling-transport-filter::assembly-function): removed
- initform and accessor
- (rudel-transport-make-filter-stack): new function; construct a stack
- of transport filters according to a specification
-
- * rudel-transport-util.el (rudel-progress-reporting-transport-filter):
- new class; progress reporting transport filter
-
- * rudel-transport-util.el (header): fixed license text; extended
- commentary
- (require rudel-transport): require for class `rudel-transport'
- (rudel-transport-filter): new class; base class for transport
- filters
- (rudel-assembling-transport-filter): new class; assembles received
- data fragments into messages
- (rudel-parsing-transport-filter): new class; applies parse/generate
- function to received/sent data
-
- * rudel-transport-util.el: new file; utility functions for
- implementing transport functionality
- * Project.ede (target rudel): added rudel-transport-util.el
-
-2009-11-25 Jan Moringen <address@hidden>
-
- * obby/rudel-obby.el (rudel-obby-backend::capabilities): added
- encrypt capability
-
-2009-10-29 Jan Moringen <address@hidden>
-
- * TODO: added closed-status to closed issues
- (Future): multi-frame BEEP messages; notification mechanism
- (Milestone rudel-0.3): multiple username/password attempts
-
-2009-10-22 Jan Moringen <address@hidden>
-
- * TODO (Future): added BEEP and SubEthaEdit tasks
-
-2009-10-15 Jan Moringen <address@hidden>
-
- * 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 <address@hidden>
-
- * TODO: new file; TODO items for future development and releases
-
-2009-10-12 Phil Hagelberg <address@hidden>
-
- * 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 <address@hidden>
-
- * jupiter/jupiter-delete.el (jupiter-delete::jupiter-transform):
- fixed error message
-
-2009-10-08 Jan Moringen <address@hidden>
-
- * 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 <address@hidden>
-
- * doc/card.tex (Session Initiation): mention configured sessions;
- explain Zeroconf-advertised session in more detail
-
- * rudel-transport-util.el: new file; utility functions for
- implementing transport functionality
- * Project.ede (target rudel): added rudel-transport-util.el
-
- * obby/doc/rudel-obby-transport-layers.cogre: new file; layers
- used when constructing transport filter chain for obby connections
- * obby/doc/rudel-obby-transport-layers.png: new file; generated
-
-2009-10-06 Jan Moringen <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * README: Mention Eshell issue and license.
-
-2009-10-03 Jan Moringen <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * rudel-mode.el (rudel-header-subscriptions-minor-mode): improved
- documentation string
-
-2009-08-30 Jan Moringen <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * . (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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * rudel.el (rudel-join-session): renamed local variable backend to
- session-initiation-backend
-
-2009-08-17 Jan Moringen <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * rudel.el (file header): added project URL
- (whole file): improved some comments
-
-2009-08-10 Jan Moringen <address@hidden>
-
- * rudel.el (include eieio-base): needed for eieio-named
-
-2009-08-04 Jan Moringen <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * rudel-compat.el (header): fixed email address, keywords, legal
- notice and file commentary
-
-2009-02-05 Jan Moringen <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * obby/rudel-obby-client.el (rudel-obby-connection): removed
- redundant slot `socket' (inherited from base class)
-
-2009-01-21 Jan Moringen <address@hidden>
-
- * 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 <address@hidden>
-
- * 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
- <address@hidden> ->
- <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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 <address@hidden>
-
- * 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
diff --git a/GNUmakefile b/GNUmakefile
index db56e2a..5dec9e7 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -6,10 +6,10 @@ EMACS = emacs -Q --batch
# the top-level directory for that (otherwise, maybe we could rely on
# buffer-locally setting generated-autoload-file in the non-main files).
-rudel-loaddefs.el: $(shell find -name '*.el' -print | \
+rudel-loaddefs.el: $(shell find \( -name .git -prune \) -o \( -name '*.el'
-print \) | \
egrep -v 'rudel-(pkg|autoloads|loaddefs)')
$(EMACS) \
--eval '(setq generate-autoload-cookie ";;;###rudel-autoload")' \
--eval '(setq generated-autoload-file (expand-file-name "$@"))' \
-f batch-update-autoloads \
- $$(find . -name '*.el' -print | sed 's|/[^/]*$$||' | sort -u)
+ $$(find \( -name .git -prune \) -o \( -name '*.el' -print \) | sed
's|/[^/]*$$||' | sort -u)
diff --git a/rudel-backend.el b/rudel-backend.el
index ef1a5b3..6ef1d41 100644
--- a/rudel-backend.el
+++ b/rudel-backend.el
@@ -1,6 +1,6 @@
;;; rudel-backend.el --- A generic backend management mechanism for Rudel
;;
-;; Copyright (C) 2009, 2010, 2014 Free Software Foundation, Inc.
+;; Copyright (C) 2009, 2010, 2014, 2016 Free Software Foundation, Inc.
;;
;; Author: Jan Moringen <address@hidden>
;; Keywords: Rudel, backend, factory
@@ -96,24 +96,34 @@ factory objects."))
"Factory class that holds an object for each known backend
category. Objects manage backend implementation for one backend
category each.")
-(oset-default rudel-backend-factory factories
+(oset-default 'rudel-backend-factory factories
(make-hash-table :test #'eq))
-(defmethod initialize-instance ((this rudel-backend-factory) &rest slots)
+(defmethod initialize-instance ((this rudel-backend-factory) &rest _slots)
"Initialize slots of THIS with SLOTS."
(when (next-method-p)
(call-next-method))
- (oset this :backends (make-hash-table :test #'eq)))
+ (oset this backends (make-hash-table :test #'eq)))
+
+;;;###rudel-autoload
+(progn
+(defmacro rudel--with-memoization (place &rest code)
+ (declare (indent 1) (debug t))
+ (gv-letplace (getter setter) place
+ `(or ,getter
+ ,(macroexp-let2 nil val (macroexp-progn code)
+ `(progn
+ ,(funcall setter val)
+ ,val))))))
;;;###rudel-autoload
(defmethod rudel-get-factory :static ((this rudel-backend-factory)
category)
"Return the factory responsible for CATEGORY.
If there is no responsible factory, create one and return it."
- (with-slots (factories) this
- (or (gethash category factories)
- (puthash category (rudel-backend-factory category) factories)))
- )
+ (rudel--with-memoization
+ (gethash category (eieio-oref-default this 'factories))
+ (make-instance 'rudel-backend-factory))) ;; category
;;;###rudel-autoload
(defmethod rudel-add-backend ((this rudel-backend-factory)
@@ -187,7 +197,8 @@ objects."
(unless (object-p class)
(condition-case error
(puthash name (make-instance
- class (symbol-name name)) backends)
+ class (symbol-name name))
+ backends)
(error
;; Store this error on the name symbol of the backend for
;; later display.
@@ -223,7 +234,7 @@ The returned backend is of the form (NAME . OBJECT)."
;;;###rudel-autoload
(defun rudel-backend-get-factory (category)
"A shortcut for getting the factory object for CATEGORY."
- (rudel-get-factory rudel-backend-factory category))
+ (rudel-get-factory 'rudel-backend-factory category))
(defun rudel-backend-suitable-backends (category predicate)
"Return backends from category CATEGORY that satisfy PREDICATE.
@@ -289,15 +300,15 @@ available information available for the backends"
;; Insert all backends provided by this factory.
(dolist (backend (rudel-all-backends factory))
- (if (or (object-p (cdr backend))
- (null (get (car backend)
- 'rudel-backend-last-load-error)))
- (insert (rudel-backend--format-backend-normal backend))
- (insert (rudel-backend--format-backend-error backend))))
+ (insert (if (or (object-p (cdr backend))
+ (null (get (car backend)
+ 'rudel-backend-last-load-error)))
+ (rudel-backend--format-backend-normal backend)
+ (rudel-backend--format-backend-error backend))))
;; One empty line between backend categories.
(insert "\n"))
- (oref rudel-backend-factory factories))
+ (oref-default 'rudel-backend-factory factories))
(current-buffer))
(defun rudel-backend--format-backend-normal (backend)
@@ -315,7 +326,7 @@ available information available for the backends"
(propertize
(if (object-p (cdr backend))
(mapconcat #'prin1-to-string
- (oref (cdr backend) :version)
+ (oref (cdr backend) version)
".")
"?")
'face 'font-lock-constant-face)
@@ -323,7 +334,7 @@ available information available for the backends"
(propertize
(if (object-p (cdr backend))
(mapconcat #'prin1-to-string
- (oref (cdr backend) :capabilities)
+ (oref (cdr backend) capabilities)
" ")
"?")
'face 'font-lock-constant-face))
diff --git a/rudel-loaddefs.el b/rudel-loaddefs.el
index 9afcdce..d64b4dd 100644
--- a/rudel-loaddefs.el
+++ b/rudel-loaddefs.el
@@ -4,7 +4,7 @@
;;;### (autoloads nil "infinote/rudel-infinote" "infinote/rudel-infinote.el"
-;;;;;; (21360 21635 0 0))
+;;;;;; (0 0 0 0))
;;; Generated autoloads from infinote/rudel-infinote.el
(eieio-defclass-autoload 'rudel-infinote-backend '(rudel-protocol-backend)
"infinote/rudel-infinote" "")
@@ -15,8 +15,8 @@
;;;***
-;;;### (autoloads nil "obby/rudel-obby" "obby/rudel-obby.el" (21360
-;;;;;; 21618 0 0))
+;;;### (autoloads nil "obby/rudel-obby" "obby/rudel-obby.el" (0 0
+;;;;;; 0 0))
;;; Generated autoloads from obby/rudel-obby.el
(eieio-defclass-autoload 'rudel-obby-backend '(rudel-protocol-backend)
"obby/rudel-obby" "Main class of the Rudel obby backend. Creates obby
client\nconnections and creates obby servers.")
@@ -27,13 +27,14 @@
;;;***
-;;;### (autoloads nil "rudel-backend" "rudel-backend.el" (21360 21376
-;;;;;; 0 0))
+;;;### (autoloads nil "rudel-backend" "rudel-backend.el" (0 0 0 0))
;;; Generated autoloads from rudel-backend.el
(eieio-defclass-autoload 'rudel-backend-factory 'nil "rudel-backend" "Factory
class that holds an object for each known backend\ncategory. Objects manage
backend implementation for one backend\ncategory each.")
-(defmethod rudel-get-factory :static ((this rudel-backend-factory) category)
"Return the factory responsible for CATEGORY.\nIf there is no responsible
factory, create one and return it." (with-slots (factories) this (or (gethash
category factories) (puthash category (rudel-backend-factory category)
factories))))
+(defmacro rudel--with-memoization (place &rest code) (declare (indent 1)
(debug t)) (gv-letplace (getter setter) place `(or ,getter ,(macroexp-let2 nil
val (macroexp-progn code) `(progn ,(funcall setter val) ,val)))))
+
+(defmethod rudel-get-factory :static ((this rudel-backend-factory) category)
"Return the factory responsible for CATEGORY.\nIf there is no responsible
factory, create one and return it." (rudel--with-memoization (gethash category
(eieio-oref-default this 'factories)) (make-instance 'rudel-backend-factory)))
(defmethod rudel-add-backend ((this rudel-backend-factory) name class
&optional replace) "\
Add factory class CLASS with name NAME to THIS.
@@ -54,7 +55,7 @@ A shortcut for getting the factory object for CATEGORY.
;;;***
;;;### (autoloads nil "rudel-session-initiation" "rudel-session-initiation.el"
-;;;;;; (21360 22136 0 0))
+;;;;;; (0 0 0 0))
;;; Generated autoloads from rudel-session-initiation.el
(eieio-defclass-autoload 'rudel-ask-protocol-backend
'(rudel-session-initiation-backend) "rudel-session-initiation" "This fallback
backend can \"discover\" sessions by letting the\nuser select a suitable
backend and asking for connect information\nrequired by the chosen backend.")
@@ -68,7 +69,7 @@ A shortcut for getting the factory object for CATEGORY.
;;;***
;;;### (autoloads nil "socket/rudel-socket" "socket/rudel-socket.el"
-;;;;;; (21360 21601 0 0))
+;;;;;; (0 0 0 0))
;;; Generated autoloads from socket/rudel-socket.el
(eieio-defclass-autoload 'rudel-tcp-backend '(rudel-transport-backend)
"socket/rudel-socket" "TCP transport backend.\nThe transport backend is a
factory for TCP transport objects.")
@@ -78,7 +79,7 @@ A shortcut for getting the factory object for CATEGORY.
;;;***
;;;### (autoloads nil "telepathy/rudel-telepathy"
"telepathy/rudel-telepathy.el"
-;;;;;; (21360 21587 0 0))
+;;;;;; (0 0 0 0))
;;; Generated autoloads from telepathy/rudel-telepathy.el
(eieio-defclass-autoload 'rudel-telepathy-backend '(rudel-transport-backend)
"telepathy/rudel-telepathy" "Class rudel-telepathy-backend ")
@@ -87,8 +88,7 @@ A shortcut for getting the factory object for CATEGORY.
;;;***
-;;;### (autoloads nil "tls/rudel-tls" "tls/rudel-tls.el" (21360 21567
-;;;;;; 0 0))
+;;;### (autoloads nil "tls/rudel-tls" "tls/rudel-tls.el" (0 0 0 0))
;;; Generated autoloads from tls/rudel-tls.el
(eieio-defclass-autoload 'rudel-start-tls-backend '(rudel-transport-backend)
"tls/rudel-tls" "STARTTLS transport backend.\nThe transport backend is a
factory for transport objects that\nsupport STARTTLS behavior.")
@@ -97,8 +97,8 @@ A shortcut for getting the factory object for CATEGORY.
;;;***
-;;;### (autoloads nil "wave/rudel-wave" "wave/rudel-wave.el" (21360
-;;;;;; 21542 0 0))
+;;;### (autoloads nil "wave/rudel-wave" "wave/rudel-wave.el" (0 0
+;;;;;; 0 0))
;;; Generated autoloads from wave/rudel-wave.el
(eieio-defclass-autoload 'rudel-wave-backend '(rudel-protocol-backend)
"wave/rudel-wave" "Main class of the Rudel Wave backend. Creates wave
client\nconnections.")
@@ -107,8 +107,8 @@ A shortcut for getting the factory object for CATEGORY.
;;;***
-;;;### (autoloads nil "xmpp/rudel-xmpp" "xmpp/rudel-xmpp.el" (21360
-;;;;;; 21513 0 0))
+;;;### (autoloads nil "xmpp/rudel-xmpp" "xmpp/rudel-xmpp.el" (0 0
+;;;;;; 0 0))
;;; Generated autoloads from xmpp/rudel-xmpp.el
(eieio-defclass-autoload 'rudel-xmpp-backend '(rudel-transport-backend)
"xmpp/rudel-xmpp" "Transport backend works by transporting XMPP messages
through\nXMPP connections.")
@@ -118,7 +118,7 @@ A shortcut for getting the factory object for CATEGORY.
;;;***
;;;### (autoloads nil "xmpp/rudel-xmpp-tunnel" "xmpp/rudel-xmpp-tunnel.el"
-;;;;;; (21360 21525 0 0))
+;;;;;; (0 0 0 0))
;;; Generated autoloads from xmpp/rudel-xmpp-tunnel.el
(rudel-add-backend (rudel-backend-get-factory 'transport) 'xmpp
'rudel-xmpp-tunnel-backend)
@@ -126,7 +126,7 @@ A shortcut for getting the factory object for CATEGORY.
;;;***
;;;### (autoloads nil "zeroconf/rudel-zeroconf" "zeroconf/rudel-zeroconf.el"
-;;;;;; (21360 21487 0 0))
+;;;;;; (0 0 0 0))
;;; Generated autoloads from zeroconf/rudel-zeroconf.el
(autoload 'rudel-zeroconf-register-service "zeroconf/rudel-zeroconf" "\
@@ -165,8 +165,8 @@ service type TYPE.
;;;;;; "rudel-speedbar.el" "rudel-state-machine.el" "rudel-transport-util.el"
;;;;;; "rudel-transport.el" "rudel-util.el" "rudel-xml.el" "rudel.el"
;;;;;; "xmpp/rudel-xmpp-debug.el" "xmpp/rudel-xmpp-sasl.el"
"xmpp/rudel-xmpp-state.el"
-;;;;;; "xmpp/rudel-xmpp-tls.el" "xmpp/rudel-xmpp-util.el") (21360
-;;;;;; 22138 746854 586000))
+;;;;;; "xmpp/rudel-xmpp-tls.el" "xmpp/rudel-xmpp-util.el") (0 0
+;;;;;; 0 0))
;;;***
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/rudel 9ec4b84: * rudel-backend.el: Try and fix compilation problem,
Stefan Monnier <=