Bug 134132

Summary: konversationircprotocolhandler uses bashism and wrong (changed) dcop
Product: [Applications] konversation Reporter: Tom Vollerthun <vollerthun>
Component: generalAssignee: Konversation Developers <konversation-devel>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 1.0   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Tom Vollerthun 2006-09-15 19:40:16 UTC
Version:           1.0 (using KDE 3.5.4, Kubuntu Package 4:3.5.4-0ubuntu11 )
Compiler:          Target: i486-linux-gnu
OS:                Linux (i686) release 2.6.17-7-generic

Line 16 contains the expansion ${channel:0:1}, which is unknown to /bin/sh.
Line 19 contains dcop call to "dcop konversation Konversation " while it should be "dcop konversation irc".

Find corrected script for your convenience below:

#!/bin/bash
# Copyright 2004-2005 by İsmail Dönmez <ismail@kde.org.tr>

# A script for Konversation to call connectToServer for each instance of Konversation.

url=`echo $1 | sed -e "s,irc://,,"`
server_and_port=`echo $url | sed -e "s,\b/.*,,"`
server=`echo $server_and_port| awk -F":" '{print $1}'`
port=`echo $server_and_port| awk -F":" '{print $2}'`
channel_and_password=`echo $url | awk -F"/" '{print $2}'`
channel=`echo $channel_and_password | awk -F"?" '{print $1}'`
password=`echo $channel_and_password | awk -F"?" '{print $2}'`

if test -z "$port";then port=6667;fi;

if test ! ${channel:0:1} == '#' && test ! -z $channel ;then channel="#"$channel;fi 

if [ `pidof konversation` ]; then
    dcop konversation irc connectToServer $server $port "$channel" "$password"
else
    konversation --server $server --port $port --channel "$channel" --password "$password"
fi
Comment 1 Eike Hein 2006-09-15 20:09:32 UTC
SVN commit 584880 by hein:

Change the protocol handler to use the new DCOP interface
and don't hand bashisms to /bin/sh. Patch by Tom Vollerthun.
BUG:134132


 M  +2 -0      ChangeLog  
 M  +1 -1      src/commit.h  
 M  +3 -5      src/konversationircprotocolhandler  


--- trunk/extragear/network/konversation/ChangeLog #584879:584880
@@ -3,6 +3,8 @@
 - Fix dcop irc::setBack.
 - Don't treat & in tab names as accels in treelist items.
 - Fix ignoring nicknames with [ or ] in them.
+- Make protocol handler work with the changed DCOP interface,
+  don't hand bashism to sh.
 
 -------------------------------------------------------------------------------
 
--- trunk/extragear/network/konversation/src/commit.h #584879:584880
@@ -1,4 +1,4 @@
 // This COMMIT number is added to version string to be used as "patch level"
 #ifndef COMMIT
-#define COMMIT 3173
+#define COMMIT 3174
 #endif
--- trunk/extragear/network/konversation/src/konversationircprotocolhandler #584879:584880
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # Copyright 2004-2005 by İsmail Dönmez <ismail@kde.org.tr>
 
 # A script for Konversation to call connectToServer for each instance of Konversation.
@@ -13,12 +13,10 @@
 
 if test -z "$port";then port=6667;fi;
 
-if test ! ${channel:0:1} == '#' && test ! -z $channel ;then channel="#"$channel;fi 
+if test ! ${channel:0:1} == '#' && test ! -z $channel ;then channel="#"$channel;fi
 
 if [ `pidof konversation` ]; then
-    dcop konversation Konversation connectToServer $server $port "$channel" "$password"
+    dcop konversation default connectToServer $server $port "$channel" "$password"
 else
     konversation --server $server --port $port --channel "$channel" --password "$password"
 fi
-
-