Variable: diary-date-forms
diary-date-forms is a customizable variable defined in calendar.el.gz.
Value
((month "/" day "[^/0-9]") (month "/" day "/" year "[^0-9]")
(monthname " *" day "[^,0-9]")
(monthname " *" day ", *" year "[^0-9]") (dayname "\\W"))
Documentation
List of pseudo-patterns describing the forms of date used in the diary.
The patterns on the list must be MUTUALLY EXCLUSIVE and should not match any portion of the diary entry itself, just the date component.
A pseudo-pattern is a list of regular expressions and the keywords month,
day, year, monthname, and dayname. The keyword monthname will
match the name of the month (see calendar-month-name-array), capitalized
or not, or its user-specified abbreviation (see calendar-month-abbrev-array),
followed by a period or not; it will also match *. Similarly, dayname
will match the name of the day (see calendar-day-name-array), capitalized or
not, or its user-specified abbreviation (see calendar-day-abbrev-array),
followed by a period or not. The keywords month, day, and year will
match those numerical values, preceded by arbitrarily many zeros; they will
also match *.
The matching of the diary entries with the date forms is done with the
standard syntax table from Fundamental mode, but with the * changed so
that it is a word constituent.
If, to be mutually exclusive, a pseudo-pattern must match a portion of the
diary entry itself, the first element of the pattern MUST be backup. This
directive causes the date recognizer to back up to the beginning of the
current word of the diary entry, so in no case can the pattern match more than
a portion of the first word of the diary entry.
For examples of three common styles, see diary-american-date-forms,
diary-european-date-forms, and diary-iso-date-forms.
Source Code
;; Defined in /usr/src/emacs/lisp/calendar/calendar.el.gz
(defcustom diary-date-forms (cond ((eq calendar-date-style 'iso)
diary-iso-date-forms)
((eq calendar-date-style 'european)
diary-european-date-forms)
(t diary-american-date-forms))
"List of pseudo-patterns describing the forms of date used in the diary.
The patterns on the list must be MUTUALLY EXCLUSIVE and should not match
any portion of the diary entry itself, just the date component.
A pseudo-pattern is a list of regular expressions and the keywords `month',
`day', `year', `monthname', and `dayname'. The keyword `monthname' will
match the name of the month (see `calendar-month-name-array'), capitalized
or not, or its user-specified abbreviation (see `calendar-month-abbrev-array'),
followed by a period or not; it will also match `*'. Similarly, `dayname'
will match the name of the day (see `calendar-day-name-array'), capitalized or
not, or its user-specified abbreviation (see `calendar-day-abbrev-array'),
followed by a period or not. The keywords `month', `day', and `year' will
match those numerical values, preceded by arbitrarily many zeros; they will
also match `*'.
The matching of the diary entries with the date forms is done with the
standard syntax table from Fundamental mode, but with the `*' changed so
that it is a word constituent.
If, to be mutually exclusive, a pseudo-pattern must match a portion of the
diary entry itself, the first element of the pattern MUST be `backup'. This
directive causes the date recognizer to back up to the beginning of the
current word of the diary entry, so in no case can the pattern match more than
a portion of the first word of the diary entry.
For examples of three common styles, see `diary-american-date-forms',
`diary-european-date-forms', and `diary-iso-date-forms'."
:type '(repeat (choice (cons :tag "Backup"
:value (backup . nil)
(const backup)
(repeat (list :inline t :format "%v"
(symbol :tag "Keyword")
(choice symbol regexp))))
(repeat (list :inline t :format "%v"
(symbol :tag "Keyword")
(choice symbol regexp)))))
:set-after '(calendar-date-style diary-iso-date-forms
diary-european-date-forms
diary-american-date-forms)
:initialize 'custom-initialize-default
:set (lambda (symbol value)
(unless (equal value (default-value symbol))
(custom-set-default symbol value)
(setq diary-font-lock-keywords (diary-font-lock-keywords))
;; Need to redraw not just to get new font-locking, but also
;; to pick up any newly recognized entries.
(and (diary-live-p)
(diary))))
:group 'diary)