From b9b74a794b3d3f009154604774017dd23ed26187 Mon Sep 17 00:00:00 2001 From: malc Date: Fri, 23 Nov 2012 06:36:51 +0400 Subject: [PATCH] Handle non utf8 paths on OCaml side too --- link.c | 18 ++++++++++++++++++ main.ml | 3 ++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/link.c b/link.c index 70e10d2..86e7156 100644 --- a/link.c +++ b/link.c @@ -1525,6 +1525,24 @@ static char *mbtoutf8 (char *s) return r; } +CAMLprim value ml_mbtoutf8 (value s_v) +{ + CAMLparam1 (s_v); + CAMLlocal1 (ret_v); + char *s, *r; + + s = String_val (s_v); + r = mbtoutf8 (s); + if (r == s) { + ret_v = s_v; + } + else { + ret_v = caml_copy_string (r); + free (r); + } + CAMLreturn (ret_v); +} + static void * mainloop (void *unused) { char *p = NULL; diff --git a/main.ml b/main.ml index 4ad9395..baa12b0 100644 --- a/main.ml +++ b/main.ml @@ -98,6 +98,7 @@ external getlinkrect : opaque -> int -> irect = "ml_getlinkrect";; external getlinkcount : opaque -> int = "ml_getlinkcount";; external findpwl: int -> int -> pagewithlinks = "ml_find_page_with_links" external popen : string -> (Unix.file_descr * int) list -> unit = "ml_popen";; +external mbtoutf8 : string -> string = "ml_mbtoutf8";; let platform_to_string = function | Punknown -> "unknown" @@ -1853,7 +1854,7 @@ let opendoc path password = flushpages (); setaalevel conf.aalevel; - Wsi.settitle ("llpp " ^ Filename.basename path); + Wsi.settitle ("llpp " ^ (mbtoutf8 (Filename.basename path))); wcmd "open %s\000%s\000" path password; invalidate "reqlayout" (fun () -> -- 2.11.4.GIT