# Check for ChatState (XEP-0085) support
set msgChatState ""
if {[wrapper::havechildtag $xmldata active]} {
set chatstate(havecs) true
set msgChatState active
} elseif {[wrapper::havechildtag $xmldata composing]} {
set chatstate(havecs) true
set msgChatState composing
} elseif {[wrapper::havechildtag $xmldata paused]} {
set chatstate(havecs) true
set msgChatState paused
} elseif {[wrapper::havechildtag $xmldata inactive]} {
set chatstate(havecs) true
set msgChatState inactive
} elseif {[wrapper::havechildtag $xmldata gone]} {
set chatstate(havecs) true
set msgChatState gone
} else {
if { $chatstate(havecs) ne "true" } {
set chatstate(havecs) false
}
}
we have this in jabber/Chat.tcl:
# Check for ChatState (XEP-0085) support :havechildtag $xmldata active]} { :havechildtag $xmldata composing]} { :havechildtag $xmldata paused]} { :havechildtag $xmldata inactive]} { :havechildtag $xmldata gone]} {
set msgChatState ""
if {[wrapper:
set chatstate(havecs) true
set msgChatState active
} elseif {[wrapper:
set chatstate(havecs) true
set msgChatState composing
} elseif {[wrapper:
set chatstate(havecs) true
set msgChatState paused
} elseif {[wrapper:
set chatstate(havecs) true
set msgChatState inactive
} elseif {[wrapper:
set chatstate(havecs) true
set msgChatState gone
} else {
if { $chatstate(havecs) ne "true" } {
set chatstate(havecs) false
}
}