data = (si_SignonDataStruct *) (user->signonData_list->ElementAt(0));
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; } }
SINGSIGN_GetSignonListForViewer(nsString& aSignonList){  char *buffer = (char*)PR_Malloc(BUFLEN2);  int g = 0, signonNum;  si_SignonURLStruct *url;  si_SignonUserStruct * user;  si_SignonDataStruct* data;  /* force loading of the signons file */  si_RegisterSignonPrefCallbacks();  buffer[0] = '\0';  signonNum = 0;  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 data item for user is the username */      data = (si_SignonDataStruct *) (user->signonData_list->ElementAt(0));      g += PR_snprintf(buffer+g, BUFLEN2-g,"%c        <OPTION value=%d>%s:%s</OPTION>\n",        BREAK,        signonNum,        url->URLName,        data->value      );      signonNum++;    }  }  aSignonList = buffer;  PR_FREEIF(buffer);}