changeset 8369:93a811ef3ac0

coal/paper: Wrap diff in <pre/> In text-mode browsers the diff is otherwise rendered as just one long line per file. Other styles do the same.
author Rocco Rutte <pdmef@gmx.net>
date Wed, 13 May 2009 16:31:19 +0200
parents 52e6117a9940
children 45ed015b524e
files templates/coal/map templates/paper/map tests/test-hgweb-commands.out tests/test-hgweb-diffs.out tests/test-hgweb-removed.out
diffstat 5 files changed, 16 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/templates/coal/map
+++ b/templates/coal/map
@@ -35,7 +35,7 @@
 
 annotateline = '<tr class="parity{parity}"><td class="annotate"><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}" title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a></td><td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td></tr>'
 
-diffblock = '<div class="source bottomline parity{parity}">{lines}</div>'
+diffblock = '<div class="source bottomline parity{parity}"><pre>{lines}</pre></div>'
 difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>'
 difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>'
 difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>'
--- a/templates/paper/map
+++ b/templates/paper/map
@@ -35,7 +35,7 @@
 
 annotateline = '<tr class="parity{parity}"><td class="annotate"><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}" title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a></td><td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td></tr>'
 
-diffblock = '<div class="source bottomline parity{parity}">{lines}</div>'
+diffblock = '<div class="source bottomline parity{parity}"><pre>{lines}</pre></div>'
 difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>'
 difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>'
 difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>'
index ed47d418ad620890b40f513713c0d407eb7619c7..ddc6784041c5e78e14b15445ec585a0f5129ae0f
GIT binary patch
literal 29023
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
--- a/tests/test-hgweb-diffs.out
+++ b/tests/test-hgweb-diffs.out
@@ -77,15 +77,15 @@
 <div class="overflow">
 <div class="sourcefirst">   line diff</div>
 
-<div class="source bottomline parity0"><a href="#l1.1" id="l1.1">     1.1</a> <span class="minusline">--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+<div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1">     1.1</a> <span class="minusline">--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
 </span><a href="#l1.2" id="l1.2">     1.2</a> <span class="plusline">+++ b/a	Thu Jan 01 00:00:00 1970 +0000
 </span><a href="#l1.3" id="l1.3">     1.3</a> <span class="atline">@@ -0,0 +1,1 @@
 </span><a href="#l1.4" id="l1.4">     1.4</a> <span class="plusline">+a
-</span></div><div class="source bottomline parity1"><a href="#l2.1" id="l2.1">     2.1</a> <span class="minusline">--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+</span></pre></div><div class="source bottomline parity1"><pre><a href="#l2.1" id="l2.1">     2.1</a> <span class="minusline">--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
 </span><a href="#l2.2" id="l2.2">     2.2</a> <span class="plusline">+++ b/b	Thu Jan 01 00:00:00 1970 +0000
 </span><a href="#l2.3" id="l2.3">     2.3</a> <span class="atline">@@ -0,0 +1,1 @@
 </span><a href="#l2.4" id="l2.4">     2.4</a> <span class="plusline">+b
-</span></div>
+</span></pre></div>
 </div>
 
 </div>
@@ -170,11 +170,11 @@
 <div class="overflow">
 <div class="sourcefirst">   line diff</div>
 
-<div class="source bottomline parity0"><a href="#l1.1" id="l1.1">     1.1</a> <span class="minusline">--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+<div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1">     1.1</a> <span class="minusline">--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
 </span><a href="#l1.2" id="l1.2">     1.2</a> <span class="plusline">+++ b/a	Thu Jan 01 00:00:00 1970 +0000
 </span><a href="#l1.3" id="l1.3">     1.3</a> <span class="atline">@@ -0,0 +1,1 @@
 </span><a href="#l1.4" id="l1.4">     1.4</a> <span class="plusline">+a
-</span></div>
+</span></pre></div>
 </div>
 </div>
 </div>
@@ -259,17 +259,17 @@
 <div class="overflow">
 <div class="sourcefirst">   line diff</div>
 
-<div class="source bottomline parity0"><a href="#l1.1" id="l1.1">     1.1</a> new file mode 100644
+<div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1">     1.1</a> new file mode 100644
 <a href="#l1.2" id="l1.2">     1.2</a> <span class="minusline">--- /dev/null
 </span><a href="#l1.3" id="l1.3">     1.3</a> <span class="plusline">+++ b/a
 </span><a href="#l1.4" id="l1.4">     1.4</a> <span class="atline">@@ -0,0 +1,1 @@
 </span><a href="#l1.5" id="l1.5">     1.5</a> <span class="plusline">+a
-</span></div><div class="source bottomline parity1"><a href="#l2.1" id="l2.1">     2.1</a> new file mode 100644
+</span></pre></div><div class="source bottomline parity1"><pre><a href="#l2.1" id="l2.1">     2.1</a> new file mode 100644
 <a href="#l2.2" id="l2.2">     2.2</a> <span class="minusline">--- /dev/null
 </span><a href="#l2.3" id="l2.3">     2.3</a> <span class="plusline">+++ b/b
 </span><a href="#l2.4" id="l2.4">     2.4</a> <span class="atline">@@ -0,0 +1,1 @@
 </span><a href="#l2.5" id="l2.5">     2.5</a> <span class="plusline">+b
-</span></div>
+</span></pre></div>
 </div>
 
 </div>
@@ -354,12 +354,12 @@
 <div class="overflow">
 <div class="sourcefirst">   line diff</div>
 
-<div class="source bottomline parity0"><a href="#l1.1" id="l1.1">     1.1</a> new file mode 100755
+<div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1">     1.1</a> new file mode 100755
 <a href="#l1.2" id="l1.2">     1.2</a> <span class="minusline">--- /dev/null
 </span><a href="#l1.3" id="l1.3">     1.3</a> <span class="plusline">+++ b/a
 </span><a href="#l1.4" id="l1.4">     1.4</a> <span class="atline">@@ -0,0 +1,1 @@
 </span><a href="#l1.5" id="l1.5">     1.5</a> <span class="plusline">+a
-</span></div>
+</span></pre></div>
 </div>
 </div>
 </div>
--- a/tests/test-hgweb-removed.out
+++ b/tests/test-hgweb-removed.out
@@ -75,11 +75,11 @@
 <div class="overflow">
 <div class="sourcefirst">   line diff</div>
 
-<div class="source bottomline parity0"><a href="#l1.1" id="l1.1">     1.1</a> <span class="minusline">--- a/a	Thu Jan 01 00:00:00 1970 +0000
+<div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1">     1.1</a> <span class="minusline">--- a/a	Thu Jan 01 00:00:00 1970 +0000
 </span><a href="#l1.2" id="l1.2">     1.2</a> <span class="plusline">+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
 </span><a href="#l1.3" id="l1.3">     1.3</a> <span class="atline">@@ -1,1 +0,0 @@
 </span><a href="#l1.4" id="l1.4">     1.4</a> <span class="minusline">-a
-</span></div>
+</span></pre></div>
 </div>
 
 </div>
@@ -164,11 +164,11 @@
 <div class="overflow">
 <div class="sourcefirst">   line diff</div>
 
-<div class="source bottomline parity0"><a href="#l1.1" id="l1.1">     1.1</a> <span class="minusline">--- a/a	Thu Jan 01 00:00:00 1970 +0000
+<div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1">     1.1</a> <span class="minusline">--- a/a	Thu Jan 01 00:00:00 1970 +0000
 </span><a href="#l1.2" id="l1.2">     1.2</a> <span class="plusline">+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
 </span><a href="#l1.3" id="l1.3">     1.3</a> <span class="atline">@@ -1,1 +0,0 @@
 </span><a href="#l1.4" id="l1.4">     1.4</a> <span class="minusline">-a
-</span></div>
+</span></pre></div>
 </div>
 </div>
 </div>