diff options
Diffstat (limited to 'src/net/java/sip/communicator/impl/protocol/irc/ChatRoomIrcImpl.java')
-rw-r--r-- | src/net/java/sip/communicator/impl/protocol/irc/ChatRoomIrcImpl.java | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/src/net/java/sip/communicator/impl/protocol/irc/ChatRoomIrcImpl.java b/src/net/java/sip/communicator/impl/protocol/irc/ChatRoomIrcImpl.java index 8e9c7ff..8dc67f1 100644 --- a/src/net/java/sip/communicator/impl/protocol/irc/ChatRoomIrcImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/irc/ChatRoomIrcImpl.java @@ -702,17 +702,36 @@ public class ChatRoomIrcImpl { assertConnected(); - if (((MessageIrcImpl) message).isCommand()) - { - parentProvider.getIrcStack().sendCommand(this, message); - } - else + String[] splitMessages = message.getContent().split("\n"); + + String messagePortion = null; + for (int i = 0; i < splitMessages.length; i ++) { - parentProvider.getIrcStack() - .sendMessage(chatRoomName, message.getContent()); - } + messagePortion = splitMessages[i]; + + // As we only send one message per line, we ignore empty lines in + // the incoming multi line message. + if(messagePortion.equals("\n") + || messagePortion.matches("[\\ ]*")) + continue; - this.fireMessageDeliveredEvent(message); + if (((MessageIrcImpl) message).isCommand()) + { + parentProvider.getIrcStack() + .sendCommand(this, messagePortion); + } + else + { + parentProvider.getIrcStack() + .sendMessage(chatRoomName, messagePortion); + } + + this.fireMessageDeliveredEvent( + new MessageIrcImpl( messagePortion, + message.getContentType(), + message.getEncoding(), + message.getSubject())); + } } /** |