--- openMotif-2.2.3/lib/Xm/TextF.c.char_not_supported 2004-06-03 12:59:10.241822710 +0200 +++ openMotif-2.2.3/lib/Xm/TextF.c 2004-06-03 13:02:18.987890852 +0200 @@ -3723,20 +3723,17 @@ cache_ptr = tmp = XmStackAlloc(buf_size, cache); tmp_str = (wchar_t *)str; - ret_val = wctomb(tmp, *tmp_str); + // Fixed MZ BZ#1257: by Brad Despres count = 0; - while ( (ret_val > 0)&& (buf_size >= MB_CUR_MAX) && (count < n) ) - { - count += 1; - tmp += ret_val; - buf_size -= ret_val; - tmp_str++; - ret_val = wctomb(tmp, *tmp_str); - } - + do { + ret_val = wctomb(tmp, *tmp_str); + count += 1; + tmp += ret_val; + buf_size -= ret_val; + tmp_str++; + } while ( (ret_val > 0)&& (buf_size >= MB_CUR_MAX) && (count < n) ) ; if (ret_val == -1) /* bad character */ return (False); - is_printable = XTextWidth(TextF_Font(tf), cache_ptr, tmp - cache_ptr); XmStackFree(cache_ptr, cache); return (is_printable);