aboutsummaryrefslogtreecommitdiffstats
path: root/protocols
diff options
context:
space:
mode:
Diffstat (limited to 'protocols')
-rw-r--r--protocols/jabber/conference.c18
-rw-r--r--protocols/jabber/jabber.h2
-rw-r--r--protocols/jabber/message.c13
-rw-r--r--protocols/oscar/oscar.c8
-rw-r--r--protocols/oscar/ssi.c2
-rw-r--r--protocols/twitter/twitter.c2
6 files changed, 33 insertions, 12 deletions
diff --git a/protocols/jabber/conference.c b/protocols/jabber/conference.c
index e04b9792..0c2db0b3 100644
--- a/protocols/jabber/conference.c
+++ b/protocols/jabber/conference.c
@@ -311,6 +311,15 @@ void jabber_chat_pkt_message( struct im_connection *ic, struct jabber_buddy *bud
struct jabber_chat *jc = chat ? chat->data : NULL;
char *s;
+ if( subject && chat )
+ {
+ s = bud ? strchr( bud->ext_jid, '/' ) : NULL;
+ if( s ) *s = 0;
+ imcb_chat_topic( chat, bud ? bud->ext_jid : NULL, subject->text_len > 0 ?
+ subject->text : NULL, jabber_get_timestamp( node ) );
+ if( s ) *s = '/';
+ }
+
if( bud == NULL || ( jc && ~jc->flags & JCFLAG_MESSAGE_SENT && bud == jc->me ) )
{
char *nick;
@@ -365,15 +374,6 @@ void jabber_chat_pkt_message( struct im_connection *ic, struct jabber_buddy *bud
now or just wait for the OS to do it. :-) */
return;
}
-
- if( subject )
- {
- s = strchr( bud->ext_jid, '/' );
- if( s ) *s = 0;
- imcb_chat_topic( chat, bud->ext_jid, subject->text_len > 0 ?
- subject->text : NULL, jabber_get_timestamp( node ) );
- if( s ) *s = '/';
- }
if( body && body->text_len > 0 )
{
s = strchr( bud->ext_jid, '/' );
diff --git a/protocols/jabber/jabber.h b/protocols/jabber/jabber.h
index 45a1c5c1..1523e096 100644
--- a/protocols/jabber/jabber.h
+++ b/protocols/jabber/jabber.h
@@ -58,6 +58,8 @@ typedef enum
groupchat state info too. */
JBFLAG_IS_ANONYMOUS = 8, /* For anonymous chatrooms, when we don't have
have a real JID. */
+ JBFLAG_HIDE_SUBJECT = 16, /* Hide the subject field since we probably
+ showed it already. */
} jabber_buddy_flags_t;
/* Stores a streamhost's (a.k.a. proxy) data */
diff --git a/protocols/jabber/message.c b/protocols/jabber/message.c
index 6e40e521..85c71c9d 100644
--- a/protocols/jabber/message.c
+++ b/protocols/jabber/message.c
@@ -92,9 +92,20 @@ xt_status jabber_pkt_message( struct xt_node *node, gpointer data )
g_string_append_printf( fullmsg, "URL: %s\n", url->text );
}
}
- else if( ( c = xt_find_node( node->children, "subject" ) ) && c->text_len > 0 )
+ else if( ( c = xt_find_node( node->children, "subject" ) ) && c->text_len > 0 &&
+ ( !bud || !( bud->flags & JBFLAG_HIDE_SUBJECT ) ) )
{
g_string_append_printf( fullmsg, "<< \002BitlBee\002 - Message with subject: %s >>\n", c->text );
+ if( bud )
+ bud->flags |= JBFLAG_HIDE_SUBJECT;
+ }
+ else if( bud && !c )
+ {
+ /* Yeah, possibly we're hiding changes to this field now. But nobody uses
+ this for anything useful anyway, except GMail when people reply to an
+ e-mail via chat, repeating the same subject all the time. I don't want
+ to have to remember full subject strings for everyone. */
+ bud->flags &= ~JBFLAG_HIDE_SUBJECT;
}
if( body && body->text_len > 0 ) /* Could be just a typing notification. */
diff --git a/protocols/oscar/oscar.c b/protocols/oscar/oscar.c
index db6a28f4..9283628a 100644
--- a/protocols/oscar/oscar.c
+++ b/protocols/oscar/oscar.c
@@ -516,6 +516,14 @@ static int gaim_parse_auth_resp(aim_session_t *sess, aim_frame_t *fr, ...) {
case 0x05:
/* Incorrect nick/password */
imcb_error(ic, _("Incorrect nickname or password."));
+ {
+ int max = od->icq ? 8 : 16;
+ if (strlen(ic->acc->pass) > max)
+ imcb_log(ic, "Note that the maximum password "
+ "length supported by this protocol is "
+ "%d characters, try logging in using "
+ "a shorter password.", max);
+ }
// plugin_event(event_error, (void *)980, 0, 0, 0);
break;
case 0x11:
diff --git a/protocols/oscar/ssi.c b/protocols/oscar/ssi.c
index 76b5b427..f37d98e5 100644
--- a/protocols/oscar/ssi.c
+++ b/protocols/oscar/ssi.c
@@ -414,7 +414,7 @@ int aim_ssi_cleanlist(aim_session_t *sess, aim_conn_t *conn)
for (parentgroup=sess->ssi.items; ((parentgroup) && (parentgroup->type!=AIM_SSI_TYPE_GROUP) && (parentgroup->gid==0x0000)); parentgroup=parentgroup->next);
if (!parentgroup) {
char *newgroup;
- newgroup = (char*)g_malloc(strlen("Unknown")*sizeof(char));
+ newgroup = (char*)g_malloc(strlen("Unknown")+1);
strcpy(newgroup, "Unknown");
aim_ssi_addgroups(sess, conn, &newgroup, 1);
}
diff --git a/protocols/twitter/twitter.c b/protocols/twitter/twitter.c
index d5b71bc3..d5127415 100644
--- a/protocols/twitter/twitter.c
+++ b/protocols/twitter/twitter.c
@@ -194,7 +194,7 @@ static void twitter_init( account_t *acc )
s = set_add( &acc->set, "message_length", "140", set_eval_int, acc );
- s = set_add( &acc->set, "mode", "one", set_eval_mode, acc );
+ s = set_add( &acc->set, "mode", "chat", set_eval_mode, acc );
s->flags |= ACC_SET_OFFLINE_ONLY;
s = set_add( &acc->set, "oauth", def_oauth, set_eval_bool, acc );