--- modules/clx/new-clx/clx.f +++ modules/clx/new-clx/clx.f 2007-01-24 11:33:44.000000000 +0100 @@ -1563,7 +1563,8 @@ static void general_lookup (object type) DEFUN(XLIB:##L##-ID,xxx) \ { VALUES1(make_uint29((XID)get_##c (popSTACK()))); } \ DEFUN(XLIB:##L##-EQUAL,xxx yyy) \ - { VALUES_IF(get_##c (popSTACK()) == get_##c (popSTACK())); } \ + { object _last = popSTACK(); \ + VALUES_IF(get_##c (popSTACK()) == get_##c (_last)); } \ DEFUN(XLIB:LOOKUP-##L,display xxx) \ { general_lookup (`XLIB::##L##`); } @@ -1580,7 +1581,8 @@ static void general_lookup (object type) DEFUN(XLIB:##L##-P,xxx) \ { VALUES_IF(c##_p (popSTACK())); } \ DEFUN(XLIB:##L##-EQUAL,xxx yyy) \ - { VALUES_IF(get_##c (popSTACK()) == get_##c (popSTACK())); } + { object _last = popSTACK(); \ + VALUES_IF(get_##c (popSTACK()) == get_##c (_last)); } /* ----------------------------------------------------------------------- @@ -4479,11 +4481,12 @@ static XCharStruct *font_char_info (XFon */ if (fs->min_byte1 == 0 && fs->max_byte1 == 0) { /* Linear indexing ... */ - if (index >= fs->min_char_or_byte2 && index <= fs->max_char_or_byte2) + if (index >= fs->min_char_or_byte2 && index <= fs->max_char_or_byte2) { if (fs->per_char) return fs->per_char+(index-fs->min_char_or_byte2); else return &(fs->min_bounds); + } } else { /* Nonlinear indexing .. */ unsigned char byte1 = (index >> 8) &0xFF; /* Is this right?! */ unsigned char byte2 = index & 0xFF;