[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[mgp-users-jp 01409] segfault 'mgp -D' when m17n enabled



m17n を enableにした mgp だと mgp -D で htmlを生成する時に
segfault します。

ひとつは、genhtml()の時には M17N_init() が呼ばれないので、
mconv_resolve_coding()の中あたりで初期化されてないために
segfaultしているようです。

もうひとつは、genhtml()の中で MText をファイルにテキストと
して出力しないといけないと思うのですが、これはどうするのが
いいのでしょうか?

diff --exclude=debian --exclude=CVS -Nru kit/mgp.c mgp-1.11b/mgp.c
--- kit/mgp.c	2004-09-25 01:42:51.000000000 +0900
+++ mgp-1.11b/mgp.c	2005-05-29 22:10:25.899873691 +0900
@@ -456,6 +456,10 @@
 
 	signal(SIGCHLD, waitkids);
 
+#ifdef USE_M17N
+	/* initaiize M17N library */
+	M17N_init();
+#endif
 	if (dumpdir)
 		genhtml(start_page);
 	else if (mgp_flag & FL_DEMO) {
@@ -628,6 +632,14 @@
 					goto txtdone;
 				break;
 			case CTL_TEXT:
+				if (!state.cp->ctc_value)
+					break;
+#ifdef USE_M17N
+				if (! (mgp_flag & FL_NOM17N)) {
+					/* XXX; output text */
+					break;
+				}
+#endif
 				fprintf(txt, "%s", state.cp->ctc_value);
 				break;
 			case CTL_LINEEND:
diff --exclude=debian --exclude=CVS -Nru kit/x11.c mgp-1.11b/x11.c
--- kit/x11.c	2004-07-08 15:09:54.000000000 +0900
+++ mgp-1.11b/x11.c	2005-05-29 21:55:47.831534417 +0900
@@ -350,10 +350,6 @@
 		toggle_fullscreen();			
 	}
 
-#ifdef USE_M17N
-	/* initaiize M17N library */
-	M17N_init();
-#endif
 }
 
 void

-- 
鵜飼文敏