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__ */