summaryrefslogtreecommitdiff
blob: edd841b78cb665767870c04164eba2ad25a44dee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--- 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 <brad@sd.aonix.com>
       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);