Function: icalendar--get-children

icalendar--get-children is a byte-compiled function defined in icalendar.el.gz.

This function is obsolete since 31.1; use icalendar-ast-node-children instead.

Signature

(icalendar--get-children NODE NAME)

Documentation

Return all children of the given NODE which have a name NAME.

For instance the VCALENDAR node can have VEVENT children as well as VTODO children.

Source Code

;; Defined in /usr/src/emacs/lisp/calendar/icalendar.el.gz
;; (defun icalendar--set-event-property (event prop new-value)
;;   "For the given EVENT set the property PROP to the value NEW-VALUE."
;;   (catch 'found
;;     (let ((props (car (cddr event))) pp)
;;       (while props
;;         (setq pp (car props))
;;         (when (eq (car pp) prop)
;;           (setcdr (cdr pp) new-value)
;;           (throw 'found (car (cddr pp))))
;;         (setq props (cdr props)))
;;       (setq props (car (cddr event)))
;;       (setcar (cddr event)
;;               (append props (list (list prop nil new-value)))))))

(defun icalendar--get-children (node name)
  "Return all children of the given NODE which have a name NAME.
For instance the VCALENDAR node can have VEVENT children as well as VTODO
children."
  (declare (obsolete icalendar-ast-node-children "31.1"))
  (let ((result nil)
        (children (cadr (cddr node))))
    (when (eq (car node) name)
      (setq result node))
    ;;(message "%s" node)
    (when children
      (let ((subresult
             (delq nil
                   (mapcar (lambda (n)
                             (icalendar--get-children n name))
                           children))))
        (if subresult
            (if result
                (setq result (append result subresult))
              (setq result subresult)))))
    result))