aLine.ToCString(cp, aLine.Length() + 1);
wallet_PutLine(nsOutputFileStream strm, const nsString& aLine, PRBool obscure){  /* allocate a buffer from the heap */  char * cp = new char[aLine.Length() + 1];  if (! cp) {    return NS_ERROR_OUT_OF_MEMORY;  }  aLine.ToCString(cp, aLine.Length() + 1);  /* output each character */  char* p = cp;  while (*p) {    strm.put(*(p++)^(obscure ? Wallet_GetKey() : (char)0));  }  strm.put('\n'^(obscure ? Wallet_GetKey() : (char)0));  delete[] cp;  return 0;}