diff -pruN freetalk/configure.ac freetalk-h/configure.ac
--- freetalk/configure.ac 2008-05-30 10:25:05.000000000 +0530
+++ freetalk-h/configure.ac 2008-06-07 18:52:17.000000000 +0530
@@ -17,7 +17,7 @@ AC_PROG_CXX
AC_SEARCH_LIBS([tgetent],[ncurses termcap curses])
AC_CHECK_LIB([readline], [readline],,AC_MSG_ERROR([ERROR! readline not found...]))
GUILE_FLAGS
-AC_CHECK_LIB([guile],[scm_to_locale_string],,AC_MSG_ERROR([ERROR! Guile 1.8 or above required.]))
+AC_CHECK_LIB([guile],[scm_boot_guile],,AC_MSG_ERROR([ERROR! Guile 1.6 or above required.]))
AC_CHECK_PROG([PKGCONFIG], [pkg-config], [yes], [no])
if test "x$PKGCONFIG" = "xno"; then
diff -pruN freetalk/doc/Makefile.am freetalk-h/doc/Makefile.am
--- freetalk/doc/Makefile.am 2008-05-30 10:25:00.000000000 +0530
+++ freetalk-h/doc/Makefile.am 2008-06-07 18:51:07.000000000 +0530
@@ -2,9 +2,9 @@
info_TEXINFOS = freetalk.texi
freetalk_TEXINFOS = authors.texi gpl.texi fdl.texi permissions.texi
-dist_man_MANS = freetalk.1
+man_MANS = freetalk.1
-EXTRA_DIST = freetalk.1
+EXTRA_DIST = $(man_MANS)
CLEANFILES = *~
DISTCLEANFILES = .deps/*.P *.info *vti
diff -pruN freetalk/extensions/init.scm.in freetalk-h/extensions/init.scm.in
--- freetalk/extensions/init.scm.in 2008-05-30 10:25:04.000000000 +0530
+++ freetalk-h/extensions/init.scm.in 2008-06-07 19:14:10.000000000 +0530
@@ -16,6 +16,7 @@
;;; along with this program. If not, see
;;; .
+(use-modules (ice-9 rdelim))
(use-modules (ice-9 debugger))
(use-modules (ice-9 format))
(debug-enable 'backtrace)
diff -pruN freetalk/extensions/state.scm freetalk-h/extensions/state.scm
--- freetalk/extensions/state.scm 2008-05-30 10:25:04.000000000 +0530
+++ freetalk-h/extensions/state.scm 2008-06-04 23:22:17.000000000 +0530
@@ -27,7 +27,7 @@
(define (/status args)
(usual-crap ft-get-status-msg ft-set-status-msg! "Current status: " args))
-(add-command! /status "/status" "/status [online|away|chat|xa|dnd] [MESSAGE]" "set status message")
+(add-command! /status "/status" "/status [online|away|chat|xa|dnd|invisible] [MESSAGE]" "set status message")
(define (/server args)
(usual-crap ft-get-server ft-set-server! "Current server: " args))
diff -pruN freetalk/src/commands.cc freetalk-h/src/commands.cc
--- freetalk/src/commands.cc 2008-05-30 10:25:04.000000000 +0530
+++ freetalk-h/src/commands.cc 2008-06-07 18:46:08.000000000 +0530
@@ -439,7 +439,7 @@ do_add (char *jid)
int
do_set_status_msg (char *status)
{
- const char *valid[] = { "online", "away", "chat", "xa", "dnd", NULL }, *text = NULL;
+ const char *valid[] = { "online", "away", "chat", "xa", "dnd", "invisible", NULL }, *text = NULL;
int show, offset;
if((text = strchr(status, ' '))) {
@@ -454,7 +454,7 @@ do_set_status_msg (char *status)
}
}
if( !valid[show] ) {
- PRINTF ("Status must be one of [online|away|chat|xa|dnd]");
+ PRINTF ("Status must be one of [online|away|chat|xa|dnd|invisible]");
return -1;
}
if (state.status_msg)
@@ -463,7 +463,11 @@ do_set_status_msg (char *status)
LmMessage *msg = lm_message_new (NULL, LM_MESSAGE_TYPE_PRESENCE);
if( show != 0 ) { // online status is implicit
- lm_message_node_add_child (msg->node, "show", valid[show]);
+ if (!strcmp (valid[show], "invisible")) {
+ lm_message_node_set_attribute (msg->node, "type", "unavailable");
+ } else {
+ lm_message_node_add_child (msg->node, "show", valid[show]);
+ }
}
if( text != NULL ) {
lm_message_node_add_child (msg->node, "status", text);
diff -pruN freetalk/src/compat.h freetalk-h/src/compat.h
--- freetalk/src/compat.h 2008-05-30 10:25:05.000000000 +0530
+++ freetalk-h/src/compat.h 2008-06-07 11:20:45.000000000 +0530
@@ -108,7 +108,7 @@ error_t argp_parse_ (const struct argp *
#include
#endif /* HAVE_ARGP */
-/*
+
#include
#if SCM_MAJOR_VERSION == 1 && SCM_MINOR_VERSION == 6
@@ -125,6 +125,6 @@ error_t argp_parse_ (const struct argp *
#define scm_from_bool(x) SCM_BOOL(x)
#define scm_to_bool(x) (!SCM_FALSEP (x))
-#endif */
+#endif
#endif /* __COMPAT_H__ */