Update to version 1.2.
- Remove LDAP support (broken in this release) - Remove old, unmaintained oscar protocol recode patch Approved by: erwin (mentor) Tested by: Christian Laursen <xi at borderworlds.dk>
This commit is contained in:
parent
e50e297a5a
commit
82d81e1f2f
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=209313
10 changed files with 18 additions and 506 deletions
|
@ -6,13 +6,10 @@
|
|||
#
|
||||
|
||||
PORTNAME= bitlbee
|
||||
PORTVERSION= 1.0.4
|
||||
PORTREVISION= 2
|
||||
PORTVERSION= 1.2
|
||||
CATEGORIES= irc
|
||||
MASTER_SITES= http://get.bitlbee.org/src/
|
||||
|
||||
PATCH_SITES= http://get.bitlbee.org/patches/
|
||||
|
||||
MAINTAINER= brix@FreeBSD.org
|
||||
COMMENT= An IRC to other chat networks gateway
|
||||
|
||||
|
@ -30,20 +27,14 @@ USE_RC_SUBR= bitlbee
|
|||
PKGMESSAGE= ${WRKDIR}/pkg-message
|
||||
|
||||
OPTIONS= MSN "Enable MSN protocol support" On \
|
||||
LDAP "Enable LDAP authentication support" Off \
|
||||
RECODE "Enable oscar_recode_charset" Off \
|
||||
DEBUG "Create debuggable binary" Off \
|
||||
OPENSSL "Use openssl rather than gnutls" Off \
|
||||
IPV6 "Compile IPV6 support" On
|
||||
|
||||
CONFIGURE_ARGS= --config=/var/db/bitlbee
|
||||
CONFIGURE_ARGS= --config=/var/db/bitlbee --strip=0
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if defined(WITH_LDAP)
|
||||
PATCHFILES+= ${PORTNAME}-1.0-ldap.diff
|
||||
.endif
|
||||
|
||||
.if !defined(WITHOUT_MSN)
|
||||
CONFIGURE_ARGS+=--msn=1
|
||||
.else
|
||||
|
@ -57,15 +48,6 @@ CONFIGURE_ARGS+=--ssl=gnutls
|
|||
LIB_DEPENDS+= gnutls.26:${PORTSDIR}/security/gnutls
|
||||
.endif
|
||||
|
||||
.if defined(WITH_LDAP)
|
||||
USE_OPENLDAP= yes
|
||||
CONFIGURE_ARGS+=--ldap=${LOCALBASE}
|
||||
.endif
|
||||
|
||||
.if defined(WITH_RECODE)
|
||||
EXTRA_PATCHES+= ${FILESDIR}/oscar-recode-patch
|
||||
.endif
|
||||
|
||||
.if defined(WITH_DEBUG)
|
||||
CONFIGURE_ARGS+=--debug=1
|
||||
.endif
|
||||
|
@ -75,6 +57,10 @@ CONFIGURE_ARGS+=--ipv6=0
|
|||
.endif
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} \
|
||||
-e "s:^EFLAGS=:EFLAGS=${LDFLAGS}:" \
|
||||
${WRKSRC}/configure
|
||||
|
||||
@${REINPLACE_CMD} \
|
||||
-e "s:/etc/bitlbee/motd.txt:${PREFIX}/etc/bitlbee/motd.txt:" \
|
||||
-e "s:/var/lib/bitlbee:/var/db/bitlbee:" \
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
MD5 (bitlbee-1.0.4.tar.gz) = b92e301930e2322a86b73b1f6c857674
|
||||
SHA256 (bitlbee-1.0.4.tar.gz) = 6f23f37ea641d67e56c61b70d3ac7d404243929c393302ead4758d4ffe6d5b1c
|
||||
SIZE (bitlbee-1.0.4.tar.gz) = 455833
|
||||
MD5 (bitlbee-1.0-ldap.diff) = f6641ed9b36ca2ceae292370200452fb
|
||||
SHA256 (bitlbee-1.0-ldap.diff) = 2da18c740b1c1ff6851f3a52ab0100cec251d9e1683c281a306cbbc21e6847f5
|
||||
SIZE (bitlbee-1.0-ldap.diff) = 7240
|
||||
MD5 (bitlbee-1.2.tar.gz) = 15d969391dd9bbbc9bb0d397b545a99c
|
||||
SHA256 (bitlbee-1.2.tar.gz) = ff69fa43445c833a34ea64c23178383e3abe98f2ec7e791ea0cf3913e4090bb8
|
||||
SIZE (bitlbee-1.2.tar.gz) = 469482
|
||||
|
|
|
@ -1,196 +0,0 @@
|
|||
--- irc.c.orig 2006-06-24 17:00:43.000000000 +0300
|
||||
+++ irc.c 2006-11-15 13:56:12.000000000 +0200
|
||||
@@ -116,6 +116,7 @@
|
||||
set_add( irc, "buddy_sendbuffer", "false", set_eval_bool );
|
||||
set_add( irc, "buddy_sendbuffer_delay", "200", set_eval_int );
|
||||
set_add( irc, "charset", "iso8859-1", set_eval_charset );
|
||||
+ set_add( irc, "oscar_recode_charset", "iso8859-1", set_eval_oscar_recode_charset );
|
||||
set_add( irc, "debug", "false", set_eval_bool );
|
||||
set_add( irc, "default_target", "root", NULL );
|
||||
set_add( irc, "display_namechanges", "false", set_eval_bool );
|
||||
--- protocols/oscar/oscar.c.orig 2006-06-24 17:00:44.000000000 +0300
|
||||
+++ protocols/oscar/oscar.c 2006-11-16 13:47:10.000000000 +0200
|
||||
@@ -1029,7 +1029,10 @@
|
||||
return 1;
|
||||
}
|
||||
|
||||
+extern GSList *irc_connection_list;
|
||||
+
|
||||
static int incomingim_chan1(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *userinfo, struct aim_incomingim_ch1_args *args) {
|
||||
+ char *src="";
|
||||
char *tmp = g_malloc(BUF_LONG + 1);
|
||||
struct gaim_connection *gc = sess->aux_data;
|
||||
int flags = 0;
|
||||
@@ -1038,15 +1041,22 @@
|
||||
flags |= IM_FLAG_AWAY;
|
||||
|
||||
if ((args->icbmflags & AIM_IMFLAGS_UNICODE) || (args->icbmflags & AIM_IMFLAGS_ISO_8859_1)) {
|
||||
- char *src;
|
||||
|
||||
if (args->icbmflags & AIM_IMFLAGS_UNICODE)
|
||||
src = "UNICODEBIG";
|
||||
else
|
||||
- src = "ISO8859-1";
|
||||
+ {
|
||||
+ char *cs;
|
||||
+ irc_t *irc = (irc_t*)irc_connection_list->data;
|
||||
+ if( ( cs = set_getstr( irc, "oscar_recode_charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) )
|
||||
+ src = cs;
|
||||
+ else
|
||||
+ src = "iso88590-1";
|
||||
+ }
|
||||
|
||||
/* Try to use iconv first to convert the message to UTF8 - which is what BitlBee expects */
|
||||
if (do_iconv(src, "UTF-8", args->msg, tmp, args->msglen, BUF_LONG) >= 0) {
|
||||
+ //fprintf (stderr, "bitlbee: converted from %s to utf8!\n", src);
|
||||
// Successfully converted!
|
||||
} else if (args->icbmflags & AIM_IMFLAGS_UNICODE) {
|
||||
int i;
|
||||
@@ -1062,12 +1072,32 @@
|
||||
g_snprintf(tmp+strlen(tmp), BUF_LONG-strlen(tmp), "&#%04x;", uni);
|
||||
}
|
||||
}
|
||||
+ //fprintf (stderr, "bitlbee: AIM_IMFLAGS_UNICODE, got %s!\n", tmp);
|
||||
} else {
|
||||
- g_snprintf(tmp, BUF_LONG, "%s", args->msg);
|
||||
+ char *cs;
|
||||
+ irc_t *irc = (irc_t*)irc_connection_list->data;
|
||||
+ if( ( cs = set_getstr( irc, "oscar_recode_charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) )
|
||||
+ src = cs;
|
||||
+ else
|
||||
+ src = "iso88590-1";
|
||||
+ if (do_iconv(src, "UTF-8", args->msg, tmp, args->msglen, BUF_LONG) < 0) {
|
||||
+ g_snprintf(tmp, BUF_LONG, "[1%s]%s", src, args->msg);
|
||||
+ }
|
||||
+ //fprintf (stderr, "bitlbee: not utf8, nor unicode, got %s!\n", tmp);
|
||||
}
|
||||
- } else
|
||||
- g_snprintf(tmp, BUF_LONG, "%s", args->msg);
|
||||
-
|
||||
+ } else {
|
||||
+ char *cs;
|
||||
+ irc_t *irc = (irc_t*)irc_connection_list->data;
|
||||
+ if( ( cs = set_getstr( irc, "oscar_recode_charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) )
|
||||
+ src = cs;
|
||||
+ else
|
||||
+ src = "iso88590-1";
|
||||
+ if (do_iconv(src, "UTF-8", args->msg, tmp, args->msglen, BUF_LONG) < 0) {
|
||||
+ g_snprintf(tmp, BUF_LONG, "[2%s]%s", src, args->msg);
|
||||
+ }
|
||||
+ //fprintf (stderr, "bitlbee: unknown charset, got %s!\n", tmp);
|
||||
+ }
|
||||
+
|
||||
strip_linefeed(tmp);
|
||||
serv_got_im(gc, userinfo->sn, tmp, flags, time(NULL), -1);
|
||||
g_free(tmp);
|
||||
@@ -1163,12 +1193,23 @@
|
||||
switch (args->type) {
|
||||
case 0x0001: { /* An almost-normal instant message. Mac ICQ sends this. It's peculiar. */
|
||||
char *uin, *message;
|
||||
+ char *src = "";
|
||||
+ char *cs;
|
||||
+ char *tmp = g_malloc(BUF_LONG + 1);
|
||||
+ irc_t *irc = (irc_t*)irc_connection_list->data;
|
||||
+ if( ( cs = set_getstr( irc, "oscar_recode_charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) )
|
||||
+ src = cs;
|
||||
+ else
|
||||
+ src = "iso88590-1";
|
||||
uin = g_strdup_printf("%u", args->uin);
|
||||
message = g_strdup(args->msg);
|
||||
strip_linefeed(message);
|
||||
- serv_got_im(gc, uin, message, 0, time(NULL), -1);
|
||||
+ if (do_iconv(src, "UTF-8", message, tmp, strlen (message), BUF_LONG) < 0)
|
||||
+ tmp = message;
|
||||
+ serv_got_im(gc, uin, tmp, 0, time(NULL), -1);
|
||||
g_free(uin);
|
||||
g_free(message);
|
||||
+ g_free (tmp);
|
||||
} break;
|
||||
|
||||
case 0x0004: { /* Someone sent you a URL */
|
||||
@@ -1768,9 +1809,22 @@
|
||||
char sender[32];
|
||||
char *dialog_msg = g_strdup(msg->msg);
|
||||
time_t t = get_time(msg->year, msg->month, msg->day, msg->hour, msg->minute, 0);
|
||||
+ char *tmp = g_malloc(BUF_LONG + 1);
|
||||
+ char *src = "";
|
||||
+ char *cs;
|
||||
+ irc_t *irc = (irc_t*)irc_connection_list->data;
|
||||
+ if( ( cs = set_getstr( irc, "oscar_recode_charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) )
|
||||
+ src = cs;
|
||||
+ else
|
||||
+ src = "iso88590-1";
|
||||
g_snprintf(sender, sizeof(sender), "%u", msg->sender);
|
||||
strip_linefeed(dialog_msg);
|
||||
- serv_got_im(gc, sender, dialog_msg, 0, t, -1);
|
||||
+ if (do_iconv(src, "UTF-8", dialog_msg, tmp, strlen (msg->msg), BUF_LONG) < 0)
|
||||
+ tmp = dialog_msg;
|
||||
+ //fprintf (stderr, "bitlbee: offlinemsg, got %s\n", tmp);
|
||||
+ serv_got_im(gc, sender, tmp, 0, t, -1);
|
||||
+ if (dialog_msg != tmp)
|
||||
+ g_free (tmp);
|
||||
g_free(dialog_msg);
|
||||
} break;
|
||||
|
||||
@@ -1838,6 +1892,14 @@
|
||||
} else {
|
||||
struct aim_sendimext_args args;
|
||||
char *s;
|
||||
+ char *cs;
|
||||
+ char *src="";
|
||||
+ irc_t *irc = (irc_t*)irc_connection_list->data;
|
||||
+ if( ( cs = set_getstr( irc, "oscar_recode_charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) )
|
||||
+ src = cs;
|
||||
+ else
|
||||
+ src = "iso88590-1";
|
||||
+
|
||||
|
||||
args.flags = AIM_IMFLAGS_ACK;
|
||||
if (odata->icq)
|
||||
@@ -1851,7 +1913,7 @@
|
||||
s = g_malloc(BUF_LONG);
|
||||
/* Try if we can put it in an ISO8859-1 string first.
|
||||
If we can't, fall back to UTF16. */
|
||||
- if ((ret = do_iconv("UTF-8", "ISO8859-1", message, s, len, BUF_LONG)) >= 0) {
|
||||
+ if ((ret = do_iconv("UTF-8", src, message, s, len, BUF_LONG)) >= 0) {
|
||||
args.flags |= AIM_IMFLAGS_ISO_8859_1;
|
||||
len = ret;
|
||||
} else if ((ret = do_iconv("UTF-8", "UNICODEBIG", message, s, len, BUF_LONG)) >= 0) {
|
||||
@@ -1863,6 +1925,7 @@
|
||||
s = message;
|
||||
}
|
||||
} else {
|
||||
+ //fprintf (stderr, "outgoing message is ascii!\n");
|
||||
s = message;
|
||||
}
|
||||
|
||||
--- util.c.orig 2006-06-24 17:01:00.000000000 +0300
|
||||
+++ util.c 2006-11-15 13:56:12.000000000 +0200
|
||||
@@ -453,3 +453,18 @@
|
||||
iconv_close( cd );
|
||||
return( value );
|
||||
}
|
||||
+
|
||||
+char *set_eval_oscar_recode_charset( irc_t *irc, set_t *set, char *value )
|
||||
+{
|
||||
+ iconv_t cd;
|
||||
+
|
||||
+ if ( g_strncasecmp( value, "none", 4 ) == 0 )
|
||||
+ return( value );
|
||||
+
|
||||
+ cd = iconv_open( "UTF-8", value );
|
||||
+ if( cd == (iconv_t) -1 )
|
||||
+ return( NULL );
|
||||
+
|
||||
+ iconv_close( cd );
|
||||
+ return( value );
|
||||
+}
|
||||
--- util.h.orig 2006-06-24 17:01:00.000000000 +0300
|
||||
+++ util.h 2006-11-15 13:56:12.000000000 +0200
|
||||
@@ -46,5 +46,6 @@
|
||||
|
||||
G_MODULE_EXPORT signed int do_iconv( char *from_cs, char *to_cs, char *src, char *dst, size_t size, size_t maxbuf );
|
||||
char *set_eval_charset( irc_t *irc, set_t *set, char *value );
|
||||
+char *set_eval_oscar_recode_charset( irc_t *irc, set_t *set, char *value );
|
||||
|
||||
#endif
|
|
@ -1,11 +0,0 @@
|
|||
--- Makefile.orig Sat Oct 25 06:33:13 2003
|
||||
+++ Makefile Sat Nov 1 17:09:09 2003
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
install: install-bin install-doc
|
||||
@if ! [ -d $(DESTDIR)$(CONFIG) ]; then echo -e '\nThe configuration directory $(DESTDIR)$(CONFIG) does not exist yet, don'\''t forget to create it!'; fi
|
||||
- @if ! [ -e $(DESTDIR)$(ETCDIR)/bitlbee.conf ]; then echo -e '\nNo files are installed in '$(DESTDIR)$(ETCDIR)' by make install. Run make install-etc to do that.'; fi
|
||||
+# @if ! [ -e $(DESTDIR)$(ETCDIR)/bitlbee.conf ]; then echo -e '\nNo files are installed in '$(DESTDIR)$(ETCDIR)' by make install. Run make install-etc to do that.'; fi
|
||||
@echo
|
||||
|
||||
.PHONY: install install-bin install-etc install-doc \
|
|
@ -1,20 +0,0 @@
|
|||
--- configure.orig Tue Jun 8 09:55:00 2004
|
||||
+++ configure Tue Jun 8 09:54:50 2004
|
||||
@@ -88,7 +88,7 @@
|
||||
|
||||
DESTDIR=
|
||||
LFLAGS=
|
||||
-EFLAGS=
|
||||
+EFLAGS=$LDFLAGS
|
||||
EOF
|
||||
|
||||
cat<<EOF>config.h
|
||||
@@ -113,7 +113,7 @@
|
||||
echo 'DEBUG=1' >> Makefile.settings
|
||||
echo '#define DEBUG' >> config.h
|
||||
else
|
||||
- echo 'CFLAGS=-O3' >> Makefile.settings
|
||||
+ echo "CFLAGS=$CPPFLAGS" >> Makefile.settings
|
||||
fi
|
||||
|
||||
echo CFLAGS+=-I`pwd` -I`pwd`/protocols -I. >> Makefile.settings
|
|
@ -6,13 +6,10 @@
|
|||
#
|
||||
|
||||
PORTNAME= bitlbee
|
||||
PORTVERSION= 1.0.4
|
||||
PORTREVISION= 2
|
||||
PORTVERSION= 1.2
|
||||
CATEGORIES= irc
|
||||
MASTER_SITES= http://get.bitlbee.org/src/
|
||||
|
||||
PATCH_SITES= http://get.bitlbee.org/patches/
|
||||
|
||||
MAINTAINER= brix@FreeBSD.org
|
||||
COMMENT= An IRC to other chat networks gateway
|
||||
|
||||
|
@ -30,20 +27,14 @@ USE_RC_SUBR= bitlbee
|
|||
PKGMESSAGE= ${WRKDIR}/pkg-message
|
||||
|
||||
OPTIONS= MSN "Enable MSN protocol support" On \
|
||||
LDAP "Enable LDAP authentication support" Off \
|
||||
RECODE "Enable oscar_recode_charset" Off \
|
||||
DEBUG "Create debuggable binary" Off \
|
||||
OPENSSL "Use openssl rather than gnutls" Off \
|
||||
IPV6 "Compile IPV6 support" On
|
||||
|
||||
CONFIGURE_ARGS= --config=/var/db/bitlbee
|
||||
CONFIGURE_ARGS= --config=/var/db/bitlbee --strip=0
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if defined(WITH_LDAP)
|
||||
PATCHFILES+= ${PORTNAME}-1.0-ldap.diff
|
||||
.endif
|
||||
|
||||
.if !defined(WITHOUT_MSN)
|
||||
CONFIGURE_ARGS+=--msn=1
|
||||
.else
|
||||
|
@ -57,15 +48,6 @@ CONFIGURE_ARGS+=--ssl=gnutls
|
|||
LIB_DEPENDS+= gnutls.26:${PORTSDIR}/security/gnutls
|
||||
.endif
|
||||
|
||||
.if defined(WITH_LDAP)
|
||||
USE_OPENLDAP= yes
|
||||
CONFIGURE_ARGS+=--ldap=${LOCALBASE}
|
||||
.endif
|
||||
|
||||
.if defined(WITH_RECODE)
|
||||
EXTRA_PATCHES+= ${FILESDIR}/oscar-recode-patch
|
||||
.endif
|
||||
|
||||
.if defined(WITH_DEBUG)
|
||||
CONFIGURE_ARGS+=--debug=1
|
||||
.endif
|
||||
|
@ -75,6 +57,10 @@ CONFIGURE_ARGS+=--ipv6=0
|
|||
.endif
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} \
|
||||
-e "s:^EFLAGS=:EFLAGS=${LDFLAGS}:" \
|
||||
${WRKSRC}/configure
|
||||
|
||||
@${REINPLACE_CMD} \
|
||||
-e "s:/etc/bitlbee/motd.txt:${PREFIX}/etc/bitlbee/motd.txt:" \
|
||||
-e "s:/var/lib/bitlbee:/var/db/bitlbee:" \
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
MD5 (bitlbee-1.0.4.tar.gz) = b92e301930e2322a86b73b1f6c857674
|
||||
SHA256 (bitlbee-1.0.4.tar.gz) = 6f23f37ea641d67e56c61b70d3ac7d404243929c393302ead4758d4ffe6d5b1c
|
||||
SIZE (bitlbee-1.0.4.tar.gz) = 455833
|
||||
MD5 (bitlbee-1.0-ldap.diff) = f6641ed9b36ca2ceae292370200452fb
|
||||
SHA256 (bitlbee-1.0-ldap.diff) = 2da18c740b1c1ff6851f3a52ab0100cec251d9e1683c281a306cbbc21e6847f5
|
||||
SIZE (bitlbee-1.0-ldap.diff) = 7240
|
||||
MD5 (bitlbee-1.2.tar.gz) = 15d969391dd9bbbc9bb0d397b545a99c
|
||||
SHA256 (bitlbee-1.2.tar.gz) = ff69fa43445c833a34ea64c23178383e3abe98f2ec7e791ea0cf3913e4090bb8
|
||||
SIZE (bitlbee-1.2.tar.gz) = 469482
|
||||
|
|
|
@ -1,196 +0,0 @@
|
|||
--- irc.c.orig 2006-06-24 17:00:43.000000000 +0300
|
||||
+++ irc.c 2006-11-15 13:56:12.000000000 +0200
|
||||
@@ -116,6 +116,7 @@
|
||||
set_add( irc, "buddy_sendbuffer", "false", set_eval_bool );
|
||||
set_add( irc, "buddy_sendbuffer_delay", "200", set_eval_int );
|
||||
set_add( irc, "charset", "iso8859-1", set_eval_charset );
|
||||
+ set_add( irc, "oscar_recode_charset", "iso8859-1", set_eval_oscar_recode_charset );
|
||||
set_add( irc, "debug", "false", set_eval_bool );
|
||||
set_add( irc, "default_target", "root", NULL );
|
||||
set_add( irc, "display_namechanges", "false", set_eval_bool );
|
||||
--- protocols/oscar/oscar.c.orig 2006-06-24 17:00:44.000000000 +0300
|
||||
+++ protocols/oscar/oscar.c 2006-11-16 13:47:10.000000000 +0200
|
||||
@@ -1029,7 +1029,10 @@
|
||||
return 1;
|
||||
}
|
||||
|
||||
+extern GSList *irc_connection_list;
|
||||
+
|
||||
static int incomingim_chan1(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *userinfo, struct aim_incomingim_ch1_args *args) {
|
||||
+ char *src="";
|
||||
char *tmp = g_malloc(BUF_LONG + 1);
|
||||
struct gaim_connection *gc = sess->aux_data;
|
||||
int flags = 0;
|
||||
@@ -1038,15 +1041,22 @@
|
||||
flags |= IM_FLAG_AWAY;
|
||||
|
||||
if ((args->icbmflags & AIM_IMFLAGS_UNICODE) || (args->icbmflags & AIM_IMFLAGS_ISO_8859_1)) {
|
||||
- char *src;
|
||||
|
||||
if (args->icbmflags & AIM_IMFLAGS_UNICODE)
|
||||
src = "UNICODEBIG";
|
||||
else
|
||||
- src = "ISO8859-1";
|
||||
+ {
|
||||
+ char *cs;
|
||||
+ irc_t *irc = (irc_t*)irc_connection_list->data;
|
||||
+ if( ( cs = set_getstr( irc, "oscar_recode_charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) )
|
||||
+ src = cs;
|
||||
+ else
|
||||
+ src = "iso88590-1";
|
||||
+ }
|
||||
|
||||
/* Try to use iconv first to convert the message to UTF8 - which is what BitlBee expects */
|
||||
if (do_iconv(src, "UTF-8", args->msg, tmp, args->msglen, BUF_LONG) >= 0) {
|
||||
+ //fprintf (stderr, "bitlbee: converted from %s to utf8!\n", src);
|
||||
// Successfully converted!
|
||||
} else if (args->icbmflags & AIM_IMFLAGS_UNICODE) {
|
||||
int i;
|
||||
@@ -1062,12 +1072,32 @@
|
||||
g_snprintf(tmp+strlen(tmp), BUF_LONG-strlen(tmp), "&#%04x;", uni);
|
||||
}
|
||||
}
|
||||
+ //fprintf (stderr, "bitlbee: AIM_IMFLAGS_UNICODE, got %s!\n", tmp);
|
||||
} else {
|
||||
- g_snprintf(tmp, BUF_LONG, "%s", args->msg);
|
||||
+ char *cs;
|
||||
+ irc_t *irc = (irc_t*)irc_connection_list->data;
|
||||
+ if( ( cs = set_getstr( irc, "oscar_recode_charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) )
|
||||
+ src = cs;
|
||||
+ else
|
||||
+ src = "iso88590-1";
|
||||
+ if (do_iconv(src, "UTF-8", args->msg, tmp, args->msglen, BUF_LONG) < 0) {
|
||||
+ g_snprintf(tmp, BUF_LONG, "[1%s]%s", src, args->msg);
|
||||
+ }
|
||||
+ //fprintf (stderr, "bitlbee: not utf8, nor unicode, got %s!\n", tmp);
|
||||
}
|
||||
- } else
|
||||
- g_snprintf(tmp, BUF_LONG, "%s", args->msg);
|
||||
-
|
||||
+ } else {
|
||||
+ char *cs;
|
||||
+ irc_t *irc = (irc_t*)irc_connection_list->data;
|
||||
+ if( ( cs = set_getstr( irc, "oscar_recode_charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) )
|
||||
+ src = cs;
|
||||
+ else
|
||||
+ src = "iso88590-1";
|
||||
+ if (do_iconv(src, "UTF-8", args->msg, tmp, args->msglen, BUF_LONG) < 0) {
|
||||
+ g_snprintf(tmp, BUF_LONG, "[2%s]%s", src, args->msg);
|
||||
+ }
|
||||
+ //fprintf (stderr, "bitlbee: unknown charset, got %s!\n", tmp);
|
||||
+ }
|
||||
+
|
||||
strip_linefeed(tmp);
|
||||
serv_got_im(gc, userinfo->sn, tmp, flags, time(NULL), -1);
|
||||
g_free(tmp);
|
||||
@@ -1163,12 +1193,23 @@
|
||||
switch (args->type) {
|
||||
case 0x0001: { /* An almost-normal instant message. Mac ICQ sends this. It's peculiar. */
|
||||
char *uin, *message;
|
||||
+ char *src = "";
|
||||
+ char *cs;
|
||||
+ char *tmp = g_malloc(BUF_LONG + 1);
|
||||
+ irc_t *irc = (irc_t*)irc_connection_list->data;
|
||||
+ if( ( cs = set_getstr( irc, "oscar_recode_charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) )
|
||||
+ src = cs;
|
||||
+ else
|
||||
+ src = "iso88590-1";
|
||||
uin = g_strdup_printf("%u", args->uin);
|
||||
message = g_strdup(args->msg);
|
||||
strip_linefeed(message);
|
||||
- serv_got_im(gc, uin, message, 0, time(NULL), -1);
|
||||
+ if (do_iconv(src, "UTF-8", message, tmp, strlen (message), BUF_LONG) < 0)
|
||||
+ tmp = message;
|
||||
+ serv_got_im(gc, uin, tmp, 0, time(NULL), -1);
|
||||
g_free(uin);
|
||||
g_free(message);
|
||||
+ g_free (tmp);
|
||||
} break;
|
||||
|
||||
case 0x0004: { /* Someone sent you a URL */
|
||||
@@ -1768,9 +1809,22 @@
|
||||
char sender[32];
|
||||
char *dialog_msg = g_strdup(msg->msg);
|
||||
time_t t = get_time(msg->year, msg->month, msg->day, msg->hour, msg->minute, 0);
|
||||
+ char *tmp = g_malloc(BUF_LONG + 1);
|
||||
+ char *src = "";
|
||||
+ char *cs;
|
||||
+ irc_t *irc = (irc_t*)irc_connection_list->data;
|
||||
+ if( ( cs = set_getstr( irc, "oscar_recode_charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) )
|
||||
+ src = cs;
|
||||
+ else
|
||||
+ src = "iso88590-1";
|
||||
g_snprintf(sender, sizeof(sender), "%u", msg->sender);
|
||||
strip_linefeed(dialog_msg);
|
||||
- serv_got_im(gc, sender, dialog_msg, 0, t, -1);
|
||||
+ if (do_iconv(src, "UTF-8", dialog_msg, tmp, strlen (msg->msg), BUF_LONG) < 0)
|
||||
+ tmp = dialog_msg;
|
||||
+ //fprintf (stderr, "bitlbee: offlinemsg, got %s\n", tmp);
|
||||
+ serv_got_im(gc, sender, tmp, 0, t, -1);
|
||||
+ if (dialog_msg != tmp)
|
||||
+ g_free (tmp);
|
||||
g_free(dialog_msg);
|
||||
} break;
|
||||
|
||||
@@ -1838,6 +1892,14 @@
|
||||
} else {
|
||||
struct aim_sendimext_args args;
|
||||
char *s;
|
||||
+ char *cs;
|
||||
+ char *src="";
|
||||
+ irc_t *irc = (irc_t*)irc_connection_list->data;
|
||||
+ if( ( cs = set_getstr( irc, "oscar_recode_charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) )
|
||||
+ src = cs;
|
||||
+ else
|
||||
+ src = "iso88590-1";
|
||||
+
|
||||
|
||||
args.flags = AIM_IMFLAGS_ACK;
|
||||
if (odata->icq)
|
||||
@@ -1851,7 +1913,7 @@
|
||||
s = g_malloc(BUF_LONG);
|
||||
/* Try if we can put it in an ISO8859-1 string first.
|
||||
If we can't, fall back to UTF16. */
|
||||
- if ((ret = do_iconv("UTF-8", "ISO8859-1", message, s, len, BUF_LONG)) >= 0) {
|
||||
+ if ((ret = do_iconv("UTF-8", src, message, s, len, BUF_LONG)) >= 0) {
|
||||
args.flags |= AIM_IMFLAGS_ISO_8859_1;
|
||||
len = ret;
|
||||
} else if ((ret = do_iconv("UTF-8", "UNICODEBIG", message, s, len, BUF_LONG)) >= 0) {
|
||||
@@ -1863,6 +1925,7 @@
|
||||
s = message;
|
||||
}
|
||||
} else {
|
||||
+ //fprintf (stderr, "outgoing message is ascii!\n");
|
||||
s = message;
|
||||
}
|
||||
|
||||
--- util.c.orig 2006-06-24 17:01:00.000000000 +0300
|
||||
+++ util.c 2006-11-15 13:56:12.000000000 +0200
|
||||
@@ -453,3 +453,18 @@
|
||||
iconv_close( cd );
|
||||
return( value );
|
||||
}
|
||||
+
|
||||
+char *set_eval_oscar_recode_charset( irc_t *irc, set_t *set, char *value )
|
||||
+{
|
||||
+ iconv_t cd;
|
||||
+
|
||||
+ if ( g_strncasecmp( value, "none", 4 ) == 0 )
|
||||
+ return( value );
|
||||
+
|
||||
+ cd = iconv_open( "UTF-8", value );
|
||||
+ if( cd == (iconv_t) -1 )
|
||||
+ return( NULL );
|
||||
+
|
||||
+ iconv_close( cd );
|
||||
+ return( value );
|
||||
+}
|
||||
--- util.h.orig 2006-06-24 17:01:00.000000000 +0300
|
||||
+++ util.h 2006-11-15 13:56:12.000000000 +0200
|
||||
@@ -46,5 +46,6 @@
|
||||
|
||||
G_MODULE_EXPORT signed int do_iconv( char *from_cs, char *to_cs, char *src, char *dst, size_t size, size_t maxbuf );
|
||||
char *set_eval_charset( irc_t *irc, set_t *set, char *value );
|
||||
+char *set_eval_oscar_recode_charset( irc_t *irc, set_t *set, char *value );
|
||||
|
||||
#endif
|
|
@ -1,11 +0,0 @@
|
|||
--- Makefile.orig Sat Oct 25 06:33:13 2003
|
||||
+++ Makefile Sat Nov 1 17:09:09 2003
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
install: install-bin install-doc
|
||||
@if ! [ -d $(DESTDIR)$(CONFIG) ]; then echo -e '\nThe configuration directory $(DESTDIR)$(CONFIG) does not exist yet, don'\''t forget to create it!'; fi
|
||||
- @if ! [ -e $(DESTDIR)$(ETCDIR)/bitlbee.conf ]; then echo -e '\nNo files are installed in '$(DESTDIR)$(ETCDIR)' by make install. Run make install-etc to do that.'; fi
|
||||
+# @if ! [ -e $(DESTDIR)$(ETCDIR)/bitlbee.conf ]; then echo -e '\nNo files are installed in '$(DESTDIR)$(ETCDIR)' by make install. Run make install-etc to do that.'; fi
|
||||
@echo
|
||||
|
||||
.PHONY: install install-bin install-etc install-doc \
|
|
@ -1,20 +0,0 @@
|
|||
--- configure.orig Tue Jun 8 09:55:00 2004
|
||||
+++ configure Tue Jun 8 09:54:50 2004
|
||||
@@ -88,7 +88,7 @@
|
||||
|
||||
DESTDIR=
|
||||
LFLAGS=
|
||||
-EFLAGS=
|
||||
+EFLAGS=$LDFLAGS
|
||||
EOF
|
||||
|
||||
cat<<EOF>config.h
|
||||
@@ -113,7 +113,7 @@
|
||||
echo 'DEBUG=1' >> Makefile.settings
|
||||
echo '#define DEBUG' >> config.h
|
||||
else
|
||||
- echo 'CFLAGS=-O3' >> Makefile.settings
|
||||
+ echo "CFLAGS=$CPPFLAGS" >> Makefile.settings
|
||||
fi
|
||||
|
||||
echo CFLAGS+=-I`pwd` -I`pwd`/protocols -I. >> Makefile.settings
|
Loading…
Reference in a new issue