[Efont-devel] Re: FF+CLWFK のバグ・未実装機能

Back to archive index

Hidetaka Iwai tyuyu****@debia*****
2005年 5月 4日 (水) 00:47:01 JST


岩井です。

KANOU Hiroki <kanou****@khdd*****> wrote:
Message-ID: <20050****@lists*****>

> ・エラーチェック
> 3/3 CLWFK を呼ぶときに、ストロークの点の個数を確認
> 	kozato に点が 3 つしかないとか。

とりあえず、これだけ実装しました。といっても単に stderr にエラーメッセー
ジを吐いて戻るだけです(^^; 足りない点を自動的に補ってくれると理想的な
んですが...

> ・バグ
(snip)
> 1/3 プリミティブ「象」が正しく読み込めない	

prim-sample.l の「象」は一応書かれている通りに読み込まれているように見
えますが、正しく読み込めない、というのはどのような状況でしょうか?

regards,
--
 Hidetaka Iwai
 tyuyu****@debia*****

-------------- next part --------------
diff -urN fontforge-20050310.orig/fontforge/cvexport.c fontforge-20050310/fontforge/cvexport.c
--- fontforge-20050310.orig/fontforge/cvexport.c	2005-05-04 00:13:24.000000000 +0900
+++ fontforge-20050310/fontforge/cvexport.c	2005-05-04 00:13:47.000000000 +0900
@@ -111,7 +111,7 @@
 
     fprintf(skel, "%s", "       (");
     for ( spl=sc->layers[ly_fore].splines; spl!=NULL; spl=spl->next ) {
-        int nJoints=0;
+        int nJoints=0, nPoints = 0;
 	if ( spl->stroketype>=sk_kamae )
     continue;
         fprintf(skel, "%s(%s (", spl==sc->layers[ly_fore].splines?"":"        ",
@@ -122,11 +122,20 @@
 	        joints[nJoints++] = BPIndex(me,points,numPoints);
 	    } else {
 	        fprintf(skel, "%d", BPIndex(me,points,numPoints));
+		nPoints++;
 		if ( sp->next!=NULL && sp->next->to!=spl->first )
 		    fputc(' ', skel);
 	    }
 	}
 	fprintf(skel, ")");
+
+	if(nPoints < num_points_in_strokes[spl->stroketype]) {
+		fprintf(stderr, "Failed to export skeleton, because %s needs %d points but there are %d points\n",
+			 stroketypes[spl->stroketype],
+			 num_points_in_strokes[spl->stroketype],
+			 nPoints);
+		return(0);
+	}
 	if (nJoints > 0) {
 	    fprintf(skel, " (link ");
 	    for ( i=0; i<nJoints; i++ ) {


Efont-devel メーリングリストの案内
Back to archive index