si_SelectDialog(const PRUnichar* szMessage, PRUnichar** pList, PRInt32* pCount) {
si_SelectDialog(const PRUnichar* szMessage, nsIPrompt* dialog, PRUnichar** pList, PRInt32* pCount) {
si_SelectDialog(const PRUnichar* szMessage, PRUnichar** pList, PRInt32* pCount) {  if (si_UserHasBeenSelected) {    /* a user was already selected for this form, use same one again */    *pCount = 0; /* last user selected is now at head of list */    return PR_TRUE;  }  nsresult rv;  NS_WITH_SERVICE(nsIPrompt, dialog, kNetSupportDialogCID, &rv);  if (NS_FAILED(rv)) {    return PR_FALSE;  }  PRInt32 selectedIndex;  PRBool rtnValue;  PRUnichar * title_string = Wallet_Localize("SelectUserTitleLine");  rv = dialog->Select( title_string, szMessage, *pCount, NS_CONST_CAST(const PRUnichar**, pList), &selectedIndex, &rtnValue );  Recycle(title_string);  *pCount = selectedIndex;  si_UserHasBeenSelected = PR_TRUE;  return rtnValue;  }