summaryrefslogtreecommitdiff
path: root/devel/ocaml-annexlib/files/patch-strExtras.ml
blob: 0ed2c4593bbc725d3d7deb2f99bb40e99a08f0fd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
--- strExtras.ml.orig	2006-02-23 06:34:35 UTC
+++ strExtras.ml
@@ -144,7 +144,7 @@ let map f str =
     for n = 0 to len - 1 do
       String.unsafe_set nstr n (f (String.unsafe_get str n))
     done;
-    nstr
+    Bytes.unsafe_to_string nstr
 
 let mapi f str =
   let len = String.length str in
@@ -152,18 +152,18 @@ let mapi f str =
     for n = 0 to len - 1 do
       String.unsafe_set nstr n (f (String.unsafe_get str n) n)
     done;
-    nstr
+    Bytes.unsafe_to_string nstr
       
 let map_inplace f str =
-  let len = String.length str in
+  let len = Bytes.length str in
     for n = 0 to len - 1 do
-      String.unsafe_set str n (f (String.unsafe_get str n))
+      Bytes.unsafe_set str n (f (Bytes.unsafe_get str n))
     done
 
 let mapi_inplace f str =
-  let len = String.length str in
+  let len = Bytes.length str in
     for n = 0 to len - 1 do
-      String.unsafe_set str n (f (String.unsafe_get str n) n)
+      Bytes.unsafe_set str n (f (Bytes.unsafe_get str n) n)
     done
 
 let iteri f str =
@@ -194,16 +194,16 @@ let lowercase = map CharExtras.to_lower
 let capitalize str = 
   if String.length str = 0 then ""
   else
-    let nstr = String.copy str in
-      String.unsafe_set nstr 0 (CharExtras.to_upper (String.unsafe_get nstr 0));
-      nstr
+    let nstr = Bytes.of_string str in
+      Bytes.unsafe_set nstr 0 (CharExtras.to_upper (Bytes.unsafe_get nstr 0));
+      Bytes.unsafe_to_string nstr
 
 let uncapitalize str = 
   if String.length str = 0 then ""
   else
-    let nstr = String.copy str in
-      String.unsafe_set nstr 0 (CharExtras.to_lower (String.unsafe_get nstr 0));
-      nstr
+    let nstr = Bytes.of_string str in
+      Bytes.unsafe_set nstr 0 (CharExtras.to_lower (Bytes.unsafe_get nstr 0));
+      Bytes.unsafe_to_string nstr
 
 
 let startletter = Pcre.regexp "\\b\\w"
@@ -281,28 +281,28 @@ let center ?(pad=' ') ?(trunc=false) src width =
 	String.copy src
     end else 
       let space = (width - len) / 2 in
-      let centered = String.make width pad in
+      let centered = Bytes.make width pad in
 	String.blit src 0 centered space len;
-	centered
+	Bytes.unsafe_to_string centered
 
 let rev s =
-  let str = String.copy s in
+  let str = Bytes.of_string s in
   let n = ref 0
-  and p = ref ((String.length str) - 1) in
+  and p = ref ((Bytes.length str) - 1) in
     while !n < !p do
-      let tmp = String.unsafe_get str !n in
-	String.unsafe_set str !n (String.unsafe_get str !p);
+      let tmp = Bytes.unsafe_get str !n in
+	Bytes.unsafe_set str !n (Bytes.unsafe_get str !p);
 	String.unsafe_set str !p tmp;
 	incr n;
 	decr p;
     done;
-    str
+    Bytes.unsafe_to_string str
 
 let implode lst =
   let str = String.create (List.length lst) in
   let pos = ref 0 in
     List.iter (fun c -> str.[!pos] <- c; incr pos) lst;
-    str
+    Bytes.unsafe_to_string str
 
 let explode str =
   let res = ref [] in
@@ -332,9 +332,9 @@ let ljust ?(pad=' ') ?(trunc=false) str n =
       else 
 	String.copy str
     end else 
-      let newstr = String.make n pad in
+      let newstr = Bytes.make n pad in
 	String.blit str 0 newstr 0 len;
-	newstr
+	Bytes.unsafe_to_string newstr
 
 let rjust ?(pad=' ') ?(trunc=false) str  n =
   let len = String.length str in
@@ -344,9 +344,9 @@ let rjust ?(pad=' ') ?(trunc=false) str  n =
       else 
 	String.copy str
     end else 
-      let newstr = String.make n pad in
+      let newstr = Bytes.make n pad in
 	String.blit str 0 newstr (n - len) len;
-	newstr
+	Bytes.unsafe_to_string newstr
 
 let subpos str start stop =
   let len = stop - start + 1 in
@@ -376,7 +376,7 @@ let repeat str times =
     for n = 0 to times - 1 do
       String.unsafe_blit str 0 newstr (n * len) len
     done;
-    newstr
+    Bytes.unsafe_to_string newstr
 
 external collate: string -> string -> int = "stew_strcoll"
 
@@ -463,7 +463,7 @@ let replace str old rep =
 let of_array arr = 
   let str = String.create (Array.length arr) in
     Array.iteri (fun i c -> str.[i] <- c) arr;
-    str
+    Bytes.unsafe_to_string str
 
 let to_array str = Array.init (String.length str) (function i -> str.[i])