From 002917e559057f2d13fab19ae8fcce26a67fdb86 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 13 Feb 2014 06:55:59 -0500 Subject: [PATCH] Make remapping from REMAP and variant.remap work the same, and when string value is used, go back and check for variant changes again. Resolves isse #684. --- unpacked/jax/output/HTML-CSS/jax.js | 26 +++++++++----------------- unpacked/jax/output/SVG/jax.js | 27 +++++++++------------------ 2 files changed, 18 insertions(+), 35 deletions(-) diff --git a/unpacked/jax/output/HTML-CSS/jax.js b/unpacked/jax/output/HTML-CSS/jax.js index 5cba138bd..ba450b1d0 100644 --- a/unpacked/jax/output/HTML-CSS/jax.js +++ b/unpacked/jax/output/HTML-CSS/jax.js @@ -1356,24 +1356,16 @@ } } if (variant.remap && variant.remap[n]) { - if (variant.remap[n] instanceof Array) { - var remap = variant.remap[n]; - n = remap[0]; variant = this.FONTDATA.VARIANT[remap[1]]; - } else if (typeof(variant.remap[n]) === "string") { - text = variant.remap[n]+text.substr(i+1); - i = 0; m = text.length; n = text.charCodeAt(0); - } else { - n = variant.remap[n]; - if (variant.remap.variant) {variant = this.FONTDATA.VARIANT[variant.remap.variant]} - } - } - if (this.FONTDATA.REMAP[n] && !variant.noRemap) { + n = variant.remap[n]; + if (variant.remap.variant) {variant = this.FONTDATA.VARIANT[variant.remap.variant]} + } else if (this.FONTDATA.REMAP[n] && !variant.noRemap) { n = this.FONTDATA.REMAP[n]; - if (n instanceof Array) {variant = this.FONTDATA.VARIANT[n[1]]; n = n[0]} - if (typeof(n) === "string") { - text = n+text.substr(i+1); - i = 0; m = text.length; n = n.charCodeAt(0); - } + } + if (n instanceof Array) {variant = this.FONTDATA.VARIANT[n[1]]; n = n[0]} + if (typeof(n) === "string") { + text = n+text.substr(i+1); + m = text.length; i = -1; + continue; } font = this.lookupChar(variant,n); c = font[n]; if (force || (!this.checkFont(font,SPAN.style) && !c[5].img)) { diff --git a/unpacked/jax/output/SVG/jax.js b/unpacked/jax/output/SVG/jax.js index 237afd524..aedf51f00 100644 --- a/unpacked/jax/output/SVG/jax.js +++ b/unpacked/jax/output/SVG/jax.js @@ -558,25 +558,16 @@ } } if (variant.remap && variant.remap[n]) { - if (variant.remap[n] instanceof Array) { - var remap = variant.remap[n]; - n = remap[0]; variant = this.FONTDATA.VARIANT[remap[1]]; - } else if (typeof(variant.remap[n]) === "string") { - text = variant.remap[n]+text.substr(i+1); - i = 0; m = text.length; n = text.charCodeAt(0); - } else { - n = variant.remap[n]; - if (variant.remap.variant) {variant = this.FONTDATA.VARIANT[variant.remap.variant]} - } - } - if (this.FONTDATA.REMAP[n] && !variant.noRemap) { + n = variant.remap[n]; + if (variant.remap.variant) {variant = this.FONTDATA.VARIANT[variant.remap.variant]} + } else if (this.FONTDATA.REMAP[n] && !variant.noRemap) { n = this.FONTDATA.REMAP[n]; - if (n instanceof Array) {variant = this.FONTDATA.VARIANT[n[1]]; n = n[0]} - if (typeof(n) === "string") { - text = n+text.substr(i+1); - i = 0; m = text.length; - n = n.charCodeAt(0); - } + } + if (n instanceof Array) {variant = this.FONTDATA.VARIANT[n[1]]; n = n[0]} + if (typeof(n) === "string") { + text = n+text.substr(i+1); + m = text.length; i = -1; + continue; } font = this.lookupChar(variant,n); c = font[n]; if (c) {