@@ -310,6 +310,11 @@ foreign import ccall unsafe "get_buffer_used"
310310foreign import ccall unsafe "my_emitter_set_output"
311311 c_my_emitter_set_output :: Emitter -> Buffer -> IO ()
312312
313+#ifndef __NO_UNICODE__
314+foreign import ccall unsafe "yaml_emitter_set_unicode"
315+ c_yaml_emitter_set_unicode :: Emitter -> CInt -> IO ()
316+#endif
317+
313318foreign import ccall unsafe "yaml_emitter_set_output_file"
314319 c_yaml_emitter_set_output_file :: Emitter -> File -> IO ()
315320
@@ -618,6 +623,9 @@ runEmitter allocI closeI =
618623 emitter <- mallocBytes emitterSize
619624 res <- c_yaml_emitter_initialize emitter
620625 when (res == 0) $ throwIO $ YamlException "c_yaml_emitter_initialize failed"
626+#ifndef __NO_UNICODE__
627+ c_yaml_emitter_set_unicode emitter 1
628+#endif
621629 a <- allocI emitter
622630 return (emitter, a)
623631 cleanup (emitter, _) = do