Fix for bugs 41019 + 41121

2006-12-22 Thread Luca Furini

Hi all

I have a patch fixing bugs 41019 and 41121, for both trunk and float 
branch, and I'm wondering how it's best for me to proceed in order to 
avoid merging problems: should I change both trunk and branch, or just one 
of them?


The patch is extremely simple and does not break any testcase: I only had 
to adjust the checks in a testcase because of the different line breaks. 
However, it adds some three lines to the TextLM, so maybe it's better if I 
wait for Simon to apply his unicode breaking changes?


I'm attaching the patches, just to let you see if they interfere with 
someone else's work-in-progress.


(sorry for repeating what I wrote some time ago, but I have experienced 
some e-mail problems and I probably lost some messages)


Regards
   LucaIndex: 
test/layoutengine/standard-testcases/block-container_content_size_percentage.xml

===

--- 
test/layoutengine/standard-testcases/block-container_content_size_percentage.xml
(revision 486106)

+++ 
test/layoutengine/standard-testcases/block-container_content_size_percentage.xml
(working copy)

@@ -61,9 +61,9 @@

 !-- from the spec: If that dimension is not specified explicitly (i.e., 
it depends on 

  content's blockprogression-dimension), the value is interpreted as 
auto. --

 !-- The 10% are ignored in this case. --

-eval expected=28800 xpath=//flow/block[2]/@bpd/ !-- 2 lines --

+eval expected=43200 xpath=//flow/block[2]/@bpd/ !-- 3 lines --

 eval expected=10 xpath=//flow/block[2]/@ipd/

-eval expected=28800 xpath=//flow/block[2]/block[1]/block[1]/@bpd/

+eval expected=43200 xpath=//flow/block[2]/block[1]/block[1]/@bpd/

 eval expected=5 xpath=//flow/block[2]/block[1]/block[1]/@ipd/

 

 !-- absolute --

@@ -76,9 +76,11 @@

 !-- from the spec: If that dimension is not specified explicitly (i.e., 
it depends on 

  content's blockprogression-dimension), the value is interpreted as 
auto. --

 !-- The 10% are ignored in this case. --

-eval expected=43200 xpath=//flow/block[4]/@bpd/ !-- 3 lines --

+eval expected=57600 xpath=//flow/block[4]/@bpd/ !-- 4 lines --

 eval expected=10 xpath=//flow/block[4]/@ipd/

-eval expected=43200 xpath=//flow/block[4]/block[1]/block[1]/@bpd/

+eval expected=28800 xpath=//flow/block[4]/block[1]/block[1]/@bpd/ 
!-- the first 2 lines ... --

 eval expected=5 xpath=//flow/block[4]/block[1]/block[1]/@ipd/

+eval expected=28800 xpath=//flow/block[4]/block[1]/block[2]/@bpd/ 
!-- ... and the other 2 lines --

+eval expected=5 xpath=//flow/block[4]/block[1]/block[2]/@ipd/

   /checks

 /testcase

Index: src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java

===

--- src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java 
(revision 486104)

+++ src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java 
(working copy)

@@ -1285,7 +1285,12 @@

 (new KnuthGlue(lineStartBAP, 0, 0,

new LeafPosition(this, -1), false));

 } else {

+// the first penalty is necessary in order to avoid the glue 
to be a feasible break

+// while we are ignoring hyphenated breaks

 hyphenElements.add

+(new KnuthPenalty(0, KnuthElement.INFINITE, false,

+new LeafPosition(this, -1), false));

+hyphenElements.add

 (new KnuthGlue(0, 3 * 
LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,

 new LeafPosition(this, -1), false));

 hyphenElements.add

Index: src/java/org/apache/fop/layoutmgr/BreakingAlgorithm.java

===

--- src/java/org/apache/fop/layoutmgr/BreakingAlgorithm.java(revision 
486104)

+++ src/java/org/apache/fop/layoutmgr/BreakingAlgorithm.java(working copy)

@@ -545,6 +545,17 @@

 log.debug(Could not find a set of breaking points  + 
threshold);

 return 0;

 }

+// lastDeactivated was a good break, while lastTooShort and 
lastTooLong 

+// were bad breaks since the beginning;

+// if it is not the node we just restarted from, 
lastDeactivated can 

+// replace either lastTooShort or lastTooLong

+if (lastDeactivated != null  lastDeactivated != lastForced) {

+if (lastDeactivated.adjustRatio  0) {

+lastTooShort = lastDeactivated;

+} else {

+lastTooLong = lastDeactivated;

+}

+}

 if (lastTooShort == null || lastForced.position == 
lastTooShort.position) {

 if 

Re: Fix for bugs 41019 + 41121

2006-12-22 Thread Manuel Mall
On Friday 22 December 2006 18:27, Luca Furini wrote:
 Hi all

 I have a patch fixing bugs 41019 and 41121, for both trunk and float
 branch, and I'm wondering how it's best for me to proceed in order to
 avoid merging problems: should I change both trunk and branch, or
 just one of them?

 The patch is extremely simple and does not break any testcase: I only
 had to adjust the checks in a testcase because of the different line
 breaks. However, it adds some three lines to the TextLM, so maybe
 it's better if I wait for Simon to apply his unicode breaking
 changes?


I woulds think that the patch I just submitted may force you to redo 
your patch for trunk as most of my changes are in TextLM.

 I'm attaching the patches, just to let you see if they interfere with
 someone else's work-in-progress.

 (sorry for repeating what I wrote some time ago, but I have
 experienced some e-mail problems and I probably lost some messages)

 Regards
 Luca
Manuel