# HG changeset patch # User Stefan Monnier # Date 1081742596 0 # Node ID 31399f1df7687e3dcdb3a9a0f123e868bacda749 # Parent 9978b1e48c24cccad92341d88abed4db0a646d0f (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. diff -r 9978b1e48c24 -r 31399f1df768 lisp/url/url-dav.el --- 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)