]> git.parisson.com Git - pdf.js.git/commitdiff
Fixing review nits; moving small functions inside bidi
authornotmasteryet <async.processingjs@yahoo.com>
Wed, 22 Feb 2012 23:56:47 +0000 (17:56 -0600)
committernotmasteryet <async.processingjs@yahoo.com>
Wed, 22 Feb 2012 23:56:47 +0000 (17:56 -0600)
src/bidi.js
src/canvas.js

index 025847ea9b7b6a534546254880434a6700c06c59..b247210453196e8f4132a78c22afcff810fa4255 100644 (file)
@@ -52,9 +52,81 @@ var arabicTypes = [
 ];\r
 \r
 function bidi(text, startLevel) {\r
+  function isOdd(i) {\r
+    return (i & 1) != 0;\r
+  }\r
+\r
+  function isEven(i) {\r
+    return (i & 1) == 0;\r
+  }\r
+\r
+  function findUnequal(arr, start, value) {\r
+    var j;\r
+    for (var j = start, jj = arr.length; j < jj; ++j) {\r
+      if (arr[j] != value)\r
+        return j;\r
+    }\r
+    return j;\r
+  }\r
+\r
+  function setValues(arr, start, end, value) {\r
+    for (var j = start; j < end; ++j) {\r
+      arr[j] = value;\r
+    }\r
+  }\r
+\r
+  function reverseValues(arr, start, end) {\r
+    for (var i = start, j = end - 1; i < j; ++i, --j) {\r
+      var temp = arr[i];\r
+      arr[i] = arr[j];\r
+      arr[j] = temp;\r
+    }\r
+  }\r
+\r
+  function mirrorGlyphs(c) {\r
+    /*\r
+     # BidiMirroring-1.txt\r
+     0028; 0029 # LEFT PARENTHESIS\r
+     0029; 0028 # RIGHT PARENTHESIS\r
+     003C; 003E # LESS-THAN SIGN\r
+     003E; 003C # GREATER-THAN SIGN\r
+     005B; 005D # LEFT SQUARE BRACKET\r
+     005D; 005B # RIGHT SQUARE BRACKET\r
+     007B; 007D # LEFT CURLY BRACKET\r
+     007D; 007B # RIGHT CURLY BRACKET\r
+     00AB; 00BB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+     00BB; 00AB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+     */\r
+    switch (c) {\r
+      case '(':\r
+        return ')';\r
+      case ')':\r
+        return '(';\r
+      case '<':\r
+        return '>';\r
+      case '>':\r
+        return '<';\r
+      case ']':\r
+        return '[';\r
+      case '[':\r
+        return ']';\r
+      case '}':\r
+        return '{';\r
+      case '{':\r
+        return '}';\r
+      case '\u00AB':\r
+        return '\u00BB';\r
+      case '\u00BB':\r
+        return '\u00AB';\r
+      default:\r
+        return c;\r
+    }\r
+  }\r
+\r
   var str = text.str;\r
   var strLength = str.length;\r
-  if (strLength == 0) return str;\r
+  if (strLength == 0)\r
+    return str;\r
 \r
   // get types, fill arrays\r
 \r
@@ -91,7 +163,8 @@ function bidi(text, startLevel) {
     text.direction = 'ltr';\r
     return str;\r
   }\r
-  else if (startLevel == -1) {\r
+\r
+  if (startLevel == -1) {\r
     if ((strLength / numBidi) < 0.3) {\r
       text.direction = 'ltr';\r
       startLevel = 0;\r
@@ -127,8 +200,10 @@ function bidi(text, startLevel) {
 \r
   var lastType = sor;\r
   for (var i = 0; i < strLength; ++i) {\r
-    if (types[i] == 'NSM') types[i] = lastType;\r
-    else lastType = types[i];\r
+    if (types[i] == 'NSM')\r
+      types[i] = lastType;\r
+    else\r
+      lastType = types[i];\r
   }\r
 \r
   /*\r
@@ -152,7 +227,8 @@ function bidi(text, startLevel) {
 \r
   for (var i = 0; i < strLength; ++i) {\r
     var t = types[i];\r
-    if (t == 'AL') types[i] = 'R';\r
+    if (t == 'AL')\r
+      types[i] = 'R';\r
   }\r
 \r
   /*\r
@@ -178,15 +254,15 @@ function bidi(text, startLevel) {
     if (types[i] == 'EN') {\r
       // do before\r
       for (var j = i - 1; j >= 0; --j) {\r
-        if (types[j] == 'ET')\r
-          types[j] = 'EN';\r
-        else break;\r
+        if (types[j] != 'ET')\r
+          break;\r
+        types[j] = 'EN';\r
       }\r
       // do after\r
       for (var j = i + 1; j < strLength; --j) {\r
-        if (types[j] == 'ET')\r
-          types[j] = 'EN';\r
-        else break;\r
+        if (types[j] != 'ET')\r
+          break;\r
+        types[j] = 'EN';\r
       }\r
     }\r
   }\r
@@ -263,12 +339,10 @@ function bidi(text, startLevel) {
     if (isEven(levels[i])) {\r
       if (t == 'R') {\r
         levels[i] += 1;\r
-      }\r
-      else if (t == 'AN' || t == 'EN') {\r
+      } else if (t == 'AN' || t == 'EN') {\r
         levels[i] += 2;\r
       }\r
-    }\r
-    else { // isOdd, so\r
+    } else { // isOdd, so\r
       if (t == 'L' || t == 'AN' || t == 'EN') {\r
         levels[i] += 1;\r
       }\r
@@ -311,14 +385,13 @@ function bidi(text, startLevel) {
   for (var level = highestLevel; level >= lowestOddLevel; --level) {\r
     // find segments to reverse\r
     var start = -1;\r
-    for (var i = 0; i < levels.length; ++i) {\r
+    for (var i = 0, ii = levels.length; i < ii; ++i) {\r
       if (levels[i] < level) {\r
         if (start >= 0) {\r
           reverseValues(chars, start, i);\r
           start = -1;\r
         }\r
-      }\r
-      else if (start < 0) {\r
+      } else if (start < 0) {\r
         start = i;\r
       }\r
     }\r
@@ -354,74 +427,3 @@ function bidi(text, startLevel) {
   }\r
   return result;\r
 }\r
-\r
-function isOdd(i) {\r
-  return (i & 1) != 0;\r
-}\r
-\r
-function isEven(i) {\r
-  return (i & 1) == 0;\r
-}\r
-\r
-function findUnequal(arr, start, value) {\r
-  var j;\r
-  for (var j = start; j < arr.length; ++j) {\r
-    if (arr[j] != value) return j;\r
-  }\r
-  return j;\r
-}\r
-\r
-function setValues(arr, start, end, value) {\r
-  for (var j = start; j < end; ++j) {\r
-    arr[j] = value;\r
-  }\r
-}\r
-\r
-function reverseValues(arr, start, end) {\r
-  for (var i = start, j = end - 1; i < j; ++i, --j) {\r
-    var temp = arr[i];\r
-    arr[i] = arr[j];\r
-    arr[j] = temp;\r
-  }\r
-}\r
-\r
-function mirrorGlyphs(c) {\r
-  /*\r
-   # BidiMirroring-1.txt\r
-   0028; 0029 # LEFT PARENTHESIS\r
-   0029; 0028 # RIGHT PARENTHESIS\r
-   003C; 003E # LESS-THAN SIGN\r
-   003E; 003C # GREATER-THAN SIGN\r
-   005B; 005D # LEFT SQUARE BRACKET\r
-   005D; 005B # RIGHT SQUARE BRACKET\r
-   007B; 007D # LEFT CURLY BRACKET\r
-   007D; 007B # RIGHT CURLY BRACKET\r
-   00AB; 00BB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
-   00BB; 00AB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
-   */\r
-  switch (c) {\r
-    case '(':\r
-      return ')';\r
-    case ')':\r
-      return '(';\r
-    case '<':\r
-      return '>';\r
-    case '>':\r
-      return '<';\r
-    case ']':\r
-      return '[';\r
-    case '[':\r
-      return ']';\r
-    case '}':\r
-      return '{';\r
-    case '{':\r
-      return '}';\r
-    case '\u00AB':\r
-      return '\u00BB';\r
-    case '\u00BB':\r
-      return '\u00AB';\r
-    default:\r
-      return c;\r
-  }\r
-}\r
-\r
index 5511483419a088681946f9633b271a2f923fd60e..54ab5b4d097ff5b1fc7789c625a2da98d7974311 100644 (file)
@@ -779,15 +779,15 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
           x += charWidth;
 
           var glyphUnicode = glyph.unicode === ' ' ? '\u00A0' : glyph.unicode;
-          var glyphUniLen = glyphUnicode.length;
+          var glyphUnicodeLength = glyphUnicode.length;
           //reverse an arabic ligature
-          if (glyphUniLen > 1 && isRTLRangeFor(glyphUnicode.charCodeAt(0)))
-          {
-            for (var ii = glyphUniLen - 1; ii >= 0; ii--)
+          if (glyphUnicodeLength > 1 &&
+              isRTLRangeFor(glyphUnicode.charCodeAt(0))) {
+            for (var ii = glyphUnicodeLength - 1; ii >= 0; ii--)
               text.str += glyphUnicode[ii];
           } else
             text.str += glyphUnicode;
-          text.length += glyphUniLen;
+          text.length += glyphUnicodeLength;
           text.canvasWidth += charWidth;
         }
         current.x += x * textHScale2;