[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-devel:15588] Processing comments in vfontmap (was: current xdvi-pl depends on perl-5.8)
debian-devel ML で報告されたのですが,xdvik-22.40v-j1.13 では
vfontmap のコメントの処理が正しく行われていないため,ある種の条件を満
たすエントリが vfontmap に含まれていると,
, There is too much argument.
というエラーメッセージが出力されます.例えば,
### GT type face 2000
という行を vfontmap に追加して試してみてください.
ただし,これは strtok() の実装に依存した問題かもしれません.手元の
glibc-2.3.1 では行頭に # がある状態で strtok(line, "#") しても行頭に
\0 が代入されません.そのため,この行がコメントのみであると扱われず,
かつ,3つ以上の token からなる行と解釈されるために,上述のエラーメッセー
ジが出力されるわけです.
とりあえず,コメントについては strtok() を使わないように修正すると,メッ
セージが出力されないようになりました.
--
土屋 雅稔 ( TSUCHIYA Masatoshi )
--- vfontmap.c.orig 2003-03-10 23:04:34.000000000 +0900
+++ vfontmap.c 2003-03-10 23:33:51.000000000 +0900
@@ -84,7 +84,7 @@
{
FILE *map;
_Xconst char *vfontmapf;
- char *jfmname, *vfname, line[BUFSIZ];
+ char *jfmname, *vfname, *comment, line[BUFSIZ];
int i, tate;
#if defined(USE_ZEIT) && defined(USE_VFONTMAP)
@@ -95,7 +95,8 @@
} else {
while (fgets(line, BUFSIZ, map) != NULL) {
tate = 0;
- strtok(line, "#"); /* break comment */
+ if ((comment = strchr(line, '#')) != NULL) /* break comment */
+ *comment = '\0';
jfmname = strtok(line, " \t\n");
vfname = strtok(NULL, " \t\n");
#ifdef PTEX