if (wallet_GetLine(fp, aItem) == -1) {
if (wallet_GetLine(fp, aItem, FALSE) == -1) {
wallet_ReadFromURLFieldToSchemaFile    (char* filename, XP_List*& list, PlacementType placement = DUP_AFTER) {  FILE* fp = fopen(filename, "r");  if (nsnull==fp) {    return;  }  /* make sure the list exists */  if(!list) {    list = XP_ListNew();    if(!list) {      fclose(fp);      return;    }  }  for (;;) {    nsAutoString * aItem;    if (wallet_GetLine(fp, aItem) == -1) {      /* end of file reached */      fclose(fp);      return;    }    XP_List * itemList = XP_ListNew();    nsAutoString * dummy = new nsAutoString("");    wallet_WriteToList(*aItem, *dummy, itemList, list, placement);    for (;;) {      nsAutoString * aItem1;      if (wallet_GetLine(fp, aItem1) == -1) {        /* end of file reached */        fclose(fp);        return;      }      if (aItem1->Length()==0) {        /* end of url reached */        break;      }      nsAutoString * aItem2;      if (wallet_GetLine(fp, aItem2) == -1) {        /* unexpected end of file reached */        delete aItem1;        fclose(fp);        return;      }      XP_List* dummy = NULL;      wallet_WriteToList(*aItem1, *aItem2, dummy, itemList, placement);      nsAutoString * aItem3;      if (wallet_GetLine(fp, aItem3) == -1) {        /* end of file reached */        fclose(fp);        return;      }      if (aItem3->Length()!=0) {        /* invalid file format */        fclose(fp);        delete aItem3;        return;      }      delete aItem3;    }  }}