aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne Georg Gleditsch <argggh@lxr.linpro.no>2011-09-22 14:49:40 +0200
committerArne Georg Gleditsch <argggh@lxr.linpro.no>2011-09-22 14:49:40 +0200
commit84fc580e278aefda62c537a05661db8ae39e55e0 (patch)
tree71c2ce4cbd570e7523c6bf72d3c191c6e27d8af8
parentcd756357a261aec69995b42d1e8b8b47903e6706 (diff)
Make "+" a legal character in release strings.
-rw-r--r--lib/LXRng/Context.pm2
-rw-r--r--lib/LXRng/Web.pm2
-rw-r--r--tmpl/release_select.tt24
-rw-r--r--webroot/.static/js/lxrng-funcs.js10
4 files changed, 10 insertions, 8 deletions
diff --git a/lib/LXRng/Context.pm b/lib/LXRng/Context.pm
index 959151b..ab8d9f2 100644
--- a/lib/LXRng/Context.pm
+++ b/lib/LXRng/Context.pm
@@ -86,7 +86,7 @@ sub new {
$$self{'tree'} = $args{'tree'};
}
- if ($$self{'tree'} =~ s/[+]([^+]*)$//) {
+ if ($$self{'tree'} =~ s/[+](.+)$//) {
$$self{'release'} = $1 if $1 ne '*';
}
diff --git a/lib/LXRng/Web.pm b/lib/LXRng/Web.pm
index 20ff899..2c72282 100644
--- a/lib/LXRng/Web.pm
+++ b/lib/LXRng/Web.pm
@@ -240,7 +240,7 @@ sub source {
'pjx_load_file' => '',
'pjx_load_fragment' => '',
'pjx_releases' => '');
- $pjx->js_encode_function('escape');
+ $pjx->js_encode_function('encodeURIComponent');
if ($context->prefs and $context->prefs->{'navmethod'} eq 'ajax') {
print($query->header(-type => 'text/html',
diff --git a/tmpl/release_select.tt2 b/tmpl/release_select.tt2
index 2e12023..9172e24 100644
--- a/tmpl/release_select.tt2
+++ b/tmpl/release_select.tt2
@@ -1,8 +1,8 @@
<select name="v" id="v"
onchange="update_version(this, '[% context.base_url %]', '[% context.tree %]', '[% context.default_release %]', '[% context.path %]');">
[% FOREACH v = context.all_releases %]
- <option value="[% v %]"
+ <option value="[% v | uri %]"
[% IF v == context.release %]selected="selected"[% END %]>
- [% v %]</option>
+ [% v | html %]</option>
[% END %]
</select>
diff --git a/webroot/.static/js/lxrng-funcs.js b/webroot/.static/js/lxrng-funcs.js
index 5da1ef9..24e956d 100644
--- a/webroot/.static/js/lxrng-funcs.js
+++ b/webroot/.static/js/lxrng-funcs.js
@@ -327,12 +327,14 @@ function load_content() {
return false;
}
var tree = location.hash.split('/', 1);
- tree = tree[0].split(/[+]/);
+ tree[0].match(/^(.+?)([+](.*)|)$/);
+ tree = RegExp.$1;
+
var ver = '';
- if (tree.length > 1) {
- ver = tree[1];
+ if (RegExp.$2) {
+ ver = RegExp.$3;
}
- tree = tree[0].replace(/^#/, '');
+ tree = tree.replace(/^#/, '');
var file = location.hash.replace(/^[^\/]*\/?/, '');
var line = file.split('#L');
if (line.length > 1) {