buffer += data->isPassword ? "" : data->value;
buffer += data->isPassword ? nsAutoString("") : data->value;
SINGSIGN_GetSignonListForViewer(nsAutoString& aSignonList){  nsAutoString buffer = "";  int signonNum = 0;  si_SignonURLStruct *url;  si_SignonUserStruct * user;  si_SignonDataStruct* data;  /* force loading of the signons file */  si_RegisterSignonPrefCallbacks();  PRInt32 urlCount = LIST_COUNT(si_signon_list);  for (PRInt32 i=0; i<urlCount; i++) {    url = NS_STATIC_CAST(si_SignonURLStruct*, si_signon_list->ElementAt(i));    PRInt32 userCount = LIST_COUNT(url->signonUser_list);    for (PRInt32 j=0; j<userCount; j++) {      user = NS_STATIC_CAST(si_SignonUserStruct*, url->signonUser_list->ElementAt(j));      /* first non-password data item for user is the username */      PRInt32 dataCount = LIST_COUNT(user->signonData_list);      for (PRInt32 k=0; k<dataCount; k++) {        data = (si_SignonDataStruct *) (user->signonData_list->ElementAt(k));        if (!(data->isPassword)) {          break;        }      }      buffer += BREAK;      buffer += "<OPTION value=";      buffer.Append(signonNum, 10);      buffer += ">";      buffer += url->URLName;      buffer += ":";      buffer += data->isPassword ? "" : data->value; // in case all fields are passwords      buffer += "</OPTION>\n";      signonNum++;    }  }  aSignonList = buffer;}