commit ffb9b53034857fb40a76dbfa1676c8454a0e8399
parent c275962b7710c3d158504c74b80a429adaa71a31
Author: Davide P. Cervone <dpvc@union.edu>
Date: Mon, 1 Apr 2013 08:38:44 -0400
Merge remote-tracking branch 'fred/issue367-bis' into develop
Resolves issues #367.
Diffstat:
5 files changed, 45 insertions(+), 23 deletions(-)
diff --git a/unpacked/MathJax.js b/unpacked/MathJax.js
@@ -1732,7 +1732,13 @@ MathJax.Hub = {
}
}}
return dst;
- }
+ },
+
+ // Old browsers (e.g. Internet Explorer <= 8) do not support trim().
+ SplitList: ("trim" in String.prototype ?
+ function (list) {return list.trim().split(/\s+/)} :
+ function (list) {return list.replace(/^\s+/,'').
+ replace(/\s+$/,'').split(/\s+/)})
};
MathJax.Hub.Insert(MathJax.Hub.config.styles,MathJax.Message.styles);
MathJax.Hub.Insert(MathJax.Hub.config.styles,{".MathJax_Error":MathJax.Hub.config.errorSettings.style});
diff --git a/unpacked/jax/output/HTML-CSS/autoload/menclose.js b/unpacked/jax/output/HTML-CSS/autoload/menclose.js
@@ -51,7 +51,7 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
var frame = HTMLCSS.createFrame(stack,H+D,0,W,t,"none");
frame.id = "MathJax-frame-"+this.spanID;
HTMLCSS.addBox(stack,frame); stack.insertBefore(frame,base); // move base to above background
- var notation = values.notation.split(/ /);
+ var notation = MathJax.Hub.SplitList(values.notation);
var T = 0, B = 0, R = 0, L = 0, dx = 0, dy = 0; var svg, vml;
var w, h, r;
if (!values.mathcolor) {values.mathcolor = "black"} else {span.style.color = values.mathcolor}
diff --git a/unpacked/jax/output/HTML-CSS/autoload/mtable.js b/unpacked/jax/output/HTML-CSS/autoload/mtable.js
@@ -1,3 +1,5 @@
+/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
/*************************************************************
*
* MathJax/jax/output/HTML-CSS/autoload/mtable.js
@@ -93,13 +95,14 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
//
// Determine spacing and alignment
//
- var CSPACE = values.columnspacing.split(/ /),
- RSPACE = values.rowspacing.split(/ /),
- CALIGN = values.columnalign.split(/ /),
- RALIGN = values.rowalign.split(/ /),
- CLINES = values.columnlines.split(/ /),
- RLINES = values.rowlines.split(/ /),
- CWIDTH = values.columnwidth.split(/ /),
+ var SPLIT = MathJax.Hub.SplitList;
+ var CSPACE = SPLIT(values.columnspacing),
+ RSPACE = SPLIT(values.rowspacing),
+ CALIGN = SPLIT(values.columnalign),
+ RALIGN = SPLIT(values.rowalign),
+ CLINES = SPLIT(values.columnlines),
+ RLINES = SPLIT(values.rowlines),
+ CWIDTH = SPLIT(values.columnwidth),
RCALIGN = [];
for (i = 0, m = CSPACE.length; i < m; i++) {CSPACE[i] = HTMLCSS.length2em(CSPACE[i],mu)}
for (i = 0, m = RSPACE.length; i < m; i++) {RSPACE[i] = HTMLCSS.length2em(RSPACE[i],mu)}
@@ -121,7 +124,7 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
row = this.data[i]; RCALIGN[i] = [];
if (row.rowalign) {RALIGN[i] = row.rowalign}
if (row.columnalign) {
- RCALIGN[i] = row.columnalign.split(/ /);
+ RCALIGN[i] = SPLIT(row.columnalign);
while (RCALIGN[i].length <= J) {RCALIGN[i].push(RCALIGN[i][RCALIGN[i].length-1])}
}
}
@@ -149,8 +152,13 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
var fx = 0, fy = 0, fW, fH = HD;
if (values.frame !== "none" ||
(values.columnlines+values.rowlines).match(/solid|dashed/)) {
- fx = HTMLCSS.length2em(values.framespacing.split(/[, ]+/)[0],mu);
- fy = HTMLCSS.length2em(values.framespacing.split(/[, ]+/)[1],mu);
+ var frameSpacing = SPLIT(values.framespacing);
+ if (frameSpacing.length != 2) {
+ // invalid attribute value: use the default.
+ frameSpacing = SPLIT(this.defaults.framespacing);
+ }
+ fx = HTMLCSS.length2em(frameSpacing[0],mu);
+ fy = HTMLCSS.length2em(frameSpacing[1],mu);
fH = HD + 2*fy; // fW waits until stack.bbox.w is determined
}
//
diff --git a/unpacked/jax/output/SVG/autoload/menclose.js b/unpacked/jax/output/SVG/autoload/menclose.js
@@ -1,3 +1,5 @@
+/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
/*************************************************************
*
* MathJax/jax/output/SVG/autoload/menclose.js
@@ -108,7 +110,7 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
var p = SVG.length2em(values.padding,mu,1/SVG.em) * scale; // padding for enclosure
var t = SVG.length2em(values.thickness,mu,1/SVG.em); // thickness of lines (not scaled, see issue #414)
var H = base.h+p+t, D = base.d+p+t, W = base.w+2*(p+t);
- var notation = values.notation.split(/ /);
+ var notation = MathJax.Hub.SplitList(values.notation);
var dx = 0, w, h, i, m, borders = [false,false,false,false];
if (!values.mathcolor) {values.mathcolor = "black"}
diff --git a/unpacked/jax/output/SVG/autoload/mtable.js b/unpacked/jax/output/SVG/autoload/mtable.js
@@ -91,13 +91,14 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
//
// Determine spacing and alignment
//
- var CSPACE = values.columnspacing.split(/ /),
- RSPACE = values.rowspacing.split(/ /),
- CALIGN = values.columnalign.split(/ /),
- RALIGN = values.rowalign.split(/ /),
- CLINES = values.columnlines.split(/ /),
- RLINES = values.rowlines.split(/ /),
- CWIDTH = values.columnwidth.split(/ /),
+ var SPLIT = MathJax.Hub.SplitList;
+ var CSPACE = SPLIT(values.columnspacing),
+ RSPACE = SPLIT(values.rowspacing),
+ CALIGN = SPLIT(values.columnalign),
+ RALIGN = SPLIT(values.rowalign),
+ CLINES = SPLIT(values.columnlines),
+ RLINES = SPLIT(values.rowlines),
+ CWIDTH = SPLIT(values.columnwidth),
RCALIGN = [];
for (i = 0, m = CSPACE.length; i < m; i++) {CSPACE[i] = SVG.length2em(CSPACE[i],mu)}
for (i = 0, m = RSPACE.length; i < m; i++) {RSPACE[i] = SVG.length2em(RSPACE[i],mu)}
@@ -119,7 +120,7 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
row = this.data[i]; RCALIGN[i] = [];
if (row.rowalign) {RALIGN[i] = row.rowalign}
if (row.columnalign) {
- RCALIGN[i] = row.columnalign.split(/ /);
+ RCALIGN[i] = SPLIT(row.columnalign);
while (RCALIGN[i].length <= J) {RCALIGN[i].push(RCALIGN[i][RCALIGN[i].length-1])}
}
}
@@ -148,8 +149,13 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
var fx = 0, fy = 0, fW, fH = HD;
if (values.frame !== "none" ||
(values.columnlines+values.rowlines).match(/solid|dashed/)) {
- fx = SVG.length2em(values.framespacing.split(/[, ]+/)[0],mu);
- fy = SVG.length2em(values.framespacing.split(/[, ]+/)[1],mu);
+ var frameSpacing = SPLIT(values.framespacing);
+ if (frameSpacing.length != 2) {
+ // invalid attribute value: use the default.
+ frameSpacing = SPLIT(this.defaults.framespacing);
+ }
+ fx = SVG.length2em(frameSpacing[0],mu);
+ fy = SVG.length2em(frameSpacing[1],mu);
fH = HD + 2*fy; // fW waits until svg.w is determined
}
//