{
public IdCard card;
-
-
bool
- display_name_handler (SList<string> stack)
+ check_stack (SList<string> stack, string[] reference)
{
- string[] display_name_path = {"display-name", "identity", "identities"};
-
- if (stack.length () != display_name_path.length)
+ if (stack.length () < reference.length)
return false;
- for (int i = 0; i<display_name_path.length; i++)
+ for (int i = 0; i<reference.length; i++)
{
- if (stack.nth_data(i) != display_name_path[i])
+ if (stack.nth_data(i) != reference[i])
return false;
}
-
+
return true;
}
+ bool
+ user_handler (SList<string> stack)
+ {
+ string[] user_path = {"user", "identity"};
+
+ return check_stack (stack, user_path);
+ }
+
+ bool
+ display_name_handler (SList<string> stack)
+ {
+ string[] display_name_path = {"display-name", "identity"};
+
+ return check_stack (stack, display_name_path);
+ }
+
public void text_element_func (MarkupParseContext context,
string text,
size_t text_len) throws MarkupError
{
card.display_name = text;
}
- else if (stack.nth_data(0) == "user")
+ else if (stack.nth_data(0) == "user" && user_handler (stack))
{
+ card.username = text;
}
else if (stack.nth_data(0) == "password")
{
var webp = new WebProvisionParser (args[1]);
- debug ("%s", card.display_name);
-
+ debug ("%s %s", card.display_name, card.username);
+
return 0;
}
}