[Efont-devel] Re: CLWFK 対応 FontForge 改造版を作成中です

Back to archive index

Hidetaka Iwai tyuyu****@debia*****
2005年 4月 30日 (土) 17:06:36 JST


岩井です。

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

> 以下のような作業を手伝ってくださる開発協力者を募集しています。
> ・各種プラットフォーム上でのバイナリ作成
> ・バグ出しのための試用とバグ修正
> ・文字定義の改良 (とくに汚い文字)
> ・その他いろいろ

RedHat 7.3 上で試用してみました。FontForge は 2005/04/30 の cvs 幹、パッ
チは 4/29 のものです。以下、気になった事を列挙します。

1. fontforge/autotrace.c の FindLispName() について、eaccess(2) をサポー
   トしていないプラットフォームのために、configure.in で AC_CHECK_FUNC
   を使って eaccess の有無を判別させた方が良いのではないか?
2. サンプルファイル(prim-sample.l.gz) を開こうとすると fontforge/sfd.c
   の utf7_enc() で SIGSEGV になる。utf7_u_strcpy() で確保している buf
   が少ないのではないか?

2. については、Unichar 一文字毎に base64 エンコードに出たり入ったりす
   るとすれば、16 ビット を 6 ビット毎にエンコードして 3  + 前後の'+'
   '-' の一文字当たり最大 5 バイト必要なように思いますが、必要な文字数
   の最適な出し方はちょっとわかりません。

参考までに(拙劣な)パッチを添付します。

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

-------------- next part --------------
diff -urN tmp2/configure.in tmp/configure.in
--- tmp2/configure.in	Sat Apr 30 16:35:44 2005
+++ tmp/configure.in	Sat Apr 30 12:09:12 2005
@@ -201,6 +201,7 @@
 dnl older libc's don't have snprintf
 
 AC_CHECK_FUNC(snprintf, : , AC_DEFINE(_NO_SNPRINTF))
+AC_CHECK_FUNC(eaccess, : , AC_DEFINE(_NO_EACCESS))
 
 AC_C_CONST
 AC_PATH_XTRA
diff -urN tmp2/fontforge/autotrace.c tmp/fontforge/autotrace.c
--- tmp2/fontforge/autotrace.c	Sat Apr 30 16:36:00 2005
+++ tmp/fontforge/autotrace.c	Sat Apr 30 12:14:29 2005
@@ -262,8 +262,14 @@
 static char *FindLispName(void) {
     if ( lispname==NULL )
 	lispname = getenv("LISP");
-    if ( lispname==NULL && eaccess(default_lisp_name, X_OK)==0 )
+#if defined(_NO_EACCESS)
+	/* I think it should use, at least, euidaccess, but I have no idea.. */
+    if ( lispname==NULL && access(default_lisp_name, X_OK)==0 ) 
+#else
+    if ( lispname==NULL && eaccess(default_lisp_name, X_OK)==0 ) 
+#endif
 	lispname = default_lisp_name;
+
 return lispname;
 }
 
diff -urN tmp2/fontforge/sfd.c tmp/fontforge/sfd.c
--- tmp2/fontforge/sfd.c	Sat Apr 30 16:36:00 2005
+++ tmp/fontforge/sfd.c	Sat Apr 30 16:23:53 2005
@@ -149,8 +149,10 @@
 static char *u2utf7_copy(const unichar_t *ubuf) {
     int len = u_strlen(ubuf);
     char *buf;;
-
+#if 0
     if ((buf=galloc(len*sizeof(unichar_t)))==NULL)
+#endif
+    if ((buf=galloc(len*5))==NULL)
 return NULL;
     utf7_u_strcpy(buf,ubuf);
     return buf;


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