You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2024/02/14 13:16:22 UTC
svn commit: r1915784 - in /pdfbox/trunk: debugger/src/main/java/org/apache/pdfbox/debugger/streampane/ debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/ examples/src/test/java/org/apache/pdfbox/examples/pdfa/ pdfbox/src/main/java/org/apache...
Author: tilman
Date: Wed Feb 14 13:16:22 2024
New Revision: 1915784
URL: http://svn.apache.org/viewvc?rev=1915784&view=rev
Log:
PDFBOX-5660: Update string handling and regex in several classes, by Axel Howind
Modified:
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamPane.java
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdfa/CreatePDFATest.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/type4/InstructionSequenceBuilder.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDFreeTextAppearanceHandler.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/layout/PlainText.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PlainText.java
Modified: pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamPane.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamPane.java?rev=1915784&r1=1915783&r2=1915784&view=diff
==============================================================================
--- pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamPane.java (original)
+++ pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamPane.java Wed Feb 14 13:16:22 2024
@@ -354,7 +354,7 @@ public class StreamPane implements Actio
// replace the remaining CRs with LF
if (data != null)
{
- data = data.replace("\r\n", "\n").replace('\r', '\n');
+ data = data.replaceAll("\\R", "\n");
}
try
Modified: pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java?rev=1915784&r1=1915783&r2=1915784&view=diff
==============================================================================
--- pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java (original)
+++ pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java Wed Feb 14 13:16:22 2024
@@ -164,9 +164,8 @@ public final class TreeStatus
node = node.trim();
if (node.startsWith("["))
{
- node = node.replace("]", "").replace("[", "");
+ node = node.replace("]", "").replace("[", "").trim();
}
- node = node.trim();
if (node.isEmpty())
{
return null;
Modified: pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdfa/CreatePDFATest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdfa/CreatePDFATest.java?rev=1915784&r1=1915783&r2=1915784&view=diff
==============================================================================
--- pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdfa/CreatePDFATest.java (original)
+++ pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdfa/CreatePDFATest.java Wed Feb 14 13:16:22 2024
@@ -103,7 +103,7 @@ class CreatePDFATest
{
continue;
}
- if (line.matches("^\\d+ 0 obj$"))
+ if (line.matches("\\d+ 0 obj"))
{
int pos = line.indexOf(" 0 obj");
line = line.substring(0, pos);
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/type4/InstructionSequenceBuilder.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/type4/InstructionSequenceBuilder.java?rev=1915784&r1=1915783&r2=1915784&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/type4/InstructionSequenceBuilder.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/type4/InstructionSequenceBuilder.java Wed Feb 14 13:16:22 2024
@@ -17,7 +17,7 @@
package org.apache.pdfbox.pdmodel.common.function.type4;
import java.util.Stack;
-import java.util.regex.Matcher;
+import java.util.function.Predicate;
import java.util.regex.Pattern;
/**
@@ -26,8 +26,8 @@ import java.util.regex.Pattern;
*/
public final class InstructionSequenceBuilder extends Parser.AbstractSyntaxHandler
{
- private static final Pattern INTEGER_PATTERN = Pattern.compile("[\\+\\-]?\\d+");
- private static final Pattern REAL_PATTERN = Pattern.compile("[\\-]?\\d*\\.\\d*([Ee]\\-?\\d+)?");
+ private static final Predicate<String> MATCHES_INTEGER = Pattern.compile("[\\+\\-]?\\d+").asMatchPredicate();
+ private static final Predicate<String> MATCHES_REAL = Pattern.compile("[\\-]?\\d*\\.\\d*([Ee]\\-?\\d+)?").asMatchPredicate();
private final InstructionSequence mainSequence = new InstructionSequence();
private final Stack<InstructionSequence> seqStack = new Stack<>();
@@ -86,15 +86,13 @@ public final class InstructionSequenceBu
}
else
{
- Matcher m = INTEGER_PATTERN.matcher(token);
- if (m.matches())
+ if (MATCHES_INTEGER.test(token))
{
getCurrentSequence().addInteger(parseInt(token));
return;
}
- m = REAL_PATTERN.matcher(token);
- if (m.matches())
+ if (MATCHES_REAL.test(token))
{
getCurrentSequence().addReal(parseReal(token));
return;
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDFreeTextAppearanceHandler.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDFreeTextAppearanceHandler.java?rev=1915784&r1=1915783&r2=1915784&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDFreeTextAppearanceHandler.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDFreeTextAppearanceHandler.java Wed Feb 14 13:16:22 2024
@@ -53,7 +53,7 @@ public class PDFreeTextAppearanceHandler
private static final Logger LOG = LogManager.getLogger(PDFreeTextAppearanceHandler.class);
private static final Pattern COLOR_PATTERN =
- Pattern.compile(".*color\\:\\s*\\#([0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]).*");
+ Pattern.compile(".*color\\:\\s*\\#([0-9a-fA-F]{6}).*");
private float fontSize = 10;
private COSName fontName = COSName.HELV;
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/layout/PlainText.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/layout/PlainText.java?rev=1915784&r1=1915783&r2=1915784&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/layout/PlainText.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/layout/PlainText.java Wed Feb 14 13:16:22 2024
@@ -50,7 +50,7 @@ public class PlainText
*/
public PlainText(String textValue)
{
- String[] parts = textValue.replace('\t', ' ').split("\\r\\n|\\n|\\r|\\u2028|\\u2029");
+ String[] parts = textValue.replace('\t', ' ').split("\\R");
paragraphs = new ArrayList<>(parts.length);
for (String part : parts)
{
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PlainText.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PlainText.java?rev=1915784&r1=1915783&r2=1915784&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PlainText.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PlainText.java Wed Feb 14 13:16:22 2024
@@ -57,7 +57,7 @@ class PlainText
}
else
{
- String[] parts = textValue.replace('\t', ' ').split("\\r\\n|\\n|\\r|\\u2028|\\u2029");
+ String[] parts = textValue.replace('\t', ' ').split("\\R");
paragraphs = new ArrayList<>(parts.length);
for (String part : parts)
{