[pkg-java] r18812 - in trunk/fop/debian: . patches

Mathieu Malaterre malat at moszumanska.debian.org
Sun Aug 16 11:56:48 UTC 2015


Author: malat
Date: 2015-08-16 11:56:48 +0000 (Sun, 16 Aug 2015)
New Revision: 18812

Removed:
   trunk/fop/debian/patches/01_from_svn_16_bit_alpha_png.patch
   trunk/fop/debian/patches/02_fix_segfault_with_anchors.patch
   trunk/fop/debian/patches/03_fix_tablecol.patch
   trunk/fop/debian/patches/enco.patch
   trunk/fop/debian/patches/enco2.patch
   trunk/fop/debian/patches/fixnpeinlinestacking.patch
   trunk/fop/debian/patches/illegalargex.patch
Modified:
   trunk/fop/debian/changelog
   trunk/fop/debian/fop.sh
   trunk/fop/debian/patches/04_fixqdoxbuildfailure.patch
Log:
next upload

Modified: trunk/fop/debian/changelog
===================================================================
--- trunk/fop/debian/changelog	2015-08-11 19:46:56 UTC (rev 18811)
+++ trunk/fop/debian/changelog	2015-08-16 11:56:48 UTC (rev 18812)
@@ -1,3 +1,10 @@
+fop (1:2.0+dfsg-2) experimental; urgency=medium
+
+  * Fix logging (default to info level).
+  * Refresh patches (DEP-3 header)
+
+ -- Mathieu Malaterre <malat at debian.org>  Sun, 16 Aug 2015 13:55:19 +0200
+
 fop (1:2.0+dfsg-1) experimental; urgency=medium
 
   * New upstream. Closes: #792132

Modified: trunk/fop/debian/fop.sh
===================================================================
--- trunk/fop/debian/fop.sh	2015-08-11 19:46:56 UTC (rev 18811)
+++ trunk/fop/debian/fop.sh	2015-08-16 11:56:48 UTC (rev 18812)
@@ -45,7 +45,19 @@
 find_jars /usr/share/fop/fop-hyph.jar
 find_jars fop
 
-# LOG_OPTION=-Dorg.apache.commons.logging.Log=org.apache.fop.util.CommandLineLogger
-# LOG_DEBUG_OPTION=-Dlog4j.debug
+# the following lines are copied from upstream `fop` wrapper:
+#
+# The default commons logger for JDK1.4 is JDK1.4Logger.
+# To use a different logger, uncomment the one desired below
+# LOGCHOICE=-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog
+LOGCHOICE=-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
+# LOGCHOICE=-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
 
-run_java $HEADLESS $LOG_OPTION org.apache.fop.cli.Main "$@"
+# Logging levels
+# Below option is only if you are using SimpleLog instead of the default JDK1.4 Logger.
+# To set logging levels for JDK 1.4 Logger, edit the %JAVA_HOME%/JRE/LIB/logging.properties 
+# file instead.
+# Possible SimpleLog values:  "trace", "debug", "info" (default), "warn", "error", or "fatal".
+LOGLEVEL=-Dorg.apache.commons.logging.simplelog.defaultlog=INFO
+
+run_java $HEADLESS $LOGCHOICE $LOGLEVEL org.apache.fop.cli.Main "$@"

Deleted: trunk/fop/debian/patches/01_from_svn_16_bit_alpha_png.patch
===================================================================
--- trunk/fop/debian/patches/01_from_svn_16_bit_alpha_png.patch	2015-08-11 19:46:56 UTC (rev 18811)
+++ trunk/fop/debian/patches/01_from_svn_16_bit_alpha_png.patch	2015-08-16 11:56:48 UTC (rev 18812)
@@ -1,33 +0,0 @@
-Index: fop-0.95.dfsg/src/java/org/apache/fop/pdf/AlphaRasterImage.java
-===================================================================
---- fop-0.95.dfsg.orig/src/java/org/apache/fop/pdf/AlphaRasterImage.java	2008-07-31 16:02:57.000000000 +0200
-+++ fop-0.95.dfsg/src/java/org/apache/fop/pdf/AlphaRasterImage.java	2010-03-06 21:02:05.527650998 +0100
-@@ -48,6 +48,9 @@
-      */
-     public AlphaRasterImage(String k, Raster alpha) {
-         this.key = k;
-+        //Enable the commented line below if 16-bit alpha channels are desired.
-+        //Otherwise, we compress the alpha channel to 8 bit which should be sufficient.
-+        //this.bitsPerComponent = alpha.getSampleModel().getSampleSize(0);
-         this.bitsPerComponent = 8;
-         this.colorSpace = new PDFDeviceColorSpace(PDFDeviceColorSpace.DEVICE_GRAY);
-         if (alpha == null) {
-@@ -148,6 +151,18 @@
-                 alpha.getDataElements(0, y, w, 1, line);
-                 out.write(line);
-             }
-+        } else if (dataType == DataBuffer.TYPE_USHORT) {
-+            short[] sline = new short[nbands * w];
-+            byte[] line = new byte[nbands * w];
-+            for (int y = 0; y < h; y++) {
-+                alpha.getDataElements(0, y, w, 1, sline);
-+                for (int i = 0; i < w; i++) {
-+                    //this compresses a 16-bit alpha channel to 8 bits!
-+                    //we probably don't ever need a 16-bit channel
-+                    line[i] = (byte)(sline[i] >> 8);
-+                }
-+                out.write(line);
-+            }
-         } else if (dataType == DataBuffer.TYPE_INT) {
-             //Is there an better way to get a 8bit raster from a TYPE_INT raster?
-             int shift = 24;

Deleted: trunk/fop/debian/patches/02_fix_segfault_with_anchors.patch
===================================================================
--- trunk/fop/debian/patches/02_fix_segfault_with_anchors.patch	2015-08-11 19:46:56 UTC (rev 18811)
+++ trunk/fop/debian/patches/02_fix_segfault_with_anchors.patch	2015-08-16 11:56:48 UTC (rev 18812)
@@ -1,29 +0,0 @@
-Description: Fix segfaults on anchors
-Author: Mathieu Malaterre <mathieu.malaterre at gmail.com>
-Bug: https://issues.apache.org/bugzilla/show_bug.cgi?id=46386
-Index: fop-0.95.dfsg/src/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java
-===================================================================
---- fop-0.95.dfsg.orig/src/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java	2008-07-31 16:02:58.000000000 +0200
-+++ fop-0.95.dfsg/src/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java	2010-03-06 21:02:05.535650523 +0100
-@@ -331,6 +331,11 @@
-         while (oldListIterator.hasNext()) {
-             oldElement = (KnuthElement) oldListIterator.next();
-             currLM = (InlineLevelLayoutManager) oldElement.getLayoutManager();
-+            // This can occur if a fo:inline element is empty but has an id
-+            // attribute on it.  Punt in that case.
-+            if (currLM == null) {
-+            	continue;
-+            }
-             // initialize prevLM
-             if (prevLM == null) {
-                 prevLM = currLM;
-@@ -400,6 +405,9 @@
-         while (oldListIterator.hasNext()) {
-             oldElement = (KnuthElement) oldListIterator.next();
-             currLM = (InlineLevelLayoutManager) oldElement.getLayoutManager();
-+            if (currLM == null) {
-+            	continue;
-+            }
-             if (prevLM == null) {
-                 prevLM = currLM;
-             }

Deleted: trunk/fop/debian/patches/03_fix_tablecol.patch
===================================================================
--- trunk/fop/debian/patches/03_fix_tablecol.patch	2015-08-11 19:46:56 UTC (rev 18811)
+++ trunk/fop/debian/patches/03_fix_tablecol.patch	2015-08-16 11:56:48 UTC (rev 18812)
@@ -1,14 +0,0 @@
-Description: Avoid StackOverflow on TableColumn.toString() during debugging.
-Author: Mathieu Malaterre <mathieu.malaterre at gmail.com>
-Bug: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/TableColumn.java?r1=670335&r2=670334&pathrev=670335
---- trunk/src/java/org/apache/fop/fo/flow/table/TableColumn.java	2008/06/22 10:37:24	670334
-+++ trunk/src/java/org/apache/fop/fo/flow/table/TableColumn.java	2008/06/22 10:53:51	670335
-@@ -239,7 +239,7 @@
-             sb.append(" number-columns-spanned=")
-                 .append(getNumberColumnsSpanned());
-         }
--        sb.append(" column-width=").append(getColumnWidth());
-+        sb.append(" column-width=").append(((Property)getColumnWidth()).getString());
-         return sb.toString();
-     }
-

Modified: trunk/fop/debian/patches/04_fixqdoxbuildfailure.patch
===================================================================
--- trunk/fop/debian/patches/04_fixqdoxbuildfailure.patch	2015-08-11 19:46:56 UTC (rev 18811)
+++ trunk/fop/debian/patches/04_fixqdoxbuildfailure.patch	2015-08-16 11:56:48 UTC (rev 18812)
@@ -1,4 +1,7 @@
-Fix a lintian issue: add class-path
+Description: Fix a lintian issue: add class-path
+Author: Mathieu Malaterre <malat at debian.org>
+Forwarded: not-needed
+
 Index: fop-2.0/build.xml
 ===================================================================
 --- fop-2.0.orig/build.xml

Deleted: trunk/fop/debian/patches/enco.patch
===================================================================
--- trunk/fop/debian/patches/enco.patch	2015-08-11 19:46:56 UTC (rev 18811)
+++ trunk/fop/debian/patches/enco.patch	2015-08-16 11:56:48 UTC (rev 18812)
@@ -1,70 +0,0 @@
-Description: Removed fallback mechanism in AbstractCodePointMapping. This is superfluous now that SingleByteFont handles all substitutions. This actually fixes a bug: the glyph "minus" was painted using "hyphen" but used the width of "minus" due to this fallback mechanism.
-Bug: https://issues.apache.org/bugzilla/show_bug.cgi?id=50605
-Last-Update: 2011-09-11
-Origin: http://svn.apache.org/viewvc?view=revision&revision=1142188
-
-Index: fop-1.0/src/java/org/apache/fop/fonts/AbstractCodePointMapping.java
-===================================================================
---- fop-1.0.orig/src/java/org/apache/fop/fonts/AbstractCodePointMapping.java	2011-09-11 14:51:37.000000000 +0200
-+++ fop-1.0/src/java/org/apache/fop/fonts/AbstractCodePointMapping.java	2011-09-11 14:52:41.000000000 +0200
-@@ -20,7 +20,6 @@
- package org.apache.fop.fonts;
- 
- import java.util.Arrays;
--import java.util.Map;
- 
- import org.apache.xmlgraphics.fonts.Glyphs;
- 
-@@ -37,7 +36,6 @@
-     private char[] codepoints;
-     private char[] unicodeMap; //code point to Unicode char
-     private String[] charNameMap; //all character names in the encoding
--    private Map fallbackMap; //Here we accumulate all mappings we have found through substitution
- 
-     /**
-      * Main constructor.
-@@ -140,44 +138,9 @@
-                 bot = mid + 1;
-             }
-         }
--
--        //Fallback: using cache
--        synchronized (this) {
--            if (fallbackMap != null) {
--                Character fallback = (Character)fallbackMap.get(new Character(c));
--                if (fallback != null) {
--                    return fallback.charValue();
--                }
--            }
--        }
--        //Fallback: find alternatives (slow!)
--        String glyphName = Glyphs.charToGlyphName(c);
--        if (glyphName.length() > 0) {
--            String[] alternatives = Glyphs.getCharNameAlternativesFor(glyphName);
--            if (alternatives != null) {
--                for (int i = 0, ic = alternatives.length; i < ic; i++) {
--                    int idx = getCodePointForGlyph(alternatives[i]);
--                    if (idx >= 0) {
--                        putFallbackCharacter(c, (char)idx);
--                        return (char)idx;
--                    }
--                }
--            }
--        }
--
--        putFallbackCharacter(c, NOT_FOUND_CODE_POINT);
-         return NOT_FOUND_CODE_POINT;
-     }
- 
--    private void putFallbackCharacter(char c, char mapTo) {
--        synchronized (this) {
--            if (this.fallbackMap == null) {
--                this.fallbackMap = new java.util.HashMap();
--            }
--            this.fallbackMap.put(new Character(c), new Character(mapTo));
--        }
--    }
--
-     /**
-      * Returns the main Unicode value that is associated with the given code point in the encoding.
-      * Note that multiple Unicode values can theoretically be mapped to one code point in the

Deleted: trunk/fop/debian/patches/enco2.patch
===================================================================
--- trunk/fop/debian/patches/enco2.patch	2015-08-11 19:46:56 UTC (rev 18811)
+++ trunk/fop/debian/patches/enco2.patch	2015-08-16 11:56:48 UTC (rev 18812)
@@ -1,198 +0,0 @@
-Description: AFMFile sometimes indirectly caused wrong assignments of char widths to code points in a single-byte encoding due to mapping multiple characters to the same code points (see overridePrimaryEncoding).  Fixed some FindBugs issues.  Added some generics.
-Bug: https://issues.apache.org/bugzilla/show_bug.cgi?id=50605
-Last-Update: 2011-09-11
-Origin: http://svn.apache.org/viewvc?view=revision&revision=1142189
-
-http://svn.apache.org/viewvc?view=revision&revision=1142189
-Index: fop-1.0/src/java/org/apache/fop/fonts/type1/AFMFile.java
-===================================================================
---- fop-1.0.orig/src/java/org/apache/fop/fonts/type1/AFMFile.java	2010-07-12 21:34:34.000000000 +0200
-+++ fop-1.0/src/java/org/apache/fop/fonts/type1/AFMFile.java	2011-09-11 14:49:37.000000000 +0200
-@@ -22,10 +22,12 @@
- import java.awt.geom.Dimension2D;
- import java.awt.geom.RectangularShape;
- import java.util.Collections;
--import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- 
-+import org.apache.commons.logging.Log;
-+import org.apache.commons.logging.LogFactory;
-+
- import org.apache.xmlgraphics.java2d.Dimension2DDouble;
- 
- import org.apache.fop.fonts.NamedCharacter;
-@@ -36,6 +38,9 @@
-  */
- public class AFMFile {
- 
-+    /** logging instance */
-+    private static final Log LOG = LogFactory.getLog(AFMFile.class);
-+
-     private String fontName;
-     private String fullName;
-     private String familyName;
-@@ -56,15 +61,13 @@
-     private AFMWritingDirectionMetrics[] writingDirectionMetrics
-         = new AFMWritingDirectionMetrics[3];
- 
--    private List charMetrics = new java.util.ArrayList();
--    //List<AFMCharMetrics>
--    private Map charNameToMetrics = new java.util.HashMap();
--    //Map<String, AFMCharMetrics>
-+    private List<AFMCharMetrics> charMetrics = new java.util.ArrayList<AFMCharMetrics>();
-+    private Map<String, AFMCharMetrics> charNameToMetrics
-+                = new java.util.HashMap<String, AFMCharMetrics>();
-     private int firstChar = -1;
-     private int lastChar = -1;
- 
--    private Map kerningMap;
--    //Map<String, Map<String, Dimension2D>>
-+    private Map<String, Map<String, Dimension2D>> kerningMap;
- 
-     /**
-      * Default constructor.
-@@ -365,14 +368,14 @@
-      * @return the character metrics or null if there's no such character
-      */
-     public AFMCharMetrics getChar(String name) {
--        return (AFMCharMetrics)this.charNameToMetrics.get(name);
-+        return this.charNameToMetrics.get(name);
-     }
- 
-     /**
-      * Returns the list of AFMCharMetrics instances representing all the available characters.
-      * @return a List of AFMCharMetrics instances
-      */
--    public List getCharMetrics() {
-+    public List<AFMCharMetrics> getCharMetrics() {
-         return Collections.unmodifiableList(this.charMetrics);
-     }
- 
-@@ -384,11 +387,11 @@
-      */
-     public void addXKerning(String name1, String name2, double kx) {
-         if (this.kerningMap == null) {
--            this.kerningMap = new java.util.HashMap();
-+            this.kerningMap = new java.util.HashMap<String, Map<String, Dimension2D>>();
-         }
--        Map entries = (Map)this.kerningMap.get(name1);
-+        Map<String, Dimension2D> entries = this.kerningMap.get(name1);
-         if (entries == null) {
--            entries = new java.util.HashMap();
-+            entries = new java.util.HashMap<String, Dimension2D>();
-             this.kerningMap.put(name1, entries);
-         }
-         entries.put(name2, new Dimension2DDouble(kx, 0));
-@@ -406,40 +409,37 @@
-      * Creates and returns a kerning map for writing mode 0 (ltr) with character codes.
-      * @return the kerning map or null if there is no kerning information.
-      */
--    public Map createXKerningMapEncoded() {
-+    public Map<Integer, Map<Integer, Integer>> createXKerningMapEncoded() {
-         if (!hasKerning()) {
-             return null;
-         }
--        Map m = new java.util.HashMap();
--        Iterator iterFrom = this.kerningMap.entrySet().iterator();
--        while (iterFrom.hasNext()) {
--            Map.Entry entryFrom = (Map.Entry)iterFrom.next();
--            String name1 = (String)entryFrom.getKey();
-+        Map<Integer, Map<Integer, Integer>> m
-+                    = new java.util.HashMap<Integer, Map<Integer, Integer>>();
-+        for (Map.Entry<String, Map<String, Dimension2D>> entryFrom : this.kerningMap.entrySet()) {
-+            String name1 = entryFrom.getKey();
-             AFMCharMetrics chm1 = getChar(name1);
-             if (chm1 == null || !chm1.hasCharCode()) {
-                 continue;
-             }
--            Map container = null;
--            Map entriesTo = (Map)entryFrom.getValue();
--            Iterator iterTo = entriesTo.entrySet().iterator();
--            while (iterTo.hasNext()) {
--                Map.Entry entryTo = (Map.Entry)iterTo.next();
--                String name2 = (String)entryTo.getKey();
-+            Map<Integer, Integer> container = null;
-+            Map<String, Dimension2D> entriesTo = entryFrom.getValue();
-+            for (Map.Entry<String, Dimension2D> entryTo : entriesTo.entrySet()) {
-+                String name2 = entryTo.getKey();
-                 AFMCharMetrics chm2 = getChar(name2);
-                 if (chm2 == null || !chm2.hasCharCode()) {
-                     continue;
-                 }
-                 if (container == null) {
--                    Integer k1 = new Integer(chm1.getCharCode());
--                    container = (Map)m.get(k1);
-+                    Integer k1 = Integer.valueOf(chm1.getCharCode());
-+                    container = m.get(k1);
-                     if (container == null) {
--                        container = new java.util.HashMap();
-+                        container = new java.util.HashMap<Integer, Integer>();
-                         m.put(k1, container);
-                     }
-                 }
--                Dimension2D dim = (Dimension2D)entryTo.getValue();
--                container.put(new Integer(chm2.getCharCode()),
--                        new Integer((int)Math.round(dim.getWidth())));
-+                Dimension2D dim = entryTo.getValue();
-+                container.put(Integer.valueOf(chm2.getCharCode()),
-+                        Integer.valueOf((int)Math.round(dim.getWidth())));
-             }
-         }
-         return m;
-@@ -451,14 +451,41 @@
-      * @param encoding the encoding to replace the one given in the AFM
-      */
-     public void overridePrimaryEncoding(SingleByteEncoding encoding) {
--        Iterator iter = this.charMetrics.iterator();
--        while (iter.hasNext()) {
--            AFMCharMetrics cm = (AFMCharMetrics)iter.next();
-+        if (LOG.isDebugEnabled()) {
-+            LOG.debug("Overriding primary encoding of " + getFontName() + " with: " + encoding);
-+        }
-+        AFMCharMetrics[] mapped = new AFMCharMetrics[256];
-+        for (AFMCharMetrics cm : this.charMetrics) {
-             NamedCharacter nc = cm.getCharacter();
-             if (nc.hasSingleUnicodeValue()) {
--                int mapped = encoding.mapChar(nc.getSingleUnicodeValue());
--                if (mapped > 0) {
--                    cm.setCharCode(mapped);
-+                int codePoint = encoding.mapChar(nc.getSingleUnicodeValue());
-+                if (codePoint > 0) {
-+                    if (mapped[codePoint] != null) {
-+                        if (LOG.isDebugEnabled()) {
-+                            AFMCharMetrics other = mapped[codePoint];
-+                            String msg = "Not mapping character " + nc + " to code point "
-+                                + codePoint + " (" + Integer.toHexString(codePoint) + ") in "
-+                                + encoding + ". "
-+                                + other + " has already been assigned that code point.";
-+                            if (other.getUnicodeSequence()
-+                                    .equals(nc.getUnicodeSequence())) {
-+                                msg += " This is a specialized glyph for the"
-+                                    + " same Unicode character.";
-+                                //TODO should these be mapped to a private Unicode area to make
-+                                //them accessible?
-+                            } else {
-+                                msg += " This is a similar character.";
-+                            }
-+                            if (cm.getWidthX() != other.getWidthX()) {
-+                                msg += " They have differing widths: "
-+                                    + cm.getWidthX() + " vs. " + other.getWidthX();
-+                            }
-+                            LOG.debug(msg);
-+                        }
-+                    } else {
-+                        cm.setCharCode(codePoint);
-+                        mapped[codePoint] = cm;
-+                    }
-                 } else {
-                     cm.setCharCode(-1);
-                 }
-@@ -470,6 +497,7 @@
-     }
- 
-     /** {@inheritDoc} */
-+    @Override
-     public String toString() {
-         return "AFM: " + getFullName();
-     }

Deleted: trunk/fop/debian/patches/fixnpeinlinestacking.patch
===================================================================
--- trunk/fop/debian/patches/fixnpeinlinestacking.patch	2015-08-11 19:46:56 UTC (rev 18811)
+++ trunk/fop/debian/patches/fixnpeinlinestacking.patch	2015-08-16 11:56:48 UTC (rev 18812)
@@ -1,20 +0,0 @@
-Description: Avoid an NPE in InlineStackingLM.applyChanges for Knuth elements with a null position
-Bug: https://issues.apache.org/bugzilla/show_bug.cgi?id=50276
-Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=649476
-Origin: http://svn.apache.org/viewvc?view=revision&revision=1043871
-Index: fop-1.0.dfsg2/src/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java
-===================================================================
---- fop-1.0.dfsg2.orig/src/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java	2010-07-12 21:34:33.000000000 +0200
-+++ fop-1.0.dfsg2/src/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java	2012-01-03 11:00:23.000000000 +0100
-@@ -274,8 +274,9 @@
-         KnuthElement oldElement;
-         while (oldListIterator.hasNext()) {
-             oldElement = (KnuthElement) oldListIterator.next();
--            oldElement.setPosition
--                (oldElement.getPosition().getPosition());
-+            if (oldElement.getPosition() != null) {
-+                oldElement.setPosition(oldElement.getPosition().getPosition());
-+            }
-         }
-         // reset the iterator
-         oldListIterator = oldList.listIterator();

Deleted: trunk/fop/debian/patches/illegalargex.patch
===================================================================
--- trunk/fop/debian/patches/illegalargex.patch	2015-08-11 19:46:56 UTC (rev 18811)
+++ trunk/fop/debian/patches/illegalargex.patch	2015-08-16 11:56:48 UTC (rev 18812)
@@ -1,73 +0,0 @@
-Description: Allow for words consisting of only soft hyphens
-Bug: https://issues.apache.org/bugzilla/show_bug.cgi?id=49837
-Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=646141
-Origin: http://svn.apache.org/viewvc?view=revision&revision=1042115
-Index: fop-1.0.dfsg2/src/java/org/apache/fop/fo/FOTreeBuilder.java
-===================================================================
---- fop-1.0.dfsg2.orig/src/java/org/apache/fop/fo/FOTreeBuilder.java	2012-01-03 15:29:44.000000000 +0100
-+++ fop-1.0.dfsg2/src/java/org/apache/fop/fo/FOTreeBuilder.java	2012-01-03 15:29:46.000000000 +0100
-@@ -398,7 +398,9 @@
-                 FOValidationEventProducer eventProducer
-                     = FOValidationEventProducer.Provider.get(
-                         userAgent.getEventBroadcaster());
--                eventProducer.unknownFormattingObject(this, currentFObj.getName(),
-+                String name = (currentFObj != null ? currentFObj.getName()
-+                                                   : "{" + namespaceURI + "}" + localName);
-+                eventProducer.unknownFormattingObject(this, name,
-                         new QName(namespaceURI, localName),
-                         getEffectiveLocator());
-             }
-Index: fop-1.0.dfsg2/src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java
-===================================================================
---- fop-1.0.dfsg2.orig/src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java	2012-01-03 15:29:44.000000000 +0100
-+++ fop-1.0.dfsg2/src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java	2012-01-03 15:32:00.000000000 +0100
-@@ -774,10 +774,7 @@
-         while (lastIndex > 0 && foText.charAt(lastIndex - 1) == CharUtilities.SOFT_HYPHEN) {
-             lastIndex--;
-         }
--        final boolean endsWithHyphen = checkEndsWithHyphen
--                && foText.charAt(lastIndex) == CharUtilities.SOFT_HYPHEN;
-         Font font = FontSelector.selectFontForCharactersInText(foText, thisStart, lastIndex, foText, this);
--        int wordLength = lastIndex - thisStart;
-         boolean kerning = font.hasKerning();
-         MinOptMax wordIPD = MinOptMax.ZERO;
-         for (int i = thisStart; i < lastIndex; i++) {
-@@ -803,23 +800,31 @@
-                 }
-             }
-         }
-+        boolean endsWithHyphen = checkEndsWithHyphen
-+                && foText.charAt(lastIndex) == CharUtilities.SOFT_HYPHEN;
-         if (kerning
-                 && breakOpportunity
-                 && !TextLayoutManager.isSpace(ch)
-                 && lastIndex > 0
-                 && endsWithHyphen) {
--            final int kern = font.getKernValue(foText.charAt(lastIndex - 1), ch);
-+            int kern = font.getKernValue(foText.charAt(lastIndex - 1), ch);
-             if (kern != 0) {
-                 addToLetterAdjust(lastIndex, kern);
-                 //TODO: add kern to wordIPD?
-             }
-         }
--        int iLetterSpaces = wordLength - 1;
--        // if there is a break opportunity and the next one
--        // is not a space, it could be used as a line end;
--        // add one more letter space, in case other text follows
--        if (breakOpportunity && !TextLayoutManager.isSpace(ch)) {
--            iLetterSpaces++;
-+        // shy+chars at start of word: wordLength == 0 && breakOpportunity
-+        // shy only characters in word: wordLength == 0 && !breakOpportunity
-+        int wordLength = lastIndex - thisStart;
-+        int iLetterSpaces = 0;
-+        if (wordLength != 0) {
-+            iLetterSpaces = wordLength - 1;
-+            // if there is a break opportunity and the next one
-+            // is not a space, it could be used as a line end;
-+            // add one more letter space, in case other text follows
-+            if (breakOpportunity && !TextLayoutManager.isSpace(ch)) {
-+                iLetterSpaces++;
-+            }
-         }
-         assert iLetterSpaces >= 0;
-         wordIPD = wordIPD.plus(letterSpaceIPD.mult(iLetterSpaces));




More information about the pkg-java-commits mailing list