<pre><span id="VALhas_next_line"><span class="keyword">val</span> has_next_line</span> : <code class="type"><a href="Draw.Cursor.html#TYPEt">t</a> -> bool</code></pre>
<pre><span id="VALdraw_tab"><span class="keyword">val</span> draw_tab</span> : <code class="type"><a href="Draw.Cursor.html#TYPEt">t</a> -> unit</code></pre>
<pre><span id="VALplace_glyph"><span class="keyword">val</span> place_glyph</span> : <code class="type"><a href="Draw.Cursor.html#TYPEt">t</a> -> <a href="X11.html#TYPEglyph">X11.glyph</a> -> unit</code></pre>
-<pre><span id="VALdraw_glyph"><span class="keyword">val</span> draw_glyph</span> : <code class="type"><a href="Draw.Cursor.html#TYPEt">t</a> -> X11.GlyphMap.key -> unit</code></pre>
-<pre><span id="VALnext_glyph"><span class="keyword">val</span> next_glyph</span> : <code class="type"><a href="Draw.Cursor.html#TYPEt">t</a> -> X11.GlyphMap.key -> bool</code></pre></body></html>
\ No newline at end of file
+<pre><span id="VALdraw_glyph"><span class="keyword">val</span> draw_glyph</span> : <code class="type"><a href="Draw.Cursor.html#TYPEt">t</a> -> int -> unit</code></pre>
+<pre><span id="VALnext_glyph"><span class="keyword">val</span> next_glyph</span> : <code class="type"><a href="Draw.Cursor.html#TYPEt">t</a> -> int -> bool</code></pre></body></html>
\ No newline at end of file
</div>
<h1>Module <a href="type_X11.html">X11</a></h1>
-<pre><span class="keyword">module</span> X11: <code class="code">sig</code> <a href="X11.html">..</a> <code class="code">end</code></pre><hr width="100%">
+<pre><span class="keyword">module</span> X11: <code class="code">sig</code> <a href="X11.html">..</a> <code class="code">end</code></pre><div class="info module top">
+</div>
+<hr width="100%">
<pre><span id="TYPExatom"><span class="keyword">type</span> <code class="type"></code>xatom</span> </pre>
<pre><span id="VALfont_load"><span class="keyword">val</span> font_load</span> : <code class="type">string -> <a href="X11.html#TYPEfont">font</a></code></pre>
<pre><span id="VALfont_glyph"><span class="keyword">val</span> font_glyph</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> <a href="X11.html#TYPEglyph">glyph</a></code></pre>
<pre><span id="VALdraw_glyph"><span class="keyword">val</span> draw_glyph</span> : <code class="type">int -> <a href="X11.html#TYPEglyph">glyph</a> -> int * int -> int</code></pre>
-<pre><span id="VALglyph_cache"><span class="keyword">val</span> glyph_cache</span> : <code class="type"><a href="X11.html#TYPEglyph">glyph</a> GlyphMap.t Pervasives.ref</code></pre>
-<pre><span id="VALcache_update"><span class="keyword">val</span> cache_update</span> : <code class="type">GlyphMap.key -> <a href="X11.html#TYPEglyph">glyph</a> -> <a href="X11.html#TYPEglyph">glyph</a></code></pre>
-<pre><span id="VALget_glyph"><span class="keyword">val</span> get_glyph</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> GlyphMap.key -> <a href="X11.html#TYPEglyph">glyph</a></code></pre>
-<pre><span id="VALdraw_rune"><span class="keyword">val</span> draw_rune</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> GlyphMap.key -> int * int -> int</code></pre>
+<pre><span id="VALglyph_cache"><span class="keyword">val</span> glyph_cache</span> : <code class="type">(int, <a href="X11.html#TYPEglyph">glyph</a>) Hashtbl.t</code></pre><div class="info ">
+</div>
+
+<pre><span id="VALcache_update"><span class="keyword">val</span> cache_update</span> : <code class="type">int -> <a href="X11.html#TYPEglyph">glyph</a> -> <a href="X11.html#TYPEglyph">glyph</a></code></pre>
+<pre><span id="VALget_glyph"><span class="keyword">val</span> get_glyph</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> <a href="X11.html#TYPEglyph">glyph</a></code></pre>
+<pre><span id="VALdraw_rune"><span class="keyword">val</span> draw_rune</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> int -> int * int -> int</code></pre>
<pre><span id="VALdraw_char"><span class="keyword">val</span> draw_char</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> char -> int * int -> int</code></pre>
<pre><span id="VALdraw_stringi"><span class="keyword">val</span> draw_stringi</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> string -> int * int -> int -> unit</code></pre>
<pre><span id="VALdraw_string"><span class="keyword">val</span> draw_string</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> string -> int * int -> unit</code></pre>
<br/><br>
<table class="indextable">
<tr><td class="module"><a href="Misc.html">Misc</a></td><td></td></tr>
-<tr><td class="module"><a href="X11.html">X11</a></td><td></td></tr>
+<tr><td class="module"><a href="X11.html">X11</a></td><td><div class="info">
+</div>
+</td></tr>
<tr><td class="module"><a href="Cfg.html">Cfg</a></td><td></td></tr>
<tr><td class="module"><a href="Rope.html">Rope</a></td><td></td></tr>
<tr><td class="module"><a href="Buf.html">Buf</a></td><td></td></tr>
<td></td></tr>
<tr><td align="left"><br>X</td></tr>
<tr><td><a href="X11.html">X11</a> </td>
-<td></td></tr>
+<td><div class="info">
+</div>
+</td></tr>
</table>
</body>
</html>
\ No newline at end of file
<tr><td><a href="Rope.html#VALgets">gets</a> [<a href="Rope.html">Rope</a>]</td>
<td></td></tr>
<tr><td><a href="X11.html#VALglyph_cache">glyph_cache</a> [<a href="X11.html">X11</a>]</td>
-<td></td></tr>
+<td><div class="info">
+</div>
+</td></tr>
<tr><td><a href="Draw.html#VALglyph_width">glyph_width</a> [<a href="Draw.html">Draw</a>]</td>
<td></td></tr>
<tr><td><a href="Buf.Cursor.html#VALgoto">goto</a> [<a href="Buf.Cursor.html">Buf.Cursor</a>]</td>
<span class="keyword">val</span> has_next_line : <span class="constructor">Draw</span>.<span class="constructor">Cursor</span>.t <span class="keywordsign">-></span> bool<br>
<span class="keyword">val</span> draw_tab : <span class="constructor">Draw</span>.<span class="constructor">Cursor</span>.t <span class="keywordsign">-></span> unit<br>
<span class="keyword">val</span> place_glyph : <span class="constructor">Draw</span>.<span class="constructor">Cursor</span>.t <span class="keywordsign">-></span> <span class="constructor">X11</span>.glyph <span class="keywordsign">-></span> unit<br>
- <span class="keyword">val</span> draw_glyph : <span class="constructor">Draw</span>.<span class="constructor">Cursor</span>.t <span class="keywordsign">-></span> <span class="constructor">X11</span>.<span class="constructor">GlyphMap</span>.key <span class="keywordsign">-></span> unit<br>
- <span class="keyword">val</span> next_glyph : <span class="constructor">Draw</span>.<span class="constructor">Cursor</span>.t <span class="keywordsign">-></span> <span class="constructor">X11</span>.<span class="constructor">GlyphMap</span>.key <span class="keywordsign">-></span> bool<br>
+ <span class="keyword">val</span> draw_glyph : <span class="constructor">Draw</span>.<span class="constructor">Cursor</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br>
+ <span class="keyword">val</span> next_glyph : <span class="constructor">Draw</span>.<span class="constructor">Cursor</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> bool<br>
<span class="keyword">end</span></code></body></html>
\ No newline at end of file
external draw_glyph : int -> glyph -> (int * int) -> int
= "x11_draw_glyph"
-let glyph_cache = ref GlyphMap.empty
+let glyph_cache = Hashtbl.create 127
let cache_update rune glyph =
- glyph_cache := GlyphMap.add rune glyph !glyph_cache;
+ Hashtbl.replace glyph_cache rune glyph;
glyph
let get_glyph (font : font) rune =
try
- let glyph = GlyphMap.find rune !glyph_cache in
+ let glyph = Hashtbl.find glyph_cache rune in
if (glyph.font != font.font) then
cache_update rune glyph
else