【xdvi-17.tar.gz と xdvi-17miyu.patch-beta6.gz の使い方。】


●VFlib-2.?.? に対応するため
dnpzeit.c の VF_get_bitmap() -> VF_GetBitmap(code, ....)
xdvi.c の VF_init() -> VF_Init(NULL)   NULL じゃないと Segmentation Fault
などを更新。
VF.h を VFlib-2.?.? のものに置き換える。
x

●カーソルを動かすと終了してしまう場合は
xdvi.h の
----------
#define       HAS_SIGIO             /* has SIGIO on _sockets_ */
----------
を
----------
/*#define       HAS_SIGIO*/             /* has SIGIO on _sockets_ */
----------
とするか、
----------
        (void) signal(SIGIO, handle_intr);
----------
を
----------
        (void) signal(SIGIO, SIG_IGN);
----------
とする。 



●日本語がすべて黒い四角になる場合は、
xdvi.h の
----------
#if     NeedWidePrototypes
#define WIDEARG(a, b)   b
#else
#define WIDEARG(a, b)   a
#endif
----------
を
----------
#define WIDEARG(a, b)   b
----------
とする。


●-DDEFAULT_SHRINK=\"5\" -DBDPI=400
は、なぜか効かない。
xdvi.shrinkFactor:5
xdvi.pixelsPerInch:400
としている。

●min、goth以外のフォントを使うには

dvi_init.c の中の iskanjifont() でVFlib を使うかどうか決めている。
zeit.c の中の open_ZEIT_font() の変更も必要。
zeit.c で、FontPath は、使わない。
iskanjifont(char *font) が 0 以外の値を返すと、
VFlib が使われる。font が min?? なら 1 を
goth?? なら 2 を返し、あとは、すべて 0 を
返すようになっているので、対応したいフォント
に対して 3, 4 など、適当な値を返すようにする。

-----
int
iskanjifont(font)
        char *font;
{
        if (strncmp(font, "min", 3) == 0 || strncmp(font, "nmin", 4) == 0)
            return 1;
        if (strncmp(font, "goth", 4) == 0 || strncmp(font, "ngoth", 5) == 0)
            return 2;
        if (strncmp(font, "cpkantei",8)==0)
            return 3;
        if (strncmp(font, "imadu1",6)==0)
            return 4;
        return 0;
}
-----
など。


iskanjifont()の返り値が open_ZEIT_font(struct font *fontp,int shotai)
の shotai として与えられるので、

393c393
<       static int min = -1, goth = -1;
---
>       static int min = -1, goth = -1,kan = -1;
398,399c398,411
<         path = (shotai == 1 ? "min" : "goth");
< 
---
>       switch(shotai){
>       case 1:
>         path="min";
>         fd=&min;
>         break;
>       case 2:
>         path="goth";
>         fd=&goth;
>         break;
>       case 3:
>         path="cpkantei";
>         fd=&kan;
>         break;
>       }
402,403c413
<       fd = (shotai == 1 ? &min : &goth);
<       if (-1 == *fd && -1 == (*fd = VF_OpenFont(path)))
---
>         if (-1 == *fd && -1 == (*fd = VF_OpenFont(path)))

などとすれば、とりあえず使える。
抜本的な対応は考え中。
#iskanjifont() の中で VF_OpenFont() を呼んで、
#フォントID をリターンするなど。
#あるいは、vfontcap を参照するとか。

Applauseこと 寺川 愛印(Ein Terakawa)

E-mail:applause@tky.3web.ne.jp