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

[debian-users:35490] Re: fontset error in package fvwm2



有家です。
[FVWM][GetFontSetOrFixed]: WARNING -- can't get fontset 'fixed'
の解決としては、

  1) 何らかのパッケージ xfonts-* をインストールする
  2) /usr/X11R6/lib/X11/fonts/misc/fonts.alias を編集する

のいずれかを考えているのですが、まだ未解決です。
とりあえず、これまでに試みたことを以下に書きます。

▼
1) .fvwm2rc の第一行目に不当なコマンド "oo" を書いて fvwm2 を起動すると

[FVWM][GetFontSetOrFixed]: WARNING -- can't get fontset 'fixed', trying '-*-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*'
[FVWM][execute_function]: <<ERROR>> No such command 'oo'

と出ます。
ということは GetFontSetOrFixed の警告は .fvwm2rc を読み込む時点より前に出ている
と考えました。

▼
2) fvwm2 のパッチ fvwm_2.4.6-2.diff.gz の中に上記のWARNINGを出している部分を
見付けました(後述)。問題のWARNINGは libs/GetFont.c の

++    if (strcmp("fixed",fontname))
++      fontset = XCreateFontSet(disp,fontname,&ml,&mc,&ds);

行で fontset が定義されないために出されているように思います。
XCreateFontSet関数は fvwm2 のソース中には無かったのでまだ調べていません。

▼
3) apt-get source で落した fvwm_2.4.6.tar.gz から、パッチを当てずに直接

  ./configure --enable-multibyte && make && sudo make install

して起動すると、上記のWARNINGは出ません(が、これは解決ではない)。


--- fvwm-2.4.6.orig/debian/patches/01_getfontsetorfixed_2.4.5.diff
+++ fvwm-2.4.6/debian/patches/01_getfontsetorfixed_2.4.5.diff
@@ -0,0 +1,65 @@
+--- libs/GetFont.c.orig	Tue Dec  5 18:22:40 2000
++++ libs/GetFont.c	Mon Jan 28 20:02:24 2002
+@@ -59,38 +59,46 @@
+   XFontSet fontset = NULL;
+   char **ml;
+   int mc;
++  int i;
+   char *ds;
+ 
+   if (fontname)
+-    fontset = XCreateFontSet(disp,fontname,&ml,&mc,&ds);
+-  if (!fontset && fontname)
+   {
+-    fprintf(stderr,
++    if (strcmp("fixed",fontname))
++      fontset = XCreateFontSet(disp,fontname,&ml,&mc,&ds);
++  }
++  else
++  {
++     fprintf(stderr,
+             "[FVWM][GetFontSetOrFixed]: "
+-	    "WARNING -- can't get fontset %s, trying 'fixed'\n",
+-            fontname);
++	    "WARNING -- fontname is a NULL-string\n");
+   }
+   if (!fontset)
+   {
++    fprintf(stderr,
++            "[FVWM][GetFontSetOrFixed]: "
++	    "WARNING -- can't get fontset '%s', trying '-*-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*'\n",
++            fontname);
+     /* fixed should always be avail, so try that */
+-#ifdef STRICTLY_FIXED
+-    if ((fontset = XCreateFontSet(disp,"fixed",&ml,&mc,&ds))==NULL)
+-    {
+-      fprintf(stderr,
+-	      "[FVWM][GetFontSetOrFixed]: "
+-	      "ERROR -- can't get fontset 'fixed'\n");
+-    }
+-#else
+-    /* Yes, you say it's not a *FIXED* font, but it helps you. */
+     if ((fontset =
+ 	 XCreateFontSet(disp,
+ 			"-*-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*",
+ 			&ml, &mc, &ds)) == NULL)
+     {
+       fprintf(stderr,"[FVWM][GetFontSetOrFixed]: "
+-	      "ERROR -- can't get fontset 'fixed'\n");
++	      "ERROR -- can't get fontset '-*-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*'\n");
++    }
++  }
++  if (fontset){
++    if (mc > 0) {
++      (void)fprintf(stderr, 
++		    "[FVWM][GetFontSetOrFixed][%s]:"
++		    "The following charsets are missing:\n", fontname);
++      for(i=0; i < mc; i++)
++	fprintf(stderr, " %s", ml[i]);
++      fprintf(stderr, "\n");
++      XFreeStringList(ml);
+     }
+-#endif
+   }
+ 
+   return fontset;


-- 
pba00250@xxxxxxxxx
yoariie@xxxxxxxxxxxxxxx
-------------------------
有家佳紀  Yoshinori Ariie