nsIDOMNode    **aStyleNode) const
nsIDOMNode    **aStyleNode, nsString       *outValue) const
void nsHTMLEditor::IsTextPropertySetByContent(nsIDOMNode     *aNode,                                              nsIAtom        *aProperty,                                               const nsString *aAttribute,                                               const nsString *aValue,                                               PRBool         &aIsSet,                                              nsIDOMNode    **aStyleNode) const{  nsresult result;  aIsSet = PR_FALSE;  // must be initialized to false for code below to work  nsAutoString propName;  aProperty->ToString(propName);  nsCOMPtr<nsIDOMNode>parent;  result = aNode->GetParentNode(getter_AddRefs(parent));  if (NS_FAILED(result)) return;  while (parent)  {    nsCOMPtr<nsIDOMElement>element;    element = do_QueryInterface(parent);    if (element)    {      nsAutoString tag;      element->GetTagName(tag);      if (propName.EqualsIgnoreCase(tag))      {        PRBool found = PR_FALSE;        if (aAttribute && 0!=aAttribute->Length())        {          nsAutoString value;          element->GetAttribute(*aAttribute, value);          if (0!=value.Length())          {            if (!aValue) {              found = PR_TRUE;            }            else if (aValue->EqualsIgnoreCase(value)) {              found = PR_TRUE;            }            else {  // we found the prop with the attribute, but the value doesn't match              break;            }          }        }        else {           found = PR_TRUE;        }        if (PR_TRUE==found)        {          aIsSet = PR_TRUE;          break;        }      }    }    nsCOMPtr<nsIDOMNode>temp;    result = parent->GetParentNode(getter_AddRefs(temp));    if (NS_SUCCEEDED(result) && temp) {      parent = do_QueryInterface(temp);    }    else {      parent = do_QueryInterface(nsnull);    }  }}