You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlgraphics.apache.org by je...@apache.org on 2007/02/28 17:42:31 UTC

svn commit: r512838 [3/3] - in /xmlgraphics/commons/trunk: examples/java/ps/ src/documentation/content/xdocs/ src/java/org/apache/xmlgraphics/java2d/ps/ src/java/org/apache/xmlgraphics/ps/ src/java/org/apache/xmlgraphics/ps/dsc/ src/java/org/apache/xml...

Added: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/events/package.html
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/events/package.html?view=auto&rev=512838
==============================================================================
--- xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/events/package.html (added)
+++ xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/events/package.html Wed Feb 28 08:42:28 2007
@@ -0,0 +1,23 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!-- $Id$ -->
+<HTML>
+<TITLE>org.apache.xmlgraphics.ps.dsc.events Package</TITLE>
+<BODY>
+<P>Event classes used by the DSC parser.</P>
+</BODY>
+</HTML>
\ No newline at end of file

Propchange: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/events/package.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/package.html
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/package.html?view=auto&rev=512838
==============================================================================
--- xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/package.html (added)
+++ xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/package.html Wed Feb 28 08:42:28 2007
@@ -0,0 +1,23 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!-- $Id$ -->
+<HTML>
+<TITLE>org.apache.xmlgraphics.ps.dsc Package</TITLE>
+<BODY>
+<P>Tools for DSC-compliant PostScript files (DSC = Document Structuring Conventions).</P>
+</BODY>
+</HTML>
\ No newline at end of file

Propchange: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/package.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/tools/DSCTools.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/tools/DSCTools.java?view=auto&rev=512838
==============================================================================
--- xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/tools/DSCTools.java (added)
+++ xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/tools/DSCTools.java Wed Feb 28 08:42:28 2007
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id$ */
+
+package org.apache.xmlgraphics.ps.dsc.tools;
+
+import java.io.IOException;
+
+import org.apache.xmlgraphics.ps.DSCConstants;
+import org.apache.xmlgraphics.ps.PSGenerator;
+import org.apache.xmlgraphics.ps.dsc.DSCException;
+import org.apache.xmlgraphics.ps.dsc.DSCParser;
+import org.apache.xmlgraphics.ps.dsc.DSCParserConstants;
+import org.apache.xmlgraphics.ps.dsc.events.DSCComment;
+import org.apache.xmlgraphics.ps.dsc.events.DSCEvent;
+import org.apache.xmlgraphics.ps.dsc.events.DSCHeaderComment;
+import org.apache.xmlgraphics.ps.dsc.events.PostScriptComment;
+
+/**
+ * Helper methods commonly used when dealing with DSC-compliant PostScript files.
+ */
+public class DSCTools implements DSCParserConstants {
+
+    /**
+     * Indicates whether the given event ends a header comment section according to the rules in
+     * DSC 3.0, chapter 4.4.
+     * @param event the event to check
+     * @return true if a header comment section would be ended either explicitely or implicitely
+     *              by the given event
+     */
+    public static boolean headerCommentsEndHere(DSCEvent event) {
+        switch (event.getEventType()) {
+        case DSC_COMMENT:
+            DSCComment comment = event.asDSCComment();
+            return (comment.getName().equals(DSCConstants.END_COMMENTS));
+        case COMMENT:
+            String s = ((PostScriptComment)event).getComment();
+            if (s == null || s.length() == 0) {
+                return true;
+            } else {
+                char c = s.charAt(0);
+                return ("\n\t ".indexOf(c) >= 0);
+            }
+        default:
+            return true;
+        }
+    }
+
+    /**
+     * Verifies that the file being parsed is a DSC 3.0 file.
+     * @param parser the DSC parser
+     * @return the header comment event
+     * @throws DSCException In case of a violation of the DSC spec
+     * @throws IOException In case of an I/O problem
+     */
+    public static DSCHeaderComment checkAndSkipDSC30Header(DSCParser parser)
+                throws DSCException, IOException {
+        if (!parser.hasNext()) {
+            throw new DSCException("File has no content");
+        }
+        DSCEvent event = parser.nextEvent();
+        if (event.getEventType() == HEADER_COMMENT) {
+            DSCHeaderComment header = (DSCHeaderComment)event;
+            if (!header.isPSAdobe30()) {
+                throw new DSCException("PostScript file does not start with '" 
+                        + DSCConstants.PS_ADOBE_30 + "'");
+            }
+            return header;
+        } else {
+            throw new DSCException("PostScript file does not start with '" 
+                    + DSCConstants.PS_ADOBE_30 + "'");
+        }
+    }
+    
+    /**
+     * Advances the parser to the next page or to the trailer or the end of file comment.
+     * @param parser the DSC parser
+     * @param gen the PSGenerator instance to pass the skipped events through to
+     * @return the DSC comment found (Page, Trailer or EOF)
+     * @throws IOException In case of an I/O error
+     * @throws DSCException In case of a violation of the DSC spec
+     */
+    public static DSCComment nextPageOrTrailer(DSCParser parser, PSGenerator gen)
+                throws IOException, DSCException {
+        while (parser.hasNext()) {
+            DSCEvent event = parser.nextEvent();
+            if (event.getEventType() == DSC_COMMENT) {
+                DSCComment comment = event.asDSCComment();
+                if (DSCConstants.PAGE.equals(comment.getName())) {
+                    return comment;
+                } else if (DSCConstants.TRAILER.equals(comment.getName())) {
+                    return comment;
+                }
+            } else if (event.getEventType() == EOF) {
+                //The Trailer may be missing
+                return event.asDSCComment();
+            }
+            if (gen != null) {
+                event.generate(gen); //Pipe through to PSGenerator
+            }
+        }
+        return null;
+    }
+
+}

Propchange: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/tools/DSCTools.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/tools/PageExtractor.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/tools/PageExtractor.java?view=auto&rev=512838
==============================================================================
--- xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/tools/PageExtractor.java (added)
+++ xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/tools/PageExtractor.java Wed Feb 28 08:42:28 2007
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id$ */
+
+package org.apache.xmlgraphics.ps.dsc.tools;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.xmlgraphics.ps.DSCConstants;
+import org.apache.xmlgraphics.ps.PSGenerator;
+import org.apache.xmlgraphics.ps.dsc.DSCException;
+import org.apache.xmlgraphics.ps.dsc.DSCFilter;
+import org.apache.xmlgraphics.ps.dsc.DSCParser;
+import org.apache.xmlgraphics.ps.dsc.DSCParserConstants;
+import org.apache.xmlgraphics.ps.dsc.DefaultNestedDocumentHandler;
+import org.apache.xmlgraphics.ps.dsc.events.DSCComment;
+import org.apache.xmlgraphics.ps.dsc.events.DSCCommentPage;
+import org.apache.xmlgraphics.ps.dsc.events.DSCCommentPages;
+import org.apache.xmlgraphics.ps.dsc.events.DSCEvent;
+import org.apache.xmlgraphics.ps.dsc.events.DSCHeaderComment;
+
+/**
+ * This class can extract a certain range of pages from a DSC-compliant PostScript file.
+ */
+public class PageExtractor implements DSCParserConstants {
+    
+    /**
+     * Parses a DSC-compliant file and pipes the content through to the OutputStream omitting
+     * all pages not within the range.
+     * @param in the InputStream to parse from 
+     * @param out the OutputStream to write the modified file to
+     * @param from the starting page (1-based)
+     * @param to the last page (inclusive, 1-based)
+     * @throws IOException In case of an I/O error
+     * @throws DSCException In case of a violation of the DSC spec
+     */
+    public static void extractPages(InputStream in, OutputStream out, int from, int to) 
+                throws IOException, DSCException {
+        if (from <= 0) {
+            throw new IllegalArgumentException("'from' page number must be 1 or higher");
+        }
+        if (to < from) {
+            throw new IllegalArgumentException(
+                    "'to' page number must be equal or larger than the 'from' page number");
+        }
+        
+        DSCParser parser = new DSCParser(in);
+        PSGenerator gen = new PSGenerator(out);
+        parser.setNestedDocumentHandler(new DefaultNestedDocumentHandler(gen));
+        int pageCount = 0;
+        
+        //Skip DSC header
+        DSCHeaderComment header = DSCTools.checkAndSkipDSC30Header(parser);
+        header.generate(gen);
+        //Set number of pages
+        DSCCommentPages pages = new DSCCommentPages(to - from + 1);
+        pages.generate(gen);
+
+        parser.setFilter(new DSCFilter() {
+            public boolean accept(DSCEvent event) {
+                if (event.isDSCComment()) {
+                    //Filter %%Pages which we add manually above
+                    return !event.asDSCComment().getName().equals(DSCConstants.PAGES);
+                } else {
+                    return true;
+                }
+            }
+        });
+
+        //Skip the prolog and to the first page
+        DSCComment pageOrTrailer = parser.nextDSCComment(DSCConstants.PAGE, gen);
+        if (pageOrTrailer == null) {
+            throw new DSCException("Page expected, but none found");
+        }
+        parser.setFilter(null); //Remove filter
+        
+        //Process individual pages (and skip as necessary)
+        while (true) {
+            DSCCommentPage page = (DSCCommentPage)pageOrTrailer;
+            boolean validPage = (page.getPagePosition() >= from && page.getPagePosition() <= to);
+            if (validPage) {
+                page.setPagePosition(page.getPagePosition() - from + 1);
+                page.generate(gen);
+                pageCount++;
+            }
+            pageOrTrailer = DSCTools.nextPageOrTrailer(parser, (validPage ? gen : null));
+            if (pageOrTrailer == null) {
+                throw new DSCException("File is not DSC-compliant: Unexpected end of file");
+            } else if (!DSCConstants.PAGE.equals(pageOrTrailer.getName())) {
+                pageOrTrailer.generate(gen);
+                break;
+            }
+        }
+        
+        //Write the rest
+        while (parser.hasNext()) {
+            DSCEvent event = parser.nextEvent();
+            event.generate(gen);
+        }
+    }
+    
+}
\ No newline at end of file

Propchange: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/tools/PageExtractor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/tools/package.html
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/tools/package.html?view=auto&rev=512838
==============================================================================
--- xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/tools/package.html (added)
+++ xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/tools/package.html Wed Feb 28 08:42:28 2007
@@ -0,0 +1,23 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!-- $Id$ -->
+<HTML>
+<TITLE>org.apache.xmlgraphics.ps.dsc.tools Package</TITLE>
+<BODY>
+<P>Tools for working with DSC-compliant PostScript files.</P>
+</BODY>
+</HTML>
\ No newline at end of file

Propchange: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/dsc/tools/package.html
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/StandardTestSuite.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/StandardTestSuite.java?view=diff&rev=512838&r1=512837&r2=512838
==============================================================================
--- xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/StandardTestSuite.java (original)
+++ xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/StandardTestSuite.java Wed Feb 28 08:42:28 2007
@@ -20,6 +20,8 @@
 package org.apache.xmlgraphics;
 
 import org.apache.xmlgraphics.image.codec.png.PNGEncoderTest;
+import org.apache.xmlgraphics.ps.dsc.events.DSCValueParserTestCase;
+import org.apache.xmlgraphics.ps.dsc.tools.DSCToolsTestCase;
 import org.apache.xmlgraphics.util.ServiceTest;
 import org.apache.xmlgraphics.util.io.ASCII85InputStreamTestCase;
 import org.apache.xmlgraphics.util.io.ASCII85OutputStreamTestCase;
@@ -46,6 +48,8 @@
         suite.addTest(new TestSuite(ASCII85OutputStreamTestCase.class));
         suite.addTest(new TestSuite(PNGEncoderTest.class));
         suite.addTest(new TestSuite(ServiceTest.class));
+        suite.addTest(new TestSuite(DSCValueParserTestCase.class));
+        suite.addTest(new TestSuite(DSCToolsTestCase.class));
         //$JUnit-END$
         return suite;
     }

Added: xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/ps/dsc/events/DSCValueParserTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/ps/dsc/events/DSCValueParserTestCase.java?view=auto&rev=512838
==============================================================================
--- xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/ps/dsc/events/DSCValueParserTestCase.java (added)
+++ xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/ps/dsc/events/DSCValueParserTestCase.java Wed Feb 28 08:42:28 2007
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id$ */
+
+package org.apache.xmlgraphics.ps.dsc.events;
+
+import java.util.List;
+
+import org.apache.xmlgraphics.ps.dsc.events.DSCCommentBeginResource;
+
+import junit.framework.TestCase;
+
+public class DSCValueParserTestCase extends TestCase {
+
+    private String[] toArray(List params) {
+        return (String[])params.toArray(new String[params.size()]);
+    }
+    
+    public void testText() throws Exception {
+        DSCCommentBeginResource obj = new DSCCommentBeginResource();
+        String[] res = toArray(obj.splitParams("procset Test"));
+        assertEquals(2, res.length);
+        assertEquals("procset", res[0]);
+        assertEquals("Test", res[1]);
+
+        res = toArray(obj.splitParams("procset\tTest"));
+        assertEquals(2, res.length);
+        assertEquals("procset", res[0]);
+        assertEquals("Test", res[1]);
+    }
+    
+    public void testParentheseText() throws Exception {
+        DSCCommentBeginResource obj = new DSCCommentBeginResource();
+        String[] res = toArray(obj.splitParams("procset (Hello World!)"));
+        assertEquals(2, res.length);
+        assertEquals("procset", res[0]);
+        assertEquals("Hello World!", res[1]);
+
+        res = toArray(obj.splitParams("procset\t(Hello\t\\\\wonderful/ World!)"));
+        assertEquals(2, res.length);
+        assertEquals("procset", res[0]);
+        assertEquals("Hello\t\\wonderful/ World!", res[1]);
+
+        res = toArray(obj.splitParams("procset (Hello \\042wonderful\\042 World!) blahblah"));
+        assertEquals(3, res.length);
+        assertEquals("procset", res[0]);
+        assertEquals("Hello \"wonderful\" World!", res[1]);
+        assertEquals("blahblah", res[2]);
+
+        //Parentheses not balanced
+        res = toArray(obj.splitParams("procset (Hello (wonderful) World! blahblah"));
+        assertEquals(2, res.length);
+        assertEquals("procset", res[0]);
+        assertEquals("Hello (wonderful) World! blahblah", res[1]);
+    }
+    
+}

Propchange: xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/ps/dsc/events/DSCValueParserTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/ps/dsc/tools/DSCToolsTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/ps/dsc/tools/DSCToolsTestCase.java?view=auto&rev=512838
==============================================================================
--- xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/ps/dsc/tools/DSCToolsTestCase.java (added)
+++ xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/ps/dsc/tools/DSCToolsTestCase.java Wed Feb 28 08:42:28 2007
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id$ */
+
+package org.apache.xmlgraphics.ps.dsc.tools;
+
+import org.apache.xmlgraphics.ps.dsc.events.DSCCommentEndComments;
+import org.apache.xmlgraphics.ps.dsc.events.DSCCommentPages;
+import org.apache.xmlgraphics.ps.dsc.events.DSCEvent;
+import org.apache.xmlgraphics.ps.dsc.events.PostScriptComment;
+import org.apache.xmlgraphics.ps.dsc.events.PostScriptLine;
+
+import junit.framework.TestCase;
+
+public class DSCToolsTestCase extends TestCase {
+
+    public void testEndComment() throws Exception {
+        DSCEvent event;
+        
+        event = new DSCCommentEndComments();
+        assertTrue(DSCTools.headerCommentsEndHere(event));
+
+        event = new PostScriptComment("FOPTest");
+        assertFalse(DSCTools.headerCommentsEndHere(event));
+
+        event = new DSCCommentPages(7);
+        assertFalse(DSCTools.headerCommentsEndHere(event));
+
+        event = new PostScriptComment(null);
+        assertTrue(DSCTools.headerCommentsEndHere(event));
+
+        event = new PostScriptComment("\t");
+        assertTrue(DSCTools.headerCommentsEndHere(event));
+
+        event = new PostScriptComment(" ***");
+        assertTrue(DSCTools.headerCommentsEndHere(event));
+
+        event = new PostScriptLine("/pgsave save def");
+        assertTrue(DSCTools.headerCommentsEndHere(event));
+    }
+    
+}

Propchange: xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/ps/dsc/tools/DSCToolsTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native



---------------------------------------------------------------------
Apache XML Graphics Project URL: http://xmlgraphics.apache.org/
To unsubscribe, e-mail: commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: commits-help@xmlgraphics.apache.org