# HG changeset patch # User Mads Kiilerich # Date 1346198983 -7200 # Node ID 3eb85477c0d96680fb437fe448dd936a7b71a0fa # Parent d79df9fd5374e9e9fc9c963a53a0e476ad39c822 hgweb: avoid bad $$ processing in graph (issue3601) JavaScript .replace always magically processed $$ $& $' $` in replacement strings and thus displayed subject lines incorrectly in the graph view. Instead of regexps and .replace we now just create the strings the right way in the first place. diff -r d79df9fd5374 -r 3eb85477c0d9 mercurial/templates/gitweb/graph.tmpl --- a/mercurial/templates/gitweb/graph.tmpl Wed Aug 29 13:16:56 2012 -0500 +++ b/mercurial/templates/gitweb/graph.tmpl Wed Aug 29 02:09:43 2012 +0200 @@ -51,11 +51,6 @@ var graph = new Graph(); graph.scale({bg_height}); -var revlink = '
  • '; -revlink += '_DESC'; -revlink += ' _TAGS'; -revlink += '_DATE, by _USER
  • '; - graph.vertex = function(x, y, color, parity, cur) \{ this.ctx.beginPath(); @@ -66,13 +61,6 @@ var bg = '
  • '; var left = (this.columns + 1) * this.bg_height; var nstyle = 'padding-left: ' + left + 'px;'; - var item = revlink.replace(/_STYLE/, nstyle); - item = item.replace(/_PARITY/, 'parity' + parity); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_DESC/, cur[3]); - item = item.replace(/_USER/, cur[4]); - item = item.replace(/_DATE/, cur[5]); var tagspan = ''; if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) \{ @@ -99,7 +87,11 @@ tagspan += ''; } - item = item.replace(/_TAGS/, tagspan); + var item = '
  • '; + item += '' + cur[3] + ''; + item += ' ' + tagspan + ''; + item += '' + cur[5] + ', by ' + cur[4] + '
  • '; + return [bg, item]; } diff -r d79df9fd5374 -r 3eb85477c0d9 mercurial/templates/monoblue/graph.tmpl --- a/mercurial/templates/monoblue/graph.tmpl Wed Aug 29 13:16:56 2012 -0500 +++ b/mercurial/templates/monoblue/graph.tmpl Wed Aug 29 02:09:43 2012 +0200 @@ -49,10 +49,6 @@ var graph = new Graph(); graph.scale({bg_height}); - var revlink = '
  • '; - revlink += '_DESC'; - revlink += '_TAGS_DATE, by _USER
  • '; - graph.vertex = function(x, y, color, parity, cur) \{ this.ctx.beginPath(); @@ -63,13 +59,6 @@ var bg = '
  • '; var left = (this.columns + 1) * this.bg_height; var nstyle = 'padding-left: ' + left + 'px;'; - var item = revlink.replace(/_STYLE/, nstyle); - item = item.replace(/_PARITY/, 'parity' + parity); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_DESC/, cur[3]); - item = item.replace(/_USER/, cur[4]); - item = item.replace(/_DATE/, cur[5]); var tagspan = ''; if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) \{ @@ -96,7 +85,10 @@ tagspan += ''; } - item = item.replace(/_TAGS/, tagspan); + var item = '
  • '; + item += '' + cur[3] + ''; + item += '' + tagspan + '' + cur[5] + ', by ' + cur[4] + '
  • '; + return [bg, item]; } diff -r d79df9fd5374 -r 3eb85477c0d9 mercurial/templates/paper/graph.tmpl --- a/mercurial/templates/paper/graph.tmpl Wed Aug 29 13:16:56 2012 -0500 +++ b/mercurial/templates/paper/graph.tmpl Wed Aug 29 02:09:43 2012 +0200 @@ -62,10 +62,6 @@ var graph = new Graph(); graph.scale({bg_height}); -var revlink = '
  • '; -revlink += '_DESC'; -revlink += '_TAGS_DATE, by _USER
  • '; - graph.vertex = function(x, y, color, parity, cur) \{ this.ctx.beginPath(); @@ -76,13 +72,6 @@ var bg = '
  • '; var left = (this.columns + 1) * this.bg_height; var nstyle = 'padding-left: ' + left + 'px;'; - var item = revlink.replace(/_STYLE/, nstyle); - item = item.replace(/_PARITY/, 'parity' + parity); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_DESC/, cur[3]); - item = item.replace(/_USER/, cur[4]); - item = item.replace(/_DATE/, cur[5]); var tagspan = ''; if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) \{ @@ -108,8 +97,11 @@ } tagspan += ''; } + + var item = '
  • '; + item += '' + cur[3] + ''; + item += '' + tagspan + '' + cur[5] + ', by ' + cur[4] + '
  • '; - item = item.replace(/_TAGS/, tagspan); return [bg, item]; } diff -r d79df9fd5374 -r 3eb85477c0d9 mercurial/templates/spartan/graph.tmpl --- a/mercurial/templates/spartan/graph.tmpl Wed Aug 29 13:16:56 2012 -0500 +++ b/mercurial/templates/spartan/graph.tmpl Wed Aug 29 02:09:43 2012 +0200 @@ -43,10 +43,6 @@ var graph = new Graph(); graph.scale({bg_height}); -var revlink = '
  • '; -revlink += '_DESC'; -revlink += '_DATE, by _USER
  • '; - graph.vertex = function(x, y, color, parity, cur) \{ this.ctx.beginPath(); @@ -57,14 +53,10 @@ var bg = '
  • '; var left = (this.columns + 1) * this.bg_height; var nstyle = 'padding-left: ' + left + 'px;'; - var item = revlink.replace(/_STYLE/, nstyle); - item = item.replace(/_PARITY/, 'parity' + parity); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_DESC/, cur[3]); - item = item.replace(/_USER/, cur[4]); - item = item.replace(/_DATE/, cur[5]); - + var item = '
  • '; + item += '' + cur[3] + ''; + item += '' + cur[5] + ', by ' + cur[4] + '
  • '; + return [bg, item]; } diff -r d79df9fd5374 -r 3eb85477c0d9 tests/test-hgweb-commands.t --- a/tests/test-hgweb-commands.t Wed Aug 29 13:16:56 2012 -0500 +++ b/tests/test-hgweb-commands.t Wed Aug 29 02:09:43 2012 +0200 @@ -980,11 +980,6 @@ var graph = new Graph(); graph.scale(39); - var revlink = '
  • '; - revlink += '_DESC'; - revlink += ' _TAGS'; - revlink += '_DATE, by _USER
  • '; - graph.vertex = function(x, y, color, parity, cur) { this.ctx.beginPath(); @@ -995,13 +990,6 @@ var bg = '
  • '; var left = (this.columns + 1) * this.bg_height; var nstyle = 'padding-left: ' + left + 'px;'; - var item = revlink.replace(/_STYLE/, nstyle); - item = item.replace(/_PARITY/, 'parity' + parity); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_DESC/, cur[3]); - item = item.replace(/_USER/, cur[4]); - item = item.replace(/_DATE/, cur[5]); var tagspan = ''; if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) { @@ -1028,7 +1016,11 @@ tagspan += ''; } - item = item.replace(/_TAGS/, tagspan); + var item = '
  • '; + item += '' + cur[3] + ''; + item += ' ' + tagspan + ''; + item += '' + cur[5] + ', by ' + cur[4] + '
  • '; + return [bg, item]; } diff -r d79df9fd5374 -r 3eb85477c0d9 tests/test-hgweb-empty.t --- a/tests/test-hgweb-empty.t Wed Aug 29 13:16:56 2012 -0500 +++ b/tests/test-hgweb-empty.t Wed Aug 29 02:09:43 2012 +0200 @@ -250,10 +250,6 @@ var graph = new Graph(); graph.scale(39); - var revlink = '
  • '; - revlink += '_DESC'; - revlink += '_TAGS_DATE, by _USER
  • '; - graph.vertex = function(x, y, color, parity, cur) { this.ctx.beginPath(); @@ -264,13 +260,6 @@ var bg = '
  • '; var left = (this.columns + 1) * this.bg_height; var nstyle = 'padding-left: ' + left + 'px;'; - var item = revlink.replace(/_STYLE/, nstyle); - item = item.replace(/_PARITY/, 'parity' + parity); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_DESC/, cur[3]); - item = item.replace(/_USER/, cur[4]); - item = item.replace(/_DATE/, cur[5]); var tagspan = ''; if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) { @@ -296,8 +285,11 @@ } tagspan += ''; } + + var item = '
  • '; + item += '' + cur[3] + ''; + item += '' + tagspan + '' + cur[5] + ', by ' + cur[4] + '
  • '; - item = item.replace(/_TAGS/, tagspan); return [bg, item]; }