<pre><span id="VALmake"><span class="keyword">val</span> make</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> int -> <a href="Buf.Cursor.html#TYPEcsr">csr</a></code></pre>
+<pre><span id="VALoffset"><span class="keyword">val</span> offset</span> : <code class="type">'a -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> int</code></pre>
<pre><span id="VALgoto"><span class="keyword">val</span> goto</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> int -> unit</code></pre>
<pre><span id="VALgetc"><span class="keyword">val</span> getc</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> <a href="Rope.html#TYPErune">Rope.rune</a></code></pre>
-<pre><span id="VALnextc"><span class="keyword">val</span> nextc</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> unit</code></pre>
-<pre><span id="VALprevc"><span class="keyword">val</span> prevc</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> unit</code></pre>
-<pre><span id="VALnextln"><span class="keyword">val</span> nextln</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> unit</code></pre>
-<pre><span id="VALprevln"><span class="keyword">val</span> prevln</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> unit</code></pre></body></html>
\ No newline at end of file
+<pre><span id="VALnextc"><span class="keyword">val</span> nextc</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> int</code></pre>
+<pre><span id="VALprevc"><span class="keyword">val</span> prevc</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> int</code></pre>
+<pre><span id="VALnextln"><span class="keyword">val</span> nextln</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> int</code></pre>
+<pre><span id="VALprevln"><span class="keyword">val</span> prevln</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> int</code></pre></body></html>
\ No newline at end of file
<pre><span id="VALfind_line"><span class="keyword">val</span> find_line</span> : <code class="type">'a array -> 'a -> int -> int</code></pre>
<pre><span id="VALmake"><span class="keyword">val</span> make</span> : <code class="type"><a href="Buf.html#TYPEt">Buf.t</a> -> int -> int -> <a href="Scrollmap.html#TYPEt">t</a></code></pre>
<pre><span id="VALfirst"><span class="keyword">val</span> first</span> : <code class="type"><a href="Scrollmap.html#TYPEt">t</a> -> int</code></pre>
-<pre><span id="VALbopl"><span class="keyword">val</span> bopl</span> : <code class="type"><a href="Buf.html#TYPEt">Buf.t</a> -> int -> int</code></pre>
-<pre><span id="VALbonl"><span class="keyword">val</span> bonl</span> : <code class="type"><a href="Buf.html#TYPEt">Buf.t</a> -> int -> int</code></pre>
+<pre><span id="VALbopl"><span class="keyword">val</span> bopl</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> int -> int</code></pre>
+<pre><span id="VALbonl"><span class="keyword">val</span> bonl</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> int -> int</code></pre>
<pre><span id="VALscroll_up"><span class="keyword">val</span> scroll_up</span> : <code class="type"><a href="Scrollmap.html#TYPEt">t</a> -> <a href="Buf.html#TYPEt">Buf.t</a> -> <a href="Scrollmap.html#TYPEt">t</a></code></pre>
<pre><span id="VALscroll_dn"><span class="keyword">val</span> scroll_dn</span> : <code class="type"><a href="Scrollmap.html#TYPEt">t</a> -> <a href="Buf.html#TYPEt">Buf.t</a> -> <a href="Scrollmap.html#TYPEt">t</a></code></pre>
<pre><span id="VALresize"><span class="keyword">val</span> resize</span> : <code class="type"><a href="Scrollmap.html#TYPEt">t</a> -> <a href="Buf.html#TYPEt">Buf.t</a> -> int -> <a href="Scrollmap.html#TYPEt">t</a></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><div class="info module top">
-</div>
-<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><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">(int, <a href="X11.html#TYPEglyph">glyph</a>) Hashtbl.t</code></pre><div class="info ">
-</div>
-
+<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>
<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>
<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><div class="info">
-</div>
-</td></tr>
+<tr><td class="module"><a href="X11.html">X11</a></td><td></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><div class="info">
-</div>
-</td></tr>
+<td></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><div class="info">
-</div>
-</td></tr>
+<td></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>
<tr><td><a href="Cfg.Color.Syntax.html#VALnumber">number</a> [<a href="Cfg.Color.Syntax.html">Cfg.Color.Syntax</a>]</td>
<td></td></tr>
<tr><td align="left"><br>O</td></tr>
+<tr><td><a href="Buf.Cursor.html#VALoffset">offset</a> [<a href="Buf.Cursor.html">Buf.Cursor</a>]</td>
+<td></td></tr>
<tr><td><a href="Cfg.Color.Syntax.html#VALoperator">operator</a> [<a href="Cfg.Color.Syntax.html">Cfg.Color.Syntax</a>]</td>
<td></td></tr>
<tr><td align="left"><br>P</td></tr>
<span class="keyword">type</span> csr = { <span class="keyword">mutable</span> start : int; <span class="keyword">mutable</span> stop : int; }<br>
<span class="keyword">type</span> t = <span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr<br>
<span class="keyword">val</span> make : <span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr<br>
+ <span class="keyword">val</span> offset : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr <span class="keywordsign">-></span> int<br>
<span class="keyword">val</span> goto : <span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br>
<span class="keyword">val</span> getc : <span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr <span class="keywordsign">-></span> <span class="constructor">Rope</span>.rune<br>
- <span class="keyword">val</span> nextc : <span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr <span class="keywordsign">-></span> unit<br>
- <span class="keyword">val</span> prevc : <span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr <span class="keywordsign">-></span> unit<br>
- <span class="keyword">val</span> nextln : <span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr <span class="keywordsign">-></span> unit<br>
- <span class="keyword">val</span> prevln : <span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr <span class="keywordsign">-></span> unit<br>
+ <span class="keyword">val</span> nextc : <span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr <span class="keywordsign">-></span> int<br>
+ <span class="keyword">val</span> prevc : <span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr <span class="keywordsign">-></span> int<br>
+ <span class="keyword">val</span> nextln : <span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr <span class="keywordsign">-></span> int<br>
+ <span class="keyword">val</span> prevln : <span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr <span class="keywordsign">-></span> int<br>
<span class="keyword">end</span></code></body></html>
\ No newline at end of file
let make buf idx =
{ start = 0; stop = (Rope.limit_index buf.rope idx) }
+ let offset buf csr =
+ csr.stop
+
let goto buf csr idx =
csr.stop <- (Rope.limit_index buf.rope idx)
Rope.getc buf.rope csr.stop
let nextc buf csr =
- csr.stop <- (Rope.nextc buf.rope csr.stop)
+ csr.stop <- (Rope.nextc buf.rope csr.stop); csr.stop
let prevc buf csr =
- csr.stop <- (Rope.prevc buf.rope csr.stop)
+ csr.stop <- (Rope.prevc buf.rope csr.stop); csr.stop
let nextln buf csr =
- csr.stop <- (Rope.nextln buf.rope csr.stop)
+ csr.stop <- (Rope.nextln buf.rope csr.stop); csr.stop
let prevln buf csr =
- csr.stop <- (Rope.prevln buf.rope csr.stop)
+ csr.stop <- (Rope.prevln buf.rope csr.stop); csr.stop
end
val gets : buf -> t -> string
val puts : buf -> t -> string -> unit
*)
- val nextc : buf -> t -> unit
- val prevc : buf -> t -> unit
- val nextln : buf -> t -> unit
- val prevln : buf -> t -> unit
+ val nextc : buf -> t -> int
+ val prevc : buf -> t -> int
+ val nextln : buf -> t -> int
+ val prevln : buf -> t -> int
end
let first map =
map.lines.(map.index)
-let bopl buf off = (Rope.prevln (Buf.rope buf) off)
+let bopl buf off =
+ Buf.Cursor.prevln buf (Buf.Cursor.make buf off)
-let bonl buf off = (Rope.nextln (Buf.rope buf) off)
+let bonl buf off =
+ Buf.Cursor.nextln buf (Buf.Cursor.make buf off)
let scroll_up map buf =
let next = map.index - 1 in