out.Assign(nsDependentCString(prefix) + nsDependentCString(encodedBuf));
out.Assign(prefix); out.Append(encodedBuf);
static nsresult encodeToRACE(const char* prefix, const nsAString& in, nsACString& out){  // need maximum 20 bits to encode 16 bit Unicode character  // (include null terminator)  const PRUint32 kEncodedBufSize = kMaxDNSNodeLen * 20 / 8 + 1 + 1;    // set up a work buffer for RACE encoder  PRUnichar temp[kMaxDNSNodeLen + 2];  temp[0] = 0xFFFF;   // set a place holder (to be filled by get_compress_mode)  temp[in.Length() + 1] = (PRUnichar)'\0';  nsAString::const_iterator start, end;  in.BeginReading(start);   in.EndReading(end);    for (PRUint32 i = 1; start != end; i++)    temp[i] = *start++;  // encode nodes if non ASCII  char encodedBuf[kEncodedBufSize];  idn_result_t result = race_compress_encode((const unsigned short *) temp,                                              get_compress_mode((unsigned short *) temp + 1),                                              encodedBuf, kEncodedBufSize);  if (idn_success != result)    return NS_ERROR_FAILURE;  out.Assign(nsDependentCString(prefix) + nsDependentCString(encodedBuf));  return NS_OK;}