+\f
+;;; Functions that should probably not be there
+
+(defun url-canonalize (address base)
+ "Make ADRESS an absolute URL, taking it in the BASE context."
+ ;; I feel such a function should exist in `url-parse'. Did I miss it?
+ (let ((url-base (url-generic-parse-url base))
+ (url-address (url-generic-parse-url address)))
+ (if (url-host url-address)
+ address
+ (setf (url-filename url-base)
+ (expand-file-name address
+ (file-name-directory (url-filename url-base))))
+ (url-recreate-url url-base))))
+
+(defun xml-node-as-text (node)
+ "Return a string representing NODE, an XML structure."
+ (with-temp-buffer
+ (xml-print (xml-node-children node))
+ (buffer-string)))
+
+(defun xml-node-create (name attrlist childlist)
+ "Create a new XML node."
+ (list name attrlist . childlist))
+