summaryrefslogtreecommitdiff
path: root/japanese/gnomelibs/files/patch-an
blob: 7c63077e3c9db8d354cfefda5349d06e4e587778 (plain) (blame)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
--- ./gtk-xmhtml/layout.c.jp3	Fri Jul 30 02:59:51 1999
+++ ./gtk-xmhtml/layout.c	Sun Oct 29 18:32:21 2000
@@ -447,7 +447,7 @@
 	*****/
 	for(i = 0 ; i < html->html.anchor_words; i++)
 			html->html.anchors[i].x = html->html.anchors[i].self->x;
-	for(i = 0 ; i < html->html.anchor_words; i++)
+	for(i = 0 ; i < html->html.anchor_words - 1; i++)
 	{
 		if((html->html.anchors[i].owner == html->html.anchors[i+1].owner) &&
 			(html->html.anchors[i].line == html->html.anchors[i+1].line))
@@ -1173,19 +1173,30 @@
 		* which *does* have a trailing space. We then use the total width
 		* of this word to check against available line width.
 		*****/
-		if(!(words[i]->spacing & TEXT_SPACE_TRAIL) && 
-			i+1 < *nwords && !(words[i+1]->spacing & TEXT_SPACE_LEAD))
+		if(
+			!(words[i]->spacing & TEXT_SPACE_TRAIL) && 
+			!(words[i]->spacing & TEXT_SPACE_TRAIL_ZEROWIDTH) && 
+			i+1 < *nwords &&
+			!(words[i+1]->spacing & TEXT_SPACE_LEAD) &&
+			!(words[i+1]->spacing & TEXT_SPACE_LEAD_ZEROWIDTH)
+		)
 		{
 			int j = i+1;
 			word_width = words[i]->width;
 			while(j < *nwords)
 			{
-				if(!(words[j]->spacing & TEXT_SPACE_LEAD))
+				if(!(words[j]->spacing & TEXT_SPACE_LEAD) &&
+					!(words[j]->spacing & TEXT_SPACE_LEAD_ZEROWIDTH))
 					word_width += words[j]->width;
 
 				/* see if this word has a trail space and the next a leading */
-				if(!(words[j]->spacing & TEXT_SPACE_TRAIL) && 
-					j+1 < *nwords && !(words[j+1]->spacing & TEXT_SPACE_LEAD))
+				if(
+					!(words[j]->spacing & TEXT_SPACE_TRAIL) && 
+					!(words[j]->spacing & TEXT_SPACE_TRAIL_ZEROWIDTH) && 
+					j+1 < *nwords &&
+					!(words[j+1]->spacing & TEXT_SPACE_LEAD) &&
+					!(words[j+1]->spacing & TEXT_SPACE_LEAD_ZEROWIDTH)
+				)
 					j++;
 				else
 					break;
@@ -1395,8 +1406,13 @@
 		* save linenumber, x and y positions for this word or for
 		* multiple words needing to be ``glued'' together.
 		*****/
-		if(!(words[i]->spacing & TEXT_SPACE_TRAIL) && 
-			i+1 < *nwords && !(words[i+1]->spacing & TEXT_SPACE_LEAD))
+		if(
+			!(words[i]->spacing & TEXT_SPACE_TRAIL) && 
+			!(words[i]->spacing & TEXT_SPACE_TRAIL_ZEROWIDTH) && 
+			i+1 < *nwords &&
+			!(words[i+1]->spacing & TEXT_SPACE_LEAD) &&
+			!(words[i+1]->spacing & TEXT_SPACE_LEAD_ZEROWIDTH)
+		)
 		{
 			/* first word must take spacing into account */
 			UPDATE_WORD(words[i]);
@@ -1413,8 +1429,13 @@
 					UPDATE_WORD(words[i])
 
 				/* this word has a trailing and the next a leading space? */
-				if(!(words[i]->spacing & TEXT_SPACE_TRAIL) && 
-					i+1 < *nwords && !(words[i+1]->spacing & TEXT_SPACE_LEAD))
+				if(
+					!(words[i]->spacing & TEXT_SPACE_TRAIL) && 
+					!(words[i]->spacing & TEXT_SPACE_TRAIL_ZEROWIDTH) && 
+					i+1 < *nwords &&
+					!(words[i+1]->spacing & TEXT_SPACE_LEAD) &&
+					!(words[i+1]->spacing & TEXT_SPACE_LEAD_ZEROWIDTH)
+				)
 					i++;
 				else
 					break;
@@ -2972,8 +2993,7 @@
 
 	/* store return dimensions, box->x is not touched */
 	box->y += max_theight;
-	table->end->height = box->height = max_theight;
-	box->width = box->min_width = full_max_twidth;
+	table->end->height = max_theight;
 
 	/*****
 	* update x position of owning object, it might have shifted due to