Function: icalendar-read-rrule-part

icalendar-read-rrule-part is a byte-compiled function defined in icalendar-parser.el.gz.

Signature

(icalendar-read-rrule-part S)

Documentation

Read an icalendar-rrule-part from string S.

S should have been matched against icalendar-rrule-part. The return value is a list (KEYWORD VALUE), where VALUE may itself be a list, depending on the values allowed by KEYWORD.

Source Code

;; Defined in /usr/src/emacs/lisp/calendar/icalendar-parser.el.gz
(defun ical:read-rrule-part (s)
  "Read an `icalendar-rrule-part' from string S.
S should have been matched against `icalendar-rrule-part'.
The return value is a list (KEYWORD VALUE), where VALUE may
itself be a list, depending on the values allowed by KEYWORD."
  ;; TODO: this smells like a design flaw.  Silence the byte compiler for now.
  (ignore s)
  (let ((keyword (intern (upcase (match-string 11))))
        (values (match-string 12)))
    (list keyword
      (cl-case keyword
        (FREQ (intern (upcase values)))
        (UNTIL (if (length> values 8)
                   (ical:read-date-time values)
                 (ical:read-date values)))
        ((COUNT INTERVAL)
         (string-to-number values))
        ((BYSECOND BYMINUTE BYHOUR BYMONTHDAY BYYEARDAY BYWEEKNO BYMONTH BYSETPOS)
         (ical:read-list-with #'string-to-number values nil ","))
        (BYDAY
         (ical:read-list-with #'ical:read-weekdaynum values
                              (rx ical:weekdaynum) ","))
        (WKST (cdr (assoc values ical:weekday-numbers)))))))