if (wallet_ReadFromList(schema, dummy2, itemList, SchemaConcat_list) != -1) {
if (wallet_ReadFromList(schema, dummy2, itemList2, SchemaConcat_list) != -1) {
PRInt32 FieldToValue(    nsAutoString field,    nsAutoString& schema,    nsAutoString& value,    XP_List*& itemList,    XP_List*& resume){  /* return if no SchemaToValue list exists */  if (!wallet_SchemaToValue_list) {    return -1;  }  /* fetch schema name from field/schema tables */  XP_List* FieldToSchema_list = wallet_FieldToSchema_list;  XP_List* URLFieldToSchema_list = wallet_specificURLFieldToSchema_list;  XP_List* SchemaToValue_list;  XP_List* dummy;  if (nsnull == resume) {    resume = wallet_SchemaToValue_list;  }  if ((wallet_ReadFromList(field, schema, dummy, URLFieldToSchema_list) != -1) ||       (wallet_ReadFromList(field, schema, dummy, FieldToSchema_list) != -1)) {    /* schema name found, now fetch value from schema/value table */     SchemaToValue_list = resume;    if (wallet_ReadFromList(schema, value, itemList, SchemaToValue_list) != -1) {      /* value found, prefill it into form */      resume = SchemaToValue_list;      return 0;    } else {      /* value not found, see if concatenation rule exists */      XP_List * itemList;      XP_List * SchemaConcat_list = wallet_SchemaConcat_list;      nsAutoString dummy2;      if (wallet_ReadFromList(schema, dummy2, itemList, SchemaConcat_list) != -1) {        /* concatenation rules exist, generate value as a concatenation */        XP_List * list_ptr1;        wallet_Sublist * ptr1;        list_ptr1 = itemList;        value = nsAutoString("");        nsAutoString value2;        while((ptr1=(wallet_Sublist *) XP_ListNextObject(list_ptr1))!=0) {          SchemaToValue_list = wallet_SchemaToValue_list;          if (wallet_ReadFromList(*(ptr1->item), value2, dummy, SchemaToValue_list) != -1) {            if (value.Length()>0) {              value += " ";            }            value += value2;          }        }        resume = nsnull;        itemList = nsnull;        return 0;      }    }  } else {    /* schema name not found, use field name as schema name and fetch value */    SchemaToValue_list = resume;    if (wallet_ReadFromList(field, value, itemList, SchemaToValue_list) != -1) {      /* value found, prefill it into form */      resume = SchemaToValue_list;      return 0;    }  }  resume = nsnull;  return -1;}