Index: src/status.c =================================================================== --- src/status.c (revision 141) +++ src/status.c (working copy) @@ -28,8 +28,9 @@ if (!available) return GG_STATUS_NOT_AVAIL_DESCR; else if (!show) return GG_STATUS_AVAIL_DESCR; else if (!strcmp(show,"away")) return GG_STATUS_BUSY_DESCR; - else if (!strcmp(show,"dnd")) return GG_STATUS_INVISIBLE_DESCR; + else if (!strcmp(show,"dnd")) return GG_STATUS_DND_DESCR; else if (!strcmp(show,"xa")) return GG_STATUS_BUSY_DESCR; + else if (!strcmp(show,"chat")) return GG_STATUS_FFC_DESCR; return GG_STATUS_AVAIL_DESCR; } else{ @@ -37,8 +38,9 @@ if (!available) return GG_STATUS_NOT_AVAIL; else if (!show) return GG_STATUS_AVAIL; else if (!strcmp(show,"away")) return GG_STATUS_BUSY; - else if (!strcmp(show,"dnd")) return GG_STATUS_INVISIBLE; + else if (!strcmp(show,"dnd")) return GG_STATUS_DND; else if (!strcmp(show,"xa")) return GG_STATUS_BUSY; + else if (!strcmp(show,"chat")) return GG_STATUS_FFC; } return GG_STATUS_AVAIL; @@ -47,7 +49,7 @@ int status_gg_to_jabber(int ggstatus,char **show,char **status){ int available; - switch(ggstatus){ + switch(GG_S(ggstatus)){ case GG_STATUS_NOT_AVAIL: case GG_STATUS_NOT_AVAIL_DESCR: available=0; @@ -63,6 +65,16 @@ available=1; *show="xa"; break; + case GG_STATUS_DND: + case GG_STATUS_DND_DESCR: + available=1; + *show="dnd"; + break; + case GG_STATUS_FFC: + case GG_STATUS_FFC_DESCR: + available=1; + *show="chat"; + break; default: available=1; *show=NULL; Index: src/search.c =================================================================== --- src/search.c (revision 141) +++ src/search.c (working copy) @@ -96,11 +96,21 @@ val=gg_pubdir50_get(results, i, GG_PUBDIR50_STATUS); switch((val)?(atoi(val) & ~GG_SEARCH_FRIENDS_MASK):-1){ case GG_STATUS_AVAIL: + case GG_STATUS_AVAIL_DESCR: form_add_result_value(item,"status",_("Available")); break; case GG_STATUS_BUSY: + case GG_STATUS_BUSY_DESCR: form_add_result_value(item,"status",_("Away")); break; + case GG_STATUS_FFC: + case GG_STATUS_FFC_DESCR: + form_add_result_value(item,"status",_("FFC")); + break; + case GG_STATUS_DND: + case GG_STATUS_DND_DESCR: + form_add_result_value(item,"status",_("DND")); + break; default: form_add_result_value(item,"status",_("Unavailable")); break; Index: src/sessions.c =================================================================== --- src/sessions.c (revision 141) +++ src/sessions.c (working copy) @@ -813,8 +813,9 @@ login_params.password=from_utf8(s->user->password); login_params.async=1; login_params.last_sysmsg=s->user->last_sys_msg; - login_params.protocol_version=GG_DEFAULT_PROTOCOL_VERSION; - login_params.client_version=GG_DEFAULT_CLIENT_VERSION; + login_params.protocol_version=0x2e/*GG_DEFAULT_PROTOCOL_VERSION*/; + login_params.protocol_features=GG_FEATURE_ALL; + login_params.client_version="8.0.0.8713"/*GG_DEFAULT_CLIENT_VERSION*/; login_params.status=GG_STATUS_INVISIBLE; if(s->user->status) login_params.status_descr=s->user->status;