dev-ml/tyxml: fix build with uutf 1.0
authorAlexis Ballier <aballier@gentoo.org>
Mon, 28 Nov 2016 20:27:17 +0000 (21:27 +0100)
committerAlexis Ballier <aballier@gentoo.org>
Mon, 28 Nov 2016 20:27:33 +0000 (21:27 +0100)
Package-Manager: portage-2.3.2

dev-ml/tyxml/files/uutf.patch [new file with mode: 0644]
dev-ml/tyxml/tyxml-4.0.0.ebuild

diff --git a/dev-ml/tyxml/files/uutf.patch b/dev-ml/tyxml/files/uutf.patch
new file mode 100644 (file)
index 0000000..e7d0a3f
--- /dev/null
@@ -0,0 +1,53 @@
+Index: tyxml-4.0.0/lib/xml_print.ml
+===================================================================
+--- tyxml-4.0.0.orig/lib/xml_print.ml
++++ tyxml-4.0.0/lib/xml_print.ml
+@@ -154,15 +154,14 @@ module Utf8 = struct
+       Uutf.String.fold_utf_8
+         (fun _ _ d ->
+            match d with
+-           | `Uchar 34 ->
+-               Buffer.add_string buffer "&quot;"
+-           | `Uchar 38 ->
+-               Buffer.add_string buffer "&amp;"
+-           | `Uchar 60 ->
+-               Buffer.add_string buffer "&lt;"
+-           | `Uchar 62 ->
+-               Buffer.add_string buffer "&gt;"
+-           | `Uchar code ->
++           | `Uchar ucode ->
++              begin
++              match Uchar.to_int ucode with
++              | 34 -> Buffer.add_string buffer "&quot;"
++              | 38 -> Buffer.add_string buffer "&amp;"
++              | 60 -> Buffer.add_string buffer "&lt;"
++              | 62 -> Buffer.add_string buffer "&gt;"
++              | code ->
+                let u =
+                  (* Illegal characters in html
+                   http://en.wikipedia.org/wiki/Character_encodings_in_HTML
+@@ -181,9 +180,10 @@ module Utf8 = struct
+                    || code land 0xFFFF = 0xFFFE
+                    || code land 0xFFFF = 0xFFFF
+                  then (warn:=true; Uutf.u_rep)
+-                 else code
++                 else ucode
+                in
+                Uutf.Buffer.add_utf_8 buffer u
++             end
+            | `Malformed _ ->
+                Uutf.Buffer.add_utf_8 buffer Uutf.u_rep;
+                warn:=true)
+Index: tyxml-4.0.0/ppx/ppx_attribute_value.ml
+===================================================================
+--- tyxml-4.0.0.orig/ppx/ppx_attribute_value.ml
++++ tyxml-4.0.0/ppx/ppx_attribute_value.ml
+@@ -160,7 +160,7 @@ let char ?separated_by:_ ?default:_ loc
+   let c =
+     match next decoded with
+     | None -> Ppx_common.error loc "No character in attribute %s" name
+-    | Some i when i <= 255 -> Char.chr i
++    | Some i when Uchar.to_int i <= 255 -> Char.chr (Uchar.to_int i)
+     | Some _ ->
+       Ppx_common.error loc "Character out of range in attribute %s" name
+   in
index 756ecbffc797c46a47602967c91d307fce799f69..f18fea8aa6f8abd250ffb7fa163d51cad4beaa77 100644 (file)
@@ -18,13 +18,14 @@ KEYWORDS="~amd64"
 IUSE="+ppx +camlp4"
 
 DEPEND="
-       dev-ml/uutf:=
+       >=dev-ml/uutf-1.0:=
        dev-ml/ocaml-re:=
        ppx? ( >=dev-ml/ppx_tools-5:= dev-ml/markup:= )
        camlp4? ( dev-ml/camlp4:= )"
 RDEPEND="${DEPEND}"
 
 DOCS=( CHANGES README.md )
+PATCHES=( "${FILESDIR}/uutf.patch" )
 
 src_configure() {
        oasis_configure_opts="