From: Stefan Monnier Date: Mon, 12 Apr 2004 04:03:16 +0000 (+0000) Subject: (url-dav-rename-file): Fix args of `signal'. X-Git-Tag: ttn-vms-21-2-B4~6900 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0aa70d32499588297dfd8ee42963f8fd2b795cad;p=emacs.git (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 --git a/lisp/url/url-dav.el b/lisp/url/url-dav.el index 4e744b3da76..a35cb2a2bc6 100644 --- a/lisp/url/url-dav.el +++ b/lisp/url/url-dav.el @@ -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 @@ Returns `t' iff the lock was successfully released. (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 @@ Returns `t' iff the lock was successfully released. "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 @@ If NOSORT is non-nil, the list is not sorted--its order is unpredictable. (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)