Permalink
Browse files

Add Jabber client.

  • Loading branch information...
1 parent cd23f0c commit b6f578cee40a77ce701b0cc2c00198a9ffc359d9 @technomancy committed Dec 18, 2008
Showing with 11,353 additions and 2 deletions.
  1. +15 −0 elpa-to-submit/jabber/AUTHORS
  2. +92 −0 elpa-to-submit/jabber/NEWS
  3. +104 −0 elpa-to-submit/jabber/README
  4. +55 −0 elpa-to-submit/jabber/filetransfer.txt
  5. +75 −0 elpa-to-submit/jabber/hex-util.el
  6. +373 −0 elpa-to-submit/jabber/jabber-activity.el
  7. +105 −0 elpa-to-submit/jabber/jabber-ahc-presence.el
  8. +226 −0 elpa-to-submit/jabber/jabber-ahc.el
  9. +424 −0 elpa-to-submit/jabber/jabber-alert.el
  10. +98 −0 elpa-to-submit/jabber/jabber-browse.el
  11. +477 −0 elpa-to-submit/jabber/jabber-chat.el
  12. +162 −0 elpa-to-submit/jabber/jabber-chatbuffer.el
  13. +138 −0 elpa-to-submit/jabber/jabber-conn.el
  14. +511 −0 elpa-to-submit/jabber/jabber-core.el
  15. +202 −0 elpa-to-submit/jabber/jabber-disco.el
  16. +227 −0 elpa-to-submit/jabber/jabber-events.el
  17. +234 −0 elpa-to-submit/jabber/jabber-export.el
  18. +125 −0 elpa-to-submit/jabber/jabber-feature-neg.el
  19. +33 −0 elpa-to-submit/jabber/jabber-festival.el
  20. +54 −0 elpa-to-submit/jabber/jabber-ft-client.el
  21. +104 −0 elpa-to-submit/jabber/jabber-ft-server.el
  22. +244 −0 elpa-to-submit/jabber/jabber-history.el
  23. +177 −0 elpa-to-submit/jabber/jabber-iq.el
  24. +95 −0 elpa-to-submit/jabber/jabber-keepalive.el
  25. +58 −0 elpa-to-submit/jabber/jabber-keymap.el
  26. +88 −0 elpa-to-submit/jabber/jabber-logon.el
  27. +141 −0 elpa-to-submit/jabber/jabber-menu.el
  28. +95 −0 elpa-to-submit/jabber/jabber-modeline.el
  29. +745 −0 elpa-to-submit/jabber/jabber-muc.el
  30. +346 −0 elpa-to-submit/jabber/jabber-presence.el
  31. +34 −0 elpa-to-submit/jabber/jabber-ratpoison.el
  32. +143 −0 elpa-to-submit/jabber/jabber-register.el
  33. +456 −0 elpa-to-submit/jabber/jabber-roster.el
  34. +116 −0 elpa-to-submit/jabber/jabber-sasl.el
  35. +40 −0 elpa-to-submit/jabber/jabber-sawfish.el
  36. +29 −0 elpa-to-submit/jabber/jabber-screen.el
  37. +115 −0 elpa-to-submit/jabber/jabber-search.el
  38. +74 −0 elpa-to-submit/jabber/jabber-si-client.el
  39. +100 −0 elpa-to-submit/jabber/jabber-si-server.el
  40. +310 −0 elpa-to-submit/jabber/jabber-socks5.el
  41. +444 −0 elpa-to-submit/jabber/jabber-util.el
  42. +468 −0 elpa-to-submit/jabber/jabber-vcard.el
  43. +72 −0 elpa-to-submit/jabber/jabber-version.el
  44. +72 −0 elpa-to-submit/jabber/jabber-watch.el
  45. +322 −0 elpa-to-submit/jabber/jabber-widget.el
  46. +30 −0 elpa-to-submit/jabber/jabber-xmessage.el
  47. +206 −0 elpa-to-submit/jabber/jabber-xml.el
  48. +183 −0 elpa-to-submit/jabber/jabber.el
  49. +1,863 −0 elpa-to-submit/jabber/jabber.texi
  50. +443 −0 elpa-to-submit/jabber/sha1.el
  51. +6 −0 init.el
  52. +1 −1 starter-kit-bindings.el
  53. +3 −1 starter-kit-elpa.el
@@ -0,0 +1,15 @@
+Developers:
+Tom Berger
+Magnus Henoch
+
+Contributors:
+Mathias Dahl
+Mario Domenech Goulart
+Nolan Eakins
+François Fleuret
+Justin Kirby
+Carl Henrik Lunde
+Andrey Slusar
+
+
+arch-tag: 15700144-3BD9-11D9-871C-000A95C2FCD0
@@ -0,0 +1,92 @@
+-*- mode: outline -*-
+
+* New features in jabber.el 0.7
+
+** SSL connections possible
+See variable `jabber-connection-type'.
+
+** Chat buffers rewritten
+New modular design gives increased extensibility.
+*** Received URLs are displayed
+*** Long lines are filled
+See jabber-chat-fill-long-lines.
+*** Rare timestamps are printed by default
+See jabber-print-rare-time and jabber-rare-time-format.
+
+** MUC features
+*** Different default nicknames for different MUC rooms
+See jabber-muc-default-nicknames.
+*** Autojoin MUC rooms on connection
+See jabber-muc-autojoin.
+*** Change nickname
+Actually simply an alias from jabber-muc-nick to jabber-groupchat-join.
+*** Invitations
+Both sending and receiving invitiations is supported.
+*** Basic affiliation change support
+(Not finished)
+*** Private MUC messages
+*** Support for setting and displaying topic
+
+** Global key bindings
+Global keymap under C-x C-j.
+
+** Vcard viewer and editor
+
+** Roster export
+
+** Message events (JEP-0022)
+
+** Easy way to define external notifiers
+See define-jabber-alert. Alerts for Festival (speech synthesis),
+Sawfish, and xmessage added.
+
+** Activity mode improved
+Can now display count in frame title. Update hook added.
+
+** Roster display optimized
+
+** Optionally use per-contact history files
+
+** Jabber menu in menubar not enabled by default
+Call jabber-menu to have it there.
+
+** Flyspell in chat buffers
+Flyspell will only spell check what you're currently writing.
+
+** Different time formats for instant and delayed messages
+See `jabber-chat-time-format' and `jabber-chat-delayed-time-format'.
+You can see the complete timestamp in a tooltip by holding the mouse
+over the prompt.
+
+** Chat buffers in inactive windows are scrolled
+
+** Roster is sorted by name also
+
+* New features in jabber.el 0.6.1
+
+** Message history
+Set jabber-history-enabled to t to activate it.
+
+** Backlogs
+If you have history enabled, the last few messages are inserted when
+you open a new chat buffer.
+
+** Activity tracking on the mode line
+Activate it with M-x jabber-activity-mode.
+
+** Receive an alert when a specific person goes online
+Use it with M-x jabber-watch-add.
+
+** Support for /me in chats
+As in "/me laughs" etc.
+
+** Message alerts for current buffer can be disabled
+Set jabber-message-alert-same-buffer to nil to do that.
+
+** Basic moderation support in MUC
+
+** MUC alerts are separated from ordinary message alerts
+Customize jabber-alert-muc-hooks to get your desired behaviour.
+
+
+arch-tag: 1CE20E4E-3BD9-11D9-8D64-000A95C2FCD0
@@ -0,0 +1,104 @@
+This is jabber.el 0.7, a Jabber client for Emacs. If you don't know
+what Jabber is, see http://www.jabber.org .
+
+Home page: http://emacs-jabber.sourceforge.net
+Project page: http://sourceforge.net/projects/emacs-jabber
+Wiki page: http://www.emacswiki.org/cgi-bin/wiki/JabberEl
+Mailing list: http://lists.sourceforge.net/lists/listinfo/emacs-jabber-general
+and: http://dir.gmane.org/gmane.emacs.jabber.general
+
+GNU Emacs
+=========
+
+jabber.el depends on GNU Emacs 21, in particular xml.el, and some
+files from Gnus 5.10. If you don't have Gnus 5.10 (M-x gnus-version
+will tell), you can download sha1.el and hex-util.el from Gnus CVS
+at http://quimby.gnus.org/cgi-bin/cvsweb.cgi/gnus/lisp/ . For your
+convenience, these files are included in the tarball.
+
+XEmacs
+======
+
+You need an XEmacs with Mule support, and recent versions of the gnus,
+net-utils and mule-ucs packages. jabber.el basically works on XEmacs,
+but some features are missing (in particular mouse support). Testing
+and patches are very welcome.
+
+SASL
+====
+jabber.el will use the SASL library of FLIM (Faithful Library about
+Internet Message; it is also included in newer versions of Gnus) if
+it's present. If not, it will fall back to JEP-0077 authentication.
+
+TLS/SSL
+=======
+To get an encrypted connection, you need either tls.el (from Gnus) or
+ssl.el. These are interfaces to GnuTLS and OpenSSL, respectively; use
+the appropriate one. Recent versions of tls.el support both programs,
+though. The version of ssl.el distributed with Gnus is outdated; use
+the one from W3 CVS instead:
+http://cvs.savannah.gnu.org/viewcvs/w3/lisp/ssl.el?root=w3
+
+To actually use encryption, customize the variables
+jabber-connection-type and jabber-connection-ssl-program.
+
+Note that only the connection from you to the server is encrypted;
+there is no guarantee of other connections being encrypted.
+
+StartTLS is not supported in this version of jabber.el.
+
+Installation
+============
+To install, put all .el files somewhere in your load-path (or have
+your load-path include the directory they're in) and put
+(require 'jabber) in your .emacs file. To install the Info
+documentation, copy jabber.info to /usr/local/info and run
+"install-info /usr/local/info/jabber.info".
+
+If you've been using a post-0.6 CVS version of jabber.el, you might
+need to remove some redundant hook functions. Make sure that
+jabber-alert-message-hooks doesn't contain jabber-message-history, and
+that jabber-alert-presence-hooks doesn't contain
+jabber-presence-watch.
+
+Usage
+=====
+To start using it, type M-x jabber-customize and set your username and
+server. Then, type C-x C-j C-c (or equivalently M-x jabber-connect)
+to connect (with prefix argument, register new account).
+
+Your roster is displayed in a buffer called *-jabber-*. To
+disconnect, type C-x C-j C-d or M-x jabber-disconnect.
+
+You may want to use the menu bar to execute Jabber commands. To
+enable the Jabber menu, type M-x jabber-menu.
+
+For a less terse description, read the enclosed manual.
+
+For bug reports, help requests and other feedback, use the trackers
+and forums at the project page mentioned above.
+
+Configuration
+=============
+All available configuration options are described in the manual. This
+section only serves to point out the most important ones.
+
+To change how you are notified about incoming events, type M-x
+customize-group RET jabber-alerts.
+
+To activate logging of all chats, set jabber-history-enabled to t. By
+default, history will be saved in ~/.jabber_global_message_log; make
+sure that this file has appropriate permissions. Type M-x
+customize-group RET jabber-history for more options.
+
+By default, jabber.el will send a confirmation when messages sent to
+you are delivered and displayed, and also send "contact is typing"
+notifications. To change this, type M-x customize-group RET
+jabber-events, and set the three jabber-events-confirm-* variables to
+nil.
+
+File transfer
+=============
+This release of jabber.el contains experimental support for file
+transfer. It is not enabled by default. See the file
+filetransfer.txt for details.
@@ -0,0 +1,55 @@
+-*- outline -*-
+* File transfer
+
+This release of jabber.el contains some support for file transfer.
+Both sending and receiving files are supported. Since this feature
+needs more testing, it is not enabled by default. To enable it, add
+
+(require 'jabber-ft-server)
+(require 'jabber-ft-client)
+(require 'jabber-socks5)
+
+to your .emacs file. Please share your experiences - does it work for
+you? Can you suggest any improvements?
+
+** Sending files
+
+Sending files over Jabber normally requires the ability to listen on a
+network port. As of Emacs 21.3 and XEmacs 21.4, elisp programs can't
+do this, so you have to specify a JEP-0065 proxy. The variable
+jabber-socks5-proxies is a list of proxies to use. "proxy.jabber.org"
+and "proxy65.jabber.ccc.de" are the only proxies I know of.
+
+After you have specified one or more proxies, jabber.el needs to know
+their network addresses. Type M-x jabber-socks5-query-all-proxies,
+and watch the progress in the echo area. Note that you have to be
+connected when you do this, and that you have to do this every
+session.
+
+To send a file, type M-x jabber-ft-send. You will be asked for which
+file to send, and whom to send it to. You have to specify a complete
+JID with resource, such as user@domain/resource - only user@domain
+will not work. To see the resources of your contacts, set
+jabber-show-resources to t and type M-x jabber-display-roster.
+
+While the file is being sent, your Emacs will be locked up and you
+can't do anything else. Hopefully, this will be fixed some time.
+
+** Receiving files
+
+When someone tries to send a file to you, you will get a message
+either in the echo area or in a dialog box, asking you to confirm.
+You will also be asked for where to save the file.
+
+Receiving a file should not cause any interruption to your work. If
+it does, please tell.
+
+** Protocol details
+
+See JEPs 95, 96 and 65.
+
+SOCKS5 (JEP-0065) is the only stream method currently supported by
+jabber.el, in conflict with JEP-0096, which requires that In-Band
+Bytestreams be supported as well.
+
+Range requests are not supported, neither in sending nor in receiving.
@@ -0,0 +1,75 @@
+;;; hex-util.el --- Functions to encode/decode hexadecimal string.
+
+;; Copyright (C) 1999, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
+
+;; Author: Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp>
+;; Keywords: data
+
+;; This file is part of FLIM (Faithful Library about Internet Message).
+
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 2, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program; see the file COPYING. If not, write to
+;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;;; Code:
+
+(eval-when-compile
+ (defmacro hex-char-to-num (chr)
+ (` (let ((chr (, chr)))
+ (cond
+ ((and (<= ?a chr)(<= chr ?f)) (+ (- chr ?a) 10))
+ ((and (<= ?A chr)(<= chr ?F)) (+ (- chr ?A) 10))
+ ((and (<= ?0 chr)(<= chr ?9)) (- chr ?0))
+ (t (error "Invalid hexadecimal digit `%c'" chr))))))
+ (defmacro num-to-hex-char (num)
+ (` (aref "0123456789abcdef" (, num)))))
+
+(defun decode-hex-string (string)
+ "Decode hexadecimal STRING to octet string."
+ (let* ((len (length string))
+ (dst (make-string (/ len 2) 0))
+ (idx 0)(pos 0))
+ (while (< pos len)
+;;; logior and lsh are not byte-coded.
+;;; (aset dst idx (logior (lsh (hex-char-to-num (aref string pos)) 4)
+;;; (hex-char-to-num (aref string (1+ pos)))))
+ (aset dst idx (+ (* (hex-char-to-num (aref string pos)) 16)
+ (hex-char-to-num (aref string (1+ pos)))))
+ (setq idx (1+ idx)
+ pos (+ 2 pos)))
+ dst))
+
+(defun encode-hex-string (string)
+ "Encode octet STRING to hexadecimal string."
+ (let* ((len (length string))
+ (dst (make-string (* len 2) 0))
+ (idx 0)(pos 0))
+ (while (< pos len)
+;;; logand and lsh are not byte-coded.
+;;; (aset dst idx (num-to-hex-char (logand (lsh (aref string pos) -4) 15)))
+ (aset dst idx (num-to-hex-char (/ (aref string pos) 16)))
+ (setq idx (1+ idx))
+;;; (aset dst idx (num-to-hex-char (logand (aref string pos) 15)))
+ (aset dst idx (num-to-hex-char (% (aref string pos) 16)))
+ (setq idx (1+ idx)
+ pos (1+ pos)))
+ dst))
+
+(provide 'hex-util)
+
+;;; arch-tag: fe8aaa79-6c86-400e-813f-5a8cc4cb3859
+;;; hex-util.el ends here
Oops, something went wrong.

0 comments on commit b6f578c

Please sign in to comment.