summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/modules/js/htdocs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sca-cpp/trunk/modules/js/htdocs/atomutil.js10
-rw-r--r--sca-cpp/trunk/modules/js/htdocs/elemutil.js2
-rw-r--r--sca-cpp/trunk/modules/js/htdocs/xmlutil.js11
3 files changed, 16 insertions, 7 deletions
diff --git a/sca-cpp/trunk/modules/js/htdocs/atomutil.js b/sca-cpp/trunk/modules/js/htdocs/atomutil.js
index 3499948083..6b998dceda 100644
--- a/sca-cpp/trunk/modules/js/htdocs/atomutil.js
+++ b/sca-cpp/trunk/modules/js/htdocs/atomutil.js
@@ -65,11 +65,9 @@ atom.entryValue = function(e) {
* Return true if a list of strings represents an ATOM feed.
*/
atom.isATOMFeed = function(l) {
- if (isNil(l))
- return false;
- if (car(l).substring(0, 5) != "<?xml")
+ if (!isXML(l))
return false;
- return car(l).match("<feed") != null;
+ return car(l).match('<feed') != null && car(l).match('="http://www.w3.org/2005/Atom"') != null;
};
/**
@@ -151,7 +149,9 @@ atom.writeATOMFeed = function(l) {
* Convert an ATOM entry containing a value to an ATOM entry containing an item element.
*/
atom.entryValuesToElements = function(v) {
- return cons(car(v), cons(cadr(v), valuesToElements(mklist(cons("'item", caddr(v))))));
+ if (isList(caddr(v)))
+ return cons(car(v), cons(cadr(v), valuesToElements(mklist(cons("'item", caddr(v))))));
+ return cons(car(v), cons(cadr(v), valuesToElements(mklist(mklist("'item", caddr(v))))));
};
/**
diff --git a/sca-cpp/trunk/modules/js/htdocs/elemutil.js b/sca-cpp/trunk/modules/js/htdocs/elemutil.js
index 6bebc02101..00baab06c8 100644
--- a/sca-cpp/trunk/modules/js/htdocs/elemutil.js
+++ b/sca-cpp/trunk/modules/js/htdocs/elemutil.js
@@ -161,7 +161,7 @@ function elementsToValues(e) {
function valueToElement(t) {
if (isList(t) && !isNil(t) && isSymbol(car(t))) {
var n = car(t);
- var v = cadr(t)
+ var v = isNil(cdr(t))? mklist() : cadr(t);
if (!isList(v)) {
if (n.substring(0, 2) == atsign)
return mklist(attribute, n.substring(1), v);
diff --git a/sca-cpp/trunk/modules/js/htdocs/xmlutil.js b/sca-cpp/trunk/modules/js/htdocs/xmlutil.js
index 121bf8692c..1bec45f9b9 100644
--- a/sca-cpp/trunk/modules/js/htdocs/xmlutil.js
+++ b/sca-cpp/trunk/modules/js/htdocs/xmlutil.js
@@ -84,6 +84,15 @@ function readElements(l) {
}
/**
+ * Return true if a list of strings contains an XML document.
+ */
+function isXML(l) {
+ if (isNil(l))
+ return false;
+ return car(l).substring(0, 5) == '<?xml';
+}
+
+/**
* Parse a list of strings representing an XML document.
*/
function parseXML(l) {
@@ -107,7 +116,7 @@ function parseXML(l) {
* Read a list of values from an XML document.
*/
function readXMLDocument(doc) {
- var root = nodeList(doc.childNodes);
+ var root = childElements(doc);
if (isNil(root))
return mklist();
return mklist(readElement(car(root)));