Index: bitlbee.h
===================================================================
--- bitlbee.h (revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ bitlbee.h (revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -137,5 +137,4 @@
#include "log.h"
#include "ini.h"
-#include "help.h"
#include "query.h"
#include "sock.h"
@@ -147,5 +146,5 @@
int listen_socket;
gint listen_watch_source_id;
- help_t *help;
+ struct help *help;
char *conf_file;
conf_t *conf;
Index: doc/user-guide/misc.xml
===================================================================
--- doc/user-guide/misc.xml (revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ doc/user-guide/misc.xml (revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -268,6 +268,39 @@
+
+New stuff in BitlBee 1.2.6
+
+
+Twitter support. See help account add twitter.
+
+
+
+
+New stuff in BitlBee 1.3dev
+
+
+Support for multiple configurable control channels, each with a subset of
+your contact list. See help channels for more
+information.
+
+
+
+File transfer support for some protocols (more if you use libpurple). Just
+/DCC SEND stuff. Incoming files also become DCC transfers.
+
+
+
+Only if you run your own BitlBee instance: You can build a BitlBee that uses
+libpurple for connecting to IM networks instead of its own code, adding
+support for some of the more obscure IM protocols and features.
+
+
+
+Many more things, briefly described in help news1.3.
+
+
+
-New stuff in BitlBee 1.3dev
+New stuff in BitlBee 1.3dev (details)
Index: help.c
===================================================================
--- help.c (revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ help.c (revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -2,5 +2,5 @@
* BitlBee -- An IRC to other IM-networks gateway *
* *
- * Copyright 2002-2009 Wilmer van der Gaast and others *
+ * Copyright 2002-2010 Wilmer van der Gaast and others *
\********************************************************************/
@@ -26,4 +26,5 @@
#define BITLBEE_CORE
#include "bitlbee.h"
+#include "help.h"
#undef read
#undef write
@@ -194,2 +195,23 @@
return 1;
}
+
+char *help_get_whatsnew( help_t **help, int old )
+{
+ GString *ret = NULL;
+ help_t *h;
+ int v;
+
+ for( h = *help; h; h = h->next )
+ if( h->title != NULL && strncmp( h->title, "whatsnew", 8 ) == 0 &&
+ sscanf( h->title + 8, "%x", &v ) == 1 && v > old )
+ {
+ char *s = help_get( &h, h->title );
+ if( ret == NULL )
+ ret = g_string_new( s );
+ else
+ g_string_append_printf( ret, "\n\n%s", s );
+ g_free( s );
+ }
+
+ return ret ? g_string_free( ret, FALSE ) : NULL;
+}
Index: help.h
===================================================================
--- help.h (revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ help.h (revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -47,4 +47,5 @@
char *help_get( help_t **help, char *title );
int help_add_mem( help_t **help, const char *title, const char *content_ );
+char *help_get_whatsnew( help_t **help, int old );
#endif
Index: irc.c
===================================================================
--- irc.c (revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ irc.c (revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -112,4 +112,5 @@
s = set_add( &b->set, "last_version", NULL, NULL, irc );
s->flags |= SET_HIDDEN;
+ s->value = g_strdup_printf( "%d", BITLBEE_VERSION_CODE );
s = set_add( &b->set, "lcnicks", "true", set_eval_bool, irc );
s = set_add( &b->set, "nick_format", "%-@nick", NULL, irc );
Index: irc_commands.c
===================================================================
--- irc_commands.c (revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ irc_commands.c (revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -26,4 +26,5 @@
#define BITLBEE_CORE
#include "bitlbee.h"
+#include "help.h"
#include "ipc.h"
Index: irc_send.c
===================================================================
--- irc_send.c (revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ irc_send.c (revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -114,5 +114,5 @@
irc_channel_t *ic = NULL;
irc_user_t *iu = irc->root;
- char text[1024];
+ char text[1100];
va_list params;
char *dst;
Index: root_commands.c
===================================================================
--- root_commands.c (revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ root_commands.c (revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -1293,35 +1293,19 @@
{
int last = set_getint( &irc->b->set, "last_version" );
- GString *msg = g_string_new( "" );
- char s[16];
+ char s[16], *msg;
if( last >= BITLBEE_VERSION_CODE )
return;
- if( last < 0x010206 ) /* 1.2.6 */
- {
- g_string_append( msg,
- "Twitter support. See \x02help account add twitter\x02.\n" );
- }
- if( last < 0x010300 ) /* 1.3dev */
- {
- g_string_append( msg,
- "Support for multiple configurable control channels, "
- "each with a subset of your contact list. See "
- "\x02help channels\x02 for more information.\n"
- "File transfer support for some protocols (more if "
- "you use libpurple). Just /DCC SEND stuff. Incoming "
- "files also become DCC transfers.\n"
- "Many more things, briefly described in "
- "\x02help news1.3\x02.\n" );
- }
-
- if( msg->len > 0 )
+ msg = help_get_whatsnew( &(global.help), last );
+
+ if( msg )
irc_usermsg( irc, "%s: This seems to be your first time using this "
"this version of BitlBee. Here's a list of new "
"features you may like to know about:\n\n%s\n",
- irc->user->nick, msg->str );
-
- g_string_free( msg, TRUE );
+ irc->user->nick, msg );
+
+ g_free( msg );
+
g_snprintf( s, sizeof( s ), "%d", BITLBEE_VERSION_CODE );
set_setstr( &irc->b->set, "last_version", s );