diff --git a/mozilla/layout/generic/nsFrame.cpp b/mozilla/layout/generic/nsFrame.cpp index fd5285df8ae..60cb7231e8e 100644 --- a/mozilla/layout/generic/nsFrame.cpp +++ b/mozilla/layout/generic/nsFrame.cpp @@ -1567,7 +1567,7 @@ nsresult nsFrame::MakeFrameName(const char* aType, nsString& aResult) const { aResult = aType; - aResult.Append("<"); + aResult.Append("("); if (nsnull != mContent) { nsIAtom* tag; mContent->GetTag(tag); @@ -1579,11 +1579,41 @@ nsFrame::MakeFrameName(const char* aType, nsString& aResult) const } } char buf[40]; - PR_snprintf(buf, sizeof(buf), ">(%d)", ContentIndexInContainer(this)); + PR_snprintf(buf, sizeof(buf), ")(%d)", ContentIndexInContainer(this)); aResult.Append(buf); return NS_OK; } +void +nsFrame::XMLQuote(nsString& aString) +{ + PRInt32 i, len = aString.Length(); + for (i = 0; i < len; i++) { + PRUnichar ch = aString[i]; + if (ch == '<') { + nsAutoString tmp("<"); + aString.Cut(i, 1); + aString.Insert(tmp, i); + len += 3; + i += 3; + } + else if (ch == '>') { + nsAutoString tmp(">"); + aString.Cut(i, 1); + aString.Insert(tmp, i); + len += 3; + i += 3; + } + else if (ch == '"') { + nsAutoString tmp("""); + aString.Cut(i, 1); + aString.Insert(tmp, i); + len += 5; + i += 5; + } + } +} + NS_IMETHODIMP nsFrame::DumpRegressionData(FILE* out, PRInt32 aIndent) { @@ -1591,6 +1621,7 @@ nsFrame::DumpRegressionData(FILE* out, PRInt32 aIndent) fprintf(out, "\n"); @@ -1656,6 +1687,7 @@ nsFrame::DumpBaseRegressionData(FILE* out, PRInt32 aIndent) nsAutoString listName; list->ToString(listName); fprintf(out, "\n"); } diff --git a/mozilla/layout/generic/nsFrame.h b/mozilla/layout/generic/nsFrame.h index 250a23be0c1..67a5c119d20 100644 --- a/mozilla/layout/generic/nsFrame.h +++ b/mozilla/layout/generic/nsFrame.h @@ -328,12 +328,14 @@ protected: */ virtual void DumpBaseRegressionData(FILE* out, PRInt32 aIndent); - void IndentBy(FILE* out, PRInt32 aIndent) const { + static void IndentBy(FILE* out, PRInt32 aIndent) { while (--aIndent >= 0) fputs(" ", out); } nsresult MakeFrameName(const char* aKind, nsString& aResult) const; + static void XMLQuote(nsString& aString); + nsRect mRect; nsIContent* mContent; nsIStyleContext* mStyleContext; diff --git a/mozilla/layout/html/base/src/nsFrame.cpp b/mozilla/layout/html/base/src/nsFrame.cpp index fd5285df8ae..60cb7231e8e 100644 --- a/mozilla/layout/html/base/src/nsFrame.cpp +++ b/mozilla/layout/html/base/src/nsFrame.cpp @@ -1567,7 +1567,7 @@ nsresult nsFrame::MakeFrameName(const char* aType, nsString& aResult) const { aResult = aType; - aResult.Append("<"); + aResult.Append("("); if (nsnull != mContent) { nsIAtom* tag; mContent->GetTag(tag); @@ -1579,11 +1579,41 @@ nsFrame::MakeFrameName(const char* aType, nsString& aResult) const } } char buf[40]; - PR_snprintf(buf, sizeof(buf), ">(%d)", ContentIndexInContainer(this)); + PR_snprintf(buf, sizeof(buf), ")(%d)", ContentIndexInContainer(this)); aResult.Append(buf); return NS_OK; } +void +nsFrame::XMLQuote(nsString& aString) +{ + PRInt32 i, len = aString.Length(); + for (i = 0; i < len; i++) { + PRUnichar ch = aString[i]; + if (ch == '<') { + nsAutoString tmp("<"); + aString.Cut(i, 1); + aString.Insert(tmp, i); + len += 3; + i += 3; + } + else if (ch == '>') { + nsAutoString tmp(">"); + aString.Cut(i, 1); + aString.Insert(tmp, i); + len += 3; + i += 3; + } + else if (ch == '"') { + nsAutoString tmp("""); + aString.Cut(i, 1); + aString.Insert(tmp, i); + len += 5; + i += 5; + } + } +} + NS_IMETHODIMP nsFrame::DumpRegressionData(FILE* out, PRInt32 aIndent) { @@ -1591,6 +1621,7 @@ nsFrame::DumpRegressionData(FILE* out, PRInt32 aIndent) fprintf(out, "\n"); @@ -1656,6 +1687,7 @@ nsFrame::DumpBaseRegressionData(FILE* out, PRInt32 aIndent) nsAutoString listName; list->ToString(listName); fprintf(out, "\n"); } diff --git a/mozilla/layout/html/base/src/nsFrame.h b/mozilla/layout/html/base/src/nsFrame.h index 250a23be0c1..67a5c119d20 100644 --- a/mozilla/layout/html/base/src/nsFrame.h +++ b/mozilla/layout/html/base/src/nsFrame.h @@ -328,12 +328,14 @@ protected: */ virtual void DumpBaseRegressionData(FILE* out, PRInt32 aIndent); - void IndentBy(FILE* out, PRInt32 aIndent) const { + static void IndentBy(FILE* out, PRInt32 aIndent) { while (--aIndent >= 0) fputs(" ", out); } nsresult MakeFrameName(const char* aKind, nsString& aResult) const; + static void XMLQuote(nsString& aString); + nsRect mRect; nsIContent* mContent; nsIStyleContext* mStyleContext;