08dd76f
--- ocaml/stdlib/string.ml	2008/07/22 11:29:00	1.28
08dd76f
+++ ocaml/stdlib/string.ml	2008/11/18 10:29:26	1.29
08dd76f
@@ -11,7 +11,7 @@
08dd76f
 (*                                                                     *)
08dd76f
 (***********************************************************************)
08dd76f
 
08dd76f
-(* $Id: ocaml-3.11.0-string-index-from.patch,v 1.1 2008/11/20 17:52:37 rjones Exp $ *)
08dd76f
+(* $Id: ocaml-3.11.0-string-index-from.patch,v 1.1 2008/11/20 17:52:37 rjones Exp $ *)
08dd76f
 
08dd76f
 (* String operations *)
08dd76f
 
08dd76f
@@ -154,7 +154,7 @@ let index s c = index_rec s (length s) 0
08dd76f
 
08dd76f
 let index_from s i c =
08dd76f
   let l = length s in
08dd76f
-  if i < 0 || i >= l then invalid_arg "String.index_from" else
08dd76f
+  if i < 0 || i > l then invalid_arg "String.index_from" else
08dd76f
   index_rec s l i c;;
08dd76f
 
08dd76f
 let rec rindex_rec s i c =
08dd76f
@@ -164,22 +164,18 @@ let rec rindex_rec s i c =
08dd76f
 let rindex s c = rindex_rec s (length s - 1) c;;
08dd76f
 
08dd76f
 let rindex_from s i c =
08dd76f
-  let l = length s in
08dd76f
-  if i < 0 || i >= l then invalid_arg "String.rindex_from" else
08dd76f
+  if i < -1 || i >= length s then invalid_arg "String.rindex_from" else
08dd76f
   rindex_rec s i c;;
08dd76f
 
08dd76f
 let contains_from s i c =
08dd76f
   let l = length s in
08dd76f
-  if i < 0 || i >= l then invalid_arg "String.contains_from" else
08dd76f
+  if i < 0 || i > l then invalid_arg "String.contains_from" else
08dd76f
   try ignore (index_rec s l i c); true with Not_found -> false;;
08dd76f
 
08dd76f
-let contains s c =
08dd76f
-  let l = length s in
08dd76f
-  l <> 0 && contains_from s 0 c;;
08dd76f
+let contains s c = contains_from s 0 c;;
08dd76f
 
08dd76f
 let rcontains_from s i c =
08dd76f
-  let l = length s in
08dd76f
-  if i < 0 || i >= l then invalid_arg "String.rcontains_from" else
08dd76f
+  if i < 0 || i >= length s then invalid_arg "String.rcontains_from" else
08dd76f
   try ignore (rindex_rec s i c); true with Not_found -> false;;
08dd76f
 
08dd76f
 type t = string