changeset 54795:31399f1df768

(url-dav-rename-file): Fix args of `signal'. (url-intersection): New. (url-dav-supported-p): Use it. (url-dav-save-resource): Declare url-http-response-status special.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 12 Apr 2004 04:03:16 +0000
parents 9978b1e48c24
children 351fde140ac4
files lisp/url/url-dav.el
diffstat 1 files changed, 21 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/url/url-dav.el	Mon Apr 12 04:03:06 2004 +0000
+++ b/lisp/url/url-dav.el	Mon Apr 12 04:03:16 2004 +0000
@@ -21,6 +21,8 @@
 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 ;; Boston, MA 02111-1307, USA.
 
+;; DAV is in RFC 2518.
+
 (eval-when-compile
   (require 'cl))
 
@@ -31,12 +33,23 @@
 (defvar url-dav-supported-protocols '(1 2)
   "List of supported DAV versions.")
 
+(defun url-intersection (l1 l2)
+  "Return a list of the elements occuring in both of the lists L1 and L2."
+  (if (null l2)
+      l2
+    (let (result)
+      (while l1
+	(if (member (car l1) l2)
+	    (setq result (cons (pop l1) result))
+	  (pop l1)))
+      (nreverse result))))
+
 ;;;###autoload
 (defun url-dav-supported-p (url)
   (and (featurep 'xml)
        (fboundp 'xml-expand-namespace)
-       (intersection url-dav-supported-protocols
-		     (plist-get (url-http-options url) 'dav))))
+       (url-intersection url-dav-supported-protocols
+			 (plist-get (url-http-options url) 'dav))))
 
 (defun url-dav-node-text (node)
   "Return the text data from the XML node NODE."
@@ -612,6 +625,8 @@
 	 (url-debug 'dav "Unrecognized DAV:locktype (%S)" (car lock)))))
     modes))
 
+(autoload 'url-http-head-file-attributes "url-http")
+
 ;;;###autoload
 (defun url-dav-file-attributes (url)
   (let ((properties (cdar (url-dav-get-properties url)))
@@ -673,6 +688,7 @@
   "Save OBJ as URL using WebDAV.
 URL must be a fully qualified URL.
 OBJ may be a buffer or a string."
+  (declare (special url-http-response-status))
   (let ((buffer nil)
 	(result nil)
 	(url-request-extra-headers nil)
@@ -860,7 +876,9 @@
 (defun url-dav-rename-file (oldname newname &optional overwrite)
   (if (not (and (string-match url-handler-regexp oldname)
 		(string-match url-handler-regexp newname)))
-      (signal 'file-error "Cannot rename between different URL backends" oldname newname))
+      (signal 'file-error
+	      (list "Cannot rename between different URL backends"
+		    oldname newname)))
 
   (let* ((headers nil)
 	 (props nil)