let rec get_next_proposition_in_buffer c buffer =
  let b = (Ed_sourceview.get_buffer_by_name buffer)#buffer in
  let rex = c.searched_rex in
  let (_,prevpos) = c.prev_prop in
  if buffer = c.buffer then
    if prevpos > c.pos then
      search_in_buffer true b (b#get_iter (`OFFSET (prevpos+1))) b#end_iter rex
    else
      try search_in_buffer false b b#start_iter (b#get_iter (`OFFSET prevpos)) rex 
      with Not_found ->
          search_in_buffer true b (b#get_iter (`OFFSET c.pos)) b#end_iter rex
  else
    search_in_buffer true b (b#get_iter (`OFFSET (prevpos+1))) b#end_iter rex