[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mgp-users-jp 00588] Real number in font size bug
- To: mgp-users-jp@mew.org
- Subject: [mgp-users-jp 00588] Real number in font size bug
- From: Jacques GARRIGUE <garrigue@kurims.kyoto-u.ac.jp>
- Date: Wed, 18 Aug 1999 11:26:22 +0900
- Posted: Wed, 18 Aug 1999 11:26:38 +0900
- Reply-to: mgp-users-jp@mew.org
京大数研のGarrigueです。
magicpoint-1.06a をDEC alphaで試したら、見事にfloating point exception
でこけました。調べて見たら、フォントサイズに実数を使うパッチが中途半端
なせいで、初期値は整数のままでした。
このパッチで治ります。
ちなみにfreetypeを使えないでいますが、それは原因不明です。
エラーはfreetypeのライブラリにかなり深い所で起こりますので、調べにくい。
(ライブラリ自体はenlightenmentで使えていますけれども)
────────────────────────────
Jacques Garrigue/雅利賀 惹玖 京都大学 数理解析研究所
garrigue@kurims.kyoto-u.ac.jp Tel.(075)753-7211/Fax.7272
http://wwwfun.kurims.kyoto-u.ac.jp/~garrigue/
diff -rc magicpoint-1.06a/globals.c magicpoint-1.06a-patched/globals.c
*** magicpoint-1.06a/globals.c Sun Jul 4 00:52:43 1999
--- magicpoint-1.06a-patched/globals.c Wed Aug 18 10:34:52 1999
***************
*** 92,98 ****
/*CTL*/ { CTL_NOOP, T_VOID, "noop", 4 },
/*CTL*/ { CTL_DEFAULT, T_INT, "default", 7 },
/*CTL*/ { CTL_TAB, T_SP, "tab", 3 },
! /*CTL*/ { CTL_SIZE, T_INT, "size", 4 },
/*CTL*/ { CTL_FORE, T_LONG, "fore", 4 },
/*CTL*/ { CTL_BACK, T_LONG, "back", 4 },
/*CTL*/ { CTL_LEFT, T_VOID, "left", 4 },
--- 92,98 ----
/*CTL*/ { CTL_NOOP, T_VOID, "noop", 4 },
/*CTL*/ { CTL_DEFAULT, T_INT, "default", 7 },
/*CTL*/ { CTL_TAB, T_SP, "tab", 3 },
! /*CTL*/ { CTL_SIZE, T_DOUBLE, "size", 4 },
/*CTL*/ { CTL_FORE, T_LONG, "fore", 4 },
/*CTL*/ { CTL_BACK, T_LONG, "back", 4 },
/*CTL*/ { CTL_LEFT, T_VOID, "left", 4 },
diff -rc magicpoint-1.06a/mgp.h magicpoint-1.06a-patched/mgp.h
*** magicpoint-1.06a/mgp.h Sun Jul 4 00:52:44 1999
--- magicpoint-1.06a-patched/mgp.h Wed Aug 18 10:39:21 1999
***************
*** 329,334 ****
--- 329,335 ----
#define T_STR2 'C'
#define T_INT 'i'
#define T_LONG 'l'
+ #define T_DOUBLE 'f'
#define T_SP 'x'
#define T_VOID '-'
char *ctl_string;
diff -rc magicpoint-1.06a/parse.c magicpoint-1.06a-patched/parse.c
*** magicpoint-1.06a/parse.c Sat Jun 26 22:05:07 1999
--- magicpoint-1.06a-patched/parse.c Wed Aug 18 10:52:29 1999
***************
*** 786,792 ****
tmplong[2] = ctlalloc1(CTL_CCOLOR);
get_color(DEFAULT_FORE, &tmplong[2]->ctl_value);
tmpint[0] = ctlalloc1(CTL_SIZE);
! tmpint[0]->cti_value = DEFAULT_CHARSIZE;
tmpint[1] = ctlalloc1(CTL_HGAP);
tmpint[1]->cti_value = DEFAULT_HGAP;
tmpint[2] = ctlalloc1(CTL_VGAP);
--- 786,792 ----
tmplong[2] = ctlalloc1(CTL_CCOLOR);
get_color(DEFAULT_FORE, &tmplong[2]->ctl_value);
tmpint[0] = ctlalloc1(CTL_SIZE);
! tmpint[0]->ctf_value = DEFAULT_CHARSIZE;
tmpint[1] = ctlalloc1(CTL_HGAP);
tmpint[1]->cti_value = DEFAULT_HGAP;
tmpint[2] = ctlalloc1(CTL_VGAP);
***************
*** 832,838 ****
if (!tmpint[i])
continue;
cp->ct_next = ctlalloc1(tmpint[i]->ct_op);
! cp->ct_next->cti_value = tmpint[i]->cti_value;
cp = cp->ct_next;
}
for (i = 0; i < 10; i++) {
--- 832,838 ----
if (!tmpint[i])
continue;
cp->ct_next = ctlalloc1(tmpint[i]->ct_op);
! cp->ct_next->ct_val = tmpint[i]->ct_val;
cp = cp->ct_next;
}
for (i = 0; i < 10; i++) {
***************
*** 935,941 ****
if (!tmpint[i])
continue;
cp->ct_next = ctlalloc1(tmpint[i]->ct_op);
! cp->ct_next->cti_value = tmpint[i]->cti_value;
cp = cp->ct_next;
}
for (i = 0; i < 10; i++) {
--- 935,941 ----
if (!tmpint[i])
continue;
cp->ct_next = ctlalloc1(tmpint[i]->ct_op);
! cp->ct_next->ct_val = tmpint[i]->ct_val;
cp = cp->ct_next;
}
for (i = 0; i < 10; i++) {
***************
*** 1250,1255 ****
--- 1250,1258 ----
case T_LONG:
fprintf(stderr, "#%lx", p->ctl_value);
break;
+ case T_DOUBLE:
+ fprintf(stderr, "%#g", p->ctf_value);
+ break;
case T_VOID:
break;
case T_SP:
***************
*** 1490,1495 ****
--- 1493,1500 ----
return (a->cti_value == b->cti_value) ? 0 : 1;
case T_LONG:
return (a->ctl_value == b->ctl_value) ? 0 : 1;
+ case T_DOUBLE:
+ return (a->ctf_value == b->ctf_value) ? 0 : 1;
case T_VOID:
return 0;
case T_SP: