From a12e1a5defaab30bab64ec36d27b6e0f3a8cd570 Mon Sep 17 00:00:00 2001 From: Geoff Lankow Date: Wed, 3 Feb 2010 13:59:01 +0100 Subject: [PATCH] Bug 295506 - Variable tabulator width instead of fixed width of 4 spaces. r=mrbkap --- parser/htmlparser/src/nsViewSourceHTML.cpp | 12 ++++++++++++ parser/htmlparser/src/nsViewSourceHTML.h | 1 + 2 files changed, 13 insertions(+) diff --git a/parser/htmlparser/src/nsViewSourceHTML.cpp b/parser/htmlparser/src/nsViewSourceHTML.cpp index 5f905994c511..38fcb948da6d 100644 --- a/parser/htmlparser/src/nsViewSourceHTML.cpp +++ b/parser/htmlparser/src/nsViewSourceHTML.cpp @@ -94,6 +94,7 @@ Stopwatch vsTimer; // viewsource.css; the setting is remembered between invocations using a pref. static const char kBodyId[] = "viewsource"; static const char kBodyClassWrap[] = "wrap"; +static const char kBodyTabSize[] = "-moz-tab-size: "; NS_IMPL_ISUPPORTS1(CViewSourceHTML, nsIDTD) @@ -197,6 +198,7 @@ CViewSourceHTML::CViewSourceHTML() { mSyntaxHighlight = PR_FALSE; mWrapLongLines = PR_FALSE; + mTabSize = -1; nsCOMPtr prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID)); if (prefBranch) { PRBool temp; @@ -206,6 +208,9 @@ CViewSourceHTML::CViewSourceHTML() rv = prefBranch->GetBoolPref("view_source.wrap_long_lines", &temp); mWrapLongLines = NS_SUCCEEDED(rv) ? temp : PR_FALSE; + + rv = prefBranch->GetIntPref("view_source.tab_size", &temp); + mTabSize = NS_SUCCEEDED(rv) ? temp : -1; } mSink = 0; @@ -402,6 +407,13 @@ NS_IMETHODIMP CViewSourceHTML::BuildModel(nsITokenizer* aTokenizer, NS_LITERAL_STRING("class"), NS_ConvertASCIItoUTF16(kBodyClassWrap)); } + if (mTabSize >= 0) { + nsAutoString styleValue = NS_ConvertASCIItoUTF16(kBodyTabSize); + styleValue.AppendInt(mTabSize); + AddAttrToNode(bodyNode, theAllocator, + NS_LITERAL_STRING("style"), + styleValue); + } result = mSink->OpenContainer(bodyNode); if(NS_SUCCEEDED(result)) mHasOpenBody=PR_TRUE; } diff --git a/parser/htmlparser/src/nsViewSourceHTML.h b/parser/htmlparser/src/nsViewSourceHTML.h index e7ed360888d2..3a0586e0f3c1 100644 --- a/parser/htmlparser/src/nsViewSourceHTML.h +++ b/parser/htmlparser/src/nsViewSourceHTML.h @@ -141,6 +141,7 @@ protected: PRInt32 mLineNumber; nsITokenizer* mTokenizer; // weak + PRInt32 mTabSize; PRPackedBool mSyntaxHighlight; PRPackedBool mWrapLongLines; PRPackedBool mHasOpenRoot;