X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=utils%2Fimdoc.c;h=8854093e428614f02a42e4cc2140ae5cfc50aa5d;hb=f61e679bd8dbb3aad9f87e2d30ce0df1093cb01c;hp=346da2f0e774afbb6e4d16fe91cfbeebdd73384e;hpb=26da46c8e150370680a7c07f24d8142f514bdac1;p=m17n%2Fm17n-docs.git diff --git a/utils/imdoc.c b/utils/imdoc.c index 346da2f..8854093 100644 --- a/utils/imdoc.c +++ b/utils/imdoc.c @@ -161,11 +161,48 @@ main (int argc, char **argv) } else { - printf ("@verbatim\n"); - mconv_encode_stream (msymbol ("utf-8"), mt, stdout); + int len = mtext_len (mt), i, c; + + for (i = 0; i < len; i++) + { + c = mtext_ref_char (mt, i); + if (c >= 0x100) + break; + } + if (i < len) + printf ("@htmlonly\n
\n");
+      else
+	printf ("@verbatim\n");
+      mconv_encode_stream (Mutf8, mt, stdout);
       if (mtext_ref_char (mt, mtext_len (mt) - 1) != '\n')
 	printf ("\n");
-      printf ("@endverbatim\n");
+      if (i < len)
+	{
+	  MConverter *converter = mconv_stream_converter (Mutf8, stdout);
+	  int from;
+
+	  printf ("

\n@endhtmlonly\n"); + printf ("@latexonly\n\\begin{verbatim}\n"); + if (i > 0) + mconv_encode_range (converter, mt, 0, i); + for (from = i; i < len; i++) + { + c = mtext_ref_char (mt, i); + if (c >= 0x100) + { + if (i > from) + mconv_encode_range (converter, mt, from, i); + printf ("U+%04X", c); + from = i + 1; + } + } + if (i > from) + mconv_encode_range (converter, mt, from, i); + printf ("\\end{verbatim}\n@endlatexonly\n"); + mconv_free_converter (converter); + } + else + printf ("@endverbatim\n"); } M17N_FINI ();