let rec search_buffer ?(wrapped=false) forward (buffer : my_buffer)
?(start=buffer#get_iter `INSERT) s_utf8 =
let gsearch =
if forward then
GSourceView.iter_forward_search
else
GSourceView.iter_backward_search
in
let stop = buffer#end_iter in
match gsearch start [] ~start ~stop s_utf8 with
None ->
if wrapped then
(wrapped, None)
else
let start = if forward then buffer#start_iter else buffer#end_iter in
search_buffer ~wrapped: true forward buffer ~start s_utf8
| Some (start,stop) ->
(wrapped, Some (start, stop))