X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=utils%2Fimdoc.c;h=ed5d82067de9871b6e72c0298d67b4582c30fe1a;hb=2cb6096b0d1b5e2fe4ae6f3558eafdc6d43c5e81;hp=8854093e428614f02a42e4cc2140ae5cfc50aa5d;hpb=f1f28b8d79c8062b656f5f17dc081eda6eec5270;p=m17n%2Fm17n-docs.git diff --git a/utils/imdoc.c b/utils/imdoc.c index 8854093..ed5d820 100644 --- a/utils/imdoc.c +++ b/utils/imdoc.c @@ -17,6 +17,8 @@ invalid_file (char *filename) exit (1); } +#define INHIBIT_TITLE + int main (int argc, char **argv) { @@ -103,10 +105,16 @@ main (int argc, char **argv) { MText *title = mplist_value (plist); +#ifndef INHIBIT_TITLE printf ("@htmlonly\n title:\""); +#else + printf ("@htmlonly\n"); +#endif plist = mplist_next (plist); +#ifndef INHIBIT_TITLE mconv_encode_stream (Mutf8, title, stdout); printf ("\""); +#endif if (mplist_key (plist) != Mnil) { MText *icon = mplist_value (plist); @@ -114,11 +122,17 @@ main (int argc, char **argv) NULL, NULL, NULL); char *base; char cmd[1024]; + int result; base = basename (strdup (iconfile)); sprintf (cmd, "convert -resize 50%% %s images/icon-%s", iconfile, base); - system (cmd); + result = system (cmd); + if (result != 0) + { + fprintf (stderr, "Command fail: %s", cmd); + exit (1); + } printf (" icon:\n", base); } else @@ -161,48 +175,46 @@ main (int argc, char **argv) } else { + MConverter *converter = mconv_stream_converter (Mutf8, stdout); int len = mtext_len (mt), i, c; + int has_non_ascii = 0; + if (mtext_ref_char (mt, len - 1) != '\n') + { + mtext_ins_char (mt, len, '\n', 1); + len ++; + } + for (i = 0; i < len; i++) { c = mtext_ref_char (mt, i); if (c >= 0x100) - break; + { + has_non_ascii = 1; + break; + } } - if (i < len) - printf ("@htmlonly\n
\n");
-      else
-	printf ("@verbatim\n");
+      if (has_non_ascii)
+	printf ("@if FOR_HTML\n");
+      printf ("@verbatim\n");
       mconv_encode_stream (Mutf8, mt, stdout);
-      if (mtext_ref_char (mt, mtext_len (mt) - 1) != '\n')
-	printf ("\n");
-      if (i < len)
+      printf ("@endverbatim\n");
+      if (has_non_ascii)
 	{
-	  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++) + printf ("@endif\n@if FOR_LATEX\n"); + printf ("@verbatim\n"); + for (i = 0; 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; - } + printf ("", c); + else + putchar (c); } - if (i > from) - mconv_encode_range (converter, mt, from, i); - printf ("\\end{verbatim}\n@endlatexonly\n"); - mconv_free_converter (converter); + printf ("@endverbatim\n"); + printf ("@endif\n"); } - else - printf ("@endverbatim\n"); + mconv_free_converter (converter); } M17N_FINI ();