char * wallet_GetString(PRUnichar * szMessage, PRUnichar * szMessage1)
wallet_GetString(nsAutoString& result, PRUnichar * szMessage, PRUnichar * szMessage1)
char * wallet_GetString(PRUnichar * szMessage, PRUnichar * szMessage1){  nsString password;  nsresult res;    NS_WITH_SERVICE(nsIPrompt, dialog, kNetSupportDialogCID, &res);  if (NS_FAILED(res)) {    return NULL;     // XXX should return the error  }  PRUnichar* pwd = NULL;  PRInt32 buttonPressed = 1; /* in case user exits dialog by clickin X */  PRUnichar * prompt_string = Wallet_Localize("PromptForPassword");  res = dialog->UniversalDialog(    NULL, /* title message */    prompt_string, /* title text in top line of window */    szMessage, /* this is the main message */    NULL, /* This is the checkbox message */    NULL, /* first button text, becomes OK by default */    NULL, /* second button text, becomes CANCEL by default */    NULL, /* third button text */    NULL, /* fourth button text */    szMessage1, /* first edit field label */    NULL, /* second edit field label */    &pwd, /* first edit field initial and final value */    NULL, /* second edit field initial and final value */    NULL,  /* icon: question mark by default */    NULL, /* initial and final value of checkbox */    2, /* number of buttons */    1, /* number of edit fields */    1, /* is first edit field a password field */    &buttonPressed);  Recycle(prompt_string);  if (NS_FAILED(res)) {    return NULL;  }  password = pwd;  delete[] pwd;  if (buttonPressed == 0) {    return password.ToNewCString();  } else {    return NULL; /* user pressed cancel */  }}