*resultText = data.ToNewUnicode();
*resultText = ToNewUnicode(data);
SINGSIGN_Prompt    (const PRUnichar *dialogTitle, const PRUnichar *text, const PRUnichar *defaultText, PRUnichar **resultText,     const char *passwordRealm, nsIPrompt* dialog, PRBool *pressedOK, PRUint32 savePassword) {  nsresult res;  nsAutoString data, emptyUsername;  /* do only the dialog if signon preference is not enabled */  if (!si_GetSignonRememberingPref()){    return si_DoDialogIfPrefIsOff(dialogTitle,                                  text,                                  nsnull,                                  nsnull,                                  defaultText,                                  resultText,                                  passwordRealm,                                  dialog,                                  pressedOK,                                   savePassword,                                  prompt);  }  /* get previous data used with this hostname */  si_RestoreOldSignonDataFromBrowser(dialog, passwordRealm, PR_TRUE, emptyUsername, data);  /* return if data was found */  if (data.Length() != 0) {    *resultText = data.ToNewUnicode();    *pressedOK = PR_TRUE;    return NS_OK;  }  /* no data found, get new data from user */  data = defaultText;  *resultText = data.ToNewUnicode();  PRBool checked = PR_FALSE;  res = si_CheckGetData(resultText, dialogTitle, text, dialog, savePassword, &checked);  if (NS_FAILED(res)) {    /* user pressed Cancel */    PR_FREEIF(*resultText);    *pressedOK = PR_FALSE;    return NS_OK;  }  if (checked) {    Wallet_GiveCaveat(nsnull, dialog);    si_RememberSignonDataFromBrowser(passwordRealm, emptyUsername, nsAutoString(*resultText));  }  /* cleanup and return */  *pressedOK = PR_TRUE;  return NS_OK;}