Skip to content
Commit 68a93926 authored by eta's avatar eta
Browse files

xmpp: libstrophe stanza bindings, gray streams, SWANK support (!)

- We now have some bindings to libstrophe's stanza creation and getter
  functions.
  - Stanzas coming from C->Lisp get all of their properties (children,
    name, attrs) read out as Lisp objects when crossing the FFI
    boundary. You can't currently mutate them, but it's unclear when
    you'd really want to do that.
  - Lisp code can create stanzas by instantiating a NODE-STANZA or a
    TEXT-STANZA, which creates a libstrophe stanza behind the scenes and
    does the necessary libstrophe calls to add all the Lisp properties
    to the C object.
  - The STANZAIZE macro is a nice CXML-style overlay to make stanzas in
    Lisp.
  - (and it's possible to verify its function with RENDER-STANZA, which
    is libstrophe-backed!)
- A Gray stream is used to redirect *STANDARD-OUTPUT* and *ERROR-OUTPUT*
  to weechat's weechat_printf() function, so it doesn't mess up the
  terminal (and you can actually see it, too).
- An *incredibly* hacky support file to make Emacs' SLIME/SWANK work is
  now included.
  - This required hacking up SWANK's :FD-HANDLER support to integrate
    with weechat's event loop.
  - The WEE-IMPL::HOOK-FD function can be used to register a callback
    when a given file descriptor is readable.
  - However, the SWANK code is architected rather stupidly, and needed
    some bodging to get everything to work.
  - This can and should be done more cleanly in future.
  - Also, attempting to do 2 connections currently crashes WeeChat...
parent b2dc77e0
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment