[ekg2-commit] r4030 - trunk/plugins/jabber: trunk/plugins/jabber/jabber.c trunk/plugins/jabber/jabber_handlers.c
SVN commit
svn w toxygen.net
Czw, 26 Cze 2008, 19:27:53 CEST
Author: wiechu
Date: 2008-06-26 19:27:53 +0200 (Thu, 26 Jun 2008)
New Revision: 4030
Modified:
trunk/plugins/jabber/jabber.c
trunk/plugins/jabber/jabber_handlers.c
Log:
Nicer display of jabber:x:data form.
Modified: trunk/plugins/jabber/jabber.c
===================================================================
--- trunk/plugins/jabber/jabber.c 2008-06-25 22:26:53 UTC (rev 4029)
+++ trunk/plugins/jabber/jabber.c 2008-06-26 17:27:53 UTC (rev 4030)
@@ -1262,6 +1262,7 @@
format_add("jabber_form_command", _("%g|| %nType %W/%3 %g%2 %W%4%n"), 1);
format_add("jabber_form_instructions", "%g|| %n%|%3", 1);
+ format_add("jabber_form_description", "%g|| %n%|%3", 1);
format_add("jabber_form_end", _("%g`+=%G----- End of this %3 form ;)%n"), 1);
format_add("jabber_registration_item", "%g|| %n --%3 %4%n", 1); /* %3 - keyname %4 - value */ /* XXX, merge */
Modified: trunk/plugins/jabber/jabber_handlers.c
===================================================================
--- trunk/plugins/jabber/jabber_handlers.c 2008-06-25 22:26:53 UTC (rev 4029)
+++ trunk/plugins/jabber/jabber_handlers.c 2008-06-26 17:27:53 UTC (rev 4030)
@@ -1090,12 +1090,14 @@
} else if (!xstrcmp(node->name, "field")) {
xmlnode_t *child;
char *label = jabber_unescape(jabber_attr(node->atts, "label"));
+ char *type = jabber_unescape(jabber_attr(node->atts, "type"));
char *var = jabber_unescape(jabber_attr(node->atts, "var"));
char *def_option = NULL;
string_t sub = NULL;
int subcount = 0;
int isreq = 0; /* -1 - optional; 1 - required */
+ /* ?WO? XEP-0004 tells nothing about optional values ??? */
if (!fieldcount) print("jabber_form_command", session_name(s), uid, command, param);
@@ -1126,8 +1128,13 @@
} else debug_error("[jabber] wtf? FIELD->CHILD: %s\n", child->name);
}
- print("jabber_form_item", session_name(s), uid, label, var, def_option,
- isreq == -1 ? "X" : isreq == 1 ? "V" : " ");
+ if (!(xstrcmp(type, "fixed")))
+ print("jabber_form_description", session_name(s), uid, def_option);
+ else if (!(xstrcmp(type, "hidden")))
+ print("jabber_form_hidden", session_name(s), uid, label, var, def_option);
+ else
+ print("jabber_form_item", session_name(s), uid, label, var, def_option,
+ isreq == -1 ? "X" : isreq == 1 ? "V" : " ", type);
if (sub && sub->len > 1) {
int len = sub->len;
@@ -1137,6 +1144,7 @@
}
fieldcount++;
xfree(var);
+ xfree(type);
xfree(label);
}
}
Więcej informacji o liście dyskusyjnej ekg2-commit