diff options
Diffstat (limited to 'org/madore')
| -rw-r--r-- | org/madore/damlengine/LangHelper.java | 8 | ||||
| -rw-r--r-- | org/madore/damlengine/TodoBodyElement.java | 3 | ||||
| -rw-r--r-- | org/madore/damlengine/TodoCommentsScript.java | 6 | ||||
| -rw-r--r-- | org/madore/damlengine/TodoKillAElement.java | 3 | ||||
| -rw-r--r-- | org/madore/damlengine/TodoKillAcronymElement.java | 6 | ||||
| -rw-r--r-- | org/madore/damlengine/TodoWeblogElement.java | 6 | 
6 files changed, 26 insertions, 6 deletions
| diff --git a/org/madore/damlengine/LangHelper.java b/org/madore/damlengine/LangHelper.java index a94f5be..aea1240 100644 --- a/org/madore/damlengine/LangHelper.java +++ b/org/madore/damlengine/LangHelper.java @@ -32,6 +32,14 @@ public class LangHelper {  	node.removeAttributeNS(DamlEngine.XML_NS, LANG);      } +    public static void setWeakLangNorec(Element node, String lang) { +	if ( lang == null ) +	    throw new NullPointerException("lang is null in setWeakLangNorec"); +	String currentLang = getLangNorec(node); +	if ( currentLang == null ) +	    setLangNorec(node,lang); +    } +      public static String getLangRec(Node node) {  	// Never returns null (returns the empty string for no language).  	// node may be null (in which case, return ""). diff --git a/org/madore/damlengine/TodoBodyElement.java b/org/madore/damlengine/TodoBodyElement.java index 1db657b..2e48ee8 100644 --- a/org/madore/damlengine/TodoBodyElement.java +++ b/org/madore/damlengine/TodoBodyElement.java @@ -27,6 +27,7 @@ public final class TodoBodyElement extends TodoDefaultElement {  	    throw new IllegalArgumentException("body node can only be child of daml node");  	Element parent = (Element)(this.node.getParentNode()); +	String explicitLang = LangHelper.getLangNorec(this.node);  	ArrayList<Node> childList = getChildList(this.node);  	ArrayList<TodoElement> toProcess = new ArrayList<TodoElement>(childList.size());  	for ( Node child : childList ) { @@ -37,6 +38,8 @@ public final class TodoBodyElement extends TodoDefaultElement {  	    }  	    parent.insertBefore(child, node);  	    if ( child.getNodeType() == Node.ELEMENT_NODE ) { +		if ( explicitLang != null ) +		    LangHelper.setWeakLangNorec((Element)child, explicitLang);  		TodoElement it  		    = TodoElement.getTodoElement((Element)child, this.ctx, this);  		toProcess.add(it); diff --git a/org/madore/damlengine/TodoCommentsScript.java b/org/madore/damlengine/TodoCommentsScript.java index 224d547..eb250e8 100644 --- a/org/madore/damlengine/TodoCommentsScript.java +++ b/org/madore/damlengine/TodoCommentsScript.java @@ -1,5 +1,6 @@  package org.madore.damlengine; +import java.util.regex.Pattern;  import org.w3c.dom.*;  public final class TodoCommentsScript extends TodoElement { @@ -13,6 +14,11 @@ public final class TodoCommentsScript extends TodoElement {      @Override      public void handle() {  	if ( ctx.gc.commentsJSParam == null ) { +	    Node ws = node.getNextSibling(); +	    if ( ( ws.getNodeType() == Node.TEXT_NODE +		   || ws.getNodeType() == Node.CDATA_SECTION_NODE ) +		 && Pattern.matches("^\\s*$",((CharacterData)ws).getData()) ) +		node.getParentNode().removeChild(ws);  	    node.getParentNode().removeChild(node);  	    return;  	} diff --git a/org/madore/damlengine/TodoKillAElement.java b/org/madore/damlengine/TodoKillAElement.java index 4478fae..f230ee0 100644 --- a/org/madore/damlengine/TodoKillAElement.java +++ b/org/madore/damlengine/TodoKillAElement.java @@ -22,11 +22,14 @@ public final class TodoKillAElement extends TodoDefaultElement {      @Override      public void handleNodeOnly() { +	String explicitLang = LangHelper.getLangNorec(this.node);  	ArrayList<Node> childList = getChildList(node);  	ArrayList<TodoElement> toProcess = new ArrayList<TodoElement>(childList.size());  	for ( Node child : childList ) {  	    node.getParentNode().insertBefore(child, node);  	    if ( child.getNodeType() == Node.ELEMENT_NODE ) { +		if ( explicitLang != null ) +		    LangHelper.setWeakLangNorec((Element)child, explicitLang);  		TodoElement it  		    = TodoElement.getTodoElement((Element)child, this.ctx, this);  		toProcess.add(it); diff --git a/org/madore/damlengine/TodoKillAcronymElement.java b/org/madore/damlengine/TodoKillAcronymElement.java index 65664e9..f7e6190 100644 --- a/org/madore/damlengine/TodoKillAcronymElement.java +++ b/org/madore/damlengine/TodoKillAcronymElement.java @@ -28,9 +28,9 @@ public final class TodoKillAcronymElement extends TodoDefaultElement {  				   "acronym "+node.getAttributeNS(null, "class"));  	else  	    newNode.setAttributeNS(null, "class", "acronym"); -	String lang = LangHelper.getLangNorec(node); -	if ( lang != null ) -	    LangHelper.setLangNorec(newNode, lang); +	String explicitLang = LangHelper.getLangNorec(node); +	if ( explicitLang != null ) +	    LangHelper.setLangNorec(newNode, explicitLang);  	ArrayList<Attr> attrList = getAttrList(this.node);  	for ( Attr attr : attrList ) {  	    if ( attr.getNamespaceURI() == null ) { diff --git a/org/madore/damlengine/TodoWeblogElement.java b/org/madore/damlengine/TodoWeblogElement.java index 3d457a8..1cbc53c 100644 --- a/org/madore/damlengine/TodoWeblogElement.java +++ b/org/madore/damlengine/TodoWeblogElement.java @@ -25,7 +25,7 @@ public final class TodoWeblogElement extends TodoDefaultElement {      public void handleNodeOnly() {  	System.err.println("warning: weblog element should not be processed this way!");  	Node parent = node.getParentNode(); -	String lang = LangHelper.getLangNorec(node); +	String explicitLang = LangHelper.getLangNorec(node);  	ArrayList<Node> childList = getChildList(this.node);  	ArrayList<TodoElement> toProcess = new ArrayList<TodoElement>(childList.size()+8);  	for ( Node child : childList ) { @@ -36,8 +36,8 @@ public final class TodoWeblogElement extends TodoDefaultElement {  	    }  	    parent.insertBefore(child, node);  	    if ( child.getNodeType() == Node.ELEMENT_NODE ) { -		if ( lang != null ) -		    LangHelper.setLangRec((Element)child, lang);  // Dubious +		if ( explicitLang != null ) +		    LangHelper.setWeakLangNorec((Element)child, explicitLang);  		TodoElement it  		    = TodoElement.getTodoElement((Element)child, this.ctx, this);  		toProcess.add(it); | 
