git.annexia.org
/
virt-top.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
20c078b
)
Fixes for -safe-string in OCaml 4.06.
author
Richard W.M. Jones
<rjones@redhat.com>
Sat, 18 Nov 2017 12:01:34 +0000
(12:01 +0000)
committer
Richard W.M. Jones
<rjones@redhat.com>
Sat, 18 Nov 2017 12:01:34 +0000
(12:01 +0000)
src/top.ml
patch
|
blob
|
history
diff --git
a/src/top.ml
b/src/top.ml
index
e2a93d6
..
d4f7697
100644
(file)
--- a/
src/top.ml
+++ b/
src/top.ml
@@
-296,17
+296,20
@@
let millisleep n =
*)
let get_string maxlen =
ignore (echo ());
*)
let get_string maxlen =
ignore (echo ());
- let str = String.create maxlen in
- let ok = getstr str in (* Safe because binding calls getnstr. *)
+ let str = Bytes.create maxlen in
+ (* Safe because binding calls getnstr. However the unsafe cast
+ * to string is required because ocaml-curses needs to be fixed.
+ *)
+ let ok = getstr (Obj.magic str) in
ignore (noecho ());
if not ok then ""
else (
(* Chop at first '\0'. *)
try
ignore (noecho ());
if not ok then ""
else (
(* Chop at first '\0'. *)
try
- let i =
String
.index str '\000' in
-
String.sub
str 0 i
+ let i =
Bytes
.index str '\000' in
+
Bytes.sub_string
str 0 i
with
with
- Not_found -> str (* it is full maxlen bytes *)
+ Not_found ->
Bytes.to_string
str (* it is full maxlen bytes *)
)
(* Main loop. *)
)
(* Main loop. *)