summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormeltingice <meltingice8917@gmail.com>2012-07-17 20:26:32 -0400
committermeltingice <meltingice8917@gmail.com>2012-07-17 20:26:32 -0400
commitbb00b00f12b5ae3c87ed5d80e3dfa66db2ba5fe3 (patch)
treeab0440af97d0f8bc961770ae9d26153362da0946
parentFix layer name encoding and parse unicode layer name (Issue #27) (diff)
downloadpsd.js-bb00b00f12b5ae3c87ed5d80e3dfa66db2ba5fe3.tar.xz
psd.js-bb00b00f12b5ae3c87ed5d80e3dfa66db2ba5fe3.zip
Updated documentation
-rw-r--r--docs/psdfile.html2
-rw-r--r--docs/psdimage.html1
-rw-r--r--docs/psdlayer.html13
-rw-r--r--docs/psdlayermask.html46
-rw-r--r--docs/util.html28
5 files changed, 39 insertions, 51 deletions
diff --git a/docs/psdfile.html b/docs/psdfile.html
index 0d2425d..1c2264b 100644
--- a/docs/psdfile.html
+++ b/docs/psdfile.html
@@ -35,7 +35,7 @@ store the int either as an octet string, or something more useful.</p>
null-byte padded, we strip out these null bytes since they are of no
use to us in Javascript.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">readString: </span><span class="nf">(length) -&gt;</span>
<span class="nv">ret = </span><span class="p">[]</span>
- <span class="nx">ret</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nb">String</span><span class="p">.</span><span class="nx">fromCharCode</span> <span class="nx">@read</span><span class="p">(</span><span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="nx">i</span> <span class="k">in</span> <span class="p">[</span><span class="mi">0</span><span class="p">...</span><span class="nx">length</span><span class="p">]</span>
+ <span class="nx">ret</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nb">String</span><span class="p">.</span><span class="nx">fromCharCode</span><span class="p">(</span><span class="nx">@read</span><span class="p">(</span><span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span> <span class="k">for</span> <span class="nx">i</span> <span class="k">in</span> <span class="p">[</span><span class="mi">0</span><span class="p">...</span><span class="nx">length</span><span class="p">]</span>
<span class="nx">ret</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">).</span><span class="nx">replace</span> <span class="sr">/\u0000/g</span><span class="p">,</span> <span class="s2">&quot;&quot;</span>
<span class="nv">readUnicodeString: </span><span class="o">-&gt;</span>
diff --git a/docs/psdimage.html b/docs/psdimage.html
index e7073f9..2e7b715 100644
--- a/docs/psdimage.html
+++ b/docs/psdimage.html
@@ -63,7 +63,6 @@ it's a TODO.</p> </td> <td class="code"> <
<span class="nx">@processImageData</span><span class="p">()</span></pre></div> </td> </tr> <tr id="section-3"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-3">&#182;</a> </div> <p>Parse the image data as raw pixel values. There is no compression used here.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">parseRaw: </span><span class="nf">(length = @length) -&gt;</span>
<span class="nx">Log</span><span class="p">.</span><span class="nx">debug</span> <span class="s2">&quot;Attempting to parse RAW encoded image...&quot;</span>
- <span class="vi">@channelData = </span><span class="p">[]</span>
<span class="nx">@channelData</span><span class="p">.</span><span class="nx">push</span> <span class="nx">@file</span><span class="p">.</span><span class="nx">read</span><span class="p">(</span><span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="nx">i</span> <span class="k">in</span> <span class="p">[</span><span class="mi">0</span><span class="p">...</span><span class="nx">length</span><span class="p">]</span>
<span class="k">return</span> <span class="kc">true</span></pre></div> </td> </tr> <tr id="section-4"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-4">&#182;</a> </div> <p>Parse the image with RLE compression. This is the same as the TIFF standard format.
diff --git a/docs/psdlayer.html b/docs/psdlayer.html
index 4be320c..983f1e4 100644
--- a/docs/psdlayer.html
+++ b/docs/psdlayer.html
@@ -92,9 +92,11 @@
<span class="k">return</span> <span class="nx">@file</span><span class="p">.</span><span class="nx">seek</span> <span class="nx">@layerEnd</span><span class="p">,</span> <span class="kc">false</span>
<span class="nx">@parseBlendingRanges</span><span class="p">()</span>
- <span class="nx">@parseLayerName</span><span class="p">()</span>
+ <span class="nx">@parseLegacyLayerName</span><span class="p">()</span>
<span class="nx">@parseExtraData</span><span class="p">()</span>
+ <span class="vi">@name = </span><span class="nx">@legacyName</span> <span class="nx">unless</span> <span class="nx">@name</span><span class="o">?</span>
+
<span class="nx">Log</span><span class="p">.</span><span class="nx">debug</span> <span class="s2">&quot;Layer #{layerIndex}:&quot;</span><span class="p">,</span> <span class="err">@</span></pre></div> </td> </tr> <tr id="section-6"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-6">&#182;</a> </div> <p>In case there are filler zeros</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">@file</span><span class="p">.</span><span class="nx">seek</span> <span class="nx">extrastart</span> <span class="o">+</span> <span class="nx">extralen</span><span class="p">,</span> <span class="kc">false</span></pre></div> </td> </tr> <tr id="section-7"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-7">&#182;</a> </div> <p>Parse important information about this layer such as position, size,
and channel info. Layer Records section.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">parseInfo: </span><span class="nf">(layerIndex) -&gt;</span>
<span class="vi">@idx = </span><span class="nx">layerIndex</span></pre></div> </td> </tr> <tr id="section-8"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-8">&#182;</a> </div> <h1>#</h1> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">Layer</span> <span class="nx">Info</span></pre></div> </td> </tr> <tr id="section-9"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-9">&#182;</a> </div> <h1>#</h1> </td> <td class="code"> <div class="highlight"><pre> <span class="p">[</span><span class="nx">@top</span><span class="p">,</span> <span class="nx">@left</span><span class="p">,</span> <span class="nx">@bottom</span><span class="p">,</span> <span class="nx">@right</span><span class="p">,</span> <span class="nx">@channels</span><span class="p">]</span> <span class="o">=</span> <span class="nx">@file</span><span class="p">.</span><span class="nx">readf</span> <span class="s2">&quot;&gt;iiiih&quot;</span>
@@ -191,8 +193,11 @@ and channel info. Layer Records section.</p> </td> <td c
<span class="nv">white: </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readShortInt</span><span class="p">()</span>
<span class="nv">dest: </span>
<span class="nv">black: </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readShortInt</span><span class="p">()</span>
- <span class="nv">white: </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readShortInt</span><span class="p">()</span></pre></div> </td> </tr> <tr id="section-24"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-24">&#182;</a> </div> <p>Parse the name of this layer</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">parseLayerName: </span><span class="o">-&gt;</span></pre></div> </td> </tr> <tr id="section-25"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-25">&#182;</a> </div> <p>Name length is padded in multiples of 4</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">namelen = </span><span class="nx">Util</span><span class="p">.</span><span class="nx">pad4</span> <span class="nx">@file</span><span class="p">.</span><span class="nx">read</span><span class="p">(</span><span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
- <span class="vi">@name = </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readString</span> <span class="nx">namelen</span>
+ <span class="nv">white: </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readShortInt</span><span class="p">()</span></pre></div> </td> </tr> <tr id="section-24"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-24">&#182;</a> </div> <p>Parse the name of this layer. This is considered the "legacy"
+name because it is encoded with MacRoman encoding. PS >= 5.0
+includes a unicode version of the name, which is in the additional
+layer information section.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">parseLegacyLayerName: </span><span class="o">-&gt;</span></pre></div> </td> </tr> <tr id="section-25"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-25">&#182;</a> </div> <p>Name length is padded in multiples of 4</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">namelen = </span><span class="nx">Util</span><span class="p">.</span><span class="nx">pad4</span> <span class="nx">@file</span><span class="p">.</span><span class="nx">read</span><span class="p">(</span><span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+ <span class="vi">@legacyName = </span><span class="nx">Util</span><span class="p">.</span><span class="nx">decodeMacroman</span><span class="p">(</span><span class="nx">@file</span><span class="p">.</span><span class="nx">read</span><span class="p">(</span><span class="nx">namelen</span><span class="p">)).</span><span class="nx">replace</span> <span class="sr">/\u0000/g</span><span class="p">,</span> <span class="s1">&#39;&#39;</span>
<span class="nx">Log</span><span class="p">.</span><span class="nx">debug</span> <span class="s2">&quot;Layer name: #{@name}&quot;</span>
@@ -230,6 +235,8 @@ and channel info. Layer Records section.</p> </td> <td c
<span class="vi">@adjustments.typeTool = </span><span class="p">(</span><span class="k">new</span> <span class="nx">PSDTypeTool</span><span class="p">(</span><span class="err">@</span><span class="p">,</span> <span class="nx">length</span><span class="p">)).</span><span class="nx">parse</span><span class="p">(</span><span class="kc">true</span><span class="p">)</span>
<span class="k">when</span> <span class="s2">&quot;TySh&quot;</span> <span class="c1"># PS &gt;= 6</span>
<span class="vi">@adjustments.typeTool = </span><span class="p">(</span><span class="k">new</span> <span class="nx">PSDTypeTool</span><span class="p">(</span><span class="err">@</span><span class="p">,</span> <span class="nx">length</span><span class="p">)).</span><span class="nx">parse</span><span class="p">()</span>
+ <span class="k">when</span> <span class="s2">&quot;luni&quot;</span> <span class="c1"># PS &gt;= 5.0</span>
+ <span class="vi">@name = </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readUnicodeString</span><span class="p">()</span>
<span class="k">when</span> <span class="s2">&quot;lyid&quot;</span>
<span class="vi">@layerId = </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readInt</span><span class="p">()</span>
<span class="k">when</span> <span class="s2">&quot;lsct&quot;</span>
diff --git a/docs/psdlayermask.html b/docs/psdlayermask.html
index 73b9dd5..b7e3f2d 100644
--- a/docs/psdlayermask.html
+++ b/docs/psdlayermask.html
@@ -32,7 +32,7 @@ the transparency data for the merged image.</p> </td> <t
<span class="nv">layer.image = </span><span class="k">new</span> <span class="nx">PSDChannelImage</span><span class="p">(</span><span class="nx">@file</span><span class="p">,</span> <span class="nx">@header</span><span class="p">,</span> <span class="nx">layer</span><span class="p">)</span>
<span class="k">if</span> <span class="nx">@options</span><span class="p">.</span><span class="nx">layerImages</span> <span class="o">and</span> <span class="p">(</span>
- <span class="p">(</span><span class="nx">@options</span><span class="p">.</span><span class="nx">onlyVisibleLayers</span> <span class="o">and</span> <span class="nx">layer</span><span class="p">.</span><span class="nx">blendMode</span><span class="p">.</span><span class="nx">visible</span><span class="p">)</span> <span class="o">or</span>
+ <span class="p">(</span><span class="nx">@options</span><span class="p">.</span><span class="nx">onlyVisibleLayers</span> <span class="o">and</span> <span class="nx">layer</span><span class="p">.</span><span class="nx">visible</span><span class="p">)</span> <span class="o">or</span>
<span class="o">!</span><span class="nx">@options</span><span class="p">.</span><span class="nx">onlyVisibleLayers</span>
<span class="p">)</span>
<span class="nx">layer</span><span class="p">.</span><span class="nx">image</span><span class="p">.</span><span class="nx">parse</span><span class="p">()</span>
@@ -47,46 +47,4 @@ the transparency data for the merged image.</p> </td> <t
<span class="nv">start = </span><span class="nx">@file</span><span class="p">.</span><span class="nx">tell</span><span class="p">()</span>
<span class="nv">end = </span><span class="nx">@file</span><span class="p">.</span><span class="nx">tell</span><span class="p">()</span> <span class="o">+</span> <span class="nx">length</span>
- <span class="nx">Log</span><span class="p">.</span><span class="nx">debug</span> <span class="s2">&quot;Global mask length: #{length}&quot;</span></pre></div> </td> </tr> <tr id="section-20"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-20">&#182;</a> </div> <p>Undocumented</p> </td> <td class="code"> <div class="highlight"><pre> <span class="vi">@globalMask.overlayColorSpace = </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readShortInt</span><span class="p">()</span></pre></div> </td> </tr> <tr id="section-21"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-21">&#182;</a> </div> <p>TODO: parse color space components into actual color.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="vi">@globalMask.colorComponents = </span><span class="p">[]</span>
- <span class="k">for</span> <span class="nx">i</span> <span class="k">in</span> <span class="p">[</span><span class="mi">0</span><span class="p">...</span><span class="mi">4</span><span class="p">]</span>
- <span class="nx">@globalMask</span><span class="p">.</span><span class="nx">colorComponents</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">@file</span><span class="p">.</span><span class="nx">readShortInt</span><span class="p">()</span> <span class="o">&gt;&gt;</span> <span class="mi">8</span><span class="p">)</span></pre></div> </td> </tr> <tr id="section-22"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-22">&#182;</a> </div> <p>0 = transparent, 100 = opaque</p> </td> <td class="code"> <div class="highlight"><pre> <span class="vi">@globalMask.opacity = </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readShortInt</span><span class="p">()</span></pre></div> </td> </tr> <tr id="section-23"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-23">&#182;</a> </div> <p>0 = color selected; 1 = color protected; 128 = use value per layer</p> </td> <td class="code"> <div class="highlight"><pre> <span class="vi">@globalMask.kind = </span><span class="nx">@file</span><span class="p">.</span><span class="nx">read</span><span class="p">(</span><span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
-
- <span class="nx">Log</span><span class="p">.</span><span class="nx">debug</span> <span class="s2">&quot;Global mask:&quot;</span><span class="p">,</span> <span class="nx">@globalMask</span></pre></div> </td> </tr> <tr id="section-24"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-24">&#182;</a> </div> <p>Filler zeros, seek to end.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">@file</span><span class="p">.</span><span class="nx">seek</span> <span class="nx">end</span><span class="p">,</span> <span class="kc">false</span>
-
- <span class="nv">parseExtraInfo: </span><span class="nf">(end) -&gt;</span>
- <span class="k">while</span> <span class="nx">@file</span><span class="p">.</span><span class="nx">tell</span><span class="p">()</span> <span class="o">&lt;</span> <span class="nx">end</span></pre></div> </td> </tr> <tr id="section-25"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-25">&#182;</a> </div> <p>Temporary</p> </td> <td class="code"> <div class="highlight"><pre> <span class="p">[</span>
- <span class="nx">sig</span><span class="p">,</span>
- <span class="nx">key</span><span class="p">,</span>
- <span class="nx">length</span>
- <span class="p">]</span> <span class="o">=</span> <span class="nx">@file</span><span class="p">.</span><span class="nx">readf</span> <span class="s2">&quot;&gt;4s4sI&quot;</span>
-
- <span class="nv">length = </span><span class="nx">Util</span><span class="p">.</span><span class="nx">pad2</span> <span class="nx">length</span>
-
- <span class="nx">Log</span><span class="p">.</span><span class="nx">debug</span> <span class="s2">&quot;Layer extra:&quot;</span><span class="p">,</span> <span class="nx">sig</span><span class="p">,</span> <span class="nx">key</span><span class="p">,</span> <span class="nx">length</span>
-
- <span class="nx">@file</span><span class="p">.</span><span class="nx">seek</span> <span class="nx">length</span>
-
- <span class="nv">groupLayers: </span><span class="o">-&gt;</span>
- <span class="nv">groupLayer = </span><span class="kc">null</span>
- <span class="k">for</span> <span class="nx">layer</span> <span class="k">in</span> <span class="nx">@layers</span>
- <span class="k">if</span> <span class="nx">layer</span><span class="p">.</span><span class="nx">isFolder</span>
- <span class="nv">groupLayer = </span><span class="nx">layer</span>
- <span class="k">else</span> <span class="k">if</span> <span class="nx">layer</span><span class="p">.</span><span class="nx">isHidden</span>
- <span class="nv">groupLayer = </span><span class="kc">null</span>
- <span class="k">else</span>
- <span class="nv">layer.groupLayer = </span><span class="nx">groupLayer</span>
-
- <span class="nv">toJSON: </span><span class="o">-&gt;</span>
- <span class="nv">data =</span>
- <span class="nv">mergedAlpha: </span><span class="nx">@mergedAlpha</span>
- <span class="nv">globalMask: </span><span class="nx">@globalMask</span>
- <span class="nv">extraInfo: </span><span class="nx">@extras</span>
- <span class="nv">numLayers: </span><span class="nx">@numLayers</span>
- <span class="nv">layers: </span><span class="p">[]</span>
-
- <span class="k">for</span> <span class="nx">layer</span> <span class="k">in</span> <span class="nx">@layers</span>
- <span class="nx">data</span><span class="p">.</span><span class="nx">layers</span><span class="p">.</span><span class="nx">push</span> <span class="nx">layer</span><span class="p">.</span><span class="nx">toJSON</span><span class="p">()</span>
-
- <span class="nx">data</span>
-
-</pre></div> </td> </tr> </tbody> </table> </div> </body> </html> \ No newline at end of file
+ <span class="nx">Log</span><span class="p">.</span><span class="nx">debug</span> <span class="s2">&quot;Global mask length: #{length}&quot;</span></pre></div> </td> </tr> <tr id="section-20"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-20">&#182;</a> </div> <p>Undocumented</p> </td> <td class="code"> <div class="highlight"><pre> <span class="vi">@globalMask.overlayColorSpace = </span><span class="nx">@file</span><span class="p">.</span><span class="nx">readShortInt</</pre></div> </td> </tr> <tr id="section-21"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-21">&#182;</a> </div> <p>TODO: parse color space components into actual color.</p> </td> <td class="code"> <div class="highlight"><pre>undefined</pre></div> </td> </tr> <tr id="section-22"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-22">&#182;</a> </div> <p>0 = transparent, 100 = opaque</p> </td> <td class="code"> <div class="highlight"><pre>undefined</pre></div> </td> </tr> <tr id="section-23"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-23">&#182;</a> </div> <p>0 = color selected; 1 = color protected; 128 = use value per layer</p> </td> <td class="code"> <div class="highlight"><pre>undefined</pre></div> </td> </tr> <tr id="section-24"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-24">&#182;</a> </div> <p>Filler zeros, seek to end.</p> </td> <td class="code"> <div class="highlight"><pre>undefined</pre></div> </td> </tr> <tr id="section-25"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-25">&#182;</a> </div> <p>Temporary</p> </td> <td class="code"> <div class="highlight"><pre>undefined</pre></div> </td> </tr> </tbody> </table> </div> </body> </html> \ No newline at end of file
diff --git a/docs/util.html b/docs/util.html
index a536190..92e1412 100644
--- a/docs/util.html
+++ b/docs/util.html
@@ -1,6 +1,6 @@
<!DOCTYPE html> <html> <head> <title>util.coffee</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="docco.css" /> </head> <body> <div id="container"> <div id="background"></div> <div id="jump_to"> Jump To &hellip; <div id="jump_wrapper"> <div id="jump_page"> <a class="source" href="brightnesscontrast.html"> brightnesscontrast.coffee </a> <a class="source" href="colorbalance.html"> colorbalance.coffee </a> <a class="source" href="curves.html"> curves.coffee </a> <a class="source" href="huesaturation.html"> huesaturation.coffee </a> <a class="source" href="invert.html"> invert.coffee </a> <a class="source" href="layereffect.html"> layereffect.coffee </a> <a class="source" href="levels.html"> levels.coffee </a> <a class="source" href="posterize.html"> posterize.coffee </a> <a class="source" href="selectivecolor.html"> selectivecolor.coffee </a> <a class="source" href="threshold.html"> threshold.coffee </a> <a class="source" href="typetool.html"> typetool.coffee </a> <a class="source" href="log.html"> log.coffee </a> <a class="source" href="psd.html"> psd.coffee </a> <a class="source" href="psdassert.html"> psdassert.coffee </a> <a class="source" href="psdchannelimage.html"> psdchannelimage.coffee </a> <a class="source" href="psdcolor.html"> psdcolor.coffee </a> <a class="source" href="psddescriptor.html"> psddescriptor.coffee </a> <a class="source" href="psdfile.html"> psdfile.coffee </a> <a class="source" href="psdheader.html"> psdheader.coffee </a> <a class="source" href="psdimage.html"> psdimage.coffee </a> <a class="source" href="psdlayer.html"> psdlayer.coffee </a> <a class="source" href="psdlayermask.html"> psdlayermask.coffee </a> <a class="source" href="psdresource.html"> psdresource.coffee </a> <a class="source" href="util.html"> util.coffee </a> </div> </div> </div> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th class="docs"> <h1> util.coffee </h1> </th> <th class="code"> </th> </tr> </thead> <tbody> <tr id="section-1"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-1">&#182;</a> </div> <p>"Static" utility functions</p> </td> <td class="code"> <div class="highlight"><pre><span class="k">class</span> <span class="nx">Util</span>
<span class="vi">@pad2: </span><span class="nf">(i) -&gt;</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">((</span><span class="nx">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span> <span class="o">*</span> <span class="mi">2</span>
- <span class="vi">@pad4: </span><span class="nf">(i) -&gt;</span> <span class="p">(((</span><span class="nx">i</span> <span class="o">&amp;</span> <span class="mh">0xFF</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="mi">3</span><span class="p">)</span> <span class="o">&amp;</span> <span class="o">~</span> <span class="mh">0x03</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span>
+ <span class="vi">@pad4: </span><span class="nf">(i) -&gt;</span> <span class="p">(((</span><span class="nx">i</span> <span class="o">&amp;</span> <span class="mh">0xFF</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="mi">3</span><span class="p">)</span> <span class="o">&amp;</span> <span class="o">~</span><span class="mh">0x03</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span>
<span class="vi">@toUInt16: </span><span class="nf">(b1, b2) -&gt;</span> <span class="p">(</span><span class="nx">b1</span> <span class="o">&lt;&lt;</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="nx">b2</span>
<span class="vi">@toInt16: </span><span class="nf">(b1, b2) -&gt;</span>
@@ -16,6 +16,30 @@
<span class="k">else</span>
<span class="nv">num = </span><span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">num</span><span class="p">,</span> <span class="nx">max</span><span class="p">),</span> <span class="nx">min</span><span class="p">)</span>
- <span class="nx">num</span>
+ <span class="nx">num</span></pre></div> </td> </tr> <tr id="section-4"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-4">&#182;</a> </div> <p>Contributed by https://github.com/jrus</p> </td> <td class="code"> <div class="highlight"><pre> <span class="vi">@decodeMacroman = </span><span class="nx">do</span> <span class="o">-&gt;</span>
+ <span class="nv">high_chars_unicode = </span><span class="s1">&#39;&#39;&#39;</span>
+<span class="s1"> \u00c4\u00c5\u00c7\u00c9\u00d1\u00d6\u00dc\u00e1</span>
+<span class="s1"> \u00e0\u00e2\u00e4\u00e3\u00e5\u00e7\u00e9\u00e8</span>
+<span class="s1"> \u00ea\u00eb\u00ed\u00ec\u00ee\u00ef\u00f1\u00f3</span>
+<span class="s1"> \u00f2\u00f4\u00f6\u00f5\u00fa\u00f9\u00fb\u00fc</span>
+<span class="s1"> \u2020\u00b0\u00a2\u00a3\u00a7\u2022\u00b6\u00df</span>
+<span class="s1"> \u00ae\u00a9\u2122\u00b4\u00a8\u2260\u00c6\u00d8</span>
+<span class="s1"> \u221e\u00b1\u2264\u2265\u00a5\u00b5\u2202\u2211</span>
+<span class="s1"> \u220f\u03c0\u222b\u00aa\u00ba\u03a9\u00e6\u00f8</span>
+<span class="s1"> \u00bf\u00a1\u00ac\u221a\u0192\u2248\u2206\u00ab</span>
+<span class="s1"> \u00bb\u2026\u00a0\u00c0\u00c3\u00d5\u0152\u0153</span>
+<span class="s1"> \u2013\u2014\u201c\u201d\u2018\u2019\u00f7\u25ca</span>
+<span class="s1"> \u00ff\u0178\u2044\u20ac\u2039\u203a\ufb01\ufb02</span>
+<span class="s1"> \u2021\u00b7\u201a\u201e\u2030\u00c2\u00ca\u00c1</span>
+<span class="s1"> \u00cb\u00c8\u00cd\u00ce\u00cf\u00cc\u00d3\u00d4</span>
+<span class="s1"> \uf8ff\u00d2\u00da\u00db\u00d9\u0131\u02c6\u02dc</span>
+<span class="s1"> \u00af\u02d8\u02d9\u02da\u00b8\u02dd\u02db\u02c7</span>
+<span class="s1"> &#39;&#39;&#39;</span><span class="p">.</span><span class="nx">replace</span> <span class="sr">/\n/g</span><span class="p">,</span> <span class="s1">&#39;&#39;</span>
+
+ <span class="nf">(byte_array) -&gt;</span>
+ <span class="nv">char_array = </span><span class="k">for</span> <span class="nx">byte</span><span class="p">,</span> <span class="nx">idx</span> <span class="k">in</span> <span class="nx">byte_array</span>
+ <span class="k">if</span> <span class="nx">byte</span> <span class="o">&lt;</span> <span class="mh">0x80</span> <span class="k">then</span> <span class="nb">String</span><span class="p">.</span><span class="nx">fromCharCode</span> <span class="nx">byte</span>
+ <span class="k">else</span> <span class="nx">high_chars_unicode</span><span class="p">.</span><span class="nx">charAt</span> <span class="nx">byte</span> <span class="o">-</span> <span class="mh">0x80</span>
+ <span class="nx">char_array</span><span class="p">.</span><span class="nx">join</span> <span class="s1">&#39;&#39;</span>
</pre></div> </td> </tr> </tbody> </table> </div> </body> </html> \ No newline at end of file