method bookmarks_menus =
      let l = Ed_bookmarks.list bookmarks in
      let l = List.sort (fun (s1,_) (s2,_) -> compare s1 s2) l in
      let entries =
        List.map
          (fun (name, (file,line,col)) ->
            let com () =
              Cam_commands.eval_command (Printf.sprintf "open_file %s" (Filename.quote file));
              if self#filename = file then
                self#set_location (line,col)
            in
            let label =
               Printf.sprintf "%s (%s, %d, %d)" name (Filename.basename file) line col
             in
            `I (Cam_misc.escape_menu_label (Ed_misc.to_utf8 label), com)
          )
          l
      in
      [ "Bookmarks", entries]