Function: diary-include-files

diary-include-files is a byte-compiled function defined in diary-lib.el.gz.

Signature

(diary-include-files &optional MARK)

Documentation

Process diary entries from included diary files.

By default, lists included entries, but if optional argument MARK is non-nil marks entries instead. For example, this enables you to share common diary files. Specify include files using lines matching diary-include-string, e.g.
    #include "filename"
This is recursive; that is, included files may include other files.

Source Code

;; Defined in /usr/src/emacs/lisp/calendar/diary-lib.el.gz
(defun diary-include-files (&optional mark)
  "Process diary entries from included diary files.
By default, lists included entries, but if optional argument MARK is non-nil
marks entries instead.
For example, this enables you to share common diary files.
Specify include files using lines matching `diary-include-string', e.g.
    #include \"filename\"
This is recursive; that is, included files may include other files."
  (goto-char (point-min))
  (while (re-search-forward
          (format "^%s \"\\([^\"]*\\)\"" (regexp-quote diary-include-string))
          nil t)
    (let ((diary-file (match-string-no-properties 1))
          (diary-mark-entries-hook #'diary-mark-included-diary-files)
          (diary-list-entries-hook #'diary-include-other-diary-files)
          (diary-including t)
          diary-hook diary-list-include-blanks efile)
      (if (file-exists-p diary-file)
          (if (file-readable-p diary-file)
              (if (member (setq efile (expand-file-name diary-file))
                          diary-included-files)
                  (error "Recursive diary include for %s" diary-file)
                (setq diary-included-files
                      (append diary-included-files (list efile)))
                (if mark
                    (diary-mark-entries)
                  ;; FIXME: `diary-include-files' can be run from
                  ;; diary-mark-entries-hook (via
                  ;; diary-mark-included-diary-files) or from
                  ;; diary-list-entries-hook (via
                  ;; diary-include-other-diary-files).  In the "list" case,
                  ;; `number' is dynamically bound, but not in the "mark" case!
                  (with-no-warnings (defvar number))
                  (setq diary-entries-list
                        (append diary-entries-list
                                (diary-list-entries original-date number t)))))
            (display-warning
             'diary
             (format-message "Can't read included diary file %s\n"
			     diary-file)
             :error))
        (display-warning
         'diary
         (format-message "Can't find included diary file %s\n"
			 diary-file)
         :error))))
  (goto-char (point-min)))