From 48d0f6dbbb06f8e56fbdbd8ee2bf3de342a6275c Mon Sep 17 00:00:00 2001
From: Philipp Balzarek
Date: Sun, 14 Apr 2013 23:51:46 +0200
Subject: [PATCH] fix IM Message and Presence pickler
Avoid errors when there are other elements as well
---
source/Network/Xmpp/IM/Message.hs | 5 +++--
source/Network/Xmpp/IM/Presence.hs | 5 +++--
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/source/Network/Xmpp/IM/Message.hs b/source/Network/Xmpp/IM/Message.hs
index 070a479..7d5a4b2 100644
--- a/source/Network/Xmpp/IM/Message.hs
+++ b/source/Network/Xmpp/IM/Message.hs
@@ -83,8 +83,9 @@ answerIM bd msg = case getIM msg of
--------------------------
xpIM :: PU [Element] InstantMessage
xpIM = xpWrap (\(t, s, b) -> InstantMessage t s b)
- (\(InstantMessage t s b) -> (t, s, b)) $
- xp3Tuple
+ (\(InstantMessage t s b) -> (t, s, b))
+ . xpClean
+ $ xp3Tuple
xpMessageThread
xpMessageSubject
xpMessageBody
diff --git a/source/Network/Xmpp/IM/Presence.hs b/source/Network/Xmpp/IM/Presence.hs
index c8fdb9d..dbfc4f5 100644
--- a/source/Network/Xmpp/IM/Presence.hs
+++ b/source/Network/Xmpp/IM/Presence.hs
@@ -54,9 +54,10 @@ withIMPresence imPres pres = pres{presencePayload = presencePayload pres
--
xpIMPresence :: PU [Element] IMPresence
-xpIMPresence = xpUnliftElems $
+xpIMPresence = xpUnliftElems .
xpWrap (\(s, st, p) -> IMP s st p)
- (\(IMP s st p) -> (s, st, p)) $
+ (\(IMP s st p) -> (s, st, p)) .
+ xpClean $
xp3Tuple
(xpOption $ xpElemNodes "{jabber:client}show"
(xpContent xpPrim))