extraWhiteSpace.Append(NS_LITERAL_STRING("  "));
extraWhiteSpace.AppendLiteral("  ");
XULContentSinkImpl::AddAttributes(const PRUnichar** aAttributes,                                   const PRUint32 aAttrLen,                                   nsXULPrototypeElement* aElement){  // Add tag attributes to the element  nsresult rv;  // Create storage for the attributes  nsXULPrototypeAttribute* attrs = nsnull;  if (aAttrLen > 0) {    attrs = new nsXULPrototypeAttribute[aAttrLen];    if (! attrs)      return NS_ERROR_OUT_OF_MEMORY;  }  aElement->mAttributes    = attrs;  aElement->mNumAttributes = aAttrLen;  // Copy the attributes into the prototype  PRUint32 i;  for (i = 0; i < aAttrLen; ++i) {      rv = NormalizeAttributeString(nsDependentString(aAttributes[i * 2]),                                    attrs[i].mName);      NS_ENSURE_SUCCESS(rv, rv);      rv = aElement->SetAttrAt(i, nsDependentString(aAttributes[i * 2 + 1]),                               mDocumentURL);      NS_ENSURE_SUCCESS(rv, rv);#ifdef PR_LOGGING      if (PR_LOG_TEST(gLog, PR_LOG_DEBUG)) {          nsAutoString extraWhiteSpace;          PRInt32 cnt = mContextStack.Depth();          while (--cnt >= 0)              extraWhiteSpace.Append(NS_LITERAL_STRING("  "));          nsAutoString qnameC,valueC;          qnameC.Assign(aAttributes[0]);          valueC.Assign(aAttributes[1]);          PR_LOG(gLog, PR_LOG_DEBUG,                 ("xul: %.5d. %s    %s=%s",                  -1, // XXX pass in line number                  NS_ConvertUCS2toUTF8(extraWhiteSpace).get(),                  NS_ConvertUCS2toUTF8(qnameC).get(),                  NS_ConvertUCS2toUTF8(valueC).get()));      }#endif  }  return NS_OK;}