Index: dose3-5.0.1/common/criteria_lexer.mll =================================================================== --- dose3-5.0.1.orig/common/criteria_lexer.mll +++ dose3-5.0.1/common/criteria_lexer.mll @@ -18,7 +18,7 @@ let c = Lexing.lexeme_char lexbuf 2 in (* the delimiter can be any character *) (* find the terminating delimiter *) let endpos = - try String.index_from lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) c with + try Bytes.index_from lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) c with |Invalid_argument _ -> raise (Format822.Syntax_error ( Format822.error lexbuf "String too short")) @@ -27,9 +27,9 @@ Format822.error lexbuf (Printf.sprintf "cannot find: %c" c))) in let len = endpos - (lexbuf.lex_start_pos + 3) in - let s = String.sub lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) len in - lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_start_pos + ((String.length s)+4); - s + let s = Bytes.sub lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) len in + lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_start_pos + ((Bytes.length s)+4); + Bytes.to_string s } Index: dose3-5.0.1/common/input.ml =================================================================== --- dose3-5.0.1.orig/common/input.ml +++ dose3-5.0.1/common/input.ml @@ -47,7 +47,7 @@ let bzip_open_file file = in IO.create_in ~read:(fun () -> input_char ch) - ~input:(read ch) + ~input:(fun x -> read ch (Bytes.to_string x)) ~close:(fun () -> Bz2.close_in ch) #else fatal "bzip not supported. re-configure with --with-bz2"