2018-09-12 Stefan Monnier Replace some deprecated constructs with their successors * rudel-debug.el (rudel-join-session, rudel-host-session): Use nadvice. (rudel-debug-write-to-stream, rudel-send): Avoid `object-print`. (rudel-set-filter): Avoid `oset`. * rudel-obby-state.el (rudel-accept, rudel-obby/obby_document): * rudel-obby-client.el (rudel-obby/obby_document/record): * rudel-infinote-group.el (rudel-accept): Avoid `object-print`. * rudel-mode.el (global-rudel-header-subscriptions-mode): Use the mode-hook rather than an advice. * rudel.el: Require cl-print. 2017-02-24 Stefan Monnier * rudel-transport-util.el (cl-no-applicable-method): Rename Rename method from no-applicable-method and adjust calling convention accordingly. 2017-02-23 Stefan Monnier Fix left over uses of `call-next-method' 2016-09-14 Noam Postavsky * rudel.el: Bump version. 2016-07-12 Stefan Monnier Use cl-generic 2016-07-11 Stefan Monnier Use lexical-binding:t everywhere 2016-07-11 Stefan Monnier Use cl-lib instead of cl 2016-07-11 Stefan Monnier Use lexical-binding instead of lexical-let 2016-07-11 Stefan Monnier Move all Elisp files to top-level directory 2016-07-11 Stefan Monnier * obby/rudel-obby-util.el: Really don't use rudel-compat 2016-07-11 Stefan Monnier * obby/rudel-obby-util.el (with-parsed-arguments): Don't use rudel-compat 2016-07-11 Stefan Monnier * rudel-compat.el: Remove file 2016-07-10 Stefan Monnier * 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. 2014-05-12 Stefan Monnier Add missing new files. 2014-05-12 Stefan Monnier Fix up headers and compilation 2011-07-21 scymtym Made rudel icon directory configurable at runtime Patch by ulm; can be found here: https://overlays.gentoo.org/proj/emacs/browser/emacs-overlay/app-emacs/rudel/files/rudel-0.3_pre20110405-icons-dir.patch?rev=1661 * rudel-icons.el (header): updated copyright (rudel-icons-directory): use `defvar' instead of `defconst' (rudel-defimage): dynamically bind `image-load-path' to the value `rudel-icons-directory' 2011-04-05 scymtym Handle encryption a little better in obby/rudel-obby-client.el * obby/rudel-obby-client.el (header): updated copyright (rudel-obby/net6_encryption_begin): display a warning message if an encrypted connection has been requested but the selected transport does not support encryption 2010-11-14 scymtym Reenabled byte-compilation in rudel-compile.el * rudel-compile.el (top-level): reenabled byte-compilation 2010-10-09 scymtym Better info callback in rudel-host-session in rudel.el * rudel.el (rudel-host-session): use `rudel-ask-listen-info' instead of `ignore' as info-callback 2010-10-05 scymtym Added persistent sessions task in TODO * TODO (Future): added task "Persistent Sessions" 2010-10-04 scymtym Added telepathy tasks to rudel-0.3 in TODO * TODO (Milestone rudel-0.3): added task "Telepathy session initiation"; changed priority of task "Telepathy transport" to major 2010-10-04 scymtym Rescheduled telepathy and infinote tasks in TODO * TODO (Milestone rudel-0.4): task "Infinote client functionality" moved between milestones rudel-0.3 -> rudel-0.4; task "Support for trees of documents" moved between milestones rudel-0.3 -> rudel-0.4 (Milestone rudel-0.3): task "Telepathy transport" moved between milestones rudel-0.4 -> rudel-0.3; 2010-10-04 scymtym Updated tasks in TODO * TODO (Future): changed state of "Remember inputs and use as default ..." TODO -> STARTED; new task "Advice buffer-list to show ..."; minor fixes in other tasks 2010-08-18 scymtym Fixed remaining references to rudel-end-session * rudel-mode.el (rudel-minor-keymap): fixed reference to function `rudel-end-session' -> `rudel-leave-session' 2010-08-18 scymtym Fixed remaining references to rudel-unpublish-buffer * rudel-mode.el (rudel-minor-keymap): fixed reference to function `rudel-unpublish-buffer' -> `rudel-unsubscribe-buffer' (rudel-minor-menu): likewise 2010-08-07 scymtym More related work and fixes in development.org * doc/development.org (Related Work): mention XML Sync Islands and Google Wave (Obby Backend): fixed caption text (Infinote Backend): likewise (Settings): new section; contains settings; not exported 2010-08-02 scymtym Added color choice issue and generic read function task to TODO * TODO (Future): added task "Generic read functions instead of ones in each backend" (Milestone rudel-0.3): added issue "Choosing an already taken color can lead to missing update" 2010-08-01 scymtym Improved histories and default values of TLS read functions * tls/rudel-tls.el (rudel-tls-ask-connect-info-host-history): new variable; history of hosts read (rudel-tls-ask-connect-info-port-last): new variable; last prompt read (rudel-ask-connect-info): use `rudel-tls-ask-connect-info-host-history' and `rudel-tls-ask-connect-info-port-last' to provide default inputs and histories for host and port reading 2010-08-01 scymtym Improved histories and default values of socket read functions * socket/rudel-socket.el (rudel-tcp-ask-connect-info-host-history): new variable; history of hosts read (rudel-tcp-ask-connect-info-port-last): new variable; last prompt read (rudel-ask-connect-info): use `rudel-tcp-ask-connect-info-host-history' and `rudel-tcp-ask-connect-info-port-last' to provide default inputs and histories for host and port reading 2010-08-01 scymtym Improved histories and default values of read functions * rudel-interactive.el (header): added version 0.3 to history section (rudel-read-backend): added category argument; construct history symbol using `rudel-interactive--make-history-symbol'; construct the prompt using `rudel-interactive--make-prompt' (rudel-read-user-name-history): new variable; history of inputs read by `rudel-read-user-name' (rudel-read-user): add a default value from the history if possible, use the history and add the default value to the prompt (rudel-interactive--make-read-backend-history-symbol): new function; make a symbol for a read history (rudel-interactive--make-prompt): new function; make a prompt possibly including a default value 2010-07-31 scymtym Revised architecture overview diagram * doc/architecture.svg: added operations and handlers * doc/architecture.png: regenerated 2010-07-27 scymtym Marked tasks as done and moved to 0.3 milestone in TODO * TODO (Milestone rudel-0.3): moved tasks "Rename rudel-end-session" and "Rename rudel-unpublish-buffer" to this milestone from Future; marked these tasks as done 2010-07-25 scymtym merged Joe's changes 2010-07-25 Joe Corneli 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 2010-07-25 Joe Corneli 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 2010-07-25 Joe Corneli 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 2010-07-25 scymtym Added some tasks concerning user friendliness to TODO * TODO (Future): added new tasks "Remember inputs", "rename rudel-unpublish-buffer", "terminate server" and "rename rudel-end-session" 2010-07-25 scymtym Added load-path setup to injected code in rudel-compile.el * rudel-compile.el (top-level): moved load-path setup fragment with auto-load cookie into code fragment that is added textually in post-processing step 2010-07-25 scymtym Added a menu entry for rudel-backend-dump in rudel-mode.el * rudel-mode.el (rudel-minor-menu): added an entry for rudel-backend-dump 2010-07-25 Joseph Corneli Added .gitignore which contains the same contents as .bzrignore 2010-07-25 Joseph Corneli Updates to INSTALL file. * INSTALL: Rearranged and updated instructions so they make more sense. 2010-07-21 scymtym Added task transmit text properties in TODO * TODO (Transmit text properties): new task 2010-07-21 scymtym Update state of some tasks in TODO * TODO (Allow users to insert comments): state changed TODO -> STARTED (Transmit interactive function calls to peers): renamed and rewritten; state changed TODO -> STARTED (Use auth-source or secrets.el for passwords): state changed TODO -> STARTED 2010-07-21 scymtym Cosmetic fixes in TODO * TODO (Track last modification of chunks): added missing fields (Backend factory hooks): likewise (Histories for read functions): likewise (Terminating sessions does not work): likewise (Global mode-line publish state does not work): fixed typo 2010-07-21 scymtym Fix subscribe-hook for self in rudel-publish-buffer in rudel.el * rudel.el (rudel-publish-buffer): use `rudel-add-user' instead of `object-add-to-list' to add the self user to the new document; this fixes a problem with the subscribe-hook not being run for the self user 2010-07-15 scymtym Return new buffer in rudel-backend-dump in rudel-backend.el * rudel-backend.el (rudel-backend-dump): return the created buffer 2010-07-10 scymtym Represent missing self user as nil, not unbound in rudel.el * rudel.el (rudel-client-session::self): changed type to allow null value; added writer method `rudel-set-self' (rudel-client-session::rudel-unsubscribed-documents): check for self being nil instead of the slot :self being bound 2010-07-10 scymtym Removed duplicate comment in rudel-join-session in rudel.el * rudel.el (rudel-join-session): removed duplicate comment 2010-07-10 scymtym Handle failed slot delegation differently in rudel-impersonator * rudel-util.el (rudel-impersonator::slot-missing): if something goes wrong when accessing the slot of the target object signal the error from here 2010-07-10 scymtym Use automatic delegation of methods and slots for obby states * obby/rudel-obby-state.el (rudel-obby-state): added superclasses rudel-impersonator and rudel-delegator (rudel-obby-state::impersonation-target-slot): new slot; target object for slot delegation (rudel-obby-state::delegation-target-slot): new slot; target object for method delegation (rudel-obby-state::rudel-send): removed; now delegated to delegation target object * obby/rudel-obby-server.el (rudel-obby-server-state-new): changed method-resolution-order to :c3 (rudel-obby-server-state-encryption-negotiate): likewise (rudel-obby-server-state-before-join): likewise (rudel-obby-server-state-idle): likewise * obby/rudel-obby-client.el (rudel-obby-client-state-new): changed method-resolution-order to :c3 (rudel-obby-client-state-encryption-negotiate): likewise (rudel-obby-client-state-encryption-start): likewise (rudel-obby-client-state-waiting-for-join-info): likewise (rudel-obby-client-state-joining): likewise (rudel-obby-client-state-join-failed): likewise (rudel-obby-client-state-idle): likewise (rudel-obby-client-state-session-synching): likewise (rudel-obby-client-state-subscribing): likewise (rudel-obby-client-state-document-synching): likewise (rudel-obby-client-state-we-finalized): likewise (rudel-obby-client-state-they-finalized): likewise (rudel-obby-client-state-disconnected): likewise 2010-07-10 scymtym Do ask for unrelated info in obby backend's rudel-ask-connect-info * rudel-obby.el (rudel-obby-backend::rudel-ask-connect-info): do not ask for transport backend, protocol backend, host or port; these are obtained by the session initiation backend and the transport backend respectively 2010-07-06 scymtym Use document handler in idle state in obby/rudel-obby-server.el * obby/rudel-obby-server.el (rudel-obby-server-state-idle): added superclass rudel-obby-document-handler (rudel-obby-server-state-idle::document-container-slot): set initarg to 'server (rudel-obby-server-state-idle::rudel-obby/obby_document): removed; handled by superclass 2010-07-06 scymtym Access, parsing in with-tag-attrs more flexible in rudel-xml.el * rudel-xml.el (rudel-xml--node-component): new function; generate code to access specific components of a node (rudel-xml--parse-value): new function; parse extracted components as a specified type (with-tag-attrs): use `rudel-xml--node-component' and `rudel-xml--parse-value' to generate access and parsing code 2010-07-02 scymtym Proper comments for local variables in README, INSTALL * README: added proper comments to local variables * INSTALL: added proper comments to local variables 2010-07-17 scymtym Added autoload cookie for class rudel-telepathy-backend * rudel-telepathy.el (rudel-telepathy-backend): added autoload cookie for the class 2010-06-16 scymtym Only positive integers in rudel-obby-server::next-{client,user}-id * obby/rudel-obby-server.el (rudel-obby-server::next-client-id): restrict values to positive numbers (rudel-obby-server::next-user-id): restrict values to positive numbers 2010-06-16 scymtym Minor fixes and improvements in rudel-overlay.el * rudel-overlay.el (header): updated copyright; minor fix in history section (require eieio): new require; for `with-slots' (rudel-author-overlay-face): removed leading * from documentation string (rudel-overlay-options-changed): only map `rudel-overlay-author-update' over author overlays 2010-06-16 scymtym Added require for rudel-util to rudel-hooks.el * rudel-hooks.el (header): updated copyright; minor fixes in history section (require rudel-util): new require; for `object-add-hook' and `object-remove-hook' 2010-06-16 scymtym Signal error if gnutls-cli cannot be found in rudel-tls.el * tls/rudel-tls.el (rudel-tls-client-program): use `executable-find' to set the default value of the option (rudel-start-tls-backend::initialize-instance): signal an error unless `rudel-tls-client-program' has a usable value 2010-06-15 scymtym 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 2010-06-15 scymtym 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 2010-06-15 scymtym 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 2010-06-15 scymtym Mention Debian/Ubuntu packages in INSTALL * INSTALL (REQUIREMENTS): mention Debian/Ubuntu packages for gnutls-cli and Avahi (footer): added settings startup, title and author 2010-06-15 scymtym Removed redundant checks in -backend-factory::-suitable-backends * rudel-backend.el (rudel-backend-factory::rudel-suitable-backends): do not check the cdr being an object twice 2010-06-15 scymtym 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 scymtym Added some docstrings in 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 2010-06-14 scymtym 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 scymtym Improved docstring of rudel-xmpp-backend::rudel-make-connection * rudel-xmpp.el (rudel-xmpp-backend::rudel-make-connection): improved documentation string 2010-06-13 scymtym 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 2010-06-13 scymtym * doc/development.org (header): cosmetic changes (Rudel's Architecture): added architecture overview image (Backends): fixed markup 2010-06-13 scymtym 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 scymtym Initial version of the manual in doc/manual.org * doc/manual.org: new file; initial version of the manual 2010-06-12 scymtym Added reporting bugs and getting help section to README * README (REPORTING BUGS AND GETTING HELP): new section; explain how to get help 2010-06-12 scymtym Renamed doc/notes-for-developers.org -> doc/development.org * doc/development.org: renamed doc/notes-for-developers.org -> doc/development.org 2010-06-12 scymtym Handle document users in 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-12 scymtym Specialize rudel-display-string on rudel-infinote-document-user * rudel-infinote-display.el (rudel-infinote-document-user::rudel-display-string): specialize for `rudel-infinote-document-user' instead of `rudel-infinote-user' 2010-06-12 scymtym 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-12 scymtym 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 2010-06-11 scymtym Added handling of self user to 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 2010-06-11 scymtym Split accessor of rudel-user::color into reader and writer * rudel.el (rudel-user::color): split accessor into reader and writer 2010-06-11 scymtym Added reader rudel-set-id to rudel-infinote-document-user::id * rudel-infinote-user.el (rudel-infinote-document-user::id): added reader `rudel-set-id' 2010-06-11 scymtym Added class rudel-infinote-document-user to infinote backend * 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 2010-06-11 scymtym Added args to infinote-client-connection::rudel-make-and-add-group * 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 2010-06-11 scymtym Removed unused require in rudel-infinote-user.el * infinote/rudel-infinote-user.el (require rudel-icons): remove; unused 2010-06-10 scymtym * README (INTRODUCTION): mention header line (GETTING STARTED): link to INSTALL and .emacs files; fixed typo (LICENSE): spell out licensing terms (file local settings): added show everything, author and title 2010-06-07 scymtym 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 scymtym Fixed incorrect parenthesis in rudel-infinote-user.el * infinote/rudel-infinote-user.el (rudel-infinote-user::rudel-display-string): fixed incorrect parenthesis 2010-06-06 scymtym 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 2010-06-06 scymtym 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 2010-06-06 scymtym 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 2010-06-06 scymtym 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 2010-06-06 scymtym 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 scymtym 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' 2010-06-03 scymtym 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 2010-06-03 scymtym Fixed state superclasses in rudel-infinote-group-text-document.el * 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 2010-06-03 scymtym Better updates of user status in rudel-infinote-group-document.el * 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 2010-06-03 scymtym Updated user state handlers in rudel-infinote-group-document.el * 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 2010-06-03 scymtym Added comments, docs to 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 2010-06-03 scymtym 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 2010-06-03 scymtym Added new class rudel-infinote-group-state-closed * 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 scymtym Handle user joining in 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 2010-06-02 scymtym Renamed group states in 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 2010-06-02 scymtym Store and use id in 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 2010-06-02 scymtym Subscription ack in rudel-infinote-group-directory.el * infinote/rudel-infinote-group-directory.el (rudel-infinote-directory-state-subscribing;:rudel-leave): new method; send subscription acknowledgment 2010-06-02 scymtym Reversed order of superclasses of rudel-infinote-document * rudel-infinote-document.el (rudel-infinote-document): reversed order of superclasses; added documentation string 2010-06-01 scymtym Fixed parens in rudel-infinote-embed-in-request * rudel-infinote-util.el (rudel-infinote-parse-sequence-number): validate input (rudel-infinote-embed-in-request): fixed parens 2010-06-01 scymtym Exploit auto sequence numbers in rudel-infinote-group-directory * 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 2010-06-01 scymtym 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' 2010-06-01 scymtym Use self user in rudel-local-operation in rudel-infinote-client.el * rudel-infinote-client.el (rudel-infinote-client-connection::rudel-local-operation): obtain self user from session object 2010-06-01 scymtym 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 2010-06-01 scymtym Removed obsolete method from rudel-infinote-client.el * infinote/rudel-infinote-client.el (rudel-infinote-client-connection::rudel-register-state): removed obsolete method 2010-06-01 scymtym Added slot plugins to class rudel-infinote-client-connection * 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 scymtym Store remote side id in rudel-infinote-group.el * infinote/rudel-infinote-group.el (rudel-infinote-sequence-number-group::remote-id): new slot; stores id assigned by remote side 2010-05-30 scymtym Store sequence number and plugins in rudel-infinote/welcome * 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 2010-05-30 scymtym Warning severity in 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' 2010-05-30 scymtym Improved commentary section in rudel-infinote-group.el * infinote/rudel-infinote-group.el (header): extended commentary section; added 0.2 to version section 2010-05-30 scymtym Added documentation strings in 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 2010-05-30 scymtym More data in warnings in rudel-infinote-group-state::rudel-accept * rudel-infinote-group.el (rudel-infinote-group-state::rudel-accept): include more data in warning messages for failed requests 2010-05-30 scymtym Added class rudel-infinote-sequence-number-group * rudel-infinote-group.el (rudel-infinote-group-state::rudel-send): removed; get delegated automatically (rudel-infinote-sequence-number-group): new class; added automatically incrementing sequence numbers to messages sent through the group 2010-05-30 scymtym 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 2010-05-30 scymtym 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' 2010-05-30 scymtym Added contents of header commentary section in rudel-xmpp-sasl.el * xmpp/rudel-xmpp-sasl.el (header): added contents of commentary section 2010-05-30 scymtym Match response types with case in 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 2010-05-30 scymtym 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 scymtym 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 2010-05-28 scymtym 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 2010-05-28 scymtym 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 scymtym Added some branch tags in TODO * TODO (Future): added branch tags; multiple listeners task is started (Milestone 0.4): added branch tags 2010-05-27 scymtym 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 scymtym 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 2010-05-25 scymtym 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 2010-05-25 scymtym 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 scymtym 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 2010-05-24 scymtym 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 2010-05-24 scymtym 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-24 scymtym 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 * doc/card.pdf: regenerated 2010-05-23 scymtym 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 2010-05-23 scymtym 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 2010-05-23 scymtym 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 2010-05-23 scymtym Improved documentation string of class rudel-infinote-node * infinote/rudel-infinote-node.el (rudel-infinote-node): improved documentation string 2010-05-23 scymtym Added some related work to doc/notes-for-developers.org * doc/notes-for-developers.org (Related Work): new section; some links to related work 2010-05-23 scymtym 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 2010-05-23 scymtym 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 2010-05-23 scymtym 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 2010-05-23 scymtym 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 scymtym Fixed header sections in rudel-operators.el * rudel-operators.el (header): updated copyright; minor improvements in commentary section; minor improvements in history section 2010-05-21 scymtym 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 2010-05-21 scymtym 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 scymtym 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 2010-05-16 scymtym 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 2010-05-16 scymtym 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 2010-05-16 scymtym 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 2010-05-16 scymtym 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 2010-05-16 scymtym 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 2010-05-16 scymtym 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 2010-05-16 scymtym 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 2010-05-16 scymtym 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 2010-05-16 scymtym 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 2010-05-16 scymtym 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 2010-05-16 scymtym 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 scymtym 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 2010-05-15 scymtym 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 scymtym Improved comment in rudel-infinote-group-state::rudel-accept * infinote/rudel-infinote-group.el (rudel-infinote-group-state::rudel-accept): improved a comment 2010-05-02 scymtym 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 2010-05-02 scymtym Silence the byte-compiler in obby/rudel-obby-server.el * obby/rudel-obby-server.el (require rudel-obby): required to silence the byte-compiler 2010-05-02 scymtym 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 2010-05-02 scymtym Fixed parentheses in infinote/rudel-infinote-group.el * infinote/rudel-infinote-group.el (rudel-infinote-embed-in-group): fixed parentheses 2010-05-02 scymtym 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 2010-05-02 scymtym 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 scymtym 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 scymtym 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 2010-04-10 scymtym 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 2010-04-10 scymtym 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 2010-04-10 scymtym 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 2010-04-10 scymtym 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 2010-04-10 scymtym 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 2010-04-10 scymtym Added idea enable modes by default? in TODO * TODO (Milestone 0.3): new task; enable modes by default? 2010-04-10 scymtym Minor whitespace cleanup in rudel.el * rudel.el (rudel-allocate-buffer-function): whitespace cleanup 2010-04-10 scymtym 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 scymtym 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 scymtym 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 scymtym 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 2010-03-26 scymtym Added &rest args to rudel-xmpp-state::rudel-enter * xmpp/rudel-xmpp-state.el (rudel-xmpp-state::rudel-enter): added &rest args 2010-03-26 scymtym 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 2010-03-26 scymtym Fixed spelling error in docstring in rudel-util.el * rudel-util.el (rudel-dispatch): fixed spelling error in documentation string 2010-03-26 scymtym 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 2010-03-24 scymtym 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 2010-03-24 scymtym 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 scymtym 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 scymtym Escaped parentheses in docstring in rudel-session-initiation.el * rudel-session-initiation.el (rudel-configured-sessions): escaped parentheses in documentation string 2010-03-20 scymtym 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 scymtym 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 2010-03-18 scymtym 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' 2010-03-18 scymtym 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 scymtym 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 2010-03-14 scymtym 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 scymtym 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 2010-03-12 scymtym 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 scymtym 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 2010-03-10 scymtym 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 2010-03-10 scymtym Added draft of package diagram describing Rudel's architecture * doc/architecture.svg: new draft of a package diagram; architectural overview * doc/architecture.png: generated 2010-03-10 scymtym 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 2010-03-10 scymtym Handle all object types when writing to debug streams * rudel-debug.el (rudel-debug-write-to-stream): handle object types other than string and object by calling `prin1-to-string' 2010-03-01 scymtym 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 2010-03-01 scymtym 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 2010-03-01 scymtym 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 2010-03-01 scymtym Added "Commentary" comment to infinote/rudel-infinote-group.el * infinote/rudel-infinote-group.el (header): added a "Commentary" comment 2010-03-01 scymtym Added task to investigate XEP 0047 for xmpp tunnel to TODO * TODO (Future): added task to investigate XEP 0047 for xmpp tunnel 2010-03-01 scymtym 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 2010-03-01 scymtym Fixed docstring typo in infinote/rudel-infinote.el * infinote/rudel-infinote.el (rudel-connect): fixed typo in docstring obby -> infinote 2010-03-01 scymtym 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 scymtym 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 2010-02-06 scymtym 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 some comments 2010-02-04 scymtym 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' 2010-02-04 scymtym 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 scymtym 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 2010-02-02 scymtym 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 scymtym 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 scymtym 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 2010-01-27 scymtym 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 2010-01-27 scymtym 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' 2010-01-27 scymtym 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 scymtym 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 2010-01-26 scymtym 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 2010-01-26 scymtym Prevent byte-compilation of xmpp/rudel-xmpp-debug.el * xmpp/rudel-xmpp-debug.el (local variables): prevent byte-compilation 2010-01-24 scymtym Fixed require for rudel-socket in xmpp/rudel-xmpp.el * xmpp/rudel-xmpp.el (require rudel-socket): changed rudel-tcp -> rudel-socket 2010-01-24 scymtym 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 scymtym 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 2010-01-23 scymtym 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 2010-01-23 scymtym Removed require base64 from xmpp/rudel-xmpp-debug.el * xmpp/rudel-xmpp-debug.el (require base64): removed; fantasy library does not exist 2010-01-23 scymtym Updated header of xmpp/rudel-xmpp-debug.el * xmpp/rudel-xmpp-debug.el (header): added xmpp keyword; fixed commentary 2010-01-23 scymtym Added connect capability to XMPP backend * xmpp/rudel-xmpp.el (rudel-xmpp-backend::capabilities): added capability connect 2010-01-22 scymtym 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 2010-01-22 scymtym 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 2010-01-22 scymtym 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 2010-01-22 scymtym Removed function rudel-xmpp-state::rudel-set-assembly-function * xmpp/rudel-xmpp-state.el (rudel-xmpp-state::rudel-set-assembly-function): obsolete; removed 2010-01-22 scymtym 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 scymtym 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 2010-01-21 scymtym Fixed license of xmpp/rudel-xmpp.el * xmpp/rudel-xmpp.el (header): fixed license 2010-01-21 scymtym Added notes file to xmpp documentation * xmpp/doc/notes.org: new file; notes concerning the XMPP backend 2010-01-21 scymtym Minor cleanup in xmpp/rudel-xmpp-sasl.el * xmpp/rudel-xmpp-sasl.el (rudel-xmpp-state-sasl-mechanism-step::rudel-accept): minor cleanup 2010-01-21 scymtym Added RFC 3921 to xmpp documentation * xmpp/doc/rfc3921: new file; XMPP messaging and presence RFC 2010-01-21 scymtym 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 2010-01-21 scymtym 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 scymtym 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 2010-01-20 scymtym 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 scymtym 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 2010-01-17 scymtym 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 2010-01-17 scymtym Fixed typo in rudel-collecting-transport-filter::delay * rudel-transport-util.el (rudel-collecting-transport-filter::delay): fixed typo in :initform 2010-01-16 scymtym 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-15 scymtym 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 2010-01-15 scymtym 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' 2010-01-14 scymtym 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 2010-01-14 scymtym 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 2010-01-14 scymtym 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 scymtym 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 2010-01-10 scymtym 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 2010-01-10 scymtym Added autoload cookie to rudel-xmpp-backend * xmpp/rudel-xmpp.el (rudel-xmpp-backend): added autoload cookie 2010-01-10 scymtym 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 2010-01-10 scymtym 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 scymtym 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 2010-01-06 scymtym Added documentation string in xmpp/rudel-xmpp-tunnel.el * xmpp/rudel-xmpp-tunnel.el (rudel-xmpp-tunnel-transport): added documentation string 2010-01-06 scymtym 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 comment 2010-01-06 scymtym 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' 2010-01-06 scymtym 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 scymtym Added task for comment functionality * TODO (Future): added task for comment functionality 2010-01-05 scymtym 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 2010-01-05 scymtym 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 scymtym 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 2010-01-04 scymtym Added `rudel-xml-assemble-tags' * rudel-xml.el (rudel-xml-assemble-tags): assemble complete XML tags from strings 2010-01-04 scymtym Added pretty-print argument to `xml->string' * rudel-xml.el (xml->string): added optional argument pretty-print 2010-01-01 scymtym Include XMPP backend in compilation and autoload generation * rudel-compile.el (top level autoload): (top level): added xmpp directory 2010-01-01 scymtym 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 2010-01-01 scymtym Added rudel-xml.el * Project.ede (target compile): added rudel-xml.el * rudel-xml.el: new file; XML functions for Rudel 2009-12-31 scymtym Load file name determination * rudel-compile.el (top level autoload): (top level): changed load file name determination 2009-12-31 scymtym * TODO (Milestone 0.3): connection reset problem fixed 2009-12-31 scymtym Autoload load path manipulation * rudel-compile.el (top level): added autoloaded form that adds Rudel directories to `load-path' 2009-12-30 scymtym Removed unused functions * rudel-util.el (rudel-process-object): (rudel-set-process-object): removed; this is handled by `process-get' and `process-put' 2009-12-30 Jan Moringen 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' 2009-12-30 Jan Moringen 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 2009-12-30 Jan Moringen * rudel-debug.el (require rudel-state-machine): required since state machine methods are instrumented 2009-12-30 Jan Moringen * socket/rudel-socket.el (rudel-socket-transport::initialize-instance): in sentinel, include finished in the list of "close indicators" 2009-12-29 Jan Moringen * 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 2009-12-29 Jan Moringen * TODO (Future): added backend factory hooks (Milestone 0.3): added read-only buffer problem and srecode field edit problem 2009-12-29 Jan Moringen * rudel-compile.el (local variables): prevent byte-compilation 2009-12-29 Jan Moringen * 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 2009-12-29 Jan Moringen * tls/rudel-tls.el (rudel-start-tls-backend): added capability encrypt 2009-12-29 Jan Moringen * tls/rudel-tls.el (rudel-tls-make-process): stop the process object after creation 2009-12-28 Jan Moringen * rudel-icons.el (rudel-icons-directory): compute icons directory name based on load file name of rudel-icons.el 2009-12-26 scymtym * TODO (Milestone 0.4): new task integrate unit tests 2009-12-24 scymtym * 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 scymtym * 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 2009-12-21 scymtym * 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 2009-12-21 scymtym * obby/rudel-obby.el (rudel-obby-user::rudel-display-string): removed; now in obby/rudel-obby-display.el 2009-12-21 scymtym * 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 scymtym * 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 2009-12-20 scymtym * 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 2009-12-20 scymtym * TODO (Future): removed duplicate task SubEthaEdit client functionality (Milestone 0.3): use transports is done 2009-12-20 scymtym * 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' 2009-12-20 scymtym * INSTALL (INSTALLING): link to REQUIREMENTS (COMPILING): link to rudel-compile.el 2009-12-20 scymtym * doc/notes-for-developers.org: new file; some notes which may be relevant for Rudel developers 2009-12-20 scymtym * rudel-debug.el (local variables): prevent byte-compilation * obby/rudel-obby-debug.el (header): downcased keywords (local variables): prevent byte-compilation 2009-12-20 scymtym * 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 scymtym * obby/rudel-obby.el (rudel-ask-connect-info): when extracting properties from info list, there is no need to ensure info being non-nil 2009-12-19 scymtym * 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 2009-12-19 scymtym * 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 2009-12-19 scymtym * rudel-util.el (rudel-impersonator::slot-missing): fixed slot name `impersonating-target-slot' -> `impersonation-target-slot' 2009-12-19 scymtym * 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 2009-12-19 scymtym * rudel-backend.el (rudel-backend-choose): mention which kind of backend we are asking for 2009-12-18 scymtym merged trunk changes from sourceforge 2009-12-17 scymtym * rudel.el (rudel-host-session): use cdrs of backend cells 2009-12-17 scymtym * 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 scymtym * 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 2009-12-06 scymtym * 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 2009-12-06 scymtym * socket/rudel-socket.el (require cl): added `eval-when-compile' to the require 2009-12-06 scymtym * rudel-util.el (rudel-delegator): removed base class `rudel-state'; should not have been there 2009-12-06 scymtym * 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 scymtym * 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 scymtym * 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 scymtym * 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 2009-12-03 scymtym * socket/rudel-socket.el (rudel-tcp-backend::rudel-wait-for-connections): when creating the network process, set filter and sentinel to `ignore' 2009-12-03 scymtym * 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 scymtym * 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 2009-12-02 scymtym * 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 2009-12-02 scymtym * 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' 2009-12-02 scymtym * 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 scymtym 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 scymtym * 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 2009-11-30 scymtym * rudel-util.el: (rudel-assemble-lines): new function assemble complete lines from string fragments 2009-11-30 scymtym * socket/rudel-socket.el (footer): changed provided feature rudel-tcp -> rudel-socket; changed comment 2009-11-30 scymtym * 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' 2009-11-30 scymtym * rudel-util.el (rudel-loop-fragments): new macro; call a form for each fragment 2009-11-30 scymtym * 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 2009-11-30 scymtym * obby/rudel-obby-state.el (rudel-obby-state::connection): allow objects of any type to be used as associated connection 2009-11-30 scymtym * obby/doc/server-connection-states.cogre: new file; states of the state machine used by server connections * obby/doc/client-connection-states.cogre: new file; states of the state machine used by client connections 2009-11-30 scymtym * 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 2009-11-30 scymtym * 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 2009-11-30 scymtym * 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 2009-11-30 scymtym * 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 scymtym * 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 2009-11-29 scymtym * 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 2009-11-29 scymtym * socket/rudel-socket.el (rudel-tcp-backend::initialize-instance): added documentation string 2009-11-29 scymtym * socket/rudel-socket.el (rudel-make-connection): made object name of transport object more unique 2009-11-29 scymtym * 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 2009-11-29 scymtym * socket/rudel-socket.el (rudel-tcp-backend::capabilities): added capabilities 2009-11-29 scymtym * socket/rudel-socket.el (rudel-tcp-backend::rudel-make-connection): create a stopped network process (this rudel-socket-transport::handler): removed; renamed handler -> filter (this rudel-socket-transport::filter): new slot; like process filter (this rudel-socket-transport::sentinel): new slot; like process sentinel (this rudel-socket-transport::rudel-transport-send): (this rudel-socket-transport::rudel-send): renamed method `rudel-transport-send' -> `rudel-send' (this rudel-socket-transport::rudel-start): new method; start the transport (this rudel-socket-transport::rudel-close): new method; close the transport 2009-11-29 scymtym * socket/rudel-socket.el (rudel-make-connection): call `make-network-process' properly; return created transport object 2009-11-29 scymtym * 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 2009-11-29 scymtym * 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 2009-11-29 scymtym * 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 2009-11-29 scymtym * obby/rudel-obby.el (rudel-display-string): fixed invalid format specifier 2009-11-29 scymtym * 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 2009-11-29 scymtym * rudel.el (rudel-document::rudel-remove-user): fixed invalid this reference 2009-11-29 scymtym * rudel-util.el (rudel-assemble-fragments): new macro; assemble complete fragments from data and store partial fragments; used by assembling transport filter 2009-11-29 scymtym * 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 2009-11-29 scymtym * rudel-session-initiation.el (rudel-session-initiation-advertise): fixed use of `some' 2009-11-29 scymtym * rudel-interactive.el (header): history-section (require rudel-backend): required for `rudel-backend-cons-p' to silence the byte-compiler 2009-11-29 scymtym * rudel-compat.el: reordered top-level forms and added some section headers (header): history section 2009-11-29 scymtym * rudel-backend.el (rudel-backend-factory): added autoload cookie 2009-11-28 scymtym * rudel-transport-util.el (rudel-transport-filter::slot-missing): added virtual slot :root-transport that recursively finds the underlying transport 2009-11-28 scymtym * rudel-transport.el (header): updated history section (require rudel-errors): added a commit 2009-11-28 scymtym * 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 2009-11-28 scymtym * 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 2009-11-28 scymtym * rudel-transport.el (rudel-wait-for-connections): renamed argument dispatch -> dispatch-callback 2009-11-28 scymtym * 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 2009-11-28 scymtym * 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 2009-11-28 scymtym * rudel-transport.el (require rudel-errors): new require; for condition names (rudel-malformed-message): new error condition 2009-11-28 scymtym * 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 2009-11-28 scymtym * 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 2009-11-28 scymtym * 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 2009-11-28 scymtym * 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 2009-11-28 scymtym * rudel-transport-util.el (initialize-instance): in generated handler, do not loop over fragments 2009-11-28 scymtym * 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 2009-11-28 scymtym * rudel-transport-util.el (rudel-progress-reporting-transport-filter): new class; progress reporting transport filter 2009-11-28 scymtym * 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 2009-11-28 scymtym * rudel-transport-util.el: new file; utility functions for implementing transport functionality * Project.ede (target rudel): added rudel-transport-util.el 2009-11-25 scymtym * obby/rudel-obby.el (rudel-obby-backend::capabilities): added encrypt capability 2009-10-29 scymtym * 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 scymtym * TODO (Future): added BEEP and SubEthaEdit tasks 2009-10-15 scymtym * rudel.el (rudel-version): bumped to 0.3 * Project.ede (project rudel): bumped version to 0.3 2009-10-15 scymtym * TODO: whitespace fixes (Milestone rudel-0.4): new; focus on telepathy transport (Milestone rudel-0.3): added infinote, document trees 2009-10-12 Phil Hagelberg * 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. 2009-10-12 Phil Hagelberg * 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. 2009-10-12 Phil Hagelberg rudel-compat.el: Add string-match-p if not present. (< Emacs 23) 2009-10-13 scymtym * TODO: new file; TODO items for future development and releases 2009-10-12 Phil Hagelberg * rudel-mode.el, rudel-overlay.el: Move use of :safe flag from defcustom to a separate put. Required for Emacs 22 compatibility. 2009-10-12 Phil Hagelberg * rudel-loaddefs.el: Only require rudel-zeroconf if zeroconf is available. 2009-10-12 scymtym * jupiter/jupiter-delete.el (jupiter-delete::jupiter-transform): fixed error message 2009-10-08 scymtym * 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 scymtym * ChangeLog: updated 2009-10-07 scymtym * doc/card.tex (Session Initiation): mention configured sessions; explain Zeroconf-advertised session in more detail 2009-10-07 scymtym * ChangeLog: updated 2009-10-07 scymtym merged phil's README changes and jan's earlier changes 2009-10-06 scymtym * doc/card.tex (Joining a Session ...): added global and user passwords * doc/card.pdf: regenerated 2009-10-06 Phil Hagelberg README (JOINING): Mention `rudel-configured-sessions' customization. 2009-10-06 Phil Hagelberg * README (INTRODUCTION): emphasize obby backend being the only supported one so far, (JOINING): update example session with passwords. 2009-10-06 Phil Hagelberg rudel-loaddefs.el: Add autoloads for rudel-host-session and rudel-speedbar. 2009-10-06 Jan Moringen * rudel.el (rudel-version): use list representation instead of float (rudel-allocate-buffer-function): added documentation string 2009-10-06 Jan Moringen * INSTALL (COMPILING): fixed typo 2009-10-06 Jan Moringen merged phil's progress reporting and readme changes 2009-10-05 Phil Hagelberg README: Mention Eshell issue and license. 2009-10-05 Phil Hagelberg Merge trunk to progress reporter branch. 2009-10-02 Phil Hagelberg INSTALL: Mention CEDET's inclusion in Emacs. 2009-10-02 Phil Hagelberg * rudel-state-machine.el (rudel-state-wait): update progress reporter usage to match rudel-compat.el 2009-10-02 Phil Hagelberg * 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-03 scymtym * ChangeLog: updated 2009-10-03 scymtym * 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 2009-10-02 scymtym merged state machine callback changes 2009-10-02 scymtym * 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 2009-10-02 scymtym * 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 2009-10-02 scymtym * rudel-compat.el (progress-reporter-pulse): store index as float 2009-10-02 scymtym * ChangeLog: updated 2009-10-02 scymtym * 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 2009-10-02 scymtym * obby/rudel-obby-client.el (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 scymtym * 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-10-01 scymtym * 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 2009-09-30 scymtym * 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 2009-09-29 scymtym * 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 2009-09-29 scymtym * rudel-session-initiation.el (rudel-configured-sessions): improved documentation string 2009-09-29 scymtym * .bzrignore: added Makefile 2009-09-29 scymtym * .bzrignore: new file; ignore byte-code (pattern *.elc) 2009-09-29 scymtym * ChangeLog: fixed zapped content 2009-09-29 scymtym * INSTALL (REQUIREMENTS): wording (INSTALLING): mention other things that cause rudel to be autoloaded; minor cosmetic changes (COMPILING): fixed filename compile.el -> rudel-compile.el * ChangeLog: updated 2009-09-29 scymtym * 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-29 scymtym merged phil's installation improvements 2009-09-28 Phil Hagelberg Moved compile.el to rudel-compile.el, duh. 2009-09-27 Phil Hagelberg Update ChangeLog. 2009-09-27 Phil Hagelberg Removed CEDET's autogenerated makefiles 2009-09-27 Phil Hagelberg Update install notes for new build process. The rudel-loaddefs.el file does not need to be generated. Don't use CEDET for autoloads or byte-compiling. 2009-09-27 Phil Hagelberg Note that all connections to Gobby servers require TLS. 2009-09-27 Phil Hagelberg Add loaddefs for autoloading. 2009-09-27 Phil Hagelberg Added compile.el and loaddefs.el. 2009-09-27 jan * 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 closes: #18 2009-09-27 jan * 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 2009-09-27 jan * 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 2009-09-27 jan * rudel-session-initiation.el (rudel-configured-sessions): more precise specification of the customization type 2009-09-27 jan * rudel-session-initiation.el (rudel-configured-sessions-backend::rudel-discover): fixed a bug that dropped the last option in each configured session 2009-09-27 jan * 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 2009-09-26 jan * rudel-chat.el (rudel-chat-buffer-name): new constant; name chat log buffer (rudel-chat-handle-buffer): raise buffer when logging a chat message 2009-09-26 jan * 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 2009-09-26 jan * 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' 2009-09-26 jan * 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-25 jan * 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-24 jan * 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 2009-09-24 jan * 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 2009-09-24 jan * 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 2009-09-24 jan * obby/rudel-obby-state.el (rudel-obby/net6_ping): return nil to prevent erratic behavior of the state machine 2009-09-24 jan * rudel-interactive.el (rudel-allocate-buffer-clear-existing): added missing whitespace in prompt string 2009-09-24 jan * 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" 2009-09-23 jan * 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 addresses: #15, #16 2009-09-23 jan * 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 2009-09-23 jan * obby/rudel-obby-debug.el (whole file): new file; debugging functions for the obby backend * rudel-debug.el (whole file): new file; debugging functions 2009-09-23 jan * 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 2009-09-23 jan * 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-19 jan * 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 closes: #56 2009-09-19 jan * 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 2009-09-19 jan * 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 * 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 2009-09-19 jan * 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-13 jan * rudel-mode.el (rudel-header-subscriptions-minor-mode): check whether the document is attached to a buffer when enabling or disabling the mode (rudel-header-subscriptions--add-document): enable header subscriptions mode when the document is attached to a buffer (rudel-header-subscriptions--remove-document): disable header subscriptions mode when the document is attached to a buffer (rudel-mode-line-publish-state--options-changed): new function; called when customization options change 2009-09-12 jan * 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 2009-09-12 jan * 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' 2009-09-12 jan * 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 closes: #51 2009-09-12 jan * rudel-util.el (rudel-socket-owner::rudel-state-change): cover more states 2009-09-11 jan * obby/rudel-obby-client.el (rudel-obby-client-state-idle::rudel-obby/obby_document_remove): implemented, was stub; untested though closes: #45 2009-09-10 jan * 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 closes: #44 2009-09-09 jan * 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 * 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 2009-09-06 jan * INSTALL (REQUIREMENTS): mention Avahi 2009-09-05 jan * rudel.el (require rudel-util): required for `rudel-hook-object' 2009-09-05 jan * rudel-util.el (property svn:executable): removed property * rudel-overlay.el (property svn:executable): removed property 2009-09-04 jan * 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 closes: #2 2009-09-04 jan * 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 2009-09-04 jan * 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 closes: #6 2009-09-04 jan * 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 * rudel-mode.el (rudel-header-subscriptions-minor-mode): improved documentation string 2009-08-29 jan * zeroconf/Makefile (whole file): new file; generated Makefile for the zeroconf subproject 2009-08-29 jan * 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-27 jan * rudel.el (rudel-change-color): run the change hook of the self user 2009-08-27 jan * rudel-overlay.el (rudel-overlay-set-face-attributes): check the face actually exists closes: #54 2009-08-26 jan * 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 to/removed 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' closes: #9 2009-08-26 jan * 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 2009-08-26 jan * ChangeLog (whole file): updated 2009-08-26 jan * 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 2009-08-26 jan * 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 2009-08-26 jan * obby/rudel-obby-server.el (rudel-obby-client::rudel-obby/obby_document/subscribe): send number of bytes instead of number of characters 2009-08-26 jan * obby/rudel-obby-client.el (rudel-obby-client-state-document-synching::remaining-bytes): fixed initarg num-bytes -> remaining-bytes 2009-08-26 jan * 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 * INSTALL (REQUIREMENTS): precise CEDET release version 2009-08-25 jan * 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 2009-08-25 jan * 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 * 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 2009-08-23 jan * obby/rudel-obby.el (rudel-obby-user::eieio-speedbar-object-buttonname): fixed typo 2009-08-20 jan * 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 2009-08-20 jan * 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 2009-08-20 jan * 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 * 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-18 jan * rudel.el (rudel-join-session): renamed local variable backend to session-initiation-backend 2009-08-16 jan * obby/rudel-obby-state.el (rudel-obby-state::rudel-accept): fixed format of warning message 2009-08-16 jan * rudel-state-machine.el (require working): needed by `rudel-state-wait' 2009-08-16 jan * 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 closes: #23 2009-08-16 jan * 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 * 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 closes: #33 2009-08-16 jan * 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 2009-08-16 jan * obby/rudel-obby-client.el (rudel-obby-client-state-document-synching::object-print): fixed slot name remaining-bytes 2009-08-16 jan * rudel.el (rudel-host-session): the backend object is the cdr of the result of `rudel-backend-choose' 2009-08-15 jan * 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 closes: #50 2009-08-14 jan * 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 closes: #21 2009-08-14 jan * rudel-backend.el (rudel-backend-factory::rudel-get-backend): return backend as a cons (rudel-backend-get): new function; convenience function for getting backends 2009-08-14 jan * 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-13 jan * Project.ede (project rudel): bumped version to 0.2; added mailing list and path to web files 2009-08-13 jan * 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-12 jan * ChangeLog (whole file): updated 2009-08-12 jan * 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 closes: #22 2009-08-12 jan * rudel-interactive.el (rudel-read-session): discriminate sessions vs. session generating objects using `rudel-backend-cons-p' 2009-08-12 jan * rudel-backend.el (rudel-backend-cons-p): new function; checks whether a cons consists of a backend name and object 2009-08-12 jan * rudel-interactive.el (rudel-read-session): new function; read session by name and return it 2009-08-12 jan * 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-10 jan * rudel.el (file header): added project URL (whole file): improved some comments 2009-08-10 jan * rudel.el (include eieio-base): needed for eieio-named 2009-08-04 jan * 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-02 jan * 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' 2009-08-02 jan * 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 2009-08-02 jan * 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 * 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 2009-08-02 jan * 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 closes: #24 2009-08-02 jan * rudel-state-machine.el (rudel-state-machine::initialize-instance): use &rest slots instead of just slots closes: #49 2009-07-14 jan * 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 closes: #39 2009-07-14 jan * 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 closes: #48 2009-07-13 jan * 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 closes: #10 2009-07-12 jan * jupiter/jupiter-insert.el (jupiter-insert::jupiter-transform): cosmetic changes (whole file): whitespace fixes 2009-07-12 jan * 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 * rudel-speedbar.el (eieio-speedbar-object-buttonname): use `rudel-unique-name' instead of `object-name-string' 2009-07-12 jan * ChangeLog (whole file): updated 2009-07-12 jan * obby/rudel-obby-state.el (rudel-enter): return nil 2009-07-12 jan * 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 * 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 2009-07-11 jan * 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-06 jan * 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 * INSTALL (REQUIREMENTS): added Emacs itself and GNUTls 2009-07-04 jan * 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 * 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 * 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' closes #17 2009-06-17 jan * obby/rudel-obby-state.el (rudel-obby-document-handler): new class; mixin class that provides handling of obby 'document' messages 2009-06-16 jan * rudel-state-machine.el (rudel-state-machine::initialize-instance): find start state in slots and switch into it (while-file): whitespace fixes 2009-06-14 jan * 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 2009-06-14 jan * 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 * rudel-mode.el (global-rudel-minor-mode): removed; the variable is created by `define-minor-mode' (minor-mode-alist): managed by `define-minor-mode' 2009-06-14 jan * 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 2009-06-14 jan * rudel-telepathy.el (whole file): moved to telepathy/rudel-telepathy.el * telepathy/rudel-telepathy.el (whole file): moved from rudel-telepathy.el 2009-06-13 jan * 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 * 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-11 jan * 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 closes #12 2009-06-11 jan * rudel.el (rudel-user::rudel-color): added accessor `rudel-color' 2009-06-11 jan * obby/rudel-obby-server.el (require cl): required 2009-06-11 jan * obby/rudel-obby-server.el (rudel-obby-client::rudel-obby/net6_client_login): send suffices of synchronized documents 2009-06-11 jan * obby/rudel-obby-server.el (rudel-obby-client::rudel-obby/obby_document_create): send document/rename message to client when the document suffix changes 2009-06-10 jan * 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' 2009-06-10 jan * obby/rudel-obby-server.el (header): fixed version 2009-06-09 jan * obby/rudel-obby-client.el (rudel-obby-connection::rudel-local-operation): fixed wording in comment 2009-06-09 jan * INSTALL (section REQUIREMENTS): removed ERT which is not currently used (section INSTALL): some wording and file name fixes (section COMPILING): precise make command 2009-06-09 jan moved www stuff out of trunk and into root 2009-06-09 jan * 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 2009-06-08 jan * obby/rudel-obby-server.el (rudel-obby-client::rudel-obby/obby_document_create): find unique suffix for the new document; send suffix to clients closes #42 2009-06-08 jan * 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)l: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 Closes #32 2009-06-08 jan * 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 Closes #1 2009-06-07 jan * 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 * 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 2009-06-06 jan * obby/rudel-obby-util.el (require jupiter): silence byte compiler 2009-06-06 jan * 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-03 jan * rudel.el (require rudel-interactive): interactive functions use `rudel-read-backend' and `rudel-read-document' 2009-06-03 jan * 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 Closes #19 2009-06-03 jan * 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-01 jan * rudel.el (rudel-handle-buffer-change): There are three cases now: insert, delete and arbitrary changes; arbitrary changes generate a delete and insert operation Closes #35, #36 2009-06-01 jan * rudel-mode.el (rudel-minor-keymap): added some comments (global-rudel-minor-mode): extended documentation string; cleaned up code; added comments 2009-06-01 jan * obby/rudel-obby-client.el (rudel-obby-connection::rudel-obby/net6_client_part): fixed typo in variable name client-id-numeric 2009-05-27 jan * obby/rudel-obby-util.el (header): Fixed version (1.0 -> 0.1) 2009-05-27 jan * 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-03-16 jan * obby/rudel-obby-client.el (rudel-obby-connection::rudel-obby/net6_client_part): do not crash if the client id cannot be found 2009-03-16 jan * 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 closes #41 2009-02-26 jan * 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 * 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' 2009-02-23 jan * obby/rudel-obby-server.el (rudel-obby-server::rudel-remove-client): Make sure there is a user object before setting the status to offline 2009-02-23 jan * 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 2009-02-23 jan * 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' 2009-02-23 jan * obby/rudel-obby-client.el (rudel-obby/obby_document/rename): new method; dummy implementation 2009-02-22 jan * obby/rudel-obby-client.el (rudel-obby/net6_client_join): stylistic change 2009-02-22 jan * 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 * 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-05 jan * rudel-compat.el (header): fixed email address, keywords, legal notice and file commentary 2009-02-05 jan * 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 * obby/Makefile (new file): Makefile for obby subproject * jupiter/Makefile (new file): Makefile for jupiter subproject * Makefile (new file): Makefile for Rudel 2009-02-04 jan * obby/Project.ede (new file): EDE project file for obby subproject * jupiter/Project.ede (new file): EDE project file for jupiter subproject * Project.ede (new file): EDE project file for Rudel 2009-02-04 jan * obby/rudel-obby.el (require rudel) * obby/rudel-obby-util.el (require rudel) * obby/rudel-obby-client.el (require rudel-obby): make compilation succeed 2009-02-04 jan * rudel.el (include eieio-speedbar): I need it for now; I should get rid of it later 2009-02-04 jan * 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 * 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 (closes #34) 2009-02-02 jan * rudel-operators.el (rudel-overlay-operators::rudel-insert): Fixed computation of insertion offset when appending to the end of the buffer string 2009-02-02 jan * rudel.el (rudel-document::rudel-chunks): fixed invalid access to last chunk for empty buffer 2009-02-02 jan * rudel.el (rudel-document::rudel-attach-to-buffer): fixed incorrect slot reference 2009-02-02 jan * 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 2009-02-02 jan * 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 2009-02-02 jan * jupiter/jupiter.el (jupiter-context::jupiter-remote-operation): improved documentation string; cosmetic changes 2009-02-02 jan * jupiter/jupiter-insert.el (jupiter-insert::jupiter-transform): improved some comments 2009-02-02 jan * 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' 2009-02-02 jan * 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 * jupiter/jupiter-insert.el (jupiter-insert::jupiter-transform): handle jupiter-nop 2009-02-01 jan * 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 2009-02-01 jan * jupiter/jupiter-compound.el (jupiter-compound): now derived from jupiter-operation; should have been right from the start 2009-01-31 jan * rudel.el (rudel-default-username): Default name used when prompting for user name; required by rudel-interactive 2009-01-31 jan * rudel-interactive.el (rudel-read-backend): fixed typo 2009-01-30 jan * jupiter/jupiter-insert.el (jupiter-insert::jupiter-transform): fixed two offset calculations * jupiter/jupiter-delete.el (jupiter-delete::jupiter-transform): fixed offset calculation 2009-01-30 jan * 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 * rudel-overlay.el (header): fixed version (whole file): cosmetic changes (rudel-author-overlay-p): added documentation string (rudel-author-overlays): added documentation string 2009-01-28 jan * rudel-mode.el (rudel-minor-keymap): cosmetic changes 2009-01-28 jan * rudel-mode.el (rudel-minor-keymap): Separated session participation and hosting items 2009-01-28 jan * 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' 2009-01-28 jan * 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' 2009-01-27 jan * 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 2009-01-27 jan * obby/rudel-obby-util.el (generic rudel-message): made the method a generic function and updated the documentation string 2009-01-26 jan * 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-21 jan * obby/rudel-obby-client.el (rudel-obby-connection): removed redundant slot `socket' (inherited from base class) 2009-01-21 jan * 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 * 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 -> 2009-01-19 jan * rudel-interactive.el (header): added keywords to file header comment 2009-01-19 jan * 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 * 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 2009-01-11 jan * obby/rudel-obby-client.el (rudel-obby-connection::rudel-change-color-): new function; implements changing the color 2009-01-11 jan * obby/rudel-obby-util.el rudel-obby-socket-owner::rudel-receive): improved documentation string 2009-01-05 jan * 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 * 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 2009-01-04 jan * rudel.el (rudel-document::rudel-detach-from-buffer): do nothing, if the document is not attached to any buffer 2009-01-04 jan * obby/rudel-obby.el (rudel-obby-user): added missing accessor `rudel-connected' 2009-01-04 jan * obby/rudel-obby-server.el (rudel-obby-client::rudel-obby/net6_client_login): transmit number of synchronization items; transmit list of disconnected users 2009-01-04 jan * 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. 2009-01-04 jan * 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 2009-01-04 jan * rudel.el (rudel-document::rudel-chunks): fixed void variable `chunks-' -> `augmented-chunks' 2009-01-03 jan * 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 * 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 * 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 2009-01-01 jan * 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 2009-01-01 jan * 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' 2009-01-01 jan * 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 2009-01-01 jan * rudel-mode.el (header section): added keywords 2009-01-01 jan * rudel-interactive.el (header section): added file comment 2008-12-31 jan * 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 2008-12-30 jan * obby/rudel-obby.el (rudel-obby-document): cleanup; improved documentation strings 2008-12-30 jan * rudel-overlay.el (new file): functions for managing overlays, which indicate the authors of contributions in collaborative buffers 2008-12-30 jan * 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 2008-12-30 jan * rudel.el (customization): added customization group definition for `rudel' 2008-12-30 jan * 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 2008-12-30 jan * rudel-util.el (rudel-state-change): cleanup; added comments 2008-12-30 jan * rudel-mode.el (rudel-minor-keymap): Fixed invalid menu definition 2008-12-30 jan * 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 * 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 2008-12-29 jan * 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' 2008-12-29 jan * rudel-speedbar.el (whole file): cleanup; improved comments 2008-12-29 jan * 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 2008-12-29 jan * rudel-interactive.el (whole file): user interaction functions used by all Rudel components 2008-12-29 jan * 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 2008-12-29 jan * 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 2008-12-29 jan * obby/rudel-obby.el (whole file): improved comments (rudel-obby-backend::rudel-ask-connect-info): removed :override tag; added comments (rudel-obby-backend::rudel-connect): removed :override tag; use `make-network-process' instead of `open-network-stream' and attach filter and sentinel right away; removed some debug code (rudel-obby-backend::rudel-disconnect): removed :override tag (rudel-obby-backend::rudel-subscribe-to): removed :override tag (rudel-obby-backend::rudel-local-insert): removed :override tag (rudel-obby-backend::rudel-local-delete): removed :override tag (rudel-obby-backend::rudel-make-document): new method; creates a new rudel-obby-document object (rudel-obby-backend::rudel-available-document-id): obtains an unused document id, which can be assigned to a new document (class rudel-obby-connection): removed useless `host' and `port' slots (rudel-obby-connection::rudel-receive): removed some debug code (rudel-obby-connection::rudel-send): removed some debug code (rudel-obby-connection::rudel-obby/net6_client_join): fixed syntax error (class rudel-obby-user): added accessors for slots `client-id' and `user-id' (rudel-obby-user::eieio-speedbar-description): removed :override tag (rudel-obby-user::eieio-speedbar-object-buttonname): removed :override tag (class rudel-obby-document): added accessors and documentation for slot `id' (rudel-obby-document::eieio-speedbar-object-buttonname): removed :override tag (rudel-obby-replace-in-string): new function; replace a set of patterns in a string (rudel-obby-escape-string): new function; replace obby control characters with their escape sequences (rudel-obby-unescape-string): new function; invers of `rudel-obby-escape-string' (rudel-obby-parse-color): added documentation (rudel-obby-format-color): added documentation (rudel-obby-assemble-message): properly escape message components (rudel-obby-parse-message): properly unescape message components 2008-12-29 jan * README (whole file): some initial notes * INSTALL (whole file): some initial notes 2008-12-02 jan * rudel.el (whole file): cleanup up some obsolete code 2008-12-02 jan * 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 2008-12-02 jan * INSTALL (whole file): added 2008-12-02 jan * Changelog (whole file): renamed to `ChangeLog' * ChangeLog (whole file): fixed name 2008-12-02 jan * 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 2008-11-26 jan initial revision