[rkward-cvs] SF.net SVN: rkward:[4204] trunk/rkward/packages/XiMpLe

m-eik at users.sourceforge.net m-eik at users.sourceforge.net
Tue Apr 17 22:22:15 UTC 2012


Revision: 4204
          http://rkward.svn.sourceforge.net/rkward/?rev=4204&view=rev
Author:   m-eik
Date:     2012-04-17 22:22:14 +0000 (Tue, 17 Apr 2012)
Log Message:
-----------
improved parsing and pasting for comments and CDATA stuff, and handling of newlines and indentation

Modified Paths:
--------------
    trunk/rkward/packages/XiMpLe/ChangeLog
    trunk/rkward/packages/XiMpLe/DESCRIPTION
    trunk/rkward/packages/XiMpLe/R/XiMpLe-internal.R
    trunk/rkward/packages/XiMpLe/R/XiMpLe-package.R
    trunk/rkward/packages/XiMpLe/R/XiMpLe.node-class.R
    trunk/rkward/packages/XiMpLe/R/parseXMLTree.R
    trunk/rkward/packages/XiMpLe/R/pasteXMLTag.R
    trunk/rkward/packages/XiMpLe/debian/changelog
    trunk/rkward/packages/XiMpLe/debian/control
    trunk/rkward/packages/XiMpLe/debian/copyright
    trunk/rkward/packages/XiMpLe/debian/rules
    trunk/rkward/packages/XiMpLe/inst/CITATION
    trunk/rkward/packages/XiMpLe/inst/NEWS.Rd
    trunk/rkward/packages/XiMpLe/man/XiMpLe-package.Rd

Added Paths:
-----------
    trunk/rkward/packages/XiMpLe/debian/changelog.rkward

Modified: trunk/rkward/packages/XiMpLe/ChangeLog
===================================================================
--- trunk/rkward/packages/XiMpLe/ChangeLog	2012-04-17 15:17:20 UTC (rev 4203)
+++ trunk/rkward/packages/XiMpLe/ChangeLog	2012-04-17 22:22:14 UTC (rev 4204)
@@ -1,10 +1,17 @@
 ChangeLog for package XiMpLe
 
-changes in version 0.03-13 (2012-04-15)
+changes in version 0.03-13 (2012-04-17)
 added:
   - added a LICENSE file
   - debianized the sources
-
+changed:
+  - parseXMLTree() now takes connections as "file" parameter
+  - commented CDATA tags (like they're used in XHTML) can now be detected and pasted
+  - pasteXMLTag() adjusts indentation level of value tags and comments
+fixed:
+  - feeding internet addresses to parseXMLTree() no longer throws an error, skipping normalize.path() then now
+  - parseXMLTree() now preserves newlines in value tags and comments
+  
 changes in version 0.03-12 (2012-03-18)
   - node() now also works with single XiMpLe.node objects (not only full trees)
   - added pasteXML methods to paste objects of classes XiMpLe.node and XiMpLe.doc in a more

Modified: trunk/rkward/packages/XiMpLe/DESCRIPTION
===================================================================
--- trunk/rkward/packages/XiMpLe/DESCRIPTION	2012-04-17 15:17:20 UTC (rev 4203)
+++ trunk/rkward/packages/XiMpLe/DESCRIPTION	2012-04-17 22:22:14 UTC (rev 4204)
@@ -17,8 +17,8 @@
 URL: http://reaktanz.de/?c=hacking&s=XiMpLe
 Authors at R: c(person(given="Meik", family="Michalke",
     email="meik.michalke at hhu.de", role=c("aut", "cre")))
-Version: 0.03-12
-Date: 2012-03-18
+Version: 0.03-13
+Date: 2012-04-18
 Collate:
     'XiMpLe-internal.R'
     'XiMpLe.node-class.R'

Modified: trunk/rkward/packages/XiMpLe/R/XiMpLe-internal.R
===================================================================
--- trunk/rkward/packages/XiMpLe/R/XiMpLe-internal.R	2012-04-17 15:17:20 UTC (rev 4203)
+++ trunk/rkward/packages/XiMpLe/R/XiMpLe-internal.R	2012-04-17 22:22:14 UTC (rev 4204)
@@ -76,16 +76,19 @@
 
 	## the main splitting process
 	# CDATA or comments can contain stuff which might ruin the outcome. we'll deal with those parts first.
-	tree <- split.chars(txt=tree, pattern="<!\\[CDATA\\[(.*?)\\]\\]>|<!--(.*?)-->", perl=TRUE)
+	tree <- split.chars(txt=tree, pattern="<!\\[CDATA\\[((?s).*?)\\]\\]>|/\\*[[:space:]]*<!\\[CDATA\\[[[:space:]]*\\*/((?s).*?)/\\*[[:space:]]*\\]\\]>[[:space:]]*\\*/|<!--((?s).*?)-->", perl=TRUE)
 	# now do the splitting
-	single.tags <- unlist(sapply(tree, function(this.tree){
+	single.tags <- as.character(unlist(sapply(tree, function(this.tree){
 				# exclude the already cut our comments an CDATA entries
-				if(XML.comment(this.tree) | XML.cdata(this.tree)){
+				if(XML.comment(this.tree) | XML.cdata(this.tree) | XML.commcdata(this.tree)){
 					return(this.tree)
 				} else {
-					return(split.chars(txt=this.tree, "<(.*?)>"))
+					these.tags <- split.chars(txt=this.tree, "<((?s).*?)>", perl=TRUE)
+					# remove probably troublesome content like newlines
+					these.tags[!XML.value(these.tags)] <- gsub("[[:space:]]+", " ", these.tags[!XML.value(these.tags)])
+					return(these.tags)
 				}
-			}))
+			})))
 	colnames(single.tags) <- NULL
 	if("comments" %in% drop){
 		single.tags <- single.tags[!XML.comment(single.tags)]
@@ -103,12 +106,30 @@
 } ## end function XML.single.tags()
 
 
+## function setMinIndent()
+# takes a string, determines the minimum number of grouped \t strings,
+# and adjusts it globally to the given level
+setMinIndent <- function(tag, level=1, indent.by="\t"){
+	currentMinIndent <- min(nchar(unlist(strsplit(tag, "[^\t]+"))))
+	indentDiff <- currentMinIndent - level
+	# if currentMinIndent is greater than level, reduce indentation
+	if(indentDiff > 0){
+		tag <- gsub(paste("(^|[^\t]+)(\t){", indentDiff, "}", sep=""), "\\1", tag, perl=TRUE)
+	} else if(indentDiff < 0){
+		tag <- gsub("(^|[^\t]+)(\t)", paste("\\1", indent(level + 1, by=indent.by), sep=""), tag, perl=TRUE)
+	} else {}
+
+	return(tag)
+} ## end function setMinIndent()
+
+
 ## function indent()
 # will create tabs to format the output
 indent <- function(level, by="\t"){
 	paste(rep(by, level-1), collapse="")
 } ## end function indent()
 
+
 ## function xml.tidy()
 # replace special character < and > from attributes or text values
 # with harmless entities
@@ -121,6 +142,7 @@
 	return(tidy.text)
 } ## function xml.tidy()
 
+
 ## function lookupAttrName()
 # takes the original input element names and returns
 # the according XML attribute name
@@ -257,9 +279,9 @@
 # checks if a tag is a comment, returns TRUE or FALSE, or the comment (TRUE & get=TRUE)
 XML.comment <- function(tag, get=FALSE, trim=TRUE){
 	comment.tags <- sapply(tag, function(this.tag){
-			comment <- grepl("<!--(.*)-->", this.tag)
+			comment <- grepl("<!--((?s).*)-->", this.tag, perl=TRUE)
 			if(isTRUE(get)){
-				result <- ifelse(isTRUE(comment), gsub("<!--(.*)-->", "\\1", this.tag, perl=TRUE), "")
+				result <- ifelse(isTRUE(comment), gsub("<!--((?s).*)-->", "\\1", this.tag, perl=TRUE), "")
 				if(isTRUE(trim)){result <- trim(result)} else {}
 			} else {
 				result <- comment
@@ -274,9 +296,9 @@
 # checks if a tag is a CDATA declaration, returns TRUE or FALSE, or the data (TRUE & get=TRUE)
 XML.cdata <- function(tag, get=FALSE, trim=TRUE){
 	cdata.tags <- sapply(tag, function(this.tag){
-			cdata <- grepl("<!\\[CDATA\\[(.*)\\]\\]>", this.tag)
+			cdata <- grepl("<!\\[CDATA\\[((?s).*)\\]\\]>", this.tag, perl=TRUE)
 			if(isTRUE(get)){
-				result <- ifelse(isTRUE(cdata), gsub("<!\\[CDATA\\[(.*)\\]\\]>", "\\1", this.tag, perl=TRUE), "")
+				result <- ifelse(isTRUE(cdata), gsub("<!\\[CDATA\\[((?s).*)\\]\\]>", "\\1", this.tag, perl=TRUE), "")
 				if(isTRUE(trim)){result <- trim(result)} else {}
 			} else {
 				result <- cdata
@@ -287,6 +309,23 @@
 	return(cdata.tags)
 } ## end function XML.cdata()
 
+## function XML.commcdata()
+# checks if a tag is a /* CDATA */ declaration, returns TRUE or FALSE, or the data (TRUE & get=TRUE)
+XML.commcdata <- function(tag, get=FALSE, trim=TRUE){
+	commcdata.tags <- sapply(tag, function(this.tag){
+			commcdata <- grepl("/\\*[[:space:]]*<!\\[CDATA\\[[[:space:]]*\\*/((?s).*?)/\\*[[:space:]]*\\]\\]>[[:space:]]*\\*/", this.tag, perl=TRUE)
+			if(isTRUE(get)){
+				result <- ifelse(isTRUE(commcdata), gsub("/\\*[[:space:]]*<!\\[CDATA\\[[[:space:]]*\\*/((?s).*?)/\\*[[:space:]]*\\]\\]>[[:space:]]*\\*/", "\\1", this.tag, perl=TRUE), "")
+				if(isTRUE(trim)){result <- trim(result)} else {}
+			} else {
+				result <- commcdata
+			}
+			return(result)
+		})
+	names(commcdata.tags) <- NULL
+	return(commcdata.tags)
+} ## end function XML.commcdata()
+
 ## function XML.value()
 # checks if 'tag' is actually not a tag but value/content/data. returns TRUE or FALSE, or the value (TRUE & get=TRUE)
 XML.value <- function(tag, get=FALSE, trim=TRUE){
@@ -394,6 +433,15 @@
 		# cat(this.tag, ": break (",tag.no,")\n")
 			break
 		} else {}
+		# we must test for commented CDATA first, because XML.value() would be TRUE, too
+		if(XML.commcdata(this.tag)){
+			children[nxt.child] <- new("XiMpLe.node",
+				name="*![CDATA[",
+				value=XML.commcdata(this.tag, get=TRUE))
+			names(children)[nxt.child] <- "*![CDATA["
+			tag.no <- tag.no + 1
+			next
+		} else {}
 		if(XML.value(this.tag)){
 			children[nxt.child] <- new("XiMpLe.node",
 				name="",

Modified: trunk/rkward/packages/XiMpLe/R/XiMpLe-package.R
===================================================================
--- trunk/rkward/packages/XiMpLe/R/XiMpLe-package.R	2012-04-17 15:17:20 UTC (rev 4203)
+++ trunk/rkward/packages/XiMpLe/R/XiMpLe-package.R	2012-04-17 22:22:14 UTC (rev 4204)
@@ -3,8 +3,8 @@
 #' \tabular{ll}{
 #' Package: \tab XiMpLe\cr
 #' Type: \tab Package\cr
-#' Version: \tab 0.03-12\cr
-#' Date: \tab 2012-03-18\cr
+#' Version: \tab 0.03-13\cr
+#' Date: \tab 2012-04-18\cr
 #' Depends: \tab R (>= 2.9.0),methods\cr
 #' Enhances: \tab rkward\cr
 #' Encoding: \tab UTF-8\cr

Modified: trunk/rkward/packages/XiMpLe/R/XiMpLe.node-class.R
===================================================================
--- trunk/rkward/packages/XiMpLe/R/XiMpLe.node-class.R	2012-04-17 15:17:20 UTC (rev 4203)
+++ trunk/rkward/packages/XiMpLe/R/XiMpLe.node-class.R	2012-04-17 22:22:14 UTC (rev 4204)
@@ -9,6 +9,8 @@
 # 			\code{\link[XiMpLe:pasteXMLNode]{pasteXMLNode}} will paste its \code{value} as plain text.}
 # 		\item{\code{name="!--"}}{Creates a comment tag, i.e., this will comment out all its \code{children}.}
 # 		\item{\code{name="![CDATA["}}{Creates a CDATA section and places all its \code{children} in it.}
+# 		\item{\code{name="*![CDATA["}}{Creates a CDATA section and places all its \code{children} in it, where the CDATA markers are
+# 			commented out by \code{/* */}, as is used for JavaScript in XHTML.}
 # }
 #
 # @title S4 class XiMpLe.node

Modified: trunk/rkward/packages/XiMpLe/R/parseXMLTree.R
===================================================================
--- trunk/rkward/packages/XiMpLe/R/parseXMLTree.R	2012-04-17 15:17:20 UTC (rev 4203)
+++ trunk/rkward/packages/XiMpLe/R/parseXMLTree.R	2012-04-17 22:22:14 UTC (rev 4204)
@@ -20,11 +20,20 @@
 
 parseXMLTree <- function(file, drop=NULL, object=FALSE){
 	if(isTRUE(object)){
-		xml.raw <- paste(file, collapse=" ")
+		xml.raw <- paste(file, collapse="\n")
 		filePath <- "object"
+	} else if(inherits(file, "connection")){
+		xml.raw <- paste(readLines(file), collapse="\n")
+		# is there a way to get the friggin' "description" out of a connection object?!
+		filePath <- "connection"
 	} else {
-		xml.raw <- paste(readLines(file), collapse=" ")
-		filePath <- normalizePath(file)
+		xml.raw <- paste(readLines(file), collapse="\n")
+		# try to detect if 'file' is like a weblink, not a regular file
+		if(grepl("^[[:alpha:]]+://", file, ignore.case=TRUE)){
+			filePath <- file
+		} else {
+			filePath <- normalizePath(file)
+		}
 	}
 
 	single.tags <- XML.single.tags(xml.raw, drop=drop)

Modified: trunk/rkward/packages/XiMpLe/R/pasteXMLTag.R
===================================================================
--- trunk/rkward/packages/XiMpLe/R/pasteXMLTag.R	2012-04-17 15:17:20 UTC (rev 4203)
+++ trunk/rkward/packages/XiMpLe/R/pasteXMLTag.R	2012-04-17 22:22:14 UTC (rev 4204)
@@ -37,50 +37,66 @@
 	new.attr   <- ifelse(shine > 1, "\n", "")
 	new.attr.indent <- ifelse(shine > 1, indent(level, by=indent.by), "")
 	attr.space <- ifelse(nchar(all.attributes) > 0, " ", "")
+	new.cmmt   <- ifelse(shine > 0, "\n", " ")
 	new.cmmt.indent <- ifelse(shine > 1, indent(level + 1, by=indent.by), "")
 	comment.indent <- ifelse(shine > 0, indent(level + 1, by=indent.by), "")
 
 	# three special cases: value pseudotags, comments and CDATA
 	if(isTRUE(nchar(tag) == 0) | length(tag) == 0){
 		full.tag <- paste(child, " ", sep="")
-	} else if(identical(tag, "!--")){
-		# clean up value if needed
-		if(!is.null(child)){
-			child <- trim(child)
-			if(isTRUE(tidy)){
-				child <- gsub("\n", paste("\n", comment.indent, sep=""), child)
+	} else {
+	switch(tag,
+		"!--"={
+			# clean up value if needed
+			if(!is.null(child)){
+				child <- trim(child)
+				if(isTRUE(tidy)){
+					child <- gsub("\n", new.cmmt, setMinIndent(child, level=level + 1, indent.by=indent.by))
+				}
+			} else {}
+			full.tag <- paste(new.indent, "<!-- ", new.attr, new.cmmt.indent,
+				child, " ", new.attr, new.attr.indent,
+				"-->", new.node, sep="")},
+		"![CDATA["={
+			# clean up value if needed
+			if(!is.null(child)){
+				child <- trim(child)
+				if(isTRUE(tidy)){
+					child <- gsub("\n", new.cmmt, setMinIndent(child, level=level + 1, indent.by=indent.by))
+				}
+			} else {}
+			full.tag <- paste(new.indent, "<![CDATA[ ", new.cmmt, comment.indent,
+				child, " ", new.cmmt, new.indent,
+				"]]>", new.node, sep="")},
+		"*![CDATA["={
+			# clean up value if needed
+			if(!is.null(child)){
+				child <- trim(child)
+				if(isTRUE(tidy)){
+					child <- gsub("\n", new.cmmt, setMinIndent(child, level=level + 1, indent.by=indent.by))
+				}
+			} else {}
+			# 
+			full.tag <- paste(new.indent, "/* <![CDATA[ */ ", new.cmmt, comment.indent,
+				child, " ", new.cmmt, new.indent,
+				"/* ]]> */", new.node, sep="")},
+		# last but not least, the default value
+		{
+			# only put attributes in new lines if there's more than one
+			new.attr <- ifelse((length(attr) > 1), new.attr, "")
+			new.attr.indent <- ifelse((length(attr) > 1), new.attr.indent, "")
+			new.cmmt.indent <- ifelse((length(attr) > 1), new.cmmt.indent, "")
+			val.indent <- ifelse(shine > 0, indent(level + 1, by=indent.by), "")
+			# empty decides whether this is a empty tag or a pair of start and end tags
+			if(isTRUE(empty)){
+				full.tag <- paste(new.indent, "<", tag, attr.space, new.attr, new.cmmt.indent, all.attributes, new.attr, new.attr.indent, " />", new.node, sep="")
+			} else {
+				full.tag <- paste(
+					new.indent, "<", tag, attr.space, new.attr, new.cmmt.indent, all.attributes, new.attr, new.attr.indent, ">", new.node,
+					if(!is.null(child)){paste(val.indent, trim(child), new.node, sep="")},
+					new.indent, "</", tag, ">", new.node, sep="")
 			}
-		} else {}
-		full.tag <- paste(new.indent, "<!-- ", new.attr, new.cmmt.indent,
-			child, " ", new.attr, new.attr.indent,
-			"-->", new.node, sep="")
-	} else if(identical(tag, "![CDATA[")){
-		# clean up value if needed
-		if(!is.null(child)){
-			child <- trim(child)
-			if(isTRUE(tidy)){
-				child <- gsub("\n", paste("\n", comment.indent, sep=""), child)
-			}
-		} else {}
-		full.tag <- paste(new.indent, "<![CDATA[ ", new.attr, new.cmmt.indent,
-			child, " ", new.attr, new.attr.indent,
-			"]]>", new.node, sep="")
-	} else {
-		# only put attributes in new lines if there's more than one
-		new.attr <- ifelse((length(attr) > 1), new.attr, "")
-		new.attr.indent <- ifelse((length(attr) > 1), new.attr.indent, "")
-		new.cmmt.indent <- ifelse((length(attr) > 1), new.cmmt.indent, "")
-		val.indent <- ifelse(shine > 0, indent(level + 1, by=indent.by), "")
-		# empty decides whether this is a empty tag or a pair of start and end tags
-		if(isTRUE(empty)){
-			full.tag <- paste(new.indent, "<", tag, attr.space, new.attr, new.cmmt.indent, all.attributes, new.attr, new.attr.indent, " />", new.node, sep="")
-		} else {
-			full.tag <- paste(
-				new.indent, "<", tag, attr.space, new.attr, new.cmmt.indent, all.attributes, new.attr, new.attr.indent, ">", new.node,
-				if(!is.null(child)){paste(val.indent, trim(child), new.node, sep="")},
-				new.indent, "</", tag, ">", new.node, sep="")
-		}
+		})
 	}
-
 	return(full.tag)
 }

Modified: trunk/rkward/packages/XiMpLe/debian/changelog
===================================================================
--- trunk/rkward/packages/XiMpLe/debian/changelog	2012-04-17 15:17:20 UTC (rev 4203)
+++ trunk/rkward/packages/XiMpLe/debian/changelog	2012-04-17 22:22:14 UTC (rev 4204)
@@ -1,3 +1,9 @@
+r-other-reaktanz-ximple (0.03-13-1) unstable; urgency=low
+
+  * initial debian package
+
+ -- m.eik michalke <meik.michalke at hhu.de>  Tue, 17 Apr 2012 22:22:33 +0000
+
 r-other-reaktanz-ximple (0.03-12-1) unstable; urgency=low
 
   * initial debian package

Added: trunk/rkward/packages/XiMpLe/debian/changelog.rkward
===================================================================
--- trunk/rkward/packages/XiMpLe/debian/changelog.rkward	                        (rev 0)
+++ trunk/rkward/packages/XiMpLe/debian/changelog.rkward	2012-04-17 22:22:14 UTC (rev 4204)
@@ -0,0 +1,6 @@
+r-other-rkward-ximple (0.03-13-1) unstable; urgency=low
+
+  * new upstream release
+
+ -- m.eik michalke <meik.michalke at hhu.de>  Wed, 18 Apr 2012 00:15:13 +0000
+

Modified: trunk/rkward/packages/XiMpLe/debian/control
===================================================================
--- trunk/rkward/packages/XiMpLe/debian/control	2012-04-17 15:17:20 UTC (rev 4203)
+++ trunk/rkward/packages/XiMpLe/debian/control	2012-04-17 22:22:14 UTC (rev 4204)
@@ -1,12 +1,12 @@
-Source: r-other-reaktanz-ximple
+Source: r-other-rkward-ximple
 Section: math
 Priority: optional
 Maintainer: m.eik michalke <meik.michalke at hhu.de>
-Build-Depends-Indep: debhelper (>> 4.1.0), r-base-dev (>= 2.15.0), cdbs
+Build-Depends-Indep: debhelper (>> 4.1.0), r-base-dev (>= 2.9.0), cdbs
 Standards-Version: 3.9.3.1
 Homepage: http://reaktanz.de/?c=hacking&s=XiMpLe
 
-Package: r-other-reaktanz-ximple
+Package: r-other-rkward-ximple
 Architecture: all
 Section: math
 Depends: r-base (>= 2.15.0)

Modified: trunk/rkward/packages/XiMpLe/debian/copyright
===================================================================
--- trunk/rkward/packages/XiMpLe/debian/copyright	2012-04-17 15:17:20 UTC (rev 4203)
+++ trunk/rkward/packages/XiMpLe/debian/copyright	2012-04-17 22:22:14 UTC (rev 4204)
@@ -3,7 +3,7 @@
 This Debian package was put together m.eik michalke <meik.michalke at hhu.de>.
 
 The package was renamed from its upstream name 'XiMpLe' to
-'r-other-reaktanz-ximple' in harmony with the R packaging policy to indicate
+'r-other-rkward-ximple' in harmony with the R packaging policy to indicate
 that the package is external to the CRAN or BioC repositories.
 
 XiMpLe Copyright (C) 2012 Meik Michalke, released under the

Modified: trunk/rkward/packages/XiMpLe/debian/rules
===================================================================
--- trunk/rkward/packages/XiMpLe/debian/rules	2012-04-17 15:17:20 UTC (rev 4203)
+++ trunk/rkward/packages/XiMpLe/debian/rules	2012-04-17 22:22:14 UTC (rev 4204)
@@ -1,9 +1,9 @@
 #!/usr/bin/make -f
 #								-*- makefile -*-
-# debian/rules file for the Debian/GNU Linux r-other-reaktanz-ximple package
+# debian/rules file for the Debian/GNU Linux r-other-rkward-ximple package
 # Copyright 2012 by m.eik michalke <meik.michalke at hhu.de>
 
-debRreposname := other-reaktanz
+debRreposname := other-rkward
 
 include /usr/share/R/debian/r-cran.mk
 

Modified: trunk/rkward/packages/XiMpLe/inst/CITATION
===================================================================
--- trunk/rkward/packages/XiMpLe/inst/CITATION	2012-04-17 15:17:20 UTC (rev 4203)
+++ trunk/rkward/packages/XiMpLe/inst/CITATION	2012-04-17 22:22:14 UTC (rev 4204)
@@ -2,12 +2,12 @@
 		title="XiMpLe: A simple XML tree parser and generator",
 		author="Meik Michalke",
 		year="2012",
-		note="(Version 0.03-12)",
+		note="(Version 0.03-13)",
 		url="http://reaktanz.de/?c=hacking&s=XiMpLe",
 
 		textVersion =
 		paste("Michalke, M. (2012). ",
-				"XiMpLe: A simple XML tree parser and generator (Version 0.03-12). ",
+				"XiMpLe: A simple XML tree parser and generator (Version 0.03-13). ",
 				"Available from http://reaktanz.de/?c=hacking&s=XiMpLe",
 				sep=""),
 

Modified: trunk/rkward/packages/XiMpLe/inst/NEWS.Rd
===================================================================
--- trunk/rkward/packages/XiMpLe/inst/NEWS.Rd	2012-04-17 15:17:20 UTC (rev 4203)
+++ trunk/rkward/packages/XiMpLe/inst/NEWS.Rd	2012-04-17 22:22:14 UTC (rev 4204)
@@ -1,6 +1,27 @@
 \name{NEWS}
 \title{News for Package 'XiMpLe'}
 \encoding{UTF-8}
+\section{Changes in XiMpLe version 0.03-13 (2012-04-17)}{
+  \subsection{added}{
+    \itemize{
+      \item added a LICENSE file
+      \item debianized the sources
+    }
+  }
+  \subsection{changed}{
+    \itemize{
+      \item \code{parseXMLTree()} now takes connections as \code{"file"} parameter
+      \item commented CDATA tags (like they're used in XHTML) can now be detected and pasted
+      \item \code{pasteXMLTag()} adjusts indentation level of value tags and comments
+    }
+  }
+  \subsection{fixed}{
+    \itemize{
+      \item feeding internet addresses to \code{parseXMLTree()} no longer throws an error, skipping \code{normalize.path()} then now
+      \item \code{parseXMLTree()} now preserves newlines in value tags and comments
+    }
+  }
+}
 \section{Changes in XiMpLe version 0.03-12 (2012-03-18)}{
   \itemize{
     \item \code{node()} now also works with single XiMpLe.node objects (not only full trees)

Modified: trunk/rkward/packages/XiMpLe/man/XiMpLe-package.Rd
===================================================================
--- trunk/rkward/packages/XiMpLe/man/XiMpLe-package.Rd	2012-04-17 15:17:20 UTC (rev 4203)
+++ trunk/rkward/packages/XiMpLe/man/XiMpLe-package.Rd	2012-04-17 22:22:14 UTC (rev 4204)
@@ -8,8 +8,8 @@
 }
 \details{
   \tabular{ll}{ Package: \tab XiMpLe\cr Type: \tab
-  Package\cr Version: \tab 0.03-12\cr Date: \tab
-  2012-03-18\cr Depends: \tab R (>= 2.9.0),methods\cr
+  Package\cr Version: \tab 0.03-13\cr Date: \tab
+  2012-04-18\cr Depends: \tab R (>= 2.9.0),methods\cr
   Enhances: \tab rkward\cr Encoding: \tab UTF-8\cr License:
   \tab GPL (>= 3)\cr LazyLoad: \tab yes\cr URL: \tab
   http://reaktanz.de/?c=hacking&s=XiMpLe\cr }

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.





More information about the rkward-tracker mailing list