Function: url-dav-process-DAV:prop

url-dav-process-DAV:prop is a byte-compiled function defined in url-dav.el.gz.

Signature

(url-dav-process-DAV:prop NODE)

Source Code

;; Defined in /usr/src/emacs/lisp/url/url-dav.el.gz
(defun url-dav-process-DAV:prop (node)
  ;; A prop node has content model of ANY
  ;;
  ;; Some predefined nodes have special meanings though.
  ;;
  ;; DAV:supportedlock    - list of DAV:lockentry
  ;; DAV:source
  ;; DAV:iscollection     - boolean
  ;; DAV:getcontentlength - integer
  ;; DAV:ishidden         - boolean
  ;; DAV:getcontenttype   - string
  ;; DAV:resourcetype     - node who's name is the resource type
  ;; DAV:getlastmodified  - date
  ;; DAV:creationdate     - date
  ;; DAV:displayname      - string
  ;; DAV:getetag          - unknown
  (let ((children (xml-node-children node))
	(node-type nil)
	(props nil)
	(value nil)
	;; (handler-func nil)
	)
    (when (not children)
      (error "No child nodes in DAV:prop"))

    (while children
      (setq node (car children)
	    node-type (intern
		       (or
			(cdr-safe (assq url-dav-datatype-attribute
					(xml-node-attributes node)))
			"unknown"))
	    value nil)

      (pcase node-type
	((or 'dateTime.iso8601tz
             'dateTime.iso8601
             'dateTime.tz
             'dateTime.rfc1123
             'dateTime
             'date)                     ; date is our 'special' one...
	 ;; Some type of date/time string.
	 (setq value (url-dav-process-date-property node)))
	('int
	 ;; Integer type...
	 (setq value (url-dav-process-integer-property node)))
	((or 'number 'float)
	 (setq value (url-dav-process-number-property node)))
	('boolean
	 (setq value (url-dav-process-boolean-property node)))
	('uri
	 (setq value (url-dav-process-uri-property node)))
	(_
	 (if (not (eq node-type 'unknown))
	     (url-debug 'dav "Unknown data type in url-dav-process-prop: %s"
			node-type))
	 (setq value (url-dav-dispatch-node node))))

      (setq props (plist-put props (xml-node-name node) value)
	    children (cdr children)))
    props))