From c94600616b889f5a7a27eaed335581ced7349055 Mon Sep 17 00:00:00 2001 From: Norman Walsh Date: Thu, 21 Mar 2002 13:27:51 +0000 Subject: [PATCH] Fix nesting bug in XHTML --- xsl/extensions/saxon643/.classes/Makefile.common | 2 +- .../saxon643/com/nwalsh/saxon/CalloutEmitter.java | 10 +++++++++- .../saxon643/com/nwalsh/saxon/NumberLinesEmitter.java | 10 +++++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/xsl/extensions/saxon643/.classes/Makefile.common b/xsl/extensions/saxon643/.classes/Makefile.common index 06c8a992f..823b819ab 100644 --- a/xsl/extensions/saxon643/.classes/Makefile.common +++ b/xsl/extensions/saxon643/.classes/Makefile.common @@ -1,4 +1,4 @@ -CLASSPATH=$(CLASSBASE):/usr/local/java/saxon-6.4.3/saxon.jar +CLASSPATH=$(CLASSBASE):/usr/local/java/saxon-6.4.4/saxon.jar all: $(CLASSFILES) -@for f in $(SUBDIRS); do \ diff --git a/xsl/extensions/saxon643/com/nwalsh/saxon/CalloutEmitter.java b/xsl/extensions/saxon643/com/nwalsh/saxon/CalloutEmitter.java index 5a038d746..60492b06c 100644 --- a/xsl/extensions/saxon643/com/nwalsh/saxon/CalloutEmitter.java +++ b/xsl/extensions/saxon643/com/nwalsh/saxon/CalloutEmitter.java @@ -57,6 +57,9 @@ public class CalloutEmitter extends CopyEmitter { /** The FO namespace name. */ protected static String foURI = "http://www.w3.org/1999/XSL/Format"; + /** The XHTML namespace name. */ + protected static String xhURI = "http://www.w3.org/1999/xhtml"; + /** The default column for callouts that specify only a line. */ protected int defaultColumn = 60; @@ -413,15 +416,20 @@ public class CalloutEmitter extends CopyEmitter { * @return True if the element is the outer-most block, false otherwise. */ protected boolean skipThisElement(int nameCode) { + // FIXME: This is such a gross hack... if (firstElement) { int thisFingerprint = namePool.getFingerprint(nameCode); int foBlockFingerprint = namePool.getFingerprint(foURI, "block"); int htmlPreFingerprint = namePool.getFingerprint("", "pre"); int htmlDivFingerprint = namePool.getFingerprint("", "div"); + int xhtmlPreFingerprint = namePool.getFingerprint(xhURI, "pre"); + int xhtmlDivFingerprint = namePool.getFingerprint(xhURI, "div"); if ((foStylesheet && thisFingerprint == foBlockFingerprint) || (!foStylesheet && (thisFingerprint == htmlPreFingerprint - || thisFingerprint == htmlDivFingerprint))) { + || thisFingerprint == htmlDivFingerprint + || thisFingerprint == xhtmlPreFingerprint + || thisFingerprint == xhtmlDivFingerprint))) { // Don't push the outer-most wrapping div, pre, or fo:block return true; } diff --git a/xsl/extensions/saxon643/com/nwalsh/saxon/NumberLinesEmitter.java b/xsl/extensions/saxon643/com/nwalsh/saxon/NumberLinesEmitter.java index 4c041d942..9d7466c54 100644 --- a/xsl/extensions/saxon643/com/nwalsh/saxon/NumberLinesEmitter.java +++ b/xsl/extensions/saxon643/com/nwalsh/saxon/NumberLinesEmitter.java @@ -60,6 +60,9 @@ public class NumberLinesEmitter extends CopyEmitter { /** The FO namespace name. */ protected static String foURI = "http://www.w3.org/1999/XSL/Format"; + /** The XHTML namespace name. */ + protected static String xhURI = "http://www.w3.org/1999/xhtml"; + /** Every modulus line will be numbered. */ protected int modulus = 5; @@ -264,15 +267,20 @@ public class NumberLinesEmitter extends CopyEmitter { * @return True if the element is the outer-most block, false otherwise. */ protected boolean skipThisElement(int nameCode) { + // FIXME: This is such a gross hack... if (firstElement) { int thisFingerprint = namePool.getFingerprint(nameCode); int foBlockFingerprint = namePool.getFingerprint(foURI, "block"); int htmlPreFingerprint = namePool.getFingerprint("", "pre"); int htmlDivFingerprint = namePool.getFingerprint("", "div"); + int xhtmlPreFingerprint = namePool.getFingerprint(xhURI, "pre"); + int xhtmlDivFingerprint = namePool.getFingerprint(xhURI, "div"); if ((foStylesheet && thisFingerprint == foBlockFingerprint) || (!foStylesheet && (thisFingerprint == htmlPreFingerprint - || thisFingerprint == htmlDivFingerprint))) { + || thisFingerprint == htmlDivFingerprint + || thisFingerprint == xhtmlPreFingerprint + || thisFingerprint == xhtmlDivFingerprint))) { // Don't push the outer-most wrapping div, pre, or fo:block return true; } -- 2.40.0